@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+Bengali:wght@100;200;300;400;500;600;700;800;900&display=swap");
/*
|--------------------------------------------------------------------------
| VARIABLES CSS
|--------------------------------------------------------------------------
| Definición de variables de colores y propiedades reutilizables
*/
:root {
    /* Colores principales */
    --primary-dark-green: #234b4a; /* Verde oscuro primario */
    --medium-green: #234b4a; /* Verde medio (considerar unificar con primary-dark-green) */
    --light-green-accent: #5aa392; /* Verde claro de acento */
    --dark-teal-hero: #234b4a; /* Verde azulado oscuro para hero (considerar unificar) */
    --darker-teal-heading: #004d40; /* Verde azulado más oscuro para encabezados */
    --teal-accent: #008080; /* Verde azulado de acento */

    /* Colores neutros */
    --primary-beige: #eed9b2; /* Beige/Arena primario */
    --primary-secong: #ffffff; /* Beige/Arena primario */
    --text-dark: #333; /* Color de texto oscuro */
    --text-medium: #666; /* Color de texto medio */
    --text-light: #fff; /* Color de texto claro */
    --background-light: #f8f8f8; /* Fondo claro sutil */

    /* Efectos */
    --box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Sombra de caja estándar */
    --box-tex: rgba(244, 238, 225, 1); /* Color de la caja de texto */
    --crema: #f5f5f0;
    --texto: "Noto Sans Bengali", sans-serif;

    /*Dimensiones de PT en px pt*1.33 */
    --pt0: 0px;
    --pt1: 1.33px;
    --pt2: 2.66px;
    --pt3: 3.99px;
    --pt4: 5.32px;
    --pt5: 6.65px;
    --pt6: 7.98px;
    --pt7: 9.31px;
    --pt8: 10.64px;
    --pt9: 11.97px;
    --pt10: 13.3px;
    --pt11: 14.63px;
    --pt12: 15.96px;
    --pt13: 17.29px;
    --pt14: 18.62px;
    --pt15: 19.95px;
    --pt16: 21.28px;
    --pt17: 22.61px;
    --pt18: 23.94px;
    --pt19: 25.27px;
    --pt20: 26.6px;
    --pt21: 27.93px;
    --pt22: 29.26px;
    --pt23: 30.59px;
    --pt24: 31.92px;
    --pt25: 33.25px;
    --pt26: 34.58px;
    --pt27: 35.91px;
    --pt28: 37.24px;
    --pt29: 38.57px;
    --pt30: 39.9px;
    --pt31: 41.23px;
    --pt32: 42.56px;
    --pt33: 43.89px;
    --pt34: 45.22px;
    --pt35: 46.55px;
    --pt36: 47.88px;
    --pt37: 49.21px;
    --pt38: 50.54px;
    --pt39: 51.87px;
    --pt40: 53.2px;
    --pt41: 54.53px;
    --pt42: 55.86px;
    --pt43: 57.19px;
    --pt44: 58.52px;
    --pt45: 59.85px;
    --pt46: 61.18px;
    --pt47: 62.51px;
    --pt48: 63.84px;
    --pt49: 65.17px;
    --pt50: 66.5px;
    --pt51: 67.83px;
    --pt52: 69.16px;
    --pt53: 70.49px;
    --pt54: 71.82px;
    --pt55: 73.15px;
    --pt56: 74.48px;
    --pt57: 75.81px;
    --pt58: 77.14px;
    --pt59: 78.47px;
    --pt60: 79.8px;
    --pt61: 81.13px;
    --pt62: 82.46px;
    --pt63: 83.79px;
    --pt64: 85.12px;
    --pt65: 86.45px;
    --pt66: 87.78px;
    --pt67: 89.11px;
    --pt68: 90.44px;
    --pt69: 91.77px;
    --pt70: 93.1px;
    --pt71: 94.43px;
    --pt72: 95.76px;
    --pt73: 97.09px;
    --pt74: 98.42px;
    --pt75: 99.75px;
    --pt76: 101, 08px;
    --pt77: 102.41px;
    --pt78: 103.74px;
    --pt79: 105.07px;
    --pt80: 106.4px;
    --pt81: 107.73px;
    --pt82: 109.06px;
    --pt83: 110.39px;
    --pt84: 111.72px;
    --pt85: 113.05px;
    --pt86: 114.38px;
    --pt87: 115.71px;
    --pt88: 117.04px;
    --pt89: 118.37px;
    --pt90: 119.7px;
    --pt91: 121.03px;
    --pt92: 122.36px;
    --pt93: 123.69px;
    --pt94: 125.02px;
    --pt95: 126.35px;
    --pt96: 127.68px;
    --pt97: 129.01px;
    --pt98: 130.34px;
    --pt99: 131.67px;
    --pt100: 133px;

    --logos: 70px;
    --logoss: 30px;
    --logost: 99.75px;

    --t001: 53.2px;
    --t002: 33.25px;
    --t003: 34.58px;
    --t004: 31.92px;
    --t005: 15.96px;

    --t006: 17.29px;
    --t007: 18.62px;
    --t008: 19.95px;
    --t009: 21.28px;
    --t010: 22.61px;
    --t011: 23.94px;
    --t012: 25.27px;
    --t013: 26.6px;
    --t014: 27.93px;
    --t015: 29.26px;
    --t016: 30.59px;
    --t017: 31.92px;
    --t018: 33.25px;
    --t019: 34.58px;
    --t020: 35.91px;
    --t021: 37.24px;
    --t022: 38.57px;
    --t023: 39.9px;
    --t024: 41.23px;
    --t025: 42.56px;

}
/* Fondo oscuro del visor */
.lightbox-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.9);
  display: flex;
  justify-content: center;
  align-items: center;

  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.lightbox-overlay.active {
  visibility: visible;
  opacity: 1;
}

