/* ═══ APPOINTMENT PAGE STYLES ═══ */
.appt-hero{position:relative;overflow:hidden;padding:110px 0 80px;background:var(--primary);min-height:340px;display:flex;flex-direction:column;justify-content:flex-end;}
.appt-hero .hero-bg{position:absolute;inset:0;z-index:0;}
.appt-hero .hero-bg .hero-bg-blob1{position:absolute;border-radius:50%;filter:blur(100px);width:700px;height:700px;background:radial-gradient(ellipse at 60% 40%,rgba(45,125,210,0.22) 0%,transparent 65%);top:-120px;right:-80px;}
.appt-hero .hero-bg .hero-bg-blob2{position:absolute;border-radius:50%;filter:blur(100px);width:500px;height:500px;background:radial-gradient(ellipse at 40% 60%,rgba(78,155,234,0.1) 0%,transparent 65%);bottom:-150px;left:-80px;}
.appt-hero .hero-bg .hero-bg-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(78,155,234,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(78,155,234,0.04) 1px,transparent 1px);background-size:55px 55px;}
.appt-hero-inner{position:relative;z-index:2;max-width:900px;margin:0 auto;padding:0 40px;text-align:left;}
.appt-breadcrumb{display:flex;align-items:center;gap:8px;font-size:0.8rem;color:var(--accent);margin-bottom:32px;}
.appt-breadcrumb a{color:rgba(78,155,234,0.6);text-decoration:none;}.appt-breadcrumb a:hover{color:var(--accent);}
.appt-breadcrumb span{color:rgba(255,255,255,0.2);}
.appt-hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(78,155,234,0.1);border:1px solid rgba(78,155,234,0.3);color:var(--accent);font-size:0.7rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;padding:7px 16px;border-radius:100px;margin-bottom:20px;}
.appt-hero-badge-dot{width:6px;height:6px;background:var(--accent);border-radius:50%;animation:pulse 2s infinite;}
.appt-hero h1{font-family:var(--font-display);font-size:clamp(2.6rem,5vw,4rem);font-weight:700;color:#f0f4f8;line-height:1.08;margin:0 0 14px;}
.appt-hero h1 em{font-style:italic;color:var(--accent);}
.appt-hero-desc{font-family:var(--font-body);color:rgba(255,255,255,0.55);font-size:1rem;line-height:1.8;max-width:500px;}
.appt-hero-bottom{position:relative;z-index:2;max-width:900px;margin:40px auto 0;padding:0 40px;}
.appt-hero-line{height:1px;background:linear-gradient(90deg,transparent,rgba(78,155,234,0.3),transparent);}

.appt-section{background:var(--bg-section);padding:60px 0 100px;min-height:60vh;}
.appt-section .section-inner{max-width:820px;margin:0 auto;padding:0 24px;}

.step-tracker{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:44px;}
.step-item{display:flex;flex-direction:column;align-items:center;position:relative;z-index:1;}
.step-circle{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-body);font-size:0.85rem;font-weight:700;border:2px solid var(--border);background:#fff;color:var(--text-light);transition:all 0.35s;}
.step-item.active .step-circle{background:var(--primary);border-color:var(--primary);color:var(--accent);box-shadow:0 0 0 5px rgba(78,155,234,0.15);}
.step-item.done .step-circle{background:var(--accent);border-color:var(--accent);color:var(--primary);}
.step-label{font-family:var(--font-body);font-size:0.68rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-light);margin-top:7px;transition:color 0.3s;}
.step-item.active .step-label{color:var(--text);}.step-item.done .step-label{color:var(--accent-dark);}
.step-connector{flex:1;height:2px;background:var(--border);position:relative;top:-14px;transition:background 0.35s;}
.step-connector.done{background:var(--accent);}

