/*
Theme Name:   Cestas de Ilusión Child
Theme URI:    https://cestasdeilusion.es
Description:  Child theme de Kadence — boutique artesanal, sobriedad editorial.
Author:       Cestas de Ilusión
Template:     kadence
Version:      6.9.0
Text Domain:  cestas-ilusion-child
*/

/* =============================================
   PALETA Y TOKENS
============================================= */
:root {
    --ci-tinta:        #2A1E1A;   /* Casi negro, cálido */
    --ci-tinta-medio:  #5A4A42;
    --ci-tinta-suave:  #8A7A70;
    --ci-papel:        #FAF6EF;
    --ci-papel-medio:  #F2EBDF;
    --ci-papel-osc:    #E8DCC8;
    --ci-acento:       #B85A3F;   /* terracota oscuro, AA sobre papel */
    --ci-acento-tinta: #8C3E27;   /* hover/pulsado */
    --ci-acento-suave: #ECC4B8;
    --ci-acento-veil:  #F5E4DE;
    --ci-musgo:        #6B7F5A;   /* secundario sutil */
    --ci-borde:        #D8CFC0;
    --ci-borde-suave:  #ECE3D2;
    --ci-error:        #B23A48;
    --ci-error-bg:     #FBE6E6;

    --serif:   'Cormorant Garamond', 'Times New Roman', Georgia, serif;
    --sans:    'Nunito', 'Helvetica Neue', Arial, sans-serif;
    --script:  'Caveat', cursive;

    --shadow-soft:  0 1px 2px rgba(42,30,26,0.04), 0 8px 24px rgba(42,30,26,0.06);
    --shadow-deep:  0 4px 8px rgba(42,30,26,0.05), 0 24px 64px rgba(42,30,26,0.10);
}

/* =============================================
   BASE
============================================= */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    font-family: var(--sans);
    background: var(--ci-papel);
    color: var(--ci-tinta);
    font-size: 16px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

::selection { background: var(--ci-acento-suave); color: var(--ci-tinta); }

/* Skip-link */
.cestas-skip-link, .screen-reader-text {
    position: absolute !important;
    clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
    height: 1px; width: 1px; margin: -1px; padding: 0; border: 0;
    overflow: hidden;
}
.cestas-skip-link:focus, .screen-reader-text:focus {
    position: fixed !important; top: 12px; left: 12px;
    clip: auto !important; clip-path: none;
    height: auto; width: auto; padding: 12px 18px; margin: 0;
    background: var(--ci-tinta); color: var(--ci-papel);
    font-weight: 600; z-index: 99999;
    text-decoration: none;
    border-radius: 2px;
}

/* =============================================
   TIPOGRAFÍA
============================================= */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--serif) !important;
    color: var(--ci-tinta);
    line-height: 1.1;
    font-weight: 400;
    letter-spacing: -0.01em;
    margin: 0 0 0.6em;
}
h1 { font-size: clamp(2.4rem, 5vw, 4.2rem); }
h2 { font-size: clamp(1.9rem, 3.5vw, 2.8rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.55rem); }
h4 { font-size: 1.05rem; font-weight: 500; }

p, li {
    font-family: var(--sans);
    font-weight: 400;
    line-height: 1.75;
    color: var(--ci-tinta-medio);
}
p { margin: 0 0 1em; }

a {
    color: var(--ci-acento);
    text-decoration: none;
    border-bottom: 1px solid currentColor;
    padding-bottom: 1px;
    transition: color 0.2s, border-color 0.2s;
}
a:hover { color: var(--ci-tinta); }
a:focus-visible { outline: 2px solid var(--ci-acento); outline-offset: 3px; border-radius: 1px; }

/* Pequeño microtipo decorativo (etiquetas de sección) */
.ci-eyebrow {
    display: inline-block;
    font-family: var(--sans);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--ci-acento);
    margin-bottom: 1em;
}

/* Frase corta script (uso muy puntual) */
.ci-script {
    font-family: var(--script);
    font-weight: 500;
    color: var(--ci-acento);
    line-height: 1;
    letter-spacing: 0.01em;
}

/* =============================================
   HEADER KADENCE
============================================= */
.site-header,
.kadence-header,
header.kadence-header {
    background: rgba(250,246,239,0.78) !important;
    -webkit-backdrop-filter: blur(14px) saturate(140%) !important;
    backdrop-filter: blur(14px) saturate(140%) !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    position: sticky !important; top: 0 !important; z-index: 100 !important;
    transition: background 0.35s ease, box-shadow 0.35s ease !important;
}

/* HOME — header fixed que flota sobre el hero */
body.home .site-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 999 !important;
}
body.home .site-header:not(.ci-scrolled) {
    background: transparent !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
}
body.home .site-header.ci-scrolled {
    background: rgba(250,246,239,0.78) !important;
    -webkit-backdrop-filter: blur(14px) saturate(140%) !important;
    backdrop-filter: blur(14px) saturate(140%) !important;
    box-shadow: 0 1px 0 rgba(42,30,26,0.04) !important;
}

/* Sombra al hacer scroll (otras páginas): hairline en lugar de drop shadow */
body:not(.home) .site-header.ci-scrolled {
    box-shadow: 0 1px 0 rgba(42,30,26,0.04) !important;
}

/* Branding — logo + tagline */
.site-branding {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 2px !important;
}
.site-branding .site-title-wrap {
    display: block !important;
}
.site-branding .brand.has-logo-image .site-title-wrap {
    display: block !important;
}
.site-branding .site-title {
    display: none !important;
}
.site-branding .site-description {
    display: block !important;
    font-family: var(--sans) !important;
    font-size: 0.6rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.28em !important;
    text-transform: uppercase !important;
    color: var(--ci-tinta-suave) !important;
    margin: 0 !important;
    line-height: 1 !important;
    transition: color 0.35s !important;
}
body.home .site-header:not(.ci-scrolled) .site-description {
    color: rgba(255,255,255,0.7) !important;
}
.site-branding .custom-logo {
    max-height: 64px !important;
    width: auto !important;
    height: auto !important;
    transition: filter 0.35s !important;
}
/* Branding oculto sobre el hero, aparece al hacer scroll */
body.home .site-header:not(.ci-scrolled) .site-branding,
body.home .site-header:not(.ci-scrolled) .header-branding,
body.home .site-header:not(.ci-scrolled) [class*="branding"] {
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity 0.35s ease !important;
}
body.home .site-header.ci-scrolled .site-branding,
body.home .site-header.ci-scrolled .header-branding,
body.home .site-header.ci-scrolled [class*="branding"] {
    opacity: 1 !important;
    transition: opacity 0.35s ease !important;
}

/* Header alto */
.site-header .site-header-inner,
.kadence-header .site-header-inner,
.header-navigation-layout {
    min-height: 80px !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
}

/* Nav */
.main-navigation ul li a,
.kadence-navigation .menu > li > a,
.kadence-navigation ul li a,
header nav ul li a,
.header-navigation ul li a {
    font-family: var(--sans) !important;
    font-size: 0.78rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    color: var(--ci-tinta) !important;
    padding: 8px 0 !important;
    margin: 0 16px !important;
    border-bottom: 1px solid transparent !important;
    border-radius: 0 !important;
    background: transparent !important;
    transition: border-color 0.2s, color 0.2s !important;
}
/* Nav links blancos en header transparente */
body.home .site-header:not(.ci-scrolled) .main-navigation ul li a,
body.home .site-header:not(.ci-scrolled) .kadence-navigation .menu > li > a,
body.home .site-header:not(.ci-scrolled) header nav ul li a {
    color: rgba(255,255,255,0.9) !important;
    border-bottom-color: transparent !important;
}
body.home .site-header:not(.ci-scrolled) .main-navigation ul li a:hover,
body.home .site-header:not(.ci-scrolled) .kadence-navigation .menu > li > a:hover {
    color: #fff !important;
    border-bottom-color: rgba(255,255,255,0.6) !important;
}
.main-navigation ul li a:hover,
.kadence-navigation .menu > li > a:hover,
.kadence-navigation .current-menu-item > a {
    background: transparent !important;
    color: var(--ci-acento) !important;
    border-bottom-color: var(--ci-acento) !important;
}

/* Botón de búsqueda — oculto */
.search-toggle,
.kadence-search-toggle,
.header-search-wrap,
.kadence-header-search,
.search-icon-wrap,
.header-search-button,
.kadence-search-icon-wrap,
.search-toggle-open-container,
.search-toggle-open,
[class*="search-toggle"],
[class*="header-search"] { display: none !important; }

