/*******************************/
/********* General CSS *********/
/*******************************/
body {
    color: #666666;
    background: #ffffff;
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    overflow-x: hidden;
}

h1,
h2, 
h3, 
h4,
h5, 
h6 {
    font-family: 'EB Garamond', serif;
    font-weight: 600;
    font-style: italic;
    color: #121518;
}

a {
    color: #454545;
    transition: .3s;
}

a:hover,
a:active,
a:focus {
    color: #aa9166;
    outline: none;
    text-decoration: none;
}

.btn:focus {
    box-shadow: none;
}

.wrapper {
    position: relative;
    width: 100%;
    max-width: 1366px;
    margin: 0 auto;
    background: #ffffff;
    overflow-x: hidden;
}

.back-to-top {
    position: fixed;
    display: none;
    background: #aa9166;
    color: #121518;
    width: 44px;
    height: 44px;
    text-align: center;
    line-height: 1;
    font-size: 22px;
    right: 15px;
    bottom: 15px;
    transition: background 0.5s;
    z-index: 9;
}

.back-to-top:hover {
    color: #aa9166;
    background: #121518;
}

.back-to-top i {
    padding-top: 10px;
}


/**********************************/
/********** Top Bar CSS ***********/
/**********************************/
.top-bar {
    position: relative;
    height: 90px;
    background: #000000;
}

.top-bar .logo {
    padding: 15px 0;
    text-align: left;
    overflow: hidden;
}

.top-bar .logo h1 {
    margin: 0;
    color: #aa9166;
    font-size: 75px;
    line-height: 55px;
    font-weight: 800;
}

.top-bar .logo img {
    max-width: 100%;
    max-height: 60px;
}

.top-bar .top-bar-right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.top-bar .text {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    height: 90px;
    padding: 0 20px;
    text-align: center;
    border-left: 1px solid rgba(255, 255, 255, .15);
}

.top-bar .text h2 {
    color: #ffffff;
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 25px;
    margin: 0;
}

.top-bar .text p {
    color: #ffffff;
    font-size: 13px;
    margin: 0;
}

.top-bar .social {
    display: flex;
    height: 90px;
    font-size: 0;
    justify-content: flex-end;
}

.top-bar .social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 100%;
    font-size: 22px;
    color: #ffffff;
    border-right: 1px solid rgba(255, 255, 255, .15);
}

.top-bar .social a:first-child {
    border-left: 1px solid rgba(255, 255, 255, .15);
}

.top-bar .social a:hover {
    color: #aa9166;
    background: #ffffff;
}

@media (min-width: 992px) {
    .top-bar {
        padding: 0 60px;
    }
}

@media (max-width: 991.98px) {
    .top-bar {
        display: none !important;
    }
    .top-bar .logo {
        text-align: center;
        padding-bottom: 0;
    }
    .top-bar .top-bar-right {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 0;
    }
    .top-bar .text {
        border-left: none;
        padding: 0 10px;
        height: auto;
    }
    .top-bar {
        height: auto;
        padding-bottom: 10px;
    }
    .nav-bar {
        margin-top: 0;
    }
    .wrapper {
        padding-top: 0;
    }
}

