/**
 * Template-Specific Styles
 *
 * Layout rules for page templates.
 * Uses CSS custom properties from variables.css.
 * Mobile-first responsive approach.
 * BEM naming: .em-template-{name}__element
 *
 * @package EpicMarks
 */

/* ==========================================================================
   Site Main - Common Wrapper
   ========================================================================== */

.em-site-main {
	min-height: 50vh;
}

/* ==========================================================================
   Front Page Template
   ========================================================================== */

.em-front-page {
	/* Full-width canvas for block composition */
}

/* ==========================================================================
   Default Page Template
   ========================================================================== */

.em-template-page {
	padding-block: var(--em-space-xl);
}

.em-page {
	max-width: var(--em-content-width, 65ch);
	margin-inline: auto;
}

.em-page__content {
	margin-top: var(--em-space-lg);
}

/* ==========================================================================
   Page Header Component
   ========================================================================== */

.em-page-header {
	margin-bottom: var(--em-space-lg);
}

.em-page-header__title {
	font-size: var(--em-font-size-3xl);
	font-weight: 700;
	line-height: 1.2;
	color: var(--em-color-text);
}

.em-page-header__intro {
	margin-top: var(--em-space-sm);
	font-size: var(--em-font-size-lg);
	color: var(--em-color-text-muted);
}

/* ==========================================================================
   Breadcrumb Component
   ========================================================================== */

.em-breadcrumb {
	padding-block: var(--em-space-sm);
	background-color: var(--em-color-surface);
}

.em-breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--em-space-xs);
	list-style: none;
	padding: 0;
	margin: 0;
	padding-inline: var(--em-space-md);
	max-width: var(--em-container-width);
	margin-inline: auto;
	font-size: var(--em-font-size-sm);
}

.em-breadcrumb__item {
	display: flex;
	align-items: center;
	gap: var(--em-space-xs);
}

.em-breadcrumb__link {
	color: var(--em-color-primary);
	text-decoration: none;
}

.em-breadcrumb__link:hover {
	text-decoration: underline;
}

.em-breadcrumb__item--current {
	color: var(--em-color-text-muted);
}

.em-breadcrumb__separator {
	color: var(--em-color-border);
}

/* ==========================================================================
   Service Template
   ========================================================================== */

.em-template-service__content {
	/* Blocks handle their own layout */
}

/* ==========================================================================
   Contact Template
   ========================================================================== */

.em-template-contact {
	/* Full-width canvas for block composition - blocks handle their own layout */
}

.em-template-contact .wp-block-table {
	font-size: var(--em-font-size-sm);
}

.em-template-contact .wp-block-table td {
	padding: var(--em-space-xs) var(--em-space-sm);
}

/* ==========================================================================
   About Template
   ========================================================================== */

.em-template-about__content {
	/* Full-width for block composition */
}

/* ==========================================================================
   Help Center Template
   ========================================================================== */

.em-template-help__content {
	/* Blocks handle their own layout */
}

/* ==========================================================================
   Builder Template (Placeholder)
   ========================================================================== */

.em-template-builder {
	padding-block: var(--em-space-xl);
}

.em-template-builder__content {
	max-width: var(--em-container-width);
	margin-inline: auto;
}

.em-template-builder__placeholder {
	text-align: center;
	padding: var(--em-space-3xl) var(--em-space-lg);
	background-color: var(--em-color-surface);
	border-radius: var(--em-radius-lg);
}

.em-template-builder__title {
	font-size: var(--em-font-size-2xl);
	margin-bottom: var(--em-space-md);
}

.em-template-builder__message {
	color: var(--em-color-text-muted);
	font-size: var(--em-font-size-lg);
}

/* ==========================================================================
   Brand Template
   ========================================================================== */

.em-template-brand__content {
	/* Full-width for block composition with products */
}

/* ==========================================================================
   Quote Template
   ========================================================================== */

.em-template-quote {
	padding-block: var(--em-space-xl);
}

.em-template-quote__content {
	max-width: var(--em-content-width, 65ch);
	margin-inline: auto;
}

.em-template-quote__body {
	margin-top: var(--em-space-lg);
}

/* ==========================================================================
   404 Error Template
   ========================================================================== */

.em-template-404 {
	padding-block: var(--em-space-3xl);
}

.em-error-404 {
	max-width: var(--em-content-width, 65ch);
	margin-inline: auto;
	text-align: center;
}

