/* Public booking UI. App controls are scoped independently from landing CTAs. */
.afd-booking-app{
    --afd-border:#d9e1ec;--afd-text:#182b49;--afd-muted:#58677e;--afd-soft:#f3f6fb;
    --afd-accent:#24469b;--afd-accent-dark:#17377e;--afd-accent-soft:#edf3ff;
    --afd-success:#176640;--afd-danger:#a32118;
    width:100%;max-width:920px;margin:24px auto;color:var(--afd-text);
    font-family:'Open Sans',Arial,sans-serif;font-size:16px;line-height:1.5;text-align:left
}
.afd-booking-app *{box-sizing:border-box}
.afd-booking-app [hidden]{display:none!important}
.afd-booking-app button,.afd-booking-app input,.afd-booking-app select{font:inherit;touch-action:manipulation}
.afd-booking-app button{cursor:pointer}
.afd-booking-app button:disabled{cursor:default}
.afd-booking-app button:focus-visible,.afd-booking-app input:focus-visible,.afd-booking-app select:focus-visible,.afd-booking-app a:focus-visible{outline:3px solid var(--afd-accent);outline-offset:3px;box-shadow:0 0 0 2px #fff}
.afd-booking-app [tabindex="-1"]:focus{outline:none}
.afd-booking-app__surface{background:#fff;padding:28px;border:1px solid var(--afd-border);border-radius:16px}
.afd-booking-app .afd-public-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;list-style:none;margin:0 0 24px;padding:0 48px 0 0}
.afd-booking-app .afd-public-steps li{display:flex;align-items:center;gap:8px;position:relative;min-width:0;color:var(--afd-muted);font-size:13px}
.afd-booking-app .afd-public-steps li>span{display:grid;place-items:center;flex:0 0 26px;width:26px;height:26px;border-radius:50%;background:#eef1f6;font-weight:600}
.afd-booking-app .afd-public-steps li>b{font-weight:600}
.afd-booking-app .afd-public-steps li:after{content:"";height:1px;background:var(--afd-border);flex:1;min-width:4px}
.afd-booking-app .afd-public-steps li:last-child:after{display:none}
.afd-booking-app .afd-public-steps .is-current{color:var(--afd-accent)}
.afd-booking-app .afd-public-steps .is-current>span{background:var(--afd-accent);color:#fff}
.afd-booking-app .afd-public-steps .is-done{color:var(--afd-success)}
.afd-booking-app .afd-public-steps .is-done>span{color:var(--afd-success);background:#e8f5ed}
.afd-booking-app__header{margin-bottom:24px}
.afd-booking-app[data-step=form] .afd-booking-app__header,.afd-booking-app[data-step=success] .afd-booking-app__header{display:none}
.afd-booking-app .afd-booking-app__title{margin:0 0 6px;color:var(--afd-text);font-size:26px;line-height:1.25;letter-spacing:-.02em}
.afd-booking-app .afd-booking-app__intro{margin:0;font-size:14px;color:var(--afd-muted);line-height:1.5}
.afd-booking-app__status{padding:12px 14px;border-radius:8px;margin-bottom:18px;background:var(--afd-accent-soft);color:var(--afd-text);font-size:14px}
.afd-booking-app__status[data-state=error]{background:#fff1ef;color:var(--afd-danger)}
.afd-booking-app__status[data-state=loading]{display:flex;align-items:center;gap:12px}
.afd-booking-app__status[data-state=loading]:before{content:"";width:18px;height:18px;flex:0 0 18px;border:2px solid #b8c9ea;border-top-color:var(--afd-accent);border-radius:50%;animation:afd-spin .8s linear infinite}
@keyframes afd-spin{to{transform:rotate(360deg)}}
.afd-booking-app .afd-booking-loading{height:260px;display:grid;gap:14px;align-content:start}
.afd-booking-app .afd-booking-loading span{height:44px;max-width:80%;background:var(--afd-soft);border-radius:8px}
.afd-booking-app .afd-booking-loading span:nth-child(2){max-width:65%}
.afd-booking-app .afd-booking-loading span:nth-child(3){max-width:72%}
.afd-booking-app .afd-schedule-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:28px;align-items:start}
.afd-booking-app .afd-calendar-panel{min-width:0}
.afd-booking-app .afd-calendar__toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.afd-booking-app .afd-calendar__toolbar h3{margin:0;font-size:17px;color:var(--afd-text);line-height:1.4}
.afd-booking-app .afd-calendar__toolbar>div{display:flex;gap:4px}
.afd-booking-app .afd-icon-button{display:grid;place-items:center;width:40px;height:40px;border:1px solid transparent;border-radius:50%;background:#fff;color:var(--afd-accent);font-size:26px;line-height:1;padding:0}
.afd-booking-app .afd-icon-button:hover:not(:disabled){background:var(--afd-accent-soft);border-color:#bdccef;color:var(--afd-accent-dark)}
.afd-booking-app .afd-icon-button:disabled{color:#a6aeba;background:#fff}
.afd-booking-app .afd-calendar table{table-layout:fixed;width:100%;margin:0;border:0;border-collapse:separate;border-spacing:3px}
.afd-booking-app .afd-calendar th{border:0;text-align:center;padding:4px 0 10px;font-size:12px;font-weight:600;color:var(--afd-muted);background:none}
.afd-booking-app .afd-calendar td{border:0;padding:0;text-align:center;background:none;height:44px}
.afd-booking-app .afd-calendar__day{position:relative;display:grid;place-items:center;width:44px;max-width:100%;height:44px;margin-inline:auto;padding:0;border:2px solid transparent;border-radius:50%;background:#fff;color:#68758a;font-size:15px;line-height:1}
.afd-booking-app .afd-calendar__day.is-available{font-weight:600;color:var(--afd-accent);background:var(--afd-accent-soft)}
.afd-booking-app .afd-calendar__day.is-available:hover{background:#dce7ff;border-color:var(--afd-accent);color:var(--afd-accent-dark)}
.afd-booking-app .afd-calendar__day.is-selected,.afd-booking-app .afd-calendar__day.is-selected:hover{background:var(--afd-accent);color:#fff;border-color:var(--afd-accent)}
.afd-booking-app .afd-calendar__day.is-today:after{content:"";position:absolute;bottom:3px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:#b56600}
.afd-booking-app .afd-calendar__day.is-selected.is-today:after{background:#ffd77a}
.afd-booking-app .afd-calendar__legend{display:flex;flex-wrap:wrap;gap:18px;margin:10px 0 0;color:var(--afd-muted);font-size:12px}
.afd-booking-app .afd-calendar__legend span{display:flex;align-items:center;gap:6px}
.afd-booking-app .afd-calendar__legend i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--afd-accent)}
.afd-booking-app .afd-calendar__legend i.is-today{background:#b56600}
.afd-booking-app .afd-calendar__hint{margin:14px 0 0;font-size:13px;color:var(--afd-muted)}
.afd-booking-app .afd-calendar__empty{padding:14px;margin-top:12px;background:var(--afd-soft);border-radius:8px;font-size:14px}
.afd-booking-app .afd-calendar__empty p{margin:6px 0;font-size:13px}
.afd-booking-app .afd-times-panel{border-left:1px solid var(--afd-border);padding-left:28px;min-width:0}
.afd-booking-app .afd-times-panel__eyebrow{font-size:12px;color:var(--afd-muted);margin:0 0 4px}
.afd-booking-app .afd-times-panel h3{margin:0 0 6px;font-size:18px;line-height:1.35;color:var(--afd-text);scroll-margin-top:14px}
.afd-booking-app .afd-times-panel__timezone{font-size:13px;color:var(--afd-muted);margin:0 0 16px}
.afd-booking-app .afd-session-list__items{display:grid;gap:10px;max-height:270px;overflow-y:auto;padding:3px;scrollbar-width:thin}
.afd-booking-app .afd-session-option{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;min-height:68px;width:100%;padding:11px 14px;text-align:left;border:1px solid #b9c8e3;border-radius:8px;background:#fff;color:var(--afd-text)}
.afd-booking-app .afd-session-option__time{display:flex;align-items:baseline;gap:6px;font-size:16px}
.afd-booking-app .afd-session-option__time strong{font-weight:600}
.afd-booking-app .afd-session-option__meta{font-size:12px;color:var(--afd-muted)}
.afd-booking-app .afd-local-time{display:block;font-size:12px;font-weight:400;line-height:1.5;color:var(--afd-muted);margin-top:4px}
.afd-booking-app .afd-session-option[aria-pressed=true] .afd-local-time{color:#fff}
.afd-booking-app .afd-session-option:hover{border-color:var(--afd-accent);background:var(--afd-accent-soft);color:var(--afd-accent-dark)}
.afd-booking-app .afd-session-option[aria-pressed=true]{background:var(--afd-accent);color:#fff;border-color:var(--afd-accent)}
.afd-booking-app .afd-session-option[aria-pressed=true] .afd-session-option__meta{color:#fff}
.afd-booking-app .afd-session-option.is-waitlist:not([aria-pressed=true]){border-style:dashed;background:#fff9ec}
.afd-booking-app .afd-session-option.is-waitlist:not([aria-pressed=true]) .afd-session-option__meta{color:#795000}
.afd-booking-app .afd-session-action{position:sticky;bottom:0;padding-top:12px;margin-top:8px;background:#fff}
.afd-booking-app .afd-session-action p{font-size:12px;color:var(--afd-muted);margin:0 0 8px}
.afd-booking-app .afd-app-button{display:flex;align-items:center;justify-content:center;gap:12px;min-height:48px;width:100%;padding:11px 18px;border:1px solid transparent;border-radius:8px;font-size:15px;font-weight:600;line-height:1.4;text-transform:none;letter-spacing:normal;text-decoration:none;box-shadow:none;transform:none;transition:background-color .15s ease,border-color .15s ease}
.afd-booking-app .afd-app-button--primary{background:var(--afd-accent);color:#fff}
.afd-booking-app .afd-app-button--primary:hover:not(:disabled),.afd-booking-app .afd-app-button--primary:focus-visible{background:var(--afd-accent-dark);color:#fff}
.afd-booking-app .afd-app-button--primary:disabled{background:#e2e7f0;color:#536079;border-color:#e2e7f0}
.afd-booking-app .afd-app-button--secondary{background:#fff;color:var(--afd-accent);border-color:#b9c8e3}
.afd-booking-app .afd-app-button--secondary:hover{background:var(--afd-accent-soft);color:var(--afd-accent-dark)}
.afd-booking-app .afd-app-link{display:inline-flex;align-items:center;min-height:44px;padding:4px 0;border:0;background:transparent;color:var(--afd-accent);font-size:14px;font-weight:600;text-align:left;text-decoration:underline;text-underline-offset:3px}
.afd-booking-app .afd-app-link:hover{color:var(--afd-accent-dark)}
.afd-booking-app .afd-times-empty{padding:16px 0;color:var(--afd-muted);font-size:14px}
.afd-booking-app .afd-times-empty p{margin:10px 0}
.afd-booking-app .afd-booking-empty{padding:20px 0 32px;max-width:540px}
.afd-booking-app .afd-booking-empty h3{font-size:20px;color:var(--afd-text)}
.afd-booking-app .afd-booking-empty p{color:var(--afd-muted);font-size:15px}
.afd-booking-app .afd-booking-empty button{width:auto}
.afd-booking-app .afd-booking-details{max-width:720px;margin:auto}
.afd-booking-app .afd-details-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}
.afd-booking-app .afd-details-heading h3{margin:0;font-size:21px;color:var(--afd-text)}
.afd-booking-app .afd-booking-summary{padding:14px 16px;border:0;border-left:3px solid var(--afd-accent);border-radius:0 8px 8px 0;background:var(--afd-soft);margin:0 0 18px;text-align:left}
.afd-booking-app .afd-booking-summary>span{display:block;font-size:12px;color:var(--afd-muted);margin-bottom:3px}
.afd-booking-app .afd-booking-summary strong{display:block;font-weight:600;font-size:15px}
.afd-booking-app .afd-booking-summary p{margin:4px 0 0;font-size:14px;color:var(--afd-text)}
.afd-booking-app .afd-booking-summary p span{color:var(--afd-muted)}
.afd-booking-app .afd-form-intro{font-size:14px;color:var(--afd-muted);margin:0 0 18px}
.afd-booking-app .afd-booking-form{display:grid;gap:16px}
.afd-booking-app .afd-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.afd-booking-app .afd-form-field{display:grid;align-content:start;gap:6px;min-width:0}
.afd-booking-app .afd-form-field label,.afd-booking-app .afd-phone-field legend{font-size:14px;font-weight:600;color:var(--afd-text)}
.afd-booking-app .afd-form-field input,.afd-booking-app .afd-form-field select{width:100%;height:48px;min-width:0;padding:10px 12px;border:1px solid #9daec8;border-radius:7px;color:var(--afd-text);background:#fff;font-size:16px}
.afd-booking-app .afd-form-field input:hover,.afd-booking-app .afd-form-field select:hover{border-color:var(--afd-accent)}
.afd-booking-app .afd-form-field input::placeholder{color:#69778c;opacity:1}
.afd-booking-app .afd-form-field input[aria-invalid=true]{border-color:var(--afd-danger)}
.afd-booking-app .afd-phone-field{min-width:0;border:0;margin:0;padding:0}
.afd-booking-app .afd-phone-field legend{padding:0;margin-bottom:8px}
.afd-booking-app .afd-phone-field legend span{color:var(--afd-muted);font-weight:400}
.afd-booking-app .afd-phone-row{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(0,1.2fr);gap:14px}
.afd-booking-app .afd-phone-row label{font-size:12px;color:var(--afd-muted);font-weight:400}
.afd-booking-app .afd-phone-field>small{display:block;margin-top:8px;font-size:12px;line-height:1.5;color:var(--afd-muted)}
.afd-booking-app .afd-field-error,.afd-booking-app .afd-phone-field>.afd-field-error{display:block;color:var(--afd-danger);font-size:13px;line-height:1.45;margin-top:2px}
.afd-booking-app .afd-check{display:flex;align-items:flex-start;gap:10px;margin:0;padding:12px;border-radius:8px;background:var(--afd-soft);font-size:13px;line-height:1.6;color:var(--afd-text)}
.afd-booking-app .afd-check input{width:20px;height:20px;flex:0 0 20px;margin:1px 0 0;accent-color:var(--afd-accent)}
.afd-booking-app .afd-check a{color:var(--afd-accent);text-decoration:underline}
.afd-booking-app .afd-booking-privacy{font-size:13px;color:var(--afd-muted)}
.afd-booking-app .afd-booking-privacy summary{padding:8px 0;min-height:44px;cursor:pointer;color:var(--afd-accent);font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.afd-booking-app .afd-booking-privacy summary:focus-visible{outline:3px solid var(--afd-accent);outline-offset:2px}
.afd-booking-app .afd-booking-privacy__content{padding:0 0 12px;line-height:1.65}
.afd-booking-app .afd-booking-privacy__content h3{font-size:16px;color:var(--afd-text)}
.afd-booking-app .afd-booking-privacy__content a{color:var(--afd-accent);overflow-wrap:anywhere}
.afd-booking-app .afd-form-error{padding:12px 14px;background:#fff1ef;color:var(--afd-danger);border-radius:8px;font-size:14px}
.afd-booking-app .afd-form-error p{margin:0;font-size:14px;line-height:1.6}
.afd-booking-app .afd-form-error ul{margin:10px 0 0;padding-left:20px;font-size:13px;line-height:1.6}
.afd-booking-app .afd-form-error li+li{margin-top:6px}
.afd-booking-app .afd-form-error__reference{display:block;margin-top:10px;overflow-wrap:anywhere;font-size:12px}
.afd-booking-app .afd-support-actions{display:flex;flex-wrap:wrap;gap:4px 18px;align-items:center;margin-top:8px;text-align:left}
.afd-booking-app .afd-support-actions button{width:auto;max-width:none;margin:0}
.afd-booking-app .afd-copy-status{flex-basis:100%;font-size:13px;color:var(--afd-muted)}
.afd-booking-app .afd-support-actions input{width:100%;min-width:0;min-height:44px;font-size:16px;border:1px solid var(--afd-border);border-radius:6px;padding:8px;background:#fff;color:var(--afd-text)}
.afd-booking-app .afd-booking-help{text-align:left;font-size:14px;margin:16px 0;color:var(--afd-muted)}
.afd-booking-app .afd-booking-help summary{display:list-item;min-height:44px;padding:10px 0;color:var(--afd-accent);cursor:pointer;font-weight:600}
.afd-booking-app .afd-booking-help summary:focus-visible{outline:3px solid var(--afd-accent);outline-offset:2px}
.afd-booking-app .afd-booking-help p{font-size:14px;margin:8px 0}
.afd-booking-app .afd-honeypot,.afd-booking-app .afd-app-sr{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}
.afd-booking-app .afd-turnstile{min-width:0;max-width:100%}
.afd-booking-app .afd-booking-success{max-width:580px;margin:auto;padding:4px 0 12px;text-align:center}
.afd-booking-app .afd-booking-success__icon{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 16px;border-radius:50%;background:#e8f5ed;color:var(--afd-success);font-size:30px}
.afd-booking-app .afd-booking-success h3{font-size:25px;line-height:1.25;color:var(--afd-text);margin:0 0 12px}
.afd-booking-app .afd-booking-success>p{margin:0 0 12px;font-size:14px}
.afd-booking-app .afd-booking-success__email{display:block;overflow-wrap:anywhere;margin-bottom:20px;font-size:16px}
.afd-booking-app .afd-booking-success .afd-booking-summary{margin-bottom:18px}
.afd-booking-app .afd-booking-success__note,.afd-booking-app .afd-booking-success__reference{color:var(--afd-muted)}
.afd-booking-app .afd-booking-success__reference code{font:600 13px/1.5 monospace;color:var(--afd-text)}
.afd-booking-app .afd-booking-success button{max-width:260px;margin:20px auto 0}
.afd-booking-app__footer{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:24px;padding-top:16px;border-top:1px solid var(--afd-border);font-size:12px;color:var(--afd-muted)}
.afd-booking-launcher{appearance:none;border:1px solid #24469b;background:#24469b;color:#fff;border-radius:8px;padding:13px 20px;min-height:48px;font:inherit;font-weight:600;cursor:pointer}
.afd-booking-launcher:hover{background:#17377e;color:#fff}
.afd-booking-launcher:focus-visible{outline:3px solid #24469b;outline-offset:3px}
html.afd-booking-modal-open{overflow:hidden}
.afd-booking-dialog{padding:0;border:0;background:#fff;width:min(100% - 40px,920px);max-width:none;max-height:calc(100dvh - 40px);border-radius:18px;overflow:hidden;color:#182b49;box-shadow:0 24px 80px #071a3d44}
.afd-booking-dialog::backdrop{background:rgba(14,28,50,.62);backdrop-filter:blur(3px)}
.afd-booking-dialog[open]:not(:modal),.afd-booking-dialog.is-open{position:fixed;inset:20px;margin:auto;z-index:999999;display:block}
.afd-booking-dialog__frame{position:relative;background:#fff}
.afd-booking-dialog__scroll{max-height:calc(100dvh - 40px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.afd-booking-dialog__close{position:absolute;z-index:5;right:14px;top:14px;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#f0f3f8;color:#233858;font:400 26px/1 Arial,sans-serif;cursor:pointer}
.afd-booking-dialog__close:hover{background:#dfe7f4;color:#17377e}
.afd-booking-dialog__close:focus-visible{outline:3px solid #24469b;outline-offset:2px}
.afd-booking-dialog .afd-booking-app{margin:0;max-width:none}
.afd-booking-dialog .afd-booking-app__surface{border:0;border-radius:0;box-shadow:none}
@media(max-width:700px){
    .afd-booking-dialog{width:100%;height:100dvh;max-height:100dvh;margin:0;inset:0;border-radius:0}
    .afd-booking-dialog[open]:not(:modal),.afd-booking-dialog.is-open{inset:0}
    .afd-booking-dialog__frame,.afd-booking-dialog__scroll{height:100dvh;max-height:100dvh}
    .afd-booking-dialog__close{right:max(10px,env(safe-area-inset-right));top:max(10px,env(safe-area-inset-top))}
    .afd-booking-app__surface{padding:20px max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
    .afd-booking-app .afd-public-steps{gap:8px;margin-bottom:20px;padding-right:44px}
    .afd-booking-app .afd-public-steps li{flex-direction:column;gap:5px;align-items:center;font-size:11px;line-height:1.25}
    .afd-booking-app .afd-public-steps li:after{position:absolute;top:13px;left:calc(50% + 18px);width:calc(100% - 28px)}
    .afd-booking-app .afd-booking-app__title{font-size:23px}
    .afd-booking-app__header{margin-bottom:20px}
    .afd-booking-app .afd-schedule-layout{grid-template-columns:1fr;gap:24px}
    .afd-booking-app .afd-calendar-panel{max-width:420px;width:100%;margin:auto}
    .afd-booking-app .afd-times-panel{padding:20px 0 0;border-left:0;border-top:1px solid var(--afd-border);max-width:420px;width:100%;margin:auto}
    .afd-booking-app .afd-times-panel h3{scroll-margin-top:66px}
    .afd-booking-app .afd-calendar__hint{margin-top:10px}
    .afd-booking-app .afd-session-list__items{max-height:none}
    .afd-booking-app .afd-session-action{padding-bottom:10px}
    .afd-booking-app .afd-form-row{grid-template-columns:1fr;gap:12px}
    .afd-booking-app .afd-phone-row{grid-template-columns:138px minmax(0,1fr);gap:8px}
    .afd-booking-app .afd-phone-row select{padding-inline:6px;font-size:16px}
    .afd-booking-app .afd-phone-row input{padding-inline:8px}
    .afd-booking-app .afd-booking-form{gap:12px}
    .afd-booking-app .afd-details-heading{margin-bottom:8px}
    .afd-booking-app .afd-booking-summary{padding:10px 12px;margin-bottom:12px}
    .afd-booking-app .afd-booking-summary>span:not(.afd-local-time){display:none}
    .afd-booking-app .afd-form-intro{margin-bottom:12px}
    .afd-booking-app .afd-details-heading h3{font-size:20px}
    .afd-booking-app .afd-details-heading .afd-app-link{font-size:13px}
    .afd-booking-app .afd-booking-summary p span{display:inline;font-size:12px}
}
@media(max-width:390px){
    .afd-booking-app .afd-phone-row{grid-template-columns:128px minmax(0,1fr)}
    .afd-booking-app .afd-calendar table{border-spacing:1px}
    .afd-booking-app .afd-booking-app__title{font-size:21px}
    .afd-booking-app .afd-calendar__toolbar h3{font-size:16px}
    .afd-booking-app .afd-public-steps{padding-right:38px}
}
@media(prefers-reduced-motion:reduce){.afd-booking-app *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
