.cmr-year-hub{
  display:grid;
  gap:16px;
  margin:16px 0 22px;
}

.cmr-hub-top{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:14px;
}

.cmr-hub-card,
.cmr-event,
.cmr-gallery,
.cmr-form-wrap{
  border:1px solid #d9e0ea;
  border-radius:14px;
  padding:16px;
  background:#fff;
  box-shadow:0 6px 22px rgba(17, 24, 39, 0.05);
}

.cmr-hub-card h3{
  margin:0 0 8px;
}

.cmr-hub-agenda{
  background:linear-gradient(135deg,#f6f9ff 0%,#e8f1ff 100%);
  border-color:#bfdbfe;
}
.cmr-hub-agenda h3{color:#1e40af;}

.cmr-hub-photos{
  background:linear-gradient(135deg,#f2f8ff 0%,#dbeafe 100%);
  border-color:#93c5fd;
}
.cmr-hub-photos h3{color:#1d4ed8;}

.cmr-hub-map{
  background:linear-gradient(135deg,#eff6ff 0%,#cfe3ff 100%);
  border-color:#60a5fa;
}
.cmr-hub-map h3{color:#1e3a8a;}


.cmr-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:8px 16px;
  border-radius:10px;
  border:1px solid #1d4ed8;
  background:#1d4ed8;
  color:#fff;
  text-decoration:none;
  font-weight:600;
}
.cmr-btn:hover,
.cmr-btn:focus{
  color:#fff;
  border-color:#1e40af;
  background:#1e40af;
}

.cmr-hub-agenda .cmr-btn{
  background:#2563eb;
  border-color:#2563eb;
}
.cmr-hub-agenda .cmr-btn:hover,
.cmr-hub-agenda .cmr-btn:focus{
  background:#1d4ed8;
  border-color:#1d4ed8;
}

.cmr-hub-photos .cmr-btn{
  background:#1d4ed8;
  border-color:#1d4ed8;
}
.cmr-hub-photos .cmr-btn:hover,
.cmr-hub-photos .cmr-btn:focus{
  background:#1e40af;
  border-color:#1e40af;
}

.cmr-hub-map .cmr-btn{
  background:#1e40af;
  border-color:#1e40af;
}
.cmr-hub-map .cmr-btn:hover,
.cmr-hub-map .cmr-btn:focus{
  background:#1e3a8a;
  border-color:#1e3a8a;
}

.cmr-filter{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:8px;
  margin:0 0 16px;
}
.cmr-filter input,
.cmr-filter select,
.cmr-filter button{
  min-height:40px;
  padding:7px 10px;
  border-radius:10px;
  border:1px solid #ccd6e2;
  background:#fff;
}

.cmr-event-list{display:grid;gap:8px;margin-bottom:14px;}
.cmr-event{
  position:relative;
  padding:12px 14px;
  line-height:1.3;
}
.cmr-event h3{
  margin:0 0 6px;
  line-height:1.2;
}
.cmr-event:target{
  border-color:#2563eb;
  box-shadow:0 0 0 3px rgba(37, 99, 235, 0.18);
}

.cmr-section-title{
  margin:16px 0 10px;
  padding:8px 12px;
  border-left:4px solid #1d4ed8;
  background:#f4f8ff;
  border-radius:8px;
  font-size:1.15rem;
}

.cmr-meta{font-size:.93rem;color:#334155;margin:0 0 4px;line-height:1.25;}
.cmr-share{font-size:.9rem;margin-top:6px;line-height:1.25;}
.cmr-share a{margin-right:10px;}
.cmr-more{
  font-weight:600;
}

.cmr-excerpt{
  margin-top:4px;
  text-align:justify;
}
.cmr-excerpt p{
  margin:0 0 6px;
  line-height:1.35;
}
.cmr-excerpt p:last-child{
  margin-bottom:0;
}

.cmr-thumb-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(120px,1fr));
  gap:8px;
  margin-top:8px;
}
.cmr-thumb-grid img{
  width:100%;height:120px;object-fit:cover;border-radius:8px;
}

.cmr-map{
  width:100%;
  height:560px;
  border-radius:12px;
  overflow:hidden;
  margin:14px 0;
  border:1px solid #d0d7e3;
}

.cmr-map-picker-wrap{
  border:1px solid #d6dde8;
  border-radius:12px;
  padding:12px;
  background:#f8fafc;
}
.cmr-map-picker{height:360px;margin:8px 0 4px;}

.cmr-help{
  margin:0 0 6px;
  color:#334155;
  font-size:.92rem;
}

.cmr-form{display:grid;gap:10px;}
.cmr-form label{display:grid;gap:6px;font-weight:600;}
.cmr-form input,
.cmr-form textarea,
.cmr-form select,
.cmr-form button{
  min-height:40px;
  padding:8px 10px;
  border:1px solid #ccd6e2;
  border-radius:10px;
  background:#fff;
}
.cmr-form textarea{min-height:120px;}
.cmr-form button{
  background:#0f766e;
  border-color:#0f766e;
  color:#fff;
  font-weight:700;
}
.cmr-form button:hover,
.cmr-form button:focus{
  background:#0c5f5a;
  border-color:#0c5f5a;
}

.cmr-form .cmr-row{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:10px;
}

.cmr-success{
  padding:10px 12px;
  background:#edf8ef;
  border:1px solid #b7e0bd;
  border-radius:8px;
}

.cmr-error-box,
.cmr-inline-error{
  padding:10px 12px;
  background:#fff1f2;
  border:1px solid #fecdd3;
  color:#9f1239;
  border-radius:8px;
}
.cmr-inline-error{
  margin:8px 0 0;
  font-size:.92rem;
}

.cmr-ads{margin:14px 0;}

@media(max-width:768px){
  .cmr-map{height:430px;}
  .cmr-map-picker{height:320px;}
}
