/* ═══════════════════════════════════════════
   RESPONSIVE STYLES
   Mobile-friendly adjustments layered on top of
   the retro base styles. Loaded AFTER styles.css.
   ═══════════════════════════════════════════ */

/* ── Small phones ── */
@media (max-width: 480px) {
    body {
        padding: 4px;
        font-size: 14px;
    }

    /* Stack the main table so content isn't squished */
    .main-table,
    .main-table tbody,
    .main-table tr {
        display: block;
        width: 100%;
    }

    /* Sidebar becomes a horizontal strip on top */
    .sidebar {
        display: block;
        width: 100% !important;
        border-right: none;
        border-bottom: 1px solid #7A2A48;
        padding: 10px;
    }

    /* Sidebar links flow horizontally */
    .nav-list {
        display: flex;
        flex-wrap: wrap;
        gap: 6px 14px;
        padding-left: 0;
    }
    .nav-list li {
        margin-bottom: 0;
        list-style: none;
    }

    .content {
        display: block;
        padding: 12px;
    }

    /* Hero text scales down */
    .hero-title {
        font-size: 24px;
    }

    /* Carousel: keep media clear of the arrows on phones */
    .media-slide {
        padding: 0 48px;
    }
    .media-slide img,
    .media-slide video {
        max-height: 45vh;
    }

    /* About photo stacks above the text on phones */
    .about-photo {
        float: none;
        width: 100%;
        margin: 0 0 12px 0;
    }

    /* Service boxes stack their cells */
    .service-box,
    .service-box tbody,
    .service-box tr {
        display: block;
        width: 100%;
    }
    .service-num {
        display: inline-block;
        width: auto;
        padding: 2px 8px;
        margin-bottom: 4px;
    }
    .service-body {
        display: block;
    }

    /* Info box becomes fully stacked */
    .info-box,
    .info-box tbody,
    .info-box tr {
        display: block;
        width: 100%;
    }
    .info-box td {
        display: block;
        width: 100%;
        border: 1px solid #333333;
    }
    .info-label {
        width: auto;
        border-bottom: none;
    }

    /* Footer text wraps */
    .footer {
        font-size: 11px;
    }
}

/* ── Tablets and small laptops ── */
@media (min-width: 481px) and (max-width: 768px) {
    body {
        padding: 6px;
    }

    .sidebar {
        width: 160px !important;
    }

    .hero-title {
        font-size: 30px;
    }
}
