/* The preparation card under a specialty title and the reminder before booking (build-prep.py, prep.js). */
.prep-card{margin:34px 0 0;max-width:860px;padding:26px 30px 24px;background:#fff;border:1px solid var(--gold,#cbaf6a);border-top-width:3px;text-align:left}
.prep-eyebrow{margin:0 0 6px;font:600 11px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#7a6128}
.prep-card h2,.prep-dialog h2{margin:0;font:500 clamp(24px,2.6vw,30px)/1.15 var(--serif);color:var(--navy,#1d2b52)}
.prep-group{margin-top:18px}
.prep-group[hidden]{display:none}
.prep-group-title{margin:0 0 6px;font:600 12px/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--navy,#1d2b52)}
.is-switchable .prep-group-title{display:none}
.prep-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px 22px;margin:0;padding:0;list-style:none}
.prep-list li{display:flex;flex-direction:column;gap:4px;padding:2px 0 2px 14px;border-left:2px solid var(--gold,#cbaf6a)}
.prep-list strong{font:500 26px/1.05 var(--serif);color:#7a6128}
.prep-list span{font:400 14px/1.55 var(--sans);color:#3d4566}
.prep-guide{display:inline-block;margin-top:16px;font:600 13px/1.4 var(--sans);color:var(--navy,#1d2b52);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--gold,#cbaf6a)}
.prep-switch{display:inline-flex;margin-top:18px;border:1px solid rgba(29,43,82,.18)}
.prep-switch button{padding:8px 16px;border:0;background:none;font:600 13px/1.2 var(--sans);color:var(--navy,#1d2b52);cursor:pointer;transition:background .25s,color .25s}
.prep-switch button[aria-pressed="true"]{background:var(--navy,#1d2b52);color:#fff}
.prep-switch button:focus-visible,.prep-close:focus-visible,.prep-continue:focus-visible,.prep-guide:focus-visible{outline:2px solid var(--gold,#cbaf6a);outline-offset:3px}

.prep-dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:34px 34px 28px;border:0;border-top:3px solid var(--gold,#cbaf6a);background:#fff;color:var(--navy,#1d2b52);overflow:auto}
.prep-dialog::backdrop{background:rgba(14,22,44,.58);backdrop-filter:blur(3px)}
.prep-dialog[open]{animation:prep-in .55s cubic-bezier(.16,1,.3,1)}
.prep-dialog[open]::backdrop{animation:prep-fade .4s ease}
.prep-context{margin:10px 0 0;font:400 14px/1.5 var(--sans);color:#5b6380}
.prep-dialog .prep-list{grid-template-columns:1fr;gap:14px}
.prep-dialog .prep-list li{flex-direction:row;align-items:baseline;gap:16px;border-left:0;padding:0 0 14px;border-bottom:1px solid rgba(29,43,82,.08)}
.prep-dialog .prep-list li:last-child{border-bottom:0;padding-bottom:0}
.prep-dialog .prep-list strong{flex:0 0 92px;font-size:24px}
.prep-actions{display:flex;justify-content:flex-end;margin-top:22px}
.prep-continue{display:inline-block;padding:14px 22px;background:var(--navy,#1d2b52);color:#fff;font:600 14px/1.2 var(--sans);text-decoration:none;transition:background .25s}
.prep-continue:hover{background:#2a3b6b}
.prep-close{position:absolute;top:10px;right:12px;width:40px;height:40px;border:0;background:none;font:300 30px/1 var(--sans);color:#5b6380;cursor:pointer}
@keyframes prep-in{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes prep-fade{from{opacity:0}to{opacity:1}}

@media (max-width:760px){
 .prep-card{margin-top:26px;padding:22px 20px 20px}
 .prep-list{grid-template-columns:1fr;gap:14px}
 .prep-dialog{width:100vw;max-width:none;max-height:88dvh;margin:auto 0 0;padding:30px 22px calc(22px + env(safe-area-inset-bottom))}
 .prep-dialog[open]{animation-name:prep-up}
 .prep-dialog .prep-list strong{flex-basis:78px;font-size:22px}
 .prep-continue{width:100%;text-align:center}
}
@keyframes prep-up{from{transform:translateY(100%)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.prep-dialog[open],.prep-dialog[open]::backdrop{animation:none}.prep-switch button,.prep-continue{transition:none}}
