@media (max-width: 1024px) {
    .nav-links { display: none; }
    .hero-grid { grid-template-columns: 1fr; gap: var(--space-3xl); }
    .hero-visual { max-width: 500px; margin: 0 auto; }
    .selector-grid { grid-template-columns: repeat(2, 1fr); }
    .location-card { grid-template-columns: 1fr; min-height: auto; }
    .location-image-wrapper { height: 300px; }
    .location-card:nth-child(even) .location-image-wrapper { order: 0; }
    .birthday-grid { grid-template-columns: 1fr; gap: var(--space-3xl); }
    .proof-grid { grid-template-columns: repeat(2, 1fr); }
    .proof-item:nth-child(2)::after { display: none; }
    .partners-grid { grid-template-columns: repeat(2, 1fr); }
    .partner-card { min-height: 100px; padding: var(--space-lg); }
    .visit-grid { grid-template-columns: repeat(2, 1fr); }
    .reviews-grid { grid-template-columns: 1fr; max-width: 560px; margin: 0 auto; }
    .how-grid { grid-template-columns: repeat(2, 1fr); }
    .reviews-track .review-card { flex-basis: calc(50% - 8px); }
    .team-grid { grid-template-columns: repeat(2, 1fr); }
    .cases-stack { grid-template-columns: 1fr; max-width: 640px; margin: 0 auto var(--space-2xl); }
    .case-card:nth-child(2), .case-card:nth-child(3) { transform: none; }
    .calc-grid { grid-template-columns: 1fr 1fr; }
    .calc-out { grid-column: 1 / -1; text-align: left; }
    .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
    section { overflow-x: clip; }
    .selector, .locations, .birthday, .events, .proof, .gallery,
    .pricing, .partners, .reviews, .visit, .faq, .how, .team { padding-top: 2.5rem; padding-bottom: 2.5rem; }
    .final-cta { min-height: auto; padding-top: 3rem; }
    .hero { min-height: auto; padding-top: 84px; padding-bottom: var(--space-2xl); }
    .section-header { margin-bottom: var(--space-2xl); }
    .section-number { margin-bottom: var(--space-md); }
    .display-lg { font-size: clamp(1.75rem, 7.5vw, 2.4rem); }
    .locations-title, .birthday-title, .pricing-title, .gallery-title, .reviews-title, .faq-title { font-size: clamp(1.9rem, 8vw, 2.6rem); }
    .selector-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-sm); }
    .selector-card { aspect-ratio: 3/4; padding: var(--space-md); }
    .selector-card-desc { display: none; }
    .selector-card-label { opacity: 1; transform: none; font-size: 0.6rem; }
    .selector-card-title { font-size: 1.15rem; }
    .selector-card-arrow { width: 28px; height: 28px; top: var(--space-md); right: var(--space-md); font-size: 0.9rem; }
    .how-grid { grid-template-columns: 1fr; }
    .reviews-track .review-card { flex-basis: 100%; }
    .team-grid { grid-template-columns: 1fr; }
    .calc-grid { grid-template-columns: 1fr; }
    .schedule-row { grid-template-columns: 1fr; gap: 4px; }
    .footer-cta { flex-direction: column; align-items: stretch; text-align: center; }
    .how-actions { flex-direction: column; align-items: stretch; }
    .how-actions .btn { justify-content: center; }
    .hero-actions { flex-direction: column; align-items: stretch; width: 100%; }
    .hero-actions .btn { width: 100%; justify-content: center; }
    .birthday-content .btn { width: 100%; justify-content: center; margin-left: 0 !important; }
    .birthday-content .btn-primary { margin-bottom: 12px; }
    .navbar-inner { padding: 14px 20px; gap: var(--space-md); }
    .hero-actions { flex-direction: column; align-items: stretch; width: 100%; }
    .hero-actions .btn { width: 100%; justify-content: center; }
    .hero-grid { gap: var(--space-xl); }
    .hero-title { font-size: clamp(2rem, 9vw, 2.8rem); }
    .hero-description { font-size: 1.05rem; }
    .hero-image-wrapper { aspect-ratio: 4/3; }
    .hero-proof { font-size: 0.8rem; }
    .hero-tag { margin-bottom: var(--space-lg); }
    .hero-description { margin-bottom: var(--space-xl); }
    .proof-grid { grid-template-columns: 1fr 1fr; gap: var(--space-sm); }
    .proof-item { padding: var(--space-lg) var(--space-md); }
    .proof-number { font-size: 2.2rem; }
    .proof-label { font-size: 0.7rem; }
    .proof-item::after { display: none !important; }
    .carousel-viewport { aspect-ratio: 16/10; }
    .carousel-btn { width: 44px; height: 44px; font-size: 1.1rem; }
    .faq-q::after { width: 36px; height: 36px; }
    .map-pin { width: 34px; height: 34px; }
    .sticky-cta { padding-bottom: calc(var(--space-sm) + env(safe-area-inset-bottom, 0px)); }
    .toast { bottom: calc(96px + env(safe-area-inset-bottom, 0px)); font-size: 0.8rem; }
    .carousel-prev { left: var(--space-md); }
    .carousel-next { right: var(--space-md); }
    .footer-grid { grid-template-columns: 1fr; gap: var(--space-2xl); }
    .visit-grid { grid-template-columns: 1fr; }
    .visit-map iframe { height: 300px; }
    .locations-grid--grid2 { grid-template-columns: 1fr; }
    .calc-grid, .calc-grid--4 { grid-template-columns: 1fr; }
    .calc-out { text-align: left; }
    .calc-block { padding: var(--space-xl); }
    .locations-grid--grid2 .location-card--wide .location-content { grid-template-columns: 1fr; grid-template-areas: "num" "addr" "info" "desc" "actions"; gap: var(--space-sm); padding: var(--space-lg); }
    .location-card--compact .location-content { padding: var(--space-lg); }
    .sticky-cta { display: none; }
    .tabbar { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 950; background: rgba(242, 247, 252, 0.92); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-top: 1px solid var(--border); padding-bottom: env(safe-area-inset-bottom, 0px); transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, visibility 0s; }
    .tabbar.tabbar-hidden { transform: translateY(150%); opacity: 0; visibility: hidden; transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, visibility 0s 0.35s; }
    .tabbar-row { position: relative; display: flex; align-items: stretch; justify-content: space-around; height: 66px; }
    .tab-indicator { position: absolute; top: 7px; bottom: 7px; left: 0; width: 0; border-radius: 16px; background: var(--accent-dim); opacity: 0; transition: left 0.35s cubic-bezier(0.4, 0, 0.2, 1), width 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease; }
    .tab-indicator.on { opacity: 1; }
    .tab { position: relative; z-index: 1; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; color: var(--text-muted); font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; min-width: 56px; transition: color var(--transition-fast); }
    .tab svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
    .tab.active { color: var(--accent); }
    .tab-fab { position: relative; z-index: 1; align-self: center; width: 60px; height: 60px; margin: -24px 2px 0; border-radius: 50%; background: linear-gradient(135deg, var(--accent), var(--accent-hover)); color: #FFFFFF; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; font-size: 0.58rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; box-shadow: 0 10px 28px var(--accent-glow); animation: tabfabPulse 2.6s ease-in-out infinite; transition: transform 0.15s ease; }
    .tab-fab svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
    .tab-fab:active { transform: scale(0.92); }
    @keyframes tabbarUp { from { transform: translateY(110%); } to { transform: none; } }
    @keyframes tabfabPulse { 0%, 100% { box-shadow: 0 10px 28px var(--accent-glow); } 50% { box-shadow: 0 10px 36px var(--accent-glow), 0 0 0 8px var(--accent-dim); } }
    .final-cta { padding-bottom: calc(var(--space-2xl) + 80px); }
    .hero-scroll { display: none; }
    .hero-badge { bottom: -15px; left: -10px; font-size: 0.7rem; padding: var(--space-sm) var(--space-md); }
    .gallery-header { flex-direction: column; align-items: flex-start; }
    .hero-grid { gap: var(--space-xl); }
    .hero-title { font-size: clamp(2rem, 9vw, 2.8rem); }
    .hero-description { font-size: 1.05rem; }
    .hero-image-wrapper { aspect-ratio: 4/3; }
    .hero-proof { font-size: 0.8rem; }
    .navbar-inner { gap: var(--space-md); }
    .logo { font-size: 1.2rem; }
    .nav-cta .btn { font-size: 0.7rem; padding: var(--space-xs) var(--space-md); }
    .section-number { font-size: 0.65rem; letter-spacing: 0.15em; }
    .section-number::before { width: 20px; }
    .location-content { padding: var(--space-lg); }
    .location-desc { font-size: 0.9rem; }
    .visit-card { padding: var(--space-lg); }
    .review-card { padding: var(--space-xl); }
    .faq-q { padding: var(--space-md) var(--space-lg); font-size: 0.9rem; }
    .marquee { padding: var(--space-md) 0; }
    .birthday-image { aspect-ratio: 16/10; }
    .how-card, .team-card { padding: var(--space-lg); }
    .footer { padding: var(--space-2xl) 0 var(--space-xl); }
    .location-address { font-size: clamp(1.5rem, 5vw, 2rem); }
    .location-actions { flex-direction: column; }
    .location-actions .btn { width: 100%; justify-content: center; }
    .birthday-float { bottom: -15px; right: -10px; padding: var(--space-md) var(--space-lg); }
    .birthday-float-number { font-size: 1.6rem; }
    .final-cta-title { font-size: clamp(2rem, 10vw, 3rem); }
    .footer-grid { gap: var(--space-xl); }
    .footer-logo { font-size: 1.5rem; }
}

