/* =========================================
   ECOS DESIGN SYSTEM v1.0
   Grupo Ecos — Centro de Formacion
   Paleta: Magenta #E5137D / Carbon #232228
   ========================================= */

:root {
    --ecos-magenta:        #E5137D;
    --ecos-magenta-dark:   #C40E6A;
    --ecos-gradient:       linear-gradient(135deg, #E5137D 0%, #F0426E 100%);
    --ecos-carbon:         #232228;
    --ecos-bg:             #F7F7F9;
    --ecos-body:           #3D3C42;
    --ecos-gray:           #6B7280;
    --ecos-border:         #E3E2E8;
    --ecos-white:          #ffffff;
    --ecos-radius:         8px;
    --ecos-radius-lg:      16px;
    --ecos-shadow-sm:      0 4px 24px rgba(35,34,40,.06);
    --ecos-shadow-md:      0 8px 40px rgba(35,34,40,.12);
    --ecos-shadow-magenta: 0 8px 24px rgba(229,19,125,.35);
    --ecos-transition:     200ms ease-out;
}

/* =========================================
   BASE TYPOGRAPHY
   ========================================= */

body,
p,
li,
td,
th,
label,
input,
textarea,
select {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 17px;
    color: var(--ecos-body);
    line-height: 1.75;
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.page-title,
.widget-title,
.woocommerce-loop-product__title,
.product_title.entry-title {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;
    font-weight: 800;
    color: var(--ecos-carbon);
    line-height: 1.2;
}

a {
    color: var(--ecos-magenta);
    transition: color var(--ecos-transition);
}

a:hover {
    color: var(--ecos-magenta-dark);
}

/* =========================================
   HEADER — sticky con sombra sutil
   ========================================= */

.ast-primary-header-bar,
.ast-above-header-bar,
#masthead {
    background: var(--ecos-white) !important;
}

.ast-primary-header-bar {
    position: sticky !important;
    top: 0 !important;
    z-index: 999 !important;
    box-shadow: 0 1px 20px rgba(35,34,40,.07) !important;
    transition: box-shadow var(--ecos-transition) !important;
}

/* =========================================
   MENU NAVIGATION
   ========================================= */

.ast-primary-header-bar .main-header-menu .menu-item > a,
.main-navigation .menu-item > a {
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-size: 15px;
    color: var(--ecos-carbon) !important;
    text-decoration: none;
    position: relative;
    padding-bottom: 4px;
    transition: color var(--ecos-transition);
}

.ast-primary-header-bar .main-header-menu .menu-item > a::after,
.main-navigation .menu-item > a::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--ecos-gradient);
    border-radius: 2px;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform var(--ecos-transition);
}

.ast-primary-header-bar .main-header-menu .menu-item > a:hover,
.main-navigation .menu-item > a:hover {
    color: var(--ecos-magenta) !important;
}

.ast-primary-header-bar .main-header-menu .menu-item > a:hover::after,
.main-navigation .menu-item > a:hover::after,
.main-navigation .menu-item.current-menu-item > a::after,
.main-navigation .menu-item.current-menu-ancestor > a::after {
    transform: scaleX(1);
}

.main-navigation .menu-item.current-menu-item > a,
.main-navigation .menu-item.current-menu-ancestor > a {
    color: var(--ecos-magenta) !important;
}

/* =========================================
   BOTONES
   ========================================= */

.wp-block-button__link,
.wp-element-button,
.button,
.ast-button,
a.button,
button,
button[type="submit"],
input[type="submit"],
input[type="button"],
.single_add_to_cart_button,
.checkout-button,
.wc-proceed-to-checkout a,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button {
    background: var(--ecos-gradient) !important;
    background-color: var(--ecos-magenta) !important;
    color: var(--ecos-white) !important;
    border: none !important;
    border-radius: var(--ecos-radius) !important;
    padding: 14px 28px !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    letter-spacing: 0.01em;
    text-decoration: none !important;
    cursor: pointer;
    display: inline-block;
    line-height: 1.4;
    transition: transform var(--ecos-transition), box-shadow var(--ecos-transition) !important;
    box-shadow: none;
    min-height: 44px;
}

