/**
 * GAFAI Theme — Responsive & touch enhancements
 */

/* Safe areas (notched phones) */
.site-header {
	padding-top: env(safe-area-inset-top, 0);
}

.site-footer,
.hero-stats-overlay.is-hero-overlay {
	padding-bottom: env(safe-area-inset-bottom, 0);
}

body.menu-open {
	overflow: hidden;
	touch-action: none;
}

/* Fluid container */
@media (max-width: 768px) {
	.container {
		padding-left: 16px;
		padding-right: 16px;
	}

	.main-nav-inner {
		padding: 12px 16px;
		gap: 12px;
	}

	.custom-logo-link img {
		max-height: 42px;
	}

	.site-logo-text {
		font-size: 22px;
	}
}

/* Top bar — compact mobile */
@media (max-width: 900px) {
	.top-bar {
		font-size: 12px;
		padding: 6px 0;
	}

	.topbar-menu {
		gap: 12px;
		flex-wrap: wrap;
		justify-content: center;
	}

	.top-bar-social {
		gap: 8px;
	}
}

@media (max-width: 600px) {
	.top-bar-right {
		flex-wrap: wrap;
		justify-content: center;
		gap: 10px;
	}

	.topbar-menu {
		order: 2;
		width: 100%;
		justify-content: center;
	}

	.top-bar-social {
		order: 1;
	}
}

@media (max-width: 480px) {
	.top-bar {
		display: none;
	}
}

/* Touch targets — exclude carousel dots (they stretch into pills otherwise) */
@media (max-width: 768px) {
	.btn,
	.menu-toggle,
	.search-toggle,
	.hero-carousel-prev,
	.hero-carousel-next,
	.primary-menu a {
		min-height: 44px;
	}

	.primary-menu a {
		display: flex;
		align-items: center;
		padding: 12px 16px;
		font-size: 15px;
	}

	.menu-toggle,
	.search-toggle {
		min-width: 44px;
		justify-content: center;
	}
}

/* Mobile navigation drawer */
@media (max-width: 768px) {
	.main-navigation .primary-menu {
		max-height: min(70vh, 480px);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	.main-navigation.is-open .primary-menu .sub-menu,
	.main-navigation.is-open .primary-menu .mega-menu-dropdown {
		padding-left: 0;
	}

	.primary-menu > .menu-item-has-children,
	.primary-menu > .has-mega-menu {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		width: 100%;
	}

	.primary-menu > .menu-item-has-children > .menu-link,
	.primary-menu > .has-mega-menu > .menu-link {
		flex: 1;
	}

	.submenu-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 44px;
		min-height: 44px;
	}

	.primary-menu > .menu-item-has-children:not(.has-mega-menu) > .sub-menu,
	.mega-menu-dropdown {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		border: none;
		display: none;
		width: 100%;
	}

	.primary-menu > .menu-item-has-children.is-submenu-open > .sub-menu,
	.primary-menu > .has-mega-menu.is-submenu-open > .mega-menu-dropdown {
		display: block;
	}

	.mega-menu-dropdown > .container {
		padding: 8px 0 12px;
	}

	.mega-menu-grid {
		grid-template-columns: 1fr;
		gap: 4px;
	}

	.mega-menu-grid > li {
		padding: 10px 12px;
	}
}

/* Hero — mobile carousel */
@media (max-width: 768px) {
	.hero-carousel {
		min-height: 460px;
		touch-action: pan-y;
	}

	.hero-slide {
		min-height: 460px;
		padding: 40px 0 96px;
	}

	.hero-inner {
		gap: 24px;
	}

	.hero-quote-box {
		margin-top: 8px;
	}

	.hero-carousel-controls {
		bottom: 88px;
		gap: 12px;
		padding: 0 16px;
	}

	.hero-carousel-prev,
	.hero-carousel-next {
		width: 36px;
		height: 36px;
	}

	.hero-carousel-dot {
		width: 8px;
		height: 8px;
		min-width: 8px;
		min-height: 8px;
	}

	.hero-stats-overlay {
		padding: 16px 0;
	}

	.hero-stats-set {
		gap: 40px;
		padding-right: 40px;
	}

	.hero-stat-icon {
		width: 36px;
		height: 36px;
	}

	.hero-stat-number {
		font-size: 17px;
	}

	.hero-stat-label {
		font-size: 10px;
	}

	.hero-stats-track {
		animation-duration: 32s;
	}
}

