/* ===================================
    01. Google font
====================================== */

@import url('https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900&display=swap');
@import url('https://fonts.googleapis.com/css?family=Montserrat:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i&display=swap');

:root {
  --primary-blue: #002D54;
  --primary-orange: #F27D26;
  --bg-gray: #F5F5F5;
  --text-dark: #333333;
  --text-light: #666666;
  --white: #FFFFFF;
  --border-radius: 32px;
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: var(--font-sans);
  background-color: #ffffff;
  color: var(--text-dark);
  line-height: 1.5;
}



/* ===================================
    02. Reset
====================================== */

html { font-size: 14px; }
*, *::after, *::before { box-sizing: border-box; }
body { font-size: 15px; line-height: 30px; font-weight: 400; color: #828282; font-family: 'Roboto', sans-serif; padding: 0; margin: 0; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; word-break: break-word }
body, html { -moz-osx-font-smoothing: grayscale; }
a { text-decoration: none; }
a:hover, a:focus { text-decoration: none; outline: none; outline-offset:0; color: #0038e3; }
a, a.nav-link, a:active, a:focus { color: #828282; }
a, a.nav-link, .btn, input, textarea, select { transition: all 0.3s ease-in-out; -moz-transition: all 0.3s ease-in-out; -webkit-transition: all 0.3s ease-in-out; -ms-transition: all 0.3s ease-in-out; -o-transition: all 0.3s ease-in-out; }
img { max-width: 100%; height: auto; }
video { background-size: cover; displf fontay: table-cell; vertical-align: middle; width: 100%; }
p { margin: 0 0 25px; }
b, strong { font-weight: 600; }
.alt-font strong { font-weight: 600; }
.last-paragraph-no-margin p:last-of-type { margin-bottom:0; }
ul, ol, dl { list-style-position: inside; margin-bottom: 25px; }
ul { margin: 0; padding: 0; }
input, textarea, select { border: 1px solid #dfdfdf; padding: 10px 15px; width: 100%; margin: 0 0 15px 0; max-width: 100%; resize: none; outline: none; color: #828282; line-height: initial; word-break: initial; }
select { background-image: url(../images/down-arrow.png); background-position: right 14px center; background-repeat: no-repeat; background-size: 10px; border-radius: 0; -webkit-appearance: none; -moz-appearance: none; appearance: none; cursor: pointer;}
input[type=checkbox], input[type=radio] { box-sizing: border-box; padding: 0; }

/*------------------ Typography---------*/


h1, h2, h3, h4, h5, h6 {
  margin: 0;
  padding: 0;
  letter-spacing: -0.5px;
  font-weight: inherit;
}

h2 {
  font-size: 3.6rem;
  line-height: 4.2rem;
}

h5 {
  font-family: Montserrat;
  font-size: 1.80rem;
  line-height: 3rem;
}

/* ===================================
    03. Typography
====================================== */

/* font family */
.alt-font { font-family: 'Montserrat', sans-serif; }
.main-font { font-family: 'Roboto', sans-serif !important; }

/* heading size */
h1, h2, h3, h4, h5, h6 { margin:0 0 25px 0; padding:0; letter-spacing: -0.5px; font-weight: inherit; }
h1{ margin:0 }

h1 { font-size:5rem; line-height: 5rem; }
h2 { font-size:3.6rem; line-height:4.2rem; }
h3 { font-size:2.5rem; line-height:3.9rem; }
h4 { font-size:2.10rem; line-height:3.4rem; }
h5 { font-size:1.80rem; line-height:3rem; }
h6 { font-size:1.50rem; line-height:2.5rem; }

/* text size */
.font-size-0 { font-size: 0; }
.text-very-small { font-size:11px; line-height:14px; }
.text-extra-small { font-size:12px; line-height:16px; }
.text-small { font-size:13px; line-height:22px; }
.text-medium { font-size:14px; line-height:20px; }
.text-extra-medium { font-size:16px; line-height:28px; }
.text-large { font-size:18px; line-height:22px; }
.text-extra-large { font-size: 20px; line-height:28px; }
.title-extra-small { font-size: 30px; line-height: 32px; }
.title-small { font-size: 36px; line-height: 42px; }
.title-large { font-size: 100px; line-height:95px; }
.title-large-2 { font-size: 70px; line-height:80px; }
.title-large-3 { font-size: 80px; line-height:80px; }

.text-white, .btn-link.text-white, a.text-white-hover:hover { color: rgb(255, 255, 255); }
.text-extra-dark-gray, .btn-link.text-extra-dark-gray, a.text-extra-dark-gray-hover:hover { color: rgb(35, 35, 35); }
.letter-spacing-minus-2px { letter-spacing: -2px; }
.font-weight-500 { font-weight: 500 !important; }
.font-weight-700 { font-weight: 700 !important; }
.line-height-26px { line-height: 26px; }

.page-title-extra-small h1 {
  font-size: 16px;
  font-weight: 700;
  line-height: 20px;
}

.page-title-extra-small h2 {
  margin-top:20px;
  font-size: 50px;
  font-weight: 700;
  line-height: 48px;
}

.mt-20{margin-top:20px}
/* ==============================
   Icon Fonts
   ============================== */
/*@font-face { font-family: "Font Awesome 5 Brands"; font-style: normal; font-weight: 400; font-display: block; src: url("../fonts/fa-brands-400.woff2") format("woff2"), url("../fonts/fa-brands-400.woff") format("woff"), url("../fonts/fa-brands-400.ttf") format("truetype"); }
@font-face { font-family: themify; src: url("../fonts/themify.woff?-fvbane") format("woff"), url("../fonts/themify.ttf?-fvbane") format("truetype"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: feather; src: url("../fonts/feather.woff?t=1525787366991") format("woff"), url("../fonts/feather.ttf?t=1525787366991") format("truetype"); font-display: swap; }

.fa, .fab, .fad, .fal, .far, .fas { -webkit-font-smoothing: antialiased; display: inline-block; font-style: normal; font-variant: normal; text-rendering: auto; line-height: 1; }
.fa-instagram::before { content: ""; }
.fab { font-family: "Font Awesome 5 Brands"; }
.fab, .far { font-weight: 400; }
[class*=" ti-"], [class^="ti-"] { font-family: themify; speak: none; font-style: normal; font-weight: 400; font-variant: normal; text-transform: none; line-height: 1; -webkit-font-smoothing: antialiased; }
.ti-arrow-down::before { content: ""; }
.feather { speak: none; font-style: normal; font-weight: 400; font-variant: normal; text-transform: none; line-height: 1; -webkit-font-smoothing: antialiased; font-family: feather !important; }
.icon-feather-arrow-up::before { content: ""; }
*/


.scroll-top-arrow, .scroll-top-arrow:focus {
  background: #fff;
  font-size: 17px;
  line-height: 34px;
  box-shadow: 0 0 25px rgba(23,23,23,.25);
  display: none;
  height: 34px;
  width: 34px;
  padding: 0;
  position: fixed;
  right: 45px;
  text-align: center;
  text-decoration: none;
  bottom: 45px;
  z-index: 1029;
  border-radius: 100%;
}
.scroll-top-arrow:hover {
  background: #fff;
  color: #828282;
  box-shadow: 0 0 30px rgba(23,23,23,.4);
  -webkit-transform: translateY(-2px);
  -ms-transform: translateY(-2px);
  transform: translateY(-2px);
}



.padding-15px-all {
  padding: 15px;
}
.border-radius-100 {
  border-radius: 100%;
}
.bg-transparent-black {
  background-color: rgba(0, 0, 0, 0.70);
}

.bg-extra-dark-gray {
  background-color: #232323;
}

.bg-light-gray { background-color:#f7f7f7; }

.opacity-extra-medium {
  position: absolute;
  height: 100%;
  width: 100%;
  opacity: 0.5;
  top: 0;
  left: 0;
}

.background-position-top {
  background-position: right top;
}
.cover-background {
  background-repeat: no-repeat !important;
  background-size: cover !important;
  overflow: hidden;
  position: relative;
  background-position: center center !important;
}

.small-screen {
  height: 400px;
}

.down-section { position: absolute; width: 100%; bottom: 50px; left: 0px; right: 0px; }
section {
  padding: 60px 0;
  overflow: hidden;
}

.section-link{display: none}
.container {
  max-width: 100%;
  margin: 0 auto;
  padding: 0 15px;
}

/* Header */
header {
  background-color: var(--white);
  padding: 15px 0;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
  position: sticky;
  top: 0;
  z-index: 100;
}

header .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header-left {
  flex: 1;
  display: flex;
  justify-content: flex-start;
}

.header-center {
  flex: 1;
  display: flex;
  justify-content: center;
}

div.header-center a img {
height:60px}

.header-right {
  flex: 1;
  display: flex;
  justify-content: flex-end;
}

.instagram-icon {
  width: 24px;
  height: 24px;
  color: var(--text-dark);
  margin-left:15px;
}

.logo {
  height: 55px;
}

.memoria-label {
  font-weight: 600;
  font-size: 13px;
  color: var(--text-light);
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* Hero Section */
.hero {
  margin-top: 0px;
  position: relative;
  border-radius: 0;
  overflow: hidden;
  height: 520px;
}

.hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-content {
  position: absolute;
  bottom: 0;
  right: 0;
  background-color: var(--white);
  padding: 10px;
  border-top-left-radius: 32px;
    border-top-right-radius: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  max-width: 600px;
  box-shadow: -10px -10px 30px rgba(0,0,0,0.05);
  padding: 15px 10px 0px 40px;
}

.hero-content h1 {
  font-size: 38px;
  color: var(--primary-blue);
  margin-bottom: 10px;
  font-weight: 800;
  line-height: 1;
  padding-left:10px;
}
.texto-inicio {
  font-size: 10rem;
  color: #e5e5e5;
  margin-bottom: 10px;
  font-weight: 500;
 letter-spacing:-15px;
  line-height: 1;
}

.hero-content p {
  font-size: 15px;
  color: var(--text-dark);
  line-height: 1.3;
padding:0px;
    margin:10px 0px 0px;
}

/* Stats Section (Slider Style) */
.stats {
  position: relative;
  border-radius: 0;
  height: 450px;
  overflow: hidden;
  color: var(--white);
}

.stats-slider {
  width: 100%;
  height: 100%;
  position: relative;
}



.slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 1s ease-in-out;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 20px;
}

.slide.active {
  opacity: 1;
}

.slide-content {
  filter: blur(10px);
  opacity: 0;
  transition: filter 1.2s ease-out 0.8s, opacity 1.2s ease-out 0.8s;
  width: 100%;
}

.slide.active .slide-content {
  filter: blur(0);
  opacity: 1;
}

.slide-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  z-index: -1;
}

.slide-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 45, 84, 0.5);
  z-index: -1;
}

.stats h2 {
  font-size: 36px;
  margin-bottom: 30px;
  font-weight: 600;
}

.stats-grid {
  display: grid;
  gap: 20px;
  width: 85%;
  max-width: 1000px;
  margin: 0 auto;
}

.stats-grid.cols-2 {
  grid-template-columns: repeat(2, 1fr);
}

.stats-grid.cols-3 {
  grid-template-columns: repeat(3, 1fr);
}

.stats-grid.cols-4 {
  grid-template-columns: repeat(4, 1fr);
}

.slider-dots {
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 12px;
  z-index: 10;
}

.dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: rgba(255,255,255,0.3);
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.dot.active {
  background-color: var(--white);
}

.slider-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 50px;
  height: 50px;
  background-color: rgba(255,255,255,0.2);
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 10;
  color: var(--white);
  transition: background-color 0.3s ease;
  backdrop-filter: blur(5px);
}

.slider-arrow:hover {
  background-color: rgba(255,255,255,0.4);
}

.prev-arrow {
  left: 30px;
}

.next-arrow {
  right: 30px;
}

.stat-item h3 {
  font-size: 34px;
  font-weight: 600;
  margin-bottom: 0;
  line-height: 1;
  font-space: -1;
}

.stat-item p {
  font-size: 16px;
  font-weight: 400;
  max-width: 180px;
  line-height:18px;
  margin: 10px auto 0;
  opacity: 0.9;
  hyphens: none;
}

.border-radius-10px { border-radius:10px; }

section.big-section { padding-top:80px; }
section.extra-big-section { padding:100px 0; }
.swiper-horizontal-3d.swiper-container-3d .swiper-slide-shadow-left, .swiper-horizontal-3d.swiper-container-3d .swiper-slide-shadow-right { background-image: none; }
.swiper-horizontal-3d .swiper-slide img { opacity: 0; }
.swiper-horizontal-3d .swiper-slide-active img { opacity: 1; }

.swiper-horizontal-3d .swiper-slide.swiper-slide-active { opacity: 1; filter: grayscale(0); box-shadow: 0 0 60px rgba(0,0,0,.17) }
.swiper-horizontal-3d.swiper-container { width: 100%; padding-bottom: 60px; }
.swiper-horizontal-3d .swiper-slide.swiper-slide-active .slider-image:hover .preview-icon { opacity: 1; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; z-index: 1; }

/* Videos Section */
.videos {
  margin-top: 0px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0px;
}

.video-card{
  position: relative;
  border-radius: 0;
  overflow: hidden;
  height: 600px;
  cursor: pointer;
}

.video-card-vertical{
  position: relative;
  border-radius: 0;
  overflow: hidden;
  display: inline-block;  
  /*height: 600px;*/
  cursor: pointer;
}

.video-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 0.5s ease;
}

