/* ============================================================
   DPaula Global Services — formularios de servico (modal)
   Arquivo independente: nao altera nenhum estilo existente.
   Todo seletor vive sob .dpgf-* para nao colidir com o site.
   ============================================================ */

.dpgf-open{ overflow:hidden; }

/* ---------- overlay ---------- */
.dpgf-ov{
  position:fixed; inset:0; z-index:200;
  display:flex; align-items:center; justify-content:center;
  padding:24px;
  background:rgba(9,19,38,.62);
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
  opacity:0; visibility:hidden;
  transition:opacity .28s ease, visibility .28s ease;
}
.dpgf-ov.on{ opacity:1; visibility:visible; }

/* ---------- caixa ---------- */
.dpgf-box{
  width:min(760px,100%);
  max-height:min(92dvh,900px);
  display:flex; flex-direction:column;
  background:var(--cream,#fbf6ec);
  border-radius:18px;
  box-shadow:0 50px 110px -34px rgba(0,0,0,.62);
  overflow:hidden;
  transform:translateY(18px) scale(.985);
  transition:transform .34s cubic-bezier(.22,.7,.28,1);
}
.dpgf-ov.on .dpgf-box{ transform:none; }

/* ---------- topo ---------- */
.dpgf-head{
  position:relative; flex-shrink:0;
  background:var(--navy,#12294d);
  padding:22px 60px 20px 28px;
}
.dpgf-eyebrow{
  display:flex; align-items:center; gap:8px;
  font-family:var(--sans,inherit);
  font-size:11.5px; font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; color:var(--gold-light,#d4b877);
}
.dpgf-title{
  font-family:var(--serif,Georgia,serif);
  font-size:25px; font-weight:700; line-height:1.2;
  color:#fff; margin-top:7px;
}
.dpgf-sub{
  font-size:13.5px; line-height:1.55; color:#9fb0cc; margin-top:9px;
  max-width:56ch;
}
.dpgf-x{
  position:absolute; top:18px; right:18px;
  width:36px; height:36px; border-radius:50%;
  border:1px solid rgba(255,255,255,.24); background:transparent;
  color:#fff; font-size:19px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.dpgf-x:hover{ background:rgba(255,255,255,.13); border-color:var(--gold,#bf9b52); }
.dpgf-x:active{ transform:scale(.93); }

/* ---------- barra de progresso ---------- */
.dpgf-steps{
  flex-shrink:0; display:flex; align-items:center; gap:12px;
  padding:12px 28px; background:var(--cream-alt,#f6efdd);
  border-bottom:1px solid rgba(191,155,82,.3);
}
.dpgf-steps .lbl{
  font-size:12px; font-weight:700; letter-spacing:.06em;
  color:var(--gold-dark,#a97f2f); text-transform:uppercase; white-space:nowrap;
}
.dpgf-bar{ flex:1; height:5px; border-radius:99px; background:rgba(18,41,77,.13); overflow:hidden; }
.dpgf-bar i{
  display:block; height:100%; width:100%;
  background:var(--gold,#bf9b52);
  transform:scaleX(0); transform-origin:left center;
  transition:transform .4s cubic-bezier(.22,.7,.28,1);
}
.dpgf-time{
  font-size:12px; font-weight:600; color:#6b7a91; white-space:nowrap;
}

/* ---------- corpo rolavel ---------- */
.dpgf-body{
  flex:1; overflow-y:auto; padding:26px 28px 8px;
  -webkit-overflow-scrolling:touch;
}
.dpgf-sec-title{
  font-family:var(--sans,inherit);
  font-size:11.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold-dark,#a97f2f);
  padding-bottom:10px; margin-bottom:20px;
  border-bottom:1px solid rgba(191,155,82,.34);
}

/* ---------- campos ---------- */
.dpgf-f{ margin-bottom:20px; }
.dpgf-f.half{ margin-bottom:0; }
.dpgf-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:20px; }

.dpgf-l{
  display:block; font-size:13px; font-weight:700;
  color:var(--navy,#12294d); margin-bottom:7px; line-height:1.4;
}
.dpgf-l .req{ color:#c0392b; margin-left:2px; }
.dpgf-hint{ display:block; font-size:12px; font-weight:400; color:#6b7a91; margin-top:3px; line-height:1.5; }

.dpgf-f input[type=text], .dpgf-f input[type=email], .dpgf-f input[type=tel],
.dpgf-f input[type=date], .dpgf-f select, .dpgf-f textarea{
  width:100%; padding:13px 15px;
  border:1.5px solid rgba(18,41,77,.15); border-radius:9px;
  font-family:var(--sans,inherit); font-size:15px;
  background:#fff; color:var(--ink,#1c2536);
  transition:border-color .2s ease, box-shadow .2s ease;
}
.dpgf-f textarea{ resize:vertical; min-height:96px; line-height:1.6; }
.dpgf-f input:focus, .dpgf-f select:focus, .dpgf-f textarea:focus{
  outline:none; border-color:var(--gold,#bf9b52);
  box-shadow:0 0 0 3px rgba(191,155,82,.16);
}
.dpgf-f input::placeholder, .dpgf-f textarea::placeholder{ color:#9aa5b5; }

/* opcoes: radio e checkbox como cartoes clicaveis */
.dpgf-opts{ display:flex; flex-wrap:wrap; gap:9px; }
.dpgf-opts.col{ flex-direction:column; flex-wrap:nowrap; }
.dpgf-opt{
  display:flex; align-items:flex-start; gap:10px;
  padding:11px 15px; border-radius:9px; cursor:pointer;
  border:1.5px solid rgba(18,41,77,.15); background:#fff;
  font-size:14.5px; line-height:1.4; color:var(--ink,#1c2536);
  transition:border-color .18s ease, background .18s ease, transform .12s ease;
}
.dpgf-opt:hover{ border-color:var(--gold,#bf9b52); background:rgba(191,155,82,.06); }
.dpgf-opt:active{ transform:scale(.985); }
.dpgf-opt input{ margin:0; flex-shrink:0; accent-color:var(--navy,#12294d); width:17px; height:17px; margin-top:1px; }
.dpgf-opt.sel{ border-color:var(--gold,#bf9b52); background:rgba(191,155,82,.13); font-weight:600; }

/* autorizacao final */
.dpgf-auth{
  background:rgba(191,155,82,.1);
  border:1px solid rgba(191,155,82,.4);
  border-radius:12px; padding:18px 20px; margin-bottom:20px;
}
.dpgf-auth .dpgf-opt{ background:transparent; border:none; padding:5px 0; }
.dpgf-auth .dpgf-opt:hover{ background:transparent; }
.dpgf-auth .dpgf-opt.sel{ background:transparent; font-weight:600; }

/* aviso de privacidade */
.dpgf-priv{
  display:flex; gap:10px; align-items:flex-start;
  font-size:12px; line-height:1.6; color:#5d6b80;
  background:#fff; border:1px solid rgba(18,41,77,.1);
  border-radius:10px; padding:13px 15px; margin-bottom:20px;
}
.dpgf-priv .ic{ flex-shrink:0; font-size:14px; line-height:1.3; }

/* erros */
.dpgf-f.err input, .dpgf-f.err select, .dpgf-f.err textarea{
  border-color:#d9534f; background:#fffaf9;
}
.dpgf-f.err .dpgf-opts .dpgf-opt{ border-color:#e8a5a3; }
.dpgf-err{
  display:none; font-size:12.5px; font-weight:600; color:#c0392b; margin-top:6px;
}
.dpgf-f.err .dpgf-err{ display:block; }

/* honeypot: fora da tela, invisivel para humanos */
.dpgf-hp{
  position:absolute; left:-9999px; width:1px; height:1px;
  overflow:hidden; opacity:0; pointer-events:none;
}

/* ---------- rodape ---------- */
.dpgf-foot{
  flex-shrink:0; display:flex; align-items:center; gap:12px;
  padding:16px 28px; background:var(--cream-alt,#f6efdd);
  border-top:1px solid rgba(191,155,82,.3);
}
.dpgf-btn{
  font-family:var(--sans,inherit); font-size:15px; font-weight:700;
  padding:14px 26px; border-radius:9px; border:none; cursor:pointer;
  letter-spacing:.01em;
  transition:background .2s ease, transform .18s ease, border-color .2s ease, opacity .2s ease;
}
.dpgf-btn:active{ transform:scale(.985); }
.dpgf-next{ background:var(--navy,#12294d); color:#fff; margin-left:auto; }
.dpgf-next:hover{ background:var(--navy-deep,#0d1f3c); }
.dpgf-send{ background:var(--gold,#bf9b52); color:#fff; margin-left:auto;
  box-shadow:0 10px 24px rgba(191,155,82,.34); }
.dpgf-send:hover{ background:var(--gold-dark,#a97f2f); }
.dpgf-back{ background:transparent; color:var(--navy,#12294d); border:1.5px solid rgba(18,41,77,.2); }
.dpgf-back:hover{ border-color:var(--gold,#bf9b52); }
.dpgf-btn[disabled]{ opacity:.6; cursor:progress; }
.dpgf-count{ font-size:12.5px; color:#6b7a91; font-weight:600; }

/* ---------- tela de confirmacao ---------- */
.dpgf-done{ padding:44px 34px 40px; text-align:center; }
.dpgf-done .tick{
  width:66px; height:66px; margin:0 auto 22px; border-radius:50%;
  background:rgba(30,178,88,.13); border:2px solid #1eb258;
  display:flex; align-items:center; justify-content:center;
  color:#1a9950; font-size:31px; line-height:1;
  animation:dpgf-pop .44s cubic-bezier(.2,.7,.3,1) both;
}
@keyframes dpgf-pop{ from{ transform:scale(.82); opacity:0; } to{ transform:scale(1); opacity:1; } }
.dpgf-done h3{
  font-family:var(--serif,Georgia,serif); font-size:26px; font-weight:700;
  color:var(--navy,#12294d); line-height:1.25; margin-bottom:12px;
}
.dpgf-done p{ font-size:15px; line-height:1.65; color:#4a5568; max-width:46ch; margin:0 auto 10px; }
.dpgf-ref{
  display:inline-block; margin:16px 0 6px; padding:9px 18px;
  background:#fff; border:1px dashed var(--gold,#bf9b52); border-radius:9px;
  font-size:13px; color:var(--navy,#12294d);
}
.dpgf-ref b{ letter-spacing:.06em; }
.dpgf-wa{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  margin-top:24px; padding:15px 28px; border-radius:10px;
  background:#1eb258; color:#fff; font-size:15.5px; font-weight:700;
  text-decoration:none; border:none; cursor:pointer;
  box-shadow:0 12px 28px rgba(30,178,88,.32);
  transition:background .2s ease, transform .18s ease;
}
.dpgf-wa:hover{ background:#189a4b; color:#fff; transform:translateY(-2px); }
.dpgf-wa svg{ flex-shrink:0; }
.dpgf-redir{ font-size:12.5px; color:#6b7a91; margin-top:14px; }
.dpgf-redir button{
  background:none; border:none; padding:0; cursor:pointer;
  color:var(--gold-dark,#a97f2f); font:inherit; font-weight:700;
  text-decoration:underline; text-underline-offset:2px;
}

/* falha no envio */
.dpgf-fail{
  display:none; align-items:flex-start; gap:10px;
  background:#fdf3f2; border:1px solid #e8b4b1; border-radius:10px;
  padding:13px 15px; margin-bottom:16px;
  font-size:13px; line-height:1.6; color:#8d2e28;
}
.dpgf-fail.on{ display:flex; }
.dpgf-fail a{ color:#8d2e28; font-weight:700; }

/* ---------- botao que abre o formulario ---------- */
.dpgf-cta{
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--sans,inherit); font-size:15px; font-weight:700;
  padding:16px 30px; border-radius:9px; cursor:pointer;
  border:1.5px solid rgba(18,41,77,.22); background:transparent;
  color:var(--navy,#12294d); letter-spacing:.01em;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease, color .2s ease;
}
.dpgf-cta:hover{ border-color:var(--gold,#bf9b52); transform:translateY(-2px); }
.dpgf-cta:active{ transform:translateY(0) scale(.98); }
.dpgf-cta .ar{ transition:transform .25s ease; }
.dpgf-cta:hover .ar{ transform:translateX(3px); }

/* variante para fundo escuro (secoes navy) */
.dpgf-cta.on-dark{ border-color:rgba(212,184,119,.5); color:var(--gold-light,#d4b877); }
.dpgf-cta.on-dark:hover{ border-color:var(--gold,#bf9b52); background:rgba(191,155,82,.12); color:#fff; }

/* linha de CTA dentro do acordeao de servicos */
.dpgf-svc-cta{
  display:flex; flex-wrap:wrap; gap:10px;
  padding:4px 30px 26px 30px;
}
.dpgf-svc-cta .dpgf-cta{ font-size:14px; padding:12px 20px; }

/* CTA adicionado ao lado de um botao ja existente (Immigration / Bookkeeping).
   Fallback para navegadores sem :has() — alinhamento por margem. */
.immig-foot .dpgf-cta,
.book-cta .dpgf-cta{ margin:10px 0 0 12px; vertical-align:top; }

/* Com :has(), so os containers que ganharam botao viram flex — assim os dois
   CTAs ficam centrados e alinhados sem alterar as classes originais do site. */
.immig-foot:has(> .dpgf-cta),
.book-cta:has(> .dpgf-cta){
  display:flex; flex-wrap:wrap; gap:12px;
  justify-content:center; align-items:stretch;
}
.immig-foot:has(> .dpgf-cta) > p{ flex-basis:100%; }
.immig-foot:has(> .dpgf-cta) > .dpgf-cta,
.book-cta:has(> .dpgf-cta) > .dpgf-cta{ margin:0; align-items:center; }

/* ---------- responsivo ---------- */
@media (max-width:640px){
  .dpgf-ov{ padding:0; align-items:stretch; }
  .dpgf-box{
    width:100%; max-height:100dvh; height:100dvh;
    border-radius:0; transform:translateY(26px);
  }
  .dpgf-head{ padding:20px 56px 18px 20px; }
  .dpgf-title{ font-size:21px; }
  .dpgf-sub{ font-size:13px; }
  .dpgf-steps{ padding:11px 20px; flex-wrap:wrap; row-gap:7px; }
  .dpgf-steps .dpgf-bar{ order:3; flex-basis:100%; }
  .dpgf-time{ margin-left:auto; }
  .dpgf-sub{ display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
  .dpgf-body{ padding:22px 20px 8px; }
  .dpgf-row{ grid-template-columns:1fr; gap:0; }
  .dpgf-row .dpgf-f.half{ margin-bottom:20px; }
  .dpgf-foot{ padding:14px 20px; gap:9px; }
  .dpgf-btn{ padding:14px 20px; font-size:14.5px; }
  .dpgf-count{ display:none; }
  .dpgf-done{ padding:38px 22px; }
  .dpgf-done h3{ font-size:22px; }
  .dpgf-svc-cta{ padding:4px 28px 24px 28px; }
  .dpgf-svc-cta .dpgf-cta{ width:100%; justify-content:center; }
  .immig-foot .dpgf-cta,
  .book-cta .dpgf-cta{ margin:12px 0 0 0; width:100%; justify-content:center; }
}

/* ---------- acessibilidade: movimento reduzido ---------- */
@media (prefers-reduced-motion:reduce){
  .dpgf-ov, .dpgf-box, .dpgf-btn, .dpgf-cta, .dpgf-opt, .dpgf-bar i, .dpgf-wa{
    transition:none !important;
  }
  .dpgf-done .tick{ animation:none; }
  .dpgf-box{ transform:none; }
}
