/* ============================================================
   VitaSavia — Stylesheet
   ============================================================ */

:root {
    --pv-dark:       #0f1a0e;
    --pv-dark2:      #1a2b19;
    --pv-green:      #2d6a2d;
    --pv-green-light:#3a8c3a;
    --pv-gold:       #c9a84c;
    --pv-gold-light: #e8c96a;
    --pv-cream:      #f5f0e8;
    --pv-cream2:     #ede6d6;
    --pv-text:       #1e1e1e;
    --pv-muted:      #6b7280;
    --font-display:  'Cinzel', serif;
    --font-body:     'Lato', sans-serif;
    --radius:        12px;
    --shadow:        0 4px 20px rgba(0,0,0,.12);
    --shadow-lg:     0 8px 40px rgba(0,0,0,.18);
}

/* ── Base ─────────────────────────────────────────────────── */
* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    font-family: var(--font-body);
    color: var(--pv-text);
    background: #fff;
    line-height: 1.7;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

h1, h2, h3, .brand-name, .section-title {
    font-family: var(--font-display);
    font-weight: 600;
    letter-spacing: .03em;
}

a { color: var(--pv-green); text-decoration: none; }
a:hover { color: var(--pv-green-light); }

/* ── Brand ────────────────────────────────────────────────── */
.brand-logo { font-size: 1.4rem; }
.brand-name {
    font-family: var(--font-display);
    font-size: 1.4rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: .05em;
    margin-left: .3rem;
}

/* ── Navbar ───────────────────────────────────────────────── */
.navbar-pv {
    background: var(--pv-dark);
    border-bottom: 1px solid rgba(201,168,76,.2);
    padding: .75rem 0;
    z-index: 1030;
}

.navbar-pv .nav-link {
    color: rgba(255,255,255,.8) !important;
    font-weight: 400;
    font-size: .9rem;
    padding: .4rem .8rem;
    border-radius: 6px;
    transition: all .2s;
}

.navbar-pv .nav-link:hover,
.navbar-pv .nav-link.active {
    color: var(--pv-gold) !important;
    background: rgba(201,168,76,.08);
}

.navbar-toggler { border-color: rgba(255,255,255,.3); }
.navbar-toggler-icon { filter: invert(1); }

/* ── Buttons ──────────────────────────────────────────────── */
.btn-gold {
    background: var(--pv-gold);
    color: var(--pv-dark) !important;
    border: none;
    font-weight: 700;
    border-radius: var(--radius);
    transition: all .25s;
}
.btn-gold:hover {
    background: var(--pv-gold-light);
    transform: translateY(-1px);
    box-shadow: 0 4px 15px rgba(201,168,76,.4);
}

.btn-green {
    background: var(--pv-green);
    color: #fff !important;
    border: none;
    font-weight: 700;
    border-radius: var(--radius);
    transition: all .25s;
}
.btn-green:hover {
    background: var(--pv-green-light);
    transform: translateY(-1px);
}

.btn-outline-gold {
    border: 2px solid var(--pv-gold);
    color: var(--pv-gold) !important;
    background: transparent;
    font-weight: 700;
    border-radius: var(--radius);
    transition: all .25s;
}
.btn-outline-gold:hover {
    background: var(--pv-gold);
    color: var(--pv-dark) !important;
}

