/*
 * Acton BV Custom Parish: structural styles for the plugin's blocks.
 * Look and feel (colours, type, spacing) comes from the actonbvcustomparish theme;
 * these rules only make the blocks usable with any theme.
 */
.acp-icon { display: inline-block; vertical-align: middle; flex: none; }
.acp-icon-block { display: inline-flex; }
.acp-stretched::after { content: ""; position: absolute; inset: 0; }
.acp-more { display: inline-flex; align-items: center; gap: .4em; }

/* Mass times */
.acp-mass-table__scroll { overflow-x: auto; }
.acp-mass-table { width: 100%; border-collapse: collapse; }
.acp-mass-table th, .acp-mass-table td { vertical-align: top; text-align: left; }
.acp-mass-table__name, .acp-mass-table__town { display: block; }
.acp-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; align-items: flex-start; gap: .4rem; }
@media (max-width: 781px) {
	.acp-mass-table thead { display: none; }
	.acp-mass-table, .acp-mass-table tbody, .acp-mass-table tr, .acp-mass-table th, .acp-mass-table td { display: block; width: 100%; }
	.acp-mass-table td { display: grid; grid-template-columns: 7.5rem 1fr; gap: .75rem; }
	.acp-mass-table td::before { content: attr(data-day); font-weight: 600; }
	.acp-mass-table td.is-empty { display: none; }
	.acp-chips { flex-direction: row; flex-wrap: wrap; }
}

/* Lists and cards */
.acp-church-list ul, .acp-cards__list, .acp-notices__list, .acp-contacts ul, .acp-church-cards ul, .acp-grid-gallery { list-style: none; margin: 0; padding: 0; }
.acp-church-list__item, .acp-card, .acp-notice { position: relative; }
.acp-cards__list, .acp-notices__list, .acp-church-cards ul { display: grid; gap: 1.5rem; grid-template-columns: repeat(var(--acp-cols, 3), minmax(0, 1fr)); }
.acp-cols-2 { --acp-cols: 2; } .acp-cols-3 { --acp-cols: 3; } .acp-cols-4 { --acp-cols: 4; }
@media (max-width: 1024px) { .acp-cards__list, .acp-notices__list, .acp-church-cards ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .acp-cards__list, .acp-notices__list, .acp-church-cards ul { grid-template-columns: 1fr; } }
.acp-card__media img, .acp-notice__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Contacts */
.acp-contacts.is-tabbed .acp-contacts__group { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.acp-contacts:not(.is-tabbed) .acp-contacts__tabs { display: none; }

/* Form */
.acp-form__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.acp-form input[type="text"], .acp-form input[type="email"], .acp-form input[type="tel"], .acp-form textarea { width: 100%; }
.acp-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 640px) { .acp-form__row { grid-template-columns: 1fr; } }
.acp-form label { display: block; }

/* Embeds and galleries */
.acp-embed { position: relative; aspect-ratio: 16 / 10; }
.acp-embed iframe { position: absolute; inset: 0; width: 100% !important; height: 100% !important; border: 0; }
.acp-embed > div { position: static !important; padding: 0 !important; height: 100% !important; }
.acp-grid-gallery { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.acp-grid-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.acp-empty { padding: 1rem; border: 1px dashed currentColor; opacity: .7; }