.kadence-woo-cart-wrap a,
.header-cart-button { color: var(--ci-tinta) !important; }
body.home .site-header:not(.ci-scrolled) .kadence-woo-cart-wrap a,
body.home .site-header:not(.ci-scrolled) .header-cart-button { color: #fff !important; }
.kadence-woo-cart-wrap a:hover { color: var(--ci-acento) !important; }

/* =============================================
   BOTONES — sistema unificado tipo CTA editorial
   Todos comparten color terracota, redondeado, sombra suave y hover lift.
============================================= */
.wp-block-button__link,
.button,
.ci-btn,
button[type="submit"],
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-page .button,
.woocommerce-page button.button,
.woocommerce-page input.button,
.woocommerce-Button,
.checkout-button,
.wc-block-components-button {
    background: var(--ci-acento) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 12px !important;
    font-family: var(--sans) !important;
    font-weight: 700 !important;
    font-size: 0.92rem !important;
    letter-spacing: 0.01em !important;
    text-transform: none !important;
    padding: 14px 28px !important;
    box-shadow: 0 4px 18px rgba(184,90,63,0.28) !important;
    transition: background 0.2s, color 0.2s, transform 0.18s ease, box-shadow 0.18s ease !important;
    cursor: pointer !important;
    text-decoration: none !important;
    display: inline-block !important;
    line-height: 1.3 !important;
}
.wp-block-button__link:hover,
.button:hover,
.ci-btn:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce-page .button:hover,
.woocommerce-page button.button:hover,
.woocommerce-page input.button:hover,
.woocommerce-Button:hover,
.checkout-button:hover,
.wc-block-components-button:hover,
button[type="submit"]:hover,
input[type="submit"]:hover {
    background: var(--ci-acento-tinta) !important;
    color: #fff !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 24px rgba(184,90,63,0.38) !important;
}

/* Variante secundaria (oscura) — para CTAs alternativas */
.ci-btn--dark {
    background: var(--ci-tinta) !important;
    color: #fff !important;
    box-shadow: 0 4px 18px rgba(42,30,26,0.22) !important;
}
.ci-btn--dark:hover {
    background: #1a120e !important;
    box-shadow: 0 8px 24px rgba(42,30,26,0.32) !important;
}

/* Variante outline (ghost) */
.wp-block-button.is-style-outline .wp-block-button__link,
.ci-btn--ghost {
    background: transparent !important;
    color: var(--ci-acento) !important;
    border: 2px solid var(--ci-acento) !important;
    box-shadow: none !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.ci-btn--ghost:hover {
    background: var(--ci-acento) !important;
    color: #fff !important;
    box-shadow: 0 4px 18px rgba(184,90,63,0.28) !important;
}

/* Estado deshabilitado — botón "Actualizar carrito" cuando no hay cambios */
.button:disabled,
.button[disabled],
button[disabled],
button.button:disabled,
input.button:disabled,
input[type="submit"]:disabled,
.woocommerce button.button:disabled,
.woocommerce input.button:disabled {
    background: var(--ci-acento) !important;
    color: #fff !important;
    opacity: 0.45 !important;
    box-shadow: none !important;
    cursor: not-allowed !important;
    transform: none !important;
}
.button:disabled:hover,
.button[disabled]:hover {
    transform: none !important;
    box-shadow: none !important;
    background: var(--ci-acento) !important;
}

/* =============================================
   CARRITO — ENCUADRE Y ACCIONES
============================================= */
.woocommerce-cart .cart-collaterals,
.woocommerce-cart .woocommerce-cart-form {
    margin-top: 0 !important;
}

/* Fila de cupón + actualizar carrito: alineación, mismo tamaño y separación */
.woocommerce-cart .cart .actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 14px !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 18px 0 !important;
}
.woocommerce-cart .cart .actions .coupon {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    align-items: center !important;
    flex: 1 1 auto !important;
    margin: 0 !important;
}
.woocommerce-cart .cart .actions .coupon label { display: none !important; }
.woocommerce-cart .cart .actions .coupon #coupon_code {
    flex: 1 1 220px !important;
    min-width: 220px !important;
    max-width: 320px !important;
    height: 48px !important;
    padding: 12px 16px !important;
    border: 1px solid var(--ci-borde) !important;
    border-radius: 12px !important;
    font-family: var(--sans) !important;
    font-size: 0.92rem !important;
    background: #fff !important;
    color: var(--ci-tinta) !important;
}
.woocommerce-cart .cart .actions .coupon #coupon_code:focus {
    border-color: var(--ci-acento) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(184,90,63,0.15) !important;
}

/* Mismo tamaño y forma para Aplicar cupón / Actualizar carrito */
.woocommerce-cart .cart .actions button[name="apply_coupon"],
.woocommerce-cart .cart .actions button[name="update_cart"] {
    height: 48px !important;
    min-width: 180px !important;
    padding: 0 24px !important;
    font-size: 0.88rem !important;
    line-height: 48px !important;
    white-space: nowrap !important;
}

/* Tabla del carrito — encuadre con borde suave */
.woocommerce-cart table.shop_table {
    border: 1px solid var(--ci-borde-suave) !important;
    border-radius: 14px !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    overflow: hidden !important;
}
.woocommerce-cart table.shop_table th {
    background: var(--ci-papel-medio) !important;
    color: var(--ci-tinta) !important;
    font-family: var(--sans) !important;
    font-weight: 700 !important;
    font-size: 0.78rem !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
    padding: 16px 14px !important;
    border-bottom: 1px solid var(--ci-borde-suave) !important;
}
.woocommerce-cart table.shop_table td {
    padding: 18px 14px !important;
    border-top: 1px solid var(--ci-borde-suave) !important;
    vertical-align: middle !important;
}

/* Totales del carrito (sidebar derecho) */
.woocommerce-cart .cart_totals {
    background: var(--ci-papel-medio) !important;
    border: 1px solid var(--ci-borde-suave) !important;
    border-radius: 14px !important;
    padding: 28px !important;
}
.woocommerce-cart .cart_totals h2 {
    font-family: var(--serif) !important;
    color: var(--ci-tinta) !important;
    margin: 0 0 18px !important;
}
.woocommerce-cart .cart_totals .wc-proceed-to-checkout {
    padding: 14px 0 0 !important;
}
.woocommerce-cart .cart_totals .wc-proceed-to-checkout .checkout-button {
    width: 100% !important;
    text-align: center !important;
    padding: 16px 24px !important;
    font-size: 1rem !important;
}

/* Móvil: botones a ancho completo, layout vertical */
@media (max-width: 600px) {
    .woocommerce-cart .cart .actions {
        flex-direction: column !important;
        align-items: stretch !important;
    }
    .woocommerce-cart .cart .actions .coupon {
        flex-direction: column !important;
        align-items: stretch !important;
    }
    .woocommerce-cart .cart .actions .coupon #coupon_code,
    .woocommerce-cart .cart .actions button[name="apply_coupon"],
    .woocommerce-cart .cart .actions button[name="update_cart"] {
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
    }
}

/* Enlace tipográfico */
.ci-link {
    border-bottom: 1px solid var(--ci-tinta);
    color: var(--ci-tinta);
    font-family: var(--sans);
    font-weight: 600;
    font-size: 0.85rem;
    letter-spacing: 0.04em;
    padding-bottom: 3px;
}
.ci-link:hover { color: var(--ci-acento); border-bottom-color: var(--ci-acento); }

/* =============================================
   FORMULARIOS
============================================= */
input[type="text"], input[type="email"], input[type="tel"],
input[type="number"], input[type="search"], input[type="date"],
input[type="password"], input[type="url"], textarea, select {
    border: 1px solid var(--ci-borde) !important;
    border-radius: 0 !important;
    padding: 12px 14px !important;
    font-family: var(--sans) !important;
    font-size: 0.95rem !important;
    color: var(--ci-tinta) !important;
    background: #fff !important;
    transition: border-color 0.2s !important;
    width: 100%;
}
input:focus, textarea:focus, select:focus {
    outline: none !important;
    border-color: var(--ci-tinta) !important;
    box-shadow: none !important;
}
label {
    font-family: var(--sans);
    font-weight: 600;
    font-size: 0.78rem;
    color: var(--ci-tinta);
    display: block;
    margin-bottom: 6px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Contact Form 7 */
.wpcf7-form .wpcf7-text, .wpcf7-form .wpcf7-email,
.wpcf7-form .wpcf7-tel, .wpcf7-form .wpcf7-textarea,
.wpcf7-form .wpcf7-select {
    border: 1px solid var(--ci-borde) !important;
    border-radius: 0 !important;
    padding: 12px 14px !important;
    margin-bottom: 18px;
    background: #fff !important;
}
/* Antes había una regla específica que pintaba el botón de CF7 en tinta oscura
   (uppercase, cuadrado). El sistema unificado de botones ya cubre
   `.wpcf7-submit` e `input[type=submit]` con el estilo terracota correcto.
   Esta regla queda eliminada a propósito. */
.ci-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 24px;
}
.wpcf7-response-output {
    border: 1px solid var(--ci-borde) !important;
    border-radius: 0 !important;
    padding: 14px 18px !important;
    font-family: var(--sans) !important;
    font-size: 0.9rem !important;
    margin-top: 18px !important;
    background: var(--ci-papel-medio) !important;
}

