:root {
    --navy:#082b5f;
    --navy2:#061f4a;
    --blue:#0d6fc8;
    --orange:#ff7a3d;
    --cream:#fbf5ee;
    --panel:#fffdf9;
    --line:#ead9c9;
    --text:#082652;
    --muted:#47607d;
    --shadow:0 18px 45px rgba(8,43,95,.08)
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth
}
body {
    margin:0;
    font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;
    background:linear-gradient(180deg,#fffaf5 0,#f8efe6 100%);
    color:var(--text)
}
a {
    text-decoration:none;
    color:inherit
}
button {
    font:inherit
}
img {
    display:block;
    max-width:100%
}
.site-header {
    height:70px;
    padding:0 38px;
    display:grid;
    grid-template-columns:300px 1fr 116px;
    gap:24px;
    align-items:center;
    border-bottom:1px solid rgba(211,183,158,.55);
    background:rgba(255,250,245,.86);
    backdrop-filter:blur(14px);
    position:sticky;
    top:0;
    z-index:10
}
.brand {
    display:flex;
    gap:12px;
    align-items:center
}
.logo-mark {
    width:40px;
    height:40px;
    border:2px solid var(--blue);
    color:var(--blue);
    border-radius:50%;
    display:grid;
    place-items:center;
    font-size:20px
}
.brand strong {
    display:block;
    font-size:25px;
    line-height:1;
    color:var(--navy2);
    font-weight:800
}
.brand small {
    font-size:13px;
    color:var(--muted)
}
.main-nav {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:30px;
    white-space:nowrap
}
.main-nav a{
    font-size:15px;
    font-weight:700;
    color:var(--navy2);
    padding:26px 0 21px;
    border-bottom:3px solid transparent;
}

.main-nav a:hover{
    color:var(--blue);
    border-color:var(--blue);
    transform:translateY(-1px);	
}

.main-nav a.active{
    color:var(--blue);
    border-color:var(--blue);
}
.header-actions {
    display:flex;
    justify-content:flex-end;
    gap:14px
}
.round-btn {
    width:48px;
    height:48px;
    border-radius:50%;
    border:1px solid var(--line);
    background:#fff;
    box-shadow:0 9px 22px rgba(0,0,0,.06);
    color:var(--navy2);
    font-weight:800
}
.round-btn.user {
    background:var(--navy);
    color:#fff
}
main {
    width:min(1840px,calc(100% - 84px));
    margin:0 auto 42px
}

.hero {
    display: grid;
    grid-template-columns: 420px minmax(560px, 1fr) 260px;
    gap: 40px;
    align-items: center;
    padding: 64px 0 42px;
}

.hero-copy {
    padding-left:28px
}
.hero h1 {
    font-size:clamp(35px,2.85vw,58px);
    line-height:1.08;
    margin:0 0 26px;
    letter-spacing:-.045em;
    font-weight:800;
    color:var(--navy2);
    max-width:720px
}
.hero h1 span {
    color:var(--blue)
}
.hero p {
    font-size:16px;
    line-height:1.85;
    color:var(--text);
    max-width:680px;
    margin:0 0 28px;
    text-align:justify;	
    text-justify:inter-word;	
}

.hero-buttons {
    display:flex;
    gap:20px;
    align-items:center;
    flex-wrap:wrap
}
.btn {
    height:50px;
    min-width:210px;
    border:1px solid #9db8d4;
    border-radius:14px;
    padding:0 24px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    font-weight:800;
    font-size:14px;
    color:var(--navy);
    background:#fff
}
.btn.primary {
    background:linear-gradient(135deg,var(--navy2),#075f99);
    color:#fff;
    border:0;
    box-shadow:0 14px 26px rgba(8,43,95,.22)
}

.hero-art {
    background: linear-gradient(
        145deg,
        rgba(255,255,255,0.55),
        rgba(255,255,255,0.28)
    );
    border: 1px solid rgba(15,59,120,0.06);
    border-radius: 28px;

    padding: 8px;   /* antes 16-18px */
    width: 100%;
    max-width: 760px;
    height: 330px;
    justify-self: center;	
    overflow: hidden;
}

.hero-art img {
    width: 100%;
    height: 100%;
    display: block;
    border-radius: 20px;
    object-fit: cover;
    transition: opacity 0.35s ease;	
}

.quote-slider{
	padding-right: 12px;
	margin-right: 10px;
    justify-self: end;
    width:230px;
}

.quote-card{
    display:none;

    width:220px;
    height:285px;

    padding:30px 26px 22px;

    border:1px solid rgba(223,202,184,.78);
    border-radius:24px;

    background:rgba(255,255,255,.88);

    box-shadow:0 18px 45px rgba(8,43,95,.10);

    overflow:hidden;
}

.quote-card.active{
    display: flex;
    flex-direction: column;
}

.quote-card p{
    margin: 0 0 14px 0;
    line-height: 1.45;
    font-size: 14px;
    font-weight: 800;
    text-align: left;
}

.quote-card small{
    display:block;

    margin-top:0px;

    font-size:14px;

    color:var(--muted);
}

.quote-card:after{
    content:"";

    display:block;

    width:42px;
    height:2px;

    background:var(--orange);

    margin-top:22px;
}

.quote-mark{
    font-size: 48px;
    line-height: 0.5;
    margin: 0 0 -8px 0;
    margin-bottom: -18px;
    color:var(--blue);

    font-family:Georgia,serif;
    font-weight:700;
}

.quote-dots{
    display:flex;
    justify-content:center;
    gap:10px;

    margin-top:18px;
}

.quote-dots button{
    width:10px;
    height:10px;

    border:0;
    border-radius:50%;

    background:#cdd3d8;

    cursor:pointer;
}

.quote-dots button.active{
    background:var(--blue);
}
.quote-nav{
    display:flex;
    align-items:center;
    justify-content:center;

    gap:18px;

    margin-top:18px;
}

.quote-nav button{
    border:0;
    background:none;

    color:var(--blue);

    font-size:20px;
    font-weight:700;

    cursor:pointer;

    opacity:.7;

    transition:.2s;
}

.quote-nav button:hover{
    opacity:1;
    transform:scale(1.1);
}

#quote-counter{
    font-size:13px;
    color:var(--muted);
    font-weight:700;
}

.panel {
    background:rgba(255,255,255,.82);
    border:1px solid rgba(223,202,184,.78);
    border-radius:20px;
    box-shadow:var(--shadow)
}
.section-head {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:18px
}
.section-head h2 {
    margin:0;
    font-size:23px;
    letter-spacing:-.02em
}
.section-head a,.all-link {
    font-size:13px;
    color:var(--blue);
    font-weight:800
}
.topics-panel {
    padding:20px 24px 22px;
    margin-bottom:22px
}
.topics-grid {
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:16px;
    overflow:hidden
}
.topic-card {
    min-height:120px;
    border:1px solid rgba(223,202,184,.9);
    border-radius:14px;
    background:#fff;
    display:grid;
    grid-template-columns:54px 1fr;
    align-items:center;
    gap:12px;
    padding:16px 18px
}
.extra-topic {
    display:none
}
.topic-card h3 {
    margin:0 0 8px;
    font-size:15px
}
.topic-card p {
    margin:0;
    color:var(--muted);
    font-size:13px;
    line-height:1.45
}
.ico {
    width:45px;
    height:45px;
    display:block;
    position:relative;
    color:var(--blue)
}
.ico:before,.ico:after {
    content:"";
    position:absolute
}
.ico.head:before {
    inset:3px 10px 3px 6px;
    border:3px solid var(--blue);
    border-right-color:var(--orange);
    border-radius:50% 45% 45% 50%
}
.ico.speech:before {
    inset:4px;
    border:3px solid var(--blue);
    border-radius:50%
}
.ico.speech:after {
    width:18px;
    height:3px;
    background:var(--blue);
    left:14px;
    top:21px;
    box-shadow:0 -8px 0 var(--blue)
}
.ico.heart:before {
    content:"♡";
    font-size:45px;
    color:var(--orange);
    top:-6px;
    left:2px
}
.ico.person:before {
    width:28px;
    height:28px;
    border:3px solid var(--blue);
    border-radius:50%;
    left:8px;
    top:0
}
.ico.person:after {
    width:39px;
    height:22px;
    border:3px solid var(--blue);
    border-bottom:0;
    border-radius:30px 30px 0 0;
    left:3px;
    top:29px
}
.ico.puzzle:before {
    content:"▧";
    font-size:40px;
    color:var(--orange);
    top:0;
    left:5px
}
.ico.circles:before {
    width:24px;
    height:24px;
    border:3px solid #552ad8;
    border-radius:50%;
    left:3px;
    top:14px
}
.ico.circles:after {
    width:24px;
    height:24px;
    border:3px solid var(--blue);
    border-radius:50%;
    left:19px;
    top:4px
}
.ico.triangle:before {
    width:38px;
    height:38px;
    border-left:3px solid var(--blue);
    border-bottom:3px solid var(--blue);
    transform:rotate(135deg);
    left:4px;
    top:4px
}
.ico.column:before,
.ico.column:after {
    content:"";
    position:absolute;
}

.ico.column:before {
    width:36px;
    height:36px;
    border:3px solid var(--blue);
    border-radius:50%;
    left:4px;
    top:4px;
}

.ico.column:after {
    width:18px;
    height:18px;
    border:3px solid var(--orange);
    border-radius:50%;
    right:0;
    bottom:0;
    box-shadow:
        -18px -18px 0 -3px var(--blue);
}
.content-grid {
    display:grid;
    grid-template-columns:2fr .9fr .95fr;
    gap:22px;
    margin-bottom:22px
}
.model-panel{
    min-height:360px;
    padding:38px 32px;
    display:grid;
    grid-template-columns:40% 60%;
    align-items:center;
}

.eyebrow {
    text-transform:uppercase;
    font-size:12px;
    font-weight:900;
    letter-spacing:.09em;
    color:var(--navy);
    margin:0 0 15px
}
.model-copy h2 {
    font-family:"Playfair Display",serif;
    font-size:35px;
    line-height:1.08;
    margin:0 0 22px;
    color:var(--navy2)
}
.model-copy>p:not(.eyebrow) {
    font-size:15px;
    line-height:1.7;
    color:var(--muted);
    margin:0 0 28px;
    max-width:440px
}
.model-panel img{
    width:100%;
    max-width:530px;
    height:auto;
    margin:auto;
    object-fit:contain;
}
.routes-panel,.articles-panel {
    padding:28px 24px
}
.routes-panel h2,.articles-panel h2 {
    font-size:23px;
    margin:0 0 20px
}
.route {
    height:54px;
    border:1px solid var(--line);
    border-radius:13px;
    background:#fff;
    display:flex;
    align-items:center;
    gap:14px;
    padding:0 17px;
    margin-bottom:12px;
    font-size:14px;
    font-weight:800
}
.route b {
    margin-left:auto;
    color:var(--blue)
}
.route span {
    color:var(--orange);
    font-size:20px
}
.compact {
    margin-bottom:12px
}
.article-card {
    display:grid;
    grid-template-columns:126px 1fr;
    gap:18px;
    padding:11px 0;
    border-bottom:1px solid var(--line)
}
.article-card:last-child {
    border-bottom:0
}
.article-card img {
    width:126px;
    height:74px;
    object-fit:cover;
    border-radius:10px
}
.article-card h3 {
    font-size:15px;
    line-height:1.25;
    margin:0 0 7px
}
.article-card p {
    font-size:13px;
    color:var(--muted);
    line-height:1.35;
    margin:0 0 6px
}
.article-card small {
    font-size:12px;
    color:var(--muted)
}
.value-panel {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    padding:22px 30px;
    margin-bottom:22px
}
.value-panel article {
    display:grid;
    grid-template-columns:56px 1fr;
    gap:18px;
    align-items:center;
    min-width:0
}
.value-panel article+article {
    border-left:1px solid var(--line);
    padding-left:48px
}
.value-panel span {
    font-size:42px;
    color:var(--blue);
    line-height:1
}
.value-panel h3 {
    font-size:17px;
    margin:0 0 8px
}
.value-panel p {
    font-size:14px;
    line-height:1.45;
    color:var(--muted);
    margin:0;
    max-width:280px
}
.closing-quote {
    min-height:86px;
    border-radius:15px;
    background:linear-gradient(135deg,var(--navy2),#00679b);
    color:#fff;
    display:grid;
    place-items:center;
    text-align:center;
    padding:18px
}
.closing-quote p {
    font-family:"Playfair Display",Georgia,serif;
    font-size:24px;
    margin:0 0 6px
}
.closing-quote span {
    font-size:38px
}
.closing-quote small {
    font-size:12px;
    opacity:.9
}
@media(max-width:1250px) {
    main {
        width:min(1180px,calc(100% - 48px))
    }
    .site-header {
        grid-template-columns:260px 1fr 105px;
        padding:0 24px
    }
    .main-nav {
        gap:18px
    }
    .main-nav a {
        font-size:12px
    }
    .hero {
        grid-template-columns:34% 48% 18%;
        gap:18px
    }
    .hero h1 {
        font-size:38px
    }
    .topics-grid {
        grid-template-columns:repeat(4,1fr)
    }
    .content-grid {
        grid-template-columns:1fr
    }
    .quote-card {
        width:170px
    }
    .value-panel {
        grid-template-columns:repeat(2,1fr);
        gap:20px
    }
    .value-panel article+article {
        border-left:0;
        padding-left:0
    }
}
@media(max-width:860px) {
    .site-header {
        position:static;
        height:auto;
        grid-template-columns:1fr;
        padding:18px
    }
    .main-nav {
        justify-content:flex-start;
        overflow:auto
    }
    .header-actions {
        display:none
    }
    main {
        width:calc(100% - 28px)
    }
    .hero {
        grid-template-columns:1fr;
        padding:28px 0
    }
.hero-copy{
    padding-left:28px;
    padding-right:24px;
}
    .hero-art {
        height:auto
    }
    .quote-card {
        justify-self:stretch;
        width:auto
    }
    .topics-grid {
        grid-template-columns:1fr
    }
    .content-grid {
        grid-template-columns:1fr
    }
    .model-panel {
        grid-template-columns:1fr
    }
    .value-panel {
        grid-template-columns:1fr
    }
    .article-card {
        grid-template-columns:110px 1fr
    }
}

.site-footer{
    margin-top:26px;
    margin-bottom: 26px;
    background:
        linear-gradient(
            135deg,
            #061f4a 0%,
            #082b5f 45%,
            #0b6aa0 100%
        );

    color:#f4f4f4;
    border-radius:18px;
    overflow:hidden;
}
.site-footer {
  margin-bottom: 40px;
}
.footer-inner{
    width:min(1400px,calc(100% - 60px));
    margin:auto;
    padding:34px 0;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:18px;
    text-align:center;
}
.footer-space {
  height: 28px;
  background: #f5f1ea;
}
.footer-brand strong{
    display:block;

    font-size:20px;
    font-weight:800;

    margin-bottom:6px;
}

.footer-brand p{
    margin:0;

    color:#bfc7d4;

    font-size:14px;
}

.footer-links{
    display:flex;
    gap:26px;

    flex-wrap:wrap;
    justify-content:center;
}

.footer-links a{
    color:#ffffff;
    font-size:14px;
    opacity:.9;
    transition:.2s;
}


.footer-links a:hover{
    opacity:1;
    color:#ffb27d;
}

.footer-copy{
    font-size:13px;
    color:#bfc7d4;
}

/* =========================================================
   PÁGINA ARTÍCULOS
   ========================================================= */

.articles-page{
    width:min(1540px,calc(100% - 84px));
    margin:0 auto 42px;
}

.articles-hero{
    min-height:260px;
    display:grid;
    grid-template-columns:42% 58%;
    gap:40px;
    align-items:center;
    padding:50px 18px 36px;
    border-bottom:1px solid rgba(211,183,158,.45);
}

.articles-hero h1{
    font-family:"Playfair Display",Georgia,serif;
    font-size:clamp(44px,4vw,72px);
    line-height:1;
    letter-spacing:-.04em;
    margin:0 0 24px;
    color:var(--navy2);
}

.articles-hero p:not(.eyebrow){
    max-width:620px;
    margin:0;
    font-size:18px;
    line-height:1.75;
    color:var(--muted);
}

.articles-hero-art{
    position:relative;
    height:250px;
    overflow:hidden;
    border-radius:28px;
    background:
        radial-gradient(circle at 78% 28%, rgba(13,111,200,.26) 0 9%, transparent 10%),
        radial-gradient(circle at 62% 58%, rgba(8,43,95,.22) 0 8%, transparent 9%),
        radial-gradient(circle at 42% 45%, rgba(255,122,61,.16) 0 7%, transparent 8%),
        linear-gradient(135deg, rgba(255,255,255,.15), rgba(255,243,231,.88));
}

.articles-hero-art:before,
.articles-hero-art:after{
    content:"";
    position:absolute;
    inset:22px -40px auto 70px;
    height:1px;
    background:rgba(8,43,95,.28);
    transform:rotate(-18deg);
}

.articles-hero-art:after{
    inset:auto 20px 70px -20px;
    transform:rotate(12deg);
}

.articles-hero-art span{
    position:absolute;
    border-radius:50%;
    border:1px solid rgba(8,43,95,.25);
}

.articles-hero-art span:nth-child(1){width:140px;height:140px;right:70px;top:28px;background:rgba(13,111,200,.35)}
.articles-hero-art span:nth-child(2){width:100px;height:100px;right:260px;top:104px;background:rgba(8,43,95,.22)}
.articles-hero-art span:nth-child(3){width:34px;height:34px;left:180px;top:110px;background:rgba(255,255,255,.2)}
.articles-hero-art span:nth-child(4){width:10px;height:10px;right:138px;top:92px;background:var(--navy)}

.articles-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:26px;
    padding:24px;
    margin:28px 0 18px;
}

.search-box{
    flex:1;
    max-width:690px;
    height:58px;
    display:flex;
    align-items:center;
    gap:14px;
    padding:0 20px;
    border:1px solid rgba(151,172,196,.65);
    border-radius:10px;
    background:#fff;
}

.search-box span{
    font-size:28px;
    color:var(--muted);
}

.search-box input{
    width:100%;
    border:0;
    outline:0;
    font:inherit;
    font-size:15px;
    color:var(--text);
    background:transparent;
}

.sort-box{
    display:flex;
    align-items:center;
    gap:12px;
    font-weight:800;
    color:var(--navy2);
}

.sort-box select{
    height:46px;
    min-width:170px;
    padding:0 16px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#fff;
    color:var(--text);
    font:inherit;
}

.filters-panel{
    padding:20px 24px;
    margin-bottom:26px;
}

.filter-row{
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    margin:10px 0;
}

.filter-row strong{
    width:110px;
    text-transform:uppercase;
    font-size:12px;
    letter-spacing:.04em;
    color:var(--navy2);
}

.chip{
    height:34px;
    padding:0 18px;
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--text);
    font-weight:700;
    cursor:pointer;
}

