/* 
Theme Name:      Organización Centro
Theme URI:       https://www.ingenima.com/
Description:     Organización Centro is theme of Ingenima
Author:          Ingenima
License:         GNU General Public License v2 or later
License URI:     http://www.gnu.org/licenses/gpl-2.0.html
Version:         1.6.9
Text Domain:     Organización Centro
*/


/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------

# Normalize
# Elements
# General
    ## Main Colors 
    ## iFrame
    ## Buttons
    ## Links
# Typography
    ## Estilos y pesos
    ## Font Size
    ## h1 & btn colors
# Nav
# Footer
# Home
# Single
# Especial CSS
    
--------------------------------------------------------------*/

:root {

    /* Custom colors */
    --negro: #000000;
    --blanco: #FFFFFF;
    --fondocartillas: #F8F8F8;
    --grisoscuro: #E8E8E8;
    --grisclaro: #F2F2F2;
    --verdesalud1: #4BCFAF;
    --verdeclaro: #CDF3EA;
    --azulcta1: #34BFFA;
    --azulcta2: #0093D9;
    --azuloscuro: #004070;
    --azuloscuro2: #003D88;
    --azulclaro: #E1F1F8;
    --rojooc: #DB010B;
    
    /* Layout */
    --navbar-height: 70px;

    /* Transitions */
    --transition-duration:.1s;
    --transition-timing-function:ease;
    --transition-all:all;

    --01-transition:var(--transition-all) calc(var(--transition-duration)*1) var(--transition-timing-function);
    --02-transition:var(--transition-all) calc(var(--transition-duration)*2) var(--transition-timing-function);
    --03-transition:var(--transition-all) calc(var(--transition-duration)*3) var(--transition-timing-function);
    --04-transition:var(--transition-all) calc(var(--transition-duration)*4) var(--transition-timing-function);
    --05-transition:var(--transition-all) calc(var(--transition-duration)*5) var(--transition-timing-function);
    
    /* Space */
    --10px: 10px;
    
    /* Fonts */
    --ffamily:'Gotham', sans-serif;
    --hfamily: 'Ubuntu', sans-serif;
    --fsize: 1rem;
    --fsize--3: clamp(0.625rem, 0.5994rem + 0.1136vw, 0.6875rem); /* mobile ~10px / desktop ~11px */
    --fsize--2: clamp(0.6875rem, 0.6619rem + 0.1136vw, 0.75rem); /* mobile ~11px / desktop ~12px */
    --fsize--1: clamp(0.8125rem, 0.7869rem + 0.1136vw, 0.875rem); /* mobile ~13px / desktop ~14px */
    --fsize-0: clamp(0.875rem, 0.8239rem + 0.2273vw, 1rem); /* mobile ~14px / desktop ~16px */
    --fsize-1: clamp(1.3125rem, 1.2358rem + 0.3409vw, 1.5rem); /* mobile ~21px / desktop ~24px */
    --fsize-2: clamp(1.75rem, 1.6477rem + 0.4545vw, 2rem); /* mobile ~28px / desktop ~32px */
    --fsize-3: clamp(2rem, 1.8722rem + 0.5682vw, 2.3125rem); /* mobile ~32px / desktop ~37px */
    --fsize-4: clamp(2.1875rem, 2.0597rem + 0.5682vw, 2.5rem); /* mobile ~35px / desktop ~40px */
}

/*--------------------------------------------------------------
# Normalize
--------------------------------------------------------------*/

/* normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */

/* Document
     ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

 html {
    line-height: 1.15;
    /* 1 */
    -webkit-text-size-adjust: 100%;
    /* 2 */
    scroll-behavior: smooth;
}

/* Sections
 ========================================================================== */

/**
* Remove the margin in all browsers.
*/

 body {
    margin: 0;
}

/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/

h1 {
    font-size: 2em;
    margin: 0.67em 0;
}

/* Grouping content
 ========================================================================== */

/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/

 hr {
    box-sizing: content-box;
    /* 1 */
    height: 0;
    /* 1 */
    overflow: visible;
    /* 2 */
}

/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/

pre {
    font-family: monospace, monospace;
    /* 1 */
    font-size: 1em;
    /* 2 */
}

/* Text-level semantics
 ========================================================================== */

/**
* 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/

abbr[title] {
    border-bottom: none;
    /* 1 */
    text-decoration: underline;
    /* 2 */
    text-decoration: underline dotted;
    /* 2 */
}

/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/

b,
strong {
    font-weight: 700 !important;
}

/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp {
    font-family: monospace, monospace;
    /* 1 */
    font-size: 1em;
    /* 2 */
}

/**
* Add the correct font size in all browsers.
*/

small {
    font-size: 80%;
}

/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/

sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

/* Embedded content
 ========================================================================== */

/**
* Remove the border on images inside links in IE 10.
*/

 img {
    border-style: none;
}

/* Forms
 ========================================================================== */

/**
* 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/

 button,
 input,
 optgroup,
 select,
 textarea {
    font-family: inherit;
    /* 1 */
    font-size: 100%;
    /* 1 */
    line-height: 1.15;
    /* 1 */
    margin: 0;
    /* 2 */
}

/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/

button,
input {
    /* 1 */
    overflow: visible;
}

/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/

button,
select {
    /* 1 */
    text-transform: none;
}

/**
* Correct the inability to style clickable types in iOS and Safari.
*/

button,
[type="button"],
[type="reset"],
[type="submit"] {
    -webkit-appearance: button;
}

/**
* Remove the inner border and padding in Firefox.
*/

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
    border-style: none;
    padding: 0;
}

/**
* Restore the focus styles unset by the previous rule.
*/

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
    outline: 1px dotted ButtonText;
}

/**
* Correct the padding in Firefox.
*/

fieldset {
    padding: 0.35em 0.75em 0.625em;
}

