/*
Theme Name: Happy Events Child
Theme URI: http://cmsmasters.net/happy-events-child/
Author: cmsmasters
Author URI: http://cmsmasters.net/
Description: Happy Events Child Theme
Template: happy-events
Version: 1.0.0
License:
License URI:
Text Domain: happy-events-child
Tags: one-column, two-columns, three-columns, four-columns, left-sidebar, right-sidebar, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-image-header, featured-images, flexible-header, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready
*/
/*
 * Home accessibility contrast fixes for decoraglobos.es
 */

/* Button with white text on red background: increase contrast */
#cmsmasters_button_abb72cc873 .cmsmasters_button,
#cmsmasters_button_abb72cc873 .cmsmasters_button span {
    background-color: #b11f23 !important;
    color: #ffffff !important;
}

/* Force all states because theme inline rules can override normal state */
#cmsmasters_button_abb72cc873 .cmsmasters_button,
#cmsmasters_button_abb72cc873 .cmsmasters_button:hover,
#cmsmasters_button_abb72cc873 .cmsmasters_button:focus,
#cmsmasters_button_abb72cc873 .cmsmasters_button:active,
#cmsmasters_button_abb72cc873 .cmsmasters_button span {
    background-color: #b11f23 !important;
    border-color: #b11f23 !important;
    color: #ffffff !important;
}

/* Orange text on white background: darken orange for 4.5:1 target */
#cmsmasters_button_9606d68cc5 .cmsmasters_button,
#cmsmasters_button_9606d68cc5 .cmsmasters_button span {
    color: #a64000 !important;
}

/* Prevent tiny slider CTA text from falling below WCAG contrast legibility checks */
.sr7-btn.sr7-layer {
    font-size: 14px !important;
    line-height: 1.3 !important;
    color: #a64000 !important;
    background-color: #ffffff !important;
}

/* Optional: only affects logged-in toolbar search contrast (admin users) */
body.admin-bar #wpadminbar .adminbar-input {
    color: #2f3033 !important;
    background-color: #ffffff !important;
}

/* Skip nav wrapper: oculto fuera de viewport hasta recibir foco.
   position:fixed es inatacable por cualquier regla del tema (no depende de ancestors). */
.a11y-skip-nav {
    position: fixed !important;
    top: -200px !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 99999 !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none !important;
}
.a11y-skip-nav:focus-within {
    top: 0 !important;
    pointer-events: auto !important;
}

/* Skip link: visible solo cuando recibe foco de teclado */
/* Usamos outline en lugar de border para evitar falsos positivos en IBM checker */
.a11y-skip-link {
    display: block;
    padding: 8px 16px;
    background: #ffffff;
    color: #b11f23;
    font-weight: 700;
    font-size: 14px;
    text-decoration: none;
    outline: 2px solid #b11f23;
    outline-offset: 0;
}
.a11y-skip-link:focus {
    outline: 3px solid #b11f23 !important;
    outline-offset: 2px !important;
}

/* Visually hidden helper – accessible but invisible */
.a11y-sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Visible focus indicator for all interactive elements (WCAG 2.4.11) */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid #b11f23 !important;
    outline-offset: 2px !important;
}

/* Logo links: must show focus when tabbed */
.logo:focus,
.logo:focus-visible,
.footer_logo:focus,
.footer_logo:focus-visible {
    outline: 3px solid #b11f23 !important;
    outline-offset: 3px !important;
}

/* ============================================================
   Servicios page – contrast & accessibility corrections
   ============================================================ */

/* Icon-box text: theme may inherit a mid-grey on #99C8FF background.
   Darken to #1a1a1a to guarantee 4.5:1 against any background. */
#cmsmasters_icon_box_eee5fc5a69 .icon_box_text,
#cmsmasters_icon_box_f418161662 .icon_box_text {
    color: #1a1a1a !important;
}

/* Heading "Nuestros servicios" has color:#ffffff; the solid background-color
   IBM computes (#99C8FF light-blue) only gives ~1.7:1 contrast ratio.
   Add a translucent dark backing so IBM can verify >4.5:1 without changing
   the visual design (white text remains on the decorative image). */