.wp-block-button__link:hover,
.wp-element-button:hover,
.button:hover,
.ast-button:hover,
a.button:hover,
button:hover,
button[type="submit"]:hover,
input[type="submit"]:hover,
.single_add_to_cart_button:hover,
.checkout-button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
    transform: translateY(-2px) !important;
    box-shadow: var(--ecos-shadow-magenta) !important;
    color: var(--ecos-white) !important;
    text-decoration: none !important;
}

/* Botones secundarios / outline */
.woocommerce a.button.alt,
.woocommerce button.button.alt {
    background: var(--ecos-gradient) !important;
}

/* =========================================
   TARJETAS PRODUCTO WOO
   ========================================= */

ul.products {
    gap: 24px;
}

ul.products li.product {
    background: var(--ecos-white) !important;
    border-radius: var(--ecos-radius-lg) !important;
    box-shadow: var(--ecos-shadow-sm) !important;
    overflow: hidden;
    border: none !important;
    transition: transform 250ms ease, box-shadow 250ms ease;
    padding: 0 !important;
}

ul.products li.product:hover {
    transform: translateY(-6px);
    box-shadow: var(--ecos-shadow-md) !important;
}

ul.products li.product img {
    border-radius: var(--ecos-radius-lg) var(--ecos-radius-lg) 0 0;
    width: 100%;
    display: block;
}

ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2,
ul.products li.product h3 {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    font-size: 18px;
    color: var(--ecos-carbon) !important;
    padding: 16px 20px 4px;
    margin: 0;
}

ul.products li.product .price {
    padding: 4px 20px 16px;
    margin: 0;
    font-weight: 700;
}

ul.products li.product .price,
ul.products li.product .price .amount,
ul.products li.product .price .woocommerce-Price-amount {
    color: var(--ecos-magenta) !important;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 20px;
    font-weight: 700;
}

ul.products li.product .button {
    margin: 0 20px 20px !important;
    display: block !important;
    text-align: center;
}

/* Badge categoria */
ul.products li.product .category-badge,
ul.products li.product mark,
ul.products li.product .onsale {
    background: var(--ecos-gradient) !important;
    color: var(--ecos-white) !important;
    border-radius: var(--ecos-radius) !important;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 12px;
    padding: 4px 10px;
    border: none;
}

/* =========================================
   HEADINGS CON ACENTO — barra degradado
   ========================================= */

.entry-content h2:not(.wp-block-heading),
.page-content h2,
.ecos-heading,
.widget-title {
    position: relative;
    padding-bottom: 16px;
    margin-bottom: 32px;
}

.entry-content h2:not(.wp-block-heading)::after,
.page-content h2::after,
.ecos-heading::after,
.widget-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 48px;
    height: 4px;
    background: var(--ecos-gradient);
    border-radius: 2px;
}

/* Espaciado vertical secciones */
.ecos-section {
    padding-top: 80px;
    padding-bottom: 80px;
}

/* =========================================
   CARDS GENERICAS
   ========================================= */

.ecos-card {
    background: var(--ecos-white);
    border-radius: var(--ecos-radius-lg);
    box-shadow: var(--ecos-shadow-sm);
    overflow: hidden;
    transition: transform 250ms ease, box-shadow 250ms ease;
    padding: 32px;
}

.ecos-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--ecos-shadow-md);
}

/* =========================================
   FOOTER
   ========================================= */

#colophon,
.site-footer,
.ast-small-footer,
.ast-footer-copyright {
    background-color: var(--ecos-carbon) !important;
    color: #B9B8BF !important;
}

.footer-widget-area,
.ast-footer-widget-area {
    background-color: var(--ecos-carbon) !important;
}

#colophon *,
.site-footer *,
.footer-widget-area *,
.ast-footer-widget-area * {
    color: #B9B8BF;
}

#colophon p,
.site-footer p,
.footer-widget-area p,
.ast-footer-widget-area p {
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    line-height: 1.7;
    color: #B9B8BF;
}

#colophon h3,
#colophon h4,
#colophon .widget-title,
.footer-widget-area .widget-title,
.footer-widget-area h3,
.footer-widget-area h4 {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ecos-white) !important;
    margin-bottom: 16px;
    padding-bottom: 0;
}

#colophon .widget-title::after,
.footer-widget-area .widget-title::after {
    display: none;
}

#colophon a,
.site-footer a,
.footer-widget-area a,
.ast-footer-widget-area a {
    color: #B9B8BF !important;
    text-decoration: none;
    transition: color var(--ecos-transition);
}