/* ── Hero ─────────────────────────────────────────────────── */
.hero-section {
    background: linear-gradient(135deg, var(--pv-dark) 0%, var(--pv-dark2) 60%, #1e3a1e 100%);
    min-height: 92vh;
    display: flex;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.hero-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23c9a84c' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

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

.hero-eyebrow {
    color: var(--pv-gold);
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.hero-title {
    font-family: var(--font-display);
    font-size: clamp(2.2rem, 5vw, 4rem);
    font-weight: 700;
    color: #fff;
    line-height: 1.2;
    margin-bottom: 1.5rem;
}

.hero-title span { color: var(--pv-gold); }

.hero-subtitle {
    font-size: 1.1rem;
    color: rgba(255,255,255,.75);
    max-width: 560px;
    margin-bottom: 2.5rem;
    font-weight: 300;
}

.hero-stats {
    display: flex;
    gap: 2rem;
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(255,255,255,.1);
}
.hero-stat-num {
    font-family: var(--font-display);
    font-size: 1.8rem;
    color: var(--pv-gold);
    font-weight: 700;
}
.hero-stat-label { font-size: .8rem; color: rgba(255,255,255,.55); }

.hero-pillars {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}
.hero-pillar {
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(201,168,76,.2);
    border-radius: var(--radius);
    padding: 1.25rem;
    transition: all .3s;
}
.hero-pillar:hover {
    background: rgba(201,168,76,.08);
    border-color: rgba(201,168,76,.4);
    transform: translateY(-2px);
}
.hero-pillar-icon { font-size: 1.8rem; margin-bottom: .5rem; display: block; }
.hero-pillar-name { font-size: .85rem; color: rgba(255,255,255,.8); font-weight: 700; }
.hero-pillar-desc { font-size: .75rem; color: rgba(255,255,255,.5); margin: 0; }

/* ── Section styles ───────────────────────────────────────── */
.section-light  { background: #fff; }
.section-cream  { background: var(--pv-cream); }
.section-dark   { background: var(--pv-dark); color: #fff; }
.section-dark2  { background: var(--pv-dark2); color: #fff; }

.section-eyebrow {
    color: var(--pv-gold);
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
    display: block;
    margin-bottom: .75rem;
}
.section-title {
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    font-weight: 700;
    line-height: 1.25;
    margin-bottom: 1rem;
}
.section-subtitle {
    color: var(--pv-muted);
    font-size: 1rem;
    max-width: 600px;
    margin: 0 auto;
}

/* ── Cards ────────────────────────────────────────────────── */
.card-pv {
    border: 1px solid #e5e7eb;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    transition: all .3s;
    overflow: hidden;
    /* height:100% solo cuando Bootstrap lo pide explícitamente con .h-100 */
}
.card-pv:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
    border-color: var(--pv-green);
}

.card-pv .card-body { padding: 1.5rem; }

.card-category-badge {
    display: inline-block;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: .25rem .7rem;
    border-radius: 20px;
    margin-bottom: .75rem;
    background: rgba(45,106,45,.1);
    color: var(--pv-green);
}

.card-pv .card-title {
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--pv-text);
    margin-bottom: .5rem;
}

.card-pv .card-text {
    font-size: .9rem;
    color: var(--pv-muted);
}

/* How it works */
.step-card {
    text-align: center;
    padding: 2rem 1.5rem;
}
.step-number {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, var(--pv-green), var(--pv-green-light));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 1.4rem;
    font-weight: 700;
    color: #fff;
    margin: 0 auto 1.25rem;
    box-shadow: 0 4px 15px rgba(45,106,45,.3);
}
.step-title {
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: .5rem;
}
.step-desc { font-size: .88rem; color: rgba(255,255,255,.65); }

/* ── Forms ────────────────────────────────────────────────── */
.form-pv { background: #fff; border-radius: var(--radius); padding: 2rem; box-shadow: var(--shadow); }

.form-pv .form-label { font-weight: 700; font-size: .9rem; color: var(--pv-text); margin-bottom: .35rem; }

.form-pv .form-control,
.form-pv .form-select {
    border: 1.5px solid #d1d5db;
    border-radius: 8px;
    padding: .6rem .9rem;
    font-size: .9rem;
    transition: all .2s;
}
.form-pv .form-control:focus,
.form-pv .form-select:focus {
    border-color: var(--pv-green);
    box-shadow: 0 0 0 3px rgba(45,106,45,.12);
}

.form-step { display: none; }
.form-step.active { display: block; }

.step-indicator {
    display: flex;
    gap: .5rem;
    margin-bottom: 2rem;
    align-items: center;
}
.step-dot {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .78rem;
    font-weight: 700;
    background: #e5e7eb;
    color: #6b7280;
    transition: all .3s;
    flex-shrink: 0;
}
.step-dot.active { background: var(--pv-green); color: #fff; }
.step-dot.done { background: var(--pv-gold); color: var(--pv-dark); }
.step-line { flex: 1; height: 2px; background: #e5e7eb; border-radius: 2px; }
.step-line.done { background: var(--pv-gold); }

.symptom-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: .5rem;
}
.symptom-check {
    border: 1.5px solid #d1d5db;
    border-radius: 8px;
    padding: .5rem .75rem;
    cursor: pointer;
    transition: all .2s;
    font-size: .85rem;
    display: flex;
    align-items: center;
    gap: .5rem;
    user-select: none;
}
.symptom-check:hover { border-color: var(--pv-green); background: rgba(45,106,45,.04); }
.symptom-check.selected { border-color: var(--pv-green); background: rgba(45,106,45,.1); color: var(--pv-green); font-weight: 700; }
.symptom-check input { display: none; }

/* ── Resultado valoración ─────────────────────────────────── */
.result-header {
    background: linear-gradient(135deg, var(--pv-dark), var(--pv-dark2));
    color: #fff;
    border-radius: var(--radius);
    padding: 2.5rem;
    margin-bottom: 2rem;
    text-align: center;
}

.score-circle {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    border: 5px solid;
}
.score-circle.excelente { border-color: #22c55e; background: rgba(34,197,94,.1); }
.score-circle.bueno     { border-color: #84cc16; background: rgba(132,204,22,.1); }
.score-circle.moderado  { border-color: #f59e0b; background: rgba(245,158,11,.1); }
.score-circle.bajo      { border-color: #f97316; background: rgba(249,115,22,.1); }
.score-circle.critico   { border-color: #ef4444; background: rgba(239,68,68,.1); }

.score-num {
    font-family: var(--font-display);
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1;
}
.score-label { font-size: .75rem; opacity: .7; }

.rec-card {
    border-left: 4px solid var(--pv-green);
    background: #fff;
    border-radius: 0 var(--radius) var(--radius) 0;
    padding: 1.5rem;
    margin-bottom: 1rem;
    box-shadow: var(--shadow);
}
.rec-card.alta   { border-left-color: #ef4444; }
.rec-card.media  { border-left-color: #f59e0b; }
.rec-card.baja   { border-left-color: #22c55e; }

.rec-pilar {
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--pv-muted);
    margin-bottom: .25rem;
}
.rec-titulo { font-family: var(--font-display); font-size: 1rem; font-weight: 600; margin-bottom: .4rem; }
.rec-texto { font-size: .88rem; color: var(--pv-muted); margin: 0; }

/* ── Analítica results ────────────────────────────────────── */
.marker-row {
    background: #fff;
    border-radius: var(--radius);
    padding: 1.25rem 1.5rem;
    margin-bottom: .75rem;
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
    border-left: 4px solid #e5e7eb;
}
.marker-row.success { border-left-color: #22c55e; }
.marker-row.info    { border-left-color: #0ea5e9; }
.marker-row.warning { border-left-color: #f59e0b; }
.marker-row.danger  { border-left-color: #ef4444; }

.marker-name { font-weight: 700; font-size: .9rem; }
.marker-value { font-family: var(--font-display); font-size: 1.3rem; font-weight: 700; }
.marker-unit  { font-size: .75rem; color: var(--pv-muted); }
.marker-badge { font-size: .72rem; font-weight: 700; padding: .2rem .6rem; border-radius: 20px; }

.ratio-card {
    background: linear-gradient(135deg, var(--pv-dark), var(--pv-dark2));
    color: #fff;
    border-radius: var(--radius);
    padding: 2rem;
    text-align: center;
    margin-bottom: 2rem;
}

/* ── Reservas ─────────────────────────────────────────────── */
.booking-sidebar {
    background: var(--pv-dark);
    color: #fff;
    border-radius: var(--radius);
    padding: 2rem;
    position: sticky;
    top: 90px;
}
.booking-sidebar h5 { font-family: var(--font-display); color: var(--pv-gold); }

.slot-btn {
    border: 1.5px solid rgba(201,168,76,.45);
    background: #fff;
    color: var(--pv-dark);
    border-radius: 8px;
    padding: .4rem .8rem;
    font-size: .85rem;
    font-weight: 700;
    cursor: pointer;
    transition: all .2s;
    box-shadow: 0 4px 14px rgba(15,26,14,.06);
}
.slot-btn:hover, .slot-btn.selected {
    background: var(--pv-gold);
    color: var(--pv-dark);
    border-color: var(--pv-gold);
    font-weight: 700;
}

.session-type-card {
    border: 2px solid #e5e7eb;
    border-radius: var(--radius);
    padding: 1.25rem;
    cursor: pointer;
    transition: all .25s;
    text-align: center;
}
.session-type-card:hover { border-color: var(--pv-green); }
.session-type-card.selected { border-color: var(--pv-green); background: rgba(45,106,45,.06); }
.session-type-card .icon { font-size: 2rem; margin-bottom: .5rem; display: block; }
.session-type-card .name { font-weight: 700; font-size: .9rem; }
.session-type-card .price { color: var(--pv-green); font-weight: 700; font-size: 1.1rem; }

/* ── Auth pages ───────────────────────────────────────────── */
.auth-wrapper {
    min-height: calc(100vh - var(--pv-nav-height, 74px));
    background: linear-gradient(135deg, var(--pv-dark) 0%, var(--pv-dark2) 100%);
    display: flex;
    align-items: center;
    padding: 2rem;
}
.auth-card {
    background: #fff;
    border-radius: var(--radius);
    padding: 2.5rem;
    width: 100%;
    max-width: 440px;
    margin: 0 auto;
    box-shadow: var(--shadow-lg);
}
.auth-logo {
    text-align: center;
    margin-bottom: 2rem;
}
.auth-logo .brand-name { color: var(--pv-dark); font-size: 1.8rem; }

/* ── Disclaimer ───────────────────────────────────────────── */
.disclaimer-text {
    font-size: .75rem;
    color: rgba(255,255,255,.45);
    line-height: 1.5;
}
.alert-disclaimer {
    background: rgba(245,158,11,.08);
    border: 1px solid rgba(245,158,11,.25);
    border-radius: 8px;
    padding: .75rem 1rem;
    font-size: .85rem;
    color: #92400e;
    margin-top: 1.5rem;
}

/* ── Educación ────────────────────────────────────────────── */
.cat-filter { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 2rem; }
.cat-btn {
    padding: .35rem .9rem;
    border-radius: 20px;
    border: 1.5px solid #d1d5db;
    background: transparent;
    font-size: .82rem;
    font-weight: 700;
    cursor: pointer;
    transition: all .2s;
    color: var(--pv-muted);
}
.cat-btn:hover, .cat-btn.active {
    background: var(--pv-green);
    border-color: var(--pv-green);
    color: #fff;
}

.article-content h3 { font-family: var(--font-display); color: var(--pv-green); margin-top: 2rem; }
.article-content ul li { margin-bottom: .4rem; }
.article-content strong { color: var(--pv-text); }

/* ── Admin ────────────────────────────────────────────────── */
.admin-sidebar {
    background: var(--pv-dark);
    min-height: 100vh;
    width: 250px;
    padding: 1.5rem;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
}
.admin-main { margin-left: 250px; padding: 2rem; }
.admin-nav-link {
    color: rgba(255,255,255,.7);
    padding: .6rem 1rem;
    border-radius: 8px;
    display: block;
    font-size: .88rem;
    margin-bottom: .25rem;
    transition: all .2s;
}
.admin-nav-link:hover, .admin-nav-link.active { background: rgba(201,168,76,.15); color: var(--pv-gold) !important; }
.admin-nav-link i { margin-right: .5rem; }

.stat-card {
    background: #fff;
    border-radius: var(--radius);
    padding: 1.5rem;
    box-shadow: var(--shadow);
    border-left: 4px solid var(--pv-green);
}
.stat-card .stat-num { font-family: var(--font-display); font-size: 2rem; font-weight: 700; color: var(--pv-green); }
.stat-card .stat-label { font-size: .82rem; color: var(--pv-muted); }

/* ── Estado badges ────────────────────────────────────────── */
.badge-pendiente_pago { background: #fef3c7; color: #92400e; }
.badge-confirmada     { background: #d1fae5; color: #065f46; }
.badge-cancelada      { background: #fee2e2; color: #991b1b; }
.badge-completada     { background: #e0e7ff; color: #3730a3; }

/* ── Save result banner ───────────────────────────────────── */
.save-banner {
    background: linear-gradient(135deg, var(--pv-dark), var(--pv-dark2));
    color: #fff;
    border-radius: var(--radius);
    padding: 1.75rem 2rem;
    margin-top: 2rem;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}
.save-banner .save-text { flex: 1; }
.save-banner .save-text h5 { font-family: var(--font-display); color: var(--pv-gold); margin-bottom: .25rem; }
.save-banner .save-text p { font-size: .88rem; color: rgba(255,255,255,.7); margin: 0; }

/* ── Perfil ───────────────────────────────────────────────── */
.historial-item {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: var(--radius);
    padding: 1.25rem 1.5rem;
    margin-bottom: .75rem;
    cursor: pointer;
    transition: all .2s;
}
.historial-item:hover { border-color: var(--pv-green); box-shadow: var(--shadow); }
.historial-date { font-size: .78rem; color: var(--pv-muted); }
.historial-score { font-family: var(--font-display); font-size: 1.3rem; font-weight: 700; color: var(--pv-green); }

/* ── Footer ───────────────────────────────────────────────── */
.footer-main {
    background: var(--pv-dark);
    color: rgba(255,255,255,.75);
    margin-top: auto;
}
.footer-brand { display: flex; align-items: center; gap: .3rem; }
.footer-heading {
    font-family: var(--font-display);
    font-size: .85rem;
    font-weight: 700;
    color: var(--pv-gold);
    text-transform: uppercase;
    letter-spacing: .1em;
    margin-bottom: 1rem;
}
.footer-links li a {
    color: rgba(255,255,255,.6);
    font-size: .85rem;
    transition: color .2s;
    display: block;
    padding: .15rem 0;
}
.footer-links li a:hover { color: var(--pv-gold); }
.footer-divider { border-color: rgba(255,255,255,.1); }

/* ── Utilities ────────────────────────────────────────────── */
.text-gold   { color: var(--pv-gold) !important; }
.text-green  { color: var(--pv-green) !important; }
.bg-pv-dark  { background: var(--pv-dark) !important; }
.bg-pv-cream { background: var(--pv-cream) !important; }

.divider-gold {
    width: 60px;
    height: 3px;
    background: var(--pv-gold);
    border-radius: 2px;
    margin: 1rem auto;
}

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 768px) {
    .hero-stats  { flex-wrap: wrap; gap: 1rem; }
    .hero-pillars { grid-template-columns: 1fr 1fr; }
    .admin-sidebar { width: 100%; min-height: auto; position: static; }
    .admin-main  { margin-left: 0; }
    .save-banner { flex-direction: column; text-align: center; }
}

/* VITASAVIA v1.2 - UX analiticas y rutas limpias */
.pv-hero-mini{background:linear-gradient(135deg,var(--pv-dark),var(--pv-dark2));padding:3rem 0}.hero-copy{color:rgba(255,255,255,.72);max-width:760px}.pv-soft-alert{background:rgba(201,168,76,.1);border:1px solid rgba(201,168,76,.3);border-radius:14px}.pv-form-title{font-family:var(--font-display);margin-bottom:.35rem}.pv-subtitle{font-family:var(--font-display);color:var(--pv-green);font-weight:700;letter-spacing:.02em}.pv-pro-box{border-style:dashed!important;background:linear-gradient(180deg,#fff,rgba(255,255,255,.72))}.pv-live-ratio{font-family:var(--font-display);font-size:2.8rem;font-weight:800;color:var(--pv-gold);line-height:1}.pv-mini-metric{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;border:1px solid rgba(45,106,45,.16);background:rgba(45,106,45,.06);border-radius:12px;padding:.9rem 1rem}.pv-mini-metric span{font-weight:700;color:var(--pv-dark)}.pv-mini-metric strong{font-family:var(--font-display);font-size:1.6rem;color:var(--pv-green)}.pv-mini-metric small{color:var(--pv-muted)}.sticky-submit-bar{position:sticky;bottom:0;z-index:30;background:rgba(250,247,239,.92);backdrop-filter:blur(10px);border:1px solid rgba(201,168,76,.22);border-radius:18px;padding:1rem;margin-top:1.4rem;box-shadow:0 -12px 30px rgba(31,42,31,.08)}.analysis-result-wrapper{scroll-margin-top:110px}.pv-result-number{font-family:var(--font-display);font-size:2.6rem;font-weight:800}.pv-result-label{font-size:.82rem;color:rgba(255,255,255,.72)}.pv-insight-card{height:100%;display:flex;gap:.85rem;border:1px solid #e5e7eb;border-radius:14px;background:#fff;padding:1rem}.pv-insight-card p{margin:.35rem 0 0;color:var(--pv-muted);font-size:.86rem}.pv-insight-icon{font-size:1.7rem;line-height:1}.pv-insight-card.prioridad-alta{border-color:rgba(239,68,68,.25);background:rgba(239,68,68,.035)}.pv-insight-card.prioridad-media{border-color:rgba(245,158,11,.28);background:rgba(245,158,11,.045)}.pv-group-title{font-family:var(--font-display);font-weight:800;color:var(--pv-dark);margin:1.3rem 0 .65rem;padding-left:.7rem;border-left:4px solid var(--pv-gold)}.pv-next-steps{padding-left:1.2rem;color:var(--pv-muted)}.pv-next-steps li{margin-bottom:.5rem}.pv-ajax-toast{border-radius:12px;padding:.85rem 1rem;margin-bottom:1rem;border:1px solid rgba(34,197,94,.25);background:rgba(34,197,94,.08);color:#166534}.pv-ajax-toast.error{border-color:rgba(239,68,68,.28);background:rgba(239,68,68,.08);color:#991b1b}.btn-loading{pointer-events:none;opacity:.75}

/* VITASAVIA v1.3 - cabecera fija, offcanvas móvil y aire visual */
:root { --pv-nav-height: 74px; }
body { padding-top: var(--pv-nav-height); }
.navbar-pv.fixed-top {
    box-shadow: 0 10px 30px rgba(15,26,14,.16);
}
.navbar-pv .navbar-brand { min-height: 44px; }
.navbar-pv-offcanvas {
    background: var(--pv-dark);
    color: #fff;
}
.navbar-pv-offcanvas .offcanvas-body { gap: 1rem; }
.navbar-pv-offcanvas .dropdown-menu {
    border: 1px solid rgba(201,168,76,.16);
    box-shadow: 0 18px 45px rgba(0,0,0,.22);
}
section,
.pv-hero-mini,
.section-light,
.section-cream,
.section-dark,
.section-dark2 {
    scroll-margin-top: calc(var(--pv-nav-height) + 24px);
}
section.section-light,
section.section-cream,
section.section-dark,
section.section-dark2 {
    padding-top: 5rem !important;
    padding-bottom: 5rem !important;
}
.hero-section {
    min-height: calc(92vh - var(--pv-nav-height));
    padding-top: 4.5rem;
    padding-bottom: 4.5rem;
}
.pv-hero-mini { padding-top: 4.5rem !important; padding-bottom: 4.5rem !important; }
.form-pv, .card-pv, .ratio-card, .result-header { margin-top: .5rem; margin-bottom: .5rem; }

@media (min-width: 992px) {
    .navbar-pv-offcanvas .offcanvas-body { display: flex; padding: 0; overflow: visible; }
}

@media (max-width: 991.98px) {
    :root { --pv-nav-height: 66px; }
    .navbar-pv { padding: .55rem 0; }
    .navbar-pv-offcanvas {
        width: min(86vw, 360px) !important;
        background: linear-gradient(180deg, var(--pv-dark), var(--pv-dark2));
        border-left: 1px solid rgba(201,168,76,.24);
    }
    .navbar-pv-offcanvas .offcanvas-header {
        border-bottom: 1px solid rgba(255,255,255,.09);
        padding: 1rem 1.25rem;
    }
    .navbar-pv-offcanvas .offcanvas-body {
        padding: 1.25rem;
    }
    .navbar-pv .nav-link {
        padding: .85rem 1rem;
        border-radius: 12px;
        font-size: 1rem;
    }
    .navbar-pv .dropdown-menu {
        position: static !important;
        transform: none !important;
        margin: .25rem 0 .75rem;
        border-radius: 14px;
        background: rgba(0,0,0,.18);
    }
    .navbar-auth .btn { width: 100%; }
    .hero-section,
    .pv-hero-mini {
        padding-top: 3.25rem !important;
        padding-bottom: 3.25rem !important;
    }
    section.section-light,
    section.section-cream,
    section.section-dark,
    section.section-dark2 {
        padding-top: 3.5rem !important;
        padding-bottom: 3.5rem !important;
    }
}

@media (max-width: 575.98px) {
    .hero-pillars { grid-template-columns: 1fr; }
    .hero-stats { margin-top: 2rem; padding-top: 1.5rem; }
    .form-pv { padding: 1.25rem; }
    .section-title { line-height: 1.32; }
}


/* VITASAVIA v1.5 - Reservas gratuitas y horarios claros */
.session-type-card .session-note {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .25rem .65rem;
    border-radius: 999px;
    background: rgba(212, 175, 55, .12);
    color: var(--pv-gold);
    font-size: .72rem;
    font-weight: 700;
}
#slots-container .alert {
    border-radius: 12px;
}

/* v1.7 - Artículos y SEO */
.article-card-img{
    width:100%;
    aspect-ratio:1/1;
    object-fit:cover;
    display:block;
    border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
.article-hero-img{
    width:100%;
    aspect-ratio:1/1;
    object-fit:cover;
    border-radius:var(--radius-xl);
    box-shadow:var(--shadow-lg);
}
.article-admin-thumb{
    width:120px;
    height:120px;
    object-fit:cover;
    border-radius:1rem;
    border:1px solid #e5e7eb;
}
.article-admin-thumb-sm{
    width:56px;
    height:56px;
    object-fit:cover;
    border-radius:.75rem;
    border:1px solid #e5e7eb;
    flex:none;
}
.admin-list-row{
    border-bottom:1px solid #f3f4f6;
    padding:.85rem 0;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:.75rem;
    flex-wrap:wrap;
}

/* Campo antispam invisible para formularios públicos */
.pv-hp-field {
    position: absolute !important;
    left: -9999px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}


/* VITASAVIA v1.9 - Lectura de artículos y horarios */
.article-content {
    font-size: 1.03rem;
    line-height: 1.85;
}
.article-content h2,
.article-content h3 {
    margin-top: 2.25rem;
    margin-bottom: 1rem;
}
.article-content p,
.article-content ul,
.article-content ol {
    margin-bottom: 1.15rem;
}
#slots-container .slot-btn {
    color: var(--pv-dark) !important;
}
#slots-container .slot-btn:hover,
#slots-container .slot-btn.selected {
    color: var(--pv-dark) !important;
}


/* VITASAVIA v2.0 - Marca y logo */
.brand-img{display:block;width:auto;height:54px;max-width:255px;object-fit:contain;}
.navbar-pv .navbar-brand{padding:0;margin-right:1.5rem;}
.brand-img-offcanvas{height:56px;max-width:245px;}
.footer-brand-img{display:block;width:min(280px,100%);height:auto;}
.auth-brand-img{display:block;max-width:280px;width:100%;height:auto;margin:0 auto;}
.admin-brand-img{display:block;width:190px;max-width:100%;height:auto;}
@media (max-width:991.98px){.brand-img{height:46px;max-width:215px}.brand-img-offcanvas{height:48px;max-width:220px}.navbar-pv .navbar-brand{margin-right:.75rem}}
@media (max-width:380px){.brand-img{height:40px;max-width:185px}}

/* VITASAVIA v2.6 - UX móvil y formularios */
@media (max-width: 768px) {
    input,
    select,
    textarea,
    .form-control,
    .form-select {
        font-size: 16px !important;
    }
}
.js-ajax-form .is-invalid {
    border-color: #dc3545 !important;
    box-shadow: 0 0 0 .18rem rgba(220,53,69,.12) !important;
}
#valoracion-result .result-header:first-child {
    margin-top: 0;
}


/* VITASAVIA v2.7 - navegación clara, admin suave y accesos flotantes */
.navbar-pv {
    background: rgba(255,255,255,.96) !important;
    border-bottom: 1px solid rgba(45,106,45,.12) !important;
    box-shadow: 0 10px 30px rgba(31,42,31,.08) !important;
    backdrop-filter: blur(12px);
}
.navbar-pv .nav-link { color: #263326 !important; font-weight: 700; }
.navbar-pv .nav-link:hover,
.navbar-pv .nav-link.active { color: var(--pv-green) !important; background: rgba(45,106,45,.08); }
.navbar-pv .btn-outline-light { color: var(--pv-green) !important; border-color: rgba(45,106,45,.28) !important; background:#fff; }
.navbar-pv .btn-outline-light:hover { background: rgba(45,106,45,.08); }
.navbar-toggler { border-color: rgba(45,106,45,.35) !important; }
.navbar-toggler-icon { filter: none !important; }
.navbar-pv-offcanvas { background: #fff !important; color: var(--pv-text) !important; }
.navbar-pv-offcanvas .offcanvas-header { border-bottom: 1px solid rgba(45,106,45,.12); }
.navbar-pv-offcanvas .btn-close-white { filter: none !important; }
.navbar-pv .dropdown-menu-dark { background:#fff; border:1px solid rgba(45,106,45,.14); box-shadow:0 18px 45px rgba(31,42,31,.14); }
.navbar-pv .dropdown-menu-dark .dropdown-item { color: var(--pv-text); }
.navbar-pv .dropdown-menu-dark .dropdown-item:hover { background: rgba(45,106,45,.08); color: var(--pv-green); }
.navbar-pv .dropdown-divider { border-color: rgba(45,106,45,.12); }
.admin-sidebar { background: linear-gradient(180deg,#f8f5ec,#ede6d6) !important; border-right:1px solid rgba(45,106,45,.12); box-shadow:6px 0 30px rgba(31,42,31,.06); }
.admin-sidebar .admin-brand-img { filter:none; }
.admin-sidebar .mb-4 div { color: var(--pv-muted) !important; }
.admin-nav-link { color:#2d392d !important; font-weight:700; }
.admin-nav-link:hover,
.admin-nav-link.active { background: rgba(45,106,45,.1) !important; color: var(--pv-green) !important; }
.admin-sidebar hr { border-color: rgba(45,106,45,.18) !important; }
.pv-modal-content { border:0; border-radius:18px; box-shadow:0 24px 70px rgba(31,42,31,.22); }
.modal-cat-filter { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.modal-cat-filter .cat-btn { text-align:center; }
.floating-actions { position:fixed; inset:auto 1.1rem 1.1rem auto; z-index:1050; pointer-events:none; }
.floating-btn { width:48px; height:48px; border-radius:999px; border:0; display:flex; align-items:center; justify-content:center; font-size:1.35rem; box-shadow:0 12px 32px rgba(31,42,31,.22); transition:opacity .22s, transform .22s, background .22s; pointer-events:auto; }
.floating-top { position:fixed; right:1.1rem; bottom:1.1rem; background:var(--pv-green); color:#fff; opacity:0; visibility:hidden; transform:translateY(10px); }
.floating-top.is-visible { opacity:1; visibility:visible; transform:translateY(0); }
.floating-top:hover { background:var(--pv-green-light); color:#fff; }
.floating-whatsapp { position:fixed; left:1.1rem; bottom:1.1rem; background:#25D366; color:#fff; }
.floating-whatsapp:hover { background:#1ebe5d; color:#fff; transform:translateY(-2px); }
.footer-heading { display:block; margin-top:0; }
@media (max-width: 991.98px) {
    .navbar-pv-offcanvas { background:#fff !important; }
    .navbar-pv .dropdown-menu { background:rgba(45,106,45,.05) !important; }
    .modal-cat-filter { grid-template-columns:1fr; }
}


/* VITASAVIA v2.8 - home estable, cards clicables y artículos a 12 columnas */
.home-footer-clear { clear: both; height: 1px; }
.article-card-link {
    display: block;
    height: 100%;
    color: inherit;
    text-decoration: none;
}
.article-card-link:hover { color: inherit; text-decoration: none; }
.article-click-card { cursor: pointer; transition: transform .22s, box-shadow .22s, border-color .22s; }
.article-card-link:hover .article-click-card {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
    border-color: rgba(45,106,45,.22);
}
.article-card-link .btn { pointer-events: none; }
.article-content { max-width: none; }
.article-content img { max-width: 100%; height: auto; }
.footer-main { position: relative; z-index: 2; display: block !important; clear: both; }
.floating-actions, .floating-top, .floating-whatsapp { z-index: 2147483000; }
@media (min-width: 992px) {
    .article-content { font-size: 1.08rem; }
}


/* VITASAVIA v2.9 - Home footer fix, article width and floating buttons */
.home-footer-clear { clear: both; display:block; width:100%; height:1px; }
.footer-main { position: relative; z-index: 20; display:block !important; clear: both; }
.floating-actions, .floating-top, .floating-whatsapp { z-index: 2147483000 !important; }
.article-page-row { display:block; }
.article-page-col { width:100%; max-width:100%; flex:0 0 100%; }
.article-content { width:100%; max-width:none !important; }


/* VITASAVIA v3.2 - footer, offcanvas móvil y relacionados */
.footer-main .text-white,
.footer-main .text-white small,
.footer-main .small.text-white { color:#fff !important; }

/* Logo más compacto en cabecera y menú móvil */
.brand-img { height:44px !important; max-width:210px !important; }
.brand-img-offcanvas { height:38px !important; max-width:180px !important; }
@media (max-width: 991.98px) {
    :root { --pv-nav-height: 62px; }
    .navbar-pv { padding:.45rem 0; }
    .brand-img { height:38px !important; max-width:180px !important; }
    .brand-img-offcanvas { height:34px !important; max-width:160px !important; }
    .navbar-pv .navbar-brand { min-height:38px; }
}

/* Offcanvas robusto: el menú móvil vuelve a mostrar enlaces, botones y dropdowns */
@media (max-width: 991.98px) {
    .navbar-pv-offcanvas.offcanvas {
        width:min(86vw, 360px) !important;
        background:#fff !important;
        color:var(--pv-text) !important;
        visibility:visible;
    }
    .navbar-pv-offcanvas .offcanvas-header {
        min-height:64px;
        padding:.85rem 1rem;
        border-bottom:1px solid rgba(45,106,45,.12);
    }
    .navbar-pv-offcanvas .offcanvas-body {
        display:block !important;
        padding:1rem !important;
        overflow-y:auto !important;
    }
    .navbar-pv-offcanvas .navbar-nav,
    .navbar-pv-offcanvas .navbar-auth {
        display:flex !important;
        flex-direction:column !important;
        width:100% !important;
        gap:.35rem;
    }
    .navbar-pv-offcanvas .nav-item,
    .navbar-pv-offcanvas .nav-link,
    .navbar-pv-offcanvas .dropdown,
    .navbar-pv-offcanvas .dropdown-menu,
    .navbar-pv-offcanvas .dropdown-item {
        display:block !important;
        width:100% !important;
        opacity:1 !important;
        visibility:visible !important;
    }
    .navbar-pv-offcanvas .dropdown-menu {
        position:static !important;
        transform:none !important;
        margin:.35rem 0 .75rem !important;
        padding:.45rem !important;
        box-shadow:none !important;
        border-radius:14px !important;
        background:rgba(45,106,45,.055) !important;
        border:1px solid rgba(45,106,45,.12) !important;
    }
    .navbar-pv-offcanvas .navbar-auth .btn { width:100% !important; text-align:center; }
}
@media (min-width: 992px) {
    .navbar-pv-offcanvas.offcanvas {
        position:static !important;
        transform:none !important;
        visibility:visible !important;
        width:auto !important;
        height:auto !important;
        flex-grow:1;
        border:0 !important;
        background:transparent !important;
        color:inherit !important;
    }
    .navbar-pv-offcanvas .offcanvas-body {
        display:flex !important;
        align-items:center !important;
        padding:0 !important;
        overflow:visible !important;
    }
}

/* Carrusel horizontal de artículos relacionados */
.article-related-section {
    border-top:1px solid rgba(45,106,45,.12);
    padding-top:2rem;
}
.article-related-title {
    font-family:var(--font-display);
    font-size:clamp(1.25rem,2.4vw,1.65rem);
    color:var(--pv-dark);
    font-weight:800;
}
.article-related-arrows { display:flex; gap:.5rem; flex:0 0 auto; }
.related-arrow {
    width:40px;
    height:40px;
    border-radius:999px;
    border:1px solid rgba(45,106,45,.18);
    background:#fff;
    color:var(--pv-green);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 10px 25px rgba(31,42,31,.08);
}
.related-arrow:hover { background:var(--pv-green); color:#fff; }
.article-related-scroll {
    display:flex;
    gap:1rem;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    padding:.35rem .15rem 1rem;
    scrollbar-width:thin;
}
.related-card-link {
    flex:0 0 min(310px, 82vw);
    color:inherit;
    text-decoration:none;
    scroll-snap-align:start;
}
.related-card-link:hover { color:inherit; text-decoration:none; }
.related-card {
    overflow:hidden;
    min-height:100%;
    transition:transform .22s, box-shadow .22s, border-color .22s;
}
.related-card-link:hover .related-card {
    transform:translateY(-4px);
    box-shadow:var(--shadow-lg);
    border-color:rgba(45,106,45,.22);
}
.related-card-img {
    width:100%;
    aspect-ratio:1/1;
    object-fit:cover;
    display:block;
    background:var(--pv-cream2);
}
.related-card-body { padding:1rem; }
.related-card-title {
    font-size:.96rem;
    line-height:1.35;
    margin:.65rem 0 .35rem;
    font-weight:800;
    color:var(--pv-text);
}
.related-card-text {
    font-size:.84rem;
    color:var(--pv-muted);
    margin:0;
}
@media (min-width: 992px) {
    .related-card-link { flex-basis:320px; }
}

/* VITASAVIA v3.3 - restaurar header PC y corregir offcanvas móvil */
@media (min-width: 992px) {
    .brand-img {
        height:54px !important;
        max-width:255px !important;
    }
    .navbar-pv .navbar-brand {
        min-height:54px !important;
        margin-right:1.5rem !important;
    }
}
@media (max-width: 991.98px) {
    .navbar-pv-offcanvas.offcanvas,
    .offcanvas.navbar-pv-offcanvas,
    #navMain.navbar-pv-offcanvas {
        width:min(86vw, 360px) !important;
        min-height:100vh !important;
        height:100vh !important;
        height:100dvh !important;
        background:#fff !important;
        color:var(--pv-text) !important;
        border-left:1px solid rgba(45,106,45,.12) !important;
        box-shadow:-18px 0 50px rgba(31,42,31,.18) !important;
    }
    .navbar-pv-offcanvas .offcanvas-header,
    .navbar-pv-offcanvas .offcanvas-body {
        background:#fff !important;
        color:var(--pv-text) !important;
    }
    .navbar-pv-offcanvas .offcanvas-header {
        min-height:58px !important;
        padding:.75rem 1rem !important;
        flex:0 0 auto !important;
    }
    .navbar-pv-offcanvas .offcanvas-body {
        display:flex !important;
        flex-direction:column !important;
        align-items:stretch !important;
        min-height:calc(100vh - 58px) !important;
        min-height:calc(100dvh - 58px) !important;
        padding:1rem !important;
        overflow-y:auto !important;
    }
    .brand-img-offcanvas {
        height:32px !important;
        max-width:150px !important;
    }
    .navbar-pv-offcanvas .nav-link,
    .navbar-pv-offcanvas .dropdown-item {
        color:var(--pv-text) !important;
    }
    .navbar-pv-offcanvas .nav-link:hover,
    .navbar-pv-offcanvas .nav-link.active,
    .navbar-pv-offcanvas .dropdown-item:hover {
        color:var(--pv-green) !important;
        background:rgba(45,106,45,.08) !important;
    }
    .navbar-pv-offcanvas .dropdown-menu,
    .navbar-pv-offcanvas .dropdown-menu-dark {
        background:rgba(45,106,45,.055) !important;
        border:1px solid rgba(45,106,45,.12) !important;
    }
    .navbar-pv-offcanvas .navbar-auth {
        margin-top:1rem !important;
    }
}


/* VITASAVIA v3.4 - menú PC a la derecha y logo móvil ligeramente mayor */
@media (min-width: 992px) {
    .navbar-pv .offcanvas-body {
        justify-content:flex-end !important;
    }
    .navbar-pv .navbar-nav {
        margin-left:auto !important;
        margin-right:1rem !important;
    }
}
@media (max-width: 991.98px) {
    .navbar-pv > .container > .navbar-brand .brand-img,
    .navbar-pv .navbar-brand > .brand-img {
        height:42px !important;
        max-width:200px !important;
    }
    .navbar-pv-offcanvas .brand-img-offcanvas {
        height:32px !important;
        max-width:150px !important;
    }
}
@media (max-width: 380px) {
    .navbar-pv > .container > .navbar-brand .brand-img,
    .navbar-pv .navbar-brand > .brand-img {
        height:39px !important;
        max-width:185px !important;
    }
}

/* VITASAVIA v3.6 - botón hamburguesa móvil limpio y más legible */
@media (max-width: 991.98px) {
    .navbar-pv .navbar-toggler {
        border: 0 !important;
        box-shadow: none !important;
        outline: none !important;
        padding: .35rem .25rem !important;
        border-radius: 0 !important;
        background: transparent !important;
    }
    .navbar-pv .navbar-toggler:focus,
    .navbar-pv .navbar-toggler:active {
        border: 0 !important;
        box-shadow: none !important;
        outline: none !important;
    }
    .navbar-pv .navbar-toggler-icon {
        width: 1.85rem !important;
        height: 1.85rem !important;
        filter: none !important;
        background-size: 1.85rem 1.85rem !important;
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2845, 106, 45, 1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='3.2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
    }
}


/* Cookie banner */
.cookie-banner {
    position: fixed;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    z-index: 1085;
}
.cookie-banner-inner {
    max-width: 980px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid rgba(31,91,54,.16);
    box-shadow: 0 24px 70px rgba(0,0,0,.18);
    border-radius: 18px;
    padding: 1rem;
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
}
.cookie-title {
    font-weight: 800;
    color: var(--pv-green, #1f5b36);
    margin-bottom: .25rem;
}
.cookie-banner p {
    margin: 0 0 .25rem;
    color: #425466;
    font-size: .92rem;
}
.cookie-banner a {
    color: var(--pv-green, #1f5b36);
    font-weight: 700;
    font-size: .88rem;
}
.cookie-actions {
    display: flex;
    gap: .5rem;
    flex-shrink: 0;
}
@media (max-width: 575.98px) {
    .cookie-banner-inner {
        display: block;
    }
    .cookie-actions {
        margin-top: .85rem;
        justify-content: flex-end;
    }
}


/* VitaSavia v3.10 - H3 con fuente de texto normal en negrita */
h3, .h3 {
    font-family: var(--font-body) !important;
    font-weight: 700 !important;
}

/* VitaSavia v3.11 - gestor visual de contenido gratuito */
.admin-content-manager{padding-bottom:7.5rem;}
.admin-floating-alert{position:fixed;right:1.25rem;top:1.25rem;z-index:2000;box-shadow:0 18px 40px rgba(15,23,42,.16);border-radius:1rem;max-width:min(420px,calc(100vw - 2rem));}
.admin-list-tools{width:min(420px,100%);}
.admin-article-rows{display:flex;flex-direction:column;gap:.75rem;}
.admin-article-row{display:grid;grid-template-columns:82px minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem;border:1px solid rgba(31,91,54,.12);border-radius:1.1rem;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.045);transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;}
.admin-article-row:hover{transform:translateY(-1px);box-shadow:0 16px 34px rgba(15,23,42,.075);border-color:rgba(31,91,54,.28);}
.admin-article-thumb-wrap{width:82px;height:82px;}
.admin-article-thumb{width:82px;height:82px;object-fit:cover;border-radius:1rem;border:1px solid rgba(31,91,54,.14);background:#f3f7ef;display:flex;align-items:center;justify-content:center;color:#7a8f78;font-size:1.5rem;}
.admin-article-thumb-empty{display:flex;}
.admin-article-info{min-width:0;}
.admin-article-title{font-weight:800;color:#1f2937;line-height:1.25;}
.admin-article-actions{display:flex;gap:.45rem;align-items:center;white-space:nowrap;}
.admin-image-preview{width:100%;min-height:120px;display:flex;align-items:center;justify-content:center;border:1px dashed rgba(31,91,54,.28);border-radius:1rem;background:#f8fbf5;padding:.5rem;}
.admin-image-preview img{max-width:100%;max-height:155px;border-radius:.8rem;object-fit:cover;}
.pv-editor-toolbar{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;padding:.75rem;border-bottom:1px solid rgba(31,91,54,.12);background:#f8fbf5;position:sticky;top:0;z-index:5;}
.pv-editor-toolbar button{border:1px solid rgba(31,91,54,.18);background:#fff;color:#254a2f;border-radius:.6rem;padding:.38rem .65rem;font-weight:800;font-size:.85rem;line-height:1;min-height:34px;}
.pv-editor-toolbar button:hover,.pv-editor-toolbar button.active{background:#1f5b36;color:#fff;border-color:#1f5b36;}
.pv-editor-separator{width:1px;height:28px;background:rgba(31,91,54,.18);margin:0 .2rem;}
.pv-wysiwyg{min-height:560px;padding:1.35rem;background:#fff;outline:none;font-size:1rem;line-height:1.75;color:#2b332d;}
.pv-wysiwyg:focus{box-shadow:inset 0 0 0 3px rgba(181,140,53,.14);}
.pv-wysiwyg h2{font-family:var(--font-display);font-size:1.8rem;margin:1.6rem 0 .85rem;color:#173d29;font-weight:700;}
.pv-wysiwyg h3{font-family:var(--font-body);font-size:1.32rem;margin:1.35rem 0 .7rem;color:#173d29;font-weight:800;}
.pv-wysiwyg p{margin-bottom:1rem;}
.pv-wysiwyg ul,.pv-wysiwyg ol{padding-left:1.35rem;margin-bottom:1rem;}
.pv-wysiwyg a{color:#1f5b36;font-weight:800;}
.pv-source-editor{width:100%;min-height:560px;border:0;padding:1.1rem;background:#101827;color:#d1fae5;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:.88rem;line-height:1.6;outline:none;}
.pv-editor-help{padding:.65rem .9rem;border-top:1px solid rgba(31,91,54,.12);background:#fffaf0;color:#6f5b23;font-size:.82rem;}
.admin-sticky-save{position:fixed;left:calc(var(--admin-sidebar-width, 260px) + 1.5rem);right:1.5rem;bottom:1rem;z-index:1100;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border:1px solid rgba(31,91,54,.16);border-radius:1.1rem;box-shadow:0 20px 55px rgba(15,23,42,.18);padding:.75rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;}
@media (max-width:991.98px){
  .admin-article-row{grid-template-columns:68px minmax(0,1fr);align-items:start;}
  .admin-article-thumb-wrap,.admin-article-thumb{width:68px;height:68px;border-radius:.85rem;}
  .admin-article-actions{grid-column:1 / -1;justify-content:flex-start;flex-wrap:wrap;}
  .admin-sticky-save{left:1rem;right:1rem;bottom:.75rem;}
  .pv-wysiwyg,.pv-source-editor{min-height:440px;}
}


/* VitaSavia v3.12 - cabecera artículo imagen/texto y canonical visual */
.article-hero-row .article-hero-img{
    width:100%;
    margin:0;
}
@media (max-width:767.98px){
    .article-hero-row .article-hero-img{
        margin-top:.75rem;
    }
}
