@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap');

/* Fuentes Glancyr */
@font-face {
  font-family: 'Glancyr';
  src: url('./fonts/Glancyr/Glancyr-Thin.otf') format('truetype');
  font-weight: 100;
  font-style: normal;
}
@font-face {
  font-family: 'Glancyr';
  src: url('./fonts/Glancyr/Glancyr-ThinItalic.otf') format('truetype');
  font-weight: 100;
  font-style: italic;
}

@font-face {
  font-family: 'Glancyr';
  src: url('./fonts/Glancyr/Glancyr-ExtraLight.otf') format('truetype');
  font-weight: 200;
  font-style: normal;
}
@font-face {
  font-family: 'Glancyr';
  src: url('./fonts/Glancyr/Glancyr-ExtraLightItalic.otf') format('truetype');
  font-weight: 200;
  font-style: italic;
}

@font-face {
  font-family: 'Glancyr';
  src: url('./fonts/Glancyr/Glancyr-Light.otf') format('truetype');
  font-weight: 300;
  font-style: normal;
}
@font-face {
  font-family: 'Glancyr';
  src: url('./fonts/Glancyr/Glancyr-LightItalic.otf') format('truetype');
  font-weight: 300;
  font-style: italic;
}

@font-face {
  font-family: 'Glancyr';
  src: url('./fonts/Glancyr/Glancyr-Regular.otf') format('truetype');
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: 'Glancyr';
  src: url('./fonts/Glancyr/Glancyr-Italic.otf') format('truetype');
  font-weight: 400;
  font-style: italic;
}

@font-face {
  font-family: 'Glancyr';
  src: url('./fonts/Glancyr/Glancyr-Medium.otf') format('truetype');
  font-weight: 500;
  font-style: normal;
}
@font-face {
  font-family: 'Glancyr';
  src: url('./fonts/Glancyr/Glancyr-MediumItalic.otf') format('truetype');
  font-weight: 500;
  font-style: italic;
}

@font-face {
  font-family: 'Glancyr';
  src: url('./fonts/Glancyr/Glancyr-SemiBold.otf') format('truetype');
  font-weight: 600;
  font-style: normal;
}
@font-face {
  font-family: 'Glancyr';
  src: url('./fonts/Glancyr/Glancyr-SemiBoldItalic.otf') format('truetype');
  font-weight: 600;
  font-style: italic;
}

@font-face {
  font-family: 'Glancyr';
  src: url('./fonts/Glancyr/Glancyr-Bold.otf') format('truetype');
  font-weight: 700;
  font-style: normal;
}
@font-face {
  font-family: 'Glancyr';
  src: url('./fonts/Glancyr/Glancyr-BoldItalic.otf') format('truetype');
  font-weight: 700;
  font-style: italic;
}

/* Fuentes Neue Haas Grotesk */
@font-face {
  font-family: 'NeueHaasGrotesk';
  src: url('./fonts/NeueHaasGrotesk/NeueHaasGroteskTextPro55Roman.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: 'NeueHaasGrotesk';
  src: url('./fonts/NeueHaasGrotesk/NeueHaasGroteskTextPro56Italic.ttf') format('truetype');
  font-weight: 400;
  font-style: italic;
}

@font-face {
  font-family: 'NeueHaasGrotesk';
  src: url('./fonts/NeueHaasGrotesk/NeueHaasGroteskTextPro65Medium.ttf') format('truetype');
  font-weight: 500;
  font-style: normal;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: 'Glancyr', sans-serif;
  height: 100vh;
  /* display: flex;
  justify-content: center;
  align-items: center; */
  background-color: #f0f0f0;
}

html, body {
  height: 100%;
  background-color: #00CCFE;
}

.vista {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
}
/* Contenedor principal */
.calculator-container {
  position: relative;
  width: 100%;
  max-width: 600px;
  height: 100%;
  max-height: 100vh;
  overflow: hidden;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
  margin: 0 auto;
  background: #00CCFE;
  display: flex;
  flex-direction: column;
}

.semicircle {
  position: absolute;
  top: -150px;
  left: 50%;
  transform: translateX(-50%);
  width: 500px;
  height: 260px;
  background-color: #48ddffbd;
  border-radius: 50%;
  z-index: 2;
}

.oscuro{
  background-color: #00B8EA;
}

.semicircle2 {
  background-color: #00B8EA;
  position: absolute;
  top: -210px;
  left: 50%;
  transform: translateX(-50%);
  width: 600px;
  height: 300px;
  border-radius: 0 0 300px 300px;
}

.fondo {
  z-index: 1;
  height: 600px;
  border-radius: 300px;
  top: -500px;
}

/* Semicírculo superior que tapa el circulo excepto la línea de progreso */
.tapa {
  background-color: #00B8EA;
  position: absolute;
  width: 580px;
  height: 580px;
  border-radius: 100%;
  top: -500px;
  z-index: 3;
}

/* Semicírculo que muestra el progreso */
.progreso {
  background-color: #43DDFF;
  position: absolute;
  bottom: 0;
  transform: rotate(128deg) translateX(-50%);
  transform-origin: top center;
  width: 600px;
  height: 300px;
  border-radius: 0 0 300px 300px;
  z-index: 2;
}

.grid-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.cattle-image {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 70%;
  background-image: url('./assets/vacas.png');
  background-position: center bottom;
  background-size: cover;
  z-index: 0;
}

.image-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 40%;
  z-index: 1;
}