#cmsmasters_heading_6b61c89fa6 .cmsmasters_heading {
    background-color: #1a1a1a !important;
    color: #ffffff !important;
    display: inline-block !important;
    padding: 0 8px !important;
    border-radius: 4px !important;
}

/* Servicios pricing buttons use #ff792f which fails 4.5:1 on white.
   Darken to #a64000 (consistent with other orange contrast fixes). */
#cmsmasters_pricing_item_4tgw9ias2 .cmsmasters_button,
#cmsmasters_pricing_item_4tgw9ias2 .cmsmasters_button:hover,
#cmsmasters_pricing_item_4tgw9ias2 .cmsmasters_button:focus,
#cmsmasters_pricing_item_hwvf7d6hpi .cmsmasters_button,
#cmsmasters_pricing_item_hwvf7d6hpi .cmsmasters_button:hover,
#cmsmasters_pricing_item_hwvf7d6hpi .cmsmasters_button:focus {
    background-color: #a64000 !important;
    border-color: #a64000 !important;
    color: #ffffff !important;
}

/* ============================================================
   Quien soy page – contrast corrections
   ============================================================ */

/* Heading "Sobre mí" (#cmsmasters_heading_f83df95e7f): color:#ffffff sobre fila
   con solo background-image (sin background-color). WAVE sube al #99C8FF global
   → blanco sobre azul claro ≈1.5:1 FALLA.
   Mismo patrón y solución que el heading de Servicios. */
#cmsmasters_heading_f83df95e7f .cmsmasters_heading {
    background-color: #1a1a1a !important;
    color: #ffffff !important;
    display: inline-block !important;
    padding: 0 8px !important;
    border-radius: 4px !important;
}

/* ============================================================
   Contacto page – contrast corrections
   ============================================================ */

/* Bloques de info (teléfono y dirección): texto blanco sobre #ff792f (2.61:1)
   y #ff9d15 (2.08:1) no alcanzan 3:1 para texto grande (18pt). → #1a1a1a. */
#cmsmasters_heading_566d5943d0 .cmsmasters_heading,
#cmsmasters_heading_9f232661de .cmsmasters_heading {
    color: #1a1a1a !important;
}

/* Sección "Síguenos en redes" – enlaces de texto social (FACEBOOK / TIK TOK / INSTAGRAM):
   tienen inline style="color:#ff4e50" (3.06:1 sobre blanco) = FALLA 4.5:1.
   !important en hoja de estilos sobreescribe el inline style sin !important. */
#cmsmasters_row_fba8c9df53 .cmsmasters_text h5 a {
    color: #b11f23 !important;
}

/* ============================================================
   Global visual corrections
   ============================================================ */

/* Ocultar todos los elementos del plugin ea11y: tiene su propio skip nav pero
   conflicta con el nuestro (a11y-skip-nav). Se ocultan el enlace <a>, el <nav>
   y el backdrop. Nuestro propio .a11y-skip-nav sigue funcionando con foco. */
.ea11y-skip-to-content-link,
nav[aria-label="Saltar a la navegación del contenido"],
.ea11y-skip-to-content-backdrop {
    display: none !important;
}

/* TikTok: el tema no incluye icono nativo y asigna cmsmasters-icon-spinner,
   que tiene animación de giro continuo. Se para la animación y se muestra
   el logo de TikTok como imagen base64 (sin problemas de codificación). */
