/* DGF multi-step forms — Montserrat, red #EC1F24, accessible wizard */
.dgf-wizard .dgf-ico,
.dgf-form .dgf-ico{
  width:1.15rem!important;
  height:1.15rem!important;
  max-width:1.15rem!important;
  max-height:1.15rem!important;
  flex-shrink:0;
  display:inline-block;
}
.dgf-wizard .dgf-ico--sm,
.dgf-form .dgf-ico--sm{
  width:1rem!important;
  height:1rem!important;
  max-width:1rem!important;
  max-height:1rem!important;
}
.dgf-wizard{
  --dgf-red:#EC1F24;
  --dgf-red-dark:#C61A1E;
  --dgf-ink:#141414;
  --dgf-muted:#6B6B6B;
  --dgf-line:#ECECEC;
  --dgf-paper:#F7F7F7;
  --dgf-ease:cubic-bezier(.22,.61,.36,1);
  max-width:640px;
  margin:.75rem 0 1.5rem;
  font-family:"Montserrat","Helvetica Neue",Helvetica,Arial,sans-serif;
  color:var(--dgf-ink);
}
.dgf-wizard__eyebrow{
  margin:0 0 .25rem;
  font-size:.68rem;
  font-weight:500;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--dgf-red);
}
.dgf-wizard__title{
  margin:0 0 .35rem;
  font-weight:200;
  font-size:clamp(1.4rem,3.2vw,1.9rem);
  letter-spacing:-.03em;
  line-height:1.15;
}
.dgf-wizard__intro{
  margin:0 0 .85rem;
  color:var(--dgf-muted);
  font-weight:300;
  font-size:.95rem;
  line-height:1.5;
}
.dgf-wizard__prop-ref{
  display:flex;
  align-items:center;
  gap:.45rem;
  margin:0 0 1rem;
  padding:.75rem .9rem;
  background:var(--dgf-paper);
  border-left:3px solid var(--dgf-red);
  font-weight:300;
  font-size:.92rem;
}
.dgf-wizard__prop-ref .dgf-ico{color:var(--dgf-red);flex-shrink:0}
.dgf-wizard__prop-ref strong{font-weight:500}

/* Progress */
.dgf-wizard__progress{margin-bottom:.85rem}
.dgf-wizard__bar{
  height:3px;
  background:var(--dgf-line);
  margin-bottom:.55rem;
  overflow:hidden;
}
.dgf-wizard__bar-fill{
  display:block;
  height:100%;
  width:0;
  background:var(--dgf-red);
  transition:width .45s var(--dgf-ease);
}
.dgf-wizard__steps{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(0,1fr));
  gap:.35rem;
}
.dgf-wizard__dot{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.35rem;
  padding:.35rem .2rem;
  border:0;
  background:transparent;
  cursor:pointer;
  font:inherit;
  color:var(--dgf-muted);
  transition:color .25s var(--dgf-ease);
}
.dgf-wizard__dot:disabled{cursor:default;opacity:.55}
.dgf-wizard__dot:focus-visible{
  outline:2px solid var(--dgf-red);
  outline-offset:3px;
}
.dgf-wizard__dot-num{
  display:grid;
  place-items:center;
  width:2rem;
  height:2rem;
  border-radius:50%;
  border:1.5px solid var(--dgf-line);
  background:#fff;
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.04em;
  transition:border-color .25s var(--dgf-ease),background .25s var(--dgf-ease),color .25s var(--dgf-ease),transform .25s var(--dgf-ease);
}
.dgf-wizard__dot-ico{display:none;color:var(--dgf-red)}
.dgf-wizard__dot-label{
  font-size:.62rem;
  font-weight:400;
  letter-spacing:.08em;
  text-transform:uppercase;
  text-align:center;
  line-height:1.2;
}
.dgf-wizard__step.is-active .dgf-wizard__dot{color:var(--dgf-ink);opacity:1}
.dgf-wizard__step.is-active .dgf-wizard__dot-num{
  border-color:var(--dgf-red);
  background:var(--dgf-red);
  color:#fff;
  transform:scale(1.06);
}
.dgf-wizard__step.is-done .dgf-wizard__dot{opacity:1;color:var(--dgf-ink)}
.dgf-wizard__step.is-done .dgf-wizard__dot-num{
  border-color:var(--dgf-red);
  color:var(--dgf-red);
  background:#fff;
}
.dgf-wizard__step.is-done .dgf-wizard__dot:not(:disabled){cursor:pointer}

