/* Part 3: events, announcements, sermons and the enforced site-wide shell. */
.agcm-universal-shell .agcm-inner-main { min-height: 42vh; }
.agcm-universal-shell .agcm-section { padding-block: 88px; }
.agcm-button--outline { background: #fff; border-color: #cbd7e7; color: var(--agcm-blue); }
.agcm-button--outline:hover { border-color: var(--agcm-blue); box-shadow: 0 10px 26px rgba(7,87,181,.12); }

/* Archive controls */
.agcm-archive-toolbar { align-items: center; background: #fff; border: 1px solid var(--agcm-line); border-radius: 18px; box-shadow: 0 12px 40px rgba(7,45,96,.07); display: flex; gap: 28px; justify-content: space-between; margin-bottom: 34px; padding: 19px 22px; }
.agcm-archive-toolbar > div:first-child { display: flex; flex-direction: column; }
.agcm-archive-toolbar strong { font-size: 15px; }
.agcm-archive-toolbar span { color: var(--agcm-muted); font-size: 11px; margin-top: 2px; }
.agcm-tab-buttons { background: var(--agcm-soft); border-radius: 12px; display: flex; gap: 4px; padding: 4px; }
.agcm-tab-buttons button { background: transparent; border: 0; border-radius: 9px; color: #5f6d84; cursor: pointer; font-size: 11px; font-weight: 850; padding: 9px 15px; }
.agcm-tab-buttons button:hover, .agcm-tab-buttons button.is-active { background: var(--agcm-blue); color: #fff; }
[data-event-panel][hidden], [data-notice-item][hidden] { display: none !important; }

/* Events */
.agcm-events-archive { background: var(--agcm-soft); }
.agcm-events-archive__grid { display: grid; gap: 23px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.agcm-event-tile { background: #fff; border: 1px solid #e2e9f2; border-radius: 20px; box-shadow: 0 8px 28px rgba(7,45,96,.05); overflow: hidden; transition: box-shadow .25s,transform .25s; }
.agcm-event-tile:hover { box-shadow: var(--agcm-shadow); transform: translateY(-5px); }
.agcm-event-tile__image { align-items: flex-start; background: linear-gradient(145deg,#78aef0,#0b59ad); background-position: center; background-size: cover; display: flex; height: 225px; justify-content: space-between; overflow: hidden; padding: 17px; position: relative; }
.agcm-event-tile__image::before { background: linear-gradient(180deg,rgba(3,28,66,.06),rgba(3,28,66,.7)); content: ""; inset: 0; position: absolute; }
.agcm-event-tile__image > span { background: rgba(255,255,255,.94); border-radius: 30px; color: var(--agcm-blue); font-size: 9px; font-weight: 900; letter-spacing: .08em; padding: 6px 10px; position: relative; text-transform: uppercase; }
.agcm-event-tile__image > div { align-items: center; background: var(--agcm-yellow); border-radius: 12px; box-shadow: 0 8px 22px rgba(0,0,0,.13); color: var(--agcm-blue-dark); display: flex; flex-direction: column; justify-content: center; line-height: 1; min-height: 62px; min-width: 60px; position: relative; }
.agcm-event-tile__image strong { font-size: 23px; }
.agcm-event-tile__image small { font-size: 9px; font-weight: 900; letter-spacing: .1em; margin-top: 5px; }
.agcm-event-tile__body { padding: 24px 24px 26px; }
.agcm-event-tile__body h2 { font-size: 21px; margin-bottom: 10px; }
.agcm-event-tile__body h2 a:hover { color: var(--agcm-blue); }
.agcm-event-tile__body > p { color: var(--agcm-muted); font-size: 12px; line-height: 1.75; min-height: 43px; }
.agcm-event-tile__meta { border-block: 1px solid var(--agcm-line); display: grid; gap: 8px; margin-block: 18px; padding-block: 14px; }
.agcm-event-tile__meta span { align-items: center; color: #6b7890; display: flex; font-size: 10px; gap: 7px; }
.agcm-event-tile__meta svg { color: var(--agcm-blue); height: 15px; width: 15px; }
.agcm-event-tile.is-past { filter: saturate(.65); opacity: .83; }

.agcm-event-single { background: #fff; }
.agcm-event-single__cover { align-items: flex-end; background-position: center; background-size: cover; border-radius: 24px; box-shadow: var(--agcm-shadow); display: flex; height: min(52vw,560px); margin-bottom: 60px; overflow: hidden; padding: 28px; position: relative; }
.agcm-event-single__cover::after { background: linear-gradient(180deg,transparent 48%,rgba(3,28,66,.78)); content: ""; inset: 0; position: absolute; }
.agcm-event-single__cover span { background: var(--agcm-yellow); border-radius: 30px; color: var(--agcm-blue-dark); font-size: 10px; font-weight: 900; letter-spacing: .1em; padding: 7px 12px; position: relative; text-transform: uppercase; z-index: 1; }
.agcm-event-single__grid, .agcm-sermon-single__grid { align-items: start; display: grid; gap: 72px; grid-template-columns: minmax(0,1.3fr) minmax(310px,.7fr); }
.agcm-event-single__content h2, .agcm-sermon-single__content h2 { font-size: clamp(32px,4vw,46px); margin-bottom: 24px; }
.agcm-event-info, .agcm-sermon-info, .agcm-notice-sidebar { background: var(--agcm-soft); border: 1px solid #dde5ef; border-radius: 20px; padding: 27px; }
.agcm-event-info__date { align-items: center; background: var(--agcm-blue); border-radius: 15px; color: #fff; display: flex; gap: 13px; margin-bottom: 10px; padding: 17px 20px; }
.agcm-event-info__date strong { color: #fff; font-size: 36px; line-height: 1; }
.agcm-event-info__date span { color: var(--agcm-yellow); font-size: 10px; font-weight: 900; letter-spacing: .12em; }
.agcm-info-row { align-items: flex-start; border-bottom: 1px solid #dce4ed; display: flex; gap: 12px; padding: 15px 0; }
.agcm-info-row > span { align-items: center; background: #fff; border-radius: 10px; color: var(--agcm-blue); display: flex; flex: 0 0 auto; height: 39px; justify-content: center; width: 39px; }
.agcm-info-row svg { height: 18px; width: 18px; }
.agcm-info-row p { display: flex; flex-direction: column; margin: 0; }
.agcm-info-row small { color: var(--agcm-muted); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.agcm-info-row strong { font-size: 12px; margin-top: 2px; }
.agcm-event-info .agcm-button { margin-top: 22px; width: 100%; }
.agcm-map-link { align-items: center; color: var(--agcm-blue); display: flex; font-size: 11px; font-weight: 850; gap: 8px; justify-content: center; padding-top: 17px; }
.agcm-map-link svg { height: 17px; width: 17px; }
.agcm-event-contact { align-items: center; background: var(--agcm-yellow-soft); border-radius: 15px; display: flex; gap: 13px; margin-top: 30px; padding: 17px 19px; }
.agcm-event-contact > span { align-items: center; background: var(--agcm-yellow); border-radius: 11px; color: var(--agcm-blue-dark); display: flex; height: 44px; justify-content: center; width: 44px; }
.agcm-event-contact p { display: flex; flex-direction: column; margin: 0; }
.agcm-event-contact small { color: #6a5b16; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.agcm-event-contact strong { font-size: 13px; }
.agcm-event-contact a { color: var(--agcm-blue); font-size: 11px; font-weight: 750; }

/* Announcements */
.agcm-announcement-archive { background: var(--agcm-soft); }
.agcm-announcement-archive .agcm-filter-bar { margin-top: 0; }
.agcm-announcement-archive__grid { display: grid; gap: 20px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.agcm-announcement-tile { background: #fff; border: 1px solid #e0e7f0; border-radius: 18px; border-top: 5px solid var(--agcm-yellow); padding: 27px; transition: box-shadow .25s,transform .25s; }
.agcm-announcement-tile:hover { box-shadow: var(--agcm-shadow); transform: translateY(-4px); }
.agcm-announcement-tile > div:first-child { align-items: center; display: flex; justify-content: space-between; }
.agcm-announcement-tile > div:first-child span { background: #e9f3ff; border-radius: 30px; color: var(--agcm-blue); font-size: 9px; font-weight: 900; letter-spacing: .08em; padding: 6px 9px; text-transform: uppercase; }
.agcm-announcement-tile > div:first-child small { color: #8792a5; font-size: 10px; }
.agcm-announcement-tile h2 { font-size: 21px; margin: 21px 0 10px; }
.agcm-announcement-tile h2 a:hover { color: var(--agcm-blue); }
.agcm-announcement-tile > p { color: var(--agcm-muted); font-size: 12px; line-height: 1.75; min-height: 64px; }
.agcm-notice-single { background: #fff; }
.agcm-notice-single__grid { align-items: start; display: grid; gap: 70px; grid-template-columns: minmax(0,1.3fr) minmax(300px,.7fr); }
.agcm-notice-single__content { min-width: 0; }
.agcm-notice-single__meta { align-items: center; border-bottom: 1px solid var(--agcm-line); display: flex; gap: 14px; margin-bottom: 30px; padding-bottom: 20px; }
.agcm-notice-single__meta span { background: var(--agcm-yellow-soft); border-radius: 30px; color: #725c00; font-size: 9px; font-weight: 900; letter-spacing: .09em; padding: 6px 10px; text-transform: uppercase; }
.agcm-notice-single__meta small { color: var(--agcm-muted); }
.agcm-notice-single__content .agcm-button { margin-top: 28px; }
.agcm-notice-sidebar h3, .agcm-sermon-info h3 { border-bottom: 1px solid #dce4ed; font-size: 18px; margin-bottom: 6px; padding-bottom: 17px; }
.agcm-archive-notice { background: #fff5cf; border-left: 4px solid var(--agcm-yellow); border-radius: 9px; color: #665000; font-size: 12px; font-weight: 750; margin-bottom: 24px; padding: 13px 16px; }

/* Sermons */
.agcm-sermon-archive { background: var(--agcm-soft); }
.agcm-sermon-filters { align-items: end; background: #fff; border: 1px solid var(--agcm-line); border-radius: 18px; box-shadow: 0 12px 40px rgba(7,45,96,.06); display: grid; gap: 13px; grid-template-columns: 1.4fr 1fr 1fr auto; margin-bottom: 37px; padding: 20px; }
.agcm-sermon-filters label { display: flex; flex-direction: column; }
.agcm-sermon-filters label > span { color: var(--agcm-ink); font-size: 9px; font-weight: 850; letter-spacing: .08em; margin: 0 0 6px 3px; text-transform: uppercase; }
.agcm-sermon-filters input, .agcm-sermon-filters select, .agcm-site-search input { background: var(--agcm-soft); border: 1px solid #dce4ef; border-radius: 10px; color: var(--agcm-ink); min-height: 48px; padding: 10px 12px; width: 100%; }
.agcm-sermon-filters input:focus, .agcm-sermon-filters select:focus, .agcm-site-search input:focus { border-color: var(--agcm-blue); box-shadow: 0 0 0 3px rgba(7,87,181,.11); outline: 0; }
.agcm-sermon-filters .agcm-button { min-height: 48px; white-space: nowrap; }
.agcm-sermon-archive__grid { display: grid; gap: 23px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.agcm-message-card { background: #fff; border: 1px solid #e1e8f1; border-radius: 19px; overflow: hidden; transition: box-shadow .25s,transform .25s; }
.agcm-message-card:hover { box-shadow: var(--agcm-shadow); transform: translateY(-5px); }
.agcm-message-card__visual { align-items: center; background: linear-gradient(145deg,#0b5ab3,#031c42); background-position: center; background-size: cover; display: flex; height: 220px; justify-content: center; position: relative; }
.agcm-message-card__visual::after { background: linear-gradient(180deg,rgba(3,28,66,.12),rgba(3,28,66,.65)); content: ""; inset: 0; position: absolute; }
.agcm-message-card__visual > span { align-items: center; background: var(--agcm-yellow); border-radius: 50%; box-shadow: 0 8px 30px rgba(0,0,0,.2); color: var(--agcm-blue-dark); display: flex; height: 58px; justify-content: center; position: relative; transition: transform .2s; width: 58px; z-index: 1; }
.agcm-message-card:hover .agcm-message-card__visual > span { transform: scale(1.08); }
.agcm-message-card__visual > span svg { height: 27px; width: 27px; }
.agcm-message-card__visual > small { bottom: 15px; color: #fff; font-size: 9px; font-weight: 900; left: 17px; letter-spacing: .1em; position: absolute; text-transform: uppercase; z-index: 1; }
.agcm-message-card__body { padding: 22px 23px 25px; }
.agcm-message-card__body > p { color: var(--agcm-blue); font-size: 10px; font-weight: 850; margin-bottom: 6px; text-transform: uppercase; }
.agcm-message-card__body h2 { font-size: 21px; margin-bottom: 15px; }
.agcm-message-card__body h2 a:hover { color: var(--agcm-blue); }
.agcm-message-card__body > div { border-block: 1px solid var(--agcm-line); display: grid; gap: 7px; margin-bottom: 17px; padding-block: 13px; }
.agcm-message-card__body > div span { align-items: center; color: var(--agcm-muted); display: flex; font-size: 10px; gap: 7px; }
.agcm-message-card__body > div svg { color: var(--agcm-blue); height: 14px; width: 14px; }
.agcm-sermon-single { background: #fff; }
.agcm-sermon-player { aspect-ratio: 16/9; background: #061a37; border-radius: 23px; box-shadow: var(--agcm-shadow); margin-bottom: 62px; overflow: hidden; }
.agcm-sermon-player iframe, .agcm-sermon-player video { border: 0; height: 100%; width: 100%; }
.agcm-media-fallback { align-items: center; background: linear-gradient(135deg,var(--agcm-blue-deep),var(--agcm-blue)); border-radius: 23px; color: #fff; display: flex; flex-direction: column; justify-content: center; margin-bottom: 62px; min-height: 390px; padding: 45px; text-align: center; }
.agcm-media-fallback > span { color: var(--agcm-yellow); }
.agcm-media-fallback > span svg { height: 72px; width: 72px; }
.agcm-media-fallback h2 { color: #fff; font-size: 34px; margin: 20px 0 24px; }
.agcm-audio-player { background: var(--agcm-soft); border-radius: 15px; display: grid; gap: 13px; margin-top: 29px; padding: 19px; }
.agcm-audio-player strong { align-items: center; display: flex; font-size: 12px; gap: 8px; }
.agcm-audio-player strong svg { color: var(--agcm-blue); height: 19px; width: 19px; }
.agcm-audio-player audio { width: 100%; }
.agcm-sermon-single__content > .agcm-button { margin-top: 24px; }

/* Gallery and WordPress fallback routes */
.agcm-gallery-shell { background: var(--agcm-soft); }
.agcm-gallery-shell__grid { display: grid; gap: 18px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.agcm-gallery-tile { align-items: flex-end; background: linear-gradient(145deg,#88b8ed,#0757b5); background-position: center; background-size: cover; border-radius: 18px; display: flex; min-height: 330px; overflow: hidden; padding: 23px; position: relative; }
.agcm-gallery-tile::after { background: linear-gradient(180deg,transparent 35%,rgba(3,28,66,.88)); content: ""; inset: 0; position: absolute; transition: opacity .2s; }
.agcm-gallery-tile:hover::after { opacity: .82; }
.agcm-gallery-tile > span { color: #fff; display: flex; flex-direction: column; position: relative; z-index: 1; }
.agcm-gallery-tile small { color: var(--agcm-yellow); font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.agcm-gallery-tile strong { font-size: 21px; margin-top: 5px; }
.agcm-generic-page, .agcm-generic-archive { background: var(--agcm-soft); }
.agcm-generic-page__content { background: #fff; border: 1px solid var(--agcm-line); border-radius: 22px; box-shadow: 0 14px 45px rgba(7,45,96,.07); max-width: 930px; padding-block: 48px; }
.agcm-generic-page__image { border-radius: 16px; margin: 0 auto 36px; max-height: 560px; object-fit: cover; width: 100%; }
.agcm-generic-archive__grid { display: grid; gap: 20px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.agcm-generic-card { background: #fff; border: 1px solid var(--agcm-line); border-radius: 17px; padding: 27px; }
.agcm-generic-card > small { color: var(--agcm-blue); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.agcm-generic-card h2 { font-size: 22px; margin: 12px 0 10px; }
.agcm-generic-card h2 a:hover { color: var(--agcm-blue); }
.agcm-generic-card > p { color: var(--agcm-muted); font-size: 12px; line-height: 1.75; }
.agcm-site-search { display: flex; gap: 10px; margin-bottom: 31px; }
.agcm-site-search input { background: #fff; }
.agcm-pagination { margin-top: 40px; }
.agcm-pagination ul { display: flex; flex-wrap: wrap; gap: 7px; justify-content: center; list-style: none; margin: 0; padding: 0; }
.agcm-pagination a, .agcm-pagination span { align-items: center; background: #fff; border: 1px solid #dce4ee; border-radius: 9px; color: var(--agcm-blue); display: flex; font-size: 11px; font-weight: 850; height: 40px; justify-content: center; min-width: 40px; padding-inline: 10px; }
.agcm-pagination .current, .agcm-pagination a:hover { background: var(--agcm-blue); border-color: var(--agcm-blue); color: #fff; }
.agcm-404-card { background: #fff; border: 1px solid var(--agcm-line); border-radius: 22px; box-shadow: var(--agcm-shadow); margin-inline: auto; max-width: 760px; padding: 60px; text-align: center; }
.agcm-404-card > strong { color: var(--agcm-yellow); font-size: 82px; font-weight: 950; line-height: 1; text-shadow: 2px 2px 0 var(--agcm-blue); }
.agcm-404-card h2 { font-size: 34px; margin: 22px 0 10px; }
.agcm-404-card > p { color: var(--agcm-muted); }
.agcm-404-card .agcm-button-row { justify-content: center; margin-top: 26px; }

@media (max-width: 980px) {
	.agcm-events-archive__grid, .agcm-announcement-archive__grid, .agcm-sermon-archive__grid, .agcm-gallery-shell__grid, .agcm-generic-archive__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.agcm-event-single__grid, .agcm-sermon-single__grid, .agcm-notice-single__grid { gap: 45px; grid-template-columns: minmax(0,1fr) 310px; }
	.agcm-sermon-filters { grid-template-columns: repeat(3,1fr); }
	.agcm-sermon-filters .agcm-button { grid-column: 1/-1; }
}

@media (max-width: 760px) {
	.agcm-universal-shell .agcm-section { padding-block: 68px; }
	.agcm-event-single__grid, .agcm-sermon-single__grid, .agcm-notice-single__grid { grid-template-columns: 1fr; }
	.agcm-event-info, .agcm-sermon-info, .agcm-notice-sidebar { width: 100%; }
	.agcm-event-single__cover { height: 430px; margin-bottom: 45px; }
	.agcm-sermon-filters { grid-template-columns: 1fr; }
	.agcm-sermon-filters .agcm-button { grid-column: auto; }
	.agcm-sermon-player, .agcm-media-fallback { margin-bottom: 45px; }
}

@media (max-width: 560px) {
	.agcm-archive-toolbar { align-items: stretch; flex-direction: column; }
	.agcm-tab-buttons { width: 100%; }
	.agcm-tab-buttons button { flex: 1; }
	.agcm-events-archive__grid, .agcm-announcement-archive__grid, .agcm-sermon-archive__grid, .agcm-gallery-shell__grid, .agcm-generic-archive__grid { grid-template-columns: 1fr; }
	.agcm-event-tile__image, .agcm-message-card__visual { height: 215px; }
	.agcm-event-single__cover { height: 330px; padding: 18px; }
	.agcm-gallery-tile { min-height: 285px; }
	.agcm-site-search { align-items: stretch; flex-direction: column; }
	.agcm-404-card { padding: 40px 22px; }
	.agcm-404-card > strong { font-size: 66px; }
	.agcm-404-card h2 { font-size: 28px; }
}
