/********** Template CSS **********/

/* Smooth scrolling */
html {
    scroll-behavior: smooth;
}

/* Scroll offset for navigation */
#contacto {
    scroll-margin-top: 100px;
}

#nuestra-garantia {
    scroll-margin-top: 80px;
}

#testimonios {
    scroll-margin-top: 100px;
}

/* Download Guide Button Font */
.btn-download-guide {
    font-family: "Space Grotesk", sans-serif;
}

/*** Custom Fonts ***/
@font-face {
    font-family: 'Golften';
    src: url('../font/Golften-Regular.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'NotoSerifDisplay';
    src: url('../font/NotoSerifDisplay-ExtraCondensedExtraLight.ttf') format('truetype');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}


/*** Custom Typography ***/
.hero-title {
    font-family: 'Golften', sans-serif;
}

.letter-n {
    font-family: 'NotoSerifDisplay', serif;
    font-weight: 200;
}

.hero-title .text-primary {
    font-weight: bold;
}

.acomp-title .letter-n {
    font-weight: bold;
}

/* Ensure letter-n with font-weight-bold is properly styled */
.letter-n.font-weight-bold {
    font-weight: bold !important;
}

/* About section scroll offset for fixed header */
#acerca-de {
    scroll-margin-top: 100px;
}

/* Services section scroll offset for fixed header */
#servicios {
    scroll-margin-top: 100px;
}

/* Team section scroll offset for fixed header */
#equipo {
    scroll-margin-top: 100px;
}

@media (max-width: 768px) {
    #acerca-de {
        scroll-margin-top: 80px;
    }
    
    #servicios {
        scroll-margin-top: 80px;
    }
    
    #equipo {
        scroll-margin-top: 80px;
    }
}

/* Team images size control */
.team-item img {
    height: 700px;
    object-fit: cover;
    object-position: top;
    transition: .5s;
    image-rendering: auto;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.about-award-box {
    background-color: #964726 !important;
}

.about-award-box h5 {
    font-size: 1rem;
}

@media (max-width: 768px) {
    .about-award-box h5 {
        font-size: 0.8rem;
    }
}

@media (max-width: 576px) {
    .about-award-box h5 {
        font-size: 0.7rem;
    }
}

/* Mobile layout for About section */
@media (max-width: 991px) {
    .about-section .about-images {
        order: 1;
    }
    
    .about-section .about-content {
        order: 2;
    }
    
    .about-section .about-content h1 {
        text-align: center;
        margin-bottom: 2rem !important;
    }
}

/*** Spinner ***/
#spinner {
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s ease-out, visibility 0s linear .5s;
    z-index: 99999;
}

#spinner.show {
    transition: opacity .5s ease-out, visibility 0s linear 0s;
    visibility: visible;
    opacity: 1;
}

.back-to-top {
    position: fixed;
    display: none;
    right: 45px;
    bottom: 45px;
    z-index: 99;
}

/*** Button ***/
.btn {
    transition: .5s;
}

.btn-square {
    width: 38px;
    height: 38px;
}

.btn-sm-square {
    width: 32px;
    height: 32px;
}

.btn-lg-square {
    width: 48px;
    height: 48px;
}

.btn-square,
.btn-sm-square,
.btn-lg-square {
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: normal;
}


/*** Navbar ***/
.sticky-top {
    top: -150px;
    transition: .5s;
}

.navbar {
    padding: 15px 0;
    font-family: "Space Grotesk", sans-serif;
    font-size: 18px;
}

.navbar .navbar-nav .nav-link {
    margin-left: 30px;
    padding: 0;
    outline: none;
    color: var(--bs-dark);
}

.navbar .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-link.active {
    color: var(--bs-primary)
}

.navbar .dropdown-toggle::after {
    border: none;
    content: "\f107";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    vertical-align: middle;
    margin-left: 8px;
}

.navbar .dropdown-menu .dropdown-item:hover,
.navbar .dropdown-menu .dropdown-item.active {
    color: var(--bs-white);
    background: var(--bs-primary);
}

@media (max-width: 991.98px) {
    .navbar .navbar-nav .nav-link  {
        margin-left: 0;
        padding: 10px 0;
    }
}

