/*
Theme Name: Niitengo 2.5 WordPress Theme
Description: 2.5人先までの人間関係から実現する世間平和をテーマにしたWordPressテーマ。Advanced Custom Fields (ACF)を使用して管理画面からコンテンツを編集可能。お知らせ機能、お問い合わせフォーム、企業理念・サービス・DAO組織・代表者紹介・会社概要などの各セクションを含む。
Author: Niitengo 2.5 LLC
Version: 2.0.0
Text Domain: niitengo
Requires at least: 5.0
Tested up to: 6.4
Requires PHP: 7.4
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: business, corporate, dao, social-business, acf, custom-fields, responsive, mobile-friendly, japan, japanese
*/

/*
 * メインスタイルはheader.phpとindex.phpにインライン定義されています
 * このファイルはWordPressテーマとして認識させるためのヘッダー情報のみです
 */

/* 基本設定 */
body {
    margin: 0;
    padding: 0;
    font-family: 'BIZ UDPGothic', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic Medium', 'Meiryo', 'Noto Sans JP', sans-serif;
}

/* WordPress管理バー調整 */
.admin-bar {
    padding-top: 32px;
}

@media screen and (max-width: 782px) {
    .admin-bar {
        padding-top: 46px;
    }
}

/* リセットCSS */
* {
    box-sizing: border-box;
}

/* ACF対応のスタイル */
.acf-field {
    margin-bottom: 1rem;
}

.acf-label {
    font-weight: 600;
    margin-bottom: 0.5rem;
    display: block;
}

/* お知らせセクション用スタイル */
.news-item {
    transition: all 0.3s ease;
}

.news-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .dao-cards-container {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
    }

    .nav-menu {
        flex-direction: column !important;
        gap: 0.5rem !important;
    }
}

/* デバッグ情報用スタイル */
.debug-info {
    position: fixed;
    top: 100px;
    right: 20px;
    background: rgba(0, 100, 200, 0.95);
    color: white;
    padding: 20px;
    border-radius: 10px;
    max-width: 400px;
    z-index: 9999;
    font-size: 12px;
    font-family: monospace;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}

/* WordPress固有の要素 */
.wp-block-image {
    margin: 1rem 0;
}

.wp-block-paragraph {
    margin-bottom: 1rem;
}

.wp-block-heading {
    margin-bottom: 1rem;
    font-family: 'BIZ UDPGothic', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic Medium', 'Meiryo', 'Noto Sans JP', sans-serif;
}

/* フォーム要素の統一 */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="tel"],
textarea,
select {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 2px solid #e5e7eb;
    border-radius: 0.5rem;
    font-size: 1rem;
    font-family: inherit;
    transition: all 0.3s ease;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="tel"]:focus,
textarea:focus,
select:focus {
    outline: none;
    border-color: #9333ea;
    box-shadow: 0 0 0 3px rgba(147, 51, 234, 0.1);
}

/* ボタンの統一 */
.btn-primary {
    background: linear-gradient(135deg, #9333ea, #ec4899);
    color: white;
    padding: 0.75rem 1.5rem;
    border: none;
    border-radius: 2rem;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(147, 51, 234, 0.3);
    text-decoration: none;
    display: inline-block;
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(147, 51, 234, 0.4);
    color: white;
    text-decoration: none;
}

/* ユーティリティクラス */
.text-center {
    text-align: center;
}

.mb-1 { margin-bottom: 0.25rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-3 { margin-bottom: 0.75rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-5 { margin-bottom: 1.25rem; }
.mb-6 { margin-bottom: 1.5rem; }

.mt-1 { margin-top: 0.25rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-3 { margin-top: 0.75rem; }
.mt-4 { margin-top: 1rem; }
.mt-5 { margin-top: 1.25rem; }
.mt-6 { margin-top: 1.5rem; }

.p-1 { padding: 0.25rem; }
.p-2 { padding: 0.5rem; }
.p-3 { padding: 0.75rem; }
.p-4 { padding: 1rem; }
.p-5 { padding: 1.25rem; }
.p-6 { padding: 1.5rem; }

/* アクセシビリティ */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
/* 企業理念セクションのレスポンシブ対応 */
@media (max-width: 768px) {
    #philosophy {
        padding: 4rem 0 !important;
    }
    
    #philosophy h2 {
        font-size: 2.5rem !important;
    }
    
    #philosophy h3 {
        font-size: 1.8rem !important;
    }
    
    #philosophy .philosophy-cards {
        grid-template-columns: 1fr !important;
        gap: 1.5rem !important;
    }
    
    #philosophy [style*="grid-template-columns: 1fr 1fr"] {
        display: block !important;
    }
    
    #philosophy [style*="grid-template-columns: 1fr 1fr"] > div {
        margin-bottom: 2rem;
    }
    
    #philosophy [style*="padding: 4rem"] {
        padding: 2.5rem 1.5rem !important;
    }
    
    #philosophy [style*="padding: 3rem"] {
        padding: 2rem 1.5rem !important;
    }
}

