/*
Theme Name: dds_argemto.com.ar
Theme URI: https://argemto.com.ar/
Author: Julián Ferrer
Description: Tema a medida para un portal sobre cultura del riesgo, cábalas y psicología del juego: cartón verde con milimetrado, tabla de la suerte, recortes de boleto y diagramas de probabilidad.
Version: 1.1
Requires at least: 6.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: argemto
*/

/* ---------- Reglas de ocultamiento (antes de todo) ---------- */
.cookie-banner[hidden] { display: none !important; }
[hidden] { display: none !important; }

/* ---------- Variables ---------- */
:root {
    --green: #12352B;
    --grid: #1E4A3A;
    --bordo: #3A1520;
    --sand: #E4D5B7;
    --sand-deep: #D6C49F;
    --head: #0C231C;
    --yellow: #E8B93A;
    --yellow-dark: #C99A1F;
    --red: #C63A2E;
    --text: #F2E9D0;
    --muted: #9FB39A;
    --line: #5C7A66;
    --ink: #17140F;
    --ink-soft: #4A4436;
    --aside: #0F2C23;
    --f-head: "Oswald", "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    --f-body: "IBM Plex Mono", "Courier New", ui-monospace, monospace;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
    margin: 0;
    overflow-x: hidden;
    color: var(--text);
    font-family: var(--f-body);
    font-size: 15px;
    line-height: 1.7;
    background-color: var(--green);
    background-image:
        linear-gradient(var(--grid) 1px, transparent 1px),
        linear-gradient(90deg, var(--grid) 1px, transparent 1px),
        linear-gradient(rgba(30, 74, 58, .45) 1px, transparent 1px),
        linear-gradient(90deg, rgba(30, 74, 58, .45) 1px, transparent 1px);
    background-size: 50px 50px, 50px 50px, 10px 10px, 10px 10px;
}

p { margin: 0 0 1em; }
h1, h2, h3, h4, h5, h6 {
    font-family: var(--f-head);
    font-weight: 700;
    line-height: 1.15;
    margin: 1.4em 0 .55em;
    letter-spacing: .01em;
}
h1, h2, h3, h4, p, li, dd, dt, td, th, .card-title, .brand-name {
    overflow-wrap: break-word;
    hyphens: auto;
}
img { max-width: 100%; height: auto; }
a { color: var(--yellow); text-decoration: underline dashed 1px; text-underline-offset: 3px; }
a:hover { color: var(--text); text-decoration-style: solid; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
    outline: 3px solid var(--yellow);
    outline-offset: 2px;
}

table { border-collapse: collapse; width: 100%; margin: 0 0 1.4em; }
table, th, td { border: 1px solid var(--ink); }
th, td { padding: .5em .7em; text-align: start; vertical-align: top; }
th { font-family: var(--f-head); font-weight: 600; background: var(--sand-deep); }

.screen-reader-text {
    position: absolute !important;
    width: 1px; height: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    white-space: nowrap;
}
.skip {
    position: absolute;
    inset-inline-start: 1rem;
    top: -60px;
    background: var(--yellow);
    color: var(--ink);
    padding: .5rem 1rem;
    z-index: 100;
    border: 2px solid var(--ink);
}
.skip:focus { top: 1rem; }
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

.shell { width: min(92%, 1280px); margin-inline: auto; }
.shell-front { width: min(85%, 1240px); }

/* ---------- Botones ---------- */
.btn {
    display: inline-block;
    font-family: var(--f-head);
    font-weight: 600;
    font-size: 1rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    line-height: 1.2;
    padding: .62em 1.25em;
    border: 2px solid var(--ink);
    border-radius: 0;
    cursor: pointer;
    transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease;
}
.btn-solid {
    background: var(--yellow);
    color: var(--ink);
    box-shadow: 4px 4px 0 var(--ink);
}
.btn-solid:hover {
    color: var(--ink);
    background: #F2CB5A;
    transform: translate(-2px, -2px);
    box-shadow: 6px 6px 0 var(--ink);
}
.btn-solid:active { transform: translate(3px, 3px); box-shadow: 1px 1px 0 var(--ink); }

/* ---------- Cabecera ---------- */
.masthead {
    background: var(--head);
    border-bottom: 4px solid var(--yellow);
    position: relative;
}
.masthead::after {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: -10px;
    height: 2px;
    background: repeating-linear-gradient(90deg, var(--yellow) 0 14px, transparent 14px 22px);
    opacity: .55;
}
.masthead-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 1.4rem 0;
}
.brand {
    display: flex;
    align-items: center;
    gap: 1rem;
    text-decoration: none;
    color: var(--text);
    flex: 1 1 auto;
    min-width: 0;
    max-width: 760px;
}
.brand:hover { color: var(--text); }
.brand-mark { flex: 0 0 64px; display: block; }
.brand-svg, .brand-logo { display: block; width: 64px; height: 64px; object-fit: contain; }
.brand-text { display: flex; flex-direction: column; gap: .35rem; min-width: 0; }
.brand-name {
    font-family: var(--f-head);
    font-weight: 700;
    font-size: clamp(1.05rem, 1.55vw, 1.4rem);
    line-height: 1.18;
    color: var(--text);
}
.brand-desc {
    font-size: .74rem;
    line-height: 1.5;
    color: var(--muted);
}

