/* レスポンシブデザイン */
@media (max-width: 1200px) {
    .container {
        max-width: 960px;
    }
}

@media (max-width: 992px) {
    .hero-title {
        font-size: 2.5rem;
    }

    .service-content {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .image-placeholder {
        height: 200px;
    }

    .policy-content {
        grid-template-columns: 1fr;
    }

    .contact-actions {
        flex-direction: column;
    }

    .btn-primary,
    .btn-outline {
        width: 100%;
        max-width: 300px;
        margin: 0 auto;
    }
}

@media (max-width: 768px) {
    .container {
        padding: 0 15px;
    }

    .page-banner {
        height: 250px;
    }

    .home-banner {
        height: 300px;
    }

    .banner-title {
        font-size: 2rem;
    }

    .banner-subtitle {
        font-size: 1rem;
    }

    .section-title {
        font-size: 1.6rem;
    }

    /* ヘッダーナビゲーションの調整 */
    .main-nav {
        display: none;
    }

    .auth-section {
        display: none;
    }

    .mobile-menu-btn {
        display: block;
    }

    .header-content {
        padding: 0.8rem 0;
    }

    .logo-placeholder {
        width: 40px;
        height: 40px;
    }

    .logo-text {
        display: none;
    }

    /* フッターの調整 */
    .footer-links {
        grid-template-columns: 1fr;
    }

    .footer-bottom {
        flex-direction: column;
        gap: 1rem;
        text-align: center;
    }

    /* 特徴グリッドの調整 */
    .features-grid,
    .steps-grid {
        grid-template-columns: 1fr;
    }

    /* CTAボタンの調整 */
    .banner-buttons,
    .cta-buttons {
        flex-direction: column;
        align-items: center;
    }

    .banner-buttons .btn-primary,
    .banner-buttons .btn-outline,
    .cta-buttons .btn-primary-large,
    .cta-buttons .btn-outline-large {
        width: 100%;
        max-width: 300px;
    }

    /* 比較テーブルの調整 */
    .comparison-row {
        grid-template-columns: 1.5fr 1fr 1fr;
    }

    .service-highlight,
    .related-service-card {
        flex-direction: column;
        text-align: center;
    }

    .steps {
        grid-template-columns: 1fr;
    }

    /* フォームの調整 */
    .form-row {
        grid-template-columns: 1fr;
    }

    .stock-inputs {
        grid-template-columns: 1fr;
    }

    /* 診断フォームの調整 */
    .diagnosis-illustration {
        flex-direction: column;
    }

    .illustration-arrow {
        transform: rotate(90deg);
    }

    /* 組織図の調整 */
    .training-content {
        grid-template-columns: 1fr 1fr;
    }

    .laws-content {
        grid-template-columns: 1fr;
    }

    /* 会社情報の調整 */
    .info-grid {
        grid-template-columns: 1fr;
    }

    .association-item {
        flex-direction: column;
        text-align: center;
        gap: 0.8rem;
    }

    .legal-notices {
        grid-template-columns: 1fr;
    }

    .contact-item {
        flex-wrap: wrap;
    }

    .external-links {
        flex-direction: column;
    }

    .external-link {
        justify-content: center;
    }

    /* キャンペーンページの調整 */
    .countdown-timer {
        flex-direction: column;
        gap: 1rem;
    }

    .time-block {
        min-width: 60px;
    }

    .time-value {
        font-size: 2rem;
    }

    .hero-title {
        font-size: 1.8rem;
    }

    .hero-subtitle {
        font-size: 1.2rem;
    }
}

@media (max-width: 576px) {
    .banner-title {
        font-size: 1.8rem;
    }

    .section-title {
        font-size: 1.4rem;
    }

    .cta-title {
        font-size: 1.8rem;
    }

    .features-grid,
    .training-content {
        grid-template-columns: 1fr;
    }

    .comparison-row {
        grid-template-columns: 2fr 1fr 1fr;
        font-size: 0.9rem;
    }

    .emotions-grid {
        grid-template-columns: 1fr;
    }

    .factors-grid {
        grid-template-columns: 1fr;
    }

    .cta-box {
        padding: 2rem 1rem;
    }

    .submit-button {
        width: 100%;
        max-width: 300px;
    }

    .modal-content {
        padding: 2rem 1.5rem;
    }

    /* 会社情報の調整 */
    .company-info {
        padding: 1.5rem;
    }

    .section-title {
        font-size: 1.1rem;
    }

    .info-value {
        font-size: 1rem;
    }

    .contact-details {
        padding: 1rem;
    }

    .contact-item {
        font-size: 0.9rem;
    }

    /* フッターの調整 */
    .footer-section {
        text-align: center;
    }

    .footer-social {
        justify-content: center;
    }

    .footer {
        padding: 2rem 0 1rem;
    }
}

@media (max-width: 480px) {
    .container {
        padding: 0 10px;
    }

    .page-banner {
        height: 200px;
    }

    .banner-title {
        font-size: 1.5rem;
    }

    .service-card {
        padding: 1.5rem;
    }

    .policy-card {
        flex-direction: column;
        text-align: center;
    }

    .policy-number {
        font-size: 2rem;
    }

    .structure-level {
        padding: 1rem;
    }

    .expert-card {
        flex-direction: column;
        text-align: center;
    }

    .invitation-content {
        flex-direction: column;
        text-align: center;
    }

    .contact-title {
        font-size: 1.6rem;
    }

    .contact-phone {
        font-size: 1.1rem;
    }

    /* キャンペーンページの調整 */
    .hero-section {
        padding: 2rem 0;
    }

    .hero-stats {
        font-size: 1rem;
    }

    .big-numbers {
        font-size: 1.5rem;
    }

    .hero-button {
        padding: 1rem 2rem;
        font-size: 1.1rem;
    }
}

/* 印刷用スタイル */
@media print {
    .header,
    .footer,
    .banner-buttons,
    .cta-buttons,
    .btn-primary,
    .btn-outline {
        display: none !important;
    }

    main {
        padding-top: 0 !important;
    }

    body {
        font-size: 12pt;
        color: #000;
    }

    a {
        color: #000;
        text-decoration: underline;
    }

    .container {
        max-width: 100% !important;
        padding: 0 !important;
    }

    .page-banner {
        background: none !important;
        height: auto !important;
        color: #000 !important;
        margin-bottom: 1cm !important;
    }

    .banner-overlay {
        display: none !important;
    }

    .banner-title {
        color: #000 !important;
        text-shadow: none !important;
        font-size: 16pt !important;
    }

    .banner-subtitle {
        color: #000 !important;
        font-size: 12pt !important;
    }

    .section-title {
        color: #000 !important;
        font-size: 14pt !important;
        page-break-after: avoid;
    }

    .feature-card,
    .step-card,
    .policy-card {
        box-shadow: none !important;
        border: 1px solid #ddd !important;
        page-break-inside: avoid;
    }

    .cta-section {
        background: none !important;
        color: #000 !important;
    }

    /* ページ区切りを制御 */
    h1, h2, h3 {
        page-break-after: avoid;
    }

    section {
        page-break-inside: avoid;
    }
}