/**
 * Cotizador — usa los globales de Elementor, así que respeta la paleta del
 * sitio sin repetir hex: si cambia el kit, cambia el cotizador.
 */
.gtc{
  --gtc-tinta:var(--e-global-color-primary,#12303A);
  --gtc-brasa:var(--e-global-color-secondary,#A24726);
  --gtc-cal:var(--e-global-color-text,#F5F0E8);
  --gtc-piedra:var(--e-global-color-accent,#6B7477);
  --gtc-niebla:#E4DDD1;
  --gtc-card:#FFFDF9;
  --gtc-tinta70:#3D6570;
  --gtc-n50:#FBF8F3;
  --gtc-sans:"Archivo",Helvetica,sans-serif;
  --gtc-serif:"Source Serif 4",Georgia,serif;
  --gtc-mono:"Archivo",Helvetica,sans-serif;
  font-family:var(--gtc-sans);color:var(--gtc-tinta);
}

/* ---- Pasos ------------------------------------------------------------- */
.gtc__pasos{display:flex;flex-wrap:wrap;gap:0;list-style:none;margin:0 0 40px;padding:0;
  border-bottom:1px solid var(--gtc-niebla)}
.gtc__paso{display:flex;align-items:center;gap:8px;padding:0 20px 14px 0;
  font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gtc-piedra);border-bottom:2px solid transparent;margin-bottom:-1px}
.gtc__paso.is-actual{color:var(--gtc-tinta);border-bottom-color:var(--gtc-brasa)}
.gtc__paso.is-hecho{color:var(--gtc-brasa)}
.gtc__paso-n{display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border:1px solid currentColor;border-radius:2px;
  font-family:var(--gtc-mono);font-weight:600;font-size:11px;letter-spacing:0}
@media(max-width:700px){.gtc__paso-l{display:none}.gtc__paso{padding-right:10px}}

/* ---- Encabezado -------------------------------------------------------- */
.gtc__head{margin-bottom:28px}
.gtc__eyebrow{display:block;font-size:12px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gtc-brasa);margin-bottom:12px}
.gtc__h{font-family:var(--gtc-serif);font-weight:400;font-size:32px;line-height:1.18;
  letter-spacing:-.014em;margin:0 0 10px;color:var(--gtc-tinta)}
.gtc__lead{font-family:var(--gtc-serif);font-size:19px;line-height:1.7;
  color:var(--gtc-tinta70);margin:0;max-width:60ch}
@media(max-width:700px){.gtc__h{font-size:26px}.gtc__lead{font-size:17px}}


/* Nota de especificidad: el kit de Elementor estiliza `button` con
   `.elementor-kit-N button` (0,1,1), que le gana a una sola clase (0,1,0).
   Por eso las reglas de botón van ancladas a `.gtc` — sin !important. */

/* ---- Tarjetas ---------------------------------------------------------- */
.gtc__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.gtc__grid--simple{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
@media(max-width:900px){.gtc__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.gtc__grid{grid-template-columns:1fr}}

.gtc .gtc__card{position:relative;display:flex;flex-direction:column;text-align:left;
  background:var(--gtc-card);border:1px solid var(--gtc-niebla);border-radius:3px;
  padding:0;cursor:pointer;font:inherit;color:inherit;min-width:0;
  overflow-wrap:anywhere;hyphens:auto;
  transition:border-color .22s,box-shadow .22s,transform .22s,background-color .22s}
/* Sólo la variante con imagen recorta; las de texto deben poder crecer. */
.gtc .gtc__card:has(.gtc__card-img){overflow:hidden}
.gtc .gtc__card:hover{border-color:var(--gtc-tinta);background:#E9EDEE;
  box-shadow:0 10px 28px -14px rgba(18,48,58,.28);transform:translateY(-2px)}
.gtc .gtc__card.is-on{border-color:var(--gtc-tinta);box-shadow:inset 0 0 0 1px var(--gtc-tinta)}
.gtc .gtc__card.is-on::after{content:"";position:absolute;top:12px;right:12px;width:18px;height:18px;
  border-radius:2px;background:var(--gtc-brasa) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F5F0E8' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/12px no-repeat}
.gtc .gtc__card:focus-visible{outline:none;box-shadow:0 0 0 2px var(--gtc-cal),0 0 0 4px var(--gtc-brasa)}

.gtc .gtc__card--simple{padding:20px;min-height:0}
.gtc .gtc__card-img{display:block;width:100%;aspect-ratio:4/3;background:var(--gtc-niebla) center/cover no-repeat}
.gtc .gtc__card-body{display:flex;flex-direction:column;gap:8px;padding:18px}
.gtc .gtc__card--simple .gtc__card-body{padding:0}
.gtc .gtc__card-eyebrow{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gtc-brasa)}
.gtc .gtc__card-t{font-family:var(--gtc-serif);font-weight:600;font-size:19px;line-height:1.3;
  color:var(--gtc-tinta);overflow-wrap:anywhere}
.gtc .gtc__card-d{font-size:14px;line-height:1.55;color:var(--gtc-tinta70)}
.gtc .gtc__card-m{font-family:var(--gtc-mono);font-weight:500;font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--gtc-piedra);margin-top:4px;padding-top:10px;border-top:1px solid var(--gtc-niebla)}
.gtc .gtc__card--simple .gtc__card-m{border:0;padding:0;margin-top:6px}
.gtc__reco{position:absolute;top:0;left:0;z-index:2;background:var(--gtc-brasa);color:var(--gtc-cal);
  font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:5px 10px}
.gtc .gtc__card--simple .gtc__card-t{font-size:20px}


/* El tema estiliza `button` con white-space:nowrap, así que el texto de las
   tarjetas no envolvía y se recortaba. Se fuerza el ajuste normal en la
   tarjeta y en todo lo que lleva dentro. */
.gtc .gtc__card,
.gtc .gtc__card *{white-space:normal;text-overflow:clip}
.gtc .gtc__card-t,
.gtc .gtc__card-d,
.gtc .gtc__card-m,
.gtc .gtc__card-eyebrow{overflow-wrap:anywhere;word-break:normal;hyphens:auto;max-width:100%}
/* Las columnas deben poder encogerse: con minmax fijo, un título largo
   empujaba la rejilla fuera del panel. */
.gtc__grid--simple{grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr))}
.gtc__grid,.gtc__grid--simple{min-width:0}
.gtc__grid > *{min-width:0}

