body.patient-page {
  --ink:#273b56;
  --muted:#63707c;
  --line:#dedbd4;
  --soft:#f8f5f0;
  --brand:#a68769;
  --brand-dark:#86674c;
  background:#faf9f7;
  color:#273b56;
}
.patient-page .site-header {
  position:relative;
  min-height:100px;
  padding:18px max(24px,calc((100vw - 1060px)/2));
  flex-wrap:wrap;
  border-top:5px solid #aa8d72;
  border-bottom:1px solid #e9e0d6;
  background:#fff;
  color:#263f72;
}
.patient-page .site-header h1 { margin:0; line-height:1; }
.patient-page .site-header h1 .brand-link { display:inline-block; padding:0; border:0; border-radius:0; background:transparent; line-height:0; }
.patient-page .site-header h1 .brand-link:hover { background:transparent; }
.patient-page .site-header h1 img { display:block; width:min(324px,100%); height:auto; }
.patient-page .site-header p { margin-top:6px; color:#7a7774; font-size:12px; opacity:1; }
.patient-page .site-header > a { padding:10px 16px; border:1px solid #bda58b; border-radius:2px; background:#ad9277; color:#fff; font-size:13px; font-weight:700; white-space:nowrap; }
.patient-page .site-header > a:hover { background:#90745b; }
.patient-page .page-shell { width:min(1060px,calc(100% - 32px)); margin:26px auto 64px; }
.patient-page .panel { padding:clamp(22px,3vw,38px); border:1px solid #ece5dc; border-radius:3px; background:#fff; box-shadow:0 12px 35px #84725e0c; }
.patient-page .preview-banner { margin:0 0 16px; padding:11px 14px; border:1px solid #eadbc8; border-radius:2px; background:#faf3e7; color:#705b47; }
.patient-page .preview-banner strong { font-size:13px; }
.patient-page .preview-step-link { padding:2px 0; border:0; border-radius:0; background:transparent; color:#285773; font-size:13px; font-weight:700; text-decoration:underline; }
.patient-page .preview-step-link:hover { background:transparent; color:#163b56; }
.patient-page .preview-step-note { margin:0 0 16px; padding:10px 12px; border-left:3px solid #b59a80; background:#faf3e7; color:#705b47; }
.reservation-switch-note { margin:0 0 28px; color:#69727c; font-size:13px; font-weight:400; line-height:1.7; }
.reservation-hero { position:relative; padding:13px 0 15px 20px; border-left:4px solid #b59a80; }
.reservation-hero::after { content:""; position:absolute; z-index:0; left:22px; right:0; top:45px; height:18px; background:#f0e3d4; opacity:.85; }
.reservation-hero h2 { position:relative; z-index:1; display:inline-block; margin:0 0 11px; color:#1f417a; font-family:"Hiragino Mincho ProN","Yu Mincho",serif; font-size:clamp(25px,3vw,34px); font-weight:700; letter-spacing:.04em; }
.reservation-hero h2 small { font-family:"Hiragino Sans","Yu Gothic",sans-serif; font-size:clamp(13px,1.6vw,18px); font-weight:600; letter-spacing:0; }
.reservation-hero .lead { position:relative; z-index:1; margin:0; color:#586a7a; font-size:14px; }
.booking-process-note { margin:22px 0 0; padding:13px 16px; border-left:3px solid #af9274; background:#f7f4ef; color:#5b574e; font-size:13px; line-height:1.75; }
.patient-page .stepper { grid-template-columns:repeat(2,1fr); gap:0; margin:31px 0 30px; border:1px solid #ddd4c8; background:#f5f1eb; }
.patient-page .stepper span { position:relative; padding:12px 16px; border-radius:0; background:transparent; color:#7b756e; font-weight:700; }
.patient-page .stepper span:first-child { border-right:1px solid #ddd4c8; }
.patient-page .stepper span.active { background:#a98a6d; color:#fff; }
.patient-page .field { margin:24px 0; }
.patient-page fieldset.field { padding:16px 17px 18px; border:1px solid #e3dfd9; }
.patient-page fieldset.field > legend { width:auto; padding:0 7px; color:#294976; }
.patient-page .field > label { color:#294976; }
.patient-page .required { color:#ad5d55; }
.patient-page .choice { min-height:46px; border-radius:3px; border-color:#dedbd5; background:#fff; }
.patient-page .preference-free-text { margin-top:18px; }
.patient-page .preference-free-text label { display:block; margin-bottom:9px; color:#294976; font-weight:800; }
.patient-page .preference-free-text textarea { width:100%; }
.patient-page .preference-free-text .field-help { margin-bottom:0; }
.patient-page .choice:has(input:checked) { border-color:#6284a4; background:#eaf7fa; box-shadow:0 0 0 1px #6284a433; }
.patient-page input[type="radio"],.patient-page input[type="checkbox"] { accent-color:#2f6d9c; }
.patient-page input[type="text"],.patient-page input[type="tel"],.patient-page input[type="email"],.patient-page input[type="date"],.patient-page input[type="password"],.patient-page select,.patient-page textarea { border-radius:3px; border-color:#d8d6d2; }
.patient-page input[type="password"] { width:100%; padding:12px 13px; border:1px solid #d8d6d2; background:#fff; }
.patient-page .patient-heading-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin:6px 0 26px; padding-bottom:12px; border-bottom:1px solid #ded8cf; }
.patient-page .patient-heading-row h3 { margin:0; padding:0; border:0; }
.patient-page .profile-jump-button { padding:9px 13px; font-size:13px; }
.patient-profile-panel { margin:26px 0 32px; padding:20px; border:1px solid #c9d9e6; border-radius:3px; background:#f4f8fb; }
.patient-profile-panel h4 { margin:0 0 10px; color:#1f417a; font-size:18px; }
.patient-profile-panel p { margin:8px 0; color:#425c76; font-size:13px; line-height:1.7; }
.patient-profile-panel .profile-caution { color:#795c45; }
.profile-passwords { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.patient-profile-panel .field { margin:10px 0; }
.profile-actions { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-top:10px; }
.profile-actions .text-button { padding:10px 12px; border:0; background:transparent; color:#8a3f3f; text-decoration:underline; }
.profile-actions button:disabled,.profile-save-footer button:disabled { opacity:.5; cursor:not-allowed; }
.patient-profile-panel .profile-status { min-height:1.7em; margin:10px 0 0; color:#27664f; font-weight:700; }
.patient-profile-panel .profile-status.is-error { color:#9b3434; }
.profile-save-footer { display:flex; justify-content:flex-end; margin-top:14px; padding-top:16px; border-top:1px solid #d7e1e9; }
.patient-page input:focus-visible,.patient-page textarea:focus-visible,.patient-page select:focus-visible,.patient-page button:focus-visible,.patient-page a:focus-visible { outline:3px solid #79bfcc; outline-offset:2px; }
.patient-page [aria-invalid="true"] { border-color:#ba3535 !important; outline:2px solid #ba3535 !important; outline-offset:2px; background:#fff5f5; }
.patient-page .is-input-error > label,.patient-page .is-input-error > legend { color:#a32525; }
.patient-page .input-field-error { margin:9px 0 0; color:#a32525; font-size:13px; font-weight:700; line-height:1.65; }
.patient-page .privacy-consent.is-input-error { flex-wrap:wrap; padding:12px; border:1px solid #ba3535; background:#fff5f5; }
.patient-page .privacy-consent .input-field-error { flex-basis:100%; }
.patient-page .slot-button { border-radius:3px; }
.patient-page .slot-button:hover,.patient-page .slot-button.selected { border-color:#6284a4; background:#eaf7fa; color:#214d79; }
.booking-date-time-title { display:block; color:#294976; font-weight:800; }
.booking-week-panel { margin-top:16px; border:1px solid #d7dedf; background:#fff; }
.booking-week-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 16px; background:#f4f7f8; color:#294976; }
.booking-week-toolbar strong { text-align:center; font-size:15px; }
.booking-week-toolbar button { flex:0 0 auto; padding:8px 12px; border:1px solid #becbd2; border-radius:4px; background:#fff; color:#294976; font-weight:700; }
.booking-week-toolbar button:disabled { opacity:.4; cursor:not-allowed; }
.booking-week-status { min-height:1.5em; margin:0; padding:9px 16px; color:#5d6f7c; font-size:12px; }
.booking-week-scroll { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; }
.booking-week-grid { display:grid; grid-template-columns:72px repeat(5,minmax(155px,1fr)); min-width:847px; }
.booking-week-corner,.booking-week-day-head { min-height:58px; padding:9px 4px; border-top:1px solid #d7dedf; border-right:1px solid #d7dedf; border-bottom:1px solid #d7dedf; background:#f5f7f8; text-align:center; }
.booking-week-corner { display:grid; place-items:center; color:#697781; font-size:12px; }
.booking-week-day-head strong,.booking-week-day-head small { display:block; }
.booking-week-day-head strong { color:#314e6d; font-size:13px; }
.booking-week-day-head small { margin-top:4px; color:#668087; font-size:11px; }
.booking-week-day-head.sunday strong { color:#ad5d55; }
.booking-week-day-head.saturday strong { color:#2d6995; }
.booking-week-axis,.booking-week-day-lane { position:relative; height:860px; border-right:1px solid #d7dedf; background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 42px,#dde4e7 42px,#dde4e7 43px); }
.booking-week-axis { background-color:#f8f9f9; }
.booking-week-axis span { position:absolute; right:8px; transform:translateY(-50%); color:#687780; font-size:11px; font-weight:700; }
.booking-week-axis span:first-child { transform:none; }
.booking-week-day-lane.unavailable { background-color:#f6f5f3; }
.booking-week-slot { position:absolute; left:3px; width:calc(100% - 6px); min-height:34px; padding:5px 3px; border:1px solid #228f8b; border-radius:5px; background:#2ca6a1; color:#fff; font-size:12px; font-weight:800; line-height:1.2; text-align:center; box-shadow:0 1px 2px #23404a25; }
.booking-week-slot:hover { background:#207f7c; }
.booking-week-slot.selected { border:2px solid #70543c; background:#a5886c; box-shadow:0 0 0 2px #a5886c55; }
.booking-week-scroll-hint { margin:0; padding:9px 16px; color:#697781; font-size:12px; }
.booking-selected-date { margin:16px 0 10px; color:#294976; font-size:15px; }
.booking-picker-alternative { margin-top:17px; border-top:1px solid #e7e2db; }
.patient-page .booking-picker-toggle { display:block; width:100%; padding:15px 0; border:0; background:transparent; color:#294976; font-size:18px; font-weight:800; line-height:1.5; text-align:left; text-decoration:underline; cursor:pointer; }
.patient-page .booking-picker-toggle::before { content:"▸ "; text-decoration:none; }
.patient-page .booking-picker-toggle[aria-expanded="true"]::before { content:"▾ "; }
.booking-picker { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); margin-top:15px; border:1px solid #dedbd5; background:#fff; }
.booking-month-panel,.booking-time-panel { min-width:0; padding:19px; }
.booking-month-panel { border-right:1px solid #dedbd5; background:#fcfbf9; }
.booking-month-toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; color:#294976; }
.booking-month-toolbar strong { font-size:19px; }
.booking-month-toolbar button { display:grid; place-items:center; width:36px; height:36px; padding:0; border:1px solid #d8d6d2; border-radius:3px; background:#fff; color:#294976; font-size:24px; line-height:1; }
.booking-month-toolbar button:disabled { opacity:.35; cursor:not-allowed; }
.booking-month-weekdays,.booking-month-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; }
.booking-month-weekdays { margin-bottom:5px; }
.booking-month-weekdays span { padding:5px 0; text-align:center; color:#69727c; font-size:12px; font-weight:700; }
.booking-month-weekdays span:first-child { color:#ab5c55; }
.booking-month-weekdays span:last-child { color:#2d6995; }
.booking-day { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; min-width:0; min-height:57px; padding:5px 2px; border:1px solid #e2dfd9; border-radius:3px; background:#fff; color:#344b62; }
.booking-day strong { font-size:15px; line-height:1; }
.booking-day small { font-size:10px; white-space:nowrap; }
.booking-day.available { border-color:#a7c5c0; background:#f1faf8; }
.booking-day.available:hover { background:#e4f4f1; border-color:#498779; }
.booking-day.selected { border-color:#8d6f53; background:#a5886c; color:#fff; box-shadow:inset 0 0 0 1px #fff; }
.booking-day:disabled { color:#92989b; background:#f2f2f0; cursor:not-allowed; }
.booking-day.closed:disabled { background:#f4efec; color:#9b8279; }
.booking-day.today { outline:2px solid #8d6f53; outline-offset:-3px; }
.booking-day.sunday:not(.selected) strong { color:#ad5d55; }
.booking-day.saturday:not(.selected) strong { color:#2d6995; }
.booking-month-status { min-height:2.7em; margin:12px 0; color:#65717c; font-size:12px; line-height:1.5; }
.booking-date-direct { padding-top:12px; border-top:1px solid #e7e2db; color:#516578; font-size:13px; }
.booking-date-direct summary { cursor:pointer; text-decoration:underline; }
.booking-date-direct label { display:block; margin:10px 0 5px; font-weight:700; }
.booking-time-panel h4 { margin:3px 0 17px; color:#294976; font-size:17px; }
.booking-time-panel .slot-list { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:12px; }
.booking-time-panel .slot-button { min-width:0; }
.booking-time-panel > .field-help { margin-top:17px; }
.patient-page .primary { border-radius:3px; background:#a5886c; }
.patient-page .primary:hover { background:#8d6f53; }
.patient-page .secondary { border-radius:3px; border-color:#bba58f; color:#786049; }
.patient-page .muted-box { border-radius:3px; }
.patient-page .notice { border-radius:2px; border-color:#6aa8b5; background:#eef9fa; }
.patient-page .privacy-details { border-radius:3px; }
.privacy-consent { display:flex; align-items:flex-start; gap:10px; margin:16px 0; color:#243f63; font-size:14px; line-height:1.65; cursor:pointer; }
.privacy-consent input { flex:0 0 auto; margin:4px 0 0; width:18px; height:18px; accent-color:#27699b; }
.privacy-consent small { display:block; color:#6c7782; font-size:12px; }
.patient-page .field-help a { color:#2a6799; }
.patient-page h3 { margin:6px 0 26px; padding:0 0 12px; border-bottom:1px solid #ded8cf; color:#1f417a; font-family:"Hiragino Mincho ProN","Yu Mincho",serif; font-size:23px; }
.step-two-process-note { margin:0 0 24px; }
.step-two-actions { justify-content:space-between; align-items:center; }
.patient-page .success-icon { background:#dff5f7; color:#2b7184; }
.patient-page .success { padding:14px 0 30px; }
.success-kicker { margin:0 0 8px; color:#a48668; font-size:13px; font-weight:800; letter-spacing:.1em; }
.patient-page .success h2 { margin:0 0 24px; color:#1f417a; font-family:"Hiragino Mincho ProN","Yu Mincho",serif; font-size:clamp(25px,3vw,34px); }
.success-card { padding:clamp(20px,4vw,42px); border:1px solid #ded8d0; background:#fff; text-align:left; }
.success-summary-label { margin:0 0 6px; color:#80776c; font-size:13px; font-weight:700; }
.success-summary { margin:0 0 26px; color:#273b56; font-size:19px; font-weight:800; line-height:1.5; }
.success-main-note { padding:15px 18px; border-left:5px solid #78a14e; background:#f3f7ed; color:#384536; font-size:18px; font-weight:800; line-height:1.65; }
.patient-page .success h3 { margin:31px 0 20px; padding:0; border:0; text-align:center; font-family:inherit; font-size:20px; }
.visit-flow { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:0 0 24px; padding:0; list-style:none; }
.visit-flow li { min-height:105px; padding:18px 9px; background:#f2f2f2; color:#6b7175; text-align:center; font-size:14px; font-weight:800; }
.visit-flow li.current { background:#6a9e3f; color:#fff; }
.flow-number { display:block; margin-bottom:9px; font-size:29px; line-height:1; }
.success-detail { margin:24px 0; color:#4f5b68; font-size:14px; line-height:1.8; }
.success-detail a { color:#2a6799; font-weight:800; }
.success-demo-warning { margin:0; text-align:left; font-size:13px; line-height:1.7; }
.patient-page .success > .return-home { display:inline-block; margin-top:25px; text-decoration:none; }
@media (max-width:680px) {
  .patient-page .site-header { min-height:0; padding:14px 18px; gap:12px; flex-direction:column; align-items:stretch; }
  .patient-page .site-header > a { font-size:12px; text-align:center; }
  .patient-page .page-shell { width:calc(100% - 16px); margin-top:10px; }
  .patient-page .panel { padding:19px 16px; }
  .patient-profile-panel { padding:16px; }
  .profile-passwords { grid-template-columns:1fr; gap:0; }
  .profile-actions button { width:100%; }
  .profile-save-footer button { width:100%; }
  .reservation-hero { padding-left:14px; }
  .reservation-hero::after { left:16px; }
  .reservation-hero h2 small { display:block; margin-top:6px; }
  .patient-page .stepper { grid-template-columns:repeat(2,1fr); }
  .patient-page .stepper span { padding:11px 6px; font-size:12px; }
  .patient-page fieldset.field { padding:13px; }
  .booking-week-toolbar { gap:5px; padding:10px 8px; }
  .booking-week-toolbar strong { font-size:11px; }
  .booking-week-toolbar button { padding:7px 5px; font-size:11px; }
  .booking-week-grid { grid-template-columns:56px repeat(5,minmax(126px,1fr)); min-width:686px; }
  .booking-week-axis span { right:4px; font-size:10px; }
  .booking-week-slot { font-size:11px; }
  .booking-picker { grid-template-columns:1fr; }
  .booking-month-panel { border-right:0; border-bottom:1px solid #dedbd5; }
  .booking-month-panel,.booking-time-panel { padding:15px; }
  .booking-day { min-height:49px; }
  .step-two-actions { flex-wrap:wrap; }
  .step-two-actions button { width:100%; }
  .visit-flow { grid-template-columns:repeat(2,1fr); }
  .visit-flow li { min-height:82px; padding:12px 7px; font-size:12px; }
  .flow-number { font-size:23px; margin-bottom:6px; }
  .success-main-note { font-size:16px; }
}
body[data-booking-mode="demo"] .live-only,
body[data-booking-mode="live"] .demo-only {
  display: none !important;
}
