:root {
	--fuenteHeading: 'PT Sans', sans-serif;
	--fuenteParrafos: 'Open Sans', sans-serif;

	--primario: #F9B872; 	/* Naranja */
	--primario2: #FAE7A5; 	/* Naranja 2 */
	--secundario: #B6E1E7; 	/* Azul polvo */
	--blanco: #ffffff;
	--negro: #000000;
}
html {
	box-sizing: border-box;
	font-size: 62.5%; /* 1 rem = 10px */
}
*, *:before, *:after {
	box-sizing: inherit;
}
body {
	font-family: var(--fuenteParrafos);
	font-size: 1.6rem;
	line-height: 2;
	height: 100%;
}

/** Globales **/ 
.contenedor {
	width: min(90%, 120rem);
	margin: 0 auto;
}
.contenido-main {
	min-height: 100vh;
}
a {
	text-decoration: none;
}
h1, h2,h3, h4 {
	font-family: var(--fuenteHeading);
	line-height: 1.2;
}
h1 {
	font-size: 4.8rem;
}
h2 {
	font-size: 4rem;
}
h3 {
	font-size: 3.2rem;
}
h4 {
	font-size: 2rem;
}
img {
	max-width: 100%;
}

/** Utilidades **/
.no-margin {
	margin: 0;
}
.no-padding {
	padding: 0;
}
.centrar-texto {
	text-align: center;
}
.alinear-texto-izquierda {
	text-align: left!important;
}
.negrita {
	font-weight: bold!important; /*se sobre pone este atributo si el elemento tiene esta clase*/
}
.justificar-texto {
    display: block!important;  
	text-align: justify!important;
}
.justificar-texto-label {
    display: block!important;       /* Para que se comporte como un párrafo */
    text-align: justify!important;  /* Justifica el texto */
    max-width: 600px;               /* Controla el ancho del texto */
	text-align: justify!important;
}
.sombra {
	text-shadow: 1px 2px 10px var(--negro);
}
/**
.box-blur {
  background-color: rgba(255, 255, 255, 0.3);
  border-radius: 5px;
  line-height: 1;
  backdrop-filter: blur(10px);
  max-width: 50%;
  max-height: 50%;
  padding: 20px 40px;
}**/

/** Header **/
.webp .header {
	background-image: url(../Img/Background_header.webp);
}
.no-webp .header{
	background-image: url(../Img/Background_header.png);
}
.header {
	height: 60rem;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
}
.header__texto {
	text-align: center;
	color: var(--blanco);
	margin-top: 5rem;
}
@media (min-width: 768px) {
	.header__texto {
		margin-top: 15rem;
	}
}
.barra {
	display: grid;
	justify-content: center;
	align-items: center;
	/* row-gap: 3rem; */
}
@media (min-width: 768px) {
	.barra {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding-top: 5rem;
	}
}

.logo {
    display: block;
	inline-size: 15rem;
	/* margin-top: -5rem;
	margin-bottom: -5rem; */
	filter: drop-shadow(7px 10px 15px rgba(255, 255, 255, 0.808));
	/* color: var(--blanco);
	text-shadow: 0px 1px 17px var(--negro); */
    margin: 0 auto; /* Centra el logo */
}
.logo__nombre {
	font-weight: 400;
}
.logo__bold {
	font-weight: 700;
}

@media (min-width: 768px) {
	.logo {
		margin-left: 0; /* Alineado a la izquierda por defecto */
	}	
	.navegacion {
		display: flex;
		gap: 2rem;
	}
	.barra {
		display: flex;
		align-items: center;

	}
}
.barra__footer {
	color: var(--blanco);
	text-shadow: 1px 1px 4px var(--blanco);
	text-align: center; /* Centra el texto del copyright */
    font-size: 1.4rem; /* Ajuste de tamaño para pantallas pequeñas */
}
.navegacion_enlace {
	text-shadow: 1px 2px 5px var(--negro);
	display: block;
	text-align: center;
	font-size: 1.8rem;
	color: var(--blanco);
}
@media (min-width: 768px) {
	.barra__footer {
		font-size: 2rem; /* Ajuste de tamaño para pantallas pequeñas */
	}
	
	.contenido-principal {
		display: grid;
		grid-template-columns: 2fr 1fr;
		column-gap: 4rem;
		min-height: auto;
	}
}