@media (max-width: 991.98px) {
    .nav-bar {
        position: fixed !important;
        top: 0 !important;
        left: 0;
        width: 100vw !important;
        z-index: 9999 !important;
        box-shadow: 0 4px 24px rgba(0,0,0,0.18);
        background: #121518 !important;
        transition: box-shadow 0.3s, background 0.3s;
    }
    body {
        padding-top: 56px !important; /* Altura estándar del navbar bootstrap en móvil */
    }
    .wrapper {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
    .carousel {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
    .carousel, .carousel .container, .carousel .row {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
    .container, .container-fluid {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
}


/**********************************/
/*********** Nav Bar CSS **********/
/**********************************/
.nav-bar {
    position: relative;
    padding: 20px 0;
    transition: .3s;
}

.nav-bar.nav-sticky {
    position: fixed;
    top: 0;
    width: 100%;
    padding: 10px 0;
    box-shadow: 0 2px 5px rgba(0, 0, 0, .3);
    z-index: 999;
}

.nav-bar .navbar {
    height: 100%;
    padding: 0;
}

.navbar-dark .navbar-nav .nav-link,
.navbar-dark .navbar-nav .nav-link:focus,
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link.active {
    padding: 10px 10px 8px 10px;
    color: #ffffff;
}

.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link.active {
    color: #aa9166;
    transition: none;
}

.nav-bar .dropdown-menu {
    margin-top: 0;
    border: 0;
    border-radius: 0;
    background: #f8f9fa;
}

.nav-bar .btn {
    color: #ffffff;
    border: 2px solid #aa9166;
    border-radius: 0;
}

.nav-bar .btn:hover {
    background: #aa9166;
}

@media (min-width: 992px) {
    .nav-bar {
        padding: 20px 60px;
    }
    
    .nav-bar.nav-sticky {
        padding: 10px 60px;
    }
    
    .nav-bar,
    .nav-bar .navbar {
        background: #121518 !important;
    }
    
    .nav-bar .navbar-brand {
        display: none;
    }
    
    .nav-bar a.nav-link {
        padding: 8px 15px;
        font-size: 15px;
        text-transform: uppercase;
    }
}

@media (max-width: 991.98px) {   
    .nav-bar, .nav-bar .navbar {
        background: #121518 !important;
        box-shadow: 0 6px 32px rgba(170,145,102,0.18);
    }
    .nav-bar .navbar-nav .nav-link {
        font-size: 16px;
        padding: 10px 10px;
        margin: 3px 0;
        border-radius: 8px;
    }
    .nav-bar .navbar-nav .nav-link i {
        margin-right: 8px;
        font-size: 18px;
    }
    .nav-bar .btn-cita {
        margin: 10px auto 0 auto;
        padding: 10px 18px;
        font-size: 15px;
        border-radius: 12px;
    }
    .navbar-brand {
        font-size: 18px !important;
        color: #fff !important;
        font-weight: 700;
        letter-spacing: 2px;
        background: none !important;
        border: none !important;
        padding: 6px 0 6px 0 !important;
        transition: color 0.3s;
    }
    .navbar-brand:active, .navbar-brand:focus, .navbar-brand:hover {
        color: #fff !important;
        background: none !important;
        box-shadow: none !important;
    }
}


/*******************************/
/******** Carousel CSS *********/
/*******************************/
.carousel {
    position: relative;
    width: 100%;
    height: calc(100vh - 170px);
    margin: 0 auto;
    text-align: center;
    overflow: hidden;
}

.carousel .carousel-inner,
.carousel .carousel-item {
    position: relative;
    width: 100%;
    height: 100%;
}

.carousel .carousel-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.carousel .carousel-item::after {
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: rgba(0, 0, 0, .3);
    z-index: 1;
}

.carousel .carousel-caption {
    position: absolute;
    top: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    height: calc(100vh - 170px);
}

.carousel .carousel-caption h1 {
    color: #ffffff;
    font-size: 60px;
    font-weight: 700;
    margin-bottom: 20px;
}

.carousel .carousel-caption p {
    color: #ffffff;
    font-size: 25px;
    margin-bottom: 25px;
}

.carousel .carousel-caption .btn {
    padding: 15px 35px;
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #aa9166;
    background: #121518;
    border: 2px solid #aa9166;
    border-radius: 0;
    transition: .3s;
}

.carousel .carousel-caption .btn:hover {
    color: #121518;
    background: #aa9166;
}

@media (max-width: 767.98px) {
    .carousel {
        height: 300px;
        min-height: 200px;
    }
    .carousel .carousel-caption {
        height: 300px;
    }
    .carousel .carousel-caption h1 {
        font-size: 40px;
        font-weight: 700;
    }
    
    .carousel .carousel-caption p {
        font-size: 20px;
    }
    
    .carousel .carousel-caption .btn {
        padding: 12px 30px;
        font-size: 18px;
        font-weight: 500;
        letter-spacing: 0;
    }
}

@media (max-width: 575.98px) {
    .container, .container-fluid {
        padding-left: 5px !important;
        padding-right: 5px !important;
    }
    .row {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .carousel .carousel-caption h1 {
        font-size: 30px;
        font-weight: 500;
    }
    
    .carousel .carousel-caption p {
        font-size: 16px;
    }
    
    .carousel .carousel-caption .btn {
        padding: 10px 25px;
        font-size: 16px;
        font-weight: 400;
        letter-spacing: 0;
    }
}

.carousel .animated {
    -webkit-animation-duration: 1.5s;
    animation-duration: 1.5s;
}


/*******************************/
/******* Page Header CSS *******/
/*******************************/
.page-header {
    position: relative;
    margin-bottom: 45px;
    padding: 90px 0;
    text-align: center;
    background: #aa9166;
}

.page-header h2 {
    position: relative;
    color: #121518;
    font-size: 60px;
    font-weight: 700;
    margin-bottom: 20px;
    padding-bottom: 5px;
}

.page-header h2::after {
    position: absolute;
    content: "";
    width: 100px;
    height: 2px;
    left: calc(50% - 50px);
    bottom: 0;
    background: #121518;
}

.page-header a {
    position: relative;
    padding: 0 12px;
    font-size: 22px;
    color: #121518;
}

.page-header a:hover {
    color: #ffffff;
}

.page-header a::after {
    position: absolute;
    content: "/";
    width: 8px;
    height: 8px;
    top: -2px;
    right: -7px;
    text-align: center;
    color: #121518;
}

.page-header a:last-child::after {
    display: none;
}

@media (max-width: 767.98px) {
    .page-header h2 {
        font-size: 35px;
    }
    
    .page-header a {
        font-size: 18px;
    }
}


/*******************************/
/******* Section Header ********/
/*******************************/
.section-header {
    position: relative;
    width: 100%;
    text-align: center;
    margin-bottom: 18px; /* Reducido para acercar el filtro */
}

.section-header h2 {
    color: #fff !important;
    text-shadow: 0 2px 12px #121518;
    z-index: 2;
    position: relative;
    margin: 0;
    font-size: 50px;
    font-weight: 700;
    /* white-space: nowrap; */
    padding-bottom: 0;
}

.section-header h2.section-header-title-black {
    color: #121518 !important;
    text-shadow: none !important;
}

@media (max-width: 767.98px) {
    .section-header h2 {
        font-size: 30px;
        /* padding-top: 32px; */ /* Eliminado para evitar espacio extra */
    }
    .section-header {
        margin-bottom: 10px;
    }
}


/*******************************/
/******** Top Feature CSS ******/
/*******************************/
.feature-top {
    position: relative;
    background: #121518;
    margin-bottom: 45px;
}

.feature-top .col-md-3 {
    border-right: 1px solid rgba(255, 255, 255, .1);
    border-bottom: 1px solid rgba(255, 255, 255, .1);
}

@media (max-width: 575.98px) {
    .feature-top .col-md-3:nth-child(1n) {
        border-right: none;
    }
    
    .feature-top .col-md-3:last-child {
        border-bottom: none;
    }
}

@media (min-width: 576px) and (max-width: 767.98px) {
    .feature-top .col-md-3:nth-child(2n) {
        border-right: none;
    }
    
    .feature-top .col-md-3:nth-child(3n),
    .feature-top .col-md-3:nth-child(4n) {
        border-bottom: none;
    }
}

@media (min-width: 768px) {
    .feature-top .col-md-3 {
        border-bottom: none;
    }
    
    .feature-top .col-md-3:nth-child(4n) {
        border-right: none;
    }
}

.feature-top .feature-item {
    padding: 30px 0;
    text-align: center;
}

.feature-top .feature-item i {
    color: #aa9166;
    font-size: 35px;
    margin-bottom: 10px;
}

.feature-top .feature-item h3 {
    color: #ffffff;
    font-size: 30px;
    font-weight: 600;
}

.feature-top .feature-item p {
    color: #999999;
    margin: 0;
    font-size: 18px;
}


/*******************************/
/********** About CSS **********/
/*******************************/
.about {
    position: relative;
    width: 100%;
    padding: 45px 0;
}

.about .section-header {
    margin-bottom: 30px;
}

.about .about-img {
    position: relative;
    height: 100%;
    padding: 10px;
    background: #121518;
}

.about .about-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.about .about-text p {
    font-size: 16px;
}

.about .about-text a.btn {
    position: relative;
    margin-top: 15px;
    padding: 15px 35px;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #aa9166;
    border: 2px solid #aa9166;
    border-radius: 0;
    background: #121518;
    transition: .3s;
}

.about .about-text a.btn:hover {
    color: #121518;
    background: #aa9166;
}

@media (max-width: 767.98px) {
    .about .about-img {
        margin-bottom: 30px;
        height: auto;
    }
}


/*******************************/
/********* Service CSS *********/
/*******************************/
.service {
    position: relative;
    width: 100%;
    padding: 45px 0 15px 0;
}

.service .service-item {
    position: relative;
    width: 100%;
    text-align: center;
    background: #121518;
    margin-bottom: 30px;
}

.service .service-icon {
    height: 200px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000000;
}

.service .service-icon i {
    width: 100px;
    height: 100px;
    padding: 20px 0;
    text-align: center;
    font-size: 60px;
    color: #aa9166;
    background: #121518;
    transition: .5s;
}

.service .service-item:hover .service-icon i {
    margin-top: -15px;
}

.service .service-item h3 {
    margin: 0;
    padding: 25px 15px 15px 15px;
    font-size: 30px;
    font-weight: 600;
    color: #aa9166;
}

.service .service-item p {
    margin: 0;
    color: #999999;
    padding: 0 25px 25px 25px;
    font-size: 18px;
}

.service .service-item a.btn {
    position: relative;
    margin-bottom: 30px;
    padding: 10px 20px;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #aa9166;
    border: 2px solid #aa9166;
    border-radius: 0;
    background: #121518;
    transition: .3s;
}

.service .service-item:hover a.btn {
    color: #121518;
    background: #aa9166;
}


/*******************************/
/********* Feature CSS *********/
/*******************************/
.feature {
    position: relative;
    width: 100%;
    padding: 45px 0;
}

.feature .feature-item {
    margin-bottom: 30px;
}

.feature .feature-icon {
    height: 180px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #121518;
}

.feature .feature-icon i {
    width: 100px;
    height: 100px;
    padding: 20px 0;
    text-align: center;
    font-size: 60px;
    color: #aa9166;
    background: #000000;
    transition: .5s;
}

.feature .feature-item:hover .feature-icon i {
    margin-right: -15px;
}

.feature .feature-item h3 {
    position: relative;
    margin-bottom: 15px;
    padding-bottom: 10px;
    font-size: 30px;
    font-weight: 600;
}

.feature .feature-item h3::after {
    position: absolute;
    content: "";
    width: 50px;
    height: 2px;
    left: 0;
    bottom: 0;
    background: #aa9166;
}

.feature .feature-item p {
    margin: 0;
    font-size: 16px;
}

.feature .feature-img {
    position: relative;
    height: 100%;
    padding: 10px;
    background: #121518;
}

.feature .feature-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}


/*******************************/
/*********** Team CSS **********/
/*******************************/
.team {
    position: relative;
    width: 100%;
    padding: 45px 0 15px 0;
}

.team .team-item {
    margin-bottom: 30px;
    background: linear-gradient(135deg, #23272b 60%, #363636 100%);
    border-radius: 22px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.13);
    overflow: hidden;
    transition: box-shadow 0.4s, transform 0.4s;
    position: relative;
}

.team .team-item:hover {
    box-shadow: 0 12px 32px rgba(170,145,102,0.18), 0 2px 8px rgba(0,0,0,0.10);
    transform: translateY(-10px) scale(1.03);
    z-index: 2;
}

.team .team-img {
    position: relative;
    border-radius: 22px 22px 0 0;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,0.10);
}

.team .team-img img {
    width: 100%;
    border-radius: 22px 22px 0 0;
    transition: transform 0.4s;
}

.team .team-item:hover .team-img img {
    transform: scale(1.07) rotate(-1deg);
}

.team .team-text {
    position: relative;
    padding: 35px 15px 25px 15px;
    text-align: center;
    background: transparent;
    border-radius: 0 0 22px 22px;
}

.team .team-text h2 {
    font-size: 22px;
    font-weight: 700;
    color: #aa9166;
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}

.team .team-text p {
    margin: 0 0 18px 0;
    color: #fff;
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0.2px;
}

.team .team-social {
    position: static;
    width: 100%;
    height: auto;
    top: unset;
    left: unset;
    margin: 0 auto 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    font-size: 0;
    padding: 0;
    opacity: 1 !important;
    transform: translateY(0) !important;
    pointer-events: auto !important;
    transition: none !important;
}

.team .team-item:hover .team-social {
    /* Ya no es necesario cambiar opacidad ni transformación en hover */
}

.team .team-social a {
    display: inline-flex !important;
    margin: 0 7px !important;
    font-size: 22px !important;
    text-align: center;
    color: #fff !important;
    background: #23272b !important;
    border-radius: 50% !important;
    width: 44px !important;
    height: 44px !important;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
    transition: background 0.3s, transform 0.3s;
}

.team .team-social a i {
    font-size: 22px !important;
    color: inherit !important;
    margin: 0 !important;
}

.team .team-social a:hover {
    transform: translateY(-4px) scale(1.1) !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.18) !important;
}


/*******************************/
/*********** FAQs CSS **********/
/*******************************/
.faqs {
    position: relative;
    width: 100%;
    padding: 45px 0;
}

.faqs .faqs-img {
    position: relative;
    height: 100%;
    padding: 10px;
    background: #121518;
}

.faqs .faqs-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media(max-width: 767.98px) {
    .faqs .faqs-img {
        margin-bottom: 30px;
        height: auto;
    }
}

.faqs .card {
    margin-bottom: 15px;
    padding-top: 15px;
    border: none;
    border-radius: 0;
    border-top: 1px solid #aa9166;
}

.faqs .card:last-child {
    margin-bottom: 0;
    padding-bottom: 15px;
    border-bottom: 1px solid #aa9166;
}

.faqs .card-header {
    padding: 0;
    border: none;
    background: #ffffff;
}

.faqs .card-header a {
    display: block;
    width: 100%;
    color: #121518;
    font-size: 18px;
    line-height: 40px;
}

.faqs .card-header a span {
    display: inline-block;
    width: 40px;
    height: 40px;
    margin-right: 10px;
    text-align: center;
    background: #121518;
    color: #aa9166;
    font-weight: 700;
}

.faqs .card-header [data-toggle="collapse"]:after {
    font-family: 'font Awesome 5 Free';
    content: "\f067";
    float: right;
    color: #121518;
    font-size: 12px;
    font-weight: 900;
    transition: .3s;
}

.faqs .card-header [data-toggle="collapse"][aria-expanded="true"]:after {
    font-family: 'font Awesome 5 Free';
    content: "\f068";
    float: right;
    color: #121518;
    font-size: 12px;
    font-weight: 900;
    transition: .3s;
}

.faqs .card-body {
    padding: 15px 0 0 0;
    font-size: 16px;
    border: none;
    background: #ffffff;
}

.faqs a.btn {
    position: relative;
    margin-top: 15px;
    padding: 15px 35px;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #aa9166;
    border: 2px solid #aa9166;
    border-radius: 0;
    background: #121518;
    transition: .3s;
}

.faqs a.btn:hover {
    color: #121518;
    background: #aa9166;
}


/*******************************/
/******* Testimonial CSS *******/
/*******************************/
.testimonial {
    position: relative;
    padding: 45px 0;
}

.testimonial .testimonials-carousel {
    position: relative;
    width: calc(100% + 30px);
    left: -15px;
    right: -15px;
}

.testimonial .testimonial-item {
    position: relative;
    margin: 0 15px;
    padding: 30px;
    background: #121518;
    overflow: hidden;
}

.testimonial .testimonial-item i {
    position: absolute;
    top: 0;
    right: 0;
    color: #333333;
    font-size: 60px;
    transform: rotate(45deg);
    z-index: 1;
}

.testimonial .testimonial-item .col-12 {
    margin-top: 20px;
}

.testimonial .testimonial-item img {
    width: 100%;
}

.testimonial .testimonial-item h2 {
    color: #aa9166;
    font-size: 22px;
    font-weight: 600;
    margin-bottom: 5px;
}

.testimonial .testimonial-item p {
    color: #999999;
    font-size: 16px;
    margin: 0;
}

.testimonial .owl-nav,
.testimonial .owl-dots {
    margin-top: 15px;
    text-align: center;
}

.testimonial .owl-dot {
    display: inline-block;
    margin: 0 5px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #aa9166;
}

.testimonial .owl-dot.active {
    background: #121518;
}


/*******************************/
/*********** Blog CSS **********/
/*******************************/
.blog {
    position: relative;
    width: 100%;
    padding: 45px 0;
}

.blog .blog-carousel {
    position: relative;
    width: calc(100% + 30px);
    left: -15px;
    right: -15px;
}

.blog .blog-item {
    position: relative;
    margin: 0 15px;
    background: #ffffff;
    overflow: hidden;
}

.blog .blog-page .blog-item {
    margin: 0 0 30px 0;
}

.blog .blog-item img {
    width: 100%;
    margin-bottom: 25px;
}

.blog .blog-item h3 {
    font-size: 25px;
    font-weight: 600;
}

.blog .blog-item .meta {
    padding: 0 0 15px 0;
}

.blog .blog-item .meta * {
    display: inline-block;
    margin: 0;
    padding: 0;
    font-size: 14px;
    color: #999999;
}

.blog .blog-item .meta i {
    margin: 0 2px 0 10px;
}

.blog .blog-item .meta i:first-child {
    margin-left: 0;
}

.blog .blog-item p {
    font-size: 16px;
}

.blog .blog-item a.btn {
    padding: 0;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #aa9166;
    transition: .3s;
}

.blog .blog-item a.btn i {
    margin-left: 10px;
}

.blog .blog-item a.btn:hover {
    color: #121518;
}

.blog .owl-nav,
.blog .owl-dots {
    margin-top: 15px;
    text-align: center;
}

.blog .owl-dot {
    display: inline-block;
    margin: 0 5px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #aa9166;
}

.blog .owl-dot.active {
    background: #121518;
}

.blog .pagination .page-link {
    color: #121518;
    border-radius: 0;
    border-color: #aa9166;
}

.blog .pagination .page-link:hover,
.blog .pagination .page-item.active .page-link {
    color: #121518;
    background: #aa9166;
}

.blog .pagination .disabled .page-link {
    color: #999999;
}


/*******************************/
/********* Timeline CSS ********/
/*******************************/
.timeline {
    position: relative;
    padding: 45px 0;
}

.timeline .timeline-start {
    position: relative;
    width: calc(100% + 30px);
    left: -15px;
    right: -15px;
}

.timeline .timeline-container {
    padding: 0 15px;
    position: relative;
    background: inherit;
    width: 50%;
    margin-top: -5px;
}

.timeline .timeline-container.left {
    left: 0;
}

.timeline .timeline-container.right {
    left: 50%;
}

.timeline .timeline-container::before {
    content: '';
    position: absolute;
    width: 15px;
    height: 5px;
    background: #aa9166;
    z-index: 1;
}

.timeline .timeline-container.left::before {
    top: 0;
    right: 0;
}

.timeline .timeline-container.right::before {
    bottom: 0;
    left: 0;
}

.timeline .timeline-container::after {
    content: '';
    position: absolute;
    width: 15px;
    height: 5px;
    background: #aa9166;
    z-index: 1;
}

.timeline .timeline-container.left::after {
    bottom: 0;
    right: 0;
}

.timeline .timeline-container.right::after {
    top: 0;
    left: 0;
}

.timeline .timeline-container:first-child::before,
.timeline .timeline-container:last-child::before {
    display: none;
}

.timeline .timeline-container .timeline-content {
    padding: 30px;
    background: #121518;
    position: relative;
    border-right: 5px solid #aa9166;
}

.timeline .timeline-container.right .timeline-content {
    border-left: 5px solid #aa9166;
}

.timeline .timeline-container .timeline-content h2 {
    margin-bottom: 15px;
    font-size: 22px;
    font-weight: 600;
    color: #aa9166;
}

.timeline .timeline-container .timeline-content h2 span {
    display: inline-block;
    margin-right: 15px;
    padding: 5px 10px;
    color: #121518;
    background: #aa9166;
    font-family: 'Roboto', sans-serif;
    font-style: normal;
}

.timeline .timeline-container .timeline-content p {
    margin: 0;
    font-size: 16px;
    color: #999999;
}

@media (max-width: 767.98px) {
    .timeline .timeline-container {
        width: 100%;
        margin-top: 0;
        padding-left: 15px;
        padding-right: 15px;
        padding-bottom: 30px;
    }
    
    .timeline .timeline-container:last-child {
        padding-bottom: 0;
    }
    
    .timeline .timeline-container.right {
        left: 0%;
    }

    .timeline .timeline-container.left::after, 
    .timeline .timeline-container.right::after,
    .timeline .timeline-container.left::before,
    .timeline .timeline-container.right::before {
        width: 5px;
        height: 35px;
        left: 15px;
    }
    
    .timeline .timeline-container.left .timeline-content,
    .timeline .timeline-container.right .timeline-content {
        border-left: 5px solid #aa9166;
        border-right: none;
    }
}


/*******************************/
/******** Portfolio CSS ********/
/*******************************/
.portfolio {
    position: relative;
    padding: 45px 0;
    background: #ffffff;
}

.portfolio #portfolio-flters {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 8px 10px;
    padding: 0 0 0 0;
    margin: 8px 0 25px 0;
    list-style: none;
    font-size: 0;
    text-align: center;
    overflow: visible;
    white-space: normal;
    -webkit-overflow-scrolling: auto;
    scrollbar-width: auto;
}
.portfolio #portfolio-flters::-webkit-scrollbar {
    display: none;
}

