/*
Template: jin
Theme Name: jin-child
Author: SUYAMO Media Division (Manabu Desk)
Version: 2.00
*/

:root {
    --accent-primary: #059669;
    --accent-light: #d1fae5;
}

/* ==========================================================================
   北摂メディア水準 高品質カスタムコンポーネント（JIN子テーマ拡張）
   ========================================================================== */

/* 1. リード文（Lead Text） */
.lead-text {
    font-size: 16px !important;
    line-height: 1.85 !important;
    color: #1e293b !important;
    background: #f8fafc !important;
    border-left: 4px solid var(--accent-primary, #0284c7) !important;
    padding: 16px 20px !important;
    border-radius: 6px !important;
    margin-bottom: 28px !important;
}

/* 2. 目次ボックス（TOC Box） */
.toc-box {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 12px !important;
    padding: 22px 26px !important;
    margin: 32px 0 !important;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.05) !important;
    box-sizing: border-box !important;
}
.toc-title {
    font-weight: 800 !important;
    font-size: 16.5px !important;
    color: #0f172a !important;
    margin-bottom: 14px !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    border-bottom: 2px solid #f1f5f9 !important;
    padding-bottom: 10px !important;
}
.toc-list {
    list-style: none !important;
    padding-left: 0 !important;
    margin: 0 !important;
}
.toc-list li {
    margin-bottom: 10px !important;
    line-height: 1.6 !important;
    font-size: 14px !important;
}
.toc-list a {
    color: var(--accent-primary, #0284c7) !important;
    text-decoration: none !important;
    font-weight: 600 !important;
    transition: color 0.2s ease !important;
}
.toc-list a:hover {
    text-decoration: underline !important;
}

/* 3. プロのワンポイント・現場ノウハウボックス（Pro Tip Box） */
.pro-tip-box {
    background: #f0fdf4 !important;
    border: 1px solid #bbf7d0 !important;
    border-left: 5px solid #10b981 !important;
    border-radius: 8px !important;
    padding: 18px 22px !important;
    margin: 28px 0 !important;
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.08) !important;
}
.pro-tip-title {
    font-weight: 800 !important;
    color: #065f46 !important;
    font-size: 15px !important;
    margin-bottom: 8px !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}
.pro-tip-content {
    font-size: 14px !important;
    color: #1e293b !important;
    line-height: 1.75 !important;
}

/* 4. 警告・失敗防止ボックス（Caution Box） */
.caution-box {
    background: #fffbeb !important;
    border: 1px solid #fde68a !important;
    border-left: 5px solid #f59e0b !important;
    border-radius: 8px !important;
    padding: 18px 22px !important;
    margin: 28px 0 !important;
}
.caution-title {
    font-weight: 800 !important;
    color: #92400e !important;
    font-size: 15px !important;
    margin-bottom: 8px !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}
.caution-content {
    font-size: 14px !important;
    color: #451a03 !important;
    line-height: 1.75 !important;
}

/* 5. 比較テーブル（SWELL風モダンテーブル） */
.table-responsive {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    margin: 28px 0 !important;
}
.swell-table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin: 16px 0 !important;
    font-size: 14px !important;
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 8px !important;
    overflow: hidden !important;
}
.swell-table th {
    background: #f8fafc !important;
    color: #1e293b !important;
    border: 1px solid #e2e8f0 !important;
    font-weight: 700 !important;
    padding: 12px 16px !important;
    text-align: left !important;
    border: 1px solid #334155 !important;
    white-space: nowrap !important;
}
.swell-table td {
    padding: 12px 16px !important;
    border: 1px solid #e2e8f0 !important;
    color: #334155 !important;
    line-height: 1.6 !important;
}
.swell-table tr:nth-child(even) td {
    background: #f8fafc !important;
}
.swell-table td.highlight-cell {
    background: #fef3c7 !important;
    font-weight: 800 !important;
    color: #92400e !important;
}