.lightbox-image-large {
  max-width: 100%;
  max-height: 100%;
  border-radius: 10px;
  box-shadow: 0 0 30px rgba(0,0,0,0.8);
}

/* Botones navegación y cerrar */
.lightbox-close,
.lightbox-prev,
.lightbox-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255,255,255,0.2);
  color: white;
  font-size: 2rem;
  border: none;
  cursor: pointer;
  padding: 10px 20px;
  border-radius: 50px;
  z-index: 2100;
  transition: background 0.3s;
}

.lightbox-close {
  top: 20px;
  right: 30px;
  transform: none;
  font-size: 2.5rem;
}

.lightbox-prev {
  left: 20px;
}

.lightbox-next {
  right: 20px;
}

.lightbox-close:hover,
.lightbox-prev:hover,
.lightbox-next:hover {
  background: rgba(255,255,255,0.4);
}
/*
|--------------------------------------------------------------------------
| ESTILOS BASE Y RESET
|--------------------------------------------------------------------------
| Configuración básica del documento y elementos base
*/

/* LAYOUT FLEX PARA FOOTER STICKY */
body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    margin: 0;
    padding-top: 70px; /* Espacio para el header fijo */
    box-sizing: border-box;
    font-family: var(--texto);
    /*line-height: 1.6;*/
    color: var(--text-dark);
    /*font-size: 16px;*/
}

/* Contenedor principal crece para empujar el footer abajo */
.container {
    flex-grow: 1;
    max-width: 1200px;
    width: 100%;
    /*margin: 0 auto;
    padding: 0 15px;*/
}

/* Estilos de encabezados */
h1,
h2,
h3 {
    margin-top: 0;
    /* margin-bottom: 1.2em;*/
    color: var(--text-dark);
    font-family: var(--texto);
    /*  line-height: 1.2;*/
}
/*
h1 { font-size: 55pt; }
h2 { font-size: 25pt; }
h3 { font-size: 18pt; }
*/
/* Reset de listas y enlaces */
ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

a {
    text-decoration: none;
    color: inherit;
}

/*
|--------------------------------------------------------------------------
| HEADER (CABECERA)
|--------------------------------------------------------------------------
| Estilos para la barra de navegación principal
*/
.main-header {
    background-color: #234b4a;
    padding: 15px 40px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
    /* Propiedades para header fijo */
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
}

/* Contenedor del logo */
.logo-container {
    display: flex;
    align-items: center;
    margin-right: 50px; /* ¡Más espacio a la derecha del logo! Ajusta este valor */
    flex-shrink: 0; /* Evita que el logo se encoja en pantallas pequeñas */
}

.logo {
    height: 100px;
}

/* Navegación principal */
.main-nav {
    flex-grow: 1; /* Permite que la navegación ocupe el espacio restante */
    display: flex; /* Para que la ul dentro de nav también sea flex */
    justify-content: flex-end; /* Alinea los ítems de la ul a la derecha */
}

.main-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
}

.main-nav ul li {
    margin-left: 20px;
}

.main-nav ul li:first-child {
    margin-left: 0;
}

.main-nav ul li a {
    text-decoration: none;
    color: #eed9b2;
    padding: 8px 12px;
    transition: color 0.3s ease, background-color 0.3s ease;
    border-radius: 5px;
    white-space: nowrap;
}

.main-nav ul li a:hover {
    color: #44877a;
}

/* Enlace de navegación activo */
.main-nav ul li a.active-nav-link {
    color: #fff;
    background-color: #44877a;
}

.main-nav ul li a.active-nav-link:hover {
    background-color: #376f64;
    color: #fff;
}

/* Botón de contacto */
.btn-contact {
    background-color: #44877a;
    color: #fff !important;
    padding: 10px 20px;
    border-radius: 5px;
    text-transform: uppercase;
    transition: background-color 0.3s ease;
    white-space: nowrap;
}

.btn-contact:hover {
    background-color: #234b4a;
}

.btn-contact.active-btn-contact {
    background-color: #234b4a;
    color: #fff !important;
}

.btn-contact.active-btn-contact:hover {
    background-color: #17302f;
}

/* Botón hamburguesa para móvil */
.menu-toggle {
    display: none;
    color: #eed9b2;
    cursor: pointer;
    z-index: 1001;
    margin-left: 20px;
}

.menu-toggle.active {
    color: #44877a;
    transform: rotate(90deg);
    transition: transform 0.3s ease;
}

/*
|--------------------------------------------------------------------------
| SECCIÓN HERO
|--------------------------------------------------------------------------
| Estilos para la sección principal de bienvenida
*/

.verde-section {
    background-color: var(--primary-beige);
    background-image: url();
    background-image: flex;
    background-size: cover; /* La imagen cubre todo el contenedor */
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    padding: 80px 20px;
    text-align: center;
    position: relative;
    overflow: hidden;
    min-height: 400px; /* Altura mínima para que se vea bien */
    display: contents center;
    /*align-items: center;*/
}

.hero {
    position: relative;
    background-color: var(--dark-teal-hero);
    color: var(--text-light);
    text-align: center;
    /*padding: -10px 15px 0;*/
    overflow: hidden;
}

.hero h1 {
    /*font-size: 2.8em;
    margin-bottom: 1rem;*/
    color: var(--text-light);
}

.hero h2 {
    /*font-size: 2.2em;
    margin-bottom: 1rem;*/
    color: var(--text-light);
}

.hero p {
    margin-bottom: 5rem;
    color: #cccccc;
}

/* Botones primarios */
.btn-primary {
    background-color: var(--light-green-accent);
    color: var(--text-light);
    padding: 0.8em 1.6em;
    border-radius: 30px;
    text-decoration: none;
    font-weight: bold;
    transition: background-color 0.3s ease;
    display: inline-block;
    font-size: 1em;
}