.portfolio #portfolio-flters li {
    cursor: pointer;
    display: inline-block;
    margin: 0;
    padding: 12px 18px;
    color: #aa9166;
    font-size: 16px;
    font-weight: 700;
    text-transform: uppercase;
    border-radius: 30px;
    background: #fff;
    border: 2px solid #aa9166;
    box-shadow: 0 2px 12px rgba(170,145,102,0.08);
    transition: all .3s cubic-bezier(.4,2,.6,1);
    letter-spacing: 1px;
    position: relative;
    overflow: hidden;
    min-width: 90px;
    text-align: center;
    flex: 1 0 auto;
    max-width: 180px;
}

@media (max-width: 991.98px) {
    .portfolio #portfolio-flters {
        gap: 6px 6px;
        margin: 8px 0 18px 0;
        padding: 0 2vw;
    }
    .portfolio #portfolio-flters li {
        padding: 10px 10px;
        font-size: 14px;
        min-width: 70px;
        max-width: 120px;
    }
}
@media (max-width: 575.98px) {
    .portfolio #portfolio-flters {
        gap: 4px 4px;
        margin: 8px 0 10px 0;
        padding: 0 1vw;
    }
    .portfolio #portfolio-flters li {
        padding: 8px 6px;
        font-size: 12px;
        min-width: 60px;
        max-width: 90px;
    }
}

