@charset "UTF-8";

/**
 * 下層ページ共通CSS
 * - Heroセクション（全下層ページ共通）
 * - ページ固有スタイル
 *
 * ※ 共通コンポーネント（ヘッダー、フッター、ボタン）は
 *   components.css に定義されています
 */

/* ===== Hero Section Base（全下層ページ共通） ===== */
.hero-section {
    position: relative;
    overflow: hidden;
}
.hero-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(45, 122, 62, 0.03) 0%, rgba(74, 157, 95, 0.05) 100%);
    z-index: 0;
}

/* ===== Department Page ===== */
.hero-department {
    position: relative;
    overflow: hidden;
}
.hero-department::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(45, 122, 62, 0.03) 0%, rgba(74, 157, 95, 0.05) 100%);
    z-index: 0;
}
/* ===== Environment Page ===== */
.hero-environment {
    position: relative;
    overflow: hidden;
}
.hero-environment::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(45, 122, 62, 0.03) 0%, rgba(74, 157, 95, 0.05) 100%);
    z-index: 0;
}

/* ===== Interview Page ===== */
.hero-interview {
    position: relative;
    overflow: hidden;
}
.hero-interview::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(45, 122, 62, 0.03) 0%, rgba(74, 157, 95, 0.05) 100%);
    z-index: 0;
}
/* タイムライン：ドット中心から次のドット中心まで点線を描画（最後のアイテム以外） */
.schedule-item:not(:last-child)::before {
    content: '';
    position: absolute;
    left: -1px;
    top: 12px;
    bottom: -12px;
    border-left: 1px dashed #d1d5db;
}

/* ===== Message Page ===== */
.hero-message {
    position: relative;
    overflow: hidden;
}
.hero-message::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(45, 122, 62, 0.03) 0%, rgba(74, 157, 95, 0.05) 100%);
    z-index: 0;
}
/* 斜めカットのアンチエイリアス線を消す（1pxオーバーラップ） */
.hero-message > div[style*="clip-path"] {
    margin-bottom: -1px;
}

/* ===== Entry Page ===== */
.hero-entry {
    position: relative;
    overflow: hidden;
}
.hero-entry::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(45, 122, 62, 0.03) 0%, rgba(74, 157, 95, 0.05) 100%);
    z-index: 0;
}
.entry-card {
    transition: box-shadow 0.3s ease;
}
.entry-card:hover {
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
}
.mynavi-link {
    transition: box-shadow 0.3s ease, border-color 0.3s ease;
}
.mynavi-link:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}
/* FAQ Accordion */
.faq-item {
    transition: border-color 0.3s ease;
}
.faq-item:hover {
    border-color: rgba(45, 122, 62, 0.3);
}
.faq-answer {
    display: none;
}
.faq-item.is-open .faq-answer {
    display: block;
}
.faq-icon {
    transition: transform 0.3s ease;
}
.faq-item.is-open .faq-icon {
    transform: rotate(180deg);
}
/* Tab System */
.tab-btn {
    background-color: #f0f0f0;
    color: #888;
    transition: all 0.3s ease;
}
.tab-btn.active {
    background-color: #2d7a3e;
    color: white;
}
.tab-content {
    display: none;
}
.tab-content.active {
    display: block;
}
/* Desktop: force both tab-content panels visible */
@media (min-width: 1024px) {
    .tab-content {
        display: block !important;
    }
}

/* ===== Data Page ===== */
.hero-data {
    position: relative;
    overflow: hidden;
}
.hero-data::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(45, 122, 62, 0.03) 0%, rgba(74, 157, 95, 0.05) 100%);
    z-index: 0;
}
.data-card {
    transition: box-shadow 0.3s ease;
}
.data-icon-container svg {
    width: 70px;
    height: 70px;
}
@media (min-width: 768px) {
    .data-icon-container svg {
        width: 90px;
        height: 90px;
    }
}
@media (min-width: 1024px) {
    .data-icon-container svg {
        width: 100px;
        height: 100px;
    }
}
.count-number {
    font-variant-numeric: tabular-nums;
}
.data-number {
    color: #333;
}
.icon-container {
    background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%);
}
.category-label {
    position: relative;
}
.category-label::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 100%;
    height: 2px;
    background: linear-gradient(90deg, #2d7a3e, transparent);
}

/* ===== News Page ===== */
.hero-news {
    position: relative;
    overflow: hidden;
}
.hero-news::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(45, 122, 62, 0.03) 0%, rgba(74, 157, 95, 0.05) 100%);
    z-index: 0;
}
/* news-item hover effect removed - トップページではシンプルに */
.news-category-tag {
    background-color: #e8f5e9;
    color: #2d7a3e;
}
.pagination-link {
    transition: all 0.3s ease;
}
.pagination-link:hover:not(.active):not(.disabled) {
    background-color: #e8f5e9;
    color: #2d7a3e;
}
.pagination-link.active {
    background-color: #2d7a3e;
    color: white;
}
.pagination-link.disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
.pagination-link:focus {
    outline: 2px solid #2d7a3e;
    outline-offset: 2px;
}
/* News Content Typography (single-news) */
.news-content {
    color: #555;
    font-size: 14px;
    line-height: 2;
}
@media (min-width: 768px) {
    .news-content {
        font-size: 16px;
    }
}
.news-content p {
    margin-bottom: 1.5em;
}
.news-content h2 {
    font-size: 1.5em;
    font-weight: bold;
    color: #1a1a1a;
    margin: 2em 0 1em;
    padding-bottom: 0.5em;
    border-bottom: 2px solid #2d7a3e;
}
.news-content h3 {
    font-size: 1.25em;
    font-weight: bold;
    color: #1a1a1a;
    margin: 1.5em 0 0.75em;
}
.news-content ul, .news-content ol {
    margin: 1em 0;
    padding-left: 1.5em;
}
.news-content li {
    margin-bottom: 0.5em;
}
.news-content a {
    color: #2d7a3e;
    text-decoration: underline;
}
.news-content a:hover {
    opacity: 0.8;
}
.news-content img {
    max-width: 100%;
    height: auto;
    margin: 1.5em 0;
}
.news-content blockquote {
    border-left: 4px solid #2d7a3e;
    padding-left: 1em;
    margin: 1.5em 0;
    color: #666;
    font-style: italic;
}

/* ===== Careers Page ===== */
.employment-regular {
    background-color: #e8f5e9;
    color: #2d7a3e;
}
.employment-contract {
    background-color: #e3f2fd;
    color: #1976d2;
}
.employment-part {
    background-color: #fff3e0;
    color: #f57c00;
}
.employment-disability {
    background-color: #f3e5f5;
    color: #7b1fa2;
}
.hero-careers {
    position: relative;
    overflow: hidden;
}
.hero-careers::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(45, 122, 62, 0.03) 0%, rgba(74, 157, 95, 0.05) 100%);
    z-index: 0;
}
/* ===== Projects Page ===== */
.hero-projects {
    position: relative;
    overflow: hidden;
}
.hero-projects::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(45, 122, 62, 0.03) 0%, rgba(74, 157, 95, 0.05) 100%);
    z-index: 0;
}
.project-card {
    transition: box-shadow 0.3s ease, border-color 0.3s ease;
}
.project-card:hover {
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.1);
    border-color: rgba(45, 122, 62, 0.3);
}
.project-category-tag {
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(8px);
}
.related-project-card h4 {
    min-height: calc(1.6em * 2);
}