.topnav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: .3rem 1.6rem;
}
.topnav-list a {
    display: inline-block;
    font-family: var(--f-head);
    font-weight: 500;
    font-size: .98rem;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--text);
    text-decoration: none;
    padding: .3rem 0;
    border-bottom: 2px solid transparent;
}
.topnav-list a:hover,
.topnav-list .current-menu-item > a {
    color: var(--yellow);
    border-bottom-color: var(--yellow);
}
.nav-toggle {
    display: none;
    align-items: center;
    gap: .6rem;
    background: transparent;
    color: var(--text);
    border: 2px solid var(--yellow);
    padding: .5rem .8rem;
    font-family: var(--f-head);
    text-transform: uppercase;
    letter-spacing: .08em;
    cursor: pointer;
}
.nav-toggle-bars,
.nav-toggle-bars::before,
.nav-toggle-bars::after {
    display: block;
    width: 20px;
    height: 2px;
    background: var(--yellow);
    position: relative;
    content: "";
}
.nav-toggle-bars::before { position: absolute; top: -6px; }
.nav-toggle-bars::after { position: absolute; top: 6px; }

/* ---------- Encabezados de sección ---------- */
.sec-head {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    margin: 0 0 1.6rem;
}
.sec-num {
    font-family: var(--f-body);
    font-weight: 600;
    font-size: .8rem;
    color: var(--ink);
    background: var(--yellow);
    padding: .1rem .4rem;
    margin-top: .55rem;
    border: 1px solid var(--ink);
    flex: 0 0 auto;
}
.sec-title {
    margin: 0;
    font-family: var(--f-head);
    font-weight: 700;
    font-size: clamp(1.8rem, 3.6vw, 2.9rem);
    line-height: 1.05;
    text-transform: uppercase;
    letter-spacing: .01em;
    color: var(--text);
    padding-bottom: .3rem;
    border-bottom: 4px solid var(--yellow);
    min-width: 0;
}
.sec-lead {
    max-width: 62ch;
    color: var(--muted);
    margin-bottom: 2rem;
}

/* ---------- Secciones de portada ---------- */
.fs { position: relative; padding: 4.5rem 0; }