@media (min-width: 992px) {
    .navbar .nav-item .dropdown-menu {
        display: block;
        border: none;
        margin-top: 0;
        top: 150%;
        opacity: 0;
        visibility: hidden;
        transition: .5s;
    }

    .navbar .nav-item:hover .dropdown-menu {
        top: 100%;
        visibility: visible;
        transition: .5s;
        opacity: 1;
    }
}


/*** Hero Header ***/
.hero-header {
    margin-top: -100px;
    padding-top: 150px;
    background: url(../img/hero-bg.jpg) top center no-repeat;
    background-size: cover;
}

.hero-header .breadcrumb-item+.breadcrumb-item::before {
    color: var(--light);
}

.header-carousel {
    position: relative;
    padding: 45px 90px 45px 0;
}

.header-carousel::before {
    position: absolute;
    content: "";
    top: 0;
    right: 0;
    width: calc(50% + 45px);
    height: 100%;
    background: #964726;
    z-index: -1;
}

.header-carousel .owl-dots {
    position: absolute;
    top: 50%;
    right: 38px;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.header-carousel .owl-dot {
    position: relative;
    display: inline-block;
    margin: 5px 0;
    width: 15px;
    height: 15px;
    border: 2px solid var(--bs-white);
    transition: .5s;
}

.header-carousel .owl-dot.active {
    height: 30px;
    background: var(--bs-white);
}

/* Hero carousel images styling */
.header-carousel .owl-item {
    display: flex;
    align-items: center;
    justify-content: center;
}

.header-carousel .owl-item img {
    width: 100%;
    height: 400px;
    object-fit: cover;
    object-position: center;
    border-radius: 8px;
    transition: transform 0.3s ease;
    display: block;
    max-width: 100%;
}

.header-carousel .owl-item:hover img {
    transform: scale(1.02);
}

/* Ensure carousel container has proper dimensions */
.header-carousel .owl-stage-outer {
    overflow: hidden;
    border-radius: 8px;
}

.header-carousel .owl-stage {
    display: flex;
    align-items: center;
}

/* Responsive adjustments for hero carousel images */
@media (max-width: 768px) {
    .header-carousel {
        padding: 20px 0;
    }
    
    .header-carousel .owl-item img {
        height: 300px;
        border-radius: 6px;
    }
    
    .header-carousel::before {
        display: none;
    }
    
    .header-carousel .owl-dots {
        position: relative;
        top: auto;
        right: auto;
        transform: none;
        flex-direction: row;
        justify-content: center;
        margin-top: 20px;
    }
    
    .header-carousel .owl-dot {
        margin: 0 5px;
    }
}

@media (max-width: 576px) {
    .header-carousel .owl-item img {
        height: 250px;
    }
}

/* Additional fixes for hero carousel */
.header-carousel .owl-item img.img-fluid {
    width: 100% !important;
    height: auto;
    min-height: 300px;
    max-height: 400px;
    object-fit: cover;
    object-position: center;
}

/* Ensure all images load properly */
.header-carousel .owl-item img[src*="hero-slider-111"],
.header-carousel .owl-item img[src*="hero-slider-22"],
.header-carousel .owl-item img[src*="hero-slider-44"] {
    width: 100%;
    height: 400px;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* Specific fix for hero-slider-22.JPG */
.header-carousel .owl-item img[src*="hero-slider-22"] {
    width: 100% !important;
    height: 400px !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
    background-color: #f8f9fa;
}

/* Mobile specific adjustments */
@media (max-width: 768px) {
    .header-carousel .owl-item img[src*="hero-slider-111"],
    .header-carousel .owl-item img[src*="hero-slider-22"],
    .header-carousel .owl-item img[src*="hero-slider-44"] {
        height: 300px;
    }
    
    /* Specific mobile fix for hero-slider-22 */
    .header-carousel .owl-item img[src*="hero-slider-22"] {
        height: 300px !important;
        width: 100% !important;
        object-fit: cover !important;
        object-position: center !important;
        display: block !important;
    }
}

@media (max-width: 576px) {
    .header-carousel .owl-item img[src*="hero-slider-111"],
    .header-carousel .owl-item img[src*="hero-slider-22"],
    .header-carousel .owl-item img[src*="hero-slider-44"] {
        height: 250px;
    }
    
    /* Specific mobile fix for hero-slider-22 on small screens */
    .header-carousel .owl-item img[src*="hero-slider-22"] {
        height: 250px !important;
        width: 100% !important;
        object-fit: cover !important;
        object-position: center !important;
        display: block !important;
    }
}


/* Hero section responsive adjustments - Solo reducir espacios */
@media (max-width: 768px) {
    .hero-header .container {
        padding-top: 0.5rem !important;
        padding-bottom: 1rem !important;
    }
    
    .hero-header .row.g-5 {
        margin-bottom: 0.5rem !important;
    }
    
    .hero-header .col-lg-6:first-child {
        margin-bottom: 0.5rem;
    }
}

/* Ajustes adicionales para móviles más pequeños - Solo espacios */
@media (max-width: 576px) {
    .hero-header .container {
        padding-top: 0.25rem !important;
        padding-bottom: 0.5rem !important;
    }
    
    .hero-header .row.g-5 {
        margin-bottom: 0.25rem !important;
    }
    
    .hero-header .col-lg-6:first-child {
        margin-bottom: 0.25rem;
    }
}


/*** About ***/
.about-img {
    position: relative;
    overflow: hidden;
}

.about-img::after {
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: url(../img/bg-about-img.png) top left no-repeat;
    background-size: contain;
}


/*** Project ***/
.project-item img {
    transition: .5s;
}
  
.project-item:hover img {
    transform: scale(1.2);
}
  
.project-overlay {
    position: absolute;
    padding: 25px;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    background: linear-gradient(rgba(255, 255, 255, .1) 50%, var(--bs-dark));
    z-index: 1;
}


/*** Service ***/
.service-item {
    position: relative;
    padding: 30px 25px;
    transition: .5s;
}

.service-item.bg-primary:hover {
    background: var(--bs-light) !important;
}

.service-item.bg-primary p {
    color: var(--bs-light);
    transition: .5s;
}

.service-item.bg-primary:hover p {
    color: var(--bs-secondary);
}

.service-item.bg-light:hover {
    background: var(--bs-primary) !important;
}

.service-item.bg-light p {
    color: var(--bs-secondary);
    transition: .5s;
}

.service-item.bg-light:hover p {
    color: var(--bs-light);
}


.service-item .service-img h3 {
    position: absolute;
    top: 0;
    left: 0;
    padding: 0 12px 7px 0;
}

.service-item.bg-primary .service-img h3 {
    background: var(--bs-primary);
    color: var(--bs-white);
    transition: .5s;
}

.service-item.bg-primary:hover .service-img h3 {
    background: var(--bs-light);
    color: var(--bs-dark);
}

.service-item.bg-light .service-img h3 {
    background: var(--bs-light);
    color: var(--bs-dark);
    transition: .5s;
}

.service-item.bg-light:hover .service-img h3 {
    background: var(--bs-primary);
    color: var(--bs-white);
}


/*** Our Team ***/
.team-item:hover img {
    transform: scale(1.05);
}
  
.team-overlay {
    position: absolute;
    padding: 30px;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    background: linear-gradient(rgba(255, 255, 255, .1) 50%, var(--bs-dark));
    z-index: 1;
}

.team-overlay small {
    display: inline-block;
    padding: 3px 15px;
    color: var(--bs-white);
    background: var(--bs-primary);
}


/*** Testimonial ***/
.testimonial-img {
    position: relative;
    padding: 45px 0 45px 90px;
}

.testimonial-img::before {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: calc(50% + 45px);
    height: 100%;
    background: var(--bs-primary);
    z-index: -1;
}

.testimonial-text h5 {
    position: relative;
    padding-left: 45px;
}

.testimonial-text h5::before {
    position: absolute;
    content: "";
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 40px;
    height: 2px;
    background: var(--bs-primary);
}

.testimonial-carousel .owl-dots {
    position: absolute;
    height: 17px;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    right: auto;
    text-align: center;
}

.testimonial-carousel .owl-dot {
    position: relative;
    display: inline-block;
    margin: 0 5px;
    width: 15px;
    height: 15px;
    background: var(--bs-white);
    border: 2px solid var(--bs-primary);
    transition: .5s;
    border-radius: 50%;
}

.testimonial-carousel .owl-dot.active {
    width: 30px;
    background: var(--bs-primary);
    border-radius: 15px;
}

@media (max-width: 768px) {
    .testimonial-carousel .owl-dots {
        left: 50%;
        transform: translateX(-50%);
        right: auto;
        display: flex !important;
        flex-wrap: nowrap !important;
        justify-content: center;
        align-items: center;
        width: auto;
        white-space: nowrap;
    }

    .testimonial-carousel .owl-dot {
        margin: 0 3px;
        flex-shrink: 0;
        display: inline-block !important;
    }
}

@media (max-width: 576px) {
    .testimonial-carousel .owl-dots {
        display: flex !important;
        flex-wrap: nowrap !important;
        justify-content: center;
        align-items: center;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .testimonial-carousel .owl-dot {
        margin: 0 2px;
        flex-shrink: 0;
        min-width: 12px;
        width: 12px;
        height: 12px;
    }

    .testimonial-carousel .owl-dot.active {
        width: 20px;
        border-radius: 10px;
    }
}


/*** Newsletter ***/
.newsletter {
    background: url(../img/hero-bg.jpg) bottom right no-repeat;
    background-size: cover;
}

@media (min-width: 992px) {
    .newsletter .container {
        max-width: 100% !important;
    }

    .newsletter .newsletter-text  {
        padding-right: calc(((100% - 960px) / 2) + .75rem);
    }
}

@media (min-width: 1200px) {
    .newsletter .newsletter-text  {
        padding-right: calc(((100% - 1140px) / 2) + .75rem);
    }
}

@media (min-width: 1400px) {
    .newsletter .newsletter-text  {
        padding-right: calc(((100% - 1320px) / 2) + .75rem);
    }
}


/*** Footer ***/
.footer .btn.btn-link {
    display: block;
    margin-bottom: 10px;
    padding: 0;
    text-align: left;
    color: rgba(255,255,255,.5);
    font-weight: normal;
    transition: .3s;
}

.footer .btn.btn-link:hover {
    color: var(--bs-white);
    letter-spacing: 1px;
    box-shadow: none;
}

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

.footer .copyright {
    padding: 25px 0;
    font-size: 14px;
    border-top: 1px solid rgba(256, 256, 256, .1);
}

.footer .copyright a {
    color: rgba(255,255,255,.5);
}

.footer .copyright a:hover {
    color: var(--bs-white);
}

.footer .footer-menu {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    white-space: nowrap;
}

.footer .footer-menu a {
    margin-right: 15px;
    padding-right: 15px;
    border-right: 1px solid rgba(255, 255, 255, .1);
    flex-shrink: 0;
    display: inline-block;
}

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

/* Footer menu responsive adjustments */
@media (max-width: 768px) {
    .footer .footer-menu {
        flex-wrap: wrap;
        justify-content: center;
    }
    
    .footer .footer-menu a {
        margin-right: 10px;
        padding-right: 10px;
        font-size: 0.9rem;
    }
}

@media (max-width: 576px) {
    .footer .footer-menu a {
        margin-right: 8px;
        padding-right: 8px;
        font-size: 0.8rem;
    }
}

/* Closing Ceremonies Stack Carousel */
:root {
	--t: 0.8s;
}

/* register these two so they can be transitioned */
@property --p {
	syntax: '<number>';
	initial-value: 0;
	inherits: true
}
@property --v {
	syntax: '<number>';
	initial-value: 0;
	inherits: true
}

/* Stack carousel container */
.closing-stack-carousel {
	/* set previous top item index to current top index */
	--p: var(--k);
	/* abs of difference between current & previous top item indices */
	--abs-p: abs(var(--k) - var(--p));
	/* animation from one end of the n > 2 length list to another? */
	--end: clamp(0, var(--abs-p) - 1, 1);
	/* direction we're going in */
	--dir: calc((1 - 2*var(--end))*sign(var(--k) - var(--p)));
	/* forward direction flag: 0 backwards, 1 forwards */
	--fwd: calc(.5*(1 + var(--dir)));
	/* set animated value of top item index to current top index */
	--v: var(--k);
	/* absolute value of difference between animated & previous top index */
	--abs-v: abs(var(--v) - var(--p));
	/* animation progress as a decimal value */
	--prg: calc(var(--abs-v)/(1 - var(--end) + var(--end)*(var(--n) - 1)));
	
	/* bigger space between the two columns (image stack & all else) */
	display: grid;
	grid-gap: .5em 4em;
	grid-template: /* 4 row, 2 col grid */
		repeat(2, max-content) 1fr max-content/ 
		max-content 1fr;
	place-self: center;
	color: #f1f5f9;
	font: 1em 'Golften', sans-serif;
	counter-reset: k calc(1 + var(--k)) n var(--n);
	/* transition previous & animated top item indices 
	 * so they don't change instantly like the current one */
	transition: --p 0s var(--t), --v var(--t);
	min-height: 500px; /* Ensure enough space */
	
	/* counter & binomial name faded */
}

.closing-stack-carousel::before { 
	color: RGB(from currentColor r g b/ .6);
	grid-area: 1/ 2; /* all grid areas need to be set manually */
	width: 3ch;
	text-align: right;
	content: counter(k) '/' counter(n);
	
	/* Chrome compatibility */
	@supports not (scale: Abs(-2)) {
		--abs-p: max(var(--k) - var(--p), var(--p) - var(--k));
		--abs-v: max(var(--v) - var(--p), var(--p) - var(--v))
	}
	
	@supports not (scale: Sign(-2)) {
		--dir: clamp(-1, (var(--k) - var(--p))*100000, 1)
	}
}

.closing-stack-carousel article {
	/* absolute value difference between currently top item index and current item index */
	--abs-top: abs(var(--k) - var(--i));
	/* not top item if the absoute value difference ≥ 1 */
	--not-top: min(1, var(--abs-top));
	/* top flag is the negation */
	--top: calc(1 - var(--not-top));
	/* difference between moving image index */
	--val-mov: ((1 - var(--fwd))*var(--p) + var(--fwd)*var(--k) - var(--i));
	--abs-mov: abs(var(--val-mov));
	/* not moving image if the absoute value difference > 1 */
	--not-mov: min(1, var(--abs-mov));
	/* moving flag is the negation */
	--mov: calc(1 - var(--not-mov));
	
	grid-area: 1/ 1/ -1/ -1;
	grid-template: subgrid/ subgrid;
	/* z-index depends on number of items, its own index and top item index */
	z-index: mod(calc(var(--n) - 1 + var(--i) - var(--k)), var(--n));
	/* transition z-index */
	transition: z-index var(--t) cubic-bezier(1, -.9, 0, 1.9);
	
	/* Chrome compatibility */
	@supports not (scale: Abs(-2)) {
		--abs-top: max(var(--k) - var(--i), var(--i) - var(--k));
		--abs-mov: max(var(--val-mov), -1*var(--val-mov));
	}
}


.closing-stack-carousel img {
	/* value that grows from 0 to 1, then goes back to 0 during transition */
	--sin: sin(var(--prg)*.5turn);
	grid-area: 1/ 1/ -1; /* occupy entire first column */
	/* slight glow effect with brand color */
	border: solid 2px rgba(150, 71, 38, .5);
	height: 20em;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: .75em;
	/* slide just moving image out & back in */
	translate: calc(-150%*var(--mov)*sqrt(var(--sin)));
	/* random rotation, but not during slide out & back in transition */
	rotate: calc((1 - var(--sin))*var(--a));
	/* Add smooth transition for all transforms */
	transition: transform var(--t) cubic-bezier(0.4, 0, 0.2, 1);
}

.closing-stack-carousel div { /* button wrapper */
	display: flex;
	gap: 2em;
	grid-area: 4/ 2;
	/* prevent button clicks during animation */
	z-index: 999;
	position: relative;
}

.closing-stack-carousel button { /* prettify button */
	--sgn: -1;
	--prc: calc(var(--hov, 0)*100%);
	--c: color-mix(in hsl, #964726 var(--prc), #52527a);
	border: none;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: #1e3a8a;
	color: white;
	font: 900 1.5em/ 1 sans-serif;
	transition: .3s ease-out;
	transition-property: background-color, color;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	z-index: 1000;
	cursor: pointer;
}

.closing-stack-carousel button::before { /* arrow, SVG likely better, whatever */
	content: '';
	width: 0;
	height: 0;
	border-style: solid;
	position: absolute;
}

.closing-stack-carousel button[data-inc='-1']::before {
	border-width: 8px 12px 8px 0;
	border-color: transparent #60a5fa transparent transparent;
	margin-left: -2px;
}

.closing-stack-carousel button[data-inc='1']::before {
	border-width: 8px 0 8px 12px;
	border-color: transparent transparent transparent white;
	margin-right: -2px;
}

.closing-stack-carousel button:hover {
	background: #1e40af;
	transform: scale(1.1);
}

.closing-stack-carousel button[data-inc='-1']:hover::before {
	border-color: transparent #93c5fd transparent transparent;
}

.closing-stack-carousel button[data-inc='1']:hover::before {
	border-color: transparent transparent transparent #f3f4f6;
}


/* Closing Ceremonies Title */
.closing-ceremonies-title {
    font-family: 'Golften', sans-serif;
}

.closing-ceremonies-title span {
    font-family: 'Golften', sans-serif;
    font-weight: bold;
}

/* Closing Ceremonies - Adjust for vertical photos with background frame */
.testimonial-carousel .testimonial-img {
    padding: 20px !important;
    max-width: 400px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

.testimonial-carousel .testimonial-img::before {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--bs-primary);
    z-index: -1;
    opacity: 0.8;
}

.testimonial-carousel .testimonial-img img {
    max-height: 400px !important;
    max-width: 300px !important;
    object-fit: contain;
    width: auto;
    height: auto;
    position: relative;
    z-index: 1;
}

/* Testimonials Section Styles */
.testimonial-card {
    border-radius: 12px;
    transition: all 0.3s ease;
    border: 1px solid #e9ecef;
}

.testimonial-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
}

.profile-initials {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: var(--bs-primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 16px;
    border: 3px solid var(--bs-primary);
}

.testimonial-evidence img {
    border: 2px solid var(--bs-primary);
    transition: all 0.3s ease;
    max-width: 100%;
    height: auto;
}

.testimonial-evidence img:hover {
    transform: scale(1.05);
}

/* New Testimonials Carousel Styles */
.testimonials-carousel .testimonial-item {
    padding: 10px 0;
}

.testimonials-carousel .testimonial-text {
    padding-bottom: 1rem !important;
}

.testimonials-carousel .testimonial-text h6 {
    color: var(--bs-primary);
    font-weight: bold;
    margin-bottom: 0.5rem !important;
}

.testimonials-carousel .testimonial-text p {
    font-size: 1.1rem;
    line-height: 1.6;
    color: #333;
    font-style: italic;
    margin-bottom: 0.5rem !important;
}

.testimonials-carousel .testimonial-img {
    position: relative;
    padding: 10px;
    max-width: 400px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
}

.testimonials-carousel .testimonial-img::before {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--bs-primary);
    z-index: -1;
    opacity: 0.1;
    border-radius: 8px;
}

.testimonials-carousel .testimonial-img img {
    max-height: 300px;
    max-width: 250px;
    object-fit: cover;
    width: auto;
    height: auto;
    position: relative;
    z-index: 1;
    border-radius: 8px;
    border: 3px solid var(--bs-primary);
    transition: transform 0.3s ease;
}

.testimonials-carousel .testimonial-img img:hover {
    transform: scale(1.05);
}

/* Testimonials carousel dots styling */
.testimonials-carousel .owl-dots {
    position: relative !important;
    height: 17px;
    bottom: 0;
    right: 0;
    left: auto;
    margin-top: 20px;
    text-align: center;
    display: flex !important;
    justify-content: center;
    align-items: center;
    width: 100%;
}

.testimonials-carousel .owl-dot {
    position: relative;
    display: inline-block !important;
    margin: 0 5px;
    width: 15px;
    height: 15px;
    background: var(--bs-white);
    border: 2px solid var(--bs-primary);
    transition: .5s;
    border-radius: 50%;
    cursor: pointer;
}

.testimonials-carousel .owl-dot.active {
    width: 30px;
    background: var(--bs-primary);
    border-radius: 15px;
}

.testimonials-carousel .owl-dot:hover {
    background: var(--bs-primary);
    opacity: 0.7;
}

/* General spacing adjustments for testimonials carousel */
#testimonios .container .row.justify-content-center .col-12.text-center {
    margin-bottom: 2.5rem !important;
}

#testimonios .container .row.justify-content-center .col-12.text-center h1 {
    margin-bottom: 1.5rem !important;
}

/* Desktop and tablet adjustments */
@media (min-width: 769px) {
    .testimonials-carousel .testimonial-text {
        padding-bottom: 1.5rem !important;
    }
    
    .testimonials-carousel .testimonial-item {
        padding: 15px 0;
    }
    
    #testimonios .container .row.justify-content-center .col-12.text-center {
        margin-bottom: 3rem !important;
    }
}