.chip.active,
.chip:hover{
    background:var(--blue);
    border-color:var(--blue);
    color:#fff;
}

.articles-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 320px;
    gap:30px;
}

.featured-block h2,
.article-grid-block h2{
    font-family:"Playfair Display",Georgia,serif;
    font-size:28px;
    margin:0 0 18px;
    color:var(--navy2);
}

.featured-article{
    display:grid;
    grid-template-columns:55% 45%;
    align-items:stretch;

    background:linear-gradient(135deg,#061f4a,#08192c);

    border-radius:18px;
    overflow:hidden;

    box-shadow:var(--shadow);
}

.featured-article img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    display:block;
}

.featured-article div{
    padding:38px 42px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.tag{
    display:inline-block;
    margin-bottom:16px;
    color:#6fb3ff;
    text-transform:uppercase;
    font-size:13px;
    font-weight:900;
    letter-spacing:.06em;
}

.featured-article h3{
    font-family:"Playfair Display",Georgia,serif;
    font-size:42px;
    line-height:1.05;
    margin:0 0 18px;
}

.featured-article p{
    max-width:580px;
    margin:0 0 26px;
    font-size:18px;
    line-height:1.55;
    color:rgba(255,255,255,.88);
}

.featured-article small{
    color:rgba(255,255,255,.82);
    font-size:14px;
}

.article-grid-block{
    margin-top:34px;
}

.article-grid-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:34px;
}

.large-article-card{
    overflow:hidden;
    border:1px solid rgba(223,202,184,.78);
    border-radius:12px;
    background:#fff;
    box-shadow:0 14px 34px rgba(8,43,95,.06);
    transition:transform .2s ease, box-shadow .2s ease;
}

.large-article-card:hover{
    transform:translateY(-4px);
    box-shadow:0 20px 42px rgba(8,43,95,.12);
}

.large-article-card img{
    width:100%;
    aspect-ratio:1.55 / 1;
    height:auto;
    object-fit:cover;
    object-position:center;
    background:#efe6da;
}

.large-article-body{
    padding:22px 24px;
}

.large-article-body h3{
    font-family:"Playfair Display",Georgia,serif;
    font-size:25px;
    line-height:1.15;
    margin:0 0 14px;
    color:var(--navy2);
}

.large-article-body p{
    min-height:68px;
    margin:0 0 22px;
    color:var(--text);
    font-size:15px;
    line-height:1.55;
}

.large-article-body footer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    color:var(--muted);
}

.articles-sidebar{
    display:flex;
    flex-direction:column;
    gap:22px;
}

.side-card{
    padding:24px;
}

.side-card h2{
    font-family:"Playfair Display",Georgia,serif;
    font-size:24px;
    margin:0 0 20px;
    color:var(--navy2);
}

.side-card a:not(.all-link){
    display:grid;
    grid-template-columns:42px 1fr 16px;
    gap:14px;
    align-items:center;
    padding:14px 0;
    border-bottom:1px solid var(--line);
}

.side-card a:last-child{
    border-bottom:0;
}

.side-card a span{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border:1px solid var(--line);
    border-radius:50%;
    color:var(--blue);
    font-weight:900;
}

.side-card strong{
    display:block;
    font-size:14px;
    color:var(--navy2);
}

.side-card small{
    display:block;
    margin-top:4px;
    color:var(--muted);
    font-size:12px;
}

.recent-item{
    grid-template-columns:58px 1fr!important;
}

.recent-item img{
    width:54px;
    height:54px;
    object-fit:cover;
    border-radius:8px;
}

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

.tag-cloud span{
    padding:8px 12px;
    border:1px solid var(--line);
    border-radius:999px;
    background:#fff;
    font-size:13px;
    color:var(--text);
}

