/* ============================================================================
   Es Bassol Nou — Contact
   Calcado del mockup (vw/%): hero "Contact Us" sobre imagen, formulario ancho +
   "Get in touch with us" + datos, imagen piedra + "Let's Talk". Footer oliva.
   Desktop-first fiel; en móvil se apila.
   ========================================================================== */

.ct-hero,
.ct-body,
.ct-outro {
  position: relative;
}

/* --- HERO --------------------------------------------------------------- */
.ct-hero {
  height: 77.6vw;
  overflow: hidden;
  color: #dcc8b1;
}

.ct-hero__media {
  position: absolute;
  inset: 0;
}

.ct-hero__media picture,
.ct-outro__media picture {
  display: block;
  width: 100%;
  height: 100%;
}

.ct-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ct-hero__title {
  position: absolute;
  top: 17.7vw;
  left: 2.1%;
  right: 2.1%;
  display: flex;
  justify-content: space-between;
  font-family: var(--font-display);
  text-transform: uppercase;
  font-size: clamp(3rem, 9.375vw, 15rem);
  /* 180pt */
  line-height: 0.86;
}

/* --- FORM + GET IN TOUCH ------------------------------------------------ */
.ct-body {
  height: 101.5vw;
  background-color: var(--c-cream);
  color: var(--c-ink);
}

/* campos: label(placeholder) gris + línea inferior, anchos */
.ct-field {
  position: absolute;
  left: 10.3%;
  width: 79%;
}

.ct-field input,
.ct-field select {
  width: 100%;
  border: 0;
  border-bottom: 1px solid rgba(34, 31, 32, 0.5);
  background: transparent;
  font-family: var(--font-display);
  font-size: 1.6vw;
  color: var(--c-ink);
  padding: 0.4vw 0 0.35vw;
  line-height: 1;
  word-spacing: -0.02em;
  border-radius: 0;
}

.ct-field input::placeholder {
  color: #6d6e71;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: inherit;
}

.ct-field select {
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #6d6e71;
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  padding-right: 2em;
  text-overflow: ellipsis;
}

.ct-field input:focus,
.ct-field input:focus-visible,
.ct-field select:focus,
.ct-field select:focus-visible {
  background-color: transparent;
  border-bottom-color: rgba(34, 31, 32, 0.5);
  box-shadow: none;
  outline-color: currentColor;
}

.ct-field input:focus,
.ct-field input:focus-visible {
  color: var(--c-ink);
}

.ct-field select:focus,
.ct-field select:focus-visible {
  color: #6d6e71;
}

.ct-field input:autofill,
.ct-field input:-webkit-autofill,
.ct-field input:-webkit-autofill:hover,
.ct-field input:-webkit-autofill:focus {
  background-color: transparent !important;
  color: var(--c-ink);
  -webkit-text-fill-color: var(--c-ink);
  -webkit-box-shadow: 0 0 0 1000px var(--c-cream) inset;
  box-shadow: 0 0 0 1000px var(--c-cream) inset;
}

.ct-field select:autofill,
.ct-field select:-webkit-autofill,
.ct-field select:-webkit-autofill:hover,
.ct-field select:-webkit-autofill:focus {
  background-color: transparent !important;
  color: #6d6e71;
  -webkit-text-fill-color: #6d6e71;
  -webkit-box-shadow: 0 0 0 1000px var(--c-cream) inset;
  box-shadow: 0 0 0 1000px var(--c-cream) inset;
}

.ct-field--select {
  font-size: 1.6vw;
}

.ct-field--select::after {
  content: "\25BE";
  position: absolute;
  top: 50%;
  left: auto;
  right: 0.35em;
  transform: translateY(-58%) scale(1.55);
  transform-origin: center;
  font-size: inherit;
  line-height: 0.7;
  color: #6d6e71;
  pointer-events: none;
}

.ct-field:nth-of-type(1) {
  top: 7.55vw;
}

.ct-field:nth-of-type(2) {
  top: 17vw;
}

.ct-field:nth-of-type(3) {
  top: 26.6vw;
}

.ct-field:nth-of-type(4) {
  top: 36vw;
}

.ct-field:nth-of-type(5) {
  top: 45.6vw;
}

.form-privacy--contact {
  position: absolute;
  top: 50.7vw;
  left: 10.3%;
  width: 79%;
  margin: 0;
  text-align: center;
  color: #6d6e71;
}

.ct-submit {
  position: absolute;
  top: 54.7vw;
  left: 0;
  right: 0;
  text-align: center;
  background: none;
  border: 0;
  cursor: pointer;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 1.98vw;
  /* 38pt */
  color: #6d6e71;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.ct-or {
  position: absolute;
  top: 57.8vw;
  left: 0;
  right: 0;
  text-align: center;
  font-family: var(--font-display);
  font-size: 1.56vw;
  color: var(--c-ink);
}

