/* 
 * Responsive CSS Optimizations
 * Additional media queries and refinements
 */

/* Extra Large Screens (1400px+) */
@media (min-width: 1400px) {
	:root {
		--spacing-xxl: 5rem;
	}

	.container {
		max-width: 1400px;
	}

	h1 {
		font-size: 3rem;
	}

	.sections {
		padding: var(--spacing-xxl) 0;
	}
}

/* Large Screens (992px - 1399px) */
@media (min-width: 992px) and (max-width: 1399px) {
	.container {
		max-width: 960px;
	}
}

/* Medium Screens (768px - 991px) */
@media (max-width: 991px) {
	:root {
		--spacing-xl: 2.5rem;
	}

	.services__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.process__steps {
		grid-template-columns: repeat(2, 1fr);
	}

	.values__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.about__grid {
		grid-template-columns: 1fr;
	}

	.about__intro {
		grid-template-columns: 1fr;
	}

	.about__intro-image {
		height: 280px;
	}

	.hero__title {
		font-size: 2.2rem;
	}

	.section-title {
		font-size: 2rem;
	}

	section {
		padding: var(--spacing-xl) 0;
	}
}

/* Small Screens (576px - 767px) */
@media (max-width: 767px) {
	:root {
		--spacing-lg: 1.5rem;
		--spacing-xl: 2rem;
	}

	.container {
		padding: 0 var(--spacing-sm);
	}

	h1 {
		font-size: 1.75rem;
	}

	h2 {
		font-size: 1.5rem;
	}

	h3 {
		font-size: 1.2rem;
	}

	.navbar {
		padding: calc(var(--spacing-md) / 2) 0;
	}

	.logo-text {
		font-size: 1.2rem;
	}

	.hero {
		padding: var(--spacing-xl) 0;
	}

	.hero__title {
		font-size: 1.75rem;
	}

	.hero__subtitle {
		font-size: 1.2rem;
	}

	.hero__description {
		font-size: 0.95rem;
	}

	.services__grid {
		grid-template-columns: 1fr;
		gap: var(--spacing-md);
	}

	.service-card {
		padding: var(--spacing-md);
	}

	.process__steps {
		grid-template-columns: 1fr;
		gap: var(--spacing-md);
	}

	.claims__grid {
		grid-template-columns: 1fr;
		gap: var(--spacing-md);
	}

	.values__grid {
		grid-template-columns: 1fr;
	}

	.contact-section .container {
		grid-template-columns: 1fr;
		gap: var(--spacing-lg);
	}

	.footer__grid {
		grid-template-columns: 1fr;
	}

	.service-detail {
		flex-direction: column;
		padding: var(--spacing-md);
	}

	.service-detail__icon {
		text-align: center;
		margin-bottom: 0;
	}

	.section-title {
		font-size: 1.5rem;
	}

	.page-header__title {
		font-size: 1.75rem;
	}

	.page-header__subtitle {
		font-size: 1rem;
	}

	section, .cta {
		padding: var(--spacing-lg) 0;
	}

	.btn {
		width: 100%;
		font-size: 0.95rem;
	}

	.btn--lg {
		padding: var(--spacing-md) var(--spacing-lg);
	}
}