@media (max-width: 480px) {
    #philosophy h2 {
        font-size: 2rem !important;
    }
    
    #philosophy h3 {
        font-size: 1.5rem !important;
    }
    
    #philosophy [style*="font-size: 1.8rem"] {
        font-size: 1.4rem !important;
    }
}
/* ビジョンセクションのレスポンシブ対応 */
@media (max-width: 768px) {
    #vision {
        padding: 4rem 0 !important;
    }
    
    #vision h2 {
        font-size: 2.5rem !important;
    }
    
    #vision h3 {
        font-size: 1.8rem !important;
    }
    
    #vision h4 {
        font-size: 1.2rem !important;
    }
    
    #vision [style*="grid-template-columns: repeat(2, 1fr)"] {
        grid-template-columns: 1fr !important;
        gap: 1.5rem !important;
    }
    
    #vision [style*="padding: 4rem"] {
        padding: 2.5rem 1.5rem !important;
    }
    
    #vision [style*="padding: 3rem"] {
        padding: 2rem 1.5rem !important;
    }
    
    #vision [style*="font-size: 4rem"] {
        font-size: 3rem !important;
    }
    
    #vision [style*="font-size: 3rem"] {
        font-size: 2.5rem !important;
    }
}

@media (max-width: 480px) {
    #vision h2 {
        font-size: 2rem !important;
    }
    
    #vision h3 {
        font-size: 1.5rem !important;
    }
    
    #vision [style*="padding: 2.5rem 1.5rem"] {
        padding: 2rem 1rem !important;
    }
    
    #vision [style*="padding: 2rem 1.5rem"] {
        padding: 1.5rem 1rem !important;
    }
}

/* アニメーション効果（オプション） */
#vision .vision-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

#vision .vision-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 25px 50px rgba(59, 130, 246, 0.2) !important;
}
/* サービスセクションのレスポンシブ対応 */
@media (max-width: 768px) {
    #services {
        padding: 4rem 0 !important;
    }
    
    #services h2 {
        font-size: 2.5rem !important;
    }
    
    #services h3 {
        font-size: 1.8rem !important;
    }
    
    #services [style*="grid-template-columns: repeat(3, 1fr)"] {
        grid-template-columns: 1fr !important;
        gap: 1.5rem !important;
    }
    
    #services [style*="padding: 2rem"] {
        padding: 1.5rem !important;
    }
    
    #services [style*="font-size: 1.4rem"] {
        font-size: 1.2rem !important;
    }
}

@media (max-width: 480px) {
    #services h2 {
        font-size: 2rem !important;
    }
    
    #services h3 {
        font-size: 1.5rem !important;
    }
    
    #services [style*="padding: 1.5rem"] {
        padding: 1rem !important;
    }
}

/* ホバー効果 */
#services [style*="transition: transform 0.3s ease"]:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15) !important;
}
/* シナジーセクションのレスポンシブ対応 */
@media (max-width: 768px) {
    #synergy {
        padding: 4rem 0 !important;
    }
    
    #synergy h2 {
        font-size: 2rem !important;
    }
    
    #synergy h3 {
        font-size: 1.5rem !important;
    }
    
    /* スキル円形配置をモバイル用に調整 */
    #synergy [style*="height: 300px"] {
        height: 250px !important;
    }
    
    #synergy [style*="width: 80px; height: 80px"] {
        width: 60px !important;
        height: 60px !important;
        font-size: 0.75rem !important;
    }
    
    #synergy [style*="width: 70px; height: 70px"] {
        width: 50px !important;
        height: 50px !important;
        font-size: 0.7rem !important;
    }
    
    /* シナジーカードをモバイル用に縦並び */
    #synergy [style*="grid-template-columns: repeat(3, 1fr)"] {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
    }
    
    #synergy [style*="padding: 4rem"] {
        padding: 2.5rem 1.5rem !important;
    }
    
    #synergy [style*="padding: 1.5rem"] {
        padding: 1rem !important;
    }
}