/* 6. 担当者プロフィールボックス（Profile Box） */
.profile-box {
    background: #f8fafc !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 12px !important;
    padding: 20px 24px !important;
    margin: 36px 0 !important;
    display: flex !important;
    gap: 18px !important;
    align-items: center !important;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.04) !important;
}
.profile-avatar {
    width: 72px !important;
    height: 72px !important;
    border-radius: 50% !important;
    background: var(--accent-primary, #0284c7) !important;
    color: #ffffff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 32px !important;
    flex-shrink: 0 !important;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15) !important;
}
.profile-info {
    flex: 1 !important;
}
.profile-name {
    font-size: 16px !important;
    font-weight: 800 !important;
    color: #0f172a !important;
    margin-bottom: 4px !important;
}
.profile-role {
    font-size: 12px !important;
    color: var(--accent-primary, #0284c7) !important;
    font-weight: 700 !important;
    margin-bottom: 6px !important;
}
.profile-desc {
    font-size: 13px !important;
    color: #64748b !important;
    line-height: 1.6 !important;
    margin: 0 !important;
}

/* 7. 行動喚起CTAボックス（CTA Box） */
.cta-box {
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%) !important;
    color: #ffffff !important;
    border-radius: 12px !important;
    padding: 28px 24px !important;
    margin: 40px 0 20px !important;
    text-align: center !important;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.15) !important;
}
.cta-title {
    font-size: 18px !important;
    font-weight: 800 !important;
    color: #ffffff !important;
    margin-bottom: 10px !important;
}
.cta-desc {
    font-size: 14px !important;
    color: #cbd5e1 !important;
    margin-bottom: 20px !important;
    line-height: 1.7 !important;
}
.cta-btn {
    display: inline-block !important;
    background: linear-gradient(135deg, #38bdf8 0%, #0284c7 100%) !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    font-size: 15px !important;
    padding: 12px 32px !important;
    border-radius: 999px !important;
    text-decoration: none !important;
    box-shadow: 0 4px 14px rgba(56, 189, 248, 0.4) !important;
    transition: transform 0.2s, box-shadow 0.2s !important;
}
.cta-btn:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(56, 189, 248, 0.6) !important;
}

/* ==========================================================================
   8. グローバルナビゲーション（1行完全整列 ＆ ドロップダウン対応）
   ========================================================================== */
#header-box {
    background: #064e3b !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1) !important;
    position: relative;
    z-index: 1000;
}

#header.header-type1 {
    max-width: 1240px !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: 10px 24px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    box-sizing: border-box !important;
    height: auto !important;
}

#site-info {
    flex-shrink: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

#site-info a,
.tn-logo-size a {
    font-size: 22px !important;
    font-weight: 900 !important;
    color: #ffffff !important;
    letter-spacing: 0.04em !important;
    white-space: nowrap !important;
    text-decoration: none !important;
    display: inline-block !important;
    line-height: 1.2 !important;
}

#drawernav3 {
    flex-grow: 1 !important;
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
}

#drawernav3 nav {
    width: auto !important;
}

.menu-box {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;
    gap: 2px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.menu-box > li {
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
}

.menu-box > li > a {
    display: flex !important;
    align-items: center !important;
    padding: 8px 12px !important;
    font-size: 13.5px !important;
    font-weight: 700 !important;
    color: #f1f5f9 !important;
    white-space: nowrap !important;
    border-radius: 6px !important;
    text-decoration: none !important;
    transition: all 0.15s ease-in-out !important;
}

.menu-box > li > a:hover {
    background: rgba(255, 255, 255, 0.15) !important;
    color: #ffffff !important;
}

/* 親メニュー・ドロップダウン対応 */
.menu-box .menu-item-has-children {
    position: relative;
}

.menu-box .sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 240px;
    background: #ffffff !important;
    box-shadow: 0 10px 25px rgba(0,0,0,0.15) !important;
    border-radius: 8px !important;
    padding: 8px 0 !important;
    z-index: 9999;
    border: 1px solid #e2e8f0;
    list-style: none;
    margin: 0;
}

.menu-box .menu-item-has-children:hover > .sub-menu {
    display: block !important;
    animation: fadeInDown 0.2s ease-out;
}

.menu-box .sub-menu li {
    display: block !important;
    width: 100%;
    margin: 0;
    padding: 0;
}

.menu-box .sub-menu li a {
    display: block !important;
    padding: 10px 18px !important;
    font-size: 13.5px !important;
    font-weight: 700 !important;
    color: #1e293b !important;
    text-align: left !important;
    border-bottom: 1px solid #f1f5f9;
    transition: all 0.15s ease;
}

.menu-box .sub-menu li:last-child a {
    border-bottom: none;
}