/* =============================================
   HOMEPAGE — composición editorial
============================================= */

/* =============================================
   HERO — Pantalla completa centrado (v7)
============================================= */

/* Romper las restricciones de los wrappers de Kadence */
.kb-layout-wrap-ID-home-hero,
.kb-layout-wrap-ID-home-hero .wp-block-kadence-column,
.kb-layout-wrap-ID-home-hero .kadence-column-hero-col,
.kb-layout-wrap-ID-home-hero .kadence-column-inner-wrap,
.kb-layout-wrap-ID-home-hero .wp-block-kadence-column-inner-wrap {
    padding: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}
.kb-layout-wrap-ID-home-hero {
    background: var(--ci-tinta) !important;
    padding: 0 !important;
}
/* Quitar el contenedor de ancho máximo que Kadence añade dentro del row */
.kb-layout-wrap-ID-home-hero > .site-container,
.kb-layout-wrap-ID-home-hero > .container {
    max-width: 100% !important;
    padding: 0 !important;
}

.ci-hero {
    position: relative !important;
    min-height: 100vh !important;
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    text-align: center !important;
    background: var(--ci-tinta) !important;
}

/* Imagen de fondo */
.ci-hero-visual {
    position: absolute !important;
    inset: 0 !important;
    top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
    aspect-ratio: unset !important;
    max-width: none !important;
    width: 100% !important;
    height: 100% !important;
    justify-self: unset !important;
    background: var(--ci-tinta) !important;
    z-index: 0 !important;
    overflow: hidden !important;
    display: block !important;
}
.ci-hero-visual img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 25% !important;
    display: block !important;
    transition: transform 10s ease !important;
    position: static !important;
    max-width: none !important;
}
.ci-hero:hover .ci-hero-visual img { transform: scale(1.06); }

/* Overlay — oscuro uniforme, más denso en centro */
.ci-hero::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background: rgba(28,18,14,0.62) !important;
    z-index: 1 !important;
}