.wizard-card{background:#fff;border-radius:24px;border:1px solid rgba(15,25,35,0.07);padding:40px 44px;box-shadow:var(--shadow);animation:fadeUp 0.35s ease;}
.wizard-card-header{margin-bottom:32px;}
.step-tag{font-family:var(--font-body);font-size:0.7rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent-dark);display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.step-tag::before{content:'';display:block;width:18px;height:1.5px;background:var(--accent-dark);}
.wizard-card-header h2{font-family:var(--font-display);font-size:1.9rem;font-weight:700;color:var(--text);line-height:1.1;}
.wizard-card-header h2 em{font-style:italic;color:var(--primary-light);}
.wizard-card-header p{font-family:var(--font-body);font-size:0.88rem;color:var(--text-muted);margin-top:6px;line-height:1.6;}

.hospital-cards{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-top:8px;}
.hospital-card{border:2px solid var(--border);border-radius:16px;padding:22px 20px;cursor:pointer;transition:all 0.25s;background:var(--bg-card);position:relative;overflow:hidden;}
.hospital-card:hover{border-color:var(--accent);background:#eef2fb;}
.hospital-card.selected{border-color:var(--primary);background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);}
.hospital-card-check{position:absolute;top:14px;right:14px;width:22px;height:22px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;background:#fff;transition:all 0.25s;}
.hospital-card.selected .hospital-card-check{background:var(--accent);border-color:var(--accent);}
.hospital-card-check svg{width:12px;height:12px;display:none;}.hospital-card.selected .hospital-card-check svg{display:block;}
.hospital-icon{font-size:2rem;margin-bottom:12px;display:block;}
.hospital-name{font-family:var(--font-body);font-size:0.95rem;font-weight:700;color:var(--text);margin-bottom:4px;transition:color 0.25s;}
.hospital-card.selected .hospital-name{color:#fff;}
.hospital-loc{font-family:var(--font-body);font-size:0.78rem;color:var(--text-muted);margin-bottom:10px;transition:color 0.25s;}
.hospital-card.selected .hospital-loc{color:rgba(255,255,255,0.6);}
.hospital-timing{display:inline-flex;align-items:center;gap:6px;background:rgba(45,125,210,0.12);border-radius:999px;padding:4px 12px;font-family:var(--font-body);font-size:0.72rem;font-weight:600;color:var(--accent-dark);transition:all 0.25s;}
.hospital-card.selected .hospital-timing{background:rgba(78,155,234,0.18);color:var(--accent);}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-group{display:flex;flex-direction:column;gap:6px;}.form-group.full{grid-column:1/-1;}
.form-group label{font-family:var(--font-body);font-size:0.78rem;font-weight:600;color:var(--text);letter-spacing:0.04em;}
.form-group input,.form-group select{font-family:var(--font-body);font-size:0.9rem;color:var(--text);background:var(--bg-card);border:1.5px solid var(--border);border-radius:10px;padding:11px 14px;outline:none;transition:border-color 0.2s,background 0.2s;-webkit-appearance:none;appearance:none;}
.form-group input:focus,.form-group select:focus{border-color:var(--accent);background:#fff;}
.form-group input::placeholder{color:var(--text-light);}
.select-wrap{position:relative;}.select-wrap select{width:100%;cursor:pointer;}.select-wrap::after{content:'▾';position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none;font-size:0.85rem;}
.field-error{font-family:var(--font-body);font-size:0.72rem;color:#e57373;margin-top:2px;display:none;}.field-error.show{display:block;}

.services-grid-appt{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.svc-card{border:2px solid var(--border);border-radius:14px;padding:18px 14px;cursor:pointer;transition:all 0.22s;background:var(--bg-card);text-align:center;}
.svc-card:hover{border-color:var(--accent);background:#eef2fb;}
.svc-card.selected{border-color:var(--primary);background:var(--primary);}
.svc-icon{font-size:1.6rem;display:block;margin-bottom:8px;}
.svc-name{font-family:var(--font-body);font-size:0.82rem;font-weight:600;color:var(--text);transition:color 0.22s;line-height:1.3;}
.svc-card.selected .svc-name{color:var(--accent);}

.date-slot-wrap{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.cal-title{font-family:var(--font-display);font-size:1.2rem;font-weight:700;color:var(--text);}
.cal-nav{background:none;border:1.5px solid rgba(20,58,107,0.15);border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--accent-dark);font-size:1rem;transition:all 0.2s;}
.cal-nav:hover{background:#eef2fb;border-color:var(--accent);}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.cal-day-label{font-family:var(--font-body);font-size:0.65rem;font-weight:700;text-transform:uppercase;color:var(--text-light);text-align:center;padding:4px 0;}
.cal-day{aspect-ratio:1;border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:var(--font-body);font-size:0.82rem;font-weight:500;color:var(--text);cursor:pointer;transition:all 0.18s;border:1.5px solid transparent;}
.cal-day:hover:not(.disabled):not(.selected){background:#eef2fb;border-color:var(--accent);}
.cal-day.today{border-color:rgba(78,155,234,0.4);color:var(--accent-dark);font-weight:700;}
.cal-day.selected{background:var(--primary);color:var(--accent);font-weight:700;border-color:var(--primary);}
.cal-day.disabled{color:#d1d5db;cursor:not-allowed;}.cal-day.empty{cursor:default;}

.slot-box-title{font-family:var(--font-body);font-size:0.78rem;font-weight:700;color:var(--text);letter-spacing:0.06em;text-transform:uppercase;margin-bottom:14px;}
.slots-wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-height:320px;overflow-y:auto;padding-right:4px;}
.slots-wrap::-webkit-scrollbar{width:4px;}.slots-wrap::-webkit-scrollbar-thumb{background:var(--accent);border-radius:4px;}
.slot-pill{border:1.5px solid rgba(20,58,107,0.15);border-radius:8px;padding:8px 4px;text-align:center;cursor:pointer;transition:all 0.18s;font-family:var(--font-body);font-size:0.72rem;font-weight:600;color:var(--text);background:var(--bg-card);line-height:1.3;}
.slot-pill:hover:not(.passed):not(.selected){border-color:var(--accent);background:#eef2fb;color:var(--accent-dark);}
.slot-pill.selected{background:var(--primary);border-color:var(--primary);color:var(--accent);}
.slot-pill.passed{background:#fafafa;border-color:rgba(0,0,0,0.06);color:#c0c0c0;cursor:not-allowed;}
.slot-pill.passed::after{content:'Passed';display:block;font-size:0.6rem;color:#e57373;font-weight:700;margin-top:2px;}
.slot-pill.booked{background:rgba(239,68,68,0.06);border-color:rgba(239,68,68,0.2);color:#b0b0b0;cursor:not-allowed;position:relative;}
.slot-pill.booked::after{content:'Booked';display:block;font-size:0.6rem;color:#ef4444;font-weight:700;margin-top:2px;}
.slot-pill.booked:hover{transform:none;border-color:rgba(239,68,68,0.2);background:rgba(239,68,68,0.06);color:#b0b0b0;}
.no-date-msg{font-family:var(--font-body);font-size:0.85rem;color:var(--text-light);text-align:center;padding:40px 0;}
.slot-legend{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px;font-family:var(--font-body);font-size:0.7rem;font-weight:600;}
.slot-legend-item{display:flex;align-items:center;gap:5px;color:var(--text-muted);}
.slot-legend-dot{width:10px;height:10px;border-radius:3px;border:1.5px solid;flex-shrink:0;}
.slot-legend-dot.free{background:var(--bg-card);border-color:rgba(20,58,107,0.2);}

.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.review-item{background:var(--bg-card);border-radius:12px;border:1px solid var(--border-light);padding:16px 18px;}
.review-item.full{grid-column:1/-1;}
.review-label{font-family:var(--font-body);font-size:0.68rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent-dark);margin-bottom:6px;}
.review-value{font-family:var(--font-body);font-size:0.92rem;font-weight:600;color:var(--text);}
.review-confirm-box{background:linear-gradient(135deg,var(--primary),var(--primary-light));border-radius:16px;padding:24px 28px;margin-top:20px;text-align:center;}
.review-confirm-box p{font-family:var(--font-body);font-size:0.88rem;color:rgba(255,255,255,0.65);line-height:1.6;margin-bottom:18px;}

.wizard-nav{display:flex;justify-content:space-between;align-items:center;margin-top:36px;padding-top:24px;border-top:1px solid var(--border-light);}
.btn-back{font-family:var(--font-body);font-size:0.88rem;font-weight:600;color:var(--text-muted);background:none;border:1.5px solid rgba(20,58,107,0.15);border-radius:10px;padding:12px 24px;cursor:pointer;transition:all 0.2s;}
.btn-back:hover{border-color:var(--accent);color:var(--accent-dark);background:#f0f4fb;}
.btn-next{font-family:var(--font-body);font-size:0.88rem;font-weight:700;color:#fff;background:var(--primary);border:none;border-radius:10px;padding:13px 32px;cursor:pointer;transition:all 0.25s;display:flex;align-items:center;gap:10px;}
.btn-next:hover{background:var(--accent);color:var(--primary);transform:translateY(-1px);}
.btn-next:disabled{background:rgba(13,61,46,0.2);cursor:not-allowed;color:var(--text-light);transform:none;}
.btn-confirm{font-family:var(--font-body);font-size:0.9rem;font-weight:700;color:var(--primary);background:linear-gradient(135deg,var(--accent),var(--accent-dark));border:none;border-radius:10px;padding:14px 36px;cursor:pointer;transition:all 0.25s;display:flex;align-items:center;gap:10px;box-shadow:0 8px 24px rgba(78,155,234,0.35);margin:0 auto;}
.btn-confirm:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(78,155,234,0.5);}
.btn-confirm:disabled{opacity:0.6;cursor:not-allowed;transform:none;}

.success-screen{display:none;text-align:center;padding:20px 0;}
.success-screen.show{display:block;}
.success-icon{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#f59e0b,#d97706);display:flex;align-items:center;justify-content:center;font-size:2.2rem;margin:0 auto 24px;box-shadow:0 12px 40px rgba(245,158,11,0.35);}
.success-screen h2{font-family:var(--font-display);font-size:2.2rem;font-weight:700;color:var(--text);margin-bottom:10px;}
.success-screen h2 em{font-style:italic;color:var(--primary-light);}
.success-screen>p{font-family:var(--font-body);font-size:0.9rem;color:var(--text-muted);line-height:1.7;margin-bottom:20px;}
.success-ref{display:inline-block;background:#f0f4fb;border:1.5px solid rgba(78,155,234,0.3);border-radius:12px;padding:14px 28px;font-family:var(--font-display);font-size:1.4rem;font-weight:700;color:var(--accent-dark);letter-spacing:0.1em;margin-bottom:20px;}
.success-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;}
.btn-home{font-family:var(--font-body);font-size:0.88rem;font-weight:600;padding:12px 24px;border-radius:10px;text-decoration:none;transition:all 0.2s;background:var(--primary);color:#fff;border:none;cursor:pointer;}
.btn-home:hover{background:var(--accent);color:var(--primary);}

@media(max-width:768px){
  .appt-hero-inner,.appt-hero-bottom{padding:0 20px;}
  .appt-section .section-inner{padding:0 16px;}
  .wizard-card{padding:28px 20px;}
  .hospital-cards,.date-slot-wrap,.form-grid,.review-grid{grid-template-columns:1fr;}
  .services-grid-appt{grid-template-columns:repeat(2,1fr);}
  .step-label{display:none;}
}
@media(max-width:480px){.slots-wrap{grid-template-columns:repeat(2,1fr);}}