.portfolio .load-more {
    text-align: center;
}

.portfolio .load-more .btn {
    padding: 15px 35px;
    font-size: 16px;
    transition: .3s;
}

.portfolio .load-more .btn:hover {
    color: #121518;
    background: #aa9166;
}

.portfolio .portfolio-item {
    position: relative;
    margin-bottom: 30px;
    overflow: hidden;
    transition: transform .4s cubic-bezier(.4,2,.6,1), box-shadow .4s;
    border-radius: 22px;
    box-shadow: 0 2px 16px rgba(170,145,102,0.10);
    background: #fff;
}

.portfolio .portfolio-item:hover,
.portfolio .portfolio-item:focus,
.portfolio .portfolio-item:active {
    transform: none !important;
    box-shadow: none !important;
    z-index: auto !important;
}

.portfolio .portfolio-wrap {
    position: relative;
    width: 100%;
    height: 350px;
    border-radius: 22px !important;
    overflow: hidden !important;
    box-shadow: none;
    background: #fff;
}

.portfolio .portfolio-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .7s cubic-bezier(.4,2,.6,1);
    border-radius: 22px !important;
    display: block;
}

.portfolio .portfolio-item:hover .portfolio-wrap img,
.portfolio .portfolio-item:focus .portfolio-wrap img,
.portfolio .portfolio-item:active .portfolio-wrap img {
    transform: none !important;
    filter: none !important;
}

.portfolio figure {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 32px 28px 0 28px; /* Elimina padding-bottom para evitar línea */
    background: linear-gradient(0deg, rgba(18,21,24,0.92) 60%, rgba(170,145,102,0.10) 100%);
    border-radius: 22px !important;
    opacity: 0.96;
    transition: background .4s;
    pointer-events: none;
    width: 100%;
    height: 100%;
}

.portfolio .portfolio-item:hover figure,
.portfolio .portfolio-item:focus figure,
.portfolio .portfolio-item:active figure {
    background: linear-gradient(0deg, rgba(18,21,24,0.92) 60%, rgba(170,145,102,0.10) 100%) !important;
    opacity: 0.96 !important;
}

.portfolio figure p {
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 8px;
    letter-spacing: 0.5px;
    text-shadow: 0 2px 8px #12151844;
}

.portfolio figure p::after {
    content: "";
    display: block;
    width: 44px;
    height: 2px;
    background: #aa9166;
    margin-top: 4px;
    border-radius: 2px;
}

.portfolio figure a {
    font-family: 'EB Garamond', serif;
    color: #fff;
    font-size: 24px;
    font-weight: 700;
    font-style: italic;
    margin-bottom: 6px;
    transition: color .3s;
    text-shadow: 0 2px 8px #12151844;
}

.portfolio figure a:hover,
.portfolio figure a:focus,
.portfolio figure a:active {
    color: #fff !important;
    text-decoration: none !important;
}

.portfolio figure span {
    color: #e0cba3;
    font-size: 15px;
    font-weight: 500;
    margin-top: 2px;
    text-shadow: 0 1px 4px #12151833;
}

@media (max-width: 991.98px) {
    .portfolio .portfolio-wrap {
        height: 260px;
    }
}

@media (max-width: 575.98px) {
    .portfolio .portfolio-wrap {
        height: 180px;
    }
    .portfolio figure {
        padding: 16px 10px 0 10px;
    }
    .portfolio #portfolio-flters li {
        padding: 8px 12px;
        font-size: 13px;
        min-width: 80px;
    }
}


/*******************************/
/********* Contact CSS *********/
/*******************************/
.contact {
    position: relative;
    width: 100%;
    padding: 45px 0 15px 0;
}

.contact .contact-info {
    position: relative;
    margin-bottom: 30px;
    width: 100%;
    padding: 30px;
    background: #121518;
}

.contact .contact-item {
    position: relative;
    margin-bottom: 30px;
    padding: 30px;
    display: flex;
    align-items: flex-start;
    flex-direction: row;
    border: 2px solid #aa9166;
}

.contact .contact-item i {
    display: inline-block;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
    color: #aa9166;
    border: 2px solid #aa9166;
}

.contact .contact-text {
    position: relative;
    width: auto;
    padding-left: 15px;
}

.contact .contact-text h2 {
    color: #aa9166;
    font-size: 25px;
    font-weight: 600;
}

.contact .contact-text p {
    margin: 0;
    color: #999999;
    font-size: 16px;
}

.contact .contact-item:last-child {
    margin-bottom: 0;
}

.contact .contact-form {
    position: relative;
    margin-bottom: 30px;
}

.contact .contact-form input {
    height: 60px;
    border-radius: 0;
    border-width: 2px;
    border-color: #121518;
}

.contact .contact-form textarea {
    height: 190px;
    border-radius: 0;
    border-width: 2px;
    border-color: #121518;
}

.contact .contact-form .btn {
    padding: 16px 35px;
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #aa9166;
    background: #121518;
    border: 2px solid #aa9166;
    border-radius: 0;
    transition: .3s;
}