.site-footer{
    width:min(1540px,calc(100% - 84px));
    margin:26px auto 0;
    background:linear-gradient(135deg,#061f4a 0%,#082b5f 45%,#0b6aa0 100%);
    color:#f4f4f4;
    border-radius:18px;
    overflow:hidden;
}

.footer-inner{
    padding:34px 0;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:16px;
    text-align:center;
}

.footer-brand strong{
    display:block;
    font-size:20px;
    font-weight:800;
}

.footer-brand p{
    margin:6px 0 0;
    color:#dbe7f5;
    font-size:14px;
}

.footer-links{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:26px;
}

.footer-links a{
    color:#fff;
    font-size:14px;
    opacity:.92;
}

.footer-links a:hover{
    opacity:1;
    color:#ffb27d;
}

.footer-copy{
    font-size:13px;
    color:#dbe7f5;
}

@media(max-width:1250px){
    .articles-page,
    .site-footer{
        width:min(1180px,calc(100% - 48px));
    }

    .articles-layout{
        grid-template-columns:1fr;
    }

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

@media(max-width:860px){
    .articles-page,
    .site-footer{
        width:calc(100% - 28px);
    }

    .articles-hero,
    .featured-article,
    .articles-toolbar{
        grid-template-columns:1fr;
        flex-direction:column;
        align-items:stretch;
    }

    .articles-hero-art{
        height:180px;
    }

    .filter-row strong{
        width:100%;
    }

	.article-grid-list{
		display:grid;
		grid-template-columns:repeat(2,minmax(0,1fr));
		gap:34px;
	}
}


/* ===== Temas ===== */
.topics-body,
.topic-detail-body{
    background:radial-gradient(circle at top left,#fff7ef 0,#f7efe5 34%,#eef4fb 100%);
}

.topic-card{
    color:inherit;
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.topic-card:hover{
    transform:translateY(-3px);
    box-shadow:0 18px 34px rgba(44,62,80,.12);
    border-color:rgba(13,111,200,.28);
}

.topics-page,
.topic-detail-page{
    width:min(1180px,calc(100% - 56px));
    margin:34px auto 70px;
}

.topics-hero{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:28px;
    align-items:stretch;
    margin-bottom:22px;
}

.topics-hero > div:first-child,
.topics-hero-map{
    border-radius:28px;
    border:1px solid rgba(223,202,184,.78);
    background:rgba(255,255,255,.84);
    box-shadow:var(--shadow);
}

.topics-hero > div:first-child{
    padding:42px 46px;
}

.topics-hero h1,
.topic-detail-hero h1{
    margin:0 0 14px;
    color:var(--navy);
    font-size:clamp(42px,5vw,70px);
    line-height:.96;
    letter-spacing:-.06em;
}

.topics-hero p:not(.eyebrow){
    margin:0;
    color:var(--muted);
    font-size:18px;
    line-height:1.7;
    max-width:720px;
}

.topic-detail-hero p:not(.eyebrow){
    margin:0;
    color:var(--muted);
    font-size:18px;
    line-height:1.7;
    max-width:none;
}

.topics-hero-map{
    position:relative;
    min-height:300px;
    overflow:hidden;
    background:linear-gradient(145deg,#0b2447,#0d6fc8 58%,#ff8a4c);
}

.topics-hero-map:before{
    content:"";
    position:absolute;
    inset:36px;
    border:1px solid rgba(255,255,255,.35);
    border-radius:50%;
}

.topics-hero-map:after{
    content:"";
    position:absolute;
    left:24%;
    right:18%;
    top:50%;
    border-top:2px dashed rgba(255,255,255,.38);
    transform:rotate(-18deg);
}

.topics-hero-map span{
    position:absolute;
    z-index:1;
    padding:9px 13px;
    border-radius:999px;
    background:rgba(255,255,255,.9);
    color:var(--navy);
    font-size:13px;
    font-weight:800;
    box-shadow:0 12px 30px rgba(0,0,0,.12);
}

.topics-hero-map span:nth-child(1){left:38px;top:42px}
.topics-hero-map span:nth-child(2){right:56px;top:70px}
.topics-hero-map span:nth-child(3){left:44%;top:44%}
.topics-hero-map span:nth-child(4){left:76px;bottom:56px}
.topics-hero-map span:nth-child(5){right:42px;bottom:52px}

.topics-intro-panel{
    display:grid;
    grid-template-columns:.75fr 1.25fr;
    gap:24px;
    align-items:center;
    padding:24px 28px;
    margin-bottom:22px;
}

.topics-intro-panel h2{
    margin:4px 0 0;
    color:var(--navy);
    font-size:28px;
    letter-spacing:-.03em;
}

.topics-intro-panel p{
    margin:0;
    color:var(--muted);
    font-size:16px;
    line-height:1.65;
}

.topics-directory{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}

.topic-tile{
    min-height:265px;
    padding:24px;
    color:inherit;
    display:flex;
    flex-direction:column;
    gap:12px;
    transition:transform .18s ease, box-shadow .18s ease;
}

.topic-tile:hover{
    transform:translateY(-4px);
    box-shadow:0 24px 46px rgba(44,62,80,.15);
}

.topic-tile small,
.related-topic small{
    color:var(--blue);
    font-weight:800;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.topic-tile h2{
    margin:0;
    color:var(--navy);
    font-size:24px;
    letter-spacing:-.03em;
}

.topic-tile p{
    margin:0;
    color:var(--muted);
    line-height:1.58;
    font-size:15px;
}

.topic-tile b{
    margin-top:auto;
    color:var(--blue);
    font-size:14px;
}

.back-link{
    display:inline-flex;
    margin:0 0 18px;
    color:var(--blue);
    font-weight:800;
    font-size:19px;
}

.topic-detail-hero{
    display:grid;
    grid-template-columns:110px 1fr;
    gap:26px;
    align-items:center;
    padding:38px 42px;
    margin-bottom:22px;
}

.topic-detail-icon{
    width:92px;
    height:92px;
    display:grid;
    place-items:center;
    border-radius:28px;
    background:#fff7ef;
    border:1px solid rgba(223,202,184,.9);
}

.topic-detail-icon .ico{
    transform:scale(1.25);
}

.topic-detail-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px;
    margin-bottom:22px;
}

.topic-reading-card,
.topic-articles-card{
    padding:26px 30px;
}

.topic-reading-card h2,
.topic-articles-card h2,
.related-topics h2{
    margin:0 0 18px;
    color:var(--navy);
    font-size:24px;
    letter-spacing:-.03em;
}

.topic-reading-card ul{
    margin:0;
    padding:0;
    list-style:none;
    display:grid;
    gap:12px;
}

.topic-reading-card li{
    position:relative;
    padding-left:28px;
    color:var(--muted);
    line-height:1.6;
}

.topic-reading-card li:before{
    content:"✦";
    position:absolute;
    left:0;
    color:var(--orange);
}

.topic-articles-card{
    margin-bottom:22px;
}

.mini-article-list{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}

.mini-article-list a{
    display:grid;
    grid-template-columns:34px 1fr;
    gap:12px;
    align-items:center;
    padding:16px;
    border-radius:16px;
    background:#fff;
    border:1px solid rgba(223,202,184,.9);
    color:inherit;
}

.mini-article-list span{
    color:var(--orange);
    font-size:20px;
}

.mini-article-list strong{
    display:block;
    color:var(--navy);
    font-size:15px;
}

.mini-article-list b{
    grid-column:2;
    color:var(--muted);
    font-size:12px;
}

.related-topic-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
}

.related-topic{
    padding:20px;
    color:inherit;
    display:grid;
    gap:10px;
}

.related-topic strong{
    color:var(--navy);
    font-size:18px;
}

.related-topic small:last-child{
    color:var(--muted);
    text-transform:none;
    letter-spacing:0;
    font-weight:500;
    line-height:1.5;
}

@media(max-width:1050px){
    .topics-hero,
    .topics-intro-panel,
    .topic-detail-hero,
    .topic-detail-grid{
        grid-template-columns:1fr;
    }

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

@media(max-width:760px){
    .topics-page,
    .topic-detail-page{
        width:calc(100% - 28px);
        margin-top:22px;
    }

    .topics-hero > div:first-child,
    .topic-detail-hero{
        padding:28px 24px;
    }

    .topics-directory,
    .mini-article-list,
    .related-topic-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   AUTORES · Archivo moderno
   ========================================================= */
.authors-page-shell,
.author-detail-shell{
    width:min(1180px, calc(100% - 48px));
    margin:34px auto 80px;
}

.authors-hero{
    display:grid;
    grid-template-columns:1fr 340px;
    gap:34px;
    align-items:end;
    padding:44px;
    background:linear-gradient(135deg, rgba(255,255,255,.96), rgba(247,235,221,.92));
}

.authors-hero h1{
    margin:8px 0 16px;
    font-family:'Playfair Display', serif;
    font-size:clamp(42px, 6vw, 82px);
    line-height:.95;
    color:var(--navy);
}

.authors-hero p{
    max-width:760px;
    color:var(--muted);
    line-height:1.75;
}

.archive-note{
    padding:24px;
    border-radius:24px;
    background:rgba(33,39,58,.06);
    border:1px solid rgba(33,39,58,.08);
}

.archive-note span{
    color:var(--orange);
    font-size:30px;
}

.authors-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
    margin-top:26px;
}

.author-card{
    overflow:hidden;
    background:#fffaf5;
    border:1px solid rgba(210,184,155,.7);
    transition:transform .25s ease, box-shadow .25s ease;
}

.author-card:hover{
    transform:translateY(-6px);
    box-shadow:0 24px 60px rgba(42,31,22,.14);
}

.author-image{
    display:block;
    height:330px;
    overflow:hidden;
    background:#e8d8c4;
}

.author-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    filter:sepia(.22) grayscale(.18) contrast(1.02);
    transition:transform .35s ease;
}

.author-card:hover .author-image img{
    transform:scale(1.04);
}

.author-card-body{
    padding:26px;
}

.author-school{
    margin:0 0 10px;
    color:var(--orange);
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.11em;
}

.author-card h2{
    margin:0 0 4px;
    font-family:'Playfair Display', serif;
    color:var(--navy);
    font-size:31px;
}

.author-card small,
.author-detail-copy small{
    color:#9b7b59;
    font-weight:700;
}

.author-card-body > p:not(.author-school){
    color:var(--muted);
    line-height:1.65;
    min-height:108px;
}

.author-tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:18px 0 0;
}

.author-tags span{
    padding:8px 12px;
    border-radius:999px;
    background:rgba(199,137,83,.12);
    color:#7c4d25;
    font-size:12px;
    font-weight:800;
}

.author-btn{
    margin-top:22px;
    display:inline-flex;
    align-items:center;
    gap:8px;
}

.author-detail-hero{
    display:grid;
    grid-template-columns:390px 1fr;
    gap:44px;
    align-items:center;
    padding:42px;
    background:linear-gradient(135deg, #fffaf5, #f3e3cf);
}

.author-portrait{
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 24px 60px rgba(42,31,22,.18);
}

.author-portrait img{
    width:100%;
    height:480px;
    object-fit:cover;
    display:block;
    filter:sepia(.25) grayscale(.18);
}

.back-link{
    color:var(--orange);
    font-weight:800;
    display:inline-block;
    margin-bottom:24px;
}

.author-detail-copy h1{
    margin:8px 0 8px;
    font-family:'Playfair Display', serif;
    color:var(--navy);
    font-size:clamp(48px, 7vw, 92px);
    line-height:.96;
}

.author-detail-copy p{
    margin-top:24px;
    color:var(--muted);
    font-size:18px;
    line-height:1.85;
}

.author-detail-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px;
    margin-top:24px;
}

.author-section{
    padding:30px;
    background:#fff;
    border:1px solid rgba(210,184,155,.65);
}

.author-section h2{
    margin-top:0;
    color:var(--navy);
}

.wide-section{
    grid-column:1 / -1;
}

.big-tags span{
    font-size:14px;
    padding:10px 15px;
}

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

.archive-list li{
    position:relative;
    padding-left:28px;
    color:var(--muted);
    line-height:1.6;
}

.archive-list li:before{
    content:'✦';
    position:absolute;
    left:0;
    color:var(--orange);
}

.related-authors{
    display:grid;
    gap:10px;
}

.related-authors a{
    display:flex;
    justify-content:space-between;
    gap:16px;
    padding:14px 16px;
    border-radius:16px;
    background:rgba(199,137,83,.10);
    color:var(--navy);
    font-weight:800;
}

.timeline{
    display:grid;
    gap:0;
    border-left:2px solid rgba(199,137,83,.32);
    margin-left:8px;
    padding-left:26px;
}

.timeline-item{
    position:relative;
    padding:0 0 20px;
    color:var(--muted);
    line-height:1.6;
}

.timeline-item:before{
    content:'';
    position:absolute;
    left:-33px;
    top:4px;
    width:12px;
    height:12px;
    border-radius:50%;
    background:var(--orange);
    box-shadow:0 0 0 6px rgba(199,137,83,.14);
}

@media(max-width:1050px){
    .authors-hero,
    .author-detail-hero{
        grid-template-columns:1fr;
    }

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

@media(max-width:760px){
    .authors-page-shell,
    .author-detail-shell{
        width:calc(100% - 28px);
        margin-top:22px;
    }

    .authors-hero,
    .author-detail-hero,
    .author-section{
        padding:26px;
    }

    .authors-grid,
    .author-detail-grid{
        grid-template-columns:1fr;
    }

    .wide-section{
        grid-column:auto;
    }

    .author-image{
        height:280px;
    }

    .author-portrait img{
        height:360px;
    }
}


/* === Mapas conceptuales === */

.mapas-hero,
.mapa-detail-hero {
    padding: 90px 0 18px;
}

.mapas-grid-section {
    padding: 28px 0 90px;
}

.mapas-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 34px;
}

@media (max-width: 900px) {
    .mapas-grid {
        grid-template-columns: 1fr;
    }
}

.mapa-card {
    background: linear-gradient(145deg, rgba(255,255,255,0.055), rgba(255,255,255,0.025));
    border: 1px solid rgba(199, 167, 123, 0.18);
    border-radius: 30px;
    overflow: hidden;
    box-shadow: 0 22px 70px rgba(0,0,0,0.16);
    transition: transform 0.28s ease, border-color 0.28s ease;
}

.mapa-card:hover {
    transform: translateY(-6px);
    border-color: rgba(199, 167, 123, 0.38);
}

.mapa-visual {
    height: 245px;
    padding: 22px;
    background: radial-gradient(circle at 30% 20%, rgba(199,167,123,0.22), transparent 34%), rgba(20, 18, 16, 0.42);
}

.mapa-visual img,
.mapa-detail-visual img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.mapa-content {
    padding: 28px;
}

.mapa-dificultad {
    display: inline-flex;
    align-items: center;
    padding: 7px 13px;
    border-radius: 999px;
    background: rgba(199, 167, 123, 0.14);
    color: #c7a77b;
    font-size: 0.83rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 16px;
}

.mapa-content h2 {
    margin: 0 0 8px;
}

.mapa-content h3,
.mapa-detail-info h2 {
    margin: 0 0 16px;
    color: #5b6472;
    font-weight: 400;
}

.mapa-tags,
.mapa-node-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}

.mapa-tags span,
.mapa-node-list span {
    display: inline-flex;
    align-items: center;
    padding: 10px 16px;
    border-radius: 12px;
    background: rgba(15, 59, 120, 0.06);
    border: 1px solid rgba(15, 59, 120, 0.14);
    color: #0f3b78;
    font-size: 0.92rem;
    font-weight: 500;
    transition: all 0.22s ease;
}

.mapa-tags span:hover,
.mapa-node-list span:hover {
    background: rgba(15, 59, 120, 0.1);
    border-color: rgba(15, 59, 120, 0.28);
    transform: translateY(-1px);
}

.volver-mapas {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 28px;
    color: #0f3b78;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.95rem;
    transition: opacity 0.2s ease;
}

.volver-mapas:hover {
    opacity: 0.72;
}

.mapa-detail-grid {
    display: grid;
    grid-template-columns: minmax(320px, 520px) 1fr;
    gap: 58px;
    align-items: center;
    padding-bottom: 50px;
}

.mapa-detail-visual {
    min-height: 430px;
    padding: 34px;
    border-radius: 34px;
    border: 1px solid rgba(199,167,123,0.22);
    background: radial-gradient(circle at 50% 30%, rgba(199,167,123,0.2), transparent 42%), rgba(255,255,255,0.035);
}

.mapa-detail-info p {
    font-size: 1.08rem;
    line-height: 1.85;
}

.mapa-sections {
    padding: 28px 0 90px;
}

.mapa-block {
    margin-bottom: 64px;
}

.mapa-block p {
    line-height: 1.9;
}

.two-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

.related-mapas {
    display: grid;
    gap: 14px;
}

.related-mapas a {
    display: block;
    padding: 18px 20px;
    border-radius: 18px;
    background: rgba(255,255,255,0.045);
    border: 1px solid rgba(255,255,255,0.07);
    text-decoration: none;
    color: inherit;
}

.related-mapas a:hover {
    border-color: rgba(199,167,123,0.34);
}

@media (max-width: 850px) {
    .mapa-detail-grid,
    .two-columns {
        grid-template-columns: 1fr;
    }

    .mapa-detail-visual {
        min-height: 300px;
    }
}
.mapas-hero p,
.mapa-detail-hero p {
    color: #243b53;
}

.mapas-hero p {
    max-width: 1000px;
}

.mapas-hero,
.mapa-detail-hero {
    padding: 45px 0 18px;
}

.mapas-grid-section {
    padding: 0 0 90px;
}

/* === Glosario === */
.glosario-hero,
.glosario-detail-hero {
    padding: 90px 0 42px;
}

.glosario-search-panel {
    margin-top: 34px;
    padding: 24px;
    border-radius: 28px;
    background: rgba(255,255,255,0.62);
    border: 1px solid rgba(219, 188, 158, 0.72);
    box-shadow: 0 24px 80px rgba(21, 54, 94, 0.08);
}

.glosario-search-panel label {
    display: block;
    font-weight: 800;
    color: var(--navy);
    margin-bottom: 10px;
}

.glosario-search-panel input {
    width: 100%;
    border: 1px solid rgba(16, 64, 121, 0.18);
    background: rgba(255,255,255,0.86);
    border-radius: 18px;
    padding: 16px 18px;
    font: inherit;
    color: var(--navy);
    outline: none;
}

.glosario-search-panel input:focus {
    border-color: rgba(0, 104, 255, 0.45);
    box-shadow: 0 0 0 4px rgba(0, 104, 255, 0.08);
}

.glosario-filter-row,
.glosario-letter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

.filter-chip,
.letter-chip {
    border: 1px solid rgba(16, 64, 121, 0.16);
    background: rgba(255,255,255,0.64);
    color: var(--navy);
    border-radius: 999px;
    padding: 9px 14px;
    font-weight: 800;
    cursor: pointer;
}

.filter-chip.active,
.letter-chip.active,
.filter-chip:hover,
.letter-chip:hover {
    background: var(--navy);
    color: white;
    border-color: var(--navy);
}

.glosario-grid-section {
    padding: 28px 0 90px;
}

.glosario-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
    gap: 28px;
}

.glosario-card,
.glosario-detail-card,
.glosario-intuition,
.glosario-block,
.side-box {
    background: rgba(255,255,255,0.72);
    border: 1px solid rgba(219, 188, 158, 0.68);
    border-radius: 28px;
    box-shadow: 0 22px 70px rgba(21, 54, 94, 0.08);
}

.glosario-card {
    padding: 26px;
    transition: transform 0.28s ease, border-color 0.28s ease;
}

.glosario-card:hover {
    transform: translateY(-5px);
    border-color: rgba(199, 137, 83, 0.55);
}

.glosario-card-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
}

