:root {
    --paper: #f7f3eb;
    --paper-deep: #eee7da;
    --surface: #fffdf8;
    --ink: #2a241f;
    --muted: #716a62;
    --line: #ded5c7;
    --accent: #d96532;
    --accent-dark: #b94c21;
    --accent-soft: #f6dfd3;
    --shadow: 0 18px 50px rgba(55, 43, 32, 0.08);
    --radius: 18px;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    min-height: 100vh;
    color: var(--ink);
    background: var(--paper);
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    line-height: 1.5;
}

a {
    color: inherit;
}

button,
input {
    font: inherit;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.site-header {
    position: sticky;
    z-index: 20;
    top: 0;
    border-bottom: 1px solid rgba(68, 54, 42, 0.12);
    background: rgba(247, 243, 235, 0.94);
    backdrop-filter: blur(14px);
}

.header-inner {
    display: flex;
    width: min(1180px, calc(100% - 40px));
    min-height: 76px;
    margin: 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}

.brand {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 11px;
    text-decoration: none;
}

.brand-logo-placeholder {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border: 1px solid var(--ink);
    border-radius: 50%;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -1px;
}

.brand-copy {
    display: flex;
    flex-direction: column;
}

.brand-copy strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 17px;
    line-height: 1.1;
    letter-spacing: 0.02em;
}