@media (max-width: 480px) {
	.hero-carousel {
		min-height: 420px;
	}

	.hero-slide {
		min-height: 420px;
		padding: 32px 0 92px;
	}

	.hero-title {
		font-size: 1.55rem;
		margin-bottom: 14px;
	}

	.hero-subtitle {
		font-size: 14px;
		line-height: 1.6;
		margin-bottom: 20px;
	}

	.hero-buttons .btn-lg {
		padding: 12px 20px;
		font-size: 14px;
	}

	.hero-carousel-controls {
		bottom: 82px;
	}

	.hero-stats-track {
		animation-duration: 26s;
	}

	.hero-quote-box {
		padding: 20px;
	}

	.hero-buttons {
		flex-direction: column;
	}

	.hero-buttons .btn {
		width: 100%;
	}
}

/* Documents & news archive — tablet */
@media (max-width: 1100px) {
	.documents-grid,
	.news-archive-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}
}

/* Documents & news archive — mobile */
@media (max-width: 768px) {
	.documents-grid,
	.news-archive-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.documents-filters {
		margin-bottom: 24px;
	}

	.document-card-icon {
		height: 100px;
	}

	.news-archive-card-media {
		height: 160px;
	}
}

/* Sections */
@media (max-width: 768px) {
	.pillars-section,
	.news-section,
	.content-grid-section,
	.partners-section,
	.newsletter-section {
		padding: 48px 0;
	}

	.section-title {
		font-size: clamp(1.5rem, 5vw, 2rem);
	}

	.news-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.partners-logos {
		gap: 20px 28px;
	}

	.partner-logo img {
		max-height: 32px;
	}

	.grid-col-title {
		font-size: 17px;
	}

	.membership-col .btn {
		width: 100%;
	}
}

/* Pillars mobile header */
@media (max-width: 900px) {
	.pillars-header {
		flex-direction: column;
		align-items: flex-start;
		gap: 20px;
	}

	.pillars-intro {
		max-width: none;
	}

	.pillar-icon {
		width: min(var(--gafai-pillar-icon-size, 180px), 120px);
		height: min(var(--gafai-pillar-icon-size, 180px), 120px);
	}
}

/* Search overlay mobile */
@media (max-width: 600px) {
	.search-overlay {
		padding: 16px;
		align-items: flex-start;
		padding-top: max(24px, env(safe-area-inset-top, 24px));
	}

	.search-overlay .search-form {
		flex-direction: column;
	}

	.search-overlay .search-field {
		font-size: 16px;
		width: 100%;
	}

	.search-close {
		top: -48px;
	}
}

/* Footer */
@media (max-width: 768px) {
	.footer-main {
		padding: 40px 0 32px;
	}

	.footer-col-title {
		font-size: 14px;
	}

	.footer-legal {
		flex-wrap: wrap;
		justify-content: center;
		gap: 8px 16px;
	}
}

/* Archives & singles */
@media (max-width: 768px) {
	.page-hero,
	.single-hero,
	.archive-hero,
	.search-hero {
		padding: 48px 0 36px;
	}

	.single-title {
		font-size: clamp(1.5rem, 5vw, 2rem);
	}

	.gafai-archive {
		padding: 32px 0 48px;
	}
}

/* Prevent horizontal overflow */
.site-content,
.site-main,
.hero-section,
.content-grid,
.footer-grid {
	max-width: 100%;
}

img,
video,
iframe {
	max-width: 100%;
	height: auto;
}

@media (max-width: 768px) {
	.announcements-section-header--with-image {
		flex-direction: column;
		align-items: flex-start;
	}

	.announcements-section--header-image-left .announcements-section-header--with-image {
		flex-direction: column;
	}

	.announcements-section-header-media {
		width: 100%;
		max-width: 100%;
	}
}

@media (max-width: 768px) {
	.org-chart-node-bridge--with-assistant {
		min-height: 0;
		padding-bottom: 0;
	}

	.org-chart-bridge-assistant {
		position: static;
		left: auto;
		top: auto;
		bottom: auto;
		display: flex;
		justify-content: center;
		margin: 0 0 12px;
	}

	.org-chart-bridge-rail {
		display: none;
	}

	.org-chart-tree {
		padding: 0 12px;
	}

	.org-chart-children {
		flex-wrap: wrap;
	}
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}