.em-error-404__title {
	font-size: var(--em-font-size-3xl);
	margin-bottom: var(--em-space-lg);
}

.em-error-404__content {
	margin-top: var(--em-space-xl);
}

.em-error-404__content p {
	font-size: var(--em-font-size-lg);
	color: var(--em-color-text-muted);
	margin-bottom: var(--em-space-lg);
}

.em-error-404__links {
	margin-top: var(--em-space-xl);
	text-align: left;
}

.em-error-404__links h2 {
	font-size: var(--em-font-size-lg);
	margin-bottom: var(--em-space-md);
}

.em-error-404__menu {
	list-style: none;
	padding: 0;
	margin: 0;
}

.em-error-404__menu li {
	margin-bottom: var(--em-space-xs);
}

.em-error-404__menu a {
	color: var(--em-color-primary);
	text-decoration: none;
}

.em-error-404__menu a:hover {
	text-decoration: underline;
}

/* ==========================================================================
   Search Results Template
   ========================================================================== */

.em-template-search {
	padding-block: var(--em-space-xl);
}

.em-search-header {
	margin-bottom: var(--em-space-xl);
}

.em-search-header__title {
	font-size: var(--em-font-size-2xl);
}

.em-search-header__title span {
	color: var(--em-color-primary);
}

.em-search-results {
	display: grid;
	gap: var(--em-space-lg);
}

.em-search-result {
	padding: var(--em-space-lg);
	background-color: var(--em-color-surface);
	border-radius: var(--em-radius-md);
}

.em-search-result__title {
	font-size: var(--em-font-size-xl);
	margin-bottom: var(--em-space-sm);
}

.em-search-result__title a {
	color: var(--em-color-text);
	text-decoration: none;
}

.em-search-result__title a:hover {
	color: var(--em-color-primary);
}

.em-search-result__excerpt {
	color: var(--em-color-text-muted);
	margin-bottom: var(--em-space-sm);
}

.em-search-result__type {
	font-size: var(--em-font-size-sm);
	color: var(--em-color-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* ==========================================================================
   Singular Template (Fallback)
   ========================================================================== */

.em-template-singular {
	padding-block: var(--em-space-xl);
}

/* ==========================================================================
   No Results Component
   ========================================================================== */

.em-no-results {
	max-width: var(--em-content-width, 65ch);
	margin-inline: auto;
	text-align: center;
	padding: var(--em-space-3xl) var(--em-space-lg);
}

.em-no-results__title {
	font-size: var(--em-font-size-2xl);
	margin-bottom: var(--em-space-lg);
}

.em-no-results__content p {
	color: var(--em-color-text-muted);
	margin-bottom: var(--em-space-lg);
}

/* ==========================================================================
   Social Share Component
   ========================================================================== */

.em-social-share {
	display: flex;
	align-items: center;
	gap: var(--em-space-md);
	padding-block: var(--em-space-md);
}

.em-social-share__label {
	font-size: var(--em-font-size-sm);
	font-weight: 500;
	color: var(--em-color-text-muted);
}

.em-social-share__list {
	display: flex;
	gap: var(--em-space-sm);
	list-style: none;
	padding: 0;
	margin: 0;
}

.em-social-share__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	background-color: var(--em-color-surface);
	color: var(--em-color-text);
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.em-social-share__link:hover {
	background-color: var(--em-color-primary);
	color: var(--em-color-white, #fff);
}

.em-social-share__icon {
	font-weight: 700;
}

/* ==========================================================================
   Responsive Adjustments
   ========================================================================== */

@media (min-width: 768px) {
	.em-page-header__title {
		font-size: var(--em-font-size-4xl);
	}

	.em-error-404__title {
		font-size: var(--em-font-size-4xl);
	}

	.em-search-header__title {
		font-size: var(--em-font-size-3xl);
	}
}

/* Equal height tip boxes in columns */
.wp-block-columns.is-layout-flex > .wp-block-column {
	display: flex;
	flex-direction: column;
}

.wp-block-columns.is-layout-flex > .wp-block-column > .wp-block-group {
	flex: 1;
	display: flex;
	flex-direction: column;
}

.wp-block-columns.is-layout-flex > .wp-block-column > .wp-block-group > .wp-block-group__inner-container {
	flex: 1;
	display: flex;
	flex-direction: column;
}
