@charset "UTF-8";
/* ==========================================================================
   pandaa-career.jp WordPressテーマ メインCSS
   バージョン: 7.0.0 (アニメーション追加・!important排除・完全版)
   ========================================================================== */

/* ===== 1. リセット・ベース ===== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { margin: 0; font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', sans-serif; font-size: 16px; line-height: 1.75; color: #01221e; background: #ffffff; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
img { max-width: 100%; height: auto; vertical-align: middle; display: block; }
a { color: inherit; text-decoration: none; transition: opacity 0.3s, color 0.3s, transform 0.3s, box-shadow 0.3s; }
a:hover { opacity: 0.85; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button { cursor: pointer; background: none; border: none; font-family: inherit; color: inherit; padding: 0; }
h1, h2, h3, h4, h5, h6 { margin: 0; line-height: 1.4; font-weight: 700; }
p { margin: 0; }
details summary { list-style: none; cursor: pointer; }
details summary::-webkit-details-marker { display: none; }

/* ===== 2. CSS変数 ===== */
:root {
    --color-primary: #14cfb0; --color-primary-dark: #12b79b; --color-primary-light: #5ee4cc; --color-accent: #ffd75e;
    --color-text: #01221e; --color-text-sub: #4a4a4a; --color-text-light: #888;
    --color-bg: #ffffff; --color-bg-sub: #f6f6f6; --color-bg-mint: #e7faf8; --color-bg-mint-light: #dff4f1; --color-border: #e2e2e2;
    --color-overlay-dark: rgba(41, 34, 34, 0.7);
    --font-base: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', sans-serif; --font-en: 'Poppins', 'Noto Sans JP', sans-serif;
    --container-max: 1280px; --container-narrow: 980px; --container-padding: 32px;
    --header-height: 80px; --header-height-sp: 62px;
    --gradient-primary: linear-gradient(90deg, #14cfb0 0%, #5ee4cc 100%);
    --shadow-card: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* ===== 3. アニメーション定義 ===== */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
@keyframes slideInUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes slideInLeft {
    from { opacity: 0; transform: translateX(-40px); }
    to { opacity: 1; transform: translateX(0); }
}
@keyframes slideInRight {
    from { opacity: 0; transform: translateX(40px); }
    to { opacity: 1; transform: translateX(0); }
}
@keyframes zoomIn {
    from { opacity: 0; transform: scale(0.9); }
    to { opacity: 1; transform: scale(1); }
}
@keyframes bounceIn {
    0% { opacity: 0; transform: scale(0.5); }
    50% { opacity: 1; transform: scale(1.05); }
    70% { transform: scale(0.95); }
    100% { opacity: 1; transform: scale(1); }
}

/* スクロール連動（JSによるクラス付与用） */
.js-fadein { opacity: 0; transform: translateY(30px); transition: opacity 0.8s ease-out, transform 0.8s ease-out; }
.js-fadein.is-active { opacity: 1; transform: translateY(0); }
.js-fadein-delay-1 { transition-delay: 0.15s; }
.js-fadein-delay-2 { transition-delay: 0.3s; }
.js-fadein-delay-3 { transition-delay: 0.45s; }
.js-fadein-delay-4 { transition-delay: 0.6s; }

.pc-bg-white { background-color: var(--color-bg); }

/* ===== 4. 共通要素 ===== */
.pc-section { padding: 100px 0; }
.pc-section__inner { max-width: var(--container-max); margin: 0 auto; padding: 0 var(--container-padding); }
.pc-section__inner--narrow { max-width: var(--container-narrow); }
.pc-section__label { color: var(--color-primary); font-family: var(--font-en); font-size: 16px; font-weight: 600; letter-spacing: 0.1em; text-align: center; margin: 0 0 8px; text-transform: uppercase; }
.pc-section__label--white { color: #fff; }
.pc-section__title { color: var(--color-text); font-size: 36px; font-weight: 700; line-height: 1.6; text-align: center; margin: 0; }
.pc-section__title--white { color: #fff; }

.pc-btn { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; border-radius: 4px; transition: all 0.3s; cursor: pointer; font-family: var(--font-base); }
.pc-btn--primary { background: var(--gradient-primary); color: #fff; border: 2px solid #fff; box-shadow: 0 4px 12px rgba(20, 207, 176, 0.3); }
.pc-btn--primary:hover { opacity: 1; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(20, 207, 176, 0.4); }
.pc-btn--large { padding: 18px 40px; min-width: 320px; font-size: 18px; }
.pc-btn__label { color: #fff; font-weight: 700; margin-right: 12px; }
.pc-btn__icon { color: #fff; font-size: 18px; }

.pc-tag { display: inline-block; padding: 4px 14px; border-radius: 20px; font-size: 13px; font-weight: 600; color: #fff; background: var(--gradient-primary); }
.pc-link-more { display: inline-flex; align-items: center; gap: 12px; color: var(--color-primary-dark); font-size: 14px; font-weight: 600; padding: 8px 16px; border: 1px solid var(--color-primary); border-radius: 30px; }
.pc-link-more:hover { background: var(--color-primary); color: #fff; opacity: 1; }
.pc-text--gradient { background: var(--gradient-primary); -webkit-background-clip: text; background-clip: text; color: transparent; font-weight: 700; }
.pc-pc-only { display: inline; }

/* 共通ヒーロー背景画像 */
body .pc-archive__hero, body .pc-casepage__hero, body .pc-faqpage__hero, body .pc-regpage__hero, body .pc-inquiry__hero {
    background-image: url('../images/hero-bg.jpg');
    background-size: cover; background-position: center;
}
body > .pc-header:first-of-type + .pc-header { display: none; }

/* ===== 5. ヘッダー ===== */
.pc-header { position: fixed; top: 0; left: 0; right: 0; height: var(--header-height); background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); z-index: 100; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); }
.pc-header__inner { max-width: 100%; height: 100%; padding: 0 32px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.pc-header__logo-img { height: 32px; width: auto; }
.pc-header__nav { flex: 1; }
.pc-header__menu { display: flex; justify-content: center; gap: 18px; }
.pc-header__menu a { color: var(--color-text); font-size: 13px; font-weight: 500; padding: 6px 0; position: relative; text-decoration: none; white-space: nowrap; }
.pc-header__menu a::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 1px; background: var(--gradient-primary); transform: scaleX(0); transition: transform 0.3s; }
.pc-header__menu a:hover::after { transform: scaleX(1); }
.pc-header__cta { display: flex; align-items: center; gap: 12px; }
.pc-header__cta-sub { padding: 8px 12px; border: 1px solid var(--color-primary); border-radius: 4px; color: var(--color-text); font-size: 11px; font-weight: 500; background: #fff; white-space: nowrap; }
.pc-header__cta-sub:hover { background: var(--color-primary); color: #fff; }
.pc-header__cta-main { padding: 11px 20px; background: var(--gradient-primary); color: #fff; font-size: 13px; font-weight: 700; border-radius: 4px; white-space: nowrap; }
.pc-header__cta-main:hover { opacity: 0.9; transform: translateY(-1px); }

/* スマホメニューとハンバーガー */
.pc-header__hamburger { display: none; flex-direction: column; gap: 6px; padding: 10px; }
.pc-header__hamburger-line { display: block; height: 2px; background: #424242; border-radius: 2px; transition: 0.3s; }
.pc-header__hamburger-line:nth-child(1) { width: 30px; }
.pc-header__hamburger-line:nth-child(2) { width: 22px; }
.pc-header__hamburger-line:nth-child(3) { width: 14px; }
.pc-header__hamburger[aria-expanded="true"] .pc-header__hamburger-line:nth-child(1) { transform: rotate(45deg) translate(7px, 7px); width: 30px; }
.pc-header__hamburger[aria-expanded="true"] .pc-header__hamburger-line:nth-child(2) { opacity: 0; }
.pc-header__hamburger[aria-expanded="true"] .pc-header__hamburger-line:nth-child(3) { transform: rotate(-45deg) translate(7px, -7px); width: 30px; }
.pc-header__mobile-menu { display: none; position: fixed; top: var(--header-height-sp); left: 0; right: 0; background: #fff; padding: 24px 20px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); max-height: calc(100vh - var(--header-height-sp)); overflow-y: auto; transform: translateY(-100%); transition: transform 0.3s; z-index: 99; }
.pc-header__mobile-menu[aria-hidden="false"] { display: block; transform: translateY(0); }
.pc-header__mobile-list { display: flex; flex-direction: column; gap: 16px; }
.pc-header__mobile-list a { display: block; padding: 12px; color: var(--color-text); font-size: 15px; font-weight: 500; border-bottom: 1px solid var(--color-border); }
.pc-header__mobile-cta { background: var(--gradient-primary); color: #fff; border: none; border-radius: 4px; text-align: center; font-weight: 700; margin-top: 8px; }

/* ===== 6. フッター ===== */
.pc-footer { background: #f2f2f2; padding: 80px 0 32px; margin-top: 120px; }
.pc-footer__inner { max-width: var(--container-max); padding: 0 32px; margin: 0 auto; display: flex; justify-content: space-between; gap: 60px; flex-wrap: wrap; }
.pc-footer__info { display: flex; flex-direction: column; gap: 24px; }
.pc-footer__logo-img { width: 160px; height: auto; }
.pc-footer__description { color: var(--color-text); font-size: 14px; line-height: 1.75; }
.pc-footer__social { display: flex; gap: 16px; }
.pc-footer__social a { color: var(--color-text); font-size: 24px; }
.pc-footer__social a:hover { color: var(--color-primary); }
.pc-footer__menus { display: flex; gap: 60px; }
.pc-footer__menu li { margin-bottom: 12px; }
.pc-footer__menu a { color: var(--color-text); font-size: 14px; font-weight: 500; display: inline-flex; align-items: center; gap: 6px; }
.pc-footer__menu a:hover { color: var(--color-primary); }
.pc-footer__copyright { text-align: center; color: var(--color-text); font-size: 12px; padding-top: 32px; margin-top: 40px; border-top: 1px solid var(--color-border); }

/* ===== 7. トップページ & アニメーション ===== */
.pc-main { padding-top: var(--header-height); overflow-x: hidden; }

/* FV (トップ読み込み時アニメーション) */
.pc-fv { padding: 80px 0 100px; background: linear-gradient(180deg, #f0fbf9 0%, #ffffff 100%); overflow: hidden; }
.pc-fv__inner { max-width: var(--container-max); margin: 0 auto; padding: 0 var(--container-padding); display: flex; align-items: center; justify-content: space-between; gap: 60px; }
.pc-fv__text { flex: 1; }
.pc-fv__title { margin-bottom: 24px; line-height: 1.4; }

/* アニメーション要素の設定 */
.pc-fv__title-sub { display: block; color: var(--color-primary-dark); font-size: 28px; font-weight: 700; margin-bottom: 8px; animation: slideInLeft 0.8s ease-out forwards; }
.pc-fv__title-logo { display: block; max-width: 336px; width: 100%; margin-top: 8px; opacity: 0; animation: zoomIn 0.8s ease-out 0.2s forwards; }
.pc-fv__lead { color: var(--color-text); font-size: 16px; line-height: 1.85; margin: 0 0 32px; opacity: 0; animation: fadeIn 1s ease-out 0.6s forwards; }
.pc-fv__cta { margin-top: 40px; opacity: 0; animation: bounceIn 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.8s forwards; }
.pc-fv__image { flex: 1; max-width: 540px; }
.pc-fv__image-img { width: 100%; height: auto; border-radius: 12px; object-fit: cover; aspect-ratio: 4 / 3; opacity: 0; animation: slideInRight 1s ease-out 0.4s forwards; }

/* 実績 */
.pc-main .pc-clients { background: #fff; padding: 0; border: none; margin-top: -50px; margin-bottom: 40px; position: relative; z-index: 10; }
.pc-clients__inner { max-width: var(--container-max); margin: 0 auto; padding: 0 var(--container-padding); display: flex; justify-content: center; align-items: center; gap: 50px; }
.pc-clients__item { display: flex; align-items: center; }
.pc-clients__deco { width: 34px; height: auto; object-fit: contain; flex-shrink: 0; }
.pc-clients__deco--left { margin-right: 12px; }
.pc-clients__deco--right { margin-left: 12px; transform: scaleX(-1); }
.pc-clients__text { display: flex; align-items: baseline; gap: 6px; font-size: 16px; color: var(--color-text); font-weight: 600; }
.pc-clients__text strong { color: var(--color-primary); font-size: 38px; font-family: var(--font-en); margin: 0 8px; line-height: 1; }

/* サービス */
.pc-service { background: #fff; }
.pc-service__wrap { display: flex; align-items: center; justify-content: space-between; gap: 60px; }
.pc-service__content { flex: 1; }
.pc-service__heading { margin-bottom: 32px; }
.pc-service__heading .pc-section__label, .pc-service__heading .pc-section__title { text-align: left; }
.pc-service__lead { color: var(--color-text); font-size: 16px; margin: 0 0 16px; }
.pc-service__tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.pc-service__desc { font-size: 16px; margin: 0; }
.pc-service__image { flex: 1; max-width: 540px; }
.pc-service__image img { width: 100%; border-radius: 12px; aspect-ratio: 4/3; object-fit: cover; }

/* お悩み */
.pc-problem { background: var(--color-bg-sub); }
.pc-problem .pc-section__inner { max-width: var(--container-max); }
.pc-problem__card { background: linear-gradient(135deg, #14cfb0 0%, #12b79b 100%); border-radius: 16px; padding: 60px 40px; text-align: center; }
.pc-problem__title { color: #fff; font-size: 28px; margin-bottom: 40px; }
.pc-problem__list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.pc-problem__item { background: #fff; color: var(--color-text); padding: 32px 16px 24px; border-radius: 4px; text-align: center; position: relative; box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
.pc-problem__quote { position: absolute; top: -12px; left: 12px; width: 32px; height: auto; }
.pc-problem__item p { font-size: 14px; font-weight: 700; line-height: 1.6; }
.pc-problem__arrow { text-align: center; font-size: 48px; color: #3b4255; margin: -10px 0 20px; }
.pc-problem__solution { text-align: center; padding: 0 20px; }
.pc-problem__solution-title { font-size: 28px; margin: 0 0 16px; }
.pc-problem__solution-desc { font-size: 15px; margin: 0; }

/* 特徴 */
.pc-feature { background: #fff; }
.pc-feature__heading { margin-bottom: 64px; }
.pc-feature__list { display: flex; flex-direction: column; gap: 40px; }
.pc-feature__item { display: flex; align-items: center; gap: 60px; padding: 48px; background: #fff; border-radius: 8px; box-shadow: 0 4px 20px rgba(0,0,0,0.06); position: relative; }
.pc-feature__item::before { content: ''; position: absolute; width: 32px; height: 32px; border: 6px solid var(--color-primary); }
.pc-feature__item--left::before { top: -6px; left: -6px; border-right: none; border-bottom: none; border-radius: 8px 0 0 0; }
.pc-feature__item--right::before { top: -6px; right: -6px; border-left: none; border-bottom: none; border-radius: 0 8px 0 0; }
.pc-feature__item--right { flex-direction: row-reverse; }
.pc-feature__item-text { flex: 1; }
.pc-feature__item-num { margin-bottom: 8px; }
.pc-feature__item-number { color: #ffd75e; font-family: var(--font-en); font-size: 16px; font-weight: 700; }
.pc-feature__item-title { font-size: 24px; margin: 0 0 16px; }
.pc-feature__item-desc { font-size: 15px; margin: 0; }
.pc-feature__item-image { flex: 0 0 320px; }
.pc-feature__item-image img { width: 100%; border-radius: 8px; aspect-ratio: 4/3; object-fit: cover; }

/* 面談・ご相談例 */
.pc-counseling { background: #ffffff; }
.pc-counseling .pc-section__inner { max-width: var(--container-narrow); }
.pc-counseling__heading { text-align: center; margin-bottom: 48px; }
.pc-counseling__lead { margin: 24px 0 0; }
.pc-counseling__box-wrapper { position: relative; max-width: 800px; margin: 0 auto 64px; }
.pc-counseling__box-title-overlay { position: absolute; top: -14px; left: 50%; transform: translateX(-50%); background: #ffffff; padding: 0 20px; font-size: 20px; font-weight: 700; color: var(--color-text); z-index: 2; white-space: nowrap; }
.pc-counseling__box { border: 2px solid var(--color-primary); border-radius: 20px; padding: 40px; background: transparent; }
.pc-counseling__users { display: flex; flex-direction: column; gap: 16px; }
.pc-counseling__user { display: flex; align-items: flex-start; gap: 12px; }
.pc-counseling__user-icon-img { width: 24px; height: 24px; flex-shrink: 0; margin-top: 2px; }
.pc-counseling__user p { font-size: 15px; }
.pc-counseling__user strong { color: var(--color-primary-dark); }
.pc-counseling__box-arrow { text-align: center; margin-top: 16px; }
.pc-counseling__box-arrow img { width: 60px; margin: 0 auto; }
.pc-counseling__faq-title { font-size: 24px; text-align: left; margin: 0 0 40px; }
.pc-counseling__faq-list { display: flex; flex-direction: column; gap: 32px; margin-bottom: 64px; }
.pc-counseling__faq-item { display: flex; align-items: center; gap: 24px; }
.pc-counseling__faq-item--right { flex-direction: row; }
.pc-counseling__faq-item .pc-counseling__faq-avatar { width: 90px; height: 90px; flex-shrink: 0; background: transparent; border-radius: 50%; display: flex; align-items: center; justify-content: center; overflow: hidden; box-shadow: none; }
.pc-counseling__faq-item .pc-counseling__faq-avatar img { width: 100%; height: 100%; object-fit: contain; transform: none; }
.pc-counseling__faq-bubble { background: #f8f9fa; border-radius: 40px; padding: 24px 40px; position: relative; flex: 1; box-shadow: 0 2px 8px rgba(0,0,0,0.02); }
.pc-counseling__faq-bubble p { font-size: 16px; font-weight: 600; margin: 0; color: var(--color-text); }
.pc-counseling__faq-item--left .pc-counseling__faq-bubble::before { content: ''; position: absolute; left: -12px; top: 50%; transform: translateY(-50%); border-top: 12px solid transparent; border-bottom: 12px solid transparent; border-right: 16px solid #f8f9fa; }
.pc-counseling__faq-item--right .pc-counseling__faq-bubble::before { content: ''; position: absolute; right: -12px; top: 50%; transform: translateY(-50%); border-top: 12px solid transparent; border-bottom: 12px solid transparent; border-left: 16px solid #f8f9fa; }
.pc-counseling__cta { text-align: center; }

/* ===== 8. フロー ===== */
.pc-flow { background: var(--color-bg-sub); }
.pc-flow__heading { margin-bottom: 32px; }
.pc-flow__badges { display: flex; justify-content: center; gap: 32px; flex-wrap: wrap; margin-bottom: 56px; }
.pc-flow__badges li { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.pc-flow__badges i { color: var(--color-primary); background: var(--color-bg-mint); width: 24px; height: 24px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; }
.pc-flow__steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.pc-flow__step { background: #fff; border-radius: 12px; padding: 40px 24px 24px; text-align: center; position: relative; box-shadow: var(--shadow-card); }
.pc-flow__step-num { position: absolute; top: -16px; left: 50%; transform: translateX(-50%); background: var(--color-primary); color: #fff; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: var(--font-en); font-weight: 700; }
.pc-flow__step-icon { color: var(--color-primary); font-size: 40px; margin-bottom: 16px; }
.pc-flow__step-title { font-size: 18px; margin: 0 0 12px; }
.pc-flow__step-desc { font-size: 13px; margin: 0; }

/* ===== 9. コンポーネント (CTA・カード) ===== */
.pc-jobcta { padding: 40px 24px; }
.pc-jobcta__inner { position: relative; background-color: #333; background-size: cover; background-position: center; border-radius: 12px; padding: 60px 40px; overflow: hidden; max-width: 1200px; margin: 0 auto; }
.pc-jobcta__overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.65); z-index: 0; }
.pc-jobcta__content { position: relative; z-index: 1; text-align: center; }
.pc-jobcta__title { color: #fff; font-weight: 700; font-size: 24px; text-align: center; margin: 0 0 32px; letter-spacing: 0.05em; }
.pc-jobcta__list { list-style: none; padding: 0; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; max-width: 1100px; }
.pc-jobcta__btn { display: flex; align-items: center; justify-content: center; gap: 8px; background: #3ce0c5; color: #fff; border: 2px solid #fff; text-decoration: none; font-weight: 700; font-size: 16px; padding: 16px 24px; border-radius: 4px; transition: all 0.3s ease; }
.pc-jobcta__btn:hover { background: #4ef2d7; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); }
.pc-jobcta__btn span, .pc-jobcta__btn i { color: #fff; }
.pc-jobcta__btn:hover i { transform: translateX(3px); }

/* ===== 10. カード一覧レイアウトの統一 ===== */
.pc-column__heading, .pc-news__heading, .pc-case__heading { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 48px; gap: 24px; }
.pc-column__heading .pc-section__label, .pc-news__heading .pc-section__label { text-align: left; }
.pc-column__list, .pc-archive__list, .pc-casepage__list, .pc-case__list { display: grid; padding: 0; margin: 0; list-style: none; }
.pc-column__list { grid-template-columns: repeat(3, 1fr); gap: 32px; }
.pc-archive__list { grid-template-columns: repeat(2, 1fr); gap: 24px; margin-bottom: 40px; }
.pc-casepage__list, .pc-case__list { grid-template-columns: repeat(3, 1fr); gap: 32px; }

/* 記事カードの洗練 */
.pc-column__item, .pc-archive__item, .pc-casepage__item { border: 1px solid var(--color-border); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03); border-radius: 8px; overflow: hidden; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.pc-column__item:hover, .pc-archive__item:hover, .pc-casepage__item:hover { transform: translateY(-4px); box-shadow: 0 12px 30px rgba(20, 207, 176, 0.12); }

.pc-column__link, .pc-archive__link { display: block; text-decoration: none; color: inherit; }
.pc-column__image, .pc-archive__image { position: relative; width: 100%; aspect-ratio: 16/9; overflow: hidden; background: var(--color-bg-mint); border-radius: 8px 8px 0 0; }
.pc-column__image img, .pc-archive__image img { width: 100%; height: 100%; object-fit: contain; background: #fff; transition: transform 0.5s; }
.pc-archive__item:hover .pc-archive__image img { transform: scale(1.03); }
.pc-column__image-placeholder, .pc-archive__image-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--color-primary); font-size: 48px; }
.pc-column__body, .pc-archive__body { padding: 16px 18px; }
.pc-column__date, .pc-archive__date { font-size: 11px; color: var(--color-text-light); font-family: var(--font-en); display: block; margin-bottom: 8px; }
.pc-column__title, .pc-archive__title { font-size: 15px; font-weight: 700; line-height: 1.55; margin: 0 0 8px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pc-column__tags, .pc-archive__tags { display: flex; flex-wrap: wrap; gap: 4px; }
.pc-column__tags li, .pc-archive__tags li { font-size: 10px; background: var(--color-bg-mint); color: var(--color-primary-dark); padding: 2px 8px; border-radius: 4px; }

/* NEWS一覧のレイアウト調整 */
.pc-news__list { border-top: 1px solid var(--color-border); }
.pc-news__item { border-bottom: 1px solid var(--color-border); }
.pc-news__link { display: flex; align-items: center; gap: 24px; padding: 20px 8px; transition: background 0.3s; }
.pc-news__link:hover { background: var(--color-bg-sub); }
.pc-news__link .pc-news__meta { display: flex; align-items: center; gap: 12px; flex-shrink: 0; width: 200px; }
.pc-news__date { font-family: var(--font-en); font-size: 14px; }
.pc-news__category { background: var(--color-primary); color: #fff; font-size: 12px; padding: 3px 12px; border-radius: 4px; }
.pc-news__item .pc-news__title { font-size: 16px; font-weight: 600; line-height: 1.5; margin: 0; color: var(--color-text); flex: 1; }
.pc-news__title--adjusted { font-size: 15px; font-weight: 500; }

/* CASE一覧のレイアウト調整 */
.pc-casepage__link { display: flex; flex-direction: column; height: 100%; }
.pc-casepage__image { position: relative; aspect-ratio: 16 / 10; max-height: none; background: var(--color-bg-mint); flex-shrink: 0; overflow: hidden; border-radius: 8px 8px 0 0; }
.pc-casepage__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
.pc-casepage__item:hover .pc-casepage__image img { transform: scale(1.05); }
.pc-casepage__item .pc-casepage__badges--absolute { position: absolute; top: 12px; left: 12px; z-index: 2; margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.pc-casepage__item .pc-casepage__badges--absolute .pc-casepage__badge { background: #fff; color: var(--color-primary-dark); box-shadow: 0 2px 8px rgba(0,0,0,0.1); font-size: 12px; padding: 4px 12px; border-radius: 4px; font-weight: 600; }
.pc-casepage__body { padding: 20px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.pc-casepage__profile { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; padding: 8px 12px; background: linear-gradient(135deg, #f0fbf9 0%, #e7faf8 100%); border-left: 3px solid var(--color-primary); border-radius: 0 4px 4px 0; }
.pc-casepage__profile-name { font-size: 14px; font-weight: 700; font-family: var(--font-en); }
.pc-casepage__profile-job { color: var(--color-primary-dark); font-size: 12px; font-weight: 600; padding-left: 10px; border-left: 1px solid rgba(20, 207, 176, 0.3); }
.pc-casepage__title { font-size: 16px; font-weight: 700; margin: 0 0 12px; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pc-casepage__excerpt { color: var(--color-text-light); font-size: 13px; margin: 0; flex: 1; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* ===== 11. アーカイブ＆サイドバー ===== */
.pc-archive__hero, .pc-casepage__hero { position: relative; padding: 80px 24px; text-align: center; overflow: hidden; }
.pc-archive__hero .pc-archive__hero-overlay, .pc-archive__hero .pc-casepage__hero-overlay { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(1, 34, 30, 0.75) 0%, rgba(20, 207, 176, 0.4) 100%); }
.pc-casepage__hero .pc-casepage__hero-overlay { background: linear-gradient(135deg, rgba(1, 34, 30, 0.8) 0%, rgba(20, 207, 176, 0.5) 100%); }
.pc-archive__hero-content, .pc-casepage__hero-content { position: relative; z-index: 1; }
.pc-archive__hero-lead { color: rgba(255,255,255,0.92); font-size: 14px; margin: 16px 0 0; }

.pc-archive__search-section { padding: 32px 24px 0; }
.pc-archive__searchform { background: #fff; border-radius: 32px; padding: 8px 8px 8px 20px; display: flex; align-items: center; gap: 12px; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06); max-width: 700px; margin: 0 auto; }
.pc-archive__search-icon { color: var(--color-primary); font-size: 16px; }
.pc-archive__search-input { flex: 1; border: none; outline: none; font-size: 14px; padding: 8px 0; background: transparent; }
.pc-archive__search-btn { background: var(--color-primary); color: #fff; border: none; padding: 10px 24px; border-radius: 24px; font-weight: 600; transition: background 0.2s; }

.pc-archive__main { padding-top: 32px; }
.pc-archive__layout { display: grid; grid-template-columns: 1fr 320px; gap: 40px; align-items: start; }
.pc-archive__main-col { min-width: 0; }

.pc-archive__pickup { position: relative; background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06); margin-bottom: 32px; transition: transform 0.3s, box-shadow 0.3s; }
.pc-archive__pickup:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(20, 207, 176, 0.15); }
.pc-archive__pickup-badge { position: absolute; top: 16px; left: 16px; z-index: 2; background: linear-gradient(135deg, #ff5252 0%, #d32f2f 100%); color: #fff; font-size: 11px; font-weight: 700; padding: 5px 14px; border-radius: 4px; }
.pc-archive__pickup-image { aspect-ratio: 16/9; overflow: hidden; }
.pc-archive__pickup:hover .pc-archive__pickup-image img { transform: scale(1.05); }
.pc-archive__pickup-body { padding: 24px 28px; }
.pc-archive__pickup-title { font-size: 22px; margin: 0 0 14px; }
.pc-archive__pickup-excerpt { font-size: 14px; margin: 0 0 16px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* フィルターボタン（標準・中央寄せ） */
.pc-archive__filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 32px; padding: 16px; background: var(--color-bg-mint); border-radius: 8px; }
.pc-archive__filter-btn { background: #fff; padding: 8px 18px; border-radius: 24px; font-size: 13px; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; }
.pc-archive__filter-btn.is-active, .pc-archive__filter-btn:hover { background: var(--color-primary); color: #fff; }
.pc-archive__filter-count { font-size: 11px; background: rgba(255, 255, 255, 0.3); padding: 1px 6px; border-radius: 8px; }
.pc-archive__filter--center { justify-content: center; background: transparent; padding: 0; margin-top: 80px; margin-bottom: 40px; }
.pc-archive__filter--center .pc-archive__filter-btn { border: 1px solid var(--color-primary); color: var(--color-primary-dark); background: #fff; padding: 10px 24px; transition: all 0.3s ease; }
.pc-archive__filter--center .pc-archive__filter-btn.is-active, .pc-archive__filter--center .pc-archive__filter-btn:hover { background: var(--color-primary); color: #fff; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(20, 207, 176, 0.3); }

.pc-archive__section-title { font-size: 20px; border-bottom: 2px solid var(--color-primary); padding-bottom: 8px; margin: 0 0 20px; display: flex; align-items: center; gap: 10px; }
.pc-archive__section-title i { color: var(--color-primary); }

/* サイドバー */
.pc-archive__sidebar { display: flex; flex-direction: column; gap: 20px; position: sticky; top: 120px; }
.pc-sidebar-widget { background: #fff; border-radius: 8px; padding: 20px; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04); }
.pc-sidebar-widget__title { font-size: 15px; border-bottom: 2px solid var(--color-primary); padding-bottom: 12px; margin: 0 0 16px; display: flex; align-items: center; gap: 8px; }
.pc-sidebar-widget__icon--star { color: #ffd75e; }
.pc-sidebar-widget__icon--youtube { color: #ff0000; }
.pc-sidebar-widget__icon--folder, .pc-sidebar-widget__icon--tags { color: var(--color-primary); }
.pc-sidebar-widget__posts { display: flex; flex-direction: column; gap: 12px; }
.pc-sidebar-widget__post { margin-bottom: 8px; border-radius: 8px; transition: all 0.3s ease; border-bottom: 1px dashed #f0f0f0; padding-bottom: 12px; }
.pc-sidebar-widget__post:last-child { border-bottom: none; padding-bottom: 0; }
.pc-sidebar-widget__post-link { display: flex; gap: 12px; padding: 8px; text-decoration: none; color: inherit; border-radius: 8px; transition: all 0.3s ease; }
.pc-sidebar-widget__post-link:hover { background-color: var(--color-bg-mint); transform: translateX(4px); box-shadow: 0 4px 12px rgba(20, 207, 176, 0.08); }
.pc-sidebar-widget__post-image { width: 110px; aspect-ratio: 16 / 9; height: auto; flex-shrink: 0; border-radius: 6px; overflow: hidden; background: transparent; }
.pc-sidebar-widget__post-image img { width: 100%; height: 100%; object-fit: contain; }

.pc-sidebar-widget__video { margin-bottom: 20px; }
.pc-sidebar-widget__video-frame { position: relative; width: 100%; padding-top: 56.25%; background: #000; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 10px rgba(0,0,0,0.1); }
.pc-sidebar-widget__video-frame iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.pc-sidebar-widget__video-title { font-size: 13px; font-weight: 700; line-height: 1.5; margin-top: 10px; color: var(--color-text); }
.pc-sidebar-widget .pc-sidebar-widget__youtube-link { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 20px; background: linear-gradient(135deg, #ff0000 0%, #c4302b 100%); color: #fff; border-radius: 12px; font-size: 15px; font-weight: 700; margin-top: 20px; box-shadow: 0 6px 16px rgba(255, 0, 0, 0.25); transition: all 0.3s ease; text-decoration: none; }
.pc-sidebar-widget .pc-sidebar-widget__youtube-link:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(255, 0, 0, 0.35); color: #fff; opacity: 1; }
.pc-sidebar-widget__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.pc-sidebar-widget__tag { display: inline-block; font-size: 12px; font-weight: 500; color: var(--color-text-sub); background: #fff; border: 1px solid #e2e8e5; padding: 6px 14px; border-radius: 20px; text-decoration: none; transition: all 0.2s ease; box-shadow: 0 2px 4px rgba(0,0,0,0.02); }
.pc-sidebar-widget__tag:hover { background: var(--color-primary); color: #fff; border-color: var(--color-primary); transform: translateY(-2px); box-shadow: 0 4px 8px rgba(43, 171, 142, 0.2); }

/* ===== 12. 単一記事 (コラム・CASE・NEWS詳細) ===== */
.pc-single__article { background: #fff; }
.pc-single__header { padding: 40px 0 32px; background: var(--color-bg-sub); }
.pc-single__breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--color-text-light); font-size: 13px; margin-bottom: 24px; }
.pc-single__breadcrumb i { font-size: 10px; transform: translateY(1px); }
.pc-single__title { font-size: 28px; margin: 0 0 16px; }
.pc-single__meta { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; margin-bottom: 24px; }
.pc-single__date { color: var(--color-text-light); font-size: 14px; display: inline-flex; align-items: center; gap: 6px; }
.pc-single__thumbnail { border-radius: 12px; overflow: hidden; margin-top: 24px; }
.pc-single__thumbnail img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.pc-single__tags { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0; }
.pc-single__tags li { list-style: none; }
.pc-single__tags li a { display: inline-block; color: var(--color-primary-dark); font-size: 13px; font-weight: 600; padding: 4px 12px; background: var(--color-bg-mint); border-radius: 4px; transition: all 0.3s ease; }
.pc-single__tags li a:hover { background: var(--color-primary); color: #fff; transform: translateY(-1px); }

#pc-toc-container { margin-bottom: 40px; }

/* -----------------------------------------------------------
   コンテンツ本文（サイト全体共通・洗練されたデザイン）
   詳細度を高め、WPのブロックスタイルを美しく上書きします。
----------------------------------------------------------- */
body .pc-main .pc-single__article .pc-single__content { 
    font-size: 16px; line-height: 1.85; color: var(--color-text); 
}

/* H2: 左線＋薄い下線でスッキリと */
body .pc-main .pc-single__article .pc-single__content h2, 
body .pc-main .pc-single__article .pc-single__content h2.wp-block-heading { 
    font-size: 24px; 
    background: transparent; 
    padding: 10px 0 10px 16px; 
    margin: 56px 0 24px; 
    border-left: 5px solid var(--color-primary); 
    border-bottom: 1px solid var(--color-border); 
    border-radius: 0; 
    color: var(--color-text);
}

/* H3: モダンな2色下線デザイン */
body .pc-main .pc-single__article .pc-single__content h3, 
body .pc-main .pc-single__article .pc-single__content h3.wp-block-heading, 
body .pc-main .pc-single__article .pc-single__content > h3 { 
    position: relative; 
    font-size: 20px; 
    padding: 0 0 10px 0; 
    margin: 40px 0 20px; 
    border-bottom: 2px solid var(--color-bg-mint); 
    border-left: none; 
    background: none; 
    color: var(--color-text);
}
body .pc-main .pc-single__article .pc-single__content h3::before,
body .pc-main .pc-single__article .pc-single__content h3.wp-block-heading::before { 
    display: none; 
} 
body .pc-main .pc-single__article .pc-single__content h3::after,
body .pc-main .pc-single__article .pc-single__content h3.wp-block-heading::after { 
    content: ''; 
    position: absolute; 
    left: 0; 
    bottom: -2px; 
    top: auto; 
    width: 48px; 
    height: 2px; 
    background: var(--color-primary); 
    display: block;
    font-family: inherit;
    box-shadow: none;
    border-radius: 0;
}

/* H4: シンプルな左線のみ */
body .pc-main .pc-single__article .pc-single__content h4, 
body .pc-main .pc-single__article .pc-single__content h4.wp-block-heading { 
    font-size: 18px; 
    color: var(--color-text); 
    margin: 32px 0 16px; 
    padding-left: 12px; 
    border-left: 3px solid var(--color-primary); 
}

/* Pタグ・強調・リンク */
body .pc-main .pc-single__article .pc-single__content p { margin: 0 0 24px; }
body .pc-main .pc-single__article .pc-single__content > p:first-of-type { font-size: 17px; font-weight: 500; }
body .pc-main .pc-single__article .pc-single__content strong, 
body .pc-main .pc-single__article .pc-single__content b { 
    color: var(--color-text); 
    background: linear-gradient(transparent 70%, #fff3a0 70%, #fff3a0 90%, transparent 90%); 
    padding: 0 2px; 
    font-weight: 700;
}
body .pc-main .pc-single__article .pc-single__content a { color: var(--color-primary-dark); text-decoration: underline; text-decoration-color: rgba(20, 207, 176, 0.3); text-underline-offset: 3px; }

/* 箇条書き（ul）: 上品なドットに */
body .pc-main .pc-single__article .pc-single__content ul, 
body .pc-main .pc-single__article .pc-single__content .wp-block-list:not([type='ol']) { 
    list-style: none; padding: 0; margin: 24px 0; 
}
body .pc-main .pc-single__article .pc-single__content ul li, 
body .pc-main .pc-single__article .pc-single__content .wp-block-list:not([type='ol']) li { 
    position: relative; padding: 6px 0 6px 24px; margin-bottom: 4px; 
}
body .pc-main .pc-single__article .pc-single__content ul li::before, 
body .pc-main .pc-single__article .pc-single__content .wp-block-list:not([type='ol']) li::before { 
    content: ''; 
    position: absolute; 
    left: 6px; 
    top: 16px; 
    width: 6px; 
    height: 6px; 
    border-radius: 50%; 
    background-color: var(--color-primary); 
    font-family: unset; 
    display: block;
}

/* 番号付きリスト（ol）: 淡い背景＋アクセント文字色に */
body .pc-main .pc-single__article .pc-single__content ol, 
body .pc-main .pc-single__article .pc-single__content .wp-block-list[type='ol'] { 
    counter-reset: pc-counter; padding: 0; margin: 24px 0; list-style: none; 
}
body .pc-main .pc-single__article .pc-single__content ol li, 
body .pc-main .pc-single__article .pc-single__content .wp-block-list[type='ol'] li { 
    position: relative; padding: 6px 0 6px 40px; counter-increment: pc-counter; margin-bottom: 8px; list-style: none; display: list-item;
}
body .pc-main .pc-single__article .pc-single__content ol li::before, 
body .pc-main .pc-single__article .pc-single__content .wp-block-list[type='ol'] li::before { 
    content: counter(pc-counter); 
    position: absolute; 
    left: 0; 
    top: 5px; 
    width: 26px; 
    height: 26px; 
    background: var(--color-bg-mint); 
    color: var(--color-primary-dark); 
    border-radius: 50%; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    font-size: 13px; 
    font-family: var(--font-en);
    font-weight: 700;
}

/* 引用（blockquote）と画像 */
body .pc-main .pc-single__article .pc-single__content blockquote { background: var(--color-bg-mint); border-left: 4px solid var(--color-primary); padding: 24px 28px; margin: 32px 0; border-radius: 0 8px 8px 0; position: relative; }
body .pc-main .pc-single__article .pc-single__content blockquote::before { content: '\f10d'; font-family: 'Font Awesome 6 Free'; font-weight: 900; position: absolute; top: 16px; right: 20px; color: var(--color-primary); font-size: 28px; opacity: 0.4; }
body .pc-main .pc-single__article .pc-single__content img { border-radius: 12px; margin: 32px 0; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08); }


/* ご利用者の声 導入テキストブロック */
.pc-casepage__intro-section { background-color: #f8f9fa; padding: 100px 0; }
.pc-casepage__intro-block { background-color: #ffffff; border-radius: 20px; padding: 80px 64px; max-width: 960px; margin: 0 auto; position: relative; box-shadow: 0 15px 35px rgba(0, 0, 0, 0.04); text-align: left; }
.pc-casepage__intro-block::before { content: url('../images/icon-quote.png'); position: absolute; top: 48px; left: 56px; display: block; width: 56px; height: auto; }
.pc-casepage__intro-block p { font-size: 19px; line-height: 2.0; color: var(--color-text); margin: 0; padding-left: 80px; }
.pc-casepage__intro-block p + p { margin-top: 24px; }
.pc-casepage__intro { background: var(--color-bg-mint-light); border-radius: 12px; padding: 32px 40px; text-align: center; margin: 0 auto 48px; max-width: 800px; position: relative; box-shadow: 0 4px 12px rgba(20, 207, 176, 0.05); }
.pc-casepage__intro-icon { font-size: 32px; color: var(--color-primary); opacity: 0.2; position: absolute; top: -16px; left: 50%; transform: translateX(-50%); background: #fff; padding: 0 16px; }
.pc-casepage__intro p { color: var(--color-text); font-weight: 500; line-height: 1.8; }

/* コールアウト（補足ボックス） */
.pc-callout { padding: 20px 24px 20px 56px; border-radius: 8px; margin: 24px 0; position: relative; }
.pc-callout::before { position: absolute; left: 20px; top: 22px; font-family: 'Font Awesome 6 Free'; font-weight: 900; font-size: 22px; }
.pc-callout--info { background: #e3f2fd; border-left: 4px solid #2196f3; color: #0d47a1; }
.pc-callout--info::before { content: '\f05a'; color: #2196f3; }
.pc-callout--warning { background: #fff8e1; border-left: 4px solid #ff9800; color: #e65100; }
.pc-callout--warning::before { content: '\f071'; color: #ff9800; }
.pc-callout ul li::before { display: none; }
.pc-callout ul li { padding-left: 0; }

/* 監修者エリア */
.pc-single__supervisor { background: linear-gradient(135deg, #f0fbf9 0%, #e7faf8 100%); border-radius: 12px; padding: 32px; margin: 60px 0 0; border-left: 4px solid var(--color-primary); box-shadow: 0 2px 8px rgba(20, 207, 176, 0.08); }
.pc-single__supervisor-label { display: inline-block; background: var(--color-primary); color: #fff; font-size: 12px; padding: 4px 14px; border-radius: 4px; margin-bottom: 20px; }
.pc-single__supervisor-body { display: grid; grid-template-columns: auto 1fr; gap: 32px; align-items: start; }
.pc-single__supervisor-photo { width: 100px; height: 100px; grid-row: span 2; }
.pc-single__supervisor-photo-img { width: 100px; height: 100px; border-radius: 50%; object-fit: cover; border: 3px solid #fff; box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
.pc-single__supervisor-info { display: flex; flex-direction: column; gap: 4px; }
.pc-single__supervisor-name { font-size: 20px; margin: 0 0 4px; }
.pc-single__supervisor-credentials, .pc-single__supervisor-affiliation { color: var(--color-primary-dark); font-size: 14px; font-weight: 600; }
.pc-single__supervisor-bio { font-size: 14px; margin: 12px 0 0; padding-top: 12px; border-top: 1px dashed rgba(20, 207, 176, 0.3); }

/* 関連記事 */
.pc-related-articles { margin-top: 80px; padding-top: 40px; border-top: 2px solid var(--color-bg-mint); }
.pc-related-articles__title { font-size: 22px; margin-bottom: 24px; border-left: 6px solid var(--color-primary); padding-left: 20px; background: linear-gradient(90deg, #f0fbf9 0%, transparent 100%); }
.pc-related-articles__list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; padding: 0; list-style: none; }

.pc-single .pc-archive__layout { display: grid; grid-template-columns: 1fr 320px; gap: 40px; align-items: start; }

/* ===== 13. FAQ (トップ & 詳細ページ) ===== */
.pc-faq-top { background: #f8f9fa; }
.pc-faq-top__inner { display: grid; grid-template-columns: 240px 1fr; gap: 80px; align-items: start; }
.pc-faq-top__left { position: sticky; top: 120px; }
.pc-faq-top__link-wrap { display: flex; align-items: center; gap: 16px; font-size: 14px; font-weight: 700; }
.pc-faq-top__circle-btn { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--color-primary); color: var(--color-primary); transition: all 0.3s; }
.pc-faq-top__circle-btn:hover { background: var(--color-primary); color: #fff; }

.pc-faq__list { gap: 16px; display: flex; flex-direction: column; width: 100%; margin: 0; padding: 0; }
.pc-faq__item { border-radius: 50px; overflow: hidden; box-shadow: none; background: transparent; list-style: none; }
.pc-faq__summary { background: #fff; border-radius: 50px; padding: 20px 32px; box-shadow: 0 2px 8px rgba(0,0,0,0.02); display: flex; align-items: center; gap: 16px; }
.pc-faq__item details[open] .pc-faq__summary { background: #fff; border-radius: 30px 30px 0 0; }
.pc-faq__q { background: #ffd75e; color: #fff; width: 32px; height: 32px; font-size: 16px; display: flex; align-items: center; justify-content: center; border-radius: 50%; font-family: var(--font-en); font-weight: 700; flex-shrink: 0; }
.pc-faq__question { font-weight: 600; font-size: 16px; flex: 1; }
.pc-faq__toggle { color: #ffd75e; font-size: 18px; transition: transform 0.3s; flex-shrink: 0; }
.pc-faq__item details[open] .pc-faq__toggle { transform: rotate(180deg); }
.pc-faq__answer { background: #fff; border-radius: 0 0 30px 30px; padding: 0 32px 24px; display: block; }
.pc-faq__a { display: none; }
.pc-faq__answer-text { color: var(--color-text-sub); font-size: 15px; padding-left: 48px; line-height: 1.85; }

.pc-faqpage__hero { border-radius: 12px; margin: 0 24px; padding: 100px 32px; text-align: center; position: relative; overflow: hidden; }
.pc-faqpage__hero-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.4); }
.pc-faqpage__hero-content { position: relative; z-index: 1; }
.pc-faqpage__nav { padding: 60px 0 40px; background: transparent; }
.pc-faqpage__nav-list { max-width: 900px; gap: 16px; display: grid; grid-template-columns: repeat(2, 1fr); margin: 0 auto; padding: 0; list-style: none; }
.pc-faqpage__nav-link { background: #fff; border: 1px solid var(--color-primary); color: var(--color-primary-dark); display: flex; justify-content: space-between; align-items: center; border-radius: 4px; padding: 16px 24px; font-weight: 600; }
.pc-faqpage__nav-link i { color: var(--color-primary-light); }
.pc-faqpage__nav-link:hover { background: var(--color-bg-mint); color: var(--color-primary-dark); }
.pc-faqpage__content { padding: 40px 0 100px; background: #f8f9fa; }
.pc-faqpage__category { margin-bottom: 64px; }
.pc-faqpage__category-title { border-left: 4px solid var(--color-primary); padding-left: 16px; margin: 0 0 24px; font-size: 20px; }

/* ===== 14. 登録ページ & 404 & ページネーション ===== */
.pc-regpage__hero { position: relative; padding: 100px 32px; text-align: center; }
.pc-regpage__hero-overlay { position: absolute; inset: 0; background: var(--color-overlay-dark); opacity: 0.3; }
.pc-regpage__hero-content { position: relative; z-index: 1; }
.pc-regpage__content { padding: 80px 0 100px; background: #fff; }
.pc-regpage__content .pc-section__inner { display: grid; grid-template-columns: 1fr 1.2fr; gap: 48px; align-items: start; }
.pc-regpage__info-image { aspect-ratio: 4/3; background: var(--color-bg-mint); border-radius: 12px; display: flex; align-items: center; justify-content: center; color: var(--color-primary); font-size: 80px; }
.pc-regpage__info-box { border: 2px solid var(--color-primary); border-radius: 12px; padding: 24px; margin-top: 32px; }
.pc-regpage__form { background: var(--color-bg-mint-light); border-radius: 12px; padding: 40px 32px; }

.pc-404 { padding: 100px 32px; text-align: center; min-height: 60vh; display: flex; align-items: center; justify-content: center; }
.pc-404__code { color: var(--color-primary); font-family: var(--font-en); font-size: 120px; line-height: 1; margin: 0; }

.pc-pagination, .pc-archive__pagination { display: flex; justify-content: center; gap: 8px; margin-top: 40px; }
.pc-pagination .page-numbers, .pc-archive__pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid var(--color-primary); border-radius: 4px; font-weight: 600; font-family: var(--font-en); }
.pc-pagination .page-numbers:hover, .pc-pagination .current, .pc-archive__pagination .page-numbers.current, .pc-archive__pagination .page-numbers:hover { background: var(--color-primary); color: #fff; }

/* ===== 15. お問い合わせページ (Inquiry) ===== */
.pc-inquiry__hero { border-radius: 12px; margin: 0 24px; padding: 100px 32px; text-align: center; position: relative; overflow: hidden; }
.pc-inquiry__hero-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.4); }
.pc-inquiry__hero-content { position: relative; z-index: 1; }

.pc-inquiry__content { padding: 80px 0 100px; background: #fff; }
.pc-inquiry__layout { display: grid; grid-template-columns: 5fr 7fr; gap: 60px; align-items: start; }

.pc-inquiry__left { display: flex; flex-direction: column; gap: 32px; }
.pc-inquiry__document { width: 100%; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
.pc-inquiry__doc-img { width: 100%; height: auto; display: block; }
.pc-inquiry__features { border: 1px solid var(--color-border); border-radius: 8px; padding: 32px 24px; background: #fff; }
.pc-inquiry__features-title { color: var(--color-primary-dark); font-size: 18px; font-weight: 700; text-align: center; margin-bottom: 24px; }
.pc-inquiry__features-list { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 0; list-style: none; }
.pc-inquiry__features-list li { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; font-weight: 600; line-height: 1.5; color: var(--color-text); }
.pc-inquiry__check { width: 20px; height: 20px; flex-shrink: 0; margin-top: 2px; }

.pc-inquiry__right { width: 100%; }
.pc-inquiry__form-wrapper { background: var(--color-bg-mint-light); border-radius: 12px; padding: 48px 40px; }
.pc-inquiry__form-title { font-size: 24px; font-weight: 700; text-align: center; margin-bottom: 32px; color: var(--color-text); }

/* ===== 16. レスポンシブ (全デバイス統合) ===== */
.pc-mobile-cv-bar { display: none; }

@media screen and (max-width: 1024px) {
    .pc-problem__list { grid-template-columns: repeat(2, 1fr); gap: 24px 16px; }
    .pc-jobcta__list { grid-template-columns: repeat(2, 1fr); max-width: 700px; }
    .pc-casepage__list, .pc-case__list { grid-template-columns: repeat(2, 1fr); gap: 24px; }
    .pc-archive__layout, .pc-single .pc-archive__layout { grid-template-columns: 1fr; gap: 32px; }
    .pc-archive__sidebar { max-width: 100%; position: static; } 
    .pc-inquiry__layout { gap: 40px; }
}

@media screen and (max-width: 840px) {
    body { font-size: 14px; padding-bottom: 60px; }
    .pc-section { padding: 64px 0; }
    .pc-section__inner { padding: 0 20px; }
    .pc-section__title { font-size: 28px; }
    .pc-main { padding-top: var(--header-height-sp); }

    .pc-header { height: var(--header-height-sp); }
    .pc-header__inner { padding: 0 20px; }
    .pc-header__nav, .pc-header__cta { display: none; }
    .pc-header__hamburger { display: flex; }

    .pc-footer { padding: 60px 20px 24px; margin-top: 80px; }
    .pc-footer__inner { flex-direction: column; gap: 40px; padding: 0; }
    .pc-footer__menus { flex-direction: column; gap: 24px; }

    .pc-fv { padding: 48px 0 64px; }
    .pc-fv__inner { flex-direction: column; gap: 40px; }
    .pc-btn--large { min-width: 100%; padding: 16px 24px; font-size: 16px; }
    .pc-pc-only { display: none; }

    .pc-main .pc-clients { margin-top: -20px; margin-bottom: 30px; }
    .pc-clients .pc-clients__inner { gap: 20px; padding: 0 20px; flex-direction: column; }
    .pc-clients .pc-clients__deco { width: 28px; }
    .pc-clients__text { font-size: 14px; }
    .pc-clients__text strong { font-size: 30px; }

    .pc-service__wrap { flex-direction: column; gap: 32px; }
    .pc-service__heading .pc-section__title { text-align: center; }

    .pc-feature__item, .pc-feature__item--right { flex-direction: column; gap: 24px; padding: 24px; }
    .pc-feature__item-image { flex: none; width: 100%; max-width: 400px; margin: 0 auto; }
    .pc-feature__item-title { font-size: 18px; }

    .pc-jobcta { padding: 24px 16px; }
    .pc-jobcta__inner { padding: 40px 20px; border-radius: 16px; }
    .pc-jobcta__title { font-size: 20px; margin-bottom: 28px; }
    .pc-jobcta__list { grid-template-columns: 1fr; max-width: 320px; }
    .pc-jobcta__btn { font-size: 16px; padding: 18px 28px; }

    .pc-counseling__box { padding: 24px 20px; }
    .pc-counseling__faq-item { gap: 16px; }
    .pc-counseling__faq-item .pc-counseling__faq-avatar { width: 60px; height: 60px; }
    .pc-counseling__faq-bubble { padding: 16px 24px; border-radius: 24px; }
    .pc-counseling__faq-bubble p { font-size: 14px; }
    .pc-counseling__faq-item--left .pc-counseling__faq-bubble::before { left: -8px; border-width: 8px 12px 8px 0; border-color: transparent #f8f9fa transparent transparent; }
    .pc-counseling__faq-item--right .pc-counseling__faq-bubble::before { right: -8px; border-width: 8px 0 8px 12px; border-color: transparent transparent transparent #f8f9fa; }

    .pc-column__heading, .pc-news__heading, .pc-faq__heading { flex-direction: column; align-items: flex-start; }
    .pc-column__list { grid-template-columns: repeat(2, 1fr); gap: 20px; }
    
    .pc-news__list .pc-news__link { flex-direction: column; align-items: flex-start; gap: 12px; }
    .pc-news__link .pc-news__meta { width: 100%; }
    .pc-news__item .pc-news__title { font-size: 15px; }

    .pc-flow__steps { grid-template-columns: repeat(2, 1fr); gap: 32px 16px; }
    .pc-flow__badges { gap: 16px; }
    .pc-flow__badges li { font-size: 13px; }

    .pc-single__supervisor { padding: 24px 20px; }
    .pc-single__supervisor-body { grid-template-columns: 1fr; text-align: left; gap: 16px; }
    .pc-single__supervisor-photo { margin: 0 auto; grid-row: auto; }
    
    .pc-inquiry__layout { grid-template-columns: 1fr; gap: 40px; }
    .pc-inquiry__form-wrapper { padding: 32px 20px; }
    .pc-inquiry__hero { margin: 0; border-radius: 0; }

    .pc-column__list > li:nth-child(n+3),
    .pc-case__list > li:nth-child(n+3) { display: none !important; }

    /* スマホ用追従コンソール */
    .pc-mobile-cv-bar { display: flex; position: fixed; bottom: 0; left: 0; width: 100%; background: var(--color-primary); z-index: 9999; box-shadow: 0 -2px 10px rgba(0,0,0,0.1); }
    .pc-mobile-cv-bar a { width: 100%; color: #fff; text-align: center; padding: 16px; font-size: 15px; font-weight: 700; display: flex; align-items: center; justify-content: center; gap: 10px; }
}

@media screen and (max-width: 768px) {
    .pc-archive__list { grid-template-columns: 1fr; }
    .pc-fv__title-logo { max-width: 280px; }
    .pc-faq-top__inner { grid-template-columns: 1fr; gap: 32px; }
    .pc-faq-top__left { position: static; }
    .pc-faqpage__hero { margin: 0; border-radius: 0; }
    .pc-faqpage__nav-list { grid-template-columns: 1fr; padding: 0 20px; }
}

@media screen and (max-width: 600px) {
    .pc-problem__list { grid-template-columns: 1fr; }
    .pc-casepage__list, .pc-case__list, .pc-column__list, .pc-flow__steps { grid-template-columns: 1fr; }
    .pc-casepage__body { padding: 18px 20px 22px; }
}

@media screen and (max-width: 540px) {
    .pc-section__title { font-size: 24px; }
    .pc-fv__title-sub { font-size: 16px; }
}