.horb-section,
.horb-section * {
	box-sizing: border-box;
}

.horb-section {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
	padding: 88px 0;
	overflow: hidden;
}

.horb-inner {
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 5vw;
}

.horb-tag {
	text-align: center;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 3px;
	text-transform: uppercase;
	margin: 0 0 22px;
}

.horb-title {
	font-family: 'Playfair Display', Georgia, serif;
	text-align: center;
	font-size: clamp(32px, 4.5vw, 52px);
	line-height: 1.2;
	font-weight: 500;
	margin: 0 0 28px;
}

.horb-quote {
	font-family: 'Playfair Display', Georgia, serif;
	font-style: italic;
	text-align: center;
	font-size: clamp(16px, 2vw, 19px);
	line-height: 1.7;
	max-width: 700px;
	margin: 0 auto 62px;
}

.horb-grid {
	display: grid;
	grid-template-columns: repeat(var(--horb-columns, 4), minmax(0, 1fr));
	gap: 28px;
	width: 100%;
}

.horb-card {
	display: block;
	min-width: 0;
	text-decoration: none;
	color: inherit;
}

.horb-img-wrap {
	width: 100%;
	aspect-ratio: 4 / 5;
	border-radius: 10px;
	overflow: hidden;
	background: rgba(0,0,0,.05);
	box-shadow: 0 14px 30px rgba(0,0,0,.1);
	transition: transform .45s cubic-bezier(.4,0,.2,1), box-shadow .45s ease;
}

.horb-img-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .6s ease;
}

.horb-section.horb-hover-on .horb-card:hover .horb-img-wrap {
	transform: translateY(-8px);
	box-shadow: 0 26px 46px rgba(0,0,0,.2);
}
.horb-section.horb-hover-on .horb-card:hover .horb-img-wrap img {
	transform: scale(1.06);
}

.horb-label {
	margin: 18px 0 0;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.horb-name {
	margin: 6px 0 0;
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 19px;
	line-height: 1.35;
	font-weight: 500;
	transition: color .3s ease;
}

/* =========================
   ENTRANCE ANIMATION (opt-in)
   ========================= */

.horb-section.horb-anim-on .horb-tag,
.horb-section.horb-anim-on .horb-title,
.horb-section.horb-anim-on .horb-quote,
.horb-section.horb-anim-on .horb-card {
	opacity: 0;
	animation: horbFadeUp .8s ease forwards;
}
.horb-section.horb-anim-on .horb-title { animation-delay: .1s; }
.horb-section.horb-anim-on .horb-quote { animation-delay: .2s; }
.horb-section.horb-anim-on .horb-card:nth-child(1) { animation-delay: .3s; }
.horb-section.horb-anim-on .horb-card:nth-child(2) { animation-delay: .4s; }
.horb-section.horb-anim-on .horb-card:nth-child(3) { animation-delay: .5s; }
.horb-section.horb-anim-on .horb-card:nth-child(4) { animation-delay: .6s; }
.horb-section.horb-anim-on .horb-card:nth-child(n+5) { animation-delay: .7s; }

@keyframes horbFadeUp {
	from { opacity: 0; transform: translateY(20px); }
	to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1000px) {
	.horb-section { padding: 68px 0; }
	.horb-inner { padding: 0 4vw; }
	.horb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
}

/* =========================
   MOBILE: swipe carousel, one card visible
   ========================= */

@media (max-width: 600px) {
	.horb-section {
		width: 100vw;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		padding: 52px 0 58px;
	}

	.horb-inner { width: 100%; max-width: none; padding: 0; }

	.horb-tag { padding: 0 20px; font-size: 9px; letter-spacing: 2.2px; margin-bottom: 17px; }
	.horb-title { padding: 0 18px; font-size: 34px; line-height: 1.18; margin-bottom: 20px; }
	.horb-quote { padding: 0 24px; font-size: 15px; line-height: 1.65; margin-bottom: 34px; }

	.horb-grid {
		display: flex;
		width: 100%;
		gap: 0;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		overscroll-behavior-x: contain;
		padding: 0;
	}
	.horb-grid::-webkit-scrollbar { display: none; }

	.horb-card {
		flex: 0 0 100%;
		width: 100%;
		max-width: 100%;
		padding: 0 18px;
		scroll-snap-align: center;
		scroll-snap-stop: always;
		opacity: 1 !important;
		animation: none !important;
	}

	.horb-img-wrap { width: 100%; aspect-ratio: 4 / 5; border-radius: 12px; box-shadow: 0 16px 34px rgba(0,0,0,.12); }
	.horb-section.horb-hover-on .horb-card:hover .horb-img-wrap { transform: none; box-shadow: 0 16px 34px rgba(0,0,0,.12); }
	.horb-section.horb-hover-on .horb-card:hover .horb-img-wrap img { transform: none; }

	.horb-label { margin-top: 15px; font-size: 9px; letter-spacing: 1.8px; }
	.horb-name { font-size: 20px; margin-top: 5px; }
}

@media (max-width: 360px) {
	.horb-section { padding-top: 44px; }
	.horb-title { font-size: 31px; }
	.horb-quote { font-size: 14px; padding: 0 20px; }
	.horb-card { padding: 0 14px; }
}

@media (prefers-reduced-motion: reduce) {
	.horb-tag, .horb-title, .horb-quote, .horb-card {
		animation: none !important;
		opacity: 1 !important;
	}
	.horb-img-wrap, .horb-img-wrap img, .horb-name {
		transition: none !important;
	}
	.horb-grid { scroll-behavior: auto !important; }
}