/* 01 Mapa */
.fs-map {
    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='320' viewBox='0 0 420 320'%3E%3Cg fill='%23F2E9D0' fill-opacity='.06' font-family='monospace'%3E%3Ctext x='30' y='60' font-size='44'%3E3%3C/text%3E%3Ctext x='300' y='90' font-size='30'%3E90%3C/text%3E%3Ctext x='180' y='260' font-size='36'%3E16%3C/text%3E%3Ctext x='360' y='250' font-size='26'%3E7%3C/text%3E%3C/g%3E%3Cg fill='%23F2E9D0' fill-opacity='.07'%3E%3Cpolygon points='120,120 126,134 141,135 130,145 133,160 120,152 107,160 110,145 99,135 114,134'/%3E%3Cpolygon points='330,170 334,179 344,180 336,186 338,196 330,191 322,196 324,186 316,180 326,179'/%3E%3Cpolygon points='60,250 63,257 71,258 65,263 67,270 60,266 53,270 55,263 49,258 57,257'/%3E%3C/g%3E%3C/svg%3E");
    background-size: 420px 320px;
}
.map-wrap {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 96px;
    gap: 2rem;
    align-items: stretch;
}
.luck-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(9, minmax(0, 1fr));
    border: 2px solid var(--yellow);
    background: var(--yellow);
    gap: 2px;
    box-shadow: 0 0 0 6px rgba(12, 35, 28, .55);
}
.luck-cell {
    position: relative;
    background: rgba(18, 53, 43, .96);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: .2rem;
    padding: 1.5rem .25rem .45rem;
    min-width: 0;
    min-height: 98px;
    transition: background-color .15s ease;
}
.luck-cell:hover { background: #1A4637; }
.luck-cell.is-marked { background: var(--red); }
.luck-cell.is-marked:hover { background: #D14A3D; }
.luck-num {
    position: absolute;
    top: .3rem;
    inset-inline-start: .4rem;
    font-size: .72rem;
    font-weight: 600;
    color: var(--yellow);
    line-height: 1;
}
.luck-cell.is-marked .luck-num { color: var(--text); }
.luck-sym { width: 30px; height: 30px; color: var(--text); display: block; }
.luck-word {
    font-size: .76rem;
    color: var(--text);
    line-height: 1.2;
    text-align: center;
    max-width: 100%;
}
.risk-scale {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .6rem;
}
.risk-title {
    font-family: var(--f-head);
    text-transform: uppercase;
    letter-spacing: .1em;
    font-weight: 600;
    color: var(--text);
}
.risk-ruler {
    position: relative;
    flex: 1;
    width: 100%;
    min-height: 260px;
    border-inline-start: 2px solid var(--text);
    background-image: repeating-linear-gradient(180deg, var(--text) 0 2px, transparent 2px 28px);
    background-size: 12px 100%;
    background-repeat: no-repeat;
}
.risk-ruler::before,
.risk-ruler::after {
    content: "";
    position: absolute;
    inset-inline-start: -9px;
    width: 18px;
    height: 2px;
    background: var(--text);
}
.risk-ruler::before { top: 0; }
.risk-ruler::after { bottom: 0; }
.risk-mark {
    position: absolute;
    inset-inline-start: 26px;
    font-family: var(--f-head);
    font-size: .82rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    color: var(--text);
}
.risk-mark-top { top: 2%; color: var(--yellow); }
.risk-mark-mid { top: 38%; }
.risk-mark-low { bottom: 2%; color: var(--muted); }
.map-note {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    margin: 1.6rem 0 0;
    font-size: .82rem;
    color: var(--muted);
    max-width: 80ch;
}
.map-swatch {
    flex: 0 0 18px;
    height: 18px;
    background: var(--red);
    border: 2px solid var(--yellow);
    margin-top: .15rem;
}

/* 02 Anatomía */
.fs-anatomy {
    background-color: var(--bordo);
    background-image: radial-gradient(rgba(242, 233, 208, .035) 1px, transparent 1px);
    background-size: 6px 6px;
    overflow: hidden;
}
.fs-anatomy::before {
    content: "";
    position: absolute;
    top: 0;
    inset-inline-start: 0;
    width: 92px;
    height: 70px;
    background: linear-gradient(135deg, var(--sand) 0 48%, #B9A47B 50%, transparent 52%);
    box-shadow: 4px 4px 10px rgba(0, 0, 0, .25);
    clip-path: polygon(0 0, 100% 0, 0 100%);
}
.anatomy-grid {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 3.2fr);
    gap: 2.5rem;
    align-items: start;
}
.anatomy-intro .sec-lead { color: #CDB9A9; }
.anatomy-board {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1.2rem;
    align-items: end;
}
.anatomy-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .8rem;
    min-width: 0;
}
.anatomy-bottom { flex-direction: column-reverse; align-self: center; }
.anatomy-label { position: relative; width: 100%; }
.anatomy-arrow {
    display: block;
    width: 46px;
    height: 30px;
    margin-bottom: .2rem;
}
.anatomy-bottom .anatomy-arrow { transform: scaleY(-1); margin: 0 0 .2rem; }
.anatomy-name {
    margin: 0 0 .25rem;
    font-family: var(--f-body);
    font-weight: 600;
    font-size: 1.02rem;
    color: var(--text);
    text-transform: none;
}
.anatomy-text {
    margin: 0;
    font-size: .76rem;
    line-height: 1.5;
    color: #CDB9A9;
}
.anatomy-fig { margin: 0; display: flex; justify-content: center; width: 100%; }
.anatomy-fig img {
    display: block;
    width: auto;
    max-width: 100%;
    height: var(--h, 160px);
    object-fit: contain;
    filter: drop-shadow(0 6px 10px rgba(0, 0, 0, .35));
    transition: transform .25s ease;
}
.anatomy-item:hover .anatomy-fig img { transform: rotate(-3deg) scale(1.03); }
.anatomy-n1 { --h: 230px; }
.anatomy-n2 { --h: 118px; }
.anatomy-n3 { --h: 210px; }
.anatomy-n4 { --h: 270px; }
.anatomy-n5 { --h: 96px; }

/* Últimas lecturas */
.fs-latest {
    background: linear-gradient(180deg, var(--sand) 0 38%, var(--green) 38% 100%);
    padding-bottom: 5rem;
}
.fs-latest .sec-title { color: var(--ink); }
.fs-latest::after {
    content: "";
    position: absolute;
    left: 0; right: 0;
    top: 38%;
    height: 3px;
    background: var(--yellow);
    opacity: .7;
}
.latest-more { margin: 3rem 0 0; text-align: center; position: relative; z-index: 1; }

/* ---------- Tarjetas ---------- */
.cards {
    display: grid;
    gap: 2.4rem 2rem;
    position: relative;
    z-index: 1;
}
.cards-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cards-feed { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 1rem; }
.layout-single .cards-feed { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: var(--sand);
    color: var(--ink);
    border: 2px solid var(--ink);
    box-shadow: 8px 10px 0 rgba(0, 0, 0, .35);
    margin-top: 12px;
    transform: rotate(-1.2deg);
    transition: transform .2s ease, box-shadow .2s ease;
}
.cards > .card:nth-child(3n + 2) { transform: rotate(.9deg); }
.cards > .card:nth-child(3n) { transform: rotate(-.5deg); }
.cards > .card:hover { transform: rotate(0deg) translateY(-4px); box-shadow: 10px 14px 0 rgba(0, 0, 0, .4); }
.card::before,
.card::after {
    content: "";
    position: absolute;
    top: -13px;
    height: 14px;
    clip-path: polygon(0 100%, 0 45%, 4% 70%, 8% 30%, 13% 60%, 17% 20%, 22% 55%, 27% 35%, 31% 75%, 36% 25%, 41% 60%, 46% 40%, 50% 70%, 55% 20%, 60% 55%, 64% 30%, 69% 65%, 74% 35%, 78% 70%, 83% 25%, 88% 60%, 92% 35%, 96% 65%, 100% 40%, 100% 100%);
}
.card::before { left: -2px; right: -2px; background: var(--ink); }
.card::after { left: 0; right: 0; top: -11px; background: var(--sand); }
.card.sticky { background: #EADDBE; }

.card-thumb {
    display: block;
    margin: .9rem .9rem 0;
    border: 2px solid var(--ink);
    overflow: hidden;
    background: var(--head);
}
.card-thumb img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    filter: sepia(.15) contrast(1.05);
    transition: transform .3s ease;
}
.card:hover .card-thumb img { transform: scale(1.04); }
.card-thumb-empty {
    aspect-ratio: 4 / 3;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--green);
    background-image:
        linear-gradient(var(--grid) 1px, transparent 1px),
        linear-gradient(90deg, var(--grid) 1px, transparent 1px);
    background-size: 14px 14px;
}
.card-thumb-empty svg { display: block; width: 72px; height: 72px; }
.card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 1rem 1.2rem 1.3rem;
    min-width: 0;
}
.card-pin {
    align-self: flex-start;
    font-size: .7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .08em;
    background: var(--red);
    color: var(--text);
    padding: .1rem .5rem;
    margin-bottom: .5rem;
}
.card-title {
    margin: 0 0 .5rem;
    font-family: var(--f-body);
    font-weight: 600;
    font-size: 1.12rem;
    line-height: 1.35;
}
.card-title a { color: var(--ink); text-decoration: none; }
.card-title a:hover { color: var(--red); }
.card-excerpt { font-size: .84rem; line-height: 1.6; color: var(--ink-soft); margin-bottom: 1rem; }
.card-excerpt p { margin: 0 0 .5em; background: none; }
.card-excerpt a { color: var(--red); }
.card-foot {
    margin-top: auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
}
.card-btn { font-size: .92rem; }
.card-stamp {
    display: inline-block;
    font-family: var(--f-body);
    font-size: .76rem;
    font-weight: 600;
    letter-spacing: .06em;
    color: var(--ink);
    border: 1.5px solid var(--ink);
    padding: .15rem .5rem;
    transform: rotate(-4deg);
    background: rgba(255, 255, 255, .35);
}

