/* Sent-state for public forms (contact, waiting list, course reservation).
   Sara's CI: teal #31BEB0 / teal-dark #1E7C73 / lime #DBE470 / soft #EAFAF8, Manrope + DM Sans. */
.dhfc-spin{display:inline-block;width:1em;height:1em;margin-right:.55em;vertical-align:-.15em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:dhfc-rot .7s linear infinite}
@keyframes dhfc-rot{to{transform:rotate(360deg)}}
button.is-sending,button[aria-busy=true]{cursor:progress;opacity:.85}
.dhfc-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:-1px;padding:0;border:0}
.dhfc-out{transition:opacity .22s ease,max-height .32s ease .1s;overflow:hidden;opacity:0}
.dhfc-card{position:relative;margin:8px 0 0;padding:28px 28px 24px;border-radius:12px;background:var(--soft,#EAFAF8);border:1px solid rgba(49,190,176,.45);color:var(--ink,#313131);font-family:'DM Sans',sans-serif;animation:dhfc-in .42s cubic-bezier(.2,.7,.2,1) both}
@keyframes dhfc-in{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
.dhfc-check{display:block;width:56px;height:56px;margin:0 0 16px}
.dhfc-check circle{fill:#31BEB0;stroke:#1E7C73;stroke-width:2;stroke-dasharray:158;stroke-dashoffset:158;animation:dhfc-draw .55s ease-out .1s forwards,dhfc-fill .3s ease .45s both}
.dhfc-check path{fill:none;stroke:#fff;stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:dhfc-draw .38s ease-out .55s forwards}
@keyframes dhfc-draw{to{stroke-dashoffset:0}}
@keyframes dhfc-fill{from{fill-opacity:0}to{fill-opacity:1}}
.dhfc-card h2,.dhfc-card h3{font-family:'Manrope',sans-serif;font-weight:600;font-size:clamp(22px,2.4vw,28px);line-height:1.2;letter-spacing:-.6px;margin:0 0 10px;outline:none}
.dhfc-card h2:focus-visible,.dhfc-card h3:focus-visible{outline:3px solid #1E7C73;outline-offset:4px;border-radius:4px}
.dhfc-sla{margin:0 0 16px;font-size:16px;line-height:1.55;color:var(--muted,#55575A)}
.dhfc-recap{margin:0 0 20px;padding:12px 14px;border-radius:8px;background:rgba(255,255,255,.7);display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:14px;line-height:1.45}
.dhfc-recap dt{font-weight:650;color:var(--muted,#55575A)}
.dhfc-recap dd{margin:0;overflow-wrap:anywhere}
.dhfc-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;font-size:14px}
.dhfc-actions a,.dhfc-actions button{font:inherit;font-weight:600;color:var(--ink,#313131);background:none;border:0;padding:0 0 3px;border-bottom:1px solid currentColor;cursor:pointer}
.dhfc-actions a:hover,.dhfc-actions button:hover{color:#1E7C73}
.dhfc-book-wrap{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.dhfc-actions .dhfc-book{display:inline-block;white-space:nowrap;background:#DBE470;border:0;border-radius:6px;padding:9px 14px;text-decoration:none}
.dhfc-actions .dhfc-book:hover{background:#31BEB0;color:#fff}
.dhfc-err{display:block;margin-top:14px;padding:12px 14px;border-radius:8px;background:#fdecec;border:1px solid #e9b4b4;color:#8a1f1f;font-weight:600;font-size:14px;line-height:1.5}
/* course modal (dark side panel) */
.sm-side .dhfc-card{margin:0;padding:22px 20px 18px}
.sm-side .dhfc-card h3{font-size:22px}
.sm-side .dhfc-err,.sm-msg.is-error{display:block}
html[data-theme="dark"] .dhfc-card{background:#2c3a39;border-color:#31BEB0;color:#f7f6f3}
html[data-theme="dark"] .dhfc-sla,html[data-theme="dark"] .dhfc-recap dt{color:#cfccc4}
html[data-theme="dark"] .dhfc-recap{background:rgba(0,0,0,.2)}
html[data-theme="dark"] .dhfc-actions a,html[data-theme="dark"] .dhfc-actions button{color:#f7f6f3}
html[data-theme="dark"] .dhfc-actions .dhfc-book{color:#313131}
@media(max-width:720px){.dhfc-card{padding:22px 18px 18px}.dhfc-recap{grid-template-columns:1fr;gap:2px}.dhfc-recap dd{margin-bottom:6px}}
@media(prefers-reduced-motion:reduce){.dhfc-card,.dhfc-out,.dhfc-spin{animation:none!important;transition:none!important}.dhfc-spin{border-right-color:currentColor;opacity:.6}.dhfc-check circle,.dhfc-check path{animation:none!important;stroke-dashoffset:0;fill-opacity:1}}
