/*
Theme Name: カナエルキャリアテーマ
Author: カナエルキャリア
Version: 1.13.0
Description: カナエルキャリアのオリジナルテーマです。（全スマホ崩れ・プライバシーポリシー競合修復・完全版／index.php等の不具合修正版／トップページ メインビジュアルバナー追加／複数都道府県求人対応／求人詳細ページ新標準デザイン対応／求人一覧カードのバッジ・給与表示崩れ修正／求人一覧のページ送り対応）
*/

html {
    scroll-behavior: smooth;
    overflow-x: hidden !important;
}

:root {
    --primary: #00A3E0;      /* シアンブルー */
    --secondary: #1A2B4C;    /* ネイビー */
    --accent: #FF6F3C;       /* オレンジ */
    --bg-light: #F4F7FA;     /* 背景薄グレー */
    --text-main: #333333;
    --text-sub: #666666;
    --white: #FFFFFF;
    --radius: 12px;
    --shadow: 0 4px 12px rgba(0,0,0,0.05);
    --transition: all 0.3s ease;
    --entry-pink: #FF4D8D;   /* 求人詳細ページ エントリーCTA用ピンク */
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-family: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
}

body {
    background-color: var(--bg-light);
    color: var(--text-main);
    line-height: 1.6;
    padding-top: 70px;
    overflow-x: hidden !important;
    width: 100% !important;
}

/* 共通コンポーネント */
.container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    border-radius: 30px;
    font-weight: bold;
    text-decoration: none;
    transition: var(--transition);
    cursor: pointer;
    border: none;
}

