/* =========================================================
   YMT THE KAYU HALL — component extensions
   ========================================================= */

/* value equation on light sections */
.section--cream .eq-item,
.section--sand .eq-item {
	background: #fff;
	border-color: var(--line-light);
}

.section--cream .eq-item span,
.section--sand .eq-item span {
	color: var(--wood);
}

.section--cream .eq-item svg,
.section--sand .eq-item svg,
.section--cream .eq-op,
.section--sand .eq-op {
	color: var(--bark);
}

.section--cream .eq-result strong,
.section--sand .eq-result strong {
	color: var(--bark);
	border-color: rgba(122, 79, 44, 0.35);
}

/* price summary rows (home featured package) */
.price-rows {
	margin: 28px 0 30px;
	border-top: 1px solid var(--line-dark);
}

.price-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 18px;
	padding: 15px 0;
	border-bottom: 1px solid var(--line-dark);
}

.price-row .set {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--gold);
	min-width: 62px;
}

.price-row .pax {
	flex: 1;
	font-size: 12.5px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--muted-on-dark);
}

.price-row .amt {
	font-family: var(--f-display);
	font-size: clamp(20px, 2.2vw, 26px);
	color: var(--cream);
	line-height: 1;
}

/* comparison table (packages page) */
.cmp-wrap {
	overflow-x: auto;
	border: 1px solid var(--line-light);
	border-radius: var(--radius);
	background: #fff;
}

.cmp {
	width: 100%;
	min-width: 620px;
	border-collapse: collapse;
	font-size: 14.5px;
}

.cmp th,
.cmp td {
	padding: 17px 18px;
	text-align: left;
	border-bottom: 1px solid var(--line-light);
	vertical-align: middle;
}

.cmp thead th {
	font-family: var(--f-body);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--bark);
	background: var(--cream);
}

.cmp thead th.num,
.cmp td.num {
	text-align: center;
}

.cmp tbody tr:last-child td {
	border-bottom: 0;
}

.cmp tbody tr:hover {
	background: rgba(200, 155, 60, 0.07);
}

.cmp .price {
	font-family: var(--f-display);
	font-size: 21px;
	color: var(--bark);
	line-height: 1;
}

.cmp .row-label {
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--text);
}

.cmp .row-label svg {
	width: 18px;
	height: 18px;
	color: var(--bark);
	flex: none;
}

.cmp td.num svg {
	width: 18px;
	height: 18px;
	color: var(--gold);
}

/* contact layout */
.contact-grid {
	display: grid;
	grid-template-columns: 1.15fr 0.85fr;
	gap: clamp(24px, 3vw, 46px);
	align-items: start;
}

.form-card {
	border: 1px solid var(--line-light);
	border-radius: var(--radius);
	background: #fff;
	padding: clamp(24px, 3vw, 40px);
}

.form-status {
	margin-top: 18px;
	padding: 14px 16px;
	border: 1px solid rgba(200, 155, 60, 0.45);
	border-radius: var(--radius);
	background: rgba(200, 155, 60, 0.09);
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--wood);
}

/* food grid modifiers */
.food-grid--2 {
	grid-template-columns: repeat(2, 1fr);
}

.food-grid--3 {
	grid-template-columns: repeat(3, 1fr);
}

/* fine print + utilities */
.fineprint {
	font-size: 12px;
	line-height: 1.7;
	letter-spacing: 0.02em;
	color: var(--muted);
}

.section--dark .fineprint,
.section--dark-2 .fineprint,
.cta-band .fineprint {
	color: rgba(245, 235, 221, 0.5);
}

.mt-16 {
	margin-top: 16px;
}

.mt-24 {
	margin-top: 24px;
}

.mt-32 {
	margin-top: 32px;
}

.mt-48 {
	margin-top: clamp(32px, 4vw, 52px);
}

.mb-0 {
	margin-bottom: 0;
}

/* numbered feature block (event detail pages) */
.step-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(16px, 2vw, 24px);
}

.step {
	padding: clamp(22px, 2.4vw, 32px);
	border: 1px solid var(--line-light);
	border-radius: var(--radius);
	background: #fff;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.section--dark .step,
.section--dark-2 .step {
	background: rgba(255, 255, 255, 0.02);
	border-color: var(--line-dark);
}

.step h3 {
	font-size: 19px;
}

.step p {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.7;
	color: var(--muted);
}

.section--dark .step p,
.section--dark-2 .step p {
	color: var(--muted-on-dark);
}

/* photo strip */
.strip {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(12px, 1.4vw, 18px);
}

.strip figure {
	margin: 0;
	overflow: hidden;
	border-radius: var(--radius);
	border: 1px solid var(--line-dark);
}

.strip img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.strip figure:hover img {
	transform: scale(1.05);
}

/* responsive */
@media (max-width: 1080px) {
	.food-grid--3 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 900px) {
	.contact-grid,
	.step-grid {
		grid-template-columns: 1fr;
	}

	.strip {
		grid-template-columns: repeat(3, 1fr);
	}

	.food-grid--rail {
		display: grid;
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 70%;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		gap: 14px;
		padding-bottom: 12px;
		-webkit-overflow-scrolling: touch;
	}

	.food-grid--rail > * {
		scroll-snap-align: start;
	}
}

@media (max-width: 640px) {
	.food-grid--2,
	.food-grid--3 {
		grid-template-columns: 1fr;
	}

	.food-grid--rail {
		grid-template-columns: none;
		grid-auto-columns: 80%;
	}

	.strip {
		grid-template-columns: 1fr;
	}
}