.calculator-content {
  flex: 1;
  width: 100%;
  padding: 4rem 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: white;
  text-align: center;
  z-index: 4;
}

.calculator-header {
  position: absolute;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 5;
}

.calculator-header h1 {
  font-size: 26px;
  font-weight: 400;
  letter-spacing: 1px;
}

.warning-icon {
  width: 90px;
  height: 90px;
  margin: 45px 0 0 0;
}

.warning-icon svg {
  width: 100%;
  height: 100%;
}

.main-message {
  margin: 5px 0;
}

.main-message h2 {
  font-size: 72px;
  font-weight: 600;
  line-height: 1;
  text-shadow: 0 8px 5px rgba(0, 0, 0, 0.4);
}

.calculate-button {    
  padding: 10px 80px;
  background-color: white;
  color: #00CCFE;
  font-weight: 700;
  border: none;
  border-radius: 10px;
  font-size: 22px;
  cursor: pointer;
  z-index: 5;
  text-decoration: none;
  transition: all 0.3s ease;
}

/* Contenedor del botón */
.action-button-container {
  width: 100%;
  margin-top: 15px;
  margin-bottom: 50px;
  z-index: 5;
}

.calculate-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.25);
  transition: all 0.3s ease;
}

.calculate-button:active {
  transform: translateY(1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.titulo{
  margin: 10px 0;  
}

.titulo h3{
  font-weight: 400;  
  text-align: center;
  font-size: 26px;
  margin: 10px 0;
}

.subtitulo{
  margin: 0;
}

.subtitulo h4{
  margin: 0;
  font-size: 18px;
  font-weight: 400;  
  text-align: center;
}

.contenedor-resultados {
  position: relative;
  width: 100%;
  max-width: 600px;
  height: 100vh;
  max-height: 100vh;
  overflow: hidden;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
  margin: 0 auto;
  background: #e60000;
  display: flex;
  flex-direction: column;
}

.calculator-resultados{
  position: relative;
  height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;  
  justify-content: center;
  padding: 20px;
  color: white;
  text-align: center;
  z-index: 4;
}

.contenedor-atras {  
  position: absolute;
  top: 50px;
  left: 30px;
  display: flex;
  align-items: center;
  cursor: pointer;
}

.contenedor-atras i {
  margin-right: 8px;
  font-size: 18px;
}

.donut-chart {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 25px 0;
}

.circle {
  width: 230px;
  height: 230px;
  border-radius: 50%;
  border: 1px solid #fff;
  background: conic-gradient(#A40000 0% 0%, transparent 0% 100%);
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.percentage {
  font-size: 37px;
  font-weight: bold;
  color: #e60000;
  background-color: white;
  border-radius: 50%;
  width: 160px;
  height: 160px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  overflow: hidden;
  position: absolute;
}

.pasto {
  width: 80px;
  height: 70px;
  background-image: url('./assets/pastizal.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;

  -webkit-mask-image: url('./assets/pastizal.png');
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  -webkit-mask-position: center;

  mask-image: url('./assets/pastizal.png');
  mask-repeat: no-repeat;
  mask-size: contain;
  mask-position: center;

  pointer-events: none;
  position: absolute;
  top: 98px;
  left: 40px;
}

.boton {
  margin-top: 30px;
}

.continuar-button {
  background: transparent;
  border: 1px solid white;
  color: white;
  padding: 10px 25px;
  width: 250px;
  border-radius: 14px;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.5s ease;
}

.continuar-button:hover {
  background-color: white;
  color: black;
  transition: all 0.5s ease;
}

.dots {
  display: flex;
  gap: 10px; /* espacio entre dots */
  align-items: center;
  justify-content: center;
}

.dots .dot {
  width: 12px;
  height: 12px;
  background-color: transparent;
  border: 1px solid #ffffff;
  border-radius: 50%;
  opacity: 0.5;
  transition: all 0.3s ease;
}

.dots .dot.active {
  background-color: #ffffff;
  opacity: 1;
  border-color: #ffffff;
}

.contenedor-mapa-acciones {
  height: 100vh;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  z-index: 3;
  padding: 30px 0 160px 0;
}

.map {
  flex-grow: 1;
  width: 100%;
  min-height: 150px;
  position: relative;
  border-radius: 12px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}

.leaflet-draw-actions li a {
  padding: 0 5px !important;
}

.buscador-container {
  z-index: 3;  
}

.buscador-container input {
  width: 220px;
  height: 34px;
  padding: 10px 14px;
  font-size: 14px;  
  border: 1px solid #ccc;
  border-radius: 20px;
  transition: all 0.3s ease;
  outline: none;
}

.buscador-container input:focus {
  border: 1px solid #1976d2 !important;
}

.buscador-container input::placeholder {
  color: #A6A6A6;
  font-size: 14px;
}

.buscador-container button i{  
  color: #A6A6A6;  
  transition: all 0.3s ease;
}

.buscador-container button {
  position: absolute;
  transform: translateX(-100%);
  border-radius: 50%;
  width: 34px;
  height: 34px;
  cursor: pointer;
  border: none;
  transition: background-color 0.3s ease;
  background-color: #F3F2F4;
}

.buscador-container button:hover {
  background-color: #E0E0E0;
}

.acciones {
  margin-top: auto;
  display: flex;
  justify-content: space-around;
  align-items: center;
  padding: 20px 0;
  width: 100%;
}

.acciones button {
  padding: 10px 20px;
  background-color: transparent;
  color: white;
  border: 1px solid white;
  border-radius: 14px;
  cursor: pointer;
  white-space: nowrap;
  gap: 5px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);
  transition: transform 0.2s, background-color 0.3s;
  text-align: center;
}

.acciones button span {
  font-size: 14px;
  font-weight: 600;
}

.acciones button i {
  margin: 0 !important;
  font-size: 14px;
  font-weight: 600;
  transition: all 0.3s ease; 
}

.acciones button:active {
  transform: scale(0.98);
}

.formulario{
  width: 100%;
}

#inputCantidad {
  padding: 15px 35px;
  text-align: center;
  background-color: transparent;
  color: white;
  border-radius: 10px;
  border: 2px solid white;
  font-size: large;
  font-weight: bold;
}

#inputCantidad::placeholder {
  color: white;
  font-weight: bold;
  opacity: 1; /* Para evitar que algunos navegadores lo hagan más gris */
}

#inputCantidad:-ms-input-placeholder { /* Internet Explorer 10-11 */
  color: white;
  font-weight: bold;
}

#inputCantidad::-ms-input-placeholder { /* Microsoft Edge */
  color: white;
  font-weight: bold;
}

