/* Responsive Design - Mobile First Approach */

/* Base styles are for mobile (320px - 480px) - defined in styles.css */

/* Mobile adjustments for very small screens */
@media (max-width: 480px) {
    .couple-names {
        font-size: 36px;
    }

    .ampersand {
        font-size: 28px;
    }

    .wedding-date .date {
        font-size: 24px;
        letter-spacing: 2px;
    }

    .wedding-date .time {
        font-size: 20px;
    }

    .countdown-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--spacing-sm);
    }

    .countdown-number {
        font-size: 36px;
    }

    .countdown-label {
        font-size: 12px;
    }

    .section-title {
        font-size: 28px;
    }

    .section-subtitle {
        font-size: 16px;
    }

    .details-grid {
        grid-template-columns: 1fr;
    }

    .detail-item i {
        font-size: 24px;
    }

    .detail-content h3 {
        font-size: 18px;
    }

    .map-container {
        height: 300px;
    }

    .rsvp-form {
        padding: var(--spacing-sm);
    }

    .radio-group {
        gap: var(--spacing-xs);
    }

    .radio-label {
        padding: 10px;
        font-size: 14px;
    }
}

/* Tablet styles (481px - 1024px) */
@media (min-width: 481px) {
    .couple-names {
        font-size: 56px;
    }

    .ampersand {
        font-size: 40px;
    }

    .wedding-date .date {
        font-size: 36px;
    }

    .wedding-date .time {
        font-size: 28px;
    }

    .countdown-grid {
        grid-template-columns: repeat(4, 1fr);
        gap: var(--spacing-md);
    }

    .countdown-number {
        font-size: 56px;
    }

    .countdown-label {
        font-size: 16px;
    }

    .details-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .detail-item.location {
        grid-column: 1 / -1;
    }

    .map-container {
        height: 450px;
    }

    .rsvp-form {
        padding: var(--spacing-md);
    }
}

/* Desktop styles (1025px+) */
@media (min-width: 1025px) {
    .couple-names {
        font-size: 72px;
    }

    .ampersand {
        font-size: 48px;
        margin: var(--spacing-md) 0;
    }

    .wedding-date .date {
        font-size: 40px;
    }

    .wedding-date .time {
        font-size: 32px;
    }

    .countdown-grid {
        gap: var(--spacing-lg);
    }

    .countdown-number {
        font-size: 64px;
    }

    .countdown-label {
        font-size: 18px;
    }

    .section-title {
        font-size: 48px;
    }

    .section-subtitle {
        font-size: 20px;
    }

    .details-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .detail-item.location {
        grid-column: auto;
    }

    .map-container {
        height: 500px;
    }

    .map-section {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: var(--spacing-md);
        align-items: center;
    }

    .map-button {
        writing-mode: vertical-rl;
        text-orientation: mixed;
        padding: var(--spacing-md) var(--spacing-sm);
        height: 100%;
        justify-content: center;
    }

    .rsvp-form {
        padding: var(--spacing-lg);
    }

    .form-group {
        margin-bottom: var(--spacing-md);
    }

    /* Two-column layout for some form fields on desktop */
    .rsvp-form .form-row {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: var(--spacing-md);
    }
}

/* Large desktop (1440px+) */
@media (min-width: 1440px) {
    .container {
        max-width: 1400px;
    }

    .hero-content {
        max-width: 900px;
    }

    .couple-names {
        font-size: 80px;
    }

    .countdown-number {
        font-size: 72px;
    }
}

/* Print styles */
@media print {
    .hero-section {
        min-height: auto;
        padding: var(--spacing-md);
    }

    .countdown-container,
    .rsvp-section,
    .footer {
        display: none;
    }

    .event-details {
        page-break-inside: avoid;
    }

    .map-container iframe {
        display: none;
    }

    .map-button {
        display: inline-block;
    }
}
