/**
 * Frontend styles for camp archive and single-camp templates.
 *
 * Deliberately light: the active theme controls typography, colours and container widths.
 * Everything here is layout/structure that themes would otherwise have to rewrite.
 */

/* Archive ------------------------------------------------------------------ */
.wc-camp-archive__header {
	margin-bottom: 2rem;
}

.wc-camp-archive__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 1.5rem;
}

.wc-camp-archive__empty {
	padding: 2rem 0;
	font-style: italic;
}

/* Card --------------------------------------------------------------------- */
.wc-camp-card {
	display: flex;
	flex-direction: column;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 6px;
	overflow: hidden;
	background: #fff;
}

.wc-camp-card--closed {
	opacity: 0.7;
}

.wc-camp-card__image {
	display: block;
	line-height: 0;
}

.wc-camp-card__image img {
	width: 100%;
	height: auto;
	display: block;
}

.wc-camp-card__body {
	padding: 1rem 1.25rem 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	flex: 1 1 auto;
}

.wc-camp-card__title {
	margin: 0;
	font-size: 1.25rem;
	line-height: 1.3;
}

.wc-camp-card__title a {
	text-decoration: none;
	color: inherit;
}

.wc-camp-card__meta {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	font-size: 0.9em;
	opacity: 0.8;
}

.wc-camp-card__meta li {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.wc-camp-card__excerpt {
	margin: 0;
}

.wc-camp-card__footer {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-top: 0.5rem;
}

.wc-camp-card__price-from {
	display: block;
	font-size: 0.75em;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	opacity: 0.7;
}

.wc-camp-card__cta {
	white-space: nowrap;
}

/* Single ------------------------------------------------------------------- */
.wc-camp__header {
	margin-bottom: 2rem;
}

.wc-camp__image {
	margin: 1rem 0;
}

.wc-camp__image img {
	max-width: 100%;
	height: auto;
	display: block;
}

.wc-camp__meta {
	list-style: none;
	padding: 0;
	margin: 1rem 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.25rem;
	font-size: 0.95em;
}

.wc-camp__meta-item {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.wc-camp__meta-closed {
	color: #b32d2e;
	font-weight: 600;
}

.wc-camp section {
	margin: 2rem 0;
}

.wc-camp section h2 {
	margin-top: 0;
}

/* What's included list ----------------------------------------------------- */
.wc-camp-whats-included {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 0.5rem 1rem;
}

.wc-camp-whats-included__item {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
}

.wc-camp-whats-included__icon {
	flex: 0 0 auto;
	margin-top: 0.1em;
}

/* Sessions ----------------------------------------------------------------- */
.wc-camp-sessions {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.wc-camp-sessions__day {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	padding: 0.5rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.wc-camp-sessions__date {
	font-weight: 600;
	min-width: 10rem;
}

.wc-camp-sessions__slots {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.75rem;
}

.wc-camp-sessions__slot {
	display: inline-flex;
	gap: 0.35rem;
}

.wc-camp-sessions__label {
	opacity: 0.7;
	font-style: italic;
}

/* Coaches ------------------------------------------------------------------ */
.wc-camp-coaches {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 1.5rem;
}

.wc-camp-coaches__item {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.wc-camp-coaches__photo img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 4px;
}

.wc-camp-coaches__name {
	margin: 0;
	font-size: 1.1rem;
}

.wc-camp-coaches__tagline {
	margin: 0;
	font-style: italic;
	opacity: 0.8;
}

/* Price table -------------------------------------------------------------- */
.wc-camp-price-table {
	width: 100%;
	max-width: 480px;
	border-collapse: collapse;
}

.wc-camp-price-table th,
.wc-camp-price-table td {
	padding: 0.65rem 0.75rem;
	text-align: left;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.wc-camp-price-table th small {
	display: block;
	font-weight: 400;
	opacity: 0.7;
}

.wc-camp-price-table__price {
	text-align: right;
	font-weight: 600;
	white-space: nowrap;
}

.wc-camp-price-table__badge {
	display: inline-block;
	margin-left: 0.5rem;
	padding: 0.15rem 0.45rem;
	font-size: 0.75em;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	background: #e7f6ec;
	color: #1a6b3a;
	border-radius: 3px;
}

.wc-camp-price-table__deposit {
	margin-top: 0.75rem;
	font-size: 0.95em;
	opacity: 0.85;
}

/* Book button -------------------------------------------------------------- */
.wc-camp__book {
	margin-top: 2rem;
	padding: 1.25rem;
	background: rgba(0, 0, 0, 0.03);
	border-radius: 6px;
}

.wc-camp__book-button {
	font-size: 1.1rem;
	padding: 0.75rem 1.5rem;
}

.wc-camp__book-button[disabled] {
	cursor: not-allowed;
	opacity: 0.6;
}

.wc-camp__book-note {
	margin: 0.5rem 0 0;
	font-size: 0.9em;
	font-style: italic;
	opacity: 0.7;
}
