/* ============================================================================
   PLAN ONE — RESPONSIVE & MOBILE STYLES
   Breakpoints: 1100px → 968px (mobile menu trigger) → 768px → 480px
   ============================================================================ */

/* ════════════════════════════════════════════════════════════════════════
   TABLET (≤ 1100px)
   ════════════════════════════════════════════════════════════════════════ */
@media (max-width: 1100px) {
	.container { padding: 0 20px; }

	.po-works-grid { grid-template-columns: repeat(2, 1fr) !important; }

	.svc-grid-pro,
	.svc-preview-grid { grid-template-columns: repeat(2, 1fr) !important; }

	.page-hero-grid {
		grid-template-columns: 1fr !important;
		gap: 24px !important;
	}
	.page-hero-title { font-size: 38px !important; line-height: 1.15 !important; }
}

/* ════════════════════════════════════════════════════════════════════════
   MOBILE MENU TRIGGER (≤ 968px) — Elegant dropdown below header
   ════════════════════════════════════════════════════════════════════════ */
@media (max-width: 968px) {

	body.nav-open { overflow: hidden; }

	.nav-links { display: none !important; }
	.nav-toggle { display: inline-flex !important; }
	.cart-pill-meta { display: none !important; }

	/* Hide social icons on mobile, keep only cart + toggle */
	.nav-socials { display: none !important; }

	/* Layout: logo right (start in RTL), actions left (end in RTL) */
	.nav-inner {
		justify-content: space-between !important;
		gap: 0 !important;
	}
	.nav-logo {
		order: 1;
		margin: 0 !important;
	}
	.nav-links {
		display: none !important;
	}
	.nav-actions {
		order: 2;
		margin: 0 !important;
		gap: 8px !important;
	}

	/* Browse filters: collapse from sidebar to drawer */
	.browse { display: block !important; }
	/* (تفاصيل .browse-filters & .browse-filters.is-open في القسم أدناه — bottom sheet design) */

	/* ─── MOBILE MENU — Dropdown that slides down from nav ─── */
	.nav { position: relative; }

	/* Backdrop overlay (dimming behind dropdown) - clickable to close */
	body.nav-open::before {
		content: '';
		position: fixed;
		top: var(--header-height, 76px);
		left: 0;
		right: 0;
		bottom: 0;
		background: rgba(10, 27, 64, .35);
		backdrop-filter: blur(2px);
		-webkit-backdrop-filter: blur(2px);
		z-index: 98;
		animation: backdropFade .25s ease;
		pointer-events: none;  /* JS handles click-outside instead */
	}
	@keyframes backdropFade {
		from { opacity: 0; }
		to { opacity: 1; }
	}

	.nav-links.is-open {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		justify-content: flex-start !important;
		position: absolute !important;
		top: 100% !important;
		right: 0 !important;
		left: 0 !important;
		width: 100% !important;
		max-height: calc(100vh - var(--header-height, 76px) - 20px) !important;
		background: #fff !important;
		padding: 12px 16px 16px !important;
		gap: 2px !important;
		z-index: 99 !important;
		overflow-y: auto !important;
		border-top: 1px solid var(--line-soft, #F0F2F5);
		border-radius: 0 0 20px 20px;
		box-shadow: 0 24px 48px -12px rgba(15, 27, 64, .18);
		animation: dropdownSlide .3s cubic-bezier(.16, 1, .3, 1);
		transform-origin: top center;
	}
	@keyframes dropdownSlide {
		from {
			opacity: 0;
			transform: translateY(-12px) scaleY(.95);
		}
		to {
			opacity: 1;
			transform: translateY(0) scaleY(1);
		}
	}

	/* Menu items */
	.nav-links.is-open li,
	.nav-links.is-open > li {
		display: block !important;
		width: 100% !important;
		margin: 0 !important;
		list-style: none !important;
		opacity: 0;
		animation: itemFadeIn .3s ease forwards;
	}
	.nav-links.is-open > li:nth-child(1) { animation-delay: .05s; }
	.nav-links.is-open > li:nth-child(2) { animation-delay: .08s; }
	.nav-links.is-open > li:nth-child(3) { animation-delay: .11s; }
	.nav-links.is-open > li:nth-child(4) { animation-delay: .14s; }
	.nav-links.is-open > li:nth-child(5) { animation-delay: .17s; }
	.nav-links.is-open > li:nth-child(6) { animation-delay: .20s; }
	.nav-links.is-open > li:nth-child(7) { animation-delay: .23s; }
	@keyframes itemFadeIn {
		from { opacity: 0; transform: translateX(8px); }
		to { opacity: 1; transform: translateX(0); }
	}

	.nav-links.is-open > li > a,
	.nav-links.is-open .nav-link {
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		width: 100% !important;
		padding: 14px 16px !important;
		font-size: 15.5px !important;
		font-weight: 600 !important;
		border-radius: 12px !important;
		color: var(--ink, #0A1B40) !important;
		background: transparent !important;
		text-decoration: none !important;
		transition: background .2s, color .2s, transform .2s !important;
	}
	.nav-links.is-open > li > a::after,
	.nav-links.is-open .nav-link::after {
		content: '←';
		font-size: 16px;
		color: var(--muted, #8089A8);
		transition: transform .2s, color .2s;
		font-weight: 400;
		opacity: .5;
	}
	.nav-links.is-open > li > a:active,
	.nav-links.is-open .nav-link:active {
		background: var(--brand-50, #EEF2FF) !important;
		transform: scale(.98);
	}
	.nav-links.is-open > li.current-menu-item > a,
	.nav-links.is-open > li.current_page_item > a,
	.nav-links.is-open .nav-link.active {
		background: var(--brand-50, #EEF2FF) !important;
		color: var(--brand, #1E40D7) !important;
	}
	.nav-links.is-open > li.current-menu-item > a::after,
	.nav-links.is-open > li.current_page_item > a::after,
	.nav-links.is-open .nav-link.active::after {
		color: var(--brand, #1E40D7);
		transform: translateX(-4px);
		opacity: 1;
	}

	/* Hamburger → X animation */
	.nav-toggle svg {
		transition: transform .3s cubic-bezier(.4, 0, .2, 1);
	}
	body.nav-open .nav-toggle svg {
		transform: rotate(90deg);
	}
	body.nav-open .nav-toggle {
		color: var(--brand, #1E40D7);
	}

	/* ═══════════════════════════════════════════════════════════════════════
	   MOBILE BROWSE PAGE
	   - Map: full-width, edge-to-edge, 50vh, no gap with header
	   - Filter: inline button BELOW map, opens inline dropdown
	   ═══════════════════════════════════════════════════════════════════════ */

	/* Browse layout — vertical block on mobile (override fullwidth grid) */
	.plan-one-browse-fullwidth .browse,
	body .plan-one-browse-fullwidth .browse,
	.browse {
		display: block !important;
		grid-template-columns: none !important;
		grid-template-rows: none !important;
		gap: 0 !important;
	}
	.plan-one-browse-fullwidth .browse-filters,
	.plan-one-browse-fullwidth .browse-content {
		padding: 0 !important;
		border: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
		grid-column: auto !important;
		position: static !important;
	}
	.browse-content {
		padding: 0 !important;
		width: 100% !important;
	}

	/* Map wrapper — full width, 50vh, no top margin/padding */
	.browse-map-wrap {
		position: relative !important;
		margin: 0 !important;
		padding: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
		height: 50vh !important;
		min-height: 320px !important;
		border-radius: 0 !important;
		overflow: hidden !important;
		border: 0 !important;
	}

	#plan-one-map {
		width: 100% !important;
		height: 100% !important;
		border-radius: 0 !important;
	}

	/* Map city tabs — overlay on map */
	.map-city-tabs {
		display: flex !important;
		gap: 6px !important;
		overflow-x: auto !important;
		padding: 10px 12px !important;
		max-width: calc(100% - 24px) !important;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}
	.map-city-tabs::-webkit-scrollbar { display: none; }

	.map-legend {
		font-size: 11px !important;
		padding: 8px 10px !important;
	}

	/* ─── INLINE FILTER BUTTON (under map) ─── */
	.browse-filters-toggle {
		display: flex !important;
		align-items: center;
		justify-content: space-between;
		gap: 10px;
		position: relative !important;
		width: 100%;
		margin: 0 !important;
		padding: 0 18px;
		height: 56px;
		background: linear-gradient(135deg, #1E40D7 0%, #1734B5 100%);
		color: #fff;
		border: 0;
		border-radius: 0;
		font-family: inherit;
		font-size: 15px;
		font-weight: 700;
		cursor: pointer;
		box-shadow: 0 2px 8px -2px rgba(15, 27, 64, .15);
		transition: background .2s;
		top: auto;
		bottom: auto;
		left: auto;
		right: auto;
		z-index: auto;
		animation: none;
	}
	.browse-filters-toggle::before {
		content: '';
		flex: 1;
	}
	.browse-filters-toggle::after {
		content: '';
		width: 9px;
		height: 9px;
		border-right: 2px solid #fff;
		border-bottom: 2px solid #fff;
		transform: rotate(45deg) translate(-2px, -2px);
		transition: transform .25s;
		flex-shrink: 0;
	}
	body.filters-open .browse-filters-toggle::after {
		transform: rotate(-135deg) translate(-2px, -2px);
	}
	.browse-filters-toggle:hover {
		background: linear-gradient(135deg, #1734B5 0%, #102B91 100%);
	}
	.browse-filters-toggle .filters-toggle-label {
		font-size: 15px;
		font-weight: 700;
	}
	.browse-filters-toggle .filters-count-badge {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 22px;
		height: 22px;
		padding: 0 6px;
		background: #fff;
		color: #1E40D7;
		border-radius: 999px;
		font-size: 12px;
		font-weight: 800;
		margin-inline-start: 4px;
	}
	.browse-filters-toggle svg {
		color: #fff;
		opacity: .95;
		flex-shrink: 0;
	}

	/* ─── INLINE FILTERS DROPDOWN ─── */
	.browse-filters {
		display: none !important;
		position: relative !important;
		inset: auto !important;
		background: #fff !important;
		backdrop-filter: none !important;
		-webkit-backdrop-filter: none !important;
		padding: 0 !important;
		max-height: none !important;
		overflow: visible !important;
		border: 0 !important;
		z-index: auto !important;
		pointer-events: auto;
		box-shadow: 0 8px 20px -10px rgba(15, 27, 64, .15);
	}
	.browse-filters.is-open {
		display: block !important;
		animation: filtersDropdownIn .25s ease;
	}
	.browse-filters::before { display: none !important; }
	@keyframes filtersDropdownIn {
		from { opacity: 0; transform: translateY(-6px); }
		to   { opacity: 1; transform: translateY(0); }
	}

	.browse-filters-panel {
		position: relative !important;
		top: auto !important;
		bottom: auto !important;
		left: auto !important;
		right: auto !important;
		width: 100% !important;
		max-width: 100% !important;
		max-height: none !important;
		background: #fff;
		border-radius: 0;
		padding: 16px 16px 0;
		margin: 0;
		border: 0;
		border-bottom: 1px solid var(--line, #E5E9F2);
		box-shadow: none;
		display: block;
		animation: none;
	}
	.browse-filters-panel::before { display: none !important; }

	.browse-filters-header { display: none !important; }
	.browse-filters-desktop-head { display: none !important; }

	/* Apply button — sticky at bottom of dropdown */
	.browse-filters-actions {
		position: sticky !important;
		bottom: 0;
		display: grid !important;
		grid-template-columns: 1fr 2fr;
		gap: 10px;
		padding: 12px 0 16px;
		background: #fff;
		border-top: 1px solid var(--line, #E5E9F2);
		margin: 16px 0 0 !important;
		box-shadow: 0 -4px 8px -4px rgba(11, 30, 82, .06);
	}
	.browse-filters-actions .btn {
		width: 100%;
		height: 46px;
		border-radius: 12px;
		font-weight: 700;
		font-size: 15px;
	}
	.browse-filters-actions .btn-primary {
		background: linear-gradient(135deg, #1E40D7 0%, #1734B5 100%);
		box-shadow: 0 4px 12px -2px rgba(30, 64, 215, .35);
	}
	.browse-filters-actions .btn-ghost,
	.browse-filters-actions .js-filters-reset {
		background: var(--line-soft, #F1F5F9);
		color: var(--ink-500, #64748B);
		border: 0;
	}

	/* Body lock — NOT needed for inline dropdown */
	body.filters-open {
		overflow: visible;
	}

	/* Push content below map to be flush */
	.browse-results-bar {
		margin-top: 0 !important;
		padding: 14px 16px !important;
	}
	.browse-grid {
		padding: 0 16px 60px !important;
	}

	/* ─── HIDE TOOLBAR on mobile ─── */
	.browse-toolbar {
		display: none !important;
	}

	/* Tablet/below: works grid 2 cols */
	.po-works-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* Desktop: keep filters always visible, hide mobile UI */
@media (min-width: 969px) {
	.browse-filters-toggle { display: none !important; }
	.browse-filters-header,
	.browse-filters-actions { display: none !important; }
	.browse-filters-panel {
		padding: 0;
		background: transparent;
		box-shadow: none;
		max-height: none;
		overflow: visible;
		animation: none;
	}
	.browse-filters-panel::before { display: none; }
}

/* ════════════════════════════════════════════════════════════════════════
   MOBILE (≤ 768px)
   ════════════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
	html { font-size: 15px; }
	.container { padding: 0 16px; }

	/* ─── Hero ─── */
	.hero { padding: 32px 0 40px !important; }
	.hero-grid,
	.hero-split,
	.hero-inner {
		grid-template-columns: 1fr !important;
		gap: 28px !important;
	}

	/* Big bold title for "اعرض حيث ينظر الجميع" */
	.hero h1,
	.hero-title,
	h1.hero-title {
		font-size: 62px !important;
		line-height: 1.02 !important;
		letter-spacing: -.02em !important;
		font-weight: 800 !important;
		margin-bottom: 16px !important;
	}
	.hero h1 em,
	.hero-title em {
		font-style: normal;
		display: block;
	}

	/* Fix eyebrow text wrapping (no broken lines) */
	.hero .section-eyebrow,
	.section-eyebrow {
		flex-wrap: nowrap !important;
		white-space: nowrap !important;
		overflow: hidden;
		text-overflow: ellipsis;
		max-width: 100%;
		font-size: 12.5px !important;
		gap: 8px !important;
	}

	.hero-lead,
	.hero p.lead,
	.hero p {
		font-size: 16px !important;
		line-height: 1.6 !important;
	}

	/* Hide stats counter on mobile */
	.hero-stats {
		display: none !important;
	}

	.hero-ctas,
	.hero-actions {
		flex-wrap: wrap;
		gap: 10px !important;
	}
	.hero-ctas .btn,
	.hero-actions .btn {
		flex: 1 1 auto;
		min-width: 140px;
	}

	.section,
	.section-tight { padding: 36px 0 !important; }
	.section-head {
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: 16px !important;
		margin-bottom: 24px !important;
	}
	.section-head h2,
	h2 { font-size: 26px !important; line-height: 1.2 !important; }

	.cart-layout,
	.checkout-layout,
	.po-cart-layout,
	.confirm-layout {
		grid-template-columns: 1fr !important;
		gap: 20px !important;
	}
	.cart-summary,
	.checkout-summary,
	.po-cart-summary {
		position: static !important;
		top: auto !important;
	}

	.svc-grid-pro {
		grid-template-columns: 1fr !important;
		gap: 16px !important;
	}
	.svc-pro { padding: 24px 20px !important; }
	.svc-pro-title { font-size: 20px !important; }

	.po-works-grid {
		grid-template-columns: 1fr !important;
		gap: 16px !important;
	}
	.po-works-process {
		grid-template-columns: 1fr 1fr !important;
		gap: 12px !important;
	}
	.works-filter-bar {
		flex-wrap: wrap !important;
		gap: 8px !important;
		padding: 12px !important;
	}
	.works-filter-bar .chip {
		font-size: 13px !important;
		padding: 6px 12px !important;
	}

	.clients-grid {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 12px !important;
	}

	.about-stats,
	.stats-bar {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 16px !important;
	}
	.values-grid,
	.team-grid {
		grid-template-columns: 1fr !important;
		gap: 14px !important;
	}

	.footer-grid {
		grid-template-columns: 1fr !important;
		gap: 28px !important;
		text-align: center;
	}
	.footer-col h4 { margin-top: 0; }
	.footer-social,
	.footer .nav-socials {
		justify-content: center;
	}

	.cta-banner {
		grid-template-columns: 1fr !important;
		gap: 20px !important;
		padding: 32px 24px !important;
		text-align: center;
	}
	.cta-banner h2 {
		font-size: 24px !important;
		line-height: 1.25 !important;
	}
	.cta-banner > div:last-child {
		justify-content: center !important;
	}

	.contact-layout {
		grid-template-columns: 1fr !important;
		gap: 24px !important;
	}
	.contact-form-grid { grid-template-columns: 1fr !important; }

	.process-strip {
		grid-template-columns: 1fr !important;
		gap: 16px !important;
	}

	/* Browse: full mobile experience */
	.browse-toolbar {
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 10px !important;
		padding: 12px !important;
		position: static !important;
	}
	.browse-toolbar-left {
		flex-direction: column;
		gap: 10px !important;
		width: 100%;
	}
	.browse-search { width: 100%; }
	.browse-search input { width: 100%; height: 44px; font-size: 15px; }
	.view-toggle { display: none !important; }

	.browse-map-wrap { height: 280px !important; }
	#plan-one-map { height: 280px !important; min-height: 280px !important; }
	.map-city-tabs { flex-wrap: wrap; gap: 4px; padding: 8px; }
	.map-legend { display: none !important; }

	.browse-grid {
		grid-template-columns: 1fr !important;
		gap: 12px !important;
	}

	.btn { min-height: 44px; }
	.btn-sm { min-height: 36px; }
	.chip { min-height: 32px; }
}

/* ════════════════════════════════════════════════════════════════════════
   SMALL MOBILE (≤ 480px)
   ════════════════════════════════════════════════════════════════════════ */
@media (max-width: 480px) {
	.hero h1,
	.hero-title,
	.hero h1.hero-title { font-size: 56px !important; line-height: 1.02 !important; }
	.page-hero-title { font-size: 30px !important; }
	h2 { font-size: 22px !important; }

	.clients-grid { grid-template-columns: 1fr !important; }
	.po-works-process { grid-template-columns: 1fr !important; }
	.about-stats,
	.stats-bar { grid-template-columns: 1fr 1fr !important; }

	.cta-banner { padding: 24px 18px !important; }
	.cta-banner h2 { font-size: 20px !important; }

	.hero-ctas .btn,
	.cta-banner .btn { flex: 1 1 100%; }
}

@media print {
	.nav,
	.footer,
	.cta-banner,
	.browse-filters-toggle,
	.nav-toggle { display: none !important; }
}

/* ════════════════════════════════════════════════════════════════════════
   MOBILE CAROUSELS — Smooth horizontal scrolling (1.5 cards visible)
   ════════════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {

	/* Horizontal scroll containers */
	.steps,
	.bb-grid.bb-grid-3,
	.svc-preview-grid,
	.works-prev-grid {
		display: flex !important;
		grid-template-columns: none !important;
		gap: 14px !important;
		overflow-x: auto !important;
		overflow-y: visible !important;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scroll-padding-right: 16px;
		scroll-padding-left: 16px;
		padding: 4px 16px 20px !important;
		margin: 0 -16px !important;
		scrollbar-width: none;
	}
	.steps::-webkit-scrollbar,
	.bb-grid::-webkit-scrollbar,
	.svc-preview-grid::-webkit-scrollbar,
	.works-prev-grid::-webkit-scrollbar {
		display: none;
	}

	/* Each card: 70% width = 1.5 cards visible (next peeks) */
	.steps > .step,
	.bb-grid > .bb-card-wrap,
	.bb-grid > .bb-card,
	.svc-preview-grid > .svc-prev,
	.works-prev-grid > .work-prev {
		flex: 0 0 70% !important;
		width: 70% !important;
		max-width: 70% !important;
		scroll-snap-align: start;
		scroll-snap-stop: always;
	}

	/* Last card: add spacer so it scrolls to start */
	.steps::after,
	.bb-grid::after,
	.svc-preview-grid::after,
	.works-prev-grid::after {
		content: '';
		flex: 0 0 16px;
	}

	/* Override responsive 1-col rules from earlier */
	.svc-preview-grid {
		grid-template-columns: none !important;
	}
}

/* On very small screens: cards are slightly wider so they're still readable */
@media (max-width: 480px) {
	.steps > .step,
	.bb-grid > .bb-card-wrap,
	.bb-grid > .bb-card,
	.svc-preview-grid > .svc-prev,
	.works-prev-grid > .work-prev {
		flex: 0 0 80% !important;
		width: 80% !important;
		max-width: 80% !important;
	}
}

/* ════════════════════════════════════════════════════════════════════════
   WORKS PAGE — Mobile fixes
   ════════════════════════════════════════════════════════════════════════ */
@media (max-width: 968px) {
	.po-works-hero-grid {
		grid-template-columns: 1fr !important;
		gap: 24px !important;
	}
	.po-works-hero-right { display: none !important; }
	.po-works-hero-title { font-size: 44px !important; line-height: 1.1 !important; }
	.po-works-hero-stats {
		grid-template-columns: repeat(3, 1fr) !important;
		gap: 12px !important;
	}
	.po-works-hero-stat-num { font-size: 22px !important; }
	.po-works-hero-stat-lbl { font-size: 11px !important; }
}

@media (max-width: 768px) {
	.po-works-hero { padding: 32px 0 24px !important; }
	.po-works-hero-title { font-size: 36px !important; }
	.po-works-hero-lead { font-size: 15px !important; }
	.po-works-hero-stats { display: none !important; }

	.po-works-filter-bar { padding: 8px 0 !important; }
	.po-works-filter {
		gap: 6px !important;
		padding: 0 16px !important;
	}
	.po-works-filter-btn {
		font-size: 13px !important;
		padding: 6px 12px !important;
		flex-shrink: 0;
	}

	/* Card body - more compact on mobile */
	.po-work-card-body { padding: 16px 18px 18px !important; gap: 12px !important; }
	.po-work-card-title { font-size: 17px !important; }
	.po-work-card-image { aspect-ratio: 16 / 11 !important; }
	.po-work-card-mark { font-size: 44px !important; }
}
