/* ===== Formulario público ===== */
.gf-page{min-height:100vh;display:flex;flex-direction:column;background:var(--gray-50)}
.gf-header{background:#fff;position:relative}
.gf-header::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:linear-gradient(90deg,var(--blue) 0 72%,var(--yellow) 72% 92%,var(--red) 92%)}
.gf-header-in{max-width:1120px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.gf-logo{height:60px;width:auto;display:block}
.gf-secure{display:flex;align-items:center;gap:8px;color:var(--gray-600);font-size:13px}
.gf-secure svg{color:var(--blue)}

.gf-main{flex:1;width:100%;max-width:1120px;margin:0 auto;padding:40px 24px 64px}
.gf-intro{margin-bottom:28px;max-width:720px}
.gf-intro h1{font-size:clamp(26px,3.4vw,36px);font-weight:700;letter-spacing:-.01em}
.gf-intro p{margin-top:10px;color:var(--ink-2);font-size:16px}

.gf-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:32px;align-items:start}

/* Stepper (desktop) */
.gf-rail{position:sticky;top:24px}
.gf-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.gf-step{display:flex;gap:14px;align-items:flex-start;padding:12px 14px;border-radius:var(--radius);position:relative;cursor:default;border:none;background:none;text-align:left;width:100%}
.gf-step.is-done{cursor:pointer}
.gf-step.is-done:hover{background:#fff}
.gf-step.is-current{background:#fff;box-shadow:var(--shadow-sm);border:1px solid var(--gray-100)}
.gf-step-n{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:14px;background:#fff;color:var(--gray-500);border:1.5px solid var(--gray-200);flex-shrink:0}
.gf-step.is-current .gf-step-n{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-100)}
.gf-step.is-done .gf-step-n{background:var(--yellow);border-color:var(--yellow);color:var(--blue-700)}
.gf-step-k{font-size:12px;color:var(--gray-500);font-weight:500;letter-spacing:.02em}
.gf-step-t{font-weight:600;color:var(--ink);font-size:14.5px;line-height:1.3}
.gf-step.is-current .gf-step-t{color:var(--blue)}
.gf-step:not(:last-child)::after{content:"";position:absolute;left:30.5px;top:50px;bottom:-10px;width:1.5px;background:var(--gray-200)}
.gf-step.is-done:not(:last-child)::after{background:var(--yellow)}
.gf-rail-note{margin-top:20px;padding:16px;border-radius:var(--radius);background:var(--yellow-50);border:1px solid var(--yellow-100);font-size:13px;color:var(--ink-2);display:flex;gap:10px}
.gf-rail-note svg{color:#A87A0B;margin-top:1px}
/* Desktop sidebar mascota — video */
.gf-rail-mascota{margin-top:16px;text-align:center}
.gf-rail-mascota video{width:100%;max-width:220px;height:auto;display:block;margin:0 auto;filter:drop-shadow(0 4px 12px rgba(22,32,63,.14));border-radius:12px}

/* Mobile progress */
.gf-mprog{display:none;margin-bottom:16px}
.gf-mprog-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;gap:12px}
.gf-mprog-k{font-size:13px;font-weight:600;color:var(--blue)}
.gf-mprog-t{font-size:13px;color:var(--gray-600);text-align:right}
.gf-mprog-bar{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.gf-mprog-bar span{height:6px;border-radius:3px;background:var(--gray-200);transition:background .25s}
.gf-mprog-bar span.on{background:var(--blue)}
.gf-mprog-bar span.done{background:var(--yellow)}

/* Card */
.gf-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid var(--gray-100);overflow:hidden}
.gf-card-head{padding:28px 32px 4px}
.gf-card-k{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--blue);background:var(--blue-50);padding:5px 12px;border-radius:999px;margin-bottom:12px}
.gf-card-head h2{font-size:22px;font-weight:600}
.gf-card-head p{margin-top:6px;color:var(--gray-600);font-size:14.5px}
.gf-card-body{padding:24px 32px 8px}
.gf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 20px}
.gf-sub{grid-column:1/-1;display:flex;align-items:center;gap:12px;margin-top:8px;font-size:13px;font-weight:600;color:var(--gray-600);text-transform:uppercase;letter-spacing:.06em}
.gf-sub::after{content:"";flex:1;height:1px;background:var(--gray-100)}

