/* ==========================================================================
   Joy Pest Controls — Responsive
   ========================================================================== */

/* --- Tablet (max 1024px) ---------------------------------------------------- */

@media (max-width: 1024px) {

	.jpc-section { padding: 80px 0; }

	/* Header: collapse nav into hamburger; solid cream bar */
	.jpc-header-nav,
	.jpc-header-actions { display: none; }

	.jpc-hamburger { display: flex; }

	/* Below desktop the pill is always solid white for legibility */
	.jpc-header .jpc-header-inner {
		background: rgba(255, 255, 255, 0.94);
		border-color: var(--line-soft);
		padding: 10px 12px 10px 20px;
	}

	/* Hero */
	.jpc-hero {
		padding-left: 28px;
		padding-right: 28px;
	}

	/* Keep the photo's subject visible as the viewport narrows */
	.jpc-hero-media img { object-position: 78% center; }

	/* Grids drop to 2 columns */
	.jpc-services-grid,
	.jpc-reviews-grid { grid-template-columns: repeat(2, 1fr); }

	/* Carousels show 2 cards per view */
	.jpc-carousel-track > * { flex-basis: calc((100% - 26px) / 2); }

	.jpc-process-panel { grid-template-columns: 1fr; padding: 44px; }
	.jpc-process-media { min-height: 340px; }
	.jpc-process-media img { border-radius: var(--radius-md); }

	.jpc-why-grid,
	.jpc-about-grid { gap: 44px; }

	.jpc-quote-grid { grid-template-columns: 1fr; }
	.jpc-guarantee-stamp { top: -32px; right: 8px; }

	.jpc-footer-grid { grid-template-columns: 1fr 1fr; gap: 44px; }

	/* Column separators only work in the 4-across layout */
	.jpc-footer-col,
	.jpc-footer-col + .jpc-footer-col { border-left: none; padding-left: 0; padding-right: 0; }

	.jpc-footer-newsletter { padding: 28px; }

	.jpc-cta-stats-row { gap: 16px; }
	.jpc-cta-stat { padding: 26px 36px; }

	/* Blog + info cards: 2 columns */
	.jpc-blog-grid,
	.jpc-info-cards-grid,
	.jpc-info-cards-grid-4 { grid-template-columns: repeat(2, 1fr); }

	/* Service detail stacks */
	.jpc-service-detail-grid { grid-template-columns: 1fr; gap: 44px; }
	.jpc-service-detail-img { aspect-ratio: 16 / 9; }
}

/* --- Mobile (max 768px) ------------------------------------------------------ */

