/**
 * Baseline front-end styles for Houzez Developments.
 * Kept deliberately neutral/minimal — a site's own theme (Houzez) is
 * expected to layer its own design on top via a child-theme override of
 * these templates; this file just ensures things aren't broken/unstyled
 * out of the box.
 */

.hzd-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

/* Badges */
.hzd-badge {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.hzd-badge--featured { background: #f5b800; color: #1a1a1a; }
.hzd-badge--status { background: #1a1a1a; color: #fff; }

/* Buttons */
.hzd-btn {
	display: inline-block;
	padding: 10px 20px;
	border-radius: 4px;
	text-decoration: none;
	font-weight: 600;
	cursor: pointer;
	border: 1px solid transparent;
}
.hzd-btn--primary { background: #1a73e8; color: #fff; }
.hzd-btn--primary:hover { background: #1558b0; color: #fff; }
.hzd-btn--outline { background: transparent; border-color: #1a73e8; color: #1a73e8; }
.hzd-btn--outline:hover { background: #1a73e8; color: #fff; }

/* Archive filters */
.hzd-archive__filters-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 20px 0 30px;
}
.hzd-archive__search,
.hzd-archive__select {
	padding: 8px 12px;
	border: 1px solid #ddd;
	border-radius: 4px;
}
.hzd-archive__search { flex: 1 1 220px; }

/* Archive / similar-developments grid */
.hzd-archive__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 24px;
	margin-bottom: 30px;
}

.hzd-development-card {
	border: 1px solid #eaeaea;
	border-radius: 8px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	background: #fff;
}
.hzd-development-card--featured { box-shadow: 0 0 0 2px #f5b800; }
.hzd-development-card__thumb { position: relative; display: block; }
.hzd-development-card__thumb img { width: 100%; height: 190px; object-fit: cover; display: block; }
.hzd-development-card__thumb .hzd-badge { position: absolute; top: 10px; left: 10px; }
.hzd-development-card__thumb .hzd-badge--status { left: auto; right: 10px; }
.hzd-development-card__body { padding: 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.hzd-development-card__title { margin: 0; font-size: 18px; }
.hzd-development-card__title a { text-decoration: none; color: inherit; }
.hzd-development-card__location { margin: 0; color: #666; font-size: 14px; }
.hzd-development-card__meta { display: flex; justify-content: space-between; font-size: 14px; color: #333; }

/* Pagination */
.hzd-archive__pagination { display: flex; gap: 6px; flex-wrap: wrap; }
.hzd-archive__pagination .page-numbers {
	display: inline-block;
	padding: 6px 12px;
	border: 1px solid #ddd;
	border-radius: 4px;
	text-decoration: none;
	color: inherit;
}
.hzd-archive__pagination .page-numbers.current { background: #1a73e8; color: #fff; border-color: #1a73e8; }

/* Single development */
.hzd-single__hero { position: relative; }
.hzd-single__hero img { width: 100%; max-height: 480px; object-fit: cover; display: block; }
.hzd-single__hero-badge { position: absolute; bottom: 16px; left: 16px; }

.hzd-single__layout {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 40px;
	margin-top: 30px;
}
@media (max-width: 782px) {
	.hzd-single__layout { grid-template-columns: 1fr; }
}

.hzd-single__title { margin: 0 0 6px; }
.hzd-single__location { color: #666; margin: 0 0 20px; }

.hzd-single__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	padding: 16px 0;
	border-top: 1px solid #eee;
	border-bottom: 1px solid #eee;
	margin-bottom: 20px;
}
.hzd-stat { display: flex; flex-direction: column; }
.hzd-stat__label { font-size: 12px; text-transform: uppercase; color: #999; letter-spacing: 0.04em; }
.hzd-stat__value { font-size: 18px; font-weight: 700; }

.hzd-single__cta-row { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 24px; }

.hzd-single__section { margin: 36px 0; }
.hzd-single__section h2 { margin-bottom: 14px; }

.hzd-gallery__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: 10px;
}
.hzd-gallery__item img { width: 100%; height: 120px; object-fit: cover; border-radius: 4px; display: block; }

.hzd-video__embed iframe { width: 100%; aspect-ratio: 16 / 9; }

.hzd-amenities__list,
.hzd-nearby__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 10px;
}
.hzd-amenities__list li { padding: 8px 12px; background: #f7f7f7; border-radius: 4px; }
.hzd-nearby__list li { display: flex; justify-content: space-between; padding: 8px 12px; background: #f7f7f7; border-radius: 4px; }
.hzd-nearby__distance { color: #666; }

.hzd-map__iframe { width: 100%; height: 340px; border: 0; }
.hzd-map__address { color: #666; }

.hzd-property-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 20px;
}
.hzd-property-card--fallback { border: 1px solid #eaeaea; border-radius: 8px; overflow: hidden; background: #fff; }
.hzd-property-card--fallback img { width: 100%; height: 160px; object-fit: cover; display: block; }
.hzd-property-card__body { padding: 12px; }
.hzd-property-card__title { margin: 0 0 6px; font-size: 15px; }
.hzd-property-card__title a { color: inherit; text-decoration: none; }

.hzd-widget { border: 1px solid #eaeaea; border-radius: 8px; padding: 20px; margin-bottom: 24px; }
.hzd-developer-info__logo { max-width: 120px; height: auto; margin-bottom: 10px; }

.hzd-inquiry-form p { margin: 0 0 12px; }
.hzd-inquiry-form label { display: block; font-weight: 600; margin-bottom: 4px; }
.hzd-inquiry-form input,
.hzd-inquiry-form textarea {
	width: 100%;
	padding: 8px 10px;
	border: 1px solid #ddd;
	border-radius: 4px;
}

.hzd-notice { padding: 10px 14px; border-radius: 4px; margin-bottom: 16px; }
.hzd-notice--success { background: #e6f4ea; color: #1e7e34; }
.hzd-notice--error { background: #fdecea; color: #b32d2e; }

.hzd-archive__empty { padding: 40px 0; text-align: center; color: #666; }

/* Gallery lightbox (progressive enhancement — see assets/js/frontend.js) */
.hzd-lightbox {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.9);
	z-index: 100000;
	align-items: center;
	justify-content: center;
}
.hzd-lightbox.is-open { display: flex; }
.hzd-lightbox__image { max-width: 90vw; max-height: 85vh; object-fit: contain; }
.hzd-lightbox__close,
.hzd-lightbox__prev,
.hzd-lightbox__next {
	position: absolute;
	background: transparent;
	border: none;
	color: #fff;
	font-size: 32px;
	cursor: pointer;
	line-height: 1;
	padding: 10px;
}
.hzd-lightbox__close { top: 16px; right: 20px; }
.hzd-lightbox__prev { left: 20px; top: 50%; transform: translateY(-50%); }
.hzd-lightbox__next { right: 20px; top: 50%; transform: translateY(-50%); }

/* Shortcode grid column overrides (Module 6) — the archive's own grid
   stays auto-fill for a natural responsive layout; shortcodes accept an
   explicit "columns" attribute instead, since an embedded grid is often
   in a narrower content column where auto-fill would just collapse to 1
   anyway. */
.hzd-grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.hzd-grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
.hzd-grid--cols-4 { grid-template-columns: repeat(4, 1fr); }
.hzd-grid--cols-5 { grid-template-columns: repeat(5, 1fr); }
.hzd-grid--cols-6 { grid-template-columns: repeat(6, 1fr); }
@media (max-width: 900px) {
	.hzd-grid--cols-3, .hzd-grid--cols-4, .hzd-grid--cols-5, .hzd-grid--cols-6 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.hzd-grid--cols-2, .hzd-grid--cols-3, .hzd-grid--cols-4, .hzd-grid--cols-5, .hzd-grid--cols-6 { grid-template-columns: 1fr; }
}

.hzd-shortcode-empty { color: #666; padding: 20px 0; }
.hzd-shortcode-notice { background: #fdecea; color: #b32d2e; padding: 10px 14px; border-radius: 4px; }

/* AJAX (Module 7) */
.hzd-archive__grid.is-loading { opacity: 0.5; pointer-events: none; transition: opacity 0.15s ease; }
.hzd-load-more { display: block; margin: 24px auto 0; }
.hzd-load-more[disabled] { opacity: 0.6; cursor: default; }

/* Elementor "Map of Developments" widget (Module 9) */
.hzd-map-widget { width: 100%; background: #f5f5f5; border-radius: 4px; }
.hzd-map-widget__empty { padding: 40px; text-align: center; color: #666; }

/* "Featured Development" Gutenberg block (Module 10) — spotlights the
   same development-card partial used everywhere else, just capped to a
   readable width so a single card doesn't stretch edge-to-edge. */
.hzd-featured-development-block { max-width: 420px; }

/* Breadcrumbs fallback (Module 13 — only rendered by this plugin's own
   markup when neither Yoast nor Rank Math supplies breadcrumbs). */
.hzd-breadcrumbs { font-size: 13px; color: #666; margin-bottom: 16px; }
.hzd-breadcrumbs a { color: #666; text-decoration: none; }
.hzd-breadcrumbs a:hover { text-decoration: underline; }
.hzd-breadcrumbs__sep { margin: 0 4px; color: #ccc; }

/* [development_slider] (Module 6) */
.hzd-slider { position: relative; display: flex; align-items: center; gap: 8px; }
.hzd-slider__track {
	display: flex;
	gap: 20px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding: 4px;
}
.hzd-slider__slide {
	flex: 0 0 280px;
	scroll-snap-align: start;
}
.hzd-slider__prev,
.hzd-slider__next {
	flex: 0 0 auto;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1px solid #ddd;
	background: #fff;
	font-size: 20px;
	cursor: pointer;
	z-index: 1;
}
