/* ============================================================
   Laura · article.css — página de artículo (articulos/*.html)
   ============================================================ */

.article-page {
    padding: 104px 22px 90px;
    min-height: 100svh
}

.article-wrap {
    width: min(760px, 100%);
    margin: auto
}

/* ---------- botón volver (arriba) ---------- */

.article-back-top {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 38px;
    padding: 10px 18px 10px 14px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--white);
    box-shadow: 0 8px 30px rgba(42, 56, 48, .04);
    font: 700 10px/1 var(--manrope);
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--sage-deep);
    transition: .25s cubic-bezier(.2, .8, .2, 1)
}

.article-back-top svg {
    width: 13px;
    height: 13px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .25s cubic-bezier(.2, .8, .2, 1)
}

.article-back-top:hover {
    color: var(--ink);
    border-color: rgba(33, 48, 42, .25);
    transform: translateY(-1px)
}

.article-back-top:hover svg {
    transform: translateX(-3px)
}

/* ---------- cabecera del artículo ---------- */

.article-kicker {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--sage-deep);
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    font-weight: 700
}

.article-kicker i {
    display: block;
    width: 34px;
    height: 1px;
    background: var(--sage)
}

.article-hero h1 {
    font: 400 clamp(44px, 6.4vw, 74px)/.9 var(--serif);
    letter-spacing: -.045em;
    margin: 18px 0 20px;
    max-width: 640px;
    text-wrap: balance
}

.article-hero h1 em {
    font-style: italic;
    color: var(--terra)
}

.article-lead {
    font-size: 18px;
    line-height: 1.65;
    color: #536058;
    max-width: 600px;
    margin: 0 0 26px
}

.article-meta-line {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
    margin: 0 0 54px;
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #7b847e
}

.article-meta-line .meta-pill {
    text-transform: none;
    letter-spacing: 0;
    font-weight: 600
}

.article-meta-line time {
    color: var(--muted)
}

/* ---------- cuerpo · prosa ---------- */

.prose {
    border-top: 1px solid var(--line);
    padding-top: 46px
}

.prose>*:first-child {
    margin-top: 0
}

.prose p {
    font-size: 16.5px;
    line-height: 1.8;
    color: #3b4a42;
    margin: 0 0 26px;
    max-width: 640px;
    text-wrap: pretty
}

.prose p:first-of-type::first-letter {
    font: 400 64px/.78 var(--serif);
    color: var(--terra);
    float: left;
    padding: 8px 12px 0 0
}

.prose h2 {
    font: 400 34px/1.05 var(--serif);
    letter-spacing: -.035em;
    color: var(--ink);
    margin: 54px 0 18px;
    scroll-margin-top: 110px
}

.prose h2:before {
    content: "✦";
    display: block;
    font-size: 15px;
    color: var(--terra);
    margin-bottom: 10px;
    opacity: .8
}

.prose h2 em {
    font-style: italic;
    color: var(--terra)
}

.prose h3 {
    font: 700 15px var(--manrope);
    letter-spacing: .01em;
    color: var(--ink);
    margin: 38px 0 14px;
    scroll-margin-top: 110px
}

.prose strong {
    color: var(--ink);
    font-weight: 600
}

.prose a {
    color: var(--sage-deep);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
    text-decoration-color: rgba(110, 140, 121, .35)
}

.prose a:hover {
    text-decoration-color: var(--terra)
}

.prose ul,
.prose ol {
    margin: 0 0 26px;
    padding: 0;
    list-style: none;
    max-width: 640px
}

.prose li {
    font-size: 16px;
    line-height: 1.7;
    color: #3b4a42;
    padding: 9px 0 9px 34px;
    position: relative;
    border-bottom: 1px solid rgba(33, 48, 42, .06)
}

.prose ul li:before {
    content: "";
    position: absolute;
    left: 8px;
    top: 19px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--sage)
}

.prose ol {
    counter-reset: item
}

.prose ol li {
    counter-increment: item
}

.prose ol li:before {
    content: counter(item);
    position: absolute;
    left: 0;
    top: 9px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: rgba(207, 141, 144, .12);
    color: var(--terra);
    font: 700 11px/24px var(--manrope);
    text-align: center
}

.prose blockquote {
    margin: 40px 0;
    padding: 26px 30px;
    border-left: 2px solid var(--terra);
    background: rgba(255, 253, 250, .6);
    border-radius: 0 22px 22px 0
}

.prose blockquote p {
    font: 400 italic 21px/1.45 var(--serif);
    color: #4a5a51;
    margin: 0
}

.prose blockquote p+p {
    margin-top: 14px
}

.prose img {
    width: 100%;
    border-radius: 26px;
    box-shadow: var(--shadow);
    margin: 10px 0 34px
}

.prose hr {
    border: 0;
    margin: 48px auto;
    text-align: center;
    width: 100%
}

.prose hr:before {
    content: "✦";
    color: var(--terra);
    font-size: 15px;
    opacity: .7
}

.prose code {
    font: 500 14px ui-monospace, "SF Mono", Menlo, monospace;
    background: var(--paper-2);
    padding: 3px 7px;
    border-radius: 7px;
    color: var(--ink)
}

.prose pre {
    background: var(--ink);
    color: #e9e4d8;
    border-radius: 20px;
    padding: 22px 24px;
    overflow: auto;
    margin: 0 0 28px
}