/* 03 + 04 */
.fs-duo {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
.fs-duo > .fs { padding: 4.5rem 0; }
.dreams-inner,
.odds-inner {
    width: 85%;
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;
}
.fs-dreams {
    color: var(--ink);
    background-color: var(--sand);
    background-image:
        radial-gradient(ellipse 120px 90px at 12% 18%, rgba(150, 110, 50, .22), transparent 70%),
        radial-gradient(circle 70px at 85% 72%, transparent 55%, rgba(140, 100, 45, .25) 58%, transparent 66%),
        radial-gradient(ellipse 160px 120px at 70% 12%, rgba(160, 120, 60, .14), transparent 70%),
        radial-gradient(ellipse 90px 140px at 20% 85%, rgba(150, 110, 50, .16), transparent 70%),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .3 0 0 0 0 .22 0 0 0 0 .1 0 0 0 .18 0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
}
.fs-dreams .sec-title { color: var(--ink); }
.fs-dreams .sec-num { background: var(--ink); color: var(--yellow); }
.dreams-lead { font-size: .88rem; color: var(--ink-soft); }
.dreams-table {
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 0;
    border-top: 2px solid var(--ink);
    border-bottom: 2px solid var(--ink);
}
.dreams-row {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    border-bottom: 1px solid rgba(23, 20, 15, .45);
    min-width: 0;
}
.dreams-row:nth-child(odd) { border-inline-end: 2px solid var(--ink); }
.dreams-row:nth-last-child(-n + 2) { border-bottom: 0; }
.dreams-row dt {
    padding: .32rem .6rem;
    font-size: .92rem;
    min-width: 0;
}
.dreams-row dd {
    margin: 0;
    flex: 0 0 3rem;
    text-align: center;
    padding: .32rem 0;
    font-weight: 600;
    background: var(--yellow);
    border-inline-start: 1px solid var(--ink);
}
.dreams-foot { margin: 1rem 0 0; font-size: .74rem; color: var(--ink-soft); }

.fs-odds { background-color: var(--green); }
.odds-panel {
    display: grid;
    grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr);
    border: 2px solid var(--yellow);
}
.odds-chart {
    border-inline-end: 2px solid var(--yellow);
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.odds-plot {
    position: relative;
    height: 220px;
    margin: 0;
    background-color: rgba(12, 35, 28, .55);
    background-image:
        linear-gradient(rgba(232, 185, 58, .35) 1px, transparent 1px),
        linear-gradient(90deg, rgba(232, 185, 58, .35) 1px, transparent 1px),
        linear-gradient(rgba(232, 185, 58, .12) 1px, transparent 1px),
        linear-gradient(90deg, rgba(232, 185, 58, .12) 1px, transparent 1px);
    background-size: 40px 40px, 40px 40px, 10px 10px, 10px 10px;
}
.odds-axis {
    position: absolute;
    left: 6%;
    right: 6%;
    bottom: 42px;
    height: 2px;
    background: var(--text);
}
.odds-axis span {
    position: absolute;
    left: var(--x);
    top: 8px;
    transform: translateX(-50%);
    font-size: .74rem;
    font-weight: 600;
    color: var(--text);
    white-space: nowrap;
}
.odds-axis span::before {
    content: "";
    position: absolute;
    left: 50%;
    top: -14px;
    width: 2px;
    height: 12px;
    background: var(--text);
}
.odds-dot {
    position: absolute;
    left: calc(6% + var(--x) * .88);
    width: 22px;
    height: 22px;
    margin-left: -11px;
    border-radius: 50%;
    background: var(--ink);
    border: 2px solid var(--yellow);
    color: var(--yellow);
    font-size: .68rem;
    font-weight: 600;
    line-height: 18px;
    text-align: center;
    z-index: 2;
}
.odds-lvl1 { bottom: 76px; }
.odds-lvl2 { bottom: 132px; }
.odds-dot::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 20px;
    width: 0;
    border-left: 1px dashed var(--yellow);
    transform: translateX(-50%);
}
.odds-lvl1::after { height: 14px; }
.odds-lvl2::after { height: 70px; }
.odds-legend {
    list-style: none;
    margin: 0;
    padding: .8rem 1rem;
    counter-reset: odds;
    border-top: 2px solid var(--yellow);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem 1rem;
}
.odds-legend li {
    counter-increment: odds;
    position: relative;
    padding-inline-start: 1.7rem;
    font-size: .72rem;
    line-height: 1.4;
    color: var(--muted);
    min-width: 0;
}
.odds-legend li::before {
    content: counter(odds);
    position: absolute;
    inset-inline-start: 0;
    top: 0;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 1.5px solid var(--yellow);
    color: var(--yellow);
    font-size: .62rem;
    font-weight: 600;
    line-height: 15px;
    text-align: center;
}
.odds-legend strong { display: block; color: var(--yellow); font-size: .8rem; }
.odds-zones {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 2px solid var(--yellow);
}
.odds-zones li {
    padding: .55rem .4rem;
    text-align: center;
    font-size: .86rem;
    font-weight: 600;
    color: var(--text);
}
.odds-zones li + li { border-inline-start: 1px solid var(--line); }
.odds-fact {
    padding: 1.4rem 1.2rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .6rem;
    min-width: 0;
}
.odds-big {
    font-family: var(--f-body);
    font-weight: 600;
    font-size: clamp(1.9rem, 2.7vw, 2.7rem);
    line-height: 1;
    color: var(--yellow);
}
.odds-caption { margin: 0; font-size: .8rem; line-height: 1.55; color: var(--text); }

