/* Public event + registration styles. Inherit the theme's fonts; only add structure and a restrained blue accent. */
.ecm-details,.ecm-reg,.ecm-status,.ecm-list{--ecm-line:#d9dfeb;--ecm-mute:#5d6880;box-sizing:border-box}
.ecm-details *,.ecm-reg *,.ecm-status *,.ecm-list *{box-sizing:border-box}
.ecm-details{border:1px solid var(--ecm-line);border-left:5px solid var(--ecm-gold);padding:18px 22px;margin:0 0 28px;background:#fff}
.ecm-details dl{display:grid;grid-template-columns:max-content 1fr;gap:8px 22px;margin:0}
.ecm-details dt{color:var(--ecm-mute);font-weight:600}
.ecm-details dd{margin:0}
.ecm-btn{display:inline-block;background:var(--ecm-blue);color:#fff!important;border:2px solid var(--ecm-blue);padding:11px 22px;border-radius:6px;font-weight:600;text-decoration:none!important;cursor:pointer;font-size:1rem;line-height:1.2}
.ecm-btn:hover,.ecm-btn:focus{background:var(--ecm-dark);border-color:var(--ecm-dark)}
.ecm-btn:focus-visible,.ecm-link:focus-visible,.ecm-form input:focus-visible,.ecm-form select:focus-visible,.ecm-form textarea:focus-visible{outline:3px solid var(--ecm-gold);outline-offset:2px}
.ecm-btn[disabled]{opacity:.6;cursor:wait}
.ecm-btn-ghost{background:transparent;color:var(--ecm-blue)!important}
.ecm-btn-ghost:hover{background:var(--ecm-tint);color:var(--ecm-blue)!important}
.ecm-notice{padding:14px 18px;background:#fff8e1;border-left:5px solid var(--ecm-gold);margin:20px 0}
.ecm-reg{margin-top:40px}
.ecm-form fieldset{border:1px solid var(--ecm-line);padding:16px 20px 20px;margin:0 0 22px;min-width:0}
.ecm-form legend{font-weight:700;padding:0 8px;color:var(--ecm-blue)}
.ecm-form label{display:block;font-weight:600;margin:0 0 12px}
.ecm-form input[type=text],.ecm-form input[type=email],.ecm-form input[type=tel],.ecm-form select,.ecm-form textarea{display:block;width:100%;margin-top:4px;padding:10px 12px;border:1px solid #b9c2d6;border-radius:5px;font:inherit;font-weight:400;background:#fff;color:inherit}
.ecm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 18px}
.ecm-att{border:1px solid var(--ecm-line);background:#f8f9fd;padding:14px 16px 4px;margin-bottom:14px}
.ecm-att-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.ecm-link{background:none;border:0;padding:4px 0;color:var(--ecm-blue);text-decoration:underline;cursor:pointer;font:inherit;font-weight:600}
.ecm-remove{color:#a32121}
.ecm-hp{position:absolute!important;left:-9999px;height:0;overflow:hidden}
.ecm-errors{background:#fdecec;border-left:5px solid #c62828;padding:12px 16px;margin-bottom:18px;font-weight:600}
.ecm-summary{margin:22px 0 10px;border-top:2px solid var(--ecm-blue);padding-top:12px}
.ecm-summary>div{display:flex;justify-content:space-between;padding:3px 0}
.ecm-s-total-row{font-size:1.25rem;color:var(--ecm-blue)}
.ecm-small{color:var(--ecm-mute);font-size:.9em}
/* status page */
.ecm-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:18px 0}
.ecm-status-box{border:1px solid var(--ecm-line);padding:12px 16px}
.ecm-status-box span{display:block;color:var(--ecm-mute);font-size:.85em;margin-bottom:4px}
.ecm-badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:.9rem;background:#eef0f5;color:#333}
.ecm-badge-paid,.ecm-badge-confirmed,.ecm-badge-not_required{background:#e0f4e8;color:#14683a}
.ecm-badge-unpaid,.ecm-badge-pending{background:#fff1cc;color:#7a5500}
.ecm-badge-cancelled,.ecm-badge-refunded{background:#fde3e3;color:#9b1c1c}
.ecm-att-ul{padding-left:1.1em}.ecm-att-ul span{color:var(--ecm-mute);margin-left:6px}
.ecm-pay-box{border:1px solid var(--ecm-line);border-left:5px solid var(--ecm-gold);padding:6px 20px 14px;margin:24px 0;background:#fff}
.ecm-pay-box table{border-collapse:collapse}.ecm-pay-box th{text-align:left;font-weight:500;color:var(--ecm-mute);padding:2px 22px 2px 0;border:0}.ecm-pay-box td{font-weight:600;border:0;padding:2px 0}
.ecm-actions{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}
/* event list: mirrors the date-badge rows on the main site */
.ecm-list{display:block}
.ecm-row{display:grid;grid-template-columns:84px 1fr auto;gap:22px;align-items:center;border-bottom:1px solid var(--ecm-line);padding:22px 0}
.ecm-row:first-child{border-top:1px solid var(--ecm-line)}
.ecm-date{background:var(--ecm-blue);color:#fff;text-align:center;padding:12px 4px;border-bottom:4px solid var(--ecm-gold)}
.ecm-date strong{display:block;font-size:2rem;line-height:1}
.ecm-date span{display:block;margin-top:4px;font-size:.95rem}
.ecm-row h3{margin:0 0 8px}
.ecm-row h3 a{text-decoration:none}
.ecm-meta{list-style:none;margin:0;padding:0;color:var(--ecm-mute)}
.ecm-meta b{color:inherit;font-weight:700;margin-right:6px}
@media(max-width:620px){.ecm-row{grid-template-columns:72px 1fr}.ecm-row .ecm-btn{grid-column:1/-1;text-align:center}.ecm-details dl{grid-template-columns:1fr;gap:2px}.ecm-details dt{margin-top:8px}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
/* sponsors, disclaimer, contact */
.ecm-sponsors,.ecm-contact{margin:40px 0 0}
.ecm-sponsor-grid{display:flex;flex-wrap:wrap;gap:18px 28px;align-items:center}
.ecm-sponsor-grid figure{margin:0}
.ecm-sponsor-grid img{display:block;max-height:80px;width:auto;max-width:180px;object-fit:contain}
.ecm-disclaimer{border:1px solid var(--ecm-line);border-left:5px solid var(--ecm-gold);background:#fff;padding:6px 20px 14px;margin:22px 0}
.ecm-disclaimer h3{margin:12px 0 6px}
.ecm-disclaimer-text{max-height:220px;overflow:auto;color:var(--ecm-mute);font-size:.95em;padding-right:6px}
.ecm-form label.ecm-check{display:flex;gap:10px;align-items:flex-start;margin:12px 0 0}
.ecm-form label.ecm-check input{width:auto;margin-top:5px}
.ecm-contact{border-top:1px solid var(--ecm-line);padding-top:18px}
.ecm-contact h2{margin-bottom:6px}
.ecm-form legend .ecm-legend-note{font-weight:400;color:var(--ecm-mute)}
.ecm-banner{background:#fff8e1;border:1px solid #f0d78a;border-left:5px solid var(--ecm-gold);padding:14px 18px;margin:16px 0;color:#3b3200}
.ecm-banner-ok{background:#e8f6ee;border-color:#a9dcc0;border-left-color:#1a7f4b;color:#0f4a2b}
.ecm-notice.ecm-ok{background:#e8f6ee;border-left-color:#1a7f4b}
.ecm-inline{display:inline-flex;flex-wrap:wrap;gap:10px;margin:0}

.ecm-pay-cols{display:flex;flex-wrap:wrap;gap:20px 36px;align-items:flex-start}
.ecm-qr{margin:0;text-align:center;width:200px;max-width:100%}
.ecm-qr img{display:block;width:100%;height:auto;border:1px solid var(--ecm-line);padding:8px;background:#fff}
.ecm-qr figcaption{margin-top:8px;font-size:.85rem;color:var(--ecm-mute);line-height:1.4}

.ecm-policy{border:1px solid var(--ecm-line);background:#fff;padding:4px 20px 12px;margin:22px 0;font-size:.95em}
.ecm-policy h3{margin:12px 0 6px}
.ecm-disclaimer h3+.ecm-disclaimer-text{margin-bottom:6px}
