/* Oasis form styling.
   Inherits the site palette from style.css (--navy, --orange, --teal, --line …). */

.rf-shell{max-width:820px;margin:0 auto}

/* ---------- progress rail ---------- */
.rl{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;margin-bottom:6px}
.rl-s{flex:1;min-width:92px;display:flex;flex-direction:column;gap:7px}
.rl-b{height:5px;border-radius:99px;background:var(--line);overflow:hidden;display:block}
.rl-b i{display:block;height:100%;width:0;background:var(--orange);border-radius:99px;
  transition:width .45s cubic-bezier(.4,0,.2,1)}
.rl-s.done .rl-b i{width:100%}
.rl-s.now .rl-b i{width:55%}
.rl-l{font-size:11.5px;font-weight:700;color:var(--muted);line-height:1.3;letter-spacing:.01em}
.rl-s.now .rl-l{color:var(--orange-d)}
.rl-s.done .rl-l{color:var(--muted)}

.rf-meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  flex-wrap:wrap;margin:16px 0 2px}
.rf-n{font-size:12.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.rf-save{font-size:12.5px;color:var(--muted)}
.rf-title{font-family:'Nunito',system-ui,sans-serif;font-size:clamp(21px,2.6vw,27px);
  font-weight:800;letter-spacing:-.02em;color:var(--ink);margin:4px 0 0;line-height:1.2}

/* ---------- layout ---------- */
.rf-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-top:22px}
.rf{grid-column:span 6;display:flex;flex-direction:column;gap:6px;min-width:0}
.rf-half{grid-column:span 3}
.rf-third{grid-column:span 2}
@media(max-width:720px){.rf-half,.rf-third{grid-column:span 6}}

.rf-head{grid-column:span 6;font-family:'Nunito',system-ui,sans-serif;font-size:17px;
  font-weight:800;color:var(--ink);letter-spacing:-.01em;margin:16px 0 -4px;
  padding-top:16px;border-top:1px solid var(--line)}
.rf-grid > .rf-head:first-child{margin-top:0;padding-top:0;border-top:0}
.rf-sub{grid-column:span 6;font-size:13.5px;font-weight:800;color:var(--muted);
  letter-spacing:.02em;margin-top:6px}
.rf-note{grid-column:span 6;font-size:14px;color:var(--muted);line-height:1.6;margin:0}