.btn-primary { background: var(--primary); color: var(--white); }
.btn-primary:hover { background: #0082B3; transform: translateY(-2px); }
.btn-accent { background: var(--accent); color: var(--white); }
.btn-accent:hover { background: #E55A2B; transform: translateY(-2px); }
.btn-line { background: #06C755; color: var(--white); }
.btn-line:hover { background: #05B34C; transform: translateY(-2px); }

.badge {
    display: inline-block;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: bold;
    margin-right: 6px;
    margin-bottom: 6px;
}
.badge-type { background: #E1F5FE; color: #0288D1; }
.badge-feature { background: #E8F5E9; color: #388E3C; }
.badge-location { background: #FFF3E0; color: #E65100; }
.badge-more { background: #F0F2F5; color: var(--text-sub); }

/* 複数勤務地（都道府県）をチップ状に折り返し表示する */
.job-location-list {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}
.job-location-list .badge-location {
    margin-right: 0;
    margin-bottom: 0;
}

/* ヘッダー */
header {
    background: var(--white);
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    height: 70px;
}
.header-wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 70px;
}
.logo {
    font-size: 22px;
    font-weight: 800;
    color: var(--secondary);
    text-decoration: none;
}
.logo span { color: var(--primary); }
.nav-menu { display: flex; gap: 20px; align-items: center; list-style: none; }
.nav-menu a { text-decoration: none; color: var(--text-main); font-weight: 500; font-size: 14px; }
.nav-menu a:hover { color: var(--primary); }

/* 👤 ハンバーガーメニューボタン */
.hamburger-btn {
    display: none;
    flex-direction: column;
    justify-content: space-between;
    width: 30px;
    height: 22px;
    background: none;
    border: none;
    cursor: pointer;
    z-index: 2000;
    padding: 0;
}
.hamburger-btn span {
    width: 100%;
    height: 3px;
    background-color: var(--secondary);
    border-radius: 2px;
    transition: var(--transition);
}

/* 📱 スマホ用引き出しメニュー */
.sp-nav-menu {
    position: fixed;
    top: 0;
    right: -100%;
    width: 280px;
    height: 100vh;
    background-color: var(--secondary);
    z-index: 1500;
    padding: 90px 24px 40px;
    box-shadow: -4px 0 20px rgba(0,0,0,0.1);
    transition: right 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.sp-nav-menu li a {
    color: #BAC7D5;
    text-decoration: none;
    font-size: 16px;
    font-weight: bold;
    display: block;
    padding: 10px 0;
    border-bottom: 1px solid rgba(255,255,255,0.05);
    transition: var(--transition);
}
.sp-nav-menu li a:hover {
    color: var(--white);
}

/* メニュー開時修正 */
body.nav-open .sp-nav-menu {
    right: 0;
}
body.nav-open .hamburger-btn span:nth-child(1) {
    transform: translateY(9.5px) rotate(45deg);
    background-color: var(--white);
}
body.nav-open .hamburger-btn span:nth-child(2) {
    opacity: 0;
}
body.nav-open .hamburger-btn span:nth-child(3) {
    transform: translateY(-9.5px) rotate(-45deg);
    background-color: var(--white);
}

.nav-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1400;
    opacity: 0;
    pointer-events: none;
    transition: var(--transition);
}
body.nav-open .nav-overlay {
    opacity: 1;
    pointer-events: auto;
}

/* ヒーローエリア */
.hero {
    background: linear-gradient(135deg, #E0F2FE 0%, #FFF 100%);
    padding: 60px 0;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.hero-banner {
    margin-bottom: 30px;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
}
.hero-banner-img {
    display: block;
    width: 100%;
    height: auto;
}
.hero h1 {
    font-size: 36px;
    color: var(--secondary);
    margin-bottom: 15px;
    font-weight: 800;
    line-height: 1.4;
}
.hero h1 span { color: var(--primary); }
.hero p { color: var(--text-sub); margin-bottom: 30px; font-size: 16px; padding: 0 10px; }

/* 検索パネル */
.search-panel {
    background: var(--white);
    border-radius: var(--radius);
    padding: 30px;
    box-shadow: var(--shadow);
    max-width: 900px;
    margin: 0 auto;
    text-align: left;
}
.search-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
    margin-bottom: 24px;
}
.search-field label {
    display: block;
    font-size: 14px;
    font-weight: bold;
    color: var(--secondary);
    margin-bottom: 8px;
}
.search-field select {
    width: 100%;
    padding: 12px;
    border: 1px solid #DDD;
    border-radius: 8px;
    font-size: 15px;
    background-color: #FAFAFA;
    color: var(--text-main);
}
.checkbox-group {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    padding-top: 20px;
    border-top: 1px solid #EEE;
}
.checkbox-label {
    display: flex;
    align-items: center;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    line-height: 1.3;
}
.checkbox-label input {
    margin-right: 8px;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.search-btn-wrap {
    text-align: center;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #EEE;
}
.btn-search {
    padding: 14px 60px;
    font-size: 16px;
    box-shadow: 0 4px 14px rgba(255, 111, 60, 0.3);
    width: 100%;
    max-width: 320px;
}

/* メインコンテンツ */
.main-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
    margin-top: 40px;
    margin-bottom: 6px;
}
.section-title {
    font-size: 22px;
    color: var(--secondary);
    margin-bottom: 20px;
    position: relative;
    padding-left: 12px;
}
.section-title::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    bottom: 4px;
    width: 4px;
    background: var(--primary);
    border-radius: 2px;
}
.section-title .kicker {
    display: block;
    font-size: 12px;
    font-weight: bold;
    letter-spacing: 0.1em;
    color: var(--text-sub);
    margin-top: 2px;
}

/* 求人カード一覧 */
.job-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 20px;
}
.job-card {
    background: var(--white);
    border-radius: var(--radius);
    padding: 20px;
    box-shadow: var(--shadow);
    position: relative;
    transition: var(--transition);
    display: flex;
    flex-direction: column;
}
.job-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}
.fav-btn {
    position: absolute;
    top: 20px;
    right: 20px;
    background: #F0F2F5;
    border: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    transition: var(--transition);
}
.fav-btn.active {
    background: #FFEEEA;
    color: var(--accent);
}
.job-company {
    font-size: 12px;
    color: var(--text-sub);
    margin-bottom: 4px;
    font-weight: bold;
}
.job-title {
    font-size: 16px;
    font-weight: bold;
    color: var(--secondary);
    margin-bottom: 12px;
    padding-right: 25px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.job-badges-row {
    margin-bottom: 8px;
    /* バッジ数が多い求人でも高さの上限を設け、カードの高さが極端にばらつかないようにする */
    max-height: 56px;
    overflow: hidden;
}
.job-meta {
    font-size: 13px;
    margin-bottom: 14px;
    background: var(--bg-light);
    padding: 10px;
    border-radius: 6px;
}
.job-meta-row {
    display: flex;
    margin-bottom: 4px;
}
.job-meta-row:last-child { margin-bottom: 0; }
.job-meta-label { width: 60px; color: var(--text-sub); font-weight: bold; }
.job-meta-val { flex: 1; color: var(--text-main); }

.job-footer {
    margin-top: auto;
    padding-top: 15px;
    border-top: 1px solid #EEE;
}
.job-salary {
    font-weight: bold;
    color: var(--accent);
    font-size: 14px;
    line-height: 1.5;
    margin-bottom: 10px;
    /* 給与欄が長文の場合でも2行までに収め、カードの高さ・ボタン位置が
       求人ごとに大きくばらつかないようにする（全文は詳細ページで確認できる） */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.job-footer-actions {
    display: flex;
    justify-content: flex-end;
}

/* 求人一覧のページ送り（ページネーション） */
.job-pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-top: 30px;
}
.job-page-btn {
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    border: 1px solid #DDE3EA;
    background: var(--white);
    color: var(--text-main);
    border-radius: 8px;
    font-size: 14px;
    font-weight: bold;
    cursor: pointer;
    transition: var(--transition);
}
.job-page-btn:hover:not(:disabled) {
    border-color: var(--primary);
    color: var(--primary);
}
.job-page-btn.is-active {
    background: var(--primary);
    border-color: var(--primary);
    color: var(--white);
    cursor: default;
}
.job-page-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}
.job-page-btn-nav {
    min-width: auto;
}

/* 利用者の口コミ＆FAQ */
.bottom-sections {
    margin-top: 60px;
    background: var(--white);
    padding: 50px 0;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}
.review-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
    margin-bottom: 40px;
}
.review-card {
    background: var(--bg-light);
    padding: 20px;
    border-radius: var(--radius);
}
.review-user {
    font-weight: bold;
    font-size: 14px;
    margin-bottom: 5px;
}
.review-stars { color: #FFB300; margin-bottom: 10px; }

.faq-item {
    border-bottom: 1px solid #EEE;
    padding: 15px 0;
}
.faq-q {
    font-weight: bold;
    color: var(--secondary);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
}
.faq-a {
    margin-top: 10px;
    color: var(--text-sub);
    display: none;
    font-size: 14px;
}

/* 固定CTA・フッター */
.cta-box {
    background: linear-gradient(135deg, var(--secondary) 0%, #2A3F6D 100%);
    color: var(--white);
    text-align: center;
    padding: 40px 20px;
    border-radius: var(--radius);
    margin: 60px 0;
}
.cta-box h3 { font-size: 22px; margin-bottom: 10px; }
.cta-btns {
    display: flex;
    gap: 15px;
    justify-content: center;
    margin-top: 20px;
    flex-wrap: wrap;
}

footer {
    background: var(--secondary);
    color: #BAC7D5;
    padding: 40px 0 30px;
    text-align: center;
    font-size: 14px;
}
.footer-menu {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px 25px;
    list-style: none;
    margin-bottom: 25px;
    padding: 0 20px;
}
.footer-menu a {
    color: #BAC7D5;
    text-decoration: none;
    transition: var(--transition);
}
.footer-menu a:hover {
    color: var(--white);
}
.footer-copyright {
    font-size: 13px;
    color: #8A9BAE;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 20px;
    display: inline-block;
    width: 100%;
    max-width: 1200px;
}

.blog-section {
    margin-top: 60px;
    margin-bottom: 30px;
}
.blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 20px;
}
.blog-card {
    background: var(--white);
    border-radius: var(--radius);
    padding: 20px;
    box-shadow: var(--shadow);
    text-decoration: none;
    color: inherit;
    transition: var(--transition);
    display: flex;
    flex-direction: column;
}
.blog-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}
.blog-date {
    font-size: 12px;
    color: var(--text-sub);
    margin-bottom: 8px;
}
.blog-title {
    font-size: 16px;
    font-weight: bold;
    color: var(--secondary);
    line-height: 1.4;
    margin-bottom: 10px;
}
.blog-excerpt {
    font-size: 13px;
    color: var(--text-sub);
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

/* ==========================================================
   📱 スマートフォン表示最適化＆はみ出し・縦崩れ完全修復
========================================================== */
@media(max-width: 768px) {
    body {
        padding-top: 60px;
    }
    header, .header-wrap {
        height: 60px;
    }
    .nav-menu { 
        display: none; 
    }
    
    .hamburger-btn {
        display: flex;
    }

    .sp-nav-menu {
        width: 85vw !important;
        max-width: 320px !important;
        padding: 80px 16px 30px !important;
    }
    .sp-nav-menu li a.btn {
        font-size: 13px !important;
        padding: 10px 12px !important;
        width: 100% !important;
        white-space: nowrap !important;
        box-sizing: border-box !important;
    }
    
    .container {
        padding: 0 12px !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
    }
    
    .hero {
        padding: 40px 0 30px;
    }
    .hero-banner {
        margin-bottom: 20px;
        border-radius: 8px;
    }
    .hero h1 {
        font-size: 22px; 
        line-height: 1.5;
        margin-bottom: 12px;
        padding: 0 5px;
    }
    .hero p {
        font-size: 14px;
        margin-bottom: 20px;
    }
    
    .search-panel {
        padding: 20px 12px;
        margin: 0 4px;
        max-width: 100% !important;
    }
    .search-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }
    .checkbox-group {
        grid-template-columns: repeat(2, 1fr); 
        gap: 14px 10px;
        padding-top: 16px;
    }
    .checkbox-label {
        font-size: 12px;
    }
    
    main.container {
        margin-top: 20px !important;
        margin-bottom: 40px !important;
        padding: 0 8px !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
    }

    .page-content, .job-content {
        padding: 20px 12px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* 1. 全ての要素の固定幅を解除 */
    .page-content *, .job-content * {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .page-content div, .job-content div, 
    .page-content section, .job-content section {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 6px !important;
        padding-right: 6px !important;
        box-sizing: border-box !important;
    }

    /* 2. 見出しサイズの適正化（折り返し設定修正） */
    .page-content h1, .job-content h1, .single-job h1 {
        font-size: 20px !important;
        line-height: 1.4 !important;
        word-break: normal !important;
        overflow-wrap: anywhere !important;
        margin-bottom: 16px !important;
        width: 100% !important;
    }

    .page-content h2, .job-content h2, .single-job h2,
    .page-content h3, .job-content h3, .single-job h3 {
        font-size: 17px !important;
        line-height: 1.5 !important;
        word-break: normal !important;
        overflow-wrap: anywhere !important;
        padding-left: 6px !important;
        width: 100% !important;
        margin-bottom: 12px !important;
    }

    /* 3. タグ・バッジ類が重ならないよう自動折り返し */
    .page-content .badge, .job-content .badge, .single-job .badge {
        display: inline-flex !important;
        margin-right: 6px !important;
        margin-bottom: 8px !important;
        font-size: 11px !important;
        padding: 5px 10px !important;
        white-space: nowrap !important;
        height: auto !important;
        position: static !important;
    }

    /* 4. 長いURLリンクのはみ出し防止 */
    .page-content a, .job-content a {
        word-break: break-all !important;
        overflow-wrap: anywhere !important;
    }

    .job-list {
        grid-template-columns: 1fr;
    }
    .footer-menu {
        flex-direction: column;
        gap: 12px;
    }
}

/* 極小スマホ（iPhone SE等）用微調整 */
@media(max-width: 375px) {
    .checkbox-group {
        grid-template-columns: 1fr;
    }
    .page-content h1, .job-content h1 {
        font-size: 18px !important;
    }
}

/* ==========================================================
   🚨 募集要項テーブル（表）の修復
========================================================== */
@media (max-width: 768px) {
    .single-job table, .job-content table, .page-content table {
        width: 100% !important;
        max-width: 100% !important;
        table-layout: fixed !important;
        display: table !important;
        margin-bottom: 20px !important;
    }

    .single-job table tr, .job-content table tr, .page-content table tr,
    .single-job table tbody, .job-content table tbody, .page-content table tbody {
        display: block !important;
        width: 100% !important;
    }

    .single-job table th, .single-job table td,
    .job-content table th, .job-content table td,
    .page-content table th, .page-content table td {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
        word-break: break-all !important;
        overflow-wrap: break-word !important;
        white-space: normal !important;
    }

    .single-job table th, .job-content table th, .page-content table th,
    .single-job table td:first-child, .job-content table td:first-child, .page-content table td:first-child {
        font-size: 15px !important;
        font-weight: bold !important;
        color: #1A2B4C !important;
        background-color: #F4F7FA !important;
        padding: 10px 12px !important;
        margin-top: 15px !important;
        border-radius: 6px 6px 0 0 !important;
    }

    .single-job table td, .job-content table td, .page-content table td {
        font-size: 14px !important;
        line-height: 1.7 !important;
        color: #333333 !important;
        padding: 12px !important;
        background-color: #FFFFFF !important;
        border: 1px solid #EEEEEE !important;
        border-top: none !important;
        margin-bottom: 10px !important;
        border-radius: 0 0 6px 6px !important;
    }

    .single-job table *, .job-content table *, .page-content table * {
        font-size: 14px !important;
        white-space: normal !important;
        word-break: break-all !important;
        max-width: 100% !important;
    }
}

/* ==========================================================
   🔒 プライバシーポリシー専用（競合完全シャットアウト＆スマホ最適化）
========================================================== */
.privacy-policy-wrapper {
  font-family: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif !important;
  color: #333333 !important;
  line-height: 1.8 !important;
  letter-spacing: 0.03em !important;
  max-width: 1000px !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 40px 20px !important;
  box-sizing: border-box !important;
  overflow-wrap: break-word !important;
  word-break: break-word !important;
}

.privacy-policy-wrapper *,
.privacy-policy-wrapper *::before,
.privacy-policy-wrapper *::after {
  box-sizing: border-box !important;
  max-width: 100% !important;
  overflow-wrap: break-word !important;
  word-break: break-word !important;
}

.privacy-policy-wrapper section {
  margin-bottom: 50px !important;
}

.privacy-policy-wrapper .section-title {
  text-align: center !important;
  margin-bottom: 40px !important;
}

.privacy-policy-wrapper .section-title h2 {
  font-size: 2rem !important;
  font-weight: 700 !important;
  color: #1a365d !important;
  margin: 0 0 10px 0 !important;
  position: relative !important;
  display: inline-block !important;
  padding-bottom: 15px !important;
  line-height: 1.3 !important;
  border: none !important;
  background: none !important;
}

.privacy-policy-wrapper .section-title h2::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 60px !important;
  height: 4px !important;
  background-color: #3182ce !important;
  border-radius: 2px !important;
}

.privacy-policy-wrapper .section-title .subtitle {
  display: block !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  color: #3182ce !important;
  text-transform: uppercase !important;
  letter-spacing: 0.2em !important;
  margin-top: 5px !important;
}

.pp-lead-box {
  background-color: #f7fafc !important;
  border-top: 4px solid #1a365d !important;
  padding: 30px !important;
  border-radius: 4px !important;
  margin-bottom: 50px !important;
  box-shadow: 0 2px 10px rgba(0,0,0,0.02) !important;
}
.pp-lead-box .catch {
  font-size: 1.2rem !important;
  font-weight: 700 !important;
  color: #1a365d !important;
  margin-bottom: 15px !important;
  text-align: center !important;
  line-height: 1.5 !important;
}
.pp-lead-box p {
  font-size: 0.95rem !important;
  margin: 0 !important;
}

.pp-content h3 {
  font-size: 1.2rem !important;
  font-weight: 700 !important;
  color: #1a365d !important;
  border-bottom: 2px solid #e2e8f0 !important;
  padding-bottom: 8px !important;
  margin: 40px 0 20px 0 !important;
  background: none !important;
}

.pp-content p {
  font-size: 0.95rem !important;
  margin-bottom: 15px !important;
  display: block !important;
}

/* 箇条書き（縦崩れ完全防止） */
.pp-list {
  padding-left: 24px !important;
  margin-bottom: 25px !important;
  list-style-type: decimal !important;
  display: block !important;
}

.pp-list > li {
  display: list-item !important;
  margin-bottom: 12px !important;
  font-size: 0.95rem !important;
  line-height: 1.7 !important;
  padding-left: 4px !important;
  position: static !important;
  float: none !important;
}

.ad-services {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 20px !important;
  margin-top: 20px !important;
  width: 100% !important;
}
.ad-card {
  flex: 1 1 280px !important;
  min-width: 0 !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 6px !important;
  padding: 20px !important;
}
.ad-card h4 {
  margin: 0 0 15px 0 !important;
  font-size: 1.05rem !important;
  color: #2d3748 !important;
  border-left: 4px solid #3182ce !important;
  padding-left: 10px !important;
  border-top: none !important;
  border-right: none !important;
  border-bottom: none !important;
}
.ad-link-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 0.85rem !important;
}
.ad-link-list li {
  display: block !important;
  margin-bottom: 12px !important;
}
.ad-link-list a {
  color: #3182ce !important;
  text-decoration: none !important;
  word-break: break-all !important;
}

.pp-table {
  width: 100% !important;
  border-collapse: collapse !important;
  margin-top: 20px !important;
  table-layout: fixed !important;
}
.pp-table th, .pp-table td {
  padding: 15px !important;
  border: 1px solid #e2e8f0 !important;
  text-align: left !important;
  font-size: 0.95rem !important;
}
.pp-table th {
  width: 25% !important;
  font-weight: 700 !important;
  color: #1a365d !important;
  background-color: #f7fafc !important;
}
.pp-date {
  text-align: right !important;
  font-size: 0.9rem !important;
  color: #718096 !important;
  margin-top: 40px !important;
}

@media screen and (max-width: 768px) {
  .privacy-policy-wrapper {
    padding: 20px 8px !important;
  }
  
  .privacy-policy-wrapper .section-title h2 {
    font-size: 1.35rem !important;
  }

  .pp-lead-box {
    padding: 18px 12px !important;
    margin-bottom: 30px !important;
  }

  .pp-lead-box .catch {
    font-size: 1.05rem !important;
  }

  .pp-content h3 {
    font-size: 1.1rem !important;
    margin: 30px 0 15px 0 !important;
  }

  .pp-list {
    padding-left: 20px !important;
  }

  .ad-card {
    flex: 1 1 100% !important;
  }

  .pp-table, 
  .pp-table tbody, 
  .pp-table tr, 
  .pp-table th, 
  .pp-table td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  
  .pp-table tr {
    margin-bottom: 10px !important;
  }

  .pp-table th {
    background-color: #f7fafc !important;
    border-bottom: none !important;
    padding: 10px 12px 4px 12px !important;
    color: #3182ce !important;
    width: 100% !important;
  }
  
  .pp-table td {
    border-top: none !important;
    padding: 4px 12px 12px 12px !important;
    width: 100% !important;
  }
}
/* 固定ページ専用スタイル */
.fix-page-container {
    max-width: 900px;
    margin-top: 40px;
    margin-bottom: 60px;
}

.fix-page-container .section-title {
    font-size: 24px;
    margin-bottom: 25px;
}
/* 求人詳細ページ（single-job.php）用装飾 */
.single-job-container {
    margin-top: 40px;
    margin-bottom: 60px;
    max-width: 900px;
}

.job-header-card, .job-body-card {
    background: var(--white);
    padding: 30px;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    margin-bottom: 30px;
}

.job-company-name {
    font-size: 14px;
    color: var(--text-sub);
    font-weight: bold;
    margin-bottom: 8px;
}

.job-detail-title {
    font-size: 24px;
    color: var(--secondary);
    line-height: 1.4;
    margin-bottom: 15px;
}

.job-badges {
    margin-bottom: 20px;
}

.job-spec-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 10px;
    font-size: 15px;
}

.job-spec-table tr {
    border-bottom: 1px solid #EEE;
}

.job-spec-table th {
    width: 140px;
    padding: 12px 16px 12px 0;
    font-weight: bold;
    color: var(--secondary);
    text-align: left;
    vertical-align: top;
    white-space: nowrap;
}

.job-spec-table td {
    padding: 12px 0;
    color: var(--text-main);
    line-height: 1.8;
}
.job-spec-table td ul,
.job-spec-table td ol {
    padding-left: 1.2em;
}

.job-spec-table td.salary-val {
    font-weight: bold;
    color: var(--accent);
}

/* スマホ表示時の余白調整 */
@media (max-width: 768px) {
    .job-header-card, .job-body-card {
        padding: 20px 15px;
    }
    .job-detail-title {
        font-size: 20px;
    }
}

/* 求人詳細ページ 新標準デザイン（ヒーローカード・メリット・チェックリスト・エントリーCTA） */
.job-page-label {
    font-size: 13px;
    color: var(--text-sub);
    font-weight: bold;
    margin-bottom: 8px;
}

.job-hero-card {
    background: linear-gradient(135deg, var(--secondary) 0%, #2A3F6D 100%);
    color: var(--white);
    padding: 34px 30px;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    margin-bottom: 30px;
}
.job-hero-card .job-detail-title {
    color: var(--white);
    margin-bottom: 16px;
}

.job-hero-badge-pill {
    display: inline-block;
    background: rgba(255,255,255,0.15);
    color: var(--white);
    padding: 6px 16px;
    border-radius: 30px;
    font-size: 13px;
    font-weight: bold;
    margin-bottom: 14px;
}

.job-highlight-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.job-highlight-badge {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: bold;
}
.job-highlight-badge.is-tone-a { background: var(--primary); color: var(--white); }
.job-highlight-badge.is-tone-b { background: var(--accent); color: var(--white); }

.job-notice-box {
    background: #FFF9E6;
    border-left: 4px solid #FFC107;
    padding: 18px 20px;
    border-radius: 4px;
    margin-bottom: 30px;
    font-size: 14px;
    color: var(--text-main);
}
.job-notice-box p:not(:last-child) { margin-bottom: 8px; }

.job-merits-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 40px;
}
.job-merit-card {
    background: var(--white);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 24px;
    position: relative;
}
.job-merit-number {
    display: block;
    font-size: 22px;
    font-weight: bold;
    color: var(--primary);
    margin-bottom: 8px;
}
.job-merit-title {
    font-size: 16px;
    color: var(--secondary);
    margin-bottom: 8px;
}
.job-merit-body {
    font-size: 14px;
    color: var(--text-sub);
    line-height: 1.7;
}

.job-subheading {
    font-size: 18px;
    color: var(--secondary);
    margin-bottom: 16px;
}

.job-mindset-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    margin-bottom: 40px;
}
.job-mindset-item {
    position: relative;
    background: var(--white);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 16px 20px 16px 44px;
    font-size: 14px;
    color: var(--text-main);
}
.job-mindset-item::before {
    content: '✓';
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--primary);
    font-weight: bold;
    font-size: 16px;
}

.job-entry-cta {
    text-align: center;
    margin: 10px 0 40px;
}
.job-entry-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 16px 60px;
    border-radius: 30px;
    background: var(--entry-pink);
    color: var(--white);
    font-weight: bold;
    font-size: 16px;
    text-decoration: none;
    transition: var(--transition);
}
.job-entry-btn:hover {
    background: #E03D79;
    transform: translateY(-2px);
}