.empty-state {
    padding: 1.4rem 1.6rem;
    background: var(--sand);
    color: var(--ink);
    border: 2px solid var(--ink);
}

/* ---------- Páginas interiores ---------- */
.page-wrap { padding: 2.4rem 0 4.5rem; }
.crumbs {
    font-size: .8rem;
    color: var(--muted);
    margin: 0 0 1.8rem;
    padding: .5rem .9rem;
    border: 1px dashed var(--line);
    background: rgba(12, 35, 28, .6);
}
.crumbs a { color: var(--yellow); }
.crumbs-sep { color: var(--line); margin: 0 .3rem; }
.page-head { margin-bottom: 1.4rem; }
.blog-lead, .archive-desc { color: var(--muted); max-width: 62ch; margin-bottom: 1.6rem; }

.layout-with-sidebar {
    display: grid;
    grid-template-columns: minmax(0, 67fr) minmax(0, 27fr);
    gap: 6%;
    align-items: start;
}
.layout-single { display: block; }
.layout-single > .content-area { width: 85%; margin-left: auto; margin-right: auto; }
.content-area { min-width: 0; }

.sheet {
    background-color: var(--sand);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .3 0 0 0 0 .22 0 0 0 0 .1 0 0 0 .14 0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
    color: var(--ink);
    border: 2px solid var(--ink);
    box-shadow: 8px 10px 0 rgba(0, 0, 0, .35);
    padding: 2.4rem 2.6rem;
    margin-bottom: 2.4rem;
}
.sheet a { color: #8E2A20; }
.sheet a:hover { color: var(--ink); }
.entry-head { border-bottom: 3px solid var(--ink); margin-bottom: 1.6rem; padding-bottom: 1rem; }
.entry-title {
    margin: 0 0 .7rem;
    font-size: clamp(1.8rem, 3.4vw, 2.6rem);
    text-transform: uppercase;
    color: var(--ink);
}
.entry-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; font-size: .8rem; }
.entry-cats a {
    display: inline-block;
    margin-inline-end: .4rem;
    background: var(--ink);
    color: var(--yellow);
    text-decoration: none;
    padding: .1rem .5rem;
}
.entry-cover { margin: 0 0 1.6rem; border: 2px solid var(--ink); }
.entry-cover img { display: block; width: 100%; height: auto; }
.entry-content { font-size: .95rem; }
.entry-content h2, .entry-content h3, .entry-content h4 { color: var(--ink); }
.entry-content h2 {
    font-size: 1.7rem;
    text-transform: uppercase;
    border-bottom: 3px solid var(--yellow);
    display: inline-block;
    padding-bottom: .15rem;
}
.entry-content h3 { font-size: 1.3rem; }
.entry-content ul, .entry-content ol { padding-inline-start: 1.4rem; margin: 0 0 1.2em; }
.entry-content li { margin-bottom: .35em; }
.entry-content ul li::marker { color: var(--red); content: "✶  "; }
.entry-content blockquote {
    margin: 1.6em 0;
    padding: 1.2rem 1.4rem 1.2rem 1.6rem;
    background: var(--bordo);
    color: var(--text);
    border-inline-start: 6px solid var(--yellow);
    font-style: italic;
}
.entry-content blockquote p:last-child { margin-bottom: 0; }
.entry-content img { display: block; border: 2px solid var(--ink); }
.entry-content figure { margin: 1.4em 0; }
.entry-content figcaption { font-size: .78rem; color: var(--ink-soft); margin-top: .4rem; }
.entry-content pre, .entry-content code {
    font-family: var(--f-body);
    background: rgba(23, 20, 15, .08);
}
.entry-content pre { padding: 1rem; overflow-x: auto; border: 1px solid var(--ink); }
.entry-content hr { border: 0; border-top: 2px dashed var(--ink); margin: 2em 0; }
.entry-tags { margin: 1.6rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.entry-tags a {
    font-size: .8rem;
    border: 1.5px solid var(--ink);
    padding: .1rem .5rem;
    text-decoration: none;
    color: var(--ink);
}
.entry-tags a:hover { background: var(--yellow); }

.entry-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 2.4rem;
}
.entry-nav a {
    display: block;
    padding: 1rem 1.2rem;
    border: 2px solid var(--yellow);
    color: var(--text);
    text-decoration: none;
    background: rgba(12, 35, 28, .7);
    min-width: 0;
}
.entry-nav a:hover { background: var(--bordo); }
.entry-nav span {
    display: block;
    font-size: .74rem;
    color: var(--yellow);
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: .2rem;
}
.entry-nav-next { grid-column: 2; text-align: end; }

