:root {
  --bg: #f4efe6;
  --arena: #f9f5ee;
  --verde: #1e3a34;
  --verde-2: #2f5f53;
  --texto: #393937;
  --borde: #e5dfd4;
  --accent: #6aa38c;
  --error: #b63e3e;
  --ok: #2d7a59;
  --shadow: 0 8px 30px rgba(0, 0, 0, .06);
}

.contacto {
  background: var(--bg);
  color: var(--texto);
  padding: clamp(1.25rem, 2vw, 2rem) 1rem 3rem;
}

.contacto-container {
  max-width: 1100px;
  margin: 0 auto;
}

.contacto-header {
  text-align: center;
  margin-bottom: 1.25rem;
}

.contacto-logo {
  width: 68px;
  height: auto;
  opacity: .9;
  margin-bottom: .5rem;
}

.contacto-titulo {
  font-family: "Playfair Display", serif;
  font-size: clamp(1.7rem, 3vw, 2.5rem);
  line-height: 1.2;
  color: var(--verde);
  margin: .25rem 0 .5rem;
}

.contacto-intro {
  max-width: 740px;
  margin: 0 auto;
  font-size: 1.05rem;
  color: #4a4a48;
  text-align: center;
  
}

.contacto-grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: 1fr;
  margin-top: 1.5rem;
}

@media (min-width: 900px) {
  .contacto-grid {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
    align-items: start;
  }
}

.contacto-col.izq .form,
.contacto-col.izq .mensaje-visual {
  background: #fff;
  border: 1px solid var(--borde);
  border-radius: 16px;
  box-shadow: var(--shadow);
}

.mensaje-visual {
  padding: 1rem 1.1rem;
  margin-bottom: 1rem;
  color: var(--verde-2);
  font-weight: 600;
  line-height: 1.5;
  background: #fffefc;
  text-align: center;
}

.form {
  padding: clamp(1rem, 2vw, 1.5rem);
}

.form .campo {
  display: grid;
  gap: .5rem;
  margin-bottom: 1rem;
}

.form label {
  font-weight: 700;
  color: var(--verde);
}

.form input[type="text"],
.form input[type="email"],
.form textarea {
  width: 100%;
  border: 1px solid var(--borde);
  border-radius: 12px;
  padding: .85rem 1rem;
  font: inherit;
  background: var(--arena);
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.form input:focus,
.form textarea:focus {
  border-color: var(--accent);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(106, 163, 140, .15);
  outline: none;
}

.form textarea {
  resize: none;
}

.campo-check {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: .75rem;
  margin: 1rem 0 1.25rem;
  border-top: 1px dashed var(--borde);
  padding-top: 1rem;
}


.campo-check label {
  color: var(--texto);
  font-weight: 600;
  font-size: small;
}


.enlace-legal {
  color: var(--verde-2);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.acciones {
  display: flex;
  gap: .75rem;
  align-items: center;
}

.btn-enviar {
  background: linear-gradient(135deg, #7cb9a1, #4f8c77);
  color: #fff;
  border: none;
  border-radius: 14px;
  padding: .9rem 1.2rem;
  font-weight: 800;
  cursor: pointer;
  transition: transform .08s ease, filter .2s ease;
}

.btn-enviar:hover {
  filter: brightness(1.02);
}

.btn-enviar:active {
  transform: translateY(1px);
}

button.enviando {
  opacity: .7;
  pointer-events: none;
}

.estado-form {
  margin-bottom: .75rem;
  font-size: .95rem;
  color: var(--verde);
  min-height: 1.25rem;
}

.error {
  color: var(--error);
  font-size: .85rem;
  min-height: 1rem;
}

.hidden-visually {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  white-space: nowrap !important;
  width: 1px !important;
}

/* Lado derecho */
.contacto-col.der {
  display: grid;
  gap: 1rem;
}

.tarjetas {
  display: grid;
  gap: 1rem;
}

.tarjeta {
  background: #fff;
  border: 1px solid var(--borde);
  border-radius: 16px;
  box-shadow: var(--shadow);
  padding: 1rem;
}

.tarjeta-titulo {
  font-weight: 800;
  color: var(--verde);
  margin-bottom: .25rem;
}

.tarjeta-detalle a {
  color: var(--verde-2);
}
.tarjeta-detalle{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.icono-contacto {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.ubicacion {
  background: #fff;
  border: 1px solid var(--borde);
  border-radius: 16px;
  box-shadow: var(--shadow);
  padding: 1rem;
}

.ubicacion-titulo {
  font-weight: 800;
  color: var(--verde);
  margin-bottom: .25rem;
}

.ubicacion-descripcion {
  margin-bottom: .75rem;
}

.ubicacion-imagen {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
}

/* Toast */
#toast {
  visibility: hidden;
  min-width: 250px;
  background-color: var(--ok);
  color: #fff;
  text-align: center;
  border-radius: 0.75rem;
  padding: 0.85rem 1rem;
  position: fixed;
  z-index: 1000;
  left: 50%;
  bottom: 30px;
  transform: translateX(-50%);
  font-weight: 800;
  box-shadow: var(--shadow);
}

#toast.show {
  visibility: visible;
  animation: fadein .35s, fadeout .35s 2.5s;
  
}

@keyframes fadein {
  from {
    bottom: 0;
    opacity: 0;
  }

  to {
    bottom: 30px;
    opacity: 1;
  }
}

@keyframes fadeout {
  from {
    bottom: 30px;
    opacity: 1;
  }

  to {
    bottom: 0;
    opacity: 0;
  }
}