.check {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 20px;
  border-radius: 10px;
  border: 2px solid white;
  width: 80%;
  height: 90px;
  color: white;
  cursor: pointer;
  position: relative;
  gap: 20px;
  transition: all 0.3s ease;
  background-color: transparent;
}

.contenedor-checks {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.check .contenedor-imagen-texto {
  display: flex;
  align-items: center;
  gap: 20px;
  font-weight: 500;
  font-size: 1.3em;
}

.check .imagen {
  width: 90px;
  height: 70px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.check img {
  height: 100%;
  width: auto;
  object-fit: contain;
  transition: filter 0.3s ease;
}

.check input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 35px;
  height: 35px;
  border: 2px solid white;
  border-radius: 50%;
  background-color: transparent;
  position: relative;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: bold;
  font-size: 18px;
  transition: all 0.3s ease;
}

.check input[type="checkbox"]::after {
  transition: all 0.3s ease;
}

.check input[type="checkbox"]:checked::after {
  content: "✓";
  color: #00B8EA;
  opacity: 1;
}

.check input[type="checkbox"]:checked {
  background-color: white;
  border-color: #00B8EA;
}

.check input[type="checkbox"]:checked ~ * {
  color: #00B8EA;
}

.check input[type="checkbox"]:checked ~ .contenedor-imagen-texto {
  color: #00B8EA;
}

.check input[type="checkbox"]:checked ~ .contenedor-imagen-texto span {
  color: #00B8EA;
}

.check:has(input[type="checkbox"]:checked) {
  background-color: white;
  border-color: #00B8EA;
  color: #00B8EA;
}

.success-animation { margin:10px auto;}

.checkmark {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    display: block;
    stroke-width: 5;
    stroke: white;
    stroke-miterlimit: 10;
    box-shadow: inset 0px 0px 0px white;
    animation: fill .4s ease-in-out .4s forwards, scale .3s ease-in-out .9s both;
    position:relative;
    top: 5px;
    right: 5px;
    margin: 0 auto;
}
.checkmark__circle {
    stroke-dasharray: 166;
    stroke-dashoffset: 166;
    stroke-width: 6;
    stroke-miterlimit: 10;
    stroke: white;
    fill: transparent;
    animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
 
}
.checkmark__check {
    transform-origin: 50% 50%;
    stroke-dasharray: 48;
    stroke-dashoffset: 48;
    animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards;
}

@keyframes stroke {
    100% {
        stroke-dashoffset: 0;
    }
}

@keyframes scale {
    0%, 100% {
        transform: none;
    }

    50% {
        transform: scale3d(1.4, 1.4, 1);
    }
}

@keyframes fill {
    100% {
        box-shadow: inset 0px 0px 0px 25px rgba(255, 255, 255, 0.15);
    }
}

.footer {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 80px;
  background-color: #43ddff;
  display: flex;
  justify-content: center;
  align-items: center;
  color: rgb(255, 255, 255);
  font-size: 18px;
  font-weight: 500;
  border-radius: 8px 8px 0 0;
}

.calculator-resultado-final{
  position: relative;
  width: 100%;
  max-width: 600px;
  height: 100%;
  max-height: 100vh;
  overflow: hidden;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
  margin: 0 auto;
  background: #03BA44;
  display: flex;
  flex-direction: column;
}

.calculator-content-resultado{
  position: relative;
  height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 20px;
  color: white;
  text-align: center;
  z-index: 4;
  gap: 10px;
}

.calculator-mostrar-resultado{
  position: relative;
  width: 100%;
  max-width: 600px;
  height: 100%;
  max-height: 100vh;
  margin: 0 auto;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.calculator-content-mostrando {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px;
  height: 100%;
}

.contenedor-atras-resultado {
  position: absolute;
  top: 50px;
  left: 30px;
  display: flex;
  align-items: center;
  color: white;
  font-weight: 500;
  cursor: pointer;
}

.contenedor-atras-resultado i {
  margin-right: 5px;
  font-size: 18px;
}

.contenedor-icono-resultado {
  margin-top: 100px;
  color: #3f3d56;
  font-size: 24px;
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
}

.contenedor-icono-resultado img {
  width: 100%;
  height: 100%;
}

.titulo-resultado {
  margin-top: 20px;
  text-align: center;
}

.titulo-resultado h3 {
  color: white;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.3;
}

/* Contenedor del importe */
.contenedor-importe {
  margin-top: 20px;
  width: 100%;
  padding: 0 20px;
}

.importe-box {
  border-radius: 10px;
  padding: 15px;
  text-align: center;
  background-color: #F60500;
}

.importe-box h5 {
  margin: 0;
  line-height: 1.4;
}

.currency {
  color: #FFF700;
  font-size: 20px;
  font-weight: 600;
}

.amount {
  color: #FFF700;
  font-size: 32px;
  font-weight: 700;
}

.period {
  color: #FFF700;
  font-size: 16px;
  font-weight: bold;
}

/* Subtítulo */
.subtitulo-resultado {
  margin: 20px 0;
  text-align: center;
  color: white;
  font-size: 22px;
  line-height: 1.4;
}

.boton-continuar {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 20px;
}

.continuar-button-resultado {
  width: 270px;
  padding: 8px;
  background-color: transparent;
  color: white;
  border: 1px solid white;
  border-radius: 8px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);
  font-size: 18px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  z-index: 2;
}

.continuar-button-resultado:hover {
  background-color: rgb(255, 255, 255, 0.1);
  color: #fff;
  transition: all 0.3s ease;
}

/* Imagen de fondo de ganado */
.cattle-image-background {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 40%;
  background-image: url('./assets/campo.png');
  background-position: bottom center;
  background-size: cover;
  pointer-events: none;
  z-index: 0;
  opacity: 0.9;
}

.calculator-transformacion{
  position: relative;
  width: 100%;
  max-width: 600px;
  height: 100%;
  max-height: 100vh;
  margin: 0 auto;
  background-color: #00B8EA;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.calculator-content-transformacion {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px;
  height: 100%;
  color: white;
}

.semicircle-light {
  position: absolute;
  left: 67%;  
  width: 200px;
  height: 235px;  

}

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

.contenedor-icono-exclamacion {
  margin-top: 160px;
  margin-bottom: 30px;
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid white;
  border-radius: 50%;
  color: white;
  font-size: 24px;
}

.contenedor-icono-exclamacion i{
  font-size: 24px;
  color: white;
}

/* Mensaje de transformación */
.mensaje-transformacion {
  font-family: 'NeueHaasGrotesk', sans-serif;
  text-align: center;
  margin-bottom: 40px;
}

.mensaje-transformacion h2 {
  font-size: 36px;
  font-weight: 200;
  line-height: 1.2;
  color: white;
}

.mensaje-transformacion .destacado {
  font-weight: 800;
}

/* Botón de saber más */
.boton-saber-mas {
  width: 100%;
  padding: 0 20px;
  margin-bottom: 40px;
}

.saber-mas-button {
  width: 100%;
  padding: 12px;
  background-color: transparent;
  color: white;
  border: 1px solid white;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.3s;
}

.saber-mas-button:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

/* Logo de AguaSiempre */
.logo-aguasiempre {
  margin-top: auto;
  margin-bottom: 30px;
  text-align: center;
}

.logo-aguasiempre img {
  height: 48px;
  width: auto;
}

.calculator-formulario {
  position: relative;
  width: 100%;
  max-width: 600px;
  height: 100%;
  max-height: 100vh;
  margin: 0 auto;
  background-color: #00d4ff;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.wave-pattern {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 200px;
  background: url('assets/headerFormulario.svg') no-repeat top right;
  background-size: cover;
  z-index: 1;
  pointer-events: none; /* evita que interfiera con clics */
}

.calculator-content-formulario {
  position: relative;
  z-index: 2;
  display: flex !important;
  flex-direction: column !important;
  gap: 20px;
  height: 100%;
  color: white;
}

#form-datos-personales {
  position: relative;
  z-index: 2;
  display: flex !important;
  flex-direction: column !important;
  gap: 20px;
  padding: 20px;
  height: 100%;
  color: white;
}