/* Barra lateral */
.sidebar {
    background: var(--aside);
    border: 2px solid var(--line);
    border-top: 6px solid var(--yellow);
    padding: 1.5rem 1.4rem;
    color: var(--text);
    min-width: 0;
}
.sidebar .widget + .widget { margin-top: 2rem; padding-top: 1.6rem; border-top: 1px dashed var(--line); }
.sidebar .widget-title {
    margin: 0 0 1rem;
    font-size: 1.15rem;
    text-transform: uppercase;
    color: var(--yellow);
    letter-spacing: .04em;
}
.sidebar, .sidebar p, .sidebar li { color: var(--text); font-size: .86rem; }
.sidebar a { color: var(--text); text-decoration: underline dashed 1px var(--yellow); }
.sidebar a:hover { color: var(--yellow); }
.sidebar ul { list-style: none; margin: 0; padding: 0; }
.sidebar li { padding: .5rem 0 .5rem 1.4rem; position: relative; border-bottom: 1px solid rgba(92, 122, 102, .5); }
.sidebar li::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: .95rem;
    width: 9px;
    height: 9px;
    background: var(--red);
    transform: rotate(45deg);
}
.sidebar .post-date { display: block; font-size: .74rem; color: var(--muted); }

/* Paginación */
.pager {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 3rem 0 0;
    align-items: center;
}
.pager .page-numbers {
    display: inline-block;
    min-width: 2.6rem;
    text-align: center;
    padding: .45rem .7rem;
    font-family: var(--f-head);
    font-weight: 600;
    text-decoration: none;
    color: var(--text);
    background: var(--head);
    border: 2px solid var(--yellow);
}
.pager a.page-numbers:hover { background: var(--yellow); color: var(--ink); }
.pager .page-numbers.current {
    background: var(--yellow);
    color: var(--ink);
    border-color: var(--ink);
    box-shadow: 3px 3px 0 var(--ink);
}
.pager .page-numbers.dots { border: 0; background: none; min-width: 0; }
.sheet .pager .page-numbers { color: var(--ink); background: var(--sand-deep); border-color: var(--ink); }