/* Contenido centrado */
.ci-hero-content {
    position: relative !important;
    z-index: 2 !important;
    padding: 140px clamp(24px, 8vw, 120px) 100px;
    max-width: 960px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Badge píldora */
.ci-hero-badge {
    display: inline-block;
    background: rgba(255,255,255,0.14);
    border: 1px solid rgba(255,255,255,0.22);
    backdrop-filter: blur(6px);
    color: rgba(255,255,255,0.9);
    font-family: var(--sans);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.26em;
    text-transform: uppercase;
    padding: 8px 20px;
    border-radius: 100px;
    margin-bottom: 40px;
    animation: ci-fade-up 0.6s ease 0.1s both;
}

/* Titular */
.ci-hero-title {
    margin: 0 0 28px !important;
    font-family: var(--serif) !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    letter-spacing: -0.02em;
    color: #fff !important;
    animation: ci-fade-up 0.7s ease 0.3s both;
}
.ci-hero-line { display: block; font-family: var(--serif); }

.ci-hero-line--brand {
    font-size: clamp(4rem, 9vw, 7.5rem);
    font-weight: 600;
    line-height: 0.9;
    letter-spacing: -0.04em;
    color: #fff;
    margin-bottom: 6px;
}
.ci-hero-line--brand em {
    font-style: italic;
    font-weight: 400;
    color: var(--ci-acento-suave);
}
.ci-hero-line--mid {
    font-size: clamp(1.6rem, 3.2vw, 2.6rem);
    font-style: italic;
    font-weight: 400;
    line-height: 1.1;
    color: rgba(255,255,255,0.75);
    margin-bottom: 4px;
}
.ci-hero-line--script {
    font-family: var(--script);
    font-size: clamp(2.6rem, 5vw, 4.2rem);
    font-weight: 500;
    line-height: 1;
    color: var(--ci-acento-suave);
    transform: rotate(-2deg);
    display: inline-block;
    margin: 4px 0 0;
    letter-spacing: 0.01em;
}

/* Subtítulo */
.ci-hero-sub {
    font-family: var(--sans);
    font-size: clamp(1rem, 1.6vw, 1.15rem);
    color: rgba(255,255,255,0.76);
    line-height: 1.8;
    max-width: 620px;
    margin: 0 auto 28px;
    animation: ci-fade-up 0.7s ease 0.55s both;
}

/* Features en línea con punto terracota */
.ci-hero-features {
    list-style: none;
    padding: 0;
    margin: 0 0 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    flex-wrap: wrap;
    animation: ci-fade-up 0.7s ease 0.7s both;
}
.ci-hero-features li {
    font-family: var(--sans);
    font-size: 0.82rem;
    font-weight: 600;
    color: rgba(255,255,255,0.75);
    letter-spacing: 0.04em;
    padding: 0 18px;
    position: relative;
    line-height: 1;
    margin: 4px 0;
}
.ci-hero-features li::before {
    content: '·';
    color: var(--ci-acento-suave);
    font-size: 1.2rem;
    position: absolute;
    left: -2px;
    top: 50%;
    transform: translateY(-52%);
}
.ci-hero-features li:first-child { padding-left: 0; }
.ci-hero-features li:first-child::before { display: none; }

/* Botones grandes al estilo Prohogar */
.ci-hero-cta {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    justify-content: center;
    margin-bottom: 40px;
    animation: ci-fade-up 0.7s ease 0.85s both;
}
.ci-hero-btn {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    padding: 18px 32px;
    border-radius: 14px;
    text-decoration: none !important;
    border: 0 !important;
    min-width: 220px;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.ci-hero-btn:hover { transform: translateY(-2px); }
.ci-hero-btn strong {
    font-family: var(--sans);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.01em;
    color: inherit;
}
.ci-hero-btn small {
    font-family: var(--sans);
    font-size: 0.72rem;
    font-weight: 400;
    opacity: 0.72;
    letter-spacing: 0.02em;
    color: inherit;
    text-transform: none;
}
.ci-hero-btn--light {
    background: #fff !important;
    color: var(--ci-tinta) !important;
    box-shadow: 0 4px 24px rgba(0,0,0,0.18);
}
.ci-hero-btn--light:hover {
    box-shadow: 0 8px 32px rgba(0,0,0,0.22);
    color: var(--ci-tinta) !important;
}
.ci-hero-btn--dark {
    background: var(--ci-acento) !important;
    color: #fff !important;
    box-shadow: 0 4px 24px rgba(184,90,63,0.35);
}
.ci-hero-btn--dark:hover {
    background: var(--ci-acento-tinta) !important;
    box-shadow: 0 8px 32px rgba(184,90,63,0.45);
    color: #fff !important;
}

/* Tagline inferior */
.ci-hero-foot {
    font-family: var(--sans);
    font-size: 0.72rem;
    color: rgba(255,255,255,0.45);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin: 0;
    animation: ci-fade-up 0.7s ease 1s both;
}

/* Línea de scroll */
.ci-hero::after {
    content: '';
    position: absolute;
    bottom: 28px;
    left: 50%;
    transform: translateX(-50%);
    width: 1px;
    height: 44px;
    background: linear-gradient(to bottom, rgba(255,255,255,0.55), transparent);
    z-index: 2;
    animation: ci-scroll-line 2.4s ease-in-out infinite;
}

/* Keyframes */
@keyframes ci-fade-up {
    from { opacity: 0; transform: translateY(28px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes ci-scroll-line {
    0%, 100% { opacity: 0.35; height: 44px; }
    50%       { opacity: 0.85; height: 56px; }
}

@media (max-width: 768px) {
    .ci-hero-content { padding: 110px 24px 80px; }
    .ci-hero-line--brand  { font-size: clamp(3rem, 12vw, 4.5rem); }
    .ci-hero-line--mid    { font-size: 1.5rem; }
    .ci-hero-line--script { font-size: 2.2rem; }
    .ci-hero-btn { min-width: 0; width: 100%; }
    .ci-hero-cta { flex-direction: column; align-items: center; }
}

/* Sección de cestas — galería editorial sin "cards" */
.kb-layout-wrap-ID-home-cats {
    background: #fff !important;
    padding: 0 !important;
    border-top: 1px solid var(--ci-borde-suave);
}
.ci-cats {
    max-width: 1240px;
    margin: 0 auto;
    padding: 100px 32px;
}
.ci-cats-head {
    max-width: 760px;
    margin: 0 auto 80px;
    text-align: center;
}
.ci-cats-head .ci-eyebrow {
    color: var(--ci-acento);
    margin-bottom: 22px;
}
.ci-cats-head h2 {
    font-family: var(--serif) !important;
    font-size: clamp(2.2rem, 4.2vw, 3.6rem) !important;
    font-weight: 500 !important;
    line-height: 1.02 !important;
    letter-spacing: -0.025em;
    margin: 0 0 22px !important;
    color: var(--ci-tinta) !important;
}
.ci-cats-head h2 em {
    font-style: italic;
    font-weight: 400;
    color: var(--ci-tinta-medio);
}
.ci-cats-head h2 .ci-script {
    font-size: 0.7em;
    color: var(--ci-acento);
    transform: rotate(-2deg);
    display: inline-block;
    margin: 0 4px;
}
.ci-cats-head p {
    font-size: 1.02rem;
    color: var(--ci-tinta-medio);
    line-height: 1.85;
    max-width: 560px;
    margin: 0 auto;
}

.ci-cats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 36px 28px;
}
.ci-cat {
    text-decoration: none;
    color: inherit;
    border: 0;
    display: block;
    padding-bottom: 1px;
}
.ci-cat:hover { color: inherit; }
.ci-cat-img {
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--ci-papel-medio);
    margin-bottom: 18px;
}
.ci-cat-img img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 1s ease;
    display: block;
}
.ci-cat:hover .ci-cat-img img,
.ci-cat:focus-visible .ci-cat-img img { transform: scale(1.04); }

.ci-cat-meta {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
}
.ci-cat-name {
    font-family: var(--serif);
    font-size: 1.15rem;
    font-weight: 500;
    color: var(--ci-tinta);
    letter-spacing: -0.005em;
}
.ci-cat-price {
    font-family: var(--script);
    font-size: 1.05rem;
    font-weight: 500;
    color: var(--ci-acento);
    letter-spacing: 0.01em;
    text-transform: none;
    flex-shrink: 0;
}
.ci-cat-desc {
    font-family: var(--sans);
    font-size: 0.88rem;
    color: var(--ci-tinta-medio);
    line-height: 1.6;
    margin: 6px 0 0;
}

@media (max-width: 1000px) { .ci-cats-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px)  { .ci-cats-grid { grid-template-columns: 1fr; gap: 32px; } }

/* Sección "Así trabajamos" — narrativa editorial 2 columnas */
.kb-layout-wrap-ID-home-proceso {
    background: var(--ci-papel) !important;
    padding: 0 !important;
    border-top: 1px solid var(--ci-borde-suave);
}
.ci-proceso {
    max-width: 1100px;
    margin: 0 auto;
    padding: 100px 32px;
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 80px;
    align-items: start;
}
.ci-proceso-aside h2 {
    font-size: clamp(2rem, 3.6vw, 2.8rem) !important;
    color: var(--ci-tinta) !important;
    margin: 14px 0 0 !important;
    line-height: 1.05 !important;
}
.ci-proceso-aside h2 em { font-style: italic; }
.ci-proceso-aside .ci-script {
    font-size: 1.7rem;
    display: block;
    margin: 18px 0 0;
    color: var(--ci-acento);
    transform: rotate(-2deg);
    transform-origin: left;
}

.ci-proceso-body p {
    font-family: var(--sans);
    font-size: 1.02rem;
    line-height: 1.9;
    color: var(--ci-tinta-medio);
    margin: 0 0 18px;
}
.ci-proceso-body p strong {
    color: var(--ci-tinta);
    font-weight: 600;
}
.ci-proceso-body .ci-link { margin-top: 12px; display: inline-block; }

@media (max-width: 800px) {
    .ci-proceso { grid-template-columns: 1fr; gap: 36px; padding: 64px 24px; }
}

/* CTA final */
/* =============================================
   SECCIÓN NEWSLETTER (home, antes del CTA oscuro)
============================================= */
.kb-layout-wrap-ID-home-newsletter {
    background: var(--ci-papel) !important;
    padding: 0 !important;
}
.ci-newsletter {
    max-width: 720px;
    margin: 0 auto;
    padding: 90px 32px 90px;
    text-align: center;
}
.ci-newsletter .ci-eyebrow {
    color: var(--ci-acento);
    margin-bottom: 22px;
}
.ci-newsletter h2 {
    font-family: var(--serif);
    color: var(--ci-tinta);
    font-size: clamp(1.8rem, 3.6vw, 2.6rem);
    font-weight: 400;
    line-height: 1.15;
    letter-spacing: -0.01em;
    margin: 0 0 18px;
}
.ci-newsletter h2 em {
    font-style: italic;
    color: var(--ci-acento);
}
.ci-newsletter > p {
    color: var(--ci-tinta-medio);
    font-size: 1rem;
    line-height: 1.75;
    max-width: 540px;
    margin: 0 auto 32px;
}
.ci-newsletter-form {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    align-items: stretch;
    max-width: 580px;
    margin: 0 auto 18px;
}
.ci-newsletter-form input[type="text"],
.ci-newsletter-form input[type="email"] {
    flex: 1 1 200px;
    min-width: 0;
    padding: 14px 18px;
    background: #fff;
    border: 1px solid var(--ci-borde);
    border-radius: 12px;
    font-family: var(--sans);
    font-size: 0.95rem;
    color: var(--ci-tinta);
    transition: border-color 0.2s, box-shadow 0.2s;
}
.ci-newsletter-form input:focus {
    border-color: var(--ci-acento);
    outline: none;
    box-shadow: 0 0 0 3px rgba(184,90,63,0.15);
}
.ci-newsletter-form button {
    flex: 0 0 auto;
}
.ci-newsletter-msg {
    flex-basis: 100%;
    margin: 8px 0 0 !important;
    font-size: 0.92rem;
    font-family: var(--sans);
    text-align: center;
}
.ci-newsletter-msg--ok {
    color: var(--ci-musgo);
    font-weight: 600;
}
.ci-newsletter-msg--err {
    color: var(--ci-error);
    font-weight: 600;
}
.ci-newsletter-fine {
    display: block;
    color: var(--ci-tinta-suave);
    font-size: 0.78rem;
    line-height: 1.6;
    max-width: 540px;
    margin: 24px auto 0;
}
.ci-newsletter-fine a {
    color: var(--ci-tinta-medio);
    text-decoration: underline;
}

@media (max-width: 540px) {
    .ci-newsletter { padding: 64px 24px; }
    .ci-newsletter-form { flex-direction: column; }
    .ci-newsletter-form input { flex: 1 1 auto; }
    .ci-newsletter-form button { width: 100%; }
}

.kb-layout-wrap-ID-home-cta {
    background: var(--ci-tinta) !important;
    padding: 0 !important;
    color: var(--ci-papel);
}
.ci-cta {
    max-width: 980px;
    margin: 0 auto;
    padding: 100px 32px;
    text-align: center;
}
.ci-cta .ci-eyebrow {
    color: var(--ci-acento-suave);
    margin-bottom: 26px;
}
.ci-cta h2 {
    font-family: var(--serif) !important;
    color: var(--ci-papel) !important;
    font-size: clamp(2.2rem, 4.6vw, 3.6rem) !important;
    font-weight: 400 !important;
    line-height: 1.05 !important;
    letter-spacing: -0.02em !important;
    margin: 0 auto 22px !important;
    max-width: 760px;
}
.ci-cta h2 em {
    font-style: italic;
    color: var(--ci-acento-suave);
}
.ci-cta h2 .ci-script {
    font-family: var(--script);
    font-style: normal;
    font-size: 0.75em;
    color: var(--ci-acento-suave);
    display: inline-block;
    transform: rotate(-2deg);
    margin: 0 6px;
}
.ci-cta p {
    color: rgba(250,246,239,0.78);
    font-size: 1.05rem;
    line-height: 1.8;
    max-width: 600px;
    margin: 0 auto 36px;
}
/* En la sección CTA (fondo oscuro) el botón terracota ya contrasta bien.
   Mantenemos el mismo estilo unificado, sólo reforzamos sombra para profundidad. */
.ci-cta .wp-block-button__link,
.ci-cta .ci-btn {
    box-shadow: 0 6px 24px rgba(184,90,63,0.45) !important;
}
.ci-cta .wp-block-button__link:hover,
.ci-cta .ci-btn:hover {
    box-shadow: 0 10px 32px rgba(184,90,63,0.55) !important;
}

/* =============================================
   TIENDA WOOCOMMERCE — minimalista
============================================= */
.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 36px 28px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.woocommerce ul.products li.product {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    text-align: left !important;
    transition: none !important;
}
.woocommerce ul.products li.product:hover {
    box-shadow: none !important;
    transform: none !important;
    border: none !important;
}
.woocommerce ul.products li.product::after { display: none !important; }

.woocommerce ul.products li.product a {
    border: 0 !important;
    color: inherit !important;
    text-decoration: none !important;
}
.woocommerce ul.products li.product img {
    width: 100% !important;
    aspect-ratio: 3/4 !important;
    height: auto !important;
    object-fit: cover !important;
    margin: 0 0 18px !important;
    transition: opacity 0.25s !important;
    display: block !important;
}
.woocommerce ul.products li.product:hover img { opacity: 0.92 !important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--serif) !important;
    font-size: 1.15rem !important;
    font-weight: 500 !important;
    color: var(--ci-tinta) !important;
    padding: 0 !important;
    margin: 0 0 4px !important;
    line-height: 1.25 !important;
}
.woocommerce ul.products li.product .price {
    font-family: var(--script) !important;
    font-size: 1.1rem !important;
    font-weight: 500 !important;
    color: var(--ci-acento) !important;
    letter-spacing: 0.01em !important;
    text-transform: none !important;
    padding: 0 !important;
    margin: 0 0 10px !important;
    display: block !important;
}
.woocommerce ul.products li.product .price del {
    color: var(--ci-tinta-suave) !important;
    font-weight: 400 !important;
    margin-right: 6px !important;
}
/* La tarjeta del producto: layout flex column con todo apilado y botón al pie. */
.woocommerce ul.products li.product {
    display: flex !important;
    flex-direction: column !important;
    padding-bottom: 8px !important;
    background: transparent !important;
    height: 100% !important;
}
/* Quitar la "caja blanca" interna de Kadence (.product-details.content-bg)
   para que la tarjeta sea visualmente coherente y el botón no quede colgando
   fuera del fondo. Convertir el contenido también en flex-column para apilar
   título → precio → excerpt → botón con espaciados claros. */
.woocommerce ul.products li.product .product-details,
.woocommerce ul.products li.product .product-details.content-bg,
.woocommerce ul.products li.product .entry-content-wrap {
    background: transparent !important;
    padding: 14px 0 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    border: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
}
/* Título: respiro debajo */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    margin: 0 0 6px !important;
}
/* Precio: separado del título y antes del excerpt */
.woocommerce ul.products li.product .price {
    margin: 0 0 12px !important;
}
/* Descriptivo (post_excerpt): visible incluso en vista grid (Kadence lo oculta
   por defecto con display:none). Color suave, separado del botón. */