.video-card-vertical img {
  width: 100%;      
  height: auto;     
  display: block;  
  object-fit: cover;
  object-position: center top;
  transition: transform 0.5s ease;
}

.video-card-small {
  position: relative;
  border-radius: 0;
  overflow: hidden;
  height: 300px;
  cursor: pointer;
}

.video-card-small img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 0.5s ease;
 display:block;
}


.video-card:hover img {
  transform: scale(1.05);
}
.video-card-small:hover img {
  transform: scale(1.05);
}

.video-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 30px;
  background: linear-gradient(transparent, rgba(0,0,0,0.8));
  color: var(--white);
  display: flex;
  align-items: center;
  gap: 15px;
}

.play-btn {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background-color: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(5px);
  border: 2px solid var(--white);
}

.play-btn svg {
  fill: var(--white);
  width: 24px;
  height: 24px;
}

/* Projects Section */
.projects {
  margin-top: 60px;
  padding-bottom: 80px;
}

.projects h2, .ducsa-cifras h2, .palabras-autoridades h2 {
  text-align: center;
  font-size: 32px;
  color: var(--text-light);
  margin-top: 40px;
  margin-bottom: 40px;
  text-transform: uppercase;
  letter-spacing: -1px;
  font-weight: 700;
  line-height: 25px;
    clear:both;
}

