/* First & Effect | Site Responsive CSS (v1.6.0) */
/* =====================================================================
 * First & Effect - Responsive CSS (v1.6.0 動的生成)
 *   ブレイクポイントMD: 960px
 *   ブレイクポイントSM: 640px
 *   ヘッダー幅: fullwidth * ===================================================================== */

/* ---- ヘッダー幅切替 (v1.6.0) ---- */
body.fe-header-fullwidth .site-header__inner {
    max-width: none;
    padding-left: 32px;
    padding-right: 32px;
}

/* ---- @media (max-width: 960px) ---- */
/* タブレット以下: 元style.cssから物理移動 */
@media (max-width: 960px) {
    .section { padding: 72px 0; }
    .hero { padding: 120px 0 80px; }
    .hero__inner { grid-template-columns: 1fr; gap: 40px; }
    .hero__visual { max-width: 480px; height: 480px; margin: 0 auto; }
    .pain-points__list { grid-template-columns: repeat(2, 1fr); }
    .pain-points__item:last-child { grid-column: span 2; }
    .reasons { grid-template-columns: 1fr; }
    .issues { grid-template-columns: repeat(2, 1fr); }
    .market-stats { grid-template-columns: 1fr; gap: 32px; }
    .market-stat { padding: 36px 24px; }
    .market-stat__num { font-size: 64px; }
    .concept-grid { grid-template-columns: 1fr; gap: 16px; }
    .feature-row { grid-template-columns: 1fr; gap: 32px; margin-bottom: 64px; }
    .feature-row--reverse { direction: ltr; }
    .flow { grid-template-columns: 1fr; gap: 24px; }
    .flow::before { display: none; }
    .flow-step {
        display: grid;
        grid-template-columns: 80px 1fr;
        gap: 16px;
        text-align: left;
        align-items: center;
    }
    .flow-step__num { margin: 0; }
    .ceo { grid-template-columns: 1fr; gap: 32px; }
    .ceo__card { position: static; max-width: 280px; margin: 0 auto; }
    .company { grid-template-columns: 1fr; gap: 32px; }
    .company__visual { aspect-ratio: 4/3; max-width: 500px; }
    .contact-types { grid-template-columns: 1fr; }
    .site-footer__inner { grid-template-columns: 1fr; gap: 32px; }
    .site-logo img { height: 44px; }
    .global-nav ul { display: none; }
    .header-cta-group { display: none; }
    .nav-toggle { display: block; }
    .fixed-cta { display: flex; }
    body { padding-bottom: 80px; }
    .hero__floating--1 { left: 0; top: 4%; }
    .hero__floating--2 { right: 0; top: 45%; }
    .hero__floating--3 { left: 4%; bottom: 4%; }
    /* v1.1.0 追加: タブレット以下では PC追従バー非表示 */
    .pc-fixed-bar { display: none !important; }
}

/* ---- @media (max-width: 640px) ---- */
/* スマホ: 元style.cssから物理移動 */
@media (max-width: 640px) {
    .container { padding: 0 20px; }
    .section { padding: 56px 0; }
    .hero { padding: 100px 0 64px; }
    .hero__cta { width: 100%; }
    .hero__cta .btn { flex: 1; min-width: 140px; font-size: 13px; padding: 14px 16px; }
    .pain-points { padding: 56px 0; }
    .pain-points__list { grid-template-columns: 1fr; gap: 12px; }
    .pain-points__item:last-child { grid-column: auto; }
    .pain-points__item { padding: 18px 14px; }
    .news-item { grid-template-columns: 1fr; gap: 4px; padding: 14px 4px; }
    .news-item__date { font-size: 12px; }
    .news-item__title { font-size: 14px; }
    .issues { grid-template-columns: 1fr; }
    .contact { padding: 28px 20px; }
    .company__table dl { grid-template-columns: 90px 1fr; }
    .company__table dt, .company__table dd { padding: 14px; font-size: 13px; }
    .hero__features { gap: 8px; }
    .hero__feature { font-size: 12px; padding: 6px 10px; }
    .ceo__highlights { grid-template-columns: 1fr; }
}

/* ---- @media (min-width: 961px) ---- */
/* PC: PC追従バー表示 */
@media (min-width: 961px) {
    .pc-fixed-bar { display: block; }
    body.has-pc-fixed-bar { padding-bottom: 88px; }
}
	