@media (max-width: 480px) {
    .hero-actions { flex-direction: column; align-items: stretch; }
    .hero-actions .btn { justify-content: center; }
    .final-cta-title { font-size: clamp(1.8rem, 11vw, 2.6rem); }
    .footer-bottom { flex-direction: column; align-items: flex-start; }
    .footer-socials { gap: var(--space-sm); }
    .footer-social { width: 36px; height: 36px; font-size: 0.7rem; }
    .marquee-item { font-size: clamp(1.2rem, 4vw, 1.8rem); gap: var(--space-lg); }
    .selector-card { padding: var(--space-md); }
    .selector-card-title { font-size: clamp(1.2rem, 4vw, 1.8rem); }
    .selector-card-arrow { top: var(--space-md); right: var(--space-md); width: 32px; height: 32px; font-size: 1rem; }
    .location-image-wrapper { height: 160px; }
    .birthday-tags { gap: var(--space-xs); }
    .birthday-tag { padding: var(--space-xs) var(--space-md); font-size: 0.7rem; }
    .final-cta-actions { flex-direction: column; align-items: stretch; }
    .final-cta-actions .btn { justify-content: center; }
    .sticky-cta { padding: var(--space-sm) var(--container-padding); }
    .sticky-cta .btn { padding: var(--space-md); font-size: 0.8rem; }
}

