@media (max-width: 1280px) {
	.desktop-nav { gap: 1rem; margin-right: 0.5rem; }
	.desktop-nav > a { font-size: 0.8125rem; }
	.header-search { max-width: 300px; margin: 0 0.35rem; }
}

@media (max-width: 1100px) {
	:root { --header-logo-height: 3.85rem; --site-header-height: 4.2rem; }
	.desktop-nav { gap: 1rem; margin-right: 1rem; }
	.header-search { flex-basis: 240px; max-width: 320px; margin: 0 .75rem; }
	.nav-inner {
		min-height: 0;
		padding: 0.3rem 0;
	}
	.event-grid { grid-template-columns: repeat(2, 1fr); }
	.carousel-slide { flex: 0 0 calc((100% - 1.5rem) / 2); }
	.category-track .carousel-slide { flex: 0 0 calc((100% - 2 * 1.25rem) / 3); }
	.team-grid { grid-template-columns: repeat(2, 1fr); }
	.about-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: none; }
	.hero-grid {
		grid-template-columns: minmax(0, 1fr) minmax(260px, 1.25fr);
		gap: 1.5rem;
	}
	.footer-grid {
		flex-wrap: wrap;
		gap: 1.5rem 2rem;
	}
	.footer-brand {
		flex: 1 1 16rem;
		max-width: none;
	}
}

@media (max-width: 1000px) {
	.header-search { flex-basis: 200px; max-width: 260px; }
}

@media (max-width: 920px) {
	.header-search input { font-size: .8rem; }
	.header-search { flex-basis: 180px; max-width: 220px; }
}

