.cd-events-grid, .cd-news-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
.cd-event-card, .cd-news-card { display:flex; flex-direction:column; text-decoration:none; color:inherit; border:1px solid #E3DDD0; border-radius:10px; overflow:hidden; background:#fff; transition:transform .15s ease, box-shadow .15s ease; }
.cd-event-card:hover, .cd-news-card:hover { transform:translateY(-3px); box-shadow:0 14px 26px rgba(23,35,61,.10); }
.cd-event-card__img, .cd-news-card__img { aspect-ratio:16/10; overflow:hidden; background:#F1EAD9; }
.cd-event-card__img img, .cd-news-card__img img { width:100%; height:100%; object-fit:cover; display:block; }
.cd-event-card__img-fallback, .cd-news-card__img-fallback { width:100%; height:100%; background:linear-gradient(135deg,#EEF2FF,#E0F2F1); }
.cd-event-card__body, .cd-news-card__body { padding:16px 18px 20px; display:flex; flex-direction:column; gap:6px; flex:1; }
.cd-event-card__date, .cd-news-card__date { font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#B98A2E; }
.cd-event-card__title, .cd-news-card__title { font-size:16px; font-weight:700; color:#17233D; margin:0; line-height:1.35; }
.cd-event-card__loc { font-size:13px; color:#57647B; }
.cd-event-card__more, .cd-news-card__more { margin-top:auto; font-size:13px; font-weight:600; color:#17233D; }
.cd-news-card__excerpt { font-size:13px; color:#57647B; margin:0; line-height:1.5; }
.cd-events-empty { color:#57647B; font-size:14px; }

/* --- List layout (side-by-side Events & News page) --- */
.cd-events-list, .cd-news-list { display:flex; flex-direction:column; }
.cd-event-row, .cd-news-row { display:flex; align-items:flex-start; gap:16px; text-decoration:none; color:inherit; padding:18px 0; border-bottom:1px solid #E9E4D8; }
.cd-event-row:last-child, .cd-news-row:last-child { border-bottom:none; }
.cd-event-row__badge { flex-shrink:0; width:52px; height:52px; border-radius:8px; background:#17233D; color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1.1; }
.cd-event-row__day { font-size:17px; font-weight:800; }
.cd-event-row__mon { font-size:10px; letter-spacing:.06em; text-transform:uppercase; opacity:.85; }
.cd-event-row__body { display:flex; flex-direction:column; }
.cd-news-row { flex-direction:column; }
.cd-event-row__title, .cd-news-row__title { display:block; font-size:15px; font-weight:700; color:#17233D; line-height:1.35; }
.cd-event-row__desc, .cd-news-row__desc { display:block; font-size:13px; color:#57647B; margin-top:3px; line-height:1.5; }
.cd-news-row { padding-left:2px; }
.cd-news-row__tag { display:block; font-size:11px; font-weight:800; letter-spacing:.05em; color:#B98A2E; margin-bottom:4px; }
.cd-news-row:hover .cd-event-row__title, .cd-event-row:hover .cd-event-row__title,
.cd-news-row:hover .cd-news-row__title { color:#B98A2E; }


.cd-event-reg { border:1px solid #E3DDD0; border-radius:12px; padding:26px 24px; background:#FAF6EE; max-width:640px; }
.cd-event-reg__meta { display:flex; flex-wrap:wrap; gap:18px; margin-bottom:20px; font-size:14px; color:#17233D; }
.cd-event-reg__row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.cd-event-reg .cd-field { margin:0 0 14px; }
.cd-event-reg .cd-field label { display:block; font-size:13px; font-weight:600; margin-bottom:4px; color:#17233D; }
.cd-event-reg .cd-field input { width:100%; padding:11px 12px; border:1px solid #E3DDD0; border-radius:6px; font-size:14px; background:#fff; }
.cd-event-reg .cd-button { padding:13px 24px; border-radius:6px; border:none; background:#17233D; color:#fff; font-weight:700; cursor:pointer; }
.cd-event-reg .cd-button:hover { background:#B98A2E; }
.cd-event-reg .cd-button[disabled] { opacity:.6; cursor:default; }
.cd-event-reg__feedback { margin-top:12px; font-size:14px; }
.cd-event-reg__feedback.is-error { color:#B3261E; }
.cd-event-reg__feedback.is-success { color:#3F7A55; }

@media (max-width:820px) { .cd-events-grid, .cd-news-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px) { .cd-events-grid, .cd-news-grid, .cd-event-reg__row { grid-template-columns:1fr; } }