.entrada {
	border-bottom: 1px solid var(--primario);
	margin-bottom: 2rem;

}
.entrada:last-of-type {
	border: none;
	margin-bottom: 0;
}
.boton {
	display: block;
	font-family: var(--fuenteHeading);
	color: var(--blanco);
	text-align: center;
	padding: 1rem 3rem;
	font-size: 1.8rem;
	text-transform: uppercase;
	font-weight: 700;
	margin-bottom: 2rem;
	border-radius: 1.2rem;
	box-shadow: 0 4px 6px var(--negro);
	border: none;
}
@media (min-width: 768px) {
	.boton {
		display: inline-block;
	}
}
.boton:hover {
	cursor: pointer;
}
.boton--primario {
	background-color: var(--negro);
}

.boton--secundario {
	background-color: var(--primario);
}

.news {
	list-style: none;
}
.widget-news {
	border-bottom: 1px solid var(--primario2);
	margin-bottom: 2rem;
}
.widget-news:last-of-type {
	border: none;
	margin-bottom: 0;
}
.widget-news__label,
.service__label {
	font-family: var(--fuenteHeading);
	font-weight: bold;
}
.widget-news__info,
.service__info {
	font-weight: normal;
}
.widget-news__label,
.widget-news__info,
.service__label,
.service__info {
	font-size: 2rem;
}

.footer {
	background-color: var(--negro);
	padding: 3rem 0;
	margin-top: 4rem;
	text-align: center; /* Centra el contenido */
}

/** Sobre nosotros **/

.header__Nosotros {
	background-image: url(../Img/AboutUs_Content.jpg);
	height: 60rem;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
}

@media (min-width: 768px) {
	.sobre-nosotros {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		column-gap: 2rem;
	}
	
}

/** Servicios **/

.header__servicios {
	background-image: url(../Img/Services2.jpg);
	height: 60rem;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
}

.service {
	padding: 3rem 0;
	border-bottom: 1px solid var(--primario);
}
@media (min-width: 768px) {
	.service {
		display: grid;
		grid-template-columns: 1fr 2fr;
		column-gap: 2rem;
	}
}
.service:last-of-type {
	border: none;
	margin-bottom: 0;
}

/** Application **/

.header__Application {
	background-image: url(../Img/Application.jpg);
	height: 60rem;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
}
.contenedor__application {
	margin-top: 2.5rem;
}

/** Entrada **/

.header__entrada {
	background-image: url(../Img/Background_header.png);
	height: 60rem;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
}
/** Privacidad **/

.header__Privacy {
	background-image: url(../Img/Background_header_Privacy.png);
	height: 60rem;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
}

/** Conntacto **/
.contenedor__contacto {
	width: min(90%, 120rem);
	margin: 0 auto;
	margin: -5rem auto 0 auto;
}

.header__contacto {
	background-image: url(../Img/Contacto.jpg);
	height: 60rem;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
}
.formulario {
	background-color: var(--blanco);
    border-radius: 1.5rem;
	width: 100%;
	padding: 1rem;
}
.campo {
	display: flex;
	margin-bottom: 2rem;
	gap: 2rem;
}
.campo__label {
	flex: 0 0 15rem;
	text-align: right;
	padding-right: 2rem;

}
.campo__field {
	flex: 1;
	border: 1px solid var(--secundario);
}
.campo__field--textarea {
	height: 200px;
}

/** support **/

.header__support {
	background-image: url(../Img/Support.jpg);
	height: 60rem;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
}
@media (max-width: 768px) {
  .header__support,
  .header {
    height: 100vh;   /* Ocupa el 100% de la altura de la pantalla */
  }
}

