.crd {
  position: relative;
  padding: 2rem 1.75rem;
  border-radius: 12px;
  background: #ffffff;
  color: var(--plum);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.07);
  overflow: hidden;
}
.crd::before {
  content: attr(data-step);
  position: absolute;
  top: -0.2em;
  right: 0.2em;
  font-family: 'Poppins', system-ui, sans-serif;
  font-size: 5rem;
  font-weight: 800;
  color: rgba(240, 138, 28, 0.16);
  line-height: 1;
  pointer-events: none;
}
.crd h3 { position: relative; margin-bottom: 0.5rem; padding-right: 22%; color: var(--navy); }
.crd p { position: relative; color: var(--mute); }

.bd {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: var(--fl-small);
  font-weight: 500;
  line-height: 1.35;
}
.bd svg { flex: 0 0 auto; width: 1.4rem; height: 1.4rem; color: var(--orng-2); }

.brsh {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 40px;
  pointer-events: none;
}
.brsh::before {
  content: "";
  position: absolute;
  inset: 0;
  height: 40px;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='40'%3E%3Cpath d='M0 20 Q300 0 600 20 T1200 20 V40 H0Z'/%3E%3C/svg%3E") bottom/cover no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='40'%3E%3Cpath d='M0 20 Q300 0 600 20 T1200 20 V40 H0Z'/%3E%3C/svg%3E") bottom/cover no-repeat;
}
.brsh-d::before { background: var(--plum); }
.brsh-l::before { background: var(--lav); }

.fx { display: grid; grid-template-columns: 1fr; gap: 0.5rem; margin-top: var(--fl-sp-m); }
.fx-r {
  display: grid;
  grid-template-columns: 38% 1fr;
  gap: 0.75rem;
  padding: 0.7rem 0;
  border-bottom: 1px solid rgba(217, 205, 224, 0.28);
}
.fx dt { font-family: 'Poppins', system-ui, sans-serif; font-weight: 600; color: var(--orng-2); }
.fx dd { margin: 0; }

.stp { counter-reset: stp; display: grid; gap: 0.75rem; margin-top: var(--fl-sp-m); }
.stp-i {
  counter-increment: stp;
  position: relative;
  padding: 0.9rem 1rem 0.9rem 3.6rem;
  background: #ffffff;
  border-radius: 10px;
  border-left: 4px solid var(--orng);
}
.stp-i::before {
  content: counter(stp);
  position: absolute;
  left: 1rem;
  top: 0.85rem;
  width: 1.9rem;
  height: 1.9rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--navy);
  color: #ffffff;
  font-family: 'Poppins', system-ui, sans-serif;
  font-weight: 700;
  font-size: 0.95rem;
}
.stp-i strong { display: block; font-family: 'Poppins', system-ui, sans-serif; color: var(--navy); }
.stp-i span { color: var(--mute); }

.fq { margin-top: var(--fl-sp-m); border-top: 1px solid #e5e7eb; }
.fq-it { border-bottom: 1px solid #e5e7eb; }
.fq-q {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  width: 100%;
  min-height: 44px;
  padding: 1.1rem 0;
  cursor: pointer;
  font-family: 'Poppins', system-ui, sans-serif;
  font-weight: 600;
  font-size: 1.02rem;
  text-align: left;
  color: var(--navy);
}
.fq-q::after {
  content: "";
  flex: 0 0 auto;
  width: 0.7rem;
  height: 0.7rem;
  border-right: 2px solid var(--burnt);
  border-bottom: 2px solid var(--burnt);
  transform: rotate(45deg);
  transition: transform 0.3s;
}
.fq-it.open .fq-q::after { transform: rotate(-135deg); }
.fq-a { max-height: 0; overflow: hidden; transition: max-height 0.3s; }
.fq-it.open .fq-a { max-height: 400px; padding-bottom: 1.1rem; }
.fq-a p { color: var(--mute); }

.fm { display: grid; gap: 1rem; }
.fm-f { display: grid; gap: 0.35rem; }
.fm-l { font-family: 'Poppins', system-ui, sans-serif; font-weight: 600; font-size: 0.95rem; color: var(--navy); }
.fm-i {
  width: 100%;
  min-height: 3rem;
  padding: 0.7rem 0.9rem;
  border: 2px solid var(--mist);
  border-radius: 8px;
  background: #ffffff;
  color: #333333;
  transition: border-color 0.2s;
}
.fm-i:focus { border-color: var(--navy); outline: none; box-shadow: 0 0 0 3px rgba(28, 42, 110, 0.18); }
.fm-ph { display: grid; grid-template-columns: auto 1fr; }
.fm-cc {
  display: grid;
  place-items: center;
  padding: 0 0.8rem;
  border: 2px solid var(--mist);
  border-right: 0;
  border-radius: 8px 0 0 8px;
  background: var(--lav-2);
  color: var(--navy);
  font-weight: 500;
}
.fm-ph .fm-i { border-radius: 0 8px 8px 0; }
.fm-c { display: grid; grid-template-columns: 1.4rem 1fr; gap: 0.6rem; align-items: start; font-size: var(--fl-small); line-height: 1.5; color: var(--mute); }
.fm-c input { width: 1.25rem; height: 1.25rem; margin-top: 0.1rem; accent-color: var(--navy); }
.fm-c a { color: var(--navy); text-decoration: underline; }
.fm-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.fm-e { padding: 0.75rem 1rem; border-radius: 8px; background: #fdecec; color: #8a1c1c; font-size: 0.95rem; }
.fm .bt { width: 100%; }
.fm-n { font-size: var(--fl-small); color: var(--mute); text-align: center; }