.glosario-level {
    display: inline-flex;
    align-items: center;
    padding: 7px 12px;
    border-radius: 999px;
    background: rgba(230, 118, 46, 0.12);
    color: var(--orange);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.glosario-family {
    font-size: 0.82rem;
    color: var(--muted);
    font-weight: 700;
}

.glosario-card h2,
.glosario-detail-card h1 {
    margin: 0 0 12px;
    color: var(--navy);
}

.glosario-card p,
.glosario-detail-card p,
.glosario-block p {
    color: var(--muted);
    line-height: 1.72;
}

.glosario-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 20px;
}

.glosario-tags span {
    padding: 8px 13px;
    border-radius: 999px;
    background: rgba(0, 104, 255, 0.07);
    border: 1px solid rgba(0, 104, 255, 0.10);
    color: var(--navy);
    font-size: 0.88rem;
    font-weight: 700;
}

.glosario-empty {
    margin-top: 22px;
    padding: 24px;
    border-radius: 22px;
    background: rgba(255,255,255,0.7);
    color: var(--muted);
    border: 1px solid rgba(219, 188, 158, 0.6);
}

.glosario-detail-grid {
    display: grid;
    grid-template-columns: minmax(320px, 1.1fr) minmax(280px, .9fr);
    gap: 34px;
    align-items: stretch;
}

.glosario-detail-card,
.glosario-intuition {
    padding: 36px;
}

.glosario-detail-card h1 {
    font-size: clamp(2.3rem, 5vw, 4.6rem);
    letter-spacing: -0.05em;
    margin-top: 18px;
}

.glosario-intuition {
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: linear-gradient(145deg, rgba(10,47,92,0.96), rgba(19,107,156,0.92));
    color: white;
}

.glosario-intuition .section-label {
    color: rgba(255,255,255,0.70);
}

.glosario-intuition blockquote {
    margin: 12px 0 0;
    font-family: 'Playfair Display', serif;
    font-size: clamp(1.8rem, 3vw, 3rem);
    line-height: 1.1;
}

.glosario-detail-sections {
    padding: 28px 0 90px;
}

.glosario-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 34px;
}

.glosario-main-text {
    display: grid;
    gap: 28px;
}

.glosario-block,
.side-box {
    padding: 30px;
}

.glosario-block h2,
.side-box h3 {
    margin: 0 0 14px;
    color: var(--navy);
}

.example-block {
    background: linear-gradient(145deg, rgba(255,255,255,0.82), rgba(250, 239, 229, 0.78));
}

.glosario-side-panel {
    display: grid;
    align-content: start;
    gap: 18px;
}

.compact-tags {
    margin-top: 0;
}

.related-terms,
.side-box {
    display: grid;
    gap: 10px;
}

.related-terms a,
.side-link {
    display: block;
    padding: 13px 14px;
    border-radius: 15px;
    background: rgba(0,104,255,0.06);
    border: 1px solid rgba(0,104,255,0.09);
    color: var(--navy);
    font-weight: 800;
    text-decoration: none;
}

.related-terms a:hover,
.side-link:hover {
    border-color: rgba(0,104,255,0.22);
    background: rgba(0,104,255,0.10);
}

@media (max-width: 900px) {
    .glosario-detail-grid,
    .glosario-detail-layout {
        grid-template-columns: 1fr;
    }
}


/* === Ajuste global de centrado para secciones nuevas === */
.mapas-hero .container,
.mapas-grid-section .container,
.mapa-detail-hero .container,
.mapa-sections .container,
.glosario-hero .container,
.glosario-tools .container,
.glosario-grid-section .container,
.glosario-detail-hero .container,
.glosario-sections .container {
    width: min(1240px, calc(100% - 64px));
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 700px) {
    .mapas-hero .container,
    .mapas-grid-section .container,
    .mapa-detail-hero .container,
    .mapa-sections .container,
    .glosario-hero .container,
    .glosario-tools .container,
    .glosario-grid-section .container,
    .glosario-detail-hero .container,
    .glosario-sections .container {
        width: min(100% - 32px, 1240px);
    }
}


/* === Comunidad === */
.comunidad-hero {
    padding: 90px 0 50px;
}

.pregunta-semana {
    padding-bottom: 50px;
}

.question-card {
    padding: 42px;
    border-radius: 34px;
    background:
        radial-gradient(circle at top left, rgba(199,167,123,0.18), transparent 35%),
        rgba(255,255,255,0.04);
    border: 1px solid rgba(199,167,123,0.22);
    box-shadow: 0 22px 70px rgba(0,0,0,0.10);
}

.question-label {
    display: inline-block;
    margin-bottom: 16px;
    color: #c7a77b;
    text-transform: uppercase;
    font-size: 0.82rem;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.question-card h2 {
    font-size: clamp(1.65rem, 3vw, 2.4rem);
    line-height: 1.25;
    margin: 0 0 14px;
}

.comunidad-feed {
    padding: 10px 0 80px;
}

.comunidad-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 28px;
}

.community-post {
    padding: 30px;
    border-radius: 28px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(199,167,123,0.18);
    transition: transform 0.28s ease, border-color 0.28s ease;
    box-shadow: 0 18px 55px rgba(0,0,0,0.08);
}

.community-post:hover {
    transform: translateY(-5px);
    border-color: rgba(199,167,123,0.34);
}

.community-user {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
}

.avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #c7a77b;
    color: #111;
    font-weight: 800;
    box-shadow: 0 10px 24px rgba(199,167,123,0.22);
}

.community-user h3 {
    margin: 0;
    font-size: 1.05rem;
}

.community-user span {
    color: rgba(12, 42, 82, 0.68);
    font-size: 0.92rem;
}

.community-post p {
    line-height: 1.85;
    margin-bottom: 0;
}

.community-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}

.community-tags span {
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(0, 102, 255, 0.08);
    border: 1px solid rgba(0, 102, 255, 0.12);
    font-size: 0.85rem;
    font-weight: 700;
}

.community-routes {
    padding-bottom: 100px;
}

.routes-header {
    margin-bottom: 34px;
}

.routes-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 26px;
}

.route-card {
    display: block;
    padding: 32px;
    border-radius: 28px;
    text-decoration: none;
    color: inherit;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(199,167,123,0.18);
    transition: transform 0.28s ease, border-color 0.28s ease;
}

.route-card:hover {
    transform: translateY(-4px);
    border-color: rgba(199,167,123,0.34);
}

.route-card h3 {
    margin-top: 0;
}

/* Centrado comunidad */
.comunidad-hero .container,
.pregunta-semana .container,
.comunidad-feed .container,
.community-routes .container {
    width: min(1240px, calc(100% - 64px));
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 700px) {
    .comunidad-hero .container,
    .pregunta-semana .container,
    .comunidad-feed .container,
    .community-routes .container {
        width: min(100% - 32px, 1240px);
    }

    .question-card,
    .community-post,
    .route-card {
        padding: 24px;
    }
}


/* === Sobre el proyecto === */
.sobre-hero {
    padding: 96px 0 64px;
}

.sobre-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 56px;
    align-items: center;
}

.sobre-hero h1 {
    max-width: 920px;
}

.sobre-hero-card {
    padding: 34px;
    border-radius: 32px;
    background:
        radial-gradient(circle at top left, rgba(199,167,123,0.22), transparent 42%),
        rgba(255,255,255,0.045);
    border: 1px solid rgba(199,167,123,0.24);
    box-shadow: 0 24px 80px rgba(0,0,0,0.12);
}

.sobre-hero-card span {
    display: inline-block;
    margin-bottom: 14px;
    color: #c7a77b;
    text-transform: uppercase;
    font-size: 0.82rem;
    letter-spacing: 0.08em;
    font-weight: 800;
}

.sobre-hero-card p {
    font-size: 1.25rem;
    line-height: 1.6;
    margin: 0;
}

.sobre-section {
    padding: 70px 0;
}

.sobre-muted {
    background: rgba(255,255,255,0.025);
}

.sobre-layout {
    display: grid;
    grid-template-columns: 90px minmax(0, 860px);
    gap: 44px;
    align-items: start;
}

.sobre-kicker {
    width: 62px;
    height: 62px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(199,167,123,0.14);
    border: 1px solid rgba(199,167,123,0.28);
    color: #c7a77b;
    font-weight: 800;
}

.sobre-section h2,
.sobre-cards-section h2,
.sobre-final h2 {
    margin-top: 0;
    font-size: clamp(1.8rem, 3vw, 2.6rem);
}

