/* ============================================================
   10-mobile-phone.css — Smartphone responsive (≤768px)
   Depends on: all previous CSS files
   ============================================================ */

@media (max-width: 768px) {
    /* Section padding */
    .section {
        padding: clamp(2.5rem, 6vw, 4rem) 0;
    }

    /* Container */
    .container {
        padding: 0 1rem;
    }

    /* Navigation */
    .nav-inner {
        height: 64px;
    }

    .brand-logo {
        height: 44px;
    }

    .brand-mark {
        width: 28px;
        height: 28px;
    }

    .nav-links {
        top: 64px;
    }

    /* Hero */
    .hero {
        padding-top: clamp(2rem, 5vw, 3rem);
        padding-bottom: clamp(2rem, 5vw, 3rem);
    }

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

    .hero-stats {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }

    .hero-meta {
        flex-direction: column;
        gap: 0.5rem;
    }

    /* Section titles */
    .section-title {
        font-size: clamp(1.5rem, 5vw, 2rem);
    }

    .h-display {
        font-size: clamp(2.5rem, 8vw, 4rem);
    }

    .h-1 {
        font-size: clamp(2rem, 6vw, 3rem);
    }

    .h-2 {
        font-size: clamp(1.5rem, 4vw, 2rem);
    }

    /* Materie grid */
    .materie-grid {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }

    /* Blog list */
    .blog-item {
        grid-template-columns: 1fr;
        gap: 0.5rem;
        padding: 1rem 0;
    }

    .blog-item-number {
        display: none;
    }

    /* Blog chips */
    .chips {
        flex-wrap: wrap;
        gap: 0.4rem;
    }

    .chip {
        padding: 0.4rem 0.75rem;
        font-size: 0.8rem;
    }

    /* Timeline */
    .timeline {
        grid-template-columns: 80px 1fr;
        gap: 1rem;
    }

    .timeline-year {
        font-size: 0.85rem;
    }

    /* Booking */
    .booking-shell {
        grid-template-columns: 1fr;
    }

    .booking-cal,
    .booking-form {
        padding: 1rem;
    }

    .slot-grid {
        grid-template-columns: repeat(auto-fill, minmax(65px, 1fr));
        gap: 0.4rem;
    }

    .slot-btn {
        padding: 0.5rem;
        font-size: 0.8rem;
    }

    /* Contact */
    .contact-grid {
        grid-template-columns: 1fr;
    }

    .contact-row {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }

    .contact-label {
        font-size: 0.75rem;
    }

    /* Map */
    .map-pin {
        height: 250px;
    }

    /* Social buttons */
    .social-buttons {
        flex-direction: column;
    }

    .social-btn {
        width: 100%;
        justify-content: center;
    }

    /* Dashboard */
    .dash-shell {
        flex-direction: column;
    }

    .dash-sidebar {
        position: static;
        width: 100%;
        min-height: auto;
        border-right: none;
        border-bottom: 1px solid var(--line);
    }

    .dash-main {
        padding: 1rem;
    }

    .dash-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }

    .dash-header h1 {
        font-size: 1.75rem;
    }

    .dash-stats {
        grid-template-columns: 1fr 1fr;
        gap: 0.75rem;
    }

    .stat-card {
        padding: 1rem;
    }

    .stat-label {
        font-size: 0.7rem;
    }

    .stat-num {
        font-size: 1.5rem;
    }

    .dash-cols {
        grid-template-columns: 1fr;
    }

    .tools-grid {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }

    .tool-card {
        padding: 1rem;
    }

    /* Agenda */
    .appt {
        grid-template-columns: 1fr;
        gap: 0.25rem;
        padding: 0.75rem 0;
    }

    .appt-time {
        font-size: 0.75rem;
    }

    .appt-name {
        font-size: 0.9rem;
    }

    .appt-badge {
        justify-self: flex-start;
        margin-top: 0.25rem;
    }

    /* Calendar grid in agenda */
    .cal-grid {
        font-size: 0.7rem;
    }

    .cal-day {
        font-size: 0.7rem;
    }

    /* Login */
    .login-card {
        max-width: 100%;
        padding: 1.5rem;
    }

    .login-card h1 {
        font-size: 1.75rem;
    }

    .form-stack {
        gap: 0.75rem;
    }

    .form-stack input,
    .form-stack button {
        padding: 0.75rem;
        font-size: 0.95rem;
    }

    /* Coming soon */
    .coming-soon-page {
        padding: 1.5rem 1rem;
    }

    .cs-logo {
        height: 60px;
    }

    .cs-title {
        font-size: clamp(1.75rem, 7vw, 2.5rem);
    }

    .cs-subtitle {
        font-size: 0.9rem;
        padding: 0 0.5rem;
    }

    .cs-countdown {
        flex-direction: column;
        gap: 0.75rem;
    }

    .cs-countdown-item {
        padding: 0.75rem 1.25rem;
    }

    .cs-countdown-num {
        font-size: 1.5rem;
    }

    .cs-footer {
        flex-direction: column;
        gap: 0.5rem;
        text-align: center;
    }

    /* Footer */
    .footer {
        padding: 3rem 0 1.5rem;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .footer-bottom {
        flex-direction: column;
        gap: 0.5rem;
        text-align: center;
    }

    /* Buttons */
    .btn {
        padding: 0.65rem 1.25rem;
        font-size: 0.85rem;
    }

    .btn-sm {
        padding: 0.5rem 1rem;
        font-size: 0.8rem;
    }

    /* Cards */
    .card {
        padding: 1rem;
    }

    /* Rules/accordion */
    .rule {
        padding: 1rem;
    }

    .rule-title {
        font-size: 0.95rem;
    }

    /* Back link */
    .back-link {
        font-size: 0.85rem;
        padding: 0.5rem 0;
    }

    /* Article */
    .article-content {
        font-size: 0.95rem;
        line-height: 1.7;
    }

    .article-content h2 {
        font-size: 1.5rem;
    }

    .article-content h3 {
        font-size: 1.25rem;
    }

    /* Touch targets — minimum 44px */
    a, button, input, select, textarea {
        min-height: 44px;
    }

    .nav-link {
        min-height: 48px;
    }

    .chip {
        min-height: 36px;
    }

    /* Prevent horizontal scroll */
    body {
        overflow-x: hidden;
    }

    /* Fix tables/grids that overflow */
    table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

/* Very small phones (≤480px) */
@media (max-width: 480px) {
    .container {
        padding: 0 0.75rem;
    }

    .dash-stats {
        grid-template-columns: 1fr;
    }

    .stat-card {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .hero-title {
        font-size: clamp(2rem, 12vw, 3rem);
    }

    .cs-countdown-item {
        padding: 0.5rem 1rem;
    }

    .cs-countdown-num {
        font-size: 1.25rem;
    }

    .cs-countdown-label {
        font-size: 0.65rem;
    }
}