/** formulario pagina Application **/
/* Estilos para el formulario */
.form h2,
.form h3 {
    margin-top: 1.5rem;
    margin-bottom: 1rem;
    color: #333;
    border-bottom: 1px solid #eee; /* Línea debajo de los títulos */
    padding-bottom: 0.5rem;
}

.form p {
    margin-bottom: 1.5rem;
    color: #555;
}

.form .column {
    display: flex;
    flex-wrap: wrap; /* Permite que los elementos se envuelvan */
    gap: 20px; /* Espacio entre columnas */
    margin-bottom: 1.5rem;
}

.form .column .input-box {
    flex: 1 1 calc(50% - 10px); /* Dos columnas por defecto con espacio */
    min-width: 250px; /* Ancho mínimo para cada input-box */
}

@media (max-width: 600px) {
    .form .column .input-box {
        flex: 1 1 100%; /* Una columna en pantallas pequeñas */
    }
}


.form .input-box label {
    display: block; /* Etiqueta en su propia línea */
    margin-bottom: 8px;
    font-weight: bold;
    color: #555;
}

.form .input-box input[type="text"],
.form .input-box input[type="date"],
.form .input-box input[type="tel"],
.form .input-box input[type="email"],
.form .input-box select,
.form .input-box textarea {
    width: 100%; /* Ancho completo del input */
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box; /* Incluir padding y borde en el ancho */
    font-size: 1rem;
}

.form .input-box textarea {
    resize: vertical; /* Permitir redimensionar verticalmente */
    min-height: 100px; /* Altura mínima para el textarea */
}


.form button[type="submit"] {
    display: block; /* Botón en su propia línea */
    width: 100%; /* Ancho completo del botón */
    padding: 15px;
    background-color: #5cb85c; /* Color verde para el botón */
    color: white;
    border: none;
    border-radius: 4px;
    font-size: 1.2rem;
    cursor: pointer;
    transition: background-color 0.3s ease; /* Transición suave del color */
    margin-top: 2rem;
}

.form button[type="submit"]:hover {
    background-color: #4cae4c; /* Color más oscuro al pasar el ratón */
}

.servicio__descipcion {
    font-size: 2rem; /* Tamaño un poco más grande */
    font-style: italic; /* Texto en itálica */
    line-height: 1.6;
    color: #333;
}

.service__imagen {
	max-width: 55%;
	
  }

  @media (max-width: 768px) {
    .service {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
		max-width: 55%;
        margin: 0 auto;
    }

    .service__imagen img {
        max-width: 100%;
        height: auto;
    }

    .servicio__informacion {
        padding: 1rem;
    }

    .servicio__informacion h3,
    .servicio__descipcion {
        margin: 0 auto;
    }
}