.brand-copy small {
    margin-top: 4px;
    color: var(--muted);
    font-size: 8px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.main-navigation,
.nav-links,
.guest-actions,
.user-actions {
    display: flex;
    align-items: center;
}

.main-navigation {
    flex: 1;
    justify-content: flex-end;
    gap: 22px;
}

.nav-links {
    gap: 4px;
}

.nav-links a,
.nav-links span {
    padding: 8px 9px;
    border-radius: 8px;
    color: var(--muted);
    font-size: 12px;
    text-decoration: none;
    white-space: nowrap;
}

.nav-links .active {
    color: var(--ink);
    background: var(--paper-deep);
}

.nav-links span {
    cursor: default;
}

.guest-actions,
.user-actions {
    gap: 10px;
}

.user-greeting {
    max-width: 140px;
    overflow: hidden;
    color: var(--muted);
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.user-actions form {
    margin: 0;
}

.button {
    display: inline-flex;
    min-height: 40px;
    padding: 0 17px;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    border-radius: 9px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    transition: transform 160ms ease, background 160ms ease, border-color 160ms ease;
}

.button:hover {
    transform: translateY(-1px);
}

.button-primary {
    color: #fff;
    background: var(--accent);
    box-shadow: 0 8px 22px rgba(217, 101, 50, 0.2);
}

.button-primary:hover {
    background: var(--accent-dark);
}

.button-quiet {
    border-color: var(--line);
    color: var(--ink);
    background: transparent;
}

.button-quiet:hover,
.button-light {
    background: var(--surface);
}

.button-dark {
    color: #fff;
    background: var(--ink);
}

.button-dark:hover {
    background: #443b34;
}

.button-danger {
    border-color: #c94c3c;
    color: #a63425;
    background: #fff5f2;
}

.button-danger:hover {
    color: #fff;
    background: #a63425;
}

.button-large {
    min-height: 48px;
    padding-inline: 23px;
}

.button-full {
    width: 100%;
    min-height: 48px;
    margin-top: 8px;
}

.menu-toggle {
    display: none;
    width: 42px;
    height: 42px;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: transparent;
}

.menu-toggle span:not(.sr-only) {
    display: block;
    height: 1px;
    margin: 5px 0;
    background: var(--ink);
}

.messages {
    position: fixed;
    z-index: 30;
    top: 88px;
    right: 24px;
    width: min(380px, calc(100% - 48px));
}

.message {
    padding: 14px 18px;
    border: 1px solid #bad5bc;
    border-radius: 10px;
    color: #315c36;
    background: #edf7ed;
    box-shadow: var(--shadow);
    font-size: 14px;
}

.hero {
    position: relative;
    display: grid;
    width: min(1180px, calc(100% - 40px));
    min-height: 420px;
    margin: 0 auto;
    padding: 84px 0 70px;
    grid-template-columns: minmax(0, 720px) 1fr;
    align-items: center;
    overflow: hidden;
}

.hero-content {
    position: relative;
    z-index: 2;
}

.eyebrow {
    margin: 0 0 14px;
    color: var(--accent-dark);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.17em;
    text-transform: uppercase;
}

h1,
h2,
h3,
p {
    overflow-wrap: break-word;
}

h1,
h2,
h3 {
    margin-top: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 500;
}

h1 {
    max-width: 750px;
    margin-bottom: 20px;
    font-size: clamp(46px, 6.3vw, 78px);
    line-height: 0.98;
    letter-spacing: -0.045em;
}

h2 {
    margin-bottom: 10px;
    font-size: clamp(30px, 4vw, 45px);
    line-height: 1.05;
    letter-spacing: -0.03em;
}

h3 {
    margin-bottom: 10px;
    font-size: 25px;
}

.hero-content > p:not(.eyebrow) {
    max-width: 620px;
    margin: 0;
    color: var(--muted);
    font-size: 17px;
}

.hero-actions {
    display: flex;
    margin-top: 30px;
    align-items: center;
    gap: 20px;
}

.text-link {
    padding: 8px 0;
    border-bottom: 1px solid var(--ink);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.hero-mark {
    position: absolute;
    z-index: 1;
    right: 1%;
    display: grid;
    width: 270px;
    height: 270px;
    place-items: center;
    border: 1px solid rgba(42, 36, 31, 0.12);
    border-radius: 50%;
    color: rgba(42, 36, 31, 0.06);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 110px;
    font-weight: 700;
}

.section-shell {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto 90px;
}

.workspace,
.preview-section {
    position: relative;
    padding: 42px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgba(255, 253, 248, 0.62);
    box-shadow: var(--shadow);
}

.section-heading {
    display: flex;
    margin-bottom: 30px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}

.section-heading .eyebrow {
    margin-bottom: 10px;
}

.section-heading h2 {
    max-width: 720px;
    margin-bottom: 0;
}

.status-chip,
.coming-soon {
    display: inline-flex;
    width: fit-content;
    padding: 7px 10px;
    border-radius: 99px;
    color: var(--accent-dark);
    background: var(--accent-soft);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

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

.tool-card {
    display: flex;
    min-height: 230px;
    padding: 25px;
    flex-direction: column;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--surface);
}

.tool-card-featured {
    border-color: #dcc1b3;
    background: #fff9f5;
}

.tool-number {
    margin-bottom: 42px;
    color: var(--accent);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 12px;
}

.tool-card p {
    margin: 0 0 20px;
    color: var(--muted);
    font-size: 13px;
}

.tool-card .coming-soon {
    margin-top: auto;
}

.tool-card-link {
    margin-top: auto;
    color: var(--accent-dark);
    font-size: 12px;
}

a.tool-card {
    text-decoration: none;
}

.preview-section {
    min-height: 390px;
    overflow: hidden;
}

.preview-content {
    filter: blur(5px);
    opacity: 0.28;
    pointer-events: none;
    user-select: none;
}

.preview-content .tool-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.preview-gate {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    width: min(470px, calc(100% - 40px));
    padding: 32px;
    transform: translate(-50%, -50%);
    border: 1px solid var(--line);
    border-radius: 14px;
    text-align: center;
    background: rgba(42, 36, 31, 0.94);
    box-shadow: 0 24px 70px rgba(42, 36, 31, 0.24);
}

.preview-gate .eyebrow {
    color: #f1aa86;
}

.preview-gate h2 {
    margin-bottom: 24px;
    color: #fffaf2;
    font-size: 31px;
}

.gate-actions {
    display: flex;
    justify-content: center;
    gap: 10px;
}

.auth-layout {
    display: grid;
    width: min(1040px, calc(100% - 40px));
    min-height: calc(100vh - 150px);
    margin: 0 auto;
    padding: 65px 0;
    grid-template-columns: 1fr minmax(360px, 440px);
    align-items: center;
    gap: 90px;
}

.auth-intro h1 {
    font-size: clamp(45px, 5vw, 68px);
}

.auth-intro > p:not(.eyebrow) {
    max-width: 510px;
    color: var(--muted);
    font-size: 17px;
}

.auth-card {
    padding: 36px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
    box-shadow: var(--shadow);
}

.auth-card-heading {
    margin-bottom: 26px;
}

.auth-card-heading h2 {
    margin: 0;
    font-size: 36px;
}

.form-field {
    margin-bottom: 17px;
}

.form-field label {
    display: block;
    margin-bottom: 7px;
    color: #49423b;
    font-size: 12px;
    font-weight: 700;
}

.form-field input,
.form-field select,
.form-field textarea {
    width: 100%;
    min-height: 46px;
    padding: 10px 13px;
    border: 1px solid var(--line);
    border-radius: 8px;
    outline: none;
    color: var(--ink);
    background: #fff;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.form-field textarea {
    min-height: 96px;
    resize: vertical;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.page-header {
    display: flex;
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    padding: 54px 0 28px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}

.page-header h1 {
    margin-bottom: 12px;
    font-size: clamp(42px, 5vw, 64px);
}

.page-header > div > p:last-child {
    max-width: 620px;
    margin: 0;
    color: var(--muted);
}

.insumo-grid,
.tienda-grid,
.fundamentos-grid,
.lecciones-grid,
.reconocer-grid,
.regional-grid {
    display: grid;
    gap: 16px;
}

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

.insumo-card,
.tienda-card,
.fundamento-card,
.leccion-card,
.reconocer-card,
.regional-card,
.regional-form-panel,
.media-res-panel,
.form-shell .panel-form {
    padding: 26px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface);
}

.insumo-card h2,
.tienda-card h2,
.fundamento-card h2,
.leccion-card h2,
.reconocer-card h2,
.regional-card h2 {
    margin-bottom: 12px;
    font-size: 28px;
}

.insumo-meta {
    margin: 0 0 18px;
}

.insumo-meta > div {
    display: flex;
    padding: 10px 0;
    justify-content: space-between;
    gap: 16px;
    border-top: 1px solid var(--line);
}

.insumo-meta dt {
    color: var(--muted);
    font-size: 11px;
}

.insumo-meta dd {
    margin: 0;
    text-align: right;
    font-size: 13px;
    font-weight: 700;
}

.insumo-card-actions {
    display: flex;
    gap: 10px;
}

.insumo-card-actions form {
    margin: 0;
}

.form-shell {
    margin-bottom: 80px;
}

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

.form-field-full {
    grid-column: 1 / -1;
}

.form-actions {
    display: flex;
    margin-top: 22px;
    gap: 10px;
}

.tienda-grid {
    margin-bottom: 80px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tienda-icon {
    display: grid;
    width: 52px;
    height: 52px;
    margin-bottom: 22px;
    place-items: center;
    border: 1px solid var(--ink);
    border-radius: 50%;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 16px;
    font-weight: 700;
}

.tienda-card p,
.fundamento-card p,
.leccion-card p,
.reconocer-card p {
    margin: 0 0 18px;
    color: var(--muted);
    font-size: 14px;
}

.fundamentos-grid,
.lecciones-grid {
    margin-bottom: 80px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

a.fundamento-card,
a.leccion-card {
    display: flex;
    min-height: 230px;
    flex-direction: column;
    text-decoration: none;
    transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

a.fundamento-card:hover,
a.leccion-card:hover {
    transform: translateY(-3px);
    border-color: #d6b6a6;
    box-shadow: var(--shadow);
}

.regional-layout {
    display: grid;
    margin-bottom: 80px;
    grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr);
    gap: 16px;
    align-items: start;
}

.regional-filters {
    display: flex;
    margin-bottom: 16px;
    padding: 14px;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: rgba(255, 253, 248, 0.72);
}

.regional-filters label {
    flex: 1;
}

.regional-filters input,
.regional-filters select {
    width: 100%;
    min-height: 44px;
    padding: 9px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
}

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

.regional-card .muted,
.regional-form-panel .muted,
.lesson-note p {
    color: var(--muted);
    font-size: 13px;
}

.regional-photo {
    display: block;
    width: 100%;
    max-height: 220px;
    margin-top: 12px;
    object-fit: cover;
    border-radius: 10px;
}

.media-res-layout {
    display: grid;
    margin-bottom: 22px;
    grid-template-columns: 1fr minmax(220px, 0.8fr) 1fr;
    gap: 16px;
    align-items: start;
}

.corte-lista {
    margin: 0;
    padding: 0;
    list-style: none;
}

.corte-lista li {
    padding: 12px 0;
    border-top: 1px solid var(--line);
    font-size: 14px;
}

.media-res-diagram {
    display: grid;
    min-height: 360px;
    padding: 22px;
    place-items: center;
    gap: 14px;
    border: 1px dashed #c9b7a8;
    border-radius: 14px;
    background: linear-gradient(160deg, #f4ebe0 0%, #efe2d2 55%, #e7d5c4 100%);
    text-align: center;
}

.diagram-shape {
    display: grid;
    width: min(180px, 100%);
    place-items: center;
    border: 1px solid rgba(42, 36, 31, 0.2);
    color: var(--ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
    background: rgba(255, 253, 248, 0.72);
}

.diagram-delantero {
    height: 120px;
    border-radius: 70px 70px 18px 18px;
}

.diagram-trasero {
    height: 150px;
    border-radius: 18px 18px 70px 70px;
}

.media-res-diagram p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}

.lesson-note {
    display: flex;
    margin-bottom: 80px;
    padding: 18px 20px;
    align-items: flex-start;
    gap: 16px;
    border-left: 3px solid var(--accent);
    background: rgba(255, 253, 248, 0.7);
}

.lesson-note strong {
    flex: 0 0 auto;
    color: var(--accent-dark);
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lesson-note p {
    margin: 0;
}

.reconocer-grid {
    margin-bottom: 80px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.corte-placeholder {
    display: grid;
    height: 150px;
    margin-bottom: 16px;
    place-items: center;
    border-radius: 12px;
    color: #8a7463;
    background:
        linear-gradient(135deg, rgba(217, 101, 50, 0.12), rgba(42, 36, 31, 0.06)),
        repeating-linear-gradient(
            -45deg,
            rgba(255, 253, 248, 0.4) 0 10px,
            rgba(238, 231, 218, 0.55) 10px 20px
        );
    font-family: Georgia, "Times New Roman", serif;
    font-size: 28px;
    font-weight: 500;
}

.corte-placeholder::after {
    content: attr(data-label);
}

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

    .media-res-layout,
    .regional-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .page-header {
        width: min(100% - 28px, 1180px);
        padding-top: 38px;
        align-items: stretch;
        flex-direction: column;
    }

    .insumo-grid,
    .tienda-grid,
    .fundamentos-grid,
    .lecciones-grid,
    .reconocer-grid,
    .form-grid {
        grid-template-columns: 1fr;
    }

    .regional-filters {
        flex-direction: column;
        align-items: stretch;
    }

    .form-actions {
        flex-direction: column;
    }
}

.field-help {
    display: block;
    margin-top: 6px;
    color: var(--muted);
    font-size: 11px;
}

.field-help ul {
    margin: 6px 0 0;
    padding-left: 18px;
}

.field-error {
    display: block;
    margin-top: 6px;
    color: #a63425;
    font-size: 12px;
}

.form-alert {
    margin-bottom: 18px;
    padding: 12px 14px;
    border: 1px solid #e5b6ae;
    border-radius: 8px;
    color: #8d2e20;
    background: #fff1ee;
    font-size: 13px;
}

.form-alert ul {
    margin: 0;
    padding-left: 18px;
}

.auth-alternative {
    margin: 22px 0 0;
    color: var(--muted);
    font-size: 13px;
    text-align: center;
}

.auth-alternative a {
    color: var(--accent-dark);
    font-weight: 700;
}

.recipes-hero,
.recipe-detail-header {
    display: flex;
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
}

.recipes-hero {
    min-height: 320px;
    padding: 64px 0 48px;
}

.recipes-hero h1,
.recipe-detail-header h1 {
    margin-bottom: 14px;
}

.recipes-hero > div > p:last-child,
.recipe-detail-header > div > p:last-child {
    max-width: 680px;
    margin: 0;
    color: var(--muted);
}

.recipe-browser {
    margin-bottom: 90px;
}

.recipe-filters {
    display: flex;
    margin-bottom: 24px;
    padding: 14px;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: rgba(255, 253, 248, 0.72);
}

.recipe-filters label {
    flex: 0 1 260px;
}

.recipe-filters .search-field {
    flex-grow: 1;
}

.recipe-filters input,
.recipe-filters select,
.recipe-calculator input,
.recipe-calculator select {
    width: 100%;
    min-height: 44px;
    padding: 9px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    outline: none;
    color: var(--ink);
    background: var(--surface);
}

.recipe-filters input:focus,
.recipe-filters select:focus,
.recipe-calculator input:focus,
.recipe-calculator select:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.clear-filter {
    padding: 8px;
    color: var(--muted);
    font-size: 12px;
}

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

.recipe-card {
    display: flex;
    min-height: 260px;
    padding: 27px;
    flex-direction: column;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface);
    text-decoration: none;
    transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.recipe-card:hover {
    transform: translateY(-3px);
    border-color: #d6b6a6;
    box-shadow: var(--shadow);
}

.recipe-category {
    margin-bottom: 24px;
    color: var(--accent);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.recipe-card h2 {
    margin-bottom: 10px;
    font-size: 28px;
}

.recipe-card > p {
    margin: 0 0 28px;
    color: var(--muted);
    font-size: 13px;
}

.recipe-card-footer {
    display: flex;
    margin-top: auto;
    padding-top: 18px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 11px;
}

.recipe-card-footer strong {
    color: var(--accent-dark);
}

.empty-state {
    padding: 70px 24px;
    grid-column: 1 / -1;
    border: 1px dashed var(--line);
    border-radius: 14px;
    text-align: center;
}

.empty-state p {
    color: var(--muted);
}

.recipe-detail-header {
    padding: 54px 0 32px;
}

.recipe-detail-header h1 {
    max-width: 620px;
    font-size: clamp(42px, 5vw, 64px);
}

.back-link {
    display: inline-block;
    margin-bottom: 28px;
    color: var(--muted);
    font-size: 12px;
    text-decoration: none;
}

.recipe-calculator {
    display: grid;
    min-width: 500px;
    padding: 18px;
    grid-template-columns: minmax(210px, 1fr) 170px auto;
    align-items: end;
    gap: 10px;
    border-radius: 13px;
    background: var(--ink);
    box-shadow: var(--shadow);
}

.recipe-calculator label > span {
    display: block;
    margin-bottom: 7px;
    color: #f3e9dd;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.quantity-input {
    position: relative;
}

.quantity-input input {
    padding-right: 40px;
}

.quantity-input > span {
    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}

.recipe-detail-layout {
    display: grid;
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto 22px;
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
    align-items: start;
    gap: 16px;
}

.formula-panel,
.method-panel {
    padding: 32px;
    border: 1px solid var(--line);
    background: var(--surface);
}

.formula-heading {
    display: flex;
    padding-bottom: 22px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    border-bottom: 1px solid var(--line);
}

.formula-heading h2 {
    font-size: 34px;
}

.formula-heading > div:first-child > p:last-child {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
}

.yield-card {
    display: flex;
    min-width: 150px;
    padding: 16px;
    flex-direction: column;
    color: #fff;
    background: var(--accent);
}

.yield-card span {
    margin-bottom: 9px;
    font-size: 9px;
    font-weight: 700;
}

.yield-card strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 22px;
    font-weight: 500;
}

.ingredient-group {
    padding-top: 22px;
}

.ingredient-group h3 {
    margin-bottom: 7px;
    color: var(--accent);
    font-family: inherit;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.ingredient-group ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ingredient-group li {
    display: flex;
    min-height: 42px;
    padding: 10px 2px;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-bottom: 1px solid var(--line);
    font-size: 13px;
}

.ingredient-group li strong {
    flex: 0 0 auto;
    font-size: 12px;
}

.method-panel > header {
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
}

.method-panel h2 {
    font-size: 36px;
}

.method-steps {
    margin: 0;
    padding: 0;
    list-style: none;
}

.method-steps li {
    display: grid;
    padding: 18px 0;
    grid-template-columns: 38px 1fr;
    gap: 8px;
    border-bottom: 1px solid var(--line);
}

.method-steps li > span {
    color: var(--accent);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 12px;
}

.method-steps p {
    margin: 0;
    color: #504941;
    font-size: 12px;
    line-height: 1.65;
}

.technical-note {
    margin-top: 22px;
    padding: 17px;
    background: var(--paper-deep);
}

.technical-note strong {
    font-size: 10px;
}

.technical-note p {
    margin: 6px 0 0;
    color: var(--muted);
    font-size: 9px;
}

.recipe-actions {
    display: flex;
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto 80px;
    justify-content: flex-end;
    gap: 10px;
}

.community-header {
    display: flex;
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    padding: 54px 0 28px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
}

.community-header h1 {
    margin-bottom: 12px;
    font-size: clamp(46px, 6vw, 72px);
}

.community-header > div > p {
    max-width: 560px;
    margin: 0;
    color: var(--muted);
}

.community-plan {
    display: inline-flex;
    padding: 12px 16px;
    align-items: center;
    gap: 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
}

.community-plan strong {
    display: block;
    font-size: 14px;
}

.community-plan small {
    color: var(--muted);
    font-size: 11px;
}

.community-banner {
    display: grid;
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto 28px;
    padding: 42px;
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: 28px;
    border-top: 3px solid var(--accent);
    border-radius: 0 0 16px 16px;
    color: #f7f1e8;
    background: #1f1b18;
}

.community-banner h2 {
    max-width: 640px;
    margin-bottom: 14px;
    color: #fffaf2;
    font-size: clamp(34px, 4vw, 48px);
}

.community-banner-copy > p:not(.eyebrow) {
    max-width: 620px;
    margin: 0 0 28px;
    color: #cfc4b7;
}

.community-banner .eyebrow {
    color: #f1aa86;
}

.button-whatsapp {
    gap: 10px;
    color: #fff;
    background: #25d366;
    box-shadow: 0 10px 24px rgba(37, 211, 102, 0.24);
}

.button-whatsapp:hover {
    background: #1ebe57;
}

.button-disabled {
    opacity: 0.55;
    cursor: not-allowed;
    box-shadow: none;
}

.community-note {
    display: block;
    margin-top: 12px;
    color: #9f9488;
    font-size: 11px;
}

.community-hours {
    display: flex;
    padding: 22px;
    flex-direction: column;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 12px;
}

.community-hours .eyebrow {
    margin-bottom: 10px;
}

.community-hours strong {
    margin-bottom: 6px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 28px;
    font-weight: 500;
}

.community-hours span {
    color: #b8ada0;
    font-size: 12px;
}

.community-grid {
    display: grid;
    margin-bottom: 22px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.community-card {
    padding: 32px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface);
}

.community-card h2 {
    margin-bottom: 20px;
    font-size: 30px;
}

.community-card ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.community-card li {
    padding: 12px 0;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 14px;
}

.community-important {
    display: flex;
    margin-bottom: 80px;
    padding: 18px 20px;
    align-items: flex-start;
    gap: 16px;
    border-left: 3px solid var(--accent);
    background: rgba(255, 253, 248, 0.7);
}

.community-important strong {
    flex: 0 0 auto;
    color: var(--accent-dark);
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.community-important p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
}

.lab-header {
    display: flex;
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    padding: 54px 0 28px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}

.lab-header h1 {
    margin-bottom: 12px;
    font-size: clamp(42px, 5vw, 64px);
}

.lab-header > div > p:last-child {
    max-width: 560px;
    margin: 0;
    color: var(--muted);
}

.drafts-strip {
    display: grid;
    margin-bottom: 22px;
    grid-template-columns: 210px minmax(0, 1fr);
    gap: 14px;
}

.drafts-summary {
    display: flex;
    padding: 22px;
    flex-direction: column;
    justify-content: center;
    color: #f7f1e8;
    background: #1f1b18;
}

.drafts-summary .eyebrow {
    color: #f1aa86;
}

.drafts-summary strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 28px;
    font-weight: 500;
}

.drafts-track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(220px, 260px);
    gap: 12px;
    overflow-x: auto;
    padding-bottom: 4px;
}

.draft-card {
    display: flex;
    min-height: 148px;
    padding: 18px;
    flex-direction: column;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
    text-decoration: none;
}

.draft-card.is-active {
    border-color: #d6b6a6;
    box-shadow: var(--shadow);
}

.draft-card strong {
    margin-bottom: 8px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 22px;
    font-weight: 500;
}

.draft-card span:not(.recipe-category) {
    color: var(--muted);
    font-size: 12px;
}

.draft-card em {
    margin-top: auto;
    color: var(--accent-dark);
    font-size: 12px;
    font-style: normal;
    font-weight: 700;
}

.draft-empty {
    display: grid;
    min-height: 148px;
    padding: 24px;
    place-items: center;
    border: 1px dashed var(--line);
    border-radius: 12px;
    color: var(--muted);
    font-size: 13px;
}

.lab-layout {
    display: grid;
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto 80px;
    grid-template-columns: minmax(0, 1fr) 280px;
    align-items: start;
    gap: 16px;
}

.lab-main {
    display: grid;
    gap: 14px;
}

.lab-settings {
    display: grid;
    padding: 18px;
    grid-template-columns: 1.4fr 1fr 180px;
    gap: 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
}

.lab-settings label > span,
.lab-cost .eyebrow {
    display: block;
    margin-bottom: 7px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.lab-settings input,
.lab-settings select,
.lab-table input,
.lab-table select {
    width: 100%;
    min-height: 44px;
    padding: 9px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    outline: none;
    color: var(--ink);
    background: #fff;
}

.lab-settings input:focus,
.lab-settings select:focus,
.lab-table input:focus,
.lab-table select:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.live-formula-bar {
    display: flex;
    padding: 18px 22px;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    color: #f7f1e8;
    background: #1f1b18;
}

.live-formula-bar strong {
    display: block;
    margin-bottom: 4px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 24px;
    font-weight: 500;
}

.live-formula-bar span,
.live-formula-bar p {
    margin: 0;
    color: #cfc4b7;
    font-size: 12px;
}

.lab-ingredients {
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
}

.lab-ingredients-heading {
    display: flex;
    margin-bottom: 18px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
}

.lab-ingredients-heading h2 {
    margin: 0;
    font-size: 30px;
}

.lab-table-wrap {
    overflow-x: auto;
}

.lab-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 860px;
}

.lab-table th {
    padding: 0 8px 10px;
    color: var(--accent);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.lab-table td {
    padding: 8px;
    border-top: 1px solid var(--line);
    vertical-align: middle;
}

.lab-table .final-qty,
.lab-table .line-cost {
    font-size: 12px;
    white-space: nowrap;
}

.final-qty {
    display: inline-flex;
    min-height: 44px;
    padding: 10px 12px;
    align-items: center;
    border-radius: 8px;
    color: var(--accent-dark);
    background: #f6e4d8;
    font-size: 12px;
    font-weight: 700;
}

.compra-group {
    display: grid;
    min-width: 260px;
    grid-template-columns: auto minmax(70px, 1fr) auto 58px 72px;
    align-items: center;
    gap: 6px;
}

.compra-group > span:first-child,
.compra-por {
    color: var(--muted);
    font-size: 12px;
}

.money-input {
    position: relative;
}

.money-input > span {
    position: absolute;
    top: 50%;
    left: 10px;
    transform: translateY(-50%);
    color: var(--muted);
    font-size: 12px;
}

.money-input input {
    padding-left: 24px;
}

.row-actions {
    width: 42px;
    text-align: right;
}

.delete-flag {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.remove-row {
    width: 34px;
    height: 34px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: #a63425;
    background: #fff5f2;
    cursor: pointer;
}

.ingredient-row.is-deleted {
    display: none;
}

.lab-help {
    margin: 14px 0 0;
    color: var(--muted);
    font-size: 11px;
}

.lab-cost {
    position: sticky;
    top: 92px;
    padding: 22px;
    color: #f7f1e8;
    background: #1f1b18;
}

.lab-cost .eyebrow {
    color: #f1aa86;
}

.lab-cost-base {
    margin: 0 0 14px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 28px;
    font-weight: 500;
}

.lab-cost dl {
    margin: 0 0 18px;
}

.lab-cost dl > div {
    display: flex;
    padding: 10px 0;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.lab-cost dt {
    color: #b8ada0;
    font-size: 11px;
}

.lab-cost dd {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
}

.cost-per-kg {
    margin-bottom: 16px;
    padding: 16px;
    background: var(--accent);
}

.cost-per-kg span {
    display: block;
    margin-bottom: 8px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cost-per-kg strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 28px;
    font-weight: 500;
}

.additive-note {
    margin-bottom: 16px;
    padding: 14px;
    border: 1px solid rgba(255, 255, 255, 0.14);
}

.additive-note strong {
    display: block;
    margin-bottom: 6px;
    color: #f1aa86;
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.additive-note p {
    margin: 0;
    color: #9f9488;
    font-size: 11px;
}

.lab-cost .lab-help {
    color: #9f9488;
}

.lab-cost .button-full + .button-full {
    margin-top: 10px;
}

.site-footer {
    display: flex;
    width: min(1180px, calc(100% - 40px));
    min-height: 76px;
    margin: 0 auto;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 11px;
}

@media (max-width: 1050px) {
    .menu-toggle {
        display: block;
        margin-left: auto;
    }

    .main-navigation {
        position: absolute;
        top: calc(100% + 1px);
        right: 20px;
        left: 20px;
        display: none;
        padding: 18px;
        align-items: stretch;
        flex-direction: column;
        border: 1px solid var(--line);
        border-radius: 0 0 14px 14px;
        background: var(--surface);
        box-shadow: var(--shadow);
    }

    .main-navigation.is-open {
        display: flex;
    }

    .nav-links {
        align-items: stretch;
        flex-direction: column;
    }

    .nav-links a,
    .nav-links span {
        padding: 10px;
    }

    .user-actions {
        justify-content: space-between;
        border-top: 1px solid var(--line);
        padding-top: 15px;
    }

    .guest-actions {
        justify-content: flex-end;
    }

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

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

    .recipe-detail-header {
        align-items: stretch;
        flex-direction: column;
    }

    .recipe-calculator {
        min-width: 0;
    }

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

    .community-banner {
        grid-template-columns: 1fr;
    }

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

    .drafts-strip,
    .lab-layout,
    .lab-settings {
        grid-template-columns: 1fr;
    }

    .lab-cost {
        position: static;
    }
}

@media (max-width: 760px) {
    .header-inner,
    .hero,
    .section-shell,
    .recipes-hero,
    .recipe-detail-header,
    .recipe-detail-layout,
    .recipe-actions,
    .community-header,
    .community-banner,
    .lab-header,
    .lab-layout,
    .site-footer {
        width: min(100% - 28px, 1180px);
    }

    .brand-copy {
        display: none;
    }

    .hero {
        min-height: 390px;
        padding: 58px 0;
        grid-template-columns: 1fr;
    }

    .hero-mark {
        right: -100px;
        width: 240px;
        height: 240px;
        font-size: 90px;
    }

    h1 {
        font-size: clamp(43px, 14vw, 60px);
    }

    .workspace,
    .preview-section {
        padding: 25px;
    }

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

    .tool-grid,
    .preview-content .tool-grid {
        grid-template-columns: 1fr;
    }

    .tool-card {
        min-height: 200px;
    }

    .preview-section {
        min-height: 440px;
    }

    .preview-gate {
        padding: 26px 20px;
    }

    .gate-actions,
    .hero-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .hero-actions .text-link {
        width: fit-content;
    }

    .auth-layout {
        width: min(100% - 28px, 1040px);
        min-height: auto;
        padding: 48px 0 70px;
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .auth-intro h1 {
        font-size: 45px;
    }

    .auth-card {
        padding: 26px 20px;
    }

    .recipes-hero {
        min-height: 0;
        padding: 48px 0 34px;
        align-items: stretch;
        flex-direction: column;
    }

    .recipe-filters {
        align-items: stretch;
        flex-direction: column;
    }

    .recipe-filters label {
        flex-basis: auto;
    }

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

    .recipe-detail-header {
        padding-top: 38px;
    }

    .recipe-calculator {
        grid-template-columns: 1fr;
    }

    .formula-panel,
    .method-panel {
        padding: 23px 18px;
    }

    .formula-heading {
        flex-direction: column;
    }

    .yield-card {
        width: 100%;
    }

    .ingredient-group li {
        align-items: flex-start;
    }

    .community-header {
        padding-top: 38px;
        align-items: stretch;
        flex-direction: column;
    }

    .community-banner {
        padding: 28px 20px;
    }

    .community-card {
        padding: 24px 18px;
    }

    .community-important {
        flex-direction: column;
        gap: 8px;
    }

    .lab-header {
        padding-top: 38px;
        align-items: stretch;
        flex-direction: column;
    }

    .lab-ingredients {
        padding: 18px 14px;
    }

    .lab-table {
        min-width: 0;
    }

    .lab-table thead {
        display: none;
    }

    .lab-table,
    .lab-table tbody,
    .lab-table tr,
    .lab-table td {
        display: block;
        width: 100%;
    }

    .lab-table tr {
        margin-bottom: 12px;
        padding: 12px;
        border: 1px solid var(--line);
        border-radius: 10px;
    }

    .lab-table td {
        display: grid;
        padding: 8px 0;
        grid-template-columns: 110px 1fr;
        gap: 10px;
        border: 0;
        align-items: center;
    }

    .lab-table td::before {
        content: attr(data-label);
        color: var(--accent);
        font-size: 9px;
        font-weight: 800;
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    .lab-table td.row-actions {
        display: flex;
        justify-content: flex-end;
    }

    .lab-table td.row-actions::before {
        content: none;
    }

    .site-footer {
        padding: 22px 0;
        align-items: flex-start;
        flex-direction: column;
        justify-content: center;
        gap: 4px;
    }
}

@media print {
    .site-header,
    .site-footer,
    .recipe-detail-header,
    .recipe-actions,
    .messages {
        display: none !important;
    }

    body {
        background: #fff;
    }

    .recipe-detail-layout {
        width: 100%;
        grid-template-columns: 1fr 1fr;
    }

    .formula-panel,
    .method-panel {
        break-inside: avoid;
    }
}

/* --- Insumos / Tienda / Fundamentos (secciones nuevas) --- */

.plan-chip {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px 10px 10px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: rgba(255, 253, 248, 0.88);
}

.plan-chip .brand-logo-placeholder {
    width: 40px;
    height: 40px;
    font-size: 14px;
}

.plan-chip strong,
.plan-chip small {
    display: block;
}

.plan-chip strong {
    font-size: 13px;
}

.plan-chip small {
    color: var(--muted);
    font-size: 11px;
}

.negocio-banner,
.tienda-prep-banner,
.mapa-vivo,
.catalogo-prep {
    display: flex;
    margin-bottom: 22px;
    padding: 28px 30px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: linear-gradient(135deg, #f6ebe1 0%, #f3e7db 100%);
}

.negocio-banner h2,
.tienda-prep-banner strong,
.mapa-vivo h2,
.catalogo-prep .eyebrow + p {
    margin: 0 0 8px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(24px, 3vw, 34px);
}

.negocio-banner p,
.tienda-prep-banner p,
.mapa-vivo p,
.catalogo-prep p {
    margin: 0;
    max-width: 640px;
    color: var(--muted);
}

.catalogo-panel {
    margin-bottom: 80px;
    padding: 28px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--surface);
}

.catalogo-heading {
    display: flex;
    margin-bottom: 22px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
}

.catalogo-heading h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(28px, 3vw, 40px);
}

.catalogo-search {
    display: flex;
    flex: 1 1 280px;
    max-width: 360px;
    gap: 10px;
}

.catalogo-search input[type="search"] {
    width: 100%;
    min-height: 46px;
    padding: 10px 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.tienda-hero {
    display: grid;
    margin-bottom: 18px;
    padding: 34px;
    grid-template-columns: minmax(0, 1.4fr) auto;
    gap: 24px;
    align-items: center;
    border: 1px solid var(--line);
    border-radius: 18px;
    background:
        radial-gradient(circle at 90% 20%, rgba(217, 101, 50, 0.18), transparent 42%),
        linear-gradient(145deg, #2a241f 0%, #3a312a 100%);
    color: #fffdf8;
}

.tienda-hero .eyebrow,
.lesson-banner .eyebrow.light {
    color: #f0b898;
}

.tienda-hero h2,
.lesson-banner h2 {
    margin: 0 0 12px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(28px, 3.4vw, 42px);
    color: #fffdf8;
}

.tienda-hero p,
.lesson-banner p {
    margin: 0;
    max-width: 620px;
    color: rgba(255, 253, 248, 0.78);
}

.tienda-checks {
    display: flex;
    margin: 18px 0 0;
    padding: 0;
    flex-wrap: wrap;
    gap: 10px 18px;
    list-style: none;
    color: rgba(255, 253, 248, 0.9);
    font-size: 13px;
}

.tienda-seal {
    display: grid;
    width: 96px;
    height: 96px;
    place-items: center;
    border: 1px solid rgba(255, 253, 248, 0.35);
    border-radius: 50%;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 28px;
    font-weight: 700;
}

.button-mercadolibre {
    display: inline-flex;
    min-width: 180px;
    padding: 14px 18px;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    border: 0;
    border-radius: 10px;
    background: #ffe600;
    color: #2a241f;
    text-decoration: none;
}

.button-mercadolibre small {
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.button-mercadolibre strong {
    font-size: 15px;
}

.button-mercadolibre.button-disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.mapa-vivo-copy {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.mapa-badge {
    display: grid;
    width: 48px;
    height: 48px;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid var(--ink);
    border-radius: 50%;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 700;
}

.unidad-hero {
    display: flex;
    width: min(1180px, calc(100% - 40px));
    margin: 28px auto 22px;
    padding: 34px 36px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    border-radius: 18px;
    background: #1d1916;
    color: #fffdf8;
}

.unidad-hero .eyebrow,
.unidad-hero .back-link.light {
    color: #f0b898;
}

.unidad-hero h1 {
    margin: 8px 0 10px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(36px, 5vw, 56px);
    color: #fffdf8;
}

.unidad-hero p {
    margin: 0;
    max-width: 520px;
    color: rgba(255, 253, 248, 0.78);
}

.unidad-progress {
    min-width: 220px;
    text-align: right;
}

.unidad-progress span {
    display: block;
    margin-bottom: 10px;
    color: #f0b898;
    font-size: 13px;
}

.unidad-progress small {
    display: block;
    margin-top: 8px;
    color: rgba(255, 253, 248, 0.65);
}

.progress-bar {
    width: 100%;
    height: 6px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 253, 248, 0.18);
}

.progress-bar span {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    background: var(--accent);
}

.lecciones-grid .leccion-card {
    position: relative;
    min-height: 240px;
}

.leccion-card .status-chip,
.leccion-card .coming-soon {
    position: absolute;
    top: 22px;
    right: 22px;
}

.leccion-card.is-locked {
    opacity: 0.72;
}

.regional-search-panel {
    margin-bottom: 22px;
}

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

.regional-count {
    margin: 0 0 14px;
    color: var(--muted);
    font-size: 13px;
}

.regional-card-top {
    display: flex;
    margin-bottom: 10px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.regional-ref {
    margin: 0 0 12px;
    padding: 10px 12px;
    border-radius: 8px;
    background: var(--paper-deep);
    font-size: 13px;
}

.status-confirmada {
    background: #e5f2e4;
    color: #2f6b34;
}

.status-uso {
    background: var(--accent-soft);
    color: var(--accent-dark);
}

.status-aproximada {
    background: #eee9e1;
    color: #6a6258;
}

.regional-contribute {
    display: grid;
    margin-bottom: 80px;
    grid-template-columns: minmax(0, 0.95fr) minmax(280px, 1.05fr);
    gap: 18px;
    align-items: start;
}

.regional-contribute-intro,
.estado-legend {
    margin: 0;
}

.estado-legend {
    display: grid;
    margin-top: 22px;
    padding: 0;
    gap: 12px;
    list-style: none;
}

.estado-legend li {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--muted);
    font-size: 13px;
}

.lesson-topbar {
    display: flex;
    width: min(1180px, calc(100% - 40px));
    margin: 28px auto 0;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.lesson-header {
    padding-top: 18px;
}

.lesson-banner {
    display: flex;
    margin-bottom: 22px;
    padding: 28px 30px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    border-radius: 16px;
    background: #221c18;
    color: #fffdf8;
}

.lesson-banner-line {
    width: min(180px, 28vw);
    height: 2px;
    background: rgba(255, 253, 248, 0.75);
}

.lesson-layout {
    display: grid;
    margin-bottom: 28px;
    grid-template-columns: minmax(0, 1.55fr) minmax(240px, 0.55fr);
    gap: 18px;
    align-items: start;
}

.lesson-main,
.lesson-sidebar {
    display: grid;
    gap: 16px;
}

.lesson-block,
.sidebar-card,
.cuarto-card,
.signal-card,
.example-card,
.lamina-panel {
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface);
}

.lesson-block h2,
.sidebar-card h3,
.signal-card h3,
.example-copy h3,
.lamina-group h3,
.cuarto-card h3 {
    margin: 0 0 12px;
    font-family: Georgia, "Times New Roman", serif;
}

.lesson-block p,
.signal-card p,
.example-copy p,
.cuarto-card p,
.sidebar-card p,
.sidebar-card ul {
    margin: 0;
    color: var(--muted);
    font-size: 14px;
}

.sidebar-card ul {
    padding-left: 18px;
}

.sidebar-card li + li {
    margin-top: 8px;
}

.sidebar-clave {
    background: var(--accent);
    border-color: var(--accent-dark);
    color: #fffdf8;
}

.sidebar-clave .eyebrow,
.sidebar-clave p {
    color: #fffdf8;
}

.principio-box {
    padding: 22px 24px;
    border-left: 3px solid var(--accent);
    border-radius: 12px;
    background: #221c18;
    color: #fffdf8;
}

.principio-box .eyebrow.accent {
    color: #f0b898;
}

.principio-box p {
    margin: 0;
    color: rgba(255, 253, 248, 0.88);
}

.lamina-grid {
    display: grid;
    margin: 18px 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.lamina-group {
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: rgba(247, 243, 235, 0.55);
}

.lamina-group h3 {
    color: var(--accent-dark);
    font-size: 14px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.lamina-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-top: 8px;
    border-top: 1px solid var(--line);
}

.lamina-footer p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}

.cuartos-grid,
.signal-grid,
.example-grid {
    display: grid;
    gap: 14px;
}

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

.signal-number {
    display: block;
    margin-bottom: 10px;
    color: var(--accent);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
}

.example-placeholder {
    display: grid;
    aspect-ratio: 4 / 3;
    place-items: center;
    background:
        linear-gradient(160deg, #2a241f 0%, #3d342c 55%, #1d1916 100%);
    color: rgba(255, 253, 248, 0.72);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
    text-align: center;
}

.example-placeholder::after {
    content: attr(data-label);
}

.example-card {
    overflow: hidden;
    padding: 0;
}

.example-copy {
    padding: 16px 18px 18px;
}

.observaciones-lista,
.errores-lista {
    margin: 0;
    padding: 0;
    list-style: none;
}

.observaciones-lista li,
.errores-lista li {
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: rgba(247, 243, 235, 0.45);
    font-size: 14px;
}

.observaciones-lista li + li,
.errores-lista li + li {
    margin-top: 10px;
}

.lesson-nav {
    display: flex;
    margin-bottom: 80px;
    padding: 22px 26px;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface);
}

.lesson-nav-split {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
}

.lesson-nav .eyebrow {
    margin-bottom: 4px;
}

.lesson-nav strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
}

.muted-copy {
    margin: 0 0 12px;
    color: var(--muted);
    font-size: 14px;
}

.cooking-cards {
    display: grid;
    margin-top: 16px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.cooking-card {
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: rgba(247, 243, 235, 0.45);
}

.cooking-card h3 {
    margin: 0 0 10px;
    font-family: Georgia, "Times New Roman", serif;
}

.cooking-card p {
    margin: 0;
    color: var(--muted);
    font-size: 14px;
}

.decision-table-wrap {
    margin-top: 16px;
    overflow-x: auto;
}

.decision-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.decision-table th,
.decision-table td {
    padding: 14px 16px;
    border: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}

.decision-table th {
    background: #221c18;
    color: #fffdf8;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 600;
}

.decision-table td {
    background: rgba(247, 243, 235, 0.45);
    color: var(--muted);
}

.safety-callout {
    margin-top: 18px;
    padding: 18px 20px;
    border: 1px solid rgba(217, 101, 50, 0.35);
    border-radius: 12px;
    background: var(--accent-soft);
}

.safety-callout .eyebrow {
    color: var(--accent-dark);
}

.safety-callout p:last-child {
    margin: 0;
    color: var(--ink);
    font-size: 14px;
}

.control-lista {
    margin: 0;
    padding: 0;
    list-style: none;
}

.control-lista li {
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-left: 3px solid var(--accent);
    border-radius: 10px;
    background: rgba(247, 243, 235, 0.45);
    font-size: 14px;
}

.control-lista li + li {
    margin-top: 10px;
}

.unit-complete-box {
    border-color: var(--accent-dark);
    background: #221c18;
    color: #fffdf8;
}

.unit-complete-box .eyebrow,
.unit-complete-box h3,
.unit-complete-box p {
    color: #fffdf8;
}

.unit-complete-box .eyebrow {
    color: #f0b898;
}

@media (max-width: 1050px) {
    .unidad-hero,
    .lesson-layout,
    .regional-contribute,
    .tienda-hero,
    .negocio-banner,
    .mapa-vivo,
    .catalogo-prep,
    .tienda-prep-banner,
    .lesson-nav,
    .lesson-nav-split,
    .lamina-footer {
        grid-template-columns: 1fr;
        flex-direction: column;
        align-items: stretch;
        text-align: left;
    }

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

    .unidad-progress,
    .catalogo-search {
        max-width: none;
        text-align: left;
    }

    .lesson-nav-split {
        display: flex;
    }
}

@media (max-width: 760px) {
    .unidad-hero,
    .lesson-topbar {
        width: min(100% - 28px, 1180px);
    }

    .lamina-grid,
    .cuartos-grid,
    .signal-grid,
    .example-grid,
    .cooking-cards,
    .catalogo-heading,
    .regional-search-panel .regional-grid {
        grid-template-columns: 1fr;
        flex-direction: column;
        align-items: stretch;
    }

    .plan-chip {
        align-self: flex-start;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        transition-duration: 0.01ms !important;
    }
}
