/* ==========================================================================
   Responsive Styles
   ========================================================================== */

/* Tablet: 768px – 1199px
   ========================================================================== */

@media (max-width: 1199px) {

	/* Navigation */
	.kv-nav-link {
		font-size: 0.75rem;
		padding: 10px 10px;
	}

	.kv-mega-dropdown__inner {
		padding: 24px 20px;
	}

	.kv-mega-dropdown__columns {
		gap: 20px;
	}

	.kv-header-main__inner {
		gap: 16px;
	}

	/* Utility Bar */
	.kv-utility-bar__item--address,
	.kv-utility-bar__item--hours {
		display: none;
	}

	/* Grids */
	.kv-grid--4 {
		grid-template-columns: repeat(2, 1fr);
	}

	/* Footer */
	.kv-footer-main__grid {
		grid-template-columns: 1fr 1fr;
		gap: 30px;
	}

	.kv-footer-col--brand {
		grid-column: 1 / -1;
	}

	/* Events */
	.kv-events-showcase__grid--4 {
		grid-template-columns: repeat(2, 1fr);
	}

	/* Featured Cards */
	.kv-featured-cards--4col {
		grid-template-columns: repeat(2, 1fr);
	}

	/* Places */
	.kv-places-directory__grid--4 {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Mobile: below 768px
   ========================================================================== */

@media (max-width: 767px) {

	/* Utility Bar */
	.kv-utility-bar {
		display: none;
	}

	/* Header */
	.kv-header-main__inner {
		padding-top: 10px;
		padding-bottom: 10px;
	}

	.kv-header-main__logo img,
	.kv-header-main__logo .custom-logo {
		max-height: 70px;
	}

	.kv-site-title__name {
		font-size: 1.375rem;
	}

	/* Desktop nav hidden, mobile toggle shown */
	.kv-main-nav {
		display: none;
	}

	.kv-mobile-toggle {
		display: flex;
	}

	.kv-mobile-nav {
		display: block;
	}

	/* Sticky header offset */
	.site-header.is-sticky + .site-main,
	.site-header.is-sticky + main {
		padding-top: 70px;
	}

	.site-header.is-sticky .kv-header-main__logo img,
	.site-header.is-sticky .kv-header-main__logo .custom-logo {
		max-height: 50px;
	}

	/* Search Overlay */
	.kv-search-form {
		flex-direction: column;
	}

	.kv-search-form__submit {
		width: 100%;
	}

	/* Section Padding */
	.kv-section {
		padding: 48px 0;
	}

	/* Typography */
	h1 { font-size: 1.75rem; }
	h2 { font-size: 1.5rem; }
	h3 { font-size: 1.25rem; }

	/* Grids */
	.kv-grid--2,
	.kv-grid--3,
	.kv-grid--4 {
		grid-template-columns: 1fr;
	}

	/* Footer */
	.kv-footer-main {
		padding: 40px 0;
	}

	.kv-footer-main__grid {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.kv-footer-col--brand {
		text-align: center;
	}

	.kv-footer-social {
		justify-content: center;
	}

	.kv-footer-bottom__inner {
		flex-direction: column;
		text-align: center;
		gap: 12px;
	}

	.kv-footer-bottom__links {
		flex-wrap: wrap;
		justify-content: center;
	}

	/* Events */
	.kv-events-showcase {
		padding: 40px 0;
	}

	.kv-events-showcase__grid,
	.kv-events-showcase__grid--2,
	.kv-events-showcase__grid--3,
	.kv-events-showcase__grid--4 {
		grid-template-columns: 1fr;
	}

	.kv-events-showcase__featured-layout {
		grid-template-columns: 1fr;
	}

	.kv-events-showcase--primary {
		padding: 40px 20px;
	}

	/* Featured Cards */
	.kv-featured-cards,
	.kv-featured-cards--2col,
	.kv-featured-cards--3col,
	.kv-featured-cards--4col {
		grid-template-columns: 1fr;
	}

	/* Places Directory */
	.kv-places-directory__grid,
	.kv-places-directory__grid--2,
	.kv-places-directory__grid--3,
	.kv-places-directory__grid--4 {
		grid-template-columns: 1fr;
	}

	.kv-places-directory__grid--list .kv-place-card {
		grid-template-columns: 1fr;
	}

	.kv-places-directory__filters {
		flex-direction: column;
	}

	.kv-places-directory__search {
		max-width: 100%;
	}

	/* Newsletter Widget */
	.kv-newsletter-widget {
		padding: 40px 24px;
	}

	.kv-newsletter-widget__inner {
		flex-direction: column;
		text-align: center;
		gap: 24px;
	}

	.kv-newsletter-widget__form {
		flex-direction: column;
		max-width: 100%;
		width: 100%;
	}

	/* Page Header */
	.page-header {
		padding: 24px 0 20px;
		margin-bottom: 20px;
	}

	/* Cards */
	.kv-card__content {
		padding: 16px;
	}

	/* Site Main */
	.site-main .kv-container {
		padding-top: 20px;
		padding-bottom: 40px;
	}

	/* Mobile Submenu Toggle */
	.kv-mobile-submenu-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		border: none;
		background: none;
		cursor: pointer;
		color: var(--kv-text-light);
		transition: transform 0.3s ease;
		padding: 0;
		position: absolute;
		right: 0;
		top: 2px;
	}

	.kv-mobile-nav__list .menu-item-has-children {
		position: relative;
	}

	.kv-mobile-nav__list .menu-item-has-children > a {
		padding-right: 50px;
	}

	.kv-mobile-nav__list .menu-item-has-children > a::after {
		display: none;
	}

	.is-expanded > .kv-mobile-submenu-toggle {
		transform: rotate(180deg);
	}

	/* Pagination */
	.pagination {
		padding: 24px 0;
	}
}

/* Small Mobile: below 480px
   ========================================================================== */

@media (max-width: 479px) {

	.kv-container {
		padding-left: 16px;
		padding-right: 16px;
	}

	.kv-btn {
		padding: 12px 24px;
		font-size: 0.8125rem;
	}

	.kv-btn--lg {
		padding: 14px 28px;
	}

	.kv-mobile-nav {
		max-width: 100%;
	}

	.kv-event-card__date-badge {
		padding: 6px 10px;
		min-width: 48px;
	}

	.kv-event-card__day {
		font-size: 1.25rem;
	}

	.kv-place-card__actions {
		flex-direction: column;
	}

	.kv-place-card__actions .kv-btn {
		width: 100%;
	}
}

/* Touch-Friendly Targets
   ========================================================================== */

@media (pointer: coarse) {
	.kv-nav-link,
	.kv-mega-dropdown__link,
	.kv-mobile-nav__list li a,
	.kv-footer-links a,
	.kv-footer-bottom__links a {
		min-height: 44px;
		display: inline-flex;
		align-items: center;
	}
}

/* Print
   ========================================================================== */

@media print {
	.site-header,
	.kv-footer-newsletter,
	.kv-mobile-nav,
	.kv-mobile-backdrop,
	.kv-search-overlay,
	.kv-modal {
		display: none !important;
	}

	.site-main {
		padding-top: 0 !important;
	}

	body {
		background: #fff;
		color: #000;
		font-size: 12pt;
	}
}