.rf-lab{font-size:13.5px;font-weight:700;color:var(--muted);line-height:1.4}
.rf-req{color:var(--orange-d)}
.rf-hint{font-size:12.5px;color:var(--muted);line-height:1.5}
.rf-err{font-size:12.5px;color:#c0492f;font-weight:700;line-height:1.4}
.rf-err:empty{display:none}

/* ---------- inputs ---------- */
.rf-in{font-family:'Inter',system-ui,sans-serif;font-size:15px;color:var(--ink);
  background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:11px 13px;width:100%;
  transition:border-color .15s,box-shadow .15s}
textarea.rf-in{min-height:104px;resize:vertical;line-height:1.55}
.rf-in:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(27,44,99,.18)}
.rf.bad .rf-in,.rf.bad .rf-drop,.rf.bad .rf-sig{border-color:#c0492f}

.rf-tel{position:relative;display:flex;align-items:center}
.rf-tel .rf-cc{position:absolute;left:13px;font-size:15px;font-weight:700;color:var(--muted);
  pointer-events:none}
.rf-tel .rf-in{padding-left:40px}

/* ---------- options ---------- */
.rf-opts{display:flex;flex-direction:column;gap:9px}
.rf-opts.rf-inline{flex-direction:row;flex-wrap:wrap}
.rf-opt{display:flex;align-items:flex-start;gap:11px;border:1.5px solid var(--line);background:#fff;
  border-radius:11px;padding:12px 15px;cursor:pointer;transition:border-color .15s,background .15s}
.rf-opts.rf-inline .rf-opt{flex:0 1 auto;padding:10px 16px;border-radius:999px;align-items:center}
.rf-opt:hover{border-color:var(--navy)}
.rf-opt input{margin:2px 0 0;width:17px;height:17px;flex:none;accent-color:var(--orange)}
.rf-opts.rf-inline .rf-opt input{margin:0}
.rf-opt span{font-size:14.5px;font-weight:600;color:var(--ink);line-height:1.45}
.rf-opt span em{display:block;font-style:normal;font-weight:500;font-size:13px;
  color:var(--muted);margin-top:3px;line-height:1.5}
.rf-opt.on{border-color:var(--orange);background:rgba(240,132,60,.10)}
.rf-consent{align-items:flex-start}

/* ---------- upload ---------- */
.rf-drop{border:2px dashed var(--line);border-radius:14px;padding:26px 20px;text-align:center;
  background:#fff;cursor:pointer;transition:border-color .15s,background .15s}
.rf-drop:hover,.rf-drop.over,.rf-drop:focus-visible{border-color:var(--orange);background:rgba(240,132,60,.06)}
.rf-drop b{display:block;font-family:'Nunito',system-ui,sans-serif;font-size:15.5px;
  color:var(--ink);margin-bottom:3px}
.rf-drop span{font-size:13px;color:var(--muted)}
.rf-files{display:flex;flex-direction:column;gap:8px;margin-top:11px}
.rf-file{display:flex;align-items:center;gap:11px;border:1px solid var(--line);border-radius:10px;
  padding:9px 12px;background:#fff}
.rf-fi{width:34px;height:34px;border-radius:7px;flex:none;display:grid;place-items:center;
  background:var(--ink);color:#fff;font-size:9px;font-weight:800;letter-spacing:.02em}
.rf-fn{flex:1;font-size:14px;font-weight:600;color:var(--ink);word-break:break-word;min-width:0}
.rf-fs{font-size:12.5px;color:var(--muted);flex:none;font-variant-numeric:tabular-nums}
.rf-fx{flex:none;background:transparent;border:0;color:var(--muted);font-size:21px;line-height:1;
  cursor:pointer;padding:0 4px;border-radius:6px}
.rf-fx:hover{color:#c0492f}
.rf-fmeta{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.rf-frej{font-size:13.5px;color:#8a4a1f;background:#fdf0e8;border:1px solid #f5d6c2;
  border-radius:10px;padding:11px 14px;line-height:1.6}
.rf-frej a{color:var(--navy);font-weight:700}

/* ---------- signature ---------- */
.rf-sig{position:relative;border:1.5px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.rf-sig canvas{display:block;width:100%;touch-action:none;cursor:crosshair}
.rf-sigclear{position:absolute;top:8px;right:8px;font-size:12px;font-weight:700;color:var(--muted);
  background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 12px;cursor:pointer}
.rf-sigclear:hover{color:var(--ink);border-color:var(--muted)}

/* ---------- review ---------- */
.rv-grp{border:1px solid var(--line);border-radius:12px;background:#fff;margin-top:14px;overflow:hidden}
.rv-t{font-family:'Nunito',system-ui,sans-serif;font-size:13px;font-weight:800;
  letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:11px 15px;
  background:#eef3fb;border-bottom:1px solid var(--line)}
.rv-r{display:flex;gap:14px;padding:9px 15px;border-bottom:1px solid var(--line);font-size:14px}
.rv-r:last-child{border-bottom:0}
.rv-k{width:210px;flex:none;color:var(--muted);font-weight:600;line-height:1.45}
.rv-v{font-weight:700;color:var(--ink);line-height:1.45;min-width:0;word-break:break-word}
.rv-e{color:var(--muted);font-weight:500;font-style:italic}
@media(max-width:600px){.rv-r{flex-direction:column;gap:2px}.rv-k{width:auto}}

.rf-ts{margin-top:18px;min-height:70px}

/* ---------- actions ---------- */
.rf-act{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
  margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.rf-btn{display:inline-flex;align-items:center;gap:9px;padding:14px 28px;border-radius:999px;
  font-family:'Inter',system-ui,sans-serif;font-weight:800;font-size:15px;cursor:pointer;
  border:2px solid transparent;transition:transform .18s,background .18s,box-shadow .18s}
.rf-btn:hover:not([disabled]){transform:translateY(-2px)}
.rf-next{background:var(--orange);color:#fff;box-shadow:0 12px 26px -12px rgba(240,132,60,.75)}
.rf-next:hover:not([disabled]){background:var(--orange-d)}
.rf-back{background:transparent;border-color:var(--line);color:var(--muted)}
.rf-back:hover:not([disabled]){border-color:var(--muted);color:var(--ink)}
.rf-btn[disabled]{opacity:.4;cursor:not-allowed}

/* honeypot — visually hidden, never announced */
.rf-hp{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden}

/* ---------- success ---------- */
.rf-done{text-align:center;padding:36px 20px 30px;max-width:560px;margin:0 auto}
.rf-tick{width:64px;height:64px;border-radius:50%;background:rgba(47,179,163,.16);color:var(--teal);
  display:grid;place-items:center;font-size:32px;font-weight:900;margin:0 auto 18px}
.rf-done h2{font-family:'Nunito',system-ui,sans-serif;font-size:25px;font-weight:800;
  color:var(--ink);letter-spacing:-.02em;line-height:1.25;margin:0 0 12px}
.rf-done p{font-size:15.5px;color:var(--muted);line-height:1.65;margin:0 0 12px}
.rf-done a{color:var(--navy);font-weight:700}
.rf-ref{display:inline-flex;flex-direction:column;gap:3px;background:#fff;border:1px solid var(--line);
  border-left:4px solid var(--orange);border-radius:10px;padding:13px 26px;margin:8px 0 16px}
.rf-ref span{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.rf-ref b{font-family:'Nunito',system-ui,sans-serif;font-size:22px;font-weight:800;
  letter-spacing:.05em;color:var(--ink);font-variant-numeric:tabular-nums}

@media (prefers-reduced-motion:reduce){
  .rl-b i,.rf-btn,.rf-in,.rf-opt,.rf-drop{transition:none!important}
  .rf-btn:hover:not([disabled]){transform:none}
}

/* ---------- page rhythm on form pages ----------
   The shared .page-hero and the section below it each carry 92px of vertical
   padding. Stacked, that opens a 180–260px void between the intro copy and the
   first field, so on a laptop the form starts below the fold for no reason.
   Tighten it wherever a form follows. Browsers without :has() simply keep the
   original spacing — looser than ideal, but never broken. */
.page-hero:has(+ section .rf-shell) { padding-bottom: 40px; }
/* .page-hero .wrap carries a further 74px of its own bottom padding, which is
   what made the gap stubborn even after trimming the section above. */
.page-hero:has(+ section .rf-shell) .wrap { padding-bottom: 14px; }
section:has(.rf-shell) { padding-top: 36px; padding-bottom: 64px; }

@media (max-width: 760px) {
  .page-hero:has(+ section .rf-shell) { padding-bottom: 24px; }
  .page-hero:has(+ section .rf-shell) .wrap { padding-bottom: 8px; }
  section:has(.rf-shell) { padding-top: 22px; padding-bottom: 44px; }
}

/* The closing disclaimer sits right under the form; keep it close to what it
   refers to rather than floating between the form and the footer. */
section:has(.rf-shell) .disc { margin-top: 18px; }
