:root{font-family:Poppins,Arial,sans-serif;color:#173d39;background:#f4f8f7;font-synthesis:none}*{box-sizing:border-box}body{margin:0}.top{height:72px;background:#fff;border-bottom:1px solid #e0ebe8;display:flex;align-items:center;justify-content:space-between;padding:0 max(22px,calc((100vw - 1060px)/2))}.brand{display:flex;align-items:center;text-decoration:none}.brand img{width:150px;height:auto;max-height:48px;object-fit:contain}.shell{max-width:1060px;margin:0 auto;padding:38px 22px 60px}.hero{max-width:650px;padding:14px 0 30px}.hero h1{font-size:clamp(32px,5vw,48px);line-height:1.12;margin:5px 0 14px;letter-spacing:-1.5px}.hero p:not(.eyebrow){color:#59716d;line-height:1.7}.eyebrow{color:#168576;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;margin:0 0 6px}.card{background:white;border:1px solid #e0ebe8;border-radius:18px;padding:28px;box-shadow:0 8px 26px #1b4c4210;margin:0 0 22px}.section-heading{display:flex;justify-content:space-between;align-items:center}.section-heading h2,.step h2{font-size:21px;margin:0 0 17px}.filters,.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.doctor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-top:20px}.doctor{border:1px solid #dfeae7;border-radius:14px;padding:19px;display:flex;gap:14px}.doctor img,.avatar{width:58px;height:58px;object-fit:cover;border-radius:50%;background:#e5f3ef;flex:none}.doctor h3{margin:0 0 4px;font-size:16px}.muted{color:#627975;font-size:14px;line-height:1.6}.doctor .button{margin-top:12px}.button{border:0;border-radius:10px;background:#167d70;color:white;font:600 14px Poppins, sans-serif;padding:12px 18px;cursor:pointer}.button:hover{background:#0d665c}.button:disabled{opacity:.55;cursor:wait}.text-button{border:0;background:none;color:#167d70;font:600 14px Poppins,sans-serif;cursor:pointer;padding:8px 0}.step{border-top:1px solid #e4eeeb;margin-top:25px;padding-top:24px}.step label,.filters label,.form-grid label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600}.step input,.step select,.filters input,.filters select{border:1px solid #cbdad6;border-radius:9px;background:white;min-height:44px;padding:10px 12px;color:#173d39;font:14px Poppins,sans-serif}.selected{display:flex;gap:16px;align-items:center;padding:20px 0}.selected h2{margin:0}.slot-grid{display:flex;flex-wrap:wrap;gap:9px;margin:15px 0}.slot{border:1px solid #b7d8d0;border-radius:8px;background:#f3fbf8;color:#176c61;padding:9px 13px;cursor:pointer;font:500 13px Poppins}.slot.active{background:#167d70;color:white}.review{padding:14px;background:#f3f8f6;border-radius:10px;margin:16px 0;color:#49625d;font-size:14px;line-height:1.65}.booking-row{display:flex;justify-content:space-between;gap:16px;border-top:1px solid #e4eeeb;padding:18px 0;align-items:center}.status{font-size:12px;font-weight:600;color:#8c5c14;background:#fff3d7;border-radius:20px;padding:5px 10px}.hidden{display:none!important}#alert:not(:empty){background:#fff4e5;border:1px solid #f0d3a5;color:#69460e;padding:12px 15px;border-radius:10px;margin-bottom:16px}#alert.success{background:#e9f6f1;border-color:#b8ddd0;color:#176a5e}.turnstile{margin:12px 0}footer{color:#6d817d;font-size:12px;text-align:center;line-height:1.6;padding:22px} @media(max-width:620px){.shell{padding:25px 14px 40px}.card{padding:20px 16px}.filters,.form-grid{grid-template-columns:1fr}.top{padding:0 16px}.hero{padding-top:0}.booking-row{align-items:flex-start;flex-direction:column}.doctor-grid{grid-template-columns:1fr}}

/* Availability: scan dates and choose a time in one step. */
.availability-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.availability-heading h2{margin-bottom:0}.availability-tag,.first-available{font-size:11px;font-weight:600;color:#14685d;background:#e8f5ef;border-radius:20px;padding:6px 10px;white-space:nowrap}.date-search{margin:20px 0;border:1px solid #dce8e3;border-radius:12px;padding:13px 16px;background:#f8fbf9}.date-search summary{cursor:pointer;font-size:13px;font-weight:600;color:#27645b;min-height:24px;line-height:24px}.date-search label{max-width:260px;margin-top:14px}.available-days{display:grid;gap:12px}.slot-day{border:1px solid #dce8e3;border-radius:14px;padding:18px;background:linear-gradient(120deg,#fcfefc,#f7fbf9)}.day-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.day-heading h3{font-size:14px;font-weight:600;margin:0;text-transform:capitalize}.day-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:9px}.slot{min-height:46px;font-size:14px;font-weight:600;background:#fff;transition:background .15s,border-color .15s,box-shadow .15s}.slot:hover{border-color:#167d70;background:#eaf6f0}.slot.active{background:#167d70;border-color:#167d70;box-shadow:0 3px 8px #167d7024}.slot:focus-visible,.button:focus-visible,.text-button:focus-visible,summary:focus-visible{outline:3px solid #e8af4f;outline-offset:3px}.button.secondary{margin:16px 0 4px;background:#fff;color:#14685d;border:1px solid #afcfc3;width:100%}.button.secondary:hover{background:#edf7f1}.selection-summary{padding:15px 18px;margin-top:18px;background:#f5f7f6;border:1px dashed #c6d8cf;border-radius:12px;font-size:13px;line-height:1.7;color:#49625d}.selection-summary.has-selection{background:#eaf6ef;border-style:solid;border-color:#afd7bf;color:#175a43;font-weight:600}.timezone-note{font-size:12px;line-height:1.7;color:#627975;margin:12px 0 0}.available-days[aria-busy=true]{opacity:.65}.turnstile{min-height:65px;max-width:100%}@media(max-width:620px){.availability-heading{align-items:flex-start}.availability-tag{display:none}.slot-day{padding:14px}.day-heading{align-items:flex-start;flex-wrap:wrap;gap:6px}.day-times{grid-template-columns:repeat(auto-fill,minmax(74px,1fr))}.selection-summary{padding:13px}.step h2{font-size:19px}}@media(prefers-reduced-motion:reduce){.slot{transition:none}html{scroll-behavior:auto}}

/* Shared booking and account forms keep fields and actions comfortably apart. */
.portal-form{display:grid;gap:16px;align-items:start;max-width:560px;margin-top:18px}
.portal-form label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600;min-width:0}
.portal-form input{width:100%;min-width:0;min-height:48px;border:1px solid #cbdad6;border-radius:9px;padding:12px;color:#173d39;background:#fff;font:16px Poppins,sans-serif}
.portal-form>.button{justify-self:start}
.portal-form .turnstile{margin:0;min-width:0}
.form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px}
.button,.text-button{min-height:44px}
.text-button:disabled{opacity:.55;cursor:default}
.portal-form input:focus-visible,.step input:focus-visible,.step select:focus-visible,.filters input:focus-visible,.filters select:focus-visible{outline:3px solid #e8af4f;outline-offset:3px}
.doctor>div:last-child,.selected>div:last-child{min-width:0;overflow-wrap:anywhere}
.section-heading{gap:16px;flex-wrap:wrap}
#intake-form>.button{margin-top:16px}
@media(max-width:620px){
  .step input,.step select,.filters input,.filters select{font-size:16px;min-width:0;width:100%}
  .form-actions{align-items:stretch;flex-direction:column}
  .portal-form>.button,.form-actions>.button{width:100%;justify-self:stretch}
  .top{gap:12px;height:auto;min-height:72px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
  .brand img{width:130px}
}