.menu-box .sub-menu li a:hover {
    background: #ecfdf5 !important;
    color: #059669 !important;
    padding-left: 22px !important;
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ==========================================================================
   9. Contact Form 7（北摂メディア水準 スタイリング）
   ========================================================================== */
.wpcf7 form.wpcf7-form {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 28px 24px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}

.wpcf7 form p {
    margin-bottom: 20px !important;
}

.wpcf7 form label {
    font-weight: 700 !important;
    font-size: 14.5px !important;
    color: #1e293b !important;
    display: block !important;
    margin-bottom: 6px !important;
}

.wpcf7-form-control.wpcf7-text,
.wpcf7-form-control.wpcf7-textarea,
.wpcf7-form-control.wpcf7-select {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 12px 14px !important;
    border: 1.5px solid #cbd5e1 !important;
    border-radius: 6px !important;
    font-size: 14.5px !important;
    background: #ffffff !important;
    color: #1e293b !important;
    outline: none !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
}

.wpcf7-form-control.wpcf7-text:focus,
.wpcf7-form-control.wpcf7-textarea:focus,
.wpcf7-form-control.wpcf7-select:focus {
    border-color: #059669 !important;
    box-shadow: 0 0 0 3px rgba(5, 150, 105, 0.15) !important;
}

.wpcf7-form-control.wpcf7-submit {
    display: inline-block !important;
    width: auto !important;
    min-width: 220px !important;
    background: linear-gradient(135deg, #059669 0%, #047857 100%) !important;
    color: #ffffff !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    padding: 14px 44px !important;
    border: none !important;
    border-radius: 999px !important;
    cursor: pointer !important;
    box-shadow: 0 4px 14px rgba(5, 150, 105, 0.4) !important;
    transition: transform 0.15s, box-shadow 0.15s !important;
    text-align: center !important;
    margin-top: 10px !important;
}

.wpcf7-form-control.wpcf7-submit:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(5, 150, 105, 0.55) !important;
}

.wpcf7-response-output {
    border-radius: 8px !important;
    padding: 14px 18px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    margin: 20px 0 0 !important;
}





/* ==========================================================================
   スキマ資格ガイド 高品位デザイン・ナビゲーション・ヘッダーバナー スタイル
   ========================================================================== */

/* JINデフォルトのヘッダー文字オーバーレイ（入力できます等）を完全非表示 */
.top-image-meta,
.main-image-text,
.main-image-text-sub,
.top-image-btn-color,
.top-image-meta.jin-sp-design {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
}

/* グローバルナビゲーションバー（視認性抜群のエメラルドディープグリーン） */
#glonavi,
.glonavi,
nav.fixed-content,
#menu-box {
    background-color: #04382a !important;
    border-bottom: 2px solid #059669 !important;
}

#glonavi a,
.glonavi a,
nav.fixed-content a,
.menu-box li a {
    color: #ffffff !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    letter-spacing: 0.02em !important;
    text-shadow: 0 1px 2px rgba(0,0,0,0.2) !important;
    transition: all 0.2s ease !important;
}

#glonavi a:hover,
.glonavi a:hover,
nav.fixed-content a:hover,
.menu-box li a:hover,
.menu-box li.current-menu-item a {
    background-color: #065f46 !important;
    color: #6ee7b7 !important;
}

/* ヘッダーエリアの背景 */
#header,
.header-box {
    background-color: #064e3b !important;
}


/* ==========================================================================
   ヘッダーバナー画像のアスペクト比保護＆カードコンテナ化（北摂姉妹サイト統一規格）
   ========================================================================== */
#main-image,
.main-image {
    max-height: 450px !important;
    overflow: hidden !important;
    max-width: 1200px !important;
    margin: 20px auto 30px auto !important;
    padding: 0 15px !important;
}

#main-image img,
.main-image img {
    width: 100% !important;
    max-height: 450px !important;
    aspect-ratio: 1376 / 450 !important;
    object-fit: cover !important;
    border-radius: 18px !important;
    box-shadow: 0 12px 36px rgba(15, 23, 42, 0.12), 0 4px 12px rgba(15, 23, 42, 0.08) !important;
    height: auto !important;
    display: block !important;
    border: 1px solid rgba(226, 232, 240, 0.8) !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}

#main-image:hover img,
.main-image:hover img {
    box-shadow: 0 16px 44px rgba(15, 23, 42, 0.16) !important;
}



/* ==========================================================================
   グローバルナビゲーションの完全中央配置 (Header Menu Perfect Centering)
   ========================================================================== */
#nav-container {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    background: transparent !important;
}

#drawernav,
#drawernav2,
#drawernav3 {
    width: 100% !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}

#drawernav nav.fixed-content,
#drawernav2 nav.fixed-content,
#drawernav3 nav.fixed-content {
    float: none !important;
    margin: 0 auto !important;
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
}

#drawernav ul.menu-box,
#drawernav2 ul.menu-box,
#drawernav3 ul.menu-box {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    margin: 0 auto !important;
    padding: 0 !important;
    list-style: none !important;
    flex-wrap: wrap !important;
    gap: 4px 12px !important;
}

#drawernav ul.menu-box > li.menu-item,
#drawernav2 ul.menu-box > li.menu-item,
#drawernav3 ul.menu-box > li.menu-item {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    float: none !important;
    width: auto !important;
    border: none !important;
}

#drawernav ul.menu-box > li.menu-item > a,
#drawernav2 ul.menu-box > li.menu-item > a,
#drawernav3 ul.menu-box > li.menu-item > a {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 8px 16px !important;
    font-size: 0.88rem !important;
    font-weight: 700 !important;
    border-radius: 8px !important;
    height: auto !important;
    white-space: nowrap !important;
    transition: all 0.2s ease !important;
}

#drawernav ul.menu-box > li.menu-item > a:hover,
#drawernav2 ul.menu-box > li.menu-item > a:hover,
#drawernav3 ul.menu-box > li.menu-item > a:hover {
    background: rgba(255, 255, 255, 0.15) !important;
    color: #ffffff !important;
}
