:root {
    --blue: #14245a;
    --blue-2: #1c3f8f;
    --red: #d71920;
    --red-dark: #b51218;
    --dark: #071126;
    --text: #1f2937;
    --muted: #667085;
    --line: #e5e7eb;
    --soft: #f7f8fb;
    --white: #ffffff;
    --shadow: 0 14px 34px rgba(15, 23, 42, .08);
    --radius: 10px;
    --container: 1180px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    font-family: "Segoe UI", Arial, sans-serif;
    color: var(--text);
    background: var(--white);
    line-height: 1.58;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.container { width: min(var(--container), calc(100% - 32px)); margin: 0 auto; }

.skip-link {
    position: absolute;
    top: 10px;
    left: -999px;
    padding: 10px 14px;
    background: #fff;
    color: #000;
    z-index: 999;
}
.skip-link:focus { left: 10px; }

/* Header institucional */
.utility-bar {
    background: var(--blue);
    color: #fff;
    font-size: .82rem;
}
.utility-inner {
    min-height: 32px;
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    flex-wrap: wrap;
}
.utility-inner div {
    display: flex;
    gap: 16px;
    align-items: center;
    flex-wrap: wrap;
}
.utility-inner a { color: #fff; font-weight: 650; }

.identity-bar {
    background: #fff;
    border-bottom: 1px solid var(--line);
}
.identity-inner {
    min-height: 82px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
}
.brand {
    display: flex;
    align-items: center;
    gap: 14px;
}
.brand img {
    width: 88px;
    height: 62px;
    object-fit: contain;
}
.brand strong {
    display: block;
    color: var(--blue);
    font-size: clamp(1.18rem, 2.1vw, 1.62rem);
    line-height: 1.08;
    font-weight: 800;
}
.brand span {
    display: block;
    color: var(--muted);
    font-weight: 600;
    font-size: .92rem;
    margin-top: 3px;
}
.admission-button {
    background: var(--red);
    color: #fff;
    padding: 10px 16px;
    border-radius: 3px;
    font-weight: 750;
    font-size: .92rem;
    box-shadow: 0 8px 18px rgba(215, 25, 32, .18);
}

.main-nav {
    background: var(--white);
    border-bottom: 1px solid var(--line);
    position: sticky;
    top: 0;
    z-index: 80;
}
.nav-inner {
    min-height: 52px;
    display: flex;
    justify-content: center;
    align-items: stretch;
}
.nav-menu {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 0;
}
.nav-menu > a,
.nav-item > a {
    min-height: 52px;
    display: flex;
    align-items: center;
    padding: 0 12px;
    color: var(--blue);
    font-weight: 700;
    font-size: .88rem;
    border-bottom: 3px solid transparent;
    white-space: nowrap;
}
.nav-menu > a:hover,
.nav-menu > a.active,
.nav-item:hover > a,
.nav-item > a.active {
    color: var(--red);
    border-bottom-color: var(--red);
}
.nav-item { position: relative; }
.nav-item > a::after {
    content: "⌄";
    margin-left: 6px;
    color: var(--muted);
    font-size: .8rem;
}

/* Mega menú más limpio */
.mega-menu {
    position: fixed;
    left: 50%;
    transform: translateX(-50%) translateY(8px);
    width: min(900px, calc(100vw - 44px));
    background: #fff;
    color: var(--text);
    border: 1px solid var(--line);
    border-top: 3px solid var(--red);
    border-radius: 0 0 8px 8px;
    box-shadow: var(--shadow);
    padding: 20px 22px;
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 24px;
    opacity: 0;
    visibility: hidden;
    transition: .16s ease;
    z-index: 120;
}
.nav-item:hover .mega-menu,
.nav-item:focus-within .mega-menu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}
.mega-heading {
    border-right: 1px solid var(--line);
    padding-right: 22px;
}
.mega-heading span {
    display: inline-block;
    color: var(--red);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .72rem;
    margin-bottom: 8px;
}
.mega-heading strong {
    display: block;
    color: var(--blue);
    font-size: 1.16rem;
    line-height: 1.15;
    margin-bottom: 6px;
}
.mega-heading p {
    color: var(--muted);
    margin: 0;
    font-size: .92rem;
}
.mega-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
}
.mega-columns h4 {
    color: var(--blue);
    margin: 0 0 8px;
    font-size: .95rem;
}
.mega-columns a {
    display: block;
    color: var(--text);
    padding: 7px 0;
    border-bottom: 1px solid #f0f2f5;
    font-weight: 600;
    font-size: .93rem;
}
.mega-columns a:hover { color: var(--red); }
.nav-toggle {
    display: none;
    border: 0;
    background: var(--blue);
    width: 44px;
    height: 44px;
    border-radius: 3px;
    cursor: pointer;
    align-self: center;
}
.nav-toggle span {
    display: block;
    width: 23px;
    height: 2px;
    background: #fff;
    margin: 5px auto;
}

/* Hero más sobrio y sin mezcla */
.hero {
    position: relative;
    background:
      linear-gradient(105deg, rgba(7,17,38,.96), rgba(20,36,90,.88)),
      url("../img/logo-pfc.jpeg");
    background-size: cover;
    background-position: center;
    color: #fff;
}
.hero-inner {
    min-height: 480px;
    display: grid;
    grid-template-columns: 1.12fr .88fr;
    gap: 38px;
    align-items: center;
    padding: 46px 0 64px;
}
.hero-copy h1 {
    max-width: 760px;
    font-size: clamp(2rem, 4.1vw, 3.35rem);
    line-height: 1.06;
    letter-spacing: -.03em;
    margin: 14px 0;
}
.hero-copy p {
    max-width: 700px;
    color: rgba(255,255,255,.88);
    font-size: 1.02rem;
    font-weight: 500;
}
.section-tag {
    display: inline-flex;
    color: #fff;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.18);
    padding: 6px 11px;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}
.section-tag.red {
    color: var(--red);
    background: #fff4f4;
    border-color: #ffe0e0;
}
.section-tag.white {
    color: #fff;
    background: rgba(255,255,255,.14);
    border-color: rgba(255,255,255,.18);
}
.hero-actions,
.btn-row {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 22px;
}
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 3px;
    padding: 11px 18px;
    font-weight: 780;
    font-size: .92rem;
    border: 1px solid transparent;
    transition: .15s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-red { background: var(--red); color: #fff; border-color: var(--red); }
.btn-red:hover { background: var(--red-dark); }
.btn-outline-white { color: #fff; border-color: rgba(255,255,255,.42); }
.btn-white { background: #fff; color: var(--blue); }
.btn-blue-outline { color: var(--blue); border-color: var(--blue); background: #fff; }

.hero-card {
    background: rgba(255,255,255,.97);
    color: var(--text);
    border-top: 3px solid var(--red);
    padding: 24px;
    border-radius: 5px;
    box-shadow: var(--shadow);
    max-width: 420px;
    justify-self: end;
}
.hero-card span {
    color: var(--red);
    font-weight: 780;
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .08em;
}
.hero-card h2 {
    color: var(--blue);
    font-size: 1.48rem;
    line-height: 1.1;
    margin: 10px 0;
}
.hero-card p { color: var(--muted); font-size: .96rem; }
.hero-card a { color: var(--red); font-weight: 780; }

/* Accesos rápidos ya no se montan encima del hero */
.quick-access {
    margin-top: 0;
    background: #fff;
    position: relative;
    z-index: 2;
}
.quick-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: 0 10px 28px rgba(15,23,42,.06);
    transform: translateY(-30px);
}
.quick-grid a {
    padding: 19px 16px;
    border-right: 1px solid var(--line);
    transition: .15s ease;
}
.quick-grid a:last-child { border-right: 0; }
.quick-grid a:hover { background: var(--soft); }
.quick-grid strong {
    display: block;
    color: var(--blue);
    font-size: .96rem;
}
.quick-grid span {
    display: block;
    color: var(--muted);
    font-size: .84rem;
    margin-top: 2px;
}

.section { padding: 70px 0; }
.light { background: var(--soft); }
.section-head {
    max-width: 820px;
    margin: 0 auto 30px;
    text-align: center;
}
.section-head.compact { margin-bottom: 24px; }
.section-head h2,
.band-inner h2,
.final-cta h2,
.document-strip h2,
.content-panel h2 {
    color: var(--blue);
    font-size: clamp(1.65rem, 3.1vw, 2.55rem);
    line-height: 1.1;
    margin: 10px 0;
    letter-spacing: -.025em;
}
.section-head p,
.band-inner p,
.final-cta p,
.document-strip p,
.content-panel p {
    color: var(--muted);
    font-size: 1rem;
}

/* Tarjetas editoriales */
.editorial-grid {
    display: grid;
    grid-template-columns: 1.22fr .89fr .89fr;
    gap: 20px;
}
.editorial-card,
.content-panel,
.simple-card,
.news-card,
.document-card,
.contact-info,
.contact-form {
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: 0 8px 24px rgba(15,23,42,.05);
    border-radius: 5px;
}
.editorial-card {
    padding: 24px;
    border-top: 3px solid var(--blue);
}
.editorial-card.main { border-top-color: var(--red); }
.editorial-card span,
.news-card span,
.document-card span {
    color: var(--red);
    font-weight: 780;
    font-size: .74rem;
    text-transform: uppercase;
    letter-spacing: .08em;
}
.editorial-card h3,
.simple-card h3,
.news-card h3,
.document-card h2,
.contact-info h2,
.contact-form h2 {
    color: var(--blue);
    line-height: 1.12;
}
.editorial-card p,
.simple-card p,
.news-card p,
.document-card p { color: var(--muted); }
.editorial-card a { color: var(--red); font-weight: 780; }

.academic-band {
    background: linear-gradient(135deg, var(--blue), var(--blue-2));
    color: #fff;
}
.band-inner {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 38px;
    align-items: center;
}
.band-inner h2,
.band-inner p { color: #fff; }
.axis-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.axis-list.one { grid-template-columns: 1fr; }
.axis-list article {
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 5px;
    padding: 18px;
}
.axis-list strong {
    display: block;
    color: #fff;
    margin-bottom: 6px;
    font-size: 1rem;
}
.axis-list span { color: rgba(255,255,255,.82); font-size: .94rem; }

.news-grid,
.card-grid,
.document-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.news-card,
.simple-card,
.document-card {
    padding: 22px;
}
.news-card time {
    display: block;
    color: var(--muted);
    font-weight: 700;
    margin-bottom: 8px;
}

.final-cta {
    background: var(--soft);
}
.final-cta-inner {
    background: #fff;
    border-left: 5px solid var(--red);
    border-radius: 5px;
    padding: 30px;
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: center;
    box-shadow: var(--shadow);
}
.final-cta span {
    color: var(--red);
    font-weight: 780;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .76rem;
}

/* Héroes internos más compactos */
.page-hero {
    background:
      linear-gradient(105deg, rgba(7,17,38,.95), rgba(21,39,95,.9)),
      url("../img/logo-pfc.jpeg");
    background-size: cover;
    background-position: center;
    color: #fff;
    padding: 70px 0;
}
.page-hero.compact-hero { padding: 58px 0; }
.page-hero h1 {
    font-size: clamp(2rem, 4.3vw, 3.25rem);
    line-height: 1.05;
    margin: 14px 0;
}
.page-hero p {
    max-width: 760px;
    color: rgba(255,255,255,.86);
    font-size: 1.02rem;
}

.two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
}
.content-panel {
    padding: 26px;
}
.clean-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.clean-list li {
    border-bottom: 1px solid var(--line);
    padding: 11px 0;
    color: var(--muted);
}
.clean-list li::before {
    content: "•";
    color: var(--red);
    font-weight: 900;
    margin-right: 8px;
}
.values {
    margin-top: 26px;
    display: flex;
    justify-content: center;
    gap: 9px;
    flex-wrap: wrap;
}
.values span {
    background: var(--soft);
    border: 1px solid var(--line);
    color: var(--blue);
    border-radius: 999px;
    padding: 7px 12px;
    font-weight: 700;
}

/* Plan de estudio: menos pesado */
.study-plan {
    display: grid;
    gap: 14px;
}
.semester-row {
    display: grid;
    grid-template-columns: 210px 1fr;
    gap: 20px;
    background: #fff;
    border: 1px solid var(--line);
    border-left: 4px solid var(--red);
    border-radius: 5px;
    padding: 22px;
    box-shadow: 0 8px 24px rgba(15,23,42,.045);
}
.semester-meta span {
    display: inline-flex;
    background: var(--soft);
    border: 1px solid var(--line);
    color: var(--red);
    border-radius: 999px;
    padding: 5px 9px;
    font-weight: 780;
    font-size: .76rem;
}
.semester-meta h2 {
    color: var(--blue);
    font-size: 1.32rem;
    margin: 10px 0 0;
}
.subject-list {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}
.subject-list span {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 6px 10px;
    color: #334155;
    font-size: .88rem;
    font-weight: 560;
}

/* Mapa curricular interactivo */
.curriculum-interactive-section {
    background: linear-gradient(180deg, #fff 0%, var(--soft) 100%);
}
.curriculum-interactive {
    display: grid;
    grid-template-columns: 360px 1fr;
    gap: 34px;
    align-items: center;
}
.curriculum-intro-panel {
    background: #fff;
    border: 1px solid var(--line);
    border-left: 4px solid var(--red);
    border-radius: 6px;
    padding: 26px;
    box-shadow: var(--shadow);
}
.curriculum-intro-panel h2 {
    color: var(--blue);
    font-size: 2rem;
    line-height: 1.08;
}
.curriculum-intro-panel p {
    color: var(--muted);
}
.curriculum-map {
    min-height: 440px;
    position: relative;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
    box-shadow: var(--shadow);
    overflow: hidden;
}
.curriculum-map::before,
.curriculum-map::after {
    content: "";
    position: absolute;
    background: var(--line);
    opacity: .9;
}
.curriculum-map::before {
    width: 1px;
    height: 80%;
    left: 50%;
    top: 10%;
}
.curriculum-map::after {
    height: 1px;
    width: 80%;
    left: 10%;
    top: 50%;
}
.curriculum-center {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 154px;
    height: 154px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: #fff;
    border: 6px solid var(--soft);
    box-shadow: 0 18px 38px rgba(15,23,42,.12);
    display: grid;
    place-items: center;
    text-align: center;
    z-index: 2;
    padding: 18px;
}
.curriculum-center img {
    width: 58px;
    height: 45px;
    object-fit: contain;
}
.curriculum-center strong {
    color: var(--blue);
    font-size: 1.2rem;
    line-height: 1;
}
.curriculum-center small {
    color: var(--muted);
    font-size: .75rem;
}
.curriculum-node {
    position: absolute;
    z-index: 3;
    width: 190px;
    min-height: 88px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--blue);
    box-shadow: 0 8px 24px rgba(15,23,42,.06);
    cursor: pointer;
    text-align: left;
    padding: 16px;
    transition: .18s ease;
}
.curriculum-node:nth-child(1) { left: 8%; top: 12%; }
.curriculum-node:nth-child(2) { right: 8%; top: 12%; }
.curriculum-node:nth-child(3) { left: 8%; bottom: 12%; }
.curriculum-node:nth-child(4) { right: 8%; bottom: 12%; }
.curriculum-node span {
    display: block;
    color: var(--red);
    font-weight: 850;
    font-size: .78rem;
}
.curriculum-node strong {
    display: block;
    margin-top: 6px;
    font-size: 1.05rem;
}
.curriculum-node:hover,
.curriculum-node.active {
    background: var(--blue);
    color: #fff;
    border-color: var(--blue);
    transform: translateY(-2px);
}
.curriculum-node:hover span,
.curriculum-node.active span {
    color: #fff;
}
.curriculum-detail-wrap {
    margin-top: 26px;
}
.curriculum-detail {
    display: none;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    background: #fff;
    border: 1px solid var(--line);
    border-left: 4px solid var(--red);
    border-radius: 6px;
    padding: 28px;
    box-shadow: var(--shadow);
}
.curriculum-detail.active {
    display: grid;
}
.curriculum-detail span {
    color: var(--red);
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .76rem;
}
.curriculum-detail h2 {
    color: var(--blue);
    margin: 10px 0;
    line-height: 1.12;
}
.curriculum-detail p {
    color: var(--muted);
}
.curriculum-detail ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.curriculum-detail li {
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
    color: var(--muted);
}
.curriculum-detail li::before {
    content: "✓";
    color: var(--red);
    font-weight: 850;
    margin-right: 8px;
}

/* Otras páginas */
.curriculum-layout {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}
.curriculum-layout article {
    background: #fff;
    border: 1px solid var(--line);
    border-top: 3px solid var(--blue);
    border-radius: 5px;
    padding: 22px;
    box-shadow: 0 8px 24px rgba(15,23,42,.045);
}
.curriculum-layout article:nth-child(even) { border-top-color: var(--red); }
.curriculum-layout span {
    color: var(--red);
    font-weight: 780;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .74rem;
}
.curriculum-layout h2 { color: var(--blue); }
.curriculum-layout p { color: var(--muted); }

.practice-list {
    display: grid;
    gap: 14px;
}
.practice-list article {
    display: grid;
    grid-template-columns: 1fr 210px;
    gap: 22px;
    align-items: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 22px;
    box-shadow: 0 8px 24px rgba(15,23,42,.045);
}
.practice-list h2 { color: var(--blue); margin: 0 0 8px; }
.practice-list p { color: var(--muted); margin: 0; }
.practice-list aside {
    border-left: 1px solid var(--line);
    padding-left: 18px;
}
.practice-list aside span {
    display: block;
    color: var(--red);
    font-weight: 780;
    margin-bottom: 4px;
}
.practice-list aside strong { color: var(--blue); }

.admission-steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}
.admission-steps article {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 22px;
    box-shadow: 0 8px 24px rgba(15,23,42,.045);
}
.admission-steps span {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    background: var(--red);
    color: #fff;
    border-radius: 50%;
    font-weight: 850;
    margin-bottom: 12px;
}
.admission-steps p { color: var(--muted); margin: 0; }

.faculty-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}
.faculty-list article {
    display: grid;
    grid-template-columns: 52px 1fr;
    gap: 15px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 20px;
    box-shadow: 0 8px 24px rgba(15,23,42,.045);
}
.faculty-avatar {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--blue);
    color: #fff;
    display: grid;
    place-items: center;
    font-weight: 850;
    font-size: 1.1rem;
}
.faculty-list h2 {
    color: var(--blue);
    margin: 0 0 4px;
    font-size: 1.1rem;
}
.faculty-list a {
    color: var(--red);
    font-weight: 700;
    word-break: break-word;
}
.faculty-list p { color: var(--muted); }

.document-grid {
    grid-template-columns: repeat(4, 1fr);
}
.document-card .btn {
    width: 100%;
    margin-top: 8px;
}

.document-strip {
    background: var(--soft);
    padding: 40px 0;
}
.document-strip-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 5px;
    box-shadow: 0 8px 24px rgba(15,23,42,.045);
    padding: 26px;
}
.document-strip h2 { margin: 0; }

.table-wrap { overflow-x: auto; }
table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: 0 8px 24px rgba(15,23,42,.045);
}
th, td {
    padding: 14px 16px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}
th { background: var(--blue); color: #fff; }
td:first-child { color: var(--red); font-weight: 780; white-space: nowrap; }

.contact-layout {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    gap: 24px;
    align-items: start;
}
.contact-info,
.contact-form {
    padding: 26px;
}
.contact-info p { color: var(--muted); }
.contact-form {
    display: grid;
    gap: 12px;
}
.contact-form label {
    font-weight: 700;
    color: var(--blue);
}
.contact-form input,
.contact-form select,
.contact-form textarea,
.admin-form input,
.admin-form textarea {
    width: 100%;
    border: 1px solid var(--line);
    border-radius: 3px;
    padding: 11px 12px;
    font: inherit;
}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus,
.admin-form input:focus,
.admin-form textarea:focus {
    outline: 3px solid rgba(18,59,135,.14);
    border-color: var(--blue-2);
}
.checkbox {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-weight: 500 !important;
    color: var(--muted) !important;
}
.checkbox input {
    width: auto;
    margin-top: 5px;
}
.alert {
    padding: 12px 14px;
    border-radius: 3px;
    font-weight: 700;
}
.alert.success { background: #eaf8ef; color: #10713a; border: 1px solid #bfe8ce; }
.alert.error { background: #fff1f1; color: #9f1d1d; border: 1px solid #ffd0d0; }

.site-footer {
    background: var(--dark);
    color: #d8e2f2;
}
.footer-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1.1fr;
    gap: 30px;
    padding: 50px 0;
}
.footer-logo {
    width: 82px;
    background: #fff;
    border-radius: 3px;
    margin-bottom: 14px;
}
.site-footer h3 { color: #fff; }
.site-footer p { color: #cbd5e1; }
.site-footer a {
    display: block;
    color: #d8e2f2;
    margin: 8px 0;
}
.site-footer a:hover { color: #fff; }
.footer-bottom {
    border-top: 1px solid rgba(255,255,255,.12);
    padding: 15px 0;
}
.footer-bottom-inner {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    color: #aab9cf;
    font-size: .9rem;
}

/* Admin */
.admin-login-page {
    min-height: 100vh;
    background: linear-gradient(135deg, var(--blue), var(--blue-2));
    display: grid;
    place-items: center;
    padding: 20px;
}
.login-card {
    width: min(440px, 100%);
    background: #fff;
    border-radius: 5px;
    box-shadow: var(--shadow);
    padding: 32px;
    display: grid;
    gap: 14px;
}
.login-card img { width: 120px; margin: 0 auto; }
.login-card h1, .login-card p { text-align: center; margin: 0; }

.admin-body {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 280px 1fr;
    background: var(--soft);
}
.admin-sidebar {
    background: var(--dark);
    color: #fff;
    min-height: 100vh;
    padding: 24px;
    position: sticky;
    top: 0;
}
.admin-sidebar img {
    width: 90px;
    background: #fff;
    border-radius: 3px;
    margin-bottom: 14px;
}
.admin-sidebar a {
    display: block;
    color: #d8e2f2;
    padding: 11px 12px;
    border-radius: 3px;
    font-weight: 700;
}
.admin-sidebar a:hover,
.admin-sidebar a.active { background: var(--red); color: #fff; }
.admin-main { padding: 34px; }
.admin-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    margin: 24px 0;
}
.admin-stats article,
.admin-panel,
.admin-form {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 24px;
    box-shadow: 0 8px 24px rgba(15,23,42,.045);
}
.admin-stats strong {
    display: block;
    color: var(--red);
    font-size: 1.55rem;
}
.admin-form {
    display: grid;
    gap: 12px;
    margin-bottom: 24px;
}
.admin-form label {
    color: var(--blue);
    font-weight: 700;
}
.admin-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

@media (max-width: 1180px) {
    .utility-inner,
    .identity-inner {
        justify-content: center;
        text-align: center;
    }
    .identity-inner {
        flex-direction: column;
        padding: 16px 0;
    }
    .brand {
        flex-direction: column;
        text-align: center;
    }
    .nav-inner {
        justify-content: flex-end;
        position: relative;
    }
    .nav-toggle { display: block; }
    .nav-menu {
        display: none;
        position: absolute;
        top: 52px;
        left: 0;
        right: 0;
        background: #fff;
        border: 1px solid var(--line);
        box-shadow: var(--shadow);
        flex-direction: column;
        align-items: stretch;
        z-index: 130;
    }
    .nav-menu.open { display: flex; }
    .nav-menu > a,
    .nav-item > a {
        min-height: 46px;
        padding: 0 18px;
    }
    .mega-menu {
        position: static;
        width: auto;
        transform: none;
        display: none;
        opacity: 1;
        visibility: visible;
        box-shadow: none;
        border-radius: 0;
        grid-template-columns: 1fr;
        margin: 0 12px 12px;
    }
    .nav-item.open .mega-menu { display: grid; }
    .mega-heading { border-right: 0; border-bottom: 1px solid var(--line); padding: 0 0 16px; }
    .mega-columns { grid-template-columns: 1fr; }
    .hero-inner,
    .band-inner,
    .two-col,
    .contact-layout,
    .curriculum-interactive {
        grid-template-columns: 1fr;
    }
    .hero-card { justify-self: start; max-width: none; }
    .editorial-grid,
    .news-grid,
    .card-grid,
    .document-grid,
    .curriculum-layout,
    .admission-steps,
    .footer-grid,
    .admin-stats {
        grid-template-columns: repeat(2, 1fr);
    }
    .quick-grid { grid-template-columns: repeat(3, 1fr); transform: none; }
    .quick-access { padding: 18px 0 0; }
    .axis-list { grid-template-columns: 1fr; }
    .faculty-list { grid-template-columns: 1fr; }
    .admin-body { grid-template-columns: 1fr; }
    .admin-sidebar { min-height: auto; position: static; }
}
@media (max-width: 800px) {
    .curriculum-map {
        min-height: auto;
        display: grid;
        gap: 12px;
        padding: 18px;
    }
    .curriculum-map::before,
    .curriculum-map::after,
    .curriculum-center {
        display: none;
    }
    .curriculum-node {
        position: static;
        width: 100%;
        min-height: auto;
    }
    .curriculum-detail {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 680px) {
    .utility-inner div { justify-content: center; }
    .hero-inner { min-height: auto; padding: 52px 0; }
    .hero-copy h1 { font-size: 2rem; }
    .quick-grid,
    .editorial-grid,
    .news-grid,
    .card-grid,
    .document-grid,
    .curriculum-layout,
    .admission-steps,
    .footer-grid,
    .admin-stats {
        grid-template-columns: 1fr;
    }
    .semester-row,
    .practice-list article,
    .faculty-list article {
        grid-template-columns: 1fr;
    }
    .practice-list aside { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 14px; }
    .document-strip-inner,
    .final-cta-inner {
        flex-direction: column;
        align-items: flex-start;
    }
    .admin-main { padding: 20px; }
}


/* ===== Mejoras finales: mapa curricular, biblioteca, galerías, docentes e inscripción ===== */
.curriculum-prezi-section {
    background: linear-gradient(180deg, #fff 0%, #f7f8fb 100%);
}

.map-tabs {
    display: flex;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 30px;
}

.map-tab {
    border: 1px solid var(--line);
    background: #fff;
    color: var(--blue);
    border-radius: 999px;
    padding: 10px 16px;
    font-weight: 800;
    cursor: pointer;
}

.map-tab.active,
.map-tab:hover {
    background: var(--red);
    color: #fff;
    border-color: var(--red);
}

.map-view {
    display: none;
}

.map-view.active {
    display: block;
}

.map-layout-general {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 28px;
    align-items: center;
}

.map-legend-panel {
    background: #fff;
    border: 1px solid var(--line);
    border-left: 4px solid var(--red);
    border-radius: 6px;
    padding: 24px;
    box-shadow: var(--shadow);
}

.map-legend-panel img {
    width: 110px;
    margin-bottom: 12px;
}

.map-legend-panel h2 {
    color: var(--blue);
    margin: 8px 0;
}

.map-legend-panel p {
    color: var(--muted);
}

.map-legend-panel ul {
    padding: 0;
    margin: 18px 0 0;
    list-style: none;
    display: grid;
    gap: 12px;
}

.map-legend-panel li {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--blue);
    font-weight: 700;
}

.legend-dot {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    display: inline-block;
}

.legend-dot.eje { background: #0ea5e9; }
.legend-dot.nucleo { background: #bae6fd; border: 3px solid #0f4c81; }
.legend-dot.campo { background: #0284c7; }
.legend-dot.competencia { background: #075985; }

.prezi-wheel {
    position: relative;
    min-height: 520px;
    background:
        radial-gradient(circle at center, #eaf8ff 0 12%, transparent 12%),
        #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: var(--shadow);
}

.wheel-center {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 120px;
    height: 120px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: #eaf8ff;
    border: 6px solid #14245a;
    color: #14245a;
    display: grid;
    place-items: center;
    font-size: 2rem;
    font-weight: 900;
    z-index: 4;
}

.wheel-quadrant {
    position: absolute;
    border: 0;
    color: #fff;
    cursor: pointer;
    padding: 24px;
    font: inherit;
    font-weight: 850;
    text-align: center;
    transition: transform .18s ease, filter .18s ease;
}

.wheel-quadrant strong {
    display: block;
    max-width: 260px;
    margin: 0 auto;
    line-height: 1.15;
}

.wheel-quadrant:hover {
    transform: scale(1.015);
    filter: brightness(1.05);
}

.general-wheel .wheel-quadrant.q1 {
    left: 6%;
    top: 7%;
    width: 44%;
    height: 42%;
    border-radius: 240px 0 0 0;
}

.general-wheel .wheel-quadrant.q2 {
    right: 6%;
    top: 7%;
    width: 44%;
    height: 42%;
    border-radius: 0 240px 0 0;
}

.general-wheel .wheel-quadrant.q3 {
    left: 6%;
    bottom: 7%;
    width: 44%;
    height: 42%;
    border-radius: 0 0 0 240px;
}

.general-wheel .wheel-quadrant.q4 {
    right: 6%;
    bottom: 7%;
    width: 44%;
    height: 42%;
    border-radius: 0 0 240px 0;
}

.formation-wheel .wheel-quadrant.q1,
.eie-wheel .wheel-quadrant.q1 {
    left: 8%;
    top: 8%;
    width: 40%;
    height: 42%;
    border-radius: 240px 0 0 0;
}

.formation-wheel .wheel-quadrant.q2,
.eie-wheel .wheel-quadrant.q2 {
    right: 8%;
    top: 8%;
    width: 40%;
    height: 42%;
    border-radius: 0 240px 0 0;
}

.formation-wheel .wheel-quadrant.q3,
.eie-wheel .wheel-quadrant.q3 {
    left: 30%;
    bottom: 8%;
    width: 40%;
    height: 42%;
    border-radius: 0 0 220px 220px;
}

.wheel-quadrant.formacion { background: #2fbde9; }
.wheel-quadrant.investigacion { background: #0877bd; }
.wheel-quadrant.evaluacion { background: #10bfe7; }
.wheel-quadrant.extension { background: #034b7a; }
.wheel-quadrant.q1 { background: #35bdeb; }
.wheel-quadrant.q2 { background: #0aa7cf; }
.wheel-quadrant.q3 { background: #0877bd; }
.wheel-quadrant.q4 { background: #034b7a; }

.map-detail-stack {
    margin-top: 26px;
}

.map-detail {
    display: none;
    background: #fff;
    border: 1px solid var(--line);
    border-left: 4px solid var(--red);
    border-radius: 6px;
    padding: 26px;
    box-shadow: var(--shadow);
}

.map-detail.active {
    display: block;
}

.map-detail > span {
    color: var(--red);
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .76rem;
}

.map-detail h2 {
    color: var(--blue);
    margin: 8px 0 18px;
}

.field-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}

.field-grid section {
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 18px;
    background: var(--soft);
}

.field-grid h3 {
    color: var(--blue);
    margin-top: 0;
}

.field-grid p,
.competency-list li {
    color: var(--muted);
}

.competency-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 10px;
}

.competency-list li {
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: var(--soft);
}

.competency-list li::before {
    content: "✓";
    color: var(--red);
    font-weight: 900;
    margin-right: 8px;
}

.library-search,
.inscription-layout {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 28px;
    align-items: start;
    margin-bottom: 30px;
}

.library-search h2,
.inscription-intro h2,
.teacher-directory-intro h2,
.evidence-card h2,
.gallery-admin-note h2 {
    color: var(--blue);
}

.library-search p,
.inscription-intro p,
.teacher-directory-intro p,
.evidence-card p,
.gallery-admin-note p {
    color: var(--muted);
}

.library-filter,
.inscription-intro,
.teacher-directory-intro,
.gallery-admin-note {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 24px;
    box-shadow: var(--shadow);
}

.library-filter {
    display: grid;
    gap: 10px;
}

.library-filter label {
    color: var(--blue);
    font-weight: 800;
}

.library-filter input {
    border: 1px solid var(--line);
    border-radius: 4px;
    padding: 12px 14px;
    font: inherit;
}

.library-grid,
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.library-card,
.gallery-placeholder,
.gallery-item {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 22px;
    box-shadow: 0 8px 24px rgba(15,23,42,.045);
}

.library-card span,
.gallery-placeholder span {
    color: var(--red);
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .74rem;
}

.library-card h2 {
    color: var(--blue);
}

.library-card p,
.gallery-placeholder p {
    color: var(--muted);
}

.library-card a {
    color: var(--red);
    font-weight: 800;
}

.gallery-item {
    padding: 0;
    overflow: hidden;
}

.gallery-item img {
    width: 100%;
    height: 240px;
    object-fit: cover;
    transition: transform .2s ease;
}

.gallery-item:hover img {
    transform: scale(1.03);
}

.gallery-placeholder {
    min-height: 180px;
    display: grid;
    align-content: center;
    text-align: center;
    background:
        linear-gradient(135deg, rgba(20,36,90,.05), rgba(215,25,32,.05)),
        #fff;
}

.evidence-card {
    background: #fff;
    border: 1px solid var(--line);
    border-left: 4px solid var(--red);
    border-radius: 6px;
    padding: 26px;
    box-shadow: var(--shadow);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
}

.teacher-directory-intro {
    margin-bottom: 26px;
}

.teacher-directory {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 22px;
}

.teacher-profile-card {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 18px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 8px 24px rgba(15,23,42,.045);
}

.teacher-photo-slot {
    min-height: 180px;
    border-radius: 8px;
    background: var(--soft);
    border: 1px dashed #c9d2e3;
    display: grid;
    place-items: center;
    text-align: center;
    overflow: hidden;
}

.teacher-photo-slot img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.teacher-initial {
    width: 74px;
    height: 74px;
    border-radius: 50%;
    background: var(--blue);
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 2rem;
    font-weight: 900;
}

.teacher-photo-slot small {
    color: var(--muted);
    font-weight: 700;
}

.teacher-profile-body h2 {
    color: var(--blue);
    margin: 0 0 4px;
    font-size: 1.15rem;
}

.teacher-profile-body a {
    color: var(--red);
    font-weight: 750;
    word-break: break-word;
}

.teacher-profile-body p {
    color: var(--muted);
}

.teacher-area {
    color: var(--blue) !important;
    font-weight: 700;
    font-size: .92rem;
}

@media (max-width: 1180px) {
    .map-layout-general,
    .library-search,
    .inscription-layout {
        grid-template-columns: 1fr;
    }

    .library-grid,
    .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .teacher-directory {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 800px) {
    .prezi-wheel {
        min-height: auto;
        display: grid;
        gap: 12px;
        padding: 16px;
    }

    .wheel-center {
        position: static;
        transform: none;
        width: auto;
        height: auto;
        border-radius: 8px;
        padding: 18px;
        font-size: 1.4rem;
    }

    .wheel-quadrant,
    .general-wheel .wheel-quadrant.q1,
    .general-wheel .wheel-quadrant.q2,
    .general-wheel .wheel-quadrant.q3,
    .general-wheel .wheel-quadrant.q4,
    .formation-wheel .wheel-quadrant.q1,
    .formation-wheel .wheel-quadrant.q2,
    .formation-wheel .wheel-quadrant.q3,
    .eie-wheel .wheel-quadrant.q1,
    .eie-wheel .wheel-quadrant.q2,
    .eie-wheel .wheel-quadrant.q3 {
        position: static;
        width: 100%;
        height: auto;
        border-radius: 8px;
    }

    .field-grid {
        grid-template-columns: 1fr;
    }

    .teacher-profile-card {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    .library-grid,
    .gallery-grid {
        grid-template-columns: 1fr;
    }

    .evidence-card {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ===== Mapa curricular fiel e interactivo ===== */
.mc-section{background:linear-gradient(180deg,#fff 0%,#f7fbff 100%)}.mc-tabs,.plan-tabs{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:28px}.mc-tab,.plan-tab{border:1px solid var(--line);background:#fff;color:var(--blue);border-radius:999px;padding:10px 16px;font-weight:850;cursor:pointer}.mc-tab.active,.mc-tab:hover,.plan-tab.active,.plan-tab:hover{background:var(--red);color:#fff;border-color:var(--red)}.mc-view,.plan-panel{display:none}.mc-view.active,.plan-panel.active{display:block}.mc-view{position:relative;min-height:720px;display:none;grid-template-columns:260px 1fr;gap:24px;align-items:center}.mc-view.active{display:grid}.mc-side-title{background:#fff;border:1px solid var(--line);border-left:5px solid var(--red);border-radius:8px;padding:24px;box-shadow:var(--shadow)}.mc-side-title img{width:120px;margin-bottom:18px}.mc-side-title h2{color:#004476;font-size:clamp(1.7rem,4vw,2.6rem);line-height:1.1;text-transform:uppercase}.mc-conventions{display:grid;gap:12px;margin-top:22px}.mc-conventions strong{color:var(--red);font-size:1.2rem}.mc-conventions span{display:flex;align-items:center;gap:10px;color:var(--blue);font-weight:800}.dot{width:22px;height:22px;border-radius:50%;display:inline-block}.dot.eje{background:#0bb7e8;box-shadow:0 0 0 6px rgba(11,183,232,.18)}.dot.nucleo{background:#e5f7ff;border:5px solid #0f4c81}.dot.campo{background:#0877bd}.dot.competencia{background:#01436f}.mc-flower{position:relative;min-height:640px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.mc-flower::before{content:"";position:absolute;inset:8%;border-radius:50%;background:radial-gradient(circle,rgba(225,244,252,.92) 0 16%,rgba(54,195,232,.25) 16% 27%,transparent 27%);pointer-events:none}.mc-petal,.mc-small-field,.mc-orbit{position:absolute;border:0;cursor:pointer;color:#fff;font:inherit;text-align:center;font-weight:850;transition:transform .18s ease,filter .18s ease,box-shadow .18s ease;z-index:2}.mc-petal:hover,.mc-petal.active,.mc-small-field:hover,.mc-small-field.active,.mc-orbit:hover,.mc-orbit.active{transform:scale(1.025);filter:brightness(1.05);box-shadow:0 18px 38px rgba(0,0,0,.18)}.mc-petal small{display:block;font-size:.78rem;letter-spacing:.08em;margin-bottom:8px}.mc-petal strong,.mc-small-field,.mc-orbit strong{line-height:1.18}.petal-formacion{left:23%;top:5%;width:27%;height:43%;border-radius:220px 0 0 0;background:#85d7f4;color:#fff;padding:42px 20px}.petal-extension{right:5%;top:5%;width:45%;height:43%;border-radius:0 260px 0 0;background:#07a9cf;padding:58px 34px}.petal-investigacion{left:5%;bottom:5%;width:45%;height:43%;border-radius:0 0 0 260px;background:#0a79bd;padding:58px 34px}.petal-evaluacion{right:5%;bottom:5%;width:45%;height:43%;border-radius:0 0 260px 0;background:#064572;padding:58px 34px}.mc-small-field{width:180px;min-height:105px;padding:18px;border-radius:14px;background:#16bdea}.mc-small-field.sf1{left:12%;top:26%}.mc-small-field.sf2{left:12%;top:43%}.mc-cross{position:absolute;z-index:3;background:#fff;pointer-events:none}.mc-cross.horizontal{left:0;right:0;top:49%;height:20px}.mc-cross.vertical{top:0;bottom:0;left:49%;width:20px}.mc-center{position:absolute;left:50%;top:50%;width:104px;height:104px;transform:translate(-50%,-50%);border-radius:50%;background:#e5f7ff;border:6px solid var(--blue);color:var(--blue);z-index:4;display:grid;place-items:center;font-size:1.8rem;font-weight:950}.mc-center.small{width:82px;height:82px;font-size:1.25rem}.formation-petal.fp1{left:20%;top:7%;width:34%;height:45%;border-radius:260px 0 0 0;background:#2fbde9;padding:52px 24px}.formation-petal.fp2{left:8%;bottom:7%;width:45%;height:42%;border-radius:0 0 0 260px;background:#0d8fcf;padding:58px 24px}.formation-petal.fp3{right:8%;top:18%;width:38%;height:58%;border-radius:0 240px 240px 0;background:#22b9e8;padding:64px 24px}.mc-cross.y,.mc-cross.diag{height:20px;width:100%;left:0;top:49%;transform-origin:center}.mc-cross.y{transform:rotate(90deg)}.mc-cross.diag{transform:rotate(30deg)}.mc-orbit{width:190px;min-height:190px;border-radius:50%;padding:22px}.mc-orbit.orbit1{left:36%;top:10%;background:#13bee8}.mc-orbit.orbit2{left:15%;bottom:15%;background:#0b78bd}.mc-orbit.orbit3{right:13%;bottom:15%;background:#034b7a}.mc-detail-panel{grid-column:1/-1;display:none;background:#fff;border:1px solid var(--line);border-left:5px solid var(--red);border-radius:8px;padding:26px;box-shadow:var(--shadow)}.mc-detail-panel.active{display:block}.mc-detail-panel span{color:var(--red);font-weight:850;text-transform:uppercase;letter-spacing:.08em;font-size:.76rem}.mc-detail-panel h2{color:var(--blue);margin:8px 0 14px}.mc-detail-panel p{color:var(--muted)}.mc-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.mc-list li{background:var(--soft);border:1px solid var(--line);border-radius:6px;padding:12px 14px;color:var(--muted)}.mc-list li::before{content:"✓";color:var(--red);font-weight:900;margin-right:8px}
/* ===== Plan de estudio interactivo doble ===== */
.plan-section{background:#fff}.plan-intro-card{display:flex;justify-content:space-between;gap:24px;align-items:center;background:#fff;border:1px solid var(--line);border-left:5px solid var(--red);border-radius:8px;padding:26px;box-shadow:var(--shadow);margin-bottom:24px}.plan-intro-card h2{color:var(--blue);margin:10px 0}.plan-intro-card p{color:var(--muted)}.plan-intro-card>strong{background:var(--blue);color:#fff;padding:14px 18px;border-radius:6px;white-space:nowrap}.semester-switch{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.semester-chip,.axis-btn{border:1px solid var(--line);background:#fff;color:var(--blue);padding:10px 14px;border-radius:999px;font-weight:800;cursor:pointer}.semester-chip.active,.semester-chip:hover,.axis-btn.active,.axis-btn:hover{background:var(--red);color:#fff;border-color:var(--red)}.semester-detail{display:none;background:#fff;border:1px solid var(--line);border-radius:8px;padding:24px;box-shadow:var(--shadow)}.semester-detail.active{display:block}.semester-detail-head span{color:var(--red);font-weight:850;text-transform:uppercase;letter-spacing:.08em;font-size:.76rem}.semester-detail-head h2{color:var(--blue);margin:8px 0 16px}.subject-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.subject-pill{border:1px solid var(--line);background:var(--soft);color:var(--blue);border-radius:6px;padding:12px;text-align:left;font-weight:650;cursor:pointer}.subject-pill:hover{background:#eaf8ff;border-color:#25bfe9}.unified-layout{display:grid;grid-template-columns:240px 1fr;gap:24px;align-items:start}.axis-selector{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px;box-shadow:var(--shadow);display:grid;gap:10px;position:sticky;top:80px}.axis-btn{width:100%;border-radius:6px;text-align:left}.axis-panel{display:none}.axis-panel.active{display:block}.axis-panel h2{color:var(--blue);margin-top:0}.field-block{background:#fff;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:8px;padding:20px;box-shadow:0 8px 24px rgba(15,23,42,.045);margin-bottom:20px}.field-block h3{color:var(--blue);margin-top:0}.credit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.credit-card{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--soft)}.credit-head{background:#dff6ff;display:flex;justify-content:space-between;gap:12px;padding:10px 12px;color:var(--blue)}.credit-head span{background:var(--red);color:#fff;border-radius:999px;padding:2px 8px;font-weight:850}.credit-card ul{list-style:none;padding:10px 12px;margin:0;display:grid;gap:7px}.credit-card li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #e6edf5;padding-bottom:6px;color:var(--muted)}.credit-card li:last-child{border-bottom:0}.credit-card li b{color:var(--blue)}@media(max-width:1180px){.mc-view,.unified-layout{grid-template-columns:1fr}.mc-flower{min-height:540px}.subject-columns,.credit-grid,.mc-list{grid-template-columns:repeat(2,1fr)}.axis-selector{position:static}}@media(max-width:760px){.mc-flower{min-height:auto;display:grid;gap:10px;padding:16px}.mc-flower::before,.mc-cross,.mc-center{display:none}.mc-petal,.mc-small-field,.mc-orbit,.petal-formacion,.petal-extension,.petal-investigacion,.petal-evaluacion,.formation-petal.fp1,.formation-petal.fp2,.formation-petal.fp3,.mc-orbit.orbit1,.mc-orbit.orbit2,.mc-orbit.orbit3{position:static;width:100%;height:auto;min-height:auto;border-radius:8px;padding:18px}.plan-intro-card{flex-direction:column;align-items:flex-start}.subject-columns,.credit-grid,.mc-list{grid-template-columns:1fr}}


/* ===== Corrección definitiva: Mapa curricular de ancho completo ===== */
.curricular-wide-section {
    background: linear-gradient(180deg, #ffffff 0%, #f6f8fb 100%);
    padding: 42px 0 72px;
}

.curricular-wide-shell {
    width: min(1760px, calc(100% - 36px));
    margin: 0 auto;
    display: grid;
    grid-template-columns: 300px minmax(680px, 1fr) 440px;
    gap: 24px;
    align-items: start;
}

.curricular-sidebar,
.curricular-main,
.curricular-detail {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: 0 12px 30px rgba(15,23,42,.06);
}

.curricular-sidebar {
    padding: 28px;
    position: sticky;
    top: 78px;
}

.curricular-sidebar img {
    width: 132px;
    margin-bottom: 24px;
}

.curricular-sidebar h2 {
    color: #004476;
    font-size: clamp(1.7rem, 3vw, 2.25rem);
    line-height: 1.08;
    text-transform: uppercase;
    margin: 0 0 16px;
}

.curricular-sidebar p {
    color: var(--muted);
}

.curricular-conventions {
    display: grid;
    gap: 14px;
    margin-top: 28px;
}

.curricular-conventions strong {
    color: var(--red);
    font-size: 1.05rem;
}

.curricular-conventions span {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--blue);
    font-weight: 760;
    font-size: .93rem;
}

.curricular-conventions i {
    width: 20px;
    height: 20px;
    display: inline-block;
    border-radius: 5px;
    flex: 0 0 auto;
}

.c-eje { background: #063B68; }
.c-campo { background: #0877BD; }
.c-nucleo { background: #16BFE8; }
.c-general { background: #0B7A3B; }
.c-especifica { background: #D71920; }

.curricular-main {
    padding: 28px;
}

.curricular-main-head {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 20px;
    align-items: center;
    margin-bottom: 24px;
}

.curricular-main-head h2 {
    color: var(--blue);
    font-size: clamp(1.9rem, 3.2vw, 2.65rem);
    line-height: 1.08;
    margin: 10px 0 0;
}

.curricular-search {
    width: 100%;
    border: 2px solid #111827;
    border-radius: 999px;
    padding: 13px 18px;
    font: inherit;
}

.curricular-axis-list {
    display: grid;
    gap: 22px;
}

.curricular-axis {
    display: grid;
    grid-template-columns: 250px 1fr;
    gap: 20px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #f8fafc;
    overflow: hidden;
}

.axis-summary {
    padding: 24px;
    color: #fff;
}

.axis-summary h3 {
    margin: 0 0 12px;
    color: #fff;
    font-size: 1.3rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.axis-summary p {
    color: rgba(255,255,255,.88);
    font-size: .95rem;
}

.axis-formacion .axis-summary { background: #87D8F4; }
.axis-investigacion .axis-summary { background: #0877BD; }
.axis-evaluacion .axis-summary { background: #0AA6D8; }
.axis-extension .axis-summary { background: #063B68; }

.field-card-grid {
    padding: 20px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.axis-investigacion .field-card-grid,
.axis-evaluacion .field-card-grid,
.axis-extension .field-card-grid {
    grid-template-columns: minmax(0, 1fr);
}

.field-card {
    min-height: 158px;
    text-align: left;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    padding: 18px;
    cursor: pointer;
    transition: .16s ease;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.field-card strong {
    color: #081b4b;
    font-size: 1rem;
    line-height: 1.18;
}

.field-card span {
    display: block;
    color: var(--muted);
    margin: 12px 0;
    font-size: .9rem;
}

.field-card em {
    width: fit-content;
    font-style: normal;
    color: var(--red);
    background: #fff4f4;
    border: 1px solid #ffd9d9;
    border-radius: 999px;
    padding: 6px 12px;
    font-weight: 800;
    font-size: .84rem;
}

.field-card:hover,
.field-card.active {
    border-color: var(--red);
    box-shadow: 0 12px 24px rgba(215,25,32,.10);
    transform: translateY(-1px);
}

.curricular-detail {
    padding: 28px;
    position: sticky;
    top: 78px;
    max-height: calc(100vh - 96px);
    overflow-y: auto;
}

.curricular-detail h2 {
    color: var(--blue);
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    line-height: 1.12;
    margin: 18px 0;
}

.detail-box {
    background: #f8fafc;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 12px;
}

.detail-box small {
    display: block;
    color: var(--red);
    font-size: .72rem;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 6px;
}

.detail-box strong {
    color: #081b4b;
}

.detail-section {
    border-top: 1px solid var(--line);
    padding-top: 18px;
    margin-top: 18px;
}

.detail-section h3 {
    color: #004476;
    margin: 0 0 10px;
}

.detail-section p {
    color: var(--muted);
}

#detail-especificas {
    padding: 0;
    margin: 0;
    list-style: none;
    display: grid;
    gap: 10px;
}

#detail-especificas li {
    background: #f8fafc;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 12px 14px;
    color: var(--muted);
}

#detail-especificas li::before {
    content: "✓";
    color: var(--red);
    font-weight: 900;
    margin-right: 8px;
}

@media (max-width: 1500px) {
    .curricular-wide-shell {
        grid-template-columns: 260px minmax(560px, 1fr) 380px;
        gap: 18px;
    }

    .field-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1180px) {
    .curricular-wide-shell {
        grid-template-columns: 1fr;
    }

    .curricular-sidebar,
    .curricular-detail {
        position: static;
        max-height: none;
    }

    .curricular-main-head {
        grid-template-columns: 1fr;
    }

    .curricular-axis {
        grid-template-columns: 1fr;
    }

    .field-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .curricular-wide-shell {
        width: min(100% - 24px, 1760px);
    }

    .curricular-sidebar,
    .curricular-main,
    .curricular-detail {
        padding: 20px;
    }

    .field-card-grid {
        grid-template-columns: 1fr;
    }
}


/* ===== Biblioteca Académica PFC - Diseño final premium ===== */
.library-hero-final {
    position: relative;
    min-height: 410px;
    background: linear-gradient(110deg, #ffffff 0 55%, #062a63 55% 100%);
    overflow: hidden;
    border-bottom: 1px solid #e8edf6;
}

.library-hero-bg {
    position: absolute;
    inset: 0 0 auto auto;
    width: 47%;
    height: 100%;
    background:
        linear-gradient(90deg, rgba(6,42,99,.72), rgba(6,42,99,.96)),
        radial-gradient(circle at 72% 26%, rgba(255,255,255,.22), transparent 20%),
        url("assets/img/logo-pfc.jpeg");
    background-size: cover, cover, 220px auto;
    background-position: center, center, 82% 42%;
    background-repeat: no-repeat;
    opacity: .98;
}

.library-hero-bg::after {
    content: "PFC";
    position: absolute;
    right: 92px;
    top: 105px;
    color: rgba(255,255,255,.10);
    font-size: 7rem;
    font-weight: 950;
    border: 2px solid rgba(255,255,255,.12);
    border-radius: 50%;
    width: 250px;
    height: 250px;
    display: grid;
    place-items: center;
}

.library-hero-shell {
    position: relative;
    width: min(1600px, calc(100% - 48px));
    margin: 0 auto;
    padding: 42px 0 34px;
}

.library-brand-panel {
    width: min(930px, 64%);
    display: grid;
    grid-template-columns: 145px 1fr;
    gap: 28px;
    align-items: center;
    background: #fff;
    border-radius: 0 0 96px 0;
    padding: 10px 38px 24px 0;
}

.library-brand-panel img {
    width: 125px;
    height: 105px;
    object-fit: contain;
}

.library-brand-panel h1 {
    color: #071b52;
    font-size: clamp(2.15rem, 4vw, 3.45rem);
    line-height: 1.02;
    margin: 0 0 8px;
    letter-spacing: -.035em;
}

.library-brand-panel p {
    color: #52617a;
    font-size: clamp(1rem, 1.4vw, 1.18rem);
    max-width: 780px;
    margin: 0;
}

.library-top-actions {
    position: absolute;
    right: 0;
    top: 34px;
    display: flex;
    gap: 18px;
    align-items: center;
}

.library-top-actions a {
    color: #fff;
    font-weight: 760;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
}

.library-search-final {
    width: min(960px, 62%);
    margin: 26px 0 22px;
    display: grid;
    grid-template-columns: 58px 1fr 84px;
    align-items: center;
    background: #fff;
    border: 1px solid #d9e2f2;
    border-radius: 18px;
    box-shadow: 0 16px 42px rgba(15,23,42,.11);
    overflow: hidden;
}

.library-search-final span {
    color: #0b55c5;
    font-size: 2rem;
    display: grid;
    place-items: center;
}

.library-search-final input {
    border: 0;
    outline: none;
    font: inherit;
    font-size: 1rem;
    padding: 21px 8px;
    color: #1f2937;
}

.library-search-final button {
    height: calc(100% - 10px);
    margin-right: 5px;
    border: 0;
    border-radius: 14px;
    background: #0b55c5;
    color: #fff;
    font-weight: 850;
    cursor: pointer;
}

.library-filter-final {
    width: min(1010px, 68%);
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.library-filter-final button {
    border: 1px solid #dce5f5;
    background: #fff;
    color: #071b52;
    border-radius: 999px;
    padding: 13px 24px;
    font-weight: 850;
    box-shadow: 0 8px 22px rgba(15,23,42,.05);
    cursor: pointer;
    transition: .16s ease;
}

.library-filter-final button:hover,
.library-filter-final button.active {
    background: #d71920;
    border-color: #d71920;
    color: #fff;
    transform: translateY(-1px);
}

.library-content-final {
    padding: 48px 0 80px;
    background:
        radial-gradient(circle at 5% 10%, rgba(22,191,232,.08), transparent 24%),
        radial-gradient(circle at 92% 10%, rgba(215,25,32,.05), transparent 22%),
        #fff;
}

.library-content-shell {
    width: min(1600px, calc(100% - 48px));
    margin: 0 auto;
}

.library-section-title {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 26px;
}

.library-section-title h2 {
    color: #071b52;
    margin: 10px 0 0;
    font-size: clamp(1.8rem, 3vw, 2.55rem);
    letter-spacing: -.025em;
}

.library-section-title p {
    color: #667085;
    max-width: 630px;
    margin: 0;
}

.library-grid-final {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
}

.library-resource-card {
    position: relative;
    min-height: 218px;
    display: grid;
    grid-template-columns: 74px 1fr;
    grid-template-rows: 1fr auto;
    gap: 16px 18px;
    background: rgba(255,255,255,.94);
    border: 1px solid #e2e8f2;
    border-radius: 18px;
    padding: 24px;
    box-shadow: 0 12px 28px rgba(15,23,42,.055);
    transition: .16s ease;
    overflow: hidden;
}

.library-resource-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 5px;
    background: #0b55c5;
}

.library-resource-card.cat-men-colombia::before { background: #0b55c5; }
.library-resource-card.cat-recursos-abiertos::before { background: #0b7a3b; }
.library-resource-card.cat-investigacion::before { background: #6d28d9; }
.library-resource-card.cat-bibliotecas-digitales::before { background: #0877bd; }

.library-resource-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 42px rgba(15,23,42,.10);
    border-color: #cbd8ee;
}

.resource-icon-wrap {
    grid-row: 1 / span 2;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #0b55c5;
    background: #f2f6ff;
    border: 2px solid #cde0ff;
}

.cat-recursos-abiertos .resource-icon-wrap {
    color: #0b7a3b;
    background: #effdf4;
    border-color: #ccefd8;
}

.cat-investigacion .resource-icon-wrap {
    color: #6d28d9;
    background: #f6f0ff;
    border-color: #dfccff;
}

.cat-bibliotecas-digitales .resource-icon-wrap {
    color: #0877bd;
    background: #eef8ff;
    border-color: #c7eafe;
}

.resource-card-body {
    min-width: 0;
}

.resource-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    color: #0b55c5;
    background: #eaf2ff;
    border-radius: 999px;
    padding: 5px 10px;
    font-size: .72rem;
    font-weight: 850;
    margin-bottom: 10px;
}

.cat-recursos-abiertos .resource-badge {
    color: #0b7a3b;
    background: #e8f8ee;
}

.cat-investigacion .resource-badge {
    color: #6d28d9;
    background: #f0e8ff;
}

.cat-bibliotecas-digitales .resource-badge {
    color: #0877bd;
    background: #e8f6ff;
}

.resource-card-body h3 {
    color: #071b52;
    font-size: 1.25rem;
    line-height: 1.1;
    margin: 0 0 6px;
}

.resource-card-body strong {
    display: block;
    color: #d71920;
    font-size: .87rem;
    line-height: 1.25;
    margin-bottom: 7px;
}

.resource-card-body p {
    color: #52617a;
    font-size: .93rem;
    line-height: 1.35;
    margin: 0;
}

.resource-cta {
    grid-column: 2;
    min-height: 38px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: #0b55c5;
    background: #fff;
    border: 1px solid #bfd3f8;
    border-radius: 999px;
    padding: 8px 14px;
    font-weight: 850;
    font-size: .84rem;
}

.cat-recursos-abiertos .resource-cta {
    color: #0b7a3b;
    border-color: #bfe8ce;
}

.cat-investigacion .resource-cta {
    color: #6d28d9;
    border-color: #dcc8ff;
}

.cat-bibliotecas-digitales .resource-cta {
    color: #0877bd;
    border-color: #bfe7ff;
}

.resource-cta span {
    font-size: 1.1rem;
}

.library-real-note {
    margin-top: 28px;
    display: grid;
    grid-template-columns: 58px 1fr;
    gap: 20px;
    align-items: center;
    background: linear-gradient(90deg, #f8fbff, #ffffff);
    border: 1px solid #e2e8f2;
    border-radius: 20px;
    padding: 22px 26px;
    box-shadow: 0 10px 25px rgba(15,23,42,.045);
}

.note-icon {
    width: 54px;
    height: 54px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #eef8ff;
    font-size: 1.6rem;
}

.library-real-note h3 {
    color: #071b52;
    margin: 0 0 4px;
}

.library-real-note p {
    color: #667085;
    margin: 0;
}

@media (max-width: 1400px) {
    .library-grid-final {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .library-brand-panel,
    .library-search-final,
    .library-filter-final {
        width: min(980px, 72%);
    }
}

@media (max-width: 1080px) {
    .library-hero-final {
        background: #fff;
    }

    .library-hero-bg {
        display: none;
    }

    .library-brand-panel,
    .library-search-final,
    .library-filter-final {
        width: 100%;
    }

    .library-top-actions {
        position: static;
        margin: 18px 0;
    }

    .library-top-actions a {
        color: #071b52;
        background: #f8fafc;
        border-color: #e2e8f2;
    }

    .library-grid-final {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .library-section-title {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 680px) {
    .library-brand-panel {
        grid-template-columns: 1fr;
        border-radius: 0;
    }

    .library-search-final {
        grid-template-columns: 48px 1fr;
    }

    .library-search-final button {
        grid-column: 1 / -1;
        margin: 0 8px 8px;
        min-height: 42px;
    }

    .library-grid-final {
        grid-template-columns: 1fr;
    }

    .library-resource-card {
        grid-template-columns: 1fr;
    }

    .resource-cta {
        grid-column: 1;
    }
}


/* ===== Hero dinámico: video o carrusel administrable ===== */
.dynamic-hero {
    position: relative;
    min-height: 540px;
    overflow: hidden;
    background: #071126;
}

.dynamic-hero .hero-inner {
    position: relative;
    z-index: 3;
}

.hero-media,
.hero-carousel,
.hero-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.hero-media {
    object-fit: cover;
    z-index: 0;
}

.dynamic-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, rgba(7,17,38,.92), rgba(20,36,90,.55));
    z-index: 1;
}

.hero-carousel {
    z-index: 0;
}

.hero-slide {
    opacity: 0;
    background-size: cover;
    background-position: center;
    transition: opacity .8s ease;
}

.hero-slide.active {
    opacity: 1;
}

/* ===== Admin CMS Pro ===== */
.admin-body {
    background: #f5f7fb !important;
}

.admin-sidebar {
    background: linear-gradient(180deg, #06152f, #071126) !important;
    box-shadow: 12px 0 28px rgba(15,23,42,.12);
}

.admin-sidebar h2 {
    color: #fff;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.admin-sidebar a {
    margin: 4px 0;
}

.admin-main h1 {
    color: #071b52;
    letter-spacing: -.03em;
}

.admin-topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    margin-bottom: 22px;
}

.admin-user-pill {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 10px 16px;
    color: #071b52;
    font-weight: 800;
    box-shadow: 0 8px 22px rgba(15,23,42,.05);
}

.admin-stats article {
    border: 0;
    border-radius: 16px;
    box-shadow: 0 14px 34px rgba(15,23,42,.07);
}

.admin-stats article span {
    color: #667085;
}

.admin-grid-2 {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 22px;
}

.admin-panel {
    border: 0 !important;
    border-radius: 16px !important;
    box-shadow: 0 14px 34px rgba(15,23,42,.07) !important;
}

.admin-panel h2,
.admin-form h2 {
    color: #071b52;
    margin-top: 0;
}

.cms-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.cms-full {
    grid-column: 1 / -1;
}

.preview-box {
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    background: #f8fafc;
}

.preview-box img,
.preview-box video {
    width: 100%;
    height: 260px;
    object-fit: cover;
    background: #071126;
}

.admin-list {
    display: grid;
    gap: 12px;
}

.admin-list-item {
    display: grid;
    grid-template-columns: 92px 1fr auto;
    gap: 14px;
    align-items: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 12px;
}

.admin-list-item img {
    width: 92px;
    height: 64px;
    object-fit: cover;
    border-radius: 8px;
    background: #f8fafc;
}

.admin-list-item strong {
    color: #071b52;
}

.admin-list-item span {
    color: #667085;
    font-size: .9rem;
}

.danger-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff1f1;
    color: #b51218;
    border: 1px solid #ffcaca;
    border-radius: 999px;
    padding: 8px 12px;
    font-weight: 800;
}

.analytics-bar {
    height: 10px;
    border-radius: 999px;
    background: #e8eef8;
    overflow: hidden;
}

.analytics-bar span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #0b55c5, #16bfe8);
}

@media (max-width: 1100px) {
    .admin-grid-2,
    .cms-form-grid {
        grid-template-columns: 1fr;
    }

    .admin-list-item {
        grid-template-columns: 1fr;
    }
}


/* Enlace oculto al panel admin desde la palabra Barranquilla */
.utility-inner .stealth-admin-link {
    color: #fff;
    font-weight: inherit;
    text-decoration: none;
    cursor: default;
}

.utility-inner .stealth-admin-link:hover,
.utility-inner .stealth-admin-link:focus {
    color: #fff;
    text-decoration: none;
    outline: none;
}

.utility-inner .stealth-admin-link:focus-visible {
    outline: 2px solid rgba(255,255,255,.35);
    outline-offset: 3px;
    border-radius: 4px;
}


/* ===== Estética tipo mockup institucional ===== */
.public-polished-header .identity-bar {
    background: #071126;
    color: #fff;
    border-bottom: 0;
}
.public-polished-header .brand strong,
.public-polished-header .brand span {
    color: #fff;
}
.public-polished-header .main-nav {
    background: #071126;
    border-bottom: 1px solid rgba(255,255,255,.08);
}
.public-polished-header .nav-menu > a,
.public-polished-header .nav-item > a {
    color: #fff;
}
.public-polished-header .nav-menu > a:hover,
.public-polished-header .nav-menu > a.active,
.public-polished-header .nav-item:hover > a,
.public-polished-header .nav-item > a.active {
    color: #8ec8ff;
    border-bottom-color: #2f80ed;
}
.public-polished-header .admission-button {
    background: transparent;
    border: 1px solid rgba(255,255,255,.75);
    box-shadow: none;
}
.dynamic-hero {
    border-radius: 0 0 12px 12px;
}
.dynamic-hero .hero-copy h1 {
    font-size: clamp(2rem, 4.2vw, 3.75rem);
    max-width: 820px;
}
.quick-grid {
    border-radius: 16px;
    overflow: hidden;
    margin-top: -8px;
}
.quick-grid a {
    min-height: 118px;
}

/* ===== Admin estilo mockup profesional ===== */
.admin-body-pro {
    background: #f4f7fb !important;
    font-family: "Segoe UI", Arial, sans-serif;
}
.admin-sidebar-pro {
    width: 250px;
    background: linear-gradient(180deg, #071126, #0b1d36) !important;
    border-right: 1px solid rgba(255,255,255,.06);
    padding: 22px 16px !important;
}
.admin-brand-pro {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 4px 6px 22px;
    color: #fff;
}
.admin-brand-pro img {
    width: 54px !important;
    height: 54px;
    object-fit: contain;
    margin: 0 !important;
    background: transparent !important;
}
.admin-brand-pro strong {
    display: block;
    font-size: .92rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.admin-brand-pro span {
    display: block;
    color: #aab9cf;
    font-size: .78rem;
}
.admin-nav-pro {
    display: grid;
    gap: 5px;
}
.admin-nav-pro a {
    display: flex !important;
    align-items: center;
    gap: 10px;
    border-radius: 9px !important;
    padding: 11px 12px !important;
    color: #d7e3f4 !important;
    font-size: .92rem;
}
.admin-nav-pro a span {
    width: 22px;
    color: #8ec8ff;
}
.admin-nav-pro a:hover,
.admin-nav-pro a.active {
    background: #1263d8 !important;
    color: #fff !important;
}
.admin-nav-pro a.active span {
    color: #fff;
}
.admin-main-pro {
    padding: 26px 28px 36px !important;
}
.admin-topbar-pro {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    margin-bottom: 22px;
}
.admin-topbar-pro h1 {
    color: #111827;
    font-size: 1.55rem;
    margin: 0;
}
.admin-topbar-pro p {
    color: #667085;
    margin: 4px 0 0;
}
.admin-toolbar-pro {
    display: flex;
    align-items: center;
    gap: 14px;
}
.admin-toolbar-pro > span {
    background: #fff;
    border: 1px solid #e6edf5;
    border-radius: 10px;
    padding: 10px 14px;
    color: #344054;
}
.admin-profile-pro {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #fff;
    border: 1px solid #e6edf5;
    border-radius: 12px;
    padding: 8px 12px;
}
.avatar-pro {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #fff;
    background: #1263d8;
    font-weight: 800;
}
.admin-profile-pro strong {
    display: block;
    color: #111827;
    font-size: .86rem;
}
.admin-profile-pro small {
    color: #667085;
}
.metric-grid-pro {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 20px;
}
.metric-grid-pro article {
    background: #fff;
    border: 1px solid #e6edf5;
    border-radius: 14px;
    padding: 18px;
    box-shadow: 0 10px 24px rgba(15,23,42,.045);
}
.metric-icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    margin-bottom: 13px;
    font-weight: 900;
}
.metric-icon.blue { background: #eaf2ff; color: #1263d8; }
.metric-icon.green { background: #eaf8ef; color: #13a460; }
.metric-icon.purple { background: #f3edff; color: #7c3aed; }
.metric-icon.red { background: #fff0f1; color: #d71920; }
.metric-icon.teal { background: #e8fbf8; color: #0f9f8d; }
.metric-icon.orange { background: #fff5e8; color: #f97316; }
.metric-grid-pro strong {
    color: #111827;
    font-size: 1.45rem;
    display: block;
}
.metric-grid-pro p {
    color: #344054;
    margin: 3px 0;
    font-weight: 700;
}
.metric-grid-pro small {
    color: #667085;
}
.admin-dashboard-grid-pro {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}
.admin-card-pro {
    background: #fff;
    border: 1px solid #e6edf5;
    border-radius: 16px;
    padding: 20px;
    box-shadow: 0 10px 24px rgba(15,23,42,.045);
    min-height: 280px;
}
.card-head-pro {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: start;
    margin-bottom: 18px;
}
.card-head-pro h2 {
    color: #111827;
    font-size: 1.05rem;
    margin: 0;
}
.card-head-pro small {
    color: #667085;
}
.donut-fake-pro {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 16px;
    align-items: center;
}
.donut-pro {
    width: 112px;
    height: 112px;
    border-radius: 50%;
    background: conic-gradient(#1263d8 0 38%, #5b8def 38% 60%, #a78bfa 60% 78%, #d9e4ff 78% 100%);
    position: relative;
}
.donut-pro::after {
    content: "";
    position: absolute;
    inset: 28px;
    border-radius: 50%;
    background: #fff;
}
.donut-fake-pro ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.donut-fake-pro li {
    display: flex;
    gap: 8px;
    justify-content: space-between;
    color: #667085;
    font-size: .85rem;
    margin-bottom: 8px;
}
.donut-fake-pro li span {
    width: 9px;
    height: 9px;
    background: #1263d8;
    border-radius: 50%;
    margin-top: 5px;
}
.line-chart-fake-pro {
    height: 135px;
    display: flex;
    align-items: end;
    gap: 12px;
    border-bottom: 1px solid #e6edf5;
    padding: 0 8px 8px;
}
.line-chart-fake-pro span {
    flex: 1;
    background: linear-gradient(180deg, #60a5fa, #1263d8);
    border-radius: 8px 8px 0 0;
}
.muted-pro {
    color: #667085;
}
.activity-list-pro {
    display: grid;
    gap: 12px;
}
.activity-list-pro div {
    display: flex;
    gap: 10px;
}
.activity-list-pro span {
    color: #1263d8;
    font-size: 1.35rem;
}
.activity-list-pro p {
    margin: 0;
    color: #344054;
    font-size: .9rem;
}
.activity-list-pro small {
    display: block;
    color: #98a2b3;
    margin-top: 2px;
}
.status-list-pro {
    display: grid;
    gap: 16px;
}
.status-list-pro div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: #344054;
}
.ok-pro {
    color: #13a460;
    font-weight: 900;
    margin-right: 6px;
}
.admin-link-pro {
    display: block;
    text-align: center;
    color: #1263d8;
    font-weight: 800;
    margin-top: 18px;
}
.quick-actions-pro {
    background: #fff;
    border: 1px solid #e6edf5;
    border-radius: 18px;
    padding: 22px;
    margin-top: 20px;
    box-shadow: 0 10px 24px rgba(15,23,42,.045);
}
.quick-actions-pro h2 {
    color: #111827;
    margin: 0 0 18px;
}
.quick-actions-pro > div {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
}
.quick-actions-pro a {
    background: #fff;
    border: 1px solid #e6edf5;
    border-radius: 14px;
    padding: 18px;
    color: #344054;
    display: grid;
    gap: 9px;
}
.quick-actions-pro a strong {
    color: #111827;
}
.quick-actions-pro a small {
    color: #667085;
}
.quick-actions-pro a em {
    color: #1263d8;
    border: 1px solid #d7e6ff;
    border-radius: 8px;
    padding: 8px;
    text-align: center;
    font-style: normal;
    font-weight: 800;
}
.qa {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    color: #fff;
    font-weight: 900;
}
.qa.blue { background: #1263d8; }
.qa.green { background: #13a460; }
.qa.purple { background: #7c3aed; }
.qa.red { background: #d71920; }
.qa.teal { background: #0f9f8d; }
.qa.orange { background: #f97316; }

/* ===== Cronograma público mejorado ===== */
.timeline-public-section table {
    border-radius: 16px;
    overflow: hidden;
}
.timeline-public-section th {
    background: #071126;
}
.timeline-public-section td:first-child {
    color: #d71920;
    font-weight: 900;
    background: #fff7f7;
}

/* ===== Directorio docente más elegante ===== */
.teacher-directory {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
.teacher-profile-card {
    grid-template-columns: 1fr !important;
    border-radius: 18px !important;
    overflow: hidden;
}
.teacher-photo-slot {
    min-height: 220px !important;
    background: linear-gradient(135deg, #eef4ff, #fff) !important;
}
.teacher-profile-body h2 {
    font-size: 1.25rem !important;
}

@media (max-width: 1500px) {
    .metric-grid-pro,
    .quick-actions-pro > div {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .admin-dashboard-grid-pro {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .teacher-directory {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 850px) {
    .metric-grid-pro,
    .admin-dashboard-grid-pro,
    .quick-actions-pro > div,
    .teacher-directory {
        grid-template-columns: 1fr !important;
    }
    .admin-topbar-pro,
    .admin-toolbar-pro {
        flex-direction: column;
        align-items: flex-start;
    }
}


/* ===== Corrección final: panel admin unificado y sin textos salidos ===== */
.admin-unified,
.admin-unified * {
    box-sizing: border-box;
}

.admin-unified {
    grid-template-columns: 252px minmax(0, 1fr) !important;
}

.admin-unified .admin-main-pro {
    min-width: 0;
    overflow-x: hidden;
}

.admin-unified .admin-sidebar-pro {
    width: 252px;
    min-width: 252px;
}

.admin-unified h1,
.admin-unified h2,
.admin-unified h3,
.admin-unified p,
.admin-unified strong,
.admin-unified span,
.admin-unified small,
.admin-unified a,
.admin-unified td,
.admin-unified th,
.admin-unified label,
.admin-unified input,
.admin-unified textarea,
.admin-unified select {
    overflow-wrap: anywhere;
    word-break: normal;
}

.admin-unified .admin-nav-pro a {
    white-space: normal;
    line-height: 1.25;
}

.admin-unified .admin-card-pro,
.admin-unified .metric-grid-pro article,
.admin-unified .quick-actions-pro,
.admin-unified .admin-list-item,
.admin-unified .unified-list-item {
    min-width: 0;
}

.admin-unified .metric-grid-pro {
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.admin-unified .compact-metrics {
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.admin-unified .admin-dashboard-grid-pro {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.admin-unified .quick-actions-pro > div {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.admin-unified .admin-grid-balanced {
    grid-template-columns: minmax(340px, .85fr) minmax(0, 1.15fr);
}

.admin-unified .admin-grid-wide-right {
    grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr);
}

.admin-form-clean {
    display: grid;
    gap: 14px;
}

.admin-form-clean label {
    display: grid;
    gap: 7px;
    color: #071b52;
    font-weight: 760;
    font-size: .92rem;
    min-width: 0;
}

.admin-form-clean input,
.admin-form-clean textarea,
.admin-form-clean select {
    width: 100%;
    max-width: 100%;
    border: 1px solid #d8e2ef;
    border-radius: 10px;
    padding: 12px 13px;
    font: inherit;
    background: #fff;
    color: #1f2937;
}

.admin-form-clean textarea {
    resize: vertical;
}

.wide-form-card {
    max-width: 1180px;
}

.mode-switch-pro {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 6px;
}

.mode-switch-pro label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: auto;
    border: 1px solid #d8e2ef;
    border-radius: 999px;
    padding: 10px 14px;
    background: #fff;
    color: #071b52;
    cursor: pointer;
}

.preview-box-pro img,
.preview-box-pro video {
    height: 320px;
    border-radius: 14px;
}

.carousel-form-pro {
    margin-bottom: 20px;
}

.clean-admin-list {
    display: grid;
    gap: 12px;
}

.scroll-list-pro {
    max-height: 620px;
    overflow-y: auto;
    padding-right: 5px;
}

.unified-list-item {
    grid-template-columns: 92px minmax(0, 1fr) auto !important;
    border-radius: 14px !important;
    background: #fff;
}

.unified-list-item.no-thumb {
    grid-template-columns: minmax(0, 1fr) auto !important;
}

.unified-list-item > div {
    min-width: 0;
}

.unified-list-item strong {
    display: block;
    color: #071b52;
    white-space: normal;
    line-height: 1.2;
}

.unified-list-item span {
    display: block;
    color: #667085;
    line-height: 1.35;
    max-width: 100%;
}

.thumb-placeholder-pro,
.file-tile-pro {
    width: 92px;
    height: 64px;
    background: #f2f6ff;
    color: #1263d8;
    display: grid;
    place-items: center;
    border-radius: 10px;
    font-weight: 800;
}

.empty-state {
    color: #667085;
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    border-radius: 14px;
    padding: 18px;
}

.admin-table-pro table {
    table-layout: fixed;
    width: 100%;
}

.admin-table-pro td,
.admin-table-pro th {
    white-space: normal;
    overflow-wrap: anywhere;
    vertical-align: top;
}

.analytics-list-pro {
    display: grid;
    gap: 16px;
}

.analytics-list-pro p {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 7px;
    color: #344054;
}

.analytics-list-pro p span {
    color: #667085;
}

.media-grid-pro {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
}

.media-grid-pro article {
    background: #fff;
    border: 1px solid #e6edf5;
    border-radius: 16px;
    padding: 14px;
    min-width: 0;
    display: grid;
    gap: 10px;
}

.media-grid-pro img {
    width: 100%;
    height: 150px;
    object-fit: cover;
    border-radius: 12px;
    background: #f8fafc;
}

.media-grid-pro strong,
.media-grid-pro small {
    overflow-wrap: anywhere;
    min-width: 0;
}

.media-grid-pro small {
    color: #667085;
}

.upload-form-pro {
    max-width: 740px;
}

.danger-btn {
    cursor: pointer;
    border: 1px solid #ffcaca;
}

@media (max-width: 1100px) {
    .admin-unified {
        grid-template-columns: 1fr !important;
    }

    .admin-unified .admin-sidebar-pro {
        width: 100%;
        min-width: 0;
        position: static;
    }

    .admin-unified .admin-grid-balanced,
    .admin-unified .admin-grid-wide-right {
        grid-template-columns: 1fr;
    }

    .unified-list-item,
    .unified-list-item.no-thumb {
        grid-template-columns: 1fr !important;
    }

    .unified-list-item img,
    .thumb-placeholder-pro {
        width: 100%;
        height: 170px;
    }
}


/* =========================================================
   FRONTEND NATIVO PFC - componentes reales HTML/CSS/JS
   Sin PDFs adjuntos como contenido principal
   ========================================================= */

.pfc-banner-card-grid,
.pfc-native-visual-grid,
.pfc-resource-grid,
.pfc-research-grid {
    display: grid;
    gap: 20px;
}

.pfc-banner-card-grid {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.pfc-banner-native-card,
.pfc-resource-card,
.pfc-research-image,
.pfc-plan-image {
    border: 0;
    background: none;
    padding: 0;
    cursor: pointer;
    font: inherit;
    text-align: left;
}

.pfc-banner-native-card {
    position: relative;
    overflow: hidden;
    border-radius: 22px;
    min-height: 245px;
    background: #071126;
    box-shadow: 0 18px 42px rgba(15,23,42,.12);
}

.pfc-banner-native-card img {
    width: 100%;
    height: 275px;
    object-fit: cover;
    display: block;
    opacity: .92;
    transition: transform .35s ease, opacity .35s ease;
}

.pfc-banner-native-card:hover img {
    transform: scale(1.04);
    opacity: 1;
}

.pfc-banner-native-card strong {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 18px;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: .04em;
    text-shadow: 0 3px 12px rgba(0,0,0,.55);
}

.pfc-identity-hero {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.pfc-identity-hero article,
.pfc-native-panel-card,
.pfc-history-text,
.pfc-native-text-block,
.pfc-reg-item,
.pfc-research-card,
.pfc-field-block,
.pfc-crono-table,
.pfc-crono-summary {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 22px;
    box-shadow: 0 16px 36px rgba(15,23,42,.06);
}

.pfc-identity-hero article {
    padding: 28px;
}

.pfc-identity-hero h2,
.pfc-native-panel-card h3,
.pfc-field-block h3 {
    color: #071b52;
}

.pfc-identity-hero p,
.pfc-history-text p,
.pfc-native-text-block p {
    color: #44546a;
    line-height: 1.72;
}

.pfc-native-two {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: 24px;
}

.pfc-native-panel-card {
    padding: 24px;
}

.pfc-principle-list {
    display: grid;
    gap: 14px;
}

.pfc-principle-list article {
    background: #f8fafc;
    border: 1px solid #e6edf5;
    border-radius: 16px;
    padding: 16px;
}

.pfc-principle-list strong {
    color: #071b52;
    display: block;
    margin-bottom: 6px;
}

.pfc-principle-list p {
    color: #667085;
    margin: 0;
}

.pfc-value-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.pfc-value-chip,
.pfc-native-tab,
.pfc-native-filter,
.pfc-filter,
.pfc-reg-index button {
    border: 1px solid #dce5f2;
    background: #fff;
    color: #071b52;
    border-radius: 999px;
    padding: 11px 14px;
    font-weight: 800;
    cursor: pointer;
    transition: .2s ease;
}

.pfc-value-chip:hover,
.pfc-native-tab:hover,
.pfc-native-tab.active,
.pfc-native-filter:hover,
.pfc-native-filter.active,
.pfc-filter:hover,
.pfc-filter.active,
.pfc-reg-index button:hover {
    border-color: #d71920;
    background: #fff4f4;
    color: #d71920;
}

.pfc-value-detail {
    margin-top: 20px;
    background: #f8fafc;
    border: 1px solid #e6edf5;
    border-radius: 16px;
    padding: 18px;
}

.pfc-value-detail strong {
    color: #071b52;
}

.pfc-value-detail p {
    color: #667085;
}

.pfc-history-text {
    padding: 26px;
    max-width: 1100px;
}

.native-main-tabs {
    justify-content: center;
}

.pfc-unified-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 160px;
    gap: 24px;
    align-items: center;
    background: #fff;
    border-left: 6px solid #d71920;
    border-radius: 18px;
    padding: 28px;
    box-shadow: 0 18px 42px rgba(15,23,42,.08);
    margin-bottom: 24px;
}

.pfc-unified-hero h2 {
    color: #071b52;
    font-size: clamp(1.8rem, 3vw, 2.7rem);
    margin: 8px 0;
}

.pfc-unified-total {
    background: #1c245b;
    color: #fff;
    border-radius: 18px;
    padding: 22px;
    text-align: center;
}

.pfc-unified-total strong {
    font-size: 3rem;
    display: block;
}

.pfc-unified-tabs,
.pfc-native-tabs,
.pfc-filter-row,
.pfc-crono-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 24px;
}

.pfc-native-tab {
    border-radius: 14px;
}

.pfc-native-tab.active {
    background: var(--axis-color, #d71920);
    color: #fff;
    border-color: var(--axis-color, #d71920);
}

.pfc-native-panel {
    display: none;
}

.pfc-native-panel.active {
    display: block;
}

.pfc-unified-axis {
    display: none;
    grid-template-columns: 230px minmax(0, 1fr);
    gap: 0;
    border: 1px solid var(--line);
    border-radius: 22px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 18px 42px rgba(15,23,42,.08);
    margin-bottom: 24px;
}

.pfc-unified-axis.active {
    display: grid;
}

.pfc-axis-label {
    background: var(--axis-color);
    color: #fff;
    display: grid;
    place-items: start;
    padding: 28px;
}

.pfc-axis-label span {
    font-weight: 900;
    font-size: 1.35rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    position: sticky;
    top: 110px;
}

.pfc-axis-content {
    padding: 24px;
    display: grid;
    gap: 24px;
    min-width: 0;
}

.pfc-field-block {
    padding: 22px;
    border-left: 5px solid var(--axis-color);
}

.pfc-field-block header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: start;
    margin-bottom: 18px;
}

.pfc-field-block header span,
.pfc-semester-head span {
    background: #d71920;
    color: #fff;
    border-radius: 999px;
    padding: 7px 12px;
    font-weight: 900;
}

.pfc-semester-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(255px, 1fr));
    gap: 16px;
}

.pfc-semester-card {
    border: 1px solid #d8eef8;
    border-radius: 14px;
    overflow: hidden;
    background: #f8fbff;
}

.pfc-semester-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #dbf6ff;
    color: #071b52;
    padding: 12px 14px;
}

.pfc-subject-table {
    padding: 10px;
}

.pfc-subject-head,
.pfc-subject-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 40px;
    gap: 8px;
    align-items: center;
}

.pfc-subject-head {
    color: #0f75bc;
    text-transform: uppercase;
    font-size: .78rem;
    font-weight: 900;
    border-bottom: 1px solid #e6edf5;
    padding-bottom: 6px;
    margin-bottom: 4px;
}

.pfc-subject-row {
    width: 100%;
    border: 0;
    border-bottom: 1px solid #e6edf5;
    background: transparent;
    text-align: left;
    padding: 8px 0;
    cursor: pointer;
    color: #44546a;
}

.pfc-subject-row:hover {
    color: #d71920;
}

.pfc-subject-row b {
    text-align: center;
    color: #071b52;
}

.pfc-subject-detail {
    background: #071b52;
    color: #fff;
    border-radius: 18px;
    padding: 18px 22px;
    display: grid;
    gap: 4px;
}

.pfc-subject-detail span {
    color: #dce7f8;
}

.pfc-practice-native-head {
    margin-bottom: 18px;
}

.pfc-resource-grid {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.pfc-resource-card,
.pfc-research-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 14px;
    box-shadow: 0 14px 32px rgba(15,23,42,.06);
}

.pfc-resource-card img,
.pfc-research-image img {
    width: 100%;
    height: 240px;
    object-fit: contain;
    display: block;
    border-radius: 14px;
    background: #f8fafc;
}

.pfc-resource-card strong {
    color: #071b52;
}

.pfc-native-text-block {
    margin-top: 22px;
    padding: 24px;
}

.pfc-native-text-block h4 {
    color: #071b52;
}

.pfc-research-grid {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.pfc-research-card {
    padding: 20px;
}

.pfc-research-card header span {
    display: inline-flex;
    background: #fff4f4;
    color: #d71920;
    border: 1px solid #ffd6d6;
    border-radius: 999px;
    padding: 6px 10px;
    font-weight: 900;
    font-size: .8rem;
}

.pfc-research-card h3 {
    color: #071b52;
    margin: 12px 0;
}

.pfc-research-points {
    display: grid;
    gap: 10px;
    max-height: 420px;
    overflow: auto;
}

.pfc-research-points p {
    background: #f8fafc;
    border: 1px solid #e6edf5;
    border-radius: 12px;
    padding: 10px;
    margin: 0;
    color: #44546a;
}

.pfc-reg-tools {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) minmax(220px, .5fr) auto auto;
    gap: 12px;
    margin-bottom: 24px;
}

.pfc-reg-tools input,
.pfc-reg-tools select {
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 12px 14px;
    font: inherit;
}

.pfc-reg-layout {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

.pfc-reg-index {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 18px;
    max-height: 75vh;
    overflow: auto;
    position: sticky;
    top: 110px;
}

.pfc-reg-index h3 {
    color: #071b52;
}

.pfc-reg-index button {
    width: 100%;
    text-align: left;
    border-radius: 12px;
    margin-bottom: 8px;
}

.pfc-reg-accordion {
    display: grid;
    gap: 14px;
}

.pfc-reg-item {
    overflow: hidden;
}

.pfc-reg-title {
    width: 100%;
    border: 0;
    background: #fff;
    color: #071b52;
    padding: 18px 20px;
    display: flex;
    justify-content: space-between;
    gap: 18px;
    text-align: left;
    font-weight: 900;
    cursor: pointer;
}

.pfc-reg-title b {
    color: #d71920;
    font-size: 1.25rem;
}

.pfc-reg-content {
    border-top: 1px solid var(--line);
    padding: 18px 20px;
    background: #fbfcff;
}

.pfc-reg-content p {
    color: #44546a;
    line-height: 1.65;
}

.pfc-crono-filters > div {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 16px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.pfc-crono-filters strong {
    color: #071b52;
    margin-right: 8px;
}

.pfc-filter {
    border-radius: 999px;
}

.pfc-crono-summary {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 18px;
    margin-bottom: 18px;
}

.pfc-crono-summary strong {
    color: #d71920;
    font-size: 1.6rem;
}

.pfc-crono-table {
    overflow: hidden;
}

.pfc-crono-header,
.pfc-crono-row {
    display: grid;
    grid-template-columns: 90px 120px 130px 140px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
}

.pfc-crono-header {
    background: #071b52;
    color: #fff;
    font-weight: 900;
    padding: 14px 18px;
}

.pfc-crono-row {
    padding: 14px 18px;
    border-top: 1px solid var(--line);
}

.pfc-crono-row span {
    color: #667085;
}

.pfc-crono-row strong {
    color: #d71920;
}

.pfc-crono-row p {
    margin: 0;
    color: #44546a;
}

.pfc-native-modal {
    position: fixed;
    inset: 0;
    display: none;
    z-index: 9999;
    background: rgba(7,17,38,.88);
    padding: 24px;
}

.pfc-native-modal.active {
    display: grid;
    place-items: center;
}

.pfc-native-modal-box {
    width: min(1180px, 96vw);
    height: min(840px, 92vh);
    background: #fff;
    border-radius: 24px;
    overflow: hidden;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
}

.pfc-native-modal-head {
    padding: 14px 20px;
    border-bottom: 1px solid var(--line);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.pfc-native-modal-head strong {
    color: #071b52;
}

.pfc-native-modal-close {
    border: 1px solid #ffd1d1;
    background: #fff4f4;
    color: #d71920;
    border-radius: 50%;
    width: 42px;
    height: 42px;
    font-size: 1.4rem;
    cursor: pointer;
}

.pfc-native-modal-content {
    min-height: 0;
    display: grid;
    place-items: center;
    background: #f8fafc;
    overflow: auto;
}

.pfc-native-modal-content img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.teacher-email-placeholder {
    color: #667085;
    font-weight: 700;
}

@media (max-width: 980px) {
    .pfc-identity-hero,
    .pfc-native-two,
    .pfc-unified-hero,
    .pfc-unified-axis,
    .pfc-reg-layout {
        grid-template-columns: 1fr;
    }

    .pfc-axis-label {
        min-height: auto;
    }

    .pfc-reg-tools {
        grid-template-columns: 1fr;
    }

    .pfc-reg-index {
        position: static;
        max-height: none;
    }

    .pfc-crono-header {
        display: none;
    }

    .pfc-crono-row {
        grid-template-columns: 1fr;
    }
}



/* =========================================================
   PREMIUM REAL UNIFICADO PFC - OVERRIDE FINAL
   ========================================================= */

/* HOME HERO PREMIUM */
.pfc-premium-hero{position:relative;min-height:680px;overflow:hidden;background:#071126;isolation:isolate}
.pfc-hero-slider{position:absolute;inset:0;width:100%;height:100%}
.pfc-hero-slide{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity 1s ease,transform 1.2s ease;transform:scale(1.03)}
.pfc-hero-slide.is-active{opacity:1;pointer-events:auto;transform:scale(1)}
.pfc-hero-slide img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.08) contrast(1.02)}
.pfc-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,17,38,.96),rgba(7,17,38,.82) 36%,rgba(7,17,38,.42) 68%,rgba(7,17,38,.22)),linear-gradient(180deg,rgba(7,17,38,.18),rgba(7,17,38,.76));z-index:1}
.pfc-hero-content{position:relative;z-index:2;min-height:680px;display:flex;flex-direction:column;justify-content:center;max-width:1180px;color:#fff}
.pfc-hero-kicker{display:inline-flex;width:fit-content;padding:9px 16px;margin-bottom:22px;border:1px solid rgba(255,255,255,.26);border-radius:999px;background:rgba(255,255,255,.1);backdrop-filter:blur(14px);color:#fff;font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.pfc-hero-content h1{max-width:840px;margin:0;color:#fff;font-size:clamp(2.6rem,5vw,5.4rem);line-height:.98;letter-spacing:-.06em;font-weight:900;text-wrap:balance}
.pfc-hero-content p{max-width:690px;margin:26px 0 0;color:#e6edf8;font-size:clamp(1.05rem,1.4vw,1.3rem);line-height:1.7}
.pfc-hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.pfc-hero-btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 24px;border-radius:14px;font-weight:900;text-decoration:none;transition:transform .22s ease,box-shadow .22s ease,background .22s ease}
.pfc-hero-btn.primary{background:#d71920;color:#fff;box-shadow:0 14px 32px rgba(215,25,32,.32)}
.pfc-hero-btn.secondary{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.52);backdrop-filter:blur(14px)}
.pfc-hero-btn:hover{transform:translateY(-2px)}
.pfc-hero-btn.primary:hover{background:#b9141a;box-shadow:0 18px 38px rgba(215,25,32,.42)}
.pfc-hero-btn.secondary:hover{background:rgba(255,255,255,.16)}
.pfc-hero-control{position:absolute;top:50%;z-index:4;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(7,17,38,.42);color:#fff;font-size:2.3rem;line-height:1;cursor:pointer;backdrop-filter:blur(12px);transition:background .22s ease,transform .22s ease}
.pfc-hero-control:hover{background:rgba(215,25,32,.82);transform:translateY(-50%) scale(1.05)}
.pfc-hero-control.prev{left:32px}.pfc-hero-control.next{right:32px}
.pfc-hero-dots{position:absolute;z-index:5;left:50%;bottom:32px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;background:rgba(7,17,38,.48);backdrop-filter:blur(14px)}
.pfc-hero-dots button{width:10px;height:10px;border:0;border-radius:999px;background:rgba(255,255,255,.46);cursor:pointer;transition:width .25s ease,background .25s ease}
.pfc-hero-dots button.is-active{width:34px;background:#d71920}
.home-premium-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.home-premium-grid a{display:block;padding:26px;border-radius:24px;background:#fff;border:1px solid var(--line,#e6edf5);box-shadow:0 18px 42px rgba(15,23,42,.08);text-decoration:none;transition:.25s ease}
.home-premium-grid a:hover{transform:translateY(-5px);box-shadow:0 28px 62px rgba(15,23,42,.14)}
.home-premium-grid span{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff4f4;color:#d71920;font-weight:900;margin-bottom:16px}
.home-premium-grid h3{color:#071b52;margin:0 0 8px}.home-premium-grid p{color:#667085;margin:0;line-height:1.6}

/* SHARED PREMIUM */
.teachers-premium,.pfc-crono-premium,.regulation-premium,.curricular-map-premium,.research-premium{background:radial-gradient(circle at top left,rgba(56,189,248,.08),transparent 34%),linear-gradient(180deg,#fff,#f7f9fc)}
.teachers-intro-premium,.regulation-intro,.curricular-map-intro{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:24px;align-items:center;margin-bottom:24px}
.teachers-intro-premium h2,.regulation-intro h2,.curricular-map-intro h2{color:#071b52;font-size:clamp(2rem,3vw,3.2rem);letter-spacing:-.04em;margin-bottom:12px}
.teachers-intro-premium p,.regulation-intro p,.curricular-map-intro p{max-width:850px;color:#667085;line-height:1.7;font-size:1.05rem}
.teachers-count-card,.regulation-count-card,.curricular-map-count,.crono-summary-card{min-height:160px;border-radius:24px;display:grid;place-items:center;text-align:center;padding:24px;background:linear-gradient(135deg,#071126,#1c245b),radial-gradient(circle at top right,rgba(56,189,248,.28),transparent 42%);color:#fff;box-shadow:0 20px 48px rgba(7,17,38,.18)}
.teachers-count-card strong,.regulation-count-card strong,.curricular-map-count strong,.crono-summary-card strong{display:block;color:#fff;font-size:4rem;line-height:1;font-weight:900}
.teachers-count-card span,.regulation-count-card span,.curricular-map-count span,.crono-summary-card span,.crono-summary-card p{color:#dce7f8;font-weight:800}

/* DOCENTES */
.teachers-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:16px;align-items:end;padding:22px;margin-bottom:26px;border:1px solid var(--line,#e6edf5);border-radius:24px;background:#fff;box-shadow:0 18px 42px rgba(15,23,42,.07)}
.teachers-search,.teachers-filter{display:grid;gap:8px}.teachers-search label,.teachers-filter span{color:#071b52;font-weight:900}
.teachers-search input{width:100%;min-height:50px;border:1px solid #dce5f2;border-radius:15px;padding:0 16px;color:#1f2937;background:#fff;font:inherit;outline:none}
.teachers-filter>div{display:flex;gap:8px}.teacher-view-btn{min-height:42px;padding:0 15px;border-radius:999px;border:1px solid #dce5f2;background:#fff;color:#071b52;font-weight:900;cursor:pointer}.teacher-view-btn:hover,.teacher-view-btn.active{background:#d71920;border-color:#d71920;color:#fff}
.teachers-grid-premium{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;align-items:stretch}
.teacher-card-premium{position:relative;overflow:hidden;display:grid;grid-template-rows:310px minmax(0,1fr);min-height:520px;border-radius:26px;background:#fff;border:1px solid var(--line,#e6edf5);box-shadow:0 18px 42px rgba(15,23,42,.08);transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.teacher-card-premium:hover{transform:translateY(-6px);border-color:rgba(215,25,32,.35);box-shadow:0 28px 62px rgba(15,23,42,.16)}
.teacher-photo-premium{position:relative;width:100%;height:310px;overflow:hidden;background:linear-gradient(135deg,#071126,#1c245b)}
.teacher-photo-premium::after{content:"";position:absolute;inset:auto 0 0 0;height:42%;background:linear-gradient(180deg,transparent,rgba(7,17,38,.45));pointer-events:none}
.teacher-photo-premium img{width:100%;height:100%;object-fit:cover;object-position:center 28%;display:block;transform:scale(1.01);transition:transform .32s ease,filter .32s ease}
.teacher-card-premium:hover .teacher-photo-premium img{transform:scale(1.06);filter:saturate(1.05) contrast(1.03)}
.teacher-avatar-fallback{width:100%;height:100%;display:grid;place-items:center;color:#fff;font-size:3rem;font-weight:900}
.teacher-info-premium{display:grid;align-content:start;gap:10px;padding:22px}
.teacher-info-premium>span{display:inline-flex;width:fit-content;padding:6px 10px;border-radius:999px;background:#fff4f4;color:#d71920;font-size:.76rem;font-weight:900;text-transform:uppercase}
.teacher-info-premium h2{color:#071b52;font-size:1.28rem;line-height:1.15;margin:0}.teacher-info-premium p{color:#667085;line-height:1.55;margin:0}
.teacher-actions-premium{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.teacher-actions-premium a,.teacher-actions-premium button,.research-more-btn,.production-action,.research-card-action{min-height:42px;padding:0 15px;border-radius:999px;border:1px solid #ffd1d1;background:#fff4f4;color:#d71920;font:inherit;font-weight:900;text-decoration:none;cursor:pointer;transition:.22s ease}
.teacher-actions-premium a:hover,.teacher-actions-premium button:hover,.research-more-btn:hover,.production-action:hover,.research-card-action:hover{background:#d71920;color:#fff;transform:translateY(-1px)}
.teachers-grid-premium.compact-view{grid-template-columns:1fr}.teachers-grid-premium.compact-view .teacher-card-premium{grid-template-columns:160px minmax(0,1fr);grid-template-rows:auto;min-height:180px}.teachers-grid-premium.compact-view .teacher-photo-premium{height:100%;min-height:180px}
.teacher-card-premium.is-hidden{display:none}.teachers-empty,.regulation-empty,.crono-empty-state,.curricular-empty,.research-empty{margin-top:24px;padding:36px;border:1px dashed #ffd1d1;border-radius:24px;background:#fff7f7;text-align:center}.teachers-empty strong,.regulation-empty strong,.crono-empty-state strong,.curricular-empty strong,.research-empty strong{display:block;color:#d71920;font-size:1.2rem;margin-bottom:8px}
.teacher-profile-modal{position:fixed;inset:0;z-index:9999;display:none}.teacher-profile-modal.is-open{display:block}.teacher-profile-modal-backdrop{position:absolute;inset:0;background:rgba(7,17,38,.78);backdrop-filter:blur(8px)}
.teacher-profile-modal-box{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(760px,calc(100vw - 32px));border-radius:28px;background:#fff;box-shadow:0 34px 90px rgba(0,0,0,.35);overflow:hidden}.teacher-profile-modal-close{position:absolute;top:16px;right:16px;z-index:3;width:44px;height:44px;border:1px solid #ffd1d1;border-radius:50%;background:#fff4f4;color:#d71920;font-size:1.5rem;cursor:pointer}.teacher-profile-modal-content{display:grid;grid-template-columns:280px minmax(0,1fr)}.teacher-profile-modal-photo{min-height:360px;background:linear-gradient(135deg,#071126,#1c245b)}.teacher-profile-modal-photo img{width:100%;height:100%;object-fit:cover;object-position:center 28%}.teacher-profile-modal-content>div:last-child{padding:38px 32px;display:grid;align-content:center;gap:12px}.teacher-profile-modal-content span{display:inline-flex;width:fit-content;padding:6px 10px;border-radius:999px;background:#fff4f4;color:#d71920;font-size:.76rem;font-weight:900;text-transform:uppercase}.teacher-profile-modal-content h2{color:#071b52;font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.05;margin:0}.teacher-profile-modal-content p{color:#667085;line-height:1.65;margin:0}

/* CRONOGRAMA */
.crono-dashboard{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:stretch;margin-bottom:22px}.crono-summary-card,.crono-search-card,.crono-filter-panel,.crono-table-shell{background:#fff;border:1px solid var(--line,#e6edf5);border-radius:22px;box-shadow:0 18px 42px rgba(15,23,42,.07)}.crono-search-card{padding:24px;display:grid;gap:10px;align-content:center}.crono-search-card label{color:#071b52;font-weight:900}.crono-search-card input{width:100%;min-height:52px;border:1px solid #dce5f2;border-radius:15px;padding:0 16px;color:#1f2937;font:inherit;outline:none}.crono-filter-panel{display:grid;gap:18px;padding:22px;margin-bottom:24px}.crono-filter-group{display:grid;gap:12px}.crono-filter-group strong{color:#071b52;font-weight:900}.crono-chip-row{display:flex;flex-wrap:wrap;gap:10px}.crono-filter-chip{min-height:42px;padding:0 16px;border-radius:999px;border:1px solid #dce5f2;background:#fff;color:#071b52;font-weight:900;cursor:pointer;transition:.22s ease}.crono-filter-chip:hover{border-color:#d71920;color:#d71920;transform:translateY(-1px)}.crono-filter-chip.active{background:#d71920;border-color:#d71920;color:#fff;box-shadow:0 10px 22px rgba(215,25,32,.22)}.crono-table-shell{overflow:hidden}.crono-table-head,.crono-row{display:grid;grid-template-columns:90px 130px 130px 150px minmax(0,1fr);gap:14px;align-items:center}.crono-table-head{background:#071b52;color:#fff;padding:15px 20px;font-weight:900;font-size:.84rem;text-transform:uppercase;letter-spacing:.04em}.crono-row{padding:16px 20px;border-top:1px solid #e6edf5;background:#fff;transition:.22s ease}.crono-row:hover{background:#f8fafc}.crono-row.is-hidden{display:none}.crono-year,.crono-period,.crono-month{color:#667085;font-weight:800}.crono-date{color:#d71920;font-weight:900}.crono-activity{margin:0;color:#344054;line-height:1.5}

/* REGULATION */
.regulation-tools{display:grid;grid-template-columns:minmax(280px,1fr) minmax(230px,.55fr) auto;gap:16px;align-items:end;padding:22px;margin-bottom:24px;border:1px solid var(--line,#e6edf5);border-radius:24px;background:#fff;box-shadow:0 18px 42px rgba(15,23,42,.07)}.regulation-search,.regulation-select{display:grid;gap:8px}.regulation-search label,.regulation-select label{color:#071b52;font-weight:900}.regulation-search input,.regulation-select select{width:100%;min-height:50px;border:1px solid #dce5f2;border-radius:15px;padding:0 16px;color:#1f2937;background:#fff;font:inherit;outline:none}.regulation-actions{display:flex;flex-wrap:wrap;gap:10px}.regulation-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:24px;align-items:start}.regulation-sidebar{position:sticky;top:110px;max-height:76vh;overflow:auto;padding:20px;border:1px solid var(--line,#e6edf5);border-radius:24px;background:#fff;box-shadow:0 18px 42px rgba(15,23,42,.07)}.regulation-sidebar h3{margin:0 0 16px;color:#071b52}.regulation-sidebar nav{display:grid;gap:10px}.regulation-sidebar button{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;width:100%;border:1px solid #dce5f2;border-radius:14px;padding:10px;background:#fff;color:#071b52;text-align:left;font-weight:800;cursor:pointer}.regulation-sidebar button span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#f1f5f9;color:#d71920;font-size:.78rem;font-weight:900}.regulation-sidebar button:hover{border-color:#d71920;background:#fff4f4;color:#d71920}.regulation-content{display:grid;gap:16px;min-width:0}.regulation-item{border:1px solid var(--line,#e6edf5);border-radius:22px;background:#fff;overflow:hidden;box-shadow:0 14px 34px rgba(15,23,42,.06)}.regulation-item.is-hidden{display:none}.regulation-title{width:100%;border:0;background:#fff;color:#071b52;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:20px 22px;text-align:left;cursor:pointer}.regulation-title span{display:grid;gap:4px}.regulation-title small{color:#d71920;font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}.regulation-title strong{color:#071b52;font-size:1.08rem;line-height:1.25}.regulation-title b{width:38px;height:38px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:#fff4f4;color:#d71920;font-size:1.4rem;transition:.22s ease}.regulation-item.is-open .regulation-title b{transform:rotate(45deg)}.regulation-body{padding:0 22px 22px;border-top:1px solid #e6edf5;background:#fbfcff}.regulation-body p{color:#44546a;line-height:1.75;margin:16px 0 0}

/* PLAN UNIFICADO */
.unified-plan-premium{display:grid;gap:28px}.unified-plan-hero{display:grid;grid-template-columns:minmax(0,1fr) 190px;align-items:center;gap:28px;padding:34px;border-radius:24px;background:linear-gradient(135deg,rgba(7,17,38,.96),rgba(28,36,91,.92)),radial-gradient(circle at top right,rgba(56,189,248,.32),transparent 42%);color:#fff;box-shadow:0 24px 56px rgba(7,17,38,.18)}.unified-plan-kicker{display:inline-flex;width:fit-content;padding:8px 14px;margin-bottom:14px;border-radius:999px;background:rgba(215,25,32,.95);color:#fff;font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.unified-plan-hero h2{margin:0;color:#fff;font-size:clamp(2rem,4vw,4rem);line-height:1;letter-spacing:-.05em}.unified-plan-hero p{max-width:780px;margin:18px 0 0;color:#dce7f8;font-size:1.08rem;line-height:1.7}.unified-plan-credit-box{min-height:160px;border-radius:24px;display:grid;place-items:center;text-align:center;padding:22px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(14px)}.unified-plan-credit-box span{color:#dce7f8;font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}.unified-plan-credit-box strong{display:block;color:#fff;font-size:4rem;line-height:1;font-weight:900}.unified-plan-credit-box p{margin:0;color:#dce7f8;font-size:.9rem}.unified-plan-toolbar{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:18px;align-items:end;padding:22px;border:1px solid var(--line,#e6edf5);border-radius:22px;background:#fff;box-shadow:0 16px 38px rgba(15,23,42,.06)}.unified-plan-search,.unified-plan-filter{display:grid;gap:10px}.unified-plan-search label,.unified-plan-filter span{color:#071b52;font-weight:900}.unified-plan-search input{width:100%;min-height:48px;border:1px solid #dce5f2;border-radius:14px;padding:0 16px;color:#1f2937;font:inherit;outline:none}.unified-semester-filters,.unified-axis-tabs{display:flex;flex-wrap:wrap;gap:8px}.unified-semester-filters button,.unified-axis-tab{border:1px solid #dce5f2;background:#fff;color:#071b52;min-height:42px;padding:0 14px;border-radius:999px;font-weight:900;cursor:pointer;transition:.2s ease}.unified-semester-filters button:hover,.unified-semester-filters button.active{background:#d71920;color:#fff;border-color:#d71920}.unified-axis-tab{border-radius:14px;padding:0 18px}.unified-axis-tab:hover,.unified-axis-tab.active{background:var(--axis-color);border-color:var(--axis-color);color:#fff;transform:translateY(-1px)}.unified-axis-panel{display:none;grid-template-columns:245px minmax(0,1fr);border:1px solid var(--line,#e6edf5);border-radius:26px;overflow:hidden;background:#fff;box-shadow:0 20px 48px rgba(15,23,42,.08)}.unified-axis-panel.active{display:grid}.unified-axis-label{padding:32px 26px;background:var(--axis-color);color:#fff}.unified-axis-label span{position:sticky;top:120px;display:block;font-size:1.2rem;line-height:1.18;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.unified-axis-label strong{position:sticky;top:230px;display:inline-flex;margin-top:20px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.16);color:#fff}.unified-axis-content{display:grid;gap:26px;padding:28px;min-width:0}.unified-field-block{border:1px solid #e3ebf5;border-left:6px solid var(--axis-color);border-radius:22px;background:#fff;overflow:hidden}.unified-field-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:22px 24px;background:linear-gradient(180deg,#fff,#f8fafc);border-bottom:1px solid #e6edf5}.unified-field-header span{display:inline-flex;margin-bottom:8px;color:#d71920;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.unified-field-header h3{margin:0;color:#071b52;font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.16}.unified-field-header strong{display:inline-flex;align-items:center;justify-content:center;min-width:70px;padding:9px 14px;border-radius:999px;background:#d71920;color:#fff;font-weight:900}.unified-semester-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:16px;padding:22px}.unified-semester-card{border:1px solid #d8eef8;border-radius:16px;overflow:hidden;background:#f8fbff}.unified-semester-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;background:#d9f4ff;color:#071b52}.unified-semester-head span{display:inline-flex;min-width:42px;padding:5px 9px;border-radius:999px;background:#d71920;color:#fff;font-size:.85rem;font-weight:900}.unified-subject-table{padding:10px 12px 12px}.unified-subject-table-head,.unified-subject-row{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:10px;align-items:center}.unified-subject-table-head{padding-bottom:8px;margin-bottom:4px;border-bottom:1px solid #e6edf5;color:#0f75bc;font-size:.75rem;font-weight:900;text-transform:uppercase}.unified-subject-row{width:100%;border:0;border-bottom:1px solid #e6edf5;background:transparent;padding:9px 0;text-align:left;color:#44546a;cursor:pointer}.unified-subject-row:hover{color:#d71920;background:#fff8f8}.unified-subject-row b{text-align:center;color:#071b52}.unified-subject-row.is-hidden,.unified-semester-card.is-hidden,.unified-field-block.is-hidden{display:none}.unified-subject-detail{display:grid;gap:6px;padding:22px 24px;border-radius:20px;background:#071b52;color:#fff;box-shadow:0 18px 42px rgba(7,17,38,.16)}.unified-subject-detail span{color:#9fb2d1;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.unified-subject-detail strong{color:#fff;font-size:1.25rem}.unified-subject-detail p{margin:0;color:#dce7f8;line-height:1.6}

/* MAPA CURRICULAR */
.curricular-map-tools{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:18px;align-items:end;padding:22px;margin-bottom:24px;border:1px solid var(--line,#e6edf5);border-radius:24px;background:#fff;box-shadow:0 18px 42px rgba(15,23,42,.07)}.curricular-search,.curricular-axis-filter{display:grid;gap:10px}.curricular-search label,.curricular-axis-filter span{color:#071b52;font-weight:900}.curricular-search input{width:100%;min-height:50px;border:1px solid #dce5f2;border-radius:15px;padding:0 16px;color:#1f2937;background:#fff;font:inherit;outline:none}.curricular-axis-filter>div{display:flex;flex-wrap:wrap;gap:10px}.curricular-filter{min-height:42px;padding:0 15px;border-radius:999px;border:1px solid #dce5f2;background:#fff;color:#071b52;font-weight:900;cursor:pointer}.curricular-filter:hover,.curricular-filter.active{background:#d71920;border-color:#d71920;color:#fff;transform:translateY(-1px)}.curricular-map-layout{display:grid;grid-template-columns:280px minmax(0,1fr) 330px;gap:24px;align-items:start}.curricular-map-sidebar,.curricular-detail-panel{position:sticky;top:110px;border:1px solid var(--line,#e6edf5);border-radius:24px;background:#fff;box-shadow:0 18px 42px rgba(15,23,42,.07)}.curricular-map-sidebar{padding:20px}.curricular-map-sidebar h3{color:#071b52;margin:0 0 16px}.curricular-legend{display:grid;gap:10px}.curricular-legend button{display:grid;grid-template-columns:16px minmax(0,1fr);gap:10px;align-items:center;width:100%;border:1px solid #dce5f2;border-radius:14px;padding:11px 12px;background:#fff;color:#071b52;text-align:left;font-weight:800;cursor:pointer}.curricular-legend button span{width:14px;height:14px;border-radius:50%;background:var(--axis-color)}.curricular-map-note{margin-top:18px;padding:16px;border-radius:16px;background:#f8fafc;border:1px solid #e6edf5}.curricular-map-note strong{color:#071b52}.curricular-map-note p{margin-bottom:0;color:#667085;line-height:1.6}.curricular-map-board{display:grid;gap:18px;min-width:0}.curricular-card{border-radius:22px;background:#fff;border:1px solid var(--line,#e6edf5);border-left:7px solid var(--axis-color);box-shadow:0 16px 38px rgba(15,23,42,.07);transition:.24s ease}.curricular-card:hover{transform:translateY(-3px);box-shadow:0 24px 52px rgba(15,23,42,.12)}.curricular-card.is-hidden{display:none}.curricular-card-button{width:100%;border:0;background:transparent;padding:22px;display:grid;grid-template-columns:54px minmax(0,1fr);gap:18px;text-align:left;cursor:pointer;font:inherit}.curricular-card-number{width:54px;height:54px;display:grid;place-items:center;border-radius:18px;background:#f8fafc;color:var(--axis-color);font-weight:900}.curricular-card small{display:inline-flex;margin-bottom:8px;color:var(--axis-color);font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.curricular-card h3{color:#071b52;font-size:1.25rem;line-height:1.2;margin:0 0 8px}.curricular-card p{color:#667085;line-height:1.55;margin:0}.curricular-detail-panel{padding:24px;background:linear-gradient(135deg,#071126,#1c245b),radial-gradient(circle at top right,rgba(56,189,248,.24),transparent 44%);color:#fff}.curricular-detail-panel span{color:#9fb2d1;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.curricular-detail-panel h3{color:#fff;line-height:1.15;margin:8px 0 12px}.curricular-detail-panel p{color:#dce7f8;line-height:1.65}.curricular-detail-panel ul{display:grid;gap:8px;padding-left:18px;color:#fff}.curricular-detail-panel li{color:#dce7f8;line-height:1.5}.curricular-detail-chip{display:inline-flex;width:fit-content;margin:8px 0 12px;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;font-weight:900}

/* INVESTIGACION */
.research-hero-panel{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:stretch;margin-bottom:28px}.research-hero-panel>div{padding:34px;border-radius:26px;background:linear-gradient(135deg,#071126,#1c245b),radial-gradient(circle at top right,rgba(56,189,248,.3),transparent 42%);color:#fff;box-shadow:0 24px 56px rgba(7,17,38,.18)}.research-hero-panel h2{max-width:850px;margin:10px 0 0;color:#fff;font-size:clamp(2rem,4vw,4rem);line-height:1;letter-spacing:-.05em}.research-hero-panel p{max-width:820px;margin:20px 0 0;color:#dce7f8;font-size:1.06rem;line-height:1.7}.research-stats{display:grid;gap:14px}.research-stats article{display:grid;place-items:center;text-align:center;padding:22px;border-radius:22px;background:#fff;border:1px solid var(--line,#e6edf5);box-shadow:0 18px 42px rgba(15,23,42,.07)}.research-stats strong{color:#d71920;font-size:2.8rem;line-height:1;font-weight:900}.research-stats span{margin-top:6px;color:#071b52;font-weight:900}.research-tabs{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:28px;padding:12px;border-radius:20px;background:#fff;border:1px solid var(--line,#e6edf5);box-shadow:0 14px 34px rgba(15,23,42,.06)}.research-tab{min-height:48px;padding:0 18px;border-radius:14px;border:1px solid #dce5f2;background:#fff;color:#071b52;font-weight:900;cursor:pointer;transition:.22s ease}.research-tab:hover,.research-tab.active{background:#d71920;border-color:#d71920;color:#fff;transform:translateY(-1px)}.research-tab-panel{display:none}.research-tab-panel.active{display:block}.research-section-head{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:24px}.research-section-head h2{color:#071b52;font-size:clamp(1.8rem,3vw,3rem);letter-spacing:-.04em;margin-bottom:10px}.research-section-head p{max-width:780px;color:#667085;line-height:1.7}.research-line-grid,.production-grid,.research-resource-grid{display:grid;gap:20px}.research-line-grid,.production-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.research-line-card,.production-card,.research-resource-card,.research-detail-panel{background:#fff;border:1px solid var(--line,#e6edf5);border-radius:24px;box-shadow:0 16px 38px rgba(15,23,42,.07)}.research-line-card,.production-card,.research-resource-card{padding:24px;transition:.24s ease}.research-line-card:hover,.production-card:hover,.research-resource-card:hover{transform:translateY(-4px);box-shadow:0 24px 52px rgba(15,23,42,.12);border-color:rgba(215,25,32,.28)}.research-line-card>span{display:inline-flex;width:42px;height:42px;border-radius:50%;align-items:center;justify-content:center;background:#fff4f4;color:#d71920;font-weight:900;margin-bottom:18px}.research-line-card h3,.production-card h3,.research-resource-card h3{color:#071b52;line-height:1.18;margin-bottom:10px}.research-line-card p,.production-card p{color:#667085;line-height:1.65}.production-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:18px;background:#eef7ff;font-size:1.7rem;margin-bottom:16px}.production-card>span,.research-resource-card header span{display:inline-flex;width:fit-content;margin-bottom:10px;padding:6px 10px;border-radius:999px;background:#fff4f4;color:#d71920;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.research-search{min-width:min(100%,360px);display:grid;gap:8px}.research-search label{color:#071b52;font-weight:900}.research-search input{width:100%;min-height:48px;border:1px solid #dce5f2;border-radius:14px;padding:0 16px;color:#1f2937;font:inherit;outline:none}.research-filter-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.research-filter{min-height:42px;padding:0 15px;border-radius:999px;border:1px solid #dce5f2;background:#fff;color:#071b52;font-weight:900;cursor:pointer}.research-filter:hover,.research-filter.active{background:#d71920;border-color:#d71920;color:#fff}.research-resource-grid{grid-template-columns:repeat(auto-fit,minmax(310px,1fr))}.research-resource-card{display:grid;gap:16px}.research-resource-card.is-hidden{display:none}.research-image-button{width:100%;border:0;background:#f8fafc;border-radius:18px;overflow:hidden;padding:0;cursor:pointer}.research-image-button img{width:100%;height:290px;object-fit:contain;display:block}.research-text-list{display:grid;gap:10px;max-height:360px;overflow:auto;padding-right:4px}.research-text-list p{margin:0;padding:11px 12px;border-radius:12px;background:#f8fafc;border:1px solid #e6edf5;color:#44546a;line-height:1.55}.research-resource-card footer{display:flex;justify-content:flex-end}.research-detail-panel{margin-top:28px;padding:22px 24px;background:#071b52;color:#fff}.research-detail-panel span{color:#9fb2d1;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.research-detail-panel strong{display:block;margin:6px 0;color:#fff;font-size:1.25rem}.research-detail-panel p{color:#dce7f8;margin-bottom:0;line-height:1.6}

/* MODAL IMAGE */
.pfc-native-modal{position:fixed;inset:0;display:none;z-index:9999;background:rgba(7,17,38,.88);padding:24px}.pfc-native-modal.active{display:grid;place-items:center}.pfc-native-modal-box{width:min(1180px,96vw);height:min(840px,92vh);background:#fff;border-radius:24px;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr)}.pfc-native-modal-head{padding:14px 20px;border-bottom:1px solid #e6edf5;display:flex;justify-content:space-between;align-items:center}.pfc-native-modal-head strong{color:#071b52}.pfc-native-modal-close{border:1px solid #ffd1d1;background:#fff4f4;color:#d71920;border-radius:50%;width:42px;height:42px;font-size:1.4rem;cursor:pointer}.pfc-native-modal-content{min-height:0;display:grid;place-items:center;background:#f8fafc;overflow:auto}.pfc-native-modal-content img{max-width:100%;max-height:100%;object-fit:contain}

@media(max-width:1100px){
.pfc-hero-content{padding-inline:24px}
.teachers-intro-premium,.regulation-intro,.curricular-map-intro,.regulation-tools,.regulation-layout,.unified-plan-hero,.unified-plan-toolbar,.unified-axis-panel,.curricular-map-tools,.research-hero-panel{grid-template-columns:1fr}
.regulation-sidebar,.curricular-map-sidebar,.curricular-detail-panel{position:static;max-height:none}
.curricular-map-layout{grid-template-columns:1fr}
.research-stats{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:760px){
.pfc-premium-hero,.pfc-hero-content{min-height:620px}.pfc-hero-content{justify-content:flex-end;padding-bottom:110px}.pfc-hero-content h1{font-size:clamp(2.2rem,12vw,3.7rem)}.pfc-hero-control{width:44px;height:44px;font-size:1.8rem}.pfc-hero-control.prev{left:16px}.pfc-hero-control.next{right:16px}.pfc-hero-actions{display:grid;width:100%}.pfc-hero-btn{width:100%}
.crono-dashboard,.teachers-toolbar,.teacher-profile-modal-content{grid-template-columns:1fr}.crono-table-head{display:none}.crono-row{grid-template-columns:1fr;gap:6px;padding:18px}.crono-row span,.crono-row strong{display:flex;justify-content:space-between;gap:12px}.crono-year::before{content:"Año";color:#071b52;font-weight:900}.crono-period::before{content:"Periodo";color:#071b52;font-weight:900}.crono-month::before{content:"Mes";color:#071b52;font-weight:900}.crono-date::before{content:"Fecha";color:#071b52;font-weight:900}.crono-activity{margin-top:10px;padding-top:10px;border-top:1px solid #e6edf5}
.research-stats{grid-template-columns:1fr}.research-tabs{display:grid}.research-tab{width:100%}.research-section-head{display:grid;align-items:start}
}


/* ===== FIX DOCENTES + PRACTICAS EXACTITUD VISUAL ===== */
.docentes-hero-premium{padding:36px 0 10px;background:linear-gradient(180deg,#fff,#f8fbff)}
.docentes-hero-wrap{text-align:center}.docentes-hero-wrap .section-tag{letter-spacing:.08em}.docentes-hero-wrap h1{margin-top:12px;font-size:clamp(2.2rem,5vw,4.8rem);line-height:1;letter-spacing:-.05em;color:#0a2a6a}.docentes-hero-wrap p{max-width:760px;margin:16px auto 0;color:#667085;font-size:1.08rem}
.docentes-showcase{padding-top:10px}
.docentes-switcher-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;border-bottom:1px solid #dbe3ef;padding-bottom:14px}
.docentes-role-tabs{display:flex;gap:12px}.docente-role-btn{min-width:190px;min-height:56px;padding:0 22px;border-radius:18px 18px 0 0;border:1px solid #dbe3ef;background:#eff3f8;color:#667085;font-weight:900;font-size:1.05rem;cursor:pointer}.docente-role-btn.active{background:#0a2a6a;color:#fff;border-color:#0a2a6a}
.docentes-total-pill{display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border:1px solid #0a2a6a33;border-radius:999px;color:#0a2a6a;background:#fff;font-weight:700}.docentes-total-pill span{font-size:1.1rem}
.docentes-filters-bar{margin-bottom:24px}.teachers-search-wide{max-width:520px}
.docente-role-panel{display:none}.docente-role-panel.active{display:block}
.docentes-magazine-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}
.docente-mag-card{background:#fff;border:1px solid #dde5f0;border-radius:18px;overflow:hidden;box-shadow:0 10px 24px rgba(15,23,42,.07);transition:.25s ease}.docente-mag-card:hover{transform:translateY(-5px);box-shadow:0 18px 36px rgba(15,23,42,.12)}
.docente-mag-photo{height:320px;background:#3cb0ff;display:flex;align-items:center;justify-content:center;overflow:hidden}.docente-mag-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}.docente-mag-photo .teacher-avatar-fallback{width:100%;height:100%;display:grid;place-items:center;font-size:3rem;color:#fff;background:linear-gradient(135deg,#0a2a6a,#1f60b5)}
.docente-mag-body{padding:16px 16px 18px}.docente-mag-body h2{font-size:1.6rem;line-height:1.15;color:#14306d;margin:0;text-align:center}.docente-red-line{display:block;width:54px;height:4px;border-radius:999px;background:#e53935;margin:10px auto 14px}
.docente-meta-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.docente-meta-list li{font-size:.98rem;color:#243b53;line-height:1.5;padding-bottom:10px;border-bottom:1px dashed #d7dee9}.docente-meta-list li strong{color:#0a2a6a}
.docente-card-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.docente-card-actions a,.docente-card-actions button{flex:1;min-height:46px;padding:0 14px;border-radius:12px;border:1px solid #dde5f0;background:#f7f9fc;color:#2f3d55;font-weight:700;font:inherit;cursor:pointer;text-decoration:none;display:flex;align-items:center;justify-content:center;text-align:center}.docente-card-actions button:hover,.docente-card-actions a:hover{background:#0a2a6a;color:#fff;border-color:#0a2a6a}
.docentes-footnote{display:flex;gap:14px;align-items:center;margin-top:24px;padding:18px 20px;border:1px solid #dbe3ef;border-radius:18px;background:#fbfdff;color:#425466}.docentes-footnote strong{color:#0a2a6a}

.practicas-premium-hero{padding-top:24px;background:linear-gradient(180deg,#fff,#f8fbff)}
.practicas-hero-shell{max-width:1180px}.practicas-hero-shell h1{font-size:clamp(2rem,4vw,4rem);line-height:1.05;letter-spacing:-.04em;color:#0a2a6a;margin:10px 0 14px}.practicas-hero-shell>p{max-width:780px;color:#5e6b7d;font-size:1.05rem;line-height:1.75}
.practice-step-line{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;align-items:center;margin:30px 0 14px;position:relative}.practice-step-line::before{content:"";position:absolute;left:6%;right:6%;top:50%;height:4px;background:#1f4f95;border-radius:999px;z-index:0}.practice-step-line span{position:relative;z-index:1;margin:0 auto;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;font-weight:900;color:#fff}.practice-step-line span:nth-child(1),.practice-step-line span:nth-child(3){background:#b41723}.practice-step-line span:nth-child(2),.practice-step-line span:nth-child(4){background:#123b7a}
.practice-purpose-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.practice-purpose-card{background:#fff;border:1px solid #e4ebf4;border-radius:18px;padding:22px 18px;box-shadow:0 10px 24px rgba(15,23,42,.05);display:flex;flex-direction:column;align-items:flex-start;transition:.25s ease}.practice-purpose-card:hover,.practice-purpose-card.active{transform:translateY(-4px);box-shadow:0 18px 36px rgba(15,23,42,.1)}
.practice-purpose-icon{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;font-size:2rem;margin-bottom:16px}.practice-purpose-icon.red{background:#fff1f1;color:#b41723}.practice-purpose-icon.blue{background:#f0f5ff;color:#123b7a}
.practice-purpose-card h2{font-size:1.6rem;line-height:1.1;color:#17356e;margin:0 0 12px}.practice-purpose-card p{color:#667085;line-height:1.65;flex:1}.practice-open-btn{margin-top:16px;min-height:44px;padding:0 16px;border:none;border-radius:10px;background:#0d3774;color:#fff;font:inherit;font-weight:800;cursor:pointer}.practice-purpose-card:nth-child(1) .practice-open-btn,.practice-purpose-card:nth-child(3) .practice-open-btn{background:#b41723}.practice-open-btn:hover{filter:brightness(1.05)}
.practice-mini-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:22px;padding-top:18px;border-top:1px solid #e3e8f2}.practice-mini-values article{display:flex;flex-direction:column;gap:8px}.practice-mini-values strong{color:#17356e}.practice-mini-values p{margin:0;color:#667085;line-height:1.55;font-size:.96rem}
.practice-native-panels{display:grid}.practice-native-panel{display:none}.practice-native-panel.active{display:grid;gap:22px}
.practice-native-header-card{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:22px;padding:28px;border-radius:22px;background:linear-gradient(135deg,#0a2a6a,#184d97);color:#fff;box-shadow:0 20px 40px rgba(10,42,106,.15)}.practice-native-header-card h3{font-size:2rem;margin:10px 0 12px;color:#fff}.practice-native-header-card p{color:#e8eef8;line-height:1.7}.practice-native-header-card aside{display:grid;place-items:center;text-align:center;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:20px}.practice-native-header-card aside strong{font-size:3rem;color:#fff;line-height:1}.practice-native-header-card aside span{color:#dce7f8;font-weight:700}
.practice-text-layout{display:grid;grid-template-columns:1fr;gap:20px}.practice-native-text-card{padding:24px;border-radius:18px;background:#fff;border:1px solid #e4ebf4;box-shadow:0 12px 30px rgba(15,23,42,.05)}.practice-native-text-card h4{font-size:1.5rem;color:#17356e;margin-bottom:12px}.practice-native-text-card p{color:#4f5d73;line-height:1.78;margin:0 0 14px}
.practice-visual-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.practice-gallery-card{display:block;background:#fff;border:1px solid #e4ebf4;border-radius:18px;overflow:hidden;cursor:pointer;box-shadow:0 10px 24px rgba(15,23,42,.05)}.practice-gallery-card img{width:100%;height:220px;object-fit:cover;display:block}.practice-gallery-card span{display:block;padding:14px 16px;color:#17356e;font-weight:800}

@media(max-width:980px){.practice-purpose-grid,.practice-mini-values{grid-template-columns:repeat(2,1fr)}.practice-step-line{grid-template-columns:repeat(4,1fr)}.practice-native-header-card{grid-template-columns:1fr}.docentes-switcher-top{flex-direction:column;align-items:flex-start}}
@media(max-width:760px){.practice-purpose-grid,.practice-mini-values,.docentes-magazine-grid{grid-template-columns:1fr}.practice-step-line::before{left:10%;right:10%}.docente-role-btn{min-width:150px;font-size:1rem}.docente-mag-photo{height:280px}.docentes-total-pill{width:100%;justify-content:center}}


/* =========================================================
   VERSION REAL REFERENCIAS VISUALES 2026
   Quienes Somos / Practicas / Cronograma Practica / Docentes
   ========================================================= */

/* QUIENES SOMOS REFERENCIA */
.qs-reference-page{
    position:relative;
    background:#fff;
    overflow:hidden;
    padding:30px 0 50px;
    color:#081f52;
}
.qs-reference-bg-shapes::before{
    content:"";
    position:absolute;
    right:-80px;
    top:130px;
    width:360px;
    height:360px;
    background:linear-gradient(135deg,#00356f,#0d63b7);
    clip-path:polygon(55% 0,100% 35%,70% 100%,12% 85%,0 24%);
    opacity:.96;
}
.qs-reference-bg-shapes::after{
    content:"";
    position:absolute;
    right:-20px;
    bottom:-30px;
    width:380px;
    height:130px;
    background:#e01e2f;
    border-radius:80px 0 0 0;
}
.qs-top-brand{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:28px;
    position:relative;
    z-index:2;
}
.qs-brand-left{
    display:flex;
    align-items:center;
    gap:18px;
}
.qs-brand-left img{
    width:140px;
    height:90px;
    object-fit:contain;
}
.qs-brand-left strong{
    display:block;
    color:#082861;
    font-weight:900;
    text-transform:uppercase;
    line-height:1.1;
    font-size:1.1rem;
}
.qs-brand-left span{
    color:#333;
    font-size:.9rem;
}
.qs-mini-nav{
    display:flex;
    gap:30px;
}
.qs-mini-nav a{
    text-decoration:none;
    color:#071b52;
    font-weight:800;
    padding:8px 0;
}
.qs-mini-nav a.active{
    border-bottom:4px solid #e01e2f;
}
.qs-hero-reference{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(0,1fr) 380px;
    align-items:center;
    gap:30px;
    padding:40px 0 20px;
}
.qs-hero-copy h1{
    color:#061b4e;
    font-size:clamp(3.2rem,7vw,6.2rem);
    line-height:.95;
    letter-spacing:-.06em;
    margin:0 0 20px;
    font-weight:900;
}
.qs-hero-copy h2{
    font-size:1.4rem;
    font-weight:500;
    color:#141414;
    margin:0;
}
.qs-red-stroke{
    display:block;
    width:160px;
    height:4px;
    background:#e01e2f;
    border-radius:99px;
    margin:16px 0 22px;
}
.qs-hero-copy p{
    max-width:620px;
    color:#232b3a;
    line-height:1.65;
    font-size:1.05rem;
}
.qs-hero-logo{
    position:relative;
    display:grid;
    place-items:center;
}
.qs-hero-logo::before{
    content:"";
    position:absolute;
    width:360px;
    height:360px;
    border-radius:50%;
    border:18px solid #e9eef6;
    border-left-color:transparent;
}
.qs-hero-logo img{
    position:relative;
    z-index:1;
    width:310px;
    height:260px;
    object-fit:contain;
}
.qs-card-grid{
    position:relative;
    z-index:3;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}
.qs-info-card{
    min-height:330px;
    display:flex;
    flex-direction:column;
    background:#fff;
    border:1px solid #e3e8f0;
    border-radius:20px;
    padding:24px;
    box-shadow:0 12px 28px rgba(15,23,42,.07);
}
.qs-icon{
    width:58px;
    height:58px;
    display:grid;
    place-items:center;
    background:#07366f;
    color:#fff;
    border-radius:50%;
    font-size:1.8rem;
    margin-bottom:18px;
}
.qs-info-card h3{
    color:#0a2a6a;
    font-size:1.35rem;
    margin:0 0 18px;
    line-height:1.18;
}
.qs-info-card h4{
    color:#074a9b;
    margin:0 0 6px;
}
.qs-info-card p{
    color:#222c3c;
    line-height:1.55;
    margin:0 0 13px;
}
.qs-info-card hr{
    border:0;
    border-top:1px solid #dfe5ee;
    margin:16px 0;
}
.qs-check-list,.qs-values-list,.qs-dot-list{
    margin:0;
    padding:0;
    list-style:none;
    display:grid;
    gap:13px;
}
.qs-check-list li{
    color:#202a3b;
    line-height:1.4;
    padding-left:32px;
    position:relative;
}
.qs-check-list li::before{
    content:"✓";
    position:absolute;
    left:0;
    top:0;
    width:22px;
    height:22px;
    display:grid;
    place-items:center;
    border:2px solid #e01e2f;
    border-radius:50%;
    color:#e01e2f;
    font-weight:900;
    font-size:.78rem;
}
.qs-values-list li{
    color:#202a3b;
    padding-left:28px;
    position:relative;
}
.qs-values-list li::before{
    content:"✥";
    color:#0b4f9f;
    position:absolute;
    left:0;
}
.qs-dot-list{
    list-style:disc;
    padding-left:18px;
    gap:8px;
}
.qs-card-line{
    margin-top:auto;
    display:block;
    width:100%;
    height:4px;
    border-radius:99px;
}
.qs-card-line.red{background:#e01e2f}
.qs-card-line.blue{background:#0b63b6}
.qs-link{
    color:#0757ad;
    text-decoration:none;
    font-weight:800;
    margin-top:auto;
}
.qs-btn{
    margin-top:auto;
    min-height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    color:#fff;
    text-decoration:none;
    font-weight:900;
    box-shadow:0 10px 22px rgba(0,0,0,.12);
}
.qs-btn.blue{background:#07366f}
.qs-btn.red{background:#e01e2f}
.qs-quote-band{
    position:relative;
    z-index:3;
    margin-top:28px;
    min-height:118px;
    display:grid;
    grid-template-columns:70px minmax(0,1fr) 1px 260px;
    gap:22px;
    align-items:center;
    padding:24px 44px;
    border-radius:28px;
    background:linear-gradient(90deg,#e9f4ff,#f8fbff);
}
.qs-quote-mark{
    font-size:7rem;
    line-height:.6;
    color:#07366f;
    font-family:serif;
}
.qs-quote-band strong{
    font-family:Georgia,serif;
    font-size:2rem;
    color:#07366f;
    line-height:1.25;
}
.qs-quote-band span{
    height:70px;
    background:#e01e2f;
}
.qs-quote-band p{
    color:#07366f;
    font-weight:800;
    font-style:italic;
}

/* PRACTICA REFERENCIA */
.practice-reference-page{
    background:#fff;
    padding:26px 0 30px;
    overflow:hidden;
}
.practice-ref-header{
    position:relative;
}
.practice-ref-brand{
    display:flex;
    align-items:center;
    gap:22px;
    border-bottom:5px solid #e01e2f;
    padding-bottom:16px;
}
.practice-ref-brand img{
    width:120px;
    height:80px;
    object-fit:contain;
}
.practice-ref-brand strong{
    color:#0a2a6a;
    text-transform:uppercase;
    line-height:1.08;
    font-size:1.05rem;
}
.practice-ref-brand span{
    width:1px;
    height:72px;
    background:#8a99b4;
}
.practice-ref-hero{
    display:grid;
    grid-template-columns:minmax(0,1fr) 480px;
    gap:30px;
    align-items:center;
    padding:45px 0 22px;
}
.practice-ref-copy h1{
    color:#0a2a6a;
    margin:0 0 22px;
    font-size:clamp(3rem,6vw,5.4rem);
    line-height:1;
    letter-spacing:-.05em;
}
.practice-ref-copy h1 b{
    color:#d51c2a;
}
.practice-ref-copy p{
    max-width:720px;
    color:#151f33;
    font-size:1.2rem;
    line-height:1.7;
}
.practice-ref-image{
    height:330px;
    clip-path:polygon(16% 0,100% 0,100% 100%,16% 100%,0 50%);
    border-left:18px solid #0a2a6a;
    border-radius:0 0 0 20px;
    overflow:hidden;
    box-shadow:0 18px 42px rgba(15,23,42,.16);
}
.practice-ref-image img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.purpose-band{
    position:relative;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:0;
    background:#fff;
    border:1px solid #dfe6f0;
    border-radius:18px;
    box-shadow:0 14px 34px rgba(15,23,42,.08);
    padding:34px 20px 24px;
}
.purpose-label{
    position:absolute;
    left:0;
    top:-28px;
    background:#0a2a6a;
    color:#fff;
    min-width:170px;
    height:40px;
    border-radius:12px 12px 0 0;
    display:grid;
    place-items:center;
    font-weight:900;
}
.purpose-band article{
    display:grid;
    grid-template-columns:70px minmax(0,1fr);
    gap:16px;
    align-items:center;
    padding:0 20px;
    border-right:1px solid #ccd5e3;
}
.purpose-band article:last-child{border-right:0}
.purpose-band span{
    font-size:3rem;
    color:#0a2a6a;
}
.purpose-band p{
    margin:0;
    color:#182436;
    line-height:1.55;
}
.practice-ref-tabs{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:12px;
    margin-top:36px;
}
.practice-ref-tabs button{
    min-height:78px;
    border:1px solid #dfe6f0;
    background:#fff;
    border-radius:12px;
    color:#0a2a6a;
    font-weight:800;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    cursor:pointer;
}
.practice-ref-tabs button.active{
    background:#0a2a6a;
    color:#fff;
}
.practice-ref-card-grid{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:14px;
    margin-top:14px;
}
.practice-ref-card{
    background:#fff;
    border:1px solid #dfe6f0;
    border-radius:18px;
    overflow:hidden;
    min-height:520px;
    box-shadow:0 12px 28px rgba(15,23,42,.07);
    display:flex;
    flex-direction:column;
    transition:.25s ease;
}
.practice-ref-card.active{
    border:3px solid #0a2a6a;
}
.practice-ref-card:hover{
    transform:translateY(-5px);
}
.practice-ref-card img{
    width:100%;
    height:170px;
    object-fit:cover;
}
.practice-ref-card-icon{
    width:70px;
    height:70px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#0a2a6a;
    color:#fff;
    font-size:2rem;
    margin:-35px auto 12px;
    border:6px solid #fff;
    z-index:2;
}
.practice-ref-card h2{
    color:#0a2a6a;
    text-align:center;
    font-size:1.45rem;
    line-height:1.05;
    margin:0 12px 12px;
}
.practice-ref-card p{
    color:#1f2937;
    line-height:1.55;
    margin:0;
    padding:0 18px 22px;
}
.practice-ref-gallery-row{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
    margin-top:28px;
}
.practice-ref-gallery-row button{
    border:0;
    padding:0;
    background:transparent;
    border-radius:16px;
    overflow:hidden;
    cursor:pointer;
    box-shadow:0 10px 24px rgba(15,23,42,.1);
}
.practice-ref-gallery-row img{
    width:100%;
    height:180px;
    object-fit:cover;
    display:block;
}
.practice-ref-footer-line{
    text-align:center;
    color:#0a2a6a;
    font-size:1.45rem;
    font-weight:800;
    margin-top:20px;
}
.practice-ref-footer-line b{color:#d51c2a}

/* CRONOGRAMA PRACTICA */
.practice-timeline-reference{
    background:#fff;
    padding:28px 0 0;
}
.timeline-ref-header{
    display:grid;
    grid-template-columns:360px minmax(0,1fr);
    align-items:center;
    gap:24px;
    margin-bottom:20px;
}
.timeline-brand{
    display:flex;
    align-items:center;
    gap:18px;
}
.timeline-brand img{
    width:120px;
    height:80px;
    object-fit:contain;
}
.timeline-brand strong{
    color:#0a2a6a;
    text-transform:uppercase;
    font-size:1.2rem;
    line-height:1.08;
}
.timeline-brand span{
    color:#0a2a6a;
    font-weight:900;
}
.timeline-ref-header h2{
    color:#0a2a6a;
    font-size:clamp(2.5rem,5vw,4.6rem);
    line-height:1;
    letter-spacing:-.05em;
    margin:0;
}
.timeline-ref-header p{
    margin:8px 0 0;
    color:#5b5f68;
    font-size:2rem;
}
.timeline-ref-header p b{color:#d51c2a}
.timeline-grid-shell{
    display:grid;
    gap:10px;
}
.timeline-row{
    display:grid;
    grid-template-columns:230px minmax(0,1fr);
    gap:10px;
    align-items:stretch;
}
.timeline-month{
    min-height:70px;
    background:#07366f;
    color:#fff;
    display:flex;
    align-items:center;
    gap:12px;
    padding:0 22px;
    border-radius:10px;
    font-size:1.35rem;
    font-weight:900;
}
.timeline-weeks{
    border:1px solid #dbe4ef;
    border-radius:14px;
    padding:10px 16px;
    display:grid;
    gap:8px;
}
.timeline-week-numbers{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    align-items:center;
    border-top:2px solid #cfd8e7;
    padding-top:0;
}
.timeline-week-numbers span:not(.available){
    justify-self:center;
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#07366f;
    color:#fff;
    font-weight:900;
    margin-top:-17px;
}
.timeline-week-numbers span:nth-child(2n){
    background:#fff;
    color:#07366f;
    border:2px solid #aeb9c9;
}
.timeline-week-numbers .available{
    grid-column:1/-1;
    color:#8a94a6;
    border:1px dashed #c7d0df;
    border-radius:10px;
    padding:16px;
    text-align:center;
}
.timeline-events{
    min-height:42px;
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:10px;
}
.timeline-event{
    grid-column:var(--start)/span var(--span);
    min-height:44px;
    border-radius:8px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    font-size:1.05rem;
    font-weight:900;
    color:#07366f;
    padding:8px 12px;
    text-align:center;
}
.timeline-event small{
    display:block;
    font-size:.8rem;
    font-weight:600;
}
.timeline-event.induccion,.timeline-event.practica{background:#e8f3ff}
.timeline-event.festivo{background:#ffe9e9;color:#cc101d}
.timeline-event.cierre{background:#fff2c9;color:#8a6500}
.timeline-event.evaluacion{background:#f1eaff;color:#4a2aa0}
.timeline-event.finaliza{background:#e9f8e9;color:#147a28}
.timeline-event.institucional{background:#e6f4ff;color:#1060aa}
.timeline-empty{
    border:1px dashed #cbd4e0;
    color:#8a94a6;
    border-radius:10px;
    padding:16px;
    text-align:center;
}
.timeline-legend{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:12px;
    margin-top:20px;
    background:#fff;
    border:1px solid #dbe4ef;
    border-radius:14px;
    padding:14px;
}
.timeline-legend article{
    display:grid;
    grid-template-columns:54px minmax(0,1fr);
    gap:10px;
    align-items:center;
}
.timeline-legend span{
    width:54px;
    height:54px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#e8f3ff;
    font-size:1.8rem;
}
.timeline-legend strong{
    color:#07366f;
    display:block;
}
.timeline-legend small{
    color:#333;
}
.timeline-bottom-bar{
    margin-top:20px;
    background:#07366f;
    color:#fff;
    padding:20px 0;
}

/* DOCENTES REFERENCIA */
.docentes-ref-page{
    background:#fff;
    padding:38px 0 50px;
}
.docentes-ref-head{
    text-align:center;
}
.docentes-ref-head span{
    display:block;
    color:#0a2a6a;
    text-transform:uppercase;
    letter-spacing:.12em;
    font-weight:700;
    font-size:1.15rem;
}
.docentes-ref-head small{
    display:block;
    color:#0a2a6a;
    text-transform:uppercase;
    letter-spacing:.16em;
    font-size:1.15rem;
    margin-top:8px;
}
.docentes-ref-head h1{
    color:#092866;
    font-family:Georgia,serif;
    font-size:clamp(3rem,7vw,5.8rem);
    line-height:1;
    margin:24px 0 14px;
}
.docentes-title-mark{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:12px;
}
.docentes-title-mark i{
    width:82px;
    height:4px;
    background:#0a2a6a;
}
.docentes-title-mark b{
    width:14px;
    height:14px;
    background:#e01e2f;
    border-radius:50%;
}
.docentes-ref-head p{
    color:#777;
    font-size:1.35rem;
}
.docentes-ref-switch{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    border-bottom:1px solid #d6dce8;
    margin-top:30px;
}
.docentes-ref-tabs{
    display:flex;
    gap:10px;
}
.docentes-ref-tabs button{
    min-width:190px;
    min-height:58px;
    border:0;
    border-radius:12px 12px 0 0;
    background:#f0f0f0;
    color:#777;
    font-size:1.25rem;
    font-weight:900;
    cursor:pointer;
}
.docentes-ref-tabs button.active{
    background:#0a2a6a;
    color:#fff;
}
.docentes-ref-count{
    border:1px solid #0a2a6a;
    border-radius:999px;
    padding:12px 20px;
    color:#0a2a6a;
    font-weight:900;
}
.docentes-ref-search{
    margin:18px auto 22px;
}
.docentes-ref-search input{
    width:100%;
    min-height:52px;
    border:1px solid #dbe4ef;
    border-radius:14px;
    padding:0 16px;
    font:inherit;
}
.docente-role-panel{display:none}
.docente-role-panel.active{display:block}
.docentes-ref-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:28px;
}
.docente-ref-card{
    border:1px solid #dbe4ef;
    border-radius:14px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 10px 24px rgba(15,23,42,.09);
}
.docente-ref-photo{
    height:300px;
    background:#39aef5;
    overflow:hidden;
}
.docente-ref-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
}
.teacher-avatar-fallback{
    width:100%;
    height:100%;
    display:grid;
    place-items:center;
    background:linear-gradient(135deg,#0a2a6a,#168bd7);
    color:#fff;
    font-size:3rem;
    font-weight:900;
}
.docente-ref-body{
    padding:18px;
}
.docente-ref-body h2{
    color:#0a2a6a;
    text-align:center;
    font-size:1.35rem;
    line-height:1.2;
    margin:0;
}
.docente-line{
    display:block;
    width:46px;
    height:3px;
    background:#e01e2f;
    border-radius:999px;
    margin:12px auto;
}
.docente-ref-body ul{
    list-style:none;
    padding:0;
    margin:0;
    display:grid;
    gap:10px;
}
.docente-ref-body li{
    color:#23344d;
    border-bottom:1px dashed #cfd8e6;
    padding-bottom:8px;
    line-height:1.45;
}
.docente-ref-body li b{
    color:#0a2a6a;
}
.docente-ref-body button{
    width:100%;
    min-height:48px;
    margin-top:14px;
    border:1px solid #d7dfe9;
    border-radius:9px;
    background:#f8fafc;
    color:#223a61;
    font-weight:800;
    cursor:pointer;
}
.docente-ref-body button:hover{
    background:#0a2a6a;
    color:#fff;
}
.docentes-ref-note{
    margin-top:28px;
    border:1px solid #dbe4ef;
    border-radius:14px;
    padding:22px;
    color:#5b6472;
    background:#fbfdff;
}
.docentes-ref-note strong{
    color:#0a2a6a;
}

/* Modal docs compatibility */
.teacher-profile-modal{
    position:fixed;
    inset:0;
    z-index:9999;
    display:none;
}
.teacher-profile-modal.is-open{display:block}
.teacher-profile-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(7,17,38,.78);
    backdrop-filter:blur(8px);
}
.teacher-profile-modal-box{
    position:absolute;
    inset:50% auto auto 50%;
    transform:translate(-50%,-50%);
    width:min(760px,calc(100vw - 32px));
    border-radius:28px;
    background:#fff;
    box-shadow:0 34px 90px rgba(0,0,0,.35);
    overflow:hidden;
}
.teacher-profile-modal-close{
    position:absolute;
    top:16px;
    right:16px;
    z-index:3;
    width:44px;
    height:44px;
    border:1px solid #ffd1d1;
    border-radius:50%;
    background:#fff4f4;
    color:#d71920;
    font-size:1.5rem;
    cursor:pointer;
}
.teacher-profile-modal-content{
    display:grid;
    grid-template-columns:280px minmax(0,1fr);
}
.teacher-profile-modal-photo{
    min-height:360px;
    background:linear-gradient(135deg,#071126,#1c245b);
}
.teacher-profile-modal-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
}
.teacher-profile-modal-content>div:last-child{
    padding:38px 32px;
    display:grid;
    align-content:center;
    gap:12px;
}
.teacher-profile-modal-content span{
    display:inline-flex;
    width:fit-content;
    padding:6px 10px;
    border-radius:999px;
    background:#fff4f4;
    color:#d71920;
    font-size:.76rem;
    font-weight:900;
    text-transform:uppercase;
}
.teacher-profile-modal-content h2{
    color:#071b52;
    font-size:clamp(1.8rem,3vw,2.5rem);
    line-height:1.05;
    margin:0;
}
.teacher-profile-modal-content p{
    color:#667085;
    line-height:1.65;
    margin:0;
}

.pfc-native-modal{
    position:fixed;
    inset:0;
    display:none;
    z-index:9999;
    background:rgba(7,17,38,.88);
    padding:24px;
}
.pfc-native-modal.active{display:grid;place-items:center}
.pfc-native-modal-box{
    width:min(1180px,96vw);
    height:min(840px,92vh);
    background:#fff;
    border-radius:24px;
    overflow:hidden;
    display:grid;
    grid-template-rows:auto minmax(0,1fr);
}
.pfc-native-modal-head{
    padding:14px 20px;
    border-bottom:1px solid #e6edf5;
    display:flex;
    justify-content:space-between;
    align-items:center;
}
.pfc-native-modal-close{
    border:1px solid #ffd1d1;
    background:#fff4f4;
    color:#d71920;
    border-radius:50%;
    width:42px;
    height:42px;
    font-size:1.4rem;
    cursor:pointer;
}
.pfc-native-modal-content{
    min-height:0;
    display:grid;
    place-items:center;
    background:#f8fafc;
    overflow:auto;
}
.pfc-native-modal-content img{
    max-width:100%;
    max-height:100%;
    object-fit:contain;
}

@media(max-width:1180px){
    .qs-card-grid{grid-template-columns:repeat(2,1fr)}
    .practice-ref-card-grid,.practice-ref-tabs{grid-template-columns:repeat(3,1fr)}
    .docentes-ref-grid{grid-template-columns:repeat(3,1fr)}
    .timeline-ref-header{grid-template-columns:1fr}
    .timeline-row{grid-template-columns:1fr}
}
@media(max-width:820px){
    .qs-top-brand,.docentes-ref-switch{flex-direction:column;align-items:flex-start}
    .qs-mini-nav{flex-wrap:wrap;gap:14px}
    .qs-hero-reference,.practice-ref-hero{grid-template-columns:1fr}
    .qs-card-grid,.purpose-band,.practice-ref-card-grid,.practice-ref-gallery-row,.timeline-legend,.docentes-ref-grid{grid-template-columns:1fr}
    .purpose-band article{border-right:0;border-bottom:1px solid #ccd5e3;padding:20px 0}
    .practice-ref-tabs{grid-template-columns:repeat(2,1fr)}
    .timeline-week-numbers,.timeline-events{grid-template-columns:repeat(5,minmax(60px,1fr));overflow-x:auto}
    .timeline-event{grid-column:auto/span 2!important}
    .qs-quote-band{grid-template-columns:1fr}
    .qs-quote-band span{display:none}
    .teacher-profile-modal-content{grid-template-columns:1fr}
}


/* =========================================================
   CORRECCIÓN FINAL SOLICITADA: docentes verticales, mapa integrado,
   prácticas con texto real, historia resumida + página completa
   ========================================================= */

/* Docentes: fotos verticales corregidas */
.docente-ref-photo,
.teacher-photo-premium,
.docente-mag-photo{
    height: 315px !important;
    background:#35aef7;
}
.docente-ref-photo img,
.teacher-photo-premium img,
.docente-mag-photo img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center top !important;
    image-orientation:from-image;
    transform:none !important;
}
.docente-ref-card{
    break-inside:avoid;
}
.docentes-ref-grid{
    align-items:start;
}

/* Historia completa */
.historia-full-hero{
    background:linear-gradient(135deg,#061b4e,#0a4c98);
}
.historia-full-layout{
    display:grid;
    grid-template-columns:320px minmax(0,1fr);
    gap:28px;
    align-items:start;
}
.historia-full-aside{
    position:sticky;
    top:110px;
    background:#fff;
    border:1px solid #dfe6f0;
    border-radius:24px;
    padding:28px;
    box-shadow:0 16px 38px rgba(15,23,42,.08);
}
.historia-full-aside img{
    width:170px;
    height:120px;
    object-fit:contain;
}
.historia-full-aside h2{
    color:#0a2a6a;
    font-size:2rem;
}
.historia-full-aside p{
    color:#667085;
    line-height:1.65;
}
.historia-full-content{
    background:#fff;
    border:1px solid #dfe6f0;
    border-radius:24px;
    padding:34px;
    box-shadow:0 16px 38px rgba(15,23,42,.08);
}
.historia-full-content p{
    color:#1f2937;
    line-height:1.85;
    font-size:1.07rem;
    margin:0 0 18px;
}

/* Mapa curricular: integración versión antigua + nueva */
.mapa-integrado-page{
    background:linear-gradient(180deg,#fff,#f7f9fc);
    padding:34px 0 60px;
}
.mapa-integrado-layout{
    display:grid;
    grid-template-columns:310px minmax(0,1fr) 420px;
    gap:24px;
    align-items:start;
}
.mapa-old-sidebar,
.mapa-old-board,
.mapa-old-detail{
    background:#fff;
    border:1px solid #dfe6f0;
    border-radius:18px;
    box-shadow:0 16px 38px rgba(15,23,42,.07);
}
.mapa-old-sidebar{
    position:sticky;
    top:100px;
    padding:28px;
}
.mapa-old-sidebar img{
    width:170px;
    height:120px;
    object-fit:contain;
}
.mapa-old-sidebar h1{
    color:#07406f;
    font-size:2.5rem;
    line-height:.95;
    text-transform:uppercase;
    letter-spacing:-.03em;
}
.mapa-old-sidebar p{
    color:#64748b;
    line-height:1.7;
}
.mapa-old-sidebar h2{
    color:#e01e2f;
    font-size:1.1rem;
    margin-top:30px;
}
.mapa-old-sidebar ul{
    list-style:none;
    margin:0;
    padding:0;
    display:grid;
    gap:14px;
}
.mapa-old-sidebar li{
    display:flex;
    gap:12px;
    align-items:center;
    color:#071b52;
    font-weight:800;
}
.mapa-old-sidebar li span{
    width:20px;
    height:20px;
    border-radius:6px;
    display:inline-block;
}
.mapa-old-sidebar .c1{background:#07366f}
.mapa-old-sidebar .c2{background:#147ec0}
.mapa-old-sidebar .c3{background:#22b7dd}
.mapa-old-sidebar .c4{background:#07863e}
.mapa-old-sidebar .c5{background:#e01e2f}
.mapa-old-board{
    padding:30px;
}
.mapa-board-head{
    display:grid;
    grid-template-columns:minmax(0,1fr) 320px;
    gap:18px;
    align-items:center;
    margin-bottom:22px;
}
.mapa-board-head h2{
    color:#071b52;
    font-size:2.8rem;
    line-height:1.05;
    letter-spacing:-.04em;
    margin:12px 0 0;
}
.mapa-board-head input{
    min-height:58px;
    border:2px solid #111827;
    border-radius:999px;
    padding:0 22px;
    font:inherit;
}
.mapa-axis-filter-inline{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-bottom:20px;
}
.mapa-axis-stack{
    display:grid;
    gap:22px;
}
.mapa-axis-row{
    display:grid;
    grid-template-columns:260px minmax(0,1fr);
    border:1px solid #dfe6f0;
    border-radius:14px;
    overflow:hidden;
    background:#f8fafc;
}
.mapa-axis-label{
    padding:28px 24px;
    background:var(--axis-color);
    color:#fff;
}
.mapa-axis-label h3{
    color:#fff;
    font-size:1.45rem;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.mapa-axis-label p{
    color:#fff;
    line-height:1.65;
}
.mapa-field-cards{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
    gap:14px;
    padding:20px;
}
.mapa-field-card{
    background:#fff;
    border:1px solid #dfe6f0;
    border-radius:12px;
    padding:20px;
    display:grid;
    align-content:space-between;
    min-height:170px;
}
.mapa-field-card:hover{
    border-color:#e01e2f;
    box-shadow:0 10px 24px rgba(15,23,42,.08);
}
.mapa-field-card.is-hidden{
    display:none;
}
.mapa-field-card h4{
    color:#071b52;
    font-size:1.05rem;
    line-height:1.15;
    margin:0 0 16px;
}
.mapa-field-card p{
    color:#667085;
    margin:0 0 14px;
}
.mapa-field-card button{
    width:max-content;
    border:1px solid #ffd1d1;
    background:#fff4f4;
    color:#e01e2f;
    border-radius:999px;
    padding:9px 14px;
    font-weight:900;
    cursor:pointer;
}
.mapa-old-detail{
    position:sticky;
    top:100px;
    padding:30px;
    max-height:80vh;
    overflow:auto;
}
.mapa-old-detail>span{
    display:inline-flex;
    color:#e01e2f;
    background:#fff4f4;
    border:1px solid #ffd1d1;
    border-radius:999px;
    padding:8px 12px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.07em;
    font-size:.75rem;
}
.mapa-old-detail h2{
    color:#071b52;
    font-size:1.7rem;
    line-height:1.15;
}
.mapa-old-detail .detail-box{
    background:#f8fafc;
    border:1px solid #dfe6f0;
    border-radius:10px;
    padding:16px;
    margin:12px 0;
}
.mapa-old-detail small{
    display:block;
    color:#e01e2f;
    text-transform:uppercase;
    font-weight:900;
    margin-bottom:8px;
}
.mapa-old-detail strong{
    color:#071b52;
}
.mapa-old-detail h3{
    color:#07406f;
    margin-top:22px;
}
.mapa-old-detail p,
.mapa-old-detail li{
    color:#4b5563;
    line-height:1.7;
}
.mapa-old-detail ul{
    padding-left:0;
    list-style:none;
    display:grid;
    gap:12px;
}
.mapa-old-detail li{
    background:#f8fafc;
    border:1px solid #dfe6f0;
    border-radius:10px;
    padding:12px;
}
.mapa-old-detail li::before{
    content:"✓";
    color:#e01e2f;
    font-weight:900;
    margin-right:8px;
}

/* Prácticas: texto real de diapositivas integrado */
.practice-ref-hero-text{
    grid-template-columns:minmax(0,1fr) 500px;
}
.practice-slide-text-card{
    position:relative;
    min-height:300px;
    padding:34px;
    border-radius:24px;
    background:linear-gradient(135deg,#fff,#f8fbff);
    border:1px solid #dfe6f0;
    box-shadow:0 16px 38px rgba(15,23,42,.08);
}
.practice-slide-text-card::before{
    content:"";
    position:absolute;
    right:0;
    top:0;
    width:120px;
    height:120px;
    background:#0a2a6a;
    clip-path:polygon(100% 0,0 0,100% 100%);
}
.practice-slide-text-card h2{
    color:#0a2a6a;
    font-size:2rem;
    margin:0 0 20px;
}
.slide-question{
    display:grid;
    grid-template-columns:70px minmax(0,1fr);
    gap:12px;
    margin-bottom:16px;
}
.slide-question::before{
    content:"❯❯";
    color:#0a2a6a;
    font-size:1.8rem;
    font-weight:900;
}
.slide-question strong{
    color:#071b52;
}
.slide-question p{
    margin:4px 0 0;
    color:#111827;
}
.practice-text-cards-grid .practice-ref-card{
    min-height:640px;
}
.practice-card-mini-info{
    padding:0 18px;
    display:grid;
    gap:5px;
    margin-bottom:12px;
}
.practice-card-mini-info strong{
    color:#0a2a6a;
    font-size:.95rem;
}
.practice-card-mini-info p{
    padding:0;
    margin:0 0 8px;
    color:#374151;
    font-size:.95rem;
}
.practice-readable-panels{
    margin-top:28px;
}
.practice-integrated-detail{
    display:grid;
    grid-template-columns:minmax(0,1fr) 300px;
    gap:22px;
    padding:28px;
    background:linear-gradient(135deg,#0a2a6a,#0e4f98);
    color:#fff;
    border-radius:24px;
}
.practice-integrated-detail h3{
    color:#fff;
    font-size:2rem;
    margin:10px 0;
}
.practice-integrated-detail p{
    color:#eef5ff;
    line-height:1.7;
}
.practice-integrated-detail aside{
    background:rgba(255,255,255,.1);
    border:1px solid rgba(255,255,255,.16);
    border-radius:18px;
    padding:20px;
}
.practice-integrated-detail aside strong{
    display:block;
    color:#fff;
    margin-top:8px;
}
.practice-points-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:16px;
    margin-top:18px;
}
.practice-points-grid article{
    background:#fff;
    border:1px solid #dfe6f0;
    border-radius:16px;
    padding:18px;
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    gap:12px;
}
.practice-points-grid span{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    background:#fff4f4;
    color:#e01e2f;
    border-radius:50%;
    font-weight:900;
}
.practice-points-grid p{
    margin:0;
    color:#374151;
    line-height:1.6;
}

@media(max-width:1280px){
    .mapa-integrado-layout{
        grid-template-columns:280px minmax(0,1fr);
    }
    .mapa-old-detail{
        grid-column:1/-1;
        position:static;
        max-height:none;
    }
}
@media(max-width:920px){
    .historia-full-layout,
    .mapa-integrado-layout,
    .mapa-axis-row,
    .mapa-board-head,
    .practice-ref-hero-text,
    .practice-integrated-detail{
        grid-template-columns:1fr;
    }
    .historia-full-aside,
    .mapa-old-sidebar{
        position:static;
    }
}


/* =========================================================
   FIX DEFINITIVO MAPA CURRICULAR + FOTOS DOCENTES
   ========================================================= */

/* El mapa curricular no puede quedar comprimido por el .container general */
.mapa-integrado-page {
    padding: 34px 0 70px !important;
    overflow-x: hidden;
}

.mapa-integrado-page > .container,
.mapa-integrado-layout.container {
    width: min(1760px, calc(100vw - 64px)) !important;
    max-width: 1760px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.mapa-integrado-layout {
    display: grid !important;
    grid-template-columns: 310px minmax(760px, 1fr) 430px !important;
    gap: 24px !important;
    align-items: start !important;
}

.mapa-old-board {
    min-width: 0 !important;
    overflow: visible !important;
}

.mapa-board-head {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 360px !important;
    gap: 24px !important;
    align-items: start !important;
}

.mapa-board-head h2 {
    max-width: 620px !important;
    font-size: clamp(2.4rem, 3vw, 4rem) !important;
    line-height: 1.05 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}

.mapa-board-head input {
    width: 100% !important;
    box-sizing: border-box !important;
}

.mapa-axis-filter-inline {
    margin-top: 4px !important;
    margin-bottom: 22px !important;
}

.mapa-axis-row {
    grid-template-columns: 280px minmax(0, 1fr) !important;
    min-height: 230px !important;
}

.mapa-field-cards {
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)) !important;
    align-items: stretch !important;
}

.mapa-field-card {
    min-height: 210px !important;
    justify-content: space-between !important;
}

.mapa-old-detail {
    width: 100% !important;
    box-sizing: border-box !important;
}

.mapa-old-detail h2 {
    font-size: clamp(1.55rem, 1.7vw, 2rem) !important;
    line-height: 1.16 !important;
}

/* Vista más cercana a la versión antigua en pantallas grandes */
@media (min-width: 1500px) {
    .mapa-integrado-layout {
        grid-template-columns: 320px minmax(850px, 1fr) 430px !important;
    }
    .mapa-field-cards {
        grid-template-columns: repeat(3, minmax(220px, 1fr)) !important;
    }
}

/* Tablets: conservar orden, sin romper */
@media (max-width: 1280px) {
    .mapa-integrado-page > .container,
    .mapa-integrado-layout.container {
        width: min(1180px, calc(100vw - 32px)) !important;
        max-width: 1180px !important;
    }

    .mapa-integrado-layout {
        grid-template-columns: 280px minmax(0, 1fr) !important;
    }

    .mapa-old-detail {
        grid-column: 1 / -1 !important;
        position: static !important;
        max-height: none !important;
    }

    .mapa-board-head {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 920px) {
    .mapa-integrado-page > .container,
    .mapa-integrado-layout.container {
        width: calc(100vw - 24px) !important;
    }

    .mapa-integrado-layout,
    .mapa-axis-row {
        grid-template-columns: 1fr !important;
    }

    .mapa-old-sidebar {
        position: static !important;
    }

    .mapa-field-cards {
        grid-template-columns: 1fr !important;
    }
}

/* Fotos docentes: fuerza rutas corregidas a mostrarse verticales y sin rotación */
.docente-ref-photo {
    height: 320px !important;
    background: #35aef7 !important;
}

.docente-ref-photo img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center top !important;
    transform: none !important;
    rotate: 0deg !important;
    image-orientation: none !important;
}

.docente-ref-card {
    overflow: hidden !important;
}

/* Evita que reglas viejas del sitio roten o escalen imágenes */
.docentes-ref-page img,
.docentes-showcase img,
.teachers-premium img {
    transform: none !important;
    rotate: 0deg !important;
}


/* =========================================================
   DISEÑO APROBADO: MAPA CURRICULAR + PRÁCTICAS PEDAGÓGICAS
   ========================================================= */

/* MAPA APROBADO */
.map-approved-page{
    background:#fff;
    padding:28px 0 62px;
}
.map-approved-shell{
    width:min(1720px, calc(100vw - 64px));
    margin:0 auto;
    display:grid;
    grid-template-columns:300px minmax(760px, 1fr) 370px;
    gap:28px;
    align-items:start;
}
.map-approved-sidebar,
.map-approved-board,
.map-approved-detail{
    background:#fff;
    border:1px solid #dfe6f0;
    border-radius:18px;
    box-shadow:0 16px 38px rgba(15,23,42,.07);
}
.map-approved-sidebar{
    position:sticky;
    top:100px;
    min-height:760px;
    padding:34px 28px;
}
.map-approved-sidebar img{
    width:160px;
    height:118px;
    object-fit:contain;
    display:block;
    margin:0 auto 34px;
}
.map-approved-sidebar h1{
    color:#07366f;
    text-transform:uppercase;
    font-size:2.35rem;
    line-height:.96;
    letter-spacing:-.03em;
    margin:0 0 26px;
}
.map-approved-sidebar p{
    color:#64748b;
    line-height:1.75;
    margin-bottom:32px;
}
.map-approved-sidebar h2{
    color:#e01e2f;
    font-size:1rem;
    margin-bottom:18px;
}
.map-approved-sidebar ul{
    list-style:none;
    padding:0;
    margin:0;
    display:grid;
    gap:15px;
}
.map-approved-sidebar li{
    display:flex;
    align-items:center;
    gap:12px;
    color:#071b52;
    font-weight:900;
}
.map-approved-sidebar li span{
    width:20px;
    height:20px;
    border-radius:6px;
    display:block;
}
.map-approved-sidebar .c1{background:#07366f}
.map-approved-sidebar .c2{background:#0b75ba}
.map-approved-sidebar .c3{background:#22b7dd}
.map-approved-sidebar .c4{background:#0c8f44}
.map-approved-sidebar .c5{background:#e01e2f}
.map-approved-note{
    margin-top:42px;
    display:grid;
    grid-template-columns:50px minmax(0,1fr);
    gap:12px;
    align-items:center;
    padding:18px;
    border:1px solid #dfe6f0;
    border-radius:12px;
    background:#fbfdff;
}
.map-approved-note span{
    font-size:2rem;
}
.map-approved-note strong{
    color:#0a2a6a;
    line-height:1.45;
}
.map-approved-note b{
    color:#e01e2f;
}
.map-approved-board{
    padding:34px;
}
.map-approved-head{
    display:grid;
    grid-template-columns:minmax(0,1fr) 360px;
    gap:22px;
    align-items:start;
    margin-bottom:20px;
}
.map-approved-head h2{
    color:#071b52;
    font-size:clamp(2.6rem,4vw,4.7rem);
    line-height:.98;
    letter-spacing:-.055em;
    max-width:640px;
    margin:10px 0 0;
}
.map-approved-head label{
    display:grid;
    grid-template-columns:32px minmax(0,1fr);
    align-items:center;
    min-height:58px;
    border:1px solid #ccd7e6;
    border-radius:10px;
    padding:0 14px;
    margin-top:20px;
}
.map-approved-head label span{
    font-size:1.25rem;
    opacity:.65;
}
.map-approved-head input{
    border:0;
    outline:0;
    font:inherit;
    color:#1f2937;
    width:100%;
}
.map-approved-filters{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-bottom:24px;
}
.map-approved-filters .curricular-filter{
    min-height:42px;
    padding:0 17px;
    border-radius:999px;
    border:1px solid #d7e0ec;
    background:#fff;
    color:#071b52;
    font-weight:900;
    cursor:pointer;
}
.map-approved-filters .curricular-filter.active,
.map-approved-filters .curricular-filter:hover{
    background:#e01e2f;
    color:#fff;
    border-color:#e01e2f;
}
.map-approved-axis-list{
    display:grid;
    gap:18px;
}
.map-approved-axis-row{
    display:grid;
    grid-template-columns:245px minmax(0,1fr);
    min-height:212px;
    border:1px solid #dfe6f0;
    border-radius:13px;
    overflow:hidden;
    background:#f8fafc;
}
.map-approved-axis-label{
    padding:26px 22px;
    background:linear-gradient(135deg,var(--axis-color),#071b52);
    color:#fff;
}
.map-approved-axis-label .axis-icon{
    width:52px;
    height:52px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:rgba(255,255,255,.13);
    border:2px solid rgba(255,255,255,.45);
    font-size:1.6rem;
    margin-bottom:18px;
}
.map-approved-axis-label h3{
    color:#fff;
    font-size:1.55rem;
    line-height:1;
    letter-spacing:.02em;
    margin:0 0 18px;
}
.map-approved-axis-label p{
    color:#fff;
    line-height:1.65;
    margin:0;
}
.map-approved-field-list{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:14px;
    padding:18px;
    align-items:stretch;
}
.map-approved-field-card{
    display:grid;
    align-content:space-between;
    min-height:175px;
    padding:20px;
    background:#fff;
    border:1px solid #dfe6f0;
    border-radius:10px;
}
.map-approved-field-card:hover{
    border-color:#e01e2f;
    box-shadow:0 12px 26px rgba(15,23,42,.08);
}
.map-approved-field-card.is-hidden{
    display:none;
}
.map-approved-field-card h4{
    color:#071b52;
    font-size:1rem;
    line-height:1.16;
    margin:0 0 16px;
}
.map-approved-field-card p{
    color:#64748b;
    margin:0 0 16px;
}
.map-approved-field-card button{
    width:max-content;
    min-height:40px;
    padding:0 14px;
    border:1px solid #ffd1d1;
    border-radius:999px;
    background:#fff4f4;
    color:#e01e2f;
    font-weight:900;
    cursor:pointer;
}
.map-approved-detail{
    position:sticky;
    top:100px;
    padding:28px;
}
.map-approved-detail>span{
    display:inline-flex;
    padding:8px 12px;
    border:1px solid #ffd1d1;
    border-radius:999px;
    background:#fff4f4;
    color:#e01e2f;
    font-size:.75rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.map-approved-detail h2{
    color:#071b52;
    font-size:1.65rem;
    line-height:1.12;
    margin:22px 0;
}
.map-detail-row{
    padding:16px;
    border:1px solid #dfe6f0;
    background:#f8fafc;
    border-radius:10px;
    margin-bottom:12px;
}
.map-detail-row small{
    display:block;
    color:#e01e2f;
    font-size:.74rem;
    font-weight:900;
    text-transform:uppercase;
    margin-bottom:8px;
}
.map-detail-row strong{
    color:#071b52;
}
.map-approved-detail h3{
    color:#07366f;
    font-size:1.12rem;
    margin:24px 0 12px;
}
.map-approved-detail p{
    color:#4b5563;
    line-height:1.72;
}
.map-approved-detail ul{
    list-style:none;
    padding:0;
    margin:0;
    display:grid;
    gap:12px;
}
.map-approved-detail li{
    padding:13px 14px;
    border:1px solid #dfe6f0;
    border-radius:10px;
    color:#4b5563;
    line-height:1.55;
    background:#fbfdff;
}
.map-approved-detail li::before{
    content:"✓";
    color:#e01e2f;
    font-weight:900;
    margin-right:10px;
}

/* PRÁCTICAS APROBADAS */
.practice-approved-page{
    background:#fff;
    padding:28px 0 64px;
}
.practice-approved-breadcrumb{
    display:flex;
    gap:10px;
    align-items:center;
    color:#64748b;
    font-size:.95rem;
    margin-bottom:34px;
}
.practice-approved-breadcrumb a{
    color:#64748b;
    text-decoration:none;
}
.practice-approved-breadcrumb strong{
    color:#071b52;
}
.practice-approved-hero{
    display:grid;
    grid-template-columns:minmax(0,1fr) 480px;
    gap:46px;
    align-items:center;
    margin-bottom:24px;
}
.practice-approved-copy h1{
    color:#0a2a6a;
    font-size:clamp(2.7rem,5vw,5rem);
    line-height:1;
    letter-spacing:-.055em;
    margin:0 0 18px;
}
.practice-approved-copy h1 b{
    color:#e01e2f;
}
.practice-approved-copy p{
    max-width:780px;
    color:#46576f;
    line-height:1.7;
    font-size:1.06rem;
}
.practice-approved-info{
    position:relative;
    border:1px solid #dfe6f0;
    border-radius:14px;
    padding:24px;
    background:#fff;
    box-shadow:0 16px 38px rgba(15,23,42,.06);
}
.practice-approved-info::after{
    content:"";
    position:absolute;
    right:0;
    top:0;
    width:70px;
    height:70px;
    background:#0a2a6a;
    clip-path:polygon(100% 0,0 0,100% 100%);
}
.practice-approved-info h2{
    color:#071b52;
    font-size:1.2rem;
    margin:0 0 18px;
}
.practice-approved-info ul{
    list-style:none;
    padding:0;
    margin:0;
    display:grid;
    gap:0;
}
.practice-approved-info li{
    display:grid;
    grid-template-columns:34px minmax(0,1fr);
    gap:12px;
    align-items:center;
    padding:13px 0;
    border-bottom:1px solid #dfe6f0;
    color:#46576f;
}
.practice-approved-info li:last-child{
    border-bottom:0;
}
.practice-approved-info li span{
    color:#e01e2f;
    font-size:1.25rem;
}
.practice-approved-purpose{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:0;
    border:1px solid #dfe6f0;
    border-radius:14px;
    background:#fff;
    box-shadow:0 16px 38px rgba(15,23,42,.06);
    margin-bottom:20px;
}
.practice-approved-purpose article{
    display:grid;
    grid-template-columns:72px minmax(0,1fr);
    gap:16px;
    align-items:center;
    padding:24px 26px;
    border-right:1px solid #dfe6f0;
}
.practice-approved-purpose article:last-child{
    border-right:0;
}
.practice-approved-purpose span{
    width:64px;
    height:64px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#fff4f4;
    font-size:2rem;
}
.practice-approved-purpose strong{
    display:block;
    color:#071b52;
    line-height:1.25;
    margin-bottom:6px;
}
.practice-approved-purpose p{
    margin:0;
    color:#64748b;
    line-height:1.5;
}
.practice-approved-tabs{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:10px;
    margin-bottom:14px;
}
.practice-approved-tabs button{
    min-height:54px;
    border:1px solid #dfe6f0;
    border-radius:9px;
    background:#fff;
    color:#071b52;
    font-weight:900;
    cursor:pointer;
}
.practice-approved-tabs button.active,
.practice-approved-tabs button:hover{
    background:#0a2a6a;
    color:#fff;
}
.practice-approved-main{
    display:grid;
    grid-template-columns:minmax(0,1fr) 250px;
    gap:18px;
    align-items:start;
}
.practice-approved-grid{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:14px;
}
.practice-approved-card{
    border:1px solid #dfe6f0;
    border-radius:11px;
    background:#fff;
    overflow:hidden;
    box-shadow:0 10px 26px rgba(15,23,42,.06);
    min-height:430px;
    display:flex;
    flex-direction:column;
    transition:.22s ease;
}
.practice-approved-card.active,
.practice-approved-card:hover{
    border-color:#0a2a6a;
    box-shadow:0 16px 34px rgba(15,23,42,.11);
    transform:translateY(-3px);
}
.practice-approved-card img{
    width:100%;
    height:112px;
    object-fit:cover;
    display:block;
}
.practice-approved-icon{
    width:54px;
    height:54px;
    margin:-27px auto 10px;
    border:5px solid #fff;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#0a2a6a;
    color:#fff;
    font-size:1.4rem;
}
.practice-approved-card h2{
    color:#0a2a6a;
    text-align:center;
    font-size:1rem;
    line-height:1.15;
    margin:0 12px 8px;
}
.practice-approved-card>p{
    color:#64748b;
    font-size:.86rem;
    line-height:1.45;
    text-align:center;
    padding:0 12px;
    min-height:45px;
}
.practice-approved-mini{
    padding:0 14px;
    display:grid;
    gap:4px;
}
.practice-approved-mini strong{
    color:#071b52;
    font-size:.78rem;
}
.practice-approved-mini span{
    color:#46576f;
    font-size:.78rem;
    line-height:1.35;
}
.practice-approved-card a{
    margin:auto auto 16px;
    min-height:40px;
    padding:0 18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid #ffd1d1;
    border-radius:8px;
    background:#fff7f7;
    color:#e01e2f;
    font-weight:900;
    text-decoration:none;
    font-size:.83rem;
}
.practice-approved-card a:hover{
    background:#e01e2f;
    color:#fff;
}
.practice-approved-side{
    border:1px solid #dfe6f0;
    border-radius:12px;
    background:#f5faff;
    padding:18px;
}
.practice-approved-side h3{
    color:#0a2a6a;
    margin:0 0 10px;
}
.practice-approved-side p{
    color:#64748b;
    line-height:1.55;
}
.practice-approved-doc-preview{
    background:#fff;
    border:1px solid #dfe6f0;
    border-radius:9px;
    padding:14px;
    display:grid;
    gap:8px;
}
.practice-approved-doc-preview strong{
    color:#0a2a6a;
}
.practice-approved-doc-preview span{
    font-size:.8rem;
    color:#64748b;
}
.practice-approved-doc-preview i{
    height:5px;
    background:#dfe6f0;
    border-radius:99px;
}
.practice-approved-side .hint{
    font-size:.82rem;
    font-weight:800;
    color:#0a2a6a;
}
.practice-approved-crono-cta{
    margin-top:26px;
    display:grid;
    grid-template-columns:82px minmax(0,1fr) 250px;
    gap:18px;
    align-items:center;
    border:1px solid #dfe6f0;
    border-radius:13px;
    background:#fff;
    box-shadow:0 16px 38px rgba(15,23,42,.06);
    padding:24px 30px;
}
.crono-cta-icon{
    width:68px;
    height:68px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#fff4f4;
    font-size:2rem;
}
.practice-approved-crono-cta h2{
    color:#0a2a6a;
    margin:0 0 6px;
}
.practice-approved-crono-cta p{
    color:#64748b;
    margin:0;
}
.practice-approved-crono-cta a{
    min-height:46px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid #ffd1d1;
    border-radius:8px;
    color:#e01e2f;
    background:#fff7f7;
    font-weight:900;
    text-decoration:none;
}
.practice-approved-crono-cta a:hover{
    background:#e01e2f;
    color:#fff;
}
.practice-detail-page-approved{
    background:#f7f9fc;
    padding:40px 0 64px;
}
.practice-detail-layout-approved{
    display:grid;
    grid-template-columns:320px minmax(0,1fr);
    gap:28px;
    align-items:start;
}
.practice-detail-sidebar,
.practice-detail-content-approved{
    background:#fff;
    border:1px solid #dfe6f0;
    border-radius:18px;
    box-shadow:0 16px 38px rgba(15,23,42,.07);
}
.practice-detail-sidebar{
    position:sticky;
    top:100px;
    padding:26px;
}
.practice-back{
    color:#e01e2f;
    text-decoration:none;
    font-weight:900;
}
.practice-detail-sidebar h1{
    color:#0a2a6a;
    font-size:2rem;
    line-height:1.1;
}
.practice-detail-sidebar p{
    color:#64748b;
    line-height:1.6;
}
.practice-detail-sidebar nav{
    display:grid;
    gap:8px;
    margin-top:24px;
}
.practice-detail-sidebar nav a{
    padding:12px;
    border:1px solid #dfe6f0;
    border-radius:10px;
    color:#0a2a6a;
    text-decoration:none;
    font-weight:800;
}
.practice-detail-sidebar nav a.active,
.practice-detail-sidebar nav a:hover{
    background:#0a2a6a;
    color:#fff;
}
.practice-detail-content-approved{
    padding:34px;
}
.practice-detail-content-approved h2{
    color:#0a2a6a;
    font-size:2.6rem;
    line-height:1.05;
}
.practice-detail-content-approved .lead{
    color:#46576f;
    line-height:1.75;
    font-size:1.08rem;
}
.practice-detail-info-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:16px;
    margin:24px 0;
}
.practice-detail-info-grid article{
    border:1px solid #dfe6f0;
    border-radius:12px;
    padding:18px;
    background:#fbfdff;
}
.practice-detail-info-grid strong,
.practice-detail-content-approved h3{
    color:#0a2a6a;
}
.practice-detail-info-grid p{
    color:#46576f;
}
.practice-detail-list{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
    gap:12px;
}
.practice-detail-list p{
    display:grid;
    grid-template-columns:34px minmax(0,1fr);
    gap:10px;
    align-items:start;
    margin:0;
    padding:14px;
    border:1px solid #dfe6f0;
    border-radius:10px;
    background:#fff;
    color:#46576f;
    line-height:1.55;
}
.practice-detail-list span{
    width:26px;
    height:26px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#fff4f4;
    color:#e01e2f;
    font-weight:900;
}
.practice-timeline-approved-page{
    padding:40px 0 64px;
    background:#fff;
}
.timeline-approved-header h1{
    color:#0a2a6a;
    font-size:clamp(2.8rem,5vw,5.2rem);
    line-height:1;
    margin:0;
}
.timeline-approved-header p{
    font-size:1.8rem;
    color:#64748b;
}
.timeline-approved-header p b{
    color:#e01e2f;
}
.timeline-approved-shell{
    margin-top:24px;
}

@media (max-width:1500px){
    .map-approved-shell{
        width:min(1320px, calc(100vw - 32px));
        grid-template-columns:260px minmax(660px,1fr) 340px;
        gap:18px;
    }
    .practice-approved-main{
        grid-template-columns:1fr;
    }
    .practice-approved-grid{
        grid-template-columns:repeat(3,1fr);
    }
}
@media (max-width:1180px){
    .map-approved-shell{
        grid-template-columns:260px minmax(0,1fr);
    }
    .map-approved-detail{
        grid-column:1/-1;
        position:static;
    }
    .map-approved-head{
        grid-template-columns:1fr;
    }
    .practice-approved-hero{
        grid-template-columns:1fr;
    }
    .practice-approved-purpose{
        grid-template-columns:1fr;
    }
    .practice-approved-purpose article{
        border-right:0;
        border-bottom:1px solid #dfe6f0;
    }
}
@media (max-width:820px){
    .map-approved-shell,
    .practice-detail-layout-approved{
        width:calc(100vw - 24px);
        grid-template-columns:1fr;
    }
    .map-approved-sidebar,
    .practice-detail-sidebar{
        position:static;
    }
    .map-approved-axis-row{
        grid-template-columns:1fr;
    }
    .map-approved-field-list,
    .practice-approved-grid,
    .practice-approved-tabs,
    .practice-approved-crono-cta,
    .practice-detail-info-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   FIX FINAL: PRÁCTICA PEDAGÓGICA LIMPIA + CRONOGRAMA INTERACTIVO
   ========================================================= */

.practice-final-page{
    background:#fff;
    padding:34px 0 68px;
}
.practice-final-shell{
    width:min(1320px, calc(100vw - 40px));
    margin:0 auto;
}
.practice-final-hero{
    display:grid;
    grid-template-columns:minmax(0,1fr) 430px;
    gap:36px;
    align-items:center;
    margin-bottom:24px;
}
.practice-final-hero h1{
    color:#0a2a6a;
    font-size:clamp(2.8rem,5.5vw,5.4rem);
    line-height:1;
    letter-spacing:-.055em;
    margin:10px 0 18px;
}
.practice-final-hero h1 b{
    color:#e01e2f;
}
.practice-final-hero p{
    max-width:760px;
    color:#46576f;
    line-height:1.72;
    font-size:1.08rem;
}
.practice-final-feature{
    display:grid;
    grid-template-columns:150px minmax(0,1fr);
    gap:18px;
    align-items:center;
    border:1px solid #dfe6f0;
    border-radius:20px;
    padding:18px;
    background:#fbfdff;
    box-shadow:0 16px 36px rgba(15,23,42,.08);
}
.practice-final-feature img{
    width:150px;
    height:140px;
    border-radius:16px;
    object-fit:cover;
}
.practice-final-feature span{
    color:#e01e2f;
    font-weight:900;
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.practice-final-feature h2{
    color:#0a2a6a;
    font-size:1.35rem;
    margin:8px 0;
}
.practice-final-feature p{
    color:#64748b;
    line-height:1.55;
    margin:0;
}
.practice-final-purpose{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    border:1px solid #dfe6f0;
    border-radius:18px;
    background:#fff;
    box-shadow:0 16px 36px rgba(15,23,42,.06);
    overflow:hidden;
    margin-bottom:26px;
}
.practice-final-purpose article{
    display:grid;
    grid-template-columns:66px minmax(0,1fr);
    gap:16px;
    align-items:center;
    padding:24px 26px;
    border-right:1px solid #dfe6f0;
}
.practice-final-purpose article:last-child{
    border-right:0;
}
.practice-final-purpose span{
    width:58px;
    height:58px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#fff4f4;
    font-size:1.9rem;
}
.practice-final-purpose strong{
    color:#0a2a6a;
    display:block;
    line-height:1.25;
}
.practice-final-purpose p{
    color:#64748b;
    margin:6px 0 0;
    line-height:1.45;
}
.practice-final-explorer{
    display:grid;
    grid-template-columns:260px minmax(0,1fr);
    gap:22px;
    align-items:stretch;
    margin-bottom:26px;
}
.practice-final-tabs{
    background:#0a2a6a;
    color:#fff;
    border-radius:20px;
    padding:20px;
    display:grid;
    gap:10px;
    align-content:start;
}
.practice-final-tabs h2{
    color:#fff;
    font-size:1.6rem;
    margin:0 0 8px;
}
.practice-final-tabs button{
    min-height:58px;
    display:grid;
    grid-template-columns:34px minmax(0,1fr);
    gap:10px;
    align-items:center;
    border:1px solid rgba(255,255,255,.18);
    border-radius:12px;
    background:rgba(255,255,255,.07);
    color:#fff;
    text-align:left;
    font:inherit;
    cursor:pointer;
    padding:10px 12px;
}
.practice-final-tabs button.active,
.practice-final-tabs button:hover{
    background:#fff;
    color:#0a2a6a;
}
.practice-final-detail{
    display:grid;
    grid-template-columns:380px minmax(0,1fr);
    border:1px solid #dfe6f0;
    border-radius:20px;
    background:#fff;
    overflow:hidden;
    box-shadow:0 16px 36px rgba(15,23,42,.06);
}
.practice-final-image{
    min-height:390px;
    background:#f8fafc;
}
.practice-final-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.practice-final-copy{
    padding:32px;
}
.practice-final-copy>span{
    color:#e01e2f;
    font-weight:900;
    font-size:.8rem;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.practice-final-copy h2{
    color:#0a2a6a;
    font-size:2.2rem;
    line-height:1.06;
    margin:10px 0 14px;
}
.practice-final-copy p{
    color:#46576f;
    line-height:1.72;
}
.practice-final-info-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:12px;
    margin:20px 0;
}
.practice-final-info-grid article{
    border:1px solid #dfe6f0;
    border-radius:12px;
    background:#fbfdff;
    padding:16px;
}
.practice-final-info-grid strong{
    color:#0a2a6a;
    display:block;
    margin-bottom:6px;
}
.practice-final-info-grid p{
    margin:0;
    color:#64748b;
}
.practice-final-copy a{
    min-height:46px;
    padding:0 20px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:#e01e2f;
    color:#fff;
    text-decoration:none;
    font-weight:900;
}
.practice-final-cards{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
    margin-bottom:26px;
}
.practice-final-cards article{
    display:grid;
    grid-template-columns:130px minmax(0,1fr);
    gap:16px;
    align-items:center;
    border:1px solid #dfe6f0;
    border-radius:16px;
    background:#fff;
    padding:14px;
    box-shadow:0 10px 24px rgba(15,23,42,.05);
}
.practice-final-cards article.active{
    border-color:#0a2a6a;
    box-shadow:0 16px 34px rgba(15,23,42,.1);
}
.practice-final-cards img{
    width:130px;
    height:105px;
    border-radius:12px;
    object-fit:cover;
}
.practice-final-cards span{
    font-size:1.5rem;
}
.practice-final-cards h3{
    color:#0a2a6a;
    margin:4px 0;
    font-size:1.05rem;
}
.practice-final-cards p{
    color:#64748b;
    line-height:1.45;
    margin:0;
}
.practice-final-crono-preview{
    display:grid;
    grid-template-columns:minmax(0,1fr) 260px;
    gap:20px;
    align-items:center;
    border:1px solid #dfe6f0;
    border-radius:18px;
    padding:26px 30px;
    background:linear-gradient(135deg,#fff,#f8fbff);
    box-shadow:0 16px 36px rgba(15,23,42,.06);
}
.practice-final-crono-preview h2{
    color:#0a2a6a;
    font-size:2rem;
    margin:10px 0 8px;
}
.practice-final-crono-preview p{
    color:#64748b;
    margin:0;
    line-height:1.6;
}
.practice-final-crono-preview a{
    min-height:50px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    background:#0a2a6a;
    color:#fff;
    text-decoration:none;
    font-weight:900;
}

/* CRONOGRAMA INTERACTIVO */
.crono-final-page{
    background:#fff;
    padding:38px 0 68px;
}
.crono-final-shell{
    width:min(1500px, calc(100vw - 40px));
    margin:0 auto;
}
.crono-final-header{
    display:grid;
    grid-template-columns:360px minmax(0,1fr);
    gap:28px;
    align-items:center;
    margin-bottom:24px;
}
.crono-final-brand{
    display:flex;
    align-items:center;
    gap:18px;
}
.crono-final-brand img{
    width:120px;
    height:82px;
    object-fit:contain;
}
.crono-final-brand strong{
    color:#0a2a6a;
    text-transform:uppercase;
    line-height:1.08;
    font-size:1.15rem;
}
.crono-final-brand span{
    color:#0a2a6a;
    font-weight:900;
}
.crono-final-header h1{
    color:#0a2a6a;
    font-size:clamp(2.4rem,4.8vw,4.8rem);
    line-height:1;
    letter-spacing:-.05em;
    margin:0;
}
.crono-final-header p{
    color:#64748b;
    font-size:1.8rem;
    margin:8px 0 0;
}
.crono-final-header p b{
    color:#e01e2f;
}
.crono-final-controls{
    display:grid;
    gap:18px;
    border:1px solid #dfe6f0;
    border-radius:18px;
    padding:22px;
    background:#fbfdff;
    margin-bottom:24px;
}
.crono-final-controls label,
.crono-final-controls strong{
    display:block;
    color:#0a2a6a;
    font-weight:900;
    margin-bottom:10px;
}
.crono-final-controls input{
    width:100%;
    min-height:52px;
    border:1px solid #d7e0ec;
    border-radius:12px;
    padding:0 16px;
    font:inherit;
}
.crono-final-filter-row{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}
.crono-final-filter-row button{
    min-height:40px;
    padding:0 14px;
    border:1px solid #d7e0ec;
    border-radius:999px;
    background:#fff;
    color:#0a2a6a;
    font-weight:900;
    cursor:pointer;
}
.crono-final-filter-row button.active,
.crono-final-filter-row button:hover{
    background:#e01e2f;
    color:#fff;
    border-color:#e01e2f;
}
.crono-final-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 340px;
    gap:22px;
    align-items:start;
}
.crono-final-board{
    display:grid;
    gap:12px;
}
.crono-final-month-row{
    display:grid;
    grid-template-columns:210px minmax(0,1fr);
    gap:12px;
    align-items:stretch;
}
.crono-final-month-row.is-hidden{
    display:none;
}
.crono-final-month-row aside{
    display:flex;
    align-items:center;
    padding:0 20px;
    background:#0a2a6a;
    color:#fff;
    border-radius:12px;
    font-weight:900;
    font-size:1.1rem;
}
.crono-final-month-row>div{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:12px;
    padding:12px;
    border:1px solid #dfe6f0;
    border-radius:12px;
    background:#fff;
}
.crono-final-event{
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    gap:10px;
    align-items:center;
    border:1px solid #dfe6f0;
    border-radius:12px;
    background:#f8fbff;
    padding:14px;
    text-align:left;
    font:inherit;
    cursor:pointer;
}
.crono-final-event.is-hidden{
    display:none;
}
.crono-final-event:hover,
.crono-final-event.active{
    border-color:#0a2a6a;
    box-shadow:0 10px 24px rgba(15,23,42,.08);
    transform:translateY(-1px);
}
.crono-final-event span{
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#e8f3ff;
    font-size:1.5rem;
}
.crono-final-event strong{
    color:#0a2a6a;
    display:block;
    line-height:1.2;
}
.crono-final-event small{
    color:#64748b;
}
.crono-final-event.induccion span{background:#e8f3ff}
.crono-final-event.practica span{background:#e8f3ff}
.crono-final-event.festivo span{background:#ffe9e9}
.crono-final-event.cierre span{background:#fff2c9}
.crono-final-event.evaluacion span{background:#f1eaff}
.crono-final-event.finaliza span{background:#e9f8e9}
.crono-final-event.institucional span{background:#e6f4ff}
.crono-final-detail{
    position:sticky;
    top:100px;
    border:1px solid #dfe6f0;
    border-radius:18px;
    padding:24px;
    background:#0a2a6a;
    color:#fff;
    box-shadow:0 16px 36px rgba(15,23,42,.12);
}
.crono-final-detail span{
    color:#9fc5f8;
    text-transform:uppercase;
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.06em;
}
.crono-final-detail h2{
    color:#fff;
    font-size:1.8rem;
    line-height:1.15;
}
.crono-final-detail p{
    color:#e6eefb;
    line-height:1.65;
}
.crono-final-detail .meta{
    display:grid;
    gap:10px;
    margin-top:18px;
}
.crono-final-detail .meta div{
    background:rgba(255,255,255,.1);
    border:1px solid rgba(255,255,255,.16);
    border-radius:12px;
    padding:12px;
}
.crono-final-legend{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:10px;
    border:1px solid #dfe6f0;
    border-radius:16px;
    background:#fff;
    padding:14px;
    margin-top:20px;
}
.crono-final-legend article{
    display:flex;
    gap:10px;
    align-items:center;
    color:#0a2a6a;
    font-weight:900;
}
.crono-final-legend span{
    width:18px;
    height:18px;
    border-radius:50%;
    background:#e8f3ff;
}
.crono-final-legend .festivo span{background:#ffe9e9}
.crono-final-legend .cierre span{background:#fff2c9}
.crono-final-legend .evaluacion span{background:#f1eaff}
.crono-final-legend .finaliza span{background:#e9f8e9}
.crono-final-legend .institucional span{background:#e6f4ff}

@media(max-width:1100px){
    .practice-final-hero,
    .practice-final-explorer,
    .practice-final-detail,
    .crono-final-header,
    .crono-final-layout{
        grid-template-columns:1fr;
    }
    .practice-final-purpose,
    .practice-final-cards{
        grid-template-columns:1fr;
    }
    .practice-final-feature{
        grid-template-columns:130px 1fr;
    }
    .crono-final-detail{
        position:static;
    }
}
@media(max-width:720px){
    .practice-final-shell,
    .crono-final-shell{
        width:calc(100vw - 24px);
    }
    .practice-final-purpose article,
    .practice-final-feature,
    .practice-final-info-grid,
    .practice-final-cards article,
    .practice-final-crono-preview,
    .crono-final-month-row{
        grid-template-columns:1fr;
    }
    .practice-final-image{
        min-height:240px;
    }
}


/* =========================================================
   PRÁCTICAS 100% FUENTE DRIVE / REGLAMENTO
   ========================================================= */
.practice-drive-page{
    background:#fff;
    padding:34px 0 70px;
}
.practice-drive-shell{
    width:min(1360px, calc(100vw - 40px));
    margin:0 auto;
}
.practice-drive-hero{
    display:grid;
    grid-template-columns:minmax(0,1fr) 390px;
    gap:34px;
    align-items:center;
    margin-bottom:24px;
}
.practice-drive-copy h1{
    color:#0a2a6a;
    font-size:clamp(2.8rem,5vw,5.3rem);
    line-height:1;
    letter-spacing:-.055em;
    margin:10px 0 18px;
}
.practice-drive-copy h1 b{
    color:#e01e2f;
}
.practice-drive-copy p{
    max-width:850px;
    color:#46576f;
    font-size:1.08rem;
    line-height:1.75;
}
.practice-drive-source-card{
    border:1px solid #dfe6f0;
    border-radius:18px;
    background:#fbfdff;
    padding:24px;
    box-shadow:0 16px 36px rgba(15,23,42,.06);
}
.practice-drive-source-card strong{
    color:#0a2a6a;
    display:block;
    font-size:1.2rem;
    margin-bottom:10px;
}
.practice-drive-source-card p{
    color:#46576f;
    line-height:1.65;
}
.practice-drive-source-card span{
    display:inline-flex;
    padding:8px 12px;
    border-radius:999px;
    background:#fff4f4;
    color:#e01e2f;
    font-weight:900;
}
.practice-drive-purpose{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
    margin-bottom:24px;
}
.practice-drive-purpose div{
    display:grid;
    grid-template-columns:58px minmax(0,1fr);
    gap:14px;
    align-items:center;
    border:1px solid #dfe6f0;
    border-radius:16px;
    background:#fff;
    padding:20px;
}
.practice-drive-purpose span{
    width:52px;
    height:52px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#fff4f4;
    font-size:1.7rem;
}
.practice-drive-purpose strong{
    color:#0a2a6a;
    display:block;
}
.practice-drive-purpose p{
    margin:4px 0 0;
    color:#64748b;
    line-height:1.45;
}
.practice-drive-explorer{
    display:grid;
    grid-template-columns:280px minmax(0,1fr);
    gap:22px;
    margin-bottom:24px;
}
.practice-drive-tabs{
    background:#0a2a6a;
    color:#fff;
    border-radius:20px;
    padding:20px;
    display:grid;
    gap:10px;
    align-content:start;
}
.practice-drive-tabs h2{
    color:#fff;
    margin:0 0 10px;
    font-size:1.5rem;
}
.practice-drive-tabs button{
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    gap:12px;
    align-items:center;
    min-height:58px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:12px;
    background:rgba(255,255,255,.08);
    color:#fff;
    font:inherit;
    text-align:left;
    padding:10px 12px;
    cursor:pointer;
}
.practice-drive-tabs button.active,
.practice-drive-tabs button:hover{
    background:#fff;
    color:#0a2a6a;
}
.practice-drive-tabs button span{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:rgba(255,255,255,.16);
    font-weight:900;
}
.practice-drive-tabs button.active span{
    background:#e01e2f;
    color:#fff;
}
.practice-drive-panel{
    display:grid;
    grid-template-columns:360px minmax(0,1fr);
    border:1px solid #dfe6f0;
    border-radius:20px;
    background:#fff;
    overflow:hidden;
    box-shadow:0 16px 36px rgba(15,23,42,.06);
}
.practice-drive-image{
    min-height:440px;
    background:#f8fafc;
}
.practice-drive-image img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.practice-drive-content{
    padding:30px;
}
.practice-drive-content>span{
    color:#e01e2f;
    text-transform:uppercase;
    font-weight:900;
    letter-spacing:.06em;
    font-size:.78rem;
}
.practice-drive-content h2{
    color:#0a2a6a;
    font-size:2.15rem;
    line-height:1.08;
    margin:10px 0 18px;
}
.practice-drive-content article{
    border:1px solid #dfe6f0;
    border-radius:12px;
    background:#fbfdff;
    padding:16px;
    margin-bottom:14px;
}
.practice-drive-content strong{
    color:#0a2a6a;
    display:block;
    margin-bottom:8px;
}
.practice-drive-content p{
    color:#46576f;
    line-height:1.7;
    margin:0;
}
.practice-drive-content footer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:14px;
    margin-top:20px;
}
.practice-drive-content small{
    color:#64748b;
    line-height:1.45;
}
.practice-drive-content a,
.practice-drive-grid a,
.practice-drive-crono a{
    min-height:44px;
    padding:0 18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:#e01e2f;
    color:#fff;
    text-decoration:none;
    font-weight:900;
    white-space:nowrap;
}
.practice-drive-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
    margin-bottom:28px;
}
.practice-drive-grid article{
    display:grid;
    grid-template-columns:140px minmax(0,1fr);
    gap:16px;
    border:1px solid #dfe6f0;
    border-radius:16px;
    padding:14px;
    background:#fff;
    box-shadow:0 10px 24px rgba(15,23,42,.05);
}
.practice-drive-grid article.active{
    border-color:#0a2a6a;
}
.practice-drive-grid img{
    width:140px;
    height:145px;
    border-radius:12px;
    object-fit:cover;
}
.practice-drive-grid span{
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#0a2a6a;
    color:#fff;
    font-weight:900;
    margin-bottom:8px;
}
.practice-drive-grid h3{
    color:#0a2a6a;
    font-size:1.08rem;
    line-height:1.2;
    margin:0 0 8px;
}
.practice-drive-grid p{
    color:#64748b;
    line-height:1.5;
    font-size:.9rem;
    margin:0 0 12px;
}
.practice-drive-grid a{
    min-height:38px;
    font-size:.86rem;
}
.practice-drive-support{
    border:1px solid #dfe6f0;
    border-radius:18px;
    background:#fbfdff;
    padding:24px;
    margin-bottom:24px;
}
.practice-drive-support-head h2{
    color:#0a2a6a;
    margin:10px 0 6px;
}
.practice-drive-support-head p{
    color:#64748b;
    line-height:1.6;
}
.practice-drive-support-gallery{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:14px;
    margin-top:18px;
}
.practice-drive-support-gallery button{
    border:0;
    border-radius:14px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 10px 24px rgba(15,23,42,.08);
    cursor:pointer;
}
.practice-drive-support-gallery img{
    width:100%;
    height:160px;
    object-fit:cover;
    display:block;
}
.practice-drive-crono{
    display:grid;
    grid-template-columns:minmax(0,1fr) 260px;
    gap:18px;
    align-items:center;
    border:1px solid #dfe6f0;
    border-radius:18px;
    background:#fff;
    padding:26px;
}
.practice-drive-crono h2{
    color:#0a2a6a;
    margin:10px 0 8px;
}
.practice-drive-crono p{
    color:#64748b;
    margin:0;
    line-height:1.6;
}
.practice-drive-crono a{
    background:#0a2a6a;
}
.practice-source-detail-page{
    background:#f7f9fc;
    padding:40px 0 70px;
}
.practice-source-detail-shell{
    width:min(1320px, calc(100vw - 40px));
    margin:0 auto;
    display:grid;
    grid-template-columns:320px minmax(0,1fr);
    gap:26px;
    align-items:start;
}
.practice-source-sidebar,
.practice-source-detail-content{
    background:#fff;
    border:1px solid #dfe6f0;
    border-radius:18px;
    box-shadow:0 16px 36px rgba(15,23,42,.06);
}
.practice-source-sidebar{
    position:sticky;
    top:100px;
    padding:24px;
}
.practice-source-sidebar h1{
    color:#0a2a6a;
    font-size:2rem;
    line-height:1.1;
}
.practice-source-sidebar p{
    color:#64748b;
    line-height:1.6;
}
.practice-source-sidebar nav{
    display:grid;
    gap:8px;
    margin-top:20px;
}
.practice-source-sidebar nav a{
    padding:12px;
    border:1px solid #dfe6f0;
    border-radius:10px;
    color:#0a2a6a;
    font-weight:800;
    text-decoration:none;
}
.practice-source-sidebar nav a.active,
.practice-source-sidebar nav a:hover{
    background:#0a2a6a;
    color:#fff;
}
.practice-source-detail-content{
    padding:34px;
}
.practice-source-detail-content header h2{
    color:#0a2a6a;
    font-size:2.6rem;
    line-height:1.05;
    margin:12px 0;
}
.practice-source-detail-content header p{
    color:#64748b;
}
.practice-source-block{
    border:1px solid #dfe6f0;
    border-radius:14px;
    padding:20px;
    background:#fff;
    margin-top:18px;
}
.practice-source-block.notice{
    background:#fff7f7;
    border-color:#ffd1d1;
}
.practice-source-block h3,
.practice-source-gallery h3{
    color:#0a2a6a;
    margin:0 0 12px;
}
.practice-source-block p{
    color:#374151;
    line-height:1.78;
    margin:0 0 14px;
}
.practice-source-gallery{
    margin-top:22px;
}
.practice-source-gallery>div{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:14px;
}
.practice-source-gallery button{
    border:0;
    padding:0;
    border-radius:14px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 10px 24px rgba(15,23,42,.08);
    cursor:pointer;
}
.practice-source-gallery img{
    width:100%;
    height:180px;
    object-fit:cover;
    display:block;
}
@media(max-width:1100px){
    .practice-drive-hero,
    .practice-drive-explorer,
    .practice-drive-panel,
    .practice-drive-crono,
    .practice-source-detail-shell{
        grid-template-columns:1fr;
    }
    .practice-drive-purpose,
    .practice-drive-grid{
        grid-template-columns:1fr;
    }
    .practice-source-sidebar{
        position:static;
    }
}
@media(max-width:720px){
    .practice-drive-shell,
    .practice-source-detail-shell{
        width:calc(100vw - 24px);
    }
    .practice-drive-grid article,
    .practice-drive-purpose div{
        grid-template-columns:1fr;
    }
    .practice-drive-grid img{
        width:100%;
        height:180px;
    }
}


/* =========================================================
   PRÁCTICAS LIMPIAS: TEXTO EXTRAÍDO + SOLO FOTOGRAFÍAS
   ========================================================= */
.practice-clean-page{
    background:#fff;
    padding:36px 0 72px;
}
.practice-clean-shell{
    width:min(1320px, calc(100vw - 40px));
    margin:0 auto;
}
.practice-clean-hero{
    display:grid;
    grid-template-columns:minmax(0,1fr) 420px;
    gap:38px;
    align-items:center;
    margin-bottom:26px;
}
.practice-clean-copy h1{
    color:#0a2a6a;
    font-size:clamp(2.9rem,5.4vw,5.4rem);
    line-height:1;
    letter-spacing:-.055em;
    margin:10px 0 18px;
}
.practice-clean-copy h1 b{
    color:#e01e2f;
}
.practice-clean-copy p{
    max-width:860px;
    color:#46576f;
    font-size:1.08rem;
    line-height:1.74;
}
.practice-clean-photo{
    min-height:290px;
    border-radius:22px;
    overflow:hidden;
    box-shadow:0 18px 42px rgba(15,23,42,.12);
    border:1px solid #dfe6f0;
}
.practice-clean-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.practice-clean-propositos{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
    margin-bottom:26px;
}
.practice-clean-propositos article{
    display:grid;
    grid-template-columns:58px minmax(0,1fr);
    gap:16px;
    align-items:center;
    border:1px solid #dfe6f0;
    border-radius:18px;
    background:#fff;
    padding:20px;
    box-shadow:0 12px 28px rgba(15,23,42,.05);
}
.practice-clean-propositos span{
    width:54px;
    height:54px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#fff4f4;
    font-size:1.7rem;
}
.practice-clean-propositos p{
    margin:0;
    color:#1f2937;
    line-height:1.55;
    font-weight:700;
}
.practice-clean-layout{
    display:grid;
    grid-template-columns:280px minmax(0,1fr);
    gap:22px;
    align-items:stretch;
    margin-bottom:26px;
}
.practice-clean-tabs{
    background:#0a2a6a;
    color:#fff;
    border-radius:20px;
    padding:20px;
    display:grid;
    align-content:start;
    gap:10px;
}
.practice-clean-tabs h2{
    color:#fff;
    font-size:1.5rem;
    margin:0 0 8px;
}
.practice-clean-tabs button{
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    align-items:center;
    gap:12px;
    min-height:58px;
    padding:10px 12px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:12px;
    background:rgba(255,255,255,.08);
    color:#fff;
    font:inherit;
    text-align:left;
    cursor:pointer;
}
.practice-clean-tabs button.active,
.practice-clean-tabs button:hover{
    background:#fff;
    color:#0a2a6a;
}
.practice-clean-tabs button span{
    width:34px;
    height:34px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:rgba(255,255,255,.16);
    font-weight:900;
}
.practice-clean-tabs button.active span{
    background:#e01e2f;
    color:#fff;
}
.practice-clean-panel{
    display:grid;
    grid-template-columns:380px minmax(0,1fr);
    border:1px solid #dfe6f0;
    border-radius:20px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 16px 36px rgba(15,23,42,.06);
}
.practice-clean-panel-image{
    min-height:430px;
    background:#f8fafc;
}
.practice-clean-panel-image img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.practice-clean-panel-content{
    padding:32px;
}
.practice-clean-panel-content>span{
    color:#e01e2f;
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.practice-clean-panel-content h2{
    color:#0a2a6a;
    font-size:2.25rem;
    line-height:1.08;
    margin:10px 0 18px;
}
.practice-clean-panel-content>p{
    color:#374151;
    line-height:1.78;
    margin-bottom:18px;
}
.practice-clean-info{
    border:1px solid #dfe6f0;
    border-radius:12px;
    background:#fbfdff;
    padding:16px;
    margin-bottom:20px;
}
.practice-clean-info strong{
    color:#0a2a6a;
    display:block;
    margin-bottom:8px;
}
.practice-clean-info p{
    color:#46576f;
    margin:0;
}
.practice-clean-panel-content a,
.practice-clean-cards a,
.practice-clean-crono a{
    min-height:44px;
    padding:0 18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:#e01e2f;
    color:#fff;
    text-decoration:none;
    font-weight:900;
}
.practice-clean-cards{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
    margin-bottom:28px;
}
.practice-clean-cards article{
    display:grid;
    grid-template-columns:140px minmax(0,1fr);
    gap:16px;
    border:1px solid #dfe6f0;
    border-radius:16px;
    padding:14px;
    background:#fff;
    box-shadow:0 10px 24px rgba(15,23,42,.05);
}
.practice-clean-cards article.active{
    border-color:#0a2a6a;
}
.practice-clean-cards img{
    width:140px;
    height:145px;
    border-radius:12px;
    object-fit:cover;
}
.practice-clean-cards span{
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#0a2a6a;
    color:#fff;
    font-weight:900;
    margin-bottom:8px;
}
.practice-clean-cards h3{
    color:#0a2a6a;
    font-size:1.08rem;
    line-height:1.2;
    margin:0 0 8px;
}
.practice-clean-cards p{
    color:#64748b;
    line-height:1.5;
    font-size:.9rem;
    margin:0 0 12px;
}
.practice-clean-cards a{
    min-height:38px;
    font-size:.86rem;
}
.practice-clean-crono{
    display:grid;
    grid-template-columns:minmax(0,1fr) 220px;
    gap:18px;
    align-items:center;
    border:1px solid #dfe6f0;
    border-radius:18px;
    background:#fbfdff;
    padding:24px;
}
.practice-clean-crono h2{
    color:#0a2a6a;
    margin:0 0 8px;
}
.practice-clean-crono p{
    color:#64748b;
    margin:0;
}
.practice-clean-crono a{
    background:#0a2a6a;
}
.practice-detail-clean-page{
    background:#f7f9fc;
    padding:40px 0 70px;
}
.practice-detail-clean-shell{
    width:min(1320px, calc(100vw - 40px));
    margin:0 auto;
    display:grid;
    grid-template-columns:300px minmax(0,1fr);
    gap:26px;
    align-items:start;
}
.practice-detail-clean-sidebar,
.practice-detail-clean-content{
    background:#fff;
    border:1px solid #dfe6f0;
    border-radius:18px;
    box-shadow:0 16px 36px rgba(15,23,42,.06);
}
.practice-detail-clean-sidebar{
    position:sticky;
    top:100px;
    padding:24px;
}
.practice-detail-clean-sidebar h1{
    color:#0a2a6a;
    font-size:2rem;
}
.practice-detail-clean-sidebar nav{
    display:grid;
    gap:8px;
    margin-top:20px;
}
.practice-detail-clean-sidebar nav a{
    padding:12px;
    border:1px solid #dfe6f0;
    border-radius:10px;
    color:#0a2a6a;
    font-weight:800;
    text-decoration:none;
}
.practice-detail-clean-sidebar nav a.active,
.practice-detail-clean-sidebar nav a:hover{
    background:#0a2a6a;
    color:#fff;
}
.practice-detail-clean-content{
    padding:34px;
}
.practice-detail-clean-content header{
    display:grid;
    grid-template-columns:260px minmax(0,1fr);
    gap:24px;
    align-items:center;
    margin-bottom:24px;
}
.practice-detail-clean-content header img{
    width:260px;
    height:210px;
    object-fit:cover;
    border-radius:18px;
}
.practice-detail-clean-content h2{
    color:#0a2a6a;
    font-size:2.6rem;
    line-height:1.06;
    margin:10px 0;
}
.practice-detail-clean-content header p{
    color:#64748b;
}
.practice-detail-clean-block{
    border:1px solid #dfe6f0;
    border-radius:14px;
    background:#fff;
    padding:20px;
    margin-top:18px;
}
.practice-detail-clean-block h3,
.practice-detail-clean-gallery h3{
    color:#0a2a6a;
    margin:0 0 12px;
}
.practice-detail-clean-block p{
    color:#374151;
    line-height:1.78;
    margin:0 0 14px;
}
.practice-detail-clean-gallery{
    margin-top:22px;
}
.practice-detail-clean-gallery>div{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:14px;
}
.practice-detail-clean-gallery button{
    border:0;
    padding:0;
    border-radius:14px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 10px 24px rgba(15,23,42,.08);
    cursor:pointer;
}
.practice-detail-clean-gallery img{
    width:100%;
    height:180px;
    object-fit:cover;
    display:block;
}
@media(max-width:1100px){
    .practice-clean-hero,
    .practice-clean-layout,
    .practice-clean-panel,
    .practice-clean-crono,
    .practice-detail-clean-shell,
    .practice-detail-clean-content header{
        grid-template-columns:1fr;
    }
    .practice-clean-propositos,
    .practice-clean-cards{
        grid-template-columns:1fr;
    }
    .practice-detail-clean-sidebar{
        position:static;
    }
}
@media(max-width:720px){
    .practice-clean-shell,
    .practice-detail-clean-shell{
        width:calc(100vw - 24px);
    }
    .practice-clean-cards article{
        grid-template-columns:1fr;
    }
    .practice-clean-cards img,
    .practice-detail-clean-content header img{
        width:100%;
        height:190px;
    }
}


/* =========================================================
   PRÁCTICAS REORGANIZADAS: CLARO, LIMPIO, SIN BOTONES REPETIDOS
   ========================================================= */
.practice-organized-page{
    background:#fff;
    padding:36px 0 72px;
}
.practice-organized-shell{
    width:min(1320px, calc(100vw - 40px));
    margin:0 auto;
}
.practice-organized-hero{
    display:grid;
    grid-template-columns:minmax(0,1fr) 420px;
    gap:38px;
    align-items:center;
    margin-bottom:26px;
}
.practice-organized-copy h1{
    color:#0a2a6a;
    font-size:clamp(2.9rem,5.4vw,5.4rem);
    line-height:1;
    letter-spacing:-.055em;
    margin:10px 0 18px;
}
.practice-organized-copy h1 b{
    color:#e01e2f;
}
.practice-organized-copy p{
    max-width:860px;
    color:#46576f;
    font-size:1.08rem;
    line-height:1.74;
}
.practice-organized-photo{
    min-height:290px;
    border-radius:22px;
    overflow:hidden;
    box-shadow:0 18px 42px rgba(15,23,42,.12);
    border:1px solid #dfe6f0;
}
.practice-organized-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.practice-organized-purpose{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
    margin-bottom:26px;
}
.practice-organized-purpose article{
    display:grid;
    grid-template-columns:58px minmax(0,1fr);
    gap:16px;
    align-items:center;
    border:1px solid #dfe6f0;
    border-radius:18px;
    background:#fff;
    padding:20px;
    box-shadow:0 12px 28px rgba(15,23,42,.05);
}
.practice-organized-purpose span{
    width:54px;
    height:54px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#fff4f4;
    font-size:1.7rem;
}
.practice-organized-purpose p{
    margin:0;
    color:#1f2937;
    line-height:1.55;
    font-weight:700;
}
.practice-organized-explorer{
    display:grid;
    grid-template-columns:280px minmax(0,1fr);
    gap:22px;
    align-items:stretch;
    margin-bottom:30px;
}
.practice-organized-tabs{
    background:#0a2a6a;
    color:#fff;
    border-radius:20px;
    padding:20px;
    display:grid;
    align-content:start;
    gap:10px;
}
.practice-organized-tabs h2{
    color:#fff;
    font-size:1.5rem;
    margin:0 0 8px;
}
.practice-organized-tabs button{
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    align-items:center;
    gap:12px;
    min-height:58px;
    padding:10px 12px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:12px;
    background:rgba(255,255,255,.08);
    color:#fff;
    font:inherit;
    text-align:left;
    cursor:pointer;
}
.practice-organized-tabs button.active,
.practice-organized-tabs button:hover{
    background:#fff;
    color:#0a2a6a;
}
.practice-organized-tabs button span{
    width:34px;
    height:34px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:rgba(255,255,255,.16);
    font-weight:900;
}
.practice-organized-tabs button.active span{
    background:#e01e2f;
    color:#fff;
}
.practice-organized-panel{
    display:grid;
    grid-template-columns:380px minmax(0,1fr);
    border:1px solid #dfe6f0;
    border-radius:20px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 16px 36px rgba(15,23,42,.06);
}
.practice-organized-panel-image{
    min-height:430px;
    background:#f8fafc;
}
.practice-organized-panel-image img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.practice-organized-panel-content{
    padding:32px;
}
.practice-organized-panel-content>span{
    color:#e01e2f;
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.practice-organized-panel-content h2{
    color:#0a2a6a;
    font-size:2.25rem;
    line-height:1.08;
    margin:10px 0 18px;
}
.practice-organized-panel-content>p{
    color:#374151;
    line-height:1.78;
    margin-bottom:18px;
}
.practice-organized-info{
    border:1px solid #dfe6f0;
    border-radius:12px;
    background:#fbfdff;
    padding:16px;
    margin-bottom:20px;
}
.practice-organized-info strong{
    color:#0a2a6a;
    display:block;
    margin-bottom:8px;
}
.practice-organized-info p{
    color:#46576f;
    margin:0;
}
.practice-organized-panel-content a,
.practice-organized-crono a{
    min-height:44px;
    padding:0 18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:#e01e2f;
    color:#fff;
    text-decoration:none;
    font-weight:900;
}
.practice-organized-section-head{
    margin-bottom:16px;
}
.practice-organized-section-head h2{
    color:#0a2a6a;
    font-size:2rem;
    margin:0 0 8px;
}
.practice-organized-section-head p{
    color:#64748b;
    line-height:1.6;
    max-width:820px;
}
.practice-organized-summary{
    margin-bottom:30px;
}
.practice-organized-summary-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
}
.practice-organized-summary-grid article{
    border:1px solid #dfe6f0;
    border-radius:16px;
    background:#fff;
    padding:20px;
    box-shadow:0 10px 24px rgba(15,23,42,.04);
}
.practice-organized-summary-grid article.active{
    border-color:#0a2a6a;
}
.practice-organized-summary-grid span{
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#0a2a6a;
    color:#fff;
    font-weight:900;
    margin-bottom:12px;
}
.practice-organized-summary-grid h3{
    color:#0a2a6a;
    font-size:1.1rem;
    line-height:1.2;
    margin:0 0 10px;
}
.practice-organized-summary-grid p{
    color:#64748b;
    line-height:1.55;
    margin:0;
}
.practice-evidence-section{
    margin-bottom:30px;
    border:1px solid #dfe6f0;
    border-radius:18px;
    background:#fbfdff;
    padding:24px;
}
.practice-evidence-filters{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-bottom:18px;
}
.practice-evidence-filters button{
    min-height:40px;
    padding:0 14px;
    border-radius:999px;
    border:1px solid #d7e0ec;
    background:#fff;
    color:#0a2a6a;
    font-weight:900;
    cursor:pointer;
}
.practice-evidence-filters button.active,
.practice-evidence-filters button:hover{
    background:#e01e2f;
    color:#fff;
    border-color:#e01e2f;
}
.practice-evidence-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
    gap:14px;
}
.practice-evidence-card{
    position:relative;
    border:0;
    padding:0;
    border-radius:16px;
    overflow:hidden;
    background:#fff;
    cursor:pointer;
    box-shadow:0 12px 28px rgba(15,23,42,.08);
    min-height:190px;
}
.practice-evidence-card.is-hidden{
    display:none;
}
.practice-evidence-card img{
    width:100%;
    height:220px;
    object-fit:cover;
    display:block;
    transition:.25s ease;
}
.practice-evidence-card:hover img{
    transform:scale(1.04);
}
.practice-evidence-card span{
    position:absolute;
    left:12px;
    bottom:12px;
    right:12px;
    background:rgba(10,42,106,.9);
    color:#fff;
    border-radius:10px;
    padding:10px 12px;
    font-weight:900;
    text-align:left;
}
.practice-organized-crono{
    display:grid;
    grid-template-columns:minmax(0,1fr) 220px;
    gap:18px;
    align-items:center;
    border:1px solid #dfe6f0;
    border-radius:18px;
    background:#fbfdff;
    padding:24px;
}
.practice-organized-crono h2{
    color:#0a2a6a;
    margin:0 0 8px;
}
.practice-organized-crono p{
    color:#64748b;
    margin:0;
}
.practice-organized-crono a{
    background:#0a2a6a;
}
@media(max-width:1100px){
    .practice-organized-hero,
    .practice-organized-explorer,
    .practice-organized-panel,
    .practice-organized-crono{
        grid-template-columns:1fr;
    }
    .practice-organized-purpose,
    .practice-organized-summary-grid{
        grid-template-columns:1fr;
    }
}
@media(max-width:720px){
    .practice-organized-shell{
        width:calc(100vw - 24px);
    }
}


/* =========================================================
   INVESTIGACIÓN LIMPIA: SOLO INFOGRAFÍAS POR ÁREA
   ========================================================= */
.info-page-clean{
    background:#fff;
    padding:34px 0 72px;
}
.info-clean-shell{
    width:min(1320px, calc(100vw - 40px));
    margin:0 auto;
}
.info-clean-header{
    display:grid;
    grid-template-columns:minmax(0,1fr) 220px;
    gap:24px;
    align-items:center;
    min-height:260px;
    border-radius:0 0 28px 28px;
    background:
        linear-gradient(120deg, rgba(7,18,47,.95), rgba(10,42,106,.88)),
        radial-gradient(circle at 85% 30%, rgba(255,255,255,.16), transparent 32%);
    padding:44px;
    margin-bottom:26px;
    color:#fff;
    position:relative;
    overflow:hidden;
}
.info-clean-header::before{
    content:"";
    position:absolute;
    right:80px;
    top:-60px;
    width:340px;
    height:340px;
    border-radius:50%;
    border:34px solid rgba(255,255,255,.06);
}
.info-clean-header::after{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:4px;
    background:#1b84e7;
}
.info-clean-header > div,
.info-clean-header aside{
    position:relative;
    z-index:1;
}
.info-clean-header .section-tag{
    background:rgba(255,255,255,.12);
    border-color:rgba(255,255,255,.28);
    color:#fff;
}
.info-clean-header h1{
    color:#fff;
    font-size:clamp(3rem,6vw,5.4rem);
    line-height:1;
    letter-spacing:-.055em;
    margin:14px 0 12px;
}
.info-clean-header p{
    color:#e8eefc;
    max-width:760px;
    font-size:1.12rem;
    line-height:1.65;
}
.info-clean-header aside{
    display:grid;
    place-items:center;
    min-height:160px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:22px;
    background:rgba(255,255,255,.08);
    text-align:center;
}
.info-clean-header aside strong{
    display:block;
    font-size:4rem;
    line-height:1;
    color:#fff;
}
.info-clean-header aside span{
    color:#e8eefc;
    font-weight:800;
}
.info-clean-tools{
    display:grid;
    grid-template-columns:380px minmax(0,1fr);
    gap:20px;
    align-items:end;
    border:1px solid #dfe6f0;
    border-radius:18px;
    padding:20px;
    background:#fbfdff;
    margin-bottom:24px;
}
.info-clean-tools label span{
    display:block;
    color:#0a2a6a;
    font-weight:900;
    margin-bottom:8px;
}
.info-clean-tools input{
    width:100%;
    min-height:52px;
    border:1px solid #d7e0ec;
    border-radius:12px;
    padding:0 16px;
    font:inherit;
}
.info-clean-filters{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}
.info-clean-filters button{
    min-height:42px;
    padding:0 15px;
    border-radius:999px;
    border:1px solid #d7e0ec;
    background:#fff;
    color:#0a2a6a;
    font-weight:900;
    cursor:pointer;
}
.info-clean-filters button.active,
.info-clean-filters button:hover{
    background:#e01e2f;
    color:#fff;
    border-color:#e01e2f;
}
.info-clean-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 380px;
    gap:24px;
    align-items:start;
}
.info-clean-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}
.info-clean-card{
    border:1px solid #dfe6f0;
    border-radius:18px;
    background:#fff;
    overflow:hidden;
    box-shadow:0 12px 28px rgba(15,23,42,.05);
}
.info-clean-card.is-hidden{
    display:none;
}
.info-clean-card.active{
    border-color:#0a2a6a;
    box-shadow:0 18px 42px rgba(15,23,42,.11);
}
.info-clean-card button{
    width:100%;
    border:0;
    background:transparent;
    padding:0;
    text-align:left;
    cursor:pointer;
}
.info-clean-card img{
    width:100%;
    height:250px;
    object-fit:cover;
    object-position:top center;
    display:block;
    background:#f8fafc;
}
.info-clean-card div{
    padding:18px;
}
.info-clean-card span{
    display:inline-flex;
    padding:7px 10px;
    border-radius:999px;
    background:#f8fafc;
    color:var(--info-color);
    font-weight:900;
    font-size:.82rem;
    margin-bottom:10px;
}
.info-clean-card h2{
    color:#0a2a6a;
    margin:0 0 10px;
    font-size:1.35rem;
    line-height:1.12;
}
.info-clean-card p{
    color:#64748b;
    line-height:1.55;
    margin:0;
}
.info-clean-detail{
    position:sticky;
    top:100px;
    border:1px solid #dfe6f0;
    border-radius:22px;
    background:#fff;
    padding:24px;
    box-shadow:0 18px 42px rgba(15,23,42,.09);
}
.info-clean-detail > span{
    display:inline-flex;
    padding:8px 12px;
    border-radius:999px;
    background:#fff4f4;
    color:#e01e2f;
    font-weight:900;
    font-size:.82rem;
}
.info-clean-detail h2{
    color:#0a2a6a;
    font-size:2rem;
    line-height:1.08;
    margin:16px 0 12px;
}
.info-clean-detail p{
    color:#64748b;
    line-height:1.6;
}
.info-clean-detail img{
    width:100%;
    max-height:360px;
    object-fit:contain;
    object-position:top center;
    border:1px solid #dfe6f0;
    border-radius:16px;
    background:#f8fafc;
    margin:12px 0 18px;
}
.info-clean-detail h3{
    color:#0a2a6a;
    margin:10px 0;
}
.info-clean-detail ul{
    list-style:none;
    padding:0;
    margin:0;
    display:grid;
    gap:10px;
    max-height:330px;
    overflow:auto;
}
.info-clean-detail li{
    border:1px solid #dfe6f0;
    border-radius:10px;
    padding:10px 12px;
    color:#46576f;
    line-height:1.5;
    background:#fbfdff;
}
.info-clean-detail li::before{
    content:"•";
    color:#e01e2f;
    font-weight:900;
    margin-right:8px;
}
@media(max-width:1100px){
    .info-clean-header,
    .info-clean-tools,
    .info-clean-layout{
        grid-template-columns:1fr;
    }
    .info-clean-detail{
        position:static;
    }
}
@media(max-width:760px){
    .info-clean-shell{
        width:calc(100vw - 24px);
    }
    .info-clean-grid{
        grid-template-columns:1fr;
    }
    .info-clean-header{
        padding:28px;
    }
}


/* Corrección encabezado Investigación */
.info-section-title{
    grid-column:1 / -1;
    margin:0 0 14px;
}
.info-section-title h2{
    color:#0a2a6a;
    font-size:2rem;
    margin:0 0 6px;
}
.info-section-title p{
    color:#64748b;
    margin:0;
}
.info-clean-layout{
    align-items:start;
}


/* =========================================================
   AJUSTES: INVESTIGACIÓN MODAL COMPLETO, PLAN HEADER, REPOSITORIO
   ========================================================= */

/* Plan de estudios - encabezado limpio */
.study-hero-clean{
    background:#fff;
    padding:28px 0 8px;
}
.study-hero-shell{
    width:min(1320px, calc(100vw - 40px));
    margin:0 auto;
    display:grid;
    grid-template-columns:minmax(0,1fr) 220px;
    gap:24px;
    align-items:center;
    min-height:250px;
    border-radius:0 0 28px 28px;
    background:
        linear-gradient(120deg, rgba(7,18,47,.96), rgba(10,42,106,.9)),
        radial-gradient(circle at 80% 25%, rgba(255,255,255,.16), transparent 34%);
    color:#fff;
    padding:42px 44px;
    position:relative;
    overflow:hidden;
}
.study-hero-shell::before{
    content:"";
    position:absolute;
    right:90px;
    top:-80px;
    width:360px;
    height:360px;
    border-radius:50%;
    border:34px solid rgba(255,255,255,.055);
}
.study-hero-shell::after{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:4px;
    background:#1b84e7;
}
.study-hero-shell>div,
.study-hero-shell>aside{
    position:relative;
    z-index:1;
}
.study-hero-shell .section-tag{
    color:#fff;
    background:rgba(255,255,255,.12);
    border-color:rgba(255,255,255,.28);
}
.study-hero-shell h1{
    color:#fff;
    font-size:clamp(2.8rem,5.4vw,5.1rem);
    line-height:1;
    letter-spacing:-.055em;
    margin:14px 0 14px;
}
.study-hero-shell p{
    max-width:790px;
    color:#e8eefc;
    line-height:1.65;
    font-size:1.12rem;
}
.study-hero-shell aside{
    display:grid;
    place-items:center;
    min-height:150px;
    border-radius:22px;
    border:1px solid rgba(255,255,255,.18);
    background:rgba(255,255,255,.08);
    text-align:center;
}
.study-hero-shell aside strong{
    color:#fff;
    font-size:4rem;
    line-height:1;
}
.study-hero-shell aside span{
    color:#e8eefc;
    font-weight:900;
    text-transform:lowercase;
}

/* Investigación: acciones y modal infografía completa */
.info-card-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-top:14px;
}
.info-card-actions span{
    margin:0 !important;
    border:1px solid #dfe6f0;
    background:#fff;
    cursor:pointer;
}
.info-card-actions span:last-child{
    color:#fff;
    background:#0a2a6a;
    border-color:#0a2a6a;
}
.infografia-full-modal{
    position:fixed;
    inset:0;
    z-index:10000;
    display:none;
    background:rgba(7,18,47,.9);
    padding:24px;
}
.infografia-full-modal.active{
    display:grid;
    place-items:center;
}
.infografia-full-box{
    width:min(1180px,96vw);
    height:min(900px,92vh);
    background:#fff;
    border-radius:22px;
    overflow:hidden;
    display:grid;
    grid-template-rows:auto minmax(0,1fr);
}
.infografia-full-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    border-bottom:1px solid #dfe6f0;
    padding:14px 18px;
}
.infografia-full-head strong{
    color:#0a2a6a;
}
.infografia-full-head button{
    width:42px;
    height:42px;
    border:1px solid #ffd1d1;
    border-radius:50%;
    background:#fff4f4;
    color:#e01e2f;
    font-size:1.4rem;
    cursor:pointer;
}
.infografia-full-body{
    min-height:0;
    overflow:auto;
    background:#f8fafc;
    display:grid;
    place-items:start center;
    padding:20px;
}
.infografia-full-body img{
    max-width:100%;
    width:auto;
    height:auto;
    object-fit:contain;
    box-shadow:0 12px 34px rgba(15,23,42,.15);
    border-radius:12px;
    background:#fff;
}

/* Repositorio académico */
.repo-page{
    background:#fff;
    padding:34px 0 72px;
}
.repo-shell{
    width:min(1320px, calc(100vw - 40px));
    margin:0 auto;
}
.repo-hero{
    display:grid;
    grid-template-columns:minmax(0,1fr) 220px;
    gap:24px;
    align-items:center;
    min-height:270px;
    border-radius:0 0 28px 28px;
    background:
        linear-gradient(120deg, rgba(7,18,47,.96), rgba(10,42,106,.9)),
        radial-gradient(circle at 82% 28%, rgba(255,255,255,.16), transparent 34%);
    color:#fff;
    padding:44px;
    margin-bottom:26px;
    position:relative;
    overflow:hidden;
}
.repo-hero::before{
    content:"";
    position:absolute;
    right:80px;
    top:-80px;
    width:360px;
    height:360px;
    border-radius:50%;
    border:34px solid rgba(255,255,255,.055);
}
.repo-hero::after{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:4px;
    background:#1b84e7;
}
.repo-hero>div,
.repo-hero>aside{
    position:relative;
    z-index:1;
}
.repo-hero .section-tag{
    color:#fff;
    background:rgba(255,255,255,.12);
    border-color:rgba(255,255,255,.28);
}
.repo-hero h1{
    color:#fff;
    font-size:clamp(2.7rem,5.2vw,5rem);
    line-height:1;
    letter-spacing:-.055em;
    margin:14px 0;
}
.repo-hero p{
    max-width:820px;
    color:#e8eefc;
    line-height:1.65;
    font-size:1.12rem;
}
.repo-hero aside{
    display:grid;
    place-items:center;
    text-align:center;
    min-height:160px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:22px;
    background:rgba(255,255,255,.08);
}
.repo-hero aside strong{
    color:#fff;
    font-size:4rem;
    line-height:1;
}
.repo-hero aside span{
    color:#e8eefc;
    font-weight:900;
}
.repo-tools{
    display:grid;
    grid-template-columns:380px minmax(0,1fr);
    gap:20px;
    align-items:end;
    border:1px solid #dfe6f0;
    border-radius:18px;
    padding:20px;
    background:#fbfdff;
    margin-bottom:24px;
}
.repo-tools label span{
    display:block;
    color:#0a2a6a;
    font-weight:900;
    margin-bottom:8px;
}
.repo-tools input{
    width:100%;
    min-height:52px;
    border:1px solid #d7e0ec;
    border-radius:12px;
    padding:0 16px;
    font:inherit;
}
.repo-filters{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}
.repo-filters button{
    min-height:42px;
    padding:0 15px;
    border-radius:999px;
    border:1px solid #d7e0ec;
    background:#fff;
    color:#0a2a6a;
    font-weight:900;
    cursor:pointer;
}
.repo-filters button.active,
.repo-filters button:hover{
    background:#e01e2f;
    color:#fff;
    border-color:#e01e2f;
}
.repo-layout{
    display:grid;
    grid-template-columns:280px minmax(0,1fr);
    gap:24px;
    align-items:start;
}
.repo-sidebar{
    position:sticky;
    top:100px;
    border:1px solid #dfe6f0;
    border-radius:20px;
    background:#fff;
    padding:22px;
    box-shadow:0 14px 32px rgba(15,23,42,.06);
}
.repo-sidebar h2{
    color:#0a2a6a;
    margin:0 0 16px;
}
.repo-sidebar ul{
    list-style:none;
    padding:0;
    margin:0;
    display:grid;
    gap:12px;
}
.repo-sidebar li{
    display:flex;
    gap:10px;
    align-items:center;
    color:#0a2a6a;
    font-weight:800;
}
.repo-sidebar li span{
    width:14px;
    height:14px;
    border-radius:4px;
    background:#e01e2f;
}
.repo-note{
    margin-top:22px;
    border-radius:16px;
    background:#fbfdff;
    border:1px solid #dfe6f0;
    padding:16px;
}
.repo-note strong{
    color:#0a2a6a;
}
.repo-note p{
    color:#64748b;
    line-height:1.55;
}
.repo-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}
.repo-card{
    display:grid;
    grid-template-columns:72px minmax(0,1fr);
    gap:16px;
    border:1px solid #dfe6f0;
    border-radius:18px;
    background:#fff;
    padding:20px;
    box-shadow:0 12px 28px rgba(15,23,42,.05);
}
.repo-card.is-hidden{
    display:none;
}
.repo-icon{
    width:64px;
    height:64px;
    display:grid;
    place-items:center;
    border-radius:18px;
    background:#f0f6ff;
    color:#0a2a6a;
}
.repo-body>span{
    display:inline-flex;
    padding:7px 10px;
    border-radius:999px;
    background:#fff4f4;
    color:#e01e2f;
    font-size:.8rem;
    font-weight:900;
    margin-bottom:8px;
}
.repo-body h2{
    color:#0a2a6a;
    font-size:1.3rem;
    margin:0 0 4px;
}
.repo-body small{
    color:#64748b;
    font-weight:800;
}
.repo-body p{
    color:#46576f;
    line-height:1.58;
}
.repo-use{
    border:1px solid #dfe6f0;
    border-radius:12px;
    background:#fbfdff;
    padding:12px;
    margin:12px 0;
}
.repo-use strong{
    color:#0a2a6a;
}
.repo-use p{
    margin:5px 0 0;
    color:#64748b;
}
.repo-body a{
    min-height:42px;
    padding:0 16px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:#0a2a6a;
    color:#fff;
    text-decoration:none;
    font-weight:900;
}
@media(max-width:1100px){
    .study-hero-shell,
    .repo-hero,
    .repo-tools,
    .repo-layout{
        grid-template-columns:1fr;
    }
    .repo-sidebar{
        position:static;
    }
}
@media(max-width:760px){
    .study-hero-shell,
    .repo-shell{
        width:calc(100vw - 24px);
        padding:28px;
    }
    .repo-grid{
        grid-template-columns:1fr;
    }
    .repo-card{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   ASISTENTE VIRTUAL PFC + PANEL ACTUALIZADO
   ========================================================= */
.hp-field{
    position:absolute !important;
    left:-9999px !important;
    width:1px !important;
    height:1px !important;
    opacity:0 !important;
}
.pfc-assistant{
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:9999;
    font-family:inherit;
}
.pfc-assistant-toggle{
    min-height:56px;
    display:flex;
    align-items:center;
    gap:10px;
    border:0;
    border-radius:999px;
    background:#0a2a6a;
    color:#fff;
    padding:0 18px;
    box-shadow:0 18px 44px rgba(10,42,106,.28);
    cursor:pointer;
    font-weight:900;
}
.pfc-assistant-toggle span{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#e01e2f;
}
.pfc-assistant-panel{
    position:absolute;
    right:0;
    bottom:72px;
    width:min(390px, calc(100vw - 28px));
    height:560px;
    max-height:calc(100vh - 120px);
    display:none;
    grid-template-rows:auto minmax(0,1fr) auto auto;
    border:1px solid #dfe6f0;
    border-radius:22px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 22px 60px rgba(15,23,42,.24);
}
.pfc-assistant.open .pfc-assistant-panel{
    display:grid;
}
.pfc-assistant-panel header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:18px;
    background:linear-gradient(135deg,#07122f,#0a2a6a);
    color:#fff;
}
.pfc-assistant-panel header strong{
    display:block;
    color:#fff;
}
.pfc-assistant-panel header span{
    color:#dbeafe;
    font-size:.88rem;
}
.pfc-assistant-panel header button{
    width:36px;
    height:36px;
    border:1px solid rgba(255,255,255,.25);
    border-radius:50%;
    background:rgba(255,255,255,.08);
    color:#fff;
    font-size:1.4rem;
    cursor:pointer;
}
.pfc-assistant-messages{
    padding:16px;
    overflow:auto;
    display:flex;
    flex-direction:column;
    gap:12px;
    background:#f8fafc;
}
.pfc-assistant-messages article{
    max-width:88%;
    border-radius:16px;
    padding:12px 14px;
    line-height:1.5;
}
.pfc-assistant-messages article p{
    margin:0;
}
.pfc-assistant-messages article.bot{
    background:#fff;
    border:1px solid #dfe6f0;
    color:#1f2937;
    align-self:flex-start;
}
.pfc-assistant-messages article.user{
    background:#0a2a6a;
    color:#fff;
    align-self:flex-end;
}
.pfc-assistant-messages a{
    display:inline-flex;
    margin-top:10px;
    color:#e01e2f;
    font-weight:900;
    text-decoration:none;
}
.pfc-assistant-quick{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    padding:12px 14px;
    border-top:1px solid #dfe6f0;
    background:#fff;
}
.pfc-assistant-quick button{
    border:1px solid #d7e0ec;
    border-radius:999px;
    background:#fff;
    color:#0a2a6a;
    padding:8px 10px;
    font-size:.82rem;
    font-weight:900;
    cursor:pointer;
}
.pfc-assistant-quick button:hover{
    background:#e01e2f;
    border-color:#e01e2f;
    color:#fff;
}
.pfc-assistant-form{
    display:grid;
    grid-template-columns:minmax(0,1fr) 82px;
    gap:8px;
    padding:14px;
    border-top:1px solid #dfe6f0;
    background:#fff;
}
.pfc-assistant-form input{
    min-height:42px;
    border:1px solid #d7e0ec;
    border-radius:12px;
    padding:0 12px;
    font:inherit;
}
.pfc-assistant-form button{
    border:0;
    border-radius:12px;
    background:#e01e2f;
    color:#fff;
    font-weight:900;
    cursor:pointer;
}
.admin-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.admin-form-grid label{
    display:grid;
    gap:8px;
    color:#0a2a6a;
    font-weight:900;
}
.admin-form-grid input[type="text"],
.admin-form-grid textarea{
    width:100%;
    border:1px solid #d7e0ec;
    border-radius:12px;
    padding:12px;
    font:inherit;
    color:#1f2937;
}
.admin-form-grid .wide{
    grid-column:1/-1;
}
.admin-check-row{
    grid-column:1/-1;
    display:flex !important;
    align-items:center;
    flex-direction:row;
    gap:10px !important;
}
.admin-check-row input{
    width:18px;
    height:18px;
}
.admin-list-pro{
    list-style:none;
    padding:0;
    margin:0;
    display:grid;
    gap:10px;
}
.admin-list-pro li{
    display:flex;
    justify-content:space-between;
    gap:14px;
    align-items:center;
    border:1px solid #dfe6f0;
    border-radius:12px;
    padding:12px;
}
.admin-list-pro strong{
    color:#0a2a6a;
}
.admin-list-pro span{
    color:#64748b;
    font-size:.88rem;
}
.admin-quick-grid,
.security-check-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
    gap:14px;
}
.admin-quick-grid a,
.security-check-grid article{
    display:grid;
    gap:6px;
    border:1px solid #dfe6f0;
    border-radius:14px;
    padding:16px;
    text-decoration:none;
    background:#fbfdff;
}
.admin-quick-grid a:hover{
    border-color:#0a2a6a;
    box-shadow:0 10px 24px rgba(15,23,42,.08);
}
.admin-quick-grid strong,
.security-check-grid strong{
    color:#0a2a6a;
}
.admin-quick-grid span,
.security-check-grid span{
    color:#64748b;
    line-height:1.45;
}
@media(max-width:720px){
    .pfc-assistant{
        right:14px;
        bottom:14px;
    }
    .pfc-assistant-toggle strong{
        display:none;
    }
    .pfc-assistant-panel{
        right:-4px;
        width:calc(100vw - 20px);
        height:calc(100vh - 110px);
    }
    .admin-form-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   DOCENTES PREMIUM + EDITOR VISUAL DE FOTOGRAFÍAS
   ========================================================= */
.docentes-premium-page{
    background:#fff;
    padding:34px 0 76px;
}
.docentes-premium-shell{
    width:min(1500px, calc(100vw - 48px));
    margin:0 auto;
}
.docentes-premium-head{
    display:grid;
    grid-template-columns:minmax(0,1fr) 230px;
    gap:28px;
    align-items:center;
    text-align:center;
    margin-bottom:26px;
}
.docentes-premium-head>div{
    justify-self:center;
}
.docentes-premium-head span{
    display:block;
    color:#0a2a6a;
    text-transform:uppercase;
    letter-spacing:.12em;
    font-weight:900;
    font-size:.9rem;
}
.docentes-premium-head h1{
    color:#071b52;
    font-family: Georgia, 'Times New Roman', serif;
    font-size:clamp(2.8rem,4.7vw,5.1rem);
    line-height:1;
    letter-spacing:-.045em;
    margin:18px 0 8px;
}
.docentes-premium-head p{
    color:#64748b;
    margin:0;
    font-size:1.25rem;
}
.docentes-premium-mark{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:12px;
    margin:14px 0;
}
.docentes-premium-mark i{
    width:60px;
    height:3px;
    border-radius:999px;
    background:#1b84e7;
}
.docentes-premium-mark b{
    width:12px;
    height:12px;
    border-radius:50%;
    background:#e01e2f;
}
.docentes-premium-head aside{
    justify-self:end;
    min-height:74px;
    min-width:220px;
    border:1px solid #cfd9ea;
    border-radius:999px;
    display:grid;
    place-items:center;
    color:#0a2a6a;
    background:#fff;
}
.docentes-premium-head aside strong{
    font-size:1.6rem;
    line-height:1;
}
.docentes-premium-head aside span{
    text-transform:none;
    letter-spacing:0;
    font-size:.95rem;
}
.docentes-premium-tools{
    display:grid;
    grid-template-columns:minmax(0,1fr) 360px;
    gap:20px;
    align-items:center;
    border-bottom:1px solid #dfe6f0;
    padding-bottom:12px;
    margin-bottom:22px;
}
.docentes-premium-tabs{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}
.docentes-premium-tabs button{
    min-height:52px;
    padding:0 26px;
    border:1px solid #dfe6f0;
    border-radius:9px;
    background:#fff;
    color:#64748b;
    font-weight:900;
    font-size:1rem;
    cursor:pointer;
}
.docentes-premium-tabs button.active,
.docentes-premium-tabs button:hover{
    background:#0a2a6a;
    color:#fff;
    border-color:#0a2a6a;
}
.docentes-premium-search{
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    align-items:center;
    min-height:52px;
    border:1px solid #dfe6f0;
    border-radius:999px;
    background:#fff;
    padding:0 16px;
}
.docentes-premium-search input{
    border:0;
    outline:0;
    font:inherit;
    color:#1f2937;
    width:100%;
}
.docentes-premium-search span{
    color:#0a2a6a;
    font-size:1.25rem;
}
.docentes-premium-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 420px;
    gap:30px;
    align-items:start;
}
.docentes-premium-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:22px 26px;
}
.docente-premium-card{
    --photo-fit: cover;
    --photo-x: 50%;
    --photo-y: 18%;
    --photo-zoom: 1;
    --photo-height: 270px;
    background:#fff;
    border:1px solid #dfe6f0;
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 10px 28px rgba(15,23,42,.08);
    transition:.22s ease;
}
.docente-premium-card:hover,
.docente-premium-card.active{
    border-color:#0a2a6a;
    box-shadow:0 18px 42px rgba(15,23,42,.13);
    transform:translateY(-3px);
}
.docente-premium-card.is-hidden{
    display:none;
}
.docente-premium-photo{
    height:var(--photo-height);
    background:#35aef7;
    overflow:hidden;
    position:relative;
}
.docente-premium-photo img{
    width:100%;
    height:100%;
    object-fit:var(--photo-fit);
    object-position:var(--photo-x) var(--photo-y);
    transform:scale(var(--photo-zoom));
    transform-origin:var(--photo-x) var(--photo-y);
    display:block;
}
.teacher-avatar-fallback{
    width:100%;
    height:100%;
    min-height:220px;
    display:grid;
    place-items:center;
    background:linear-gradient(135deg,#e8f3ff,#f8fafc);
    color:#0a2a6a;
    font-weight:900;
    font-size:2rem;
}
.docente-premium-body{
    text-align:center;
    padding:14px 16px 18px;
}
.docente-premium-body h2{
    color:#0a2a6a;
    font-size:1.08rem;
    line-height:1.15;
    margin:0 0 8px;
}
.docente-premium-body i,
.docente-premium-profile-info i{
    width:42px;
    height:3px;
    display:block;
    margin:0 auto 12px;
    border-radius:999px;
    background:#e01e2f;
}
.docente-premium-body span{
    min-height:30px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:5px 10px;
    border-radius:8px;
    background:#e8f3ff;
    color:#0a2a6a;
    font-size:.78rem;
    font-weight:700;
    line-height:1.25;
    margin-bottom:12px;
}
.docente-premium-body button{
    width:100%;
    min-height:38px;
    border:1px solid #b8c7dc;
    border-radius:6px;
    background:#fff;
    color:#0a2a6a;
    font-weight:900;
    cursor:pointer;
}
.docente-premium-body button:hover{
    background:#0a2a6a;
    color:#fff;
}
.docente-premium-profile{
    position:sticky;
    top:100px;
    border:1px solid #dfe6f0;
    border-radius:24px;
    background:#fff;
    box-shadow:0 24px 68px rgba(15,23,42,.14);
    padding:26px;
    min-height:680px;
}
.docente-profile-close{
    position:absolute;
    right:18px;
    top:18px;
    width:38px;
    height:38px;
    border:0;
    background:transparent;
    color:#94a3b8;
    font-size:2rem;
    cursor:pointer;
}
.profile-label{
    display:inline-flex;
    color:#0a2a6a;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-weight:900;
    font-size:.9rem;
    margin-bottom:16px;
}
.profile-label::after{
    content:"";
    width:42px;
    height:3px;
    display:block;
    background:#e01e2f;
    margin-top:26px;
    margin-left:-100%;
}
.docente-premium-profile-photo{
    --photo-fit: cover;
    --photo-x: 50%;
    --photo-y: 18%;
    --photo-zoom: 1;
    --photo-height: 420px;
    height:420px;
    border-radius:12px;
    overflow:hidden;
    background:#35aef7;
    margin-bottom:22px;
}
.docente-premium-profile-photo img{
    width:100%;
    height:100%;
    object-fit:var(--photo-fit);
    object-position:var(--photo-x) var(--photo-y);
    transform:scale(var(--photo-zoom));
    transform-origin:var(--photo-x) var(--photo-y);
}
.docente-premium-profile-info h2{
    color:#071b52;
    font-family:Georgia, 'Times New Roman', serif;
    font-size:2.2rem;
    line-height:1.02;
    margin:0 0 10px;
}
.docente-premium-profile-info .area-pill{
    display:inline-flex;
    padding:8px 12px;
    border-radius:8px;
    background:#e8f3ff;
    color:#0a2a6a;
    font-size:.9rem;
    font-weight:800;
    margin-bottom:18px;
}
.docente-premium-profile-info section{
    border-top:1px dashed #cfd9ea;
    padding-top:18px;
    margin-top:18px;
}
.docente-premium-profile-info h3{
    color:#0a2a6a;
    margin:0 0 10px;
    font-size:1rem;
}
.docente-premium-profile-info p{
    color:#46576f;
    line-height:1.65;
    margin:0;
}
.docente-premium-actions{
    display:flex;
    gap:12px;
    margin-top:24px;
}
.docente-premium-actions a{
    min-height:46px;
    padding:0 20px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:9px;
    background:#0a2a6a;
    color:#fff;
    text-decoration:none;
    font-weight:900;
}
.docentes-premium-empty{
    margin-top:24px;
    border:1px dashed #cfd9ea;
    border-radius:16px;
    padding:24px;
    text-align:center;
    color:#64748b;
}
.docentes-premium-empty strong{
    color:#0a2a6a;
}

/* Admin docentes */
.docentes-admin-layout .admin-card-pro{
    align-self:start;
}
.admin-form-row-2{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}
.admin-form-clean select,
.admin-form-clean input[type="color"]{
    min-height:44px;
    border:1px solid #d7e0ec;
    border-radius:10px;
    padding:0 10px;
    background:#fff;
}
.teacher-visual-controls{
    border:1px solid #dfe6f0;
    border-radius:16px;
    padding:16px;
    background:#fbfdff;
}
.teacher-visual-controls h3{
    margin:0 0 14px;
    color:#0a2a6a;
}
.teacher-visual-controls input[type="range"]{
    width:100%;
}
.admin-actions-row{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}
.btn-ghost{
    min-height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 16px;
    border:1px solid #d7e0ec;
    border-radius:10px;
    color:#0a2a6a;
    background:#fff;
    text-decoration:none;
    font-weight:900;
}
.teacher-admin-preview{
    display:grid;
    place-items:center;
    padding:12px;
    background:#f8fafc;
    border:1px solid #dfe6f0;
    border-radius:16px;
}
.teacher-admin-preview .docente-premium-card{
    width:min(280px,100%);
}
.inline-admin-actions{
    display:flex;
    gap:8px;
    align-items:center;
}
.mini-btn{
    min-height:32px;
    display:inline-flex;
    align-items:center;
    padding:0 10px;
    border-radius:8px;
    background:#0a2a6a;
    color:#fff;
    text-decoration:none;
    font-size:.85rem;
    font-weight:800;
}
.mt-pro{
    margin-top:24px;
}
@media(max-width:1300px){
    .docentes-premium-layout{
        grid-template-columns:1fr;
    }
    .docente-premium-profile{
        position:static;
    }
    .docentes-premium-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}
@media(max-width:900px){
    .docentes-premium-head,
    .docentes-premium-tools,
    .admin-form-row-2{
        grid-template-columns:1fr;
    }
    .docentes-premium-head aside{
        justify-self:center;
    }
    .docentes-premium-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:620px){
    .docentes-premium-shell{
        width:calc(100vw - 24px);
    }
    .docentes-premium-grid{
        grid-template-columns:1fr;
    }
    .docente-premium-profile-photo{
        height:330px;
    }
}


/* =========================================================
   FIX DOCENTES: FOTOS CORREGIDAS Y TARJETAS ALINEADAS
   ========================================================= */
.docentes-premium-shell{
    width:min(1440px, calc(100vw - 48px));
}
.docentes-premium-layout{
    grid-template-columns:minmax(0,1fr) 390px;
    gap:26px;
}
.docentes-premium-grid{
    grid-template-columns:repeat(3,minmax(240px,1fr));
    gap:24px;
    align-items:start;
}
.docente-premium-card{
    min-height:390px;
    display:grid;
    grid-template-rows:auto 1fr;
}
.docente-premium-photo{
    height:220px !important;
    background:#35aef7;
}
.docente-premium-photo img{
    object-fit:cover;
    object-position:50% 35%;
    transform:scale(1);
    transform-origin:50% 35%;
}
.docente-premium-body{
    min-height:170px;
    display:grid;
    grid-template-rows:auto auto 1fr auto;
    align-items:start;
    padding:16px 18px 18px;
}
.docente-premium-body h2{
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.12rem;
}
.docente-premium-body span{
    width:100%;
    min-height:44px;
    margin-bottom:14px;
    display:flex;
    align-items:center;
    justify-content:center;
}
.docente-premium-body button{
    align-self:end;
}
.docente-premium-profile{
    min-height:auto;
}
.docente-premium-profile-photo{
    height:330px !important;
    background:#35aef7;
}
.docente-premium-profile-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:50% 35%;
    transform:scale(1);
    transform-origin:50% 35%;
}
.teacher-admin-preview .docente-premium-card{
    min-height:390px;
}
.teacher-admin-preview .docente-premium-photo{
    height:220px !important;
}
@media(max-width:1300px){
    .docentes-premium-layout{
        grid-template-columns:1fr;
    }
    .docentes-premium-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}
@media(max-width:980px){
    .docentes-premium-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:620px){
    .docentes-premium-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   FIX FINAL DOCENTES: FOTO COMPLETA SIN RECORTE DE ROSTRO
   ========================================================= */
.docentes-premium-shell{
    width:min(1480px, calc(100vw - 48px));
}
.docentes-premium-layout{
    grid-template-columns:minmax(0,1fr) 410px;
    gap:28px;
}
.docentes-premium-grid{
    grid-template-columns:repeat(3,minmax(280px,1fr));
    gap:28px;
    align-items:start;
}
.docente-premium-card{
    min-height:520px;
    display:grid;
    grid-template-rows:auto 1fr;
}
.docente-premium-photo{
    height:330px !important;
    background:#35aef7;
    display:grid;
    place-items:center;
}
.docente-premium-photo img{
    width:100%;
    height:100%;
    object-fit:contain !important;
    object-position:50% 50% !important;
    transform:scale(1) !important;
    transform-origin:50% 50% !important;
    background:#35aef7;
}
.docente-premium-body{
    min-height:190px;
    display:grid;
    grid-template-rows:auto auto 1fr auto;
    align-items:start;
    padding:18px 20px 20px;
}
.docente-premium-body h2{
    min-height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.14rem;
}
.docente-premium-body span{
    width:100%;
    min-height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:16px;
    padding:8px 12px;
}
.docente-premium-body button{
    align-self:end;
}
.docente-premium-profile{
    min-height:auto;
}
.docente-premium-profile-photo{
    height:430px !important;
    background:#35aef7;
    display:grid;
    place-items:center;
}
.docente-premium-profile-photo img{
    width:100%;
    height:100%;
    object-fit:contain !important;
    object-position:50% 50% !important;
    transform:scale(1) !important;
    transform-origin:50% 50% !important;
    background:#35aef7;
}
.teacher-admin-preview .docente-premium-card{
    min-height:520px;
}
.teacher-admin-preview .docente-premium-photo{
    height:330px !important;
}
.teacher-admin-preview .docente-premium-photo img{
    object-fit:contain !important;
    object-position:50% 50% !important;
    transform:scale(1) !important;
}
@media(max-width:1300px){
    .docentes-premium-layout{
        grid-template-columns:1fr;
    }
    .docentes-premium-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}
@media(max-width:1000px){
    .docentes-premium-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:640px){
    .docentes-premium-shell{
        width:calc(100vw - 24px);
    }
    .docentes-premium-grid{
        grid-template-columns:1fr;
    }
    .docente-premium-photo{
        height:360px !important;
    }
}


/* PERFIL DOCENTE COMPLETO EN MODAL */

body.modal-open{overflow:hidden}
.docente-open-modal-btn{border:none;background:linear-gradient(135deg,#0a2a6a,#123b93);color:#fff;border-radius:14px;padding:12px 16px;font-weight:800;cursor:pointer;box-shadow:0 12px 28px rgba(10,42,106,.18)}
.docente-open-modal-btn:hover{transform:translateY(-1px)}
.docente-modal[hidden]{display:none}
.docente-modal{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:24px}
.docente-modal-backdrop{position:absolute;inset:0;background:rgba(7,16,38,.72);backdrop-filter:blur(6px)}
.docente-modal-dialog{position:relative;z-index:1;width:min(1100px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:28px;box-shadow:0 35px 90px rgba(8,26,61,.28);padding:28px}
.docente-modal-close{position:absolute;top:18px;right:18px;width:44px;height:44px;border-radius:50%;border:1px solid #d6deeb;background:#fff;color:#0a2a6a;font-size:1.6rem;cursor:pointer}
.docente-modal-grid{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:30px;align-items:start}
.docente-modal-photo{--photo-fit:contain;--photo-x:50%;--photo-y:50%;--photo-zoom:1;--photo-height:430px;display:grid;place-items:center;height:var(--photo-height);border-radius:24px;background:#35aef7;overflow:hidden}
.docente-modal-photo img{width:100%;height:100%;object-fit:var(--photo-fit);object-position:var(--photo-x) var(--photo-y);transform:scale(var(--photo-zoom));background:#35aef7}
.docente-modal-content{display:grid;gap:18px}
.docente-modal-label{display:inline-flex;width:max-content;padding:8px 14px;border-radius:999px;background:#f4f7fb;border:1px solid #d8e0ec;color:#0a2a6a;font-weight:800;text-transform:uppercase;font-size:.8rem;letter-spacing:.08em}
.docente-modal-content h2{margin:0;font-family:Georgia,'Times New Roman',serif;font-size:3rem;line-height:1.05;color:#112a63}
.docente-modal-area{display:inline-flex;padding:12px 16px;border-radius:16px;background:#eef5ff;color:#16346e;font-weight:700}
.docente-modal-content section{padding:18px 20px;border:1px solid #e0e8f3;border-radius:18px;background:#fbfdff}
.docente-modal-content section h3{margin:0 0 10px;color:#0a2a6a}
.docente-modal-content section p{margin:0;color:#41526b;line-height:1.8;font-size:1.03rem;white-space:pre-line}
.docente-modal-actions{display:flex;gap:14px;flex-wrap:wrap}
.docente-modal-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border-radius:14px;background:#eaf1ff;border:1px solid #c8d6f1;color:#123b93;font-weight:800;text-decoration:none}
@media(max-width:980px){.docente-modal-grid{grid-template-columns:1fr}.docente-modal-content h2{font-size:2.35rem}.docente-modal-photo{height:360px}}
@media(max-width:640px){.docente-modal{padding:12px}.docente-modal-dialog{width:calc(100vw - 12px);padding:18px 16px;border-radius:20px}.docente-modal-photo{height:300px}.docente-modal-content h2{font-size:1.9rem}}


/* DOCENTES - LAYOUT LIMPIO SOLO MODAL */

.docentes-premium-layout{display:block !important}
.docente-premium-grid{width:100% !important;max-width:none !important;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:28px !important;align-items:stretch}
.docente-premium-profile{display:none !important}
.docente-premium-card{height:100%;display:flex;flex-direction:column}
.docente-premium-photo{height:420px !important;padding:0 !important;display:grid;place-items:center;background:#35aef7;overflow:hidden}
.docente-premium-photo img{width:100%;height:100%;object-fit:contain !important;object-position:center center !important;transform:none !important;background:#35aef7}
.docente-premium-body{flex:1;display:flex;flex-direction:column;justify-content:space-between;gap:16px;padding:26px 20px 24px !important}
.docente-premium-body span{display:block;min-height:72px}
.docente-premium-body button[data-docente-select]{margin-top:auto;width:100%;min-height:52px;border-radius:14px;font-weight:800}
@media (min-width: 1280px){.docente-premium-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.docente-premium-photo{height:390px !important}}
@media (max-width: 900px){.docente-premium-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.docente-premium-photo{height:360px !important}}
@media (max-width: 640px){.docente-premium-grid{grid-template-columns:1fr}.docente-premium-photo{height:320px !important}.docente-premium-body span{min-height:auto}}

.docente-modal-dialog{width:min(1180px,calc(100vw - 32px)) !important}
.docente-modal-photo{height:520px !important;background:#35aef7}
.docente-modal-photo img{object-fit:contain !important;object-position:center center !important;transform:none !important;background:#35aef7}
.docente-modal-content section p{white-space:pre-line}


/* AJUSTE FINAL LIMPIO DOCENTES */

.docentes-premium-page .docentes-premium-topbar{margin-bottom:22px}
.docentes-premium-page .docente-premium-card{border-radius:18px;overflow:hidden}
.docentes-premium-page .docente-premium-body h2{font-size:1.12rem}
.docentes-premium-page .docente-premium-body span{display:flex;align-items:center;justify-content:center;padding:12px 14px;line-height:1.45}
.docentes-premium-page .docente-premium-body button[data-docente-select]{background:#fff;color:#0a2a6a;border:1px solid #b8c7df}
.docentes-premium-page .docente-premium-body button[data-docente-select]:hover{background:#0a2a6a;color:#fff;border-color:#0a2a6a}
.docente-modal-content section p{font-size:1.04rem;line-height:1.85}
.docente-modal-content section{box-shadow:0 8px 20px rgba(10,42,106,.04)}


/* =========================================================
   MENÚ ACTUALIZADO + CARRUSEL SIN CAPA AZUL OPACA
   ========================================================= */

/* Quita el bloque descriptivo de los antiguos mega-menús si quedara alguno */
.nav-menu .mega-heading{
    display:none !important;
}

/* Menú desplegable limpio: solo botones/enlaces */
.nav-menu .mega-menu.compact-menu{
    width:260px;
    padding:10px;
}
.nav-menu .mega-menu.compact-menu .mega-columns{
    display:block;
}
.nav-menu .mega-menu.compact-menu section{
    display:grid;
    gap:6px;
}
.nav-menu .mega-menu.compact-menu section h4{
    display:none !important;
}
.nav-menu .mega-menu.compact-menu section a{
    display:flex;
    align-items:center;
    min-height:40px;
    padding:10px 12px;
    border-radius:10px;
    color:#0a2a6a;
    font-weight:800;
    text-decoration:none;
}
.nav-menu .mega-menu.compact-menu section a:hover{
    background:#eef5ff;
    color:#d71920;
}

/* Carrusel de inicio: se retira la capa azul oscura para apreciar las imágenes */
.pfc-premium-hero{
    background:#071126;
}
.pfc-hero-overlay{
    background:linear-gradient(90deg, rgba(7,17,38,.28), rgba(7,17,38,.10) 42%, rgba(7,17,38,.04) 72%, rgba(7,17,38,.02)) !important;
}
.pfc-hero-slide img{
    filter:saturate(1.08) contrast(1.04) brightness(1.02) !important;
}
.pfc-hero-content h1,
.pfc-hero-content p{
    text-shadow:0 4px 20px rgba(0,0,0,.42);
}
.pfc-hero-kicker{
    background:rgba(7,17,38,.42) !important;
    border-color:rgba(255,255,255,.42) !important;
}
.pfc-hero-dots{
    background:rgba(7,17,38,.28) !important;
}
@media(max-width:900px){
    .nav-menu .mega-menu.compact-menu{
        width:100%;
    }
}


/* Panel admin: nota informativa para asistente */
.admin-card-note{
    border:1px solid #dfe6f0;
    border-left:5px solid #0a2a6a;
    border-radius:14px;
    background:#fbfdff;
    padding:14px 16px;
    color:#46576f;
}
.admin-card-note strong{
    display:block;
    color:#0a2a6a;
    margin-bottom:6px;
}
.admin-card-note p{
    margin:0;
    line-height:1.55;
}


/* =========================================================
   CORRECCIÓN FINAL MENÚ DESPLEGABLE
   Cada submenú baja debajo de su opción correspondiente.
   ========================================================= */
.site-header,
.main-navigation,
.main-nav,
.navbar,
.nav-wrapper,
.nav-container,
.header-nav,
.nav-menu{
    overflow:visible !important;
}

.nav-menu{
    position:relative !important;
    display:flex;
    align-items:center;
}

.nav-menu .nav-item,
.nav-menu .has-mega{
    position:relative !important;
}

.nav-menu .mega-menu,
.nav-menu .mega-menu.compact-menu{
    position:absolute !important;
    top:calc(100% + 0px) !important;
    left:0 !important;
    right:auto !important;
    transform:none !important;
    min-width:230px !important;
    width:max-content !important;
    max-width:280px !important;
    margin:0 !important;
    z-index:99999 !important;
    border-radius:0 0 12px 12px !important;
    box-shadow:0 18px 40px rgba(7, 17, 38, .18) !important;
}

.nav-menu .has-mega:hover > .mega-menu,
.nav-menu .has-mega:focus-within > .mega-menu{
    display:block !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
}

.nav-menu .mega-menu.compact-menu .mega-columns,
.nav-menu .mega-menu.compact-menu section{
    width:100% !important;
}

.nav-menu .mega-menu.compact-menu section a{
    white-space:nowrap !important;
    width:100% !important;
}

/* Evita que los últimos menús se salgan hacia la derecha */
.nav-menu .has-mega:nth-last-child(-n+3) > .mega-menu{
    left:auto !important;
    right:0 !important;
}

/* En móviles el menú se comporta como bloque normal */
@media(max-width: 980px){
    .nav-menu{
        display:block !important;
    }

    .nav-menu .mega-menu,
    .nav-menu .mega-menu.compact-menu{
        position:static !important;
        width:100% !important;
        max-width:none !important;
        box-shadow:none !important;
        border-radius:10px !important;
        margin:6px 0 10px !important;
    }

    .nav-menu .mega-menu.compact-menu section a{
        white-space:normal !important;
    }
}


/* Configuración IA opcional en panel */
.admin-ai-config{
    border:1px solid #dfe6f0;
    border-left:5px solid #e01e2f;
    border-radius:16px;
    background:#fbfdff;
    padding:16px;
}
.admin-ai-config h3{
    color:#0a2a6a;
    margin:0 0 8px;
}
.admin-ai-config p{
    color:#64748b;
    line-height:1.55;
    margin:0 0 14px;
}


/* Cronograma 2026-2 integrado */
.crono-table-2026-2 .crono-table-head{
    grid-template-columns:90px 110px 190px 135px minmax(0,1fr) 90px;
}
.crono-table-2026-2 .crono-row{
    grid-template-columns:90px 110px 190px 135px minmax(0,1fr) 90px;
}
.crono-month small{
    display:block;
    margin-top:4px;
    color:#64748b;
    font-size:.76rem;
    line-height:1.35;
    font-weight:600;
}
.crono-weeks{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:32px;
    border-radius:999px;
    background:#eef5ff;
    color:#0a2a6a;
    font-weight:900;
}
@media(max-width:980px){
    .crono-table-2026-2 .crono-table-head{
        display:none;
    }
    .crono-table-2026-2 .crono-row{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   PANEL CUENTA + ASISTENTE INTELIGENTE FINAL
   ========================================================= */
.assistant-option-list{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:12px;
}
.assistant-option-list button{
    border:1px solid #cfd9ea;
    border-radius:999px;
    background:#fff;
    color:#0a2a6a;
    font-weight:800;
    padding:8px 10px;
    cursor:pointer;
    font-size:.82rem;
}
.assistant-option-list button:hover{
    background:#0a2a6a;
    color:#fff;
    border-color:#0a2a6a;
}
.account-admin-form input[type="password"],
.account-admin-form input[type="email"],
.account-admin-form input[type="text"]{
    width:100%;
}


/* =========================================================
   CHATBOT PFC: OPCIONES MÚLTIPLES + GEMINI OPCIONAL
   ========================================================= */
.assistant-option-list{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:12px;
}
.assistant-option-list button{
    border:1px solid #cfd9ea;
    border-radius:999px;
    background:#fff;
    color:#0a2a6a;
    font-weight:800;
    padding:8px 11px;
    cursor:pointer;
    font-size:.82rem;
}
.assistant-option-list button:hover{
    background:#0a2a6a;
    color:#fff;
    border-color:#0a2a6a;
}
.pfc-assistant-messages article.bot{
    box-shadow:0 8px 18px rgba(10,42,106,.06);
}
.admin-form-grid select,
.admin-form-grid input[type="password"],
.admin-form-grid input[type="email"]{
    width:100%;
    min-height:44px;
    border:1px solid #d7e0ec;
    border-radius:12px;
    padding:0 12px;
    font:inherit;
}
.admin-ai-config code{
    background:#eef5ff;
    color:#0a2a6a;
    padding:2px 6px;
    border-radius:6px;
    font-weight:800;
}


/* =========================================================
   GEMINI PANEL FIX: ESTADO Y PRUEBA DE CONEXIÓN
   ========================================================= */
.gemini-status-box{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    align-items:center;
    border:1px solid #dfe6f0;
    border-radius:14px;
    background:#fff;
    padding:12px;
    margin-top:12px;
}
.gemini-status-box strong{
    color:#0a2a6a;
}
.gemini-status-box span{
    color:#46576f;
    font-weight:800;
}


/* =========================================================
   AVATAR VIRTUAL HUMANO - ASISTENTE PFC
   ========================================================= */
.pfc-assistant-avatar-mode .pfc-assistant-toggle{
    gap:10px;
}
.assistant-avatar-mini,
.assistant-avatar-large{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
}
.assistant-avatar-mini{
    width:34px;
    height:34px;
}
.assistant-avatar-large{
    width:58px;
    height:58px;
}
.avatar-ring{
    position:absolute;
    inset:-4px;
    border-radius:999px;
    border:2px solid rgba(255,255,255,.35);
    animation:avatarPulse 2.6s infinite;
}
.avatar-face{
    position:relative;
    width:100%;
    height:100%;
    border-radius:999px;
    background:linear-gradient(145deg,#ffffff,#dbeafe 48%,#e9f2ff);
    box-shadow:inset 0 -6px 12px rgba(10,42,106,.10), 0 8px 18px rgba(0,0,0,.14);
    border:2px solid rgba(255,255,255,.8);
    display:block;
}
.avatar-eye{
    position:absolute;
    top:36%;
    width:13%;
    height:13%;
    border-radius:999px;
    background:#0a2a6a;
    animation:avatarBlink 5.5s infinite;
}
.assistant-avatar-mini .avatar-eye{
    top:35%;
}
.avatar-eye.left{
    left:31%;
}
.avatar-eye.right{
    right:31%;
}
.avatar-mouth{
    position:absolute;
    left:35%;
    right:35%;
    bottom:30%;
    height:8%;
    border-radius:0 0 999px 999px;
    border-bottom:3px solid #d71920;
}
.assistant-human-header{
    display:flex !important;
    align-items:center;
    gap:12px;
}
.assistant-human-info{
    display:grid;
    gap:2px;
    flex:1;
}
.assistant-human-info small{
    display:flex;
    align-items:center;
    gap:6px;
    font-size:.78rem;
    opacity:.92;
}
.assistant-human-info small i{
    width:8px;
    height:8px;
    border-radius:999px;
    background:#30d158;
    box-shadow:0 0 0 4px rgba(48,209,88,.15);
}
.assistant-typing p{
    display:flex !important;
    gap:5px;
    align-items:center;
    min-height:22px;
}
.assistant-typing p span{
    width:7px;
    height:7px;
    border-radius:999px;
    background:#0a2a6a;
    opacity:.35;
    animation:typingBounce 1.1s infinite;
}
.assistant-typing p span:nth-child(2){
    animation-delay:.15s;
}
.assistant-typing p span:nth-child(3){
    animation-delay:.3s;
}
@keyframes avatarPulse{
    0%,100%{transform:scale(1);opacity:.62}
    50%{transform:scale(1.08);opacity:.22}
}
@keyframes avatarBlink{
    0%,92%,100%{transform:scaleY(1)}
    95%{transform:scaleY(.12)}
}
@keyframes typingBounce{
    0%,80%,100%{transform:translateY(0);opacity:.35}
    40%{transform:translateY(-4px);opacity:1}
}


/* =========================================================
   PEPE - AVATAR REAL DEL CHAT PFC
   ========================================================= */
.pfc-pepe-assistant .pepe-chat-toggle{
    width:86px !important;
    height:86px !important;
    padding:0 !important;
    border-radius:28px !important;
    overflow:visible !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    background:linear-gradient(145deg,#ffffff,#eaf5ff) !important;
    box-shadow:0 18px 40px rgba(10,42,106,.28) !important;
    border:3px solid rgba(255,255,255,.92) !important;
    position:relative !important;
}
.pfc-pepe-assistant .pepe-chat-toggle picture,
.pfc-pepe-assistant .pepe-chat-toggle img{
    width:100% !important;
    height:100% !important;
    display:block !important;
    border-radius:24px !important;
}
.pfc-pepe-assistant .pepe-chat-toggle img{
    object-fit:cover !important;
}
.pfc-pepe-assistant .pepe-chat-toggle strong{
    position:absolute;
    left:50%;
    bottom:-20px;
    transform:translateX(-50%);
    background:#0a2a6a;
    color:#fff;
    font-size:.74rem;
    line-height:1;
    padding:6px 10px;
    border-radius:999px;
    white-space:nowrap;
    box-shadow:0 8px 18px rgba(10,42,106,.22);
}
.pfc-pepe-assistant .pepe-online-dot{
    position:absolute;
    right:5px;
    bottom:5px;
    width:16px;
    height:16px;
    border-radius:999px;
    background:#30d158;
    border:3px solid #fff;
    box-shadow:0 0 0 5px rgba(48,209,88,.16);
    z-index:4;
}
.pfc-pepe-assistant.open .pepe-chat-toggle{
    transform:translateY(-2px) scale(.96);
}
.pepe-chat-header{
    background:linear-gradient(135deg,#0a2a6a,#0e4d92) !important;
}
.pepe-avatar-panel{
    width:66px !important;
    height:66px !important;
    border-radius:20px !important;
    overflow:hidden !important;
    background:#fff;
    box-shadow:0 10px 22px rgba(0,0,0,.18);
    border:3px solid rgba(255,255,255,.9);
}
.pepe-avatar-panel picture,
.pepe-avatar-panel img{
    width:100%;
    height:100%;
    display:block;
}
.pepe-avatar-panel img{
    object-fit:cover;
}
@media(max-width:640px){
    .pfc-pepe-assistant .pepe-chat-toggle{
        width:74px !important;
        height:74px !important;
        border-radius:24px !important;
    }
    .pfc-pepe-assistant .pepe-chat-toggle img{
        border-radius:20px !important;
    }
    .pfc-pepe-assistant .pepe-chat-toggle strong{
        bottom:-18px;
        font-size:.68rem;
    }
}


/* =========================================================
   DASHBOARD WORDPRESS-LIKE PFC CMS
   ========================================================= */
.wp-admin-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;margin:0 0 24px;padding:26px;border-radius:26px;background:linear-gradient(135deg,#0a2a6a,#0e4d92 60%,#d71920);color:#fff;box-shadow:0 18px 42px rgba(10,42,106,.22)}
.wp-admin-hero span{display:inline-flex;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.18);font-weight:800;font-size:.82rem;margin-bottom:10px}.wp-admin-hero h2{font-size:2rem;margin:0 0 8px}.wp-admin-hero p{max-width:760px;line-height:1.55;margin:0;color:rgba(255,255,255,.9)}.wp-admin-actions{display:flex;gap:10px;flex-wrap:wrap}.wp-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.wp-dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:22px}.wp-main-card{grid-row:span 2}.wp-action-list{display:grid;gap:12px}.wp-action-list a{display:grid;grid-template-columns:46px 1fr;gap:12px;align-items:center;padding:14px;border:1px solid #e3e9f3;border-radius:18px;background:#fff;text-decoration:none;color:#10243f}.wp-action-list a span{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#eef5ff;color:#0a2a6a;font-weight:900}.wp-action-list a strong{display:block;color:#0a2a6a;margin-bottom:3px}.wp-action-list a small{color:#64748b;line-height:1.35}
.wp-editor-layout{display:grid;grid-template-columns:290px 1fr;gap:22px;align-items:start}.wp-page-list{position:sticky;top:18px}.wp-page-list nav{display:grid;gap:8px}.wp-page-list a{display:block;padding:12px 14px;border:1px solid #e3e9f3;border-radius:14px;background:#fff;text-decoration:none;color:#10243f}.wp-page-list a.active{border-color:#0a2a6a;background:#eef5ff}.wp-page-list strong{display:block;color:#0a2a6a}.wp-page-list span{display:block;color:#64748b;font-size:.78rem;margin-top:3px}.wp-editor-main{min-width:0}.wp-block-editor-list,.wp-chatbot-editor-list{display:grid;gap:14px}.wp-block-editor-item,.wp-chatbot-answer{border:1px solid #e3e9f3;border-radius:18px;padding:14px;background:#fbfdff}.wp-chatbot-answer summary{cursor:pointer;display:flex;justify-content:space-between;gap:14px;align-items:center}.wp-chatbot-answer summary span{color:#64748b;font-size:.86rem}.wp-delete-answer-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.json-editor-area{width:100%;min-height:620px;font-family:Consolas,Monaco,monospace;font-size:.88rem;line-height:1.45;border:1px solid #d8e2ef;border-radius:18px;padding:16px;background:#071126;color:#dbeafe;tab-size:2}.cms-public-blocks{background:#f7fbff}.cms-public-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}.cms-public-card{border:1px solid #e3e9f3;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 12px 26px rgba(10,42,106,.08)}.cms-public-card img{width:100%;height:190px;object-fit:cover}.cms-public-card div{padding:20px}.cms-public-card span{display:inline-flex;padding:5px 10px;border-radius:999px;background:#eef5ff;color:#0a2a6a;font-weight:900;font-size:.78rem;margin-bottom:10px}.cms-public-card h3{margin:0 0 10px;color:#0a2a6a}.cms-public-card p{color:#46576f;line-height:1.6}.cms-public-card a{display:inline-flex;margin-top:8px;color:#d71920;font-weight:900;text-decoration:none}.type-notice{border-left:6px solid #d71920}.type-callout{border-left:6px solid #0a2a6a}
@media(max-width:1080px){.wp-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wp-dashboard-grid,.wp-editor-layout{grid-template-columns:1fr}.wp-page-list{position:static}.wp-admin-hero{align-items:flex-start;flex-direction:column}}@media(max-width:640px){.wp-metric-grid{grid-template-columns:1fr}.wp-admin-hero h2{font-size:1.45rem}}


/* =========================================================
   INVESTIGACIÓN PFC — DISEÑO UNIFICADO LIMPIO
   ========================================================= */
.investigacion-v2{
    background:#f7f9fd;
    color:#07172f;
}
.inv-v2-hero{
    background:linear-gradient(90deg,#ffffff 0%,#ffffff 48%,#edf3fb 100%);
    border-bottom:1px solid #e7edf6;
    overflow:hidden;
}
.inv-v2-hero-grid{
    min-height:285px;
    display:grid;
    grid-template-columns:1fr 1.08fr;
    gap:28px;
    align-items:center;
}
.inv-v2-breadcrumb{
    font-size:.88rem;
    color:#60708a;
    margin-bottom:18px;
}
.inv-v2-breadcrumb span{
    margin:0 8px;
    color:#a8b3c4;
}
.inv-v2-hero h1{
    font-size:clamp(2.4rem,5vw,4.2rem);
    line-height:.98;
    color:#071f4a;
    margin:0 0 18px;
    font-weight:950;
    letter-spacing:-.05em;
}
.inv-v2-hero p{
    max-width:600px;
    color:#33445f;
    font-size:1.08rem;
    line-height:1.75;
    margin:0 0 22px;
}
.inv-v2-primary-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:0 18px;
    border-radius:8px;
    background:#071f4a;
    color:#fff !important;
    font-weight:900;
    text-decoration:none;
    box-shadow:0 12px 24px rgba(7,31,74,.16);
}
.inv-v2-hero-art{
    height:285px;
    position:relative;
}
.inv-v2-hero-art:after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,#f7f9fd 0%,rgba(247,249,253,.45) 16%,rgba(247,249,253,.02) 48%);
}
.inv-v2-hero-art img{
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:0 0 0 38px;
    filter:saturate(1.05) contrast(1.02);
}
.inv-v2-tabs{
    margin-top:-26px;
    position:relative;
    z-index:5;
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:15px;
    display:flex;
    justify-content:space-between;
    box-shadow:0 12px 32px rgba(7,23,47,.08);
    overflow:hidden;
}
.inv-v2-tabs a{
    flex:1;
    min-height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    text-decoration:none;
    color:#071f4a;
    font-weight:900;
    font-size:.88rem;
    border-right:1px solid #e8eef6;
    transition:.2s ease;
}
.inv-v2-tabs a:last-child{border-right:0}
.inv-v2-tabs a span{font-size:1.12rem}
.inv-v2-tabs a:hover,
.inv-v2-tabs a.active{
    background:#071f4a;
    color:#fff;
}
.inv-v2-stats{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
    margin-top:28px;
}
.inv-v2-stats article{
    background:#fff;
    border:1px solid #e4ebf5;
    border-bottom:5px solid #d71920;
    border-radius:15px;
    padding:22px;
    box-shadow:0 12px 28px rgba(7,23,47,.06);
}
.inv-v2-stats strong{
    color:#071f4a;
    font-size:2.3rem;
    display:block;
    line-height:1;
    font-weight:950;
}
.inv-v2-stats span{
    display:block;
    color:#162a4a;
    font-weight:900;
    margin-top:4px;
}
.inv-v2-stats small{
    display:block;
    margin-top:6px;
    color:#62718a;
    font-weight:700;
}
.inv-v2-feature-grid{
    display:grid;
    grid-template-columns:1.35fr .8fr .8fr;
    gap:18px;
    margin-top:22px;
}
.inv-v2-feature,
.inv-v2-group-card,
.inv-v2-line-card,
.inv-v2-list-panel article,
.inv-v2-project-grid article,
.inv-v2-docs article,
.inv-v2-calls article{
    background:#fff;
    border:1px solid #e3eaf4;
    border-radius:16px;
    box-shadow:0 10px 26px rgba(7,23,47,.055);
}
.inv-v2-feature{
    padding:24px;
}
.inv-v2-feature h2,
.inv-v2-feature h3{
    color:#071f4a;
    margin:10px 0;
}
.inv-v2-feature p{
    color:#3d4f6a;
    line-height:1.7;
}
.inv-v2-icon,
.inv-v2-card-icon{
    width:58px;
    height:58px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#eaf2ff;
    color:#071f4a;
    font-size:1.45rem;
    flex:0 0 auto;
}
.inv-v2-icon.red,
.inv-v2-card-icon.red{background:#fff0f1;color:#d71920}
.inv-v2-icon.green{background:#edfbe9;color:#2f8f2f}
.inv-v2-tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:14px;
}
.inv-v2-tags span{
    padding:6px 9px;
    border-radius:999px;
    background:#f0f5fb;
    color:#163153;
    font-weight:800;
    font-size:.78rem;
}
.inv-v2-link{
    display:inline-flex;
    margin-top:14px;
    color:#d71920 !important;
    text-decoration:none;
    font-weight:950;
}
.inv-v2-section{
    padding:44px 0;
    scroll-margin-top:120px;
}
.inv-v2-section-head{
    margin-bottom:18px;
}
.inv-v2-section-head span{
    color:#d71920;
    font-weight:950;
    text-transform:uppercase;
    font-size:.78rem;
    letter-spacing:.08em;
}
.inv-v2-section-head h2{
    margin:5px 0 8px;
    font-size:2rem;
    color:#071f4a;
    letter-spacing:-.035em;
}
.inv-v2-section-head p{
    color:#5b6b82;
    max-width:760px;
    line-height:1.65;
}
.inv-v2-groups-layout{
    display:grid;
    grid-template-columns:300px 1fr;
    gap:28px;
}
.inv-v2-filter{
    background:#fff;
    border:1px solid #e3eaf4;
    border-radius:18px;
    padding:22px;
    box-shadow:0 10px 26px rgba(7,23,47,.05);
    position:sticky;
    top:100px;
    align-self:start;
}
.inv-v2-filter h3{
    color:#071f4a;
    margin:0 0 14px;
}
.inv-v2-filter label{
    display:grid;
    gap:7px;
    font-weight:900;
    color:#142742;
}
.inv-v2-filter input{
    width:100%;
    min-height:42px;
    border:1px solid #d9e3f0;
    border-radius:10px;
    padding:0 12px;
}
.inv-v2-filter strong{
    display:block;
    margin:20px 0 10px;
    color:#071f4a;
}
.inv-v2-filter-tags{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
}
.inv-v2-filter-tags button{
    border:1px solid #dbe4ef;
    border-radius:9px;
    background:#fff;
    color:#071f4a;
    min-height:36px;
    padding:0 14px;
    font-weight:900;
    cursor:pointer;
}
.inv-v2-filter-tags button.active,
.inv-v2-filter-tags button:hover{
    background:#071f4a;
    color:#fff;
}
.inv-v2-mini-stats{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    margin:22px 0;
}
.inv-v2-mini-stats article{
    border:1px solid #e3eaf4;
    border-radius:12px;
    padding:12px 8px;
    text-align:center;
}
.inv-v2-mini-stats strong{
    display:block;
    color:#071f4a;
    font-size:1.35rem;
}
.inv-v2-mini-stats span{
    font-size:.75rem;
    color:#5d6d83;
    font-weight:800;
}
.inv-v2-help-card{
    border-radius:16px;
    background:linear-gradient(135deg,#fff5f5,#f3f7ff);
    padding:18px;
}
.inv-v2-help-card strong{color:#071f4a}
.inv-v2-help-card p{color:#53657d;line-height:1.55}
.inv-v2-help-card a{color:#071f4a;font-weight:950;text-decoration:none}
.inv-v2-group-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.inv-v2-group-card{
    display:grid;
    grid-template-columns:72px 1fr auto;
    gap:16px;
    align-items:center;
    padding:20px;
}
.inv-v2-group-card h3{
    color:#071f4a;
    margin:0 0 7px;
}
.inv-v2-group-card p{
    color:#46576f;
    line-height:1.55;
    margin:0 0 10px;
}
.inv-v2-group-card dl{
    display:grid;
    gap:4px;
    margin:0;
}
.inv-v2-group-card dl div{
    display:flex;
    gap:8px;
}
.inv-v2-group-card dt{
    color:#071f4a;
    font-weight:950;
}
.inv-v2-group-card dd{
    margin:0;
    color:#45566d;
}
.inv-v2-group-card>a{
    align-self:center;
    color:#071f4a;
    font-weight:950;
    border:1px solid #071f4a;
    border-radius:8px;
    padding:8px 12px;
    text-decoration:none;
    white-space:nowrap;
}
.inv-v2-next-row{
    margin-top:18px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
}
.inv-v2-next-row a{
    background:#fff;
    border:1px solid #e4ebf5;
    border-radius:14px;
    padding:18px;
    color:#071f4a;
    font-weight:950;
    text-decoration:none;
}
.inv-v2-lines-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
}
.inv-v2-line-card{
    padding:20px;
}
.inv-v2-line-card h3{
    color:#071f4a;
    margin:12px 0 8px;
}
.inv-v2-line-card p{
    color:#52647b;
    line-height:1.62;
}
.inv-v2-line-card small{
    display:block;
    color:#394b63;
    margin-top:8px;
}
.inv-v2-list-panel{
    display:grid;
    gap:12px;
}
.inv-v2-list-panel article,
.inv-v2-calls article{
    display:grid;
    grid-template-columns:45px 1fr auto;
    gap:14px;
    align-items:center;
    padding:17px 18px;
}
.inv-v2-list-panel span,
.inv-v2-calls span{
    width:42px;
    height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    background:#eef5ff;
}
.inv-v2-list-panel h3,
.inv-v2-calls h3{
    color:#071f4a;
    margin:0 0 4px;
}
.inv-v2-list-panel p,
.inv-v2-calls p{
    margin:0;
    color:#5d6d83;
}
.inv-v2-list-panel strong,
.inv-v2-calls strong{
    padding:6px 10px;
    border-radius:999px;
    background:#ebf8ed;
    color:#1a7b38;
    font-weight:950;
}
.inv-v2-project-grid,
.inv-v2-infographic-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
}
.inv-v2-project-grid article,
.inv-v2-infographic-grid article{
    overflow:hidden;
}
.inv-v2-project-grid img,
.inv-v2-infographic-grid img{
    width:100%;
    height:150px;
    object-fit:cover;
}
.inv-v2-project-grid div,
.inv-v2-infographic-grid article{
    padding-bottom:14px;
}
.inv-v2-project-grid article div{
    padding:15px;
}
.inv-v2-project-grid h3,
.inv-v2-infographic-grid h3{
    color:#071f4a;
    margin:0 0 8px;
}
.inv-v2-project-grid p,
.inv-v2-infographic-grid p{
    color:#5a6a81;
    margin:0 0 8px;
}
.inv-v2-project-grid span{
    color:#d71920;
    font-weight:950;
}
.inv-v2-infographic-grid h3,
.inv-v2-infographic-grid p{
    padding:0 14px;
}
.inv-v2-production{
    display:grid;
    grid-template-columns:220px 1fr;
    gap:18px;
}
.inv-v2-production aside{
    background:#fff;
    border:1px solid #e4ebf5;
    border-radius:14px;
    padding:12px;
    display:grid;
    gap:8px;
    align-self:start;
}
.inv-v2-production button{
    border:0;
    background:#f5f7fb;
    text-align:left;
    padding:12px;
    border-radius:9px;
    font-weight:900;
    color:#071f4a;
}
.inv-v2-production button.active{background:#071f4a;color:#fff}
.inv-v2-production>div{
    display:grid;
    gap:10px;
}
.inv-v2-production article{
    background:#fff;
    border:1px solid #e4ebf5;
    border-radius:12px;
    padding:14px 16px;
    display:grid;
    grid-template-columns:1fr 110px 70px;
    align-items:center;
    gap:12px;
}
.inv-v2-production strong{color:#071f4a}
.inv-v2-production span{
    color:#d71920;
    font-weight:950;
}
.inv-v2-docs{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:12px;
}
.inv-v2-docs article{
    display:grid;
    grid-template-columns:42px 1fr auto;
    gap:12px;
    align-items:center;
    padding:14px 16px;
}
.inv-v2-docs span{
    width:38px;
    height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:#fff2f2;
}
.inv-v2-docs h3{
    color:#071f4a;
    margin:0 0 3px;
    font-size:.98rem;
}
.inv-v2-docs p{
    color:#687891;
    margin:0;
    font-size:.86rem;
}
.inv-v2-docs a{
    color:#071f4a;
    border:1px solid #dbe4ef;
    border-radius:8px;
    padding:8px 10px;
    text-decoration:none;
    font-weight:950;
}
.inv-v2-calls{
    display:grid;
    gap:12px;
}
.inv-v2-calls strong.externa{
    background:#e7f4ff;
    color:#075985;
}
@media(max-width:1100px){
    .inv-v2-hero-grid,
    .inv-v2-groups-layout,
    .inv-v2-feature-grid{
        grid-template-columns:1fr;
    }
    .inv-v2-tabs{
        overflow:auto;
        justify-content:flex-start;
    }
    .inv-v2-tabs a{
        min-width:190px;
        flex:0 0 auto;
    }
    .inv-v2-filter{
        position:static;
    }
    .inv-v2-stats,
    .inv-v2-lines-grid,
    .inv-v2-project-grid,
    .inv-v2-infographic-grid{
        grid-template-columns:repeat(2,1fr);
    }
}
@media(max-width:700px){
    .inv-v2-hero-grid{
        min-height:auto;
    }
    .inv-v2-hero-art{
        height:220px;
    }
    .inv-v2-stats,
    .inv-v2-group-list,
    .inv-v2-lines-grid,
    .inv-v2-project-grid,
    .inv-v2-infographic-grid,
    .inv-v2-next-row,
    .inv-v2-docs,
    .inv-v2-production{
        grid-template-columns:1fr;
    }
    .inv-v2-group-card,
    .inv-v2-docs article,
    .inv-v2-list-panel article,
    .inv-v2-calls article,
    .inv-v2-production article{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   CORRECCIÓN FINAL INVESTIGACIÓN — LIMPIA, COHERENTE, SIN PRÁCTICAS
   ========================================================= */
.investigacion-clean{
    background:#f4f7fc !important;
    color:#071f4a !important;
}
.inv-clean-hero{
    background:
        radial-gradient(circle at 92% 18%, rgba(215,25,32,.10), transparent 28%),
        linear-gradient(90deg,#fff 0%,#fff 58%,#edf3fb 100%);
    border-bottom:1px solid #e4ebf5;
}
.inv-clean-hero .container{
    padding-top:24px;
}
.inv-clean-breadcrumb{
    color:#65758d;
    font-size:.92rem;
    margin-bottom:22px;
}
.inv-clean-breadcrumb span{
    color:#aab5c6;
    margin:0 8px;
}
.inv-clean-hero-box{
    min-height:305px;
    display:grid;
    grid-template-columns:1fr 420px;
    gap:34px;
    align-items:center;
}
.inv-clean-kicker{
    display:inline-flex;
    color:#d71920;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.10em;
    font-size:.78rem;
    margin-bottom:10px;
}
.inv-clean-hero h1{
    margin:0 0 14px;
    color:#071f4a;
    font-size:clamp(2.8rem,6vw,5.2rem);
    line-height:.92;
    letter-spacing:-.06em;
    font-weight:950;
}
.inv-clean-hero p{
    max-width:680px;
    color:#334762;
    line-height:1.72;
    font-size:1.12rem;
}
.inv-clean-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:0 18px;
    border-radius:10px;
    background:#071f4a;
    color:#fff !important;
    text-decoration:none;
    font-weight:950;
    margin-top:12px;
    box-shadow:0 14px 28px rgba(7,31,74,.16);
}
.inv-clean-hero-card{
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:24px;
    padding:28px;
    box-shadow:0 18px 45px rgba(7,31,74,.08);
    position:relative;
    overflow:hidden;
}
.inv-clean-hero-card:before{
    content:"";
    position:absolute;
    right:-40px;
    top:-40px;
    width:140px;
    height:140px;
    border-radius:999px;
    background:rgba(215,25,32,.08);
}
.inv-clean-hero-card strong{
    display:block;
    font-size:1.35rem;
    color:#071f4a;
    margin-bottom:10px;
}
.inv-clean-hero-card p{
    font-size:.98rem;
    margin:0;
}
.inv-clean-mini-icons{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:10px;
    margin-top:18px;
}
.inv-clean-mini-icons span{
    background:#f5f8fc;
    border:1px solid #e4ebf5;
    border-radius:12px;
    padding:11px 10px;
    text-align:center;
    color:#071f4a;
    font-weight:950;
}
.inv-clean-tabs{
    position:sticky;
    top:0;
    z-index:20;
    margin-top:-22px;
    display:flex;
    overflow-x:auto;
    background:#fff;
    border:1px solid #dbe4ef;
    border-radius:16px;
    box-shadow:0 12px 30px rgba(7,31,74,.08);
}
.inv-clean-tabs a{
    flex:0 0 auto;
    min-width:148px;
    min-height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:0 15px;
    color:#071f4a;
    text-decoration:none;
    font-weight:950;
    border-right:1px solid #e8eef6;
    transition:.18s ease;
}
.inv-clean-tabs a:last-child{border-right:0}
.inv-clean-tabs a:hover,
.inv-clean-tabs a.active{
    background:#071f4a;
    color:#fff;
}
.inv-clean-stats{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
    padding-top:28px;
}
.inv-clean-stats article{
    background:#fff;
    border:1px solid #e2eaf5;
    border-radius:18px;
    padding:22px;
    min-height:128px;
    box-shadow:0 10px 28px rgba(7,31,74,.055);
}
.inv-clean-stats strong{
    display:block;
    color:#d71920;
    font-size:2.4rem;
    line-height:1;
    font-weight:950;
}
.inv-clean-stats span{
    display:block;
    margin-top:7px;
    color:#071f4a;
    font-weight:950;
}
.inv-clean-stats small{
    display:block;
    margin-top:5px;
    color:#65758d;
    font-weight:700;
}
.inv-clean-section{
    padding:46px 0;
    scroll-margin-top:95px;
}
.inv-clean-section-head{
    margin-bottom:22px;
}
.inv-clean-section-head span{
    color:#d71920;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.09em;
    font-size:.79rem;
}
.inv-clean-section-head h2{
    color:#071f4a;
    font-size:clamp(1.8rem,3vw,2.55rem);
    margin:7px 0 8px;
    letter-spacing:-.04em;
}
.inv-clean-section-head p{
    max-width:820px;
    color:#536780;
    line-height:1.7;
    margin:0;
}
.inv-clean-ciip-grid{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:14px;
}
.inv-clean-ciip-grid article,
.inv-clean-lines-grid article,
.inv-clean-group-card,
.inv-clean-project-grid article,
.inv-clean-production article,
.inv-clean-docs article,
.inv-clean-list article,
.inv-clean-infographic-grid article{
    background:#fff;
    border:1px solid #e1e9f4;
    border-radius:18px;
    box-shadow:0 10px 26px rgba(7,31,74,.05);
}
.inv-clean-ciip-grid article{
    padding:20px;
    display:flex;
    align-items:center;
    gap:12px;
}
.inv-clean-ciip-grid span{
    width:38px;
    height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:#eef5ff;
}
.inv-clean-ciip-grid strong{
    color:#071f4a;
}
.inv-clean-groups-layout{
    display:grid;
    grid-template-columns:280px 1fr;
    gap:28px;
}
.inv-clean-filter{
    background:#fff;
    border:1px solid #e1e9f4;
    border-radius:20px;
    padding:22px;
    align-self:start;
    position:sticky;
    top:96px;
    box-shadow:0 10px 26px rgba(7,31,74,.05);
}
.inv-clean-filter h3{
    margin:0 0 18px;
    color:#071f4a;
}
.inv-clean-filter label{
    display:grid;
    gap:8px;
    color:#071f4a;
    font-weight:950;
}
.inv-clean-filter input{
    width:100%;
    min-height:44px;
    border:1px solid #dce6f2;
    border-radius:12px;
    padding:0 12px;
}
.inv-clean-filter strong{
    display:block;
    margin:20px 0 10px;
    color:#071f4a;
}
.inv-clean-filter-tags{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
}
.inv-clean-filter-tags button{
    border:1px solid #dce6f2;
    border-radius:10px;
    background:#fff;
    color:#071f4a;
    font-weight:950;
    padding:9px 12px;
    cursor:pointer;
}
.inv-clean-filter-tags button.active,
.inv-clean-filter-tags button:hover{
    background:#071f4a;
    color:#fff;
}
.inv-clean-side-note{
    margin-top:24px;
    padding:17px;
    border-radius:18px;
    background:#f8f0f3;
    color:#394b63;
}
.inv-clean-side-note strong{
    margin:0 0 8px;
}
.inv-clean-side-note p{
    margin:0;
    line-height:1.55;
}
.inv-clean-group-list{
    display:grid;
    gap:16px;
}
.inv-clean-group-card{
    display:grid;
    grid-template-columns:68px 1fr;
    gap:18px;
    padding:22px;
    align-items:start;
}
.inv-clean-round-icon{
    width:58px;
    height:58px;
    border-radius:999px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#eef5ff;
    font-size:1.45rem;
}
.inv-clean-group-card h3{
    margin:0 0 8px;
    color:#071f4a;
    font-size:1.25rem;
}
.inv-clean-group-card p{
    color:#4f6178;
    line-height:1.62;
    margin:0 0 14px;
}
.inv-clean-meta{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:7px 18px;
    color:#46566d;
}
.inv-clean-meta b{
    color:#071f4a;
}
.inv-clean-lines-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
}
.inv-clean-lines-grid article{
    padding:20px;
}
.inv-clean-line-icon{
    width:52px;
    height:52px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:16px;
    background:#f3f7ff;
    font-size:1.35rem;
    margin-bottom:12px;
}
.inv-clean-lines-grid h3{
    color:#071f4a;
    margin:0 0 8px;
    font-size:1.08rem;
}
.inv-clean-lines-grid p{
    color:#536780;
    line-height:1.58;
}
.inv-clean-lines-grid small{
    display:block;
    color:#44566d;
    margin-top:8px;
}
.inv-clean-tags{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:12px;
}
.inv-clean-tags span{
    padding:6px 8px;
    border-radius:999px;
    background:#f1f5fb;
    color:#071f4a;
    font-weight:850;
    font-size:.75rem;
}
.inv-clean-list{
    display:grid;
    gap:12px;
}
.inv-clean-list article{
    display:grid;
    grid-template-columns:48px 1fr auto;
    gap:14px;
    align-items:center;
    padding:17px;
}
.inv-clean-list article>span{
    width:44px;
    height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:14px;
    background:#eef5ff;
}
.inv-clean-list h3{
    margin:0 0 4px;
    color:#071f4a;
}
.inv-clean-list p{
    margin:0;
    color:#5d6e85;
}
.inv-clean-list strong{
    padding:7px 10px;
    background:#eef8ef;
    color:#18733a;
    border-radius:999px;
}
.inv-clean-project-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
}
.inv-clean-project-grid article{
    padding:22px;
}
.inv-clean-project-icon{
    width:52px;
    height:52px;
    border-radius:16px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#f3f7ff;
    color:#071f4a;
    font-weight:950;
    margin-bottom:14px;
}
.inv-clean-project-grid h3{
    margin:0 0 10px;
    color:#071f4a;
}
.inv-clean-project-grid p{
    color:#52637a;
    line-height:1.5;
}
.inv-clean-project-grid span{
    color:#d71920;
    font-weight:950;
}
.inv-clean-infographic-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
}
.inv-clean-infographic-grid article{
    overflow:hidden;
}
.inv-clean-infographic-grid img{
    width:100%;
    height:260px;
    object-fit:contain;
    background:#fff;
    padding:14px;
    border-bottom:1px solid #e8eef6;
}
.inv-clean-infographic-grid h3{
    color:#071f4a;
    margin:16px 16px 6px;
}
.inv-clean-infographic-grid p{
    color:#64748b;
    margin:0 16px 18px;
}
.inv-clean-production{
    display:grid;
    gap:11px;
}
.inv-clean-production article{
    display:grid;
    grid-template-columns:1fr 170px 170px;
    align-items:center;
    padding:15px 18px;
    gap:14px;
}
.inv-clean-production strong{color:#071f4a}
.inv-clean-production span{color:#d71920;font-weight:950}
.inv-clean-production small{color:#60708a}
.inv-clean-docs{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:12px;
}
.inv-clean-docs article{
    display:grid;
    grid-template-columns:44px 1fr auto;
    gap:13px;
    align-items:center;
    padding:15px 17px;
}
.inv-clean-docs article>span{
    width:40px;
    height:40px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    background:#fff2f2;
}
.inv-clean-docs h3{
    margin:0 0 3px;
    color:#071f4a;
    font-size:.98rem;
}
.inv-clean-docs p{
    margin:0;
    color:#64748b;
}
.inv-clean-docs a{
    border:1px solid #dce6f2;
    border-radius:10px;
    color:#071f4a;
    padding:9px 12px;
    text-decoration:none;
    font-weight:950;
}
@media(max-width:1100px){
    .inv-clean-hero-box,
    .inv-clean-groups-layout{
        grid-template-columns:1fr;
    }
    .inv-clean-filter{
        position:static;
    }
    .inv-clean-stats,
    .inv-clean-ciip-grid,
    .inv-clean-lines-grid,
    .inv-clean-project-grid,
    .inv-clean-infographic-grid{
        grid-template-columns:repeat(2,1fr);
    }
}
@media(max-width:700px){
    .inv-clean-stats,
    .inv-clean-ciip-grid,
    .inv-clean-lines-grid,
    .inv-clean-project-grid,
    .inv-clean-infographic-grid,
    .inv-clean-docs,
    .inv-clean-production article,
    .inv-clean-meta{
        grid-template-columns:1fr;
    }
    .inv-clean-list article,
    .inv-clean-docs article,
    .inv-clean-group-card{
        grid-template-columns:1fr;
    }
    .inv-clean-tabs a{
        min-width:130px;
        font-size:.82rem;
    }
}


/* =========================================================
   INVESTIGACIÓN PFC — VERSIÓN SENIOR PROFESIONAL
   ========================================================= */
.research-pro{
    --navy:#061a3d;
    --navy2:#0b2a5b;
    --red:#d71920;
    --ink:#071f4a;
    --muted:#5d6b82;
    --line:#dfe7f2;
    --soft:#f4f7fc;
    --card:#ffffff;
    background:
        radial-gradient(circle at 10% 0%, rgba(215,25,32,.055), transparent 28%),
        radial-gradient(circle at 100% 30%, rgba(6,26,61,.065), transparent 30%),
        #f4f7fc;
    color:var(--ink);
    min-height:100vh;
}
.research-pro *{box-sizing:border-box}
.research-pro-hero{
    background:linear-gradient(135deg,#fff 0%,#fff 48%,#edf3fb 100%);
    border-bottom:1px solid var(--line);
    position:relative;
    overflow:hidden;
}
.research-pro-hero:after{
    content:"";
    position:absolute;
    right:-90px;
    top:-120px;
    width:420px;
    height:420px;
    border-radius:999px;
    border:58px solid rgba(215,25,32,.075);
}
.research-pro-hero-inner{
    position:relative;
    z-index:2;
    min-height:400px;
    display:grid;
    grid-template-columns:minmax(0,1.05fr) 430px;
    gap:42px;
    align-items:center;
    padding-top:28px;
    padding-bottom:44px;
}
.research-pro-copy nav{
    color:#64748b;
    font-weight:700;
    margin-bottom:22px;
}
.research-pro-copy nav span{
    margin:0 10px;
    color:#a5b1c2;
}
.research-pro-kicker{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:var(--red);
    font-size:.78rem;
    font-weight:950;
    letter-spacing:.14em;
    text-transform:uppercase;
    margin-bottom:12px;
}
.research-pro-kicker:before{
    content:"";
    width:34px;
    height:3px;
    border-radius:999px;
    background:var(--red);
}
.research-pro h1{
    color:var(--navy);
    font-size:clamp(3.1rem,6vw,5.7rem);
    letter-spacing:-.07em;
    line-height:.92;
    margin:0 0 18px;
    font-weight:950;
}
.research-pro-copy p{
    max-width:720px;
    color:#334762;
    line-height:1.76;
    font-size:1.14rem;
    margin:0;
}
.research-pro-actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:26px;
}
.research-pro-actions a{
    min-height:46px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 20px;
    border-radius:12px;
    background:var(--navy);
    color:#fff !important;
    font-weight:950;
    text-decoration:none;
    box-shadow:0 16px 30px rgba(6,26,61,.17);
}
.research-pro-actions a.secondary{
    background:#fff;
    color:var(--navy) !important;
    border:1px solid var(--line);
    box-shadow:none;
}
.research-pro-summary{
    background:rgba(255,255,255,.92);
    border:1px solid var(--line);
    border-radius:30px;
    padding:30px;
    box-shadow:0 28px 65px rgba(6,26,61,.12);
    backdrop-filter:blur(12px);
    position:relative;
    overflow:hidden;
}
.research-pro-summary:before{
    content:"";
    position:absolute;
    right:-55px;
    bottom:-55px;
    width:190px;
    height:190px;
    border-radius:999px;
    background:rgba(215,25,32,.08);
}
.summary-badge{
    width:70px;
    height:70px;
    border-radius:22px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,var(--navy),var(--navy2));
    color:#fff;
    font-weight:950;
    margin-bottom:18px;
    box-shadow:0 18px 28px rgba(6,26,61,.18);
}
.research-pro-summary h2{
    margin:0 0 10px;
    color:var(--navy);
    font-size:1.65rem;
    letter-spacing:-.035em;
}
.research-pro-summary p{
    color:var(--muted);
    line-height:1.62;
    margin:0 0 20px;
}
.summary-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:12px;
}
.summary-grid article{
    background:#f7f9fd;
    border:1px solid #e5ecf6;
    border-radius:18px;
    padding:16px;
}
.summary-grid strong{
    display:block;
    color:var(--red);
    font-size:2rem;
    line-height:1;
    font-weight:950;
}
.summary-grid span{
    display:block;
    color:var(--navy);
    font-size:.86rem;
    line-height:1.3;
    font-weight:900;
    margin-top:6px;
}
.research-pro-nav{
    position:sticky;
    top:0;
    z-index:30;
    margin-top:-28px;
    display:flex;
    align-items:center;
    gap:0;
    overflow:auto;
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    box-shadow:0 18px 45px rgba(6,26,61,.10);
    padding:7px;
}
.research-pro-nav button{
    flex:1;
    min-width:140px;
    min-height:48px;
    border:0;
    border-radius:13px;
    background:transparent;
    color:var(--navy);
    font-weight:950;
    cursor:pointer;
    transition:.2s ease;
}
.research-pro-nav button:hover,
.research-pro-nav button.active{
    background:var(--navy);
    color:#fff;
}
.research-pro-panel{
    display:none;
    padding:42px 0 70px;
    animation:researchFade .22s ease;
}
.research-pro-panel.active{
    display:block;
}
@keyframes researchFade{
    from{opacity:0; transform:translateY(8px)}
    to{opacity:1; transform:translateY(0)}
}
.research-pro-section-head{
    margin-bottom:24px;
}
.research-pro-section-head.compact{
    margin-bottom:18px;
}
.research-pro-section-head span{
    color:var(--red);
    text-transform:uppercase;
    letter-spacing:.12em;
    font-size:.78rem;
    font-weight:950;
}
.research-pro-section-head h2{
    color:var(--navy);
    font-size:clamp(2rem,3.6vw,3rem);
    letter-spacing:-.05em;
    margin:6px 0 10px;
    font-weight:950;
}
.research-pro-section-head p{
    max-width:850px;
    color:var(--muted);
    line-height:1.72;
    margin:0;
}
.research-pro-intro-grid{
    display:grid;
    grid-template-columns:1.2fr 1fr 1fr;
    gap:18px;
}
.research-pro-intro-grid article,
.research-group-list article,
.research-line-card,
.research-list article,
.research-projects article,
.research-infographics article,
.research-docs article{
    background:#fff;
    border:1px solid var(--line);
    border-radius:24px;
    box-shadow:0 16px 40px rgba(6,26,61,.055);
}
.research-pro-intro-grid article{
    padding:26px;
}
.research-pro-intro-grid .ciip-feature{
    background:linear-gradient(135deg,var(--navy),#103d78);
    color:#fff;
    grid-row:span 1;
}
.research-pro-intro-grid .ciip-feature h3,
.research-pro-intro-grid .ciip-feature p{
    color:#fff;
}
.research-pro-intro-grid article>span{
    width:52px;
    height:52px;
    border-radius:17px;
    background:#f1f5fb;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--navy);
    font-size:1.4rem;
    margin-bottom:14px;
}
.research-pro-intro-grid .ciip-feature>span{
    background:rgba(255,255,255,.14);
    color:#fff;
}
.research-pro-intro-grid h3{
    color:var(--navy);
    margin:0 0 10px;
    font-size:1.28rem;
}
.research-pro-intro-grid p{
    color:var(--muted);
    line-height:1.65;
}
.mini-pills{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-top:16px;
}
.mini-pills em{
    font-style:normal;
    background:#f1f5fb;
    border:1px solid #e5ecf6;
    border-radius:999px;
    color:var(--navy);
    font-size:.76rem;
    font-weight:850;
    padding:6px 9px;
}
.research-pro-layout{
    display:grid;
    grid-template-columns:310px 1fr;
    gap:28px;
}
.research-pro-filter{
    background:#fff;
    border:1px solid var(--line);
    border-radius:24px;
    padding:22px;
    box-shadow:0 16px 40px rgba(6,26,61,.055);
    align-self:start;
    position:sticky;
    top:86px;
}
.research-pro-filter h3{
    color:var(--navy);
    margin:0 0 14px;
}
.research-pro-filter input{
    width:100%;
    min-height:44px;
    border:1px solid #d9e4f2;
    border-radius:13px;
    padding:0 13px;
    outline:none;
}
.research-pro-filter input:focus{
    border-color:var(--navy);
    box-shadow:0 0 0 4px rgba(6,26,61,.08);
}
.research-filter-chips{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin-top:14px;
}
.research-filter-chips button{
    border:1px solid #d9e4f2;
    border-radius:999px;
    min-height:36px;
    padding:0 12px;
    color:var(--navy);
    background:#fff;
    font-weight:900;
    cursor:pointer;
}
.research-filter-chips button.active,
.research-filter-chips button:hover{
    background:var(--navy);
    color:#fff;
}
.research-pro-alert{
    margin-top:20px;
    border-radius:20px;
    padding:18px;
    background:linear-gradient(135deg,#fff7f7,#f5f8ff);
    border:1px solid #f0dfe3;
}
.research-pro-alert strong{
    color:var(--navy);
}
.research-pro-alert p{
    color:var(--muted);
    line-height:1.55;
}
.research-group-list{
    display:grid;
    gap:18px;
}
.research-group-list article{
    display:grid;
    grid-template-columns:86px 1fr;
    gap:22px;
    padding:24px;
    align-items:start;
}
.group-mark{
    width:74px;
    height:74px;
    border-radius:24px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,var(--navy),#16457d);
    color:#fff;
    font-weight:950;
    font-size:1.25rem;
}
.group-body>span{
    display:inline-flex;
    color:var(--red);
    font-weight:950;
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    margin-bottom:6px;
}
.group-body h3{
    margin:0 0 10px;
    color:var(--navy);
    font-size:1.75rem;
    letter-spacing:-.035em;
}
.group-body p{
    color:var(--muted);
    line-height:1.7;
    margin:0 0 18px;
}
.group-body dl{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:12px;
    margin:0;
}
.group-body dl div{
    padding:12px;
    border-radius:14px;
    background:#f6f8fc;
    border:1px solid #e6edf6;
}
.group-body dt{
    color:var(--navy);
    font-weight:950;
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.group-body dd{
    margin:4px 0 0;
    color:#42536b;
}
.research-lines-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:18px;
}
.research-line-card{
    padding:24px;
    min-height:100%;
}
.research-line-card header{
    display:grid;
    grid-template-columns:62px 1fr;
    gap:16px;
    align-items:center;
    margin-bottom:16px;
}
.line-icon{
    width:58px;
    height:58px;
    border-radius:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#f1f5fb;
    color:var(--navy);
    font-size:1.55rem;
}
.research-line-card header span{
    color:var(--red);
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:.73rem;
    font-weight:950;
}
.research-line-card h3{
    margin:4px 0 0;
    color:var(--navy);
    font-size:1.35rem;
    line-height:1.22;
}
.research-line-card blockquote{
    margin:0 0 14px;
    padding:12px 14px;
    border-left:4px solid var(--red);
    background:#fff7f7;
    color:#7f1d1d;
    border-radius:0 12px 12px 0;
    font-weight:850;
}
.research-line-card p{
    color:var(--muted);
    line-height:1.7;
}
.line-meta{
    margin-top:16px;
    padding:14px;
    border-radius:16px;
    background:#f7f9fd;
    border:1px solid #e5ecf6;
    color:#44566d;
    line-height:1.6;
}
.line-meta strong{
    color:var(--navy);
}
.research-line-card details{
    margin-top:14px;
}
.research-line-card summary{
    cursor:pointer;
    color:var(--navy);
    font-weight:950;
}
.research-line-card ul{
    margin:12px 0 0;
    padding-left:20px;
    color:#4f6078;
    line-height:1.62;
}
.research-list,
.research-docs{
    display:grid;
    gap:12px;
}
.research-list article,
.research-docs article{
    display:grid;
    grid-template-columns:52px 1fr auto;
    gap:16px;
    align-items:center;
    padding:18px;
}
.research-list article>span,
.research-docs article>span{
    width:46px;
    height:46px;
    border-radius:16px;
    background:#f1f5fb;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--navy);
    font-weight:950;
}
.research-list h3,
.research-docs h3{
    color:var(--navy);
    margin:0 0 4px;
}
.research-list p,
.research-docs p{
    color:var(--muted);
    margin:0;
}
.research-list strong{
    background:#edf9ef;
    color:#19723a;
    border-radius:999px;
    padding:7px 12px;
    font-weight:950;
}
.research-projects{
    display:grid;
    grid-template-columns:repeat(4, minmax(0,1fr));
    gap:18px;
}
.research-projects article{
    padding:22px;
    border-top:5px solid var(--red);
}
.research-projects article>span{
    width:50px;
    height:50px;
    border-radius:16px;
    background:#f1f5fb;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--navy);
    font-weight:950;
    margin-bottom:15px;
}
.research-projects h3{
    color:var(--navy);
    margin:0 0 10px;
}
.research-projects p{
    color:var(--muted);
}
.research-projects strong{
    color:var(--red);
}
.research-infographics{
    display:grid;
    grid-template-columns:repeat(3, minmax(0,1fr));
    gap:22px;
}
.research-infographics article{
    overflow:hidden;
    transition:.2s ease;
}
.research-infographics article:hover{
    transform:translateY(-4px);
    box-shadow:0 22px 55px rgba(6,26,61,.11);
}
.research-infographics a{
    display:block;
    background:#fff;
    border-bottom:1px solid var(--line);
}
.research-infographics img{
    width:100%;
    height:360px;
    object-fit:contain;
    padding:18px;
    display:block;
}
.research-infographics div{
    padding:18px 20px 20px;
}
.research-infographics h3{
    color:var(--navy);
    margin:0 0 6px;
}
.research-infographics p{
    margin:0;
    color:var(--muted);
}
.research-docs a{
    border:1px solid #d9e4f2;
    color:var(--navy);
    text-decoration:none;
    border-radius:12px;
    padding:9px 12px;
    font-weight:950;
}
.research-docs a:hover{
    background:var(--navy);
    color:#fff;
}
@media(max-width:1200px){
    .research-pro-hero-inner,
    .research-pro-layout,
    .research-pro-intro-grid{
        grid-template-columns:1fr;
    }
    .research-pro-filter{
        position:static;
    }
    .research-projects,
    .research-infographics{
        grid-template-columns:repeat(2, minmax(0,1fr));
    }
}
@media(max-width:760px){
    .research-pro-hero-inner{
        min-height:auto;
    }
    .research-pro-nav{
        border-radius:14px;
    }
    .research-pro-nav button{
        min-width:120px;
        font-size:.84rem;
    }
    .summary-grid,
    .research-lines-grid,
    .research-projects,
    .research-infographics,
    .group-body dl{
        grid-template-columns:1fr;
    }
    .research-group-list article,
    .research-list article,
    .research-docs article{
        grid-template-columns:1fr;
    }
    .research-infographics img{
        height:300px;
    }
}


/* =========================================================
   INVESTIGACIÓN CMS — ZOOM, REPOSITORIO Y EDICIÓN PROFESIONAL
   ========================================================= */
.research-cms .research-line-tools{
    margin:-8px 0 22px;
}
.research-cms .research-line-tools input{
    width:min(560px,100%);
    min-height:46px;
    border:1px solid var(--line);
    border-radius:14px;
    padding:0 15px;
    font-weight:700;
    outline:none;
}
.research-cms .research-line-tools input:focus{
    border-color:var(--navy);
    box-shadow:0 0 0 4px rgba(6,26,61,.08);
}
.research-cms .research-infographics-zoom article button.research-info-open{
    width:100%;
    border:0;
    padding:0;
    background:#fff;
    cursor:zoom-in;
    display:block;
}
.research-cms .research-infographics-zoom article button.research-info-open:focus{
    outline:4px solid rgba(6,26,61,.14);
    outline-offset:-4px;
}
.research-cms .research-repo-layout{
    display:grid;
    grid-template-columns:260px 1fr;
    gap:24px;
    align-items:start;
}
.research-cms .research-repo-cats{
    background:#fff;
    border:1px solid var(--line);
    border-radius:22px;
    padding:14px;
    box-shadow:0 16px 40px rgba(6,26,61,.055);
    display:grid;
    gap:8px;
    position:sticky;
    top:86px;
}
.research-cms .research-repo-cats button{
    border:0;
    border-radius:14px;
    min-height:44px;
    padding:0 14px;
    text-align:left;
    background:#f5f8fc;
    color:var(--navy);
    font-weight:950;
    cursor:pointer;
}
.research-cms .research-repo-cats button.active,
.research-cms .research-repo-cats button:hover{
    background:var(--navy);
    color:#fff;
}
.research-cms .research-docs button.repo-view-info{
    border:1px solid #d9e4f2;
    color:var(--navy);
    text-decoration:none;
    border-radius:12px;
    padding:9px 12px;
    font-weight:950;
    background:#fff;
    cursor:pointer;
}
.research-cms .research-docs button.repo-view-info:hover{
    background:var(--navy);
    color:#fff;
}
.research-lightbox{
    position:fixed;
    inset:0;
    z-index:100000;
    display:none;
}
.research-lightbox.open{
    display:block;
}
.research-lightbox-backdrop{
    position:absolute;
    inset:0;
    background:rgba(3,10,25,.78);
    backdrop-filter:blur(6px);
}
.research-lightbox-panel{
    position:absolute;
    inset:32px;
    background:#fff;
    border-radius:24px;
    display:grid;
    grid-template-rows:auto 1fr;
    overflow:hidden;
    box-shadow:0 30px 90px rgba(0,0,0,.38);
}
.research-lightbox-panel header{
    min-height:66px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:14px 18px;
    border-bottom:1px solid #e6edf6;
    background:#f8fafc;
}
.research-lightbox-panel h3{
    color:#061a3d;
    margin:0;
    font-size:1.1rem;
}
.research-lightbox-panel header div{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}
.research-lightbox-panel button{
    border:1px solid #d9e4f2;
    background:#fff;
    color:#061a3d;
    border-radius:10px;
    min-height:36px;
    padding:0 12px;
    font-weight:950;
    cursor:pointer;
}
.research-lightbox-panel button:hover{
    background:#061a3d;
    color:#fff;
}
.research-lightbox-stage{
    overflow:auto;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    padding:26px;
    background:#eef3fa;
}
.research-lightbox-stage img{
    max-width:100%;
    transform-origin:top center;
    transition:transform .16s ease;
    background:#fff;
    border-radius:12px;
    box-shadow:0 14px 45px rgba(0,0,0,.16);
}
@media(max-width:900px){
    .research-cms .research-repo-layout{
        grid-template-columns:1fr;
    }
    .research-cms .research-repo-cats{
        position:static;
    }
    .research-lightbox-panel{
        inset:10px;
        border-radius:18px;
    }
    .research-lightbox-panel header{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* =========================================================
   PANEL CMS INVESTIGACIÓN — UNIFICADO TIPO WORDPRESS
   ========================================================= */
.cms-editor-tabs{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:18px;
    padding:10px;
    margin:18px 0;
    box-shadow:0 12px 30px rgba(7,31,74,.06);
}
.cms-editor-tabs button{
    border:0;
    border-radius:12px;
    background:#f3f6fb;
    color:#071f4a;
    min-height:42px;
    padding:0 14px;
    font-weight:950;
    cursor:pointer;
}
.cms-editor-tabs button.active,
.cms-editor-tabs button:hover{
    background:#071f4a;
    color:#fff;
}
.cms-tab-panel{
    display:none;
}
.cms-tab-panel.active{
    display:block;
}
.cms-add-box,
.cms-edit-item{
    border:1px solid #e2eaf5;
    border-radius:16px;
    background:#fff;
    padding:14px;
    margin:12px 0;
}
.cms-add-box summary,
.cms-edit-item summary{
    cursor:pointer;
    color:#071f4a;
    font-weight:950;
    display:flex;
    justify-content:space-between;
    gap:14px;
}
.cms-edit-item summary span{
    color:#65758d;
    font-size:.86rem;
}
.cms-image-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:14px;
}
.cms-image-grid img{
    width:100%;
    max-height:220px;
    object-fit:contain;
    background:#f8fafc;
    border:1px solid #e2eaf5;
    border-radius:12px;
    margin:14px 0;
}


/* =========================================================
   PRÁCTICAS PEDAGÓGICAS CMS — SECCIÓN SEPARADA Y PROFESIONAL
   ========================================================= */
.practice-cms{
    --pnavy:#061a3d;
    --pred:#d71920;
    --pmuted:#5d6b82;
    --pline:#dfe7f2;
    --psoft:#f4f7fc;
    background:#f4f7fc;
    color:#071f4a;
}
.practice-hero{
    background:linear-gradient(135deg,#fff 0%,#fff 55%,#edf3fb 100%);
    border-bottom:1px solid var(--pline);
}
.practice-hero-inner{
    min-height:370px;
    display:grid;
    grid-template-columns:1fr 430px;
    gap:36px;
    align-items:center;
    padding-top:28px;
    padding-bottom:42px;
}
.practice-hero nav{
    color:#64748b;
    font-weight:700;
    margin-bottom:20px;
}
.practice-hero nav span{margin:0 10px;color:#a5b1c2}
.practice-kicker{
    color:var(--pred);
    text-transform:uppercase;
    letter-spacing:.12em;
    font-size:.78rem;
    font-weight:950;
}
.practice-hero h1{
    margin:10px 0 16px;
    color:var(--pnavy);
    font-size:clamp(3rem,6vw,5.3rem);
    line-height:.92;
    letter-spacing:-.07em;
    font-weight:950;
}
.practice-hero p{
    color:#334762;
    font-size:1.12rem;
    line-height:1.72;
    max-width:720px;
}
.practice-hero a{
    display:inline-flex;
    min-height:46px;
    padding:0 20px;
    align-items:center;
    border-radius:12px;
    background:var(--pnavy);
    color:#fff!important;
    text-decoration:none;
    font-weight:950;
    margin-top:14px;
}
.practice-hero aside{
    background:#fff;
    border:1px solid var(--pline);
    border-radius:28px;
    padding:30px;
    box-shadow:0 25px 60px rgba(6,26,61,.11);
}
.practice-hero aside strong{
    color:var(--pnavy);
    font-size:1.45rem;
}
.practice-hero aside div{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
    margin-top:18px;
}
.practice-hero aside span{
    background:#f5f8fc;
    border:1px solid #e5ecf6;
    border-radius:14px;
    padding:13px 8px;
    text-align:center;
    font-weight:950;
    color:var(--pnavy);
}
.practice-tabs{
    display:flex;
    gap:0;
    overflow:auto;
    background:#fff;
    border:1px solid var(--pline);
    border-radius:18px;
    padding:7px;
    box-shadow:0 18px 45px rgba(6,26,61,.09);
    margin-top:-28px;
    position:sticky;
    top:0;
    z-index:25;
}
.practice-tabs button{
    flex:1;
    min-width:130px;
    min-height:48px;
    border:0;
    background:transparent;
    border-radius:13px;
    color:var(--pnavy);
    font-weight:950;
    cursor:pointer;
}
.practice-tabs button.active,
.practice-tabs button:hover{
    background:var(--pnavy);
    color:#fff;
}
.practice-panel{
    display:none;
    padding:42px 0 70px;
}
.practice-panel.active{display:block}
.practice-section-head{
    margin-bottom:24px;
}
.practice-section-head span{
    color:var(--pred);
    text-transform:uppercase;
    letter-spacing:.11em;
    font-size:.78rem;
    font-weight:950;
}
.practice-section-head h2{
    color:var(--pnavy);
    font-size:clamp(2rem,3.5vw,3rem);
    margin:6px 0 10px;
    letter-spacing:-.05em;
}
.practice-section-head p{
    max-width:870px;
    color:var(--pmuted);
    line-height:1.72;
}
.practice-overview-grid,
.practice-gallery-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}
.practice-overview-grid article,
.practice-detail-grid article,
.practice-gallery-grid article,
.practice-doc-list article{
    background:#fff;
    border:1px solid var(--pline);
    border-radius:24px;
    box-shadow:0 16px 40px rgba(6,26,61,.055);
}
.practice-overview-grid article{
    padding:24px;
}
.practice-overview-grid article>span{
    width:54px;
    height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:18px;
    background:#f1f5fb;
    font-size:1.4rem;
    margin-bottom:14px;
}
.practice-overview-grid h3,
.practice-detail-grid h3,
.practice-gallery-grid h3,
.practice-doc-list h3{
    color:var(--pnavy);
    margin:0 0 10px;
}
.practice-overview-grid p,
.practice-detail-grid p,
.practice-gallery-grid p,
.practice-doc-list p{
    color:var(--pmuted);
    line-height:1.65;
}
.practice-overview-grid button{
    border:1px solid var(--pline);
    color:var(--pnavy);
    background:#fff;
    border-radius:12px;
    padding:10px 13px;
    font-weight:950;
    cursor:pointer;
}
.practice-overview-grid button:hover{
    background:var(--pnavy);
    color:#fff;
}
.practice-detail-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}
.practice-detail-grid article{
    padding:24px;
}
.practice-detail-grid ul{
    margin:0;
    padding-left:18px;
    color:#475569;
    line-height:1.7;
}
.practice-detail-grid a{
    color:var(--pnavy);
    font-weight:900;
}
.practice-mini-gallery{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
    margin-top:20px;
}
.practice-mini-gallery button,
.practice-gallery-grid button{
    border:0;
    padding:0;
    background:#fff;
    cursor:zoom-in;
    display:block;
    width:100%;
}
.practice-mini-gallery img{
    width:100%;
    height:180px;
    object-fit:cover;
    border-radius:18px;
    box-shadow:0 12px 28px rgba(6,26,61,.08);
}
.practice-gallery-tools{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:22px;
}
.practice-gallery-tools input,
.practice-gallery-tools select{
    min-height:46px;
    border:1px solid var(--pline);
    border-radius:14px;
    padding:0 14px;
    background:#fff;
    color:var(--pnavy);
    font-weight:800;
}
.practice-gallery-tools input{min-width:330px;flex:1}
.practice-gallery-grid article{
    overflow:hidden;
}
.practice-gallery-grid img{
    width:100%;
    height:250px;
    object-fit:cover;
    display:block;
}
.practice-gallery-grid div{
    padding:16px 18px 20px;
}
.practice-repo-layout{
    display:grid;
    grid-template-columns:260px 1fr;
    gap:24px;
}
.practice-repo-cats{
    background:#fff;
    border:1px solid var(--pline);
    border-radius:22px;
    padding:14px;
    box-shadow:0 16px 40px rgba(6,26,61,.055);
    display:grid;
    gap:8px;
    align-self:start;
    position:sticky;
    top:86px;
}
.practice-repo-cats button{
    border:0;
    border-radius:14px;
    min-height:44px;
    padding:0 14px;
    background:#f5f8fc;
    text-align:left;
    color:var(--pnavy);
    font-weight:950;
    cursor:pointer;
}
.practice-repo-cats button.active,
.practice-repo-cats button:hover{
    background:var(--pnavy);
    color:#fff;
}
.practice-doc-list{
    display:grid;
    gap:12px;
}
.practice-doc-list article{
    display:grid;
    grid-template-columns:58px 1fr auto;
    align-items:center;
    gap:16px;
    padding:18px;
}
.practice-doc-list article>span{
    width:48px;
    height:48px;
    border-radius:16px;
    background:#fff2f2;
    color:var(--pred);
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:950;
}
.practice-doc-list a{
    border:1px solid var(--pline);
    color:var(--pnavy);
    border-radius:12px;
    padding:10px 13px;
    text-decoration:none;
    font-weight:950;
}
.practice-doc-list a:hover{
    background:var(--pnavy);
    color:#fff;
}
.practice-lightbox{
    display:none;
    position:fixed;
    inset:0;
    z-index:100000;
}
.practice-lightbox.open{display:block}
.practice-lightbox-backdrop{
    position:absolute;
    inset:0;
    background:rgba(3,10,25,.78);
    backdrop-filter:blur(6px);
}
.practice-lightbox-panel{
    position:absolute;
    inset:32px;
    background:#fff;
    border-radius:24px;
    overflow:hidden;
    display:grid;
    grid-template-rows:auto 1fr;
}
.practice-lightbox-panel header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:16px 18px;
    border-bottom:1px solid var(--pline);
}
.practice-lightbox-panel h3{
    color:var(--pnavy);
    margin:0;
}
.practice-lightbox-panel header button{
    border:1px solid var(--pline);
    background:#fff;
    border-radius:10px;
    padding:9px 12px;
    font-weight:950;
    cursor:pointer;
}
.practice-lightbox-panel>div{
    background:#eef3fa;
    overflow:auto;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    padding:24px;
}
.practice-lightbox-panel img{
    max-width:100%;
    border-radius:14px;
    background:#fff;
    box-shadow:0 16px 50px rgba(0,0,0,.16);
}
.file-map-table{overflow:auto}
.file-map-table table{
    width:100%;
    border-collapse:collapse;
}
.file-map-table th,
.file-map-table td{
    border-bottom:1px solid #e4ebf5;
    padding:13px 12px;
    text-align:left;
}
.file-map-table th{
    color:#071f4a;
    background:#f5f8fc;
}
.file-map-table code{
    background:#f1f5fb;
    padding:4px 7px;
    border-radius:8px;
}
.cms-preview-row{
    display:grid;
    grid-template-columns:180px 1fr;
    gap:16px;
    align-items:center;
    margin:14px 0;
}
.cms-preview-row img{
    width:180px;
    height:105px;
    object-fit:cover;
    border-radius:14px;
    border:1px solid #e2eaf5;
}
.cms-preview-row p{
    margin:4px 0;
    color:#475569;
}
@media(max-width:1000px){
    .practice-hero-inner,
    .practice-detail-grid,
    .practice-repo-layout{
        grid-template-columns:1fr;
    }
    .practice-overview-grid,
    .practice-gallery-grid,
    .practice-mini-gallery{
        grid-template-columns:repeat(2,1fr);
    }
    .practice-repo-cats{position:static}
}
@media(max-width:650px){
    .practice-overview-grid,
    .practice-gallery-grid,
    .practice-mini-gallery,
    .practice-doc-list article,
    .cms-preview-row{
        grid-template-columns:1fr;
    }
    .practice-hero aside div{grid-template-columns:1fr}
}


/* =========================================================
   INICIO CMS — CARRUSEL EDITABLE DESDE PANEL
   ========================================================= */
.home-cms-carousel{
    position:relative;
    min-height:520px;
    background:#061a3d;
    overflow:hidden;
}
.home-cms-carousel-track,
.home-cms-slide{
    min-height:520px;
}
.home-cms-slide{
    position:absolute;
    inset:0;
    opacity:0;
    pointer-events:none;
    transition:opacity .65s ease;
}
.home-cms-slide.active{
    opacity:1;
    pointer-events:auto;
}
.home-cms-slide img{
    width:100%;
    height:520px;
    object-fit:cover;
    display:block;
    filter:saturate(1.06) contrast(1.03) brightness(.82);
}
.home-cms-slide:after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(6,26,61,.76),rgba(6,26,61,.36) 44%,rgba(6,26,61,.08));
}
.home-cms-slide-copy{
    position:absolute;
    z-index:2;
    left:max(24px,calc((100vw - 1180px)/2));
    top:50%;
    transform:translateY(-50%);
    max-width:680px;
    color:#fff;
}
.home-cms-slide-copy h1{
    font-size:clamp(2.4rem,5vw,5rem);
    line-height:.95;
    margin:0 0 16px;
    letter-spacing:-.055em;
    font-weight:950;
}
.home-cms-slide-copy p{
    font-size:1.16rem;
    line-height:1.65;
    max-width:620px;
}
.home-cms-slide-copy a{
    display:inline-flex;
    align-items:center;
    min-height:46px;
    padding:0 20px;
    border-radius:12px;
    background:#d71920;
    color:#fff!important;
    text-decoration:none;
    font-weight:950;
    margin-top:14px;
}
.home-cms-carousel-dots{
    position:absolute;
    z-index:3;
    left:50%;
    bottom:22px;
    transform:translateX(-50%);
    display:flex;
    gap:8px;
}
.home-cms-carousel-dots button{
    width:12px;
    height:12px;
    border:0;
    border-radius:999px;
    background:rgba(255,255,255,.55);
    cursor:pointer;
}
.home-cms-carousel-dots button.active{
    background:#fff;
    width:34px;
}
@media(max-width:700px){
    .home-cms-carousel,
    .home-cms-carousel-track,
    .home-cms-slide,
    .home-cms-slide img{min-height:430px;height:430px}
    .home-cms-slide-copy{left:22px;right:22px}
}


/* =========================================================
   CORRECCIÓN PRÁCTICAS — FUSIÓN SIN PERDER CONTENIDO PREVIO
   ========================================================= */
.practice-merged-page .practice-new-content,
.practice-merged-page .practice-documents-section{
    margin-top:34px;
}
.practice-new-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}
.practice-new-grid article{
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:22px;
    padding:22px;
    box-shadow:0 14px 34px rgba(6,26,61,.055);
}
.practice-new-grid article>span{
    width:50px;
    height:50px;
    border-radius:16px;
    background:#f1f5fb;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.32rem;
    margin-bottom:12px;
}
.practice-new-grid h3{
    color:#061a3d;
    margin:0 0 10px;
}
.practice-new-grid p{
    color:#5d6b82;
    line-height:1.62;
}
.practice-new-grid a{
    color:#061a3d;
    font-weight:950;
    text-decoration:none;
}
.cms-rotate-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin:10px 0 14px;
}
.cms-rotate-actions form{
    margin:0;
}
@media(max-width:1000px){
    .practice-new-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:650px){
    .practice-new-grid{grid-template-columns:1fr}
}


/* =========================================================
   CMS V2 — DOS CRONOGRAMAS INDEPENDIENTES
   ========================================================= */
.schedule-cms-page{
    --navy:#061a3d;
    --red:#d71920;
    --muted:#5d6b82;
    --line:#dfe7f2;
    background:#f4f7fc;
    min-height:100vh;
}
.schedule-hero{
    background:linear-gradient(135deg,#fff 0%,#fff 55%,#edf3fb 100%);
    border-bottom:1px solid var(--line);
}
.schedule-hero .container{
    padding-top:54px;
    padding-bottom:58px;
}
.schedule-hero nav{color:#64748b;font-weight:700;margin-bottom:18px}
.schedule-hero nav span{margin:0 10px;color:#a5b1c2}
.schedule-hero span{
    color:var(--red);
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-size:.78rem;
}
.schedule-hero h1{
    color:var(--navy);
    font-size:clamp(2.7rem,5vw,4.9rem);
    line-height:.95;
    letter-spacing:-.06em;
    margin:10px 0 14px;
    font-weight:950;
}
.schedule-hero p{max-width:760px;color:#334762;line-height:1.7;font-size:1.1rem}
.schedule-hero a{
    display:inline-flex;
    align-items:center;
    min-height:44px;
    padding:0 18px;
    border-radius:12px;
    background:var(--navy);
    color:#fff!important;
    text-decoration:none;
    font-weight:950;
    margin-top:12px;
}
.schedule-tools{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:24px;
    margin-bottom:18px;
}
.schedule-tools input,.schedule-tools select{
    min-height:46px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
    color:var(--navy);
    padding:0 14px;
    font-weight:800;
}
.schedule-tools input{flex:1;min-width:320px}
.schedule-list,.pedagogy-timeline{
    display:grid;
    gap:14px;
    padding-bottom:60px;
}
.schedule-list article{
    display:grid;
    grid-template-columns:150px 1fr;
    gap:18px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:22px;
    padding:18px;
    box-shadow:0 14px 34px rgba(6,26,61,.055);
}
.schedule-date{
    background:#f5f8fc;
    border:1px solid #e5ecf6;
    border-radius:18px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    min-height:96px;
    text-align:center;
}
.schedule-date strong{color:var(--red);font-size:1.5rem}
.schedule-date span{color:var(--navy);font-weight:950}
.schedule-body>span{color:var(--red);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:950}
.schedule-body h2{color:var(--navy);margin:5px 0 7px}
.schedule-body p,.schedule-body small{color:var(--muted);line-height:1.55}
.pedagogy-timeline article{
    display:grid;
    grid-template-columns:70px 1fr;
    gap:18px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:22px;
    padding:20px;
    box-shadow:0 14px 34px rgba(6,26,61,.055);
}
.timeline-icon{
    width:58px;
    height:58px;
    border-radius:18px;
    background:#f5f8fc;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.55rem;
}
.pedagogy-timeline span{color:var(--red);font-weight:950;font-size:.82rem}
.pedagogy-timeline h2{color:var(--navy);margin:5px 0}
.pedagogy-timeline p{color:var(--muted);line-height:1.6}

/* =========================================================
   PRÁCTICAS PEDAGÓGICAS — HUB MODULAR LIMPIO
   ========================================================= */
.practice-hub{
    --navy:#061a3d;
    --red:#d71920;
    --muted:#5d6b82;
    --line:#dfe7f2;
    background:#f4f7fc;
    color:#071f4a;
}
.practice-hub-hero{
    background:linear-gradient(135deg,#fff 0%,#fff 52%,#edf3fb 100%);
    border-bottom:1px solid var(--line);
}
.practice-hub-hero .container{
    padding-top:54px;
    padding-bottom:60px;
}
.practice-hub-hero nav{color:#64748b;font-weight:700;margin-bottom:18px}
.practice-hub-hero nav span{margin:0 10px;color:#a5b1c2}
.practice-hub-hero>div>span,.practice-hub-head span{
    color:var(--red);
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-size:.78rem;
}
.practice-hub h1{
    color:var(--navy);
    font-size:clamp(3rem,6vw,5.2rem);
    line-height:.92;
    letter-spacing:-.065em;
    margin:10px 0 16px;
    font-weight:950;
}
.practice-hub-hero p{max-width:820px;color:#334762;line-height:1.72;font-size:1.12rem}
.practice-hub-hero div div{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.practice-hub-hero a{
    min-height:46px;
    display:inline-flex;
    align-items:center;
    padding:0 20px;
    border-radius:12px;
    background:var(--navy);
    color:#fff!important;
    text-decoration:none;
    font-weight:950;
}
.practice-hub-hero a.secondary{background:#fff;color:var(--navy)!important;border:1px solid var(--line)}
.practice-hub-stats{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
    margin-top:-28px;
    position:relative;
    z-index:4;
}
.practice-hub-stats article{
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    padding:22px;
    box-shadow:0 16px 40px rgba(6,26,61,.08);
}
.practice-hub-stats strong{display:block;color:var(--red);font-size:2rem;font-weight:950;line-height:1}
.practice-hub-stats span{display:block;color:var(--navy);font-weight:950;margin-top:7px}
.practice-hub-section{padding:46px 0}
.practice-hub-head{margin-bottom:22px}
.practice-hub-head h2{
    color:var(--navy);
    font-size:clamp(2rem,3.5vw,3rem);
    margin:6px 0 10px;
    letter-spacing:-.05em;
}
.practice-hub-head p{max-width:850px;color:var(--muted);line-height:1.68}
.practice-module-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
}
.practice-module-grid article{
    background:#fff;
    border:1px solid var(--line);
    border-radius:26px;
    overflow:hidden;
    box-shadow:0 18px 44px rgba(6,26,61,.07);
    position:relative;
}
.practice-module-number{
    position:absolute;
    top:15px;
    left:15px;
    z-index:3;
    background:var(--red);
    color:#fff;
    border-radius:14px;
    padding:8px 11px;
    font-weight:950;
}
.practice-module-grid img{
    width:100%;
    height:190px;
    object-fit:cover;
    display:block;
    filter:saturate(1.04) contrast(1.02);
}
.practice-module-grid article>div:last-child{
    padding:20px;
}
.practice-module-grid span{
    color:var(--red);
    text-transform:uppercase;
    font-size:.76rem;
    letter-spacing:.08em;
    font-weight:950;
}
.practice-module-grid h3{color:var(--navy);margin:7px 0 10px}
.practice-module-grid p{color:var(--muted);line-height:1.58}
.practice-module-grid a,.practice-quick-grid a{
    color:var(--navy);
    font-weight:950;
    text-decoration:none;
}
.practice-quick-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
}
.practice-quick-grid article{
    background:#fff;
    border:1px solid var(--line);
    border-radius:24px;
    padding:24px;
    box-shadow:0 16px 40px rgba(6,26,61,.055);
}
.practice-quick-grid article>span{
    width:54px;
    height:54px;
    border-radius:18px;
    background:#f1f5fb;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.4rem;
    margin-bottom:14px;
}
.practice-quick-grid h3{color:var(--navy);margin:0 0 10px}
.practice-quick-grid p{color:var(--muted);line-height:1.62}
.practice-hub-preview-gallery{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
}
.practice-hub-preview-gallery a{
    display:block;
    position:relative;
    border-radius:18px;
    overflow:hidden;
    min-height:170px;
    box-shadow:0 14px 32px rgba(6,26,61,.08);
}
.practice-hub-preview-gallery img{width:100%;height:190px;object-fit:cover;display:block}
.practice-hub-preview-gallery span{
    position:absolute;
    left:10px;
    right:10px;
    bottom:10px;
    background:rgba(6,26,61,.82);
    color:#fff;
    border-radius:12px;
    padding:8px 10px;
    font-weight:850;
    font-size:.82rem;
}

/* =========================================================
   DETALLE PRÁCTICA — MÓDULO CONCENTRADO
   ========================================================= */
.practice-module-page{
    background:#f4f7fc;
    min-height:100vh;
    display:grid;
    grid-template-columns:290px 1fr;
    color:#071f4a;
}
.practice-module-sidebar{
    background:#061a3d;
    color:#fff;
    min-height:100vh;
    position:sticky;
    top:0;
    align-self:start;
    padding:24px;
}
.practice-module-sidebar .practice-back,
.practice-module-sidebar .module-crono-link{
    display:inline-flex;
    color:#fff!important;
    text-decoration:none;
    font-weight:900;
    margin-bottom:18px;
}
.practice-module-sidebar h1{font-size:1.45rem;margin:0 0 18px}
.practice-module-sidebar nav{display:grid;gap:8px}
.practice-module-sidebar nav a{
    color:#dbeafe;
    text-decoration:none;
    border-radius:12px;
    padding:11px 12px;
    font-weight:850;
}
.practice-module-sidebar nav a.active,.practice-module-sidebar nav a:hover{
    background:#fff;
    color:#061a3d;
}
.practice-module-sidebar .module-crono-link{
    margin-top:22px;
    background:rgba(255,255,255,.12);
    padding:12px;
    border-radius:12px;
}
.practice-module-content{
    padding:34px;
    max-width:1180px;
}
.practice-module-hero{
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 18px 45px rgba(6,26,61,.07);
    display:grid;
    grid-template-columns:380px 1fr;
}
.practice-module-hero img{
    width:100%;
    height:100%;
    min-height:280px;
    object-fit:cover;
}
.practice-module-hero div{padding:30px}
.practice-module-hero span{
    color:#d71920;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-size:.78rem;
    font-weight:950;
}
.practice-module-hero h1{
    color:#061a3d;
    font-size:clamp(2rem,4vw,3.4rem);
    margin:8px 0 12px;
    line-height:1;
    letter-spacing:-.05em;
}
.practice-module-hero p{color:#5d6b82;line-height:1.72}
.practice-module-block{
    margin-top:24px;
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:24px;
    padding:24px;
    box-shadow:0 14px 34px rgba(6,26,61,.055);
}
.practice-module-block h2{color:#061a3d;margin:0 0 16px}
.module-lead{color:#5d6b82;line-height:1.65}
.module-info-grid,.module-two-cols{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
}
.module-two-cols{grid-template-columns:1fr 1fr}
.module-info-grid article,.module-two-cols article{
    background:#f7f9fd;
    border:1px solid #e5ecf6;
    border-radius:18px;
    padding:18px;
}
.module-info-grid strong,.module-two-cols h3{color:#061a3d}
.module-info-grid p,.module-two-cols li{color:#5d6b82;line-height:1.6}
.module-docs{
    display:grid;
    gap:12px;
}
.module-docs article{
    display:grid;
    grid-template-columns:56px 1fr auto;
    align-items:center;
    gap:14px;
    background:#f7f9fd;
    border:1px solid #e5ecf6;
    border-radius:16px;
    padding:14px;
}
.module-docs span{
    background:#fff2f2;
    color:#d71920;
    font-weight:950;
    border-radius:13px;
    width:46px;
    height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
}
.module-docs h3{margin:0 0 3px;color:#061a3d}
.module-docs p{margin:0;color:#64748b}
.module-docs a{
    color:#061a3d;
    border:1px solid #dfe7f2;
    border-radius:10px;
    padding:9px 12px;
    text-decoration:none;
    font-weight:950;
}
.module-gallery{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
}
.module-gallery button{
    border:0;
    padding:0;
    border-radius:16px;
    overflow:hidden;
    cursor:zoom-in;
    background:#fff;
}
.module-gallery img{
    width:100%;
    height:180px;
    object-fit:cover;
    display:block;
}
@media(max-width:1100px){
    .practice-module-grid,.practice-quick-grid{grid-template-columns:repeat(2,1fr)}
    .practice-hub-stats,.practice-hub-preview-gallery,.module-gallery{grid-template-columns:repeat(2,1fr)}
    .practice-module-page{grid-template-columns:1fr}
    .practice-module-sidebar{position:static;min-height:auto}
    .practice-module-hero{grid-template-columns:1fr}
    .module-info-grid{grid-template-columns:1fr}
}
@media(max-width:650px){
    .schedule-list article,.pedagogy-timeline article,.practice-module-grid,.practice-quick-grid,.practice-hub-stats,.practice-hub-preview-gallery,.module-gallery,.module-two-cols,.module-docs article{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   PRÁCTICAS PEDAGÓGICAS — MISMA PÁGINA CON SECCIONES INTERNAS
   ========================================================= */
.practice-onepage{
    --navy:#061a3d;
    --red:#d71920;
    --muted:#5d6b82;
    --line:#dfe7f2;
    background:#f4f7fc;
    color:#071f4a;
    min-height:100vh;
}
.practice-onepage-hero{
    background:linear-gradient(135deg,#fff 0%,#fff 55%,#edf3fb 100%);
    border-bottom:1px solid var(--line);
}
.practice-onepage-hero .container{
    padding-top:54px;
    padding-bottom:60px;
}
.practice-onepage-hero nav{
    color:#64748b;
    font-weight:700;
    margin-bottom:18px;
}
.practice-onepage-hero nav span{
    margin:0 10px;
    color:#a5b1c2;
}
.practice-onepage-hero .container>span,
.practice-onepage-head span{
    color:var(--red);
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-size:.78rem;
}
.practice-onepage-hero h1{
    color:var(--navy);
    font-size:clamp(3rem,6vw,5.2rem);
    line-height:.92;
    letter-spacing:-.065em;
    margin:10px 0 16px;
    font-weight:950;
}
.practice-onepage-hero p{
    max-width:820px;
    color:#334762;
    line-height:1.72;
    font-size:1.12rem;
}
.practice-onepage-actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:22px;
}
.practice-onepage-actions button{
    min-height:46px;
    border:0;
    border-radius:12px;
    background:var(--navy);
    color:#fff;
    padding:0 20px;
    font-weight:950;
    cursor:pointer;
}
.practice-onepage-actions button:nth-child(2){
    background:#fff;
    color:var(--navy);
    border:1px solid var(--line);
}
.practice-onepage-tabs{
    display:flex;
    gap:0;
    overflow:auto;
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    padding:7px;
    box-shadow:0 18px 45px rgba(6,26,61,.09);
    margin-top:-28px;
    position:sticky;
    top:0;
    z-index:25;
}
.practice-onepage-tabs button{
    flex:1;
    min-width:130px;
    min-height:48px;
    border:0;
    background:transparent;
    border-radius:13px;
    color:var(--navy);
    font-weight:950;
    cursor:pointer;
}
.practice-onepage-tabs button.active,
.practice-onepage-tabs button:hover{
    background:var(--navy);
    color:#fff;
}
.practice-onepage-panel{
    display:none;
    padding:42px 0 70px;
    animation:practicePanelFade .18s ease;
}
.practice-onepage-panel.active{
    display:block;
}
@keyframes practicePanelFade{
    from{opacity:0; transform:translateY(8px)}
    to{opacity:1; transform:translateY(0)}
}
.practice-onepage-head{
    margin-bottom:24px;
}
.practice-onepage-head h2{
    color:var(--navy);
    font-size:clamp(2rem,3.5vw,3rem);
    margin:6px 0 10px;
    letter-spacing:-.05em;
}
.practice-onepage-head p{
    max-width:850px;
    color:var(--muted);
    line-height:1.68;
}
.practice-onepage-stats{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
    margin-bottom:28px;
}
.practice-onepage-stats article{
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    padding:22px;
    box-shadow:0 16px 40px rgba(6,26,61,.08);
}
.practice-onepage-stats strong{
    display:block;
    color:var(--red);
    font-size:2rem;
    font-weight:950;
    line-height:1;
}
.practice-onepage-stats span{
    display:block;
    color:var(--navy);
    font-weight:950;
    margin-top:7px;
}
.practice-onepage-module-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
}
.practice-onepage-module-grid article{
    background:#fff;
    border:1px solid var(--line);
    border-radius:26px;
    overflow:hidden;
    box-shadow:0 18px 44px rgba(6,26,61,.07);
    position:relative;
}
.practice-onepage-number{
    position:absolute;
    top:15px;
    left:15px;
    z-index:3;
    background:var(--red);
    color:#fff;
    border-radius:14px;
    padding:8px 11px;
    font-weight:950;
}
.practice-onepage-module-grid img{
    width:100%;
    height:190px;
    object-fit:cover;
    display:block;
}
.practice-onepage-module-grid article>div:last-child{
    padding:20px;
}
.practice-onepage-module-grid span{
    color:var(--red);
    text-transform:uppercase;
    font-size:.76rem;
    letter-spacing:.08em;
    font-weight:950;
}
.practice-onepage-module-grid h3{
    color:var(--navy);
    margin:7px 0 10px;
}
.practice-onepage-module-grid p{
    color:var(--muted);
    line-height:1.58;
}
.practice-onepage-module-grid button{
    border:0;
    background:transparent;
    color:var(--navy);
    padding:0;
    font-weight:950;
    cursor:pointer;
}
.practice-module-inline{
    display:grid;
    grid-template-columns:270px 1fr;
    gap:24px;
}
.practice-module-inline>aside{
    background:#061a3d;
    color:#fff;
    border-radius:24px;
    padding:20px;
    align-self:start;
    position:sticky;
    top:88px;
}
.practice-module-inline>aside>button{
    border:0;
    background:rgba(255,255,255,.12);
    color:#fff;
    border-radius:12px;
    min-height:40px;
    padding:0 12px;
    font-weight:950;
    cursor:pointer;
    margin-bottom:16px;
}
.practice-module-inline aside h3{
    margin:0 0 12px;
    color:#fff;
}
.practice-module-inline aside nav{
    display:grid;
    gap:8px;
}
.practice-module-inline aside nav button{
    border:0;
    background:transparent;
    color:#dbeafe;
    text-align:left;
    border-radius:12px;
    padding:11px 12px;
    font-weight:850;
    cursor:pointer;
}
.practice-module-inline aside nav button.active,
.practice-module-inline aside nav button:hover{
    background:#fff;
    color:#061a3d;
}
.practice-module-inline-content header{
    background:#fff;
    border:1px solid var(--line);
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 18px 45px rgba(6,26,61,.07);
    display:grid;
    grid-template-columns:360px 1fr;
}
.practice-module-inline-content header img{
    width:100%;
    height:100%;
    min-height:260px;
    object-fit:cover;
}
.practice-module-inline-content header div{
    padding:28px;
}
.practice-module-inline-content header span{
    color:var(--red);
    text-transform:uppercase;
    letter-spacing:.1em;
    font-size:.78rem;
    font-weight:950;
}
.practice-module-inline-content header h2{
    color:var(--navy);
    font-size:clamp(2rem,4vw,3.2rem);
    margin:8px 0 12px;
    line-height:1;
    letter-spacing:-.05em;
}
.practice-module-inline-content header p{
    color:var(--muted);
    line-height:1.72;
}
.practice-inline-info-grid,
.practice-inline-two-cols{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
    margin-top:20px;
}
.practice-inline-two-cols{
    grid-template-columns:1fr 1fr;
}
.practice-inline-info-grid article,
.practice-inline-two-cols article,
.practice-inline-block{
    background:#fff;
    border:1px solid var(--line);
    border-radius:22px;
    padding:20px;
    box-shadow:0 14px 34px rgba(6,26,61,.055);
}
.practice-inline-info-grid strong,
.practice-inline-two-cols h3,
.practice-inline-block h3{
    color:var(--navy);
}
.practice-inline-info-grid p,
.practice-inline-two-cols li{
    color:var(--muted);
    line-height:1.6;
}
.practice-inline-block{
    margin-top:20px;
}
.practice-inline-docs{
    display:grid;
    gap:12px;
}
.practice-inline-docs article{
    display:grid;
    grid-template-columns:56px 1fr auto;
    align-items:center;
    gap:14px;
    background:#f7f9fd;
    border:1px solid #e5ecf6;
    border-radius:16px;
    padding:14px;
}
.practice-inline-docs span{
    background:#fff2f2;
    color:var(--red);
    font-weight:950;
    border-radius:13px;
    width:46px;
    height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
}
.practice-inline-docs h4{
    margin:0 0 3px;
    color:var(--navy);
}
.practice-inline-docs p{
    margin:0;
    color:#64748b;
}
.practice-inline-docs a{
    color:var(--navy);
    border:1px solid var(--line);
    border-radius:10px;
    padding:9px 12px;
    text-decoration:none;
    font-weight:950;
}
.practice-inline-gallery{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
}
.practice-inline-gallery button{
    border:0;
    padding:0;
    border-radius:16px;
    overflow:hidden;
    cursor:zoom-in;
    background:#fff;
}
.practice-inline-gallery img{
    width:100%;
    height:180px;
    object-fit:cover;
    display:block;
}
@media(max-width:1100px){
    .practice-onepage-stats,
    .practice-onepage-module-grid,
    .practice-inline-gallery{
        grid-template-columns:repeat(2,1fr);
    }
    .practice-module-inline,
    .practice-module-inline-content header{
        grid-template-columns:1fr;
    }
    .practice-module-inline>aside{
        position:static;
    }
    .practice-inline-info-grid{
        grid-template-columns:1fr;
    }
}
@media(max-width:650px){
    .practice-onepage-stats,
    .practice-onepage-module-grid,
    .practice-inline-two-cols,
    .practice-inline-docs article,
    .practice-inline-gallery{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   INICIO CMS — NOTICIAS, DESTACADOS Y MULTIMEDIA
   ========================================================= */
.home-info-cms,
.home-news-cms,
.home-media-cms{
    background:#f4f7fc;
    padding:48px 0;
}
.home-news-cms{
    background:#fff;
}
.home-section-head{
    margin-bottom:24px;
}
.home-section-head span{
    color:#d71920;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-size:.78rem;
    font-weight:950;
}
.home-section-head h2{
    color:#061a3d;
    font-size:clamp(2rem,3.5vw,3rem);
    margin:6px 0 10px;
    letter-spacing:-.05em;
}
.home-section-head p{
    max-width:820px;
    color:#5d6b82;
    line-height:1.65;
}
.home-feature-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}
.home-feature-grid article,
.home-news-grid article,
.home-media-grid article{
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:24px;
    box-shadow:0 16px 40px rgba(6,26,61,.055);
}
.home-feature-grid article{
    padding:24px;
}
.home-feature-grid article>span{
    width:54px;
    height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:18px;
    background:#f1f5fb;
    font-size:1.4rem;
    margin-bottom:14px;
}
.home-feature-grid h3,
.home-news-grid h3,
.home-media-grid h3{
    color:#061a3d;
    margin:0 0 10px;
}
.home-feature-grid p,
.home-news-grid p,
.home-media-grid p{
    color:#5d6b82;
    line-height:1.6;
}
.home-feature-grid a,
.home-news-grid a{
    color:#061a3d;
    text-decoration:none;
    font-weight:950;
}
.home-news-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
}
.home-news-grid article{
    overflow:hidden;
}
.home-news-grid img{
    width:100%;
    height:210px;
    object-fit:cover;
    display:block;
}
.home-news-grid article>div{
    padding:20px;
}
.home-news-grid article span{
    display:block;
    color:#d71920;
    text-transform:uppercase;
    font-size:.74rem;
    letter-spacing:.08em;
    font-weight:950;
    margin-bottom:8px;
}
.home-media-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
}
.home-media-grid article{
    overflow:hidden;
}
.home-media-grid img,
.home-media-grid video{
    width:100%;
    height:280px;
    object-fit:cover;
    display:block;
    background:#061a3d;
}
.home-media-grid article>div{
    padding:20px;
}
.home-media-grid span{
    display:block;
    color:#d71920;
    font-weight:950;
    font-size:.8rem;
    margin-bottom:8px;
}
.cms-preview-row video{
    width:180px;
    height:105px;
    object-fit:cover;
    border-radius:14px;
    border:1px solid #e2eaf5;
    background:#061a3d;
}
.cms-doc-admin-row{
    background:#f8fafc;
    border:1px solid #e2eaf5;
    border-radius:14px;
    padding:14px;
    margin:12px 0;
}
.cms-doc-admin-row p{
    margin:4px 0;
    color:#475569;
}
.cms-doc-admin-row code{
    background:#eef2f7;
    padding:3px 7px;
    border-radius:8px;
}
@media(max-width:1100px){
    .home-feature-grid,
    .home-news-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:700px){
    .home-feature-grid,
    .home-news-grid,
    .home-media-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   HOME PREMIUM PFC — IMPLEMENTACIÓN DEL DISEÑO APROBADO
   ========================================================= */
.pfc-home-premium{
    --pfc-navy:#061a3d;
    --pfc-blue:#0b2d63;
    --pfc-red:#d71920;
    --pfc-gold:#c49a00;
    --pfc-muted:#5d6b82;
    --pfc-line:#e2e8f0;
    --pfc-soft:#f4f7fb;
    background:#fff;
    color:#071f4a;
}
.pfc-home-hero{
    position:relative;
    height:610px;
    overflow:hidden;
    background:#061a3d;
}
.pfc-home-hero-track,
.pfc-home-slide{
    height:100%;
}
.pfc-home-slide{
    position:absolute;
    inset:0;
    opacity:0;
    pointer-events:none;
    transition:opacity .7s ease;
}
.pfc-home-slide.active{
    opacity:1;
    pointer-events:auto;
}
.pfc-home-slide img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    filter:saturate(1.05) contrast(1.04) brightness(.95);
}
.pfc-home-slide:before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.88) 33%, rgba(255,255,255,.22) 60%, rgba(6,26,61,.35) 100%);
    z-index:1;
}
.pfc-home-slide:after{
    content:"";
    position:absolute;
    right:-70px;
    bottom:-100px;
    width:380px;
    height:470px;
    background:linear-gradient(135deg, var(--pfc-red), #a40012);
    transform:skewX(-18deg);
    border-radius:46px 0 0 0;
    z-index:2;
    opacity:.9;
}
.pfc-home-slide-inner{
    position:relative;
    z-index:3;
    height:100%;
    display:flex;
    align-items:center;
}
.pfc-home-slide-copy{
    max-width:660px;
    padding-bottom:56px;
}
.pfc-home-slide-copy h1{
    color:var(--pfc-navy);
    font-size:clamp(2.6rem,5vw,4.6rem);
    line-height:1.02;
    letter-spacing:-.055em;
    font-weight:950;
    margin:0 0 22px;
}
.pfc-home-slide-copy h1 b{
    display:block;
    color:var(--pfc-red);
    font-weight:950;
}
.pfc-home-slide-copy p{
    color:#263b56;
    line-height:1.65;
    font-size:1.05rem;
    max-width:620px;
    margin:0 0 26px;
}
.pfc-home-slide-copy a,
.pfc-red-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:0 24px;
    border-radius:10px;
    background:var(--pfc-red);
    color:#fff!important;
    font-weight:950;
    text-decoration:none;
    border:0;
    box-shadow:0 12px 28px rgba(215,25,32,.20);
}
.pfc-home-arrow{
    position:absolute;
    z-index:5;
    top:50%;
    transform:translateY(-50%);
    width:48px;
    height:48px;
    border-radius:999px;
    border:0;
    background:var(--pfc-red);
    color:#fff;
    font-size:2rem;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
}
.pfc-home-arrow.prev{left:24px}
.pfc-home-arrow.next{right:24px}
.pfc-home-dots{
    position:absolute;
    z-index:5;
    left:50%;
    bottom:92px;
    transform:translateX(-50%);
    display:flex;
    gap:10px;
}
.pfc-home-dots button,
.pfc-slider-dots i{
    width:12px;
    height:12px;
    border-radius:999px;
    border:0;
    background:#8b8b8b;
    cursor:pointer;
}
.pfc-home-dots button.active,
.pfc-slider-dots i.active{
    background:var(--pfc-red);
}
.pfc-quick-access{
    position:relative;
    z-index:7;
    margin-top:-58px;
    background:#fff;
    border:1px solid var(--pfc-line);
    border-radius:20px;
    box-shadow:0 20px 55px rgba(6,26,61,.14);
    display:grid;
    grid-template-columns:repeat(6,1fr);
    overflow:hidden;
}
.pfc-quick-access a{
    min-height:110px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    color:var(--pfc-navy);
    text-decoration:none;
    border-right:1px solid var(--pfc-line);
}
.pfc-quick-access a:last-child{border-right:0}
.pfc-quick-access a span{
    font-size:1.65rem;
}
.pfc-quick-access a strong{
    font-size:.92rem;
    text-align:center;
}
.pfc-home-section{
    padding:62px 0;
}
.pfc-home-head{
    margin-bottom:26px;
}
.pfc-home-head h2{
    color:var(--pfc-navy);
    font-size:clamp(2rem,3.5vw,2.6rem);
    line-height:1;
    margin:0 0 12px;
    font-weight:950;
    letter-spacing:-.04em;
    position:relative;
}
.pfc-home-head.left h2,
.pfc-home-head.split h2,
.pfc-home-head.center h2{
    display:inline-block;
}
.pfc-home-head h2:after{
    content:"";
    display:block;
    width:74px;
    height:4px;
    border-radius:999px;
    background:var(--pfc-red);
    margin-top:13px;
}
.pfc-home-head.center{text-align:center}
.pfc-home-head.center h2:after{margin-left:auto;margin-right:auto}
.pfc-home-head p{
    color:#1f2937;
    font-size:1rem;
    margin:0;
}
.pfc-home-head.split{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    border-bottom:1px solid #cfd7e3;
    padding-bottom:26px;
}
.pfc-offer-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:28px;
}
.pfc-offer-grid article{
    position:relative;
    background:#f2f4f7;
    border-radius:0 86px 14px 14px;
    padding:28px 24px 22px;
    min-height:420px;
    overflow:hidden;
}
.pfc-offer-grid h3{
    color:#000;
    font-size:1.65rem;
    line-height:1.1;
    margin:0 0 12px;
    font-weight:950;
}
.pfc-offer-grid .more{
    color:var(--pfc-red);
    text-decoration:none;
    font-weight:950;
}
.pfc-offer-grid img{
    width:100%;
    height:190px;
    object-fit:cover;
    display:block;
    border-radius:16px;
    margin:50px 0 16px;
}
.pfc-offer-grid p{
    color:#48576e;
    line-height:1.55;
    margin:0;
}
.pfc-offer-grid .round{
    position:absolute;
    top:155px;
    right:22px;
    width:54px;
    height:54px;
    border-radius:999px;
    background:var(--pfc-red);
    color:#fff!important;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.8rem;
    text-decoration:none;
    font-weight:900;
}
.pfc-news-wrap{
    background:#f2f4f7;
}
.pfc-news-layout{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:28px;
}
.pfc-featured-news,
.pfc-secondary-news article{
    background:#fff;
    border-radius:14px;
    overflow:hidden;
    box-shadow:0 12px 34px rgba(6,26,61,.06);
}
.pfc-featured-news{
    padding:18px;
}
.pfc-featured-news>img{
    width:100%;
    height:410px;
    object-fit:cover;
    border-radius:12px;
    display:block;
}
.pfc-featured-news>div{
    padding:18px 0 8px;
}
.pfc-featured-news span,
.pfc-secondary-news .badges span{
    display:inline-flex;
    background:var(--pfc-gold);
    color:#fff;
    border-radius:6px;
    padding:5px 8px;
    font-size:.75rem;
    font-weight:950;
    margin-right:5px;
}
.pfc-featured-news h3{
    color:#000;
    font-size:1.65rem;
    margin:14px 0 10px;
    line-height:1.12;
}
.pfc-featured-news p{
    color:#111827;
    line-height:1.55;
}
.pfc-featured-news a,
.pfc-secondary-news a,
.pfc-events-grid a{
    color:var(--pfc-red);
    font-weight:950;
    text-decoration:none;
}
.pfc-secondary-news{
    display:grid;
    gap:22px;
}
.pfc-secondary-news article{
    display:grid;
    grid-template-columns:220px 1fr;
    gap:18px;
    padding:16px;
}
.pfc-secondary-news img{
    width:100%;
    height:170px;
    object-fit:cover;
    border-radius:12px;
}
.pfc-secondary-news h3{
    color:#000;
    font-size:1.35rem;
    margin:0 0 10px;
    line-height:1.12;
}
.pfc-secondary-news p{
    color:#111827;
    line-height:1.5;
}
.pfc-events-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:28px;
}
.pfc-events-grid article{
    background:#fff;
    border-radius:14px;
    overflow:hidden;
}
.pfc-events-grid .event-img{
    position:relative;
}
.pfc-events-grid img{
    width:100%;
    height:190px;
    object-fit:cover;
    display:block;
    border-radius:12px;
}
.pfc-events-grid time{
    position:absolute;
    right:12px;
    top:12px;
    width:54px;
    min-height:58px;
    background:#fff;
    border-radius:8px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    box-shadow:0 8px 22px rgba(0,0,0,.15);
}
.pfc-events-grid time strong{
    color:var(--pfc-navy);
    font-size:1.35rem;
    line-height:1;
}
.pfc-events-grid time span{
    color:var(--pfc-navy);
    font-size:.75rem;
    font-weight:950;
}
.pfc-events-grid .event-meta{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin:16px 0 10px;
}
.pfc-events-grid small{
    color:#000;
}
.pfc-events-grid .event-meta span{
    background:var(--pfc-gold);
    color:#fff;
    border-radius:6px;
    padding:5px 8px;
    font-size:.74rem;
    font-weight:950;
}
.pfc-events-grid h3{
    color:#000;
    font-size:1.28rem;
    line-height:1.18;
    margin:0 0 22px;
}
.pfc-slider-dots{
    display:flex;
    justify-content:center;
    gap:10px;
    margin:28px 0;
}
.pfc-red-button.centered{
    margin:0 auto;
    width:max-content;
}
.pfc-videos-wrap{
    background:#fff;
}
.pfc-video-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:28px;
}
.pfc-video-grid a{
    position:relative;
    display:block;
    border-radius:4px;
    overflow:hidden;
    background:#061a3d;
}
.pfc-video-grid img{
    width:100%;
    height:180px;
    object-fit:cover;
    display:block;
    filter:brightness(.86);
}
.pfc-video-grid .play{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    width:58px;
    height:58px;
    border-radius:999px;
    background:rgba(215,25,32,.9);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.25rem;
}
.pfc-video-grid small{
    position:absolute;
    right:9px;
    bottom:9px;
    background:rgba(0,0,0,.72);
    color:#fff;
    border-radius:6px;
    padding:4px 7px;
    font-size:.72rem;
    font-weight:900;
}
.pfc-video-grid h3{
    color:#000;
    font-size:1.02rem;
    line-height:1.35;
    margin:14px 0 0;
}
.pfc-contact-wrap{
    background:#f2f4f7;
    padding:60px 0;
}
.pfc-contact-grid{
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:46px;
    align-items:center;
}
.pfc-contact-info{
    background:var(--pfc-navy);
    color:#fff;
    padding:40px;
    border-radius:0;
    min-height:470px;
}
.pfc-contact-info h2{
    font-size:1.4rem;
    line-height:1.2;
    max-width:350px;
    margin:0 0 36px;
    text-transform:uppercase;
}
.pfc-contact-info h3{
    font-size:2rem;
    margin:0 0 22px;
}
.pfc-contact-info p{
    color:#dbe7ff;
    line-height:1.65;
}
.pfc-contact-form{
    background:#fff;
    border-radius:18px;
    box-shadow:0 24px 60px rgba(6,26,61,.12);
    padding:34px;
    display:grid;
    gap:16px;
}
.pfc-contact-form label{
    color:#000;
    font-weight:850;
}
.pfc-contact-form input,
.pfc-contact-form textarea{
    width:100%;
    border:1px solid #c8c8c8;
    border-radius:7px;
    min-height:44px;
    padding:10px 12px;
    margin-top:7px;
    font:inherit;
}
.pfc-contact-form .two{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
}
.pfc-contact-form .check{
    display:flex;
    gap:8px;
    align-items:flex-start;
    font-weight:700;
    line-height:1.45;
}
.pfc-contact-form .check input{
    width:auto;
    min-height:auto;
    margin-top:3px;
}
.pfc-contact-form button{
    justify-self:start;
    min-height:48px;
    border:0;
    border-radius:10px;
    background:var(--pfc-red);
    color:#fff;
    padding:0 24px;
    font-weight:950;
    cursor:pointer;
}
@media(max-width:1150px){
    .pfc-quick-access{grid-template-columns:repeat(3,1fr)}
    .pfc-offer-grid,.pfc-events-grid,.pfc-video-grid{grid-template-columns:repeat(2,1fr)}
    .pfc-news-layout,.pfc-contact-grid{grid-template-columns:1fr}
}
@media(max-width:720px){
    .pfc-home-hero{height:560px}
    .pfc-home-slide:before{background:rgba(255,255,255,.88)}
    .pfc-home-slide:after{display:none}
    .pfc-home-arrow{display:none}
    .pfc-quick-access,.pfc-offer-grid,.pfc-events-grid,.pfc-video-grid,.pfc-secondary-news article,.pfc-contact-form .two{grid-template-columns:1fr}
    .pfc-home-head.split{align-items:flex-start;flex-direction:column}
    .pfc-featured-news>img{height:260px}
    .pfc-secondary-news img{height:210px}
}


/* =========================================================
   CORRECCIÓN CARRUSEL LIMPIO — SOLO IMAGEN, SIN CAPAS ENCIMA
   ========================================================= */
.pfc-home-hero.clean-image-carousel{
    height:var(--carousel-height, 620px) !important;
    background:#061a3d !important;
}
.pfc-home-hero.clean-image-carousel .pfc-home-hero-track,
.pfc-home-hero.clean-image-carousel .pfc-home-slide{
    height:var(--carousel-height, 620px) !important;
}
.pfc-home-hero.clean-image-carousel .pfc-home-slide img{
    width:100% !important;
    height:100% !important;
    display:block !important;
    filter:none !important;
    background:#061a3d !important;
}
.pfc-home-hero.clean-image-carousel .pfc-home-slide:before,
.pfc-home-hero.clean-image-carousel .pfc-home-slide:after{
    display:none !important;
    content:none !important;
}
.pfc-home-hero.clean-image-carousel .pfc-home-slide-inner{
    pointer-events:none;
}
.pfc-home-hero.clean-image-carousel .pfc-home-slide-copy{
    pointer-events:auto;
    background:rgba(255,255,255,.86);
    padding:24px;
    border-radius:18px;
    box-shadow:0 18px 45px rgba(6,26,61,.16);
}
.pfc-home-hero.clean-image-carousel .pfc-home-dots{
    bottom:28px !important;
}
.pfc-home-hero.clean-image-carousel .pfc-home-arrow{
    background:rgba(215,25,32,.92) !important;
}


/* =========================================================
   PANEL — EDITOR REAL DE IMAGEN DEL CARRUSEL
   ========================================================= */
.cms-real-image-editor{
    background:#f8fafc;
    border:1px solid #dfe7f2;
    border-radius:16px;
    padding:16px;
    margin:14px 0 18px;
}
.cms-real-image-editor h3{
    color:#071f4a;
    margin:0 0 6px;
    font-size:1.05rem;
}
.cms-real-image-editor p{
    color:#5d6b82;
    margin:0 0 14px;
    line-height:1.55;
}


/* =========================================================
   FIX FUERTE — CARRUSEL SIEMPRE VISIBLE Y SIN CAPAS
   ========================================================= */
.pfc-home-premium .pfc-home-hero.clean-image-carousel{
    height:var(--carousel-height, 620px) !important;
    min-height:420px !important;
    overflow:hidden !important;
    position:relative !important;
    background:#061a3d !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide{
    height:var(--carousel-height, 620px) !important;
    min-height:420px !important;
    position:absolute !important;
    inset:0 !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide.active{
    opacity:1 !important;
    visibility:visible !important;
    z-index:2 !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide:not(.active){
    opacity:0 !important;
    visibility:hidden !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide img{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    min-height:100% !important;
    opacity:1 !important;
    visibility:visible !important;
    display:block !important;
    filter:none !important;
    transform:none !important;
    background:#061a3d !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide::before,
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide::after{
    display:none !important;
    opacity:0 !important;
    content:none !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide-inner{
    position:relative !important;
    z-index:4 !important;
    height:100% !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide-copy{
    max-width:560px !important;
    background:rgba(255,255,255,.88) !important;
    border-radius:18px !important;
    padding:24px !important;
    box-shadow:0 18px 45px rgba(6,26,61,.18) !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-dots{
    bottom:22px !important;
    z-index:10 !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-arrow{
    z-index:10 !important;
}


/* =========================================================
   PANEL — VISTA PREVIA CLARA DE IMAGEN DEL BANNER
   ========================================================= */
.cms-carousel-visible-preview{
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:18px;
    padding:14px;
    margin:14px 0;
    box-shadow:0 12px 30px rgba(6,26,61,.06);
}
.cms-carousel-visible-preview .preview-title-row{
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:center;
    margin-bottom:10px;
}
.cms-carousel-visible-preview .preview-title-row strong{
    color:#071f4a;
}
.cms-carousel-visible-preview .preview-title-row span{
    color:#d71920;
    font-weight:900;
    font-size:.85rem;
}
.cms-carousel-visible-preview img{
    width:100%;
    border-radius:14px;
    border:1px solid #e2e8f0;
    background:#f8fafc;
    display:block;
}
.cms-carousel-visible-preview p{
    color:#475569;
    margin:10px 0 0;
    word-break:break-word;
}
.cms-carousel-visible-preview code{
    background:#f1f5f9;
    padding:3px 6px;
    border-radius:7px;
}
.cms-carousel-visible-preview .empty-preview{
    height:220px;
    border-radius:14px;
    border:1px dashed #cbd5e1;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#64748b;
    background:#f8fafc;
}
.quick-image-presets{
    background:#fff7f7;
    border:1px solid #ffd6d6;
    border-radius:14px;
    padding:14px;
    margin:12px 0 16px;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    align-items:center;
}
.quick-image-presets strong{
    width:100%;
    color:#071f4a;
}
.quick-image-presets form{
    margin:0;
}
.quick-image-presets .btn{
    min-height:38px;
}


/* =========================================================
   FIX FINAL HOME — CARRUSEL SIN ESPACIOS BLANCOS
   ========================================================= */
.pfc-home-premium .pfc-home-hero.clean-image-carousel{
    height:var(--carousel-height, 620px) !important;
    min-height:520px !important;
    max-height:760px !important;
    background:#061a3d !important;
    overflow:hidden !important;
    position:relative !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-hero-track,
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide{
    height:var(--carousel-height, 620px) !important;
    min-height:520px !important;
    max-height:760px !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide{
    position:absolute !important;
    inset:0 !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide.active{
    opacity:1 !important;
    visibility:visible !important;
    z-index:2 !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide:not(.active){
    opacity:0 !important;
    visibility:hidden !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide img{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    min-width:100% !important;
    min-height:100% !important;
    object-fit:cover !important;
    object-position:center center;
    display:block !important;
    opacity:1 !important;
    visibility:visible !important;
    filter:none !important;
    background:#061a3d !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide::before,
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide::after{
    display:none !important;
    opacity:0 !important;
    content:none !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-dots{
    bottom:118px !important;
    z-index:30 !important;
    background:rgba(255,255,255,.85);
    padding:8px 12px;
    border-radius:999px;
    box-shadow:0 8px 22px rgba(6,26,61,.12);
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-dots button{
    width:13px !important;
    height:13px !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-arrow{
    z-index:30 !important;
}
.pfc-quick-access{
    margin-top:-80px !important;
    position:relative !important;
    z-index:20 !important;
}
@media(max-width:720px){
    .pfc-home-premium .pfc-home-hero.clean-image-carousel{
        height:520px !important;
        min-height:520px !important;
    }
    .pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-hero-track,
    .pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide{
        height:520px !important;
        min-height:520px !important;
    }
    .pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-dots{
        bottom:128px !important;
    }
    .pfc-quick-access{
        margin-top:-92px !important;
    }
}


/* =========================================================
   PANEL ONLY QUIENES OFERTA — NO MODIFICA PÁGINA PÚBLICA
   ========================================================= */
.cms-preview-row img{
    max-width:220px;
    max-height:130px;
    object-fit:cover;
    border-radius:12px;
    border:1px solid #dfe7f2;
}


/* Nota pública de créditos conectada al panel */
.credit_note_public{
    max-width:1200px;
    margin:14px auto 0;
    padding:0 24px;
    color:#ffffff;
    opacity:.9;
    font-weight:700;
}


/* =========================================================
   PEPE ASISTENTE VIRTUAL 3.0 — CHAT MODERNO RESPONSIVE
   ========================================================= */
.pepe-chat-widget{
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:99999;
    font-family:inherit;
}
.pepe-chat-button{
    position:relative;
    border:0;
    background:linear-gradient(135deg,#0b2d63,#061a3d);
    color:#fff;
    border-radius:999px;
    padding:8px 14px 8px 8px;
    display:flex;
    align-items:center;
    gap:8px;
    box-shadow:0 18px 45px rgba(6,26,61,.28);
    cursor:pointer;
    transition:transform .18s ease, box-shadow .18s ease;
}
.pepe-chat-button:hover{
    transform:translateY(-2px);
    box-shadow:0 24px 60px rgba(6,26,61,.34);
}
.pepe-chat-button img{
    width:62px;
    height:62px;
    object-fit:cover;
    border-radius:999px;
    background:#fff;
    border:3px solid rgba(255,255,255,.85);
}
.pepe-chat-button strong{
    font-size:.92rem;
    letter-spacing:.01em;
}
.pepe-status-dot{
    position:absolute;
    left:55px;
    bottom:9px;
    width:15px;
    height:15px;
    border-radius:999px;
    background:#22c55e;
    border:3px solid #fff;
}
.pepe-chat-window{
    position:absolute;
    right:0;
    bottom:84px;
    width:min(390px, calc(100vw - 28px));
    height:min(620px, calc(100vh - 120px));
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:24px;
    box-shadow:0 28px 90px rgba(6,26,61,.30);
    overflow:hidden;
    display:none;
    flex-direction:column;
}
.pepe-chat-widget.open .pepe-chat-window{
    display:flex;
}
.pepe-chat-header{
    background:linear-gradient(135deg,#061a3d,#0b2d63);
    color:#fff;
    padding:16px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.pepe-chat-person{
    display:flex;
    align-items:center;
    gap:12px;
}
.pepe-chat-person img{
    width:50px;
    height:50px;
    border-radius:999px;
    object-fit:cover;
    background:#fff;
    border:2px solid rgba(255,255,255,.75);
}
.pepe-chat-person strong{
    display:block;
    font-size:1.04rem;
}
.pepe-chat-person span{
    display:block;
    color:#dbeafe;
    font-size:.82rem;
}
.pepe-chat-actions{
    display:flex;
    gap:7px;
}
.pepe-chat-actions button{
    width:32px;
    height:32px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.22);
    background:rgba(255,255,255,.10);
    color:#fff;
    font-weight:900;
    cursor:pointer;
}
.pepe-chat-categories{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:6px;
    padding:10px;
    border-bottom:1px solid #e2e8f0;
    background:#f8fafc;
}
.pepe-chat-categories button{
    border:1px solid #dbe4ef;
    background:#fff;
    color:#061a3d;
    border-radius:12px;
    padding:8px 5px;
    font-size:.73rem;
    font-weight:900;
    cursor:pointer;
}
.pepe-chat-messages{
    flex:1;
    overflow-y:auto;
    padding:16px;
    background:linear-gradient(180deg,#f8fafc,#eef4fb);
    display:flex;
    flex-direction:column;
    gap:12px;
}
.pepe-msg{
    max-width:86%;
    padding:12px 14px;
    border-radius:17px;
    line-height:1.48;
    font-size:.93rem;
    box-shadow:0 8px 20px rgba(6,26,61,.06);
    white-space:pre-wrap;
}
.pepe-msg.bot{
    align-self:flex-start;
    background:#fff;
    color:#1f2937;
    border-bottom-left-radius:5px;
}
.pepe-msg.user{
    align-self:flex-end;
    background:#061a3d;
    color:#fff;
    border-bottom-right-radius:5px;
}
.pepe-msg small{
    display:block;
    margin-top:8px;
    color:#64748b;
    font-weight:800;
    font-size:.72rem;
}
.pepe-chat-suggestions{
    display:flex;
    gap:7px;
    overflow-x:auto;
    padding:10px 12px;
    border-top:1px solid #e2e8f0;
    background:#fff;
}
.pepe-chat-suggestions button{
    white-space:nowrap;
    border:1px solid #dbe4ef;
    background:#f8fafc;
    color:#061a3d;
    border-radius:999px;
    padding:7px 10px;
    font-size:.78rem;
    font-weight:850;
    cursor:pointer;
}
.pepe-chat-form{
    display:flex;
    gap:8px;
    padding:12px;
    border-top:1px solid #e2e8f0;
    background:#fff;
}
.pepe-chat-form input{
    flex:1;
    min-width:0;
    border:1px solid #cbd5e1;
    border-radius:999px;
    padding:12px 14px;
    font:inherit;
}
.pepe-chat-form button{
    border:0;
    border-radius:999px;
    background:#d71920;
    color:#fff;
    font-weight:950;
    padding:0 16px;
    cursor:pointer;
}
@media(max-width:560px){
    .pepe-chat-widget{
        right:12px;
        bottom:12px;
    }
    .pepe-chat-window{
        right:-2px;
        bottom:78px;
        width:calc(100vw - 20px);
        height:calc(100vh - 100px);
        border-radius:20px;
    }
    .pepe-chat-categories{
        grid-template-columns:repeat(2,1fr);
    }
    .pepe-chat-button strong{
        display:none;
    }
}


/* =========================================================
   PANEL PEPE FAQ
   ========================================================= */
.pepe-filter-form{
    align-items:end;
    margin-bottom:18px;
}
.pepe-admin-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-top:10px;
}
.pepe-admin-actions form{
    margin:0;
}
.admin-form-grid .wide{
    grid-column:1 / -1;
}
.cms-edit-item summary span{
    color:#d71920;
    font-size:.82rem;
    font-weight:950;
}


/* =========================================================
   PEPE 4.0 — INTERACCIÓN MEJORADA
   ========================================================= */
.pepe-chat-window{
    border-radius:28px !important;
}
.pepe-chat-header{
    min-height:82px;
}
.pepe-chat-categories button:hover,
.pepe-chat-suggestions button:hover{
    background:#061a3d;
    color:#fff;
    border-color:#061a3d;
}
.pepe-msg.bot{
    border:1px solid #e2e8f0;
}
.pepe-msg.user{
    background:linear-gradient(135deg,#061a3d,#0b2d63);
}
.pepe-typing{
    display:flex;
    gap:5px;
    align-items:center;
    width:max-content;
}
.pepe-typing i{
    width:8px;
    height:8px;
    border-radius:999px;
    background:#94a3b8;
    display:block;
    animation:pepeTyping 1s infinite ease-in-out;
}
.pepe-typing i:nth-child(2){animation-delay:.15s}
.pepe-typing i:nth-child(3){animation-delay:.3s}
@keyframes pepeTyping{
    0%,80%,100%{transform:translateY(0);opacity:.45}
    40%{transform:translateY(-5px);opacity:1}
}
.pepe-feedback-row{
    display:flex;
    gap:7px;
    flex-wrap:wrap;
    margin-top:10px;
}
.pepe-feedback-row button{
    border:1px solid #dbe4ef;
    background:#f8fafc;
    color:#061a3d;
    border-radius:999px;
    padding:6px 9px;
    font-size:.72rem;
    font-weight:900;
    cursor:pointer;
}
.pepe-feedback-row button:hover{
    background:#d71920;
    color:#fff;
    border-color:#d71920;
}
.pepe-feedback-row em{
    font-style:normal;
    color:#15803d;
    font-weight:800;
    font-size:.78rem;
}
.pepe-admin-category-board{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin:16px 0 22px;
}
.pepe-admin-category-board article{
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:16px;
    padding:16px;
    box-shadow:0 10px 28px rgba(6,26,61,.06);
}
.pepe-admin-category-board strong{
    display:block;
    color:#061a3d;
    font-size:1.8rem;
}
.pepe-admin-category-board span{
    color:#d71920;
    font-weight:950;
    font-size:.8rem;
    text-transform:uppercase;
}
.pepe-admin-category-board p{
    margin:8px 0 0;
    color:#64748b;
    line-height:1.45;
}
@media(max-width:900px){
    .pepe-admin-category-board{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:560px){
    .pepe-admin-category-board{grid-template-columns:1fr;}
}


/* =========================================================
   IDENTIDAD VISUAL CMS — LOGO Y COLORES DESDE PANEL
   ========================================================= */
body{
    background:var(--pfc-bg, #ffffff);
    color:var(--pfc-text, #071f4a);
}
.site-header,
.public-polished-header,
.identity-bar,
.utility-bar{
    background:var(--pfc-header-bg, #061a3d) !important;
}
.main-nav{
    background:var(--pfc-nav-bg, #061a3d) !important;
}
.nav-menu a,
.main-nav a,
.nav-toggle{
    color:var(--pfc-nav-text, #ffffff) !important;
}
.brand strong,
.brand span{
    color:var(--pfc-nav-text, #ffffff) !important;
}
.brand img{
    width:72px;
    height:72px;
    object-fit:contain;
    background:#fff;
    border-radius:4px;
}
.btn-red,
.pfc-red-button,
.pfc-home-slide-copy a,
.pfc-contact-form button,
.pepe-chat-form button{
    background:var(--pfc-button-bg, #d71920) !important;
    color:var(--pfc-button-text, #ffffff) !important;
}
a,
.nav-menu .active,
.pfc-home-head h2,
.page-hero h1{
    color:var(--pfc-primary, #061a3d);
}
.pfc-home-head h2:after,
.pepe-feedback-row button:hover{
    background:var(--pfc-accent, #d71920) !important;
}
.pepe-chat-header,
.pepe-chat-button{
    background:linear-gradient(135deg, var(--pfc-primary, #061a3d), var(--pfc-secondary, #0b2d63)) !important;
}


/* =========================================================
   PANEL IDENTIDAD VISUAL
   ========================================================= */
.color-pair{
    display:grid;
    grid-template-columns:56px 1fr;
    gap:10px;
    align-items:center;
}
.color-pair input[type="color"]{
    width:56px;
    height:44px;
    padding:3px;
    border:1px solid #dfe7f2;
    border-radius:10px;
    background:#fff;
}
.identidad-preview{
    border:1px solid #dfe7f2;
    border-radius:18px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 12px 30px rgba(6,26,61,.08);
}
.identidad-preview .pv-head{
    display:flex;
    align-items:center;
    gap:14px;
    padding:18px;
    background:var(--pv-nav);
    color:var(--pv-text);
}
.identidad-preview .pv-head img{
    width:64px;
    height:64px;
    object-fit:contain;
    background:#fff;
    border-radius:8px;
}
.identidad-preview .pv-head strong{
    display:block;
    font-size:1.25rem;
    color:var(--pv-text);
}
.identidad-preview .pv-head span{
    display:block;
    color:var(--pv-text);
    opacity:.9;
}
.identidad-preview .pv-nav{
    padding:12px 18px;
    background:var(--pv-primary);
    color:var(--pv-text);
    font-weight:800;
}
.identidad-preview button{
    margin:18px;
    border:0;
    border-radius:10px;
    padding:12px 18px;
    background:var(--pv-accent);
    color:#fff;
    font-weight:950;
}


/* =========================================================
   LOGO TRANSPARENTE — SIN CUADRO BLANCO
   ========================================================= */
.site-header .brand img,
.public-polished-header .brand img,
.identity-bar .brand img{
    width:var(--pfc-logo-width, 72px) !important;
    height:var(--pfc-logo-height, 72px) !important;
    object-fit:contain !important;
    background:var(--pfc-logo-bg, transparent) !important;
    border-radius:var(--pfc-logo-radius, 0px) !important;
    padding:var(--pfc-logo-padding, 0px) !important;
    box-shadow:none !important;
}


/* Vista previa de logo transparente en panel */
.cms-preview-row img{
    background-color:transparent;
}
.identidad-preview .pv-head img{
    background:var(--pfc-logo-bg, transparent) !important;
    padding:var(--pfc-logo-padding, 0px) !important;
    border-radius:var(--pfc-logo-radius, 0px) !important;
}


/* =========================================================
   RESPONSIVE GLOBAL — MULTIDISPOSITIVO SIN DEFORMARSE
   ========================================================= */
*, *::before, *::after{
    box-sizing:border-box;
}
html{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
    scroll-behavior:smooth;
}
body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
}
img, video, iframe, embed, object{
    max-width:100%;
}
img, video{
    height:auto;
}
table{
    max-width:100%;
}
.container,
.pfc-container,
.page-container,
.content-container{
    width:min(100% - 32px, 1280px);
    max-width:1280px;
    margin-left:auto;
    margin-right:auto;
}
.wide,
.admin-form-grid .wide{
    min-width:0;
}

/* Encabezado flexible */
.public-polished-header .utility-inner,
.public-polished-header .identity-inner,
.public-polished-header .nav-inner{
    min-width:0;
}
.public-polished-header .identity-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
}
.public-polished-header .brand{
    min-width:0;
    display:flex;
    align-items:center;
    gap:16px;
}
.public-polished-header .brand div{
    min-width:0;
}
.public-polished-header .brand strong,
.public-polished-header .brand span{
    overflow-wrap:anywhere;
}
.public-polished-header .nav-inner{
    position:relative;
}
.public-polished-header .nav-menu{
    min-width:0;
    flex-wrap:wrap;
}

/* Menús desplegables en escritorio sin romper ancho */
.nav-menu .mega-menu,
.nav-menu .mega-menu.compact-menu{
    max-width:min(92vw, 320px) !important;
}

/* Carrusel Home adaptable */
.pfc-home-premium .pfc-home-hero.clean-image-carousel{
    width:100% !important;
    height:clamp(420px, 58vw, 760px) !important;
    min-height:420px !important;
    max-height:760px !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-hero-track,
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide{
    height:100% !important;
    min-height:100% !important;
    max-height:none !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center;
}
.pfc-home-premium .pfc-home-dots{
    left:50%;
    transform:translateX(-50%);
}

/* Accesos rápidos: no se montan ni se salen */
.pfc-quick-access,
.pfc-home-quick-access,
.quick-access{
    width:min(100% - 32px, 1120px) !important;
    max-width:1120px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    overflow:hidden;
}
.pfc-quick-grid,
.pfc-home-quick-grid,
.quick-access-grid{
    display:grid !important;
    grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)) !important;
}
.pfc-quick-access a,
.pfc-home-quick-access a,
.quick-access a{
    min-width:0;
    overflow-wrap:anywhere;
}

/* Grillas de contenido */
.pfc-offer-grid,
.pfc-news-grid,
.pfc-events-grid,
.pfc-videos-grid,
.practice-modules-grid,
.research-grid,
.docentes-grid,
.cards-grid,
.modules-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
    gap:24px;
}
.pfc-news-layout,
.home-news-layout{
    display:grid;
    grid-template-columns:minmax(0, 1.1fr) minmax(300px, .9fr);
    gap:28px;
}
.card,
.pfc-card,
.module-card,
.news-card,
.event-card,
.video-card{
    min-width:0;
}
.card img,
.pfc-card img,
.module-card img,
.news-card img,
.event-card img,
.video-card img{
    width:100%;
    height:auto;
    object-fit:cover;
}

/* Tablas y planes de estudio */
.plan-table,
.curriculum-table,
.table-wrap,
.responsive-table{
    width:100%;
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}
.plan-table table,
.curriculum-table table,
.table-wrap table,
.responsive-table table{
    min-width:680px;
}

/* Páginas internas: texto no se sale */
.page-hero h1,
.pfc-home-hero h1,
h1, h2, h3{
    overflow-wrap:anywhere;
}
p, li, a, span{
    overflow-wrap:break-word;
}

/* Pepe responsive */
.pepe-chat-widget{
    right:clamp(10px, 2vw, 22px) !important;
    bottom:clamp(10px, 2vw, 22px) !important;
}
.pepe-chat-window{
    width:min(410px, calc(100vw - 22px)) !important;
    height:min(640px, calc(100dvh - 110px)) !important;
}

/* Panel admin responsive */
.admin-shell,
.admin-layout,
.admin-main,
.admin-content{
    max-width:100%;
    min-width:0;
}
.admin-form-grid{
    grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)) !important;
}
.admin-dashboard-grid-pro,
.admin-stats-grid,
.cms-grid{
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)) !important;
}
.cms-edit-item,
.admin-card-pro{
    max-width:100%;
    overflow:hidden;
}
.cms-doc-admin-row{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}
.cms-preview-row{
    flex-wrap:wrap;
}
.cms-preview-row img{
    max-width:100%;
}

/* Tablet */
@media (max-width: 1024px){
    .container,
    .pfc-container,
    .page-container,
    .content-container{
        width:min(100% - 28px, 100%);
    }

    .public-polished-header .identity-inner{
        align-items:flex-start;
    }
    .public-polished-header .brand strong{
        font-size:clamp(1.1rem, 2.6vw, 1.65rem) !important;
        line-height:1.15;
    }
    .public-polished-header .brand span{
        font-size:clamp(.85rem, 2vw, 1rem) !important;
    }

    .pfc-home-premium .pfc-home-hero.clean-image-carousel{
        height:clamp(380px, 62vw, 640px) !important;
    }
    .pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-dots{
        bottom:96px !important;
    }
    .pfc-quick-access{
        margin-top:-64px !important;
    }

    .pfc-news-layout,
    .home-news-layout{
        grid-template-columns:1fr;
    }
}

/* Celular: menú hamburguesa real y contenido apilado */
@media (max-width: 820px){
    .utility-bar{
        display:none !important;
    }

    .public-polished-header .identity-bar{
        padding:10px 0 !important;
    }
    .public-polished-header .identity-inner{
        flex-direction:row;
        align-items:center;
    }
    .public-polished-header .brand{
        gap:10px;
    }
    .public-polished-header .brand img{
        width:clamp(52px, 15vw, 68px) !important;
        height:clamp(52px, 15vw, 68px) !important;
        flex:0 0 auto;
    }
    .public-polished-header .brand strong{
        font-size:1.05rem !important;
        line-height:1.15 !important;
    }
    .public-polished-header .brand span{
        font-size:.78rem !important;
        line-height:1.25 !important;
    }

    .public-polished-header .nav-inner{
        min-height:52px;
        display:flex;
        justify-content:flex-end;
        align-items:center;
    }
    .nav-toggle{
        display:flex !important;
        width:44px;
        height:38px;
        align-items:center;
        justify-content:center;
        flex-direction:column;
        gap:5px;
        background:rgba(255,255,255,.10);
        border:1px solid rgba(255,255,255,.22);
        border-radius:10px;
        cursor:pointer;
        z-index:100002;
    }
    .nav-toggle span{
        width:22px;
        height:2px;
        background:var(--pfc-nav-text, #fff);
        display:block;
        border-radius:3px;
    }
    .public-polished-header .nav-menu{
        position:absolute !important;
        top:100%;
        left:16px;
        right:16px;
        display:none !important;
        flex-direction:column !important;
        align-items:stretch !important;
        background:var(--pfc-nav-bg, #061a3d) !important;
        border:1px solid rgba(255,255,255,.16);
        border-radius:16px;
        padding:12px;
        box-shadow:0 22px 60px rgba(6,26,61,.32);
        z-index:100001;
    }
    body.nav-open .public-polished-header .nav-menu,
    .public-polished-header .nav-menu.open{
        display:flex !important;
    }
    .public-polished-header .nav-menu a{
        display:flex !important;
        width:100%;
        padding:12px 14px !important;
        border-radius:10px;
        justify-content:space-between;
    }
    .nav-menu .nav-item,
    .nav-menu .has-mega{
        width:100% !important;
    }
    .nav-menu .mega-menu,
    .nav-menu .mega-menu.compact-menu{
        position:static !important;
        display:none !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        box-shadow:none !important;
        border-radius:12px !important;
        margin:6px 0 0 !important;
        transform:none !important;
    }
    .nav-menu .nav-item:hover .mega-menu,
    .nav-menu .has-mega:hover .mega-menu,
    .nav-menu .nav-item:focus-within .mega-menu,
    .nav-menu .has-mega:focus-within .mega-menu{
        display:block !important;
    }

    .pfc-home-premium .pfc-home-hero.clean-image-carousel{
        height:clamp(330px, 64vw, 520px) !important;
        min-height:330px !important;
    }
    .pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-dots{
        bottom:86px !important;
        padding:6px 9px;
    }
    .pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-dots button{
        width:10px !important;
        height:10px !important;
    }
    .pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-arrow{
        width:38px !important;
        height:38px !important;
    }
    .pfc-quick-access{
        margin-top:-54px !important;
        width:calc(100% - 20px) !important;
        border-radius:18px !important;
    }
    .pfc-quick-grid,
    .pfc-home-quick-grid,
    .quick-access-grid{
        grid-template-columns:repeat(2, minmax(0,1fr)) !important;
    }
    .pfc-quick-access a,
    .pfc-home-quick-access a,
    .quick-access a{
        padding:12px 8px !important;
        font-size:.82rem !important;
    }

    .page-hero,
    .pfc-page-hero,
    .pfc-home-section{
        padding-left:0 !important;
        padding-right:0 !important;
    }

    .pfc-offer-grid,
    .pfc-news-grid,
    .pfc-events-grid,
    .pfc-videos-grid,
    .practice-modules-grid,
    .research-grid,
    .docentes-grid,
    .cards-grid,
    .modules-grid{
        grid-template-columns:1fr !important;
    }

    .pepe-chat-button img{
        width:54px !important;
        height:54px !important;
    }
    .pepe-chat-window{
        right:-6px !important;
        bottom:72px !important;
        width:calc(100vw - 20px) !important;
        height:calc(100dvh - 96px) !important;
        border-radius:18px !important;
    }
    .pepe-chat-categories{
        grid-template-columns:repeat(2, 1fr) !important;
    }

    .admin-sidebar{
        position:static !important;
        width:100% !important;
    }
    .admin-shell,
    .admin-layout{
        display:block !important;
    }
}

/* Celular pequeño */
@media (max-width: 520px){
    .container,
    .pfc-container,
    .page-container,
    .content-container{
        width:calc(100% - 18px);
    }
    .public-polished-header .brand strong{
        font-size:.95rem !important;
    }
    .public-polished-header .brand span{
        font-size:.72rem !important;
    }
    .pfc-home-premium .pfc-home-hero.clean-image-carousel{
        height:300px !important;
        min-height:300px !important;
    }
    .pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-dots{
        bottom:74px !important;
    }
    .pfc-quick-access{
        margin-top:-42px !important;
    }
    .pfc-quick-grid,
    .pfc-home-quick-grid,
    .quick-access-grid{
        grid-template-columns:1fr 1fr !important;
    }
    h1{
        font-size:clamp(2rem, 9vw, 3.1rem) !important;
    }
    h2{
        font-size:clamp(1.45rem, 6vw, 2.1rem) !important;
    }
    .admin-form-grid{
        grid-template-columns:1fr !important;
    }
}

/* Impide deformación de imágenes en secciones de evidencia */
.gallery img,
.evidence-gallery img,
.infografia-card img,
.practice-evidence img{
    width:100%;
    height:auto;
    object-fit:contain;
}


/* =========================================================
   FIX MENÚ DESPLEGABLE — LETRAS VISIBLES Y COLORES EDITABLES
   ========================================================= */
.public-polished-header .nav-menu .mega-menu,
.public-polished-header .nav-menu .mega-menu.compact-menu,
.public-polished-header .nav-menu .dropdown-menu,
.public-polished-header .nav-menu .submenu,
.nav-menu .mega-menu,
.nav-menu .mega-menu.compact-menu,
.nav-menu .dropdown-menu,
.nav-menu .submenu{
    background:var(--pfc-dropdown-bg, #ffffff) !important;
    color:var(--pfc-dropdown-text, #061a3d) !important;
    border:1px solid var(--pfc-dropdown-border, #dfe7f2) !important;
    opacity:1 !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
}

.public-polished-header .nav-menu .mega-menu *,
.public-polished-header .nav-menu .mega-menu.compact-menu *,
.public-polished-header .nav-menu .dropdown-menu *,
.public-polished-header .nav-menu .submenu *,
.nav-menu .mega-menu *,
.nav-menu .mega-menu.compact-menu *,
.nav-menu .dropdown-menu *,
.nav-menu .submenu *{
    color:var(--pfc-dropdown-text, #061a3d) !important;
    opacity:1 !important;
    text-shadow:none !important;
}

.public-polished-header .nav-menu .mega-menu a,
.public-polished-header .nav-menu .mega-menu.compact-menu a,
.public-polished-header .nav-menu .dropdown-menu a,
.public-polished-header .nav-menu .submenu a,
.nav-menu .mega-menu a,
.nav-menu .mega-menu.compact-menu a,
.nav-menu .dropdown-menu a,
.nav-menu .submenu a{
    background:var(--pfc-dropdown-bg, #ffffff) !important;
    color:var(--pfc-dropdown-text, #061a3d) !important;
    font-weight:850 !important;
    border-bottom:1px solid rgba(6,26,61,.08) !important;
}

.public-polished-header .nav-menu .mega-menu a:hover,
.public-polished-header .nav-menu .mega-menu.compact-menu a:hover,
.public-polished-header .nav-menu .dropdown-menu a:hover,
.public-polished-header .nav-menu .submenu a:hover,
.nav-menu .mega-menu a:hover,
.nav-menu .mega-menu.compact-menu a:hover,
.nav-menu .dropdown-menu a:hover,
.nav-menu .submenu a:hover{
    background:var(--pfc-dropdown-hover-bg, #eef4fb) !important;
    color:var(--pfc-dropdown-hover-text, #d71920) !important;
}

/* En móvil, el desplegable usa contraste dentro del menú hamburguesa */
@media (max-width: 820px){
    .public-polished-header .nav-menu .mega-menu,
    .public-polished-header .nav-menu .mega-menu.compact-menu,
    .public-polished-header .nav-menu .dropdown-menu,
    .public-polished-header .nav-menu .submenu,
    .nav-menu .mega-menu,
    .nav-menu .mega-menu.compact-menu,
    .nav-menu .dropdown-menu,
    .nav-menu .submenu{
        background:rgba(255,255,255,.08) !important;
        border:1px solid rgba(255,255,255,.16) !important;
    }

    .public-polished-header .nav-menu .mega-menu a,
    .public-polished-header .nav-menu .mega-menu.compact-menu a,
    .public-polished-header .nav-menu .dropdown-menu a,
    .public-polished-header .nav-menu .submenu a,
    .nav-menu .mega-menu a,
    .nav-menu .mega-menu.compact-menu a,
    .nav-menu .dropdown-menu a,
    .nav-menu .submenu a{
        background:transparent !important;
        color:var(--pfc-nav-text, #ffffff) !important;
        border-bottom:1px solid rgba(255,255,255,.10) !important;
    }

    .public-polished-header .nav-menu .mega-menu a:hover,
    .public-polished-header .nav-menu .mega-menu.compact-menu a:hover,
    .public-polished-header .nav-menu .dropdown-menu a:hover,
    .public-polished-header .nav-menu .submenu a:hover,
    .nav-menu .mega-menu a:hover,
    .nav-menu .mega-menu.compact-menu a:hover,
    .nav-menu .dropdown-menu a:hover,
    .nav-menu .submenu a:hover{
        background:rgba(255,255,255,.14) !important;
        color:var(--pfc-nav-text, #ffffff) !important;
    }
}


/* Vista previa del menú desplegable en Identidad visual */
.identidad-preview .pv-dropdown-demo{
    width:min(260px, 92%);
    margin:12px 18px 0;
    border:1px solid #dfe7f2;
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 10px 24px rgba(6,26,61,.08);
}
.identidad-preview .pv-dropdown-demo span{
    display:block;
    padding:10px 14px;
    font-weight:850;
    border-bottom:1px solid rgba(6,26,61,.08);
}
.identidad-preview .pv-dropdown-demo span:last-child{
    border-bottom:0;
}


/* =========================================================
   AJUSTE PUNTUAL — REVISTA EN INVESTIGACIÓN + REPOSITORIO EN PROYECTOS
   No cambia la estructura visual base de Investigación
   ========================================================= */
.research-revista-access{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin:0 0 24px;
    padding:18px 20px;
    border-radius:18px;
    background:linear-gradient(135deg, var(--pfc-primary, #061a3d), var(--pfc-secondary, #0b2d63));
    color:#fff;
    box-shadow:0 14px 38px rgba(6,26,61,.12);
}
.research-revista-access > div{
    display:flex;
    align-items:center;
    gap:14px;
    min-width:0;
}
.research-revista-access span{
    width:54px;
    height:54px;
    border-radius:16px;
    background:rgba(255,255,255,.14);
    display:grid;
    place-items:center;
    font-size:1.8rem;
    flex:0 0 auto;
}
.research-revista-access strong{
    color:#fff;
    font-size:1.18rem;
    display:block;
}
.research-revista-access p{
    margin:3px 0 0;
    color:#e7eefc;
}
.research-revista-access a{
    background:var(--pfc-accent, #d71920);
    color:#fff !important;
    text-decoration:none;
    border-radius:12px;
    padding:11px 16px;
    font-weight:950;
    white-space:nowrap;
}

.research-project-repository{
    margin-top:34px;
    padding:24px;
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:22px;
    box-shadow:0 16px 42px rgba(6,26,61,.08);
}
.project-repo-tools{
    display:grid;
    grid-template-columns:minmax(220px, 1fr) 240px;
    gap:12px;
    margin:18px 0;
}
.project-repo-tools input,
.project-repo-tools select{
    width:100%;
    height:44px;
    border:1px solid #d7e1ef;
    border-radius:12px;
    padding:0 12px;
    background:#fff;
    color:#061a3d;
    font:inherit;
}
.project-repo-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
    gap:16px;
}
.project-repo-grid article{
    display:grid;
    grid-template-columns:72px minmax(0,1fr);
    gap:14px;
    padding:16px;
    border:1px solid #e3ebf5;
    border-radius:18px;
    background:#f8fbff;
}
.repo-project-icon{
    width:72px;
    height:72px;
    border-radius:16px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    background:#fff;
    border:1px solid #dfe7f2;
    font-size:1.65rem;
}
.repo-project-icon small{
    margin-top:3px;
    color:var(--pfc-accent, #d71920);
    font-weight:950;
    font-size:.66rem;
}
.project-repo-grid span{
    color:var(--pfc-accent, #d71920);
    font-weight:950;
    text-transform:uppercase;
    font-size:.74rem;
}
.project-repo-grid h3{
    margin:5px 0 7px;
    color:#061a3d;
    font-size:1rem;
    line-height:1.35;
}
.project-repo-grid p{
    margin:0 0 8px;
    color:#475569;
    line-height:1.45;
}
.repo-project-meta{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin:8px 0;
}
.repo-project-meta em{
    font-style:normal;
    background:#eef4fb;
    color:#334155;
    border-radius:999px;
    padding:4px 8px;
    font-size:.72rem;
    font-weight:800;
}
.project-repo-grid a{
    display:inline-flex;
    min-height:36px;
    align-items:center;
    justify-content:center;
    padding:0 12px;
    border-radius:10px;
    background:var(--pfc-primary, #061a3d);
    color:#fff !important;
    text-decoration:none;
    font-weight:900;
}
.repo-empty{
    margin-top:14px;
    padding:20px;
    border:1px dashed #cbd5e1;
    border-radius:16px;
    text-align:center;
    color:#475569;
}
@media(max-width: 820px){
    .research-revista-access{
        flex-direction:column;
        align-items:flex-start;
    }
    .research-revista-access a{
        width:100%;
        text-align:center;
    }
    .project-repo-tools{
        grid-template-columns:1fr;
    }
    .project-repo-grid{
        grid-template-columns:1fr;
    }
}
@media(max-width: 520px){
    .project-repo-grid article{
        grid-template-columns:1fr;
    }
    .repo-project-icon{
        width:100%;
    }
}




/* =========================================================
   REPARACIÓN PANEL ADMIN — FORMULARIOS Y PESTAÑAS FUNCIONALES
   ========================================================= */
.admin-main-pro{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
}
.admin-topbar-pro,
.admin-card-pro,
.cms-editor-tabs{
    max-width:100%;
}
.admin-form-grid{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(260px, 1fr)) !important;
    gap:18px !important;
}
.admin-form-grid label{
    display:flex !important;
    flex-direction:column !important;
    gap:8px !important;
    color:#061a3d !important;
    font-weight:950 !important;
}
.admin-form-grid input:not([type="checkbox"]):not([type="color"]),
.admin-form-grid select,
.admin-form-grid textarea{
    width:100% !important;
    min-height:46px !important;
    border:1px solid #cfdbea !important;
    border-radius:12px !important;
    padding:11px 13px !important;
    background:#fff !important;
    color:#071f4a !important;
    font:inherit !important;
    box-shadow:inset 0 1px 2px rgba(6,26,61,.04) !important;
}
.admin-form-grid textarea{
    min-height:120px !important;
    resize:vertical !important;
}
.admin-form-grid input[type="file"]{
    padding:9px !important;
}
.admin-form-grid .wide{
    grid-column:1 / -1 !important;
}
.admin-check-row{
    grid-column:1 / -1 !important;
    flex-direction:row !important;
    align-items:center !important;
}
.admin-check-row input[type="checkbox"]{
    width:20px !important;
    height:20px !important;
}
.cms-editor-tabs{
    position:sticky;
    top:0;
    z-index:50;
}
.cms-editor-tabs button{
    cursor:pointer !important;
}
.cms-tab-panel{
    display:none !important;
}
.cms-tab-panel.active{
    display:block !important;
}
.cms-add-box,
.cms-edit-item{
    background:#fff !important;
}
.cms-edit-item form + form{
    margin-top:10px;
}
.btn,
.btn-red,
.btn-ghost,
.admin-form-grid button{
    cursor:pointer !important;
}
.btn-red,
.admin-form-grid .btn-red,
button.btn-red{
    background:#d71920 !important;
    color:#fff !important;
    border:0 !important;
    border-radius:12px !important;
    min-height:46px !important;
    padding:0 18px !important;
    font-weight:950 !important;
}
.btn-ghost,
button.btn-ghost,
a.btn-ghost{
    background:#fff !important;
    color:#061a3d !important;
    border:1px solid #cfdbea !important;
    border-radius:12px !important;
    min-height:42px !important;
    padding:10px 16px !important;
    font-weight:950 !important;
    text-decoration:none !important;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}
.alert.success{
    background:#ecfdf5 !important;
    color:#047857 !important;
    border:1px solid #a7f3d0 !important;
    padding:14px 16px !important;
    border-radius:14px !important;
    font-weight:900 !important;
}
.alert.error{
    background:#fff1f2 !important;
    color:#be123c !important;
    border:1px solid #fecdd3 !important;
    padding:14px 16px !important;
    border-radius:14px !important;
    font-weight:900 !important;
}
@media(max-width:820px){
    .admin-form-grid{
        grid-template-columns:1fr !important;
    }
}


/* Proyectos funcionales, no tarjetas muertas */
.research-projects-functional article{
    display:flex;
    flex-direction:column;
    gap:10px;
}
.research-projects-functional article > p{
    min-height:72px;
    line-height:1.55;
}
.project-card-meta{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}
.project-card-meta em{
    font-style:normal;
    background:#eef4fb;
    color:#334155;
    border-radius:999px;
    padding:5px 9px;
    font-weight:800;
    font-size:.76rem;
}
.project-card-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:auto;
}
.project-card-actions button{
    border:0;
    border-radius:10px;
    min-height:38px;
    padding:0 12px;
    font-weight:950;
    background:var(--pfc-primary, #061a3d);
    color:#fff;
    cursor:pointer;
}
.project-card-actions button:last-child{
    background:var(--pfc-accent, #d71920);
}
.research-project-modal[hidden]{display:none !important;}
.research-project-modal{
    position:fixed;
    inset:0;
    background:rgba(6,26,61,.55);
    z-index:999999;
    display:grid;
    place-items:center;
    padding:20px;
}
.research-project-modal-box{
    width:min(720px, 100%);
    max-height:85vh;
    overflow:auto;
    background:#fff;
    border-radius:22px;
    padding:28px;
    box-shadow:0 28px 90px rgba(6,26,61,.35);
    position:relative;
}
.research-project-modal-box > button{
    position:absolute;
    top:12px;
    right:12px;
    width:38px;
    height:38px;
    border:0;
    border-radius:999px;
    background:#f1f5f9;
    color:#061a3d;
    font-weight:950;
    cursor:pointer;
}
@media(max-width:820px){
    .project-card-actions{
        flex-direction:column;
    }
    .project-card-actions button{
        width:100%;
    }
}


/* =========================================================
   FIX PROYECTOS/REPOSITORIO/REVISTA — LOGOS Y ARCHIVOS
   ========================================================= */
.research-projects .project-logo{
    width:56px !important;
    height:56px !important;
    border-radius:16px !important;
    padding:8px !important;
    background:#f1f5fb !important;
    display:grid !important;
    place-items:center !important;
}
.research-projects .project-logo img{
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
}
.project-detail-logo{
    width:96px;
    height:96px;
    object-fit:contain;
    border-radius:18px;
    background:#f1f5fb;
    padding:10px;
    border:1px solid #dfe7f2;
}
.admin-form-grid input[type="url"],
.admin-form-grid input[type="number"],
.admin-form-grid input[type="date"],
.admin-form-grid input[type="file"],
.admin-form-grid select{
    width:100% !important;
    min-height:46px !important;
    border:1px solid #cfdbea !important;
    border-radius:12px !important;
    padding:10px 13px !important;
    background:#fff !important;
    color:#071f4a !important;
    font:inherit !important;
}
.cms-preview-row img{
    max-width:110px !important;
    max-height:110px !important;
    object-fit:contain !important;
    background:#f8fafc !important;
    border:1px solid #dfe7f2 !important;
    border-radius:14px !important;
    padding:8px !important;
}


/* =========================================================
   DOCUMENTOS DIRECTOS POR PROYECTO + LOGO DE PROYECTO
   ========================================================= */
.project-doc-admin-box{
    margin-top:18px;
    padding:18px;
    border:1px solid #dfe7f2;
    border-radius:18px;
    background:#f8fbff;
}
.project-doc-admin-box h3{
    margin:0 0 12px;
    color:#061a3d;
}
.project-doc-mini-form{
    margin-bottom:14px;
}
.project-doc-list-admin{
    display:flex;
    flex-direction:column;
    gap:10px;
}
.project-doc-list-admin > div{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto auto;
    gap:10px;
    align-items:center;
    padding:12px;
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:14px;
}
.project-doc-list-admin strong{
    color:#061a3d;
}
.project-doc-list-admin span{
    color:#64748b;
    font-weight:800;
}
.admin-muted{
    color:#64748b;
    font-weight:800;
}
.research-projects .project-logo{
    width:56px !important;
    height:56px !important;
    border-radius:16px !important;
    padding:8px !important;
    background:#f1f5fb !important;
    display:grid !important;
    place-items:center !important;
}
.research-projects .project-logo img{
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
}
.project-detail-logo{
    width:96px;
    height:96px;
    object-fit:contain;
    border-radius:18px;
    background:#f1f5fb;
    padding:10px;
    border:1px solid #dfe7f2;
}
.admin-form-grid input[type="file"],
.admin-form-grid input[type="text"],
.admin-form-grid input[type="date"],
.admin-form-grid select{
    min-height:46px !important;
}
@media(max-width:820px){
    .project-doc-list-admin > div{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   FIX DEFINITIVO PANEL REPOSITORIO Y REVISTA
   ========================================================= */
.repo-admin-direct-box{
    padding:18px;
    border:1px solid #dfe7f2;
    border-radius:18px;
    background:#f8fbff;
    margin:16px 0;
}
.repo-admin-direct-box h3{
    margin:0 0 8px;
    color:#061a3d;
}
.repo-admin-direct-box p{
    margin:0 0 16px;
    color:#475569;
    font-weight:700;
}
.repo-admin-list{
    display:flex;
    flex-direction:column;
    gap:12px;
}
.repo-doc-item summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.repo-doc-item summary span{
    color:#64748b;
    font-size:.86rem;
}
.delete-inline-form{
    margin-top:12px;
}
.repo-config-form{
    margin-bottom:14px;
}
.admin-form-grid input[type="file"],
.admin-form-grid input[type="text"],
.admin-form-grid input[type="date"],
.admin-form-grid select,
.admin-form-grid textarea{
    width:100% !important;
    min-height:46px !important;
    border:1px solid #cfdbea !important;
    border-radius:12px !important;
    padding:10px 13px !important;
    background:#fff !important;
    color:#071f4a !important;
    font:inherit !important;
}
@media(max-width:820px){
    .repo-doc-item summary{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* =========================================================
   INVESTIGACIÓN PFC — BIBLIOTECA ESTABLE DE PROYECTOS Y REVISTAS
   ========================================================= */
.inv-stable-panel{
    min-height:unset !important;
    margin-bottom:18px;
}
.inv-stable-panel .admin-form-grid,
.admin-form-grid{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(260px, 1fr)) !important;
    gap:16px !important;
}
.inv-stable-panel label,
.admin-form-grid label{
    display:flex !important;
    flex-direction:column !important;
    gap:7px !important;
    font-weight:900 !important;
}
.inv-stable-panel input:not([type="checkbox"]),
.inv-stable-panel select,
.inv-stable-panel textarea,
.admin-form-grid input:not([type="checkbox"]),
.admin-form-grid select,
.admin-form-grid textarea{
    width:100% !important;
    min-height:46px !important;
    border:1px solid #cfdbea !important;
    border-radius:12px !important;
    padding:10px 13px !important;
    background:#fff !important;
    color:#071f4a !important;
    font:inherit !important;
}
.inv-stable-panel textarea{
    resize:vertical;
}
.inv-stable-panel .wide,
.admin-form-grid .wide{
    grid-column:1 / -1 !important;
}
.inv-admin-library-list{
    display:flex;
    flex-direction:column;
    gap:12px;
}
.inv-file-preview,
.inv-cover-preview{
    padding:12px;
    border:1px solid #dfe7f2;
    border-radius:14px;
    background:#f8fbff;
}
.inv-cover-preview img{
    max-width:120px;
    max-height:120px;
    object-fit:contain;
    border-radius:12px;
    background:#fff;
    border:1px solid #dfe7f2;
    padding:8px;
}
.inv-delete-form{
    margin-top:10px;
}

/* Vista pública */
.inv-library-tools{
    display:grid;
    grid-template-columns:minmax(220px, 1fr) 220px;
    gap:12px;
    margin:0 0 22px;
}
.inv-library-tools input,
.inv-library-tools select{
    width:100%;
    min-height:46px;
    border:1px solid #d7e1ef;
    border-radius:12px;
    padding:0 13px;
    background:#fff;
    color:#061a3d;
    font:inherit;
}
.inv-library-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
    gap:18px;
}
.inv-library-grid article{
    display:flex;
    flex-direction:column;
    overflow:hidden;
    border:1px solid #dfe7f2;
    border-radius:20px;
    background:#fff;
    box-shadow:0 14px 36px rgba(6,26,61,.08);
}
.inv-library-cover{
    height:150px;
    background:linear-gradient(135deg,#f8fbff,#eef4fb);
    display:grid;
    place-items:center;
    border-bottom:1px solid #dfe7f2;
}
.inv-library-cover img{
    width:100%;
    height:100%;
    object-fit:contain;
    padding:14px;
}
.inv-library-cover span{
    font-size:2.5rem;
}
.inv-library-body{
    padding:18px;
    display:flex;
    flex-direction:column;
    gap:10px;
    flex:1;
}
.inv-library-body > span{
    color:var(--pfc-accent, #d71920);
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.04em;
    font-size:.75rem;
}
.inv-library-body h3{
    margin:0;
    color:#061a3d;
    font-size:1.05rem;
    line-height:1.35;
}
.inv-library-body p{
    margin:0;
    color:#475569;
    line-height:1.55;
}
.inv-library-meta{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:auto;
}
.inv-library-meta em{
    font-style:normal;
    background:#f1f5f9;
    color:#334155;
    border-radius:999px;
    padding:5px 9px;
    font-weight:800;
    font-size:.75rem;
}
.inv-library-body a{
    min-height:40px;
    border-radius:12px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 14px;
    background:var(--pfc-primary, #061a3d);
    color:#fff !important;
    text-decoration:none;
    font-weight:950;
}
@media(max-width:820px){
    .inv-stable-panel .admin-form-grid,
    .admin-form-grid,
    .inv-library-tools{
        grid-template-columns:1fr !important;
    }
}


/* =========================================================
   FIX VISIBILIDAD REAL BIBLIOTECA INVESTIGACIÓN
   ========================================================= */
.inv-library-count{
    display:inline-flex;
    gap:8px;
    align-items:center;
    margin-top:10px;
    padding:8px 12px;
    border-radius:999px;
    background:#eef4fb;
    color:#061a3d;
    font-weight:800;
}
.inv-library-count strong{
    color:var(--pfc-accent,#d71920);
}
#panel-biblioteca.active{
    display:block !important;
}
.inv-library-body a{
    margin-top:8px;
}


/* Alias visual para evitar conflicto con biblioteca general */
.anchor-offset{position:relative; top:-110px; display:block; height:0; visibility:hidden;}

/* =========================================================
   INVESTIGACIÓN PFC — DISEÑO UNIFICADO LIMPIO
   ========================================================= */
.investigacion-v2{
    background:#f7f9fd;
    color:#07172f;
}
.inv-v2-hero{
    background:linear-gradient(90deg,#ffffff 0%,#ffffff 48%,#edf3fb 100%);
    border-bottom:1px solid #e7edf6;
    overflow:hidden;
}
.inv-v2-hero-grid{
    min-height:285px;
    display:grid;
    grid-template-columns:1fr 1.08fr;
    gap:28px;
    align-items:center;
}
.inv-v2-breadcrumb{
    font-size:.88rem;
    color:#60708a;
    margin-bottom:18px;
}
.inv-v2-breadcrumb span{
    margin:0 8px;
    color:#a8b3c4;
}
.inv-v2-hero h1{
    font-size:clamp(2.4rem,5vw,4.2rem);
    line-height:.98;
    color:#071f4a;
    margin:0 0 18px;
    font-weight:950;
    letter-spacing:-.05em;
}
.inv-v2-hero p{
    max-width:600px;
    color:#33445f;
    font-size:1.08rem;
    line-height:1.75;
    margin:0 0 22px;
}
.inv-v2-primary-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:0 18px;
    border-radius:8px;
    background:#071f4a;
    color:#fff !important;
    font-weight:900;
    text-decoration:none;
    box-shadow:0 12px 24px rgba(7,31,74,.16);
}
.inv-v2-hero-art{
    height:285px;
    position:relative;
}
.inv-v2-hero-art:after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,#f7f9fd 0%,rgba(247,249,253,.45) 16%,rgba(247,249,253,.02) 48%);
}
.inv-v2-hero-art img{
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:0 0 0 38px;
    filter:saturate(1.05) contrast(1.02);
}
.inv-v2-tabs{
    margin-top:-26px;
    position:relative;
    z-index:5;
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:15px;
    display:flex;
    justify-content:space-between;
    box-shadow:0 12px 32px rgba(7,23,47,.08);
    overflow:hidden;
}
.inv-v2-tabs a{
    flex:1;
    min-height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    text-decoration:none;
    color:#071f4a;
    font-weight:900;
    font-size:.88rem;
    border-right:1px solid #e8eef6;
    transition:.2s ease;
}
.inv-v2-tabs a:last-child{border-right:0}
.inv-v2-tabs a span{font-size:1.12rem}
.inv-v2-tabs a:hover,
.inv-v2-tabs a.active{
    background:#071f4a;
    color:#fff;
}
.inv-v2-stats{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
    margin-top:28px;
}
.inv-v2-stats article{
    background:#fff;
    border:1px solid #e4ebf5;
    border-bottom:5px solid #d71920;
    border-radius:15px;
    padding:22px;
    box-shadow:0 12px 28px rgba(7,23,47,.06);
}
.inv-v2-stats strong{
    color:#071f4a;
    font-size:2.3rem;
    display:block;
    line-height:1;
    font-weight:950;
}
.inv-v2-stats span{
    display:block;
    color:#162a4a;
    font-weight:900;
    margin-top:4px;
}
.inv-v2-stats small{
    display:block;
    margin-top:6px;
    color:#62718a;
    font-weight:700;
}
.inv-v2-feature-grid{
    display:grid;
    grid-template-columns:1.35fr .8fr .8fr;
    gap:18px;
    margin-top:22px;
}
.inv-v2-feature,
.inv-v2-group-card,
.inv-v2-line-card,
.inv-v2-list-panel article,
.inv-v2-project-grid article,
.inv-v2-docs article,
.inv-v2-calls article{
    background:#fff;
    border:1px solid #e3eaf4;
    border-radius:16px;
    box-shadow:0 10px 26px rgba(7,23,47,.055);
}
.inv-v2-feature{
    padding:24px;
}
.inv-v2-feature h2,
.inv-v2-feature h3{
    color:#071f4a;
    margin:10px 0;
}
.inv-v2-feature p{
    color:#3d4f6a;
    line-height:1.7;
}
.inv-v2-icon,
.inv-v2-card-icon{
    width:58px;
    height:58px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#eaf2ff;
    color:#071f4a;
    font-size:1.45rem;
    flex:0 0 auto;
}
.inv-v2-icon.red,
.inv-v2-card-icon.red{background:#fff0f1;color:#d71920}
.inv-v2-icon.green{background:#edfbe9;color:#2f8f2f}
.inv-v2-tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:14px;
}
.inv-v2-tags span{
    padding:6px 9px;
    border-radius:999px;
    background:#f0f5fb;
    color:#163153;
    font-weight:800;
    font-size:.78rem;
}
.inv-v2-link{
    display:inline-flex;
    margin-top:14px;
    color:#d71920 !important;
    text-decoration:none;
    font-weight:950;
}
.inv-v2-section{
    padding:44px 0;
    scroll-margin-top:120px;
}
.inv-v2-section-head{
    margin-bottom:18px;
}
.inv-v2-section-head span{
    color:#d71920;
    font-weight:950;
    text-transform:uppercase;
    font-size:.78rem;
    letter-spacing:.08em;
}
.inv-v2-section-head h2{
    margin:5px 0 8px;
    font-size:2rem;
    color:#071f4a;
    letter-spacing:-.035em;
}
.inv-v2-section-head p{
    color:#5b6b82;
    max-width:760px;
    line-height:1.65;
}
.inv-v2-groups-layout{
    display:grid;
    grid-template-columns:300px 1fr;
    gap:28px;
}
.inv-v2-filter{
    background:#fff;
    border:1px solid #e3eaf4;
    border-radius:18px;
    padding:22px;
    box-shadow:0 10px 26px rgba(7,23,47,.05);
    position:sticky;
    top:100px;
    align-self:start;
}
.inv-v2-filter h3{
    color:#071f4a;
    margin:0 0 14px;
}
.inv-v2-filter label{
    display:grid;
    gap:7px;
    font-weight:900;
    color:#142742;
}
.inv-v2-filter input{
    width:100%;
    min-height:42px;
    border:1px solid #d9e3f0;
    border-radius:10px;
    padding:0 12px;
}
.inv-v2-filter strong{
    display:block;
    margin:20px 0 10px;
    color:#071f4a;
}
.inv-v2-filter-tags{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
}
.inv-v2-filter-tags button{
    border:1px solid #dbe4ef;
    border-radius:9px;
    background:#fff;
    color:#071f4a;
    min-height:36px;
    padding:0 14px;
    font-weight:900;
    cursor:pointer;
}
.inv-v2-filter-tags button.active,
.inv-v2-filter-tags button:hover{
    background:#071f4a;
    color:#fff;
}
.inv-v2-mini-stats{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    margin:22px 0;
}
.inv-v2-mini-stats article{
    border:1px solid #e3eaf4;
    border-radius:12px;
    padding:12px 8px;
    text-align:center;
}
.inv-v2-mini-stats strong{
    display:block;
    color:#071f4a;
    font-size:1.35rem;
}
.inv-v2-mini-stats span{
    font-size:.75rem;
    color:#5d6d83;
    font-weight:800;
}
.inv-v2-help-card{
    border-radius:16px;
    background:linear-gradient(135deg,#fff5f5,#f3f7ff);
    padding:18px;
}
.inv-v2-help-card strong{color:#071f4a}
.inv-v2-help-card p{color:#53657d;line-height:1.55}
.inv-v2-help-card a{color:#071f4a;font-weight:950;text-decoration:none}
.inv-v2-group-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.inv-v2-group-card{
    display:grid;
    grid-template-columns:72px 1fr auto;
    gap:16px;
    align-items:center;
    padding:20px;
}
.inv-v2-group-card h3{
    color:#071f4a;
    margin:0 0 7px;
}
.inv-v2-group-card p{
    color:#46576f;
    line-height:1.55;
    margin:0 0 10px;
}
.inv-v2-group-card dl{
    display:grid;
    gap:4px;
    margin:0;
}
.inv-v2-group-card dl div{
    display:flex;
    gap:8px;
}
.inv-v2-group-card dt{
    color:#071f4a;
    font-weight:950;
}
.inv-v2-group-card dd{
    margin:0;
    color:#45566d;
}
.inv-v2-group-card>a{
    align-self:center;
    color:#071f4a;
    font-weight:950;
    border:1px solid #071f4a;
    border-radius:8px;
    padding:8px 12px;
    text-decoration:none;
    white-space:nowrap;
}
.inv-v2-next-row{
    margin-top:18px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
}
.inv-v2-next-row a{
    background:#fff;
    border:1px solid #e4ebf5;
    border-radius:14px;
    padding:18px;
    color:#071f4a;
    font-weight:950;
    text-decoration:none;
}
.inv-v2-lines-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
}
.inv-v2-line-card{
    padding:20px;
}
.inv-v2-line-card h3{
    color:#071f4a;
    margin:12px 0 8px;
}
.inv-v2-line-card p{
    color:#52647b;
    line-height:1.62;
}
.inv-v2-line-card small{
    display:block;
    color:#394b63;
    margin-top:8px;
}
.inv-v2-list-panel{
    display:grid;
    gap:12px;
}
.inv-v2-list-panel article,
.inv-v2-calls article{
    display:grid;
    grid-template-columns:45px 1fr auto;
    gap:14px;
    align-items:center;
    padding:17px 18px;
}
.inv-v2-list-panel span,
.inv-v2-calls span{
    width:42px;
    height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    background:#eef5ff;
}
.inv-v2-list-panel h3,
.inv-v2-calls h3{
    color:#071f4a;
    margin:0 0 4px;
}
.inv-v2-list-panel p,
.inv-v2-calls p{
    margin:0;
    color:#5d6d83;
}
.inv-v2-list-panel strong,
.inv-v2-calls strong{
    padding:6px 10px;
    border-radius:999px;
    background:#ebf8ed;
    color:#1a7b38;
    font-weight:950;
}
.inv-v2-project-grid,
.inv-v2-infographic-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
}
.inv-v2-project-grid article,
.inv-v2-infographic-grid article{
    overflow:hidden;
}
.inv-v2-project-grid img,
.inv-v2-infographic-grid img{
    width:100%;
    height:150px;
    object-fit:cover;
}
.inv-v2-project-grid div,
.inv-v2-infographic-grid article{
    padding-bottom:14px;
}
.inv-v2-project-grid article div{
    padding:15px;
}
.inv-v2-project-grid h3,
.inv-v2-infographic-grid h3{
    color:#071f4a;
    margin:0 0 8px;
}
.inv-v2-project-grid p,
.inv-v2-infographic-grid p{
    color:#5a6a81;
    margin:0 0 8px;
}
.inv-v2-project-grid span{
    color:#d71920;
    font-weight:950;
}
.inv-v2-infographic-grid h3,
.inv-v2-infographic-grid p{
    padding:0 14px;
}
.inv-v2-production{
    display:grid;
    grid-template-columns:220px 1fr;
    gap:18px;
}
.inv-v2-production aside{
    background:#fff;
    border:1px solid #e4ebf5;
    border-radius:14px;
    padding:12px;
    display:grid;
    gap:8px;
    align-self:start;
}
.inv-v2-production button{
    border:0;
    background:#f5f7fb;
    text-align:left;
    padding:12px;
    border-radius:9px;
    font-weight:900;
    color:#071f4a;
}
.inv-v2-production button.active{background:#071f4a;color:#fff}
.inv-v2-production>div{
    display:grid;
    gap:10px;
}
.inv-v2-production article{
    background:#fff;
    border:1px solid #e4ebf5;
    border-radius:12px;
    padding:14px 16px;
    display:grid;
    grid-template-columns:1fr 110px 70px;
    align-items:center;
    gap:12px;
}
.inv-v2-production strong{color:#071f4a}
.inv-v2-production span{
    color:#d71920;
    font-weight:950;
}
.inv-v2-docs{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:12px;
}
.inv-v2-docs article{
    display:grid;
    grid-template-columns:42px 1fr auto;
    gap:12px;
    align-items:center;
    padding:14px 16px;
}
.inv-v2-docs span{
    width:38px;
    height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:#fff2f2;
}
.inv-v2-docs h3{
    color:#071f4a;
    margin:0 0 3px;
    font-size:.98rem;
}
.inv-v2-docs p{
    color:#687891;
    margin:0;
    font-size:.86rem;
}
.inv-v2-docs a{
    color:#071f4a;
    border:1px solid #dbe4ef;
    border-radius:8px;
    padding:8px 10px;
    text-decoration:none;
    font-weight:950;
}
.inv-v2-calls{
    display:grid;
    gap:12px;
}
.inv-v2-calls strong.externa{
    background:#e7f4ff;
    color:#075985;
}
@media(max-width:1100px){
    .inv-v2-hero-grid,
    .inv-v2-groups-layout,
    .inv-v2-feature-grid{
        grid-template-columns:1fr;
    }
    .inv-v2-tabs{
        overflow:auto;
        justify-content:flex-start;
    }
    .inv-v2-tabs a{
        min-width:190px;
        flex:0 0 auto;
    }
    .inv-v2-filter{
        position:static;
    }
    .inv-v2-stats,
    .inv-v2-lines-grid,
    .inv-v2-project-grid,
    .inv-v2-infographic-grid{
        grid-template-columns:repeat(2,1fr);
    }
}
@media(max-width:700px){
    .inv-v2-hero-grid{
        min-height:auto;
    }
    .inv-v2-hero-art{
        height:220px;
    }
    .inv-v2-stats,
    .inv-v2-group-list,
    .inv-v2-lines-grid,
    .inv-v2-project-grid,
    .inv-v2-infographic-grid,
    .inv-v2-next-row,
    .inv-v2-docs,
    .inv-v2-production{
        grid-template-columns:1fr;
    }
    .inv-v2-group-card,
    .inv-v2-docs article,
    .inv-v2-list-panel article,
    .inv-v2-calls article,
    .inv-v2-production article{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   CORRECCIÓN FINAL INVESTIGACIÓN — LIMPIA, COHERENTE, SIN PRÁCTICAS
   ========================================================= */
.investigacion-clean{
    background:#f4f7fc !important;
    color:#071f4a !important;
}
.inv-clean-hero{
    background:
        radial-gradient(circle at 92% 18%, rgba(215,25,32,.10), transparent 28%),
        linear-gradient(90deg,#fff 0%,#fff 58%,#edf3fb 100%);
    border-bottom:1px solid #e4ebf5;
}
.inv-clean-hero .container{
    padding-top:24px;
}
.inv-clean-breadcrumb{
    color:#65758d;
    font-size:.92rem;
    margin-bottom:22px;
}
.inv-clean-breadcrumb span{
    color:#aab5c6;
    margin:0 8px;
}
.inv-clean-hero-box{
    min-height:305px;
    display:grid;
    grid-template-columns:1fr 420px;
    gap:34px;
    align-items:center;
}
.inv-clean-kicker{
    display:inline-flex;
    color:#d71920;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.10em;
    font-size:.78rem;
    margin-bottom:10px;
}
.inv-clean-hero h1{
    margin:0 0 14px;
    color:#071f4a;
    font-size:clamp(2.8rem,6vw,5.2rem);
    line-height:.92;
    letter-spacing:-.06em;
    font-weight:950;
}
.inv-clean-hero p{
    max-width:680px;
    color:#334762;
    line-height:1.72;
    font-size:1.12rem;
}
.inv-clean-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:0 18px;
    border-radius:10px;
    background:#071f4a;
    color:#fff !important;
    text-decoration:none;
    font-weight:950;
    margin-top:12px;
    box-shadow:0 14px 28px rgba(7,31,74,.16);
}
.inv-clean-hero-card{
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:24px;
    padding:28px;
    box-shadow:0 18px 45px rgba(7,31,74,.08);
    position:relative;
    overflow:hidden;
}
.inv-clean-hero-card:before{
    content:"";
    position:absolute;
    right:-40px;
    top:-40px;
    width:140px;
    height:140px;
    border-radius:999px;
    background:rgba(215,25,32,.08);
}
.inv-clean-hero-card strong{
    display:block;
    font-size:1.35rem;
    color:#071f4a;
    margin-bottom:10px;
}
.inv-clean-hero-card p{
    font-size:.98rem;
    margin:0;
}
.inv-clean-mini-icons{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:10px;
    margin-top:18px;
}
.inv-clean-mini-icons span{
    background:#f5f8fc;
    border:1px solid #e4ebf5;
    border-radius:12px;
    padding:11px 10px;
    text-align:center;
    color:#071f4a;
    font-weight:950;
}
.inv-clean-tabs{
    position:sticky;
    top:0;
    z-index:20;
    margin-top:-22px;
    display:flex;
    overflow-x:auto;
    background:#fff;
    border:1px solid #dbe4ef;
    border-radius:16px;
    box-shadow:0 12px 30px rgba(7,31,74,.08);
}
.inv-clean-tabs a{
    flex:0 0 auto;
    min-width:148px;
    min-height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:0 15px;
    color:#071f4a;
    text-decoration:none;
    font-weight:950;
    border-right:1px solid #e8eef6;
    transition:.18s ease;
}
.inv-clean-tabs a:last-child{border-right:0}
.inv-clean-tabs a:hover,
.inv-clean-tabs a.active{
    background:#071f4a;
    color:#fff;
}
.inv-clean-stats{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
    padding-top:28px;
}
.inv-clean-stats article{
    background:#fff;
    border:1px solid #e2eaf5;
    border-radius:18px;
    padding:22px;
    min-height:128px;
    box-shadow:0 10px 28px rgba(7,31,74,.055);
}
.inv-clean-stats strong{
    display:block;
    color:#d71920;
    font-size:2.4rem;
    line-height:1;
    font-weight:950;
}
.inv-clean-stats span{
    display:block;
    margin-top:7px;
    color:#071f4a;
    font-weight:950;
}
.inv-clean-stats small{
    display:block;
    margin-top:5px;
    color:#65758d;
    font-weight:700;
}
.inv-clean-section{
    padding:46px 0;
    scroll-margin-top:95px;
}
.inv-clean-section-head{
    margin-bottom:22px;
}
.inv-clean-section-head span{
    color:#d71920;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.09em;
    font-size:.79rem;
}
.inv-clean-section-head h2{
    color:#071f4a;
    font-size:clamp(1.8rem,3vw,2.55rem);
    margin:7px 0 8px;
    letter-spacing:-.04em;
}
.inv-clean-section-head p{
    max-width:820px;
    color:#536780;
    line-height:1.7;
    margin:0;
}
.inv-clean-ciip-grid{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:14px;
}
.inv-clean-ciip-grid article,
.inv-clean-lines-grid article,
.inv-clean-group-card,
.inv-clean-project-grid article,
.inv-clean-production article,
.inv-clean-docs article,
.inv-clean-list article,
.inv-clean-infographic-grid article{
    background:#fff;
    border:1px solid #e1e9f4;
    border-radius:18px;
    box-shadow:0 10px 26px rgba(7,31,74,.05);
}
.inv-clean-ciip-grid article{
    padding:20px;
    display:flex;
    align-items:center;
    gap:12px;
}
.inv-clean-ciip-grid span{
    width:38px;
    height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:#eef5ff;
}
.inv-clean-ciip-grid strong{
    color:#071f4a;
}
.inv-clean-groups-layout{
    display:grid;
    grid-template-columns:280px 1fr;
    gap:28px;
}
.inv-clean-filter{
    background:#fff;
    border:1px solid #e1e9f4;
    border-radius:20px;
    padding:22px;
    align-self:start;
    position:sticky;
    top:96px;
    box-shadow:0 10px 26px rgba(7,31,74,.05);
}
.inv-clean-filter h3{
    margin:0 0 18px;
    color:#071f4a;
}
.inv-clean-filter label{
    display:grid;
    gap:8px;
    color:#071f4a;
    font-weight:950;
}
.inv-clean-filter input{
    width:100%;
    min-height:44px;
    border:1px solid #dce6f2;
    border-radius:12px;
    padding:0 12px;
}
.inv-clean-filter strong{
    display:block;
    margin:20px 0 10px;
    color:#071f4a;
}
.inv-clean-filter-tags{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
}
.inv-clean-filter-tags button{
    border:1px solid #dce6f2;
    border-radius:10px;
    background:#fff;
    color:#071f4a;
    font-weight:950;
    padding:9px 12px;
    cursor:pointer;
}
.inv-clean-filter-tags button.active,
.inv-clean-filter-tags button:hover{
    background:#071f4a;
    color:#fff;
}
.inv-clean-side-note{
    margin-top:24px;
    padding:17px;
    border-radius:18px;
    background:#f8f0f3;
    color:#394b63;
}
.inv-clean-side-note strong{
    margin:0 0 8px;
}
.inv-clean-side-note p{
    margin:0;
    line-height:1.55;
}
.inv-clean-group-list{
    display:grid;
    gap:16px;
}
.inv-clean-group-card{
    display:grid;
    grid-template-columns:68px 1fr;
    gap:18px;
    padding:22px;
    align-items:start;
}
.inv-clean-round-icon{
    width:58px;
    height:58px;
    border-radius:999px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#eef5ff;
    font-size:1.45rem;
}
.inv-clean-group-card h3{
    margin:0 0 8px;
    color:#071f4a;
    font-size:1.25rem;
}
.inv-clean-group-card p{
    color:#4f6178;
    line-height:1.62;
    margin:0 0 14px;
}
.inv-clean-meta{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:7px 18px;
    color:#46566d;
}
.inv-clean-meta b{
    color:#071f4a;
}
.inv-clean-lines-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
}
.inv-clean-lines-grid article{
    padding:20px;
}
.inv-clean-line-icon{
    width:52px;
    height:52px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:16px;
    background:#f3f7ff;
    font-size:1.35rem;
    margin-bottom:12px;
}
.inv-clean-lines-grid h3{
    color:#071f4a;
    margin:0 0 8px;
    font-size:1.08rem;
}
.inv-clean-lines-grid p{
    color:#536780;
    line-height:1.58;
}
.inv-clean-lines-grid small{
    display:block;
    color:#44566d;
    margin-top:8px;
}
.inv-clean-tags{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:12px;
}
.inv-clean-tags span{
    padding:6px 8px;
    border-radius:999px;
    background:#f1f5fb;
    color:#071f4a;
    font-weight:850;
    font-size:.75rem;
}
.inv-clean-list{
    display:grid;
    gap:12px;
}
.inv-clean-list article{
    display:grid;
    grid-template-columns:48px 1fr auto;
    gap:14px;
    align-items:center;
    padding:17px;
}
.inv-clean-list article>span{
    width:44px;
    height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:14px;
    background:#eef5ff;
}
.inv-clean-list h3{
    margin:0 0 4px;
    color:#071f4a;
}
.inv-clean-list p{
    margin:0;
    color:#5d6e85;
}
.inv-clean-list strong{
    padding:7px 10px;
    background:#eef8ef;
    color:#18733a;
    border-radius:999px;
}
.inv-clean-project-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
}
.inv-clean-project-grid article{
    padding:22px;
}
.inv-clean-project-icon{
    width:52px;
    height:52px;
    border-radius:16px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#f3f7ff;
    color:#071f4a;
    font-weight:950;
    margin-bottom:14px;
}
.inv-clean-project-grid h3{
    margin:0 0 10px;
    color:#071f4a;
}
.inv-clean-project-grid p{
    color:#52637a;
    line-height:1.5;
}
.inv-clean-project-grid span{
    color:#d71920;
    font-weight:950;
}
.inv-clean-infographic-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
}
.inv-clean-infographic-grid article{
    overflow:hidden;
}
.inv-clean-infographic-grid img{
    width:100%;
    height:260px;
    object-fit:contain;
    background:#fff;
    padding:14px;
    border-bottom:1px solid #e8eef6;
}
.inv-clean-infographic-grid h3{
    color:#071f4a;
    margin:16px 16px 6px;
}
.inv-clean-infographic-grid p{
    color:#64748b;
    margin:0 16px 18px;
}
.inv-clean-production{
    display:grid;
    gap:11px;
}
.inv-clean-production article{
    display:grid;
    grid-template-columns:1fr 170px 170px;
    align-items:center;
    padding:15px 18px;
    gap:14px;
}
.inv-clean-production strong{color:#071f4a}
.inv-clean-production span{color:#d71920;font-weight:950}
.inv-clean-production small{color:#60708a}
.inv-clean-docs{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:12px;
}
.inv-clean-docs article{
    display:grid;
    grid-template-columns:44px 1fr auto;
    gap:13px;
    align-items:center;
    padding:15px 17px;
}
.inv-clean-docs article>span{
    width:40px;
    height:40px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    background:#fff2f2;
}
.inv-clean-docs h3{
    margin:0 0 3px;
    color:#071f4a;
    font-size:.98rem;
}
.inv-clean-docs p{
    margin:0;
    color:#64748b;
}
.inv-clean-docs a{
    border:1px solid #dce6f2;
    border-radius:10px;
    color:#071f4a;
    padding:9px 12px;
    text-decoration:none;
    font-weight:950;
}
@media(max-width:1100px){
    .inv-clean-hero-box,
    .inv-clean-groups-layout{
        grid-template-columns:1fr;
    }
    .inv-clean-filter{
        position:static;
    }
    .inv-clean-stats,
    .inv-clean-ciip-grid,
    .inv-clean-lines-grid,
    .inv-clean-project-grid,
    .inv-clean-infographic-grid{
        grid-template-columns:repeat(2,1fr);
    }
}
@media(max-width:700px){
    .inv-clean-stats,
    .inv-clean-ciip-grid,
    .inv-clean-lines-grid,
    .inv-clean-project-grid,
    .inv-clean-infographic-grid,
    .inv-clean-docs,
    .inv-clean-production article,
    .inv-clean-meta{
        grid-template-columns:1fr;
    }
    .inv-clean-list article,
    .inv-clean-docs article,
    .inv-clean-group-card{
        grid-template-columns:1fr;
    }
    .inv-clean-tabs a{
        min-width:130px;
        font-size:.82rem;
    }
}


/* =========================================================
   INVESTIGACIÓN PFC — VERSIÓN SENIOR PROFESIONAL
   ========================================================= */
.research-pro{
    --navy:#061a3d;
    --navy2:#0b2a5b;
    --red:#d71920;
    --ink:#071f4a;
    --muted:#5d6b82;
    --line:#dfe7f2;
    --soft:#f4f7fc;
    --card:#ffffff;
    background:
        radial-gradient(circle at 10% 0%, rgba(215,25,32,.055), transparent 28%),
        radial-gradient(circle at 100% 30%, rgba(6,26,61,.065), transparent 30%),
        #f4f7fc;
    color:var(--ink);
    min-height:100vh;
}
.research-pro *{box-sizing:border-box}
.research-pro-hero{
    background:linear-gradient(135deg,#fff 0%,#fff 48%,#edf3fb 100%);
    border-bottom:1px solid var(--line);
    position:relative;
    overflow:hidden;
}
.research-pro-hero:after{
    content:"";
    position:absolute;
    right:-90px;
    top:-120px;
    width:420px;
    height:420px;
    border-radius:999px;
    border:58px solid rgba(215,25,32,.075);
}
.research-pro-hero-inner{
    position:relative;
    z-index:2;
    min-height:400px;
    display:grid;
    grid-template-columns:minmax(0,1.05fr) 430px;
    gap:42px;
    align-items:center;
    padding-top:28px;
    padding-bottom:44px;
}
.research-pro-copy nav{
    color:#64748b;
    font-weight:700;
    margin-bottom:22px;
}
.research-pro-copy nav span{
    margin:0 10px;
    color:#a5b1c2;
}
.research-pro-kicker{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:var(--red);
    font-size:.78rem;
    font-weight:950;
    letter-spacing:.14em;
    text-transform:uppercase;
    margin-bottom:12px;
}
.research-pro-kicker:before{
    content:"";
    width:34px;
    height:3px;
    border-radius:999px;
    background:var(--red);
}
.research-pro h1{
    color:var(--navy);
    font-size:clamp(3.1rem,6vw,5.7rem);
    letter-spacing:-.07em;
    line-height:.92;
    margin:0 0 18px;
    font-weight:950;
}
.research-pro-copy p{
    max-width:720px;
    color:#334762;
    line-height:1.76;
    font-size:1.14rem;
    margin:0;
}
.research-pro-actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:26px;
}
.research-pro-actions a{
    min-height:46px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 20px;
    border-radius:12px;
    background:var(--navy);
    color:#fff !important;
    font-weight:950;
    text-decoration:none;
    box-shadow:0 16px 30px rgba(6,26,61,.17);
}
.research-pro-actions a.secondary{
    background:#fff;
    color:var(--navy) !important;
    border:1px solid var(--line);
    box-shadow:none;
}
.research-pro-summary{
    background:rgba(255,255,255,.92);
    border:1px solid var(--line);
    border-radius:30px;
    padding:30px;
    box-shadow:0 28px 65px rgba(6,26,61,.12);
    backdrop-filter:blur(12px);
    position:relative;
    overflow:hidden;
}
.research-pro-summary:before{
    content:"";
    position:absolute;
    right:-55px;
    bottom:-55px;
    width:190px;
    height:190px;
    border-radius:999px;
    background:rgba(215,25,32,.08);
}
.summary-badge{
    width:70px;
    height:70px;
    border-radius:22px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,var(--navy),var(--navy2));
    color:#fff;
    font-weight:950;
    margin-bottom:18px;
    box-shadow:0 18px 28px rgba(6,26,61,.18);
}
.research-pro-summary h2{
    margin:0 0 10px;
    color:var(--navy);
    font-size:1.65rem;
    letter-spacing:-.035em;
}
.research-pro-summary p{
    color:var(--muted);
    line-height:1.62;
    margin:0 0 20px;
}
.summary-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:12px;
}
.summary-grid article{
    background:#f7f9fd;
    border:1px solid #e5ecf6;
    border-radius:18px;
    padding:16px;
}
.summary-grid strong{
    display:block;
    color:var(--red);
    font-size:2rem;
    line-height:1;
    font-weight:950;
}
.summary-grid span{
    display:block;
    color:var(--navy);
    font-size:.86rem;
    line-height:1.3;
    font-weight:900;
    margin-top:6px;
}
.research-pro-nav{
    position:sticky;
    top:0;
    z-index:30;
    margin-top:-28px;
    display:flex;
    align-items:center;
    gap:0;
    overflow:auto;
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    box-shadow:0 18px 45px rgba(6,26,61,.10);
    padding:7px;
}
.research-pro-nav button{
    flex:1;
    min-width:140px;
    min-height:48px;
    border:0;
    border-radius:13px;
    background:transparent;
    color:var(--navy);
    font-weight:950;
    cursor:pointer;
    transition:.2s ease;
}
.research-pro-nav button:hover,
.research-pro-nav button.active{
    background:var(--navy);
    color:#fff;
}
.research-pro-panel{
    display:none;
    padding:42px 0 70px;
    animation:researchFade .22s ease;
}
.research-pro-panel.active{
    display:block;
}
@keyframes researchFade{
    from{opacity:0; transform:translateY(8px)}
    to{opacity:1; transform:translateY(0)}
}
.research-pro-section-head{
    margin-bottom:24px;
}
.research-pro-section-head.compact{
    margin-bottom:18px;
}
.research-pro-section-head span{
    color:var(--red);
    text-transform:uppercase;
    letter-spacing:.12em;
    font-size:.78rem;
    font-weight:950;
}
.research-pro-section-head h2{
    color:var(--navy);
    font-size:clamp(2rem,3.6vw,3rem);
    letter-spacing:-.05em;
    margin:6px 0 10px;
    font-weight:950;
}
.research-pro-section-head p{
    max-width:850px;
    color:var(--muted);
    line-height:1.72;
    margin:0;
}
.research-pro-intro-grid{
    display:grid;
    grid-template-columns:1.2fr 1fr 1fr;
    gap:18px;
}
.research-pro-intro-grid article,
.research-group-list article,
.research-line-card,
.research-list article,
.research-projects article,
.research-infographics article,
.research-docs article{
    background:#fff;
    border:1px solid var(--line);
    border-radius:24px;
    box-shadow:0 16px 40px rgba(6,26,61,.055);
}
.research-pro-intro-grid article{
    padding:26px;
}
.research-pro-intro-grid .ciip-feature{
    background:linear-gradient(135deg,var(--navy),#103d78);
    color:#fff;
    grid-row:span 1;
}
.research-pro-intro-grid .ciip-feature h3,
.research-pro-intro-grid .ciip-feature p{
    color:#fff;
}
.research-pro-intro-grid article>span{
    width:52px;
    height:52px;
    border-radius:17px;
    background:#f1f5fb;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--navy);
    font-size:1.4rem;
    margin-bottom:14px;
}
.research-pro-intro-grid .ciip-feature>span{
    background:rgba(255,255,255,.14);
    color:#fff;
}
.research-pro-intro-grid h3{
    color:var(--navy);
    margin:0 0 10px;
    font-size:1.28rem;
}
.research-pro-intro-grid p{
    color:var(--muted);
    line-height:1.65;
}
.mini-pills{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-top:16px;
}
.mini-pills em{
    font-style:normal;
    background:#f1f5fb;
    border:1px solid #e5ecf6;
    border-radius:999px;
    color:var(--navy);
    font-size:.76rem;
    font-weight:850;
    padding:6px 9px;
}
.research-pro-layout{
    display:grid;
    grid-template-columns:310px 1fr;
    gap:28px;
}
.research-pro-filter{
    background:#fff;
    border:1px solid var(--line);
    border-radius:24px;
    padding:22px;
    box-shadow:0 16px 40px rgba(6,26,61,.055);
    align-self:start;
    position:sticky;
    top:86px;
}
.research-pro-filter h3{
    color:var(--navy);
    margin:0 0 14px;
}
.research-pro-filter input{
    width:100%;
    min-height:44px;
    border:1px solid #d9e4f2;
    border-radius:13px;
    padding:0 13px;
    outline:none;
}
.research-pro-filter input:focus{
    border-color:var(--navy);
    box-shadow:0 0 0 4px rgba(6,26,61,.08);
}
.research-filter-chips{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin-top:14px;
}
.research-filter-chips button{
    border:1px solid #d9e4f2;
    border-radius:999px;
    min-height:36px;
    padding:0 12px;
    color:var(--navy);
    background:#fff;
    font-weight:900;
    cursor:pointer;
}
.research-filter-chips button.active,
.research-filter-chips button:hover{
    background:var(--navy);
    color:#fff;
}
.research-pro-alert{
    margin-top:20px;
    border-radius:20px;
    padding:18px;
    background:linear-gradient(135deg,#fff7f7,#f5f8ff);
    border:1px solid #f0dfe3;
}
.research-pro-alert strong{
    color:var(--navy);
}
.research-pro-alert p{
    color:var(--muted);
    line-height:1.55;
}
.research-group-list{
    display:grid;
    gap:18px;
}
.research-group-list article{
    display:grid;
    grid-template-columns:86px 1fr;
    gap:22px;
    padding:24px;
    align-items:start;
}
.group-mark{
    width:74px;
    height:74px;
    border-radius:24px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,var(--navy),#16457d);
    color:#fff;
    font-weight:950;
    font-size:1.25rem;
}
.group-body>span{
    display:inline-flex;
    color:var(--red);
    font-weight:950;
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    margin-bottom:6px;
}
.group-body h3{
    margin:0 0 10px;
    color:var(--navy);
    font-size:1.75rem;
    letter-spacing:-.035em;
}
.group-body p{
    color:var(--muted);
    line-height:1.7;
    margin:0 0 18px;
}
.group-body dl{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:12px;
    margin:0;
}
.group-body dl div{
    padding:12px;
    border-radius:14px;
    background:#f6f8fc;
    border:1px solid #e6edf6;
}
.group-body dt{
    color:var(--navy);
    font-weight:950;
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.group-body dd{
    margin:4px 0 0;
    color:#42536b;
}
.research-lines-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:18px;
}
.research-line-card{
    padding:24px;
    min-height:100%;
}
.research-line-card header{
    display:grid;
    grid-template-columns:62px 1fr;
    gap:16px;
    align-items:center;
    margin-bottom:16px;
}
.line-icon{
    width:58px;
    height:58px;
    border-radius:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#f1f5fb;
    color:var(--navy);
    font-size:1.55rem;
}
.research-line-card header span{
    color:var(--red);
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:.73rem;
    font-weight:950;
}
.research-line-card h3{
    margin:4px 0 0;
    color:var(--navy);
    font-size:1.35rem;
    line-height:1.22;
}
.research-line-card blockquote{
    margin:0 0 14px;
    padding:12px 14px;
    border-left:4px solid var(--red);
    background:#fff7f7;
    color:#7f1d1d;
    border-radius:0 12px 12px 0;
    font-weight:850;
}
.research-line-card p{
    color:var(--muted);
    line-height:1.7;
}
.line-meta{
    margin-top:16px;
    padding:14px;
    border-radius:16px;
    background:#f7f9fd;
    border:1px solid #e5ecf6;
    color:#44566d;
    line-height:1.6;
}
.line-meta strong{
    color:var(--navy);
}
.research-line-card details{
    margin-top:14px;
}
.research-line-card summary{
    cursor:pointer;
    color:var(--navy);
    font-weight:950;
}
.research-line-card ul{
    margin:12px 0 0;
    padding-left:20px;
    color:#4f6078;
    line-height:1.62;
}
.research-list,
.research-docs{
    display:grid;
    gap:12px;
}
.research-list article,
.research-docs article{
    display:grid;
    grid-template-columns:52px 1fr auto;
    gap:16px;
    align-items:center;
    padding:18px;
}
.research-list article>span,
.research-docs article>span{
    width:46px;
    height:46px;
    border-radius:16px;
    background:#f1f5fb;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--navy);
    font-weight:950;
}
.research-list h3,
.research-docs h3{
    color:var(--navy);
    margin:0 0 4px;
}
.research-list p,
.research-docs p{
    color:var(--muted);
    margin:0;
}
.research-list strong{
    background:#edf9ef;
    color:#19723a;
    border-radius:999px;
    padding:7px 12px;
    font-weight:950;
}
.research-projects{
    display:grid;
    grid-template-columns:repeat(4, minmax(0,1fr));
    gap:18px;
}
.research-projects article{
    padding:22px;
    border-top:5px solid var(--red);
}
.research-projects article>span{
    width:50px;
    height:50px;
    border-radius:16px;
    background:#f1f5fb;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--navy);
    font-weight:950;
    margin-bottom:15px;
}
.research-projects h3{
    color:var(--navy);
    margin:0 0 10px;
}
.research-projects p{
    color:var(--muted);
}
.research-projects strong{
    color:var(--red);
}
.research-infographics{
    display:grid;
    grid-template-columns:repeat(3, minmax(0,1fr));
    gap:22px;
}
.research-infographics article{
    overflow:hidden;
    transition:.2s ease;
}
.research-infographics article:hover{
    transform:translateY(-4px);
    box-shadow:0 22px 55px rgba(6,26,61,.11);
}
.research-infographics a{
    display:block;
    background:#fff;
    border-bottom:1px solid var(--line);
}
.research-infographics img{
    width:100%;
    height:360px;
    object-fit:contain;
    padding:18px;
    display:block;
}
.research-infographics div{
    padding:18px 20px 20px;
}
.research-infographics h3{
    color:var(--navy);
    margin:0 0 6px;
}
.research-infographics p{
    margin:0;
    color:var(--muted);
}
.research-docs a{
    border:1px solid #d9e4f2;
    color:var(--navy);
    text-decoration:none;
    border-radius:12px;
    padding:9px 12px;
    font-weight:950;
}
.research-docs a:hover{
    background:var(--navy);
    color:#fff;
}
@media(max-width:1200px){
    .research-pro-hero-inner,
    .research-pro-layout,
    .research-pro-intro-grid{
        grid-template-columns:1fr;
    }
    .research-pro-filter{
        position:static;
    }
    .research-projects,
    .research-infographics{
        grid-template-columns:repeat(2, minmax(0,1fr));
    }
}
@media(max-width:760px){
    .research-pro-hero-inner{
        min-height:auto;
    }
    .research-pro-nav{
        border-radius:14px;
    }
    .research-pro-nav button{
        min-width:120px;
        font-size:.84rem;
    }
    .summary-grid,
    .research-lines-grid,
    .research-projects,
    .research-infographics,
    .group-body dl{
        grid-template-columns:1fr;
    }
    .research-group-list article,
    .research-list article,
    .research-docs article{
        grid-template-columns:1fr;
    }
    .research-infographics img{
        height:300px;
    }
}


/* =========================================================
   INVESTIGACIÓN CMS — ZOOM, REPOSITORIO Y EDICIÓN PROFESIONAL
   ========================================================= */
.research-cms .research-line-tools{
    margin:-8px 0 22px;
}
.research-cms .research-line-tools input{
    width:min(560px,100%);
    min-height:46px;
    border:1px solid var(--line);
    border-radius:14px;
    padding:0 15px;
    font-weight:700;
    outline:none;
}
.research-cms .research-line-tools input:focus{
    border-color:var(--navy);
    box-shadow:0 0 0 4px rgba(6,26,61,.08);
}
.research-cms .research-infographics-zoom article button.research-info-open{
    width:100%;
    border:0;
    padding:0;
    background:#fff;
    cursor:zoom-in;
    display:block;
}
.research-cms .research-infographics-zoom article button.research-info-open:focus{
    outline:4px solid rgba(6,26,61,.14);
    outline-offset:-4px;
}
.research-cms .research-repo-layout{
    display:grid;
    grid-template-columns:260px 1fr;
    gap:24px;
    align-items:start;
}
.research-cms .research-repo-cats{
    background:#fff;
    border:1px solid var(--line);
    border-radius:22px;
    padding:14px;
    box-shadow:0 16px 40px rgba(6,26,61,.055);
    display:grid;
    gap:8px;
    position:sticky;
    top:86px;
}
.research-cms .research-repo-cats button{
    border:0;
    border-radius:14px;
    min-height:44px;
    padding:0 14px;
    text-align:left;
    background:#f5f8fc;
    color:var(--navy);
    font-weight:950;
    cursor:pointer;
}
.research-cms .research-repo-cats button.active,
.research-cms .research-repo-cats button:hover{
    background:var(--navy);
    color:#fff;
}
.research-cms .research-docs button.repo-view-info{
    border:1px solid #d9e4f2;
    color:var(--navy);
    text-decoration:none;
    border-radius:12px;
    padding:9px 12px;
    font-weight:950;
    background:#fff;
    cursor:pointer;
}
.research-cms .research-docs button.repo-view-info:hover{
    background:var(--navy);
    color:#fff;
}
.research-lightbox{
    position:fixed;
    inset:0;
    z-index:100000;
    display:none;
}
.research-lightbox.open{
    display:block;
}
.research-lightbox-backdrop{
    position:absolute;
    inset:0;
    background:rgba(3,10,25,.78);
    backdrop-filter:blur(6px);
}
.research-lightbox-panel{
    position:absolute;
    inset:32px;
    background:#fff;
    border-radius:24px;
    display:grid;
    grid-template-rows:auto 1fr;
    overflow:hidden;
    box-shadow:0 30px 90px rgba(0,0,0,.38);
}
.research-lightbox-panel header{
    min-height:66px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:14px 18px;
    border-bottom:1px solid #e6edf6;
    background:#f8fafc;
}
.research-lightbox-panel h3{
    color:#061a3d;
    margin:0;
    font-size:1.1rem;
}
.research-lightbox-panel header div{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}
.research-lightbox-panel button{
    border:1px solid #d9e4f2;
    background:#fff;
    color:#061a3d;
    border-radius:10px;
    min-height:36px;
    padding:0 12px;
    font-weight:950;
    cursor:pointer;
}
.research-lightbox-panel button:hover{
    background:#061a3d;
    color:#fff;
}
.research-lightbox-stage{
    overflow:auto;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    padding:26px;
    background:#eef3fa;
}
.research-lightbox-stage img{
    max-width:100%;
    transform-origin:top center;
    transition:transform .16s ease;
    background:#fff;
    border-radius:12px;
    box-shadow:0 14px 45px rgba(0,0,0,.16);
}
@media(max-width:900px){
    .research-cms .research-repo-layout{
        grid-template-columns:1fr;
    }
    .research-cms .research-repo-cats{
        position:static;
    }
    .research-lightbox-panel{
        inset:10px;
        border-radius:18px;
    }
    .research-lightbox-panel header{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* =========================================================
   PANEL CMS INVESTIGACIÓN — UNIFICADO TIPO WORDPRESS
   ========================================================= */
.cms-editor-tabs{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:18px;
    padding:10px;
    margin:18px 0;
    box-shadow:0 12px 30px rgba(7,31,74,.06);
}
.cms-editor-tabs button{
    border:0;
    border-radius:12px;
    background:#f3f6fb;
    color:#071f4a;
    min-height:42px;
    padding:0 14px;
    font-weight:950;
    cursor:pointer;
}
.cms-editor-tabs button.active,
.cms-editor-tabs button:hover{
    background:#071f4a;
    color:#fff;
}
.cms-tab-panel{
    display:none;
}
.cms-tab-panel.active{
    display:block;
}
.cms-add-box,
.cms-edit-item{
    border:1px solid #e2eaf5;
    border-radius:16px;
    background:#fff;
    padding:14px;
    margin:12px 0;
}
.cms-add-box summary,
.cms-edit-item summary{
    cursor:pointer;
    color:#071f4a;
    font-weight:950;
    display:flex;
    justify-content:space-between;
    gap:14px;
}
.cms-edit-item summary span{
    color:#65758d;
    font-size:.86rem;
}
.cms-image-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:14px;
}
.cms-image-grid img{
    width:100%;
    max-height:220px;
    object-fit:contain;
    background:#f8fafc;
    border:1px solid #e2eaf5;
    border-radius:12px;
    margin:14px 0;
}


/* =========================================================
   PRÁCTICAS PEDAGÓGICAS CMS — SECCIÓN SEPARADA Y PROFESIONAL
   ========================================================= */
.practice-cms{
    --pnavy:#061a3d;
    --pred:#d71920;
    --pmuted:#5d6b82;
    --pline:#dfe7f2;
    --psoft:#f4f7fc;
    background:#f4f7fc;
    color:#071f4a;
}
.practice-hero{
    background:linear-gradient(135deg,#fff 0%,#fff 55%,#edf3fb 100%);
    border-bottom:1px solid var(--pline);
}
.practice-hero-inner{
    min-height:370px;
    display:grid;
    grid-template-columns:1fr 430px;
    gap:36px;
    align-items:center;
    padding-top:28px;
    padding-bottom:42px;
}
.practice-hero nav{
    color:#64748b;
    font-weight:700;
    margin-bottom:20px;
}
.practice-hero nav span{margin:0 10px;color:#a5b1c2}
.practice-kicker{
    color:var(--pred);
    text-transform:uppercase;
    letter-spacing:.12em;
    font-size:.78rem;
    font-weight:950;
}
.practice-hero h1{
    margin:10px 0 16px;
    color:var(--pnavy);
    font-size:clamp(3rem,6vw,5.3rem);
    line-height:.92;
    letter-spacing:-.07em;
    font-weight:950;
}
.practice-hero p{
    color:#334762;
    font-size:1.12rem;
    line-height:1.72;
    max-width:720px;
}
.practice-hero a{
    display:inline-flex;
    min-height:46px;
    padding:0 20px;
    align-items:center;
    border-radius:12px;
    background:var(--pnavy);
    color:#fff!important;
    text-decoration:none;
    font-weight:950;
    margin-top:14px;
}
.practice-hero aside{
    background:#fff;
    border:1px solid var(--pline);
    border-radius:28px;
    padding:30px;
    box-shadow:0 25px 60px rgba(6,26,61,.11);
}
.practice-hero aside strong{
    color:var(--pnavy);
    font-size:1.45rem;
}
.practice-hero aside div{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
    margin-top:18px;
}
.practice-hero aside span{
    background:#f5f8fc;
    border:1px solid #e5ecf6;
    border-radius:14px;
    padding:13px 8px;
    text-align:center;
    font-weight:950;
    color:var(--pnavy);
}
.practice-tabs{
    display:flex;
    gap:0;
    overflow:auto;
    background:#fff;
    border:1px solid var(--pline);
    border-radius:18px;
    padding:7px;
    box-shadow:0 18px 45px rgba(6,26,61,.09);
    margin-top:-28px;
    position:sticky;
    top:0;
    z-index:25;
}
.practice-tabs button{
    flex:1;
    min-width:130px;
    min-height:48px;
    border:0;
    background:transparent;
    border-radius:13px;
    color:var(--pnavy);
    font-weight:950;
    cursor:pointer;
}
.practice-tabs button.active,
.practice-tabs button:hover{
    background:var(--pnavy);
    color:#fff;
}
.practice-panel{
    display:none;
    padding:42px 0 70px;
}
.practice-panel.active{display:block}
.practice-section-head{
    margin-bottom:24px;
}
.practice-section-head span{
    color:var(--pred);
    text-transform:uppercase;
    letter-spacing:.11em;
    font-size:.78rem;
    font-weight:950;
}
.practice-section-head h2{
    color:var(--pnavy);
    font-size:clamp(2rem,3.5vw,3rem);
    margin:6px 0 10px;
    letter-spacing:-.05em;
}
.practice-section-head p{
    max-width:870px;
    color:var(--pmuted);
    line-height:1.72;
}
.practice-overview-grid,
.practice-gallery-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}
.practice-overview-grid article,
.practice-detail-grid article,
.practice-gallery-grid article,
.practice-doc-list article{
    background:#fff;
    border:1px solid var(--pline);
    border-radius:24px;
    box-shadow:0 16px 40px rgba(6,26,61,.055);
}
.practice-overview-grid article{
    padding:24px;
}
.practice-overview-grid article>span{
    width:54px;
    height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:18px;
    background:#f1f5fb;
    font-size:1.4rem;
    margin-bottom:14px;
}
.practice-overview-grid h3,
.practice-detail-grid h3,
.practice-gallery-grid h3,
.practice-doc-list h3{
    color:var(--pnavy);
    margin:0 0 10px;
}
.practice-overview-grid p,
.practice-detail-grid p,
.practice-gallery-grid p,
.practice-doc-list p{
    color:var(--pmuted);
    line-height:1.65;
}
.practice-overview-grid button{
    border:1px solid var(--pline);
    color:var(--pnavy);
    background:#fff;
    border-radius:12px;
    padding:10px 13px;
    font-weight:950;
    cursor:pointer;
}
.practice-overview-grid button:hover{
    background:var(--pnavy);
    color:#fff;
}
.practice-detail-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}
.practice-detail-grid article{
    padding:24px;
}
.practice-detail-grid ul{
    margin:0;
    padding-left:18px;
    color:#475569;
    line-height:1.7;
}
.practice-detail-grid a{
    color:var(--pnavy);
    font-weight:900;
}
.practice-mini-gallery{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
    margin-top:20px;
}
.practice-mini-gallery button,
.practice-gallery-grid button{
    border:0;
    padding:0;
    background:#fff;
    cursor:zoom-in;
    display:block;
    width:100%;
}
.practice-mini-gallery img{
    width:100%;
    height:180px;
    object-fit:cover;
    border-radius:18px;
    box-shadow:0 12px 28px rgba(6,26,61,.08);
}
.practice-gallery-tools{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:22px;
}
.practice-gallery-tools input,
.practice-gallery-tools select{
    min-height:46px;
    border:1px solid var(--pline);
    border-radius:14px;
    padding:0 14px;
    background:#fff;
    color:var(--pnavy);
    font-weight:800;
}
.practice-gallery-tools input{min-width:330px;flex:1}
.practice-gallery-grid article{
    overflow:hidden;
}
.practice-gallery-grid img{
    width:100%;
    height:250px;
    object-fit:cover;
    display:block;
}
.practice-gallery-grid div{
    padding:16px 18px 20px;
}
.practice-repo-layout{
    display:grid;
    grid-template-columns:260px 1fr;
    gap:24px;
}
.practice-repo-cats{
    background:#fff;
    border:1px solid var(--pline);
    border-radius:22px;
    padding:14px;
    box-shadow:0 16px 40px rgba(6,26,61,.055);
    display:grid;
    gap:8px;
    align-self:start;
    position:sticky;
    top:86px;
}
.practice-repo-cats button{
    border:0;
    border-radius:14px;
    min-height:44px;
    padding:0 14px;
    background:#f5f8fc;
    text-align:left;
    color:var(--pnavy);
    font-weight:950;
    cursor:pointer;
}
.practice-repo-cats button.active,
.practice-repo-cats button:hover{
    background:var(--pnavy);
    color:#fff;
}
.practice-doc-list{
    display:grid;
    gap:12px;
}
.practice-doc-list article{
    display:grid;
    grid-template-columns:58px 1fr auto;
    align-items:center;
    gap:16px;
    padding:18px;
}
.practice-doc-list article>span{
    width:48px;
    height:48px;
    border-radius:16px;
    background:#fff2f2;
    color:var(--pred);
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:950;
}
.practice-doc-list a{
    border:1px solid var(--pline);
    color:var(--pnavy);
    border-radius:12px;
    padding:10px 13px;
    text-decoration:none;
    font-weight:950;
}
.practice-doc-list a:hover{
    background:var(--pnavy);
    color:#fff;
}
.practice-lightbox{
    display:none;
    position:fixed;
    inset:0;
    z-index:100000;
}
.practice-lightbox.open{display:block}
.practice-lightbox-backdrop{
    position:absolute;
    inset:0;
    background:rgba(3,10,25,.78);
    backdrop-filter:blur(6px);
}
.practice-lightbox-panel{
    position:absolute;
    inset:32px;
    background:#fff;
    border-radius:24px;
    overflow:hidden;
    display:grid;
    grid-template-rows:auto 1fr;
}
.practice-lightbox-panel header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:16px 18px;
    border-bottom:1px solid var(--pline);
}
.practice-lightbox-panel h3{
    color:var(--pnavy);
    margin:0;
}
.practice-lightbox-panel header button{
    border:1px solid var(--pline);
    background:#fff;
    border-radius:10px;
    padding:9px 12px;
    font-weight:950;
    cursor:pointer;
}
.practice-lightbox-panel>div{
    background:#eef3fa;
    overflow:auto;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    padding:24px;
}
.practice-lightbox-panel img{
    max-width:100%;
    border-radius:14px;
    background:#fff;
    box-shadow:0 16px 50px rgba(0,0,0,.16);
}
.file-map-table{overflow:auto}
.file-map-table table{
    width:100%;
    border-collapse:collapse;
}
.file-map-table th,
.file-map-table td{
    border-bottom:1px solid #e4ebf5;
    padding:13px 12px;
    text-align:left;
}
.file-map-table th{
    color:#071f4a;
    background:#f5f8fc;
}
.file-map-table code{
    background:#f1f5fb;
    padding:4px 7px;
    border-radius:8px;
}
.cms-preview-row{
    display:grid;
    grid-template-columns:180px 1fr;
    gap:16px;
    align-items:center;
    margin:14px 0;
}
.cms-preview-row img{
    width:180px;
    height:105px;
    object-fit:cover;
    border-radius:14px;
    border:1px solid #e2eaf5;
}
.cms-preview-row p{
    margin:4px 0;
    color:#475569;
}
@media(max-width:1000px){
    .practice-hero-inner,
    .practice-detail-grid,
    .practice-repo-layout{
        grid-template-columns:1fr;
    }
    .practice-overview-grid,
    .practice-gallery-grid,
    .practice-mini-gallery{
        grid-template-columns:repeat(2,1fr);
    }
    .practice-repo-cats{position:static}
}
@media(max-width:650px){
    .practice-overview-grid,
    .practice-gallery-grid,
    .practice-mini-gallery,
    .practice-doc-list article,
    .cms-preview-row{
        grid-template-columns:1fr;
    }
    .practice-hero aside div{grid-template-columns:1fr}
}


/* =========================================================
   INICIO CMS — CARRUSEL EDITABLE DESDE PANEL
   ========================================================= */
.home-cms-carousel{
    position:relative;
    min-height:520px;
    background:#061a3d;
    overflow:hidden;
}
.home-cms-carousel-track,
.home-cms-slide{
    min-height:520px;
}
.home-cms-slide{
    position:absolute;
    inset:0;
    opacity:0;
    pointer-events:none;
    transition:opacity .65s ease;
}
.home-cms-slide.active{
    opacity:1;
    pointer-events:auto;
}
.home-cms-slide img{
    width:100%;
    height:520px;
    object-fit:cover;
    display:block;
    filter:saturate(1.06) contrast(1.03) brightness(.82);
}
.home-cms-slide:after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(6,26,61,.76),rgba(6,26,61,.36) 44%,rgba(6,26,61,.08));
}
.home-cms-slide-copy{
    position:absolute;
    z-index:2;
    left:max(24px,calc((100vw - 1180px)/2));
    top:50%;
    transform:translateY(-50%);
    max-width:680px;
    color:#fff;
}
.home-cms-slide-copy h1{
    font-size:clamp(2.4rem,5vw,5rem);
    line-height:.95;
    margin:0 0 16px;
    letter-spacing:-.055em;
    font-weight:950;
}
.home-cms-slide-copy p{
    font-size:1.16rem;
    line-height:1.65;
    max-width:620px;
}
.home-cms-slide-copy a{
    display:inline-flex;
    align-items:center;
    min-height:46px;
    padding:0 20px;
    border-radius:12px;
    background:#d71920;
    color:#fff!important;
    text-decoration:none;
    font-weight:950;
    margin-top:14px;
}
.home-cms-carousel-dots{
    position:absolute;
    z-index:3;
    left:50%;
    bottom:22px;
    transform:translateX(-50%);
    display:flex;
    gap:8px;
}
.home-cms-carousel-dots button{
    width:12px;
    height:12px;
    border:0;
    border-radius:999px;
    background:rgba(255,255,255,.55);
    cursor:pointer;
}
.home-cms-carousel-dots button.active{
    background:#fff;
    width:34px;
}
@media(max-width:700px){
    .home-cms-carousel,
    .home-cms-carousel-track,
    .home-cms-slide,
    .home-cms-slide img{min-height:430px;height:430px}
    .home-cms-slide-copy{left:22px;right:22px}
}


/* =========================================================
   CORRECCIÓN PRÁCTICAS — FUSIÓN SIN PERDER CONTENIDO PREVIO
   ========================================================= */
.practice-merged-page .practice-new-content,
.practice-merged-page .practice-documents-section{
    margin-top:34px;
}
.practice-new-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}
.practice-new-grid article{
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:22px;
    padding:22px;
    box-shadow:0 14px 34px rgba(6,26,61,.055);
}
.practice-new-grid article>span{
    width:50px;
    height:50px;
    border-radius:16px;
    background:#f1f5fb;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.32rem;
    margin-bottom:12px;
}
.practice-new-grid h3{
    color:#061a3d;
    margin:0 0 10px;
}
.practice-new-grid p{
    color:#5d6b82;
    line-height:1.62;
}
.practice-new-grid a{
    color:#061a3d;
    font-weight:950;
    text-decoration:none;
}
.cms-rotate-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin:10px 0 14px;
}
.cms-rotate-actions form{
    margin:0;
}
@media(max-width:1000px){
    .practice-new-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:650px){
    .practice-new-grid{grid-template-columns:1fr}
}


/* =========================================================
   CMS V2 — DOS CRONOGRAMAS INDEPENDIENTES
   ========================================================= */
.schedule-cms-page{
    --navy:#061a3d;
    --red:#d71920;
    --muted:#5d6b82;
    --line:#dfe7f2;
    background:#f4f7fc;
    min-height:100vh;
}
.schedule-hero{
    background:linear-gradient(135deg,#fff 0%,#fff 55%,#edf3fb 100%);
    border-bottom:1px solid var(--line);
}
.schedule-hero .container{
    padding-top:54px;
    padding-bottom:58px;
}
.schedule-hero nav{color:#64748b;font-weight:700;margin-bottom:18px}
.schedule-hero nav span{margin:0 10px;color:#a5b1c2}
.schedule-hero span{
    color:var(--red);
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-size:.78rem;
}
.schedule-hero h1{
    color:var(--navy);
    font-size:clamp(2.7rem,5vw,4.9rem);
    line-height:.95;
    letter-spacing:-.06em;
    margin:10px 0 14px;
    font-weight:950;
}
.schedule-hero p{max-width:760px;color:#334762;line-height:1.7;font-size:1.1rem}
.schedule-hero a{
    display:inline-flex;
    align-items:center;
    min-height:44px;
    padding:0 18px;
    border-radius:12px;
    background:var(--navy);
    color:#fff!important;
    text-decoration:none;
    font-weight:950;
    margin-top:12px;
}
.schedule-tools{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:24px;
    margin-bottom:18px;
}
.schedule-tools input,.schedule-tools select{
    min-height:46px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
    color:var(--navy);
    padding:0 14px;
    font-weight:800;
}
.schedule-tools input{flex:1;min-width:320px}
.schedule-list,.pedagogy-timeline{
    display:grid;
    gap:14px;
    padding-bottom:60px;
}
.schedule-list article{
    display:grid;
    grid-template-columns:150px 1fr;
    gap:18px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:22px;
    padding:18px;
    box-shadow:0 14px 34px rgba(6,26,61,.055);
}
.schedule-date{
    background:#f5f8fc;
    border:1px solid #e5ecf6;
    border-radius:18px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    min-height:96px;
    text-align:center;
}
.schedule-date strong{color:var(--red);font-size:1.5rem}
.schedule-date span{color:var(--navy);font-weight:950}
.schedule-body>span{color:var(--red);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:950}
.schedule-body h2{color:var(--navy);margin:5px 0 7px}
.schedule-body p,.schedule-body small{color:var(--muted);line-height:1.55}
.pedagogy-timeline article{
    display:grid;
    grid-template-columns:70px 1fr;
    gap:18px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:22px;
    padding:20px;
    box-shadow:0 14px 34px rgba(6,26,61,.055);
}
.timeline-icon{
    width:58px;
    height:58px;
    border-radius:18px;
    background:#f5f8fc;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.55rem;
}
.pedagogy-timeline span{color:var(--red);font-weight:950;font-size:.82rem}
.pedagogy-timeline h2{color:var(--navy);margin:5px 0}
.pedagogy-timeline p{color:var(--muted);line-height:1.6}

/* =========================================================
   PRÁCTICAS PEDAGÓGICAS — HUB MODULAR LIMPIO
   ========================================================= */
.practice-hub{
    --navy:#061a3d;
    --red:#d71920;
    --muted:#5d6b82;
    --line:#dfe7f2;
    background:#f4f7fc;
    color:#071f4a;
}
.practice-hub-hero{
    background:linear-gradient(135deg,#fff 0%,#fff 52%,#edf3fb 100%);
    border-bottom:1px solid var(--line);
}
.practice-hub-hero .container{
    padding-top:54px;
    padding-bottom:60px;
}
.practice-hub-hero nav{color:#64748b;font-weight:700;margin-bottom:18px}
.practice-hub-hero nav span{margin:0 10px;color:#a5b1c2}
.practice-hub-hero>div>span,.practice-hub-head span{
    color:var(--red);
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-size:.78rem;
}
.practice-hub h1{
    color:var(--navy);
    font-size:clamp(3rem,6vw,5.2rem);
    line-height:.92;
    letter-spacing:-.065em;
    margin:10px 0 16px;
    font-weight:950;
}
.practice-hub-hero p{max-width:820px;color:#334762;line-height:1.72;font-size:1.12rem}
.practice-hub-hero div div{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.practice-hub-hero a{
    min-height:46px;
    display:inline-flex;
    align-items:center;
    padding:0 20px;
    border-radius:12px;
    background:var(--navy);
    color:#fff!important;
    text-decoration:none;
    font-weight:950;
}
.practice-hub-hero a.secondary{background:#fff;color:var(--navy)!important;border:1px solid var(--line)}
.practice-hub-stats{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
    margin-top:-28px;
    position:relative;
    z-index:4;
}
.practice-hub-stats article{
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    padding:22px;
    box-shadow:0 16px 40px rgba(6,26,61,.08);
}
.practice-hub-stats strong{display:block;color:var(--red);font-size:2rem;font-weight:950;line-height:1}
.practice-hub-stats span{display:block;color:var(--navy);font-weight:950;margin-top:7px}
.practice-hub-section{padding:46px 0}
.practice-hub-head{margin-bottom:22px}
.practice-hub-head h2{
    color:var(--navy);
    font-size:clamp(2rem,3.5vw,3rem);
    margin:6px 0 10px;
    letter-spacing:-.05em;
}
.practice-hub-head p{max-width:850px;color:var(--muted);line-height:1.68}
.practice-module-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
}
.practice-module-grid article{
    background:#fff;
    border:1px solid var(--line);
    border-radius:26px;
    overflow:hidden;
    box-shadow:0 18px 44px rgba(6,26,61,.07);
    position:relative;
}
.practice-module-number{
    position:absolute;
    top:15px;
    left:15px;
    z-index:3;
    background:var(--red);
    color:#fff;
    border-radius:14px;
    padding:8px 11px;
    font-weight:950;
}
.practice-module-grid img{
    width:100%;
    height:190px;
    object-fit:cover;
    display:block;
    filter:saturate(1.04) contrast(1.02);
}
.practice-module-grid article>div:last-child{
    padding:20px;
}
.practice-module-grid span{
    color:var(--red);
    text-transform:uppercase;
    font-size:.76rem;
    letter-spacing:.08em;
    font-weight:950;
}
.practice-module-grid h3{color:var(--navy);margin:7px 0 10px}
.practice-module-grid p{color:var(--muted);line-height:1.58}
.practice-module-grid a,.practice-quick-grid a{
    color:var(--navy);
    font-weight:950;
    text-decoration:none;
}
.practice-quick-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
}
.practice-quick-grid article{
    background:#fff;
    border:1px solid var(--line);
    border-radius:24px;
    padding:24px;
    box-shadow:0 16px 40px rgba(6,26,61,.055);
}
.practice-quick-grid article>span{
    width:54px;
    height:54px;
    border-radius:18px;
    background:#f1f5fb;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.4rem;
    margin-bottom:14px;
}
.practice-quick-grid h3{color:var(--navy);margin:0 0 10px}
.practice-quick-grid p{color:var(--muted);line-height:1.62}
.practice-hub-preview-gallery{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
}
.practice-hub-preview-gallery a{
    display:block;
    position:relative;
    border-radius:18px;
    overflow:hidden;
    min-height:170px;
    box-shadow:0 14px 32px rgba(6,26,61,.08);
}
.practice-hub-preview-gallery img{width:100%;height:190px;object-fit:cover;display:block}
.practice-hub-preview-gallery span{
    position:absolute;
    left:10px;
    right:10px;
    bottom:10px;
    background:rgba(6,26,61,.82);
    color:#fff;
    border-radius:12px;
    padding:8px 10px;
    font-weight:850;
    font-size:.82rem;
}

/* =========================================================
   DETALLE PRÁCTICA — MÓDULO CONCENTRADO
   ========================================================= */
.practice-module-page{
    background:#f4f7fc;
    min-height:100vh;
    display:grid;
    grid-template-columns:290px 1fr;
    color:#071f4a;
}
.practice-module-sidebar{
    background:#061a3d;
    color:#fff;
    min-height:100vh;
    position:sticky;
    top:0;
    align-self:start;
    padding:24px;
}
.practice-module-sidebar .practice-back,
.practice-module-sidebar .module-crono-link{
    display:inline-flex;
    color:#fff!important;
    text-decoration:none;
    font-weight:900;
    margin-bottom:18px;
}
.practice-module-sidebar h1{font-size:1.45rem;margin:0 0 18px}
.practice-module-sidebar nav{display:grid;gap:8px}
.practice-module-sidebar nav a{
    color:#dbeafe;
    text-decoration:none;
    border-radius:12px;
    padding:11px 12px;
    font-weight:850;
}
.practice-module-sidebar nav a.active,.practice-module-sidebar nav a:hover{
    background:#fff;
    color:#061a3d;
}
.practice-module-sidebar .module-crono-link{
    margin-top:22px;
    background:rgba(255,255,255,.12);
    padding:12px;
    border-radius:12px;
}
.practice-module-content{
    padding:34px;
    max-width:1180px;
}
.practice-module-hero{
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 18px 45px rgba(6,26,61,.07);
    display:grid;
    grid-template-columns:380px 1fr;
}
.practice-module-hero img{
    width:100%;
    height:100%;
    min-height:280px;
    object-fit:cover;
}
.practice-module-hero div{padding:30px}
.practice-module-hero span{
    color:#d71920;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-size:.78rem;
    font-weight:950;
}
.practice-module-hero h1{
    color:#061a3d;
    font-size:clamp(2rem,4vw,3.4rem);
    margin:8px 0 12px;
    line-height:1;
    letter-spacing:-.05em;
}
.practice-module-hero p{color:#5d6b82;line-height:1.72}
.practice-module-block{
    margin-top:24px;
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:24px;
    padding:24px;
    box-shadow:0 14px 34px rgba(6,26,61,.055);
}
.practice-module-block h2{color:#061a3d;margin:0 0 16px}
.module-lead{color:#5d6b82;line-height:1.65}
.module-info-grid,.module-two-cols{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
}
.module-two-cols{grid-template-columns:1fr 1fr}
.module-info-grid article,.module-two-cols article{
    background:#f7f9fd;
    border:1px solid #e5ecf6;
    border-radius:18px;
    padding:18px;
}
.module-info-grid strong,.module-two-cols h3{color:#061a3d}
.module-info-grid p,.module-two-cols li{color:#5d6b82;line-height:1.6}
.module-docs{
    display:grid;
    gap:12px;
}
.module-docs article{
    display:grid;
    grid-template-columns:56px 1fr auto;
    align-items:center;
    gap:14px;
    background:#f7f9fd;
    border:1px solid #e5ecf6;
    border-radius:16px;
    padding:14px;
}
.module-docs span{
    background:#fff2f2;
    color:#d71920;
    font-weight:950;
    border-radius:13px;
    width:46px;
    height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
}
.module-docs h3{margin:0 0 3px;color:#061a3d}
.module-docs p{margin:0;color:#64748b}
.module-docs a{
    color:#061a3d;
    border:1px solid #dfe7f2;
    border-radius:10px;
    padding:9px 12px;
    text-decoration:none;
    font-weight:950;
}
.module-gallery{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
}
.module-gallery button{
    border:0;
    padding:0;
    border-radius:16px;
    overflow:hidden;
    cursor:zoom-in;
    background:#fff;
}
.module-gallery img{
    width:100%;
    height:180px;
    object-fit:cover;
    display:block;
}
@media(max-width:1100px){
    .practice-module-grid,.practice-quick-grid{grid-template-columns:repeat(2,1fr)}
    .practice-hub-stats,.practice-hub-preview-gallery,.module-gallery{grid-template-columns:repeat(2,1fr)}
    .practice-module-page{grid-template-columns:1fr}
    .practice-module-sidebar{position:static;min-height:auto}
    .practice-module-hero{grid-template-columns:1fr}
    .module-info-grid{grid-template-columns:1fr}
}
@media(max-width:650px){
    .schedule-list article,.pedagogy-timeline article,.practice-module-grid,.practice-quick-grid,.practice-hub-stats,.practice-hub-preview-gallery,.module-gallery,.module-two-cols,.module-docs article{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   PRÁCTICAS PEDAGÓGICAS — MISMA PÁGINA CON SECCIONES INTERNAS
   ========================================================= */
.practice-onepage{
    --navy:#061a3d;
    --red:#d71920;
    --muted:#5d6b82;
    --line:#dfe7f2;
    background:#f4f7fc;
    color:#071f4a;
    min-height:100vh;
}
.practice-onepage-hero{
    background:linear-gradient(135deg,#fff 0%,#fff 55%,#edf3fb 100%);
    border-bottom:1px solid var(--line);
}
.practice-onepage-hero .container{
    padding-top:54px;
    padding-bottom:60px;
}
.practice-onepage-hero nav{
    color:#64748b;
    font-weight:700;
    margin-bottom:18px;
}
.practice-onepage-hero nav span{
    margin:0 10px;
    color:#a5b1c2;
}
.practice-onepage-hero .container>span,
.practice-onepage-head span{
    color:var(--red);
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-size:.78rem;
}
.practice-onepage-hero h1{
    color:var(--navy);
    font-size:clamp(3rem,6vw,5.2rem);
    line-height:.92;
    letter-spacing:-.065em;
    margin:10px 0 16px;
    font-weight:950;
}
.practice-onepage-hero p{
    max-width:820px;
    color:#334762;
    line-height:1.72;
    font-size:1.12rem;
}
.practice-onepage-actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:22px;
}
.practice-onepage-actions button{
    min-height:46px;
    border:0;
    border-radius:12px;
    background:var(--navy);
    color:#fff;
    padding:0 20px;
    font-weight:950;
    cursor:pointer;
}
.practice-onepage-actions button:nth-child(2){
    background:#fff;
    color:var(--navy);
    border:1px solid var(--line);
}
.practice-onepage-tabs{
    display:flex;
    gap:0;
    overflow:auto;
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    padding:7px;
    box-shadow:0 18px 45px rgba(6,26,61,.09);
    margin-top:-28px;
    position:sticky;
    top:0;
    z-index:25;
}
.practice-onepage-tabs button{
    flex:1;
    min-width:130px;
    min-height:48px;
    border:0;
    background:transparent;
    border-radius:13px;
    color:var(--navy);
    font-weight:950;
    cursor:pointer;
}
.practice-onepage-tabs button.active,
.practice-onepage-tabs button:hover{
    background:var(--navy);
    color:#fff;
}
.practice-onepage-panel{
    display:none;
    padding:42px 0 70px;
    animation:practicePanelFade .18s ease;
}
.practice-onepage-panel.active{
    display:block;
}
@keyframes practicePanelFade{
    from{opacity:0; transform:translateY(8px)}
    to{opacity:1; transform:translateY(0)}
}
.practice-onepage-head{
    margin-bottom:24px;
}
.practice-onepage-head h2{
    color:var(--navy);
    font-size:clamp(2rem,3.5vw,3rem);
    margin:6px 0 10px;
    letter-spacing:-.05em;
}
.practice-onepage-head p{
    max-width:850px;
    color:var(--muted);
    line-height:1.68;
}
.practice-onepage-stats{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
    margin-bottom:28px;
}
.practice-onepage-stats article{
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    padding:22px;
    box-shadow:0 16px 40px rgba(6,26,61,.08);
}
.practice-onepage-stats strong{
    display:block;
    color:var(--red);
    font-size:2rem;
    font-weight:950;
    line-height:1;
}
.practice-onepage-stats span{
    display:block;
    color:var(--navy);
    font-weight:950;
    margin-top:7px;
}
.practice-onepage-module-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
}
.practice-onepage-module-grid article{
    background:#fff;
    border:1px solid var(--line);
    border-radius:26px;
    overflow:hidden;
    box-shadow:0 18px 44px rgba(6,26,61,.07);
    position:relative;
}
.practice-onepage-number{
    position:absolute;
    top:15px;
    left:15px;
    z-index:3;
    background:var(--red);
    color:#fff;
    border-radius:14px;
    padding:8px 11px;
    font-weight:950;
}
.practice-onepage-module-grid img{
    width:100%;
    height:190px;
    object-fit:cover;
    display:block;
}
.practice-onepage-module-grid article>div:last-child{
    padding:20px;
}
.practice-onepage-module-grid span{
    color:var(--red);
    text-transform:uppercase;
    font-size:.76rem;
    letter-spacing:.08em;
    font-weight:950;
}
.practice-onepage-module-grid h3{
    color:var(--navy);
    margin:7px 0 10px;
}
.practice-onepage-module-grid p{
    color:var(--muted);
    line-height:1.58;
}
.practice-onepage-module-grid button{
    border:0;
    background:transparent;
    color:var(--navy);
    padding:0;
    font-weight:950;
    cursor:pointer;
}
.practice-module-inline{
    display:grid;
    grid-template-columns:270px 1fr;
    gap:24px;
}
.practice-module-inline>aside{
    background:#061a3d;
    color:#fff;
    border-radius:24px;
    padding:20px;
    align-self:start;
    position:sticky;
    top:88px;
}
.practice-module-inline>aside>button{
    border:0;
    background:rgba(255,255,255,.12);
    color:#fff;
    border-radius:12px;
    min-height:40px;
    padding:0 12px;
    font-weight:950;
    cursor:pointer;
    margin-bottom:16px;
}
.practice-module-inline aside h3{
    margin:0 0 12px;
    color:#fff;
}
.practice-module-inline aside nav{
    display:grid;
    gap:8px;
}
.practice-module-inline aside nav button{
    border:0;
    background:transparent;
    color:#dbeafe;
    text-align:left;
    border-radius:12px;
    padding:11px 12px;
    font-weight:850;
    cursor:pointer;
}
.practice-module-inline aside nav button.active,
.practice-module-inline aside nav button:hover{
    background:#fff;
    color:#061a3d;
}
.practice-module-inline-content header{
    background:#fff;
    border:1px solid var(--line);
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 18px 45px rgba(6,26,61,.07);
    display:grid;
    grid-template-columns:360px 1fr;
}
.practice-module-inline-content header img{
    width:100%;
    height:100%;
    min-height:260px;
    object-fit:cover;
}
.practice-module-inline-content header div{
    padding:28px;
}
.practice-module-inline-content header span{
    color:var(--red);
    text-transform:uppercase;
    letter-spacing:.1em;
    font-size:.78rem;
    font-weight:950;
}
.practice-module-inline-content header h2{
    color:var(--navy);
    font-size:clamp(2rem,4vw,3.2rem);
    margin:8px 0 12px;
    line-height:1;
    letter-spacing:-.05em;
}
.practice-module-inline-content header p{
    color:var(--muted);
    line-height:1.72;
}
.practice-inline-info-grid,
.practice-inline-two-cols{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
    margin-top:20px;
}
.practice-inline-two-cols{
    grid-template-columns:1fr 1fr;
}
.practice-inline-info-grid article,
.practice-inline-two-cols article,
.practice-inline-block{
    background:#fff;
    border:1px solid var(--line);
    border-radius:22px;
    padding:20px;
    box-shadow:0 14px 34px rgba(6,26,61,.055);
}
.practice-inline-info-grid strong,
.practice-inline-two-cols h3,
.practice-inline-block h3{
    color:var(--navy);
}
.practice-inline-info-grid p,
.practice-inline-two-cols li{
    color:var(--muted);
    line-height:1.6;
}
.practice-inline-block{
    margin-top:20px;
}
.practice-inline-docs{
    display:grid;
    gap:12px;
}
.practice-inline-docs article{
    display:grid;
    grid-template-columns:56px 1fr auto;
    align-items:center;
    gap:14px;
    background:#f7f9fd;
    border:1px solid #e5ecf6;
    border-radius:16px;
    padding:14px;
}
.practice-inline-docs span{
    background:#fff2f2;
    color:var(--red);
    font-weight:950;
    border-radius:13px;
    width:46px;
    height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
}
.practice-inline-docs h4{
    margin:0 0 3px;
    color:var(--navy);
}
.practice-inline-docs p{
    margin:0;
    color:#64748b;
}
.practice-inline-docs a{
    color:var(--navy);
    border:1px solid var(--line);
    border-radius:10px;
    padding:9px 12px;
    text-decoration:none;
    font-weight:950;
}
.practice-inline-gallery{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
}
.practice-inline-gallery button{
    border:0;
    padding:0;
    border-radius:16px;
    overflow:hidden;
    cursor:zoom-in;
    background:#fff;
}
.practice-inline-gallery img{
    width:100%;
    height:180px;
    object-fit:cover;
    display:block;
}
@media(max-width:1100px){
    .practice-onepage-stats,
    .practice-onepage-module-grid,
    .practice-inline-gallery{
        grid-template-columns:repeat(2,1fr);
    }
    .practice-module-inline,
    .practice-module-inline-content header{
        grid-template-columns:1fr;
    }
    .practice-module-inline>aside{
        position:static;
    }
    .practice-inline-info-grid{
        grid-template-columns:1fr;
    }
}
@media(max-width:650px){
    .practice-onepage-stats,
    .practice-onepage-module-grid,
    .practice-inline-two-cols,
    .practice-inline-docs article,
    .practice-inline-gallery{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   INICIO CMS — NOTICIAS, DESTACADOS Y MULTIMEDIA
   ========================================================= */
.home-info-cms,
.home-news-cms,
.home-media-cms{
    background:#f4f7fc;
    padding:48px 0;
}
.home-news-cms{
    background:#fff;
}
.home-section-head{
    margin-bottom:24px;
}
.home-section-head span{
    color:#d71920;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-size:.78rem;
    font-weight:950;
}
.home-section-head h2{
    color:#061a3d;
    font-size:clamp(2rem,3.5vw,3rem);
    margin:6px 0 10px;
    letter-spacing:-.05em;
}
.home-section-head p{
    max-width:820px;
    color:#5d6b82;
    line-height:1.65;
}
.home-feature-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}
.home-feature-grid article,
.home-news-grid article,
.home-media-grid article{
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:24px;
    box-shadow:0 16px 40px rgba(6,26,61,.055);
}
.home-feature-grid article{
    padding:24px;
}
.home-feature-grid article>span{
    width:54px;
    height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:18px;
    background:#f1f5fb;
    font-size:1.4rem;
    margin-bottom:14px;
}
.home-feature-grid h3,
.home-news-grid h3,
.home-media-grid h3{
    color:#061a3d;
    margin:0 0 10px;
}
.home-feature-grid p,
.home-news-grid p,
.home-media-grid p{
    color:#5d6b82;
    line-height:1.6;
}
.home-feature-grid a,
.home-news-grid a{
    color:#061a3d;
    text-decoration:none;
    font-weight:950;
}
.home-news-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
}
.home-news-grid article{
    overflow:hidden;
}
.home-news-grid img{
    width:100%;
    height:210px;
    object-fit:cover;
    display:block;
}
.home-news-grid article>div{
    padding:20px;
}
.home-news-grid article span{
    display:block;
    color:#d71920;
    text-transform:uppercase;
    font-size:.74rem;
    letter-spacing:.08em;
    font-weight:950;
    margin-bottom:8px;
}
.home-media-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
}
.home-media-grid article{
    overflow:hidden;
}
.home-media-grid img,
.home-media-grid video{
    width:100%;
    height:280px;
    object-fit:cover;
    display:block;
    background:#061a3d;
}
.home-media-grid article>div{
    padding:20px;
}
.home-media-grid span{
    display:block;
    color:#d71920;
    font-weight:950;
    font-size:.8rem;
    margin-bottom:8px;
}
.cms-preview-row video{
    width:180px;
    height:105px;
    object-fit:cover;
    border-radius:14px;
    border:1px solid #e2eaf5;
    background:#061a3d;
}
.cms-doc-admin-row{
    background:#f8fafc;
    border:1px solid #e2eaf5;
    border-radius:14px;
    padding:14px;
    margin:12px 0;
}
.cms-doc-admin-row p{
    margin:4px 0;
    color:#475569;
}
.cms-doc-admin-row code{
    background:#eef2f7;
    padding:3px 7px;
    border-radius:8px;
}
@media(max-width:1100px){
    .home-feature-grid,
    .home-news-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:700px){
    .home-feature-grid,
    .home-news-grid,
    .home-media-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   HOME PREMIUM PFC — IMPLEMENTACIÓN DEL DISEÑO APROBADO
   ========================================================= */
.pfc-home-premium{
    --pfc-navy:#061a3d;
    --pfc-blue:#0b2d63;
    --pfc-red:#d71920;
    --pfc-gold:#c49a00;
    --pfc-muted:#5d6b82;
    --pfc-line:#e2e8f0;
    --pfc-soft:#f4f7fb;
    background:#fff;
    color:#071f4a;
}
.pfc-home-hero{
    position:relative;
    height:610px;
    overflow:hidden;
    background:#061a3d;
}
.pfc-home-hero-track,
.pfc-home-slide{
    height:100%;
}
.pfc-home-slide{
    position:absolute;
    inset:0;
    opacity:0;
    pointer-events:none;
    transition:opacity .7s ease;
}
.pfc-home-slide.active{
    opacity:1;
    pointer-events:auto;
}
.pfc-home-slide img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    filter:saturate(1.05) contrast(1.04) brightness(.95);
}
.pfc-home-slide:before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.88) 33%, rgba(255,255,255,.22) 60%, rgba(6,26,61,.35) 100%);
    z-index:1;
}
.pfc-home-slide:after{
    content:"";
    position:absolute;
    right:-70px;
    bottom:-100px;
    width:380px;
    height:470px;
    background:linear-gradient(135deg, var(--pfc-red), #a40012);
    transform:skewX(-18deg);
    border-radius:46px 0 0 0;
    z-index:2;
    opacity:.9;
}
.pfc-home-slide-inner{
    position:relative;
    z-index:3;
    height:100%;
    display:flex;
    align-items:center;
}
.pfc-home-slide-copy{
    max-width:660px;
    padding-bottom:56px;
}
.pfc-home-slide-copy h1{
    color:var(--pfc-navy);
    font-size:clamp(2.6rem,5vw,4.6rem);
    line-height:1.02;
    letter-spacing:-.055em;
    font-weight:950;
    margin:0 0 22px;
}
.pfc-home-slide-copy h1 b{
    display:block;
    color:var(--pfc-red);
    font-weight:950;
}
.pfc-home-slide-copy p{
    color:#263b56;
    line-height:1.65;
    font-size:1.05rem;
    max-width:620px;
    margin:0 0 26px;
}
.pfc-home-slide-copy a,
.pfc-red-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:0 24px;
    border-radius:10px;
    background:var(--pfc-red);
    color:#fff!important;
    font-weight:950;
    text-decoration:none;
    border:0;
    box-shadow:0 12px 28px rgba(215,25,32,.20);
}
.pfc-home-arrow{
    position:absolute;
    z-index:5;
    top:50%;
    transform:translateY(-50%);
    width:48px;
    height:48px;
    border-radius:999px;
    border:0;
    background:var(--pfc-red);
    color:#fff;
    font-size:2rem;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
}
.pfc-home-arrow.prev{left:24px}
.pfc-home-arrow.next{right:24px}
.pfc-home-dots{
    position:absolute;
    z-index:5;
    left:50%;
    bottom:92px;
    transform:translateX(-50%);
    display:flex;
    gap:10px;
}
.pfc-home-dots button,
.pfc-slider-dots i{
    width:12px;
    height:12px;
    border-radius:999px;
    border:0;
    background:#8b8b8b;
    cursor:pointer;
}
.pfc-home-dots button.active,
.pfc-slider-dots i.active{
    background:var(--pfc-red);
}
.pfc-quick-access{
    position:relative;
    z-index:7;
    margin-top:-58px;
    background:#fff;
    border:1px solid var(--pfc-line);
    border-radius:20px;
    box-shadow:0 20px 55px rgba(6,26,61,.14);
    display:grid;
    grid-template-columns:repeat(6,1fr);
    overflow:hidden;
}
.pfc-quick-access a{
    min-height:110px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    color:var(--pfc-navy);
    text-decoration:none;
    border-right:1px solid var(--pfc-line);
}
.pfc-quick-access a:last-child{border-right:0}
.pfc-quick-access a span{
    font-size:1.65rem;
}
.pfc-quick-access a strong{
    font-size:.92rem;
    text-align:center;
}
.pfc-home-section{
    padding:62px 0;
}
.pfc-home-head{
    margin-bottom:26px;
}
.pfc-home-head h2{
    color:var(--pfc-navy);
    font-size:clamp(2rem,3.5vw,2.6rem);
    line-height:1;
    margin:0 0 12px;
    font-weight:950;
    letter-spacing:-.04em;
    position:relative;
}
.pfc-home-head.left h2,
.pfc-home-head.split h2,
.pfc-home-head.center h2{
    display:inline-block;
}
.pfc-home-head h2:after{
    content:"";
    display:block;
    width:74px;
    height:4px;
    border-radius:999px;
    background:var(--pfc-red);
    margin-top:13px;
}
.pfc-home-head.center{text-align:center}
.pfc-home-head.center h2:after{margin-left:auto;margin-right:auto}
.pfc-home-head p{
    color:#1f2937;
    font-size:1rem;
    margin:0;
}
.pfc-home-head.split{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    border-bottom:1px solid #cfd7e3;
    padding-bottom:26px;
}
.pfc-offer-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:28px;
}
.pfc-offer-grid article{
    position:relative;
    background:#f2f4f7;
    border-radius:0 86px 14px 14px;
    padding:28px 24px 22px;
    min-height:420px;
    overflow:hidden;
}
.pfc-offer-grid h3{
    color:#000;
    font-size:1.65rem;
    line-height:1.1;
    margin:0 0 12px;
    font-weight:950;
}
.pfc-offer-grid .more{
    color:var(--pfc-red);
    text-decoration:none;
    font-weight:950;
}
.pfc-offer-grid img{
    width:100%;
    height:190px;
    object-fit:cover;
    display:block;
    border-radius:16px;
    margin:50px 0 16px;
}
.pfc-offer-grid p{
    color:#48576e;
    line-height:1.55;
    margin:0;
}
.pfc-offer-grid .round{
    position:absolute;
    top:155px;
    right:22px;
    width:54px;
    height:54px;
    border-radius:999px;
    background:var(--pfc-red);
    color:#fff!important;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.8rem;
    text-decoration:none;
    font-weight:900;
}
.pfc-news-wrap{
    background:#f2f4f7;
}
.pfc-news-layout{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:28px;
}
.pfc-featured-news,
.pfc-secondary-news article{
    background:#fff;
    border-radius:14px;
    overflow:hidden;
    box-shadow:0 12px 34px rgba(6,26,61,.06);
}
.pfc-featured-news{
    padding:18px;
}
.pfc-featured-news>img{
    width:100%;
    height:410px;
    object-fit:cover;
    border-radius:12px;
    display:block;
}
.pfc-featured-news>div{
    padding:18px 0 8px;
}
.pfc-featured-news span,
.pfc-secondary-news .badges span{
    display:inline-flex;
    background:var(--pfc-gold);
    color:#fff;
    border-radius:6px;
    padding:5px 8px;
    font-size:.75rem;
    font-weight:950;
    margin-right:5px;
}
.pfc-featured-news h3{
    color:#000;
    font-size:1.65rem;
    margin:14px 0 10px;
    line-height:1.12;
}
.pfc-featured-news p{
    color:#111827;
    line-height:1.55;
}
.pfc-featured-news a,
.pfc-secondary-news a,
.pfc-events-grid a{
    color:var(--pfc-red);
    font-weight:950;
    text-decoration:none;
}
.pfc-secondary-news{
    display:grid;
    gap:22px;
}
.pfc-secondary-news article{
    display:grid;
    grid-template-columns:220px 1fr;
    gap:18px;
    padding:16px;
}
.pfc-secondary-news img{
    width:100%;
    height:170px;
    object-fit:cover;
    border-radius:12px;
}
.pfc-secondary-news h3{
    color:#000;
    font-size:1.35rem;
    margin:0 0 10px;
    line-height:1.12;
}
.pfc-secondary-news p{
    color:#111827;
    line-height:1.5;
}
.pfc-events-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:28px;
}
.pfc-events-grid article{
    background:#fff;
    border-radius:14px;
    overflow:hidden;
}
.pfc-events-grid .event-img{
    position:relative;
}
.pfc-events-grid img{
    width:100%;
    height:190px;
    object-fit:cover;
    display:block;
    border-radius:12px;
}
.pfc-events-grid time{
    position:absolute;
    right:12px;
    top:12px;
    width:54px;
    min-height:58px;
    background:#fff;
    border-radius:8px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    box-shadow:0 8px 22px rgba(0,0,0,.15);
}
.pfc-events-grid time strong{
    color:var(--pfc-navy);
    font-size:1.35rem;
    line-height:1;
}
.pfc-events-grid time span{
    color:var(--pfc-navy);
    font-size:.75rem;
    font-weight:950;
}
.pfc-events-grid .event-meta{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin:16px 0 10px;
}
.pfc-events-grid small{
    color:#000;
}
.pfc-events-grid .event-meta span{
    background:var(--pfc-gold);
    color:#fff;
    border-radius:6px;
    padding:5px 8px;
    font-size:.74rem;
    font-weight:950;
}
.pfc-events-grid h3{
    color:#000;
    font-size:1.28rem;
    line-height:1.18;
    margin:0 0 22px;
}
.pfc-slider-dots{
    display:flex;
    justify-content:center;
    gap:10px;
    margin:28px 0;
}
.pfc-red-button.centered{
    margin:0 auto;
    width:max-content;
}
.pfc-videos-wrap{
    background:#fff;
}
.pfc-video-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:28px;
}
.pfc-video-grid a{
    position:relative;
    display:block;
    border-radius:4px;
    overflow:hidden;
    background:#061a3d;
}
.pfc-video-grid img{
    width:100%;
    height:180px;
    object-fit:cover;
    display:block;
    filter:brightness(.86);
}
.pfc-video-grid .play{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    width:58px;
    height:58px;
    border-radius:999px;
    background:rgba(215,25,32,.9);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.25rem;
}
.pfc-video-grid small{
    position:absolute;
    right:9px;
    bottom:9px;
    background:rgba(0,0,0,.72);
    color:#fff;
    border-radius:6px;
    padding:4px 7px;
    font-size:.72rem;
    font-weight:900;
}
.pfc-video-grid h3{
    color:#000;
    font-size:1.02rem;
    line-height:1.35;
    margin:14px 0 0;
}
.pfc-contact-wrap{
    background:#f2f4f7;
    padding:60px 0;
}
.pfc-contact-grid{
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:46px;
    align-items:center;
}
.pfc-contact-info{
    background:var(--pfc-navy);
    color:#fff;
    padding:40px;
    border-radius:0;
    min-height:470px;
}
.pfc-contact-info h2{
    font-size:1.4rem;
    line-height:1.2;
    max-width:350px;
    margin:0 0 36px;
    text-transform:uppercase;
}
.pfc-contact-info h3{
    font-size:2rem;
    margin:0 0 22px;
}
.pfc-contact-info p{
    color:#dbe7ff;
    line-height:1.65;
}
.pfc-contact-form{
    background:#fff;
    border-radius:18px;
    box-shadow:0 24px 60px rgba(6,26,61,.12);
    padding:34px;
    display:grid;
    gap:16px;
}
.pfc-contact-form label{
    color:#000;
    font-weight:850;
}
.pfc-contact-form input,
.pfc-contact-form textarea{
    width:100%;
    border:1px solid #c8c8c8;
    border-radius:7px;
    min-height:44px;
    padding:10px 12px;
    margin-top:7px;
    font:inherit;
}
.pfc-contact-form .two{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
}
.pfc-contact-form .check{
    display:flex;
    gap:8px;
    align-items:flex-start;
    font-weight:700;
    line-height:1.45;
}
.pfc-contact-form .check input{
    width:auto;
    min-height:auto;
    margin-top:3px;
}
.pfc-contact-form button{
    justify-self:start;
    min-height:48px;
    border:0;
    border-radius:10px;
    background:var(--pfc-red);
    color:#fff;
    padding:0 24px;
    font-weight:950;
    cursor:pointer;
}
@media(max-width:1150px){
    .pfc-quick-access{grid-template-columns:repeat(3,1fr)}
    .pfc-offer-grid,.pfc-events-grid,.pfc-video-grid{grid-template-columns:repeat(2,1fr)}
    .pfc-news-layout,.pfc-contact-grid{grid-template-columns:1fr}
}
@media(max-width:720px){
    .pfc-home-hero{height:560px}
    .pfc-home-slide:before{background:rgba(255,255,255,.88)}
    .pfc-home-slide:after{display:none}
    .pfc-home-arrow{display:none}
    .pfc-quick-access,.pfc-offer-grid,.pfc-events-grid,.pfc-video-grid,.pfc-secondary-news article,.pfc-contact-form .two{grid-template-columns:1fr}
    .pfc-home-head.split{align-items:flex-start;flex-direction:column}
    .pfc-featured-news>img{height:260px}
    .pfc-secondary-news img{height:210px}
}


/* =========================================================
   CORRECCIÓN CARRUSEL LIMPIO — SOLO IMAGEN, SIN CAPAS ENCIMA
   ========================================================= */
.pfc-home-hero.clean-image-carousel{
    height:var(--carousel-height, 620px) !important;
    background:#061a3d !important;
}
.pfc-home-hero.clean-image-carousel .pfc-home-hero-track,
.pfc-home-hero.clean-image-carousel .pfc-home-slide{
    height:var(--carousel-height, 620px) !important;
}
.pfc-home-hero.clean-image-carousel .pfc-home-slide img{
    width:100% !important;
    height:100% !important;
    display:block !important;
    filter:none !important;
    background:#061a3d !important;
}
.pfc-home-hero.clean-image-carousel .pfc-home-slide:before,
.pfc-home-hero.clean-image-carousel .pfc-home-slide:after{
    display:none !important;
    content:none !important;
}
.pfc-home-hero.clean-image-carousel .pfc-home-slide-inner{
    pointer-events:none;
}
.pfc-home-hero.clean-image-carousel .pfc-home-slide-copy{
    pointer-events:auto;
    background:rgba(255,255,255,.86);
    padding:24px;
    border-radius:18px;
    box-shadow:0 18px 45px rgba(6,26,61,.16);
}
.pfc-home-hero.clean-image-carousel .pfc-home-dots{
    bottom:28px !important;
}
.pfc-home-hero.clean-image-carousel .pfc-home-arrow{
    background:rgba(215,25,32,.92) !important;
}


/* =========================================================
   PANEL — EDITOR REAL DE IMAGEN DEL CARRUSEL
   ========================================================= */
.cms-real-image-editor{
    background:#f8fafc;
    border:1px solid #dfe7f2;
    border-radius:16px;
    padding:16px;
    margin:14px 0 18px;
}
.cms-real-image-editor h3{
    color:#071f4a;
    margin:0 0 6px;
    font-size:1.05rem;
}
.cms-real-image-editor p{
    color:#5d6b82;
    margin:0 0 14px;
    line-height:1.55;
}


/* =========================================================
   FIX FUERTE — CARRUSEL SIEMPRE VISIBLE Y SIN CAPAS
   ========================================================= */
.pfc-home-premium .pfc-home-hero.clean-image-carousel{
    height:var(--carousel-height, 620px) !important;
    min-height:420px !important;
    overflow:hidden !important;
    position:relative !important;
    background:#061a3d !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide{
    height:var(--carousel-height, 620px) !important;
    min-height:420px !important;
    position:absolute !important;
    inset:0 !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide.active{
    opacity:1 !important;
    visibility:visible !important;
    z-index:2 !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide:not(.active){
    opacity:0 !important;
    visibility:hidden !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide img{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    min-height:100% !important;
    opacity:1 !important;
    visibility:visible !important;
    display:block !important;
    filter:none !important;
    transform:none !important;
    background:#061a3d !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide::before,
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide::after{
    display:none !important;
    opacity:0 !important;
    content:none !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide-inner{
    position:relative !important;
    z-index:4 !important;
    height:100% !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide-copy{
    max-width:560px !important;
    background:rgba(255,255,255,.88) !important;
    border-radius:18px !important;
    padding:24px !important;
    box-shadow:0 18px 45px rgba(6,26,61,.18) !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-dots{
    bottom:22px !important;
    z-index:10 !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-arrow{
    z-index:10 !important;
}


/* =========================================================
   PANEL — VISTA PREVIA CLARA DE IMAGEN DEL BANNER
   ========================================================= */
.cms-carousel-visible-preview{
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:18px;
    padding:14px;
    margin:14px 0;
    box-shadow:0 12px 30px rgba(6,26,61,.06);
}
.cms-carousel-visible-preview .preview-title-row{
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:center;
    margin-bottom:10px;
}
.cms-carousel-visible-preview .preview-title-row strong{
    color:#071f4a;
}
.cms-carousel-visible-preview .preview-title-row span{
    color:#d71920;
    font-weight:900;
    font-size:.85rem;
}
.cms-carousel-visible-preview img{
    width:100%;
    border-radius:14px;
    border:1px solid #e2e8f0;
    background:#f8fafc;
    display:block;
}
.cms-carousel-visible-preview p{
    color:#475569;
    margin:10px 0 0;
    word-break:break-word;
}
.cms-carousel-visible-preview code{
    background:#f1f5f9;
    padding:3px 6px;
    border-radius:7px;
}
.cms-carousel-visible-preview .empty-preview{
    height:220px;
    border-radius:14px;
    border:1px dashed #cbd5e1;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#64748b;
    background:#f8fafc;
}
.quick-image-presets{
    background:#fff7f7;
    border:1px solid #ffd6d6;
    border-radius:14px;
    padding:14px;
    margin:12px 0 16px;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    align-items:center;
}
.quick-image-presets strong{
    width:100%;
    color:#071f4a;
}
.quick-image-presets form{
    margin:0;
}
.quick-image-presets .btn{
    min-height:38px;
}


/* =========================================================
   FIX FINAL HOME — CARRUSEL SIN ESPACIOS BLANCOS
   ========================================================= */
.pfc-home-premium .pfc-home-hero.clean-image-carousel{
    height:var(--carousel-height, 620px) !important;
    min-height:520px !important;
    max-height:760px !important;
    background:#061a3d !important;
    overflow:hidden !important;
    position:relative !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-hero-track,
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide{
    height:var(--carousel-height, 620px) !important;
    min-height:520px !important;
    max-height:760px !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide{
    position:absolute !important;
    inset:0 !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide.active{
    opacity:1 !important;
    visibility:visible !important;
    z-index:2 !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide:not(.active){
    opacity:0 !important;
    visibility:hidden !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide img{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    min-width:100% !important;
    min-height:100% !important;
    object-fit:cover !important;
    object-position:center center;
    display:block !important;
    opacity:1 !important;
    visibility:visible !important;
    filter:none !important;
    background:#061a3d !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide::before,
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide::after{
    display:none !important;
    opacity:0 !important;
    content:none !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-dots{
    bottom:118px !important;
    z-index:30 !important;
    background:rgba(255,255,255,.85);
    padding:8px 12px;
    border-radius:999px;
    box-shadow:0 8px 22px rgba(6,26,61,.12);
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-dots button{
    width:13px !important;
    height:13px !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-arrow{
    z-index:30 !important;
}
.pfc-quick-access{
    margin-top:-80px !important;
    position:relative !important;
    z-index:20 !important;
}
@media(max-width:720px){
    .pfc-home-premium .pfc-home-hero.clean-image-carousel{
        height:520px !important;
        min-height:520px !important;
    }
    .pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-hero-track,
    .pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide{
        height:520px !important;
        min-height:520px !important;
    }
    .pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-dots{
        bottom:128px !important;
    }
    .pfc-quick-access{
        margin-top:-92px !important;
    }
}


/* =========================================================
   PANEL ONLY QUIENES OFERTA — NO MODIFICA PÁGINA PÚBLICA
   ========================================================= */
.cms-preview-row img{
    max-width:220px;
    max-height:130px;
    object-fit:cover;
    border-radius:12px;
    border:1px solid #dfe7f2;
}


/* Nota pública de créditos conectada al panel */
.credit_note_public{
    max-width:1200px;
    margin:14px auto 0;
    padding:0 24px;
    color:#ffffff;
    opacity:.9;
    font-weight:700;
}


/* =========================================================
   PEPE ASISTENTE VIRTUAL 3.0 — CHAT MODERNO RESPONSIVE
   ========================================================= */
.pepe-chat-widget{
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:99999;
    font-family:inherit;
}
.pepe-chat-button{
    position:relative;
    border:0;
    background:linear-gradient(135deg,#0b2d63,#061a3d);
    color:#fff;
    border-radius:999px;
    padding:8px 14px 8px 8px;
    display:flex;
    align-items:center;
    gap:8px;
    box-shadow:0 18px 45px rgba(6,26,61,.28);
    cursor:pointer;
    transition:transform .18s ease, box-shadow .18s ease;
}
.pepe-chat-button:hover{
    transform:translateY(-2px);
    box-shadow:0 24px 60px rgba(6,26,61,.34);
}
.pepe-chat-button img{
    width:62px;
    height:62px;
    object-fit:cover;
    border-radius:999px;
    background:#fff;
    border:3px solid rgba(255,255,255,.85);
}
.pepe-chat-button strong{
    font-size:.92rem;
    letter-spacing:.01em;
}
.pepe-status-dot{
    position:absolute;
    left:55px;
    bottom:9px;
    width:15px;
    height:15px;
    border-radius:999px;
    background:#22c55e;
    border:3px solid #fff;
}
.pepe-chat-window{
    position:absolute;
    right:0;
    bottom:84px;
    width:min(390px, calc(100vw - 28px));
    height:min(620px, calc(100vh - 120px));
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:24px;
    box-shadow:0 28px 90px rgba(6,26,61,.30);
    overflow:hidden;
    display:none;
    flex-direction:column;
}
.pepe-chat-widget.open .pepe-chat-window{
    display:flex;
}
.pepe-chat-header{
    background:linear-gradient(135deg,#061a3d,#0b2d63);
    color:#fff;
    padding:16px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.pepe-chat-person{
    display:flex;
    align-items:center;
    gap:12px;
}
.pepe-chat-person img{
    width:50px;
    height:50px;
    border-radius:999px;
    object-fit:cover;
    background:#fff;
    border:2px solid rgba(255,255,255,.75);
}
.pepe-chat-person strong{
    display:block;
    font-size:1.04rem;
}
.pepe-chat-person span{
    display:block;
    color:#dbeafe;
    font-size:.82rem;
}
.pepe-chat-actions{
    display:flex;
    gap:7px;
}
.pepe-chat-actions button{
    width:32px;
    height:32px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.22);
    background:rgba(255,255,255,.10);
    color:#fff;
    font-weight:900;
    cursor:pointer;
}
.pepe-chat-categories{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:6px;
    padding:10px;
    border-bottom:1px solid #e2e8f0;
    background:#f8fafc;
}
.pepe-chat-categories button{
    border:1px solid #dbe4ef;
    background:#fff;
    color:#061a3d;
    border-radius:12px;
    padding:8px 5px;
    font-size:.73rem;
    font-weight:900;
    cursor:pointer;
}
.pepe-chat-messages{
    flex:1;
    overflow-y:auto;
    padding:16px;
    background:linear-gradient(180deg,#f8fafc,#eef4fb);
    display:flex;
    flex-direction:column;
    gap:12px;
}
.pepe-msg{
    max-width:86%;
    padding:12px 14px;
    border-radius:17px;
    line-height:1.48;
    font-size:.93rem;
    box-shadow:0 8px 20px rgba(6,26,61,.06);
    white-space:pre-wrap;
}
.pepe-msg.bot{
    align-self:flex-start;
    background:#fff;
    color:#1f2937;
    border-bottom-left-radius:5px;
}
.pepe-msg.user{
    align-self:flex-end;
    background:#061a3d;
    color:#fff;
    border-bottom-right-radius:5px;
}
.pepe-msg small{
    display:block;
    margin-top:8px;
    color:#64748b;
    font-weight:800;
    font-size:.72rem;
}
.pepe-chat-suggestions{
    display:flex;
    gap:7px;
    overflow-x:auto;
    padding:10px 12px;
    border-top:1px solid #e2e8f0;
    background:#fff;
}
.pepe-chat-suggestions button{
    white-space:nowrap;
    border:1px solid #dbe4ef;
    background:#f8fafc;
    color:#061a3d;
    border-radius:999px;
    padding:7px 10px;
    font-size:.78rem;
    font-weight:850;
    cursor:pointer;
}
.pepe-chat-form{
    display:flex;
    gap:8px;
    padding:12px;
    border-top:1px solid #e2e8f0;
    background:#fff;
}
.pepe-chat-form input{
    flex:1;
    min-width:0;
    border:1px solid #cbd5e1;
    border-radius:999px;
    padding:12px 14px;
    font:inherit;
}
.pepe-chat-form button{
    border:0;
    border-radius:999px;
    background:#d71920;
    color:#fff;
    font-weight:950;
    padding:0 16px;
    cursor:pointer;
}
@media(max-width:560px){
    .pepe-chat-widget{
        right:12px;
        bottom:12px;
    }
    .pepe-chat-window{
        right:-2px;
        bottom:78px;
        width:calc(100vw - 20px);
        height:calc(100vh - 100px);
        border-radius:20px;
    }
    .pepe-chat-categories{
        grid-template-columns:repeat(2,1fr);
    }
    .pepe-chat-button strong{
        display:none;
    }
}


/* =========================================================
   PANEL PEPE FAQ
   ========================================================= */
.pepe-filter-form{
    align-items:end;
    margin-bottom:18px;
}
.pepe-admin-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-top:10px;
}
.pepe-admin-actions form{
    margin:0;
}
.admin-form-grid .wide{
    grid-column:1 / -1;
}
.cms-edit-item summary span{
    color:#d71920;
    font-size:.82rem;
    font-weight:950;
}


/* =========================================================
   PEPE 4.0 — INTERACCIÓN MEJORADA
   ========================================================= */
.pepe-chat-window{
    border-radius:28px !important;
}
.pepe-chat-header{
    min-height:82px;
}
.pepe-chat-categories button:hover,
.pepe-chat-suggestions button:hover{
    background:#061a3d;
    color:#fff;
    border-color:#061a3d;
}
.pepe-msg.bot{
    border:1px solid #e2e8f0;
}
.pepe-msg.user{
    background:linear-gradient(135deg,#061a3d,#0b2d63);
}
.pepe-typing{
    display:flex;
    gap:5px;
    align-items:center;
    width:max-content;
}
.pepe-typing i{
    width:8px;
    height:8px;
    border-radius:999px;
    background:#94a3b8;
    display:block;
    animation:pepeTyping 1s infinite ease-in-out;
}
.pepe-typing i:nth-child(2){animation-delay:.15s}
.pepe-typing i:nth-child(3){animation-delay:.3s}
@keyframes pepeTyping{
    0%,80%,100%{transform:translateY(0);opacity:.45}
    40%{transform:translateY(-5px);opacity:1}
}
.pepe-feedback-row{
    display:flex;
    gap:7px;
    flex-wrap:wrap;
    margin-top:10px;
}
.pepe-feedback-row button{
    border:1px solid #dbe4ef;
    background:#f8fafc;
    color:#061a3d;
    border-radius:999px;
    padding:6px 9px;
    font-size:.72rem;
    font-weight:900;
    cursor:pointer;
}
.pepe-feedback-row button:hover{
    background:#d71920;
    color:#fff;
    border-color:#d71920;
}
.pepe-feedback-row em{
    font-style:normal;
    color:#15803d;
    font-weight:800;
    font-size:.78rem;
}
.pepe-admin-category-board{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin:16px 0 22px;
}
.pepe-admin-category-board article{
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:16px;
    padding:16px;
    box-shadow:0 10px 28px rgba(6,26,61,.06);
}
.pepe-admin-category-board strong{
    display:block;
    color:#061a3d;
    font-size:1.8rem;
}
.pepe-admin-category-board span{
    color:#d71920;
    font-weight:950;
    font-size:.8rem;
    text-transform:uppercase;
}
.pepe-admin-category-board p{
    margin:8px 0 0;
    color:#64748b;
    line-height:1.45;
}
@media(max-width:900px){
    .pepe-admin-category-board{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:560px){
    .pepe-admin-category-board{grid-template-columns:1fr;}
}


/* =========================================================
   IDENTIDAD VISUAL CMS — LOGO Y COLORES DESDE PANEL
   ========================================================= */
body{
    background:var(--pfc-bg, #ffffff);
    color:var(--pfc-text, #071f4a);
}
.site-header,
.public-polished-header,
.identity-bar,
.utility-bar{
    background:var(--pfc-header-bg, #061a3d) !important;
}
.main-nav{
    background:var(--pfc-nav-bg, #061a3d) !important;
}
.nav-menu a,
.main-nav a,
.nav-toggle{
    color:var(--pfc-nav-text, #ffffff) !important;
}
.brand strong,
.brand span{
    color:var(--pfc-nav-text, #ffffff) !important;
}
.brand img{
    width:72px;
    height:72px;
    object-fit:contain;
    background:#fff;
    border-radius:4px;
}
.btn-red,
.pfc-red-button,
.pfc-home-slide-copy a,
.pfc-contact-form button,
.pepe-chat-form button{
    background:var(--pfc-button-bg, #d71920) !important;
    color:var(--pfc-button-text, #ffffff) !important;
}
a,
.nav-menu .active,
.pfc-home-head h2,
.page-hero h1{
    color:var(--pfc-primary, #061a3d);
}
.pfc-home-head h2:after,
.pepe-feedback-row button:hover{
    background:var(--pfc-accent, #d71920) !important;
}
.pepe-chat-header,
.pepe-chat-button{
    background:linear-gradient(135deg, var(--pfc-primary, #061a3d), var(--pfc-secondary, #0b2d63)) !important;
}


/* =========================================================
   PANEL IDENTIDAD VISUAL
   ========================================================= */
.color-pair{
    display:grid;
    grid-template-columns:56px 1fr;
    gap:10px;
    align-items:center;
}
.color-pair input[type="color"]{
    width:56px;
    height:44px;
    padding:3px;
    border:1px solid #dfe7f2;
    border-radius:10px;
    background:#fff;
}
.identidad-preview{
    border:1px solid #dfe7f2;
    border-radius:18px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 12px 30px rgba(6,26,61,.08);
}
.identidad-preview .pv-head{
    display:flex;
    align-items:center;
    gap:14px;
    padding:18px;
    background:var(--pv-nav);
    color:var(--pv-text);
}
.identidad-preview .pv-head img{
    width:64px;
    height:64px;
    object-fit:contain;
    background:#fff;
    border-radius:8px;
}
.identidad-preview .pv-head strong{
    display:block;
    font-size:1.25rem;
    color:var(--pv-text);
}
.identidad-preview .pv-head span{
    display:block;
    color:var(--pv-text);
    opacity:.9;
}
.identidad-preview .pv-nav{
    padding:12px 18px;
    background:var(--pv-primary);
    color:var(--pv-text);
    font-weight:800;
}
.identidad-preview button{
    margin:18px;
    border:0;
    border-radius:10px;
    padding:12px 18px;
    background:var(--pv-accent);
    color:#fff;
    font-weight:950;
}


/* =========================================================
   LOGO TRANSPARENTE — SIN CUADRO BLANCO
   ========================================================= */
.site-header .brand img,
.public-polished-header .brand img,
.identity-bar .brand img{
    width:var(--pfc-logo-width, 72px) !important;
    height:var(--pfc-logo-height, 72px) !important;
    object-fit:contain !important;
    background:var(--pfc-logo-bg, transparent) !important;
    border-radius:var(--pfc-logo-radius, 0px) !important;
    padding:var(--pfc-logo-padding, 0px) !important;
    box-shadow:none !important;
}


/* Vista previa de logo transparente en panel */
.cms-preview-row img{
    background-color:transparent;
}
.identidad-preview .pv-head img{
    background:var(--pfc-logo-bg, transparent) !important;
    padding:var(--pfc-logo-padding, 0px) !important;
    border-radius:var(--pfc-logo-radius, 0px) !important;
}


/* =========================================================
   RESPONSIVE GLOBAL — MULTIDISPOSITIVO SIN DEFORMARSE
   ========================================================= */
*, *::before, *::after{
    box-sizing:border-box;
}
html{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
    scroll-behavior:smooth;
}
body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
}
img, video, iframe, embed, object{
    max-width:100%;
}
img, video{
    height:auto;
}
table{
    max-width:100%;
}
.container,
.pfc-container,
.page-container,
.content-container{
    width:min(100% - 32px, 1280px);
    max-width:1280px;
    margin-left:auto;
    margin-right:auto;
}
.wide,
.admin-form-grid .wide{
    min-width:0;
}

/* Encabezado flexible */
.public-polished-header .utility-inner,
.public-polished-header .identity-inner,
.public-polished-header .nav-inner{
    min-width:0;
}
.public-polished-header .identity-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
}
.public-polished-header .brand{
    min-width:0;
    display:flex;
    align-items:center;
    gap:16px;
}
.public-polished-header .brand div{
    min-width:0;
}
.public-polished-header .brand strong,
.public-polished-header .brand span{
    overflow-wrap:anywhere;
}
.public-polished-header .nav-inner{
    position:relative;
}
.public-polished-header .nav-menu{
    min-width:0;
    flex-wrap:wrap;
}

/* Menús desplegables en escritorio sin romper ancho */
.nav-menu .mega-menu,
.nav-menu .mega-menu.compact-menu{
    max-width:min(92vw, 320px) !important;
}

/* Carrusel Home adaptable */
.pfc-home-premium .pfc-home-hero.clean-image-carousel{
    width:100% !important;
    height:clamp(420px, 58vw, 760px) !important;
    min-height:420px !important;
    max-height:760px !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-hero-track,
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide{
    height:100% !important;
    min-height:100% !important;
    max-height:none !important;
}
.pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-slide img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center;
}
.pfc-home-premium .pfc-home-dots{
    left:50%;
    transform:translateX(-50%);
}

/* Accesos rápidos: no se montan ni se salen */
.pfc-quick-access,
.pfc-home-quick-access,
.quick-access{
    width:min(100% - 32px, 1120px) !important;
    max-width:1120px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    overflow:hidden;
}
.pfc-quick-grid,
.pfc-home-quick-grid,
.quick-access-grid{
    display:grid !important;
    grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)) !important;
}
.pfc-quick-access a,
.pfc-home-quick-access a,
.quick-access a{
    min-width:0;
    overflow-wrap:anywhere;
}

/* Grillas de contenido */
.pfc-offer-grid,
.pfc-news-grid,
.pfc-events-grid,
.pfc-videos-grid,
.practice-modules-grid,
.research-grid,
.docentes-grid,
.cards-grid,
.modules-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
    gap:24px;
}
.pfc-news-layout,
.home-news-layout{
    display:grid;
    grid-template-columns:minmax(0, 1.1fr) minmax(300px, .9fr);
    gap:28px;
}
.card,
.pfc-card,
.module-card,
.news-card,
.event-card,
.video-card{
    min-width:0;
}
.card img,
.pfc-card img,
.module-card img,
.news-card img,
.event-card img,
.video-card img{
    width:100%;
    height:auto;
    object-fit:cover;
}

/* Tablas y planes de estudio */
.plan-table,
.curriculum-table,
.table-wrap,
.responsive-table{
    width:100%;
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}
.plan-table table,
.curriculum-table table,
.table-wrap table,
.responsive-table table{
    min-width:680px;
}

/* Páginas internas: texto no se sale */
.page-hero h1,
.pfc-home-hero h1,
h1, h2, h3{
    overflow-wrap:anywhere;
}
p, li, a, span{
    overflow-wrap:break-word;
}

/* Pepe responsive */
.pepe-chat-widget{
    right:clamp(10px, 2vw, 22px) !important;
    bottom:clamp(10px, 2vw, 22px) !important;
}
.pepe-chat-window{
    width:min(410px, calc(100vw - 22px)) !important;
    height:min(640px, calc(100dvh - 110px)) !important;
}

/* Panel admin responsive */
.admin-shell,
.admin-layout,
.admin-main,
.admin-content{
    max-width:100%;
    min-width:0;
}
.admin-form-grid{
    grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)) !important;
}
.admin-dashboard-grid-pro,
.admin-stats-grid,
.cms-grid{
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)) !important;
}
.cms-edit-item,
.admin-card-pro{
    max-width:100%;
    overflow:hidden;
}
.cms-doc-admin-row{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}
.cms-preview-row{
    flex-wrap:wrap;
}
.cms-preview-row img{
    max-width:100%;
}

/* Tablet */
@media (max-width: 1024px){
    .container,
    .pfc-container,
    .page-container,
    .content-container{
        width:min(100% - 28px, 100%);
    }

    .public-polished-header .identity-inner{
        align-items:flex-start;
    }
    .public-polished-header .brand strong{
        font-size:clamp(1.1rem, 2.6vw, 1.65rem) !important;
        line-height:1.15;
    }
    .public-polished-header .brand span{
        font-size:clamp(.85rem, 2vw, 1rem) !important;
    }

    .pfc-home-premium .pfc-home-hero.clean-image-carousel{
        height:clamp(380px, 62vw, 640px) !important;
    }
    .pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-dots{
        bottom:96px !important;
    }
    .pfc-quick-access{
        margin-top:-64px !important;
    }

    .pfc-news-layout,
    .home-news-layout{
        grid-template-columns:1fr;
    }
}

/* Celular: menú hamburguesa real y contenido apilado */
@media (max-width: 820px){
    .utility-bar{
        display:none !important;
    }

    .public-polished-header .identity-bar{
        padding:10px 0 !important;
    }
    .public-polished-header .identity-inner{
        flex-direction:row;
        align-items:center;
    }
    .public-polished-header .brand{
        gap:10px;
    }
    .public-polished-header .brand img{
        width:clamp(52px, 15vw, 68px) !important;
        height:clamp(52px, 15vw, 68px) !important;
        flex:0 0 auto;
    }
    .public-polished-header .brand strong{
        font-size:1.05rem !important;
        line-height:1.15 !important;
    }
    .public-polished-header .brand span{
        font-size:.78rem !important;
        line-height:1.25 !important;
    }

    .public-polished-header .nav-inner{
        min-height:52px;
        display:flex;
        justify-content:flex-end;
        align-items:center;
    }
    .nav-toggle{
        display:flex !important;
        width:44px;
        height:38px;
        align-items:center;
        justify-content:center;
        flex-direction:column;
        gap:5px;
        background:rgba(255,255,255,.10);
        border:1px solid rgba(255,255,255,.22);
        border-radius:10px;
        cursor:pointer;
        z-index:100002;
    }
    .nav-toggle span{
        width:22px;
        height:2px;
        background:var(--pfc-nav-text, #fff);
        display:block;
        border-radius:3px;
    }
    .public-polished-header .nav-menu{
        position:absolute !important;
        top:100%;
        left:16px;
        right:16px;
        display:none !important;
        flex-direction:column !important;
        align-items:stretch !important;
        background:var(--pfc-nav-bg, #061a3d) !important;
        border:1px solid rgba(255,255,255,.16);
        border-radius:16px;
        padding:12px;
        box-shadow:0 22px 60px rgba(6,26,61,.32);
        z-index:100001;
    }
    body.nav-open .public-polished-header .nav-menu,
    .public-polished-header .nav-menu.open{
        display:flex !important;
    }
    .public-polished-header .nav-menu a{
        display:flex !important;
        width:100%;
        padding:12px 14px !important;
        border-radius:10px;
        justify-content:space-between;
    }
    .nav-menu .nav-item,
    .nav-menu .has-mega{
        width:100% !important;
    }
    .nav-menu .mega-menu,
    .nav-menu .mega-menu.compact-menu{
        position:static !important;
        display:none !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        box-shadow:none !important;
        border-radius:12px !important;
        margin:6px 0 0 !important;
        transform:none !important;
    }
    .nav-menu .nav-item:hover .mega-menu,
    .nav-menu .has-mega:hover .mega-menu,
    .nav-menu .nav-item:focus-within .mega-menu,
    .nav-menu .has-mega:focus-within .mega-menu{
        display:block !important;
    }

    .pfc-home-premium .pfc-home-hero.clean-image-carousel{
        height:clamp(330px, 64vw, 520px) !important;
        min-height:330px !important;
    }
    .pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-dots{
        bottom:86px !important;
        padding:6px 9px;
    }
    .pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-dots button{
        width:10px !important;
        height:10px !important;
    }
    .pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-arrow{
        width:38px !important;
        height:38px !important;
    }
    .pfc-quick-access{
        margin-top:-54px !important;
        width:calc(100% - 20px) !important;
        border-radius:18px !important;
    }
    .pfc-quick-grid,
    .pfc-home-quick-grid,
    .quick-access-grid{
        grid-template-columns:repeat(2, minmax(0,1fr)) !important;
    }
    .pfc-quick-access a,
    .pfc-home-quick-access a,
    .quick-access a{
        padding:12px 8px !important;
        font-size:.82rem !important;
    }

    .page-hero,
    .pfc-page-hero,
    .pfc-home-section{
        padding-left:0 !important;
        padding-right:0 !important;
    }

    .pfc-offer-grid,
    .pfc-news-grid,
    .pfc-events-grid,
    .pfc-videos-grid,
    .practice-modules-grid,
    .research-grid,
    .docentes-grid,
    .cards-grid,
    .modules-grid{
        grid-template-columns:1fr !important;
    }

    .pepe-chat-button img{
        width:54px !important;
        height:54px !important;
    }
    .pepe-chat-window{
        right:-6px !important;
        bottom:72px !important;
        width:calc(100vw - 20px) !important;
        height:calc(100dvh - 96px) !important;
        border-radius:18px !important;
    }
    .pepe-chat-categories{
        grid-template-columns:repeat(2, 1fr) !important;
    }

    .admin-sidebar{
        position:static !important;
        width:100% !important;
    }
    .admin-shell,
    .admin-layout{
        display:block !important;
    }
}

/* Celular pequeño */
@media (max-width: 520px){
    .container,
    .pfc-container,
    .page-container,
    .content-container{
        width:calc(100% - 18px);
    }
    .public-polished-header .brand strong{
        font-size:.95rem !important;
    }
    .public-polished-header .brand span{
        font-size:.72rem !important;
    }
    .pfc-home-premium .pfc-home-hero.clean-image-carousel{
        height:300px !important;
        min-height:300px !important;
    }
    .pfc-home-premium .pfc-home-hero.clean-image-carousel .pfc-home-dots{
        bottom:74px !important;
    }
    .pfc-quick-access{
        margin-top:-42px !important;
    }
    .pfc-quick-grid,
    .pfc-home-quick-grid,
    .quick-access-grid{
        grid-template-columns:1fr 1fr !important;
    }
    h1{
        font-size:clamp(2rem, 9vw, 3.1rem) !important;
    }
    h2{
        font-size:clamp(1.45rem, 6vw, 2.1rem) !important;
    }
    .admin-form-grid{
        grid-template-columns:1fr !important;
    }
}

/* Impide deformación de imágenes en secciones de evidencia */
.gallery img,
.evidence-gallery img,
.infografia-card img,
.practice-evidence img{
    width:100%;
    height:auto;
    object-fit:contain;
}


/* =========================================================
   FIX MENÚ DESPLEGABLE — LETRAS VISIBLES Y COLORES EDITABLES
   ========================================================= */
.public-polished-header .nav-menu .mega-menu,
.public-polished-header .nav-menu .mega-menu.compact-menu,
.public-polished-header .nav-menu .dropdown-menu,
.public-polished-header .nav-menu .submenu,
.nav-menu .mega-menu,
.nav-menu .mega-menu.compact-menu,
.nav-menu .dropdown-menu,
.nav-menu .submenu{
    background:var(--pfc-dropdown-bg, #ffffff) !important;
    color:var(--pfc-dropdown-text, #061a3d) !important;
    border:1px solid var(--pfc-dropdown-border, #dfe7f2) !important;
    opacity:1 !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
}

.public-polished-header .nav-menu .mega-menu *,
.public-polished-header .nav-menu .mega-menu.compact-menu *,
.public-polished-header .nav-menu .dropdown-menu *,
.public-polished-header .nav-menu .submenu *,
.nav-menu .mega-menu *,
.nav-menu .mega-menu.compact-menu *,
.nav-menu .dropdown-menu *,
.nav-menu .submenu *{
    color:var(--pfc-dropdown-text, #061a3d) !important;
    opacity:1 !important;
    text-shadow:none !important;
}

.public-polished-header .nav-menu .mega-menu a,
.public-polished-header .nav-menu .mega-menu.compact-menu a,
.public-polished-header .nav-menu .dropdown-menu a,
.public-polished-header .nav-menu .submenu a,
.nav-menu .mega-menu a,
.nav-menu .mega-menu.compact-menu a,
.nav-menu .dropdown-menu a,
.nav-menu .submenu a{
    background:var(--pfc-dropdown-bg, #ffffff) !important;
    color:var(--pfc-dropdown-text, #061a3d) !important;
    font-weight:850 !important;
    border-bottom:1px solid rgba(6,26,61,.08) !important;
}

.public-polished-header .nav-menu .mega-menu a:hover,
.public-polished-header .nav-menu .mega-menu.compact-menu a:hover,
.public-polished-header .nav-menu .dropdown-menu a:hover,
.public-polished-header .nav-menu .submenu a:hover,
.nav-menu .mega-menu a:hover,
.nav-menu .mega-menu.compact-menu a:hover,
.nav-menu .dropdown-menu a:hover,
.nav-menu .submenu a:hover{
    background:var(--pfc-dropdown-hover-bg, #eef4fb) !important;
    color:var(--pfc-dropdown-hover-text, #d71920) !important;
}

/* En móvil, el desplegable usa contraste dentro del menú hamburguesa */
@media (max-width: 820px){
    .public-polished-header .nav-menu .mega-menu,
    .public-polished-header .nav-menu .mega-menu.compact-menu,
    .public-polished-header .nav-menu .dropdown-menu,
    .public-polished-header .nav-menu .submenu,
    .nav-menu .mega-menu,
    .nav-menu .mega-menu.compact-menu,
    .nav-menu .dropdown-menu,
    .nav-menu .submenu{
        background:rgba(255,255,255,.08) !important;
        border:1px solid rgba(255,255,255,.16) !important;
    }

    .public-polished-header .nav-menu .mega-menu a,
    .public-polished-header .nav-menu .mega-menu.compact-menu a,
    .public-polished-header .nav-menu .dropdown-menu a,
    .public-polished-header .nav-menu .submenu a,
    .nav-menu .mega-menu a,
    .nav-menu .mega-menu.compact-menu a,
    .nav-menu .dropdown-menu a,
    .nav-menu .submenu a{
        background:transparent !important;
        color:var(--pfc-nav-text, #ffffff) !important;
        border-bottom:1px solid rgba(255,255,255,.10) !important;
    }

    .public-polished-header .nav-menu .mega-menu a:hover,
    .public-polished-header .nav-menu .mega-menu.compact-menu a:hover,
    .public-polished-header .nav-menu .dropdown-menu a:hover,
    .public-polished-header .nav-menu .submenu a:hover,
    .nav-menu .mega-menu a:hover,
    .nav-menu .mega-menu.compact-menu a:hover,
    .nav-menu .dropdown-menu a:hover,
    .nav-menu .submenu a:hover{
        background:rgba(255,255,255,.14) !important;
        color:var(--pfc-nav-text, #ffffff) !important;
    }
}


/* Vista previa del menú desplegable en Identidad visual */
.identidad-preview .pv-dropdown-demo{
    width:min(260px, 92%);
    margin:12px 18px 0;
    border:1px solid #dfe7f2;
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 10px 24px rgba(6,26,61,.08);
}
.identidad-preview .pv-dropdown-demo span{
    display:block;
    padding:10px 14px;
    font-weight:850;
    border-bottom:1px solid rgba(6,26,61,.08);
}
.identidad-preview .pv-dropdown-demo span:last-child{
    border-bottom:0;
}


/* =========================================================
   AJUSTE PUNTUAL — REVISTA EN INVESTIGACIÓN + REPOSITORIO EN PROYECTOS
   No cambia la estructura visual base de Investigación
   ========================================================= */
.research-revista-access{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin:0 0 24px;
    padding:18px 20px;
    border-radius:18px;
    background:linear-gradient(135deg, var(--pfc-primary, #061a3d), var(--pfc-secondary, #0b2d63));
    color:#fff;
    box-shadow:0 14px 38px rgba(6,26,61,.12);
}
.research-revista-access > div{
    display:flex;
    align-items:center;
    gap:14px;
    min-width:0;
}
.research-revista-access span{
    width:54px;
    height:54px;
    border-radius:16px;
    background:rgba(255,255,255,.14);
    display:grid;
    place-items:center;
    font-size:1.8rem;
    flex:0 0 auto;
}
.research-revista-access strong{
    color:#fff;
    font-size:1.18rem;
    display:block;
}
.research-revista-access p{
    margin:3px 0 0;
    color:#e7eefc;
}
.research-revista-access a{
    background:var(--pfc-accent, #d71920);
    color:#fff !important;
    text-decoration:none;
    border-radius:12px;
    padding:11px 16px;
    font-weight:950;
    white-space:nowrap;
}

.research-project-repository{
    margin-top:34px;
    padding:24px;
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:22px;
    box-shadow:0 16px 42px rgba(6,26,61,.08);
}
.project-repo-tools{
    display:grid;
    grid-template-columns:minmax(220px, 1fr) 240px;
    gap:12px;
    margin:18px 0;
}
.project-repo-tools input,
.project-repo-tools select{
    width:100%;
    height:44px;
    border:1px solid #d7e1ef;
    border-radius:12px;
    padding:0 12px;
    background:#fff;
    color:#061a3d;
    font:inherit;
}
.project-repo-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
    gap:16px;
}
.project-repo-grid article{
    display:grid;
    grid-template-columns:72px minmax(0,1fr);
    gap:14px;
    padding:16px;
    border:1px solid #e3ebf5;
    border-radius:18px;
    background:#f8fbff;
}
.repo-project-icon{
    width:72px;
    height:72px;
    border-radius:16px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    background:#fff;
    border:1px solid #dfe7f2;
    font-size:1.65rem;
}
.repo-project-icon small{
    margin-top:3px;
    color:var(--pfc-accent, #d71920);
    font-weight:950;
    font-size:.66rem;
}
.project-repo-grid span{
    color:var(--pfc-accent, #d71920);
    font-weight:950;
    text-transform:uppercase;
    font-size:.74rem;
}
.project-repo-grid h3{
    margin:5px 0 7px;
    color:#061a3d;
    font-size:1rem;
    line-height:1.35;
}
.project-repo-grid p{
    margin:0 0 8px;
    color:#475569;
    line-height:1.45;
}
.repo-project-meta{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin:8px 0;
}
.repo-project-meta em{
    font-style:normal;
    background:#eef4fb;
    color:#334155;
    border-radius:999px;
    padding:4px 8px;
    font-size:.72rem;
    font-weight:800;
}
.project-repo-grid a{
    display:inline-flex;
    min-height:36px;
    align-items:center;
    justify-content:center;
    padding:0 12px;
    border-radius:10px;
    background:var(--pfc-primary, #061a3d);
    color:#fff !important;
    text-decoration:none;
    font-weight:900;
}
.repo-empty{
    margin-top:14px;
    padding:20px;
    border:1px dashed #cbd5e1;
    border-radius:16px;
    text-align:center;
    color:#475569;
}
@media(max-width: 820px){
    .research-revista-access{
        flex-direction:column;
        align-items:flex-start;
    }
    .research-revista-access a{
        width:100%;
        text-align:center;
    }
    .project-repo-tools{
        grid-template-columns:1fr;
    }
    .project-repo-grid{
        grid-template-columns:1fr;
    }
}
@media(max-width: 520px){
    .project-repo-grid article{
        grid-template-columns:1fr;
    }
    .repo-project-icon{
        width:100%;
    }
}




/* =========================================================
   REPARACIÓN PANEL ADMIN — FORMULARIOS Y PESTAÑAS FUNCIONALES
   ========================================================= */
.admin-main-pro{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
}
.admin-topbar-pro,
.admin-card-pro,
.cms-editor-tabs{
    max-width:100%;
}
.admin-form-grid{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(260px, 1fr)) !important;
    gap:18px !important;
}
.admin-form-grid label{
    display:flex !important;
    flex-direction:column !important;
    gap:8px !important;
    color:#061a3d !important;
    font-weight:950 !important;
}
.admin-form-grid input:not([type="checkbox"]):not([type="color"]),
.admin-form-grid select,
.admin-form-grid textarea{
    width:100% !important;
    min-height:46px !important;
    border:1px solid #cfdbea !important;
    border-radius:12px !important;
    padding:11px 13px !important;
    background:#fff !important;
    color:#071f4a !important;
    font:inherit !important;
    box-shadow:inset 0 1px 2px rgba(6,26,61,.04) !important;
}
.admin-form-grid textarea{
    min-height:120px !important;
    resize:vertical !important;
}
.admin-form-grid input[type="file"]{
    padding:9px !important;
}
.admin-form-grid .wide{
    grid-column:1 / -1 !important;
}
.admin-check-row{
    grid-column:1 / -1 !important;
    flex-direction:row !important;
    align-items:center !important;
}
.admin-check-row input[type="checkbox"]{
    width:20px !important;
    height:20px !important;
}
.cms-editor-tabs{
    position:sticky;
    top:0;
    z-index:50;
}
.cms-editor-tabs button{
    cursor:pointer !important;
}
.cms-tab-panel{
    display:none !important;
}
.cms-tab-panel.active{
    display:block !important;
}
.cms-add-box,
.cms-edit-item{
    background:#fff !important;
}
.cms-edit-item form + form{
    margin-top:10px;
}
.btn,
.btn-red,
.btn-ghost,
.admin-form-grid button{
    cursor:pointer !important;
}
.btn-red,
.admin-form-grid .btn-red,
button.btn-red{
    background:#d71920 !important;
    color:#fff !important;
    border:0 !important;
    border-radius:12px !important;
    min-height:46px !important;
    padding:0 18px !important;
    font-weight:950 !important;
}
.btn-ghost,
button.btn-ghost,
a.btn-ghost{
    background:#fff !important;
    color:#061a3d !important;
    border:1px solid #cfdbea !important;
    border-radius:12px !important;
    min-height:42px !important;
    padding:10px 16px !important;
    font-weight:950 !important;
    text-decoration:none !important;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}
.alert.success{
    background:#ecfdf5 !important;
    color:#047857 !important;
    border:1px solid #a7f3d0 !important;
    padding:14px 16px !important;
    border-radius:14px !important;
    font-weight:900 !important;
}
.alert.error{
    background:#fff1f2 !important;
    color:#be123c !important;
    border:1px solid #fecdd3 !important;
    padding:14px 16px !important;
    border-radius:14px !important;
    font-weight:900 !important;
}
@media(max-width:820px){
    .admin-form-grid{
        grid-template-columns:1fr !important;
    }
}


/* Proyectos funcionales, no tarjetas muertas */
.research-projects-functional article{
    display:flex;
    flex-direction:column;
    gap:10px;
}
.research-projects-functional article > p{
    min-height:72px;
    line-height:1.55;
}
.project-card-meta{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}
.project-card-meta em{
    font-style:normal;
    background:#eef4fb;
    color:#334155;
    border-radius:999px;
    padding:5px 9px;
    font-weight:800;
    font-size:.76rem;
}
.project-card-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:auto;
}
.project-card-actions button{
    border:0;
    border-radius:10px;
    min-height:38px;
    padding:0 12px;
    font-weight:950;
    background:var(--pfc-primary, #061a3d);
    color:#fff;
    cursor:pointer;
}
.project-card-actions button:last-child{
    background:var(--pfc-accent, #d71920);
}
.research-project-modal[hidden]{display:none !important;}
.research-project-modal{
    position:fixed;
    inset:0;
    background:rgba(6,26,61,.55);
    z-index:999999;
    display:grid;
    place-items:center;
    padding:20px;
}
.research-project-modal-box{
    width:min(720px, 100%);
    max-height:85vh;
    overflow:auto;
    background:#fff;
    border-radius:22px;
    padding:28px;
    box-shadow:0 28px 90px rgba(6,26,61,.35);
    position:relative;
}
.research-project-modal-box > button{
    position:absolute;
    top:12px;
    right:12px;
    width:38px;
    height:38px;
    border:0;
    border-radius:999px;
    background:#f1f5f9;
    color:#061a3d;
    font-weight:950;
    cursor:pointer;
}
@media(max-width:820px){
    .project-card-actions{
        flex-direction:column;
    }
    .project-card-actions button{
        width:100%;
    }
}


/* =========================================================
   FIX PROYECTOS/REPOSITORIO/REVISTA — LOGOS Y ARCHIVOS
   ========================================================= */
.research-projects .project-logo{
    width:56px !important;
    height:56px !important;
    border-radius:16px !important;
    padding:8px !important;
    background:#f1f5fb !important;
    display:grid !important;
    place-items:center !important;
}
.research-projects .project-logo img{
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
}
.project-detail-logo{
    width:96px;
    height:96px;
    object-fit:contain;
    border-radius:18px;
    background:#f1f5fb;
    padding:10px;
    border:1px solid #dfe7f2;
}
.admin-form-grid input[type="url"],
.admin-form-grid input[type="number"],
.admin-form-grid input[type="date"],
.admin-form-grid input[type="file"],
.admin-form-grid select{
    width:100% !important;
    min-height:46px !important;
    border:1px solid #cfdbea !important;
    border-radius:12px !important;
    padding:10px 13px !important;
    background:#fff !important;
    color:#071f4a !important;
    font:inherit !important;
}
.cms-preview-row img{
    max-width:110px !important;
    max-height:110px !important;
    object-fit:contain !important;
    background:#f8fafc !important;
    border:1px solid #dfe7f2 !important;
    border-radius:14px !important;
    padding:8px !important;
}


/* =========================================================
   DOCUMENTOS DIRECTOS POR PROYECTO + LOGO DE PROYECTO
   ========================================================= */
.project-doc-admin-box{
    margin-top:18px;
    padding:18px;
    border:1px solid #dfe7f2;
    border-radius:18px;
    background:#f8fbff;
}
.project-doc-admin-box h3{
    margin:0 0 12px;
    color:#061a3d;
}
.project-doc-mini-form{
    margin-bottom:14px;
}
.project-doc-list-admin{
    display:flex;
    flex-direction:column;
    gap:10px;
}
.project-doc-list-admin > div{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto auto;
    gap:10px;
    align-items:center;
    padding:12px;
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:14px;
}
.project-doc-list-admin strong{
    color:#061a3d;
}
.project-doc-list-admin span{
    color:#64748b;
    font-weight:800;
}
.admin-muted{
    color:#64748b;
    font-weight:800;
}
.research-projects .project-logo{
    width:56px !important;
    height:56px !important;
    border-radius:16px !important;
    padding:8px !important;
    background:#f1f5fb !important;
    display:grid !important;
    place-items:center !important;
}
.research-projects .project-logo img{
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
}
.project-detail-logo{
    width:96px;
    height:96px;
    object-fit:contain;
    border-radius:18px;
    background:#f1f5fb;
    padding:10px;
    border:1px solid #dfe7f2;
}
.admin-form-grid input[type="file"],
.admin-form-grid input[type="text"],
.admin-form-grid input[type="date"],
.admin-form-grid select{
    min-height:46px !important;
}
@media(max-width:820px){
    .project-doc-list-admin > div{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   FIX DEFINITIVO PANEL REPOSITORIO Y REVISTA
   ========================================================= */
.repo-admin-direct-box{
    padding:18px;
    border:1px solid #dfe7f2;
    border-radius:18px;
    background:#f8fbff;
    margin:16px 0;
}
.repo-admin-direct-box h3{
    margin:0 0 8px;
    color:#061a3d;
}
.repo-admin-direct-box p{
    margin:0 0 16px;
    color:#475569;
    font-weight:700;
}
.repo-admin-list{
    display:flex;
    flex-direction:column;
    gap:12px;
}
.repo-doc-item summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.repo-doc-item summary span{
    color:#64748b;
    font-size:.86rem;
}
.delete-inline-form{
    margin-top:12px;
}
.repo-config-form{
    margin-bottom:14px;
}
.admin-form-grid input[type="file"],
.admin-form-grid input[type="text"],
.admin-form-grid input[type="date"],
.admin-form-grid select,
.admin-form-grid textarea{
    width:100% !important;
    min-height:46px !important;
    border:1px solid #cfdbea !important;
    border-radius:12px !important;
    padding:10px 13px !important;
    background:#fff !important;
    color:#071f4a !important;
    font:inherit !important;
}
@media(max-width:820px){
    .repo-doc-item summary{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* =========================================================
   INVESTIGACIÓN PFC — BIBLIOTECA ESTABLE DE PROYECTOS Y REVISTAS
   ========================================================= */
.inv-stable-panel{
    min-height:unset !important;
    margin-bottom:18px;
}
.inv-stable-panel .admin-form-grid,
.admin-form-grid{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(260px, 1fr)) !important;
    gap:16px !important;
}
.inv-stable-panel label,
.admin-form-grid label{
    display:flex !important;
    flex-direction:column !important;
    gap:7px !important;
    font-weight:900 !important;
}
.inv-stable-panel input:not([type="checkbox"]),
.inv-stable-panel select,
.inv-stable-panel textarea,
.admin-form-grid input:not([type="checkbox"]),
.admin-form-grid select,
.admin-form-grid textarea{
    width:100% !important;
    min-height:46px !important;
    border:1px solid #cfdbea !important;
    border-radius:12px !important;
    padding:10px 13px !important;
    background:#fff !important;
    color:#071f4a !important;
    font:inherit !important;
}
.inv-stable-panel textarea{
    resize:vertical;
}
.inv-stable-panel .wide,
.admin-form-grid .wide{
    grid-column:1 / -1 !important;
}
.inv-admin-library-list{
    display:flex;
    flex-direction:column;
    gap:12px;
}
.inv-file-preview,
.inv-cover-preview{
    padding:12px;
    border:1px solid #dfe7f2;
    border-radius:14px;
    background:#f8fbff;
}
.inv-cover-preview img{
    max-width:120px;
    max-height:120px;
    object-fit:contain;
    border-radius:12px;
    background:#fff;
    border:1px solid #dfe7f2;
    padding:8px;
}
.inv-delete-form{
    margin-top:10px;
}

/* Vista pública */
.inv-research-library-tools{
    display:grid;
    grid-template-columns:minmax(220px, 1fr) 220px;
    gap:12px;
    margin:0 0 22px;
}
.inv-research-library-tools input,
.inv-research-library-tools select{
    width:100%;
    min-height:46px;
    border:1px solid #d7e1ef;
    border-radius:12px;
    padding:0 13px;
    background:#fff;
    color:#061a3d;
    font:inherit;
}
.inv-research-library-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
    gap:18px;
}
.inv-research-library-grid article{
    display:flex;
    flex-direction:column;
    overflow:hidden;
    border:1px solid #dfe7f2;
    border-radius:20px;
    background:#fff;
    box-shadow:0 14px 36px rgba(6,26,61,.08);
}
.inv-research-library-cover{
    height:150px;
    background:linear-gradient(135deg,#f8fbff,#eef4fb);
    display:grid;
    place-items:center;
    border-bottom:1px solid #dfe7f2;
}
.inv-research-library-cover img{
    width:100%;
    height:100%;
    object-fit:contain;
    padding:14px;
}
.inv-research-library-cover span{
    font-size:2.5rem;
}
.inv-research-library-body{
    padding:18px;
    display:flex;
    flex-direction:column;
    gap:10px;
    flex:1;
}
.inv-research-library-body > span{
    color:var(--pfc-accent, #d71920);
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.04em;
    font-size:.75rem;
}
.inv-research-library-body h3{
    margin:0;
    color:#061a3d;
    font-size:1.05rem;
    line-height:1.35;
}
.inv-research-library-body p{
    margin:0;
    color:#475569;
    line-height:1.55;
}
.inv-research-library-meta{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:auto;
}
.inv-research-library-meta em{
    font-style:normal;
    background:#f1f5f9;
    color:#334155;
    border-radius:999px;
    padding:5px 9px;
    font-weight:800;
    font-size:.75rem;
}
.inv-research-library-body a{
    min-height:40px;
    border-radius:12px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 14px;
    background:var(--pfc-primary, #061a3d);
    color:#fff !important;
    text-decoration:none;
    font-weight:950;
}
@media(max-width:820px){
    .inv-stable-panel .admin-form-grid,
    .admin-form-grid,
    .inv-research-library-tools{
        grid-template-columns:1fr !important;
    }
}


/* =========================================================
   FIX VISIBILIDAD REAL BIBLIOTECA INVESTIGACIÓN
   ========================================================= */
.inv-research-library-count{
    display:inline-flex;
    gap:8px;
    align-items:center;
    margin-top:10px;
    padding:8px 12px;
    border-radius:999px;
    background:#eef4fb;
    color:#061a3d;
    font-weight:800;
}
.inv-research-library-count strong{
    color:var(--pfc-accent,#d71920);
}
#panel-biblioteca.active{
    display:block !important;
}
.inv-research-library-body a{
    margin-top:8px;
}


/* =========================================================
   INVESTIGACIÓN PFC — PANEL TOTAL FUNCIONAL
   ========================================================= */
.inv-admin-nav{
    position:sticky;
    top:0;
    z-index:30;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    padding:12px;
    margin:16px 0;
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:16px;
    box-shadow:0 10px 26px rgba(15,23,42,.06);
}
.inv-admin-nav a{
    min-height:40px;
    padding:0 13px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    background:#f3f6fb;
    color:#061a3d !important;
    text-decoration:none;
    font-weight:950;
}
.inv-admin-nav a:hover{
    background:#061a3d;
    color:#fff !important;
}
.inv-admin-section{
    min-height:unset !important;
    margin-bottom:20px;
}
.inv-admin-section .admin-form-grid,
.admin-form-grid{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(260px, 1fr)) !important;
    gap:16px !important;
}
.inv-admin-section label,
.admin-form-grid label{
    display:flex !important;
    flex-direction:column !important;
    gap:7px !important;
    color:#061a3d !important;
    font-weight:900 !important;
}
.inv-admin-section input:not([type="checkbox"]),
.inv-admin-section select,
.inv-admin-section textarea,
.admin-form-grid input:not([type="checkbox"]),
.admin-form-grid select,
.admin-form-grid textarea{
    width:100% !important;
    min-height:46px !important;
    border:1px solid #cfdbea !important;
    border-radius:12px !important;
    padding:10px 13px !important;
    background:#fff !important;
    color:#071f4a !important;
    font:inherit !important;
}
.inv-admin-section textarea{
    resize:vertical;
}
.inv-admin-section .wide,
.admin-form-grid .wide{
    grid-column:1 / -1 !important;
}
.inv-subtitle{
    margin-top:10px;
    padding:12px;
    border-radius:12px;
    background:#f8fbff;
    color:#061a3d;
    font-weight:950;
}
.inv-delete-form{
    margin-top:10px;
}
.inv-file-preview,
.inv-cover-preview{
    padding:12px;
    border:1px solid #dfe7f2;
    border-radius:14px;
    background:#f8fbff;
}
.inv-cover-preview img{
    max-width:130px;
    max-height:130px;
    object-fit:contain;
    border-radius:12px;
    background:#fff;
    border:1px solid #dfe7f2;
    padding:8px;
}
.anchor-offset{
    position:relative;
    top:-110px;
    display:block;
    height:0;
    visibility:hidden;
}
@media(max-width:820px){
    .inv-admin-section .admin-form-grid,
    .admin-form-grid{
        grid-template-columns:1fr !important;
    }
}

/* Vista pública: Proyectos y revistas de Investigación PFC, estilo biblioteca */
.inv-research-library-tools,
.invLibraryTools,
.inv-library-tools{
    display:grid;
    grid-template-columns:minmax(220px, 1fr) 220px;
    gap:12px;
    margin:0 0 22px;
}
.inv-research-library-tools input,
.inv-research-library-tools select,
.invLibraryTools input,
.invLibraryTools select,
.inv-library-tools input,
.inv-library-tools select{
    width:100%;
    min-height:46px;
    border:1px solid #d7e1ef;
    border-radius:12px;
    padding:0 13px;
    background:#fff;
    color:#061a3d;
    font:inherit;
}
.inv-research-library-grid,
.invLibraryGrid,
.inv-library-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(270px, 1fr));
    gap:18px;
}
.inv-research-library-grid article,
.inv-library-grid article{
    display:flex;
    flex-direction:column;
    overflow:hidden;
    border:1px solid #dfe7f2;
    border-radius:20px;
    background:#fff;
    box-shadow:0 14px 36px rgba(6,26,61,.08);
}
.inv-research-library-cover,
.inv-library-cover{
    height:155px;
    background:linear-gradient(135deg,#f8fbff,#eef4fb);
    display:grid;
    place-items:center;
    border-bottom:1px solid #dfe7f2;
}
.inv-research-library-cover img,
.inv-library-cover img{
    width:100%;
    height:100%;
    object-fit:contain;
    padding:14px;
}
.inv-research-library-cover span,
.inv-library-cover span{
    font-size:2.5rem;
}
.inv-research-library-body,
.inv-library-body{
    padding:18px;
    display:flex;
    flex-direction:column;
    gap:10px;
    flex:1;
}
.inv-research-library-body > span,
.inv-library-body > span{
    color:var(--pfc-accent, #d71920);
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.04em;
    font-size:.75rem;
}
.inv-research-library-body h3,
.inv-library-body h3{
    margin:0;
    color:#061a3d;
    font-size:1.05rem;
    line-height:1.35;
}
.inv-research-library-body p,
.inv-library-body p{
    margin:0;
    color:#475569;
    line-height:1.55;
}
.inv-research-library-meta,
.inv-library-meta{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:auto;
}
.inv-research-library-meta em,
.inv-library-meta em{
    font-style:normal;
    background:#f1f5f9;
    color:#334155;
    border-radius:999px;
    padding:5px 9px;
    font-weight:800;
    font-size:.75rem;
}
.inv-research-library-body a,
.inv-library-body a{
    min-height:40px;
    border-radius:12px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 14px;
    background:var(--pfc-primary, #061a3d);
    color:#fff !important;
    text-decoration:none;
    font-weight:950;
}
@media(max-width:820px){
    .inv-research-library-tools,
    .invLibraryTools,
    .inv-library-tools{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   INVESTIGACIÓN PFC COMO BIBLIOTECA ACADÉMICA FUNCIONAL
   Usa la misma lógica visual de .repo-page / .repo-card
   ========================================================= */
.inv-research-repo-page{
    padding-top:40px;
    padding-bottom:50px;
}
.inv-research-repo-page .repo-icon{
    font-size:2rem;
    display:grid;
    place-items:center;
}
.inv-admin-nav{
    position:sticky;
    top:0;
    z-index:20;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:0 0 18px;
    padding:12px;
    border:1px solid #dfe7f2;
    border-radius:16px;
    background:#fff;
    box-shadow:0 10px 26px rgba(15,23,42,.06);
}
.inv-admin-nav a{
    display:inline-flex;
    min-height:38px;
    align-items:center;
    justify-content:center;
    padding:0 12px;
    border-radius:12px;
    background:#f3f6fb;
    color:#061a3d !important;
    text-decoration:none;
    font-weight:900;
}
.inv-admin-nav a:hover{
    background:#061a3d;
    color:#fff !important;
}
.inv-admin-section{
    margin-bottom:18px;
}
.inv-admin-section details.admin-list-item{
    display:block;
    padding:14px;
}
.inv-admin-section details.admin-list-item summary{
    cursor:pointer;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
}
.inv-admin-section details.admin-list-item form{
    margin-top:12px;
}
.inv-add-form{
    margin-bottom:18px;
    padding-bottom:18px;
    border-bottom:1px solid #dfe7f2;
}
.anchor-offset{
    position:relative;
    top:-110px;
    display:block;
    height:0;
    visibility:hidden;
}
@media(max-width:820px){
    .inv-admin-nav{
        position:relative;
    }
    .inv-admin-section details.admin-list-item summary{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* =========================================================
   FIX VISIBILIDAD PÚBLICA INVESTIGACIÓN — PROYECTOS Y REVISTAS
   ========================================================= */
.research-pro-panel#panel-proyectos-revistas.active{
    display:block !important;
}
.research-pro-panel#panel-proyectos-revistas:not(.active){
    display:none !important;
}
#panel-proyectos-revistas.repo-page{
    width:100%;
}
#panel-proyectos-revistas .repo-shell{
    max-width:1180px;
    margin:0 auto;
}
.anchor-offset{
    position:relative;
    top:-110px;
    display:block;
    height:0;
    visibility:hidden;
}


/* =========================================================
   DIAGNÓSTICO PANEL / DATA / CACHÉ
   ========================================================= */
.diagnostic-box{
    padding:14px;
    border:1px solid #dfe7f2;
    border-radius:14px;
    background:#f8fbff;
    margin-bottom:16px;
}
.diagnostic-table{
    width:100%;
    border-collapse:collapse;
    margin:12px 0 18px;
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:14px;
    overflow:hidden;
}
.diagnostic-table th,
.diagnostic-table td{
    padding:12px 14px;
    border-bottom:1px solid #e5edf7;
    text-align:left;
}
.diagnostic-table .ok{
    color:#047857;
}
.diagnostic-table .bad{
    color:#b91c1c;
}


/* =========================================================
   FIX FINAL BOTONES, CARRUSEL Y FILTROS
   ========================================================= */

/* Carrusel: mostrar la imagen completa cuando image_fit=contain */
.pfc-home-hero.clean-image-carousel,
.pfc-home-slide{
    background:#eef4fb;
}
.pfc-home-slide img{
    width:100%;
    height:100%;
}
.pfc-home-slide img[style*="contain"]{
    object-fit:contain !important;
    background:#eef4fb;
}

/* Accesos directos: Aulas virtuales y demás botones siempre clicables */
.pfc-quick-access a{
    cursor:pointer;
    position:relative;
    z-index:5;
    text-decoration:none;
}
.pfc-quick-access a[href="#"]{
    opacity:.75;
}

/* Investigación: botón Proyectos y revistas visible donde fue señalado */
.research-pro-actions{
    flex-wrap:wrap;
}
.research-pro-actions a[data-open-panel="proyectos-revistas"],
.research-pro-tabs button[data-panel="proyectos-revistas"]{
    background:#061a3d !important;
    color:#fff !important;
    border-color:#061a3d !important;
}

/* Mantener la sección de proyectos y revistas en el flujo visual correcto */
#panel-proyectos-revistas{
    margin-top:0;
}
.research-pro-panel:not(.active){
    display:none;
}
.research-pro-panel.active{
    display:block;
}

/* Biblioteca: filtros funcionales y visibles */
.repo-filters button{
    cursor:pointer;
}
.repo-filters button.active{
    background:#061a3d !important;
    color:#fff !important;
    border-color:#061a3d !important;
}
.repo-card[style*="display: none"]{
    pointer-events:none;
}


/* =========================================================
   INVESTIGACIÓN RESTAURADA + REVISTA COMO BOTÓN
   ========================================================= */
.research-pro-tabs .research-tab-link.revista-link,
.research-tab-link.revista-link{
    min-height:52px;
    padding:0 34px;
    border-radius:14px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#061a3d !important;
    color:#ffffff !important;
    font-weight:950;
    text-decoration:none !important;
    border:1px solid #061a3d !important;
    box-shadow:0 14px 28px rgba(6,26,61,.16);
}
.research-pro-tabs .research-tab-link.revista-link:hover,
.research-tab-link.revista-link:hover{
    background:#d71920 !important;
    border-color:#d71920 !important;
    color:#ffffff !important;
}
.research-pro-panel.active{
    display:block;
}
.research-pro-panel:not(.active){
    display:none;
}


/* =========================================================
   INVESTIGACIÓN PÚBLICA RECONSTRUIDA — CONTENIDO COMPLETO
   ========================================================= */
.research-restored .research-pro-tabs{
    display:flex !important;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    flex-wrap:wrap;
}
.research-restored .research-pro-tabs button,
.research-restored .research-pro-tabs .research-tab-link{
    min-height:52px;
    padding:0 26px;
    border-radius:14px;
    border:1px solid #dfe7f2;
    background:#fff;
    color:#061a3d;
    font-weight:950;
    text-decoration:none;
    cursor:pointer;
}
.research-restored .research-pro-tabs button.active,
.research-restored .research-pro-tabs .research-tab-link.revista-link{
    background:#061a3d !important;
    color:#fff !important;
    border-color:#061a3d !important;
}
.research-restored .research-pro-panel{
    display:none;
    padding-top:48px;
    padding-bottom:58px;
}
.research-restored .research-pro-panel.active{
    display:block !important;
}
.research-overview-grid,
.research-group-grid,
.research-lines-grid,
.research-seedbed-grid,
.research-infographic-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));
    gap:18px;
}
.research-overview-grid article,
.research-group-grid article,
.research-lines-grid article,
.research-seedbed-grid article,
.research-infographic-grid article{
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:20px;
    padding:22px;
    box-shadow:0 14px 32px rgba(6,26,61,.08);
}
.research-overview-grid strong{
    font-size:2.4rem;
    color:#d71920;
    display:block;
    margin-bottom:8px;
}
.research-overview-grid h3,
.research-group-grid h3,
.research-lines-grid h3,
.research-seedbed-grid h3,
.research-infographic-grid h3{
    margin:0 0 10px;
    color:#061a3d;
}
.research-group-grid article > span,
.research-seedbed-grid article > span{
    display:inline-flex;
    padding:6px 10px;
    border-radius:999px;
    background:#eef4fb;
    color:#061a3d;
    font-weight:900;
    margin-bottom:10px;
}
.research-lines-grid .line-icon{
    width:52px;
    height:52px;
    border-radius:16px;
    display:grid;
    place-items:center;
    background:#eef4fb;
    color:#061a3d;
    font-size:1.5rem;
    margin-bottom:12px;
}
.research-lines-grid ul{
    margin:12px 0 0;
    padding-left:18px;
}
.research-infographic-grid article{
    padding:0;
    overflow:hidden;
}
.research-infographic-grid img{
    width:100%;
    height:240px;
    object-fit:contain;
    background:#eef4fb;
    display:block;
}
.research-infographic-grid article div{
    padding:18px;
}
@media(max-width:820px){
    .research-restored .research-pro-tabs{
        align-items:stretch;
        flex-direction:column;
    }
    .research-restored .research-pro-tabs button,
    .research-restored .research-pro-tabs .research-tab-link{
        width:100%;
    }
}


/* =========================================================
   INVESTIGACIÓN FINAL — TABS EXACTOS + CONTENIDO RECUPERADO
   Inicio | Grupos | Líneas | Semilleros | Proyectos | Infografías | Revista
   ========================================================= */
.research-final-tabs .research-pro-tabs{
    display:grid !important;
    grid-template-columns:repeat(7, minmax(120px, 1fr));
    gap:0;
    align-items:center;
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 18px 42px rgba(6,26,61,.08);
}
.research-final-tabs .research-pro-tabs button,
.research-final-tabs .research-pro-tabs .research-tab-link{
    min-height:58px;
    border:0;
    border-right:1px solid #edf2f8;
    background:#fff;
    color:#061a3d;
    font-weight:950;
    text-decoration:none;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
}
.research-final-tabs .research-pro-tabs button.active,
.research-final-tabs .research-pro-tabs .research-tab-link.revista-link{
    background:#061a3d !important;
    color:#fff !important;
}
.research-final-tabs .research-pro-panel{
    display:none;
    padding-top:48px;
    padding-bottom:58px;
}
.research-final-tabs .research-pro-panel.active{
    display:block !important;
}
.research-start-grid{
    display:grid;
    grid-template-columns:1.15fr .95fr .95fr;
    gap:22px;
}
.research-start-main,
.research-start-area{
    border:1px solid #dfe7f2;
    border-radius:24px;
    padding:28px;
    box-shadow:0 18px 42px rgba(6,26,61,.08);
}
.research-start-main{
    background:#103a73;
    color:#fff;
}
.research-start-main h3,
.research-start-main p{
    color:#fff;
}
.research-start-area{
    background:#fff;
}
.start-icon{
    width:58px;
    height:58px;
    border-radius:18px;
    display:grid;
    place-items:center;
    background:#eef4fb;
    color:#061a3d;
    margin-bottom:18px;
    font-weight:950;
}
.research-start-main .start-icon{
    background:rgba(255,255,255,.16);
    color:#fff;
}
.start-tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:18px;
}
.start-tags span{
    display:inline-flex;
    padding:7px 11px;
    border-radius:999px;
    background:#eef4fb;
    color:#061a3d;
    font-weight:900;
    font-size:.82rem;
}
.research-two-layout{
    display:grid;
    grid-template-columns:300px 1fr;
    gap:30px;
    align-items:start;
}
.research-filter-card{
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:22px;
    padding:24px;
    box-shadow:0 18px 42px rgba(6,26,61,.08);
    position:sticky;
    top:100px;
}
.research-filter-card input{
    width:100%;
    min-height:48px;
    border:1px solid #d7e1ef;
    border-radius:12px;
    padding:0 14px;
    margin:12px 0 14px;
}
.filter-pills{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.filter-pills button{
    border:1px solid #d7e1ef;
    background:#fff;
    color:#061a3d;
    border-radius:999px;
    padding:9px 14px;
    font-weight:900;
    cursor:pointer;
}
.filter-pills button.active{
    background:#061a3d;
    color:#fff;
}
.research-note{
    margin-top:20px;
    padding:18px;
    border:1px solid #f2d7df;
    background:#fff7f9;
    border-radius:18px;
}
.research-group-list{
    display:grid;
    gap:18px;
}
.research-group-list article{
    display:grid;
    grid-template-columns:90px 1fr;
    gap:24px;
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:24px;
    padding:28px;
    box-shadow:0 18px 42px rgba(6,26,61,.08);
}
.group-initials{
    width:72px;
    height:72px;
    border-radius:22px;
    background:#103a73;
    color:#fff;
    display:grid;
    place-items:center;
    font-weight:950;
    font-size:1.35rem;
}
.research-group-list article span,
.research-lines-detail-grid article > .line-head span,
.research-project-grid article > span{
    color:#d71920;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:.75rem;
    font-weight:950;
}
.group-meta-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(160px, 1fr));
    gap:12px;
    margin-top:18px;
}
.group-meta-grid div{
    background:#f3f7fc;
    border:1px solid #dfe7f2;
    border-radius:14px;
    padding:14px;
}
.group-meta-grid strong{
    text-transform:uppercase;
    font-size:.75rem;
}
.group-meta-grid p{
    margin:.35rem 0 0;
}
.research-lines-detail-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(320px, 1fr));
    gap:22px;
}
.research-lines-detail-grid article,
.research-seedbed-grid article,
.research-project-grid article,
.research-infographic-grid article{
    background:#fff;
    border:1px solid #dfe7f2;
    border-radius:24px;
    padding:26px;
    box-shadow:0 18px 42px rgba(6,26,61,.08);
}
.line-head{
    display:grid;
    grid-template-columns:64px 1fr;
    gap:16px;
    align-items:center;
}
.line-icon,
.project-icon{
    width:58px;
    height:58px;
    border-radius:18px;
    background:#eef4fb;
    display:grid;
    place-items:center;
    color:#061a3d;
    font-weight:950;
    font-size:1.5rem;
}
.line-icon img,
.project-icon img{
    width:100%;
    height:100%;
    object-fit:contain;
    padding:8px;
}
.research-lines-detail-grid blockquote{
    margin:18px 0;
    border-left:4px solid #d71920;
    background:#fff4f4;
    border-radius:0 12px 12px 0;
    padding:16px 18px;
    color:#7f1d1d;
    font-weight:950;
}
.line-info-box{
    background:#f4f7fb;
    border:1px solid #dfe7f2;
    border-radius:16px;
    padding:16px;
    margin:18px 0;
}
.line-info-box p{
    margin:.2rem 0;
}
.research-lines-detail-grid details summary{
    cursor:pointer;
    color:#061a3d;
    font-weight:950;
    font-size:1.05rem;
}
.research-lines-detail-grid ul{
    margin:12px 0 0;
    padding-left:20px;
}
.research-seedbed-grid,
.research-project-grid,
.research-infographic-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
    gap:18px;
}
.research-seedbed-grid article span,
.project-meta em{
    display:inline-flex;
    margin-top:10px;
    margin-right:6px;
    padding:7px 11px;
    border-radius:999px;
    background:#eef4fb;
    color:#061a3d;
    font-style:normal;
    font-weight:900;
}
.research-project-grid article{
    display:flex;
    flex-direction:column;
    gap:10px;
}
.research-infographic-grid article{
    padding:0;
    overflow:hidden;
}
.research-infographic-grid img{
    width:100%;
    height:250px;
    object-fit:contain;
    background:#eef4fb;
    display:block;
}
.research-infographic-grid article div{
    padding:18px;
}
@media(max-width:980px){
    .research-final-tabs .research-pro-tabs{
        grid-template-columns:1fr 1fr;
    }
    .research-start-grid,
    .research-two-layout,
    .research-lines-detail-grid{
        grid-template-columns:1fr;
    }
    .research-filter-card{
        position:relative;
        top:auto;
    }
}
@media(max-width:620px){
    .research-final-tabs .research-pro-tabs{
        grid-template-columns:1fr;
    }
    .research-group-list article{
        grid-template-columns:1fr;
    }
    .group-meta-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   INVESTIGACIÓN — AMPLIACIÓN DE INFOGRAFÍAS
   ========================================================= */
.infographic-zoom-card{
    cursor:pointer;
}
.infographic-zoom-button{
    width:100%;
    border:0;
    padding:0;
    margin:0;
    background:transparent;
    cursor:pointer;
    display:block;
    position:relative;
}
.infographic-zoom-button img{
    transition:transform .25s ease, filter .25s ease;
}
.infographic-zoom-button span{
    position:absolute;
    left:50%;
    bottom:14px;
    transform:translateX(-50%);
    background:rgba(6,26,61,.92);
    color:#fff;
    border-radius:999px;
    padding:8px 14px;
    font-weight:950;
    font-size:.82rem;
    opacity:0;
    pointer-events:none;
    transition:opacity .25s ease;
}
.infographic-zoom-card:hover .infographic-zoom-button img{
    transform:scale(1.025);
    filter:brightness(.88);
}
.infographic-zoom-card:hover .infographic-zoom-button span{
    opacity:1;
}
.research-infographic-lightbox{
    position:fixed;
    inset:0;
    z-index:99999;
    display:none;
    align-items:center;
    justify-content:center;
    background:rgba(2,6,23,.86);
    padding:24px;
}
.research-infographic-lightbox.active{
    display:flex;
}
.infographic-lightbox-content{
    width:min(1100px, 96vw);
    max-height:92vh;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:12px;
}
.infographic-lightbox-content img{
    max-width:100%;
    max-height:82vh;
    object-fit:contain;
    background:#fff;
    border-radius:18px;
    box-shadow:0 30px 90px rgba(0,0,0,.45);
}
.infographic-lightbox-content p{
    margin:0;
    color:#fff;
    font-weight:950;
    text-align:center;
}
.infographic-lightbox-close{
    position:fixed;
    top:18px;
    right:22px;
    width:48px;
    height:48px;
    border:0;
    border-radius:50%;
    background:#fff;
    color:#061a3d;
    font-size:2rem;
    line-height:1;
    cursor:pointer;
    box-shadow:0 12px 30px rgba(0,0,0,.25);
}
body.modal-open{
    overflow:hidden;
}
@media(max-width:720px){
    .research-infographic-lightbox{
        padding:12px;
    }
    .infographic-lightbox-content img{
        max-height:78vh;
    }
}


/* =========================================================
   INVESTIGACIÓN — AJUSTES SEGÚN IMAGEN DEL USUARIO
   1. Sin bloque de estadísticas en el hero.
   2. Revista como botón normal con enlace externo.
   ========================================================= */

/* Hero sin estadísticas: ocupa el ancho de forma limpia */
.research-final-tabs .research-pro-hero-inner,
.research-restored .research-pro-hero-inner{
    grid-template-columns:1fr !important;
}
.research-final-tabs .research-pro-copy,
.research-restored .research-pro-copy{
    max-width:980px;
}

/* El botón Revista NO queda siempre azul; se ve como los demás */
.research-final-tabs .research-pro-tabs .research-tab-link.revista-link,
.research-restored .research-pro-tabs .research-tab-link.revista-link,
.research-pro-tabs .research-tab-link.revista-link{
    background:#ffffff !important;
    color:#061a3d !important;
    border-right:1px solid #edf2f8 !important;
    box-shadow:none !important;
}

/* Solo cambia visualmente al pasar el cursor */
.research-final-tabs .research-pro-tabs .research-tab-link.revista-link:hover,
.research-restored .research-pro-tabs .research-tab-link.revista-link:hover,
.research-pro-tabs .research-tab-link.revista-link:hover{
    background:#061a3d !important;
    color:#ffffff !important;
}

/* Mantener activo únicamente el botón interno seleccionado */
.research-final-tabs .research-pro-tabs button.active,
.research-restored .research-pro-tabs button.active,
.research-pro-tabs button.active{
    background:#061a3d !important;
    color:#ffffff !important;
}

/* Evitar que reglas anteriores vuelvan a poner Revista azul permanente */
.research-final-tabs .research-pro-tabs .research-tab-link.revista-link.active,
.research-restored .research-pro-tabs .research-tab-link.revista-link.active{
    background:#ffffff !important;
    color:#061a3d !important;
}

/* =========================================================
   OPTIMIZACIÓN RENDIMIENTO HOSTINGER — IMÁGENES Y CARRUSEL
   ========================================================= */
.pfc-home-slide img{
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center center;
    background:#061a3d;
}
img[width][height]{
    height:auto;
}
.pfc-home-slide img[width][height]{
    height:100%;
}


/* =========================================================
   OFERTA ACADÉMICA — EDITOR REAL DEL PLAN DE ESTUDIOS
   ========================================================= */
.oferta-plan-real-editor .alert code{
    background:rgba(255,255,255,.65);
    padding:2px 6px;
    border-radius:6px;
    font-weight:900;
}
.oferta-plan-real-list{
    display:flex;
    flex-direction:column;
    gap:10px;
    max-height:720px;
    overflow:auto;
    padding-right:6px;
}
.oferta-plan-real-item summary{
    align-items:center;
}
.oferta-plan-real-item summary span{
    background:#eef4fb;
    color:#061a3d;
    padding:6px 10px;
    border-radius:999px;
    font-weight:950;
}
.oferta-plan-search-row{
    margin-bottom:14px;
}
.oferta-plan-real-item input[readonly]{
    background:#f3f7fc !important;
    color:#64748b !important;
}