@media (max-width: 480px) {
    #synergy h2 {
        font-size: 1.8rem !important;
    }
    
    #synergy [style*="height: 250px"] {
        height: 200px !important;
    }
    
    #synergy [style*="padding: 2.5rem 1.5rem"] {
        padding: 2rem 1rem !important;
    }
    
    #synergy [style*="font-size: 1.1rem"] {
        font-size: 1rem !important;
    }
}

/* スキル円のアニメーション効果（オプション） */
#synergy [style*="border-radius: 50%"] {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

#synergy [style*="border-radius: 50%"]:hover {
    transform: scale(1.1);
    box-shadow: 0 8px 25px rgba(139, 92, 246, 0.4) !important;
}

/* CTAボタンのフォーカス効果 */
#synergy a[href="#contact"]:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.5), 0 15px 40px rgba(139, 92, 246, 0.4) !important;
}

/* 2.5人先コンセプトセクションのレスポンシブ対応 */
@media (max-width: 768px) {
    #concept {
        padding: 4rem 0 !important;
    }
    
    #concept h2 {
        font-size: 2.2rem !important;
    }
    
    #concept h3 {
        font-size: 1.3rem !important;
    }
    
    /* 関係性図解をモバイル用に調整 */
    #concept [style*="height: 400px"] {
        height: 320px !important;
    }
    
    #concept [style*="width: 100px; height: 100px"] {
        width: 80px !important;
        height: 80px !important;
        font-size: 1rem !important;
    }
    
    #concept [style*="width: 70px; height: 70px"] {
        width: 55px !important;
        height: 55px !important;
        font-size: 0.8rem !important;
    }
    
    #concept [style*="width: 80px; height: 80px"] {
        width: 65px !important;
        height: 65px !important;
        font-size: 1rem !important;
    }
    
    #concept [style*="width: 250px; height: 250px"] {
        width: 200px !important;
        height: 200px !important;
    }
    
    #concept [style*="width: 200px; height: 200px"] {
        width: 160px !important;
        height: 160px !important;
    }
    
    /* つながりタイプを縦並びに */
    #concept [style*="grid-template-columns: repeat(3, 1fr)"] {
        grid-template-columns: 1fr !important;
        gap: 1.5rem !important;
    }
    
    #concept [style*="padding: 4rem"] {
        padding: 2.5rem 1.5rem !important;
    }
    
    #concept [style*="padding: 2.5rem"] {
        padding: 2rem !important;
    }
    
    /* ラベルのフォントサイズ調整 */
    #concept [style*="font-size: 0.875rem"] {
        font-size: 0.75rem !important;
        padding: 0.4rem 0.8rem !important;
    }
}

@media (max-width: 480px) {
    #concept h2 {
        font-size: 1.8rem !important;
    }
    
    #concept [style*="height: 320px"] {
        height: 280px !important;
    }
    
    #concept [style*="padding: 2.5rem 1.5rem"] {
        padding: 2rem 1rem !important;
    }
    
    #concept [style*="font-size: 1.2rem"] {
        font-size: 1rem !important;
    }
}

/* ホバー効果 */
#concept [style*="transition: transform 0.3s ease"]:hover {
    transform: translateY(-5px) !important;
}

/* 2.5のつながりカードの特別な効果 */
#concept [style*="background: linear-gradient(135deg, rgba(245, 158, 11, 0.1)"] {
    animation: gentle-glow 3s ease-in-out infinite alternate;
}

@keyframes gentle-glow {
    0% {
        box-shadow: 0 10px 30px rgba(245, 158, 11, 0.2);
    }
    100% {
        box-shadow: 0 15px 40px rgba(245, 158, 11, 0.3);
    }
}

/* 世間平和実現プロセスセクションのレスポンシブ対応 */
@media (max-width: 1024px) {
    #peace-process [style*="grid-template-columns: repeat(4, 1fr)"] {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 1.5rem !important;
    }
}