/* Responsive adjustments for testimonials */
@media (max-width: 768px) {
    .testimonial-card {
        margin-bottom: 2.5rem;
    }
    
    .profile-initials {
        width: 45px !important;
        height: 45px !important;
        font-size: 14px;
    }
    
    .testimonial-evidence img {
        max-height: 140px !important;
        width: auto !important;
    }
    
    /* En móviles, cambiar a layout vertical */
    .testimonial-card .row .col-8,
    .testimonial-card .row .col-4 {
        flex: 0 0 100%;
        max-width: 100%;
    }
    
    .testimonial-card .row .col-4 {
        margin-top: 1.5rem;
    }
    
    /* New testimonials carousel mobile adjustments */
    .testimonials-carousel .testimonial-img img {
        max-height: 200px !important;
        max-width: 180px !important;
    }
    
    .testimonials-carousel .testimonial-text p {
        font-size: 1rem;
    }
    
    .testimonials-carousel .testimonial-text {
        text-align: center;
        margin-bottom: 1rem !important;
        padding-bottom: 0.5rem !important;
    }
    
    .testimonials-carousel .testimonial-item {
        padding: 5px 0;
    }
    
    /* Reduce space between title and carousel */
    #testimonios .container .row.justify-content-center .col-12.text-center {
        margin-bottom: 2rem !important;
    }
    
    /* Testimonials carousel dots mobile adjustments */
    .testimonials-carousel .owl-dots {
        margin-top: 15px;
    }
    
    .testimonials-carousel .owl-dot {
        width: 12px;
        height: 12px;
        margin: 0 3px;
    }
    
    .testimonials-carousel .owl-dot.active {
        width: 25px;
        border-radius: 12px;
    }
}

