/**
 * GraceEngine-specific template styles.
 *
 * Loaded only when GraceEngine plugin is active.
 *
 * @package GraceTheme
 */

.gt-ge-sermon,
.gt-ge-event,
.gt-ge-devotional,
.gt-ge-person,
.gt-ge-course,
.gt-ge-lesson,
.gt-ge-location {
	max-width: var(--gt-content-width);
	margin: 0 auto;
	padding: var(--space-8) var(--space-4);
}

/* Slightly narrower container for sermon single so content isn’t full page width */
.gt-sermon-single .gt-ge-sermon {
	max-width: min(var(--gt-content-width), 720px);
}

/* Single sermon — video embed */
.gt-sermon-single .gt-sermon-header {
	margin-bottom: var(--space-6);
}

.gt-sermon-single .gt-sermon-series {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--terracotta, #c1694f);
	margin-bottom: var(--space-2);
}

.gt-sermon-single .gt-sermon-meta {
	font-size: 0.9rem;
	color: var(--text-light, #6b5b52);
	margin-top: var(--space-2);
}

.gt-sermon-video-wrap {
	width: 100%;
	margin-bottom: var(--space-8);
	border-radius: 8px;
	overflow: hidden;
	background: var(--espresso, #2c1810);
}

.gt-sermon-video-embed {
	position: relative;
	width: 100%;
	padding-bottom: 56.25%; /* 16:9 */
	height: 0;
}

.gt-sermon-video-embed iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.gt-sermon-video-fallback {
	padding: var(--space-6);
	text-align: center;
}

.gt-sermon-content {
	margin-top: var(--space-6);
}

/* ── Directory (staff + ministries) ── */
.directory-section.gt-directory-section,
.gt-directory-section {
	background: var(--cream);
	padding: 80px 48px 100px;
}

/* Centered container so Directory content stays in the middle on wide screens */
.directory-inner.gt-directory-inner {
	max-width: var(--gt-directory-width, 1200px);
	margin-left: auto;
	margin-right: auto;
}

.directory-header.gt-directory-header {
	margin-bottom: 40px;
}

.directory-subtitle.gt-directory-subtitle {
	font-size: 0.95rem;
	color: var(--text-light);
	max-width: 520px;
	line-height: 1.7;
	margin-top: 12px;
	margin-bottom: 0;
}

.directory-filters.gt-directory-filters,
.gt-directory-filters {
	margin-bottom: 40px;
}

.directory-filter-list.gt-directory-filter-list,
.gt-directory-filter-list {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.directory-filter-link.gt-directory-filter-link,
.gt-directory-filter-link {
	display: inline-block;
	padding: 10px 20px;
	border-radius: 4px;
	background: rgba(44, 24, 16, 0.06);
	color: var(--espresso);
	font-size: 0.8rem;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}

.directory-filter-link:hover,
.gt-directory-filter-link:hover {
	background: rgba(44, 24, 16, 0.1);
	color: var(--espresso);
}

.directory-filter-link.is-active,
.gt-directory-filter-link.is-active {
	background: var(--terracotta);
	color: var(--cream);
}

.directory-ministries-wrap.gt-directory-ministries-wrap,
.gt-directory-ministries-wrap {
	margin-top: 48px;
}

.directory-staff-wrap.gt-directory-staff-wrap,
.gt-directory-staff-wrap {
	margin-top: 56px;
}

.directory-section-title.gt-directory-section-title,
.gt-directory-section-title {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--espresso);
	margin-bottom: 28px;
}

/* Directory: equal card sizes (no featured slot — avoids one huge card when first has no photo) */
.directory-grid.directory-ministry-grid {
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 24px;
}

/* Person grid: horizontal cards, max 2 per row on wide screens */
.directory-grid.directory-person-grid {
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 20px;
}

/* Ministry cards are not links */
.directory-ministry-card-no-link.sermon-card,
.directory-ministry-card-no-link.gt-sermon-card {
	cursor: default;
	pointer-events: auto;
}

.directory-ministry-card-no-link.sermon-card:hover,
.directory-ministry-card-no-link.gt-sermon-card:hover {
	transform: none;
	box-shadow: 0 2px 16px rgba(44, 24, 16, 0.06);
}

/* ── Person card (horizontal: photo left, info right) ── */
.gt-person-card {
	display: flex;
	flex-direction: row;
	align-items: stretch;
	background: white;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 16px rgba(44, 24, 16, 0.06);
	transition: box-shadow 0.25s;
}

.gt-person-card:hover {
	box-shadow: 0 8px 32px rgba(44, 24, 16, 0.12);
}

.gt-person-photo {
	width: 110px;
	flex-shrink: 0;
	background: linear-gradient(135deg, var(--espresso) 0%, var(--espresso-mid, #5c3320) 100%);
	overflow: hidden;
	position: relative;
}

.gt-person-photo img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	display: block;
}

.gt-person-photo-placeholder {
	position: absolute;
	inset: 0;
	opacity: 0.3;
	background: radial-gradient(ellipse at 30% 70%, #C1694F 0%, transparent 60%);
}

.gt-person-info {
	flex: 1;
	min-width: 0;
	padding: 18px 20px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
}

.gt-person-role {
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--terracotta);
	margin-bottom: 2px;
}

.gt-person-name {
	font-family: var(--font-display);
	font-weight: 700;
	line-height: 1.3;
	font-size: 1rem;
}

.gt-person-name a {
	color: var(--espresso);
	text-decoration: none;
}

.gt-person-name a:hover {
	color: var(--terracotta);
	text-decoration: none;
}

.gt-person-email {
	margin-top: 6px;
}

.gt-person-email a {
	color: var(--terracotta);
	text-decoration: none;
	font-size: 0.78rem;
}

.gt-person-email a:hover {
	text-decoration: underline;
}

/* ── Locations grid & card ── */
.gt-locations-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 24px;
}

.gt-location-card {
	background: white;
	border-radius: 8px;
	padding: 28px;
	box-shadow: 0 2px 16px rgba(44, 24, 16, 0.06);
	display: flex;
	flex-direction: column;
}

.gt-location-name {
	font-family: var(--font-display);
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--espresso);
	margin-bottom: 12px;
	line-height: 1.3;
}

.gt-location-address,
.gt-location-phone {
	font-size: 0.9rem;
	color: var(--text-light);
	line-height: 1.6;
	margin-bottom: 6px;
}

.gt-location-hours {
	margin-bottom: 10px;
}

.gt-hours-label {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--espresso);
	margin-bottom: 4px;
}

