.gsf-container { --pri:#A70932; --muted:rgba(97, 93, 94, 0.1); --ink:#312D2E; --bg:#fff; }
.gsf-container * { box-sizing: border-box; font-family: "Geist", Sans-serif }
.gsf-container .required {color: var(--pri);}


.gsf-steps { display:flex; align-items:center; gap:10px; margin:0 0 16px; }
.gsf-step-line { flex:1; height:2px; background: var(--muted); }
.gsf-step-dot { display:flex; flex-direction:column; align-items:center; gap:6px; }
.gsf-step-dot span{
  width:34px; height:34px; border-radius:50%; display:grid; place-items:center;
  background: transparent; color:#555; font-weight:600; border: 1px solid var(--muted);
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.gsf-step-dot.active span{ background: var(--pri); color:#fff; transform: translateY(-1px); }
.gsf-step-dot small{ font-size:12px; color:#555; }

.gsf-form {background:var(--bg);margin-top: 3rem;}

/* ===== Animações dos steps ===== */
/* Estado base: escondido */
.gsf-step-panel{ display:none; }
/* preparação para entrada */
.gsf-step-panel.is-pre{ display:block; opacity:0; transform:translateY(10px); }
/* ativo (visível) */
.gsf-step-panel.active{
  display:block;
  opacity:1; transform:translateY(0);
  transition: opacity .28s ease, transform .28s ease;
}
/* saindo */
.gsf-step-panel.leaving-left,
.gsf-step-panel.leaving-right{
  display:block;
  opacity:0; transform:translateY(-8px);
  transition: opacity .26s ease, transform .26s ease;
}
/* entrando direcional (leve slide) */
.gsf-step-panel.enter-right{ /* vindo do botão "Continuar" */
  display:block; opacity:1; transform:translateX(0);
  animation: gsf-enter-right .28s ease both;
}
.gsf-step-panel.enter-left{  /* vindo do botão "Voltar" */
  display:block; opacity:1; transform:translateX(0);
  animation: gsf-enter-left .28s ease both;
}
@keyframes gsf-enter-right{
  from{ opacity:0; transform:translateX(12px); }
  to  { opacity:1; transform:translateX(0); }
}
@keyframes gsf-enter-left{
  from{ opacity:0; transform:translateX(-12px); }
  to  { opacity:1; transform:translateX(0); }
}

.gsf-step-panel h3 {font-family: "Tomato Grotesk", Sans-serif;margin: 0 0 32px;color:var(--ink);display: flex;align-items: center;gap: 10px;}
.gsf-step-panel h4 { font-family: "Tomato Grotesk", Sans-serif;  margin:14px 0 32px; color:var(--ink); }
.gsf-step-panel h3 img { width: 60px; height: 60px; position: relative; top: 2px; }

.gsf-row {display:flex;flex-wrap:wrap;gap: 24px;}
.gsf-row label {display:flex;flex-direction:column;gap:6px;color:var(--ink);font-weight: 600;font-size: 15px;line-height: 140%;}
.gsf-row input, .gsf-row select, .gsf-row textarea {
  border-radius: 6px !important;
  padding: 16px 22px !important;
  font-size: 15px;
  background: #F5F4F5;
  border: 0 !important;
  transition: box-shadow .2s ease, transform .2s ease;
}
.gsf-row input:focus, .gsf-row select:focus, .gsf-row textarea:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(167,9,50,.18);
}

.gsf-row input[type="tel"]{
  border-radius: 6px !important;
  padding: 16px 22px 14px 94px!important;
  font-size:14px;
  background: #F5F4F5;
  border: 0 !important;
}

.w50{flex: 1 1 calc(50% - 24px);min-width:240px;}
.w33{ flex:1 1 calc(33.33% - 24px); min-width:200px; }
.w100{ flex:1 1 100%; }

.gsf-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;}
.gsf-actions .gsf-prev, .gsf-actions .gsf-next, .gsf-actions .gsf-submit, .gsf-popup-close{
  padding: 14px 48px;
  border-radius: 100px;
  border:0;
  cursor:pointer;
  font-weight:600;
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease, opacity .16s ease;
  will-change: transform;
}
.gsf-actions .gsf-prev{ background:#e5e7eb; color: #615D5E !important; }
.gsf-actions .gsf-prev:hover{ background:#d1d2d5; color: #615D5E !important; }
.gsf-actions .gsf-next, .gsf-actions .gsf-submit{
  background: #A70932;
  background: linear-gradient(180deg, rgba(167, 9, 50, 1) 0%, rgba(215, 61, 101, 1) 100%);
  color:#fff;
  font-family: "Tomato Grotesk", sans-serif;
  border: 1px solid #900025;
  box-shadow: inset -2px 3px 0px rgba(255, 255, 255, 0.43), 0 6px 14px rgba(167,9,50,.18);
}
.gsf-actions .gsf-next:hover, .gsf-actions .gsf-submit:hover{
  filter: brightness(1.03);
  box-shadow: inset -2px 3px 0px rgba(255,255,255,.43), 0 8px 18px rgba(167,9,50,.24);
}
.gsf-actions .is-press{ transform: scale(.98); }

.gsf-note div { width: 280px; }
.gsf-note div a { color: #312D2E; font-weight: 600; text-decoration: underline; }
.gsf-note{ flex:1; font-size:12px; color: #969696; display:flex; align-items:center; gap: 5px; }
.gsf-actions button[disabled]{opacity:.6;cursor:not-allowed;}

.gsf-error{font-size:12px;color:#b91c1c;margin-top:4px;}
.gsf-spinner{width:14px;height:14px;border:2px solid #fff;border-top-color:transparent;border-radius:50%;display:inline-block;animation:spin 1s linear infinite;margin-left:6px;}
@keyframes spin{to{transform:rotate(360deg)}}

/* mostra o spinner no canto direito do label enquanto busca o CEP */
.gsf-row label.gsf-loading { position: relative; }
.gsf-row label.gsf-loading::after{
  content:""; position:absolute; right:10px; top:50%;
  width:14px; height:14px; margin-top:-7px;
  border:2px solid #999; border-top-color:transparent;
  border-radius:50%; animation:spin 1s linear infinite;
}

.gsf-loading{position:relative;}
.gsf-loading::after{
  content:""; position:absolute; right:10px;top:50%;
  width:14px;height:14px; margin-top:-7px;
  border:2px solid #999;border-top-color:transparent;
  border-radius:50%; animation:spin 1s linear infinite;
}

.gsf-container hr {
  background-color: transparent !important;
  margin: 0 !important;
  border: 1px solid #F2F2F2 !important;
  margin: 2.3rem 0 !important;
}

.gsf-resumo { background:#f9fafb; border:1px solid #eee; border-radius:8px; padding:12px; font-size:14px; }
.gsf-resumo .row{display:flex;gap:8px;padding: 8px 0;border-bottom:1px dashed #eee;}
.gsf-resumo .row:last-child{ border-bottom:0; }
.gsf-resumo .k{ width:220px; color:#6b7280; }
.gsf-resumo .v{ flex:1; color:#111827; }

/* ===== Popup animado ===== */
dialog#gsf-popup { border:0; border-radius:12px; padding:0; }
#gsf-popup::backdrop { background: #00000085; backdrop-filter: blur(5px); animation: gsf-backdrop .28s ease both; }
@keyframes gsf-backdrop{ from{ opacity:0 } to{ opacity:1 } }

.gsf-popup-card{
  padding: 32px; max-width: 400px; display: flex; flex-direction: column; align-items: center;
  animation: gsf-pop-in .28s cubic-bezier(.2,.7,.3,1) both;
}
.gsf-popup-card.closing{ animation: gsf-pop-out .22s ease forwards; }

@keyframes gsf-pop-in{
  from{ opacity:0; transform: translateY(10px) scale(.96); }
  to  { opacity:1; transform: translateY(0) scale(1); }
}
@keyframes gsf-pop-out{
  from{ opacity:1; transform: translateY(0) scale(1); }
  to  { opacity:0; transform: translateY(8px) scale(.96); }
}

.gsf-popup-card p {font-family: 'Geist';text-align:center;color:#4c4c4c; font-size: 15px;}
.gsf-popup-card h4 {font-family: 'Tomato Grotesk', Arial;color: var(--ink); font-size: 28px;}
.gsf-popup-card .gsf-popup-close {
  background: #A70932;
  background: linear-gradient(180deg, rgba(167, 9, 50, 1) 0%, rgba(215, 61, 101, 1) 100%);
  color:#fff; font-family: "Tomato Grotesk", sans-serif;
  border: 1px solid #900025;
  box-shadow: inset -2px 3px 0px rgba(255, 255, 255, 0.43), 0 6px 14px rgba(167,9,50,.18);
}

/* intl-tel-input */
.iti { width: 100%; }
.iti__country-list { max-height: 240px; overflow:auto; }

@media (max-width: 600px) {
  .gsf-actions { display: flex; flex-direction: column; }
  .gsf-step-panel h3 { font-size: 24px; }
  .gsf-row input, .gsf-row select, .gsf-row textarea, .gsf-row label { font-size: 14px; }
  .gsf-actions .gsf-next, .gsf-actions .gsf-submit, .gsf-actions .gsf-prev { width: 100%; }
}

/* === NOVO: Upload “clique para enviar” === */
.gsf-upload { display:block; margin-top: 10px;}
.gsf-upload-input { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; padding:0; margin:-1px; }
.gsf-upload-box {
  display:flex; gap:14px; align-items:center; width:100%;
  border:1px dashed rgba(49,45,46,.25); border-radius:10px;
  padding:16px 18px; background:#F5F4F5; cursor:pointer; transition:border-color .2s ease, background .2s ease, box-shadow .2s ease;
  flex-direction: column;
}
.gsf-upload-box:hover { border-color: rgba(167,9,50,.6); box-shadow: 0 0 0 3px rgba(167,9,50,.12) inset; }
.gsf-upload-box.is-drag { background:#f1e7ea; border-color:#A70932; }
.gsf-upload-ic { color:#A70932; display:grid; place-items:center; }
.gsf-upload-txt strong { display:block; color:#312D2E; font-weight:700; margin-bottom:4px; }
.gsf-upload-txt small { display:block; color:#6b6b6b; margin-bottom:6px; }
.gsf-upload-file { display:block; font-size:12px; color:#7a7a7a; }

/* === NOVO: Outros destinos (rotas) === */
.gsf-extra-wrap { margin-top: 18px; }
.gsf-extra-add {
  display: inline-flex !important;
  align-items:center;
  gap:8px;
  background:transparent;
  border: 1px dashed var(--pri) !important;
  color: var(--pri) !important;
  padding: 10px 14px !important;
  border-radius: 6px !important;
  cursor: pointer !important;
  transition: background .2s ease, border-color .2s ease, transform .1s ease !important;
  width: 100% !important;
  justify-content: center !important;
  margin-top: 10px;
}
.gsf-extra-add:hover { background:var(--pri) !important; color: white !important;}
.gsf-extra-add svg { color:#A70932; }
.gsf-extra-add:hover svg { color:#fff; }

.gsf-extra-routes { display:grid; gap:16px; margin-top:14px; }
.gsf-route {
  border:1px solid #e7e7e7; border-radius:12px; padding:14px; background:#fff;
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
}
.gsf-route-head {
  display:flex; justify-content:space-between; align-items:center; margin-bottom:10px;
}
.gsf-route-actions { display:flex; gap:8px; }
.gsf-route-actions button {
  background:#f6f6f6; border:1px solid #e1e1e1; border-radius:10px; padding:8px; cursor:pointer;
  display:inline-grid; place-items:center; transition:background .2s ease, border-color .2s ease, transform .1s ease;
}
.gsf-route-actions button:hover { background:#f1f1f1; border-color:#d7d7d7; }
.gsf-route-actions svg { color:#312D2E; }