/* Título y subtítulo */
.titulo-formulario {
  text-align: center;
  margin-top: 170px;
  margin-bottom: 30px;
}

.titulo-formulario h2 {
  font-size: 28px;
  font-weight: 600;
  margin-bottom: 10px;
}

.titulo-formulario p {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.4;  
}

/* Contenedor del formulario */
.formulario-container {
  width: 100%;
  margin-bottom: 0px;
}

.form-group label {
  display: block;
  font-size: 14px;
  margin-bottom: 8px;
  color: #2E2B73;
  font-weight: 600;
}

/* Inputs */
.form-input {
  width: 100%;
  padding: 12px 15px;
  border: 2px solid white;
  border-radius: 8px;
  background-color: transparent;
  color: white;
  font-size: 16px;
  outline: none;
  transition: border-color 0.3s;
}

/* Contenedor de teléfono con prefijo */
.telefono-container {
  display: flex;  
  align-items: center;
}

.prefijo {
  display: inline-block;
  padding: 12px 10px;
  background-color: transparent;     
  color: #2E2B73;
  font-size: 16px;
}

.telefono-input {
  border-radius: 8px;
  border: 2px solid white;  
  flex: 1;
}

/* Botones de navegación */
.botones-navegacion {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: auto;
  margin-bottom: 20px;
}

