/* ==========================================================================
   Allinonefreelancing — responsive.css
   Breakpoints: 1280 / 1024 / 900 / 768 / 600 / 480 / 380 / 320
   Guarantee: zero horizontal overflow, touch-friendly targets.
   ========================================================================== */

/* ---------- Large desktop ---------- */
@media (min-width: 1600px) {
	.afl-container { max-width: 1280px; }
}

/* ---------- Laptop ---------- */
@media (max-width: 1100px) {
	.afl-hero-inner { grid-template-columns: minmax(0, 1fr) minmax(0, .85fr); }
	.afl-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- Tablet landscape ---------- */
@media (max-width: 1024px) {
	.afl-nav { display: none; }
	.afl-menu-toggle { display: inline-flex; }
	.afl-header-cta { display: none; }

	.afl-hero { min-height: auto; padding-top: calc(var(--afl-header-h) + 40px); }
	.afl-hero-inner { grid-template-columns: minmax(0, 1fr); gap: 52px; }
	.afl-hero-visual { order: -1; }
	.afl-hero-frame { width: min(100%, 380px); }

	.afl-course-layout { grid-template-columns: minmax(0, 1fr); }
	.afl-course-head { position: static; }
	.afl-course-head .afl-section-title,
	.afl-course-head .afl-section-sub { text-align: center; margin-inline: auto; }
	.afl-course-divider { margin-inline: auto; }

	.afl-mentor-layout { grid-template-columns: minmax(0, 1fr); gap: 44px; }
	.afl-blog-layout { grid-template-columns: minmax(0, 1fr); }
	.afl-sidebar { order: 2; }
}

/* ---------- Tablet portrait ---------- */
@media (max-width: 820px) {
	.afl-strip-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; }
	.afl-strip-item { justify-content: flex-start; padding: 12px 6px; font-size: 12px; letter-spacing: .12em; }

	.afl-pricing-grid { grid-template-columns: minmax(0, 1fr); max-width: 560px; }
	.afl-price-card-premium { transform: none; order: -1; }
	.afl-price-card-premium:hover { transform: translateY(-6px); }

	.afl-compare-table thead { display: none; }
	.afl-compare-table, .afl-compare-table tbody, .afl-compare-table tr, .afl-compare-table th, .afl-compare-table td { display: block; width: 100%; }
	.afl-compare-table tr {
		padding: 14px 18px 16px;
		border-bottom: 1px solid rgba(255,255,255,.06);
	}
	.afl-compare-table tbody th {
		padding: 0 0 10px;
		font-family: var(--afl-font-head);
		font-size: 15px;
		border: 0;
	}
	.afl-compare-table td {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 14px;
		padding: 8px 0;
		border: 0;
		background: transparent !important;
	}
	.afl-compare-table td::before {
		content: attr(data-label);
		color: var(--afl-muted-2);
		font-size: 13px;
	}
	.afl-post-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Mobile ---------- */
@media (max-width: 640px) {
	:root { --afl-header-h: 66px; }
	.afl-brand .custom-logo, .afl-brand .afl-logo-img { height: 42px; max-width: 150px; }

	.afl-section { padding: 56px 0; }
	.afl-module-grid { grid-template-columns: minmax(0, 1fr); }
	.afl-module { padding: 24px 20px 22px; }
	.afl-module-title { padding-right: 0; font-size: 17px; }
	.afl-module-number { font-size: 52px; top: 10px; right: 12px; opacity: .8; }

	.afl-mentor-points { grid-template-columns: minmax(0, 1fr); }
	.afl-skill { grid-template-columns: auto minmax(0, 1fr); padding: 18px; }
	.afl-skill-index { display: none; }

	.afl-hero-ctas { flex-direction: column; align-items: stretch; }
	.afl-hero-ctas .afl-btn { width: 100%; }
	.afl-hero-assurance { flex-direction: column; gap: 10px; }
	.afl-hero-frame { width: 100%; max-width: 340px; }
	.afl-hero-chip { font-size: 11px; padding: 9px 14px; }

	.afl-final-cta-actions { flex-direction: column; align-items: stretch; }
	.afl-receipt-details { grid-template-columns: minmax(0, 1fr); }
	.afl-receipt-actions { flex-direction: column; align-items: stretch; }
	.afl-receipt-actions .afl-btn { width: 100%; }

	.afl-footer-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
	.afl-footer-bottom { justify-content: center; text-align: center; }

	.afl-price-card { padding: 34px 22px 26px; }
	.afl-price-badge { left: 22px; }
	.afl-price-title { min-height: 0; }

	.afl-wa-float { width: 54px; height: 54px; right: calc(14px + env(safe-area-inset-right)); }
}

/* ---------- Small mobile ---------- */
@media (max-width: 400px) {
	.afl-container { padding-inline: 16px; }
	.afl-section-title { font-size: 25px; }
	.afl-hero-title { font-size: 30px; }
	.afl-strip-item { font-size: 10.5px; letter-spacing: .08em; gap: 8px; }
	.afl-strip-item .afl-icon { width: 17px; height: 17px; }
	.afl-btn { padding: 13px 18px; font-size: 12.5px; min-height: 50px; }
	.afl-faq-trigger { padding: 16px 16px; font-size: 14.5px; }
	.afl-faq-answer { padding: 0 16px 18px; }
	.afl-module-number { font-size: 44px; }
}

/* ---------- Tiny (320px) ---------- */
@media (max-width: 340px) {
	.afl-hero-title { font-size: 27px; }
	.afl-strip-list { grid-template-columns: minmax(0, 1fr); }
	.afl-section-title { font-size: 23px; }
}

/* ---------- Short viewports / landscape phones ---------- */
@media (max-height: 520px) and (orientation: landscape) {
	.afl-hero { min-height: auto; padding-top: calc(var(--afl-header-h) + 30px); }
}

/* ---------- iOS safe areas on fixed elements ---------- */
@supports (padding: env(safe-area-inset-top)) {
	.afl-mobile-menu { padding-bottom: calc(24px + env(safe-area-inset-bottom)); }
}

/* ---------- Hover-less devices: no hover-only affordances ---------- */
@media (hover: none) {
	.afl-btn-gold::after { display: none; }
	.afl-skill:hover, .afl-module:hover, .afl-price-card:hover, .afl-post-card:hover { transform: none; }
	.afl-price-card-premium { transform: scale(1.01); }
}