/* Panels */
.dgf-wizard__panel{
  margin:0;
  padding:0;
  border:0;
  min-width:0;
}
.dgf-wizard__panel.is-enter{
  animation:dgf-wizard-in .42s var(--dgf-ease) both;
}
@keyframes dgf-wizard-in{
  from{opacity:0;transform:translateX(18px)}
  to{opacity:1;transform:none}
}
.dgf-wizard__panel-title{
  margin:0 0 .55rem;
  padding:0;
  font-size:.78rem;
  font-weight:500;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--dgf-ink);
}

/* Choice cards */
.dgf-choices{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.5rem;
  margin:0;
}
@media (max-width:420px){
  .dgf-choices{grid-template-columns:1fr}
}
.dgf-choice{
  position:relative;
  display:flex;
  gap:.55rem;
  align-items:flex-start;
  padding:.7rem .75rem;
  border:1px solid var(--dgf-line);
  background:#fff;
  cursor:pointer;
  transition:border-color .25s var(--dgf-ease),box-shadow .25s var(--dgf-ease),transform .25s var(--dgf-ease);
  min-height:58px;
}
.dgf-choice input{
  position:absolute;
  opacity:0;
  width:1px;
  height:1px;
  margin:0;
  pointer-events:none;
}
.dgf-choice__ico{
  color:var(--dgf-red);
  flex-shrink:0;
  margin-top:.1rem;
}
.dgf-choice__label{
  display:block;
  font-weight:500;
  font-size:.88rem;
  letter-spacing:.02em;
}
.dgf-choice__hint{
  display:block;
  margin-top:.2rem;
  font-weight:300;
  font-size:.78rem;
  color:var(--dgf-muted);
  line-height:1.35;
}
.dgf-choice:hover{border-color:#ddd}
/* Single source of selected chrome: checked input (JS also mirrors .is-selected). */
.dgf-choice.is-selected,
.dgf-choice:has(input:checked){
  border-color:var(--dgf-red);
  box-shadow:inset 0 0 0 1px var(--dgf-red);
}
/* Focus ring must not look like a second selected tile. */
.dgf-choice:focus-within:not(.is-selected):not(:has(input:checked)){
  outline:2px solid var(--dgf-red);
  outline-offset:2px;
}
.dgf-choices:focus{
  outline:none;
}
.dgf-choices:focus-visible{
  outline:2px solid var(--dgf-red);
  outline-offset:3px;
}
@media (min-width:721px){
  .dgf-choice:hover{transform:translateY(-1px)}
}

/* Fields */
.dgf-form--wizard{display:block;max-width:none}
.dgf-field{margin-bottom:.85rem}
.dgf-field-row{
  display:grid;
  grid-template-columns:1fr;
  gap:.85rem;
}
@media (min-width:560px){
  .dgf-field-row{grid-template-columns:1fr 1fr}
}
.dgf-form--wizard .dgf-field__label{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  margin-bottom:.4rem;
  font-size:.68rem;
  font-weight:400;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--dgf-muted);
}
.dgf-form--wizard .dgf-field__label .dgf-ico{color:var(--dgf-red)}
.dgf-form--wizard .dgf-field__input{
  width:100%;
  min-height:48px;
  padding:.7rem .85rem;
  border:1px solid var(--dgf-line);
  background:#fff;
  font:inherit;
  font-weight:300;
  color:var(--dgf-ink);
  border-radius:0;
  transition:border-color .25s var(--dgf-ease),box-shadow .25s var(--dgf-ease);
}
.dgf-form--wizard .dgf-field__input--area{min-height:120px;resize:vertical}
.dgf-form--wizard .dgf-field__input:focus{
  outline:none;
  border-color:var(--dgf-red);
  box-shadow:0 0 0 3px rgba(236,31,36,.12);
}
.dgf-form--wizard .dgf-field__input.is-invalid{
  border-color:var(--dgf-red);
  box-shadow:0 0 0 3px rgba(236,31,36,.15);
}
.dgf-check{
  display:flex;
  gap:.65rem;
  align-items:flex-start;
  margin:.35rem 0 0;
  font-weight:300;
  font-size:.88rem;
  line-height:1.45;
  color:var(--dgf-ink);
  cursor:pointer;
}
.dgf-check input{
  width:1.15rem;
  height:1.15rem;
  margin-top:.15rem;
  flex-shrink:0;
  accent-color:var(--dgf-red);
}