.btn-primary:hover {
    background-color: #48897b;
}

/*
|--------------------------------------------------------------------------
| EFECTO DE ONDA
|--------------------------------------------------------------------------
| Estilos para la animación de onda decorativa
*/
.wave {
    position: relative;
    width: 100%;
    height: 100px;
    overflow: hidden;
    line-height: 0;
}

.wave svg {
    position: relative;
    display: block;
    width: 100%;
    height: 100px;
}

/* Animación de onda */
#wave {
    display: block;
    width: 100%;
    height: auto;
    transform: rotate(0deg);
    transition: 0.5s ease-in-out;
    animation: wave-animation 3s ease-in-out infinite alternate;
}

@keyframes wave-animation {
    0% {
        transform: translateY(0);
    }
    100% {
        transform: translateY(10px);
    }
}

.wave-path {
    opacity: 1;
}

/* Texto en la curva de onda */
#text-on-wave {
    font-size: 50px;
    font-weight: bold;
    fill: white;
    text-anchor: middle;
}

/* Efecto interactivo de onda */
#wave:hover {
    transform: rotate(0deg) translateY(5px);
    cursor: pointer;
}

/* Contenido después de la onda */
.content {
    padding: 20px;
    text-align: center;
    color: #333;
    margin-top: -400px;
    position: relative;
    z-index: 1;
}

/*
|--------------------------------------------------------------------------
| SECCIONES Y CUADRÍCULAS
|--------------------------------------------------------------------------
| Estilos para contenedores de sección y diseños de cuadrícula
*/

/* Contenedor general de secciones */
.section-container {
    padding: 4rem 15px;
    text-align: center;
}

/* Encabezados de sección */
.section-heading {
    font-size: 2.2em;
    color: var(--text-dark);
    margin-bottom: 2rem;
    position: relative;
    padding-bottom: 0.8rem;
}

/* Línea decorativa bajo encabezados */
.section-heading::after {
    content: "";
    display: block;
    width: 60px;
    height: 3px;
    background-color: var(--primary-beige);
    margin: 0.6rem auto 0;
}

/* Encabezado específico "Qué Hacemos" */
.what-we-do-heading {
    background-color: var(--darker-teal-heading);
    color: var(--text-light);
    padding: 2rem 15px;
    margin-bottom: 0;
    border-radius: 0 0 50% 50% / 0 0 10% 10%;
    font-size: 2.5em;
    line-height: 1.2;
}

/* Cuadrícula de tres columnas */
.three-column-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.5rem;
    max-width: 1800px;
    margin: 0 auto;
}

.grid-item {
    flex: 1 1 30px;
    max-width: 100%;
    background-color: var(--text-light);
    padding: 1.8rem;
    border-radius: 0px;
    /*box-shadow: var(--box-shadow);*/
    text-align: center;
    min-width: 0%;
}

/* Iconos en elementos de cuadrícula */
.grid-item i {
    font-size: 3em;
    color: var(--teal-accent);
    margin-bottom: 1.2rem;
}

/* Títulos en elementos de cuadrícula */
.grid-item h3 {
    font-size: 25pt;
    color: var(--text-dark);
    margin-bottom: 1rem;
}

.grid-item h4 {
    font-size: 17pt;
    color: var(--text-dark);
    margin-bottom: 0rem;
}

/* Texto y listas en elementos de cuadrícula */
.grid-item p,
.grid-item ul {
    font-size: 0.95em;
    color: var(--text-medium);
    line-height: 1.6;
    text-align: center;
    list-style: none;
    padding-left: 0;
    margin-top: 0;
}

.grid-item ul li {
    margin-bottom: 0.5rem;
    display: flex;
    align-items: flex-start;
}

/* Viñetas personalizadas */
.grid-item ul li::before {
    content: "•";
    color: var(--teal-accent);
    font-weight: bold;
    display: inline-block;
    width: 1em;
    margin-right: 0.5em;
    flex-shrink: 0;
}

/*
|--------------------------------------------------------------------------
| SECCIÓN DE CONTACTO
|--------------------------------------------------------------------------
| Estilos para la sección de información de contacto
*/
.contact-section {
    /*background-color: #EED9B2;
    height: 100%;
    background-size: cover;
    background-position: center;
    padding: 80px 20px;
    text-align: center;
    position: relative;
    overflow: hidden;*/

    /*background-color: rgba(244, 238, 225, 1);*/
    background-image: url("/img/barra comunicate.png");
    background-image: flex;
    background-size: cover; /* La imagen cubre todo el contenedor */
    background-position: center;
    background-repeat: no-repeat;
    /*padding: 0px 0px;*/
    text-align: center;
    position: relative;
    overflow: hidden;
    min-height: 250px; /* Altura mínima para que se vea bien */
    min-width: auto;
    display: contents center;
}