#colophon a:hover,
.site-footer a:hover,
.footer-widget-area a:hover,
.ast-footer-widget-area a:hover {
    color: var(--ecos-magenta) !important;
}

/* Footer bottom bar */
.ast-site-footer-copyright,
.ast-footer-copyright-bar,
.ast-footer-copyright .ast-row {
    background: rgba(0,0,0,.25) !important;
    border-top: 1px solid rgba(255,255,255,.08) !important;
    padding: 16px 0 !important;
    color: #B9B8BF !important;
    font-size: 13px !important;
}

/* Logo en footer — invertir a blanco */
#colophon .custom-logo,
.footer-widget-area .custom-logo,
#colophon img.wp-post-image {
    filter: brightness(0) invert(1);
    max-width: 120px;
    height: auto;
}

/* =========================================
   FORMULARIOS
   ========================================= */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="url"],
select,
textarea {
    border: 1.5px solid var(--ecos-border) !important;
    border-radius: var(--ecos-radius) !important;
    padding: 12px 16px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 15px !important;
    color: var(--ecos-body) !important;
    background: var(--ecos-white) !important;
    transition: border-color var(--ecos-transition), box-shadow var(--ecos-transition) !important;
    outline: none !important;
    width: 100%;
    box-sizing: border-box;
    min-height: 44px;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="url"]:focus,
select:focus,
textarea:focus {
    border-color: var(--ecos-magenta) !important;
    box-shadow: 0 0 0 3px rgba(229,19,125,.15) !important;
}

label {
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-size: 14px;
    color: var(--ecos-body);
    display: block;
    margin-bottom: 6px;
}

/* =========================================
   BREADCRUMBS
   ========================================= */

.ast-breadcrumbs-wrapper,
.woocommerce-breadcrumb,
#woocommerce-breadcrumb,
.breadcrumb {
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    color: var(--ecos-gray);
    margin-bottom: 24px;
}

.ast-breadcrumbs-wrapper a,
.woocommerce-breadcrumb a {
    color: var(--ecos-magenta);
}

/* =========================================
   WOO NOTICES
   ========================================= */

.woocommerce-message {
    background: rgba(229,19,125,.06) !important;
    border-top-color: var(--ecos-magenta) !important;
    color: var(--ecos-body) !important;
    border-radius: 0 0 var(--ecos-radius) var(--ecos-radius);
}

.woocommerce-info {
    background: rgba(59,130,246,.06) !important;
    border-top-color: #3B82F6 !important;
    color: var(--ecos-body) !important;
}

.woocommerce-error {
    background: rgba(220,38,38,.06) !important;
    border-top-color: #DC2626 !important;
}

/* =========================================
   PRECIO PAGINA PRODUCTO
   ========================================= */

.product .price,
.product .price .amount,
.product .price .woocommerce-Price-amount {
    color: var(--ecos-magenta) !important;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 28px;
}

/* =========================================
   RESPONSIVE — 375px safe
   ========================================= */

@media (max-width: 768px) {
    body {
        font-size: 16px;
    }

    .ecos-section {
        padding-top: 48px;
        padding-bottom: 48px;
    }

    ul.products li.product .woocommerce-loop-product__title {
        font-size: 16px;
    }
}

@media (max-width: 480px) {
    img {
        max-width: 100%;
        height: auto;
    }

    .wp-block-button__link,
    .button,
    input[type="submit"] {
        width: 100%;
        text-align: center;
        box-sizing: border-box;
    }
}