.woocommerce ul.products li.product .product-excerpt,
.woocommerce ul.products.grid-cols li.product .product-excerpt,
.woocommerce ul.products:not(.products-list-view) li.product .product-excerpt {
    display: block !important;
    margin: 0 0 18px !important;
    color: var(--ci-tinta-medio) !important;
    font-size: 0.88rem !important;
    line-height: 1.6 !important;
}
.woocommerce ul.products li.product .product-excerpt p {
    margin: 0 !important;
}
/* El wrapper de la acción (botón) se queda al fondo siempre */
.woocommerce ul.products li.product .product-action-wrap {
    margin-top: auto !important;
}

/* Anular el comportamiento "action on hover" de Kadence: el botón
   debe estar siempre visible, en flujo normal, debajo del precio. */
.woocommerce ul.products.woo-archive-action-on-hover li.product .product-action-wrap,
.woocommerce ul.products li.product .product-action-wrap {
    position: static !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    transition: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    box-shadow: none !important;
    display: block !important;
}
.woocommerce ul.products li.product:hover .product-action-wrap {
    transform: none !important;
    opacity: 1 !important;
}

/* Botón del loop de tienda — estilo CTA tipo hero (con strong + small)
   Block, no absolute — siempre debajo del descriptivo. */
.woocommerce ul.products li.product a.ci-loop-btn,
.woocommerce ul.products li.product .ci-loop-btn {
    position: static !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
    margin: 0 !important;
    padding: 14px 22px !important;
    background: var(--ci-acento) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 12px !important;
    font-family: var(--sans) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    box-shadow: 0 4px 18px rgba(184,90,63,0.28) !important;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.2s !important;
    text-align: center !important;
    width: 100% !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
}
.woocommerce ul.products li.product a.ci-loop-btn:hover {
    background: var(--ci-acento-tinta) !important;
    color: #fff !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 24px rgba(184,90,63,0.38) !important;
}
.ci-loop-btn strong {
    font-size: 0.92rem !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.01em !important;
    color: inherit !important;
}
.ci-loop-btn small {
    font-size: 0.68rem !important;
    font-weight: 400 !important;
    opacity: 0.78 !important;
    letter-spacing: 0.02em !important;
    color: inherit !important;
    text-transform: none !important;
}

/* Botón principal de la ficha de producto (single product) — mismo lenguaje */
.woocommerce div.product form.cart .single_add_to_cart_button {
    background: var(--ci-acento) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 12px !important;
    padding: 18px 36px !important;
    font-family: var(--sans) !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: 0.01em !important;
    box-shadow: 0 4px 22px rgba(184,90,63,0.32) !important;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.2s !important;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
    background: var(--ci-acento-tinta) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 28px rgba(184,90,63,0.42) !important;
}

.woocommerce span.onsale {
    background: var(--ci-acento) !important;
    color: var(--ci-papel) !important;
    border-radius: 0 !important;
    font-family: var(--sans) !important;
    font-size: 0.66rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.2em !important;
    padding: 5px 12px !important;
    top: 12px !important; left: 0 !important;
    line-height: 1.4 !important;
    min-height: auto !important; min-width: auto !important;
}

@media (max-width: 1000px) { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 520px)  { .woocommerce ul.products { grid-template-columns: 1fr !important; } }

/* =============================================
   FICHA DE PRODUCTO
============================================= */
.cestas-product-page .cestas-product-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: start;
    padding: 60px 32px;
    max-width: 1240px;
    margin: 0 auto;
}
.cestas-product-info .woocommerce-breadcrumb {
    font-size: 0.74rem;
    color: var(--ci-tinta-suave);
    text-transform: uppercase;
    letter-spacing: 0.15em;
    margin-bottom: 18px;
    border: 0;
}
.cestas-product-info .woocommerce-breadcrumb a {
    color: var(--ci-tinta-suave); border: 0;
}
.cestas-product-info .product_title {
    font-family: var(--serif) !important;
    font-size: clamp(2rem, 4vw, 2.8rem) !important;
    font-weight: 400 !important;
    color: var(--ci-tinta) !important;
    margin: 0 0 18px !important;
    line-height: 1.05 !important;
    letter-spacing: -0.01em;
}
.woocommerce div.product {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    font-family: var(--script) !important;
    font-size: 1.9rem !important;
    font-weight: 500 !important;
    color: var(--ci-acento) !important;
    margin-bottom: 18px !important;
    letter-spacing: 0.01em !important;
}
.woocommerce div.product .woocommerce-product-details__short-description {
    background: transparent !important;
    border: 0 !important;
    border-left: 2px solid var(--ci-acento) !important;
    border-radius: 0 !important;
    padding: 0 0 0 18px !important;
    margin: 18px 0 !important;
    color: var(--ci-tinta-medio) !important;
    font-size: 1.02rem !important;
    line-height: 1.75 !important;
}
.woocommerce div.product .woocommerce-product-gallery {
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
}
.woocommerce div.product .summary { padding: 0 !important; }
.woocommerce div.product form.cart .qty {
    border: 1px solid var(--ci-borde) !important;
    border-radius: 0 !important;
    width: 70px !important;
    padding: 11px !important;
}
/* Contenedor de la sección descripción/tabs en la ficha de producto:
   limitar el ancho y centrarlo. El template usa <div class="container"> sin
   estilo, por eso el contenido salía a sangre completa. */
.cestas-product-page > .container,
main.site-main.cestas-product-page > .container {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 0 24px 60px !important;
    box-sizing: border-box !important;
}