.sobre-section p,
.sobre-final p {
    font-size: 1.07rem;
    line-height: 1.9;
}

.sobre-quote {
    padding: 72px 0;
}

.sobre-quote blockquote {
    max-width: 950px;
    margin: 0 auto;
    padding: 42px;
    border-left: 3px solid #c7a77b;
    border-radius: 24px;
    background: rgba(255,255,255,0.04);
    font-size: clamp(1.35rem, 3vw, 2.2rem);
    line-height: 1.45;
    font-weight: 600;
}

.sobre-cards-section {
    padding: 76px 0 92px;
}

.sobre-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 24px;
    margin-top: 34px;
}

.sobre-card {
    display: block;
    padding: 30px;
    border-radius: 28px;
    text-decoration: none;
    color: inherit;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(199,167,123,0.18);
    transition: transform 0.28s ease, border-color 0.28s ease;
}

.sobre-card:hover {
    transform: translateY(-5px);
    border-color: rgba(199,167,123,0.36);
}

.sobre-card h3 {
    margin-top: 0;
    margin-bottom: 12px;
}

.sobre-card p {
    line-height: 1.75;
    margin-bottom: 0;
}

.sobre-final {
    padding: 86px 0 110px;
    text-align: center;
}

.sobre-final .container {
    max-width: 860px;
}

.sobre-final p {
    margin-bottom: 28px;
}

/* Centrado Sobre el proyecto */
.sobre-hero .container,
.sobre-section .container,
.sobre-quote .container,
.sobre-cards-section .container,
.sobre-final .container {
    width: min(1240px, calc(100% - 64px));
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 850px) {
    .sobre-hero-grid,
    .sobre-layout {
        grid-template-columns: 1fr;
    }

    .sobre-hero-card {
        max-width: 100%;
    }

    .sobre-kicker {
        width: 52px;
        height: 52px;
    }
}

@media (max-width: 700px) {
    .sobre-hero .container,
    .sobre-section .container,
    .sobre-quote .container,
    .sobre-cards-section .container,
    .sobre-final .container {
        width: min(100% - 32px, 1240px);
    }

    .sobre-quote blockquote,
    .sobre-hero-card,
    .sobre-card {
        padding: 24px;
    }
}


/* === Modelo simbólico === */
.modelo-hero {
    padding: 96px 0 70px;
}

.modelo-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 470px;
    gap: 64px;
    align-items: center;
}

.modelo-orbita-card {
    position: relative;
    min-height: 430px;
    border-radius: 38px;
    background:
        radial-gradient(circle at 50% 50%, rgba(0,102,255,0.13), transparent 38%),
        radial-gradient(circle at 25% 20%, rgba(255,112,67,0.14), transparent 34%),
        rgba(255,255,255,0.05);
    border: 1px solid rgba(199,167,123,0.22);
    box-shadow: 0 24px 80px rgba(0,0,0,0.12);
    overflow: hidden;
}

.modelo-orbita-card::before,
.modelo-orbita-card::after {
    content: "";
    position: absolute;
    inset: 54px;
    border: 1px dashed rgba(0,102,255,0.28);
    border-radius: 50%;
}

.modelo-orbita-card::after {
    inset: 96px;
    border-color: rgba(255,112,67,0.26);
}

.orbita-center {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 138px;
    height: 138px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: rgba(255,255,255,0.92);
    border: 1px solid rgba(199,167,123,0.24);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #08285a;
    text-align: center;
    z-index: 3;
    box-shadow: 0 18px 50px rgba(0,0,0,0.12);
}

.orbita-center strong {
    font-size: 1rem;
    text-transform: uppercase;
}

.orbita-center span {
    font-size: 0.78rem;
    max-width: 92px;
    opacity: 0.72;
}

.orbita-nodo {
    position: absolute;
    width: 92px;
    height: 92px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    color: #08285a;
    background: #d7eaff;
    border: 1px solid rgba(0,102,255,0.18);
    box-shadow: 0 14px 38px rgba(0,0,0,0.12);
    z-index: 4;
    font-size: 0.82rem;
}

.nodo-yo {
    left: 50%;
    top: 34px;
    transform: translateX(-50%);
}

.nodo-otro {
    left: 34px;
    top: 50%;
    transform: translateY(-50%);
    background: #ffd0ae;
}

.nodo-lenguaje {
    right: 34px;
    top: 50%;
    transform: translateY(-50%);
}

.nodo-deseo {
    left: 86px;
    bottom: 48px;
    background: #d8d4ff;
}

.nodo-inconsciente {
    right: 78px;
    bottom: 48px;
    background: #ffd0ae;
}

.modelo-section {
    padding: 16px 0;
}

.modelo-muted {
    background: rgba(255,255,255,0.025);
}

.modelo-layout {
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.modelo-layout > div:last-child {
    max-width: 980px;
}

.modelo-layout p {
    text-align: justify;
    max-width: 980px;
    line-height: 1.78;
}

.modelo-kicker {
    width: 62px;
    height: 62px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,102,255,0.08);
    border: 1px solid rgba(0,102,255,0.18);
    color: #0066ff;
    font-weight: 800;
}

.modelo-section h2,
.modelo-nodos-section h2,
.modelo-access h2 {
    margin-top: 0;
    font-size: clamp(1.8rem, 3vw, 2.55rem);
}

.modelo-section p,
.modelo-access p {
    font-size: 1.07rem;
    line-height: 1.9;
}

.modelo-nodos-section {
    padding: 76px 0 92px;
}

.modelo-nodos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 24px;
    margin-top: 34px;
}

.modelo-nodo-card {
    padding: 30px;
    border-radius: 28px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(199,167,123,0.18);
    box-shadow: 0 18px 55px rgba(0,0,0,0.08);
}

.modelo-nodo-card span {
    display: inline-flex;
    margin-bottom: 18px;
    color: #ff7043;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.modelo-nodo-card h3 {
    margin: 0 0 12px;
}

.modelo-nodo-card p {
    line-height: 1.75;
    margin: 0;
}

.modelo-access {
    padding: 84px 0 110px;
}

.modelo-access-card {
    padding: 46px;
    border-radius: 36px;
    text-align: center;
    background:
        radial-gradient(circle at top left, rgba(0,102,255,0.13), transparent 36%),
        radial-gradient(circle at bottom right, rgba(255,112,67,0.12), transparent 38%),
        rgba(255,255,255,0.045);
    border: 1px solid rgba(199,167,123,0.22);
    box-shadow: 0 24px 80px rgba(0,0,0,0.12);
}

.modelo-access-card p {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}

.modelo-access-card .explorar-btn {
    margin-top: 16px;
}

.explorar-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 24px;
    padding: 12px 22px;
    border-radius: 14px;
    background: #0f3b78;
    color: white;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.95rem;
    transition: all 0.25s ease;
    box-shadow: 0 10px 25px rgba(15, 59, 120, 0.18);
}

.explorar-btn:hover {
    background: #174d99;
    transform: translateY(-2px);
    box-shadow: 0 14px 32px rgba(15, 59, 120, 0.25);
}

/* Centrado Modelo simbólico */
.modelo-hero .container,
.modelo-section .container,
.modelo-nodos-section .container,
.modelo-access .container {
    width: min(1240px, calc(100% - 64px));
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 900px) {
    .modelo-hero-grid,
    .modelo-layout {
        grid-template-columns: 1fr;
    }

    .modelo-orbita-card {
        min-height: 360px;
    }
}

@media (max-width: 700px) {
    .modelo-hero .container,
    .modelo-section .container,
    .modelo-nodos-section .container,
    .modelo-access .container {
        width: min(100% - 32px, 1240px);
    }

    .modelo-access-card,
    .modelo-nodo-card {
        padding: 24px;
    }

    .orbita-nodo {
        width: 76px;
        height: 76px;
        font-size: 0.72rem;
    }

    .orbita-center {
        width: 116px;
        height: 116px;
    }
}


/* === Rutas de aprendizaje === */
.rutas-hero,
.ruta-detail-hero {
    padding: 94px 0 54px;
}

.rutas-grid-section {
    padding: 28px 0 96px;
}

.rutas-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(310px, 1fr));
    gap: 30px;
}

.ruta-card {
    padding: 32px;
    border-radius: 30px;
    background:
        radial-gradient(circle at top left, rgba(0,102,255,0.08), transparent 34%),
        rgba(255,255,255,0.045);
    border: 1px solid rgba(199,167,123,0.18);
    box-shadow: 0 20px 65px rgba(0,0,0,0.09);
    transition: transform 0.28s ease, border-color 0.28s ease;
}

.ruta-card:hover {
    transform: translateY(-5px);
    border-color: rgba(199,167,123,0.36);
}

.ruta-card-top {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    margin-bottom: 24px;
}

.ruta-nivel,
.ruta-duracion,
.ruta-meta span {
    display: inline-flex;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(255,112,67,0.10);
    color: #ff7043;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ruta-duracion,
.ruta-meta span:nth-child(2) {
    background: rgba(0,102,255,0.08);
    color: #0066ff;
}

.ruta-card h2 {
    margin: 0 0 8px;
}

.ruta-card h3,
.ruta-detail-hero h2 {
    margin: 0 0 18px;
    font-weight: 500;
    opacity: 0.72;
}

.ruta-card p {
    line-height: 1.78;
}

.ruta-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 24px 0 4px;
}

.ruta-tags span {
    padding: 8px 13px;
    border-radius: 999px;
    background: rgba(0,102,255,0.08);
    border: 1px solid rgba(0,102,255,0.12);
    font-size: 0.85rem;
    font-weight: 700;
}

.ruta-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 390px;
    gap: 56px;
    align-items: center;
}

.ruta-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
}

.ruta-summary-card {
    padding: 34px;
    border-radius: 32px;
    background:
        radial-gradient(circle at top left, rgba(199,167,123,0.18), transparent 38%),
        rgba(255,255,255,0.045);
    border: 1px solid rgba(199,167,123,0.24);
    box-shadow: 0 24px 80px rgba(0,0,0,0.12);
}

.ruta-summary-card span {
    display: inline-block;
    margin-bottom: 14px;
    color: #c7a77b;
    text-transform: uppercase;
    font-size: 0.82rem;
    letter-spacing: 0.08em;
    font-weight: 800;
}

.ruta-summary-card p {
    margin: 0;
    line-height: 1.8;
    font-size: 1.05rem;
}

.ruta-steps-section {
    padding: 62px 0 96px;
}

.ruta-steps-header {
    margin-bottom: 32px;
}

.ruta-steps {
    display: grid;
    gap: 18px;
}

.ruta-step {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) 36px;
    gap: 22px;
    align-items: center;
    padding: 24px;
    border-radius: 26px;
    text-decoration: none;
    color: inherit;
    background: rgba(255,255,255,0.045);
    border: 1px solid rgba(199,167,123,0.18);
    transition: transform 0.28s ease, border-color 0.28s ease;
}

.ruta-step:hover {
    transform: translateX(4px);
    border-color: rgba(199,167,123,0.36);
}

.ruta-step-number {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,102,255,0.08);
    border: 1px solid rgba(0,102,255,0.14);
    color: #0066ff;
    font-weight: 900;
}

.ruta-step-content span {
    color: #ff7043;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.ruta-step-content h3 {
    margin: 6px 0 8px;
}

.ruta-step-content p {
    margin: 0;
    line-height: 1.65;
    opacity: 0.78;
}

.ruta-step-arrow {
    font-size: 1.5rem;
    color: #0066ff;
}

.otras-rutas-section {
    padding: 0 0 100px;
}

.otras-rutas {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
    margin-top: 24px;
}

.otras-rutas a {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    padding: 20px;
    border-radius: 20px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(199,167,123,0.18);
    text-decoration: none;
    color: inherit;
}

.otras-rutas a:hover {
    border-color: rgba(199,167,123,0.34);
}

/* Centrado Rutas */
.rutas-hero .container,
.rutas-grid-section .container,
.ruta-detail-hero .container,
.ruta-steps-section .container,
.otras-rutas-section .container {
    width: min(1240px, calc(100% - 64px));
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 850px) {
    .ruta-detail-grid {
        grid-template-columns: 1fr;
    }

    .ruta-step {
        grid-template-columns: 56px minmax(0, 1fr);
    }

    .ruta-step-arrow {
        display: none;
    }
}

@media (max-width: 700px) {
    .rutas-hero .container,
    .rutas-grid-section .container,
    .ruta-detail-hero .container,
    .ruta-steps-section .container,
    .otras-rutas-section .container {
        width: min(100% - 32px, 1240px);
    }

    .ruta-card,
    .ruta-summary-card,
    .ruta-step {
        padding: 24px;
    }
}


/* === Artículos individuales === */

