/**
 * Ophiro Responsive Breakpoints
 * Mobile-first responsive adjustments
 *
 * @package Ophiro_Ventures
 */

/* ==========================================================================
   TABLET (max-width: 1024px)
   ========================================================================== */

@media (max-width: 1024px) {
	:root {
		--space-5xl: 5rem;
		--space-4xl: 4rem;
	}

	.o-territories__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.o-featured-journeys__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.o-content-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.o-footer-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--space-2xl);
	}

	.o-journey-content {
		grid-template-columns: 1fr;
	}

	.o-journey-content__sidebar {
		position: static;
	}

	.o-pricing-tiers {
		grid-template-columns: 1fr;
	}

	.o-enquire-layout {
		grid-template-columns: 1fr;
	}

	.o-enquire-info {
		padding-right: 0;
		margin-bottom: var(--space-2xl);
	}
}

/* ==========================================================================
   MOBILE (max-width: 768px)
   ========================================================================== */

@media (max-width: 768px) {
	:root {
		--space-5xl: 4rem;
		--space-4xl: 3rem;
		--space-3xl: 2.5rem;
	}

	.o-container {
		padding: 0 var(--space-lg);
	}

	.o-hero__title {
		font-size: clamp(2.5rem, 10vw, 4rem);
	}

	.o-hero__subtitle {
		font-size: var(--text-lg);
	}

	.o-hero__cta-group {
		flex-direction: column;
		gap: var(--space-md);
	}

	.o-hero__cta-group .o-btn {
		width: 100%;
		max-width: 300px;
	}

	.o-territories__grid {
		grid-template-columns: 1fr;
	}

	.o-featured-journeys__grid {
		grid-template-columns: 1fr;
	}

	.o-content-grid {
		grid-template-columns: 1fr;
	}

	.o-checkbox-group {
		grid-template-columns: 1fr;
	}

	.o-inclusions {
		grid-template-columns: 1fr;
	}

	.o-footer-grid {
		grid-template-columns: 1fr;
	}

	.o-footer-trust__inner {
		flex-direction: column;
		text-align: center;
	}

	.o-footer-trust__badges {
		flex-direction: column;
		gap: var(--space-md);
	}

	.o-footer-legal__inner {
		flex-direction: column;
		text-align: center;
		gap: var(--space-md);
	}

	.o-brand-quote {
		padding: var(--space-3xl) var(--space-md);
	}

	.o-brand-quote::before {
		font-size: 8rem;
	}

	.o-brand-quote__text {
		font-size: var(--text-2xl);
	}

	.o-journey-hero {
		height: 50vh;
		min-height: 350px;
	}

	.o-journey-hero__title {
		font-size: clamp(2rem, 6vw, 3rem);
	}

	.o-itinerary-day {
		grid-template-columns: 1fr;
		gap: var(--space-md);
	}

	.o-itinerary-day__number {
		font-size: var(--text-2xl);
	}

	.o-enquire-form {
		padding: var(--space-xl);
	}

	.o-sidebar-card {
		padding: var(--space-xl);
	}

	blockquote {
		padding: var(--space-xl);
		font-size: var(--text-xl);
	}

	.o-section {
		padding: var(--space-3xl) 0;
	}
}

/* ==========================================================================
   SMALL MOBILE (max-width: 480px)
   ========================================================================== */

@media (max-width: 480px) {
	:root {
		--space-5xl: 3rem;
		--space-4xl: 2.5rem;
		--space-3xl: 2rem;
	}

	.o-container {
		padding: 0 var(--space-md);
	}

	.o-hero {
		min-height: 100svh;
	}

	.o-hero__eyebrow {
		font-size: 0.65rem;
		letter-spacing: 0.15em;
	}

	.o-hero__eyebrow::before,
	.o-hero__eyebrow::after {
		width: 20px;
	}

	.o-btn {
		padding: 0.85rem 1.8rem;
		font-size: 0.7rem;
	}

	.o-territory-card {
		padding: var(--space-2xl) var(--space-lg);
	}

	.o-territory-card__icon {
		width: 48px;
		height: 48px;
		font-size: 1.5rem;
	}

	.o-journey-card__body {
		padding: var(--space-lg);
	}

	.o-content-card__body {
		padding: var(--space-lg);
	}

	.o-pricing-card {
		padding: var(--space-xl);
	}

	.o-pricing-card__amount {
		font-size: var(--text-3xl);
	}

	.o-footer-main {
		padding: var(--space-3xl) 0;
	}

	.o-footer-testimonial {
		padding: var(--space-md);
	}

	h1 {
		font-size: clamp(2rem, 8vw, 3rem);
	}

	h2 {
		font-size: clamp(1.75rem, 5vw, 2.5rem);
	}

	h3 {
		font-size: clamp(1.25rem, 4vw, 1.75rem);
	}
}

/* ==========================================================================
   HIGH DPI / RETINA
   ========================================================================== */

@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
	.o-hero__bg img {
		image-rendering: -webkit-optimize-contrast;
	}
}

/* ==========================================================================
   REDUCED MOTION
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}

	.o-reveal {
		opacity: 1;
		transform: none;
	}

	.o-stagger > * {
		opacity: 1;
		transform: none;
	}

	.o-hero__scroll {
		animation: none;
	}

	html {
		scroll-behavior: auto;
	}
}

/* ==========================================================================
   PRINT STYLES
   ========================================================================== */

@media print {
	.o-site-header,
	.o-site-footer,
	.o-hero__scroll,
	.o-menu-toggle,
	.o-nav__cta,
	.o-btn {
		display: none !important;
	}

	body {
		background: white;
		color: black;
	}

	.o-container {
		max-width: 100%;
		padding: 0;
	}

	h1, h2, h3, h4, h5, h6 {
		color: black;
	}

	p, li, td, th {
		color: #333;
	}

	a {
		color: black;
		text-decoration: underline;
	}

	.o-hero {
		min-height: auto;
		height: auto;
		padding: 2rem 0;
	}
}