.contenedor h2 {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.separador hr {
	color: rgba(255, 166, 0, 0.3);
	filter: drop-shadow(1px 2px 12px rgba(0, 0, 0, 0.2));
}
.separador {
	padding: 3rem;
}

/* -- Carousel de servicios pagina de inicio -- start */
/* Estilos del contenedor general (si es parte del layout) */
.container {
    width: 100%;
    max-width: 1200px; /* Límite de ancho */
    margin: 0 auto; /* Centrado */
    padding: 1rem; /* Espaciado interno */
    box-sizing: border-box; /* Modelo de caja consistente */
}

/* Contenedor principal del carrusel */
.carousel {
    display: flex;
    justify-content: space-between; /* Espacio entre elementos */
    flex-wrap: wrap; /* Permite que los elementos pasen a la siguiente línea */
    gap: 1rem; /* Espacio entre elementos */
    width: 100%; /* Ocupa todo el ancho disponible */
}

/* Enlaces dentro del carrusel (cada elemento es un enlace) */
.carousel a {
    text-decoration: none; /* Quita el subrayado del enlace */
    color: inherit; /* Hereda el color del texto del padre */
    flex: 1 1 200px; /* Permite crecer/encoger, base de 200px */
    max-width: 220px; /* Ancho máximo por elemento en escritorio */
    display: flex; /* Usa flex para centrar el contenido interno */
    justify-content: center; /* Centra el .carousel__item horizontalmente */
}

/* Contenido de cada elemento del carrusel */
.carousel__item {
    display: flex;
    flex-direction: column; /* Apila imagen y texto verticalmente */
    align-items: center; /* Centra imagen y texto horizontalmente */
    width: 100%; /* Ocupa todo el ancho de su contenedor 'a' */
}

/* Imagen dentro de cada elemento */
.carousel__item img {
    max-width: 55%; /* La imagen no excederá el ancho de .carousel__item */
    height: auto; /* Mantiene la proporción de la imagen */
    border-radius: 8px; /* Bordes redondeados */
    filter: drop-shadow(3px 5px 8px rgba(0, 0, 0, 0.5)); /* Sombra */
    transition: transform 0.3s ease; /* Transición suave para el hover */
}

/* Título dentro de cada elemento */
.carousel__item h3 {
    margin-top: 1rem; /* Espacio sobre el título */
    font-size: 1.1rem; /* Tamaño de fuente ajustado (2rem era muy grande) */
    text-align: center; /* Texto centrado */
}

/* Efecto hover sobre la imagen */
.carousel__item:hover img {
    transform: scale(1.05); /* Agranda ligeramente la imagen al pasar el ratón */
}

/* Estilos para pantallas más pequeñas (tablets/móviles) */
@media (max-width: 768px) {
    .carousel {
        justify-content: center; /* Centra los elementos cuando hay espacio */
        /* gap y flex-wrap ya están definidos, no es necesario repetirlos */
    }

    .carousel a {
        /* Permite que los elementos sean un poco más anchos en móvil */
        /* y se centren gracias al justify-content del padre */
        max-width: 45%; /* Ejemplo: permite 2 por fila en pantallas medianas */
        flex-basis: 45%; /* Ajusta la base para que quepan ~2 */
    }
}

@media (max-width: 480px) {
    .carousel a {
         /* En pantallas muy pequeñas, ocupan más ancho */
         max-width: 80%;
         flex-basis: 80%;
    }
}
/* Carousel de servicios pagina de inicio -- End */
  
  /* Galería de imagenes -- start*/
  .galeria {
	overflow: hidden;
	width: 100%;
	padding: 1rem 0;
  }
  
  .galeria__slider {
	display: flex;
	gap: 1rem;
	animation: scrollGaleria 45s linear infinite;
  }
  
  .galeria__slider img {
	max-height: 350px;
	width: auto;
	border-radius: 10px;
	box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  }
  
  /* Animación de scroll */
  @keyframes scrollGaleria {
	0% {
	  transform: translateX(0%);
	}
	100% {
	  transform: translateX(-50%);
	}
  }
/* Galeria de imagenes -- end */  

/* ----Complain form---- */

/* Main form container */
.form-container {
    max-width: 600px; /* Maximum width of the form */
    margin: 30px auto; /* Center the form */
    padding: 30px;
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

/* Heading and paragraph */
.form-container h1 {
    color: #2c3e50;
    text-align: center;
    margin-bottom: 10px;
    font-size: 1.8em; /* Heading font size */
}

.form-container p {
    text-align: center;
    margin-bottom: 30px;
    color: #555;
}

/* Field groups (label + input) */
.form-group {
    margin-bottom: 20px;
}

/* Label styling */
.form-group label {
    display: block; /* Makes the label take up its own line */
    font-weight: bold;
    margin-bottom: 8px;
    color: #34495e;
}

/* Input field and textarea styling */
.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="tel"],
.form-group select,
.form-group textarea {
    width: 100%; /* Takes up the full available width */
    padding: 12px;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box; /* Includes padding and border in the total width */
    font-size: 1em; /* Font size */
    color: #333;
}

/* Specific adjustment for textarea */
.form-group textarea {
    resize: vertical; /* Allows vertical resizing only */
    min-height: 100px; /* Minimum height */
}

/* Style for focus state (when clicking on the field) */
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: #3498db; /* Changes the border color */
    outline: none; /* Removes the browser's default outline */
    box-shadow: 0 0 5px rgba(52, 152, 219, 0.5); /* Soft shadow */
}