.contact-content {
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.contact-title {
    font-family: var(--texto);
    /*font-size: 2.8em;*/
    color: #44877a;
    margin-bottom: 10px;
}

.contact-subtitle {
    font-family: var(--texto);
    /*font-size: 1.3em;*/
    color: #234b4a;
    margin-bottom: 40px;
}

.contact-buttons {
    display: flex;
    justify-content: center;
    gap: 40px;
    flex-wrap: wrap;
    flex-grow: 1; /* Permite que la navegación ocupe el espacio restante */
    flex-shrink: 1; /* Evita que la navegación se encoja en pantallas pequeñas */

}

/* Botones de contacto */
.btn {
    display: inline-block;
    padding: 5px 30px;
    border-radius: 30px;
    text-decoration: none;
    /*font-family: var(--texto);
    font-size: 1.1em;
    font-weight: bold;*/
    transition: background-color 0.3s ease, transform 0.3s ease;
    color: #ffffff;
    min-width: 170px;
}

/* Colores específicos para botones de contacto */
.whatsapp-btn {
    background-color: #25d366;
}
.instagram-btn {
    background-color: #44877a;
}
.email-btn {
    background-color: #234b4a;
}

/* Efectos hover para botones de contacto */
.btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

.whatsapp-btn:hover {
    background-color: #1da851;
}
.instagram-btn:hover {
    background-color: #376f64;
}
.email-btn:hover {
    background-color: #17302f;
}

/*
|--------------------------------------------------------------------------
| BOTÓN FLOTANTE DE WHATSAPP
|--------------------------------------------------------------------------
| Botón fijo en la esquina inferior derecha
*/
.whatsapp-float {
    position: fixed;
    bottom: 20px;
    right: 20px;
    width: 60px;
    height: 60px;
    background-color: #075e54;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    z-index: 1000;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.whatsapp-float img {
    width: 35px;
    height: 35px;
    filter: brightness(0) invert(1);
}

.whatsapp-float:hover {
    transform: scale(1.05);
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
}

/*
|--------------------------------------------------------------------------
| FOOTER (PIE DE PÁGINA)
|--------------------------------------------------------------------------
| Estilos para el pie de página
*/
.footer {
    background-color: #234b4a;
    color: var(--text-light);
    text-align: center;
    padding: 1.2rem 0;
    font-size: 0.9em;
    /* Sin posicion absoluta o sticky para mantener footer abajo */
}

.footer-nav ul {
    list-style: none;
    padding: 0;
    margin: 0 0 20px 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 15px 30px;
}

.footer-nav ul li a {
    text-decoration: none;
    color: #eed9b2;
    font-size: 1em;
    padding: 5px 10px;
    transition: color 0.3s ease, background-color 0.3s ease;
    border-radius: 5px;
}

/* Enlace activo del footer */
.footer-nav ul li a.active-footer-link {
    color: #fff;
    background-color: #44877a;
    font-weight: bold;
}

.footer-nav ul li a.active-footer-link:hover {
    background-color: #376f64;
    color: #fff;
}

.footer-nav ul li a:hover {
    color: #44877a;
}

/* Texto de copyright */
.footer .copyright {
    font-size: 0.9em;
    margin: 5px 0;
    color: rgba(238, 217, 178, 0.7);
}

/*
|--------------------------------------------------------------------------
| ESTILOS ESPECÍFICOS - DISEÑO GRÁFICO
|--------------------------------------------------------------------------
| Estilos específicos para la página de Diseño Gráfico
*/
.dgrafico-container {
    display: flex;
    padding: 40px 20px;
    min-width: 30%;
    max-width: 1200px;
    min-height: 60%;
    max-height: 60%;
    margin: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.dgrafico-sidebar {
    flex: 0 0 300px;
    padding-right: 80px;
    box-sizing: border-box;
    padding: 0px;
}

.dgrafico-sidebar h2 {
    color: #333;
    margin-bottom: 30px;
    border-bottom: 2px solid #5c8d89;
    padding-bottom: 10px;
    display: inline-block;
}

.dgrafico-sidebar ul {
    list-style: none;
    padding: 0;
}

.dgrafico-sidebar ul li {
    margin-bottom: 15px;
    color: #555;
}

.dgrafico-main-content {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    align-items: right;
    padding: 3.5%;
}

.dgrafico-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0px;
    width: 100%;
}

.dgrafico-box {
  position: relative;
  width: 100%;
  height: 30%;
  padding-top: 100%; /* Caja cuadrada */
  border: 1px solid #ccc;
  border-radius: 20px;
  box-sizing: border-box;
  background-color: #f9f9f9;
  overflow: hidden; /* Oculta el desborde de la imagen */
}

.dgrafico-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 20px;
}

.dgrafico-box .dgrafico-img {
  transition: transform 0.3s ease;
}

.dgrafico-box:hover .dgrafico-img {
  transform: scale(1.05);
}

.dgrafico-button-container {
    margin-top: 40px;
    text-align: center;
    width: 100%;
}

.dgrafico-button {
    background-color: #234b4a;
    color: white;
    padding: 15px 30px;
    text-decoration: none;
    border-radius: 25px;
    font-size: 1.1em;
    font-weight: bold;
    display: inline-block;
    transition: background-color 0.3s ease;
}

.dgrafico-button:hover {
    background-color: #234b4a;
}

/*
|--------------------------------------------------------------------------
| MEDIA QUERIES - TABLETS Y TELÉFONOS GRANDES
|--------------------------------------------------------------------------
| Estilos responsivos para pantallas medianas (hasta 992px)
*/
@media (max-width: 992px) {
    .container {
        width: 95%;
    }

    /* Ajustes del header para móvil */
    .main-header {
        justify-content: space-between;
        box-sizing: border-box;
    }

    /* Ocultar navegación normal y mostrar hamburguesa */
    .main-nav {
        display: none;
        flex-direction: column;
        position: absolute;
        top: 100px;
        left: 0;
        width: 100%;
        background-color: #234b4a;
        box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
        z-index: 1000;
        text-align: center;
        padding: 20px 0;
    }

    .main-nav.active {
        display: flex;
    }

    .main-nav ul {
        flex-direction: column;
        width: 100%;
        white-space: nowrap;
    }

    .main-nav ul li {
        margin: 15px 0;
        width: 100%;
    }

    .main-nav ul li a {
        display: block;
        padding: 10px 0;
        color: #eed9b2;
    }

    .menu-toggle {
        display: block;
    }

    /* Enlace activo en menú móvil */
    .main-nav ul li a.active-nav-link {
        background-color: rgba(68, 135, 122, 0.2);
        color: #eed9b2;
        font-weight: bold;
    }

    .btn-contact.active-btn-contact {
        background-color: #234b4a;
        color: #fff !important;
    }

    .main-nav ul li a:hover {
        background-color: rgba(68, 135, 122, 0.1);
        color: #eed9b2;
    }

    /* Ajustes de la sección hero */
    .hero {
        padding-top: 60px;
    }

    .hero h1 {
        font-size: 2.2em;
    }

    .hero p {
        font-size: 1em;
    }

    /* Cuadrícula cambia a 2 columnas */
    .grid-item {
        flex: 1 1 45%;
    }

    /* Encabezados de sección */
    .section-heading {
        font-size: 1.8em;
    }

    .what-we-do-heading {
        font-size: 2em;
    }

    /* Botón flotante de WhatsApp */
    .whatsapp-float {
        width: 50px;
        height: 50px;
        bottom: 15px;
        right: 15px;
    }

    .whatsapp-float img {
        width: 30px;
        height: 30px;
    }

    /* Sección de contacto */
    .contact-title {
        font-size: 2.2em;
    }

    .contact-subtitle {
        font-size: 1.1em;
    }
}