.articulo-detail-hero {
    padding-top: 24px;
    padding-bottom: 0;
}

.articulo-detail-image {
    position: relative;	
    overflow: hidden;
    border-radius: 28px;
    cursor: zoom-in;
}

.articulo-detail-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.5rem;
}

.articulo-detail-image img {
    width: 100%;
    display: block;
    border-radius: 28px;
    transition: transform 0.25s ease;	
    transform-origin: center center;
}

.zoom-toggle {
    position: absolute;
    right: 14px;
    bottom: 14px;
    z-index: 5;
    width: 42px;
    height: 42px;
    border: none;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: #0b2340;
    font-size: 1.2rem;
    cursor: pointer;
    box-shadow: 0 8px 22px rgba(0,0,0,0.18);
}

.zoom-toggle.active {
    background: #0b2340;
    color: white;
}

.articulo-detail-image.zoom-activo {
    cursor: zoom-in;
}

.articulo-detail-hero h2 {
    margin: 0 0 18px;
    font-weight: 500;
    opacity: 0.72;
}

.articulo-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
}

.articulo-meta span {
    display: inline-flex;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(255,112,67,0.10);
    color: #ff7043;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.articulo-meta span:nth-child(2) {
    background: rgba(0,102,255,0.08);
    color: #0066ff;
}

.articulo-body-section {
    padding: 0px 0 80px;
}

.articulo-body-layout {
    display: grid;
    grid-template-columns: 260px minmax(0, 820px);
    gap: 58px;
    align-items: start;
}

.articulo-side {
    position: sticky;
    top: 110px;
    padding: 24px;
    border-radius: 24px;
    background: rgba(255,255,255,0.045);
    border: 1px solid rgba(199,167,123,0.18);
}

.articulo-side h3 {
    margin-top: 0;
}

.articulo-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.articulo-tags span {
    padding: 8px 13px;
    border-radius: 999px;
    background: rgba(0,102,255,0.08);
    border: 1px solid rgba(0,102,255,0.12);
    font-size: 0.85rem;
    font-weight: 700;
}

.back-link {
    display: inline-block;
    margin-top: 24px;
    text-decoration: none;
    font-weight: 800;
}

.articulo-body {
    padding: 10px 0;
}
.articulo-body {
    padding-top: 20px;
}

.articulo-block:first-child {
    margin-top: 18px;
}
.articulo-block {
    margin-bottom: 58px;
}

.articulo-block h2 {
    margin-top: 0;
    font-size: clamp(1.55rem, 2.4vw, 2.25rem);
}

.articulo-block-body {
    font-size: 1.1rem;
    line-height: 1.45;
    text-align: justify;
}

.articulo-block-body p {
    margin-bottom: 1.5rem;
}

.ensayo-content,
.ensayo-content p,
.articulo-md,
.articulo-md p {
    text-align: justify;
}

.ensayo-content p,
.articulo-md p {
    line-height: 1.85;
    margin-bottom: 1.4rem;
}

.articulos-relacionados-section {
    padding: 0 0 100px;
}

.articulos-relacionados {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 18px;
    margin-top: 24px;
}

.articulos-relacionados a {
    display: flex;
    gap: 16px;
    padding: 16px;
    border-radius: 20px;
    background: rgba(255,255,255,0.045);
    border: 1px solid rgba(199,167,123,0.18);
    text-decoration: none;
    color: inherit;
}

.articulos-relacionados a:hover {
    border-color: rgba(199,167,123,0.34);
}

.articulos-relacionados img {
    width: 82px;
    height: 58px;
    object-fit: cover;
    border-radius: 12px;
}

.articulos-relacionados strong,
.articulos-relacionados span {
    display: block;
}

.articulos-relacionados span {
    margin-top: 6px;
    opacity: 0.68;
    font-size: 0.88rem;
}

/* Centrado artículos individuales */
.articulo-detail-hero .container,
.articulo-body-section .container,
.articulos-relacionados-section .container {
    width: min(1240px, calc(100% - 64px));
    margin-left: auto;
    margin-right: auto;
}

.articulo-detail-image {
    overflow: hidden;
    border-radius: 28px;
    cursor: zoom-in;
}

.articulo-detail-image img {
    width: 100%;
    border-radius: 28px;
    display: block;
    transition: transform 0.45s ease;
    transform-origin: center center;
	cursor: grab;	
}

@media (max-width: 850px) {
    .articulo-detail-grid,
    .articulo-body-layout {
        grid-template-columns: 1fr;
    }

    .articulo-side {
        position: static;
    }
}

@media (max-width: 700px) {
    .articulo-detail-hero .container,
    .articulo-body-section .container,
    .articulos-relacionados-section .container {
        width: min(100% - 32px, 1240px);
    }

    .articulo-detail-image,
    .articulo-side {
        padding: 22px;
    }
}

@media (hover: none) {
    .articulo-detail-image:hover img {
        transform: none;
    }
}

.value-panel a {
  display: flex;
  gap: 16px;
  align-items: center;
  text-decoration: none;
  color: inherit;
  transition: transform .2s ease, background .2s ease;
}

.value-panel a:hover {
  transform: translateY(-2px);
}


/* === Contacto === */
.contacto-hero {
    padding: 96px 0 50px;
}

.contacto-hero-inner {
    max-width: 920px;
}

.contacto-main {
    padding: 24px 0 72px;
}

.contacto-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 420px;
    gap: 52px;
    align-items: center;
    padding: 42px;
    border-radius: 36px;
    background:
        radial-gradient(circle at top left, rgba(0,102,255,0.10), transparent 36%),
        radial-gradient(circle at bottom right, rgba(255,112,67,0.10), transparent 38%),
        rgba(255,255,255,0.045);
    border: 1px solid rgba(199,167,123,0.22);
    box-shadow: 0 24px 80px rgba(0,0,0,0.10);
}

.contacto-card h2 {
    margin-top: 0;
    font-size: clamp(1.8rem, 3vw, 2.55rem);
}

.contacto-card p {
    line-height: 1.85;
    font-size: 1.05rem;
}

.contacto-email-box {
    padding: 30px;
    border-radius: 28px;
    background: rgba(255,255,255,0.55);
    border: 1px solid rgba(199,167,123,0.22);
}

.contacto-email-box span {
    display: block;
    margin-bottom: 10px;
    color: #ff7043;
    text-transform: uppercase;
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    font-weight: 800;
}

.contacto-email-box strong {
    display: block;
    overflow-wrap: anywhere;
    margin-bottom: 22px;
    font-size: 1.08rem;
}

.contacto-motivos {
    padding: 22px 0 76px;
}

.contacto-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 22px;
    margin-top: 28px;
}

.contacto-grid article {
    padding: 28px;
    border-radius: 26px;
    background: rgba(255,255,255,0.045);
    border: 1px solid rgba(199,167,123,0.18);
    box-shadow: 0 18px 55px rgba(0,0,0,0.07);
}

.contacto-grid article span {
    display: inline-block;
    margin-bottom: 18px;
    color: #0066ff;
    font-weight: 900;
}

.contacto-grid article h3 {
    margin: 0 0 10px;
}

.contacto-grid article p {
    margin: 0;
    line-height: 1.7;
}

.contacto-cierre {
    padding: 0 0 90px;
    text-align: center;
}

.contacto-cierre p {
    max-width: 760px;
    margin: 0 auto;
    line-height: 1.9;
    font-size: 1.08rem;
    opacity: 0.82;
}

/* Centrado Contacto */
.contacto-hero .container,
.contacto-main .container,
.contacto-motivos .container,
.contacto-cierre .container {
    width: min(1240px, calc(100% - 64px));
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 850px) {
    .contacto-card {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .contacto-hero .container,
    .contacto-main .container,
    .contacto-motivos .container,
    .contacto-cierre .container {
        width: min(100% - 32px, 1240px);
    }

    .contacto-card,
    .contacto-email-box,
    .contacto-grid article {
        padding: 24px;
    }
}
/* === Tema: versión narrativa / Inconsciente === */

.topic-hero-enhanced {
  display: flex;
  align-items: center;
  gap: 2.5rem;
}

.topic-hero-copy h1 {
  margin-bottom: 14px;
}

.topic-opening-card,
.topic-explain-card {
  margin-top: 28px;
  padding: 42px;
}

.topic-opening-card h2,
.topic-explain-card h2,
.topic-visual-card h2 {
  font-size: clamp(1.8rem, 3vw, 2.45rem);
  line-height: 1.2;
  margin: 0 0 22px;
}

.topic-opening-card p,
.topic-explain-card p,
.topic-visual-text p,
.topic-visual-card p {
  text-align: justify;
  line-height: 1.8;
}
.topic-hero-copy {
  flex: 1;
  max-width: none;
}

@media (max-width: 768px) {
  .topic-opening-card p,
  .topic-explain-card p,
  .topic-visual-text p,
  .topic-visual-card p,
  .topic-hero-copy p {
    text-align: left;
  }
}
.topic-visual-card {
  margin-top: 28px;
  padding: 42px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 430px;
  gap: 44px;
  align-items: center;
  overflow: hidden;
}

.topic-visual-map {
  position: relative;
  min-height: 310px;
  border-radius: 32px;
  background:
    radial-gradient(circle at 50% 50%, rgba(0,102,255,.12), transparent 38%),
    radial-gradient(circle at 25% 25%, rgba(255,112,67,.12), transparent 32%),
    rgba(255,255,255,.42);
  border: 1px solid rgba(199,167,123,.22);
}

.topic-visual-map::before,
.topic-visual-map::after {
  content: "";
  position: absolute;
  inset: 42px;
  border: 1px dashed rgba(0,102,255,.28);
  border-radius: 50%;
}

.topic-visual-map::after {
  inset: 82px;
  border-color: rgba(255,112,67,.28);
}

.topic-visual-map .node {
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 92px;
  height: 92px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid rgba(199,167,123,.28);
  box-shadow: 0 18px 42px rgba(0,0,0,.10);
  font-weight: 800;
  color: #08285a;
  text-align: center;
  font-size: .86rem;
}

.topic-visual-map .node-main {
  width: 132px;
  height: 132px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: #f7efe3;
}

.topic-visual-map .node-a {
  left: 50%;
  top: 22px;
  transform: translateX(-50%);
}

.topic-visual-map .node-b {
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
}

.topic-visual-map .node-c {
  right: 72px;
  bottom: 24px;
  background: #ffd9c4;
}

.topic-visual-map .node-d {
  left: 72px;
  bottom: 24px;
  background: #dbeaff;
}

.topic-visual-map .node-e {
  left: 22px;
  top: 50%;
  transform: translateY(-50%);
  background: #eee9ff;
}

.topic-reading-card li {
  font-size: 1.02rem;
  line-height: 1.75;
}

.topic-articles-card {
  margin-top: 28px;
}

@media (max-width: 900px) {
  .topic-visual-card {
    grid-template-columns: 1fr;
  }

  .topic-visual-map {
    min-height: 280px;
  }
}

@media (max-width: 900px) {
    .articulo-detail-hero .container,
    .articulo-body-section .container,
    .articulos-relacionados-section .container {
        width: calc(100% - 36px);
    }

    .ensayo-content,
    .articulo-md {
        padding: 0;
    }
}

@media (max-width: 700px) {
  .topic-hero-enhanced {
    grid-template-columns: 1fr;
  }

  .topic-opening-card,
  .topic-explain-card,
  .topic-visual-card {
    padding: 28px;
  }
}
/* Más aire entre bloques del detalle de tema */
.topic-detail-page > section {
  margin-bottom: 36px;
}

.topic-visual-card {
  margin-bottom: 34px;
}

.topic-detail-grid {
  gap: 28px;
  margin-top: 34px;
  margin-bottom: 34px;
}

.topic-reading-card {
  padding: 34px;
}
.mapa-detail-single{
    max-width:1200px;
    margin:auto;
}

.mapa-detail-header{
    max-width:900px;
    margin:0 auto 3rem auto;
    text-align:center;
}

.large-visual{
    width:100%;
    display:flex;
    justify-content:center;
}

.large-visual img{
    width:100%;
    max-width:1100px;
    border-radius:28px;
    box-shadow:0 20px 60px rgba(0,0,0,.12);
}

.mapa-card {
  overflow: hidden;
  border-radius: 28px;
  background: #fffaf4;
  border: 1px solid rgba(190, 150, 100, 0.35);
  box-shadow: 0 18px 45px rgba(20, 20, 20, 0.08);
  display: flex;
  flex-direction: column;
}

.mapa-visual {
    height: 320px;
    padding: 10px;
    background: radial-gradient(circle at 30% 20%, rgba(199,167,123,0.22), transparent 34%), rgba(20, 18, 16, 0.42);
}

.mapa-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 14px;
}