@media (max-width: 768px) {

	.jpc-section { padding: 64px 0; }

	.jpc-container { padding: 0 20px; }

	.jpc-section-title { font-size: 1.85rem; }
	.jpc-section-header { margin-bottom: 44px; }

	/* Hero: gradient covers more of the frame so copy stays readable */
	.jpc-hero {
		min-height: 0;
		padding: 136px 20px 64px;
	}

	.jpc-hero::before {
		background: linear-gradient(to right,
			rgba(2, 41, 30, 0.95) 0%,
			rgba(3, 63, 45, 0.88) 45%,
			rgba(3, 63, 45, 0.62) 75%,
			rgba(3, 63, 45, 0.4) 100%);
	}

	.jpc-hero-title { font-size: clamp(2.3rem, 9.5vw, 3rem); }

	.jpc-hero-buttons { flex-direction: column; align-items: stretch; }
	.jpc-hero-buttons .jpc-btn { width: 100%; box-sizing: border-box; min-height: 52px; }

	.jpc-hero-stats { justify-content: space-between; }
	.jpc-hero-stat { padding: 0 14px; }
	.jpc-hero-stat-number { font-size: 1.55rem; }

	/* Trust bar: 2-column grid */
	.jpc-trust-bar-row {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 14px;
	}

	/* All grids single column */
	.jpc-services-grid,
	.jpc-reviews-grid,
	.jpc-contact-cards { grid-template-columns: 1fr; }

	/* Carousels show 1 card per view */
	.jpc-carousel-track > * { flex-basis: 100%; }

	/* Process panel stacks */
	.jpc-process-panel { padding: 28px 22px; gap: 34px; border-radius: var(--radius-card); }
	.jpc-pest-facts-row { grid-template-columns: 1fr 1fr; }

	/* About + why-choose-us: image top, content below */
	.jpc-about-grid,
	.jpc-why-grid { grid-template-columns: 1fr; gap: 50px; }

	/* About page story stacks; tagline scales down */
	.jpc-about-story-grid { grid-template-columns: 1fr; gap: 36px; }
	.jpc-about-tagline { font-size: 1.3rem; }
	.jpc-floating-badge { left: 0; }
	.jpc-why-stat-card { right: 12px; }

	/* Quote form */
	.jpc-form-row { grid-template-columns: 1fr; gap: 0; }
	.jpc-quote-form-card { padding: 30px 22px; border-radius: var(--radius-card); }
	.jpc-guarantee-stamp { transform: rotate(12deg) scale(0.76); top: -46px; right: 0; }

	/* Touch-friendly form controls */
	.jpc-form-field input,
	.jpc-form-field select,
	.jpc-form-field textarea { min-height: 50px; }

	/* CTA bands */
	.jpc-cta-band { padding: 64px 0; }
	.jpc-cta-band-buttons { flex-direction: column; align-items: center; }
	.jpc-cta-band-buttons .jpc-btn { width: 100%; max-width: 340px; box-sizing: border-box; min-height: 52px; }
	.jpc-cta-stats-row { flex-direction: column; align-items: stretch; }
	.jpc-cta-stat { padding: 24px; }
	.jpc-cta-stat-number { font-size: 2.3rem; }

	/* Footer: single column stack */
	.jpc-footer { padding-top: 60px; }
	.jpc-footer-grid { grid-template-columns: 1fr; gap: 42px; padding-bottom: 48px; }
	.jpc-footer-newsletter { margin-bottom: 44px; }
	.jpc-footer-newsletter-form { width: 100%; }
	.jpc-footer-newsletter-form .jpc-btn { width: 100%; }

	/* Inner page heroes */
	.jpc-page-hero { padding: 140px 0 64px; }

	/* Reviews summary banner stacks */
	.jpc-reviews-summary-card { flex-direction: column; gap: 28px; padding: 36px 26px; text-align: center; }
	.jpc-reviews-summary-divider { width: 100%; height: 1px; align-self: auto; }
	.jpc-reviews-summary-text { max-width: none; }
	.jpc-reviews-summary-actions { justify-content: center; }

	/* Blog + info cards: single column */
	.jpc-blog-grid,
	.jpc-info-cards-grid,
	.jpc-info-cards-grid-4 { grid-template-columns: 1fr; }

	.jpc-pagination .nav-links { gap: 8px; }

	/* Single post */
	.jpc-single-featured-img,
	.jpc-single-featured img { aspect-ratio: 16 / 10; }

	.jpc-prose { font-size: 1rem; }

	.jpc-single-footer { flex-direction: column; }
	.jpc-single-footer .jpc-btn { width: 100%; box-sizing: border-box; }

	/* CTA panel */
	.jpc-cta-panel { padding: 52px 24px; }
	.jpc-cta-panel-text { font-size: var(--text-base); }

	.jpc-service-detail-buttons { flex-direction: column; align-items: stretch; }
	.jpc-service-detail-buttons .jpc-btn { width: 100%; box-sizing: border-box; min-height: 52px; }
}

/* --- Small mobile (max 480px) -------------------------------------------------- */

@media (max-width: 480px) {

	.jpc-hero-stats { flex-wrap: wrap; gap: 16px; }
	.jpc-hero-stat { border-left: none; padding: 0; flex: 1 1 30%; }

	.jpc-city-pill { font-size: 0.85rem; padding: 10px 18px; }

	.jpc-faq-question { font-size: 1rem; padding: 18px; }
	.jpc-faq-answer p { padding: 0 18px 18px; }

	.jpc-steps { grid-template-columns: 1fr; }
	.jpc-why-feature-cards { grid-template-columns: 1fr; }
	.jpc-pest-facts-row { grid-template-columns: 1fr; }
	.jpc-pest-item { width: 94px; }
	.jpc-pest-item-icon { width: 70px; height: 70px; font-size: 1.75rem; }
}
