/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

a{
    color: inherit;
}

h1, h2, h3{
    color: #1E1647;
}

#header-principal.js-sticky{
    position: fixed;
    left:0;
    width:100%;
    animation:slide-down 0.8s;
    background: rgba(186, 196, 255, 0.9);
}
#header-principal.js-sticky *{
    color: #1E1647 !important;
}
#header-principal .logo img, 
#header-principal .logo img a{
    width: auto;
    height: 86px;
    display: block;
}
#header-principal .logo-altus img, 
#header-principal .logo-altus img a{
    width: auto;
    height: 60px;
    display: block;
}

@keyframes slide-down {
    0% {
        opacity: 0;
        transform: translateY(-100%);
    } 
    100% {
        opacity: 0.9;
        transform: translateY(0);
    } 
}

.slider-inicio figcaption{
    position: absolute;
    top: 60%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 4vw !important;
    line-height: 1.2 !important;
}

.form-footer{
    margin-bottom: 15px;
}
.form-footer input[type="text"],
.form-footer input[type="email"],
.form-footer textarea{
    border-color: #dbdbdb;
    border-radius: 8px;
    height: 40px;
}
.form-footer textarea{
    height: 150px;
}
.form-footer input[type="submit"]{
    background: #FF744D;
    color: #fff;
    line-height: 36px;
    padding: 0 30px;
    border: none;
    border-radius: 8px;
}
.form-footer .wpcf7-spinner{
    margin: 0;
    position: absolute;
    top: 10px;
    right: 10px;
}
.form-footer p{
    margin-bottom: 15px;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
    border: none;
    background: rgba(255,0,0,0.3);
    text-align: center;
    color: #fff;
    border-radius: 8px;
}
.form-footer .wpcf7-not-valid-tip {
    position: absolute;
    left: 5px;
    margin: 0;
    padding: 0;
    line-height: 1;
    font-size: 0.6rem;
}
.form-footer .wpcf7-list-item {
    margin:0;
    font-size:0.75rem;
    line-height:1;
}

.menu-footer ul{
    padding-left: 20px;
}
.menu-footer ul li,
.menu-footer ul li a{
    color: #fff
}

.txt-legal h2{
    font-size: 1.3rem;
    color: #009ADC;
    margin: 25px 0 15px;
}
.txt-legal h3{
    font-size: 1.1rem;
    color: #009ADC;
    margin: 20px 0 10px;
}
.elementor-widget-text-editor ul,
.elementor-widget-text-editor ol{
    margin-bottom: 15px;
}
.txt-legal a{
    color: #009ADC;
}

.hfe-submenu-icon-arrow .hfe-nav-menu .parent-has-child .sub-arrow i:before {
    content: '';
    background: url(img/angle-down.svg);
    background-size: cover;
    display: inline-block;
    width: 10px;
    height: 9px;
    background-position: center;
}

.gr-col-auto{
    flex: 0 0 auto !important;
    width: auto;
}
.gr-col{
    flex: 1 0 0 !important;
    width: auto;
}

/* ===========================
   GRID
=========================== */

.grume-posts-grid{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:1px;
}
.grume-post.grume-post-large{
    grid-column:span 3;
    aspect-ratio:16/9;
}
.grume-post{
    grid-column:span 2;
    position:relative;
    aspect-ratio:4/3;
    overflow:hidden;
    background-position:center;
    background-repeat:no-repeat;
    background-size:cover;
}

.ultimas-rutas .grume-posts-grid{
    gap: 15px;
}
.ultimas-rutas .grume-posts-grid .grume-post{
    grid-column:span 2;
    aspect-ratio:4/3;
    border: #fff 3px solid;
    border-radius: 15px;
}
.ultimas-rutas .grume-posts-grid .grume-post .grume-post-title {
    font-size: 1.4rem;
}

/* ===========================
   OVERLAY
=========================== */

.grume-post::before{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.35);
    transition:background .3s ease;
    z-index:1;
}

.grume-post:hover::before{
    background:rgba(0,0,0,.15);
}