.mapa-content {
  padding: 2rem;
  flex: 1;
}

.mapa-content h2 {
  margin-top: 1.2rem;
}

@media (max-width: 1000px) {
  .mapas-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

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

  .mapa-visual {
    aspect-ratio: 16 / 10;
  }
}
/* === Mapa conceptual simbólico en detalle de temas === */

.symbolic-map {
  width: 100%;
  min-height: 310px;
  border-radius: 32px;
  background:
    radial-gradient(circle at 50% 50%, rgba(13,111,200,.10), transparent 38%),
    radial-gradient(circle at 22% 18%, rgba(255,122,61,.10), transparent 34%),
    rgba(255,255,255,.45);
  border: 1px solid rgba(199,167,123,.22);
  overflow: hidden;
}

.symbolic-map svg {
  width: 100%;
  height: 100%;
  min-height: 310px;
  display: block;
}

.map-line {
  stroke: rgba(13,111,200,.28);
  stroke-width: 1.4;
  stroke-dasharray: 5 6;
}

.map-center {
  fill: #082b5f;
  filter: drop-shadow(0 14px 24px rgba(8,43,95,.22));
}

.map-center-text {
  fill: #ffffff;
  font-size: 15px;
  font-weight: 900;
  text-anchor: middle;
  dominant-baseline: middle;
}

.map-node circle {
  fill: #fffaf5;
  stroke: rgba(199,167,123,.55);
  stroke-width: 1.5;
  filter: drop-shadow(0 12px 24px rgba(8,43,95,.12));
}

.map-node text {
  fill: #082b5f;
  font-size: 13px;
  font-weight: 850;
  text-anchor: middle;
  dominant-baseline: middle;
}

.map-node {
  transition: transform .22s ease;
  transform-origin: center;
}

.map-node:hover {
  transform: scale(1.04);
}

@media (max-width: 700px) {
  .symbolic-map,
  .symbolic-map svg {
    min-height: 260px;
  }

  .map-center-text,
  .map-node text {
    font-size: 12px;
  }
}
/* === Preguntas desplegables === */

.faq-list{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-top:22px;
}

.faq-item{
  border:1px solid rgba(199,167,123,.22);
  border-radius:18px;
  background:rgba(255,255,255,.45);
  overflow:hidden;
  transition:all .25s ease;
}

.faq-item:hover{
  border-color:rgba(13,111,200,.28);
  transform:translateY(-1px);
}

.faq-item summary{
  list-style:none;
  cursor:pointer;
  padding:20px 24px;
  font-size:17px;
  font-weight:700;
  color:var(--blue);
  position:relative;
  padding-right:56px;
}

.faq-item summary::-webkit-details-marker{
  display:none;
}

.faq-item summary:after{
  content:"+";
  position:absolute;
  right:22px;
  top:50%;
  transform:translateY(-50%);
  width:28px;
  height:28px;
  border-radius:50%;
  background:rgba(13,111,200,.08);
  color:var(--blue);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:20px;
  font-weight:400;
  transition:all .25s ease;
}

.faq-item[open] summary:after{
  content:"−";
  background:rgba(255,122,61,.12);
  color:var(--orange);
}

.faq-answer{
  padding:0 24px 24px 24px;
  color:var(--muted);
  line-height:1.8;
  font-size:16px;
  max-width:90%;
}
/* === Red simbólica temas === */

.topics-network{
  position:relative;
  height:100%;
  min-height:320px;
  border-radius:32px;
  overflow:hidden;

  background:
    radial-gradient(circle at 50% 50%,
      rgba(13,111,200,.22),
      transparent 42%),

    radial-gradient(circle at 82% 88%,
      rgba(255,122,61,.26),
      transparent 30%),

    linear-gradient(135deg,
      #0a4d98 0%,
      #0d63b8 42%,
      #16579f 100%);
}

.topics-network-svg{
  width:100%;
  height:100%;
  min-height:320px;
}

/* líneas */

.net-line{
  fill:none;
  stroke:rgba(255,255,255,.28);
  stroke-width:1.6;
}

.net-line.dashed{
  stroke-dasharray:6 8;
}

.net-line.soft{
  opacity:.4;
}

/* nodos */

.topic-node circle{
  fill:rgba(255,255,255,.96);
  stroke:rgba(255,255,255,.35);
  stroke-width:1.5;

  filter:
    drop-shadow(0 10px 24px rgba(0,0,0,.18));

  transition:all .28s ease;
}

.topic-node text{
  fill:#082b5f;
  font-size:12px;
  font-weight:800;
  text-anchor:middle;
  dominant-baseline:middle;
  pointer-events:none;
}

.topic-node:hover circle{
  transform:scale(1.05);
  transform-origin:center;
  fill:#ffffff;
}

/* nodo central */

.node-desire circle{
  fill:#ffffff;
  stroke:rgba(255,255,255,.55);
  stroke-width:2;
}

.node-desire text{
  font-size:15px;
}

/* anillos */

.ambient-ring{
  fill:none;
  stroke:rgba(255,255,255,.16);
  stroke-width:1.4;
}

.ring-a{
  animation:pulseRing 9s ease-in-out infinite;
}

.ring-b{
  animation:pulseRing 13s ease-in-out infinite;
}

/* animación */

@keyframes pulseRing{
  0%{
    opacity:.28;
    transform:scale(1);
  }

  50%{
    opacity:.08;
    transform:scale(1.02);
  }

  100%{
    opacity:.28;
    transform:scale(1);
  }
}
/* ARTÍCULO ENSAYO */

.essay-hero {
  padding: 72px 0 52px;
  background:
    radial-gradient(circle at 78% 20%, rgba(70, 154, 223, 0.18), transparent 28%),
    linear-gradient(135deg, #fff8f1 0%, #f7efe7 100%);
  border-bottom: 1px solid rgba(12, 38, 79, 0.12);
}

.essay-hero h1 {
  max-width: 900px;
  font-size: clamp(2.2rem, 4vw, 3.7rem);
  line-height: 1.05;
}

.essay-hero h2 {
  max-width: 760px;
  font-size: 1.25rem;
  line-height: 1.45;
  font-weight: 500;
  color: var(--muted);
}

.essay-meta {
  display: flex;
  gap: 10px;
  margin-top: 24px;
}

.essay-meta span {
  padding: 7px 12px;
  border-radius: 999px;
  background: #eef5ff;
  color: var(--primary);
  font-size: 0.82rem;
  font-weight: 700;
}

.essay-layout {
    width: min(1400px, calc(100% - 64px));
    margin: 0 auto;

    display: grid;
    grid-template-columns: 1fr;
}

.essay-hero .container {
  max-width: 1100px;
  margin: 0 auto;
}

.essay-sidebar {
  display: none;
  position: sticky;
  top: 95px;
  padding: 22px;
  border: 1px solid rgba(12, 38, 79, 0.12);
  border-radius: 22px;
  background: rgba(255,255,255,0.72);
  box-shadow: 0 18px 40px rgba(12, 38, 79, 0.06);
}

.essay-sidebar h3 {
  margin-bottom: 14px;
  font-size: 0.95rem;
  color: var(--primary);
}

.essay-sidebar nav {
  display: grid;
  gap: 10px;
}

.essay-sidebar a {
  color: var(--muted);
  font-size: 0.9rem;
  text-decoration: none;
}

.essay-sidebar a:hover {
  color: var(--primary);
}

.essay-content {
  max-width: 760px;
  padding: 8px 0;
  font-size: 1.06rem;
  line-height: 1.5;
  color: var(--primary);
}

.essay-content h1 {
  display: none;
}

.essay-content h2 {
  font-size: 2rem;
  line-height: 1.2;
  margin: 52px 0 20px;
  color: var(--primary);
}

.essay-content h3 {
  font-size: 1.35rem;
  margin: 38px 0 14px;
  color: var(--primary);
}

.essay-content p {
  margin-bottom: 20px;
}

.essay-content ul,
.essay-content ol {
  margin: 18px 0 30px 25px;
}

.essay-content li {
  margin-bottom: 8px;
}

.essay-content blockquote {
  margin: 36px 0;
  padding: 24px 30px;
  border-left: 5px solid var(--accent);
  border-radius: 18px;
  background: #fff7ef;
  color: var(--primary);
  font-size: 1.18rem;
  font-weight: 700;
  box-shadow: 0 18px 38px rgba(12, 38, 79, 0.06);
}

.essay-content hr {
  border: 0;
  height: 1px;
  background: rgba(12, 38, 79, 0.12);
  margin: 44px 0;
}

.essay-hero {
  padding: 48px 0 42px;
  background:
    radial-gradient(circle at 78% 20%, rgba(70, 154, 223, 0.18), transparent 28%),
    linear-gradient(135deg, #fff8f1 0%, #f7efe7 100%);
  border-bottom: 1px solid rgba(12, 38, 79, 0.12);
}

@media (max-width: 850px) {
  .essay-layout {
    grid-template-columns: 1fr;
  }

  .essay-sidebar {
    position: static;
  }
}

/* =========================================================
   BIBLIOTECA
========================================================= */

.biblioteca-page {
  background: #0d1522;
}

.biblioteca-shell {
  width: min(1400px, 92%);
  margin: 0 auto;
  padding: 3rem 0 5rem;
}

.biblioteca-hero {
  display: grid;
  grid-template-columns: 1.5fr 0.8fr;
  gap: 2rem;
  margin-bottom: 3rem;
}

.biblioteca-hero h1 {
  font-size: clamp(2.5rem, 4vw, 4.5rem);
  margin: 0.5rem 0 1rem;
}

.biblioteca-hero p {
  color: rgba(255,255,255,0.75);
  line-height: 1.7;
}

.biblioteca-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-bottom: 3rem;
}

.biblioteca-filters button {
  border: 1px solid rgba(255,255,255,0.12);
  background: transparent;
  color: rgba(255,255,255,0.8);
  padding: 0.7rem 1.2rem;
  border-radius: 999px;
  cursor: pointer;
  transition: 0.25s ease;
}

.biblioteca-filters button:hover {
  border-color: rgba(255,255,255,0.4);
  color: white;
}

.biblioteca-filters button.active {
  background: white;
  color: #111;
}

.biblioteca-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 2rem;
}

.libro-card {
  transition: transform 0.25s ease;
}

.libro-card:hover {
  transform: translateY(-5px);
}

.libro-cover {
  display: block;
  overflow: hidden;
  border-radius: 24px;
  background: #111827;
  border: 1px solid rgba(255,255,255,0.06);
  box-shadow: 0 10px 40px rgba(0,0,0,0.35);
}

.libro-cover img {
  width: 100%;
  aspect-ratio: 2 / 3;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.libro-card:hover .libro-cover img {
  transform: scale(1.03);
}

.libro-info {
  margin-top: 1rem;
  padding: 0 0.2rem;
}

.libro-categoria {
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.45);
  margin-bottom: 0.5rem;
}

.libro-info h2 {
  font-size: 1.05rem;
  line-height: 1.35;
  margin-bottom: 0.5rem;
}

.libro-subtitulo {
  color: rgba(255,255,255,0.65);
  font-size: 0.95rem;
  line-height: 1.5;
}

.biblioteca-footer {
  margin-top: 5rem;
}

.biblioteca-footer h2 {
  margin-bottom: 1rem;
}

.biblioteca-footer p {
  max-width: 800px;
  color: rgba(255,255,255,0.72);
  line-height: 1.8;
}

@media (max-width: 900px) {
  .biblioteca-hero {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   LIBRO DETALLE
========================================================= */

.libro-shell {
  width: min(1200px, 92%);
  margin: 0 auto;
  padding: 4rem 0 5rem;
}

.libro-hero {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 4rem;
  align-items: center;
}

.libro-cover-big img {
  width: 100%;
  border-radius: 28px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.45);
}

.libro-copy {
  padding-right: 2rem;
}

.libro-copy h1 {
  font-size: clamp(2.5rem, 4vw, 4.5rem);
  margin: 0.5rem 0 1rem;
}

.libro-copy h2 {
  font-size: 1.4rem;
  color: rgba(15,23,42,0.72);
  margin-bottom: 2rem;
  font-weight: 400;
}

.libro-description {
  line-height: 1.9;
  color: rgba(15,23,42,0.62);
  max-width: 800px;
}

.libro-actions {
  margin-top: 2.5rem;
}

.libro-actions .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.9rem 1.4rem;
  border-radius: 999px;
  background: white;
  color: #111827;
  text-decoration: none;
  font-weight: 600;
}

.libro-tags span {
  transition: 0.25s ease;
}

.libro-tags span:hover {
  background: rgba(255,255,255,0.12);
  transform: translateY(-2px);
}

@media (max-width: 900px) {

  .libro-hero {
    grid-template-columns: 1fr;
  }

  .libro-cover-big {
    transform: translateY(18px);
  }

}

/* =========================================================
   HERO BIBLIOTECA V2
========================================================= */

.biblioteca-hero-v2 {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  align-items: center;
  gap: 3rem;

  margin: 2.5rem auto 2rem;
  padding: 3.2rem 4rem;
  max-width: 1400px;

  border-radius: 32px;
  border: 1px solid rgba(120, 160, 255, 0.22);
  background:
    radial-gradient(circle at top left, rgba(59, 130, 246, 0.35), transparent 38%),
    linear-gradient(135deg, rgba(31, 54, 105, 0.9), rgba(6, 12, 28, 0.95));
}

.hero-copy {
  grid-column: 1;
}

.hero-side {
  grid-column: 2;
}

.hero-copy h1 {
  font-size: clamp(3.2rem, 1vw, 1rem);
  line-height: 0.95;
  margin: 0.2rem 0 1.3rem;
}

.hero-description {
  max-width: 720px;
  font-size: 1.08rem;
  line-height: 1.55;
}

.hero-quote {
  max-width: 430px;
  padding: 2rem;
  border-radius: 24px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
}

.hero-stats {
  display: none;
}

.articulo-detail-hero .hero-description {
  color: #51637f;
  opacity: 1;
  max-width: 1200px;
  width: 100%;
  font-size: 1.05rem;
  line-height: 1.7;
  margin-top: 1rem;
}

/* =========================================================
   FOOTER BIBLIOTECA NUEVO
========================================================= */

.biblioteca-ending {
  margin-top: 7rem;
  padding: 5rem 3rem;
  border-radius: 36px;

  background:
    linear-gradient(
      180deg,
      rgba(15,23,42,0.9),
      rgba(2,6,23,0.95)
    );

  border: 1px solid rgba(255,255,255,0.06);

  box-shadow:
    0 20px 60px rgba(0,0,0,0.35);
}

.ending-line {
  width: 100%;
  height: 1px;

  background:
    linear-gradient(
      to right,
      transparent,
      rgba(255,255,255,0.15),
      transparent
    );

  margin-bottom: 4rem;
}

.ending-content {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}

.ending-kicker {
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 0.78rem;
  color: rgba(255,255,255,0.45);
  margin-bottom: 1rem;
}

.ending-content h2 {
  font-size: clamp(2rem, 4vw, 3.5rem);
  margin-bottom: 1.5rem;
}

.ending-content p {
  color: rgba(255,255,255,0.7);
  line-height: 1.9;
  font-size: 1.08rem;
}

.ending-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.9rem;
  margin-top: 2.5rem;
}