/* Búsqueda */
.searchbox { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.2rem 0; }
.searchbox-field {
    flex: 1 1 220px;
    min-width: 0;
    font-family: var(--f-body);
    font-size: .95rem;
    padding: .6rem .8rem;
    border: 2px solid var(--ink);
    background: #F5EBD4;
    color: var(--ink);
    border-radius: 0;
}
.sidebar .searchbox-field { border-color: var(--yellow); }

/* 404 */
.nf { text-align: start; }
.nf-code {
    font-family: var(--f-head);
    font-weight: 700;
    font-size: clamp(5rem, 14vw, 9rem);
    line-height: 1;
    margin: 0 0 .5rem;
    color: var(--red);
    -webkit-text-stroke: 2px var(--ink);
}

/* Comentarios */
.notes-title, .comment-reply-title {
    font-size: 1.5rem;
    text-transform: uppercase;
    color: var(--ink);
    margin: 0 0 1.2rem;
}
.notes-list, .notes-list .children { list-style: none; margin: 0; padding: 0; }
.notes-list .children { padding-inline-start: 1.6rem; border-inline-start: 2px dashed var(--ink); }
.note-body { padding: 1rem 0; border-bottom: 1px solid rgba(23, 20, 15, .3); }
.note-head { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem; margin-bottom: .5rem; }
.note-avatar { display: block; border: 2px solid var(--ink); }
.note-author { font-weight: 600; }
.note-date { font-size: .74rem; color: var(--ink-soft); }
.note-wait { font-size: .8rem; color: var(--red); }
.note-text { font-size: .9rem; }
.note-reply a { font-size: .8rem; font-weight: 600; }
.comment-respond { margin-top: 1.6rem; }
.comment-form label { display: block; font-size: .82rem; font-weight: 600; margin-bottom: .3rem; }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
    width: 100%;
    font-family: var(--f-body);
    font-size: .92rem;
    padding: .6rem .8rem;
    border: 2px solid var(--ink);
    background: #F5EBD4;
    color: var(--ink);
    border-radius: 0;
}
.comment-form-cookies-consent { display: flex; gap: .5rem; align-items: flex-start; }
.comment-form-cookies-consent label { font-weight: 400; }
.comment-form .submit {
    font-family: var(--f-head);
    font-weight: 600;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    padding: .62em 1.25em;
    background: var(--yellow);
    color: var(--ink);
    border: 2px solid var(--ink);
    box-shadow: 4px 4px 0 var(--ink);
    cursor: pointer;
    border-radius: 0;
}
.comment-form .submit:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 var(--ink); }

