/* =========================================================
   RAMSHIYA GLOBALS — RESPONSIVE STYLESHEET
   Desktop-first overrides for large desktop, tablet and mobile.
   ========================================================= */

/* ---------- Large Desktop (below 1200px) ---------- */
@media (max-width: 1200px) {

	.rg-hero-title {
		font-size: 48px;
	}

	.rg-services-grid,
	.rg-portfolio-grid,
	.rg-reviews-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.rg-why-us-grid,
	.rg-counters-strip {
		grid-template-columns: repeat(2, 1fr);
	}

	.rg-worldwide-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.rg-process-track {
		grid-template-columns: repeat(3, 1fr);
		row-gap: 50px;
	}

	.footer-grid {
		grid-template-columns: 1fr 1fr;
		row-gap: 50px;
	}
}

/* ---------- Tablet (below 1024px) ---------- */
@media (max-width: 1024px) {

	.rg-section {
		padding: 80px 0;
	}

	.main-navigation {
		position: fixed;
		top: 0;
		right: -100%;
		width: min(360px, 85%);
		height: 100vh;
		background: var(--rg-black-soft);
		flex-direction: column;
		justify-content: flex-start;
		padding: 110px 36px 40px;
		transition: right var(--rg-transition);
		z-index: 998;
		box-shadow: -20px 0 60px rgba(0, 0, 0, 0.4);
	}

	.main-navigation.is-open {
		right: 0;
	}

	.primary-menu {
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
		width: 100%;
	}

	.primary-menu > li {
		width: 100%;
		border-bottom: 1px solid var(--rg-gray-700);
	}

	.primary-menu > li > a {
		display: block;
		padding: 16px 0;
	}

	.primary-menu .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		background: transparent;
		display: none;
		padding-left: 16px;
	}

	.primary-menu li.rg-submenu-open > .sub-menu {
		display: block;
	}

	.primary-menu .sub-menu a {
		color: var(--rg-gray-300);
		padding: 10px 0;
	}

	.mobile-menu-toggle {
		display: flex;
	}

	.header-cta {
		display: none;
	}

	.rg-hero-inner {
		grid-template-columns: 1fr;
		text-align: center;
		padding-top: 40px;
	}

	.rg-hero-content {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.rg-hero-cta-group,
	.rg-hero-services-strip {
		justify-content: center;
	}

	.rg-hero-visual {
		height: 340px;
		width: 100%;
		max-width: 480px;
		margin: 0 auto;
	}

	.rg-about-inner,
	.rg-about-story-inner,
	.rg-contact-inner {
		grid-template-columns: 1fr;
	}

	.rg-about-visual,
	.rg-about-story-visual {
		max-width: 420px;
		margin: 0 auto;
	}

	.rg-service-detail-row,
	.rg-service-detail-row.is-reversed {
		grid-template-columns: 1fr;
		direction: ltr;
	}

	.rg-service-detail-visual {
		max-width: 420px;
		margin: 0 auto;
	}

	.rg-archive-layout.has-sidebar {
		grid-template-columns: 1fr;
	}

	.rg-blog-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ---------- Tablet Portrait (below 900px) ---------- */
@media (max-width: 900px) {

	.rg-section-title {
		font-size: 34px;
	}

	.rg-hero-title {
		font-size: 40px;
	}

	.rg-cta-title {
		font-size: 34px;
	}

	.rg-services-grid,
	.rg-portfolio-grid,
	.rg-reviews-grid,
	.rg-blog-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.rg-mission-vision-grid {
		grid-template-columns: 1fr;
	}

	.rg-worldwide-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ---------- Mobile (below 768px) ---------- */
@media (max-width: 768px) {

	.rg-section {
		padding: 64px 0;
	}

	.rg-section-header {
		margin-bottom: 42px;
	}

	.rg-section-title {
		font-size: 28px;
	}

	.rg-section-subtitle {
		font-size: 15.5px;
	}

	.rg-hero {
		min-height: auto;
		padding-top: 130px;
		padding-bottom: 60px;
	}

	.rg-hero-title {
		font-size: 32px;
	}

	.rg-hero-subtitle {
		font-size: 16px;
	}

	.rg-hero-cta-group {
		flex-direction: column;
		width: 100%;
	}

	.rg-hero-cta-group .btn {
		width: 100%;
	}

	.rg-hero-panel-main {
		padding: 30px;
	}

	.rg-hero-panel-value {
		font-size: 54px;
	}

	.rg-hero-panel-float {
		display: none;
	}

	.rg-services-grid,
	.rg-why-us-grid,
	.rg-counters-strip,
	.rg-worldwide-grid,
	.rg-portfolio-grid,
	.rg-reviews-grid,
	.rg-blog-grid,
	.rg-process-track {
		grid-template-columns: 1fr;
	}

	.rg-about-badge {
		position: static;
		margin-top: -40px;
		margin-left: auto;
		margin-right: 20px;
	}

	.rg-cta-title {
		font-size: 28px;
	}

	.rg-contact-form-wrap {
		padding: 30px;
	}

	.rg-form-row {
		grid-template-columns: 1fr;
	}

	.footer-grid {
		grid-template-columns: 1fr;
		gap: 40px;
		text-align: left;
	}

	.footer-bottom-inner {
		flex-direction: column;
		text-align: center;
	}

	.rg-page-banner {
		padding: 150px 0 60px;
	}

	.rg-page-banner-title {
		font-size: 32px;
	}

	.entry-title,
	.page-title {
		font-size: 30px;
	}

	.rg-404-code {
		font-size: 90px;
	}

	.rg-404-search {
		flex-direction: column;
	}

	.rg-post-navigation {
		flex-direction: column;
		gap: 14px;
	}

	.back-to-top {
		width: 44px;
		height: 44px;
		bottom: 20px;
		right: 20px;
	}
}

/* ---------- Small Mobile (below 480px) ---------- */
@media (max-width: 480px) {

	.rg-container {
		padding: 0 18px;
	}

	.rg-hero-title {
		font-size: 27px;
	}

	.rg-section-title {
		font-size: 24px;
	}

	.rg-eyebrow {
		font-size: 12px;
	}

	.btn {
		padding: 13px 24px;
		font-size: 14px;
	}

	.btn-lg {
		padding: 15px 28px;
	}

	.rg-service-card,
	.rg-why-us-card,
	.rg-worldwide-card {
		padding: 28px 22px;
	}

	.rg-testimonial-card {
		padding: 30px 24px;
	}

	.rg-testimonial-text {
		font-size: 16px;
	}

	.rg-page-banner-title {
		font-size: 26px;
	}

	.rg-404-code {
		font-size: 70px;
	}

	.site-title-link {
		font-size: 20px;
	}
}