/* Tabs de descripción: lista horizontal limpia, sin viñetas */
.woocommerce div.product .woocommerce-tabs {
    margin-top: 40px !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs,
.woocommerce div.product .woocommerce-tabs ul.tabs.wc-tabs {
    list-style: none !important;
    border: 0 !important;
    border-bottom: 1px solid var(--ci-borde-suave) !important;
    margin: 0 0 28px !important;
    padding: 0 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0 !important;
    background: transparent !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li,
.woocommerce div.product .woocommerce-tabs ul.tabs.wc-tabs li {
    list-style: none !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
    display: none !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    display: inline-block !important;
    font-family: var(--sans) !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    color: var(--ci-tinta-suave) !important;
    padding: 14px 0 !important;
    margin-right: 36px !important;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    margin-bottom: -1px !important;
    background: transparent !important;
    text-decoration: none !important;
    transition: color 0.2s, border-color 0.2s;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
    color: var(--ci-tinta) !important;
    border-bottom-color: var(--ci-borde) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a:hover {
    color: var(--ci-acento) !important;
    border-bottom: 2px solid var(--ci-acento) !important;
}

/* Panel de contenido — tipografía editorial cómoda de leer */
.woocommerce div.product .woocommerce-Tabs-panel,
.woocommerce div.product .wc-tab {
    padding: 0 !important;
    max-width: 820px;
}
.woocommerce div.product .woocommerce-Tabs-panel h2 {
    font-family: var(--serif) !important;
    font-size: 1.6rem !important;
    color: var(--ci-tinta) !important;
    margin: 0 0 18px !important;
}
.woocommerce div.product .woocommerce-Tabs-panel h3 {
    font-family: var(--serif) !important;
    font-size: 1.2rem !important;
    color: var(--ci-tinta) !important;
    margin: 28px 0 10px !important;
}
.woocommerce div.product .woocommerce-Tabs-panel p {
    color: var(--ci-tinta-medio) !important;
    line-height: 1.75 !important;
    margin: 0 0 14px !important;
}
.woocommerce div.product .woocommerce-Tabs-panel p.ci-lead {
    font-size: 1.05rem !important;
    color: var(--ci-tinta) !important;
    margin-bottom: 24px !important;
}
.woocommerce .star-rating span::before,
.woocommerce .star-rating::before { color: var(--ci-acento) !important; }

/* Garantías — separadores editoriales (·), sin iconos */
.cestas-garantias {
    display: flex; flex-wrap: wrap;
    list-style: none; padding: 18px 0 0;
    margin: 24px 0 0;
    border-top: 1px solid var(--ci-borde-suave);
    gap: 0;
}
.cestas-garantia-item {
    font-family: var(--script);
    font-size: 1.05rem;
    font-weight: 500;
    color: var(--ci-tinta-medio);
    letter-spacing: 0.01em;
    text-transform: none;
    padding: 0 18px;
    position: relative;
}
.cestas-garantia-item:first-child { padding-left: 0; }
.cestas-garantia-item + .cestas-garantia-item::before {
    content: '·';
    position: absolute;
    left: -2px; top: 50%;
    transform: translateY(-50%);
    color: var(--ci-tinta-suave);
    font-weight: 400;
}

@media (max-width: 880px) {
    .cestas-product-page .cestas-product-wrap { grid-template-columns: 1fr; gap: 32px; padding: 32px 22px; }
}

/* =============================================
   PERSONALIZACIÓN — formulario sobrio
============================================= */
.cestas-form-personalizacion {
    background: var(--ci-papel);
    border: 1px solid var(--ci-borde-suave);
    border-left: 3px solid var(--ci-acento);
    padding: 28px;
    margin: 28px 0;
}
.cestas-form-titulo {
    font-family: var(--serif) !important;
    font-size: 1.3rem !important;
    font-weight: 500 !important;
    color: var(--ci-tinta) !important;
    margin: 0 0 8px !important;
}
.cestas-form-titulo::before { content: '' !important; }
.cestas-form-intro {
    font-size: 0.92rem;
    color: var(--ci-tinta-medio);
    line-height: 1.7;
    margin: 0 0 22px;
}
.cestas-campo { margin-bottom: 18px; }
.cestas-campo label {
    font-family: var(--sans);
    font-weight: 600;
    font-size: 0.74rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--ci-tinta);
    display: block;
    margin-bottom: 8px;
}
.cestas-requerido { color: var(--ci-acento); margin-left: 2px; }
.cestas-pista {
    font-family: var(--sans);
    font-size: 0.7rem;
    font-weight: 400;
    color: var(--ci-tinta-suave);
    letter-spacing: 0.06em;
    text-transform: none;
    margin-left: 6px;
}
.cestas-ayuda {
    font-size: 0.85rem;
    color: var(--ci-tinta-medio);
    line-height: 1.65;
    margin: 0 0 10px !important;
}
.cestas-contador {
    display: block;
    margin-top: 4px;
    font-size: 0.74rem;
    color: var(--ci-tinta-suave);
    text-align: right;
    letter-spacing: 0.06em;
}

.cestas-campo--destacado {
    background: #fff;
    border: 1px solid var(--ci-borde);
    padding: 22px;
    margin-bottom: 22px;
}
.cestas-campo--destacado label {
    font-family: var(--serif);
    font-size: 1.05rem !important;
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: var(--ci-tinta);
    margin-bottom: 6px !important;
}
.cestas-campo--destacado textarea {
    background: var(--ci-papel) !important;
    border-color: var(--ci-borde) !important;
}

/* Radio servicio */
.cestas-radio-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.cestas-radio {
    display: flex; align-items: flex-start; gap: 10px;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid var(--ci-borde);
    cursor: pointer;
    transition: border-color 0.15s;
}
.cestas-radio:hover { border-color: var(--ci-tinta-suave); }
.cestas-radio input[type="radio"] {
    margin-top: 4px;
    accent-color: var(--ci-acento);
    flex-shrink: 0;
}
.cestas-radio:has(input:checked) {
    border-color: var(--ci-tinta);
    background: var(--ci-papel-medio);
}
.cestas-radio span { display: flex; flex-direction: column; gap: 2px; line-height: 1.3; }
.cestas-radio strong { font-size: 0.95rem; color: var(--ci-tinta); font-weight: 600; }
.cestas-radio small  { font-size: 0.78rem; color: var(--ci-tinta-suave); }

@media (min-width: 600px) {
    .cestas-campo--mitad {
        display: inline-block;
        width: calc(50% - 6px);
        vertical-align: top;
    }
    .cestas-campo--mitad:first-of-type { margin-right: 12px; }
}
@media (max-width: 480px) {
    .cestas-radio-group { grid-template-columns: 1fr; }
}

/* Aviso proceso bajo formulario — sobrio */
.cestas-proceso-aviso {
    margin-top: 20px;
    padding: 18px 20px;
    background: transparent;
    border: 0;
    border-top: 1px solid var(--ci-borde-suave);
    font-family: var(--sans);
}
.cestas-proceso-aviso strong {
    display: block;
    font-family: var(--serif);
    font-weight: 500;
    color: var(--ci-tinta);
    font-size: 1rem;
    margin-bottom: 10px;
}
.cestas-proceso-aviso ol {
    margin: 0;
    padding-left: 20px;
    color: var(--ci-tinta-medio);
    font-size: 0.9rem;
    line-height: 1.7;
}
.cestas-proceso-aviso li { margin-bottom: 4px; }

/* =============================================
   CARRITO Y CHECKOUT
============================================= */
.woocommerce table.shop_table {
    border: 1px solid var(--ci-borde-suave) !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
}
.woocommerce table.shop_table th {
    background: var(--ci-papel-medio) !important;
    color: var(--ci-tinta) !important;
    font-family: var(--sans) !important;
    font-weight: 700 !important;
    font-size: 0.72rem !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    padding: 14px 18px !important;
    border: none !important;
}
.woocommerce table.shop_table td {
    padding: 16px 18px !important;
    border-top: 1px solid var(--ci-borde-suave) !important;
    color: var(--ci-tinta-medio) !important;
}
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review {
    background: var(--ci-papel) !important;
    border: 1px solid var(--ci-borde) !important;
    border-radius: 0 !important;
    padding: 28px !important;
}
.woocommerce-checkout #order_review_heading {
    font-family: var(--serif) !important;
    font-size: 1.4rem !important;
    color: var(--ci-tinta) !important;
    border-bottom: 1px solid var(--ci-borde-suave) !important;
    padding-bottom: 12px !important;
    margin-bottom: 20px !important;
}

/* Mensajes */
.woocommerce-message {
    background: var(--ci-papel-medio) !important;
    border-left: 2px solid var(--ci-musgo) !important;
    border-radius: 0 !important;
    color: var(--ci-tinta) !important;
}
.woocommerce-info {
    background: var(--ci-papel-medio) !important;
    border-left: 2px solid var(--ci-acento) !important;
    border-radius: 0 !important;
    color: var(--ci-tinta) !important;
}
.woocommerce-error {
    background: var(--ci-error-bg) !important;
    border-left: 2px solid var(--ci-error) !important;
    border-radius: 0 !important;
    color: var(--ci-tinta) !important;
}

/* Pagination */
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    border-radius: 0 !important;
    border-color: var(--ci-borde) !important;
    color: var(--ci-tinta-medio) !important;
    font-family: var(--sans) !important;
    font-weight: 600 !important;
    font-size: 0.85rem;
    letter-spacing: 0.05em;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--ci-tinta) !important;
    color: var(--ci-papel) !important;
    border-color: var(--ci-tinta) !important;
}