/* ===========================
   ENLACE
=========================== */

.grume-post-link{
    position:absolute;
    inset:0;
    display:flex;
    align-items:flex-end;
    text-decoration:none;
    color:#fff !important;
    z-index:2;
}

/* ===========================
   TEXTO
=========================== */

.grume-post-content{
    width:100%;
    padding:15px;
}

.grume-post-date{
    margin-bottom:6px;
    color:#fff;
    font-size:.85rem;
    line-height:1;
    opacity:.9;
}

.grume-post-title{
    margin:0;
    color:#fff;
    font-size:1.8rem;
    line-height:1.1;
}

.grume-post-title a{
    color:#fff !important;
    text-decoration:none;
}

/* El tema nunca cambiará el color */

.grume-post-link:hover,
.grume-post-link:focus,
.grume-post-link:visited,
.grume-post-link:hover .grume-post-title,
.grume-post-link:hover .grume-post-date,
.grume-post-title:hover,
.grume-post-title a:hover,
.grume-post-title a:visited,
.grume-post-title a:focus{
    color:#fff !important;
    text-decoration:none;
}

/* ===========================
   RESPONSIVE
=========================== */

@media (max-width:900px){

    .grume-posts-grid{
        grid-template-columns:repeat(2,1fr);
    }
    .grume-post,
    .grume-post-large{
        grid-column:span 1;
    }

}

@media (max-width:640px){

    .grume-posts-grid{
        grid-template-columns:1fr;
    }

}

@media( max-width: 767px ){
    #header-principal.js-sticky{
        top: 0;
    }
}

@media only screen and (min-width: 768px){
    .form-footer-row{
        display: flex;
        flex-wrap: wrap;
        margin: 0 -15px;
    }
    .form-footer-col{
        flex: 1 0 0%;
        padding: 0 15px;
    }
    .form-footer-col-auto{
        flex: 0 0 auto;
        padding: 0 15px;
    }
}

/* ===============================
   HERO EVENT
================================ */

.next-event-hero{
    position:relative;
    width:100%;
    height:25vw;
    overflow:hidden;
}
.next-event-hero-image{
    position:absolute;
    inset:0;
    background-size:cover;
    background-position:center;
}
.next-event-hero-overlay{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.30);

}
.next-event-hero-title{
    position:absolute;
    inset:0;
    display:flex;
    justify-content:center;
    align-items:center;
    z-index:2;
    padding:30px;
}
.next-event-hero-title h1{
    max-width:1000px;
    margin:0;
    text-align:center;
    color:#fff;
    font-size:clamp(2rem,4vw,4rem);
    line-height:1.1;
    font-weight:600;
    text-shadow: 0 2px 8px rgba(0,0,0,.25);
}
.next-event-hero::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 80px;
    z-index: 3;
    transform: rotate(180deg);
    background-repeat: no-repeat;
    background-position: bottom;
    background-size: 100% 100%;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 283.5 19.6' preserveAspectRatio='none'%3E%3Cpath fill='%23ffffff' opacity='.33' d='M0 0L0 18.8 141.8 4.1 283.5 18.8 283.5 0z'/%3E%3Cpath fill='%23ffffff' opacity='.33' d='M0 0L0 12.6 141.8 4 283.5 12.6 283.5 0z'/%3E%3Cpath fill='%23ffffff' opacity='.33' d='M0 0L0 6.4 141.8 4 283.5 6.4 283.5 0z'/%3E%3Cpath fill='%23ffffff' d='M0 0L0 1.2 141.8 4 283.5 1.2 283.5 0z'/%3E%3C/svg%3E");
}

/* ====================================
   MAIN
==================================== */

.next-event-main{
    max-width: 1140px;
    padding: 10px;
    margin:60px auto;
    display:grid;
    grid-template-columns:minmax(0,2fr) 350px;
    gap:60px;

}

.next-event-content > .elementor{
    margin: 0 -10px;
}

.next-event-content img{

    max-width:100%;
    height:auto;

}

/* ====================================
   SIDEBAR
==================================== */