.gt-hours-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gt-hours-row {
	display: flex;
	align-items: baseline;
	gap: 8px;
	font-size: 0.875rem;
	color: var(--text-light);
	line-height: 1.7;
}

.gt-hours-day {
	font-weight: 600;
	color: var(--text);
	min-width: 80px;
}

.gt-hours-time {
	color: var(--text-light);
}

.gt-hours-tag {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--terracotta);
	background: rgba(184, 85, 57, 0.1);
	padding: 1px 6px;
	border-radius: 3px;
}

.gt-location-phone a {
	color: var(--terracotta);
	text-decoration: none;
}

.gt-location-phone a:hover {
	text-decoration: underline;
}

.gt-location-card .gt-btn,
.gt-location-card .gt-btn-primary {
	margin-top: 20px;
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 20px;
	background: var(--terracotta);
	color: var(--cream);
	border-radius: 4px;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background 0.2s;
}

.gt-location-card .gt-btn:hover,
.gt-location-card .gt-btn-primary:hover {
	background: var(--espresso);
	color: var(--cream);
}

/* ── Devotional single ── */
.gt-devotional-single .gt-ge-devotional {
	max-width: min(var(--gt-content-width), 720px);
}

.gt-devotional-single .gt-devotional-header {
	margin-bottom: var(--space-6);
}

.gt-devotional-single .gt-devotional-topic {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--terracotta);
	margin-bottom: var(--space-2);
}

.gt-devotional-single .gt-devotional-meta {
	font-size: 0.9rem;
	color: var(--text-light);
	margin-top: var(--space-2);
}

.gt-devotional-single .gt-devotional-author {
	font-weight: 600;
	color: var(--espresso);
}

.gt-devotional-audio-wrap {
	margin-bottom: var(--space-8);
}

.gt-devotional-audio {
	width: 100%;
	border-radius: 4px;
}

.gt-devotional-content {
	margin-top: var(--space-6);
}

/* Author bio widget — bleed slightly wider than the 720px content column */
.gt-devotional-below-content {
	margin-left: -6rem;
	margin-right: -6rem;
	margin-top: var(--space-8);
}

@media (max-width: 600px) {
	.gt-devotional-below-content {
		margin-left: 0;
		margin-right: 0;
	}
}

@media (max-width: 782px) {
	.directory-section.gt-directory-section,
	.gt-directory-section {
		padding: 48px 24px 64px;
	}
	.directory-header.gt-directory-header {
		margin-bottom: 32px;
	}
	.directory-ministries-wrap.gt-directory-ministries-wrap,
	.gt-directory-ministries-wrap {
		margin-top: 36px;
	}
	.directory-staff-wrap.gt-directory-staff-wrap,
	.gt-directory-staff-wrap {
		margin-top: 44px;
	}
	.directory-grid.directory-ministry-grid,
	.directory-grid.directory-person-grid {
		grid-template-columns: 1fr;
	}
}
