@font-face {
  font-family: Vazirmatn;
  src: url(/fonts/vazirmatn-arabic.woff2) format('woff2');
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0600-06FF, U+0750-077F, U+200C-200E, U+FB50-FDFF, U+FE70-FEFF;
}
@font-face {
  font-family: Vazirmatn;
  src: url(/fonts/vazirmatn-latin.woff2) format('woff2');
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0000-00FF, U+2000-206F;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }

body {
  margin: 0;
  background: #F3F6F4;
  color: #14231F;
  font: 400 16px/1.7 Vazirmatn, Tahoma, sans-serif;
}

.wrap { max-width: 640px; margin-inline: auto; padding-inline: 16px; }

.site-header { background: #FFF; border-bottom: 1px solid #DCE3DF; }
.header-row { padding-block: 14px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.brand { font-size: 22px; font-weight: 800; color: #0F5A4A; }
.domain { font-size: 14px; color: #4D5F59; }

.main { padding-block: 32px 40px; display: flex; flex-direction: column; gap: 24px; }
.stage { display: flex; flex-direction: column; gap: 24px; }
.intro { display: flex; flex-direction: column; gap: 8px; }
h1:focus { outline: none; }
.error { margin: 4px 0 0; color: #A3271B; font-size: 14px; }
.fine { margin: 0; color: #4D5F59; font-size: 13px; text-align: center; }
.quiet {
  min-height: 44px;
  border: 0;
  background: none;
  color: #0F5A4A;
  font: inherit;
  font-size: 15px;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}
h1 { margin: 0; font-size: clamp(27px, 4vw, 36px); line-height: 1.35; font-weight: 800; }
.intro p { margin: 0; font-size: 17px; color: #33453F; }

.card {
  background: #FFF;
  border: 1px solid #DCE3DF;
  border-radius: 12px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px 16px; }
.field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.field label, legend { font-weight: 700; font-size: 15px; }
input[type='text'], input[type='tel'], select {
  width: 100%;
  height: 48px;
  padding: 0 12px;
  font: inherit;
  color: inherit;
  background: #FFF;
  border: 1px solid #8D9C96;
  border-radius: 8px;
}
input[dir='ltr'] { text-align: right; }
#cityOther { margin-top: 6px; }
select:disabled, input:disabled { background: #EEF1EF; }
.submit:disabled { opacity: .6; cursor: wait; }

.subjects { margin: 0; padding: 0; border: 0; min-width: 0; }
legend { padding: 0; margin-bottom: 10px; }
.options { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; }
.option {
  min-height: 48px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 15px;
  line-height: 1.5;
  cursor: pointer;
  border: 1px solid #C4CFCA;
  border-radius: 8px;
  background: #FFF;
}
.option:has(input:checked) { border-color: #0F5A4A; box-shadow: inset 0 0 0 1px #0F5A4A; background: #E4F0EB; }
.option input { width: 18px; height: 18px; margin: 0; flex: none; accent-color: #0F5A4A; }

.submit {
  height: 52px;
  border: 0;
  border-radius: 8px;
  background: #0F5A4A;
  color: #FFF;
  font: inherit;
  font-size: 17px;
  font-weight: 700;
  cursor: pointer;
}
.submit:hover { background: #0A3F34; }
:focus-visible { outline: 3px solid #B84A17; outline-offset: 2px; }

.done { background: #E4F0EB; border-radius: 12px; padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.done h1 { font-size: 24px; color: #0A3F34; }
.done p { margin: 0; }

.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 16px; }
.step { display: flex; align-items: center; gap: 10px; font-weight: 500; font-size: 15px; }
.num {
  width: 32px;
  height: 32px;
  flex: none;
  border-radius: 50%;
  background: #0F5A4A;
  color: #FFF;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.site-footer { background: #FFF; border-top: 1px solid #DCE3DF; font-size: 14px; color: #33453F; }
.site-footer .wrap { padding-block: 20px; display: flex; flex-direction: column; gap: 4px; }