.contact .contact-form .btn:hover {
    color: #121518;
    background: #aa9166;
}

.contact-btn-gradient {
    padding: 16px 40px;
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    border-radius: 16px;
    border: 2px solid #25D366;
    background: linear-gradient(90deg, #25D366 0%, #43e97b 100%);
    color: #fff;
    box-shadow: 0 2px 8px rgba(67,233,123,0.10);
    transition: all 0.3s, box-shadow 0.3s;
    cursor: pointer;
    outline: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.contact-btn-gradient i {
    font-size: 1.2em;
    margin-right: 8px;
    transition: transform 0.3s;
}
.contact-btn-gradient:hover, .contact-btn-gradient:focus {
    background: linear-gradient(90deg, #43e97b 0%, #25D366 100%);
    color: #fff;
    border-color: #128C7E;
    box-shadow: 0 4px 16px rgba(67,233,123,0.18);
    text-decoration: none;
}
@media (max-width: 767.98px) {
    .contact-btn-gradient {
        padding: 12px 18px;
        font-size: 1rem;
        border-radius: 12px;
    }
}


/*******************************/
/******* Single Page CSS *******/
/*******************************/
.single {
    position: relative;
    width: 100%;
    padding: 45px 0 65px 0;
}

.single img {
    margin: 10px 0 15px 0;
}

.single .table,
.single .list-group {
    margin-bottom: 30px;
}

.single .ul-group {
    padding: 0;
    list-style: none;
}

.single .ul-group li {
    margin-left: 2px;
}

.single .ul-group li::before {
    position: relative;
    content: "\f0da";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-right: 10px;
}

.single .ol-group {
    padding-left: 18px;
}


/*******************************/
/********** Newsletter *********/
/*******************************/
.newsletter {
    position: relative;
    max-width: 900px;
    margin: 45px auto -140px auto;
    padding: 30px 15px;
    background: #aa9166;
    z-index: 1;
}

.newsletter .section-header {
    margin-bottom: 25px;
}

.newsletter .section-header h2::before,
.newsletter .section-header h2::after {
    border-color: #ffffff;
}

.newsletter .form {
    position: relative;
    max-width: 400px;
    margin: 0 auto;
}

.newsletter input {
    height: 50px;
    border: 2px solid #121518;
    border-radius: 0;
}

.newsletter .btn {
    position: absolute;
    top: 5px;
    right: 5px;
    height: 40px;
    padding: 8px 20px;
    font-size: 14px;
    font-weight: 500;
    text-transform: uppercase;
    color: #aa9166;
    background: #121518;
    border-radius: 0;
    border: 2px solid #aa9166;
    transition: .3s;
}

.newsletter .btn:hover {
    color: #121518;
    background: #aa9166;
}


/*******************************/
/********* Footer CSS **********/
/*******************************/
.footer {
    position: relative;
    margin-top: 45px;
    padding-top: 120px;
    background: linear-gradient(135deg, #121518 60%, #aa9166 100%);
    color: #ffffff;
    box-shadow: 0 -2px 20px rgba(0,0,0,0.15);
}

.footer .footer-about,
.footer .footer-link,
.footer .footer-contact {
    position: relative;
    margin-bottom: 45px;
    color: #cccccc;
    padding: 0 10px;
}

.footer .footer-about h2,
.footer .footer-link h2,
.footer .footer-contact h2{
    position: relative;
    margin-bottom: 30px;
    font-size: 25px;
    font-weight: 700;
    color: #fff;
    letter-spacing: 1px;
    text-transform: uppercase;
    border-left: 4px solid #aa9166;
    padding-left: 10px;
}

.footer .footer-link a {
    display: block;
    margin-bottom: 10px;
    color: #cccccc;
    transition: .3s;
    font-size: 16px;
    padding-left: 10px;
}

.footer .footer-link a::before {
    position: relative;
    content: "\f105";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-right: 10px;
    color: #aa9166;
}

.footer .footer-link a:hover {
    color: #aa9166;
    letter-spacing: 1px;
    background: rgba(255,255,255,0.05);
    border-radius: 5px;
}

.footer .footer-contact p i {
    width: 25px;
    color: #aa9166;
}

.footer .footer-social {
    position: relative;
    margin-top: 20px;
    display: flex;
    gap: 15px;
}

.footer .footer-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    font-size: 22px;
    background: #23272b;
    color: #fff;
    transition: all 0.3s;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.footer .footer-social a i {
    margin: 0;
    font-size: 22px;
    color: inherit;
}

.footer .footer-social a:last-child i {
    margin: 0;
}

.footer .footer-social a:hover {
    transform: translateY(-4px) scale(1.1);
    box-shadow: 0 4px 16px rgba(0,0,0,0.18);
}

/* Colores oficiales para cada red social */
.footer .footer-social a.social-tw { background: #25D366; color: #fff; } /* WhatsApp */
.footer .footer-social a.social-fb { background: #1877f3; color: #fff; }
.footer .footer-social a.social-in { background: radial-gradient(circle at 30% 110%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%); color: #fff; }
.footer .footer-social a.social-li { background: #ff0000; color: #fff; } /* YouTube */

.footer .footer-social a.social-tw:hover { background: #128C7E; }
.footer .footer-social a.social-fb:hover { background: #145db2; }
.footer .footer-social a.social-in:hover { background: #d6249f; }
.footer .footer-social a.social-li:hover { background: #c00; }

.footer .footer-menu .f-menu {
    position: relative;
    padding: 15px 0;
    background: #000000;
    font-size: 0;
    text-align: center;
    border-radius: 0 0 10px 10px;
}

.footer .footer-menu .f-menu a {
    color: #cccccc;
    font-size: 16px;
    margin-right: 15px;
    padding-right: 15px;
    border-right: 1px solid rgba(255, 255, 255, .3);
    transition: color 0.3s;
}

.footer .footer-menu .f-menu a:hover {
    color: #aa9166;
}

.footer .footer-menu .f-menu a:last-child {
    margin-right: 0;
    padding-right: 0;
    border-right: none;
}

.footer .copyright {
    padding: 30px 15px;
    background: rgba(0,0,0,0.15);
    border-radius: 0 0 10px 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.footer .copyright p {
    margin: 0;
    color: #cccccc;
    font-size: 15px;
    text-align: center !important;
    letter-spacing: 0.5px;
    font-family: 'EB Garamond', serif;
    font-style: italic;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.footer .copyright p a {
    color: #aa9166;
    font-weight: 700;
    letter-spacing: 1px;
    text-decoration: underline;
    font-style: normal;
    font-family: 'Roboto', sans-serif;
    font-size: 16px;
    background: #fff3;
    padding: 2px 10px;
    border-radius: 8px;
    transition: background 0.3s, color 0.3s;
}

.footer .copyright p a:hover {
    color: #ffffff;
    text-decoration: none;
    background: #aa9166;
    color: #121518;
}

@media (max-width: 768px) {
    .footer .copyright p,
    .footer .copyright .col-md-6:last-child p {
        margin: 5px 0;
        text-align: center;
        justify-content: center;
    }
    .footer {
        padding-top: 60px;
    }
}

/* Ícono decorativo Silicon Ballic */
.footer .copyright p .sb-icon {
    display: inline-block;
    font-size: 18px;
    color: #aa9166;
    margin-right: 4px;
    vertical-align: middle;
}

/* Call to action en el footer */
.footer .footer-cta {
    background: #aa9166;
    color: #121518;
    padding: 25px 30px;
    border-radius: 10px;
    margin-bottom: 35px;
    text-align: center;
    font-size: 22px;
    font-weight: 700;
    box-shadow: 0 2px 12px rgba(0,0,0,0.10);
}

/* --- FORZAR ESTILO DE ICONOS DE REDES EN TODA LA WEB, INCLUYENDO NAVBAR --- */
.social-tw, .footer .footer-social a.social-tw, .team-social a.social-tw, .top-bar .social a.social-tw, .nav-bar .navbar-nav .nav-link .social-tw { background: #25D366 !important; color: #fff !important; }
.social-fb, .footer .footer-social a.social-fb, .team-social a.social-fb, .top-bar .social a.social-fb, .nav-bar .navbar-nav .nav-link .social-fb { background: #1877f3 !important; color: #fff !important; }
.social-in, .footer .footer-social a.social-in, .team-social a.social-in, .top-bar .social a.social-in, .nav-bar .navbar-nav .nav-link .social-in { background: radial-gradient(circle at 30% 110%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%) !important; color: #fff !important; }
.social-li, .footer .footer-social a.social-li, .team-social a.social-li, .top-bar .social a.social-li, .nav-bar .navbar-nav .nav-link .social-li { background: #ff0000 !important; color: #fff !important; }

.social-tw:hover, .footer .footer-social a.social-tw:hover, .team-social a.social-tw:hover, .top-bar .social a.social-tw:hover, .nav-bar .navbar-nav .nav-link .social-tw:hover { background: #128C7E !important; }
.social-fb:hover, .footer .footer-social a.social-fb:hover, .team-social a.social-fb:hover, .top-bar .social a.social-fb:hover, .nav-bar .navbar-nav .nav-link .social-fb:hover { background: #145db2 !important; }
.social-in:hover, .footer .footer-social a.social-in:hover, .team-social a.social-in:hover, .top-bar .social a.social-in:hover, .nav-bar .navbar-nav .nav-link .social-in:hover { background: #d6249f !important; }
.social-li:hover, .footer .footer-social a.social-li:hover, .team-social a.social-li:hover, .top-bar .social a.social-li:hover, .nav-bar .navbar-nav .nav-link .social-li:hover { background: #c00 !important; }

.team-social a, .top-bar .social a, .footer .footer-social a, .nav-bar .navbar-nav .nav-link .fa, .nav-bar .navbar-nav .nav-link .fab {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 44px !important;
    height: 44px !important;
    border-radius: 50% !important;
    font-size: 22px !important;
    margin: 0 5px !important;
    background: #23272b !important;
    color: #fff !important;
    transition: all 0.3s !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
}
.nav-bar .navbar-nav .nav-link .fa, .nav-bar .navbar-nav .nav-link .fab {
    margin: 0 5px 0 0 !important;
}
.team-social a i, .top-bar .social a i, .footer .footer-social a i, .nav-bar .navbar-nav .nav-link .fa, .nav-bar .navbar-nav .nav-link .fab {
    font-size: 22px !important;
    color: inherit !important;
}
.team-social a:hover, .top-bar .social a:hover, .footer .footer-social a:hover, .nav-bar .navbar-nav .nav-link .fa:hover, .nav-bar .navbar-nav .nav-link .fab:hover {
    transform: translateY(-4px) scale(1.1) !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.18) !important;
}

/* --- MENÚ STICKY EN RESPONSIVE --- */
@media (max-width: 991.98px) {
    .nav-bar {
        position: fixed !important;
        top: 0 !important;
        left: 0;
        width: 100vw !important;
        z-index: 9999 !important;
        box-shadow: 0 4px 24px rgba(0,0,0,0.18);
        background: #121518 !important;
        transition: box-shadow 0.3s, background 0.3s;
    }
    body {
        padding-top: 56px !important; /* Altura estándar del navbar bootstrap en móvil */
    }
    .wrapper {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
    .carousel {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
}

/* Ajuste para evitar overflow en carousel y filas */
.carousel,
.container-fluid,
.container,
.row {
    max-width: 100vw;
    overflow-x: hidden;
}

/* ==== FLIP CARDS ÁREAS DE PRÁCTICA ==== */
.service-flip-bg {
    background: linear-gradient(135deg, #f5f5f5 60%, #e7dac4 100%), url('../img/bg-justice.jpg') center/cover no-repeat;
    position: relative;
    z-index: 1;
    padding-bottom: 60px;
}
.service-flip-bg .section-header h2 {
    color: #aa9166;
    font-size: 2.8rem;
    font-weight: 800;
    letter-spacing: 1px;
    margin-bottom: 0.5rem;
}
.service-flip-bg .subtitle {
    color: #121518;
    font-size: 1.2rem;
    font-family: 'Roboto', sans-serif;
    margin-bottom: 2.5rem;
    font-weight: 500;
    opacity: 0.85;
}
.flip-card {
    background: transparent;
    width: 100%;
    height: 340px;
    perspective: 1200px;
    border-radius: 18px;
    box-shadow: 0 6px 32px rgba(170,145,102,0.13), 0 2px 8px rgba(0,0,0,0.10);
    margin-bottom: 0;
}
.flip-card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    text-align: center;
    transition: transform 0.8s cubic-bezier(.4,2,.6,1);
    transform-style: preserve-3d;
    border-radius: 18px;
}
.flip-card-front, .flip-card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    backface-visibility: hidden;
    border-radius: 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
    padding: 32px 18px 24px 18px;
}
.flip-card-front {
    background: #121518;
    color: #fff;
    z-index: 2;
    border: 2px solid #aa9166;
}
.flip-card-front .service-icon {
    background: #fff;
    border-radius: 50%;
    width: 90px;
    height: 90px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
    box-shadow: 0 2px 12px rgba(170,145,102,0.10);
}
.flip-card-front .service-icon i {
    font-size: 2.8rem;
    color: #aa9166;
}
.flip-card-front h3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #aa9166;
    margin-top: 10px;
    margin-bottom: 0;
    font-family: 'EB Garamond', serif;
    font-style: italic;
}
.flip-card-back {
    background: linear-gradient(135deg, #aa9166 60%, #fffbe6 100%);
    color: #121518;
    transform: rotateY(180deg);
    border: 2px solid #aa9166;
    box-shadow: 0 4px 24px rgba(170,145,102,0.13);
}
.flip-card-back h3 {
    font-size: 1.3rem;
    font-weight: 700;
    color: #121518;
    margin-bottom: 10px;
    font-family: 'EB Garamond', serif;
    font-style: italic;
}
.flip-card-back p {
    font-size: 1.05rem;
    margin-bottom: 18px;
    color: #333;
    font-family: 'Roboto', sans-serif;
}
.btn-flip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 18px;
    margin-bottom: 0;
    padding: 10px 28px;
    font-size: 1.08rem;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    border-radius: 12px;
    border: 2px solid #aa9166;
    background: linear-gradient(90deg, #fffbe6 0%, #aa9166 100%);
    color: #121518;
    box-shadow: 0 2px 8px rgba(170,145,102,0.10);
    transition: all 0.3s, box-shadow 0.3s;
    cursor: pointer;
    outline: none;
}
.btn-flip i {
    font-size: 1.1em;
    margin-left: 6px;
    transition: transform 0.3s;
}
.btn-flip:hover, .btn-flip:focus {
    background: linear-gradient(90deg, #aa9166 0%, #fffbe6 100%);
    color: #fff;
    border-color: #121518;
    box-shadow: 0 4px 16px rgba(170,145,102,0.18);
    text-decoration: none;
}
.btn-flip:active {
    transform: scale(0.97);
}
@media (max-width: 767.98px) {
    .btn-flip {
        font-size: 0.98rem;
        padding: 8px 18px;
        border-radius: 8px;
        margin-top: 10px;
    }
}
@media (max-width: 991.98px) {
    .flip-card {
        height: 320px;
    }
}
@media (max-width: 767.98px) {
    .flip-card {
        height: 260px;
    }
    .service-flip-bg .section-header h2 {
        font-size: 2rem;
    }
    .service-flip-bg .subtitle {
        font-size: 1rem;
    }
}
@media (max-width: 575.98px) {
    .flip-card {
        height: 220px;
    }
    .flip-card-front, .flip-card-back {
        padding: 18px 6px 12px 6px;
    }
}
.flip-card-inner.flipped {
    transform: rotateY(180deg) !important;
    transition: transform 0.8s cubic-bezier(.4,2,.6,1);
    z-index: 3;
}

/* === WHY CHOOSE US SECTION === */
.why-choose-us-section {
    position: relative;
    overflow: hidden;
    z-index: 1;
    padding: 80px 0 60px 0;
    min-height: 480px;
}
.why-choose-us-section .section-header {
    margin-bottom: 60px;
}
.why-choose-subtitle {
    display: block;
    font-size: 1.3rem;
    color: #fff;
    background: #aa9166;
    padding: 6px 22px;
    border-radius: 20px;
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
    margin-bottom: 18px;
    letter-spacing: 1px;
    box-shadow: 0 2px 12px rgba(170,145,102,0.13);
}
.why-choose-us-section h2 {
    color: #fff;
    font-size: 2.8rem;
    font-weight: 800;
    letter-spacing: 1px;
    text-shadow: 0 2px 12px rgba(0,0,0,0.13);
}
.why-bg-animated {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    z-index: -1;
    background: linear-gradient(120deg, #121518 60%, #aa9166 100%);
    animation: why-bg-move 8s ease-in-out infinite alternate;
    opacity: 0.95;
}
@keyframes why-bg-move {
    0% { background-position: 0% 50%; }
    100% { background-position: 100% 50%; }
}
.why-card {
    background: rgba(255,255,255,0.18);
    border-radius: 32px;
    box-shadow: 0 8px 32px 0 rgba(31,38,135,0.18);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1.5px solid rgba(170,145,102,0.18);
    padding: 48px 28px 36px 28px;
    text-align: center;
    transition: transform 0.35s, box-shadow 0.35s;
    position: relative;
    min-height: 340px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
}
.why-card:hover {
    transform: translateY(-12px) scale(1.04);
    box-shadow: 0 16px 48px 0 rgba(170,145,102,0.22);
}
.why-icon {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    background: rgba(170,145,102,0.13);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 22px auto;
    font-size: 2.8rem;
    color: #aa9166;
    box-shadow: 0 2px 12px rgba(170,145,102,0.10);
    transition: background 0.3s, color 0.3s, transform 0.4s;
}
.why-card:hover .why-icon {
    background: #aa9166;
    color: #fff;
    transform: rotateY(1turn) scale(1.12);
}
.why-card h3 {
    font-size: 1.4rem;
    font-weight: 700;
    color: #121518;
    margin-bottom: 12px;
    font-family: 'EB Garamond', serif;
    font-style: italic;
    letter-spacing: 0.5px;
}
.why-card p {
    color: #23272b;
    font-size: 1.08rem;
    font-family: 'Roboto', sans-serif;
    opacity: 0.92;
    margin-bottom: 0;
}
@media (max-width: 991.98px) {
    .why-card {
        min-height: 280px;
        padding: 32px 12px 24px 12px;
    }
    .why-choose-us-section h2 {
        font-size: 2rem;
    }
}
@media (max-width: 767.98px) {
    .why-card {
        min-height: 220px;
        padding: 18px 6px 12px 6px;
    }
    .why-choose-us-section {
        padding: 40px 0 20px 0;
    }
    .why-choose-subtitle {
        font-size: 1rem;
        padding: 4px 12px;
    }
}
/* Animate.css delay helpers */
.animate__delay-1s { animation-delay: 0.4s; }
.animate__delay-2s { animation-delay: 0.8s; }

/* === CONTACTO MODERNO Y GLASSMORPHISM === */
.contact-bg-animated {
    position: relative;
    z-index: 1;
    padding: 0;
    background: none;
}
.contact-bg-animated::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    z-index: -1;
    background: linear-gradient(120deg, #121518 60%, #aa9166 100%);
    animation: contact-bg-move 8s ease-in-out infinite alternate;
    opacity: 0.95;
}
@keyframes contact-bg-move {
    0% { background-position: 0% 50%; }
    100% { background-position: 100% 50%; }
}
.contact-subtitle {
    display: block;
    font-size: 1.2rem;
    color: #fff;
    background: #aa9166;
    padding: 6px 22px;
    border-radius: 20px;
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
    margin-bottom: 18px;
    letter-spacing: 1px;
    box-shadow: 0 2px 12px rgba(170,145,102,0.13);
    opacity: 0.95;
}
.contact-glass-card {
    background: rgba(18,21,24,0.98); /* Negro fuerte, casi sólido */
    border-radius: 32px;
    box-shadow: 0 8px 32px 0 rgba(31,38,135,0.18);
    border: 1.5px solid rgba(170,145,102,0.18);
    padding: 40px 32px 32px 32px;
    margin-bottom: 32px;
    text-align: left;
    transition: transform 0.35s, box-shadow 0.35s;
    position: relative;
}
.contact-item {
    display: flex;
    align-items: center;
    background: none;
    border: none;
    padding: 0;
    margin-bottom: 24px;
    box-shadow: none;
    background: transparent;
    transition: background 0.3s;
}
.contact-icon {
    width: auto;
    height: auto;
    border-radius: 0;
    background: none !important;
    display: flex; align-items: center; justify-content: center;
    font-size: 2.5rem;
    color: #fff !important;
    margin-right: 18px;
    box-shadow: none;
    transition: color 0.3s, transform 0.4s;
}
.contact-item .fa-map-marked-alt { color: #ff5252 !important; } /* Rojo intenso */
.contact-item .fa-phone-square-alt { color: #2196f3 !important; } /* Azul intenso */
.contact-item .fa-envelope-open-text { color: #25D366 !important; } /* Verde WhatsApp intenso */
.contact-item:hover .contact-icon {
    color: #FFD700 !important; /* Dorado al pasar el mouse */
    transform: scale(1.18);
}
.contact-text h2, .contact-text p, .contact-email-text {
    color: #fff !important;
}
.contact-email-text {
    word-break: break-all;
    font-size: 1.05rem;
    font-family: 'Roboto', sans-serif;
    opacity: 0.92;
    margin-bottom: 0;
    display: block;
    max-width: 100%;
    overflow-wrap: anywhere;
    white-space: normal;
}
@media (max-width: 767.98px) {
    .contact-glass-card {
        padding: 12px 2vw 12px 2vw;
        margin-bottom: 12px;
    }
    .contact-email-text {
        font-size: 0.98rem;
        word-break: break-all;
        overflow-wrap: break-word;
        white-space: normal;
        max-width: 95vw;
    }
    .contact-icon {
        font-size: 2rem;
        margin-right: 12px;
    }
}

.portfolio #portfolio-flters li.filter-active,
.portfolio #portfolio-flters li:focus,
.portfolio #portfolio-flters li:active {
    background: linear-gradient(90deg, #aa9166 0%, #e0cba3 100%) !important;
    color: #121518 !important;
    border-color: #aa9166 !important;
    box-shadow: 0 6px 24px rgba(170,145,102,0.22) !important;
    outline: none !important;
    font-weight: 900;
    transform: scale(1.06);
    z-index: 2;
    transition: all .25s cubic-bezier(.4,2,.6,1);
}

.portfolio #portfolio-flters li {
    outline: none;
    user-select: none;
}

/* Quitar difuminado marrón al hacer click en una card */
.portfolio .portfolio-item:active .portfolio-wrap img,
.portfolio .portfolio-item:focus .portfolio-wrap img {
    filter: none !important;
    box-shadow: none !important;
    opacity: 1 !important;
    background: none !important;
}

.portfolio .portfolio-item:active figure,
.portfolio .portfolio-item:focus figure {
    background: linear-gradient(0deg, rgba(18,21,24,0.92) 60%, rgba(170,145,102,0.10) 100%) !important;
    opacity: 0.96 !important;
}

.portfolio .portfolio-item,
.portfolio .portfolio-wrap,
.portfolio .portfolio-wrap img,
.portfolio figure {
    -webkit-tap-highlight-color: transparent !important;
    tap-highlight-color: transparent !important;
}

.portfolio .portfolio-item:active,
.portfolio .portfolio-wrap:active,
.portfolio .portfolio-wrap img:active,
.portfolio figure:active {
    filter: none !important;
    box-shadow: none !important;
    opacity: 1 !important;
    background: none !important;
    outline: none !important;
}

.portfolio .portfolio-item:active figure,
.portfolio .portfolio-item:focus figure {
    background: linear-gradient(0deg, rgba(18,21,24,0.92) 60%, rgba(170,145,102,0.10) 100%) !important;
    opacity: 0.96 !important;
}

/* === TESTIMONIAL GLASSMORPHISM === */
.testimonial-glass-bg {
    position: relative;
    background: none;
    z-index: 1;
    overflow: visible;
    padding-bottom: 80px;
}
.testimonial-animated-bg {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    z-index: 0;
    background: linear-gradient(120deg, #aa9166 0%, #121518 100%);
    opacity: 0.18;
    background-size: 200% 200%;
    animation: testimonial-bg-move 8s ease-in-out infinite alternate;
}
@keyframes testimonial-bg-move {
    0% { background-position: 0% 50%; }
    100% { background-position: 100% 50%; }
}
.glass-card {
    background: rgba(255,255,255,0.18);
    border-radius: 32px;
    box-shadow: 0 8px 32px 0 rgba(170,145,102,0.18);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1.5px solid rgba(170,145,102,0.18);
    padding: 48px 32px 36px 32px;
    text-align: center;
    transition: transform 0.35s, box-shadow 0.35s;
    position: relative;
    min-height: 340px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    z-index: 2;
}
.glass-card:hover {
    transform: translateY(-12px) scale(1.04);
    box-shadow: 0 16px 48px 0 rgba(170,145,102,0.22);
}
.testimonial-avatar {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    overflow: hidden;
    margin: 0 auto 18px auto;
    box-shadow: 0 2px 12px rgba(170,145,102,0.10);
    border: 3px solid #aa9166;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}
.testimonial-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}
.testimonial-stars {
    margin-bottom: 12px;
    font-size: 1.3rem;
    color: #FFD700;
    letter-spacing: 2px;
}
.testimonial-stars .fa-star,
.testimonial-stars .fa-star-half-alt {
    color: #FFD700;
    text-shadow: 0 2px 8px #aa9166;
}
.testimonial-item h2 {
    font-size: 1.3rem;
    font-weight: 700;
    color: #aa9166;
    margin-bottom: 4px;
    font-family: 'EB Garamond', serif;
    font-style: italic;
}
.testimonial-role {
    color: #23272b;
    font-size: 1.08rem;
    font-family: 'Roboto', sans-serif;
    opacity: 0.92;
    margin-bottom: 12px;
}
.testimonial-text {
    color: #23272b;
    font-size: 1.12rem;
    font-family: 'Roboto', sans-serif;
    opacity: 0.96;
    margin-bottom: 0;
    margin-top: 8px;
    font-style: italic;
    text-shadow: 0 1px 4px #fff8;
}
@media (max-width: 991.98px) {
    .glass-card {
        min-height: 220px;
        padding: 24px 8px 18px 8px;
    }
    .testimonial-avatar {
        width: 60px;
        height: 60px;
    }
}

/* === BLOG MODERNO Y GLASSMORPHISM (ACTUALIZADO) === */
.blog-modern {
    background: linear-gradient(120deg, #f5f5f5 60%, #e7dac4 100%);
    padding: 60px 0 40px 0;
    position: relative;
    z-index: 1;
}
.blog-card {
    background: rgba(255,255,255,0.18);
    border-radius: 28px;
    box-shadow: 0 8px 32px 0 rgba(170,145,102,0.18);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1.5px solid rgba(170,145,102,0.18);
    overflow: hidden;
    transition: box-shadow 0.35s, border-color 0.35s;
    display: flex;
    flex-direction: column;
    min-height: 480px;
    position: relative;
}
.blog-card:hover, .blog-card:focus {
    /* Sin movimiento ni escala, solo sombra y borde */
    box-shadow: 0 16px 48px 0 rgba(170,145,102,0.22), 0 0 0 4px #aa916633;
    border-color: #aa9166;
    z-index: 2;
}
.blog-card-img-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 16/9;
    min-height: 180px;
    max-height: 260px;
    overflow: hidden;
    border-radius: 28px 28px 0 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e7dac4;
}
.blog-card-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: filter 0.5s cubic-bezier(.4,2,.6,1);
    z-index: 1;
}
.blog-card-img-wrap::after {
    content: "";
    position: absolute;
    left: 0; top: 0; width: 100%; height: 100%;
    background: linear-gradient(180deg, rgba(18,21,24,0.08) 0%, rgba(170,145,102,0.13) 100%);
    z-index: 2;
    pointer-events: none;
    transition: background 0.4s;
}
.blog-card:hover .blog-card-img-wrap img {
    filter: brightness(1.08) saturate(1.1) drop-shadow(0 0 16px #aa916655);
}
.blog-card:hover .blog-card-img-wrap::after {
    background: linear-gradient(180deg, rgba(170,145,102,0.10) 0%, rgba(18,21,24,0.18) 100%);
}
.blog-badge {
    position: absolute;
    top: 18px;
    left: 18px;
    background: linear-gradient(90deg, #aa9166 0%, #e0cba3 100%);
    color: #fff;
    font-size: 0.98rem;
    font-weight: 700;
    padding: 8px 18px;
    border-radius: 18px;
    box-shadow: 0 2px 8px rgba(170,145,102,0.10);
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 8px;
    letter-spacing: 1px;
    font-family: 'Roboto', sans-serif;
    opacity: 0.97;
    transition: box-shadow 0.3s, filter 0.3s;
}
.blog-card:hover .blog-badge, .blog-badge:focus {
    box-shadow: 0 0 16px 2px #FFD70099, 0 2px 8px rgba(170,145,102,0.18);
    filter: brightness(1.1) drop-shadow(0 0 8px #FFD70088);
}
.blog-badge-laboral { background: linear-gradient(90deg, #25D366 0%, #43e97b 100%); }
.blog-badge-empresarial { background: linear-gradient(90deg, #1877f3 0%, #aa9166 100%); }
.blog-badge-civil { background: linear-gradient(90deg, #aa9166 0%, #FFD700 100%); color: #121518; }
.blog-card-body {
    padding: 32px 24px 24px 24px;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    justify-content: flex-start;
}
.blog-card-title {
    font-size: 1.35rem;
    font-weight: 800;
    color: #121518;
    font-family: 'EB Garamond', serif;
    font-style: italic;
    margin-bottom: 10px;
    min-height: 56px;
}
.blog-card-meta {
    font-size: 1.01rem;
    color: #aa9166;
    margin-bottom: 12px;
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 12px;
}
.blog-card-meta i {
    color: #aa9166;
    margin-right: 6px;
}
.blog-card-text {
    color: #23272b;
    font-size: 1.08rem;
    font-family: 'Roboto', sans-serif;
    opacity: 0.92;
    margin-bottom: 18px;
    flex: 1 1 auto;
}
.blog-card-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 28px;
    font-size: 1.08rem;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    border-radius: 12px;
    border: 2px solid #aa9166;
    background: linear-gradient(90deg, #fffbe6 0%, #aa9166 100%);
    color: #121518;
    box-shadow: 0 2px 8px rgba(170,145,102,0.10);
    transition: box-shadow 0.3s, background 0.3s, color 0.3s, border-color 0.3s;
    cursor: pointer;
    outline: none;
    text-decoration: none;
    font-family: 'Roboto', sans-serif;
}
.blog-card-btn i {
    font-size: 1.1em;
    margin-left: 6px;
    transition: transform 0.3s;
}
.blog-card-btn:hover, .blog-card-btn:focus {
    background: linear-gradient(90deg, #aa9166 0%, #fffbe6 100%);
    color: #fff;
    border-color: #121518;
    box-shadow: 0 0 16px 2px #FFD70099, 0 4px 16px rgba(170,145,102,0.18);
    text-decoration: none;
}
.blog-card-btn:active {
    filter: brightness(1.08);
}
@media (max-width: 991.98px) {
    .blog-card {
        min-height: 400px;
    }
    .blog-card-img-wrap {
        min-height: 180px;
        max-height: 260px;
        aspect-ratio: 16/10;
    }
    .blog-card-body {
        padding: 18px 10px 14px 10px;
    }
}
@media (max-width: 767.98px) {
    .blog-modern {
        padding: 30px 0 10px 0;
    }
    .blog-card {
        min-height: 320px;
    }
    .blog-card-img-wrap {
        min-height: 160px;
        max-height: 220px;
        aspect-ratio: 4/3;
    }
    .blog-card-title {
        font-size: 1.1rem;
        min-height: 36px;
    }
    .blog-card-btn {
        font-size: 0.98rem;
        padding: 8px 18px;
        border-radius: 8px;
    }
}