/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
*      `fieldset` elements in all browsers.
*/

legend {
    box-sizing: border-box;
    /* 1 */
    color: inherit;
    /* 2 */
    display: table;
    /* 1 */
    max-width: 100%;
    /* 1 */
    padding: 0;
    /* 3 */
    white-space: normal;
    /* 1 */
}

/**
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/

progress {
    vertical-align: baseline;
}

/**
* Remove the default vertical scrollbar in IE 10+.
*/

textarea {
    overflow: auto;
}

/**
* 1. Add the correct box sizing in IE 10.
* 2. Remove the padding in IE 10.
*/

[type="checkbox"],
[type="radio"] {
    box-sizing: border-box;
    /* 1 */
    padding: 0;
    /* 2 */
}

/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
    height: auto;
}

/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/

[type="search"] {
    -webkit-appearance: textfield;
    /* 1 */
    outline-offset: -2px;
    /* 2 */
}

/**
* Remove the inner padding in Chrome and Safari on macOS.
*/

[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
}

/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
    -webkit-appearance: button;
    /* 1 */
    font: inherit;
    /* 2 */
}

/* Interactive
 ========================================================================== */

/*
* Add the correct display in Edge, IE 10+, and Firefox.
*/

 details {
    display: block;
}

/*
* Add the correct display in all browsers.
*/

summary {
    display: list-item;
}

/* Misc
 ========================================================================== */

/**
* Add the correct display in IE 10+.
*/

 template {
    display: none;
}

/**
* Add the correct display in IE 10.
*/

[hidden] {
    display: none;
}

/*--------------------------------------------------------------
# Elements
--------------------------------------------------------------*/

html {
box-sizing: border-box;
}

*,
*:before,
*:after {
/* Inherit box-sizing to make it easier to change the property for components that leverage other behavior; see https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
box-sizing: inherit;
}

body {
background: #fff;
/* Fallback for when there is no custom background color defined. */
}

hr {
background-color: #ccc;
border: 0;
height: 1px;
margin-bottom: 1.5em;
}

ul {
list-style: disc;
}

ol {
list-style: decimal;
}

li {
padding-block:.2rem;
}

li > ul,
li > ol {
margin-bottom: 0;
margin-left: 1.5em;
}

dt {
font-weight: bold;
}

dd {
margin: 0 1.5em 1.5em;
}

img {
height: auto;
/* Make sure images are scaled correctly. */
max-width: 100%;
/* Adhere to container width. */
}

figure {
margin: 1em 0;
/* Extra wide images within figure tags don't overflow the content area. */
}

table {
margin: 0 0 1.5em;
width: 100%;
}


/*--------------------------------------------------------------
# General
--------------------------------------------------------------*/

/* 
  ### Main Colors 
*/

/*******
## BG Colors
*******/