@media (max-width: 800px) {
	.container { width: min(100% - 1.25rem, 42rem); }
	.site-header .container.nav-inner {
		width: min(100% - 0.85rem, 80rem);
	}
	.desktop-nav, .nav-cta { display: none; }
	.nav-auth {
		display: flex !important;
		align-items: center;
		flex-shrink: 0;
		gap: 0.3rem;
		margin: 0;
		order: 2;
	}
	.menu-toggle {
		order: 3;
		margin-left: 0;
		margin-right: 0;
	}
	.nav-inner {
		gap: 0.35rem;
		overflow: visible;
		flex-wrap: nowrap;
		min-height: 0;
		padding: 0.25rem 0;
		justify-content: flex-start;
		width: 100%;
	}
	.site-header {
		overflow: visible;
	}
	.header-leading {
		flex-shrink: 0;
	}
	.header-search {
		display: flex;
		flex: 1 1 auto;
		min-width: 0;
		max-width: none;
		height: 2.35rem;
		margin: 0 0.2rem 0 0.35rem;
		padding: 0 0.45rem 0 1.9rem;
	}
	.header-search .search-icon {
		left: 0.55rem;
		width: 0.9rem;
		height: 0.9rem;
	}
	.header-search input {
		font-size: 0.72rem;
		min-width: 0;
	}
	.header-search input::placeholder {
		font-size: 0.72rem;
	}
	.theme-toggle {
		width: 2.25rem;
		height: 2.25rem;
		margin-left: 0.1rem;
		margin-right: 0;
		flex-shrink: 0;
		order: 1;
	}
	.nav-auth .button-login,
	.nav-auth .button-primary {
		align-items: center;
		justify-content: center;
		padding: 0.32rem 0.55rem;
		font-size: 0.68rem;
		line-height: 1.1;
		white-space: nowrap;
		flex-shrink: 0;
	}
	body:not([data-user="authenticated"]) .nav-auth > .button-login,
	body:not([data-user="authenticated"]) .nav-auth > .button-primary {
		display: inline-flex !important;
	}
	body[data-user="authenticated"] .nav-auth > #nav-login-btn,
	body[data-user="authenticated"] .nav-auth > #nav-signup-btn,
	body[data-user="authenticated"] .nav-auth > a.button-login,
	body[data-user="authenticated"] .nav-auth > a.button-primary {
		display: none !important;
	}
	.nav-auth .button-primary {
		padding-left: 0.6rem;
		padding-right: 0.6rem;
	}
	.nav-auth .profile-wrap {
		display: flex !important;
		gap: 0;
	}
	.nav-auth .profile-meta-wrap,
	.nav-auth .profile-name-text,
	.nav-auth .profile-chevron {
		display: none !important;
	}
	.nav-auth .profile-avatar {
		width: 2.1rem;
		height: 2.1rem;
		font-size: 0.7rem;
	}
	.nav-auth .profile-dropdown {
		right: 0;
		width: min(16.5rem, calc(100vw - 1.25rem));
	}
	.mobile-header-search { display: none !important; }
	.mobile-nav .mobile-auth-group {
		display: none !important;
	}
	.menu-toggle { display: flex; flex-direction: column; justify-content: center; gap: .3rem; width: 2.35rem; height: 2.35rem; padding: .4rem; border: 0; border-radius: .375rem; background: transparent; cursor: pointer; flex-shrink: 0; }
	.menu-toggle span { display: block; width: 100%; height: 2px; background: var(--foreground); transition: transform .2s, opacity .2s; }
	:root { --header-logo-height: 3.5rem; --site-header-height: 3.85rem; }

	body:not(.home-page) .site-header .brand {
		display: none;
	}
	body:not(.home-page) .site-header .header-back-btn {
		display: inline-flex;
	}
	.menu-toggle.is-open span:first-child { transform: translateY(4px) rotate(45deg); }
	.menu-toggle.is-open span:last-child { transform: translateY(-4px) rotate(-45deg); }
	.mobile-nav { display: none; flex-direction: column; gap: .5rem; padding: 1rem; border-top: 1px solid var(--border); background: var(--background); }
	.mobile-nav.is-open { display: flex; }
	.mobile-nav > a:not(.button) { padding: .6rem .5rem; border-radius: .375rem; font-size: .875rem; font-weight: 400; }
	.mobile-nav > a[aria-current="page"] { background: var(--cream); }
	.mobile-nav > a:not(.button):hover { background: var(--cream); }
	.mobile-nav .button { margin-top: .5rem; }
	.mobile-nav .mobile-auth-group,
	.mobile-nav .mobile-auth-group[hidden] {
		display: none !important;
	}
	.announcement-title, .countdown-summary { display: none; }
	.announcement-inner { justify-content: space-between; }
	.hero {
		min-height: 0;
	}
	body.home-page {
		--hero-header-offset: calc(var(--hero-announcement-height, 0px) + var(--site-header-height, 3.85rem));
		--hero-banner-height: min(530px, calc(100vw * 530 / 1200));
	}
	body.home-page .hero {
		padding-top: 0;
		padding-bottom: 0;
		height: calc(var(--hero-header-offset) + var(--hero-banner-height));
		max-height: none;
	}
	.hero-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
		align-items: center;
		padding-top: 0.35rem;
		padding-bottom: 1.1rem;
		min-height: 0;
	}
	.hero .featured-event {
		display: none;
	}
	.hero-copy {
		min-width: 0;
		justify-content: center;
		gap: 0;
	}
	.hero h1,
	.hero-event-title {
		font-size: 1.28rem;
		line-height: 1.16;
		max-width: none;
		margin: 0.1rem 0 0;
	}
	.hero-lead { font-size: 0.82rem; }
	.hero-category {
		font-size: 0.62rem;
		margin-bottom: 0.12rem;
		letter-spacing: 0.14em;
	}
	.hero .inline-featured-label,
	.hero .featured-label.inline-featured-label {
		display: none !important;
	}
	.hero-countdown {
		max-width: none;
		margin-top: 0.45rem;
		padding: 0.4rem 0.28rem;
		gap: 0.16rem;
		border-radius: 0.5rem;
	}
	.hero-countdown > div { padding: 0.2rem 0.08rem; }
	.hero-countdown strong { font-size: 0.85rem; }
	.hero-countdown span { font-size: 0.48rem; }
	.hero-event-meta { margin-top: 0.28rem; gap: 0.04rem; }
	.hero-event-meta p {
		font-size: 0.58rem;
		line-height: 1.28;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}
	.featured-event {
		display: none;
	}
	.hero-grid .button-row {
		margin-top: 0.32rem;
	}
	.hero-grid .button-row .button,
	.hero .button-gold {
		width: auto;
		min-height: 0;
		padding: 0.4rem 0.75rem;
		font-size: 0.72rem;
		line-height: 1.15;
		gap: 0.2rem;
	}
	.split-grid { grid-template-columns: 1fr; }
	.past-events-card { grid-template-columns: 1fr; }
	.stats-grid { grid-template-columns: repeat(2, 1fr); gap: .5rem; }
	.stats-section { padding: 1.5rem 0 1.25rem; }
	.section { padding: 2rem 0; }
	.carousel-viewport { margin: 0 2.75rem; }
	.category-carousel .carousel-viewport { margin: 0 2.75rem; }
	.carousel-slide { flex: 0 0 100%; }
	.category-track .carousel-slide { flex: 0 0 calc((100% - 1.25rem) / 2); }
	.services-grid, .process-grid { grid-template-columns: repeat(2, 1fr); }
	.team-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-top: 1.75rem; }
	.team-card { padding: 1.25rem; }
	.team-avatar { width: 4.25rem; height: 4.25rem; font-size: 1.375rem; }
	.about-hero { min-height: auto; }
	.about-hero h1 { font-size: clamp(2rem, 8vw, 2.75rem); }
	.capabilities-grid { gap: 2.5rem; }
	.why-grid { display: flex; flex-direction: column; }
	.why-grid > div:last-child { width: 100%; }
	.home-teaser-grid { grid-template-columns: 1fr; }
	.footer-grid {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 1.15rem 1rem;
		align-items: start;
	}
	.footer-grid > .footer-brand,
	.footer-grid > div:first-child {
		grid-column: 1 / -1;
		flex: none;
		max-width: none;
	}
	.footer-brand p {
		max-width: none;
		margin-top: 0.15rem;
		font-size: 0.8rem;
		line-height: 1.4;
	}
	.site-footer .brand-logo,
	.site-footer .brand img {
		height: 4.75rem;
		min-height: 0;
		max-width: none;
		object-position: left bottom;
	}
	.footer-nav {
		gap: 0.65rem;
		padding-top: 0;
	}
	.footer-nav a {
		font-size: 0.875rem;
	}
	.footer-contact h3,
	.footer-follow h3,
	.footer-grid h3 {
		font-size: 0.9rem;
	}
	.footer-contact p,
	.footer-grid > .footer-contact p {
		margin-top: 0.35rem;
		font-size: 0.75rem;
		line-height: 1.35;
		max-width: none;
	}
	.social-links {
		margin-top: 0.55rem;
		gap: 0.4rem;
	}
	.social-links a {
		width: 2.15rem;
		height: 2.15rem;
	}
	.social-links a svg {
		width: 0.95rem;
		height: 0.95rem;
	}
	.footer-policies {
		margin-top: 0.65rem;
		gap: 0.35rem;
	}
	.footer-policies a {
		font-size: 0.72rem;
		line-height: 1.3;
	}
	.site-footer {
		padding: 1.75rem 0 1.1rem;
	}
	.copyright {
		margin-top: 1.25rem;
		padding-top: 0.9rem;
		font-size: 0.625rem;
	}
	.event-modal { grid-template-columns: 1fr; max-height: calc(100vh - 2rem); overflow-y: auto; }
	.modal-image { display: none; }

	.host-card-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
	.host-card { padding: 1.75rem 1rem 2.25rem; }
	.host-card-icon svg { width: 52px; height: 52px; }
	.host-card h3 { font-size: 1rem; }
	.host-modal { width: min(100%, 28rem); }
	.host-modal-body { padding: 2.25rem 1.75rem 2rem; }

	/* Auth: keep a compact brand strip so mobile still feels like desktop */
	.auth-split { grid-template-columns: 1fr; min-height: auto; max-height: none; }
	.auth-brand-panel {
		display: flex;
		min-height: 0;
		padding: 1.15rem 1.35rem 1.05rem;
		justify-content: flex-start;
		align-items: center;
	}
	.auth-brand-body,
	.auth-brand-footer,
	.auth-brand-orb { display: none; }
	.auth-brand-logo img { height: 44px; }
	.auth-mobile-back { display: inline-flex; }
	.auth-brand-logo { display: none; }
	.auth-form-panel { padding: 1.5rem 1.25rem 2.25rem; min-height: auto; justify-content: flex-start; }

	body.sub-page .page-hero,
	body.sub-page .dashboard-hero {
		padding-top: calc(var(--site-header-height, 4.6rem) + 1.35rem);
		padding-bottom: 2rem;
	}

	.dashboard-grid,
	.quick-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wishlist-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1rem;
	}

	.bookings-table {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		border-radius: 12px;
	}

	.settings-nav {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.settings-nav .snav-item {
		flex-shrink: 0;
	}

	.form-input,
	.auth-form-panel input,
	.auth-form-panel select,
	.auth-form-panel textarea {
		font-size: 16px;
	}
}