/* My Account */
.woocommerce-MyAccount-navigation {
    background: var(--ci-papel-medio) !important;
    border: 1px solid var(--ci-borde-suave) !important;
    border-radius: 0 !important;
    padding: 18px !important;
}
.woocommerce-MyAccount-navigation ul li a {
    font-family: var(--sans) !important;
    font-weight: 600 !important;
    color: var(--ci-tinta-medio) !important;
    padding: 8px 12px !important;
    border-radius: 0 !important;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 0.78rem;
    border: 0 !important;
}
.woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-MyAccount-navigation ul li.is-active a {
    background: var(--ci-papel) !important;
    color: var(--ci-tinta) !important;
}

/* Breadcrumbs */
.woocommerce-breadcrumb {
    font-size: 0.74rem !important;
    color: var(--ci-tinta-suave) !important;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 16px 0 !important;
    border: 0;
}
.woocommerce-breadcrumb a { color: var(--ci-tinta-suave) !important; border: 0; }
.woocommerce-breadcrumb a:hover { color: var(--ci-tinta) !important; }

/* =============================================
   FOOTER
============================================= */
.site-footer, #colophon, .kadence-footer, footer.site-footer {
    background: var(--ci-tinta) !important;
    color: rgba(250,246,239,0.75) !important;
}
.site-footer a, .kadence-footer a {
    color: var(--ci-acento-suave) !important;
    border-bottom: 0 !important;
}
.site-footer a:hover, .kadence-footer a:hover { color: var(--ci-papel) !important; }
.site-footer p, .kadence-footer p { color: rgba(250,246,239,0.75) !important; }
.kadence-footer-bottom, .site-info, .kadence-bottom-footer,
.kadence-footer .kadence-footer-bottom-inner {
    background: rgba(0,0,0,0.25) !important;
    border-top: 1px solid rgba(255,255,255,0.05) !important;
    font-size: 0.78rem !important;
    color: rgba(250,246,239,0.55) !important;
    padding: 16px 24px !important;
}

/* =============================================
   PÁGINAS DE CONTENIDO (Sobre/Contacto/FAQ + HOME)
   Kadence pinta entry-title automáticamente; lo ocultamos
   en las páginas que ya tienen su propio H1 dentro del bloque.
============================================= */
body.home .entry-header,
body.home .entry-title,
body.home h1.entry-title,
.page-id-3134 .entry-header,
.page-id-3119 .entry-header,
.page-id-3135 .entry-header { display: none !important; }
body.home .content-container > article > .entry-header { display: none !important; }
body.home .entry-content { padding-top: 0 !important; }

/* HOME — eliminar TODO el espacio arriba (header es fixed, no ocupa flow) */
body.home .site,
body.home .site-content,
body.home #primary,
body.home #inner-wrap,
body.home .content-area,
body.home .content-container,
body.home article.page,
body.home .entry-content,
body.home .entry-content > *:first-child,
body.home main.site-main,
body.home .site-main {
    padding-top: 0 !important;
    margin-top: 0 !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}
/* HOME — quitar el box padding del contenedor Kadence */
body.home .entry-content-wrap {
    padding: 0 !important;
}
/* HOME — hero a ancho completo: liberar el site-container */
body.home .content-container.site-container,
body.home .content-container,
body.home article.page {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
/* Fondo oscuro para que cualquier hueco sea invisible */
body.home {
    background: var(--ci-tinta) !important;
}

/* Hero full-width: escapa del contenedor de Kadence */
.ci-hero {
    margin-left: calc(-50vw + 50%) !important;
    margin-right: calc(-50vw + 50%) !important;
    width: 100vw !important;
    max-width: 100vw !important;
}

/* Quitar fondos creme exagerados en bloques inline de páginas estáticas */
.entry-content > .wp-block-html > div[style*="background:#FBF6F0"],
.entry-content > .wp-block-html > div[style*="background:#FAF6EF"] {
    background: transparent !important;
    border: 0 !important;
}

/* =============================================
   ACCESIBILIDAD
============================================= */
body.keyboard-nav *:focus {
    outline: 2px solid var(--ci-acento) !important;
    outline-offset: 3px !important;
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* =============================================
   ZONA CLIENTE — icono "Mi cuenta" en el header
============================================= */
.ci-account-link,
a.ci-account-link,
.site-header a.ci-account-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important;
    height: 40px !important;
    margin-right: 8px !important;
    color: var(--ci-tinta) !important;
    text-decoration: none !important;
    border: 0 !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    transition: color 0.2s, transform 0.18s ease !important;
}
.ci-account-link:hover,
.ci-account-link:focus,
.site-header a.ci-account-link:hover {
    color: var(--ci-acento) !important;
    transform: translateY(-1px) !important;
    border: 0 !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
}
.ci-account-icon { display: block; }

body.home .site-header:not(.ci-scrolled) .ci-account-link { color: #fff !important; }
body.home .site-header:not(.ci-scrolled) .ci-account-link:hover { color: var(--ci-acento-suave) !important; }

/* Mismo tratamiento al icono del carrito para coherencia */
.site-header .header-cart-button,
.site-header a.header-cart-button {
    border: 0 !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
}

/* GLOBAL — quitar el border-bottom que Kadence pone a TODOS los enlaces del header
   (logo, navegación, iconos, etc.). Causa una "rayita" visible bajo cada link. */
.site-header a,
.site-header a:hover,
.site-header a:focus,
.site-header a:active,
.site-header a:visited,
header.kadence-header a,
header.kadence-header a:hover,
.header-navigation a,
.header-navigation a:hover,
.site-branding a,
.site-branding a:hover,
.brand a,
.brand a:hover {
    border: 0 !important;
    border-bottom: 0 !important;
    border-bottom-width: 0 !important;
    border-bottom-style: none !important;
    box-shadow: none !important;
    text-decoration: none !important;
    background-image: none !important;
}

/* Sí permitimos el indicador "activo" del menú principal pero como una línea
   diseñada (centrada, terracota, animada) — no el border-bottom plano de Kadence. */
.site-header .main-navigation .menu > li > a,
.site-header .header-navigation .menu > li > a,
.site-header .kadence-navigation .menu > li > a {
    position: relative !important;
}
.site-header .main-navigation .menu > li.current-menu-item > a::after,
.site-header .header-navigation .menu > li.current-menu-item > a::after,
.site-header .kadence-navigation .menu > li.current-menu-item > a::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: -6px;
    transform: translateX(-50%);
    width: 22px;
    height: 2px;
    background: var(--ci-acento);
    border-radius: 2px;
}

/* =============================================
   ZONA CLIENTE — Mi Cuenta (Kadence usa floats internos
   con .account-navigation-wrap, no tocamos el layout)
============================================= */
.woocommerce-account .entry-content {
    max-width: 1100px;
    margin: 0 auto;
    padding: 24px;
}
.woocommerce-account .woocommerce {
    /* Limpieza de floats: garantiza que el contenedor envuelve a los hijos flotados */
    overflow: visible;
}
.woocommerce-account .woocommerce::after {
    content: "";
    display: table;
    clear: both;
}

/* Sidebar de navegación (Kadence: float-right, 30%) */
.woocommerce-account .account-navigation-wrap {
    background: var(--ci-papel-medio) !important;
    border: 1px solid var(--ci-borde-suave) !important;
    border-radius: 14px !important;
    padding: 18px 0 !important;
    border-left: 1px solid var(--ci-borde-suave) !important;
}
.woocommerce-account .account-navigation-wrap .kadence-account-avatar {
    padding: 8px 22px 16px !important;
    border-bottom: 1px solid var(--ci-borde-suave);
    margin-bottom: 8px !important;
}
.woocommerce-account .account-navigation-wrap .kadence-customer-name {
    font-family: var(--serif);
    font-weight: 500;
    color: var(--ci-tinta);
}
.woocommerce-account .account-navigation-wrap ul {
    margin: 0 !important;
}
.woocommerce-account .account-navigation-wrap li {
    margin: 0 !important;
}
.woocommerce-account .account-navigation-wrap li a {
    padding: 12px 22px !important;
    color: var(--ci-tinta) !important;
    font-family: var(--sans) !important;
    font-weight: 500;
    font-size: 0.92rem;
    border-left: 3px solid transparent !important;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.woocommerce-account .account-navigation-wrap li:hover a {
    background: var(--ci-papel-osc) !important;
    color: var(--ci-acento) !important;
    border-left-color: transparent !important;
}
.woocommerce-account .account-navigation-wrap li.is-active a,
.woocommerce-account .account-navigation-wrap li.is-active a:hover {
    background: var(--ci-papel) !important;
    color: var(--ci-acento) !important;
    border-left-color: var(--ci-acento) !important;
    font-weight: 700;
}

/* Contenido principal (Kadence: float-left, 70%) */
.woocommerce-account .woocommerce-MyAccount-content {
    background: #fff;
    border: 1px solid var(--ci-borde-suave);
    border-radius: 14px;
    padding: 36px !important;
}
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 {
    font-family: var(--serif);
    color: var(--ci-tinta);
    margin: 0 0 18px;
}
.woocommerce-account .woocommerce-MyAccount-content p {
    color: var(--ci-tinta-medio);
    line-height: 1.7;
}
.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
    border: 1px solid var(--ci-borde-suave);
    border-radius: 12px;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    width: 100%;
}
.woocommerce-account .woocommerce-MyAccount-content table.shop_table th {
    background: var(--ci-papel-medio);
    text-transform: uppercase;
    font-size: 0.74rem;
    letter-spacing: 0.16em;
    padding: 14px 12px;
}
.woocommerce-account .woocommerce-MyAccount-content table.shop_table td {
    padding: 14px 12px;
    border-top: 1px solid var(--ci-borde-suave);
    vertical-align: middle;
}

/* Login / registro (no logueado) — dos columnas con flexbox */
.woocommerce-account #customer_login.u-columns,
.woocommerce-account .u-columns.col2-set {
    display: flex !important;
    flex-wrap: wrap;
    gap: 24px;
    margin: 0 !important;
}
.woocommerce-account .u-column1,
.woocommerce-account .u-column2 {
    flex: 1 1 320px;
    background: #fff;
    border: 1px solid var(--ci-borde-suave);
    border-radius: 14px;
    padding: 32px;
    width: auto !important;
    float: none !important;
}

/* Móvil: nav full width arriba, sin floats de Kadence */
@media (max-width: 767px) {
    .woocommerce-account .account-navigation-wrap,
    .woocommerce-account .woocommerce-MyAccount-content {
        float: none !important;
        width: 100% !important;
        margin-bottom: 16px !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }
    .woocommerce-account .woocommerce-MyAccount-content {
        padding: 24px !important;
    }
}
.woocommerce-account form.login,
.woocommerce-account form.register {
    margin: 0;
    border: 0;
    padding: 0;
}
.woocommerce form .form-row label {
    display: block;
    margin-bottom: 6px;
    font-family: var(--sans);
    font-weight: 600;
    font-size: 0.88rem;
    color: var(--ci-tinta);
}
.woocommerce form .form-row input.input-text {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--ci-borde);
    border-radius: 10px;
    font-family: var(--sans);
    font-size: 0.95rem;
    background: #fff;
    color: var(--ci-tinta);
    transition: border-color 0.2s, box-shadow 0.2s;
}
.woocommerce form .form-row input.input-text:focus {
    border-color: var(--ci-acento);
    outline: none;
    box-shadow: 0 0 0 3px rgba(184,90,63,0.15);
}