.ct-touch {
  position: absolute;
  top: 71.9vw;
  left: 10.2%;
  font-family: var(--font-display);
  text-transform: uppercase;
  font-size: clamp(3.5rem, 5.21vw, 7rem);
  /* 100pt */
  line-height: 0.84;
  color: #221f20;
}

.ct-touch span {
  display: block;
  transform: translateX(var(--ct-touch-offset-x, 0));
}

.ct-touch span:nth-child(1) {
  --ct-touch-offset-x: -0.5em;
}

.ct-touch span:nth-child(2) {
  margin-left: 0.85em;
  --ct-touch-offset-x: 0px;
}

.ct-touch span:nth-child(3) {
  margin-left: 1.7em;
  --ct-touch-offset-x: 0.5em;
}

.ct-info {
  position: absolute;
  top: 71.7vw;
  left: 67%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 13.13vw;
  font-style: normal;
  font-size: 1.56vw;
  /* 30pt */
  line-height: 1.2;
  color: var(--c-ink);
}

.ct-info a,
.ct-info span {
  display: block;
}

.ct-info__label {
  margin-top: 0.1em;
  text-transform: uppercase;
}

/* "INSTAGRAM" como el PDF */
.ct-info a:hover {
  opacity: 0.6;
}

/* --- OUTRO (piedra + Let's Talk) ---------------------------------------- */
.ct-outro {
  height: 91vw;
  overflow: visible;
}

.ct-outro__media {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.ct-outro__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ct-outro .lets-talk {
  position: absolute;
  right: 11.7%;
  bottom: 0;
  height: 25vw;
}

/* ========================================================================
   MÓVIL: apilado
   ======================================================================== */
@media (max-width: 63.99rem) {
  .ct-hero {
    height: 70vw;
  }

  .ct-hero__media img {
    object-position: center;
  }

  .ct-hero__title {
    top: 17.7vw;
    bottom: auto;
    left: 2.1%;
    right: 2.1%;
    transform: none;
    font-size: clamp(3rem, 9.375vw, 15rem);
    line-height: 0.86;
  }

  .ct-body {
    height: auto;
    padding: clamp(1.5rem, 6vw, 3rem) 8% clamp(5rem, 17vw, 9rem);
    background-image: repeating-linear-gradient(90deg,
        rgba(34, 31, 32, 0.045) 0 1px, transparent 1px 25%);
  }

  .ct-form {
    display: grid;
    gap: clamp(1.75rem, 7vw, 3rem);
  }

  .form-privacy--contact {
    position: static;
    width: auto;
    margin-block: -1rem;
    text-align: left;
  }

  .ct-field,
  .ct-submit,
  .ct-or,
  .ct-touch,
  .ct-info {
    position: static;
    left: auto;
    right: auto;
    width: auto;
    top: auto;
    display: block;
    text-align: left;
    margin: 0;
  }

  .ct-form .ct-field {
    top: auto;
  }

  .ct-field input,
  .ct-field select {
    font-size: clamp(1.15rem, 4.5vw, 1.8rem);
    padding: 0.35em 0 0.35em;
  }

  .ct-field select {
    padding-right: 2em;
  }

  .ct-field input::placeholder {
    font-size: inherit;
  }

  .ct-field--select::after {
    top: 50%;
    left: auto;
    right: 0.35em;
  }

  .ct-form .ct-field--select {
    position: relative;
    top: auto;
    font-size: clamp(1.15rem, 4.5vw, 1.8rem);
  }

  .ct-submit {
    margin-top: clamp(1rem, 5vw, 2rem);
    text-align: center;
    font-size: clamp(1.15rem, 4.5vw, 1.8rem);
  }

  .ct-or {
    margin: clamp(2.5rem, 10vw, 5rem) 0 clamp(4.5rem, 16vw, 8rem);
    text-align: center;
    font-size: clamp(1rem, 4vw, 1.5rem);
  }

  .ct-touch {
    font-size: clamp(3.5rem, 5.21vw, 7rem);
    width: max-content;
    margin: 0 auto;
  }

  .ct-info {
    height: auto;
    margin-top: clamp(3rem, 12vw, 6rem);
    font-size: clamp(1rem, 4vw, 1.45rem);
    line-height: 1.25;
    overflow-wrap: anywhere;
  }

  .ct-info__bottom {
    margin-top: 1.25em;
  }

  .ct-outro {
    height: 75vw;
    overflow: hidden;
  }
}

@media (max-width: 47.99rem) {
  .ct-outro .lets-talk {
    right: 11.5%;
    width: 12.4%;
  }
}
