.karnak-layout { width: 100%; }

.karnak-section {
    width: 100%;
    padding: 20px 20px;
}

.karnak-columns {
    display: flex;
    gap: 20px;
    max-width: 1200px;
    margin: 0 auto;
    flex-wrap: wrap;
}
.karnak-cols-full {
    max-width: none;
    width: 100%;
}

.karnak-column {
    flex: 1;
    min-width: 0;
    box-sizing: border-box;
}

.karnak-widget { margin-bottom: 0; }

/* ── Texto scroll ──────────────────────────────────────── */
.karnak-scroll-text {
    --st-angle: 180deg;
    --st-fade:  50%;   /* ancho de la zona de transición; 0% = corte instantáneo */
    --st-p:     1;
    /*
     * A p=0 → black_stop = -stFade (clamped 0%) y transparent_stop = 0% → invisible.
     * A p=1 → black_stop = 100%, transparent_stop = 100%+stFade → completamente visible.
     */
    -webkit-mask-image: linear-gradient(
        var(--st-angle),
        black 0%,
        black calc(var(--st-p) * (100% + var(--st-fade)) - var(--st-fade)),
        transparent calc(var(--st-p) * (100% + var(--st-fade)))
    );
    mask-image: linear-gradient(
        var(--st-angle),
        black 0%,
        black calc(var(--st-p) * (100% + var(--st-fade)) - var(--st-fade)),
        transparent calc(var(--st-p) * (100% + var(--st-fade)))
    );
}

.karnak-widget img { max-width: 100%; height: auto; display: block; }

