.schedule-page{padding:118px 0 36px;background:var(--deep);color:#fff}
.schedule-top{max-width:720px;margin-bottom:16px}
.schedule-top h1{font-size:clamp(28px,3.4vw,38px);line-height:1.1;margin:4px 0 6px}
.schedule-top p{color:#ffffffc4;margin:0}
.schedule-card{background:#fff;color:var(--ink);border-radius:var(--radius);padding:clamp(18px,2.2vw,26px);box-shadow:0 24px 60px #0006}
.schedule-card section{padding:0}
.schedule-card h2{margin:0 0 12px;padding:0;font-size:22px;line-height:1.2;color:var(--navy)}
.schedule-card h3{margin:0 0 12px;color:var(--navy);font-size:16px}
.schedule-steps{list-style:none;display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px;padding:0;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.schedule-steps li{padding:4px 10px;border:1px solid var(--line);border-radius:999px}
.schedule-steps li.active{background:var(--navy);border-color:var(--navy);color:#fff}
.schedule-error{background:#fff3e3;border:1px solid var(--orange);color:#7a3b00;border-radius:8px;padding:12px 14px;margin:0 0 20px}
.schedule-notice{padding:8px 0}

.schedule-lengths{display:flex;gap:14px;flex-wrap:wrap}
.schedule-length,.schedule-slots button{border:1px solid var(--line);background:var(--light);color:var(--navy);border-radius:10px;padding:14px 26px;font-weight:700;transition:border-color .15s,background .15s}
.schedule-length:hover,.schedule-slots button:hover{border-color:var(--orange);background:#fff}

.schedule-step-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.schedule-step-head{justify-content:flex-start}
.schedule-step-head h2{margin:0}
.schedule-back-inline{margin:0 0 0 14px;font-size:14px}
.schedule-zone{margin-left:auto;display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
.schedule-zone select{padding:9px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;color:var(--ink);background:#fff}

.schedule-picker{display:grid;grid-template-columns:minmax(300px,340px) 1fr;gap:32px;align-items:start}
.schedule-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.schedule-cal-nav button{border:1px solid var(--line);background:#fff;border-radius:8px;width:32px;height:32px;font-size:20px;color:var(--navy)}
.schedule-cal-nav button:disabled{opacity:.35;cursor:default}
.schedule-cal-head,.schedule-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.schedule-cal-head{margin-bottom:4px;text-align:center;font-size:11px;color:var(--muted);text-transform:uppercase}
.schedule-cal-body{display:grid;gap:2px}
.schedule-week button{width:38px;height:38px;margin:0 auto;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);font-weight:600}
.schedule-week button.outside{visibility:hidden}
.schedule-week button.available{background:#fff3e3;color:var(--navy);cursor:pointer}
.schedule-week button.available:hover{background:var(--orange);color:var(--deep)}
.schedule-week button.selected{background:var(--navy);color:#fff}
.schedule-week button:disabled{cursor:default}

.schedule-hint{color:var(--muted);margin:0}
.schedule-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;max-height:320px;overflow:auto}
.schedule-slots button{padding:10px;text-align:center}

.schedule-back{margin-top:10px;background:none;border:0;color:var(--mid);font-weight:700;padding:0}
.schedule-summary{font-weight:700;color:var(--navy);margin:0 0 8px}
.schedule-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.schedule-actions .schedule-back{margin-top:0}
.schedule-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.schedule-done .text-link{color:var(--mid);font-weight:700}

.schedule-card .form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 16px}
.schedule-card .form-grid .span-2{grid-column:span 2}
.schedule-card textarea{resize:none}
.schedule-card .form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.schedule-card label{display:block;font-size:13px;font-weight:700;color:var(--navy);margin-bottom:10px}
.schedule-card input,.schedule-card textarea{display:block;width:100%;margin-top:4px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;color:var(--ink)}
.schedule-card input.invalid,.schedule-card textarea.invalid{border-color:#c0392b}
.schedule-card .field-error{display:block;color:#c0392b;font-size:12px;font-weight:400;margin-top:4px}
.schedule-card .required-note,.schedule-card .contact-purpose{margin:0 0 8px}
.schedule-card .optional,.schedule-card .required-note,.schedule-card .contact-purpose{font-weight:400;color:var(--muted);font-size:12px}

@media (max-width:760px){
  .schedule-page{padding-top:96px}
  .schedule-picker{grid-template-columns:1fr;gap:24px}
  .schedule-card .form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 16px}
.schedule-card .form-grid .span-2{grid-column:span 2}
.schedule-card textarea{resize:none}
.schedule-card .form-row{grid-template-columns:1fr}
}

/* step 3: keep the whole form above the fold on a laptop */
.schedule-card .required-note{float:right;margin:-30px 0 0}
.schedule-card .schedule-actions{margin-top:6px}
.schedule-card section>h2+.schedule-summary{margin-top:-4px}
.schedule-card .schedule-actions .form-submit{padding-top:12px;padding-bottom:12px}