@media (max-width: 576px) {
    .testimonial-evidence img {
        max-height: 120px !important;
    }
    
    .profile-initials {
        width: 40px !important;
        height: 40px !important;
        font-size: 12px;
    }
    
    /* New testimonials carousel small mobile adjustments */
    .testimonials-carousel .testimonial-img img {
        max-height: 150px !important;
        max-width: 120px !important;
    }
    
    .testimonials-carousel .testimonial-text p {
        font-size: 0.9rem;
    }
    
    .testimonials-carousel .testimonial-text {
        margin-bottom: 0.5rem !important;
        padding-bottom: 0.25rem !important;
    }
    
    .testimonials-carousel .testimonial-item {
        padding: 2px 0;
    }
    
    /* Further reduce space between title and carousel on small mobile */
    #testimonios .container .row.justify-content-center .col-12.text-center {
        margin-bottom: 1.5rem !important;
    }
    
    /* Testimonials carousel dots small mobile adjustments */
    .testimonials-carousel .owl-dots {
        margin-top: 10px;
    }
    
    .testimonials-carousel .owl-dot {
        width: 10px;
        height: 10px;
        margin: 0 2px;
    }
    
    .testimonials-carousel .owl-dot.active {
        width: 20px;
        border-radius: 10px;
    }
}