.calculator-content-formulario .botones-navegacion {
  margin-bottom: 100px;
}
.btn-atras {
  display: flex;
  align-items: center;
  background-color: transparent;
  border: none;
  color: white;
  font-size: 18px;
  cursor: pointer;
  padding: 10px 15px;
}

.btn-atras i {
  margin-right: 5px;
}

.btn-enviar {
  background-color: transparent;
  color: white;
  border: 1px solid white;
  border-radius: 8px;
  width: 100px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  cursor: pointer;
  transition: background-color 0.3s;
}

.btn-enviar:hover {
  background-color: #f0f0f0;
  color: #2E2B73;
  transition: background-color 0.3s;
}

#btnContinuarGanado {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
}

.calculator-qr-code {
  position: relative;
  width: 100%;
  max-width: 600px;
  height: 100%;
  max-height: 100vh;
  margin: 0 auto;
  background-color: #00B8EA;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.calculator-content-qr {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px;
  height: 100vh;
  color: white;
}

/* Semicírculo claro en la esquina superior derecha */
.calculator-qr-code .semicircle-light img {
  position: absolute; 
    left: -70px;   
    width: 240px;
    height: 100px;
}

/* Título */
.titulo-qr {
  text-align: center;
  margin-top: 17vh;
  margin-bottom: 20px;
}