.oc-bg--negro {
    background-color: var(--negro, #000000);
}

.oc-bg--blanco {
    background-color: var(--blanco, #FFFFFF);
}

.oc-bg--fondocartillas {
    background-color: var(--fondocartillas, #F8F8F8);
}

.oc-bg--grisoscuro {
    background-color: var(--grisoscuro, #E8E8E8);
}

.oc-bg--grisclaro {
    background-color: var(--grisclaro, #F2F2F2);
}

.oc-bg--verdesalud1 {
    background-color: var(--verdesalud1, #4BCFAF);
}

.oc-bg--verdeclaro {
    background-color: var(--verdeclaro, #CDF3EA);
}

.oc-bg--azulcta1 {
    background-color: var(--azulcta1, #34BFFA);
}

.oc-bg--azulcta2 {
    background-color: var(--azulcta2, #0093D9);
}

.oc-bg--azuloscuro {
    background-color: var(--azuloscuro, #004070);
}

.oc-bg--azulclaro {
    background-color: var(--azulclaro, #E1F1F8);
}

.oc-bg--rojooc {
    background-color: var(--rojooc, #DB010B);
}

.oc-bg--azuloscuro2 {
    background-color: var(--azuloscuro2, #003D88);
}


/*******
## Text Colors
*******/

.oc--negro {
    color: var(--negro, #000000) !important;
}

.oc--blanco {
    color: var(--blanco, #FFFFFF) !important;
}

.oc--fondocartillas {
    color: var(--fondocartillas, #F8F8F8) !important;
}

.oc--grisoscuro {
    color: var(--grisoscuro, #E8E8E8) !important;
}

.oc--grisclaro {
    color: var(--grisclaro, #F2F2F2) !important;
}

.oc--verdesalud1 {
    color: var(--verdesalud1, #4BCFAF) !important;
}

.oc--verdeclaro {
    color: var(--verdeclaro, #CDF3EA) !important;
}

.oc--azulcta1 {
    color: var(--azulcta1, #34BFFA) !important;
}

.oc--azulcta2 {
    color: var(--azulcta2, #0093D9) !important;
}

.oc--azuloscuro {
    color: var(--azuloscuro, #004070) !important;
}

.oc--azulclaro {
    color: var(--azulclaro, #E1F1F8) !important;
}

.oc--rojooc {
    color: var(--rojooc, #DB010B) !important;
}

.oc--azuloscuro2 {
    color: var(--azuloscuro2, #003D88) !important;
}

/*******
## Buttons
*******/

.oc-btn,
.oc-btn-secondary,
.primary-navbar ul.navbar-nav > li:last-child a,
#mobile-menu ul:not(.submenu-mobile) > li:last-child a {
    font-size: var(--fsize-0);
    font-weight: 500;
    min-width: 175px;
    padding: 0.6rem 0.5rem;
    border-radius: 0.5rem;
    transition: all 0.3s ease;
    display: inline-block;
    text-align: center;
    cursor: pointer;
    border: 1px solid transparent;
    background-color:  var(--azulcta2, #0093D9);
    color: var(--blanco, #FFFFFF);
    border-color:  var(--azulcta2, #0093D9);
    text-decoration: none;

    &:hover {
        color:  var(--azulcta2, #0093D9);
        background-color:  var(--azulclaro, #E1F1F8);
    }
}

.primary-navbar ul.navbar-nav > li:last-child a {
    min-width: 145px !important;
}

.oc-btn-secondary {
    background-color:  var(--blanco, #FFFFFF);
    color:  var(--azulcta2, #0093D9);
    padding: 0.6rem 0rem;
    min-width: 105px;
}

.oc-btn-salud,
.oc-btn-salud-secondary {
    font-size: var(--fsize-0);
    font-weight: 500;
    min-width: 175px;
    padding: 0.6rem 0.2rem;
    border-radius: 0.5rem;
    transition: all 0.3s ease;
    display: inline-block;
    text-align: center;
    cursor: pointer;
    border: 1px solid transparent;
    background-color:  var(--verdesalud1, #4BCFAF);
    color: var(--blanco, #FFFFFF);
    border-color:  var(--verdesalud1, #4BCFAF);
    text-decoration: none;

    &:hover {
        color:  var(--verdesalud1, #4BCFAF);
        background-color: var(--blanco, #FFFFFF);
    }
}

.oc-btn-salud-secondary {
    background-color:  var(--blanco, #FFFFFF);
    color:  var(--verdesalud1, #4BCFAF);
    padding: 0.6rem 0rem;
    min-width: 105px;

    &:hover {
        background-color: var(--verdeclaro, #CDF3EA);
    }
}

.oc-btn-cartilla {
    font-size: var(--fsize-0);
    font-weight: 500;
    min-width: 175px;
    padding: 0.6rem 1.5rem;
    border-radius: 0.4rem;
    transition: all 0.3s ease;
    display: inline-block;
    text-align: center;
    cursor: pointer;
    background-color:  var(--grisoscuro, #E8E8E8);
    color: var(--azuloscuro, #004070);
    text-decoration: none;

    &:hover {
        opacity: 0.6;
    }
}

/*******
## Links
*******/

a {
    color:var(--azuloscuro, #004070);
    text-decoration: underline;
    font-weight: 700;
    transition: all 0.3s ease;
}

a:hover {
    color:var(--azulcta2, #0093D9);
}

.secondary a:not(.oc-btn) {
    color:var(--azulcta2, #0093D9);

    &:hover {
        color:var(--azuloscuro, #004070);
    }
}

.primary-navbar a,
.footer-main a,
.footer-secondary a {
    color:var(--negro, #000000);
    font-weight: 450;
    text-decoration: none;
}

.primary-navbar a:hover,
.footer-main a:hover,
.footer-secondary a:hover {
    color:var(--azulcta2, #0093D9);
}

.alternative a {
    color:var(--verdesalud1, #4BCFAF);
    text-decoration: underline;
    font-weight: 700;
    transition: all 0.3s ease;
}

.alternative a:hover {
    opacity: 0.6;
}

/*--------------------------------------------------------------
# Typography
--------------------------------------------------------------*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family:var(--ffamily);
  font-style: normal;
}


/*
## Font Size
*/

.fsize--3 {
  font-size: var(--fsize--3) !important;
}

.fsize--2 {
  font-size: var(--fsize--2) !important;
}

.fsize--1 {
    font-size:var(--fsize--1) !important;
}

.fsize-0,
p {
    font-size:var(--fsize-0) !important;
    font-weight: 300 !important;
}

.fsize-1,
h4 {
    font-size:var(--fsize-1) !important;
    font-weight: 500 !important;
}

.fsize-2,
h3 {
    font-size:var(--fsize-2) !important;
    font-weight: 300 !important;
}

.fsize-3,
h2 {
    font-size:var(--fsize-3) !important;
    font-weight: 300 !important;
}

.fsize-4,
h1 {
    font-size:var(--fsize-4) !important;
    color: var(--azuloscuro, #004070);
    font-weight: 700 !important;
}

/*
## Estilos y pesos
*/

.italic {
    font-style: italic !important;
}

.normal {
    font-style: normal !important;
}

.regular {
    font-weight: 300 !important;
}

.bold {
    font-weight: 700 !important;
}

.semibold {
    font-weight: 500 !important;
}

.uppercase {
    text-transform:uppercase !important ;
}

body,
button,
input,
select,
optgroup,
textarea {
    color:var(--negro, #000000);
    font-size: var(--fsize-0);
    line-height: 1.4;
    font-family:var(--ffamily);
    font-weight: 300;
}

.article-post p {
    margin-bottom: 1.2em;
}

dfn,
cite,
em,
i {
    font-style: italic;
}

blockquote {
    margin: 0 .5em;
    padding: 25px;
    margin-bottom: 1.5em;
    font-style: italic;
    border-left: 4px solid #000000;
}

blockquote p {
    margin: 0;
}

address {
    margin: 0 0 1.5em;
}

pre {
    background: #eee;
    color: #000000;
    font-family: "Courier 10 Pitch", Courier, monospace;
    font-size: 15px;
    font-size: 0.9375rem;
    line-height: 1.6;
    margin-bottom: 1.6em;
    max-width: 100%;
    overflow: auto;
    padding: 1.6em;
}

code,
kbd,
tt,
var {
    font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
    font-size: 15px;
    font-size: 0.9375rem;
}

abbr,
acronym {
    border-bottom: 1px dotted #666;
    cursor: help;
}

mark,
ins {
    background: #fff9c0;
    text-decoration: none;
}


/*
## h1 & btn colors
*/

:is(.len-bg--negro, .len-bg--azul1, .len-bg--azul2, .len-bg--verde, .len-bg--verde2, .len-bg--verde3) :is(.switch, a:is(:visited), a),
:is(.len-bg--negro, .len-bg--azul1, .len-bg--azul2, .len-bg--verde, .len-bg--verde2, .len-bg--verde3) .vw-hero-title p:not(.brand-hero),
:is(.len-bg--negro, .len-bg--azul1, .len-bg--azul2, .len-bg--verde, .len-bg--verde2, .len-bg--verde3) :where(h2, h3, h4, h5, p, li) {
    color: var(--blanco, #ffffff);
}

:not(.len-divisiones, .len-global):is(.len-bg--grisclaro, .len-bg--grisoscuro, .len-bg--blanco) :where(h2, h3, h4, h5, p, li) {
    color: var(--negro, #000000);
}


/*--------------------------------------------------------------
# Nav
--------------------------------------------------------------*/

/* Mini Banner - Barra deslizante superior */
.mini-banner {
    position: relative;
    overflow: hidden;
    width: 100%;
    z-index: 10;
}

.mini-banner-scroll {
    overflow: hidden;
    white-space: nowrap;
}

.mini-banner-content {
    display: inline-flex;
    animation: mini-banner-scroll 30s linear infinite;
}

.mini-banner-content span {
    display: inline-block;
    margin: 0;
    position: relative;
}

.mini-banner-content span::after {
    content: '\25CF';
    padding-left: 0.75rem;
    font-size: 1em;
}

@keyframes mini-banner-scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

/* Navbar sticky */
.site-header.sticky {
    position: sticky;
    top: 0;
    z-index: 100;
}

/* Quitar markers de lista del navbar */
.navbar-nav,
.navbar-nav li {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Separador vertical en menú */
.menu-separator {
    width: 1.6px;
    height: 50px;
    background-color: var(--grisoscuro, #E8E8E8);
    align-self: center;
    list-style: none;
}

/* Menú Móvil - Dropdowns colapsables */
#mobile-menu {
    max-height: 70vh;
    overflow-y: auto;
}

#mobile-menu ul,
#mobile-menu li {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Submenús móviles ocultos por defecto */
.submenu-mobile {
    margin-top: 0.25rem;
}

/* Botón toggle para expandir/colapsar */
.mobile-toggle {
    color: var(--negro, #000000);
    font-weight: 500;
}

.mobile-toggle:hover,
.mobile-toggle.active {
    color: var(--azulcta2, #0093D9);
    border-bottom: 1px solid var(--azulcta2, #0093D9);
}

/* Flecha rotación cuando está abierto */
.mobile-toggle.active .mobile-arrow {
    transform: rotate(180deg);
}

/* Links normales en móvil */
.mobile-menu-item > a {
    color: var(--negro, #000000);
}

.mobile-menu-item > a:hover {
    color: var(--azulcta2, #0093D9);
}

/* Mega Menu Dropdown - Estructura de columnas */
.hs-dropdown {
    position: relative;
}

.hs-dropdown-toggle:hover,
.hs-dropdown-toggle:focus {
    color: var(--azulcta2, #0093D9);
}

/* Mantener color azul cuando el dropdown está abierto */
.hs-dropdown.open .hs-dropdown-toggle {
    color: var(--azulcta2, #0093D9);
}

/* Mantener color azul cuando hay focus dentro del dropdown */
.hs-dropdown:focus-within .hs-dropdown-toggle {
    color: var(--azulcta2, #0093D9);
}

/* Mantener color azul cuando el dropdown menu no está hidden */
.hs-dropdown-toggle:has(+ .hs-dropdown-menu:not(.hidden)) {
    color: var(--azulcta2, #0093D9);
}

.hs-dropdown-menu {
    position: fixed !important;
    left: 50% !important;
    top: auto !important; /* Permitir que JS establezca el top */
    transform: translateX(-50%) !important;
    min-width: 700px;
    max-width: 900px;
    width: 900px !important;
    z-index: 50;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}

/* Dropdown sin contenido de nivel 3 - más compacto */
.hs-dropdown-menu.no-content {
    min-width: 280px !important;
    max-width: 280px !important;
    width: 280px !important;
}

.hs-dropdown-menu.hidden {
    display: none !important;
    opacity: 0;
    visibility: hidden;
}

.hs-dropdown.open .hs-dropdown-menu,
.hs-dropdown-menu:not(.hidden) {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Mostrar dropdown con focus en el botón */
.hs-dropdown-toggle:focus + .hs-dropdown-menu,
.hs-dropdown-toggle:focus-within + .hs-dropdown-menu {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Mantener dropdown visible cuando tiene focus dentro */
.hs-dropdown:focus-within .hs-dropdown-menu {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Tabs Verticales - Columna Izquierda */
.tab-button-vertical {
    font-size: 1rem;
    color: var(--negro, #000000);
    font-weight: 500;
}

.tab-button-vertical:hover {
    color: var(--azulcta2, #0093D9);
}

.tab-button-vertical.active,
.tab-button-vertical[aria-selected="true"] {
    color: var(--azulcta2, #0093D9);
}

/* Columna Derecha - Contenido de Tabs */
.tab-contents [role="tabpanel"] {
    min-height: 400px;
    max-height: 400px;
}

.tab-contents [role="tabpanel"].hidden {
    display: none !important;
}

.tab-contents [role="tabpanel"]:not(.hidden) {
    display: block;
}

.tab-contents [role="tabpanel"] a {
    color: var(--negro, #000000);
    font-size: 0.875rem; /* Reducido de 0.95rem a 0.875rem para más items */
    padding: 0.5rem 1rem; /* Padding más compacto */
}

.tab-contents [role="tabpanel"] a:hover {
    color: var(--azulcta2, #0093D9);
}


/*--------------------------------------------------------------
# Breadcrumbs
--------------------------------------------------------------*/

/* Hero Breadcrumb - Reset estilos de enlaces */
.hero-breadcrumb a {
    color: inherit !important;
    text-decoration: none !important;
    font-weight: 300 !important;
    transition: opacity 0.3s ease;
}

.hero-breadcrumb a:hover {
    opacity: 0.8;
    color: inherit !important;
}

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/

.site-footer .footer-menu-column {

    & p {
        margin-bottom: 10px;
    }
    
    &:last-child p {
        margin-bottom: 20px;
    }
}

.footer-main p,
.footer-main a  {
    font-size: var(--fsize--1) !important;
}

.footer-main a  {
    font-weight: 300 !important;
}

.footer-secondary p,
.footer-secondary a {
    font-size: var(--fsize--3) !important;
    font-weight: 300;
    line-height: 1.3 !important;
}

/*--------------------------------------------------------------
# Home
--------------------------------------------------------------*/

/* Hero Home Slider
   El layout (ancho de card, navegación, alturas) vive en el markup con Tailwind.
   Acá queda sólo lo que necesita pelear con el CSS interno de Swiper. */
.hero-swiper {
    /* overflow: clip en vez del hidden de Swiper, para que los slides
       vecinos asomen a los costados (efecto coverflow). */
    overflow: clip !important;
}

/* Botón de navegación deshabilitado: clase que Swiper agrega por JS,
   por eso no se resuelve con Tailwind en el markup. */
.swiper-button-disabled {
    opacity: 0.3;
    cursor: not-allowed;
}


/* 
  ### Cards
*/

/* Tabs Navigation */
.tabs-navigation .tab-button {
    position: relative;
    border-bottom: 4px solid transparent;
}

.tabs-navigation .tab-button.active,
.tabs-navigation .tab-button:hover {
    color: var(--azuloscuro, #004070) !important;
    border-bottom: 4px solid var(--azulcta2, #0093D9);
    transition: all 0.3s ease;
}

/* Tabs Swiper - Para cambiar entre tabs completos */
.tabs-swiper {
    overflow: hidden;
}

.tabs-swiper .swiper-slide {
    height: auto;
}


/* 
  ### Slider vertical
*/

/* Contenedor de stacking cards */
.elegirnos-stack-container {
    position: relative;
    width: 100%;
}

/* Cada item sticky */
.elegirnos-sticky-item {
    position: sticky;
    top: 80px;
    display: flex;
    align-items: center;
}

/* Wrapper de la card con transiciones */
.elegirnos-card-wrapper {
    width: 100%;
    transition: transform 0.2s ease-out, opacity 0.2s ease-out;
    transform-origin: center top;
    will-change: transform, opacity;
}


/* 
  ### Accesos Rápidos
*/

.acceso-rapido-card:hover .acceso-overlay-hover {
    background-color: var(--azulcta2, #0093D9);
    opacity: 0.8;
}

@media (max-width: 768px) {
    .acceso-rapido-card .acceso-overlay-hover {
        background-color: var(--azulcta2, #0093D9);
        opacity: 0.8;
    }
}

/* Estilos de paginación */
.accesos-rapidos-swiper .swiper-pagination,
.hero-swiper .swiper-pagination {
    position: relative;
    margin-top: 2rem !important;
}

.accesos-rapidos-swiper .swiper-pagination-bullet,
.hero-swiper .swiper-pagination-bullet {
    width: 75px;
    height: 3px;
    border-radius: 2px;
    background: var(--azulclaro, #E1F1F8);
    opacity: 1;
}

.accesos-rapidos-swiper .swiper-pagination-bullet-active,
.hero-swiper .swiper-pagination-bullet-active {
    background: var(--azuloscuro, #004070);
}


/*
  ### Doble Slider
*/

.doble-slider-pagination .swiper-pagination-bullet {
    width: 16px;
    height: 16px;
}

/*
  ### Hero 2.0
*/

/* Layout Salud: precio destacado. El campo Texto es wysiwyg y ACF lo
   envuelve en un <p>, así que hay que pisar la regla global "p { ... }"
   de más arriba (ver ## h1 & btn colors) con un selector más específico. */
.hero-2-block .hero-precio p {
    font-size: clamp(2.25rem, 1.6rem + 3vw, 3.5rem) !important;
    font-weight: 700 !important;
}

/*
  ### Columnas 2.0
*/

/* Texto de cada card: mismo caso que el precio del Hero 2.0 de arriba,
   el WYSIWYG envuelve el contenido en un <p>. */
.columnas-2-block .columna-texto p {
    font-size: 12px !important;
    font-weight: 400 !important;
}

/* Alineación Izquierda: mismo texto pero peso 300. El !font-light lo pone
   columnas-2.php en el <div>.columna-texto; hace falta este selector porque
   esa clase no le llega al <p> que arma el WYSIWYG adentro. */
.columnas-2-block .columna-texto.\!font-light p {
    font-weight: 300 !important;
}

/* Alineación Izquierda: si el WYSIWYG del texto trae un h4 (ej. un subtítulo
   tipo "Urgencias"), toma el color de la página en vez del negro por default.
   La custom property --columna-texto-h4-color la setea el PHP inline según
   $border_color (ver columnas-2.php); --azuloscuro es el fallback. */
.columnas-2-block .columna-texto.\!font-light h4 {
    color: var(--columna-texto-h4-color, var(--azuloscuro));
}

/*
  ### Sucursales
*/

.sucursales-hero .hero-text p {
    font-size: var(--fsize-1) !important;
    font-weight: 400 !important;
}

/*
  ### CTA
*/

/* Mismo caso que el Hero 2.0 y Columnas 2.0: el WYSIWYG envuelve el texto
   en un <p>, así que hay que pisar la regla global "p { ... }" con un
   selector más específico para que valgan fsize-1/font-bold del bloque. */
.cta-block .cta-text p {
    font-size: var(--fsize-1) !important;
    font-weight: 700 !important;
}

/*--------------------------------------------------------------
# Single
--------------------------------------------------------------*/

.content-single {
    & p {
        margin-bottom: 1.2rem;
    }

    & h2,
    h3, 
    h4 {
        color: var(--azuloscuro, #004070);
    }

    & h2,
    h3 {
        font-weight: 500 !important;
    }

    & h4 {
        font-weight: 400 !important;
    }
}

/*--------------------------------------------------------------
# Especial CSS
--------------------------------------------------------------*/

/* Columnas Block */
.columna-texto ul {
    list-style: none;
    padding-left: 0;
}

.columna-texto ul li {
    position: relative;
    padding-left: 1.5rem;
    margin-bottom: 0.5rem;
}

.columna-texto ul li::before {
    content: "-";
    position: absolute;
    left: 0;
}

.incluye-lista-text ul li {
    margin-bottom: .8rem;
}


/*
  ### Desplegable
*/

.desplegable-block .desplegable-trigger {
    cursor: pointer;
}

.desplegable-block .desplegable-icon {
    color: #A2A2A2;
    transition: all 0.3s ease;
}

.desplegable-block .desplegable-trigger:hover .desplegable-icon,
.desplegable-block .desplegable-trigger.is-open .desplegable-icon {
    color: var(--azuloscuro, #004070);
}

.desplegable-block .desplegable-content {
    transition: max-height var(--01-transition), opacity var(--01-transition);
}

.desplegable-block .desplegable-content:not(.hidden) {
    animation: slideDown 1s ease-out;
}

.desplegable-block .desplegable-content.closing {
    animation: slideUp .5s ease-out;
}

@keyframes slideDown {
    from {
        opacity: 0;
        max-height: 0;
    }
    to {
        opacity: 1;
        max-height: 1000px;
    }
}

@keyframes slideUp {
    from {
        opacity: 1;
        max-height: 1000px;
    }
    to {
        opacity: 0;
        max-height: 0;
    }
}

/*
  ### Salud Médica
*/

/* El texto sale de un WYSIWYG y ACF lo envuelve en <p>: el global "p {
   font-size/font-weight !important}" (más arriba en este archivo) le gana a
   cualquier clase de tamaño/peso puesta en el div contenedor, porque ese
   valor solo se hereda. Por eso se apunta directo al <p>. */
.saludmedica-block .saludmedica-texto p {
    font-size: var(--fsize-1) !important;
    font-weight: 700 !important;
}

.saludmedica-block .saludmedica-play {
    cursor: pointer;
}

.saludmedica-block .saludmedica-play span {
    transition: transform 0.3s ease, background-color 0.3s ease;
}

.saludmedica-block .saludmedica-play:hover span {
    transform: scale(1.1);
    background-color: rgba(255, 255, 255, 0.15);
}

/*
  ### Acordeón
*/

.acordeon-block .acordeon-trigger {
    cursor: pointer;
}

.acordeon-block .acordeon-icon {
    transition: transform 0.35s ease;
}

.acordeon-block .acordeon-icon-v {
    transition: transform 0.35s ease;
}

.acordeon-block .acordeon-trigger.is-open .acordeon-icon {
    transform: rotate(180deg);
}

.acordeon-block .acordeon-trigger.is-open .acordeon-icon-v {
    transform: translate(-50%, -50%) rotate(90deg);
}

.acordeon-block .acordeon-content {
    transition: max-height var(--01-transition), opacity var(--01-transition);
}

.acordeon-block .acordeon-content:not(.hidden) {
    animation: slideDown 1s ease-out;
}

.acordeon-block .acordeon-content.closing {
    animation: slideUp .5s ease-out;
}

/*
    ### Cartilla
*/

@media screen and (min-width: 1024px) {
    .cartilla-segunda-columna {
        grid-column: 2 / 3;
        grid-row: 1 / 4;
    }
}

/*
  ### Gravity Forms
*/

.oc-form_wrapper .gform_heading {
    display: none;
}

.oc-form_wrapper .gform_validation_errors {
    margin-top: 2rem !important;
    margin-bottom: 0 !important;
}

.oc-form_wrapper .gform_fields {
    row-gap: 14px !important;
}

.oc-form_wrapper .ginput_container input,
.oc-form_wrapper .ginput_container textarea,
.oc-form_wrapper .ginput_container select {
    border: 1px solid #A2A2A2 !important;
    border-radius: 8px !important;
}

.oc-form_wrapper .ginput_container input,
.oc-form_wrapper .ginput_container select {
    height: 50px !important;
}

.oc-form_wrapper .ginput_container select {
    align-items: center;
    font-size: var(--fsize-0) !important;
    font-weight: 300 !important;
}

.oc-form_wrapper .ginput_container input:focus,
.oc-form_wrapper .ginput_container textarea:focus,
.oc-form_wrapper .ginput_container select:focus {
    border-color: var(--azulcta2, #0093D9) !important;
    outline: none !important;
}

.oc-form_wrapper .gform_fields label {
    font-size: var(--fsize-0) !important;
    font-weight: 300 !important;
}

.oc-form_wrapper .gform-footer,
.oc-form_wrapper .gform_page_footer {
    height: 0% !important;

    & p {
        display: none;
    }
}

.oc-form_wrapper .ginput_container_consent {
    & input {
        height: 15px !important;
        width: 15px !important;
        align-self: center;
        justify-self: center;
        border-radius: 40px !important;
    }
    
    & a {
        color: #112337 !important;
        font-weight: 300 !important;
    }
}

.oc-form_wrapper .gform-footer .gform_button.button,
.oc-form_wrapper .gform_page_footer .gform_button.button,
.oc-form_wrapper .gform-page-footer .gform_next_button.button {
    font-size: var(--fsize-0) !important;
    font-weight: 500 !important;
    min-width: 90px !important;
    padding: 0.6rem 2rem !important;
    border-radius: 0.5rem !important;
    transition: all 0.3s ease !important;
    display: inline-block !important;
    text-align: center !important;
    cursor: pointer !important;
    border: 1px solid transparent !important;
    background-color:  var(--azulcta2, #0093D9) !important;
    color: var(--blanco, #FFFFFF) !important;
    border-color:  var(--azulcta2, #0093D9) !important;
    text-decoration: none !important;
    height: 44px !important;

    &:hover {
        color:  var(--azulcta2, #0093D9) !important;
        background-color:  var(--azulclaro, #E1F1F8) !important;
    }
}

.oc-form_wrapper .gform-page-footer .gform_previous_button.button {
    font-size: var(--fsize-0) !important;
    font-weight: 500 !important;
    border-radius: 0.5rem !important;
    transition: all 0.3s ease !important;
    display: inline-block !important;
    text-align: center !important;
    cursor: pointer !important;
    border: 1px solid transparent !important;
    border-color:  var(--azulcta2, #0093D9) !important;
    text-decoration: none !important;
    height: 44px !important;
    background-color:  var(--blanco, #FFFFFF) !important;
    color:  var(--azulcta2, #0093D9) !important;
    padding: 0.6rem 0rem !important;
    min-width: 105px !important;

    &:hover {
        color:  var(--azulcta2, #0093D9) !important;
        background-color:  var(--azulclaro, #E1F1F8) !important;
    }
}

.oc-form_wrapper .gfield--type-fileupload.oc-archivo {
    & .ginput_container_fileupload {
        & .gform_drop_area {
            height:44px;
            padding:0;
            border:transparent;
            width: 200px;
            border-radius: 8px !important;
            box-shadow: none;

            & br {
                display: none;
            }

            & .button {
                text-indent:-9999px;
                background-color: var(--grisoscuro, #E8E8E8) !important;
                border: 1px solid #A2A2A2 !important;
                border-radius: 8px !important;
                width: 200px !important;
                height:44px !important;

                &:after {
                    content: 'Adjuntar archivo' !important;
                    color: #707070 !important;
                    font-size: 16px !important;
                    font-family:var(--ffamily) !important;
                    font-weight: 300 !important;
                    text-indent: 0 !important;
                    display: block !important;
                    line-height: initial !important;
                    
                }

                &:hover {
                    opacity: .6;
                }
            }

            &::before,
            span {
                display: none !important;
            }
        }

        .gfield_description {
            display: none;
        }
    }
}

.oc-pago {
    display: flex !important;
    gap:40px !important;
    justify-self: center !important;
    padding: 2rem 0 !important;
    width: 100% !important;
    justify-content: center !important;

    & .gf_page_steps {
        align-content: center;
        width: 300px;
        gap: 50px !important;
        flex-direction: column;
        padding: 3rem 1rem;
        background-color: var(--azulclaro, #E1F1F8);
        align-self: start;
        border-radius: 8px;
    }

    & .gf_step {
        position: relative;
    }

    & .gf_step:not(:last-child)::after {
        content: '';
        position: absolute;
        left: 15px;
        top: 130%;
        width: 1.3px;
        height: 30px;
        background-color: #585e6a;
    }

    & .gform_body {
        width: 60%;
        background-color: var(--grisclaro, #F2F2F2);
        padding: 3rem 4rem;
        border-radius: 8px;        
    }    

    & .gform_page {
        justify-content: space-around;
        height: 100%;
        display: flex;
        flex-direction: column !important;
    }

    & .gf_step {
        & .gf_step_label {
            font-weight: 500 !important;
            text-transform: none;
            font-size: var(--fsize-0) !important;
            font-family: var(--ffamily) !important;
        }
    }

    & .gf_step_completed,
    & .gf_step_active {

        & .gf_step_label {
            color: var(--azulcta2, #0093D9) !important;
            font-weight: 500 !important;
            text-transform: none;
            font-size: var(--fsize-0) !important;
            font-family: var(--ffamily) !important;
        }
        
        & .gf_step_number::after {
            align-self: anchor-center;
            background-color: var(--azulcta2, #0093D9) !important;
            border: 2px solid var(--azulcta2, #0093D9) !important;
        }
    }

    & .gform_page_fields .gform_fields {
        row-gap: 26px !important;

        & legend {
            font-size: var(--fsize-0) !important;
            font-weight: 300 !important;
            font-family: var(--ffamily) !important;
        }
    }

    & .gfield--type-option .gchoice{
        position: relative;
        grid-template-columns: none !important;
        

        & input {
            width: 100%;
            padding: 1rem 0rem !important;
            
            &:hover,
            &:focus,
            &:checked {
                background-color: var(--azulclaro, #E1F1F8);
                border-radius: 8px !important;
                border: 1px solid var(--azulcta2, #0093D9) !important;
                outline: none !important;
            }

            &::before {
                content: none;
            }
        }

        & label {
            position: absolute;
            align-self: center;
            padding: 0rem 1rem !important;
            
            & span {
                display: none;
            }
        }
    }

    & .gfield.forma-pago .gfield_radio {
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;

        @media (min-width: 640px) {
            flex-direction: row !important;
        }

        & .gchoice {
            position: relative;
            grid-template-columns: none !important;
            width: 100%;
            text-align: center;

            @media (min-width: 640px) {
                width: 45%;
            }

            & input {
                width: 100%;
                height: 60px !important;
                
                &:hover,
                &:focus {
                    background-color: var(--azulclaro, #E1F1F8);
                    border-radius: 8px !important;
                    border: 1px solid var(--azulcta2, #0093D9) !important;
                    outline: none !important;
                }

                &::before {
                    content: none;
                }
            }

            & label {
                position: absolute;
                align-self: center;
                padding: 0rem 2rem !important;
                justify-self: center;
                margin: 0;
                
                & span {
                    display: none;
                }
            }
        }
    }

    & .container-alias {
        background-color: var(--azulclaro, #E1F1F8);
        width: max-content;
        color: var(--azuloscuro, #004070) !important;
        border-radius: 8px !important;
        border: 1px solid var(--azulcta2, #0093D9) !important;
        padding: .8rem 3rem !important;
        text-align: center;
    }

    & .container-custom {
        background-color: var(--azulclaro, #E1F1F8);
        width: 100%;
        border-radius: 8px !important;
        border: 1px solid var(--azulcta2, #0093D9) !important;
        padding: 1.5rem 1.5rem !important;

        & div{
            font-weight: 500;
        }
    }

    & .gfield--type-total,
    .gfield--type-number.prestaciones {
        display: flex;
        gap: 4px;
        align-items: center;

        & label,
        input {
            border: transparent !important;
            font-size: var(--fsize-1) !important;
            font-weight: 500 !important;
            color: var(--negro, #000000) !important;
            margin: 0;
        }
        
        & .ginput_container_total {
            width: 40%;
        }
    }

    & .gfield--type-number.prestaciones {
        margin-top: -4%;
        
        & input {
            font-size: var(--fsize-0) !important;
        }
    }

    & .gfield--type-number.subtotal {
        display: flex;
        gap: 3px;
        align-items: center;
        margin-top: -45px;
        
    
        & label,
        input {
            border: transparent !important;
            font-size: var(--fsize--2) !important;
            font-weight: 300 !important;
            font-style: italic !important;
            margin: 0;
        }  
    }

    & .gform-datepicker {
        width: 100% !important;
    }

    & .gfield--type-quantity .ginput_container_number {

        & input {
            text-align: center;
        }

        & .gfield_description.instruction {
            display: none !important;
        } 
    }

    & .gform-page-footer {
        justify-content: space-between;
    }

    & .gfield--type-section {
        color: var(--azulcta2);
        border-bottom: 1px solid var(--azulcta2) !important;
        
        & h3 {
            font-size: var(--fsize-1) !important;
        }
    }
}

@media (max-width: 1024px) {

    .oc-form {
        display: block !important;

        & .gf_page_steps {
            display: none !important;
        }

        & .gform_body{
            width: 100% !important;
            padding: 1rem;

            & .container-alias {
                padding: .8rem 2rem !important;
                width: auto;
            }
        }
    }
}

.gfield--input-type-calculation.oculto .ginput_product_price_wrapper {
    display: none !important;
}


/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

.p-block-345 {
    padding-block:clamp(2rem, 3rem, 4rem);
}

.p-block-start-345 {
    padding-block-start:clamp(2rem, 3rem, 4rem);
}

.p-block-end-345 {
    padding-block-end:clamp(2rem, 3rem, 4rem);
}

/*--------------------------------------------------------------
# Sucursales - Scrollbar personalizada
--------------------------------------------------------------*/

.sucursales-lista::-webkit-scrollbar {
    width: 8px;
}

.sucursales-lista::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 10px;
}

.sucursales-lista::-webkit-scrollbar-thumb {
    background: var(--azulcta2, #0066CC);
    border-radius: 10px;
}

.sucursales-lista::-webkit-scrollbar-thumb:hover {
    background: var(--azuloscuro, #003366);
}

.sucursal-item:last-child {
    border-bottom: none !important;
}

/* Hacer clickeable visualmente */
.sucursal-item {
    transition: all 0.3s ease;
}

.sucursal-item:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/*--------------------------------------------------------------
# Mapa Leaflet - Estilos personalizados
--------------------------------------------------------------*/

/* Asegurar que el mapa se muestre correctamente */
#mapa-leaflet {
    background: #f8f9fa;
    min-height: 600px;
    height: 600px;
    width: 100%;
}

/* Fix para imágenes de Leaflet */
.leaflet-container img {
    max-width: none !important;
    max-height: none !important;
}

/* Personalizar los popups de Leaflet - estilo Google Maps */
.leaflet-popup-content-wrapper {
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    border: none;
    padding: 4px;
}

.leaflet-popup-content {
    margin: 12px 16px;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.5;
}

.leaflet-popup-tip {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

/* Quitar la X de cerrar (opcional, más similar a Google Maps) */
.leaflet-popup-close-button {
    display: none;
}

/* Personalizar los marcadores */
.leaflet-marker-icon {
    cursor: pointer;
    transition: all 0.2s ease;
}

.leaflet-marker-icon:hover {
    filter: brightness(1.05);
    transform: scale(1.05);
}

/* Controles de zoom estilo moderno */
.leaflet-control-zoom {
    border: none !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2) !important;
}

.leaflet-control-zoom a {
    border: none !important;
    background-color: white !important;
    color: #666 !important;
    font-size: 18px !important;
    transition: background-color 0.2s ease;
}

.leaflet-control-zoom a:hover {
    background-color: #f5f5f5 !important;
    color: #333 !important;
}

/* Popup Home */
#popup {
    opacity: 0;
    transition: opacity 420ms ease;
}

#popup .bg-black\/60 {
    opacity: 0;
    transition: opacity 420ms ease;
}

#popup [data-popup-content] {
    opacity: 0;
    transform: translateY(8px) scale(0.98);
    transition: transform 520ms ease, opacity 520ms ease;
}

#popup.is-open {
    opacity: 1;
}

#popup.is-open .bg-black\/60 {
    opacity: 1;
}

#popup.is-open [data-popup-content] {
    opacity: 1;
    transform: translateY(0) scale(1);
}

/* Atención Servicios: sobre fondo verde claro, el título va en negro y liviano */
.atencion-servicios-block.oc-bg--verdeclaro .atencion-contenido h2.oc--verdesalud1 {
    color: var(--negro, #000000) !important;
    font-weight: 300 !important;
}