/* スマホ表示時：メリット・チェックリストは1列に、ヒーローの余白も縮小 */
@media (max-width: 768px) {
    .job-hero-card {
        padding: 24px 20px;
    }
    .job-merits-grid,
    .job-mindset-grid {
        grid-template-columns: 1fr;
    }
    .job-entry-btn {
        width: 100%;
        padding: 16px 20px;
    }
}

/* ブログ詳細ページ（single.php）用装飾 */
.single-post-container {
    margin-top: 40px;
    margin-bottom: 60px;
    max-width: 800px;
}

.post-meta-info {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

.post-date {
    font-size: 13px;
    color: var(--text-sub);
    font-weight: bold;
}

.post-detail-title {
    font-size: 26px;
    color: var(--secondary);
    line-height: 1.4;
    margin-bottom: 25px;
}

.post-thumbnail {
    margin-bottom: 25px;
    border-radius: var(--radius);
    overflow: hidden;
}

.post-thumbnail img {
    width: 100%;
    height: auto;
    display: block;
}

.single-post-content {
    background: var(--white);
    padding: 30px;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    line-height: 1.8;
}

/* スマホ表示時の余白調整 */
@media (max-width: 768px) {
    .single-post-container {
        margin-top: 20px;
        margin-bottom: 40px;
    }
    .post-detail-title {
        font-size: 20px;
        margin-bottom: 15px;
    }
    .single-post-content {
        padding: 20px 15px !important;
    }
}