/* ---- Campos ------------------------------------------------------------ */
.gtc__campos{display:grid;gap:18px;margin-top:28px}
.gtc__campos--2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:600px){.gtc__campos--2{grid-template-columns:1fr}}
.gtc__campo{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}
.gtc__campo span{font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gtc-tinta)}
.gtc__campo input,.gtc__campo textarea{font:400 16px/1.5 var(--gtc-sans);color:var(--gtc-tinta);
  background:#fff;border:1px solid #CFC5B5;border-radius:2px;padding:12px 14px;width:100%}
.gtc__campo input:focus,.gtc__campo textarea:focus{outline:none;border-color:var(--gtc-tinta);
  box-shadow:inset 0 0 0 1px var(--gtc-tinta)}
.gtc__check{display:flex;gap:12px;align-items:flex-start;font-size:15px;color:var(--gtc-tinta70);
  margin:8px 0 4px;cursor:pointer}
.gtc__check input{width:20px;height:20px;flex:none;accent-color:var(--gtc-brasa);margin:0}
.gtc__hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

/* ---- Resumen ----------------------------------------------------------- */
.gtc__resumen-box{background:var(--gtc-n50);border:1px solid var(--gtc-niebla);border-radius:3px;
  padding:22px;margin-bottom:28px}
.gtc__resumen-box dl{display:grid;gap:10px;margin:14px 0 0}
.gtc__resumen-box dl > div{display:grid;grid-template-columns:130px 1fr;gap:14px;
  padding-bottom:10px;border-bottom:1px solid var(--gtc-niebla)}
.gtc__resumen-box dl > div:last-child{border-bottom:0;padding-bottom:0}
.gtc__resumen-box dt{font-family:var(--gtc-mono);font-weight:500;font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gtc-piedra)}
.gtc__resumen-box dd{margin:0;font-size:15px;line-height:1.5;color:var(--gtc-tinta)}
@media(max-width:600px){.gtc__resumen-box dl > div{grid-template-columns:1fr;gap:2px}}

/* ---- Barra ------------------------------------------------------------- */
.gtc__barra{display:flex;align-items:center;gap:16px;margin-top:36px;padding-top:24px;
  border-top:1px solid var(--gtc-niebla)}
.gtc__resumen{flex:1;font-family:var(--gtc-mono);font-weight:500;font-size:12px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gtc-piedra)}
.gtc .gtc__btn{font:600 15px/1 var(--gtc-sans);letter-spacing:.06em;border-radius:2px;
  padding:15px 24px;cursor:pointer;border:1px solid transparent;transition:background-color .12s,border-color .12s,color .12s}
.gtc .gtc__btn--pri{background:var(--gtc-brasa);border-color:var(--gtc-brasa);color:var(--gtc-cal)}
.gtc .gtc__btn--pri:hover{background:#8C3C1F;border-color:#8C3C1F}
.gtc .gtc__btn--sec{background:transparent;border-color:#CFC5B5;color:var(--gtc-tinta)}
.gtc .gtc__btn--sec:hover:not(:disabled){border-color:var(--gtc-tinta);background:#E9EDEE}
.gtc .gtc__btn:disabled{opacity:.4;cursor:not-allowed}
@media(max-width:600px){.gtc__resumen{display:none}.gtc__btn{flex:1}}

/* ---- Estados ----------------------------------------------------------- */
.gtc__cargando,.gtc__vacio{font-family:var(--gtc-serif);font-size:18px;color:var(--gtc-tinta70);
  padding:32px 0;margin:0}
.gtc__aviso{margin-top:18px;padding:14px 16px;background:#F7EBD6;border-left:2px solid #D9A44E;
  font-size:14px;line-height:1.55;color:#8A5E12}
.gtc__error{margin-top:16px;padding:14px 16px;background:#F4E1DE;border-left:2px solid #94291B;
  font-size:14px;color:#94291B}
.gtc__folio{font-family:var(--gtc-mono);font-weight:500;font-size:13px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--gtc-piedra);margin-top:18px}

@keyframes gtc-sacude{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.gtc--sacude{animation:gtc-sacude .22s}
@media(prefers-reduced-motion:reduce){
  .gtc--sacude{animation:none}
.gtc .gtc__card{transition:none}
.gtc .gtc__card:hover{transform:none}
}