.projects-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.project-card {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  height: 300px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.08);
  transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.4s ease;
}

.project-card:hover {
  transform: translateY(-12px);
  box-shadow: 0 20px 40px rgba(0,0,0,0.15);
}

.project-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}

.project-card:hover .project-img {
  transform: scale(1.1);
}

.project-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 25px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: linear-gradient(rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.1) 40%, rgba(0,0,0,0.3) 100%);
}

.project-overlay h4 {
  color: var(--white);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.2;
  text-shadow: 1px 1px 10px rgba(0,0,0,0.5);
  max-width: 90%;
}

.ver-mas {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--white);
  text-decoration: none;
  border: 1px solid var(--white);
  padding: 8px 18px;
  border-radius: 25px;
  width: fit-content;
  transition: all 0.3s ease;
  pointer-events: none;
}

.project-card-link:hover .ver-mas {
  background-color: rgba(255, 255, 255, 0.8);
  color: var(--primary-blue);
}

.ver-mas .arrow {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Project card link */
.project-card-link {
  display: block;
  text-decoration: none;
  color: inherit;
  min-width: 0; /* evita que el contenido fuerce el ancho mínimo del grid */
}

.project-card {
  min-width: 0;
}

.projects-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}


div.project-card.vacio{opacity:0; cursor:default}