/* =========================================
   PREFERS REDUCED MOTION
   ========================================= */

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        transform: none !important;
    }
}
/* ===== Ecos Home v2 — hero, secciones, sedes, CTA ===== */
.ecos-container{max-width:1200px;margin:0 auto;padding:0 24px}
.ecos-section{padding:80px 0}
.ecos-section-alt{background:#F7F7F9}
.ecos-h2{font-size:clamp(1.75rem,3.5vw,2.5rem);color:#232228;margin-bottom:8px}
.ecos-lead{color:#6B7280;font-size:1.1rem;margin-bottom:40px;max-width:640px}
.ecos-center{text-align:center;margin-top:40px}

/* Hero */
.ecos-hero{display:flex;align-items:center}
.ecos-hero .wp-block-cover__inner-container{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}
.ecos-hero-inner{max-width:760px;padding:96px 0}
.ecos-hero-kicker{display:inline-block;background:rgba(229,19,125,.15);border:1px solid rgba(229,19,125,.5);color:#FF7AB8;font-weight:600;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;padding:8px 16px;border-radius:999px;margin-bottom:24px}
.ecos-hero-title{font-size:clamp(2.5rem,6vw,4.25rem);line-height:1.05;color:#fff;margin:0 0 24px;font-weight:800}
.ecos-hero-accent{background:linear-gradient(135deg,#E5137D,#F0426E);-webkit-background-clip:text;background-clip:text;color:transparent}
.ecos-hero-sub{color:#D6D5DC;font-size:1.15rem;line-height:1.7;margin-bottom:36px;max-width:620px}
.ecos-hero-sub strong{color:#fff}
.ecos-hero-ctas{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:56px}
.ecos-btn-primary{display:inline-block;background:linear-gradient(135deg,#E5137D,#F0426E);color:#fff !important;font-weight:600;padding:16px 32px;border-radius:8px;text-decoration:none;transition:all .2s ease-out}
.ecos-btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(229,19,125,.35)}
.ecos-btn-ghost{display:inline-block;background:transparent;color:#fff !important;font-weight:600;padding:16px 32px;border-radius:8px;border:1.5px solid rgba(255,255,255,.4);text-decoration:none;transition:all .2s ease-out}
.ecos-btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08);transform:translateY(-2px)}
.ecos-hero-stats{display:flex;gap:48px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.15);padding-top:32px}
.ecos-hero-stats div{display:flex;flex-direction:column}
.ecos-hero-stats strong{font-family:'Plus Jakarta Sans',sans-serif;font-size:2rem;color:#fff;line-height:1.2}
.ecos-hero-stats span{color:#B9B8BF;font-size:.9rem}

/* Grid tarjetas */
.ecos-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.ecos-card h3{font-size:1.15rem;color:#232228;margin:0 0 10px}
.ecos-card p{color:#6B7280;font-size:.98rem;line-height:1.65;margin:0}
.ecos-card{background:#fff;border:1px solid #EFEEF2;border-radius:16px;padding:32px 28px;box-shadow:0 4px 24px rgba(35,34,40,.05);transition:all .25s ease-out;position:relative;overflow:hidden}
.ecos-card::before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:linear-gradient(135deg,#E5137D,#F0426E);transform:scaleX(0);transform-origin:left;transition:transform .25s ease-out}
.ecos-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(35,34,40,.10)}
.ecos-card:hover::before{transform:scaleX(1)}

/* Sedes */
.ecos-sede-card{display:block;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 24px rgba(35,34,40,.06);text-decoration:none;transition:all .25s ease-out}
.ecos-sede-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(35,34,40,.12)}
.ecos-sede-card img{width:100%;height:210px;object-fit:cover;display:block}
.ecos-sede-body{padding:24px 24px 28px}
.ecos-sede-body h3{color:#232228;margin:0 0 8px;font-size:1.25rem}
.ecos-sede-body p{color:#6B7280;font-size:.92rem;line-height:1.6;margin:0 0 14px}
.ecos-sede-link{color:#C40E6A;font-weight:600;font-size:.95rem}
.ecos-sede-link::after{content:" →";transition:margin .2s}
.ecos-sede-card:hover .ecos-sede-link::after{margin-left:4px}

/* Sección oscura */
.ecos-dark{background:#232228}
.ecos-dark p{color:#B9B8BF;font-size:1.05rem;line-height:1.7}
.ecos-h2-light{color:#fff}
.ecos-h2-light::after{content:"";display:block;width:48px;height:4px;border-radius:99px;background:linear-gradient(135deg,#E5137D,#F0426E);margin-top:12px}
.ecos-split{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.ecos-rounded{border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.35)}

/* CTA strip */
.ecos-cta-strip{background:linear-gradient(135deg,#E5137D,#F0426E);padding:72px 0;text-align:center}
.ecos-cta-strip h2{color:#fff;font-size:clamp(1.75rem,3.5vw,2.5rem);margin:0 0 8px}
.ecos-cta-strip p{color:rgba(255,255,255,.85);font-size:1.1rem;margin:0 0 28px}
.ecos-btn-white{display:inline-block;background:#fff;color:#C40E6A !important;font-weight:700;padding:16px 36px;border-radius:8px;text-decoration:none;transition:all .2s ease-out}
.ecos-btn-white:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.25)}

/* Responsive */
@media(max-width:900px){
 .ecos-grid-3{grid-template-columns:1fr 1fr}
 .ecos-split{grid-template-columns:1fr;gap:36px}
}
@media(max-width:600px){
 .ecos-grid-3{grid-template-columns:1fr}
 .ecos-section{padding:56px 0}
 .ecos-hero-inner{padding:72px 0}
 .ecos-hero-stats{gap:24px}
}
@media(prefers-reduced-motion:reduce){
 .ecos-btn-primary,.ecos-btn-ghost,.ecos-btn-white,.ecos-card,.ecos-sede-card{transition:none}
 .ecos-card:hover,.ecos-sede-card:hover,.ecos-btn-primary:hover,.ecos-btn-ghost:hover,.ecos-btn-white:hover{transform:none}
}
/* ===== Revisión v1.1 — fixes visuales ===== */

/* 1. Ocultar título de sitio duplicado (el logo ya lleva el nombre) */
.site-title, .site-header .site-branding .site-title a { display: none !important; }

/* 2. Menú en una línea */
.main-header-menu { flex-wrap: nowrap; }
.main-header-menu > .menu-item > .menu-link { font-size: 15px; padding: 0 12px; white-space: nowrap; }
/* Campus Virtual como botón pill */
.main-header-menu > .menu-item:last-child > .menu-link {
  border: 1.5px solid #E5137D; border-radius: 999px; color: #C40E6A !important;
  padding: 8px 18px; line-height: 1; margin-left: 8px;
}
.main-header-menu > .menu-item:last-child > .menu-link:hover { background: #E5137D; color: #fff !important; }
.main-header-menu > .menu-item:last-child > .menu-link::after { display: none; }

/* 3. Hero: colores forzados (Astra los pisaba) */
.ecos-hero-sub { color: #E8E7EE !important; }
.ecos-hero-sub strong { color: #fff !important; }
.ecos-hero-kicker { color: #FFA3CE !important; background: rgba(229,19,125,.18); border-color: rgba(255,163,206,.45); }
.ecos-hero-stats span { color: #C6C5CE !important; }
.ecos-hero-title { color: #fff !important; }

/* 4. Fuera subrayados en botones y tarjetas-enlace */
.ecos-btn-primary, .ecos-btn-ghost, .ecos-btn-white,
.ecos-sede-card, .ecos-sede-card *,
.wp-block-button__link { text-decoration: none !important; }
.ecos-sede-card p { color: #6B7280 !important; }
.ecos-sede-body h3 { color: #232228 !important; }

/* 5. Productos Woo: sin subrayado, alturas iguales, imagen uniforme */
ul.products li.product a, ul.products li.product .woocommerce-loop-product__title { text-decoration: none !important; }
ul.products li.product .woocommerce-loop-product__title { border-bottom: none !important; }
ul.products { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 28px; }
ul.products li.product { display: flex; flex-direction: column; margin: 0 !important; width: auto !important; }
ul.products li.product img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
ul.products li.product .button { margin-top: auto; align-self: flex-start; }
.woocommerce.columns-4 ul.products li.product, .woocommerce-page.columns-4 ul.products li.product { width: auto !important; }
@media (max-width: 900px) { ul.products { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 560px) { ul.products { grid-template-columns: 1fr !important; } }

/* 6. Header móvil: branding compacto */
@media (max-width: 921px) {
  .site-branding { max-width: 60%; }
  .ast-header-break-point .site-logo img { max-height: 56px; width: auto; }
}

/* Overlay degradado lateral para legibilidad hero */
.ecos-hero .wp-block-cover__background{background:linear-gradient(90deg,rgba(35,34,40,.94) 0%,rgba(35,34,40,.82) 40%,rgba(35,34,40,.45) 75%,rgba(35,34,40,.35) 100%) !important;opacity:1 !important}

/* Toggle submenu movil: sin gradiente heredado */
.ast-header-break-point .main-header-menu .ast-menu-toggle{background:transparent !important;box-shadow:none !important;color:#232228 !important;transform:none !important}
.ast-header-break-point .main-header-menu .ast-menu-toggle:hover{background:transparent !important;color:#E5137D !important}
.ast-header-break-point .main-header-menu>.menu-item:last-child>.menu-link{display:inline-block;margin:8px 20px}