.titulo-qr h2 {
  font-size: 38px;
  font-weight: 500;
  line-height: 1.2;
}

/* Instrucciones */
.instrucciones-qr {
  text-align: center;
  margin-bottom: 10px;
}

.instrucciones-qr p {
  font-size: 22px;
  margin-bottom: 10px;
}

.instrucciones-qr ol {
  list-style-position: inside;
  text-align: center;
  padding: 0;
}

.instrucciones-qr li {
  font-size: 16px;
  margin-bottom: 5px;
}

/* Contenedor del código QR */
.qr-code-container {
  background-color: white;
  padding: 5px;
  border-radius: 10px;
  margin-bottom: 20px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.qr-code-image {
  width: 210px;
  height: 210px;
  display: block;
}

/* Botón OK */
.boton-ok {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 0 20px;
  margin-bottom: 20px;
}

.ok-button {
  width: 250px;
  padding: 10px;
  background-color: transparent;
  color: white;
  border: 1px solid white;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.3s;
}

.ok-button:hover {
  background-color: white;
  transition: background-color 0.3s;
  color: #00CCFE;
}

/* Logo de AguaSiempre */
.calculator-qr-code .logo-aguasiempre {
  margin-top: auto;
  margin-bottom: 20px;
  text-align: center;
}

.calculator-qr-code .logo-aguasiempre img {
  height: 40px;
  width: auto;
}

/* Media queries para responsividad */
@media (max-width: 400px) {
  .calculator-container {
      border-radius: 0;
      height: 100vh;
      max-height: none;
  }
  
  .main-message h2 {
      font-size: 44px;
  }
  
  .titulo h3{
      font-size: 20px;
  }

  .subtitulo h4{
      font-size: 14px;
  }

  .calculator-header h1 {
      font-size: 22px;
  }

  .check {
    width: 100%;
    gap: 5px;
    padding: 10px;
  }

  .contenedor-imagen-texto {
    gap: 10px !important;
  }
}

@media (min-width: 401px) and (max-width: 600px) {
  .main-message h2 {
      font-size: 58px;
  }
  
  
}

@media (min-height: 700px) {
  .calculator-header {
      margin-top: 10px;
  }
  
  .main-message {
      margin: 15px 0;
  }
  
  .main-message h2{
      font-size: 78px;
  }

  .action-button-container {
      margin-bottom: 60px;
  }
}

/* Para pantallas más pequeñas en altura */
@media (max-height: 600px) {
  .calculator-header h1 {
      font-size: 26px;
  }
  
  .warning-icon {
      width: 50px;
      height: 50px;
      margin: 45px 0 10px 0;
  }
  
  .main-message h2 {
      font-size: 46px;
  }
  
  .action-button-container {
      margin-bottom: 30px;
  }
  .titulo {
    margin: 0;
  }
  .contenedor-mapa-acciones {
    gap: 4px;
  }
}

/* Responsividad */
@media screen and (max-width: 768px) {
  .buscador-container input {
    width: 200px;
    font-size: 14px;
    padding: 8px 10px;
  }

  .buscador-container button {
    font-size: 16px;
    padding: 8px 12px;
  }

  #map {
    height: 60vh;
  }

  .acciones button {
    width: 140px;
    font-size: 16px;
    padding: 12px;
  }
}

@media screen and (max-width: 480px) {
  #map {
    height: 55vh;
  }

  .acciones button {
    width: 100px;
    font-size: 15px;
  }

  .buscador-container {
    top: 10px;
  }

  .buscador-container input {
    width: 160px;
    font-size: 12px;
    padding: 6px 8px;
  }

  .buscador-container button {
    font-size: 15px;
    padding: 6px 10px;
  }
}

.leaflet-touch .leaflet-control-layers, .leaflet-touch .leaflet-bar {
  cursor: pointer;
}