/* ============================================
   森の喫茶店 - スマホ版 (max-width: 768px)
   ============================================ */

@media (max-width: 768px) {

    html {
        font-size: 15px;
    }

    .container {
        padding: 0 20px;
    }

    .section {
        padding: 60px 0;
    }

    /* Header */
    .header-inner {
        padding: 14px 20px;
    }

    .logo-mark {
        width: 32px;
        height: 32px;
        font-size: 14px;
    }

    .logo-text {
        font-size: 16px;
    }

    .nav {
        display: none;
    }

    .hamburger {
        display: flex;
    }

    /* Hero */
    .hero {
        min-height: 90vh;
    }

    .hero-content {
        padding: 100px 24px 60px;
    }

    .hero-title {
        font-size: clamp(28px, 9vw, 44px);
        letter-spacing: 0.06em;
        line-height: 1.6;
    }

    .hero-sub {
        font-size: 13px;
        line-height: 2;
    }

    .hero-wave svg {
        height: 40px;
    }

    /* Section heading */
    .section-head {
        margin-bottom: 40px;
    }

    .section-eyebrow {
        font-size: 11px;
    }

    .section-title {
        font-size: clamp(20px, 5vw, 26px);
    }

    /* About */
    .about {
        padding: 60px 0 40px;
    }

    .about-grid {
        gap: 36px;
    }

    .about-text h2 {
        font-size: 18px;
        line-height: 1.7;
    }

    .about-text p {
        font-size: 14px;
        line-height: 2;
    }

    .about-features {
        grid-template-columns: repeat(3, 1fr);
        gap: 12px;
    }

    .feature-img {
        width: 80px;
        height: 80px;
        font-size: 24px;
    }

    .feature-card h3 {
        font-size: 13px;
    }

    .feature-card p {
        font-size: 11px;
        line-height: 1.7;
    }

    /* Recommended Menu */
    .rec-cards {
        grid-template-columns: 1fr;
        gap: 24px;
        margin-bottom: 36px;
    }

    /* .rec-card-img {
        height: 200px;
    } */

    .rec-card-body {
        padding: 20px;
    }

    .rec-card-body h3 {
        font-size: 18px;
    }

    .rec-card-body p {
        font-size: 13px;
        line-height: 1.9;
    }

    /* News */
    .news {
        padding: 60px 0;
    }

    .news-item {
        grid-template-columns: 1fr;
        gap: 4px;
        padding: 16px 0;
    }

    .news-date {
        font-size: 12px;
    }

    .news-text {
        font-size: 14px;
    }

    /* Concept */
    .concept {
        padding: 60px 0;
    }

    .concept-grid {
        gap: 32px;
    }

    .concept-text h2 {
        font-size: 18px;
    }

    .concept-text p {
        font-size: 13px;
        line-height: 2;
    }

    /* Menu */
    .menu-section {
        padding: 60px 0;
    }

    .menu-item {
        grid-template-columns: 70px 1fr auto;
        gap: 16px;
        padding: 16px;
    }

    .menu-thumb {
        width: 70px;
        height: 70px;
        font-size: 24px;
    }

    .menu-body h3 {
        font-size: 14px;
    }

    .menu-body p {
        font-size: 12px;
        line-height: 1.7;
    }

    .menu-price {
        font-size: 14px;
    }

    /* Access Mini (HOME) */
    .access-mini-grid {
        grid-template-columns: 1fr;
        gap: 28px;
        max-width: 100%;
    }

    .access-mini-info {
        padding: 24px;
    }

    .access-mini-info h3 {
        font-size: 16px;
    }

    .access-mini-table th,
    .access-mini-table td {
        font-size: 13px;
        padding: 10px 4px;
    }

    .access-mini-table th {
        width: 70px;
        white-space: nowrap;
    }

    .access-mini-map {
        min-height: 220px;
    }

    .access-mini-map img {
        width: 100%;
        height: auto;
    }

    /* Access */
    .access-section {
        padding: 60px 0;
    }

    .access-grid {
        gap: 24px;
    }

    .access-info {
        padding: 24px;
    }

    .access-info h3 {
        font-size: 16px;
    }

    .access-table th,
    .access-table td {
        font-size: 13px;
        padding: 10px 4px;
    }

    .access-table th {
        width: 70px;
    }

    .access-map {
        min-height: 280px;
    }

    .access-map iframe {
        min-height: 280px;
    }

    .access-photo-row {
        grid-template-columns: 1fr;
        gap: 16px;
        margin-top: 24px;
    }

    /* Reservation */
    .reservation-section {
        padding: 60px 0;
    }

    .reservation-form {
        padding: 24px;
    }

    .form-row {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .form-input,
    .form-select,
    .form-textarea {
        padding: 10px 14px;
        font-size: 14px;
    }

    .form-submit {
        padding: 14px;
        font-size: 14px;
    }

    /* Page Hero */
    .page-hero {
        padding: 120px 0 60px;
    }

    .page-hero h1 {
        font-size: clamp(22px, 7vw, 32px);
    }

    .page-hero .subtitle {
        font-size: 11px;
    }

    .page-wave svg {
        height: 30px;
    }

    /* Footer */
    .site-footer {
        padding: 60px 0 24px;
    }

    .footer-inner {
        padding: 0 24px;
        gap: 32px;
    }

    .footer-cols {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .footer-col h4 {
        font-size: 13px;
    }

    .footer-col p,
    .footer-col ul a {
        font-size: 12px;
    }

    .footer-deco svg {
        height: 40px;
    }

    /* Scroll top */
    #scrollTop {
        right: 16px;
        bottom: 16px;
        width: 38px;
        height: 38px;
    }
}

/* 小型スマホ */
@media (max-width: 380px) {

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

    .feature-img {
        width: 70px;
        height: 70px;
        font-size: 22px;
    }

    .about-features {
        gap: 8px;
    }
}
