/* SP_A_2026_10_19 スマホ修正（共通・ヘッダー・メニュー・フッター・法的ページ・記事）
   既存のスマホ判定幅（site-custom.css）は 768px。メニューボタン周りは 960px 以下で出るため一部だけ 960px。 */

/* ---- ヘッダーのボタン: ログインとメニューの枠線を同じ太さに／ハンバーガーの上下の隙間をそろえる ---- */
@media (max-width: 960px) {
    .site-header .hamburger-btn { border: 2px solid #CBD5E1; padding: 0 10px; gap: 5px; min-height: 44px; }
    .site-header .hamburger-label { line-height: 1; margin-top: 0; padding-bottom: 1px; }
    .site-header .hamburger-lines { gap: 4px; }
}

/* ---- 左から出るメニュー: 幅広・文字色（アイコンと同じ読める色）・右側の角丸 ---- */
@media (max-width: 960px) {
    .mobile-menu {
        width: min(360px, 90vw); max-width: none;
        left: calc(-1 * min(360px, 90vw) - 24px);
        border-radius: 0 16px 16px 0;
        overflow-x: hidden;
    }
    .mobile-menu.open { left: 0; }
    .mobile-menu .mobile-menu-nav a { color: #2A3A52; }
    .mobile-menu .mobile-menu-nav a .lucide-icon { color: #2A3A52; }
    .mobile-menu .mobile-menu-nav a:hover { color: #1B7FE6; }
    .mobile-menu .mobile-menu-nav a:hover .lucide-icon { color: #1B7FE6; }
    .mobile-menu .mobile-menu-nav a.mobile-menu-cta,
    .mobile-menu .mobile-menu-nav a.mobile-menu-cta .lucide-icon { color: #fff; }
    .mobile-menu .mobile-menu-category { color: #5B6B80; }
}

@media (max-width: 768px) {
    /* ---- 全体の左右の余白を少し狭く（幅を広く） ---- */
    body .container { padding-left: 14px; padding-right: 14px; }

    /* ---- 説明文の行間を少し狭く ---- */
    body .hv2-lead, body .hv2-trust-lead, body .hv2-trust-desc, body .ph-lead,
    body .hv2-flow-desc, body .hv2-cta-desc, body .hv2-choice-note,
    body .section-desc, body .list-page-desc, body .static-page-desc,
    body .contact-hero-desc, body .faq-page-hero-desc, body .about-pillar-desc,
    body .feature-card-desc, body .category-card-desc, body .flow-step-desc,
    body .list-cta-desc, body .article-cta-desc, body .fav-page-lead,
    body .go-lead, body .go-note, body .footer-brand-desc,
    body .about-section-body p, body .about-list li,
    body .hv2-legacy .section-desc, body .hv2-legacy .flow-step-desc,
    body .article-body p, body .article-body li, body .article-summary-box-text,
    body .area-industry-item-text, body .hv2-art .hv2-art-desc { line-height: 1.55; }
    body .article-body p, body .article-body li { line-height: 1.7; }

    /* ---- 共通CTA: 見出しの「う」だけ改行されないよう整える ---- */
    .hv2-cta-title { font-size: 24px; line-height: 1.35; text-wrap: balance; }

    /* ---- フッター ---- */
    .site-footer .footer-brand-desc { line-height: 1.5; margin-bottom: 4px; }
    .site-footer .footer-top { gap: 20px; }
    .site-footer .footer-col-links li { margin-bottom: 0; }
    .site-footer .footer-col-links a { min-height: 28px; line-height: 1.35; }
    .site-footer .footer-col-title { margin-bottom: 4px; }
    .site-footer .footer-bottom-end { flex-direction: column; justify-content: center; gap: 8px; margin: 0 auto; width: 100%; }
    .site-footer .footer-bottom-end .footer-copyright { margin: 0; text-align: center; }
    .site-footer .footer-copyright-link { color: inherit; text-decoration: none; display: inline-block; padding: 6px 12px; }
    .site-footer .footer-copyright-link:hover { text-decoration: underline; }

    /* ---- 規約・プライバシー・特商法・会社概要: 下のCTAの上の隙間を狭く ---- */
    main.static-page-section { padding-bottom: 8px; margin-bottom: 0; }
    main.static-page-section .static-page-nav { margin-top: 20px; }
    main.static-page-section ~ .cta-common { padding-top: 0; }
    main.static-page-section ~ .cta-common.hv2-section { padding-bottom: 40px; }

    /* ---- 会社概要の「運営サービス」は1カラム ---- */
    .features-grid.features-grid--one { grid-template-columns: 1fr; }

    /* ---- 記事ページ ---- */
    .article-body h2 { line-height: 1.4; padding-bottom: 8px; margin: 36px 0 16px; }
    .article-body h3 { line-height: 1.45; }

    /* 関連業種から求人を探す: 囲いなし・2カラム */
    .article-industry-block:not(.article-jobs-nav) { background: none; border: 0; box-shadow: none; padding: 0; border-radius: 0; }
    .article-industry-block:not(.article-jobs-nav) .hv2-cats,
    body .article-industry-block:not(.article-jobs-nav) .hv2-cats--rel { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }

    /* 関連記事: 横スライド */
    .ra-section .hv2-art-grid {
        display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: 14px;
        -webkit-overflow-scrolling: touch; padding: 2px 14px 10px; margin: 0 -14px;
        scrollbar-width: none;
    }
    .ra-section .hv2-art-grid::-webkit-scrollbar { display: none; }
    .ra-section .hv2-art-grid > .hv2-art { flex: 0 0 72%; max-width: 280px; scroll-snap-align: start; }
}

/* ---- 記事ページ専用の固定フッター（PCのサイドメニュー代わり。960px以下で出す） ---- */
.sp-adock { display: none; }
@media (max-width: 960px) {
    .sp-adock {
        display: grid; grid-template-columns: 1fr 1fr 1.4fr; gap: 8px; align-items: center;
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
        padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
        background: rgba(255, 255, 255, 0.97); border-top: 1px solid #DCE6F2;
        box-shadow: 0 -6px 18px rgba(22, 38, 59, 0.08);
    }
    .sp-adock-link {
        display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px;
        border-radius: 10px; border: 2px solid #CBD5E1; background: #fff; color: #16263B;
        font-size: 14px; font-weight: 800; text-decoration: none; white-space: nowrap;
    }
    .sp-adock-link .lucide-icon { width: 18px; height: 18px; }
    .sp-adock-link--primary { background: #1B7FE6; border-color: #1B7FE6; color: #fff; }
    body:has(.sp-adock) { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
    body.quiz-sheet-on .sp-adock, body.menu-open .sp-adock { display: none; }
}

/* FIX_2026_10_16 コピーライトのリンクは PC でも文字色のまま（青くしない） */
.site-footer .footer-copyright-link { color: inherit; text-decoration: none; }
.site-footer .footer-copyright-link:hover { color: inherit; text-decoration: underline; }