@media (max-width: 768px) {
    #peace-process {
        padding: 4rem 0 !important;
    }
    
    #peace-process h2 {
        font-size: 2.2rem !important;
    }
    
    #peace-process [style*="grid-template-columns: repeat(2, 1fr)"] {
        grid-template-columns: 1fr !important;
        gap: 1.5rem !important;
    }
    
    #peace-process [style*="padding: 2.5rem"] {
        padding: 2rem !important;
    }
    
    #peace-process [style*="padding: 3rem"] {
        padding: 2rem !important;
    }
    
    /* フローチャートをモバイル用に調整 */
    #peace-process [style*="display: flex; align-items: center; justify-content: center; gap: 1rem; flex-wrap: wrap;"] {
        flex-direction: column !important;
        gap: 0.5rem !important;
    }
    
    #peace-process [style*="display: flex; align-items: center; justify-content: center; gap: 1rem; flex-wrap: wrap;"] > div:nth-child(even) {
        transform: rotate(90deg);
        margin: 0.5rem 0;
    }
}

@media (max-width: 480px) {
    #peace-process h2 {
        font-size: 1.8rem !important;
    }
    
    #peace-process h3 {
        font-size: 1.1rem !important;
    }
    
    #peace-process [style*="padding: 2rem"] {
        padding: 1.5rem !important;
    }
    
    #peace-process [style*="font-size: 3rem"] {
        font-size: 2.5rem !important;
    }
}

/* ホバー効果 */
#peace-process [style*="transition: transform 0.3s ease"]:hover {
    transform: translateY(-8px) !important;
}

/* アニメーション効果 */
@keyframes process-flow {
    0%, 100% {
        opacity: 0.7;
    }
    50% {
        opacity: 1;
    }
}

#peace-process [style*="color: #6b7280; font-size: 1.2rem"] {
    animation: process-flow 2s ease-in-out infinite;
}

/* 循環矢印のアニメーション */
#peace-process [style*="↻"] {
    animation: rotate 3s linear infinite;
}

@keyframes rotate {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

/* カードの順次表示アニメーション */
#peace-process [style*="transition: transform 0.3s ease"]:nth-child(1) {
    animation-delay: 0.1s;
}

#peace-process [style*="transition: transform 0.3s ease"]:nth-child(2) {
    animation-delay: 0.2s;
}

#peace-process [style*="transition: transform 0.3s ease"]:nth-child(3) {
    animation-delay: 0.3s;
}

#peace-process [style*="transition: transform 0.3s ease"]:nth-child(4) {
    animation-delay: 0.4s;
}

/* 代表挨拶セクションのレスポンシブ対応 */
@media (max-width: 1024px) {
    #ceo-message [style*="grid-template-columns: 1fr 2fr"] {
        grid-template-columns: 1fr !important;
        gap: 3rem !important;
        text-align: center;
    }
    
    #ceo-message [style*="text-align: left"] {
        text-align: center !important;
    }
}

@media (max-width: 768px) {
    #ceo-message {
        padding: 4rem 0 !important;
    }
    
    #ceo-message h2 {
        font-size: 2.2rem !important;
    }
    
    #ceo-message [style*="padding: 4rem"] {
        padding: 2.5rem 1.5rem !important;
    }
    
    #ceo-message [style*="gap: 3rem"] {
        gap: 2rem !important;
    }
    
    #ceo-message [style*="width: 280px; height: 280px"] {
        width: 220px !important;
        height: 220px !important;
    }
    
    #ceo-message [style*="font-size: 1.6rem"] {
        font-size: 1.3rem !important;
    }
    
    #ceo-message [style*="font-size: 1.1rem"] {
        font-size: 1rem !important;
    }
}

@media (max-width: 480px) {
    #ceo-message h2 {
        font-size: 1.8rem !important;
    }
    
    #ceo-message [style*="padding: 2.5rem 1.5rem"] {
        padding: 2rem 1rem !important;
    }
    
    #ceo-message [style*="width: 220px; height: 220px"] {
        width: 180px !important;
        height: 180px !important;
    }
    
    #ceo-message [style*="padding: 2rem"] {
        padding: 1.5rem !important;
    }
}

/* ホバー効果とアニメーション */
#ceo-message img {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

#ceo-message img:hover {
    transform: scale(1.05);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.2) !important;
}

/* CTAボタンのフォーカス効果 */
#ceo-message a[href="#contact"]:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.5), 0 15px 40px rgba(139, 92, 246, 0.4) !important;
}