/* Nav */
.dgf-wizard__nav{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin-top:1.35rem;
  align-items:center;
}
.dgf-wizard__nav .dgf-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  min-height:48px;
  padding:.7rem 1.25rem;
  border:1px solid transparent;
  font:inherit;
  font-weight:500;
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .25s var(--dgf-ease),color .25s var(--dgf-ease),border-color .25s var(--dgf-ease),transform .25s var(--dgf-ease),opacity .25s var(--dgf-ease);
}
.dgf-wizard__nav .dgf-btn--primary{
  background:var(--dgf-red);
  color:#fff;
  border-color:var(--dgf-red);
  margin-left:auto;
}
.dgf-wizard__nav .dgf-btn--primary:hover{background:var(--dgf-red-dark);border-color:var(--dgf-red-dark)}
.dgf-wizard__nav .dgf-btn--ghost{
  background:transparent;
  color:var(--dgf-ink);
  border-color:var(--dgf-line);
}
.dgf-wizard__nav .dgf-btn--ghost:hover{border-color:var(--dgf-ink)}
.dgf-wizard__nav .dgf-btn:focus-visible{
  outline:2px solid var(--dgf-red);
  outline-offset:3px;
}
.dgf-wizard__nav .dgf-btn.is-loading{opacity:.65;pointer-events:none}
.dgf-wizard__nav .dgf-btn[hidden]{display:none!important}
.dgf-ico--flip{transform:scaleX(-1)}

.dgf-wizard__error{
  margin:.85rem 0 0;
  padding:.75rem .9rem;
  background:#fff5f5;
  border-left:3px solid var(--dgf-red);
  color:var(--dgf-red-dark);
  font-weight:400;
  font-size:.88rem;
}
.dgf-wizard__error[hidden]{display:none!important}

.dgf-wizard__success{
  text-align:left;
  padding:1.5rem 0;
}
.dgf-wizard__success-ico{
  display:inline-grid;
  place-items:center;
  width:3rem;
  height:3rem;
  margin-bottom:.75rem;
  border-radius:50%;
  background:var(--dgf-red);
  color:#fff;
}
.dgf-wizard__success-ico .dgf-ico{stroke:#fff}

/* Honeypot — visually + a11y hidden (pair with aria-hidden + inert on wrapper) */
.dgf-hp{
  position:absolute!important;
  left:-10000px!important;
  top:auto!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
  clip:rect(0,0,0,0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
  border:0!important;
  padding:0!important;
  margin:0!important;
}

.screen-reader-text{
  position:absolute!important;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);
  white-space:nowrap;border:0;
}

@media (prefers-reduced-motion:reduce){
  .dgf-wizard__panel.is-enter{animation:none}
  .dgf-wizard__bar-fill,
  .dgf-wizard__dot-num,
  .dgf-choice,
  .dgf-wizard__nav .dgf-btn{transition:none}
  .dgf-wizard__step.is-active .dgf-wizard__dot-num{transform:none}
  @media (min-width:721px){
    .dgf-choice:hover{transform:none}
  }
}

@media (max-width:720px){
  .dgf-wizard{margin-top:1rem}
  .dgf-wizard__dot-label{font-size:.58rem;letter-spacing:.04em}
  .dgf-wizard__nav{gap:.5rem}
  .dgf-wizard__nav .dgf-btn{flex:1 1 auto;min-width:calc(50% - .35rem)}
  .dgf-wizard__nav .dgf-btn--primary{margin-left:0;flex:1 1 100%}
}