.next-event-sidebar{
    margin-top: 10px;
}
.next-event-sidebar ul{
    margin-bottom: 30px;
}
.next-event-sidebar h2{
    font-size: 1.6rem;
}
.next-event-sidebar h3{
    margin-top:0;
    margin-bottom:25px;
}

.sidebar-event{
    margin-bottom:25px;
}

.sidebar-event a{

    display:block;

    color:inherit;
    text-decoration:none;

}

.sidebar-event-image{

    aspect-ratio:16/9;

    background-size:cover;
    background-position:center;

    margin-bottom:10px;

}
.sidebar-event h3,
.sidebar-event h4{
    margin:0;
    font-size:1.2rem;
}

/* ====================================
   RESPONSIVE
==================================== */

@media (max-width:1024px){

    .next-event-main{

        grid-template-columns:1fr;

    }

}

.overflow-hidden, .overflow-hidden *{
    overflow: hidden;
}

.elementor-widget-text-editor ul li,
.elementor-widget-text-editor ol li{
    margin-bottom: 10px;
}

.elementor-widget-text-editor a{
    color: #1E1647;
    text-decoration: underline;
}

#content.archive-content {
    width: 100%;
    margin: 0;
    padding: 25px 20px 70px;
    box-sizing: border-box;
}
.archive-container {
    width: 100%;
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 10px;
}
.archive-header {
    margin: 0 0 38px;
    text-align: center;
    background: linear-gradient(to bottom, #4facfe 0%, #87ceeb 50%, #dff6ff 100%);
}
.archive-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 15px;
    row-gap: 25px;
    width: 100%;
}
.archive-card {
    display: flex;
    flex-direction: column;
}
.archive-card-image {
    width: 100%;
    margin: 0;
    overflow: hidden;
}
.archive-card-image a {
    display: block;
    width: 100%;
}
.archive-thumbnail {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1.55 / 1;
    object-fit: cover;
    margin: 0;
    transition: opacity 0.2s ease;
}
.archive-card-image a:hover .archive-thumbnail {
    opacity: 0.9;
}
.archive-card-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex: 1;
}

.archive-card-title {
    margin: 10px 0;
    font-size: 1.4rem;
}
.archive-read-more {
    display: inline-block;
    margin-top: auto;
    padding: 9px 17px;
    background: #FF8200;
    text-decoration: none !important;
    border-radius: 2px;
    transition: background 0.2s ease;
    color: #fff;
}

.archive-pagination {
    display: flex;
    justify-content: center;
    margin-top: 50px;
}
.archive-pagination ul {
    display: flex;
    align-items: center;
    gap: 5px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.archive-pagination ul .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 35px;
    height: 35px;
    padding: 0 8px;
    border: 1px solid #ddd;
    text-decoration: none;
    box-sizing: border-box;
}
.archive-pagination ul .page-numbers.current {
    background: #1E1647;
    color: #fff;
}

.archive-empty {
    padding: 60px 0;
    text-align: center;
}

@media (max-width: 1024px) {

    .archive-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 20px;
    }

}

@media (max-width: 768px) {

    #content.archive-content {
        padding-left: 15px;
        padding-right: 15px;
    }

    .archive-grid {
        grid-template-columns: 1fr;
        row-gap: 35px;
    }

    .next-event-hero {
        padding-top: 300px;
    }

}

/* ===========================
   GRUME POSTS - MOBILE
   =========================== */

@media (max-width: 640px) {

    .grume-posts-grid {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .grume-posts-grid .grume-post,
    .grume-posts-grid .grume-post.grume-post-large,
    .ultimas-rutas .grume-posts-grid .grume-post,
    .ultimas-rutas .grume-posts-grid .grume-post.grume-post-large {
        grid-column: span 1;
        aspect-ratio: auto;
        min-height: 240px;
    }

    .grume-post-content {
        padding: 20px;
    }

    .grume-post-title {
        font-size: 1.35rem;
        line-height: 1.15;
    }

    .grume-post-date {
        font-size: 0.8rem;
        line-height: 1.2;
    }
}
