/* Slippy Witch legal, consent, footer, and administrator-access support styles */
.site-footer-legal{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 16px;width:100%;font-size:.82rem}
.site-footer-legal a{color:inherit;text-decoration:none;opacity:.82}
.site-footer-legal a:hover,.site-footer-legal a:focus{text-decoration:underline;opacity:1}
.site-footer-admin{opacity:.58!important}

.newsletter-consent{display:grid;gap:10px;margin:4px 0 12px;text-align:left}
.newsletter-consent label{display:flex;gap:10px;align-items:flex-start;margin:0;color:var(--muted);font-size:.86rem;line-height:1.4;cursor:pointer}
.newsletter-consent input{width:18px;height:18px;flex:0 0 auto;margin:1px 0 0;accent-color:var(--plum)}
.newsletter-consent a{color:var(--plum);font-weight:700}
.newsletter-submit:disabled{cursor:not-allowed;opacity:.4;filter:none!important}
.newsletter-consent-error{margin:0 0 10px;color:#a32929;font-size:.86rem;font-weight:700}
.newsletter-form .formkit-alert-success strong{display:block;margin-bottom:4px}

.legal-page main{min-height:60vh}
.legal-shell{max-width:920px;margin:0 auto;padding:clamp(42px,7vw,88px) clamp(20px,5vw,48px) 80px}
.legal-shell .eyebrow{display:inline-block;margin-bottom:8px}
.legal-shell h1{font-size:clamp(2.8rem,6vw,5.2rem);letter-spacing:-.04em;margin:.12em 0 .2em}
.legal-updated{margin:0 0 34px;color:var(--muted);font-size:.9rem}
.legal-intro{font-size:1.08rem;line-height:1.7;color:var(--muted);max-width:760px}
.legal-toc{margin:32px 0;padding:22px 24px;border:1px solid var(--line);border-radius:18px;background:var(--paper)}
.legal-toc strong{display:block;margin-bottom:10px}
.legal-toc ol{margin:0;padding-left:22px;columns:2;column-gap:32px}
.legal-toc li{break-inside:avoid;margin:6px 0}
.legal-toc a{color:var(--plum);text-decoration:none}
.legal-shell h2{margin:42px 0 12px;font-size:clamp(1.65rem,3vw,2.35rem)}
.legal-shell h3{margin:26px 0 8px;font-size:1.2rem}
.legal-shell p,.legal-shell li{line-height:1.72}
.legal-shell p{margin:0 0 15px}
.legal-shell ul{padding-left:24px}
.legal-shell a{color:var(--plum)}
.legal-callout{margin:26px 0;padding:18px 20px;border-left:4px solid var(--plum);background:#f7f1eb;border-radius:0 14px 14px 0}
.contact-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:28px 0}
.contact-card{padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--paper)}
.contact-card h2{margin:0 0 8px;font-size:1.45rem}
.contact-card p{margin:0 0 12px}

.contact-shell{max-width:1120px}
.contact-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:26px;align-items:start;margin-top:30px}
.contact-form{display:grid;gap:18px;padding:26px;border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:0 10px 30px rgba(50,35,45,.06)}
.contact-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.contact-form label{display:grid;gap:7px;font-weight:800}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 13px;background:#fff;color:var(--ink);font:inherit}
.contact-form textarea{resize:vertical;min-height:180px}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:2px solid rgba(64,38,75,.16);border-color:var(--plum)}
.contact-form button{justify-self:start}
.contact-optional{font-weight:600;color:var(--muted);font-size:.82rem}
.contact-field-error{color:#a32929;font-weight:700}
.contact-privacy-note{margin:0!important;color:var(--muted);font-size:.88rem;line-height:1.55!important}
.contact-direct{display:grid;gap:16px}
.contact-direct .contact-card{margin:0}
.contact-email{font-size:1.05rem;font-weight:800;overflow-wrap:anywhere}
.contact-status{margin:24px 0;padding:16px 18px;border-radius:14px;font-weight:600}
.contact-status a{font-weight:800}
.contact-status-success{background:#edf7ed;border:1px solid #b9d8b9;color:#285c2d}
.contact-status-error{background:#fff2f3;border:1px solid #e3b7c0;color:#8d2537}
.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

.admin-users-panel{max-width:1180px;margin:24px auto;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--paper)}
.admin-users-panel h2{margin:.15em 0}
.admin-invite-form{display:grid;grid-template-columns:minmax(260px,2fr) minmax(150px,1fr) auto;gap:12px;align-items:end;margin:18px 0 8px}
.admin-invite-form label{display:grid;gap:6px;font-weight:700}
.admin-invite-form input,.admin-invite-form select,.admin-invite-result input,.admin-access-actions select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit}
.admin-invite-result{max-width:1180px;margin:20px auto;padding:18px 20px;border:1px solid #b9d8b9;border-radius:16px;background:#edf7ed;color:#285c2d}
.admin-invite-result p{margin:6px 0 12px}
.admin-invite-result label{display:grid;gap:6px;color:var(--ink);font-weight:700}
.admin-access-list{display:grid;gap:10px;margin-top:16px}
.admin-access-row{display:grid;grid-template-columns:minmax(250px,2fr) minmax(100px,.65fr) minmax(250px,1.5fr);gap:14px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}
.admin-access-row.is-revoked{opacity:.6}
.admin-access-person{display:grid;gap:3px;min-width:0}
.admin-access-person span,.admin-access-person small{color:var(--muted);overflow-wrap:anywhere}
.admin-access-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.admin-access-actions form{display:flex;gap:7px;align-items:center;margin:0}
.admin-access-actions button:disabled{opacity:.45;cursor:not-allowed}
.admin-invite-accept{max-width:900px}
.admin-invite-accept strong{overflow-wrap:anywhere}
.admin-invite-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0}
.admin-invite-choice>div{padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}
.admin-invite-choice h2{margin:0 0 8px;font-size:1.25rem}
.admin-invite-choice p{line-height:1.55}
.admin-invite-choice form{margin:0}

@media(max-width:820px){
  .contact-layout{grid-template-columns:1fr}
  .admin-invite-form{grid-template-columns:1fr}
  .admin-access-row{grid-template-columns:1fr}
  .admin-access-actions{justify-content:flex-start}
  .admin-invite-choice{grid-template-columns:1fr}
}
@media(max-width:720px){
  .legal-toc ol{columns:1}
  .contact-options,.contact-form-grid{grid-template-columns:1fr}
  .contact-form{padding:20px}
}