/* Lightbox overlay */
.video-lightbox-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.92);
  z-index: 9999;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.lightbox-close-btn {
  position: absolute;
  top: 20px;
  right: 28px;
  background: none;
  border: none;
  color: #fff;
  font-size: 2.5rem;
  cursor: pointer;
  line-height: 1;
}

.lightbox-title-text {
  color: #fff;
  font-size: 1.1rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 16px;
  font-family: inherit;
}

.lightbox-video-player {
  max-width: 90vw;
  max-height: 80vh;
  outline: none;
  border-radius: 4px;
  background: #000;
}

/* --- msj cards con panel desplegable --- */
.msjs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0px;
  margin-top: 0;
}

.msj-card {
  position: relative;
  border-radius: 0px;
  overflow: hidden; /* se quitará dinámicamente al abrir */
  height: 600px;
  cursor: pointer;
}

.msj-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 0.5s;
  display: block;
}

.msj-card:hover img {
  transform: scale(1.05);
}

.msj-overlay {
  position: absolute;
  bottom: 0px;
  left: 0px;
  right: 0px;
  padding: 30px;
  background: linear-gradient(transparent, rgba(0,0,0,0.8));
  color: var(--white);
  display: flex;
  align-items: center;
  gap: 15px;
}

.msj-overlay .play-btn {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background-color: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(5px);
  border: 2px solid var(--white);
  flex-shrink: 0;
  transition: background 0.3s;
}

