/* Reuse v2.8.1 service behaviour and the existing portal theme tokens. */
:root{--brand-dark:var(--deep);--wash:var(--soft)}
[hidden]{display:none!important}body{padding-bottom:var(--footer-clearance,150px)}html{scroll-padding-top:var(--header-clearance,150px);scroll-padding-bottom:var(--footer-clearance,150px)}
input,select,button{font:inherit}.brand{min-width:0}.brand img{max-width:100%}.headnav{flex-wrap:wrap}.float-head{gap:12px}.foot-actions{flex-wrap:wrap}.float-foot{gap:12px}
.navbtn,.foot-btn,.lightbtn,button{min-height:44px}.foot-actions .replay{display:inline-flex}.service-nav{display:flex;gap:10px;flex-wrap:wrap;margin:25px 0}.service-nav a{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px 16px;text-decoration:none;min-height:44px;font-size:14px;color:var(--brand-dark)}.service-nav a[aria-current=page]{border:2px solid var(--brand);background:var(--wash);font-weight:700}.current-label{font-size:11px;margin-left:8px;text-transform:uppercase}
.action{display:block;text-decoration:none;text-align:center;background:var(--brand);color:#fff;border:1px solid var(--brand);border-radius:12px;padding:15px 18px;min-height:48px;width:100%;font-weight:600;line-height:1.45;margin-top:18px}.action:hover{background:var(--brand-dark)}.action.secondary{color:var(--brand-dark);background:#fff}.action:disabled{color:#59464f;background:#ece5e8;border-color:#ece5e8;cursor:not-allowed}.service-content>.action{max-width:560px}.notice{background:var(--wash);border-radius:12px;padding:16px;color:var(--muted);line-height:1.6}.link-hint{font-size:13px;color:var(--muted);line-height:1.5}.service-content>p{max-width:75ch;line-height:1.65}.service-content h2{font:30px Georgia,serif;color:var(--ink)}
body[data-page="reviews"] .service-content>.action:not(:disabled){color:#fff}
body[data-page="payments"] .page-content a.action:not(.secondary){color:#fff!important;-webkit-text-fill-color:#fff!important}
#payment-chooser{color:#fff!important;-webkit-text-fill-color:#fff!important}
.payment-tools{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin:24px 0}.payment-tools label{display:grid;gap:8px;font-size:14px}.payment-tools input,.payment-tools select{min-width:0;width:100%;min-height:46px;padding:10px;border:1px solid #b89ba9;border-radius:8px;background:#fff;color:var(--ink)}.patient-payment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.patient-payment-card{display:flex;flex-direction:column;gap:12px;border:1px solid var(--line);border-radius:18px;padding:22px;background:#fff;text-align:left}.patient-payment-card h3{font:23px Georgia,serif;margin:0}.patient-payment-card p{margin:0;line-height:1.5}.patient-payment-card .fee{font-weight:600;font-size:21px;color:var(--brand)}.patient-payment-card .action{margin-top:auto;font-size:14px}.payment-unavailable{font-weight:600;color:var(--muted)}.payment-availability{color:var(--muted);line-height:1.6}
.form-category-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;list-style:none;padding:0;margin:20px 0 24px}.form-category-list li{border:1px solid var(--line);border-radius:12px;background:var(--wash);padding:13px 16px;color:var(--ink);font-weight:600;line-height:1.4}
.form-category-link{display:block;color:var(--ink);text-decoration:none}.form-category-link:hover{text-decoration:underline;color:var(--brand-dark)}
body[data-page="forms"] .service-content>p,body[data-page="forms"] .form-category-list li{text-align:center}
body[data-page="forms"] .service-content>p{max-width:none;width:100%}
body[data-page="forms"] .form-category-list li{display:flex;align-items:center;justify-content:center;min-height:48px}
body[data-page="forms"] .service-content>.action{margin-left:auto;margin-right:auto}
body[data-page="forms"] .service-content>.notice{text-align:center}
body[data-page="forms"] .service-content>.notice,body[data-page="payments"] .service-content>.notice{max-width:none;width:100%}
body[data-page="payments"] .service-content>.action.payment-chooser{display:block;max-width:560px;margin-left:auto;margin-right:auto;text-align:center}
.embedded-view{margin-top:18px}.embed-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.embed-toolbar button{padding:12px;border:1px solid var(--brand);border-radius:10px;background:#fff;color:var(--brand-dark)}.embedded-view iframe{width:100%;height:70vh;height:70dvh;min-height:350px;border:1px solid var(--line);border-radius:12px;background:#fff}.embed-note,.embed-instruction,.embed-status{color:var(--muted);line-height:1.6}.embed-open .page-content>h1{font-size:30px}.embed-open .service-nav{margin:10px 0}
.loading-line,.interaction-status{display:flex;align-items:center;gap:10px}.activity-spinner{display:inline-block;width:19px;height:19px;flex:0 0 19px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:activity-turn .75s linear infinite}.interaction-status{position:fixed;bottom:var(--footer-clearance,150px);left:50%;transform:translateX(-50%);z-index:100;width:max-content;max-width:calc(100vw - 32px);padding:14px 18px;border:1px solid var(--brand);border-radius:12px;background:#fff;color:var(--brand-dark);box-shadow:0 5px 24px #471b2d26;pointer-events:none}.feedback-tick{font-weight:700}
a,button{transition:transform 120ms,background 150ms,box-shadow 150ms}.is-pressed:not(:disabled),button:not(:disabled):active,a:not([aria-disabled=true]):active{transform:translateY(2px) scale(.985)}a.is-opening{cursor:progress}
dialog{border:1px solid var(--line);border-radius:20px;max-width:min(92vw,550px);color:var(--ink);padding:28px}dialog::backdrop{background:#35102399}dialog p{line-height:1.7}dialog button{padding:12px;border:1px solid var(--brand);border-radius:10px;background:#fff;color:var(--brand-dark);margin:8px 8px 0 0}dialog h2{font:30px Georgia,serif}dialog.splash:not([open]){display:none}dialog.splash{width:100%;max-width:none;height:100%;height:100dvh;max-height:none;inset:0;margin:0;border:0;border-radius:0;padding:0;overflow:auto}.splash-controls{gap:18px;flex-wrap:wrap}.splash-buttons{display:flex;gap:10px;flex-wrap:wrap}.splash-buttons button{margin:0}.splash-fallback img{max-width:80vw}.splash video{max-height:75dvh}.splash-controls small{max-width:40ch}.splash.is-fallback video{display:none}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--pink);outline-offset:4px}.skip{z-index:999}.contact-strip{overflow-wrap:anywhere}.page-content{overflow-wrap:anywhere}.hero .minor{color:#78576a}
@keyframes activity-turn{to{transform:rotate(360deg)}}
@media(max-width:620px){.float-head{flex-wrap:wrap}.brand{flex:1 1 130px}.brand img{width:180px}.headnav{gap:3px}.navbtn{padding:10px 8px}.float-foot{flex-wrap:wrap;justify-content:center}.foot-brand{flex:1 1 140px}.foot-actions{justify-content:center}.foot-actions .replay{display:inline-flex}.service-nav{gap:6px}.service-nav a{flex:1 1 125px;padding:12px 8px}.patient-payment-grid,.payment-tools,.form-category-list{grid-template-columns:1fr}.page-content{padding:22px 18px}.splash-controls{padding:18px}.splash-controls strong{font-size:18px}.splash-controls small{font-size:12px}.splash-buttons{width:100%}.splash-buttons button{flex:1}.interaction-status{font-size:14px}}
@media(max-height:500px){.float-head{position:relative}.splash-controls{position:relative;bottom:auto;left:auto;transform:none;width:100%}.splash video{height:45dvh}.splash-fallback{min-height:40dvh}.float-foot{position:relative;left:auto;transform:none;bottom:auto;margin:25px auto}body{padding-bottom:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}a,button{transition:none!important}.is-pressed:not(:disabled),button:not(:disabled):active,a:not([aria-disabled=true]):active{transform:none!important}.activity-spinner{animation:none}}

.catalogue-route{border-top:1px solid #ddd;padding:12px 0}.catalogue-route code{display:block;overflow-wrap:anywhere;font-size:12px;margin-top:8px}.catalogue-nested{margin-left:16px;border-left:3px solid #ddd;padding-left:12px}.catalogue-category{margin:20px 0}

/* Review07: keyboard escape from the sticky review/header furniture. */
.skip:focus{position:fixed;top:12px;left:12px;z-index:1100;max-width:calc(100vw - 24px);white-space:normal;overflow-wrap:anywhere;color:var(--ink);background:#fff;border:2px solid var(--pink);border-radius:8px;padding:12px 16px;box-shadow:0 4px 18px #35132955}