/* Extra Small Screens (up to 575px) */
@media (max-width: 575px) {
	:root {
		--spacing-sm: 0.75rem;
		--spacing-md: 1rem;
		--spacing-lg: 1.25rem;
		--spacing-xl: 1.5rem;
		--spacing-xxl: 2rem;
	}

	.container {
		padding: 0 var(--spacing-sm);
	}

	html {
		font-size: 14px;
	}

	h1 {
		font-size: 1.5rem;
		line-height: 1.2;
	}

	h2 {
		font-size: 1.25rem;
	}

	h3 {
		font-size: 1rem;
	}

	.navbar {
		padding: var(--spacing-sm) 0;
	}

	.navbar .container {
		padding: 0 var(--spacing-sm);
	}

	.logo-text {
		font-size: 1rem;
	}

	.hamburger {
		width: 30px;
		height: 30px;
		display: flex;
		flex-direction: column;
		justify-content: center;
	}

	.hamburger span {
		width: 20px;
		height: 2px;
	}

	section {
		padding: var(--spacing-lg) 0;
	}

	.hero {
		padding: var(--spacing-lg) 0;
		text-align: center;
	}

	.hero__title {
		font-size: 1.3rem;
		margin-bottom: var(--spacing-sm);
	}

	.hero__subtitle {
		font-size: 0.95rem;
		margin-bottom: var(--spacing-sm);
	}

	.hero__description {
		font-size: 0.9rem;
	}

	.section-title {
		font-size: 1.3rem;
	}

	.section-subtitle {
		font-size: 0.95rem;
	}

	.services__grid,
	.claims__grid,
	.process__steps,
	.values__grid,
	.about__grid {
		grid-template-columns: 1fr;
		gap: var(--spacing-md);
	}

	.service-card,
	.process-step,
	.about__grid > div,
	.contact-info-block,
	.value {
		padding: var(--spacing-md);
	}

	.page-header {
		padding: var(--spacing-lg) 0;
	}

	.page-header__title {
		font-size: 1.3rem;
		margin-bottom: var(--spacing-sm);
	}

	.page-header__subtitle {
		font-size: 0.95rem;
	}

	.error-code {
		font-size: 2.5rem;
	}

	.error-title {
		font-size: 1.25rem;
	}

	.error-message {
		font-size: 1rem;
	}

	.contact-form,
	.contact__info {
		gap: var(--spacing-md);
	}

	.form-input,
	.form-textarea {
		padding: var(--spacing-sm) calc(var(--spacing-sm) / 2);
	}

	.faq__question {
		padding: var(--spacing-md);
	}

	.faq__answer {
		padding: var(--spacing-md);
	}

	.btn {
		padding: var(--spacing-sm) var(--spacing-md);
		font-size: 0.9rem;
	}

	.btn--lg {
		padding: var(--spacing-md) var(--spacing-lg);
		width: 100%;
	}

	.cta__title {
		font-size: 1.25rem;
	}

	.cta__text {
		font-size: 0.95rem;
	}

	.footer__heading {
		font-size: 0.95rem;
	}

	.footer__content {
		font-size: 0.9rem;
	}

	.footer__bottom {
		font-size: 0.85rem;
	}

	.footer__tagline {
		font-size: 0.85rem;
	}

	.alert {
		padding: var(--spacing-md);
		margin-bottom: var(--spacing-md);
	}

	.alert h3 {
		font-size: 1rem;
		margin-bottom: var(--spacing-xs);
	}

	/* Fix for touch target size */
	button, a.btn, .faq__question {
		min-height: 44px;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	/* Improve form spacing on mobile */
	.form-group {
		margin-bottom: var(--spacing-sm);
	}
}

/* Print Styles */
@media print {
	.navbar,
	.footer,
	.cta,
	.btn,
	.hamburger {
		display: none !important;
	}

	body {
		background: white;
		color: black;
	}

	a {
		text-decoration: underline;
	}

	section {
		page-break-inside: avoid;
	}

	h1, h2, h3 {
		page-break-after: avoid;
	}

	.container {
		max-width: 100%;
		width: 100%;
	}
}

/* High DPI / Retina Displays */
@media (-webkit-min-device-pixel-ratio: 2),
	   (min-resolution: 192dpi) {
	body {
		-webkit-font-smoothing: subpixel-antialiased;
	}
}

/* Reduced Motion Support */
@media (prefers-reduced-motion: reduce) {
	* {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Dark Mode Support (optional future enhancement) */
@media (prefers-color-scheme: dark) {
	/* Fallback: keep current colors, can be enhanced with dark mode colors if desired */
}