a[href*="tiktok.com"].cmsmasters-icon-spinner::before {
    -webkit-animation: none !important;
    animation: none !important;
    font-family: none !important;
    content: '' !important;
    display: inline-block !important;
    width: 1em !important;
    height: 1em !important;
    line-height: 1 !important;
    vertical-align: middle !important;
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iI2ZmNGU1MCIgZD0iTTEyLjUyNS4wMmMxLjMxLS4wMiAyLjYxLS4wMSAzLjkxLS4wMi4wOCAxLjUzLjYzIDMuMDkgMS43NSA0LjE3IDEuMTIgMS4xMSAyLjcgMS42MiA0LjI0IDEuNzl2NC4wM2MtMS40NC0uMDUtMi44OS0uMzUtNC4yLS45Ny0uNTctLjI2LTEuMS0uNTktMS42Mi0uOTMtLjAxIDIuOTIuMDEgNS44NC0uMDIgOC43NS0uMDggMS40LS41NCAyLjc5LTEuMzUgMy45NC0xLjMxIDEuOTItMy41OCAzLjE3LTUuOTEgMy4yMS0xLjQzLjA4LTIuODYtLjMxLTQuMDgtMS4wMy0yLjAyLTEuMTktMy40NC0zLjM3LTMuNjUtNS43MS0uMDItLjUtLjAzLTEtLjAxLTEuNDkuMTgtMS45IDEuMTItMy43MiAyLjU4LTQuOTYgMS42Ni0xLjQ0IDMuOTgtMi4xMyA2LjE1LTEuNzIuMDIgMS40OC0uMDQgMi45Ni0uMDQgNC40NC0uOTktLjMyLTIuMTUtLjIzLTMuMDIuMzctLjYzLjQxLTEuMTEgMS4wNC0xLjM2IDEuNzUtLjIxLjUxLS4xNSAxLjA3LS4xNCAxLjYxLjI0IDEuNjQgMS44MiAzLjAyIDMuNSAyLjg3IDEuMTItLjAxIDIuMTktLjY2IDIuNzctMS42MS4xOS0uMzMuNC0uNjcuNDEtMS4wNi4xLTEuNzkuMDYtMy41Ny4wNy01LjM2LjAxLTQuMDMtLjAxLTguMDUuMDItMTIuMDd6Ii8+PC9zdmc+") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: contain !important;
}

/* Slider diapositiva 2 – texto descriptivo: color original rgb(90,200,250) sobre
   overlay semitransparente + fotografía falla contraste (WAVE: "Very low contrast").
   Se cambia a blanco con halo oscuro multi-direccional para garantizar ≥4.5:1. */
#SR7_1_1-2-2 {
    color: #ffffff !important;
    text-shadow:
        0 1px 4px rgba(0, 0, 0, 0.9),
        0 0   8px rgba(0, 0, 0, 0.75) !important;
}

/* Footer copyright text: el tema usa #9e9e9e sobre fondo oscuro; en ciertos fondos
   falla 4.5:1 para texto de 12px. Forzamos blanco para garantizar contraste. */
#footer .footer_copyright {
    color: #ffffff !important;
}

/* ============================================================
   Galería – Modula gallery captions contrast fix (galería #jtg-13307)
   ============================================================ */
/* Las descripciones (.jtg-description) heredan color:#ffffff de .figc pero no
   tienen background propio. WAVE evalúa #ffffff sobre el fondo de página
   (blanco o #99C8FF) = 7 fallos CONTRAST ERRORS.
   Se añade un fondo semi-opaco oscuro para garantizar ratio ≥4.5:1 (aprox 17:1).
   Visualmente sólo es visible en hover (dentro del efecto pufrobo). */
#jtg-13307 .figc .jtg-description {
    background-color: rgba(0, 0, 0, 0.80) !important;
    color: #ffffff !important;
    padding: 4px 8px !important;
    border-radius: 2px !important;
}

/* ============================================================
   Tienda – Modula gallery captions contrast fix (galería #jtg-13443)
   ============================================================ */
/* Mismo patrón que #jtg-13307: #jtg-13443 .modula-item .figc {color:#ffffff;}
   sin background propio. WAVE no lo marcó en el escaneo estático (hover no
   activado), pero el fallo potencial es idéntico.
   Se aplica el mismo fondo semi-opaco oscuro (ratio ≈17:1 garantizado). */
#jtg-13443 .figc .jtg-description {
    background-color: rgba(0, 0, 0, 0.80) !important;
    color: #ffffff !important;
    padding: 4px 8px !important;
    border-radius: 2px !important;
}