/* ---------- Pie ---------- */
.sitefoot {
    background: var(--head);
    border-top: 4px solid var(--yellow);
    color: var(--text);
    padding: 3.6rem 0 1.6rem;
}
.sitefoot-cols {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.6rem;
}
.sitefoot-col { min-width: 0; }
.sitefoot .widget-title {
    margin: 0 0 1rem;
    font-size: 1.45rem;
    text-transform: uppercase;
    color: var(--text);
}
.sitefoot, .sitefoot p, .sitefoot li, .sitefoot .textwidget { color: #D9D0B6; font-size: .86rem; }
.sitefoot ul { list-style: none; margin: 0; padding: 0; }
.sitefoot li { margin-bottom: .45rem; }
.sitefoot a { color: var(--yellow); text-decoration: underline dashed 1px; text-underline-offset: 4px; }
.sitefoot a:hover { color: var(--text); }
.sitefoot .post-date { color: var(--muted); display: block; font-size: .74rem; }
.sitefoot-copy {
    margin: 3rem 0 0;
    padding-top: 1.4rem;
    border-top: 1px dashed var(--line);
    text-align: center;
    font-size: .8rem;
    color: var(--muted);
}

/* ---------- Banner de cookies ---------- */
.cookie-banner {
    position: fixed;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    z-index: 90;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    max-width: 920px;
    margin: 0 auto;
    padding: 1.1rem 1.4rem;
    background: var(--sand);
    color: var(--ink);
    border: 2px solid var(--ink);
    box-shadow: 8px 8px 0 rgba(0, 0, 0, .45);
}
.cookie-text { margin: 0; flex: 1 1 320px; font-size: .84rem; min-width: 0; }

/* ---------- Adaptación ---------- */
@media (max-width: 1180px) {
    .anatomy-grid { grid-template-columns: minmax(0, 1fr); }
    .anatomy-intro .sec-lead { margin-bottom: 0; }
}

@media (max-width: 960px) {
    .masthead-row { flex-wrap: wrap; }
    .nav-toggle { display: inline-flex; }
    .topnav { flex: 1 0 100%; display: none; }
    .topnav.is-open { display: block; }
    .topnav-list { flex-direction: column; gap: 0; border-top: 1px dashed var(--line); padding-top: .6rem; }
    .topnav-list a { padding: .55rem 0; }

    .map-wrap { grid-template-columns: minmax(0, 1fr); }
    .luck-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .risk-scale { flex-direction: column; align-items: stretch; }
    .risk-ruler {
        min-height: 0;
        height: 54px;
        border-inline-start: 0;
        border-top: 2px solid var(--text);
        background-image: repeating-linear-gradient(90deg, var(--text) 0 2px, transparent 2px 28px);
        background-size: 100% 10px;
    }
    .risk-ruler::before, .risk-ruler::after { top: -9px; width: 2px; height: 18px; }
    .risk-ruler::before { left: 0; }
    .risk-ruler::after { right: 0; left: auto; bottom: auto; }
    .risk-mark { writing-mode: horizontal-tb; transform: none; top: 16px; bottom: auto; inset-inline-start: auto; }
    .risk-mark-top { left: 0; }
    .risk-mark-mid { left: 50%; transform: translateX(-50%); }
    .risk-mark-low { right: 0; }

    .anatomy-board { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 2.4rem; }
    .anatomy-bottom { flex-direction: column; align-self: end; }
    .anatomy-bottom .anatomy-arrow { transform: none; }

    .cards-3, .layout-single .cards-feed { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fs-duo { grid-template-columns: minmax(0, 1fr); }
    .layout-with-sidebar { grid-template-columns: minmax(0, 1fr); gap: 2.4rem; }
    .layout-single > .content-area { width: 100%; }
    .sitefoot-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    body { font-size: 14px; }
    .shell-front, .shell { width: 92%; }
    .fs, .fs-duo > .fs { padding: 3rem 0; }
    .masthead-row { padding: 1rem 0; gap: 1rem; }
    .brand { align-items: flex-start; }
    .brand-mark { flex-basis: 48px; }
    .brand-svg, .brand-logo { width: 48px; height: 48px; }
    .brand-desc { display: none; }

    .luck-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .luck-cell { min-height: 86px; }
    .luck-sym { width: 26px; height: 26px; }
    .luck-word { font-size: .7rem; }

    .anatomy-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .anatomy-n1 { --h: 170px; }
    .anatomy-n3 { --h: 160px; }
    .anatomy-n4 { --h: 200px; }

    .cards-3, .cards-feed, .layout-single .cards-feed { grid-template-columns: minmax(0, 1fr); }
    .card, .cards > .card:nth-child(3n + 2), .cards > .card:nth-child(3n) { transform: rotate(0deg); }
    .fs-latest { background: linear-gradient(180deg, var(--sand) 0 160px, var(--green) 160px 100%); }
    .fs-latest::after { top: 160px; }

    .dreams-inner, .odds-inner { width: 92%; }
    .dreams-table { grid-template-columns: minmax(0, 1fr); }
    .dreams-row:nth-child(odd) { border-inline-end: 0; }
    .dreams-row:nth-last-child(2) { border-bottom: 1px solid rgba(23, 20, 15, .45); }

    .odds-panel { grid-template-columns: minmax(0, 1fr); }
    .odds-chart { border-inline-end: 0; border-bottom: 2px solid var(--yellow); }
    .odds-legend { grid-template-columns: minmax(0, 1fr); }
    .odds-zones li { font-size: .74rem; }

    .page-wrap { padding: 1.6rem 0 3.4rem; }
    .sheet { padding: 1.6rem 1.3rem; }
    .entry-nav { grid-template-columns: minmax(0, 1fr); }
    .entry-nav-next { grid-column: 1; }
    .sitefoot-cols { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
    .cookie-banner { padding: 1rem 1.1rem; }
}

/* Ajustes finales */
.anatomy-intro .sec-title { font-size: clamp(1.7rem, 2.6vw, 2.5rem); }
@media (max-width: 1180px) {
    .anatomy-intro .sec-title { font-size: clamp(1.8rem, 3.6vw, 2.9rem); }
}
