@charset "UTF-8";

@media screen and (min-width: 768px) {
    /* 共通 */
    .container { max-width: 1152px; padding: 0 24px; }
    .sp-only { display: none; }
    .pc-only { display: block; }
    
    /* PCの上下余白設定（Intro以外は120px） */
    .features-section,
    .tours-section,
    .ranking-section,
    .model-course-section,
    .arrangements-section,
    .gourmet-section,
    .review-section,
    .guide-section,
    .info-section,
    .faq-section {
        padding: 120px 0;
    }

    /* Introセクションの上余白0を完全維持 */
    .intro-section {
        padding: 0 0 120px 0;
    }

    /* Section Header (PC見出し極太化・字間調整) */
    .section-header .section-title { font-size: 44px; font-weight: 900; letter-spacing: 0.08em; }
    .section-header .section-lead { font-size: 18px; text-align: center; }
    
    /* Hero */
    .hero-lead { font-size: 14px; }
    .hero-title .title-main { font-size: 112px; font-weight: 900; letter-spacing: 0.08em; }
    .hero-title .title-sub { font-size: 30px; }
    .hero-desc { font-size: 20px; }
    .hero-buttons { 
        flex-direction: row; 
        justify-content: center; 
        max-width: none; 
        width: 100%; 
        gap: 24px; 
    }
    .btn { width: auto; max-width: none; }

    /* Intro */
    .intro-container { flex-direction: row; align-items: center; }
    .intro-image { width: 50%; }
    .intro-text { width: 50%; padding-left: 40px; }
    .intro-text .section-heading { font-size: 42px; font-weight: 900; letter-spacing: 0.06em; }

    /* Features */
    .features-grid { flex-direction: row; flex-wrap: wrap; gap: 48px 3%; }
    .feature-card { width: 31%; }

    /* Brand Image */
    .brand-title { font-size: 56px; font-weight: 900; letter-spacing: 0.15em; }
    .brand-desc { font-size: 18px; }

    /* おすすめツアー（4カラムに強制補正） */
    .tour-container { max-width: 1280px; }
    .tours-section .product-feature-container {
        display: grid !important;
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 24px !important;
    }
    .tours-section .product-feature-container > * {
        width: 100% !important;
        max-width: none !important;
    }

    /* Rankings */
    .rank-1 .rank-content { width: 60%; padding: 40px; }
    .rank-1 .rank-title { font-size: 44px; }
    .ranking-grid-2 { display: flex; gap: 32px; margin-bottom: 32px; }
    .rank-half { width: 50%; margin-bottom: 0; }
    .ranking-grid-3 { display: flex; gap: 32px; }
    .rank-third { width: 33.333%; margin-bottom: 0; }

    /* Horizontal Scroller Reset to Grid */
    .horizontal-scroll-list, .horizontal-scroll-grid {
        display: grid; 
        overflow-x: visible; 
        margin: 0; 
        padding: 0; 
        gap: 32px;
        width: 100%;
    }
    .sp-swipe-notice { display: none; }
    .horizontal-scroll-list { grid-template-columns: repeat(5, 1fr); gap: 16px; }
    .scroll-item { width: auto; }
    .horizontal-scroll-grid { grid-template-columns: repeat(3, 1fr); }
    .card, .simple-card { width: auto; max-width: none; }

    /* Model Course */
    .itinerary-grid { display: flex; gap: 40px; }
    .itinerary-col { width: 50%; }

    /* Reviews */
    .review-grid { flex-direction: row; gap: 32px; }
    .review-card { width: 33.333%; }

    /* Guide */
    .season-grid { flex-direction: row; gap: 24px; }
    .season-card { width: 33.333%; }
    .climate-banner { padding: 48px; text-align: center; }
    .banner-title { font-size: 28px; }
    .banner-text { font-size: 16px; text-align: left !important; }
    .layer-grid { flex-direction: row; gap: 32px; }
    .layer-item { width: 33.333%; textalign: left; }
    .gear-grid { flex-direction: row; flex-wrap: wrap; gap: 24px; }
    .gear-item { width: calc(25% - 18px); }

    /* Info */
    .info-grid { flex-direction: row; gap: 64px; }
    .info-group { width: 50%; }
    .info-group dl { flex-direction: row; flex-wrap: wrap; }
    .info-group dt { width: 120px; border-bottom: 1px solid #f1f5f9; padding-bottom: 12px; }
    .info-group dd { width: calc(100% - 120px); border-bottom: 1px solid #f1f5f9; padding-bottom: 12px; margin-bottom: 12px; }

    /* FAQ */
    .faq-item summary { font-size: 18px; }
}