/* ==========================================================================
   Doctor registration (page-templates/doctor-registration.php)
   Desktop: sticky step sidebar + form. Mobile: compact progress header.
   ========================================================================== */
.doctors-body{padding:clamp(3rem,7vw,5rem) 0 clamp(4rem,8vw,6rem);position:relative;overflow:hidden;
  background:radial-gradient(ellipse 50% 35% at 88% 0%,#FFE1E5 0%,transparent 60%),radial-gradient(ellipse 40% 30% at 0% 22%,var(--purple-soft) 0%,transparent 60%),linear-gradient(180deg,var(--bg-warm) 0%,#fff 55%)}
.doctors-body > .wrap{width:min(1200px,calc(100% - 48px));position:relative}
.doctors-orbs span{position:absolute;border-radius:50%;border:1.5px solid rgba(122,79,192,.14);pointer-events:none}
.doctors-orbs span:nth-child(1){width:360px;height:360px;top:-130px;left:-130px}
.doctors-orbs span:nth-child(2){width:200px;height:200px;top:120px;right:-70px;border-color:rgba(242,77,121,.18)}

/* Intro */
.docs-intro{text-align:center;max-width:780px;margin:0 auto 36px}
.docs-intro .eyebrow{margin-bottom:18px}
.docs-intro h1{font-size:clamp(2.6rem,5.4vw,4.2rem);margin:0 0 20px;letter-spacing:-.035em;line-height:1.04;font-weight:800}
.docs-intro h1 em{display:block;font-style:italic;font-weight:700;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.06em}
.docs-intro .desc,.docs-intro .desc p{font-size:clamp(18px,1.6vw,20px);color:var(--ink-2);line-height:1.65}
.docs-intro .desc strong{color:var(--ink)}

.docs-meta{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin:0 auto 40px}
.docs-meta > div{display:flex;align-items:center;gap:10px;padding:10px 18px 10px 12px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-full);box-shadow:var(--shadow-sm)}
.docs-meta > div::before{content:"";width:30px;height:30px;border-radius:50%;background:var(--t-mid) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B1D3A' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/14px no-repeat;flex:none}
.docs-meta .k{font-size:14px;color:var(--muted);font-weight:500}
.docs-meta .v{font-family:var(--font-head);font-size:16px;font-weight:700;color:var(--ink)}

.docs-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 auto clamp(40px,6vw,64px)}
.db{padding:24px;border-radius:var(--radius-l);background:var(--t-soft);border:1px solid var(--t-mid);display:flex;flex-direction:column;gap:6px;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.db:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.db-icon{width:46px;height:46px;border-radius:14px;background:#fff;color:var(--t-dark);display:grid;place-items:center;margin-bottom:8px;box-shadow:var(--shadow-sm)}
.db-icon .icon{width:22px;height:22px}
.db b{font-family:var(--font-head);font-size:19px;font-weight:700;color:var(--ink)}
.db > span:last-child{font-size:16px;color:var(--ink-2);line-height:1.55}

/* Layout */
.reg{display:grid;grid-template-columns:300px minmax(0,1fr);gap:28px;align-items:start}
.reg-aside{position:sticky;top:calc(var(--header-h) + 20px);display:grid;gap:14px}
.ra-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-l);padding:22px;box-shadow:var(--shadow)}
.ra-kicker{font-family:var(--font-head);font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--pink);margin:0 0 4px}
.ra-now{font-size:16px;color:var(--ink-2);margin:0 0 12px}
.ra-now b{font-family:var(--font-head);font-weight:800;color:var(--ink)}
.ra-now [data-current-label]{font-weight:600;color:var(--ink)}
.reg-progress{height:8px;background:var(--line-2);border-radius:var(--radius-full);overflow:hidden;margin-bottom:18px}
.reg-progress span{display:block;height:100%;width:0;background:var(--grad);border-radius:inherit;transition:width .5s var(--ease)}
.stepper{list-style:none;display:grid;gap:2px;position:relative}
.step-tab{width:100%;display:flex;align-items:center;gap:12px;padding:10px;border-radius:14px;text-align:left;color:var(--muted);transition:background .2s var(--ease),color .2s var(--ease)}
.step-tab:not(:disabled):hover{background:var(--bg-sunken);color:var(--ink)}
.step-tab:disabled{cursor:not-allowed}
.step-tab:disabled .st-label{color:var(--muted-2)}
.step-num{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:2px solid var(--line);background:#fff;font-family:var(--font-head);font-size:13px;font-weight:700;color:var(--muted);flex:none;transition:.2s var(--ease)}
.step-num .icon{display:none;width:14px;height:14px;stroke-width:3}
.step-text{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.st-label{font-family:var(--font-head);font-size:16px;font-weight:600;color:var(--ink-2)}
.st-hint{font-size:13.5px;color:var(--muted-2);margin-top:2px}
.step-tab.active{background:var(--pink-tint)}
.step-tab.active .step-num{background:var(--grad);border-color:transparent;color:#fff;box-shadow:0 0 0 4px rgba(242,77,121,.18)}
.step-tab.active .st-label{color:var(--pink-dark)}
.step-tab.done .step-num{background:var(--sage);border-color:var(--sage);color:#fff}
.step-tab.done .sn{display:none}
.step-tab.done .step-num .icon{display:block}
.step-tab.done .st-label{color:var(--ink)}
.ra-note{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:var(--radius-l);background:var(--sage-tint);border:1px solid var(--sage-soft)}
.ra-note--help{background:var(--purple-tint);border-color:var(--purple-soft)}
.ra-icon{width:36px;height:36px;border-radius:11px;background:#fff;color:var(--sage-dark);display:grid;place-items:center}
.ra-note--help .ra-icon{color:var(--purple)}
.ra-icon .icon{width:18px;height:18px}
.ra-note p{font-size:14.5px;color:var(--ink-2);line-height:1.5;margin:0}
.ra-note b{display:block;font-family:var(--font-head);font-size:15.5px;color:var(--ink);margin-bottom:2px}
.ra-note a{color:var(--purple-dark);font-weight:600;text-decoration:underline;text-underline-offset:2px}

/* Step card */
.reg-main{min-width:0}
.form-card{border:1px solid var(--line);border-radius:var(--radius-xl);background:#fff;padding:clamp(24px,4vw,48px);margin:0;min-width:0;box-shadow:var(--shadow-lg)}
.form-card.active{animation:fadeStep .4s var(--ease)}
@keyframes fadeStep{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.form-step-head{margin-bottom:32px;padding-bottom:26px;border-bottom:1px solid var(--line)}
.form-step-head .step-label{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-head);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pink-dark);padding:6px 13px;border-radius:var(--radius-full);background:var(--pink-tint);margin-bottom:14px}
.form-step-head h2{font-size:clamp(1.8rem,3vw,2.4rem);margin:0 0 10px;font-weight:800}
.form-step-head h2:focus{outline:none}
.form-step-head p{font-size:17.5px;color:var(--ink-2);line-height:1.6;margin:0;max-width:62ch}
.form-step-head strong{color:var(--ink)}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 22px}
.form-grid--one{grid-template-columns:1fr;max-width:560px}
.form-grid-full{grid-column:1/-1}
.form-group{display:flex;flex-direction:column;gap:8px;min-width:0}
.form-label{font-size:15.5px;font-weight:600;color:var(--ink)}
.form-help{font-size:14px;color:var(--muted);margin:0}
.form-input,.form-select,.form-textarea{width:100%;min-height:56px;padding:15px 18px;background:var(--bg-sunken);border:1.5px solid transparent;border-radius:var(--radius);font-size:17px;color:var(--ink);outline:none;transition:background .15s var(--ease),border-color .15s var(--ease),box-shadow .15s var(--ease)}
.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:var(--line)}
.form-input:focus,.form-select:focus,.form-textarea:focus{background:#fff;border-color:var(--pink);box-shadow:0 0 0 4px rgba(242,77,121,.12)}
.form-input::placeholder,.form-textarea::placeholder{color:var(--muted-2)}
.form-input[aria-invalid=true],.form-select[aria-invalid=true],.form-textarea[aria-invalid=true]{border-color:var(--pink);background:var(--pink-tint)}
.form-textarea{resize:vertical;min-height:150px;line-height:1.6}
.form-select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235C5070' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:18px;padding-right:46px;cursor:pointer}
.char-count{font-size:14px;color:var(--muted);text-align:right}
.char-count.warn{color:var(--pink-dark);font-weight:600}
.section-divider{grid-column:1/-1;border-top:1px dashed var(--line);margin-top:4px}
.section-title{grid-column:1/-1;font-family:var(--font-head);font-size:1.25rem;font-weight:700;color:var(--ink);margin:0}

/* Uploads */
.file-upload{border:2px dashed var(--line);border-radius:var(--radius-l);padding:28px 20px;text-align:center;background:var(--bg-sunken);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;transition:border-color .15s var(--ease),background .15s var(--ease),transform .2s var(--ease)}
.file-upload:hover,.file-upload.is-drag{border-color:var(--pink);background:var(--pink-tint)}
.file-upload.is-drag{transform:scale(1.01)}
.file-upload:focus-within{border-color:var(--pink);box-shadow:0 0 0 4px rgba(242,77,121,.12)}
.file-upload.has-file{border-style:solid;border-color:rgba(59,154,108,.45);background:var(--sage-tint)}
.file-upload.is-invalid{border-color:var(--pink);background:var(--pink-tint)}
.file-upload input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.fu-icon{width:48px;height:48px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;box-shadow:var(--shadow-pink);margin-bottom:6px}
.fu-icon .icon{width:22px;height:22px}
.has-file .fu-icon{background:var(--sage);box-shadow:none}
.fu-text{font-size:16px;color:var(--ink-2)}
.fu-text .accent{color:var(--pink-dark);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.fu-hint{font-size:14px;color:var(--muted)}
.file-name{margin-top:8px;font-size:15px;font-weight:600;color:var(--sage-dark);display:flex;align-items:center;gap:6px;max-width:100%;padding:6px 12px;background:#fff;border-radius:var(--radius-full)}
.file-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-name .icon{width:16px;height:16px;stroke-width:2.6}
.file-upload--photo{padding:34px 20px}
.photo-preview{width:128px;height:128px;border-radius:50%;background:#fff;border:4px solid #fff;box-shadow:var(--shadow);display:grid;place-items:center;color:var(--muted-2);overflow:hidden;margin-bottom:12px}
.photo-preview .icon{width:52px;height:52px;stroke-width:1.4}
.photo-preview img{width:100%;height:100%;object-fit:cover}
.file-upload--photo .fu-icon{display:none}

/* Specialties */
.checkbox-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.checkbox-item{display:flex;align-items:center;gap:12px;min-height:60px;padding:14px 16px;background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);font-size:16px;font-weight:500;color:var(--ink);cursor:pointer;transition:background .15s var(--ease),border-color .15s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}
.checkbox-item:hover{border-color:var(--pink-soft);transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.checkbox-item:has(input:checked){background:var(--pink-tint);border-color:var(--pink);color:var(--pink-dark)}
.checkbox-item span:first-of-type{flex:1}
.primary-tag{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border-radius:var(--radius-full);background:var(--grad);color:#fff}

.secure-note{display:flex;align-items:center;gap:12px;margin:26px 0 0;padding:16px 18px;border-radius:var(--radius);background:var(--sage-tint);border:1px solid var(--sage-soft);color:var(--sage-dark);font-size:15.5px;font-weight:500}
.secure-note .icon{width:22px;height:22px}

/* Review */
.review{display:grid;gap:14px}
.review-group{border:1px solid var(--line);border-radius:var(--radius-l);overflow:hidden}
.review-group header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;background:var(--bg-sunken)}
.review-group h3{font-size:17px;font-weight:700}
.review-edit{font-size:15px;color:var(--pink-dark);font-weight:600;padding:6px 14px;border-radius:var(--radius-full);background:#fff;border:1px solid var(--line);transition:background .15s var(--ease),border-color .15s var(--ease)}
.review-edit:hover{background:var(--pink-tint);border-color:var(--pink-soft)}
.review-group dl{padding:6px 20px}
.review-line{display:grid;grid-template-columns:200px 1fr;gap:20px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--line-2)}
.review-line:last-child{border-bottom:0}
.review-line dt{font-size:14.5px;font-weight:500;color:var(--muted)}
.review-line dd{font-size:16.5px;color:var(--ink);line-height:1.5;word-break:break-word;font-weight:500}
.review-bio{white-space:pre-line;color:var(--ink-2);font-size:15.5px;font-weight:400}
.review-photo{width:76px;height:76px;border-radius:50%;object-fit:cover;box-shadow:var(--shadow-sm)}
.review-chip{display:inline-block;padding:5px 12px;margin:2px 4px 2px 0;border-radius:var(--radius-full);background:var(--bg-sunken);font-size:14.5px}
.review-chip.primary{background:var(--pink-tint);color:var(--pink-dark);font-weight:600}

/* Terms */
.terms-box{background:var(--bg-sunken);border:1px solid var(--line);border-radius:var(--radius-l);padding:28px;max-height:360px;overflow-y:auto;font-size:16px;line-height:1.7;color:var(--ink-2);margin-bottom:22px}
.terms-box:focus-visible{outline:3px solid rgba(242,77,121,.35)}
.terms-box h3,.terms-box h4{font-size:17px;font-weight:700;color:var(--purple-dark);margin:0 0 8px}
.terms-box p{color:var(--ink-2);margin:0 0 22px}
.terms-box p:last-child{margin-bottom:0}
.terms-box strong{color:var(--ink)}
.checkbox-terms{display:flex;align-items:flex-start;gap:14px;padding:20px;background:#fff;border:1.5px solid var(--line);border-radius:var(--radius-l);font-size:16px;color:var(--ink);line-height:1.55;cursor:pointer;transition:border-color .15s var(--ease),background .15s var(--ease)}
.checkbox-terms:has(input:checked){border-color:var(--sage);background:var(--sage-tint)}

.form-nav{display:flex;justify-content:flex-end;gap:12px;margin-top:38px;padding-top:28px;border-top:1px solid var(--line)}
.form-nav .btn{min-width:170px}
.form-nav [data-prev]{margin-right:auto}

.form-card--done{text-align:center}
.form-card--done:focus{outline:none}
.form-done{padding:24px 12px}
.form-done h2{font-size:clamp(1.9rem,3vw,2.4rem);margin:0 0 14px;font-weight:800}
.done-text,.done-text p{font-size:17.5px;color:var(--ink-2);line-height:1.65;max-width:52ch;margin:0 auto 14px}
.form-done .btn{margin-top:14px}

@media (max-width:1060px){
  .reg{grid-template-columns:minmax(0,1fr);gap:18px}
  .reg-aside{position:sticky;top:var(--header-h);z-index:20;gap:0;min-width:0}
  .ra-card{min-width:0}
  .ra-card{padding:14px 16px 10px;border-radius:var(--radius-l);box-shadow:0 12px 28px -18px rgba(43,29,58,.35)}
  .ra-kicker{display:none}
  .ra-now{margin-bottom:8px;font-size:15px}
  .reg-progress{margin-bottom:10px;height:6px}
  .stepper{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;scroll-snap-type:x proximity}
  .stepper::-webkit-scrollbar{display:none}
  .stepper li{flex:none;scroll-snap-align:start}
  .step-tab{padding:6px 10px 6px 6px;border-radius:var(--radius-full);gap:8px;border:1px solid var(--line)}
  .step-tab.active{border-color:var(--pink-soft)}
  .step-num{width:26px;height:26px;font-size:12px}
  .st-label{font-size:14px;white-space:nowrap}
  .st-hint{display:none}
  .ra-note{display:none}
  .docs-benefits{grid-template-columns:1fr;gap:12px}
  .db{flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:14px;padding:18px}
  .db-icon{margin:0}
  .db > span:last-child{flex-basis:100%}
}
@media (max-width:900px){
  .form-grid{grid-template-columns:1fr}
  .checkbox-grid{grid-template-columns:1fr 1fr}
  .review-line{grid-template-columns:1fr;gap:4px}
}
@media (max-width:640px){
  .doctors-body > .wrap{width:calc(100% - 32px)}
  .docs-meta{display:grid;gap:8px}
  .docs-meta > div{border-radius:var(--radius)}
  .checkbox-grid{grid-template-columns:1fr}
  .form-card{border-radius:var(--radius-l);padding:22px 18px}
  .form-step-head{margin-bottom:24px;padding-bottom:20px}
  .form-nav{flex-direction:column-reverse}
  .form-nav .btn{width:100%}
  .form-nav [data-prev]{margin-right:0}
  .terms-box{padding:20px;max-height:300px}
}

/* Steps that were visited but still have missing fields (same idea as the live form) */
.step-tab.attention .step-num{background:var(--pink-tint);border-color:var(--pink);color:var(--pink-dark)}
.step-tab.attention .sn{display:none}
.step-tab.attention .step-num::before{content:"!";font-weight:800}
.step-tab.attention .st-hint{color:var(--pink-dark)}
.step-tab.attention .st-hint::before{content:"Missing info · "}
.missing-box{display:grid;grid-template-columns:auto 1fr;gap:12px;margin-top:20px;padding:16px 18px;border-radius:var(--radius-l);background:var(--pink-tint);border:1px solid var(--pink-soft)}
.mb-icon{width:34px;height:34px;border-radius:50%;background:var(--pink);color:#fff;display:grid;place-items:center}
.mb-icon .icon{width:16px;height:16px;stroke-width:2.6}
.missing-box p{margin:0 0 10px;font-size:15.5px;font-weight:600;color:var(--ink)}
.missing-list{display:flex;flex-wrap:wrap;gap:8px}
.missing-chip{padding:7px 14px;border-radius:var(--radius-full);background:#fff;border:1.5px solid var(--pink-soft);font-size:14.5px;font-weight:600;color:var(--pink-dark);transition:background .15s var(--ease),border-color .15s var(--ease)}
.missing-chip:hover{border-color:var(--pink);background:var(--pink-soft)}
.redirect-note{font-size:15.5px;color:var(--muted);margin:8px 0 14px}
.redirect-note b{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--grad);color:#fff;font-family:var(--font-head)}
