/* ============================= */
/* BASE */
/* ============================= */

body{
  background: url(../media/9.svg);
  background-size: cover;
  background-repeat: no-repeat;
  overflow-x: hidden;
}

*{
  box-sizing: border-box;
}

html, body{
  max-width: 100%;
  overflow-x: hidden;
}

/* ============================= */
/* WRAPPER */
/* ============================= */

.contact-us{
  width: 100%;
  padding: clamp(240px, 22vh, 300px) 5% 120px;
}

/* TITLE */

.contact-us .title{
  display: flex;
  justify-content: center;
  align-items: center;
}

.contact-us .title h2{
  font-weight: 700;
  color: #bf9f34;
  font-size: clamp(40px, 5vw, 70px);

  display: inline-block;
  transform: scaleY(1.4);
  transform-origin: bottom;
}

/* ============================= */
/* GRID STRUCTURE */
/* ============================= */

.box{
  display: grid;
  grid-template-columns: 2fr 1fr;
  grid-template-rows: auto auto;
  grid-template-areas:
    "form info"
    "form map";

  gap: clamp(20px, 3vw, 40px);
  margin-top: 60px;
  width: 100%;
}

/* AREAS */

.form{ grid-area: form; }
.info{ grid-area: info; }
.map{ grid-area: map; }

/* ============================= */
/* CARDS */
/* ============================= */

.contact,
.info{
  width: 100%;

  box-shadow: 20px 20px 22px rgba(0,0,0,0.2);
  border: 1px solid rgba(255,255,255,0.1);
  background-color: rgba(255,255,255,0.06);
  backdrop-filter: blur(20px);

  padding: clamp(30px, 3vw, 45px);
  border-radius: 20px;
}

/* ============================= */
/* FORM */
/* ============================= */

.form-box{
  width: 100%;
}

.form-box .row50{
  display: flex;
  gap: 20px;
  width: 100%;
}

.row100{
  width: 100%;
}

.input-box{
  display: flex;
  flex-direction: column;
  width: 100%;
  margin-bottom: 15px;
}

.row50 .input-box{
  flex: 1;
  min-width: 0; /* 🔥 evita overflow horizontal */
}

.input-box span{
  margin-bottom: 6px;
  color: #fff;
}

.input-box input,
.input-box textarea{
  width: 100%;
  max-width: 100%;
  padding: 12px;
  border-radius: 15px;
  border: 1px solid #fff;
  background: transparent;
  color: #fff;
  font-size: 1rem;
}

.input-box textarea{
  resize: none;
  min-height: 200px;
}

/* BUTTON */

#submitbuttoncontact{
  background: transparent;
  border: 2px solid #fff;
  padding: 12px 30px;
  border-radius: 15px;
  color: #fff;
  transition: .3s ease;
}

#submitbuttoncontact:hover{
  backdrop-filter: blur(6px);
}

/* ============================= */
/* INFO */
/* ============================= */

.info{
  background:
    linear-gradient(rgba(0,0,0,0.75), rgba(0,0,0,0.75)),
    url("https://grainy-gradients.vercel.app/noise.svg");
}

.info h3{
  color: #fff;
  margin-bottom: 20px;
}

.info .info-box div{
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 15px;
}

.info .info-box div span{
  min-width: 40px;
  height: 40px;
  border-radius: 50%;

  display: flex;
  justify-content: center;
  align-items: center;

  color: #fff;
  background-color: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.2);
}

.info .info-box div p,
.info .info-box div a{
  color: #fff;
  text-decoration: none;
  font-size: 1rem;
}

/* ============================= */
/* MAP */
/* ============================= */

.map{
  border-radius: 20px;
  overflow: hidden; /* 🔥 evita desbordes */
}

.map iframe{
  width: 100% !important;
  height: 100%;
  min-height: 300px;
  border: 0;
}

/* ============================= */
/* RESPONSIVE */
/* ============================= */

@media (max-width: 990px){

  .contact-us{
    padding: 180px 20px 80px;
  }

  .box{
    grid-template-columns: 1fr;
    grid-template-areas:
      "form"
      "info"
      "map";
    width: 100%;
  }

  .form-box .row50{
    flex-direction: column;
    width: 100%;
  }

  .row50 .input-box{
    width: 100%;
    flex: none;
  }

  .input-box input,
  .input-box textarea{
    width: 100%;
  }

  .map{
    width: 100%;
    overflow: hidden;
  }

  .map iframe{
    width: 100% !important;
    max-width: 100%;
    display: block;
  }

  .box{
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
  }

  .contact,
  .info{
    box-shadow: 0 15px 25px rgba(0,0,0,0.25);
  }

}

.contact-us,
.box,
.contact,
.info,
.map{
  max-width: 100%;
}