.msj-card.open .msj-overlay .play-btn {
  background-color: rgba(255,255,255,0.2);
}

.msj-overlay .play-btn svg {
  fill: var(--white);
  width: 24px;
  height: 24px;
  transition: transform 0.3s;
}

/* Panel de texto desplegable */
.msjs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0px;
  margin-top: 0;
}

.msj-card-wrapper {
  overflow: visible;
}

.msj-card {
  position: relative;
  border-radius: 0px;
  overflow: hidden;
  height: 600px;
  cursor: pointer;
}

.msj-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 0.5s;
  display: block;
}

.msj-card:hover img {
  transform: scale(1.05);
}

.msj-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 30px;
  background: linear-gradient(transparent, rgba(0,0,0,0.8));
  color: var(--white);
  display: flex;
  align-items: center;
  gap: 15px;
}



.msj-card-wrapper.open .msj-overlay {
  background-color: rgba(255,255,255,0.2);
}


/* Botón flecha mensaje */
.msj-overlay .ver-mas {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--white);
  border: 1px solid var(--white);
  padding: 8px 18px;
  border-radius: 25px;
  transition: 0.3s;
  pointer-events: none;
}

.msj-overlay .ver-mas .arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.4s;
}

/* Cuando está abierto: rotar flecha hacia arriba */
.msj-card-wrapper.open .msj-overlay .ver-mas .arrow {
  transform: rotate(180deg);
}

