.contacto-page{
  padding: 24px 0 70px;
}

/* HERO */
.ct-hero{
  padding-top: 18px;
  padding-bottom: 26px;
}

.ct-title{
  margin: 0 0 10px;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.05;
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  color: var(--text);
}

.ct-subtitle{
  margin: 0 0 18px;
  max-width: 820px;
  font-size: 1.05rem;
  line-height: 1.55;
  color: var(--muted);
}

.ct-wa-btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  border-radius: 999px;
  background: var(--blue);
  color: #fff;
  text-decoration: none;
  font-weight: 800;
  border: 1px solid rgba(15,23,42,0.06);
  box-shadow: 0 14px 24px rgba(15, 23, 42, 0.10);
}

.ct-wa-btn:hover{
  transform: translateY(-1px);
  opacity: .95;
  background: rgb(30, 75, 170); /* azul */
  color: #fff;
  border-color: rgb(30, 75, 170);
  box-shadow: 0 10px 18px rgba(37, 99, 235, 0.20);
}

.ct-wa-btn i{
  font-size: 1.05rem;
}

/* FORM */
.ct-form-section{
  margin-top: 18px;
}

.ct-h2{
  margin: 0 0 10px;
  font-weight: 800;
  letter-spacing: -0.02em;
  font-size: 2.35rem;
  color: var(--text);
}

.ct-form{
  max-width: 820px;
}