/* =============================================
   ACCESIBILIDAD — Skip to content link
   Oculto visualmente pero visible al navegar con teclado (TAB).
============================================= */
.ci-skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 100000;
    padding: 12px 18px;
    background: var(--ci-tinta);
    color: var(--ci-papel);
    text-decoration: none;
    font-family: var(--sans);
    font-weight: 700;
    font-size: 0.88rem;
    border-radius: 0 0 8px 0;
}
.ci-skip-link:focus {
    left: 0;
    outline: 3px solid var(--ci-acento);
    outline-offset: 2px;
}

/* =============================================
   404 PAGE — editorial centrado
============================================= */
.ci-404 {
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 80px 24px;
}
.ci-404-section {
    max-width: 680px;
    text-align: center;
}
.ci-404 .ci-eyebrow {
    color: var(--ci-acento);
    margin-bottom: 22px;
    display: block;
}
.ci-404-title {
    font-family: var(--serif) !important;
    font-size: clamp(2.4rem, 5vw, 3.8rem) !important;
    font-weight: 400 !important;
    color: var(--ci-tinta) !important;
    line-height: 1.05 !important;
    margin: 0 0 24px !important;
}
.ci-404-title em {
    font-style: italic;
    color: var(--ci-acento);
}
.ci-404-lead {
    font-size: 1.05rem;
    color: var(--ci-tinta-medio);
    line-height: 1.75;
    max-width: 540px;
    margin: 0 auto 36px;
}
.ci-404-links {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 48px;
}
.ci-404-meta {
    border-top: 1px solid var(--ci-borde-suave);
    padding-top: 32px;
    text-align: left;
    max-width: 520px;
    margin: 0 auto;
}
.ci-404-meta p {
    color: var(--ci-tinta-suave);
    font-size: 0.9rem;
    margin-bottom: 12px;
    text-align: center;
}
.ci-404-meta ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.ci-404-meta li {
    padding: 8px 0;
    border-bottom: 1px solid var(--ci-borde-suave);
    color: var(--ci-tinta-medio);
    font-size: 0.95rem;
}
.ci-404-meta li:last-child { border-bottom: 0; }
.ci-404-meta a {
    color: var(--ci-acento);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s;
}
.ci-404-meta a:hover { border-bottom-color: var(--ci-acento); }

@media (max-width: 600px) {
    .ci-404-links { flex-direction: column; }
    .ci-404-links .ci-btn { width: 100%; }
}

/* =============================================
   COOKIE BANNER — overrides para encajar con paleta
   El plugin pinta los colores vía settings, pero algunos
   estilos inline / defaults necesitan refuerzo.
============================================= */
#cookie-notice {
    z-index: 99999 !important;
    box-shadow: 0 -2px 24px rgba(0,0,0,0.18) !important;
}
#cookie-notice .cookie-notice-container {
    padding: 18px 32px !important;
    font-family: var(--sans) !important;
    font-size: 0.92rem !important;
    line-height: 1.6 !important;
}
#cookie-notice .cn-button {
    margin: 0 4px !important;
    padding: 10px 20px !important;
    border-radius: 10px !important;
    font-family: var(--sans) !important;
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    text-transform: none !important;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.2s !important;
    border: 0 !important;
}
#cookie-notice .cn-button:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.25) !important;
}
#cookie-notice .cn-revoke-cookie {
    text-decoration: underline !important;
}

/* =============================================
   ZONA EMPLEADAS — CTA flotante "Panel"
============================================= */
.ci-staff-cta {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 9999;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 14px 20px;
    background: var(--ci-tinta);
    color: #fff !important;
    border-radius: 14px;
    box-shadow: 0 8px 28px rgba(42,30,26,0.32);
    text-decoration: none !important;
    font-family: var(--sans);
    font-size: 0.92rem;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.2s;
}
.ci-staff-cta:hover {
    background: var(--ci-acento);
    transform: translateY(-2px);
    box-shadow: 0 12px 36px rgba(184,90,63,0.42);
    color: #fff !important;
}
.ci-staff-cta__icon {
    font-size: 1.1rem;
    line-height: 1;
    margin-bottom: 2px;
}
.ci-staff-cta__label {
    font-weight: 700;
    line-height: 1.2;
}
.ci-staff-cta small {
    font-size: 0.68rem;
    opacity: 0.78;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* Si el banner de cookies está visible, subir el CTA empleadas para no solapar */
body.cookies-not-set .ci-staff-cta {
    bottom: 110px;
}
@media (max-width: 768px) {
    body.cookies-not-set .ci-staff-cta { bottom: 130px; }
}

/* =============================================
   RESPONSIVE GENERAL
============================================= */
@media (max-width: 768px) {
    .ci-hero, .ci-cats, .ci-proceso, .ci-cta { padding-left: 22px; padding-right: 22px; }
    .ci-staff-cta { bottom: 16px; right: 16px; padding: 10px 14px; font-size: 0.84rem; }
}
