/* One footer layout for home, course pages and both practice apps. */
.site-footer { width:100%; max-width:1140px; margin:0 auto; padding:0 22px 32px; color:var(--ink-3); font-family:var(--sans); font-size:12.5px; }
.site-footer__inner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 24px; padding-top:20px; border-top:1px solid var(--line); }
.site-footer__brand { display:inline-flex; align-items:center; min-height:36px; color:var(--ink-2); text-decoration:none; }
.site-footer .site-contact-link { display:inline-flex; align-items:center; min-height:36px; margin-inline-start:auto; padding:0; border:0; background:transparent; font:inherit; text-decoration:underline; cursor:pointer; }
@media(max-width:560px) { .site-footer { padding:0 20px 28px; } .site-footer__inner { gap:4px 16px; padding-top:16px; } }
.site-contact-link { color:var(--ink-2); text-underline-offset:3px; }
.site-contact-link:hover { color:var(--accent); }
.site-contact-link:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.site-contact-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; }
.site-contact-dialog { box-sizing:border-box; width:min(460px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:32px; border:1px solid var(--line); border-radius:16px; background:var(--paper); color:var(--ink); font-family:var(--sans); }
.site-contact-dialog::backdrop { background:rgb(0 0 0 / .4); }
.site-contact-dialog h2 { margin:0 36px 16px 0; font:500 28px/1.3 var(--serif); }
.site-contact-dialog p { margin:12px 0; font-size:14px; line-height:1.7; color:var(--ink-2); }
.site-contact-close { position:absolute; top:20px; right:20px; width:36px; height:36px; padding:0; border:0; border-radius:8px; color:var(--ink-2); background:transparent; font:24px/1 sans-serif; cursor:pointer; }
.site-contact-close:hover { background:var(--paper-2); }
.site-contact-email { display:block; margin:24px 0 16px; color:var(--ink); font-size:20px; overflow-wrap:anywhere; text-decoration:underline; text-underline-offset:4px; }
.site-contact-dialog .site-contact-hint { color:var(--ink-3); font-size:13px; }
.site-contact-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.site-contact-actions button,.site-contact-actions a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; box-sizing:border-box; padding:10px 16px; border:1px solid var(--line); border-radius:8px; background:transparent; color:var(--ink); font:inherit; font-size:14px; text-decoration:none; cursor:pointer; }
.site-contact-actions button { background:var(--accent-strong); border-color:var(--accent-strong); color:var(--on-accent); }
.site-contact-dialog .site-contact-status { margin-bottom:0; min-height:24px; font-size:12px; }
@media(max-width:480px) { .site-contact-dialog { padding:24px; } }