/*
|--------------------------------------------------------------------------
| MEDIA QUERIES - TELÉFONOS PEQUEÑOS
|--------------------------------------------------------------------------
| Estilos responsivos para pantallas pequeñas (hasta 768px)
*/
@media (max-width: 768px) {
    body {
        font-size: 15px;
    }

    .container {
        padding: 0 10px;
    }

    /* Logo más pequeño */
    .logo {
        height: 60px;
    }

    /* Navegación apilada verticalmente */
    .main-nav ul {
        flex-direction: column;
        align-items: center;
    }

    .main-nav ul li {
        margin: 0.5rem 0;
    }

    /* Botón de contacto en móvil */
    .btn-contact {
        margin-top: 1rem;
        width: 80%;
    }

    /* Sección hero */
    .hero {
        padding-top: 40px;
    }

    .hero h1 {
        font-size: 1.8em;
    }

    .hero p {
        font-size: 0.95em;
    }

    /* Botones primarios */
    .btn-primary {
        padding: 0.7em 1.4em;
        font-size: 0.9em;
    }

    /* Cuadrícula a una columna */
    .grid-item {
        flex: 1 1 90%;
        max-width: 1600px;
        min-width: unset;
    }

    /* Padding de secciones */
    .section-container {
        padding: 2.5rem 10px;
    }

    /* Encabezados de sección */
    .section-heading {
        font-size: 1.6em;
        margin-bottom: 1.5rem;
    }

    .what-we-do-heading {
        font-size: 1.8em;
        padding: 1.5rem 10px;
    }

    /* Iconos y texto en cuadrícula */
    .grid-item i {
        font-size: 2.5em;
    }

    .grid-item h3 {
        font-size: 25pt;
    }

    .grid-item p,
    .grid-item ul {
        font-size: 0.9em;
    }

    /* Sección de contacto */
    .contact-title {
        font-size: 2em;
    }

    .contact-subtitle {
        font-size: 1em;
    }

    .contact-buttons {
        flex-direction: column;
        gap: 15px;
    }

    .btn {
        width: 80%;
        max-width: 250px;
        margin: 0 auto;
    }

    /* Footer */
    .footer-nav ul {
        flex-direction: column;
        gap: 10px;
    }

    /* Diseño Gráfico - Responsive */
    .dgrafico-container {
        flex-direction: column;
        padding: 20px 15px;
    }

    .dgrafico-sidebar {
        width: 100%;
        padding-right: 0;
        margin-bottom: 30px;
        text-align: center;
    }

    .dgrafico-sidebar h2 {
        display: block;
        margin-left: auto;
        margin-right: auto;
    }

    .dgrafico-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/*
|--------------------------------------------------------------------------
| MEDIA QUERIES - DISPOSITIVOS EXTRA PEQUEÑOS
|--------------------------------------------------------------------------
| Estilos para pantallas muy pequeñas (hasta 480px)
*/
@media (max-width: 480px) {
    body {
        font-size: 14px;
    }

    .hero h1 {
        font-size: 1.6em;
    }

    .hero p {
        font-size: 0.9em;
    }

    .btn-primary {
        padding: 0.6em 1.2em;
    }

    .section-heading {
        font-size: 1.4em;
    }

    .what-we-do-heading {
        font-size: 1.6em;
        padding: 1.5rem 10px;
    }

    .grid-item {
        padding: 1.5rem;
    }

    /* Diseño Gráfico - Una columna */
    .dgrafico-grid {
        grid-template-columns: 1fr;
    }
}

.container2 {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}

.title {
    text-align: center;
    margin-bottom: 50px;
    color: #34495e;
    font-size: 2.5rem;
    font-weight: 300;
    grid-column: 1 / -1;
}

.illustration-section {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

.design-image {
    max-width: 100%;
    height: auto;
/*    border-radius: 15px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); */
    transition: transform 0.3s ease;
}

.design-image:hover {
    transform: scale(1.05);
}

.floating-elements {
    position: absolute;
    width: 100%;
    height: 100%;
}

.code-icon {
    position: absolute;
    top: -30px;
    right: -20px;
    width: 60px;
    height: 40px;
    background: #2c3e50;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #27ae60;
    font-family: monospace;
    font-size: 12px;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}

.code-icon::before {
    content: "</>";
}

.palette-icon {
    position: absolute;
    bottom: -20px;
    left: -30px;
    width: 50px;
    height: 40px;
    background: #e74c3c;
    border-radius: 20px 20px 5px 5px;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}

.palette-icon::after {
    content: "";
    position: absolute;
    bottom: -10px;
    left: 20px;
    width: 15px;
    height: 15px;
    background: #8b4513;
    border-radius: 50%;
}

.flower {
    position: absolute;
    top: 20px;
    left: -50px;
    width: 40px;
    height: 40px;
    background: radial-gradient(circle, #ff6b6b, #ee5a52);
    border-radius: 50% 10% 50% 10%;
    transform: rotate(45deg);
    animation: float 3s ease-in-out infinite;
}

.cube {
    position: absolute;
    bottom: 20px;
    right: -40px;
    width: 30px;
    height: 30px;
    background: linear-gradient(45deg, #3498db, #2980b9);
    transform: rotateX(45deg) rotateY(45deg);
    animation: rotate 4s linear infinite;
}

.steps-section {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.step {
    display: flex;
    gap: 20px;
    align-items: flex-start;
    padding: 25px;
    background: white;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.step:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}

.step-number {
    width: 50px;
    height: 50px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: bold;
    font-size: 1.2rem;
    flex-shrink: 0;
}

.step-content h3 {
    color: #2c3e50;
    font-size: 1.3rem;
    margin-bottom: 10px;
    font-weight: 600;
}

.step-content p {
    color: #7f8c8d;
    line-height: 1.6;
    margin-bottom: 8px;
}

.step-content ul {
    list-style: none;
    padding-left: 0;
}

.step-content li {
    color: #7f8c8d;
    line-height: 1.6;
    margin-bottom: 5px;
    position: relative;
    padding-left: 20px;
}

.step-content li::before {
    content: "•";
    color: #667eea;
    font-weight: bold;
    position: absolute;
    left: 0;
}

@keyframes float {
    0%,
    100% {
        transform: rotate(45deg) translateY(0px);
    }
    50% {
        transform: rotate(45deg) translateY(-10px);
    }
}

@keyframes rotate {
    0% {
        transform: rotateX(45deg) rotateY(45deg) rotateZ(0deg);
    }
    100% {
        transform: rotateX(45deg) rotateY(45deg) rotateZ(360deg);
    }
}

@media (max-width: 768px) {
    .container {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .title {
        font-size: 2rem;
    }

    .design-image {
        max-width: 90%;
        height: auto;
    }

    .step {
        padding: 20px;
    }

    .step-number {
        width: 40px;
        height: 40px;
        font-size: 1rem;
    }
}

.container {
    max-width: 1600px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Header Section */
.header-section {
    color: var(--crema);
    margin-top: -10px;
    padding: 60px 0 40px;
    position: relative;
    overflow: hidden;
}

.header-section::before {
    content: "";
    position: absolute;
    top: -30px;
    right: 0;
    width: 300px;
    height: 100%;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 0 0 0 100px;
}

.header-content {
    position: relative;
    z-index: 2;
    color: var(--crema);
}

.main-title {

    color: #234b4a;
}

.subtitle {
    color: #6c757d;
    margin-bottom: 0px;
}

/* Services Section */
.services-section {
    display: flex;
    padding: 60px 20px; /* Padding horizontal para que no se pegue a los bordes */
    background: var(--crema);
}

.services-grid {
    display: grid;
    /* Ajustado para que se vean 2 columnas en escritorios grandes y se adapte.
       Un minmax de 350px es más realista para 2-3 columnas. */
    grid-template-columns: repeat(auto-fit, minmax(500px, 1fr));
    gap: 30px;
    margin-top: -60px; /* Mantienes tu margen negativo, verifica que no cause solapamiento */
    max-width: 1200px; /* Ancho máximo para centrar la cuadrícula */
    margin-left: auto;
    margin-right: auto;
}

.service-card {
    background: var(--crema);
    padding: 0px;
    border-radius: 15px;
    /*box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05); /* Sombra más suave para el estado normal */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    /*border-left: 4px solid var(--dark-green); /* Usamos la variable para el color del borde */

    /* Importante: La tarjeta en sí es un contenedor flex para apilar el header y la descripción */
    display: flex;
    flex-direction: column;
    align-items: flex-start; /* Alinea los elementos a la izquierda de la tarjeta */
    text-align: left; /* Alinea el texto general de la tarjeta a la izquierda */
}

.service-card:hover {
    transform: translateY(-5px); /* Efecto de elevación */
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1); /* Sombra más pronunciada al pasar el ratón */
}

/* Contenedor del icono y el título */
.service-header {
    display: flex; /* Habilita flexbox para el icono y el título */
    /*align-items:flex-start; /* Alinea verticalmente el icono y el título */
    gap: 10px; /* Espacio horizontal entre el icono y el título (ajusta este valor) */
    margin-bottom: 15px; /* Espacio debajo del header (icono+título) */
    width: 100%; /* Ocupa todo el ancho disponible */
}

/* Contenedor del círculo del icono y su borde */
.service-icon-wrapper {
    width: 5px; /* Tamaño del círculo exterior (ancho y alto) */
    height: 5px;
    border-radius: 50%; /* Lo hace circular */
    /*border: 2px solid #ccc; /* Borde gris claro como en tu imagen */
    display: flex;
    justify-content: center; /* Centra el icono SVG/IMG horizontalmente */
    align-items: center; /* Centra el icono SVG/IMG verticalmente */
    flex-shrink: 0; /* Evita que este contenedor se encoja */
}

/* Estilos para el icono SVG dentro del wrapper */
.service-icon-wrapper .service-icon-svg {
    width: 10px; /* Tamaño del icono SVG dentro del círculo */
    height: 10px;
    color: var(--text-color-dark); /* Color del icono (negro/gris oscuro) */
    stroke: var(--text-color-dark); /* Para iconos que usan stroke */
}

/* Estilos para la imagen del icono (si usas <img src="..."/>) */
.service-icon-wrapper .service-icon-img {
    width: 10px; /* Tamaño de la imagen del icono dentro del círculo */
    height: 10px;
    /*object-fit: contain;*/
    /* Si necesitas el icono blanco: filter: brightness(0) invert(1); */
    /* Si tus iconos son grises y quieres hacerlos más oscuros: filter: grayscale(100%) brightness(50%); */
}


/* Estilos para el texto del título */
.service-title-text {
    margin: 0; /* Elimina márgenes por defecto del h3 */
    margin-left: 20px;
    color: var(--text-color-dark); /* Color oscuro para el título */
    line-height: 1.2;
    /*flex-grow: 2; /* Permite que el título ocupe el resto del espacio */
    white-space: normal; /* Permite que el texto se ajuste si es largo */
}

/* Estilos para la descripción */
.service-description {
    color: var(--text-color-medium); /* Gris para la descripción */
    line-height: 1.6;
    margin-top: 0px;
    margin-left: 20px;
    text-align: left;
}

/* Work Process Section */
.process-section {
    padding: 80px 0;
    /*background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);*/
    background: rgb(255, 255, 255);
}

.process-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
    margin-top: 50px;
}

.section-title {
    text-align: right;
    /*color: #2c3e50;*/
    color: var(--crema);
    margin-bottom: 20px;
}

.section-subtitle {
    text-align: center;
    color: #6c757d;
    margin-bottom: 50px;
}

.illustration-section {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

.design-image {
    min-width: 90%;
    max-width: 180%;
    height: auto;
/*    border-radius: 15px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease;*/
}

.design-image:hover {
    transform: scale(1.05);
}
.steps-section {
    display: flex;
    flex-direction: column;
    gap: 0px;
}

.step {
    display: flex;
    gap: 0px;
    align-items: flex-start;
    padding: 30px;
    background: white;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.step:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}

.step-number {
    width: 50px;
    height: 50px;
    background: linear-gradient(
        135deg,
        var(--primary-dark-green) 0%,
        var(--primary-dark-green) 100%
    );
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.2rem;
    flex-shrink: 0;
}

.step-content h3 {
    /*color: #2c3e50;*/
    color: var(--primary-dark-green);
    font-size: 1.3rem;
    margin-bottom: 15px;
    font-weight: 600;
}

.step-content p {
    color: #6c757d;
    line-height: 1.6;
    margin-bottom: 15px;
}

.step-content ul {
    list-style: none;
    padding-left: 0;
}

.step-content li {
    color: #6c757d;
    line-height: 1.6;
    margin-bottom: 8px;
    position: relative;
    padding-left: 20px;
}

.step-content li::before {
    content: "•";
    color: #2c5530;
    position: absolute;
    left: 0;
}

/* CTA Section */
.cta-section {
    background: linear-gradient(135deg, var(--crema) 0%, var(--crema) 100%);
    padding: 60px 0;
    text-align: center;
}

.cta-button {
    display: inline-block;
    background: white;
    color: #2c5530;
    padding: 15px 40px;
    border-radius: 30px;
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2);
}

.cta-button:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .main-title {
        font-size: 2.2rem;
    }

    .section-title {
        font-size: 2rem;
    }

    .process-container {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .services-grid {
        display: flex;
        grid-template-columns: 1fr;
    }

    .step {
        padding: 20px;
    }

    .step-number {
        width: 40px;
        height: 40px;
        font-size: 1rem;
    }

    .header-section {
        padding: 40px 0 30px;
    }
}

.container3 {
    display: flex;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Header Section */
.header-section {
    display: flex;
    background: linear-gradient(135deg, var(--crema) 0%, var(--crema) 100%);
    /*color: white;*/
    color: var(--box-text);
    padding: 60px 0 40px;
    position: relative;
    overflow: hidden;
}

.header-section::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 300px;
    height: 100%;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 0 0 0 100px;
}

.header-content {
    display: flex;
    position: relative;
    z-index: 2;
}

.main-title {
    font-size: 3rem;
    font-weight: 700;
    margin-bottom: 20px;
    color: #2c5530;
}

/* Maintenance Plan Section */
.maintenance-section {
    padding: 60px 0;
    display: flex;
    background: var(--crema);
}

.section-title {
    text-align: center;
    color: #bbb;
    font-size: 1.8rem;
    font-weight: 300;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 50px;
}

.maintenance-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}

.logo-placeholder {
    width: 150px;
    height: 150px;
    border: 3px dashed #2c5530;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    color: #2c5530;
    text-align: center;
    transition: all 0.3s ease;
}

.logo-placeholder:hover {
    border-color: #4a7c59;
    background: rgba(44, 85, 48, 0.05);
}

.services-list {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.service-item {
    background: var(--box-text);
    padding: 25px;
    border-radius: 10px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    border-left: 4px solid #2c5530;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.service-item:hover {
    transform: translateX(5px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

.service-title {
    color: #2c3e50;
    margin-bottom: 10px;
}

.service-description {
    color: #6c757d;
    line-height: 1.6;
}

/* Personal Advisory Section */
.advisory-section {
    padding: auto;
    background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
}

.advisory-title {
    color: #2c5530;
    font-size: 1.8rem;
    font-weight: 300;
    margin-bottom: 50px;
}

.advisory-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}

.advisory-services {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.advisory-item {
    background: white;
    padding: 20px 25px;
    border-radius: 10px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
    border-left: 4px solid #2c5530;
    font-weight: 500;
    color: #2c3e50;
    transition: all 0.3s ease;
}

.advisory-item:hover {
    transform: translateX(5px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
    background: #f8f9fa;
}

.computer-placeholder {
    width: 200px;
    height: 150px;
    border: 3px dashed #2c5530;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    color: #2c5530;
    font-size: 14px;
    text-align: center;
    transition: all 0.3s ease;
}

.computer-placeholder:hover {
    border-color: #4a7c59;
    background: rgba(44, 85, 48, 0.05);
}

/* Responsive Design */
@media (max-width: 768px) {
    .main-title {
        font-size: 2.2rem;
    }

    .section-title {
        font-size: 1.5rem;
    }

    .advisory-title {
        font-size: 1.5rem;
    }

    .maintenance-container,
    .advisory-container {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .logo-placeholder {
        width: 120px;
        height: 120px;
    }

    .computer-placeholder {
        width: 160px;
        height: 120px;
    }

    .header-section {
        padding: 40px 0 30px;
    }

    .maintenance-section,
    .advisory-section {
        padding: 40px 0;
    }
}

/* Estilos para la pantalla de carga */
.loading-screen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #234b4a 0%, #234b4a 100%);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    transition: opacity 0.5s ease, visibility 0.5s ease;
}

.loading-screen.hidden {
    opacity: 0;
    visibility: hidden;
}

/* Contenedor del logo */
.logo-container {
    margin-bottom: 0px;
    animation: pulse 0s infinite;
    align-items: center;
}

.logo-placeholder {
    width: 120px;
    height: 120px;
    background: white;
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    /*font-size: 14px;*/
    color: #234b4a;
    text-align: center;
    font-weight: 600;
}

/* Si tienes un logo, reemplaza .logo-placeholder con esto: */
.logo-image {
    align-items: center;
    align-content: center;
    text-align: center;
    width: 120px;
    height: 120px;
    object-fit: contain;
    filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.3));
    animation: pulse 1s infinite;
}

/* Spinner de carga */
.loading-spinner {
    align-items: center;
    align-content: center;
    text-align: center;
    width: 50px;
    height: 50px;
    border: 4px solid rgba(255, 255, 255, 0.3);
    border-top: 4px solid white;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin-bottom: 20px;
}

/* Texto de carga */
.loading-text {
    color: white;
    font-size: 18px;
    font-weight: 300;
    text-align: center;
    animation: fadeInOut 1.5s infinite;
}

/* Barra de progreso */
.progress-bar {
    width: 120px;
    height: 5px;
    background: rgba(255, 255, 255, 0.3);
    border-radius: 2px;
    margin-top: 20px;
    overflow: hidden;
}

.progress-fill {
    height: 100%;
    background: white;
    border-radius: 2px;
    animation: progress 2s ease-in-out infinite;
}

/* Animaciones */
@keyframes spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

@keyframes pulse {
    0%,
    100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
}

@keyframes fadeInOut {
    0%,
    100% {
        opacity: 0.7;
    }
    50% {
        opacity: 1;
    }
}

@keyframes progress {
    0% {
        width: 0%;
    }
    50% {
        width: 70%;
    }
    100% {
        width: 100%;
    }
}

/* Estilos para el contenido de la página demo */
.page-content {
    padding: 50px;
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}

.nav-links {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin: 30px 0;
    flex-wrap: wrap;
}

.demo-section {
    background: #f8f9fa;
    padding: 40px;
    border-radius: 15px;
    margin: 30px 0;
}

/* Responsive */
@media (max-width: 768px) {
    .logo-placeholder,
    .logo-image {
        width: 80px;
        height: 80px;
    }

    .loading-text {
        font-size: 16px;
    }

    .progress-bar {
        width: 150px;
    }

    .nav-links {
        flex-direction: column;
        align-items: center;
    }
}

/* Estilos básicos para el contenedor de la sección */
.section-container5 {
    display: flex;
    background-color: white;
    padding: 20px;
    text-align: center;
}

.section-heading5 {
    display: flex;
    margin-bottom: 10px;
}

/* Estilos para la cuadrícula de tres columnas */
.three-column-grid5 {
    display: grid;
    /* Columnas responsivas: mínimo 250px, máximo 1fr. */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    /* --- ESPACIADO ENTRE BOTONES (Y CELDAS DE LA CUADRÍCULA) --- */
    gap: 10px; /* Aumentamos el espacio entre los ítems de la cuadrícula a 30px */
    justify-content: center;
    max-width: 1200px;
    margin: 0 auto;
}

/* Estilos para cada ítem de la cuadrícula */
.grid-item5 {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 10px;
}

/* Estilos para los botones */
.project-button5 {
    padding: 12px 25px;
    background-color: var(--primary-dark-green);
    color: white;
    border: none;
    border-radius: 20px;
    cursor: pointer;
    transition: background-color 0.3s ease;
    width: 100%; /* El botón ocupa el 100% del ancho de su grid-item */
    text-align: center;

    /* --- ANCHO MÍNIMO DEL BOTÓN --- */
    min-width: 180px; /* Establece un ancho mínimo de 180px para cada botón */
    max-width: 280px; /* Establece un ancho máximo de 280px para cada botón */
}

.project-button5:hover {
    background-color: var(--teal-accent);
}

/* Media Queries para ajustar el tamaño del texto y otros elementos en pantallas más pequeñas */
@media (max-width: 768px) {
    .three-column-grid5 {
        gap: 10px; /* Reduce el espacio entre ítems en pantallas más pequeñas */
    }
    .project-button5 {
        padding: 10px 20px;
        min-width: 150px; /* Reduce el ancho mínimo en móviles si es necesario */
        max-width: 250px;
    }
}

@media (max-width: 480px) {
    .three-column-grid5 {
        grid-template-columns: 1fr; /* Una sola columna en pantallas muy pequeñas */
        gap: 5px; /* Más reducción de espacio */
    }
    .project-button5 {
        padding: 8px 15px;
        min-width: unset; /* Quita el mínimo en pantallas muy pequeñas para mayor flexibilidad */
        width: 90%; /* Ajusta el ancho para que el botón no sea demasiado grande */
    }
}