.ct-grid-2{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.ct-field{
  margin-bottom: 14px;
}

.ct-label{
  display: block;
  margin: 0 0 8px;
  font-weight: 700;
  font-size: 1.1rem;
  color: rgba(15,23,42,0.85);
}

.ct-input,
.ct-textarea{
  width: 100%;
  padding: 13px 14px;
  border-radius: 18px;
  border: 1px solid rgba(15,23,42,0.10);
  background: rgba(255,255,255,0.86);
  outline: none;
  color: var(--text);
  font-size: 1rem;
  box-shadow: 0 10px 22px rgba(15,23,42,0.05);
}

.ct-input::placeholder,
.ct-textarea::placeholder{
  color: rgba(37,99,235,0.70);
}

.ct-textarea{
  resize: vertical;
  min-height: 140px;
}

.ct-submit{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  border-radius: 999px;
  border: 0;
  background: var(--blue);
  color: #fff;
  font-weight: 800;
  box-shadow: 0 14px 24px rgba(15, 23, 42, 0.10);
  cursor: pointer;
}

.ct-submit:hover{
  transform: translateY(-1px);
  opacity: .95;
  background: rgb(30, 75, 170); /* azul */
  color: #fff;
  border-color: rgb(30, 75, 170);
  box-shadow: 0 10px 18px rgba(37, 99, 235, 0.20);
}

/* SPLIT: INFO + MAP */
.ct-split{
  margin-top: 40px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  align-items: stretch;
}

.ct-block{
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 22px;
  padding: 22px;
  box-shadow: 0 18px 30px rgba(15, 23, 42, 0.08);
  height: 100%;          /* <-- CLAVE */
  display: flex;         /* para que el contenido se ordene bonito */
  flex-direction: column;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

/* INFO LIST: full width + separación simétrica vertical */
.ct-block .ct-info-list{
  flex: 1;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between; /* <- simétrico arriba/medio/abajo */
  padding: 6px 0;
  gap: 0;
  padding-top: 10px;
}

.ct-block .ct-info-item{
    width: 100%;
    box-sizing: border-box;
}

.ct-info-item:hover {
    border-color: rgb(30, 75, 170); /* azul */
}


/* Que cada rectángulo ocupe todo el ancho del bloque */
.ct-info-item{
  width: 100%;
}

.ct-h3{
  margin: 0 0 14px;
  font-weight: 800;
  letter-spacing: -0.02em;
  font-size: 1.5rem;
  color: var(--text);
}

.ct-info-item{
  display: flex;
  align-items: center;
  gap: 12px;
  border-radius: 16px;
  border: 1px solid rgba(15,23,42,0.08);
  padding: 14px 14px;
  background: rgba(255,255,255,0.92);
}

.ct-info-icon{
  width: 38px;
  height: 38px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--blue-soft);
  color: var(--blue);
  flex: 0 0 auto;
}

.ct-info-icon i{
  font-size: 16px;
}

.ct-info-text{
  color: rgba(15,23,42,0.80);
  font-weight: 700;
  font-size: 1rem;
}

/* MAP */
.ct-map{
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(15,23,42,0.08);
  background: #e9eef5;
  box-shadow: 0 18px 30px rgba(15, 23, 42, 0.06);
  min-height: 200px;
}

.ct-map iframe{
  width: 100%;
  height: 320px;
  display: block;
}


.ct-map-placeholder{
  height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 8px;
  color: rgba(15,23,42,0.55);
  font-weight: 800;
}

.ct-map-placeholder i{
  font-size: 22px;
  color: rgba(37,99,235,0.85);
}

/* FAQ */
.ct-faq{
  margin-top: 40px;
}

.ct-faq-title{
  margin-bottom: 10px;
}

/* FAQ más ancho dentro del wrapper grande */
.ct-accordion{
  max-width: 100%;
}


/* Centrado “bonito” para el contenido principal */
.ct-narrow{
  max-width: 920px;
  margin: 0 auto;
}

.ct-split{
  margin-top: 40px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  align-items: start;

  /* opcional: igual que el wrapper */
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}


/* Que esta vista use un ancho similar al resto */
.contacto-page.app-container{
  max-width: 1200px;  /* súbelo a 1280px si quieres aún más aire */
}


/* =========================
   FIX: CENTRADO + ESCALA (CONTACTO)
   Pegar al FINAL del contacto.css
========================= */

/* El layout general estaba quedando muy angosto */
.ct-narrow{
  max-width: 1120px;   /* antes 920px */
  margin: 0 auto;
  width: 100%;
}

/* Este wrapper existe en tu HTML: cont-top */
.cont-top{
  max-width: 980px;    /* ancho cómodo como las otras vistas */
  margin: 0 auto;
  width: 100%;
}

/* HERO centrado REAL */
.ct-hero{
  padding-top: 22px;
  padding-bottom: 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* Título más “grande” estilo Home */
.ct-title{
  font-size: clamp(2.6rem, 5vw, 4.1rem); /* más grande que antes */
  line-height: 1.03;
  margin: 0 0 12px;
}

/* Subtítulo centrado (antes se quedaba a la izquierda) */
.ct-subtitle{
  margin: 0 auto 22px;      /* <- clave */
  max-width: 820px;
  font-size: 1.12rem;       /* un poco más grande */
}

/* Botón WhatsApp centrado */
.ct-wa-btn{
  margin: 0 auto;           /* <- clave */
}

/* Sección del form centrada como bloque */
.ct-form-section{
  max-width: 980px;
  margin: 0 auto;
  width: 100%;
  text-align: left;         /* que labels y campos queden “normales” */
}

/* Tu form tenía max-width pero sin margin auto */
.ct-form{
  max-width: none;
  width: 100%;
}

/* Inputs un poco más grandes */
.ct-input,
.ct-textarea{
  padding: 16px 18px;
  font-size: 1.05rem;
}

/* CTA submit alineado a la izquierda como en la maqueta */
.ct-submit{
  margin-top: 6px;
}


/* Split: que use el ancho completo del ct-narrow */
.ct-split{
  max-width: none;          /* antes 1100px forzado */
  margin-left: 0;
  margin-right: 0;
}


/* =========================
   FAQ (igual estilo Seguridad)
========================= */
.ct-faq{
  margin-top: 46px;
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}

.ct-faq-title{
  margin-bottom: 16px;
}

.ct-accordion{
  display: grid;
  grid-template-columns: 1fr; /* IMPORTANTÍSIMO: 1 columna */
  gap: 18px;
}

/* Card */
.ct-acc{
  width: 100%;
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(15,23,42,0.08);
  border-radius: 26px;
  box-shadow: 0 18px 30px rgba(15, 23, 42, 0.08);
  overflow: hidden;
}

/* Header clickable */
.ct-acc-summary{
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 22px 22px;
  cursor: pointer;
  font-weight: 800;
  color: rgba(15,23,42,0.92);
  font-size: 1.25rem;
}

/* Quita el triangulito default */
.ct-acc-summary::-webkit-details-marker{ display: none; }

.ct-acc-summary i{
  color: rgba(15,23,42,0.55);
  transition: transform .25s ease;
}

/* Rotación cuando abre */
.ct-acc[open] .ct-acc-summary i{
  transform: rotate(180deg);
}

/* Body */
.ct-acc-body{
  padding: 0 22px 22px;
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.6;
}

/* Hover suave */
.ct-acc-summary:hover{
  background: rgba(37,99,235,0.04);
}


/* CTA FINAL */
.con-cta{
  margin-top: 70px;
  background: #e9f0ff;
  border: 1px solid #dbe7ff;
  border-radius: 26px;
  padding: 64px 28px;
  text-align: center;
  box-shadow: 0 18px 30px rgba(15, 23, 42, 0.10);
}

.con-cta h2{
  margin: 0 0 12px;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.15;
  font-size: clamp(1.8rem, 3.2vw, 2.6rem);
  color: var(--text);
}

.con-cta p{
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.55;
  color: var(--muted);
}


.con-btn{
  display: inline-block;
  margin-top: 18px;
  padding: 14px 36px;
  border-radius: 999px;
  background: var(--blue);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: 1rem;
}

.con-btn:hover{
  transform: translateY(-1px);
  opacity: .95;
  background: rgb(30, 75, 170); /* azul */
  color: #fff;
  border-color: rgb(30, 75, 170);
  box-shadow: 0 10px 18px rgba(37, 99, 235, 0.20);
}

/* RESPONSIVE */
@media (max-width: 980px){
  .cont-top,
  .ct-form-section,
  .ct-accordion{
    max-width: 760px;
  }

  .ct-grid-2{
    grid-template-columns: 1fr;
  }

  .ct-split{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px){
  .ct-narrow,
  .cont-top,
  .ct-form-section,
  .ct-accordion{
    max-width: 100%;
  }

  .ct-title{
    font-size: clamp(2.1rem, 8vw, 2.8rem);
  }
}

/* ===== Teléfono estilo "registro" ===== */
.ct-phone{
  display: flex;
  align-items: stretch;
  width: 100%;

  /* un solo borde para todo el control */
  border: 1px solid rgba(15, 23, 42, 0.10);
  background: rgba(255,255,255,0.95);
  border-radius: 16px;
  overflow: hidden;
}

.ct-phone-prefix{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 10px 14px;
  font-weight: 800;
  color: rgba(15,23,42,0.80);

  background: rgba(15,23,42,0.03);
  border-right: 1px solid rgba(15, 23, 42, 0.10);

  /* evita que se achique */
  flex: 0 0 auto;

  border-top-left-radius: 16px;
  border-bottom-left-radius: 16px;
}

.ct-phone-input{
  flex: 1 1 auto;
  width: 100%;

  /* mata estilos del .ct-input si lo tiene */
  border: 0 !important;
  background: transparent !important;
  outline: none;

  padding: 10px 14px;
  font-weight: 600;
  border-top-right-radius: 16px;
  border-bottom-right-radius: 16px;
}

/* foco como el resto de inputs */
.ct-phone:focus-within{
  border-color: rgba(37, 99, 235, 0.45);
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
}

/* placeholder más parecido al resto */
.ct-phone-input::placeholder{
  color: rgba(15,23,42,0.45);
  font-weight: 600;
}