/* Placeholder (example text inside fields) */
::placeholder {
    color: #aaa;
    opacity: 1; /* Firefox */
}

/* Submit button styling */
.form-group button[type="submit"] {
    background-color: #3498db; /* Background color */
    color: white; /* Text color */
    padding: 12px 25px;
    border: none;
    border-radius: 4px;
    cursor: pointer; /* Changes the cursor on hover */
    font-size: 1.1em; /* Font size */
    font-weight: bold;
    width: 100%; /* Takes up the full width */
    transition: background-color 0.3s ease; /* Smooth transition on hover */
}

/* Hover effect for the button */
.form-group button[type="submit"]:hover {
    background-color: #2980b9; /* A slightly darker blue */
}

/* Responsive styles (optional, for small screens) */
@media (max-width: 650px) {
    .form-container {
        padding: 20px;
    }
    .form-container h1 {
        font-size: 1.5em;
    }
}

/* -- Firma en application -- Start */

/* Estilos para el contenedor del campo de firma */
.signature-pad-container {
    display: flex;
    flex-direction: column;
    align-items: center; /* Centra los elementos horizontalmente */
}

/* Estilos para el canvas de la firma */
.signature-canvas {
    border: 1px solid #ccc;
    border-radius: 4px;
    background-color: #fff;
    margin-bottom: 10px;
    /* Define un tamaño por defecto, ajusta si es necesario */
    width: 100%; /* O un tamaño fijo como 400px */
    height: 200px; /* O un tamaño fijo como 150px */
    touch-action: none; /* Evita el desplazamiento de la página al dibujar en dispositivos táctiles */
}

/* Estilos para el botón de limpiar firma */
#clearSignature {
    padding: 8px 15px;
    background-color: #d9534f; /* Color rojo */
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.3s ease;
    font-size: 0.9rem;
}

#clearSignature:hover {
    background-color: #c9302c; /* Color rojo más oscuro al pasar el ratón */
}

/* Asegúrate de que la etiqueta de la firma tenga suficiente margen */
.signature-pad-container label {
    align-self: flex-start; /* Alinea la etiqueta a la izquierda dentro del contenedor flex */
    margin-bottom: 8px; /* Espacio entre la etiqueta y el canvas */
}
/* -- Firma en application -- End */

/* -- Park Rules --*/
.header__parkRules {
	background-image: url(../Img/ParkRulesBanner.jpg);
	height: 60rem;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
}

/* -- Insurance --*/
.header__Insurance {
	background-image: url(../Img/InsuranceBanner.jpg);
	height: 60rem;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
}

  .checkbox-container {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: Arial, sans-serif;
    font-size: 16px;
  }

  .checkbox-container input[type="checkbox"] {
    transform: scale(2.5);
    width: 2rem;
    height: 2rem;
    cursor: pointer;
  } 
  
main input[type="text"],
main input[type="email"],
main input[type="tel"],
main input[type="number"],
main textarea {
  width: 100%;        
  max-width: 100%;    
  box-sizing: border-box;
}

.signature-canvas {
    border: 2px solid #333;
    border-radius: 8px;
    cursor: crosshair;
    touch-action: none; /* Importante para dispositivos táctiles */
    width: 100%;
    background: white;
}

#clearSignature {
    margin-top: 10px;
    padding: 8px 16px;
    background-color: #f44336;
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}

#clearSignature:hover {
    background-color: #da190b;
}

/* Asterisco rojo para campos requeridos */
label:has(+ input[required])::after,
label:has(+ select[required])::after,
label:has(+ textarea[required])::after {
    content: " *";
    color: red;
    font-weight: bold;
}

/* Para cuando el input está dentro del label */
label:has(input[required])::after,
label:has(select[required])::after,
label:has(textarea[required])::after {
    content: " *";
    color: red;
    font-weight: bold;
}