@media (max-width: 520px) {
	.nav-inner {
		gap: 0.25rem;
		min-height: 0;
		padding: 0.2rem 0;
	}
	:root { --header-logo-height: 3.1rem; --site-header-height: 3.4rem; }
	body.home-page {
		--hero-header-offset: calc(var(--hero-announcement-height, 0px) + var(--site-header-height, 3.4rem));
		--hero-banner-height: min(530px, calc(100vw * 530 / 1200));
	}
	.header-search {
		max-width: none;
		height: 2.15rem;
		padding: 0 0.35rem 0 1.7rem;
		margin: 0 0.15rem 0 0.25rem;
	}
	.header-search .search-icon {
		left: 0.45rem;
		width: 0.85rem;
		height: 0.85rem;
	}
	.header-search input,
	.header-search input::placeholder {
		font-size: 0.68rem;
	}
	.nav-auth {
		gap: 0.22rem;
	}
	.nav-auth .button-login,
	.nav-auth .button-primary {
		padding: 0.28rem 0.45rem;
		font-size: 0.62rem;
	}
	.menu-toggle {
		width: 2.15rem;
		height: 2.15rem;
		padding: 0.35rem;
	}
	.section { padding: 2rem 0; }
	.announcement-inner { font-size: .6875rem; }
	.announcement-actions { gap: .5rem; }
	.hero {
		min-height: 0;
	}
	body.home-page .hero {
		height: calc(var(--hero-header-offset) + var(--hero-banner-height));
		max-height: none;
	}
	.hero-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
		min-height: 0;
	}
	.hero h1,
	.hero-event-title { font-size: 1.1rem; }
	.hero-countdown { padding: 0.32rem 0.22rem; }
	.hero-countdown strong { font-size: 0.78rem; }
	.hero-countdown span { font-size: 0.46rem; }
	.hero-event-meta p { font-size: 0.72rem; }
	.hero-grid .button-row .button,
	.hero .button-gold {
		width: auto;
		font-size: 0.68rem;
		padding: 0.32rem 0.7rem;
	}
	.hero .featured-event {
		display: none;
	}
	.button-row .button { width: 100%; }
	.hero-grid .button-row .button { width: auto; }
	.stat-item strong { font-size: 1.75rem; }
	.stat-item span { margin-top: .25rem; font-size: .6875rem; }
	.stats-grid { gap: .25rem; }
	.stats-section { padding: 1.25rem 0 1rem; }
	.section-heading h2, .capabilities-copy h2 { font-size: 1.5rem; }
	.section-heading p { font-size: .8125rem; }
	.carousel-arrow { width: 2.5rem; height: 2.5rem; font-size: 1rem; }
	.category-carousel .carousel-arrow { width: 2.75rem; height: 2.75rem; font-size: 1.05rem; }
	.carousel-viewport { margin: 0 2.25rem; }
	.category-carousel .carousel-viewport { margin: 0 2.25rem; }
	.category-track .carousel-slide { flex: 0 0 100%; }
	.featured-details { align-items: stretch; flex-direction: column; }
	.featured-details .button { width: 100%; }
	.event-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
	.event-grid .event-card { min-width: 0; }
	.event-grid .event-card-body { padding: 0.75rem 0.8rem 0.9rem; gap: 0.45rem; }
	.event-grid .event-card h3 { font-size: 0.88rem; }
	.services-grid, .process-grid, .team-grid { grid-template-columns: 1fr; }
	.about-team-grid { grid-template-columns: 1fr; max-width: 22rem; }
	.team-grid { margin-top: 1.5rem; }
	.team-avatar { width: 4rem; height: 4rem; font-size: 1.25rem; }
	.service-card ul { font-size: .6875rem; }
	.capability-list { grid-template-columns: 1fr; }
	.why-list { grid-template-columns: 1fr; }
	.teaser-list { grid-template-columns: 1fr; }
	.testimonial { position: relative; right: auto; bottom: auto; left: auto; max-width: none; margin-top: 1rem; }
	.collage img { height: 11rem; }
	.collage img:last-child { height: 8rem; }
	.past-events-card { padding: 1.35rem 1.2rem; }
	.past-events-copy h2 { font-size: 1.3rem; }
	.past-events-collage img { height: 8.5rem; }
	.past-events-collage img:last-child { height: 6.5rem; }
	.past-events-collage img:nth-child(2) { margin-top: 0; }
	.footer-grid {
		grid-template-columns: 1fr 1fr;
		gap: 1rem 0.85rem;
	}
	.footer-grid > .footer-brand,
	.footer-grid > div:first-child {
		grid-column: 1 / -1;
		flex: none;
		max-width: none;
	}
	.footer-brand p {
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
		font-size: 0.74rem;
		margin-top: 0.1rem;
	}
	.site-footer .brand-logo,
	.site-footer .brand img {
		height: 4.35rem;
		min-height: 0;
		max-width: none;
		object-position: left bottom;
	}
	.footer-nav a {
		font-size: 0.8125rem;
	}
	.modal-backdrop { padding: .75rem; }
	.modal-content { padding: 1.5rem; }
	.modal-content h2 { font-size: 1.75rem; }
	.modal-content .event-countdown strong { font-size: 1.5rem; }
	.auth-form-panel { padding: 1.5rem 1rem; }

	.host-card-grid { grid-template-columns: 1fr; gap: 1rem; }
	.host-card { padding: 2rem 1.25rem 2.5rem; }
	.host-card-icon svg { width: 56px; height: 56px; }
	.host-modal-body { padding: 2rem 1.25rem 1.75rem; }
	.host-modal-icon svg { width: 60px; height: 60px; }
	.host-modal-body h2 { font-size: 1.5rem; }
	.host-modal-body > p { font-size: 0.875rem; }
	.host-modal-cta .button { max-width: 100%; border-radius: 0.5rem; }
	.host-modal-backdrop { padding: 0.75rem; }

	/* Site-wide mobile richness */
	body.sub-page .page-hero,
	body.sub-page .dashboard-hero {
		padding-top: calc(var(--site-header-height, 4.6rem) + 1.25rem);
		padding-bottom: 1.75rem;
	}

	.page-hero .hero-content h1,
	.dashboard-hero .dashboard-user-info h1 {
		font-size: clamp(1.35rem, 5vw, 1.75rem);
	}

	.dashboard-grid,
	.quick-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.85rem;
	}

	.stat-card,
	.quick-card {
		padding: 1.05rem 0.95rem;
		min-width: 0;
	}

	.stat-value { font-size: 1.4rem; }

	.wishlist-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.85rem;
	}

	.bookings-table {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		border-radius: 12px;
	}

	.bookings-table th,
	.bookings-table td {
		white-space: nowrap;
	}

	.settings-card { padding: 1.25rem 1.1rem; }

	.settings-nav {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
	}

	.settings-nav .snav-item {
		flex-shrink: 0;
		width: auto;
	}

	.settings-avatar-flex {
		flex-wrap: nowrap;
		gap: 1rem;
	}

	.notif-card {
		align-items: flex-start;
	}

	.help-topics {
		grid-template-columns: 1fr 1fr;
		gap: 0.75rem;
	}

	.auth-form-panel {
		padding-top: 1.75rem;
	}

	.form-input,
	.auth-form-panel input,
	.auth-form-panel select,
	.auth-form-panel textarea {
		font-size: 16px;
	}
}