.karnak-btn {
    display: inline-block;
    padding: var(--karnak-btn-py, 8px) var(--karnak-btn-px, 20px);
    background: var(--karnak-btn-bg, #e94560);
    color: var(--karnak-btn-color, #fff);
    border-radius: var(--karnak-btn-radius, 5px);
    font-family: var(--karnak-btn-family, inherit) !important;
    font-size: var(--karnak-btn-size, 14px);
    font-weight: var(--karnak-btn-weight, 600);
    text-decoration: none;
    transition: background .2s, color .2s;
}
.karnak-btn:hover { background: var(--karnak-btn-bg, #e94560); filter: brightness(.85); color: var(--karnak-btn-color, #fff); }

.karnak-divider {
    border: none;
    border-top: 1px solid #ddd;
    margin: 16px 0;
}

/* ── Search ──────────────────────────────────────────────── */
.karnak-search-form {
    display: flex;
    width: 100%;
}
.karnak-search-vertical { flex-direction: column; }

.karnak-search-input-wrap { flex: 1; min-width: 0; }

.karnak-search-input {
    width: 100%;
    height: 48px;
    border: 2px solid #d0d0d0;
    border-radius: 6px 0 0 6px;
    border-right: none;
    padding: 0 16px;
    font-size: 15px;
    outline: none;
    background: #fff;
    color: inherit;
    box-sizing: border-box;
    transition: border-color .15s;
}
.karnak-search-input:focus { border-color: var(--karnak-btn-bg, #e94560); }
.karnak-search-vertical .karnak-search-input {
    border-right: 2px solid #d0d0d0;
    border-bottom: none;
    border-radius: 6px 6px 0 0;
}
.karnak-search-vertical .karnak-search-input:focus { border-color: var(--karnak-btn-bg, #e94560); }

.karnak-search-btn {
    height: 48px;
    padding: 0 20px;
    background: var(--karnak-btn-bg, #e94560);
    color: var(--karnak-btn-color, #fff);
    border: none;
    border-radius: 0 6px 6px 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 15px;
    font-family: inherit;
    white-space: nowrap;
    flex-shrink: 0;
    transition: filter .15s;
}
.karnak-search-btn:hover { filter: brightness(.88); }
.karnak-search-vertical .karnak-search-btn {
    height: 44px;
    border-radius: 0 0 6px 6px;
    justify-content: center;
}

/* ── Search trigger (modo modal) ────────────────────────── */
.karnak-search-trigger {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 6px;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    line-height: 1;
    transition: opacity .15s;
}
.karnak-search-trigger:hover { opacity: .7; }
.karnak-search-trigger svg { display: block; }

/* ── Search modal ───────────────────────────────────────── */
.karnak-search-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 999999;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.karnak-search-modal.karnak-search-modal--open {
    display: flex;
}
.karnak-search-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.72);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    animation: karnakFadeIn .2s ease;
}
.karnak-search-modal-box {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 640px;
    animation: karnakSlideDown .22s ease;
}
.karnak-search-modal-close {
    position: absolute;
    top: -38px;
    right: 0;
    background: transparent;
    border: none;
    color: rgba(255,255,255,.8);
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    padding: 4px 8px;
    transition: color .15s;
}
.karnak-search-modal-close:hover { color: #fff; }
.karnak-search-modal .karnak-search-input {
    height: 56px;
    font-size: 17px;
    border-radius: 8px 0 0 8px;
    border-color: transparent;
    box-shadow: none;
}
.karnak-search-modal .karnak-search-btn {
    height: 56px;
    border-radius: 0 8px 8px 0;
    font-size: 16px;
}
.karnak-search-modal .karnak-search-form {
    box-shadow: 0 24px 64px rgba(0,0,0,.4);
    border-radius: 8px;
}
body.karnak-search-modal-open { overflow: hidden; }

@keyframes karnakFadeIn {
    from { opacity: 0; } to { opacity: 1; }
}
@keyframes karnakSlideDown {
    from { opacity: 0; transform: translateY(-16px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Search Results ─────────────────────────────────────── */
.karnak-sr-count {
    margin: 0 0 20px;
    font-size: 14px;
    color: #666;
}
.karnak-sr-grid {
    display: grid;
    gap: 24px;
}
.karnak-sr-item {
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: #fff;
    border: 1px solid #e8e8e8;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.karnak-sr-thumb { line-height: 0; }
.karnak-sr-thumb img { width: 100%; height: 180px; object-fit: cover; display: block; }
.karnak-sr-body { flex: 1; min-width: 0; padding: 14px 16px 16px; }
.karnak-sr-type {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--karnak-btn-bg, #e94560);
    background: color-mix(in srgb, var(--karnak-btn-bg, #e94560) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--karnak-btn-bg, #e94560) 35%, transparent);
    border-radius: 20px;
    padding: 2px 9px;
    margin-bottom: 6px;
    vertical-align: middle;
}
.karnak-sr-filters {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}
.karnak-sr-filter-btn {
    padding: 6px 14px;
    border: 1px solid #ddd;
    border-radius: 20px;
    background: #fff;
    font-size: 13px;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
    color: #555;
}
.karnak-sr-filter-btn:hover { border-color: var(--karnak-btn-bg, #e94560); color: var(--karnak-btn-bg, #e94560); }
.karnak-sr-filter-btn--active { background: var(--karnak-btn-bg, #e94560); color: #fff !important; border-color: var(--karnak-btn-bg, #e94560); }
.karnak-sr-title { margin: 0 0 6px; font-size: 18px; line-height: 1.3; }
.karnak-sr-title a { text-decoration: none; color: inherit; }
.karnak-sr-title a:hover { color: var(--karnak-btn-bg, #e94560); }
.karnak-sr-date { display: block; font-size: 12px; color: #999; margin-bottom: 8px; }
.karnak-sr-excerpt { margin: 0; font-size: 14px; color: #555; line-height: 1.6; }
.karnak-sr-empty { padding: 40px 0; text-align: center; }
.karnak-sr-no-results { font-size: 16px; color: #666; }
.karnak-sr-pagination { margin-top: 32px; }
.karnak-sr-pagination .nav-links { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.karnak-sr-pagination .page-numbers {
    padding: 6px 12px;
    border: 1px solid #ddd;
    border-radius: 5px;
    text-decoration: none;
    color: inherit;
    font-size: 14px;
}
.karnak-sr-pagination .page-numbers.current { background: var(--karnak-btn-bg, #e94560); color: #fff; border-color: transparent; }
.karnak-sr-pagination .page-numbers:hover:not(.current) { border-color: var(--karnak-btn-bg, #e94560); color: var(--karnak-btn-bg, #e94560); }

/* Imagen como resultado */
.karnak-sr-item--image { gap: 0; }
.karnak-sr-image-link { display: block; line-height: 0; }
.karnak-sr-image { width: 100%; height: auto; display: block; }
.karnak-sr-item--image .karnak-sr-type { align-self: flex-start; margin: 8px 14px 0; }
.karnak-sr-image-caption { margin: 6px 14px 12px; font-size: 13px; color: #666; line-height: 1.4; }

/* Archivo no-imagen (PDF, doc, etc.) */
.karnak-sr-item--file .karnak-sr-body { display: flex; flex-direction: column; gap: 6px; }

/* Canvas preview placeholder */
.karnak-sr-thumb-placeholder { width: 120px; height: 80px; background: #e8e8e8; border-radius: 6px; flex-shrink: 0; }

/* ── FAQ / Acordeón ──────────────────────────────────────── */
.karnak-faq { width: 100%; }

.karnak-faq-item {
    border-bottom: var(--karnak-faq-border-width, 1px) solid var(--karnak-faq-border, #e5e7eb);
    background: var(--karnak-faq-item-bg, transparent);
    border-radius: var(--karnak-faq-radius, 0);
    overflow: hidden;
}
.karnak-faq-item:first-child { border-top: var(--karnak-faq-border-width, 1px) solid var(--karnak-faq-border, #e5e7eb); }

.karnak-faq-question {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 16px 4px;
    cursor: pointer;
    list-style: none;
    font-size: var(--karnak-faq-q-size, 1rem);
    font-weight: var(--karnak-faq-q-weight, 600);
    color: var(--karnak-faq-q-color, inherit);
    background: var(--karnak-faq-q-bg, transparent);
    gap: 12px;
    user-select: none;
}
.karnak-faq-question::-webkit-details-marker { display: none; }

.karnak-faq-icon {
    flex-shrink: 0;
    width: var(--karnak-faq-icon-size, 20px);
    height: var(--karnak-faq-icon-size, 20px);
    position: relative;
    margin-left: auto;
}
.karnak-faq-icon::before,
.karnak-faq-icon::after {
    content: '';
    position: absolute;
    background: var(--karnak-faq-icon-color, currentColor);
    border-radius: 2px;
    transition: transform .25s ease, opacity .25s ease;
}
.karnak-faq-icon::before { width: 100%; height: 2px; top: 50%; transform: translateY(-50%); }
.karnak-faq-icon::after  { width: 2px; height: 100%; left: 50%; transform: translateX(-50%); }

.karnak-faq-item[open] .karnak-faq-icon::after { transform: translateX(-50%) rotate(90deg); opacity: 0; }

.karnak-faq-answer {
    padding: 0 4px 16px;
    font-size: var(--karnak-faq-a-size, .95rem);
    color: var(--karnak-faq-a-color, inherit);
    background: var(--karnak-faq-a-bg, transparent);
    line-height: 1.6;
}
.karnak-faq-answer p { margin: 0 0 8px; }
.karnak-faq-answer p:last-child { margin-bottom: 0; }

/* FAQ columnas */
.karnak-faq-cols {
    column-count: 2;
    column-gap: 32px;
}
.karnak-faq-cols .karnak-faq-item { break-inside: avoid; }

/* ── Iconos ─────────────────────────────────────── */

/* Plus (default) — ya definido arriba, no necesita clase extra */

/* Chevron — flecha abajo (SVG inline via border trick) que rota 180° al abrir */
.karnak-faq-icon-chevron .karnak-faq-icon::before { display: none; }
.karnak-faq-icon-chevron .karnak-faq-icon::after {
    content: '';
    display: block;
    width: 10px;
    height: 10px;
    border-right: 2px solid var(--karnak-faq-icon-color, currentColor);
    border-bottom: 2px solid var(--karnak-faq-icon-color, currentColor);
    transform: translateX(-50%) rotate(45deg);
    background: none;
    top: calc(50% - 4px);
    left: 50%;
    transition: transform .25s ease;
}
.karnak-faq-icon-chevron .karnak-faq-item[open] .karnak-faq-icon::after {
    transform: translateX(-50%) rotate(-135deg);
    top: calc(50% + 1px);
}

/* None — sin ícono */
.karnak-faq-icon-none .karnak-faq-icon { display: none; }

/* FAQ list numbering — CSS counters injected before each question */
.karnak-faq-ls-decimal,
.karnak-faq-ls-upper-roman,
.karnak-faq-ls-upper-alpha { counter-reset: faq-counter; }

.karnak-faq-ls-decimal .karnak-faq-item,
.karnak-faq-ls-upper-roman .karnak-faq-item,
.karnak-faq-ls-upper-alpha .karnak-faq-item { counter-increment: faq-counter; }

.karnak-faq-ls-decimal .karnak-faq-question::before    { content: counter(faq-counter, decimal) '.\00a0';     flex-shrink: 0; }
.karnak-faq-ls-upper-roman .karnak-faq-question::before { content: counter(faq-counter, upper-roman) '.\00a0'; flex-shrink: 0; }
.karnak-faq-ls-upper-alpha .karnak-faq-question::before { content: counter(faq-counter, upper-alpha) '.\00a0'; flex-shrink: 0; }

/* ── Pestañas ────────────────────────────────────────────── */
.karnak-tabs { width: 100%; }

/* ── Nav (horizontal / top) */
.karnak-tabs-nav {
    display: flex;
    flex-wrap: wrap;
    background: var(--karnak-tabs-nav-bg, transparent);
    border-bottom: var(--karnak-tabs-nav-border-width, 1px) solid var(--karnak-tabs-nav-border, #e5e7eb);
}
.karnak-tabs-align-left    .karnak-tabs-nav { justify-content: flex-start; }
.karnak-tabs-align-center  .karnak-tabs-nav { justify-content: center; }
.karnak-tabs-align-right   .karnak-tabs-nav { justify-content: flex-end; }
.karnak-tabs-align-stretch .karnak-tabs-nav { justify-content: stretch; }
.karnak-tabs-align-stretch .karnak-tab-btn  { flex: 1; }

/* ── Tab button — card style with full border on hover/active */
.karnak-tab-btn {
    padding: var(--karnak-tab-padding, 10px 20px);
    font-size: var(--karnak-tab-size, .95rem);
    font-weight: var(--karnak-tab-weight, 500);
    font-family: var(--karnak-tab-font, inherit);
    color: var(--karnak-tab-color, inherit);
    background: var(--karnak-tab-bg, transparent);
    border: var(--karnak-tabs-nav-border-width, 1px) solid transparent;
    border-bottom: none;
    border-radius: 4px 4px 0 0;
    margin-bottom: -1px;
    cursor: pointer;
    transition: color .2s, border-color .2s, background .2s;
    white-space: nowrap;
}
.karnak-tab-btn:hover {
    color: var(--karnak-tab-active-color, inherit);
    border-color: var(--karnak-tabs-nav-border, #e5e7eb);
}
.karnak-tab-btn.active {
    color: var(--karnak-tab-active-color, #2563eb);
    background: var(--karnak-tab-active-bg, transparent);
    border-color: var(--karnak-tab-active-border, #2563eb);
}

/* ── Panels */
.karnak-tabs-panels { }
.karnak-tab-panel {
    display: none;
    padding: var(--karnak-panel-padding, 20px 0);
    background: var(--karnak-panel-bg, transparent);
}
.karnak-tab-panel.active { display: block; }

/* ── Pestañas verticales (posición izquierda) */
.karnak-tabs-pos-left {
    display: flex;
    align-items: flex-start;
}
.karnak-tabs-pos-left .karnak-tabs-nav {
    flex-direction: column;
    flex-wrap: nowrap;
    border-bottom: none;
    border-right: var(--karnak-tabs-nav-border-width, 1px) solid var(--karnak-tabs-nav-border, #e5e7eb);
    flex-shrink: 0;
    min-width: var(--karnak-tabs-nav-width, 160px);
}
.karnak-tabs-pos-left .karnak-tab-btn {
    display: block;
    text-align: left;
    width: 100%;
    border: var(--karnak-tabs-nav-border-width, 1px) solid transparent;
    border-right: none;
    border-radius: 4px 0 0 4px;
    margin-bottom: 0;
    margin-right: -1px;
}
.karnak-tabs-pos-left .karnak-tab-btn:hover {
    border-color: var(--karnak-tabs-nav-border, #e5e7eb);
    border-right-color: transparent;
}
.karnak-tabs-pos-left .karnak-tab-btn.active {
    border-color: var(--karnak-tab-active-border, #2563eb);
    border-right-color: transparent;
}
.karnak-tabs-pos-left .karnak-tabs-panels {
    flex: 1;
    min-width: 0;
    padding-left: 16px;
}

/* ── Acordeón ────────────────────────────────────────────── */
.karnak-accordion {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: var(--karnak-acc-gap, 4px);
}

.karnak-acc-item {
    background: var(--karnak-acc-item-bg, transparent);
    border-radius: var(--karnak-acc-radius, 0);
    overflow: hidden;
}

.karnak-acc-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: var(--karnak-acc-h-padding, 16px 12px);
    cursor: pointer;
    list-style: none;
    font-size: var(--karnak-acc-h-size, 1rem);
    font-weight: var(--karnak-acc-h-weight, 600);
    font-family: var(--karnak-acc-h-font, inherit);
    color: var(--karnak-acc-h-color, inherit);
    background: var(--karnak-acc-h-bg, transparent);
    user-select: none;
    border: var(--karnak-acc-border-width, 1px) solid var(--karnak-acc-border, #e5e7eb);
}

/* Cuando el item está abierto, el cuerpo completa la caja visual */
.karnak-acc-item[open] .karnak-acc-body {
    border-left: var(--karnak-acc-border-width, 1px) solid var(--karnak-acc-border, #e5e7eb);
    border-right: var(--karnak-acc-border-width, 1px) solid var(--karnak-acc-border, #e5e7eb);
    border-bottom: var(--karnak-acc-border-width, 1px) solid var(--karnak-acc-border, #e5e7eb);
}
.karnak-acc-header::-webkit-details-marker { display: none; }

.karnak-acc-title { flex: 1; }

.karnak-acc-icon {
    flex-shrink: 0;
    width: var(--karnak-acc-icon-size, 20px);
    height: var(--karnak-acc-icon-size, 20px);
    position: relative;
}

/* Icon position right (default) */
.karnak-acc-icon-pos-right .karnak-acc-icon { order: 1; }
/* Icon position left */
.karnak-acc-icon-pos-left .karnak-acc-icon { order: -1; }

.karnak-acc-icon::before,
.karnak-acc-icon::after {
    content: '';
    position: absolute;
    background: var(--karnak-acc-icon-color, currentColor);
    border-radius: 2px;
    transition: transform .25s ease, opacity .25s ease;
}
.karnak-acc-icon::before { width: 100%; height: 2px; top: 50%; transform: translateY(-50%); }
.karnak-acc-icon::after  { width: 2px; height: 100%; left: 50%; transform: translateX(-50%); }

.karnak-acc-item[open] .karnak-acc-icon::after { transform: translateX(-50%) rotate(90deg); opacity: 0; }

.karnak-acc-body {
    padding: var(--karnak-acc-a-padding, 16px 12px);
    font-size: var(--karnak-acc-a-size, .95rem);
    color: var(--karnak-acc-a-color, inherit);
    background: var(--karnak-acc-a-bg, transparent);
    line-height: 1.6;
}
.karnak-acc-body p { margin: 0 0 8px; }
.karnak-acc-body p:last-child { margin-bottom: 0; }
.karnak-acc-body .karnak-widget:first-child { margin-top: 0; }
.karnak-acc-body .karnak-widget:last-child  { margin-bottom: 0; }

/* Chevron variant */
.karnak-acc-icon-chevron .karnak-acc-icon::before { display: none; }
.karnak-acc-icon-chevron .karnak-acc-icon::after {
    content: '';
    display: block;
    width: 10px;
    height: 10px;
    border-right: 2px solid var(--karnak-acc-icon-color, currentColor);
    border-bottom: 2px solid var(--karnak-acc-icon-color, currentColor);
    transform: translateX(-50%) rotate(45deg);
    background: none;
    top: calc(50% - 4px);
    left: 50%;
    transition: transform .25s ease;
}
.karnak-acc-icon-chevron .karnak-acc-item[open] .karnak-acc-icon::after {
    transform: translateX(-50%) rotate(-135deg);
    top: calc(50% + 1px);
}

/* None variant */
.karnak-acc-icon-none .karnak-acc-icon { display: none; }

/* ── Testimonios ─────────────────────────────────────────── */
.karnak-testimonials-grid {
    display: grid;
    width: 100%;
}

.karnak-testimonial-card {
    background:    var(--karnak-tst-bg,     #ffffff);
    border:        var(--karnak-tst-border-width, 1px) solid var(--karnak-tst-border, #e5e7eb);
    border-radius: var(--karnak-tst-radius,  10px);
    box-shadow:    var(--karnak-tst-shadow,  none);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.karnak-tst-avatar {
    border-radius: var(--karnak-tst-avatar-radius, 50%);
    object-fit: cover;
    display: block;
    flex-shrink: 0;
}

.karnak-tst-avatar-ph {
    border-radius: var(--karnak-tst-avatar-radius, 50%);
    background: #e5e7eb;
    flex-shrink: 0;
}

.karnak-tst-name {
    display: block;
    font-weight: var(--karnak-tst-name-weight, 700);
    color: var(--karnak-tst-name-color, inherit);
}

.karnak-tst-meta {
    display: block;
    font-size: .82em;
    opacity: .6;
    color: var(--karnak-tst-meta-color, inherit);
}

.karnak-tst-text {
    font-style: italic;
    line-height: 1.65;
    color: var(--karnak-tst-text-color, inherit);
}
.karnak-tst-text p { margin: 0 0 6px; }
.karnak-tst-text p:last-child { margin-bottom: 0; }

/* Model 1 — Classic (avatar top, centered) */
.karnak-tst-model-1 {
    text-align: center;
    align-items: center;
    padding: 28px 24px 20px;
    gap: 14px;
}
.karnak-tst-model-1 .karnak-tst-avatar,
.karnak-tst-model-1 .karnak-tst-avatar-ph { width: 72px; height: 72px; }
.karnak-tst-model-1 .karnak-tst-text { font-size: .95rem; }
.karnak-tst-model-1 .karnak-tst-author { display: flex; flex-direction: column; gap: 2px; }
.karnak-tst-model-1 .karnak-tst-name { font-size: .95rem; }

/* Model 2 — Horizontal (avatar left) */
.karnak-tst-model-2 {
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
    padding: 22px 20px;
}
.karnak-tst-model-2 .karnak-tst-avatar,
.karnak-tst-model-2 .karnak-tst-avatar-ph { width: 56px; height: 56px; }
.karnak-tst-model-2 .karnak-tst-body { flex: 1; display: flex; flex-direction: column; gap: 8px; }
.karnak-tst-model-2 .karnak-tst-author { display: flex; flex-direction: column; gap: 2px; }
.karnak-tst-model-2 .karnak-tst-name { font-size: .95rem; }
.karnak-tst-model-2 .karnak-tst-text { font-size: .92rem; }

/* Model 3 — Quote first */
.karnak-tst-model-3 {
    padding: 24px 22px 20px;
    gap: 12px;
}
.karnak-tst-model-3 .karnak-tst-quote-mark {
    font-size: 3rem;
    line-height: 1;
    font-family: Georgia, serif;
    color: var(--karnak-tst-accent, #e94560);
    margin-bottom: -4px;
}
.karnak-tst-model-3 .karnak-tst-text { font-size: .95rem; flex: 1; }
.karnak-tst-model-3 .karnak-tst-footer {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: auto;
    padding-top: 4px;
    border-top: 1px solid var(--karnak-tst-border, #e5e7eb);
}
.karnak-tst-model-3 .karnak-tst-footer > div { display: flex; flex-direction: column; gap: 2px; }
.karnak-tst-model-3 .karnak-tst-avatar,
.karnak-tst-model-3 .karnak-tst-avatar-ph { width: 44px; height: 44px; }

/* Model 4 — Bubble */
.karnak-tst-model-4 {
    padding: 18px 20px;
    gap: 12px;
    background: transparent;
    border-color: transparent;
    box-shadow: none;
}
.karnak-tst-model-4 .karnak-tst-bubble {
    background: var(--karnak-tst-bubble-bg, #f4f4f6);
    border-radius: 12px 12px 12px 0;
    padding: 16px 18px;
    color: var(--karnak-tst-text-color, inherit);
}
.karnak-tst-model-4 .karnak-tst-text { font-size: .92rem; }
.karnak-tst-model-4 .karnak-tst-author {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-left: 4px;
}
.karnak-tst-model-4 .karnak-tst-author > div { display: flex; flex-direction: column; gap: 2px; }
.karnak-tst-model-4 .karnak-tst-avatar,
.karnak-tst-model-4 .karnak-tst-avatar-ph { width: 38px; height: 38px; }
.karnak-tst-model-4 .karnak-tst-name { font-size: .88rem; }

/* Swiper testimonios */
.karnak-tst-swiper { padding-bottom: 40px !important; }
.karnak-tst-swiper .karnak-testimonial-card { height: 100%; }

.karnak-nested-columns {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}

.karnak-nested-column {
    flex: 1;
    min-width: 0;
}

@media (max-width: 768px) {
    .karnak-columns,
    .karnak-nested-columns { flex-direction: column; }
}

/* Carousel */
.karnak-carousel {
    width: 100%;
}
.karnak-carousel .swiper-slide img {
    width: 100%;
    display: block;
}

/* Transición suave para hover de flechas */
.karnak-carousel .swiper-button-prev,
.karnak-carousel .swiper-button-next,
.karnak-carousel-outer .swiper-button-prev,
.karnak-carousel-outer .swiper-button-next {
    transition: color .18s, background .18s;
}

/* Arrow style: minimal (solo ícono, sin círculo) */
.karnak-arrow-minimal .swiper-button-prev,
.karnak-arrow-minimal .swiper-button-next {
    background: none;
    width: 32px;
    height: 32px;
    color: #333;
}
.karnak-arrow-minimal .swiper-button-prev::after,
.karnak-arrow-minimal .swiper-button-next::after {
    font-size: 20px;
    font-weight: 700;
}

/* Arrow style: filled (círculo sólido) */
.karnak-arrow-filled .swiper-button-prev,
.karnak-arrow-filled .swiper-button-next {
    background: rgba(0, 0, 0, 0.5);
    border-radius: 50%;
    width: 44px;
    height: 44px;
    color: #fff;
}
.karnak-arrow-filled .swiper-button-prev::after,
.karnak-arrow-filled .swiper-button-next::after {
    font-size: 16px;
}

/* Arrows outside */
.karnak-carousel-outer {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
}
.karnak-carousel-outer .karnak-carousel {
    flex: 1;
    min-width: 0;
}
.karnak-carousel-outer .swiper-button-prev,
.karnak-carousel-outer .swiper-button-next {
    position: static;
    margin: 0;
    flex-shrink: 0;
    top: auto;
    transform: none;
}

/* Arrow style: outlined (círculo con borde) */
.karnak-arrow-outlined .swiper-button-prev,
.karnak-arrow-outlined .swiper-button-next {
    background: transparent;
    border: 2px solid currentColor;
    border-radius: 50%;
    width: 44px;
    height: 44px;
    color: #333;
}
.karnak-arrow-outlined .swiper-button-prev::after,
.karnak-arrow-outlined .swiper-button-next::after {
    font-size: 16px;
}

/* ── Archive Products Widget ───────────────────────────── */

.karnak-archive-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}
.karnak-archive-toolbar .woocommerce-result-count {
    margin: 0;
    font-size: 0.875em;
    color: inherit;
}
.karnak-archive-toolbar .woocommerce-ordering {
    margin: 0;
}

.karnak-archive-pagination {
    margin-top: 24px;
    text-align: center;
}
.karnak-archive-pagination .woocommerce-pagination {
    display: flex;
    justify-content: center;
}

/* ── WooCommerce Products Widget ───────────────────────── */

/* Forzar herencia de fuente desde el widget padre, anulando estilos del theme y WooCommerce */
.karnak-woo-products .karnak-woo-card,
.karnak-woo-products .karnak-woo-title,
.karnak-woo-products .karnak-woo-title a,
.karnak-woo-products .karnak-woo-price,
.karnak-woo-products .karnak-woo-price *,
.karnak-woo-products .karnak-woo-category,
.karnak-woo-products .karnak-woo-category a,
.karnak-woo-products .karnak-woo-tag,
.karnak-woo-products .karnak-woo-cart-btn,
.karnak-woo-products .karnak-woo-stock {
    font-family: inherit;
}

.karnak-woo-products {
    display: grid;
    gap: var(--woo-gap, 20px);
}

.karnak-woo-card {
    display: flex;
    flex-direction: column;
    background: var(--woo-card-bg, #fff);
    border: var(--woo-card-border-width, 1px) solid var(--woo-card-border-color, #e5e7eb);
    border-radius: var(--woo-card-radius, 8px);
    box-shadow: var(--woo-card-shadow, none);
    overflow: hidden;
    padding: var(--woo-card-padding, 0);
    transition: box-shadow .2s;
}
.karnak-woo-card:hover {
    box-shadow: var(--woo-card-shadow, 0 4px 16px rgba(0,0,0,.1));
}

/* ── img-outer: envuelve la imagen para posicionar badges ── */
.karnak-woo-img-outer {
    position: relative;
    flex-shrink: 0;
    overflow: hidden;
    border-radius: var(--woo-card-radius, 8px);
}

/* ── Badges ─────────────────────────────────────────────── */
.karnak-woo-badges--image {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 4px;
    pointer-events: none;
}
.karnak-woo-badges--info {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 6px;
}
.karnak-woo-badge {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    padding: 3px 8px;
    border-radius: 4px;
    line-height: 1.4;
    pointer-events: none;
}
.karnak-woo-badge--sale     { background: #e94560; color: #fff; }
.karnak-woo-badge--new      { background: #16a34a; color: #fff; }
.karnak-woo-badge--featured { background: #d97706; color: #fff; }

/* ── Filtros de productos — sidebar ─────────────────────── */
.karnak-woo-wrap {
    display: flex;
    gap: 28px;
    align-items: flex-start;
}
.karnak-woo-wrap > .karnak-woo-products {
    flex: 1;
    min-width: 0;
}
.karnak-woo-filters {
    width: 280px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.karnak-woo-filter-group {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.karnak-woo-filters .karnak-woo-filter-title {
    font-family: var(--woo-filter-title-font, var(--karnak-p-family, inherit));
    font-size: var(--woo-filter-title-size, 11px);
    font-weight: var(--woo-filter-title-weight, 700);
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--woo-filter-title-color, #999);
    margin: 0 0 6px;
}
.karnak-woo-filters .karnak-woo-filter-btn {
    padding: 6px 12px;
    border-radius: var(--woo-filter-btn-radius, 6px);
    background: var(--woo-filter-btn-bg, #fff);
    font-family: var(--woo-filter-btn-font, var(--karnak-p-family, inherit));
    font-size: var(--woo-filter-btn-size, 13px);
    font-weight: var(--woo-filter-btn-weight, var(--karnak-p-weight, inherit));
    cursor: pointer;
    text-align: left;
    transition: background .15s, border-color .15s, color .15s;
    color: var(--woo-filter-btn-color, #555);
}
.karnak-woo-filters .karnak-woo-filter-btn:hover {
    border-color: var(--woo-filter-hover-border, var(--woo-filter-active-bg, var(--karnak-btn-bg, #e94560)));
    color: var(--woo-filter-hover-color, var(--woo-filter-active-bg, var(--karnak-btn-bg, #e94560)));
    background: var(--woo-filter-hover-bg, var(--woo-filter-btn-bg, #fff));
}
.karnak-woo-filters .karnak-woo-filter-btn--active {
    background: var(--woo-filter-active-bg, var(--karnak-btn-bg, #e94560));
    color: var(--woo-filter-active-color, var(--woo-filter-btn-color, #555));
    border-color: var(--woo-filter-active-border, var(--woo-filter-active-bg, var(--karnak-btn-bg, #e94560)));
}
.karnak-woo-filters button {
    box-shadow: none;

}
.karnak-woo-price-custom {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #f0f0f0;
}
.karnak-woo-price-custom__row {
    display: flex;
    align-items: center;
    gap: 4px;
}
.karnak-woo-filters .karnak-woo-filter-sep { font-size: 12px; color: #bbb; flex-shrink: 0; }
.karnak-woo-filters .karnak-woo-price-min,
.karnak-woo-filters .karnak-woo-price-max {
    width: 0;
    flex: 1;
    min-width: 0;
    height: 30px;
    padding: 0 8px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font-family: var(--karnak-p-family, inherit);
    font-size: var(--karnak-p-size, 13px);
    box-sizing: border-box;
}
.karnak-woo-filters .karnak-woo-price-min:focus,
.karnak-woo-filters .karnak-woo-price-max:focus { outline: none; border-color: var(--karnak-btn-bg, #e94560); }
.karnak-woo-filters .karnak-woo-price-apply {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font-size: 18px;
    color: #555;
    cursor: pointer;
    line-height: 1;
    padding: 0;
}
.karnak-woo-filters .karnak-woo-price-apply:hover { border-color: var(--karnak-btn-bg, #e94560); color: var(--karnak-btn-bg, #e94560); }
.karnak-woo-active-chips { display: none; }
.karnak-woo-filter-cats__list { display: flex; flex-direction: column; gap: 4px; }
.karnak-woo-filter-cats__list--active { flex-direction: row; align-items: center; gap: 8px; }
.karnak-woo-chip__remove {
    background: none;
    border: 1px solid var(--woo-filter-active-color, var(--woo-filter-btn-color, #555));
    border-radius: 50%;
    cursor: pointer;
    color: var(--woo-filter-active-color, var(--woo-filter-btn-color, #555));
    font-size: 15px;
    line-height: 1;
    width: 22px;
    height: 22px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: none;
    transition: background .15s, color .15s;
}
.karnak-woo-chip__remove:hover {
    background: var(--woo-filter-active-bg, var(--karnak-btn-bg, #e94560));
    color: #fff;
}
@media (max-width: 767px) {
    .karnak-woo-wrap { flex-direction: column; }
    .karnak-woo-filters { width: 100%; flex-direction: row; flex-wrap: wrap; gap: 16px; }
    .karnak-woo-filter-group { min-width: 140px; flex: 1; }
}

.karnak-woo-img-wrap {
    display: block;
    aspect-ratio: var(--woo-img-ratio, 1 / 1);
    overflow: hidden;
    background: #f3f4f6;
}
.karnak-woo-img-wrap img,
.karnak-woo-img-wrap .karnak-woo-img {
    width: 100%;
    height: 100%;
    object-fit: var(--woo-img-fit, cover);
    display: block;
    transition: transform .3s;
}
.karnak-woo-card:hover .karnak-woo-img-wrap img { transform: scale(1.04); }

.karnak-woo-no-img {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    font-size: 2.5rem; color: #d1d5db;
}

.karnak-woo-info {
    padding: var(--woo-info-padding, 12px 16px);
    flex: 1;
    display: grid;
    grid-template-columns: repeat(var(--woo-info-cols, 1), 1fr);
    align-content: start;
    column-gap: 12px;
    text-align: var(--woo-info-align, left);
}

.karnak-woo-title {
    font-size: var(--woo-title-size, 1rem);
    font-weight: var(--woo-title-weight, 600);
    font-family: var(--woo-title-font, inherit);
    color: var(--woo-title-color, inherit);
    margin: 0 0 6px;
    line-height: 1.35;
    grid-column: var(--woo-col-title, auto);
}
.karnak-woo-title a { color: inherit; text-decoration: none; }
.karnak-woo-title a:hover { color: #e94560; }

.karnak-woo-price {
    font-size: var(--woo-price-size, 1.05rem);
    font-weight: var(--woo-price-weight, 700);
    color: var(--woo-price-color, #e94560);
    line-height: 1;
    grid-column: var(--woo-col-price, auto);
}
.karnak-woo-price del { color: #9ca3af; font-size: .85em; font-weight: 400; margin-right: 4px; }
.karnak-woo-price ins { text-decoration: none; }

.karnak-woo-btn {
    padding: var(--woo-info-padding, 12px 16px) !important;
    padding-top: 0 !important;
    text-align: var(--woo-info-align, left);
}
.karnak-woo-card--horizontal .karnak-woo-btn {
    padding: var(--woo-info-padding, 12px 16px) !important;
    padding-top: 0 !important;
}
.karnak-woo-card--horizontal .karnak-woo-cart-btn {
    display: inline-block;
    width: auto;
}
.karnak-woo-card .karnak-woo-cart-btn {
    display: block;
    margin: 0;
    padding: var(--karnak-btn-py, 10px) var(--karnak-btn-px, 16px);
    background: var(--woo-btn-bg, var(--karnak-btn-bg, #e94560)) !important;
    color: var(--woo-btn-color, var(--karnak-btn-color, #fff)) !important;
    border: none !important;
    border-radius: var(--woo-btn-radius, var(--karnak-btn-radius, 6px)) !important;
    font-family: var(--karnak-btn-family, inherit) !important;
    font-size: var(--woo-btn-size, var(--karnak-btn-size, .875rem)) !important;
    font-weight: var(--karnak-btn-weight, 600) !important;
    font-style: var(--karnak-btn-style, normal) !important;
    letter-spacing: var(--karnak-btn-spacing, normal) !important;
    text-transform: var(--karnak-btn-transform, none) !important;
    text-align: center;
    text-decoration: none !important;
    cursor: pointer;
    transition: background .2s, color .2s;
    box-shadow: none !important;
}
.karnak-woo-card .karnak-woo-cart-btn:hover {
    background: var(--woo-btn-bg, var(--karnak-btn-bg, #e94560)) !important;
    filter: brightness(.85);
    color: var(--woo-btn-color, var(--karnak-btn-color, #fff)) !important;
}
.karnak-woo-card .karnak-woo-cart-btn.added  { background: #16a34a !important; filter: none; }
.karnak-woo-card .karnak-woo-cart-btn.loading { opacity: .7; pointer-events: none; }

.karnak-woo-empty,
.karnak-woo-inactive {
    grid-column: 1 / -1;
    padding: 32px;
    text-align: center;
    background: #f9fafb;
    border: 1px dashed #d1d5db;
    border-radius: 8px;
    color: #6b7280;
    font-size: .9rem;
}

/* ── Card: Horizontal ───────────────────────────────────── */
.karnak-woo-card--horizontal {
    display: grid;
    grid-template-columns: var(--woo-horiz-img-width, 40%) 1fr;
    grid-template-rows: 1fr;
}
.karnak-woo-card--horizontal .karnak-woo-img-outer {
    grid-column: 1;
    grid-row: 1;
    min-height: 140px;
}
.karnak-woo-card--horizontal .karnak-woo-img-outer .karnak-woo-img-wrap {
    aspect-ratio: unset;
    height: 100%;
    width: 100%;
}
.karnak-woo-card--horizontal .karnak-woo-body {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.karnak-woo-card--horizontal .karnak-woo-info { flex: 1; }

/* ── Card: Overlay ──────────────────────────────────────── */
.karnak-woo-card--overlay {
    overflow: hidden;
}
.karnak-woo-img-wrap--overlay {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: var(--woo-img-ratio, 1 / 1);
    overflow: hidden;
    background: #f3f4f6;
}
.karnak-woo-img-wrap--overlay > a {
    display: block;
    width: 100%;
    height: 100%;
}
.karnak-woo-img-wrap--overlay img {
    width: 100%;
    height: 100%;
    object-fit: var(--woo-img-fit, cover);
    display: block;
    transition: transform .4s;
}
.karnak-woo-card--overlay:hover .karnak-woo-img-wrap--overlay img { transform: scale(1.06); }
.karnak-woo-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 16px;
    background: var(--woo-overlay-bg, linear-gradient(to top, rgba(0,0,0,.75) 0%, rgba(0,0,0,.2) 70%, transparent 100%));
    color: var(--woo-overlay-color, #fff);
}
.karnak-woo-overlay .karnak-woo-info {
    padding: 0;
    background: none;
}
.karnak-woo-overlay .karnak-woo-title a { color: var(--woo-overlay-color, #fff); }
.karnak-woo-overlay .karnak-woo-price  { color: var(--woo-overlay-color, #fff); }
.karnak-woo-overlay .karnak-woo-btn    { padding: 8px 0 0; }

/* ── Categoría ──────────────────────────────────────────── */
.karnak-woo-category {
    font-size: var(--woo-cat-size, .72rem);
    color: var(--woo-cat-color, #6b7280);
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: 4px;
    grid-column: var(--woo-col-cat, auto);
}
.karnak-woo-category a { color: inherit; text-decoration: none; }
.karnak-woo-category a:hover { color: #e94560; }

/* ── Etiquetas ──────────────────────────────────────────── */
.karnak-woo-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 6px;
    grid-column: var(--woo-col-tags, auto);
}
.karnak-woo-tag {
    display: inline-block;
    padding: 2px 8px;
    background: var(--woo-tag-bg, #f3f4f6);
    color: var(--woo-tag-color, #374151);
    border-radius: 99px;
    font-size: var(--woo-tag-size, .7rem);
}

/* ── Stock badge ────────────────────────────────────────── */
.karnak-woo-stock {
    display: inline-block;
    margin-top: 6px;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .02em;
    grid-column: var(--woo-col-stock, auto);
}
.karnak-woo-stock--in  { background: #dcfce7; color: #16a34a; }
.karnak-woo-stock--out { background: #fee2e2; color: #dc2626; }

/* ── Selector de cantidad (stepper) ─────────────────────── */
.karnak-woo-stepper {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 8px;
}
.karnak-woo-qty-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    background: var(--woo-qty-btn-bg, #f3f4f6);
    color: var(--woo-qty-btn-color, #374151);
    border: 1px solid var(--woo-qty-btn-border, #d1d5db);
    border-radius: var(--woo-qty-btn-radius, 4px);
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    transition: background .15s;
    padding: 0;
}
.karnak-woo-qty-btn:hover { filter: brightness(.92); }
.karnak-woo-qty-input {
    width: 48px;
    height: 32px;
    text-align: center;
    border: 1px solid var(--woo-qty-btn-border, #d1d5db);
    border-radius: var(--woo-qty-btn-radius, 4px);
    font-size: .875rem;
    -moz-appearance: textfield;
}
.karnak-woo-qty-input::-webkit-outer-spin-button,
.karnak-woo-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; }

/* ── Nav Menu ─────────────────────────────────────────────── */
.karnak-nav-menu { display: block; }
.karnak-nav-menu-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
}
.karnak-nav-menu-list li { display: block; }
.karnak-nav-menu-list a {
    display: inline-block;
    padding: 6px 12px;
    text-decoration: none;
    color: inherit;
    transition: opacity .15s;
}
.karnak-nav-menu-list a:hover { opacity: .7; }

/* ── Nav wrap (drawer / overlay) ──────────────────────────── */
.karnak-nav-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.karnak-nav-trigger {
    display: flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 6px 10px;
    color: inherit;
    font-size: inherit;
    font-family: inherit;
    line-height: 1;
}

.karnak-hamburger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 22px;
    flex-shrink: 0;
}
.karnak-hamburger span {
    display: block;
    height: 2px;
    background: currentColor;
    border-radius: 2px;
    transition: transform .25s ease, opacity .25s ease;
}
.karnak-nav-wrap.karnak-nav-open .karnak-hamburger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.karnak-nav-wrap.karnak-nav-open .karnak-hamburger span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.karnak-nav-wrap.karnak-nav-open .karnak-hamburger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Visibilidad según breakpoint */
.karnak-nav-bp-always .karnak-nav-inline  { display: none !important; }
.karnak-nav-bp-always .karnak-nav-trigger { display: flex; }

.karnak-nav-bp-mobile .karnak-nav-inline  { display: block; }
.karnak-nav-bp-mobile .karnak-nav-trigger { display: none; }
@media (max-width: 767px) {
    .karnak-nav-bp-mobile .karnak-nav-inline  { display: none !important; }
    .karnak-nav-bp-mobile .karnak-nav-trigger { display: flex; }
}

.karnak-nav-bp-tablet .karnak-nav-inline  { display: block; }
.karnak-nav-bp-tablet .karnak-nav-trigger { display: none; }
@media (max-width: 1024px) {
    .karnak-nav-bp-tablet .karnak-nav-inline  { display: none !important; }
    .karnak-nav-bp-tablet .karnak-nav-trigger { display: flex; }
}

/* Fondo oscuro (compartido por drawer y overlay) */
.karnak-nav-overlay-bg {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.5);
    z-index: 9990;
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s;
}
.karnak-nav-wrap.karnak-nav-open .karnak-nav-overlay-bg,
.karnak-nav-overlay-bg.karnak-nav-open {
    opacity: 1;
    pointer-events: all;
}

/* ── Drawer ──────────────────────────────────────────────── */
.karnak-drawer-panel {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: auto;
    width: min(320px, 85vw);
    background: #fff;
    color: #111;
    z-index: 9991;
    overflow-y: auto;
    padding: 20px 24px;
    box-shadow: 4px 0 32px rgba(0,0,0,.18);
    transform: translateX(-110%);
    transition: transform .35s cubic-bezier(.4, 0, .2, 1);
    will-change: transform;
}
.karnak-drawer-panel[data-side="right"] {
    left: auto;
    right: 0;
    transform: translateX(110%);
    box-shadow: -4px 0 32px rgba(0,0,0,.18);
}
.karnak-drawer-panel.karnak-nav-open,
.karnak-nav-wrap.karnak-nav-open .karnak-drawer-panel { transform: translateX(0) !important; }

.karnak-drawer-close {
    display: flex;
    justify-content: flex-end;
    width: 100%;
    background: none;
    border: none;
    font-size: 1.4rem;
    cursor: pointer;
    padding: 0 0 16px;
    color: inherit;
    line-height: 1;
}
.karnak-drawer-panel .karnak-nav-menu-list {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
}
.karnak-drawer-panel .karnak-nav-menu-list a {
    padding: 12px 0;
    font-size: 1rem;
    display: block;
    width: 100%;
    border-bottom: 1px solid rgba(0,0,0,.07);
}

/* ── Overlay ─────────────────────────────────────────────── */
.karnak-overlay-panel {
    position: fixed;
    inset: 0;
    background: rgba(10,10,10,.93);
    z-index: 9991;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s;
}
.karnak-overlay-panel.karnak-nav-open,
.karnak-nav-wrap.karnak-nav-open .karnak-overlay-panel {
    opacity: 1;
    pointer-events: all;
}
.karnak-overlay-close {
    position: absolute;
    top: 24px;
    right: 28px;
    background: none;
    border: none;
    color: #fff;
    font-size: 2rem;
    cursor: pointer;
    line-height: 1;
    padding: 0;
    opacity: .6;
    transition: opacity .15s;
}
.karnak-overlay-close:hover { opacity: 1; }
.karnak-overlay-panel .karnak-nav-menu-list {
    flex-direction: column;
    align-items: center;
    gap: 4px;
    text-align: center;
}
.karnak-overlay-panel .karnak-nav-menu-list a {
    font-size: 2rem;
    color: #fff;
    font-weight: 600;
    padding: 8px 24px;
    letter-spacing: -.01em;
    opacity: 1;
}
.karnak-overlay-panel .karnak-nav-menu-list a:hover { opacity: .6; }

/* ── Animaciones de entrada ──────────────────────────────── */
@keyframes knkFadeIn {
    from { opacity: 0 }
    to   { opacity: 1 }
}
@keyframes knkFadeInUp {
    from { opacity: 0; transform: translateY(30px) }
    to   { opacity: 1; transform: none }
}
@keyframes knkFadeInDown {
    from { opacity: 0; transform: translateY(-30px) }
    to   { opacity: 1; transform: none }
}
@keyframes knkFadeInLeft {
    from { opacity: 0; transform: translateX(-30px) }
    to   { opacity: 1; transform: none }
}
@keyframes knkFadeInRight {
    from { opacity: 0; transform: translateX(30px) }
    to   { opacity: 1; transform: none }
}
@keyframes knkZoomIn {
    from { opacity: 0; transform: scale(0.6) }
    to   { opacity: 1; transform: none }
}
@keyframes knkZoomInUp {
    from { opacity: 0; transform: scale(0.4) translateY(40px) }
    to   { opacity: 1; transform: none }
}
@keyframes knkSlideInUp {
    from { opacity: 0; transform: translateY(60px) }
    to   { opacity: 1; transform: none }
}
@keyframes knkSlideInLeft {
    from { opacity: 0; transform: translateX(-60px) }
    to   { opacity: 1; transform: none }
}
@keyframes knkSlideInRight {
    from { opacity: 0; transform: translateX(60px) }
    to   { opacity: 1; transform: none }
}
@keyframes knkBounceIn {
    0%   { opacity: 0; transform: scale(0.3) }
    50%  { opacity: 1; transform: scale(1.05) }
    70%  { transform: scale(0.9) }
    100% { opacity: 1; transform: scale(1) }
}

[data-knk-anim] { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
    [data-knk-anim] { opacity: 1 !important; animation: none !important; }
}

/* =========================================================
   POSTS WIDGET
   ========================================================= */
.karnak-post-card {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow .2s;
}
.karnak-post-card:hover { box-shadow: 0 4px 24px rgba(0,0,0,.12); }

/* Image wrapper + aspect ratios */
.karnak-post-img-outer { overflow: hidden; }
.karnak-post-img-wrap {
    position: relative;
    width: 100%;
    overflow: hidden;
}
.karnak-post-img-wrap img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .35s ease;
}
.karnak-post-card:hover .karnak-post-img-wrap img { transform: scale(1.04); }

/* Ratios */
.karnak-post-ratio-16-9  .karnak-post-img-wrap { padding-top: 56.25%; }
.karnak-post-ratio-4-3   .karnak-post-img-wrap { padding-top: 75%; }
.karnak-post-ratio-1-1   .karnak-post-img-wrap { padding-top: 100%; }
.karnak-post-ratio-3-2   .karnak-post-img-wrap { padding-top: 66.66%; }
.karnak-post-ratio-21-9  .karnak-post-img-wrap { padding-top: 42.86%; }

/* Card body */
.karnak-post-body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 8px;
}

/* Categories */
.karnak-post-cats { display: flex; flex-wrap: wrap; gap: 6px; }
.karnak-post-cat {
    display: inline-block;
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #fff;
    background: var(--knk-accent, #7c3aed);
    padding: 2px 10px;
    border-radius: 99px;
    text-decoration: none;
}
.karnak-post-cat:hover { opacity: .85; }

/* Title */
.karnak-post-title {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.4;
}
.karnak-post-title a { color: inherit; text-decoration: none; }
.karnak-post-title a:hover { color: var(--knk-accent, #7c3aed); }

/* Excerpt */
.karnak-post-excerpt { margin: 0; font-size: .9rem; line-height: 1.6; color: #555; }

/* Tags */
.karnak-post-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.karnak-post-tag {
    font-size: .72rem;
    color: #555;
    border: 1px solid #ddd;
    padding: 2px 8px;
    border-radius: 4px;
    text-decoration: none;
}
.karnak-post-tag:hover { border-color: var(--knk-accent, #7c3aed); color: var(--knk-accent, #7c3aed); }

/* Meta */
.karnak-post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: .8rem; color: #888; }
.karnak-post-meta-sep { color: #ccc; }

/* Read more */
.karnak-post-read-more {
    display: inline-block;
    margin-top: auto;
    padding: 8px 18px;
    border: 2px solid var(--knk-accent, #7c3aed);
    border-radius: 6px;
    color: var(--knk-accent, #7c3aed);
    font-size: .85rem;
    font-weight: 600;
    text-decoration: none;
    align-self: flex-start;
    transition: background .2s, color .2s;
}
.karnak-post-read-more:hover { background: var(--knk-accent, #7c3aed); color: #fff; }

/* Empty state */
.karnak-posts-empty { color: #999; font-size: .9rem; padding: 20px; }

/* --- OVERLAY layout --- */
.karnak-post-card--overlay {
    position: relative;
    min-height: 260px;
}
.karnak-post-card--overlay .karnak-post-img-outer {
    position: absolute;
    inset: 0;
    z-index: 0;
}
.karnak-post-card--overlay .karnak-post-img-wrap {
    position: absolute;
    inset: 0;
    padding: 0;
    height: 100%;
}
.karnak-post-card--overlay .karnak-post-body {
    position: relative;
    z-index: 1;
    margin-top: auto;
    background: linear-gradient(to top, rgba(0,0,0,.75) 0%, transparent 100%);
    color: #fff;
    border-radius: 0 0 8px 8px;
}
.karnak-post-card--overlay .karnak-post-excerpt,
.karnak-post-card--overlay .karnak-post-meta { color: rgba(255,255,255,.8); }
.karnak-post-card--overlay .karnak-post-title a { color: #fff; }
.karnak-post-card--overlay .karnak-post-cat { background: rgba(255,255,255,.2); }

/* --- HORIZONTAL layout --- */
.karnak-post-card--horizontal {
    flex-direction: row;
    align-items: stretch;
}
.karnak-post-card--horizontal .karnak-post-img-outer {
    width: 40%;
    flex-shrink: 0;
}
.karnak-post-card--horizontal .karnak-post-img-wrap {
    height: 100%;
    padding: 0;
}
.karnak-post-card--horizontal .karnak-post-img-wrap img { position: absolute; inset: 0; height: 100%; }
.karnak-post-card--horizontal .karnak-post-body { flex: 1; }

/* Masonry: break-inside already set inline */
.karnak-posts-masonry > .karnak-post-card { display: inline-block; width: 100%; }

/* List layout */
.karnak-posts-list { display: flex; flex-direction: column; }

/* Slider */
.karnak-posts-slider { width: 100%; }
.karnak-posts-slider .swiper-slide { height: auto; }
.karnak-posts-slider .swiper-slide > .karnak-post-card { height: 100%; }

/* Responsive: tablet */
@media (max-width: 1023px) {
    .karnak-post-card--horizontal .karnak-post-img-outer { width: 35%; }
}
/* Responsive: mobile */
@media (max-width: 767px) {
    .karnak-post-card--horizontal { flex-direction: column; }
    .karnak-post-card--horizontal .karnak-post-img-outer { width: 100%; }
    .karnak-post-card--horizontal .karnak-post-img-wrap { padding-top: 56.25%; position: relative; }
}

/* ============================================================
   PRICING WIDGET
   ============================================================ */
.karnak-pricing-grid {
    display: grid;
    align-items: start;
}

/* ── Card base ─────────────────────────────────────────────── */
.karnak-pricing-card {
    background:    var(--pricing-card-bg, #ffffff);
    border:        1px solid var(--pricing-card-border, #e5e7eb);
    border-radius: var(--pricing-card-radius, 12px);
    box-shadow:    var(--pricing-card-shadow);
    padding:       32px 24px;
    display:       flex;
    flex-direction: column;
    gap:           0;
    position:      relative;
    overflow:      hidden;
    text-align:    var(--pricing-align);
    transition:    box-shadow .2s, transform .2s;
}
.karnak-pricing-card:hover {
    box-shadow: 0 8px 32px rgba(0,0,0,.1);
}

/* ── Badge ─────────────────────────────────────────────────── */
.karnak-pricing-badge {
    display:         inline-block;
    background:      var(--pricing-badge-bg, #6366f1);
    color:           var(--pricing-badge-color, #ffffff);
    font-size:       var(--pricing-badge-size, 11px);
    font-weight:     700;
    letter-spacing:  .06em;
    text-transform:  uppercase;
    padding:         4px 12px;
    border-radius:   20px;
    margin-bottom:   16px;
    align-self:      flex-start;
}

/* ── Name / Description ────────────────────────────────────── */
.karnak-pricing-name {
    color:        var(--pricing-name-color);
    font-family:  var(--pricing-name-font);
    font-size:    var(--pricing-name-size, 18px);
    font-weight:  var(--pricing-name-weight, 700);
    margin-bottom: 8px;
}
.karnak-pricing-description {
    color:        var(--pricing-desc-color);
    font-size:    var(--pricing-desc-size, 14px);
    opacity:      .65;
    margin-bottom: 16px;
    line-height:  1.5;
}

/* ── Price ─────────────────────────────────────────────────── */
.karnak-pricing-price-wrap {
    display:      flex;
    align-items:  baseline;
    gap:          3px;
    margin-bottom: 20px;
    margin-top:   8px;
}
.karnak-pricing-currency {
    font-size:   var(--pricing-period-size, 22px);
    font-weight: 600;
    color:       var(--pricing-price-color, inherit);
}
.karnak-pricing-amount {
    font-size:   var(--pricing-price-size, 42px);
    font-weight: 800;
    line-height: 1;
    color:       var(--pricing-price-color, inherit);
}
.karnak-pricing-period {
    font-size:   var(--pricing-period-size, 14px);
    color:       var(--pricing-period-color);
    opacity:     .6;
    margin-left: 2px;
}
.karnak-pricing-was {
    font-size:       13px;
    opacity:         .5;
    text-decoration: line-through;
    margin-top:      -14px;
    margin-bottom:   12px;
}

/* ── Features ──────────────────────────────────────────────── */
.karnak-pricing-features {
    list-style:   none;
    margin:       0 0 24px;
    padding:      0;
    display:      flex;
    flex-direction: column;
    gap:          10px;
}
.karnak-pricing-feature {
    display:     flex;
    align-items: center;
    gap:         10px;
    color:       var(--pricing-feat-color);
    font-size:   var(--pricing-feat-size, 14px);
    line-height: 1.4;
}
.karnak-pricing-feature-icon {
    flex-shrink:  0;
    width:        20px;
    height:       20px;
    border-radius: 50%;
    display:      flex;
    align-items:  center;
    justify-content: center;
    font-size:    11px;
    font-weight:  700;
    background:   var(--pricing-check-color, #22c55e);
    color:        #fff;
}
.karnak-pricing-feature--excluded .karnak-pricing-feature-icon {
    background: var(--pricing-cross-color, #e5e7eb);
    color:      #9ca3af;
}
.karnak-pricing-feature--excluded {
    opacity: .55;
}
.karnak-pricing-features--divider {
    gap: 0;
}
.karnak-pricing-features--divider .karnak-pricing-feature {
    padding:       10px 0;
    border-bottom: 1px solid var(--pricing-divider-color, rgba(0,0,0,.08));
}
.karnak-pricing-features--divider .karnak-pricing-feature:last-child {
    border-bottom: none;
}
.karnak-pricing-featured .karnak-pricing-features--divider .karnak-pricing-feature {
    border-bottom-color: var(--pricing-divider-color, rgba(255,255,255,.15));
}

/* ── Button ────────────────────────────────────────────────── */
.karnak-pricing-btn {
    display:         block;
    text-align:      center;
    background:      var(--pricing-btn-bg, #6366f1);
    color:           var(--pricing-btn-color, #ffffff);
    border:          none;
    border-radius:   var(--pricing-btn-radius, 8px);
    padding:         12px 20px;
    font-size:       var(--pricing-btn-size, 15px);
    font-weight:     var(--pricing-btn-weight, 600);
    text-decoration: none;
    cursor:          pointer;
    margin-top:      auto;
    transition:      background .18s, opacity .18s;
}
.karnak-pricing-btn:hover {
    background: var(--pricing-btn-bg-hover, color-mix(in srgb, var(--pricing-btn-bg, #6366f1) 85%, #000));
    opacity:    .9;
}

/* ── Featured card ─────────────────────────────────────────── */
.karnak-pricing-featured {
    background:    var(--pricing-featured-bg, #6366f1);
    border-color:  var(--pricing-featured-border, #6366f1);
    color:         var(--pricing-featured-color, #ffffff);
    box-shadow:    0 12px 40px rgba(99,102,241,.25);
    transform:     translateY(-6px);
}
.karnak-pricing-featured .karnak-pricing-period {
    opacity: .75;
}
.karnak-pricing-featured .karnak-pricing-btn {
    background: var(--pricing-btn-bg-featured, #ffffff);
    color:      var(--pricing-btn-color-featured, #6366f1);
}
.karnak-pricing-featured .karnak-pricing-btn:hover {
    opacity: .9;
}

/* ── Design 2: badge centered at top ──────────────────────── */
.karnak-pricing-design-2 .karnak-pricing-badge {
    align-self:   center;
    margin-bottom: 20px;
}
.karnak-pricing-design-2 .karnak-pricing-card {
    text-align:   center;
}
.karnak-pricing-design-2 .karnak-pricing-price-wrap {
    justify-content: center;
}
.karnak-pricing-design-2 .karnak-pricing-features {
    text-align: left;
}

/* ── Design 3: compact rows ────────────────────────────────── */
.karnak-pricing-design-3 .karnak-pricing-grid {
    grid-template-columns: 1fr !important;
}
.karnak-pricing-design-3 .karnak-pricing-card {
    flex-direction: row;
    align-items:    center;
    padding:        20px 24px;
    gap:            16px;
    transform:      none !important;
}
.karnak-pricing-design-3 .karnak-pricing-name {
    flex:          1;
    margin-bottom: 0;
    font-size:     16px;
}
.karnak-pricing-design-3 .karnak-pricing-price-wrap {
    flex:          0 0 auto;
    margin:        0;
}
.karnak-pricing-design-3 .karnak-pricing-description,
.karnak-pricing-design-3 .karnak-pricing-features,
.karnak-pricing-design-3 .karnak-pricing-badge {
    display: none;
}
.karnak-pricing-design-3 .karnak-pricing-btn {
    flex:       0 0 auto;
    margin-top: 0;
    padding:    8px 18px;
    font-size:  14px;
}
.karnak-pricing-design-3 .karnak-pricing-amount {
    font-size: 26px;
}
.karnak-pricing-design-3 .karnak-pricing-currency {
    font-size: 16px;
}

/* ── Responsive ────────────────────────────────────────────── */
@media (max-width: 767px) {
    .karnak-pricing-featured {
        transform: none;
    }
}

/* ================================================================
   CARDS WIDGET
   ================================================================ */
.karnak-cards-grid {
    display:               grid;
    grid-template-columns: repeat(3, 1fr);
}

.karnak-card {
    background:     var(--card-bg, #ffffff);
    border:         1px solid var(--card-border, #e5e7eb);
    border-radius:  var(--card-radius, 8px);
    box-shadow:     var(--card-shadow);
    overflow:       hidden;
    display:        flex;
    flex-direction: column;
    transition:     background .2s ease, box-shadow .2s ease, border-color .2s ease;
    text-align:     var(--card-align, left);
}
.karnak-card:hover {
    background: var(--card-bg-hover, var(--card-bg, #ffffff));
    box-shadow: var(--card-shadow-hover, var(--card-shadow));
}

/* ── Imagen ──────────────────────────────────────────────────── */
.karnak-card-image {
    overflow:    hidden;
    flex-shrink: 0;
}
.karnak-card-image img {
    width:         100%;
    height:        100%;
    object-fit:    cover;
    display:       block;
    border-radius: var(--card-image-radius, 0);
}

/* ── Cuerpo ──────────────────────────────────────────────────── */
.karnak-card-body {
    padding:        var(--card-padding, 20px);
    display:        flex;
    flex-direction: column;
    gap:            8px;
    flex:           1;
}

/* ── Tipografías ─────────────────────────────────────────────── */
.karnak-card-title {
    margin:      0;
    color:       var(--card-title-color, #111827);
    font-family: var(--card-title-font, inherit);
    font-size:   var(--card-title-size, 20px);
    font-weight: var(--card-title-weight, 600);
    line-height: 1.3;
}
.karnak-card-subtitle {
    margin:      0;
    color:       var(--card-subtitle-color, #6b7280);
    font-size:   var(--card-subtitle-size, 14px);
    font-weight: var(--card-subtitle-weight, 400);
    line-height: 1.4;
}
.karnak-card-text {
    margin:      0;
    color:       var(--card-text-color, #374151);
    font-size:   var(--card-text-size, 15px);
    line-height: 1.6;
    flex:        1;
}

/* ── Botón ───────────────────────────────────────────────────── */
.karnak-card-btn {
    display:         inline-block;
    align-self:      flex-start;
    margin-top:      4px;
    padding:         8px 20px;
    background:      var(--card-btn-bg, #6366f1);
    color:           var(--card-btn-color, #ffffff);
    font-size:       var(--card-btn-size, 14px);
    font-weight:     var(--card-btn-weight, 600);
    border-radius:   var(--card-btn-radius, 6px);
    text-decoration: none;
    transition:      background .2s ease, color .2s ease;
}
.karnak-card-btn:hover {
    background: var(--card-btn-bg-hover, #4f46e5);
    color:      var(--card-btn-color-hover, #ffffff);
}
.karnak-cards-grid[style*="--card-align:center"] .karnak-card-btn,
.karnak-cards-swiper[style*="--card-align:center"] .karnak-card-btn {
    align-self: center;
}

/* ── Diseño 1 (vertical por defecto) ────────────────────────── */
.karnak-card-design-1 .karnak-card-image {
    aspect-ratio: 16 / 9;
}

/* ── Diseño 2 (overlay) ─────────────────────────────────────── */
.karnak-card-design-2 .karnak-card-image-overlay {
    position:     relative;
    aspect-ratio: 4 / 3;
}
.karnak-card-design-2 .karnak-card-overlay {
    position:   absolute;
    bottom:     0; left: 0; right: 0;
    padding:    16px;
    background: linear-gradient(to top, rgba(0,0,0,.7) 0%, transparent 100%);
}
.karnak-card-design-2 .karnak-card-overlay .karnak-card-title,
.karnak-card-design-2 .karnak-card-overlay .karnak-card-subtitle {
    color: #fff;
}

/* ── Diseño 3 (imagen izquierda) ────────────────────────────── */
.karnak-card-design-3 {
    flex-direction: row;
    align-items:    stretch;
}
.karnak-card-design-3 .karnak-card-image {
    flex:       0 0 40%;
    min-height: 180px;
}
.karnak-card-design-3 .karnak-card-image img {
    height: 100%;
}

/* ── Diseño 4 (avatar + título en fila, texto abajo) ────────── */
.karnak-card-header {
    display:        flex;
    gap:            12px;
    align-items:    center;
    padding:        var(--card-padding, 20px);
    padding-bottom: 0;
}
.karnak-card-design-4 .karnak-card-image {
    flex:          0 0 56px;
    width:         56px;
    height:        56px;
    border-radius: 50%;
    overflow:      hidden;
}
.karnak-card-design-4 .karnak-card-image img {
    width:         100%;
    height:        100%;
    border-radius: 50%;
}
.karnak-card-header-text {
    flex:      1;
    min-width: 0;
}
.karnak-card-header-text .karnak-card-title {
    font-size: var(--card-title-size, 16px);
}

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 767px) {
    .karnak-card-design-3 {
        flex-direction: column;
    }
    .karnak-card-design-3 .karnak-card-image {
        flex:   none;
        height: 200px;
    }
}

/* =========================================================
   COUNTER
   ========================================================= */
.karnak-counter-grid {
    display: grid;
}
.karnak-counter-item {
    display:        flex;
    flex-direction: column;
    align-items:    center;
    text-align:     var(--counter-align, center);
    padding:        var(--counter-item-padding, 24px 16px);
    background:     var(--counter-item-bg, transparent);
    border-radius:  var(--counter-item-radius, 0);
}
.karnak-counter-item--left  { align-items: flex-start; }
.karnak-counter-item--right { align-items: flex-end; }

.karnak-counter-item--inline {
    flex-direction: row;
    gap:            20px;
    align-items:    center;
}
.karnak-counter-item--inline .karnak-counter-texts {
    display:        flex;
    flex-direction: column;
    gap:            4px;
    text-align:     var(--counter-align, left);
}

.karnak-counter-number-wrap {
    display:         flex;
    align-items:     baseline;
    gap:             3px;
    justify-content: var(--counter-align, center);
}
.karnak-counter-item--left  .karnak-counter-number-wrap { justify-content: flex-start; }
.karnak-counter-item--right .karnak-counter-number-wrap { justify-content: flex-end; }

.karnak-counter-number {
    color:       var(--counter-number-color, currentColor);
    font-size:   var(--counter-number-size, 3rem);
    font-weight: var(--counter-number-weight, 700);
    font-family: var(--counter-number-font, inherit);
    line-height: 1.1;
}
.karnak-counter-symbol {
    color:       var(--counter-symbol-color, var(--counter-number-color, currentColor));
    font-size:   var(--counter-symbol-size, 1.5rem);
    font-weight: var(--counter-number-weight, 700);
    font-family: var(--counter-number-font, inherit);
    line-height: 1.1;
}
.karnak-counter-symbol:empty { display: none; }

.karnak-counter-top {
    color:         var(--counter-top-color, currentColor);
    font-size:     var(--counter-top-size, .85rem);
    font-family:   var(--counter-text-font, inherit);
    margin-bottom: 4px;
}
.karnak-counter-bottom {
    color:       var(--counter-bottom-color, currentColor);
    font-size:   var(--counter-bottom-size, .9rem);
    font-family: var(--counter-text-font, inherit);
    margin-top:  6px;
}
.karnak-counter-top:empty,
.karnak-counter-bottom:empty { display: none; }

/* =========================================================
   COUNTDOWN
   ========================================================= */
.karnak-countdown {
    display:         flex;
    align-items:     flex-start;
    justify-content: var(--kcd-justify, center);
    gap:             var(--kcd-gap, 16px);
    flex-wrap:       wrap;
}
.karnak-cd-unit {
    display:        flex;
    flex-direction: column;
    align-items:    center;
    min-width:      60px;
    background:     var(--kcd-box-bg, transparent);
    border-radius:  var(--kcd-box-radius, 8px);
    padding:        var(--kcd-box-padding, 16px 20px);
}
.karnak-cd-num {
    display:     block;
    color:       var(--kcd-num-color, currentColor);
    font-size:   var(--kcd-num-size, 3rem);
    font-weight: var(--kcd-num-weight, 700);
    font-family: var(--kcd-num-font, inherit);
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.karnak-cd-label {
    display:     block;
    color:       var(--kcd-label-color, currentColor);
    font-size:   var(--kcd-label-size, .75rem);
    margin-top:  6px;
    text-transform: uppercase;
    letter-spacing: .05em;
    opacity: .7;
}
.karnak-cd-sep {
    color:       var(--kcd-sep-color, currentColor);
    font-size:   var(--kcd-num-size, 3rem);
    font-weight: var(--kcd-num-weight, 700);
    line-height: 1;
    align-self:  flex-start;
    padding-top: var(--kcd-box-padding, 16px 20px);
    opacity:     .5;
}
.karnak-cd-expired {
    text-align: center;
    opacity:    .6;
    font-style: italic;
    padding:    12px 0;
}

/* layout: minimal — sin cajas */
.karnak-cd-minimal .karnak-cd-unit { background: transparent; border-radius: 0; padding: 0 4px; }

/* layout: inline — números y etiqueta en la misma línea */
.karnak-cd-inline { align-items: center; }
.karnak-cd-inline .karnak-cd-unit { flex-direction: row; gap: 6px; align-items: baseline; min-width: 0; background: transparent; border-radius: 0; padding: 0; }
.karnak-cd-inline .karnak-cd-label { margin-top: 0; text-transform: none; letter-spacing: 0; opacity: 1; font-size: var(--kcd-num-size, 3rem); }

/* =========================================================
   MENU CART
   ========================================================= */
.karnak-menu-cart {
    position:    relative;
    display:     inline-flex;
    align-items: center;
    gap:         6px;
    color:       inherit;
    text-decoration: none;
    line-height: 1;
}

.karnak-mc-icon {
    display:     flex;
    align-items: center;
    color:       var(--mc-icon-color, currentColor);
}
.karnak-mc-icon svg {
    width:  var(--mc-icon-size, 24px);
    height: var(--mc-icon-size, 24px);
    display: block;
}

.karnak-mc-badge {
    position:    absolute;
    top:         -6px;
    right:       -8px;
    min-width:   var(--mc-badge-size, 18px);
    height:      var(--mc-badge-size, 18px);
    padding:     0 4px;
    background:  var(--mc-badge-bg, #e53e3e);
    color:       var(--mc-badge-color, #fff);
    font-size:   calc(var(--mc-badge-size, 18px) * 0.6);
    font-weight: 700;
    border-radius: 999px;
    display:     flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    box-sizing:  border-box;
}
.karnak-mc-badge:empty,
.karnak-mc-badge[data-cart-count="1"]:empty { display: none; }

.karnak-mc-total {
    color:       var(--mc-total-color, currentColor);
    font-size:   var(--mc-total-size, 0.875rem);
    font-weight: var(--mc-total-weight, 500);
    white-space: nowrap;
}

/* =========================================================
   PRODUCT CATEGORIES
   ========================================================= */
.karnak-pcat-grid {
    display: grid;
}
.karnak-pcat-item {
    display: block;
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    border-radius: var(--pcat-radius, 0);
    text-align: var(--pcat-align, center);
}
.karnak-pcat-img-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: var(--pcat-img-ratio, 1/1);
    overflow: hidden;
    border-radius: var(--pcat-radius, 0);
    background: #f0f0f0;
}
.karnak-pcat-img-wrap--circle {
    border-radius: 50%;
    overflow: hidden;
}
.karnak-pcat-img-wrap--circle .karnak-pcat-img { border-radius: 50%; }
.karnak-pcat-img-wrap--circle .karnak-pcat-overlay { border-radius: 50%; }
.karnak-pcat-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}
.karnak-pcat-item:hover .karnak-pcat-img { transform: scale(1.04); }
.karnak-pcat-no-img {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    background: #e8e8e8;
}
.karnak-pcat-body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--pcat-body-padding, 10px 4px 4px);
    background: var(--pcat-body-bg, transparent);
}
.karnak-pcat-item--2 .karnak-pcat-img-wrap:not(.karnak-pcat-img-wrap--circle) { border-radius: var(--pcat-radius, 0); }
.karnak-pcat-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    padding: 16px 12px;
    background: var(--pcat-overlay-bg, linear-gradient(to top, rgba(0,0,0,.65) 0%, transparent 60%));
    color: #fff;
    text-align: var(--pcat-align, center);
}
.karnak-pcat-item--2 .karnak-pcat-name { color: var(--pcat-name-color, #fff); }
.karnak-pcat-item--2 .karnak-pcat-count { color: var(--pcat-count-color, rgba(255,255,255,.8)); }
.karnak-pcat-name {
    font-size: var(--pcat-name-size, 0.95rem);
    font-weight: var(--pcat-name-weight, 600);
    font-family: var(--pcat-name-font, inherit);
    color: var(--pcat-name-color, currentColor);
    line-height: 1.2;
}
.karnak-pcat-count {
    font-size: var(--pcat-count-size, 0.8rem);
    color: var(--pcat-count-color, #888);
}
.karnak-pcat-count:empty { display: none; }

/* =========================================================
   SINGLE PRODUCT WIDGETS
   ========================================================= */

/* product_title */
.karnak-sp-title {
    margin: 0;
    color: var(--spt-color, inherit);
    font-size: var(--spt-size, 1.8em);
    font-weight: var(--spt-weight, 700);
    font-family: var(--spt-font, inherit);
    text-align: var(--spt-align, left);
    line-height: var(--spt-line-height, 1.2);
}

/* product_price */
.karnak-sp-price {
    text-align: var(--spp-align, left);
}
.karnak-sp-price .price {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
}
.karnak-sp-price .woocommerce-Price-amount {
    font-size: var(--spp-size, 1.4em);
    font-weight: var(--spp-weight, 700);
    color: var(--spp-color, #2d2d2d);
}
.karnak-sp-price del .woocommerce-Price-amount {
    font-size: var(--spp-del-size, 1em);
    color: var(--spp-del-color, #999);
    font-weight: 400;
}
.karnak-sp-price ins {
    text-decoration: none;
}

/* product_rating */
.karnak-sp-rating .woocommerce-product-rating {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: var(--spr-size, 0.9em);
    justify-content: var(--spr-align, flex-start);
}
.karnak-sp-rating .star-rating {
    font-size: var(--spr-size, 0.9em);
    color: var(--spr-star-color, #f5a623);
}
.karnak-sp-rating .woocommerce-review-link {
    color: var(--spr-count-color, #888);
    font-size: 0.9em;
    text-decoration: none;
}
.karnak-sp-rating .woocommerce-review-link:hover { text-decoration: underline; }

/* product_stock */
.karnak-sp-stock {
    font-size: var(--spst-size, 0.9em);
    font-weight: var(--spst-weight, 600);
}
.karnak-sp-stock--in  { color: var(--spst-in-color,  #3a7d44); }
.karnak-sp-stock--out { color: var(--spst-out-color, #c0392b); }

/* product_short_desc */
.karnak-sp-short-desc {
    font-size: var(--spd-size, 0.95em);
    color: var(--spd-color, #555);
    line-height: var(--spd-line-height, 1.6);
}
.karnak-sp-short-desc p:last-child { margin-bottom: 0; }

/* product_meta */
.karnak-sp-meta {
    display: flex;
    flex-direction: column;
    gap: var(--spm-gap, 6px);
    font-size: var(--spm-size, 0.85em);
}
.karnak-sp-meta-row { display: flex; flex-wrap: wrap; gap: 4px; }
.karnak-sp-meta-label { color: var(--spm-label-color, #888); font-weight: 600; }
.karnak-sp-meta-value { color: var(--spm-value-color, inherit); }
.karnak-sp-meta-value a { color: inherit; text-decoration: none; }
.karnak-sp-meta-value a:hover { text-decoration: underline; }

/* custom_add_to_cart */
.karnak-catc-image img { width: 100%; height: auto; display: block; }
.karnak-catc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--catc-btn-padding, 10px 24px);
    background: var(--catc-btn-bg, #2d2d2d);
    color: var(--catc-btn-color, #fff);
    border: none;
    border-radius: var(--catc-btn-radius, 4px);
    font-size: var(--catc-btn-size, 0.95em);
    cursor: pointer;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.2s;
}
.karnak-catc-btn:hover {
    background: var(--catc-btn-hover-bg, var(--catc-btn-bg, #444));
    color: var(--catc-btn-color, #fff);
}
.karnak-catc-cart { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0; }

/* product_add_to_cart */
.karnak-sp-add-to-cart .quantity input[type="number"] {
    border-color: var(--spatc-qty-border, #ddd);
    background: var(--spatc-qty-bg, #fff);
    font-size: var(--spatc-qty-size, 1em);
}
.karnak-sp-add-to-cart .single_add_to_cart_button {
    background: var(--spatc-btn-bg, #2d2d2d) !important;
    color: var(--spatc-btn-color, #fff) !important;
    border-radius: var(--spatc-btn-radius, 4px) !important;
    font-size: var(--spatc-btn-size, 0.95em) !important;
    padding: var(--spatc-btn-padding, 10px 24px) !important;
    border: none !important;
    cursor: pointer;
    font-weight: 600;
    transition: background 0.2s;
}
.karnak-sp-add-to-cart .single_add_to_cart_button:hover {
    background: var(--spatc-btn-hover-bg, #444) !important;
}

/* product_images */
.karnak-sp-images .woocommerce-product-gallery__image {
    border-radius: var(--spi-radius, 0);
    overflow: hidden;
}
.karnak-sp-images .woocommerce-product-gallery__wrapper { border-radius: var(--spi-radius, 0); overflow: hidden; }
.karnak-sp-images .flex-control-thumbs { gap: var(--spi-thumb-gap, 8px); display: flex; flex-wrap: wrap; margin-top: var(--spi-thumb-gap, 8px); }
.karnak-sp-images .flex-control-thumbs li { border-radius: var(--spi-thumb-radius, 4px); overflow: hidden; }
.karnak-sp-images .flex-control-thumbs img { border-radius: var(--spi-thumb-radius, 4px); }

/* product_tabs */
.karnak-sp-tabs .wc-tabs {
    display: flex;
    gap: 0;
    border-bottom: 2px solid #eee;
    margin: 0;
    padding: 0;
    list-style: none;
}
.karnak-sp-tabs .wc-tabs li a {
    display: block;
    padding: 10px 18px;
    color: var(--spTab-tab-color, #888);
    background: var(--spTab-tab-bg, transparent);
    font-size: var(--spTab-tab-size, 0.9em);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color 0.15s;
}
.karnak-sp-tabs .wc-tabs li.active a {
    color: var(--spTab-tab-active-color, #333);
    background: var(--spTab-tab-active-bg, transparent);
    border-bottom-color: var(--spTab-tab-active-border, #333);
    font-weight: 600;
}
.karnak-sp-tabs .woocommerce-Tabs-panel {
    padding: var(--spTab-content-padding, 16px);
    background: var(--spTab-content-bg, transparent);
    color: var(--spTab-content-color, inherit);
    font-size: var(--spTab-content-size, 0.9em);
}

/* product_related / product_upsells */
.karnak-sp-related-heading {
    margin: 0 0 16px;
    color: var(--sprl-heading-color, inherit);
    font-size: var(--sprl-heading-size, 1.2em);
    font-weight: var(--sprl-heading-weight, 700);
    text-align: var(--sprl-heading-align, left);
}
.karnak-sp-related-grid {
    display: grid;
}
.karnak-sp-related-card {
    background: var(--sprl-card-bg, #fff);
    border-radius: var(--sprl-card-radius, 6px);
    box-shadow: var(--sprl-card-shadow, none);
    overflow: hidden;
}
.karnak-sp-related-img {
    display: block;
}
.karnak-sp-related-img img {
    width: 100%;
    aspect-ratio: var(--sprl-img-ratio, 1/1);
    object-fit: cover;
    display: block;
}
.karnak-sp-related-body {
    padding: 12px;
}
.karnak-sp-related-name {
    display: block;
    color: var(--sprl-title-color, inherit);
    font-size: var(--sprl-title-size, 0.9em);
    font-weight: var(--sprl-title-weight, 600);
    text-decoration: none;
    margin-bottom: 4px;
    line-height: 1.3;
}
.karnak-sp-related-name:hover { text-decoration: underline; }
.karnak-sp-related-price .price {
    font-size: var(--sprl-price-size, 0.9em);
    color: var(--sprl-price-color, #2d2d2d);
}

/* Generic placeholder for editor context */
.karnak-sp-placeholder {
    padding: 12px 16px;
    background: #f5f5f5;
    border: 1px dashed #ccc;
    border-radius: 4px;
    color: #888;
    font-size: 0.85em;
    text-align: center;
}

/* =========================================================
   PRODUCT COMPARISON
   ========================================================= */
.karnak-comparison {
    --kcp-header-bg:    #1a1a2e;
    --kcp-header-color: #ffffff;
    --kcp-row-bg:       #ffffff;
    --kcp-row-alt-bg:   #f7f8fc;
    --kcp-border-color: #e0e4ef;
    --kcp-radius:       10px;
    --kcp-name-size:    1rem;
    --kcp-name-weight:  600;
    --kcp-label-color:  #444;
    --kcp-label-size:   0.9rem;
    --kcp-value-color:  #222;
    --kcp-value-size:   0.9rem;
    overflow-x:         auto;
}
.karnak-cmp-table {
    width:           100%;
    border-collapse: collapse;
    border-radius:   var(--kcp-radius);
    overflow:        hidden;
    border:          1px solid var(--kcp-border-color);
}
.karnak-cmp-table thead tr {
    background: var(--kcp-header-bg);
    color:      var(--kcp-header-color);
}
.karnak-cmp-table thead th {
    padding:    16px 12px;
    text-align: center;
    font-weight: var(--kcp-name-weight);
    font-size:  var(--kcp-name-size);
    border-right: 1px solid rgba(255,255,255,.1);
}
.karnak-cmp-table thead th:last-child { border-right: none; }
.karnak-cmp-feature-col {
    text-align: left !important;
    min-width:  140px;
}
.karnak-cmp-img {
    display:       block;
    margin:        0 auto 8px;
    width:         64px;
    height:        64px;
    object-fit:    cover;
    border-radius: 6px;
}
.karnak-cmp-name {
    font-size:   var(--kcp-name-size);
    font-weight: var(--kcp-name-weight);
    color:       var(--kcp-header-color);
    margin-bottom: 4px;
}
.karnak-cmp-price {
    font-size:   0.9em;
    opacity:     .8;
    color:       var(--kcp-header-color);
}
.karnak-cmp-row {
    background: var(--kcp-row-bg);
}
.karnak-cmp-alt {
    background: var(--kcp-row-alt-bg);
}
.karnak-cmp-row td {
    padding:      11px 14px;
    border-top:   1px solid var(--kcp-border-color);
    border-right: 1px solid var(--kcp-border-color);
    text-align:   center;
}
.karnak-cmp-row td:last-child { border-right: none; }
.karnak-cmp-label {
    text-align:  left !important;
    color:       var(--kcp-label-color) !important;
    font-size:   var(--kcp-label-size) !important;
    font-weight: 500;
}
.karnak-cmp-value {
    color:     var(--kcp-value-color);
    font-size: var(--kcp-value-size);
}

/* ── Social share ────────────────────────────────────────────────────── */
.karnak-social-share {
    --kss-size:         40px;
    --kss-gap:          8px;
    --kss-bg:           #f1f3f5;
    --kss-color:        #333333;
    --kss-radius:       50%;
    --kss-justify:      flex-start;
    --kss-label-color:  currentColor;
    --kss-label-size:   0.85rem;
    --kss-label-weight: 400;
    display:     flex;
    align-items: center;
    flex-wrap:   wrap;
    gap:         10px;
}
.karnak-ss-intro {
    font-size:   var(--kss-label-size);
    font-weight: var(--kss-label-weight);
    color:       var(--kss-label-color);
    white-space: nowrap;
}
.karnak-ss-buttons {
    display:         flex;
    flex-wrap:       wrap;
    gap:             var(--kss-gap);
    justify-content: var(--kss-justify);
}
.karnak-ss-btn {
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    gap:             6px;
    width:           var(--kss-size);
    height:          var(--kss-size);
    border-radius:   var(--kss-radius);
    background:      var(--kss-bg);
    color:           var(--kss-color);
    border:          none;
    cursor:          pointer;
    text-decoration: none;
    transition:      opacity .15s, transform .1s;
    padding:         0;
    flex-shrink:     0;
}
.karnak-ss-btn:hover  { opacity: .85; transform: translateY(-1px); }
.karnak-ss-btn:active { transform: scale(.94); }
.karnak-ss-icon {
    display:     flex;
    align-items: center;
    width:       calc(var(--kss-size) * .5);
    height:      calc(var(--kss-size) * .5);
    flex-shrink: 0;
}
.karnak-ss-icon svg { width: 100%; height: 100%; }
.karnak-ss-label {
    font-size:   var(--kss-label-size);
    font-weight: 600;
    white-space: nowrap;
    padding:     0 4px;
}
/* when label is shown alongside icon, add padding */
.karnak-ss-btn:has(.karnak-ss-icon):has(.karnak-ss-label) {
    width:   auto;
    padding: 0 14px;
}
/* label-only: auto width */
.karnak-ss-btn:not(:has(.karnak-ss-icon)) {
    width:   auto;
    padding: 0 14px;
}
.karnak-ss-btn.karnak-ss-copied { opacity: .7; }

/* ── Icon list ────────────────────────────────────────────────────────── */
.karnak-icon-list {
    --kil-icon-color:    currentColor;
    --kil-icon-size:     20px;
    --kil-icon-bg:       transparent;
    --kil-icon-radius:   0px;
    --kil-text-color:    inherit;
    --kil-text-size:     1rem;
    --kil-text-weight:   400;
    --kil-text-font:     inherit;
    --kil-icon-gap:      10px;
    --kil-item-gap:      10px;
    --kil-divider-color: rgba(0,0,0,.1);
    --kil-divider-size:  1px;
    display:    flex;
    flex-direction: column;
    gap:        var(--kil-item-gap);
    margin:     0 !important;
    padding:    0 !important;
    list-style: none !important;
}
.karnak-icon-list--horizontal {
    flex-direction: row;
    flex-wrap:      wrap;
}
.karnak-icon-list-item {
    display:    block;
    list-style: none !important;
}
.karnak-icon-list--divider .karnak-icon-list-item {
    padding-bottom: var(--kil-item-gap);
    border-bottom:  var(--kil-divider-size) solid var(--kil-divider-color);
}
.karnak-icon-list--divider .karnak-icon-list-item:last-child {
    padding-bottom: 0;
    border-bottom:  none;
}
.karnak-icon-list-link {
    display:         flex;
    align-items:     center;
    gap:             var(--kil-icon-gap);
    color:           inherit;
    text-decoration: none;
}
.karnak-icon-list--icon-top .karnak-icon-list-link {
    flex-direction: column;
    align-items:    flex-start;
}
.karnak-icon-list-icon {
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    width:           var(--kil-icon-size);
    height:          var(--kil-icon-size);
    background:      var(--kil-icon-bg);
    border-radius:   var(--kil-icon-radius);
    color:           var(--kil-icon-color);
    flex-shrink:     0;
}
.karnak-icon-list-icon .dashicons {
    width:     100%;
    height:    100%;
    font-size: var(--kil-icon-size);
    line-height: 1;
}
.karnak-icon-list-text {
    color:       var(--kil-text-color);
    font-size:   var(--kil-text-size);
    font-weight: var(--kil-text-weight);
    font-family: var(--kil-text-font);
}

/* ── Layout: precio al pie ───────────────────────────────────────────── */
.karnak-cmp--price_bottom .karnak-cmp-price-row td {
    border-top: 2px solid var(--kcp-border-color);
}
.karnak-cmp-price-cell {
    vertical-align: middle;
}
.karnak-cmp-regular-price {
    font-size:       0.8em;
    text-decoration: line-through;
    opacity:         .55;
    color:           var(--kcp-value-color);
    margin-bottom:   2px;
}
.karnak-cmp-sale-price {
    font-size:   1.25em;
    font-weight: 700;
    color:       var(--kcp-value-color);
}

/* ── Layout: destacado ───────────────────────────────────────────────── */
.karnak-cmp-featured-col {
    background:  rgba(36,197,4,.08) !important;
    border-left: 2px solid rgba(36,197,4,.5) !important;
    border-right: 2px solid rgba(36,197,4,.5) !important;
    position:    relative;
}
.karnak-cmp-featured-badge {
    display:        inline-block;
    background:     #24c504;
    color:          #111;
    font-size:      10px;
    font-weight:    700;
    text-transform: uppercase;
    letter-spacing: .5px;
    padding:        3px 10px;
    border-radius:  20px;
    margin-bottom:  8px;
}
.karnak-cmp-featured-cell {
    background:   rgba(36,197,4,.05) !important;
    border-left:  2px solid rgba(36,197,4,.3) !important;
    border-right: 2px solid rgba(36,197,4,.3) !important;
    font-weight:  600;
}



/* ══════════════════════════════════════════
   KARNAK — Estilos globales de formularios
   ══════════════════════════════════════════ */

/* ── Labels ── */
.karnak-layout .form-row label,
.karnak-layout .form-row label.required_field,
.karnak-layout .cf7-field label {
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: #1C0D0A !important;
  margin-bottom: 6px !important;
  display: block !important;
}

/* ── Inputs, selects, textarea ── */
.karnak-layout input[type="text"],
.karnak-layout input[type="email"],
.karnak-layout input[type="tel"],
.karnak-layout input[type="url"],
.karnak-layout input[type="number"],
.karnak-layout input[type="password"],
.karnak-layout input[type="search"],
.karnak-layout select,
.karnak-layout textarea {
  width: 100% !important;
  box-sizing: border-box !important;
  font-size: 13px !important;
  padding: 8px 12px !important;
  background: #f8f8f6 !important;
  border: 1px solid #E5D7D1 !important;
  border-radius: 6px !important;
  color: #1C0D0A !important;
  transition: border-color .2s, box-shadow .2s !important;
  outline: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  height: auto !important;
  box-shadow: none !important;
  line-height: 1.4 !important;
  font-family: inherit !important;
}

/* ── Focus ── */
.karnak-layout input[type="text"]:focus,
.karnak-layout input[type="email"]:focus,
.karnak-layout input[type="tel"]:focus,
.karnak-layout input[type="url"]:focus,
.karnak-layout input[type="number"]:focus,
.karnak-layout input[type="password"]:focus,
.karnak-layout input[type="search"]:focus,
.karnak-layout select:focus,
.karnak-layout textarea:focus {
  border-color: #005EEA !important;
  box-shadow: 0 0 0 3px rgba(0,94,234,.1) !important;
}

/* ── Textarea ── */
.karnak-layout textarea {
  resize: vertical !important;
  min-height: 80px !important;
  line-height: 1.6 !important;
}

/* ── Filas WooCommerce ── */
.karnak-layout .form-row {
  width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 0 12px 0 !important;
  padding: 0 !important;
  float: none !important;
}

.karnak-layout .woocommerce-input-wrapper {
  width: 100% !important;
  display: block !important;
}

/* ── Notices WC (cupón, login, etc.) ── */
.karnak-layout .woocommerce-info,
.karnak-layout .woocommerce-message,
.karnak-layout .woocommerce-error {
  font-family: inherit !important;
  font-size: 13px !important;
}
.karnak-layout .woocommerce-info a,
.karnak-layout .woocommerce-message a,
.karnak-layout .woocommerce-error a {
  font-family: inherit !important;
}

/* ── Errores ── */
.karnak-layout .woocommerce-invalid .input-text,
.karnak-layout .woocommerce-invalid select,
.karnak-layout .wpcf7-not-valid {
  border-color: #dc2626 !important;
}
.karnak-layout .wpcf7-not-valid-tip,
.karnak-layout .woocommerce-error {
  font-size: 12px !important;
  color: #dc2626 !important;
  margin-top: 4px !important;
}

/* ══════════════════════════════════════════
   CHECKOUT — específico
   ══════════════════════════════════════════ */

/* Layout 2 columnas: form | resumen */
.karnak-layout form.woocommerce-checkout {
  display: grid !important;
  grid-template-columns: 1fr 380px !important;
  grid-template-rows: auto 1fr !important;
  gap: 0 40px !important;
  align-items: start !important;
}

.karnak-layout form.woocommerce-checkout #customer_details {
  grid-column: 1 !important;
  grid-row: 1 / -1 !important;
}

.karnak-layout form.woocommerce-checkout #order_review_heading {
  grid-column: 2 !important;
  grid-row: 1 !important;
}

.karnak-layout form.woocommerce-checkout #order_review {
  grid-column: 2 !important;
  grid-row: 2 !important;
  position: sticky !important;
  top: 24px !important;
}

.karnak-layout .col2-set .col-1 {
  float: left !important;
  width: 70% !important;
}

@media (max-width: 767px) {
  .karnak-layout form.woocommerce-checkout {
    grid-template-columns: 1fr !important;
  }
  .karnak-layout form.woocommerce-checkout #customer_details,
  .karnak-layout form.woocommerce-checkout #order_review_heading,
  .karnak-layout form.woocommerce-checkout #order_review {
    grid-column: 1 !important;
    grid-row: auto !important;
    position: static !important;
  }
  .karnak-layout .col2-set .col-1 {
    float: none !important;
    width: 100% !important;
  }
}

/* Títulos */
.karnak-layout h3,
.karnak-layout #order_review_heading {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: #1C0D0A !important;
  margin: 0 0 16px !important;
  padding: 0 0 10px !important;
  border: none !important;
  border-bottom: 1px solid #E5D7D1 !important;
}

/* Grid 2 columnas */
.karnak-layout .woocommerce-billing-fields__field-wrapper,
.karnak-layout .woocommerce-additional-fields__field-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 16px;
}

/* Campos ancho completo */
.karnak-layout .form-row-wide,
.karnak-layout #billing_country_field,
.karnak-layout #billing_address_1_field,
.karnak-layout #billing_address_2_field,
.karnak-layout #billing_email_field,
.karnak-layout #order_comments_field {
  grid-column: 1 / -1;
}

/* Provincia + Localidad: misma fila, provincia primero */
.karnak-layout #billing_state_field,
.karnak-layout #billing_city_field,
.karnak-layout #billing_postcode_field,
.karnak-layout #billing_phone_field {
  grid-column: auto !important;
}

.karnak-layout #billing_state_field    { order: 10; }
.karnak-layout #billing_city_field     { order: 11; }

/* Código postal + Teléfono: misma fila */
.karnak-layout #billing_postcode_field { order: 12; }
.karnak-layout #billing_phone_field    { order: 13; }

/* Resumen pedido */
.karnak-layout #order_review {
  background: #f8f8f6 !important;
  border: 1px solid #E5D7D1 !important;
  border-radius: 6px !important;
  padding: 20px !important;
}

.karnak-layout #order_review table.shop_table {
  width: 100% !important;
  border-collapse: collapse !important;
  font-size: 14px !important;
  color: #1C0D0A !important;
  background: transparent !important;
  border: none !important;
  margin: 0 !important;
}

.karnak-layout #order_review table.shop_table thead tr th {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: #808285 !important;
  padding: 0 0 10px 0 !important;
  border: none !important;
  border-bottom: 1px solid #E5D7D1 !important;
  background: transparent !important;
  text-align: left !important;
}

.karnak-layout #order_review table.shop_table tbody tr td,
.karnak-layout #order_review table.shop_table tfoot tr td,
.karnak-layout #order_review table.shop_table tfoot tr th {
  padding: 10px 0 !important;
  border: none !important;
  border-bottom: 1px solid #E5D7D1 !important;
  background: transparent !important;
  font-size: 14px !important;
}

.karnak-layout #order_review table.shop_table tfoot tr.order-total th,
.karnak-layout #order_review table.shop_table tfoot tr.order-total td {
  font-size: 16px !important;
  font-weight: 700 !important;
  border-bottom: none !important;
}

/* Privacidad */
.karnak-layout .woocommerce-privacy-policy-text,
.karnak-layout .woocommerce-privacy-policy-text p {
  font-size: 12px !important;
  color: #808285 !important;
  margin: 16px 0 !important;
}

/* Botón pagar */
.karnak-layout #place_order {
  display: block !important;
  width: 100% !important;
  padding: 14px 24px !important;
  background: #FF6210 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 6px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  cursor: pointer !important;
  transition: background .2s !important;
  box-sizing: border-box !important;
  margin-top: 8px !important;
}

.karnak-layout #place_order:hover {
  background: #F15808 !important;
}

/* ══════════════════════════════════════════
   CF7 — grid y submit
   ══════════════════════════════════════════ */

.karnak-layout .cf7-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 16px;
  max-width: 680px;
  margin: 0 auto;
}

.karnak-layout .cf7-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.karnak-layout .cf7-field.full,
.karnak-layout .cf7-submit-row {
  grid-column: 1 / -1;
}

.karnak-layout .cf7-help {
  font-size: 12px;
  color: #808285;
  margin-top: 2px;
  line-height: 1.5;
}

.karnak-layout .cf7-submit-row {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.5rem;
}

.karnak-layout .cf7-submit-row input[type="submit"] {
  background: #1a1a1a !important;
  color: #fff !important;
  border: none !important;
  padding: 11px 32px !important;
  border-radius: 8px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  cursor: pointer !important;
  letter-spacing: 0.02em !important;
  transition: opacity .15s, transform .1s !important;
  height: auto !important;
}

.karnak-layout .cf7-submit-row input[type="submit"]:hover {
  opacity: 0.85 !important;
}

.karnak-layout .cf7-submit-row input[type="submit"]:active {
  transform: scale(0.98) !important;
}

/* ── RESPONSIVE ── */
@media (max-width: 600px) {
  .karnak-layout .cf7-grid,
  .karnak-layout .woocommerce-billing-fields__field-wrapper,
  .karnak-layout .woocommerce-additional-fields__field-wrapper {
    grid-template-columns: 1fr;
  }
  .karnak-layout .cf7-field.full {
    grid-column: 1;
  }
}