@media (max-width: 360px) {
    .hero-title { font-size: 1.8rem; }
    .hero-subtitle { font-size: 0.85rem; }
    .hero-description { font-size: 0.95rem; }
    .logo { font-size: 1.1rem; }
    .navbar { padding: var(--space-md) 0; }
    .navbar-inner { gap: var(--space-sm); }
    .nav-cta .btn { padding: var(--space-xs) var(--space-sm); font-size: 0.65rem; }
    .display-lg { font-size: 1.6rem; }
    .locations-title { font-size: 1.7rem; }
    .birthday-title { font-size: 1.7rem; }
    .pricing-title { font-size: 1.7rem; }
    .gallery-title { font-size: 1.7rem; }
}

@media (max-height: 500px) and (orientation: landscape) {
    .hero { min-height: auto; padding-top: 100px; padding-bottom: var(--space-3xl); }
    .hero-grid { grid-template-columns: 1fr 1fr; gap: var(--space-xl); }
    .hero-title { font-size: 3rem; }
    .hero-visual { max-width: 300px; }
    .mobile-menu { flex-direction: row; flex-wrap: wrap; justify-content: center; align-items: center; gap: var(--space-md); }
    .mobile-menu a { font-size: 1.2rem; }
}

@media (min-width: 1600px) {
    .container { max-width: 1600px; }
    .hero-title { font-size: 9rem; }
    .display-lg { font-size: 7rem; }
    .locations-title { font-size: 8rem; }
    .final-cta-title { font-size: 11rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
    .marquee-inner { animation: none !important; }
    .reveal, .reveal-left, .reveal-right, .reveal-scale { opacity: 1 !important; transform: none !important; }
    .stagger > * { opacity: 1 !important; transform: none !important; }
    .hero-title .line span { transform: none !important; animation: none !important; }
    .loader-text span { transform: none !important; opacity: 1 !important; animation: none !important; }
}

@media (hover: none) {
    .selector-card-label { transform: none; opacity: 1; }
    .selector-card-desc { max-height: 120px; opacity: 1; }
}

@media print {
    .navbar, .mobile-menu, .sticky-cta, .hero-scroll, .hero-portal, .marquee, .btn, .scroll-progress { display: none !important; }
    body { background: white; color: black; }
    section { page-break-inside: avoid; }
    .hero-title, .display-lg, .locations-title, .final-cta-title { font-size: 24pt; }
}