.gf-field{min-width:0}
.gf-label{display:flex;align-items:baseline;gap:4px;font-weight:500;font-size:14.5px;color:var(--ink);margin-bottom:8px}
.gf-req{color:var(--red);font-weight:600}
.gf-opt{font-size:12.5px;color:var(--gray-500);font-weight:400;margin-left:4px}
.gf-control{position:relative}
.gf-ok{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;background:var(--blue-50);color:var(--blue);display:grid;place-items:center;pointer-events:none}
.gf-field:has(.select) .gf-ok,.gf-field:has(.gf-phone) .gf-ok,.gf-field:has(.textarea) .gf-ok,.gf-field:has(input[type=date]) .gf-ok{display:none}
.gf-error{display:flex;align-items:flex-start;gap:6px;margin-top:7px;font-size:13px;color:var(--red-ink);font-weight:500}
.gf-error svg{margin-top:2px}
.gf-hint{margin-top:7px;font-size:13px;color:var(--gray-500)}
.gf-phone{display:grid;grid-template-columns:132px minmax(0,1fr);gap:8px}
.gf-phone-code{padding-right:34px;background-position:right 10px center}

.gf-check{display:flex;gap:12px;align-items:flex-start;cursor:pointer;padding:14px 16px;border-radius:var(--radius);border:1.5px solid var(--gray-200);background:#fff;transition:border-color .15s,background .15s}
.gf-check:hover{border-color:var(--gray-300)}
.gf-check.on{border-color:var(--blue);background:var(--blue-50)}
.gf-check input{position:absolute;opacity:0;pointer-events:none}
.gf-box{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--gray-300);background:#fff;display:grid;place-items:center;flex-shrink:0;color:#fff;transition:all .15s;margin-top:1px}
.gf-check.on .gf-box{background:var(--blue);border-color:var(--blue)}
.gf-check input:focus-visible + .gf-box{box-shadow:var(--focus)}
.gf-check-t{font-size:14.5px;color:var(--ink);line-height:1.45}
.gf-check-t small{display:block;color:var(--gray-600);font-size:13px;margin-top:2px}
.gf-check.is-invalid{border-color:var(--red);background:#FFFBFB}

/* Segmented (id type) */
.gf-seg{display:flex;flex-wrap:wrap;gap:8px}
.gf-seg button{height:44px;padding:0 16px;border-radius:999px;border:1.5px solid var(--gray-200);background:#fff;font-weight:500;font-size:14px;cursor:pointer;color:var(--ink-2);transition:all .15s}
.gf-seg button:hover{border-color:var(--blue);color:var(--blue)}
.gf-seg button[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:#fff}
.gf-seg button:focus-visible{outline:none;box-shadow:var(--focus)}

/* Geo cascade */
.gf-geo{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:20px;border-radius:var(--radius);background:var(--gray-50);border:1px solid var(--gray-100)}
.gf-geo-path{grid-column:1/-1;display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--gray-600);flex-wrap:wrap}
.gf-geo-path svg{color:var(--blue)}
.gf-geo-path b{color:var(--blue);font-weight:600}

/* Files */
.gf-files{display:flex;flex-direction:column;gap:16px}
.gf-file{border:1.5px solid var(--gray-200);border-radius:var(--radius);padding:18px;background:#fff;transition:border-color .15s}
.gf-file.has-file{border-color:#B9C6EA}
.gf-file.is-invalid{border-color:var(--red)}
.gf-file-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}
.gf-file-title{font-weight:600;font-size:15px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.gf-file-badge{font-size:11.5px;font-weight:600;color:#8A5A00;background:var(--yellow-50);border:1px solid var(--yellow-100);padding:2px 8px;border-radius:999px;margin-left:4px}
.gf-file-desc{font-size:13.5px;color:var(--gray-600);margin-top:3px}
.gf-file-status{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;color:var(--green);background:var(--green-50);padding:5px 10px;border-radius:999px;white-space:nowrap}
.gf-drop{width:100%;border:1.5px dashed var(--gray-300);border-radius:var(--radius);background:var(--gray-50);padding:22px 16px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;transition:all .15s;text-align:center}
.gf-drop:hover,.gf-drop.is-drag{border-color:var(--blue);background:var(--blue-50)}
.gf-drop:focus-visible{outline:none;box-shadow:var(--focus);border-color:var(--blue)}
.gf-drop-icon{width:44px;height:44px;border-radius:50%;background:#fff;color:var(--blue);display:grid;place-items:center;box-shadow:var(--shadow-sm);margin-bottom:4px}
.gf-drop-main{font-size:14.5px;color:var(--ink)}
.gf-drop-main strong{color:var(--blue);font-weight:600}
.gf-drop-sub{font-size:12.5px;color:var(--gray-500)}
.gf-file-preview{display:flex;gap:16px;align-items:center}
.gf-file-thumb{width:84px;height:84px;border-radius:10px;overflow:hidden;background:var(--gray-50);border:1px solid var(--gray-100);flex-shrink:0}
.gf-file-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.gf-file-pdf{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--blue);background:var(--blue-50)}
.gf-file-pdf span{font-size:11px;font-weight:700;letter-spacing:.06em}
.gf-file-meta{min-width:0;flex:1}
.gf-file-name{font-weight:500;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gf-file-size{font-size:13px;color:var(--gray-500);margin-top:2px}
.gf-file-actions{display:flex;gap:4px;margin-top:6px;margin-left:-10px;flex-wrap:wrap}
.gf-remove{color:var(--red-ink)}
.gf-remove:hover{background:var(--red-50)}
.gf-spin{width:20px;height:20px;border:2.5px solid var(--blue-100);border-top-color:var(--blue);border-radius:50%;animation:gfspin .7s linear infinite}
@keyframes gfspin{to{transform:rotate(360deg)}}

/* Review */
.gf-review{display:flex;flex-direction:column;gap:16px}
.gf-rv{border:1px solid var(--gray-100);border-radius:var(--radius);overflow:hidden}
.gf-rv-h{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;background:var(--gray-50);border-bottom:1px solid var(--gray-100)}
.gf-rv-h h3{font-size:15px;font-weight:600}
.gf-rv-dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px;padding:16px 18px;margin:0}
.gf-rv-dl div{min-width:0}
.gf-rv-dl dt{font-size:12.5px;color:var(--gray-500);margin-bottom:2px}
.gf-rv-dl dd{margin:0;font-size:14.5px;font-weight:500;overflow-wrap:anywhere}
.gf-rv-dl .full{grid-column:1/-1}
.gf-rv-files{display:flex;flex-direction:column;gap:8px;padding:14px 18px}
.gf-rv-file{display:flex;align-items:center;gap:12px;font-size:14px}
.gf-rv-file .ic{width:36px;height:36px;border-radius:8px;display:grid;place-items:center;background:var(--blue-50);color:var(--blue);overflow:hidden;flex-shrink:0}
.gf-rv-file .ic img{width:100%;height:100%;object-fit:cover}
.gf-rv-file b{font-weight:500;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gf-rv-file small{color:var(--gray-500);font-size:12.5px}
.gf-rv-file .lbl{font-size:12.5px;color:var(--gray-500)}

.gf-alert{display:flex;gap:12px;padding:14px 16px;border-radius:var(--radius);font-size:14px;align-items:flex-start}
.gf-alert.err{background:var(--red-50);color:#8F0A10;border:1px solid #FFD2D4}
.gf-alert.err svg{color:var(--red)}
.gf-alert.info{background:var(--blue-50);color:var(--blue-700);border:1px solid var(--blue-100)}

/* Footer actions */
.gf-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 32px 28px;margin-top:16px;border-top:1px solid var(--gray-100)}
.gf-actions .gf-saved{font-size:12.5px;color:var(--gray-500);display:flex;align-items:center;gap:6px}
.gf-actions-r{display:flex;gap:12px;margin-left:auto}

/* Success */
.gf-success{max-width:640px;margin:0 auto;text-align:center;padding:48px 40px 40px}
.gf-success-mark{width:84px;height:84px;margin:0 auto 24px;border-radius:50%;background:var(--yellow);color:var(--blue-700);display:grid;place-items:center;box-shadow:0 0 0 10px var(--yellow-50);animation:gfpop .5s cubic-bezier(.2,1.4,.4,1)}
@keyframes gfpop{from{transform:scale(.4);opacity:0}}
.gf-success h1{font-size:32px;font-weight:700}
.gf-success>p{margin-top:12px;color:var(--ink-2);font-size:16px}
.gf-ticket{margin:28px auto 0;max-width:400px;border-radius:var(--radius-lg);border:1.5px dashed #B9C6EA;background:var(--blue-50);padding:20px}
.gf-ticket-k{font-size:12.5px;color:var(--gray-600);font-weight:500}
.gf-ticket-n{font-size:30px;font-weight:700;color:var(--blue);letter-spacing:.02em;margin-top:4px}
.gf-next{margin:32px 0 0;padding:0;list-style:none;text-align:left;display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--gray-100);padding-top:24px}
.gf-next li{display:flex;gap:14px;padding:10px 0;font-size:14.5px;color:var(--ink-2)}
.gf-next li span.n{width:28px;height:28px;border-radius:50%;background:var(--gray-50);border:1px solid var(--gray-200);display:grid;place-items:center;font-size:13px;font-weight:600;color:var(--blue);flex-shrink:0}
.gf-next b{color:var(--ink);font-weight:600;display:block}

.gf-foot{border-top:1px solid var(--gray-100);background:#fff}
.gf-foot-in{max-width:1120px;margin:0 auto;padding:18px 24px;display:flex;justify-content:space-between;gap:12px;font-size:12.5px;color:var(--gray-500);flex-wrap:wrap}
.gf-foot a{color:var(--gray-600);text-decoration:none}
.gf-foot a:hover{color:var(--blue)}

/* Modal */
.gf-modal-bg{position:fixed;inset:0;background:rgba(22,32,63,.45);display:grid;place-items:center;padding:20px;z-index:50;animation:gffade .15s}
@keyframes gffade{from{opacity:0}}
.gf-modal{background:#fff;border-radius:var(--radius-lg);max-width:620px;width:100%;max-height:86vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}
.gf-modal-h{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--gray-100);gap:12px}
.gf-modal-h h3{font-size:18px}
.gf-modal-b{padding:20px 24px;overflow:auto;font-size:14px;color:var(--ink-2);line-height:1.65}
.gf-modal-b h4{font-size:14.5px;color:var(--ink);margin:16px 0 4px}
.gf-modal-f{padding:16px 24px;border-top:1px solid var(--gray-100);display:flex;justify-content:flex-end}
.gf-x{width:40px;height:40px;border-radius:10px;border:none;background:var(--gray-50);display:grid;place-items:center;cursor:pointer;color:var(--ink-2)}
.gf-x:hover{background:var(--gray-100)}
.gf-legal-ph{border:1.5px dashed var(--gray-300);border-radius:10px;padding:12px 14px;background:var(--gray-50);font-size:12.5px;color:var(--gray-600);margin-bottom:12px}

/* ===== Responsive ===== */
@media (max-width:920px){
  .gf-layout{grid-template-columns:1fr;gap:0}
  .gf-rail{display:none}
  .gf-mprog{display:block}
}
@media (max-width:640px){
  body{font-size:15px}
  .gf-header-in{padding:10px 16px}
  .gf-logo{height:42px}
  .gf-secure span{display:none}
  .gf-main{padding:24px 14px 120px}
  .gf-intro{margin-bottom:20px}
  .gf-intro p{font-size:15px}
  .gf-card{border-radius:16px}
  .gf-card-head{padding:22px 18px 0}
  .gf-card-head h2{font-size:20px}
  .gf-card-body{padding:20px 18px 4px}
  .gf-grid{grid-template-columns:1fr;gap:18px}
  .gf-geo{grid-template-columns:1fr;padding:16px;gap:16px}
  .gf-phone{grid-template-columns:118px minmax(0,1fr)}
  .gf-rv-dl{grid-template-columns:1fr}
  .gf-actions{position:fixed;left:0;right:0;bottom:0;background:#fff;margin:0;padding:12px 14px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -6px 20px -8px rgba(22,32,63,.18);z-index:20}
  .gf-actions .gf-saved{display:none}
  .gf-actions-r{flex:1;margin:0}
  .gf-actions-r .btn{flex:1;padding:0 12px}
  .gf-actions-r .btn-ghost{flex:0 0 auto}
  .gf-success{padding:36px 20px 28px}
  .gf-success h1{font-size:26px}
  .gf-ticket-n{font-size:24px}
  .gf-file{padding:14px}
  .gf-file-head{flex-direction:column;gap:8px}
  .gf-file-thumb{width:64px;height:64px}
  .gf-drop-or{display:none}
  .input,.select{height:54px;font-size:16px}
}