.ending-tags span {
  padding: 0.7rem 1rem;
  border-radius: 999px;

  background: rgba(255,255,255,0.05);

  border: 1px solid rgba(255,255,255,0.08);

  color: rgba(255,255,255,0.78);
}

@media (max-width: 980px) {

  .biblioteca-hero-v2 {
    grid-template-columns: 1fr;
    padding: 2.5rem;
  }

  .hero-stats {
    grid-template-columns: 1fr 1fr 1fr;
  }

}

@media (max-width: 640px) {

  .hero-stats {
    grid-template-columns: 1fr;
  }

}
/* =========================================================
   FIX CONTRASTE BIBLIOTECA
========================================================= */

.biblioteca-page,
.biblioteca-page h1,
.biblioteca-page h2,
.biblioteca-page h3,
.biblioteca-page p,
.biblioteca-page a,
.biblioteca-page span {
  color: white;
}

.libro-info h2 {
  color: white;
}

.libro-subtitulo {
  color: rgba(255,255,255,0.72);
}

.libro-categoria {
  color: rgba(255,255,255,0.45);
}

.hero-description,
.ending-content p {
  color: rgba(255,255,255,0.72);
}

.hero-kicker,
.ending-kicker {
  color: rgba(255,255,255,0.45);
}

.hero-tags span,
.ending-tags span {
  color: rgba(255,255,255,0.82);
}

.hero-stats span {
  color: rgba(255,255,255,0.6);
}

.hero-stats strong {
  color: white;
}

.hero-quote p {
  color: rgba(255,255,255,0.9);
}

/* =========================================================
   LIBRO DETALLE EXTRA
========================================================= */

.libro-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 2rem;
  margin-top: 4rem;
}

.libro-section {
  padding: 2rem;
  border-radius: 28px;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.04),
      rgba(255,255,255,0.02)
    );

  border: 1px solid rgba(255,255,255,0.06);

  backdrop-filter: blur(10px);
}

.libro-section h2 {
  margin-bottom: 1rem;
  font-size: 1.3rem;
}

.libro-section p {
  line-height: 1.8;
  color: rgba(255,255,255,0.74);
}

.libro-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 1rem;
}

.libro-tags span {
  padding: 0.65rem 1rem;
  border-radius: 999px;

  background: rgba(255,255,255,0.05);

  border: 1px solid rgba(255,255,255,0.08);

  color: rgba(255,255,255,0.82);

  font-size: 0.92rem;
}
/* =========================================================
   FIX CARDS LIBRO
========================================================= */

.libro-section {
  padding: 2rem;
  border-radius: 28px;

  background:
    linear-gradient(
      180deg,
      rgba(15,23,42,0.96),
      rgba(2,6,23,0.98)
    );

  border: 1px solid rgba(255,255,255,0.06);

  box-shadow:
    0 15px 40px rgba(0,0,0,0.22);

  backdrop-filter: blur(12px);
}

.libro-section h2 {
  color: white;
}

.libro-section p {
  color: rgba(255,255,255,0.78);
}

.libro-tags span {
  background: rgba(255,255,255,0.06);

  border: 1px solid rgba(255,255,255,0.08);

  color: rgba(255,255,255,0.85);
}
.libro-page {
  background:
    radial-gradient(circle at top, rgba(30,64,175,0.12), transparent 32%),
    #050b16;
}
/* Ajuste de legibilidad ficha libro */

.libro-description,
.libro-section p {
  text-align: justify;
  text-wrap: pretty;
}

.libro-section {
  background:
    linear-gradient(
      180deg,
      #111c2d 0%,
      #0e1828 100%
    );

  border: 1px solid rgba(255,255,255,0.12);

  box-shadow:
    0 18px 45px rgba(0,0,0,0.32),
    inset 0 1px 0 rgba(255,255,255,0.04);
}

.libro-detail-grid {
  gap: 2.4rem;
}

@media (max-width: 1024px) {
  .article-grid-list {
    grid-template-columns: 1fr;
  }

  .large-article-card img {
    aspect-ratio: 1.55 / 1;
  }

  .large-article-body h3 {
    font-size: 2rem;
  }

  .large-article-body p {
    font-size: 1.15rem;
    line-height: 1.6;
  }
}
.featured-article h3 {
  color: #ffffff;
  opacity: 1;
  text-shadow: none;
}
.featured-article,
.featured-article * {
  text-decoration: none;
}

.featured-article h3 {
  color: #fff !important;
  opacity: 1 !important;
}

.quote-slider .quote-card.active {
    width: 220px;
    min-height: 275px;
    padding: 48px 38px !important;
}

.quote-slider .quote-card.active p {
    margin: 34px 0 24px !important;
    line-height: 1.75 !important;
}
.quote-slider {
    width: 260px;
    min-height: 340px;
}
.articulo-block-body p {
  margin-bottom: 1.2rem;
  line-height: 1.8;
}

.articulo-block-body a {
  font-weight: 700;
  text-decoration: underline;
}

.article-graphic {
  width: 100%;
  margin: 2rem 0;
  border-radius: 18px;
  display: block;
}

/* ===== ENSAYOS MARKDOWN ===== */

.essay-content {
    width: 100%;
    max-width: none;

    font-size: 1.08rem;
    line-height: 1.72;
    text-align: justify;
}

.essay-content h2 {
    margin-top: 2.8rem;
    margin-bottom: 1rem;
    line-height: 1.15;
    font-size: clamp(1.7rem, 2.6vw, 2.5rem);
}
.essay-content p,
.essay-content h2,
.essay-content blockquote {
    max-width: 1100px;
}

.essay-sidebar {
    position: sticky;
    top: 110px;
    padding: 24px;
    border-radius: 24px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(199,167,123,0.18);
}

.essay-sidebar nav {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.essay-sidebar a {
    text-decoration: none;
    line-height: 1.35;
}

/* Reducir hueco entre imagen y texto */
.essay-layout.container {
    margin-top: -10px;
}

/* Responsive */
@media (max-width: 950px) {

    .essay-layout {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .essay-sidebar {
        position: static;
    }

    .essay-content {
        text-align: left;
    }
}

/* ===== FIX DEFINITIVO ENSAYOS MARKDOWN ===== */

.essay-layout.container {
  width: min(1240px, calc(100% - 64px));
  margin: 0 auto;
  display: block;
}

.essay-content {
  width: 100%;
  max-width: 100%;
  padding: 0;
  font-size: 1.08rem;
  line-height: 1.65;
  text-align: justify;
}

.essay-content p,
.essay-content h2,
.essay-content h3,
.essay-content blockquote {
  max-width: none;
}

.essay-content p {
  margin-bottom: 1rem;
}

.essay-content h2 {
  margin-top: 2.4rem;
  margin-bottom: 1rem;
  line-height: 1.15;
}

.essay-sidebar {
  display: none !important;
}

.article-comment-box {
    margin-top: 4rem;
    padding: 2rem;
    border-radius: 24px;
    background: #f7efe7;
    border: 1px solid rgba(20, 35, 55, 0.08);
}

.article-comment-box h2 {
    margin-bottom: 0.5rem;
}

.article-comment-box form {
    display: grid;
    gap: 1rem;
    margin-top: 1.5rem;
}

.article-comment-box label {
    display: grid;
    gap: 0.4rem;
    font-weight: 600;
}

.article-comment-box label span {
    font-weight: 400;
    opacity: 0.7;
}

.article-comment-box input,
.article-comment-box textarea {
    width: 100%;
    border: 1px solid rgba(20, 35, 55, 0.15);
    border-radius: 14px;
    padding: 0.9rem 1rem;
    font: inherit;
}

.article-comment-box button {
    justify-self: start;
    border: none;
    border-radius: 999px;
    padding: 0.85rem 1.4rem;
    background: #0b2340;
    color: white;
    font-weight: 700;
    cursor: pointer;
}
.comentarios-publicos {
    margin-top: 4rem;
    margin-bottom: 4rem;
}

.comentarios-publicos h2 {
    margin-bottom: 2rem;
}

.comentario-item {
    padding: 1.4rem 1.6rem;
    margin-bottom: 1.4rem;

    background: #fffdf9;

    border: 1px solid rgba(20, 35, 55, 0.08);
    border-radius: 18px;

    box-shadow: 0 4px 14px rgba(0,0,0,0.04);
}

.comentario-header {
    display: flex;
    gap: 0.8rem;
    align-items: center;

    margin-bottom: 0.8rem;
}

.comentario-header strong {
    font-size: 0.95rem;
    color: #0b2340;
}

.comentario-header span {
    font-size: 0.82rem;
    opacity: 0.6;
}

.comentario-item p {
    margin: 0;
    line-height: 1.7;
}
.article-comments-wrapper {
    width: 100%;
    max-width: 920px;
    margin: 4rem auto 0 auto;
    padding: 0 1rem;
}
.admin-comments-page {
    max-width: 960px;
    margin: 0 auto;
    padding: 4rem 2rem;
}

.admin-comment-card {
    background: #fffdf9;
    border: 1px solid rgba(20, 35, 55, 0.08);
    border-radius: 20px;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    box-shadow: 0 4px 14px rgba(0,0,0,0.04);
}

.admin-comment-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    align-items: center;
    margin-bottom: 1rem;
    font-size: 0.9rem;
}

.admin-comment-email {
    opacity: 0.7;
    font-size: 0.9rem;
}

.estado {
    padding: 0.25rem 0.7rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 700;
}

.estado-pendiente {
    background: #fff3cd;
}

.estado-aprobado {
    background: #d1e7dd;
}

.estado-rechazado {
    background: #f8d7da;
}

.admin-comment-actions {
    display: flex;
    gap: 0.8rem;
    margin-top: 1rem;
}

.admin-comment-actions a {
    text-decoration: none;
    border-radius: 999px;
    padding: 0.55rem 1rem;
    background: #0b2340;
    color: white;
    font-weight: 700;
}
.form-alert {
    margin-bottom: 1.5rem;
    padding: 1rem 1.2rem;

    border-radius: 14px;

    background: #fff3cd;
    border: 1px solid #f1d58a;

    color: #6b5200;
}

.form-alert p {
    margin: 0;
}
.admin-comment-card p {
    overflow-wrap: anywhere;
    word-break: break-word;
    white-space: normal;
}