/* Panel desplegable */
.msj-panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.5s ease, padding 0.4s ease;
  background: var(--primary-blue, #0a2463);
  color: var(--white, #fff);
  padding: 0 40px;
}

.msj-panel > * {
  overflow: hidden;
}

.msj-card-wrapper.open .msj-panel {
  grid-template-rows: 1fr;
  padding: 40px;
}

.msj-panel h3 {
  font-size: 1.4rem;
    line-height:1.4rem;
  margin-bottom: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
    padding-bottom: 1.6rem;
}

.msj-panel p {
  font-size: 1rem;
  line-height: 1.7;
  opacity: 0.9;
}
/*-------------------------*/


.feature-box * { transition-duration: 0.4s; -webkit-transition-duration: 0.4s; -moz-transition-duration: 0.4s; -ms-transition-duration: 0.4s; }
.feature-box { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; text-align: center; z-index: 1; position: relative; transition-duration: 0.4s; -webkit-transition-duration: 0.4s; -moz-transition-duration: 0.4s; -ms-transition-duration: 0.4s; }
.feature-box .feature-box-content { max-width: 100%; padding: 20px; }
.feature-box-content { overflow: hidden; flex: 1; }
.feature-box-content { overflow: hidden; -webkit-box-flex: 1; flex: 1; }
.feature-box.text-start { -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; }
.feature-box.text-end { -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; }
.feature-box.feature-box-shadow:hover, .feature-box .feature-box-shadow:hover  { border-color: transparent !important; -moz-transform: translate3d(0, -3px, 0); -o-transform: translate3d(0, -3px, 0); -ms-transform: translate3d(0, -3px, 0); -webkit-transform: translate3d(0, -3px, 0); transform: translate3d(0, -3px, 0); }
.feature-box.feature-box-shadow { box-shadow: 0 0 20px rgba(0,0,0,.05); opacity: 0; }
.feature-box.feature-box-shadow:hover { opacity: 1; }
.feature-box p{text-align:left; line-height:20px;}


div#evolucion.swiper-wrapper .swiper-slide{padding:50px;}

div#evolucion.swiper-wrapper .swiper-slide {
    height: 650px;
}
div#evolucion.swiper-wrapper .swiper-slide {
    transition: filter 0.3s ease;
    filter: blur(3px);
}
div#evolucion.swiper-wrapper .swiper-slide.swiper-slide-active {
    filter: blur(0px);
}

/* Footer */
footer {
  text-align: center;
  padding: 40px 0;
  color: var(--text-light);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 1px;
  background-color: var(--white);
  border-top: 1px solid rgba(0,0,0,0.05);
}

.footer-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}

.footer-instagram {
  color: var(--text-dark);
  transition: opacity 0.3s ease;
}

.footer-instagram:hover {
  opacity: 0.7;
}


/* =========================================
   OVERRIDES DUCSA - imágenes y ajustes reales
   ========================================= */



/* Stats sin border-radius */




/* Projects */
.projects { margin-top: 80px; padding: 0 20px 80px; }
.projects h2 { margin-bottom: 50px; font-size: 26px; }
.project-card { height: 280px; }


/*---------- GALLERY-SLIDER ----------*/

.gallery-slider-wrapper {
        position: relative;
        padding: 0 50px;
    }
    .gallery-slider-wrapper .swiper-slide {
        aspect-ratio: 1 / 1;
        overflow: hidden;
        border-radius: 4px;
    }
    .gallery-slider-wrapper .swiper-slide img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        cursor: pointer;
        transition: opacity 0.3s ease;
    }
    .gallery-slider-wrapper .swiper-slide img:hover {
        opacity: 0.8;
    }
    .gallery-slider-wrapper .swiper-button-prev,
    .gallery-slider-wrapper .swiper-button-next {
        color: #232323;
        width: 40px;
        height: 40px;
    }
    .gallery-slider-wrapper .swiper-button-prev::after,
    .gallery-slider-wrapper .swiper-button-next::after {
        font-size: 18px;
        display: block !important;
    }
    .gallery-slider-wrapper .swiper-button-prev { left: 0; }
    .gallery-slider-wrapper .swiper-button-next { right: 0; }
    @media (max-width: 767px) {
        .gallery-slider-wrapper { padding: 0 35px; }
        .gallery-slider-wrapper .swiper-button-prev::after,
        .gallery-slider-wrapper .swiper-button-next::after {
            font-size: 14px;
        }
    }