.prose pre code {
    background: none;
    padding: 0;
    color: inherit
}

.prose table {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 30px;
    font-size: 14px
}

.prose th {
    font: 700 11px var(--manrope);
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--sage-deep);
    text-align: left;
    padding: 12px 14px;
    border-bottom: 1px solid rgba(33, 48, 42, .22)
}

.prose td {
    padding: 12px 14px;
    border-bottom: 1px solid rgba(33, 48, 42, .08);
    color: #3b4a42;
    line-height: 1.6
}

/* ---------- avisos destacados ---------- */

.callout {
    margin: 34px 0;
    padding: 20px 22px;
    border-radius: 20px;
    background: var(--white);
    border: 1px solid rgba(33, 48, 42, .09);
    box-shadow: 0 8px 30px rgba(42, 56, 48, .04);
    max-width: 660px
}

.callout-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font: 700 10px var(--manrope);
    text-transform: uppercase;
    letter-spacing: .12em;
    margin-bottom: 8px
}

.callout-title:before {
    content: "✦";
    font-size: 13px
}

.callout p {
    font-size: 15px !important;
    line-height: 1.7 !important;
    color: #4a5a51 !important;
    margin: 0 !important
}

.callout p+p {
    margin-top: 10px !important
}

.callout-consejo .callout-title {
    color: var(--sage-deep)
}

.callout-consejo .callout-title:before {
    color: var(--sage)
}

.callout-nota .callout-title {
    color: #8a6d3f
}

.callout-nota .callout-title:before {
    color: #c9a25e
}

.callout-aviso .callout-title {
    color: var(--terra)
}

.callout-aviso .callout-title:before {
    color: var(--terra)
}

.callout-aviso {
    border-color: rgba(207, 141, 144, .25)
}

/* ---------- cierre ---------- */

.article-cta {
    margin-top: 64px;
    padding: 34px;
    border-radius: 30px;
    background: linear-gradient(145deg, #dce5dd, #b5c8b8);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 26px;
    flex-wrap: wrap
}

.article-cta span {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .14em;
    color: var(--sage-deep);
    font-weight: 700;
    display: block;
    margin-bottom: 8px
}

.article-cta h2 {
    font: 400 clamp(30px, 4vw, 44px)/.95 var(--serif);
    letter-spacing: -.035em;
    margin: 0;
    max-width: 420px
}

.article-cta h2 em {
    font-style: italic;
    color: var(--terra)
}

.article-cta .btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 20px;
    border-radius: 999px;
    background: var(--ink);
    color: var(--paper);
    font-size: 12px;
    font-weight: 600;
    box-shadow: 0 14px 30px rgba(33, 48, 42, .22);
    transition: .25s;
    flex: none
}

.article-cta .btn:hover {
    transform: translateY(-2px)
}

.article-back {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-top: 40px;
    font-size: 12px;
    font-weight: 600;
    color: var(--sage-deep)
}

.article-back:hover {
    color: var(--ink)
}

.article-disclaimer {
    margin-top: 44px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 11px;
    line-height: 1.7
}

/* ---------- responsive ---------- */

@media(max-width:980px) {
    .article-page {
        padding-top: 84px
    }

    .prose h2,
    .prose h3 {
        scroll-margin-top: 80px
    }
}

@media(max-width:620px) {
    .article-page {
        padding: max(34px, env(safe-area-inset-top)) 18px 64px
    }

    .article-back-top {
        margin-bottom: 24px
    }

    .article-hero h1 {
        font-size: clamp(36px, 10.5vw, 46px);
        margin: 14px 0 16px
    }

    .article-lead {
        font-size: 17px;
        margin-bottom: 20px
    }

    .article-meta-line {
        margin-bottom: 36px;
        gap: 8px
    }

    .prose {
        padding-top: 30px
    }

    .prose p {
        font-size: 16px;
        line-height: 1.78;
        margin-bottom: 22px
    }

    .prose p:first-of-type::first-letter {
        font-size: 52px;
        padding-top: 5px
    }

    .prose h2 {
        font-size: 26px;
        margin: 42px 0 16px;
        scroll-margin-top: 24px
    }

    .prose h2:before {
        margin-bottom: 8px
    }

    .prose h3 {
        scroll-margin-top: 24px
    }

    .prose li {
        font-size: 15.5px;
        line-height: 1.65;
        padding: 9px 0 9px 30px
    }

    .prose ul li:before {
        left: 6px
    }

    .prose blockquote {
        margin: 32px 0;
        padding: 18px 20px
    }

    .prose blockquote p {
        font-size: 19px
    }

    .prose img {
        border-radius: 20px
    }

    .prose table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch
    }

    .callout {
        margin: 28px 0;
        padding: 16px 18px;
        border-radius: 18px
    }

    .article-cta {
        margin-top: 48px;
        padding: 24px;
        border-radius: 24px
    }

    .article-back {
        margin-top: 32px
    }

    .article-disclaimer {
        margin-top: 36px
    }
}

@media print {

    body:before,
    .progress,
    .nav,
    .article-cta,
    .article-back,
    .article-back-top,
    footer,
    .mobile-view-switch {
        display: none !important
    }

    .article-page {
        padding: 0
    }
}
