/* 基本設定 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

/* リンクにしたことで色が変わるのを防ぐ */
.scrolldown {
    text-decoration: none;
    cursor: pointer;
}

body {
    font-family: 'Noto Sans JP', sans-serif;
    color: #333;
    overflow-x: hidden;
}

body.no-scroll {
    position: fixed;
    width: 100%;
}


li {
    list-style: none;
}

a {
    text-decoration: none;
    color: inherit;
}

/* ページトップへ戻る */
#pageTop {
    position: fixed;
    z-index: 100000;
    bottom: 30px;
    right: 30px;
    width: 50px;
    height: auto;
}

/* ヘッダー */
.header {
    width: 100%;
    height: 70px;
    background: #fff;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    box-shadow: 1px 1px 1px #ddd;
}

.header-inner {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo {
    font-size: 1.25rem;
    font-weight: bold;
    letter-spacing: 0.1em;
}

.pc-nav ul {
    display: flex;
    gap: 20px;
    align-items: center;
}

.pc-nav ul li a {
    font-size: 0.9rem;
    font-weight: bold;
}

.pc-nav ul li a:hover {
    color: rgb(71, 131, 195);
}

/* グローバルナビ・お問合せ */
.pc-nav ul li.contactbtn a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background-color: rgb(0, 51, 145);
    color: #fff;
    padding: 10px 40px 10px 30px;
    border-radius: 5px;
}

.pc-nav ul li.contactbtn a:hover {
    background-color: rgb(39, 96, 201);
}

.pc-nav ul li.contactbtn .icon-mail {
    flex-shrink: 0;
}

/* =========================
   ドロップダウン（PCのみ）
========================= */

/* 親 */
.pc-nav ul li {
    position: relative;
}

/* サブメニュー初期状態 */
.pc-nav .dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    background: #fff;
    min-width: 220px;
    display: none;
    flex-direction: column;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    border-radius: 5px;
    padding: 10px 0;
    z-index: 1000;
}

/* サブメニュー中身 */
.pc-nav .dropdown li {
    width: 100%;
}

.pc-nav .dropdown li a {
    display: block;
    padding: 10px 20px;
    font-size: 0.85rem;
    color: #333;
}

/* ホバー時 */
.pc-nav .dropdown li a:hover {
    background: #f5f5f5;
}

/* 👇これが本体：ホバーで表示 */
.pc-nav li.has-dropdown:hover .dropdown {
    display: flex;
}















/* メインビジュアル / スライダー */
.main-visual {
    width: 100%;
    height: 100vh;
    position: relative;
}

.swiper-slide {
    background-size: cover;
    background-position: center;
}

/* 背景画像（本来はimgタグやURLで指定） */
.slide-1 {
    background-image: url('../img/main001.jpg');
}

.slide-2 {
    background-image: url('../img/main002.jpg');
}

.slide-3 {
    background-image: url('../img/main003.jpg');
}

.hero-content {
    position: absolute;
    top: 30%;
    right: 10%;
    transform: translateY(-50%);
    z-index: 10;
    text-align: center;
    color: #fff;
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}



.main-copy {
    width: 350px;
    position: relative;
    z-index: 10000 !important;
}



/* スクロールダウン全体の配置 */
.scrolldown {
    position: absolute;
    bottom: 80px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 20;
    color: #fff;
    font-size: 0.7rem;
    letter-spacing: 0.2em;
}

/* 矢印（疑似要素）の土台 */
.scrolldown span {
    display: block;
    position: relative;
    padding-top: 10px;
    /* テキストと矢印の間隔 */
}

/* V字矢印の描画 */
.scrolldown span::after {
    content: "";
    position: absolute;
    top: 40px;
    /* テキストからの開始位置 */
    left: 50%;
    width: 10px;
    height: 10px;
    border-left: 1px solid #fff;
    border-bottom: 1px solid #fff;
    transform: translateX(-50%) rotate(-45deg);
    /* アニメーション：ふわっと下に流れて消える */
    animation: scroll-arrow 2.5s infinite;
    opacity: 0;
}

/* 矢印のアニメーション：フェードインしながら下へ移動 */
@keyframes scroll-arrow {
    0% {
        top: 30px;
        opacity: 0;
    }

    30% {
        opacity: 1;
    }

    60% {
        top: 60px;
        opacity: 0;
    }

    100% {
        opacity: 0;
    }
}

/* ハンバーガーメニュー (スマホ) */
.hamburger {
    display: none;
    width: 30px;
    height: 24px;
    position: relative;
    cursor: pointer;
    z-index: 110;
}

.hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background: #333;
    position: absolute;
    transition: 0.3s;
}

.hamburger span:nth-child(1) {
    top: 0;
}

.hamburger span:nth-child(2) {
    top: 11px;
}

.hamburger span:nth-child(3) {
    bottom: 0;
}

.hamburger.active span:nth-child(1) {
    transform: translateY(11px) rotate(45deg);
}

.hamburger.active span:nth-child(2) {
    opacity: 0;
}

.hamburger.active span:nth-child(3) {
    transform: translateY(-11px) rotate(-45deg);
}

.sp-nav {
    position: fixed;
    top: 0;
    right: -100%;
    width: 80%;
    height: 100vh;
    background: #fff;
    transition: 0.5s;
    z-index: 105;
    padding-top: 30px;
    overflow-y: auto;
    /* ← これ追加 */
    -webkit-overflow-scrolling: touch;
    /* iPhoneヌルスク */
}

.sp-nav.active {
    right: 0;
}

.sp-nav ul li {
    text-align: center;
    padding: 18px 0;
    border-bottom: 1px solid #eee;
}

.sp-nav ul li a {
    display: block;

}

/* グローバルナビ・お問合せ */
.sp-nav ul li.contactbtn a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background-color: rgb(0, 51, 145);
    color: #fff;
    padding: 10px 40px 10px 30px;
    border-radius: 5px;
}

.sp-nav ul li.contactbtn .icon-mail {
    flex-shrink: 0;
}




/* レスポンシブ対応 */
@media (max-width: 768px) {
    .pc-nav {
        display: none;
    }

    .hamburger {
        display: block;
    }

    .main-copy {
        width: 50%;
        margin-inline: auto;
    }

    .sub-copy {
        font-size: 0.8rem;
        letter-spacing: 0.2em;
    }

    .hero-content {
        right: 0;
        left: 0;
        margin: auto;
    }

    .hero-content {
        top: 50%;
    }

    .scrolldown {
        bottom: 30%;
    }

    .sp-nav ul li.notesp img {
        width: 50%;
    }
}






/* ぱんくず */
.breadcrumb {
    font-size: 14px;
    margin: 0 0 80px 0;
}

.breadcrumb ul {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    margin: 0;
}

.breadcrumb li {
    display: flex;
    align-items: center;
}

.breadcrumb li+li::before {
    content: ">";
    margin: 0 8px;
    color: #999;
}

.breadcrumb a {
    text-decoration: none;
    color: #023297;
}

.breadcrumb a:hover {
    text-decoration: underline;
}






/* ミッションセクションのスタイル */
.mission {
    background-color: #efefef;
    /* 薄いグレーの背景 */
    padding: 0 0 60px 0;
}

.container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 80px 20px;
}

.container_under {
    max-width: 1000px;
    margin: 0 auto;
    padding: 60px 20px;
}

/* 横線付きのタイトル */
.mission-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 40px;
}

.title-jp {
    font-size: 0.9rem;
    font-weight: bold;
    white-space: nowrap;
}

.title-line {
    flex-grow: 1;
    height: 1px;
    background-color: #333;
    max-width: 300px;
}

/* コンテンツ中央揃え */
.mission-content {
    max-width: 1000px;
    margin: 0 auto;
    text-align: center;
}


.mission-headline {
    font-size: 1.4rem;
    font-weight: bold;
    margin-bottom: 60px;
    letter-spacing: 0.1em;
}

.mission-text {
    font-size: 0.95rem;
    line-height: 2;
    text-align: left;
    /* テキストは左揃え（画像準拠） */
    margin-bottom: 50px;
    word-break: break-all;
    text-align: justify; // Required for IE and Edge 
    text-align-last: right;
}

/* 画像 */
.mission-image {
    width: 100%;
    margin-bottom: 40px;
}

.mission-image img {
    width: 100%;
    height: auto;
    display: block;
}

/* ボタン */
.mission-btn-wrapper {
    margin-top: 20px;
}

.btn-mission {
    display: inline-block;
    border: 1px solid #333;
    padding: 24px 80px;
    /* 左右の余白を調整 */
    background-color: #fff;
    color: #333;
    font-size: 0.85rem;
    font-weight: bold;
    transition: all 0.3s ease;
    z-index: 100;
    position: relative;
    text-decoration: none;
    text-align: center;
    min-width: 300px;
    /* ボタンの幅を安定させるために推奨 */
    letter-spacing: 2px;
}

/* 矢印（疑似要素） */
.btn-mission::after {
    content: '';
    position: absolute;
    right: 30px;
    /* 右端からの距離 */
    top: 50%;
    transform: translateY(-50%);
    width: 6px;
    /* 矢印の幅 */
    height: 6px;
    /* 矢印の高さ */
    border-top: 2px solid #333;
    border-right: 2px solid #333;
    rotate: 45deg;
    /* 傾けて「>」の形にする */
    transition: all 0.3s ease;
}

/* ホバー時の挙動 */
.btn-mission:hover {
    background-color: #333;
    color: #fff;
}

/* ホバー時に矢印の色を白くし、少し右に動かす */
.btn-mission:hover::after {
    border-color: #fff;
    right: 25px;
    /* 少し右へ移動させるインタラクション */
}


/* レスポンシブ対応 */
@media (max-width: 768px) {
    .container {
        padding: 10px 20px;
    }

    .container_under {
        padding: 0 0;
    }

    .mission {
        padding: 60px 0;
    }

    .mission-headline {
        font-size: 1.25rem;
    }

    .mission-text {
        font-size: 0.85rem;
        line-height: 1.8;
        text-align: justify; // Required for IE and Edge 
        text-align-last: right;
        margin-bottom: 30px;
    }

    .btn-mission {
        width: 100%;
        /* スマホではボタンを横いっぱいに */
        padding: 18px 0;
    }
}



/* PCでの見せ方（画面幅が広い時） */
@media (min-width: 768px) {
    .pamphlet-container {
        display: grid;
        grid-template-columns: 1fr 1fr;
        /* 横に2分割 */
        grid-template-rows: auto auto;
        /* 縦に2分割 */
        height: 100vh;
        /* 1画面に収めたい場合 */
    }
}

/* スマホでの見せ方（画面幅が狭い時） */
@media (max-width: 767px) {
    .pamphlet-container {
        display: flex;
        flex-direction: column;
        /* 縦に1列に並べる */
    }
}







/* --------------------------------------------------

ミッション OKUDAとは

--------------------------------------------------*/

/* =========================
   pamphlet layout 完成版
========================= */

.section-grid {
    display: grid;
    grid-template-columns: 1fr;
    min-height: 100vh;
    margin-bottom: 100px;
}

.panel {
    padding: 40px 28px 28px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 20px;
}

.panel-inner {
    max-width: 520px;
}

.panel-title {
    display: inline-flex;
    align-items: stretch;
    gap: 14px;
    margin: 0 0 24px;
    font-size: 29px;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: 0.02em;
    color: #000;
}

.panel-title::before {
    content: "";
    width: 8px;
    min-width: 8px;
    background: #000;
    display: block;
}

.lead {
    margin: 0 0 14px;
    font-size: clamp(1.1rem, 1.3vw, 1.5rem);
    font-weight: 700;
    line-height: 1.7;
}

.text {
    margin: 0;
    font-size: 0.98rem;
    line-height: 200%;
    text-align: justify;
    text-align-last: left;
}

.image-box {
    margin: 0 auto;
    width: 70%;
    max-width: 100%;
    aspect-ratio: 16 / 14;
    margin-bottom: 10px;
}

.image-box img {
    width: 100%;
}

.gray {
    background: #d8d4ce;
}

.pink {
    background: #f4c3d2;
}

.blue {
    background: #9fd9f4;
}

.yellow {
    background: #fff08a;
}

@media (min-width: 768px) {
    .section-grid {
        grid-template-columns: 1fr 1fr;
    }

    .panel {
        min-height: 50vh;
        padding: 56px 48px 36px;
    }
}

@media (min-width: 1200px) {
    .panel {
        padding: 64px 56px 40px;
    }

    .image-box {
        max-width: 420px;
    }
}













/* ビジネスのスタイル */
.business {
    background-color: #fefefe;
    /* 薄いグレーの背景 */
    padding: 60px 0;
}

/* コンテンツ中央揃え */
.business-content {
    max-width: 100%;
    margin: 0 auto;
    text-align: center;
}


div.business_btnbox {
    margin: 60px 0 0;
}


/* 画像拡大 */
.image-container {
    overflow: hidden;
    /* 拡大した時に枠からはみ出た部分を隠す */
}

.image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease, filter 0.3s ease;
    /* アニメーションの速度設定 */
}

.image-container img:hover {
    transform: scale(1.1);
    /* 画像を1.1倍に拡大 */
    filter: brightness(70%);
    /* 明るさを70%にして暗くする [3] */
}


/* レスポンシブ対応 */
@media (max-width: 768px) {
    .business {
        padding: 60px 0;
    }

    .image-container img {
        border: 1px solid #333;
    }

    div.business_btnbox {
        margin: 30px 0 0;
    }
}


.image-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    /* ← 常に2列 */
    gap: 20px;
}

.image-grid img {
    width: 100%;
    height: auto;
    display: block;
}




/* 採用セクション基本 */


.recruit-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin: 100px 0 0;
    z-index: 1000;
    position: relative;
}

/* ビジュアルコンテナ（幅100%） */
.recruit-visual-container {
    position: relative;
    width: 100%;
    height: 700px;
    /* PCでの高さ */
    overflow: hidden;
}

/* 背景画像 */
.recruit-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
}


/* 中央の半透明グレーの帯 */
.recruit-overlay {
    position: absolute;
    top: 20%;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2;
}

.recruit-text {
    font-size: 0.95rem;
    line-height: 2;
    text-align: left;
    /* テキストは左揃え（画像準拠） */
    margin-bottom: 50px;
    word-break: break-all;
    z-index: 1000;
    width: 1000px;
    margin-inline: auto;
    text-align: justify; // Required for IE and Edge 
    text-align-last: right;
}

.recruit-inner-box {
    background-color: rgba(160, 160, 160, 0.5);
    /* 半透明の白ベース */
    padding: 60px 20px;
    width: 100%;
    display: flex;
    justify-content: center;
}

/* ボタンの並び */
.recruit-buttons {
    display: flex;
    gap: 2px;
    /* 真ん中の細い境界線 */
    width: 100%;
    max-width: 960px;
}

/* 共通ボタン（白） */
.btn-recruit-white {
    flex: 1;
    background-color: #fff;
    height: 140px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    color: #333;
    transition: background-color 0.3s ease;
    padding: 0 20px;
}

.btn-recruit-white:hover {
    background-color: #dadada;
}

/* noteボタン用画像調整 */
.btn-note img {
    max-width: 65%;
    height: auto;
}

/* 採用サイトボタン用テキスト */
.btn-text-sub {
    display: block;
    font-size: 0.9rem;
    margin-bottom: 8px;
    letter-spacing: 0.05em;
    text-align: center;
}

.btn-text-main {
    display: block;
    font-size: 1.2rem;
    font-weight: bold;
}



/* 白ボタン背景に矢印を追加 */
.btn-recruit-white {
    flex: 1;
    background-color: #fff;
    height: 140px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    color: #333;
    transition: background-color 0.3s ease;
    padding: 0 20px;
    /* 矢印の基準点にするため追加 */
    position: relative;
}

/* 矢印の描画（共通） */
.btn-recruit-white::after {
    content: '';
    position: absolute;
    right: 25px;
    /* 右端からの距離 */
    top: 50%;
    transform: translateY(-50%) rotate(-45deg);
    width: 8px;
    height: 8px;
    border-right: 2px solid #333;
    border-bottom: 2px solid #333;
    transition: all 0.3s ease;
}

/* ホバー時の挙動 */
.btn-recruit-white:hover {
    background-color: #f5f5f5;
    /* 少しグレーにする（お好みで） */
}

/* ホバー時に矢印を少し右に動かす */
.btn-recruit-white:hover::after {
    right: 20px;
}

/* noteボタン（左側）の調整：ロゴを少し左に寄せてバランスを取る場合 */
.btn-note img {
    max-width: 65%;
    height: auto;
    /* 矢印がある分、少し左にオフセットすると中央に見えます */
    margin-right: 15px;
}

/* 採用サイト（右側）の調整 */
.btn-site .btn-text-main,
.btn-site .btn-text-sub {
    /* 矢印と重ならないよう、少し左にオフセット */
    margin-right: 15px;
}



/* レスポンシブ */
@media (max-width: 768px) {
    .recruit-visual-container {
        height: auto;
        min-height: 500px;
    }

    .recruit-header {
        margin: 50px 0 0;
    }

    .recruit-inner-box {
        padding: 30px 20px;
    }

    /* noteボタン用画像調整 */
    .btn-note img {
        max-width: 100%;
        height: auto;
    }

    /* 共通ボタン（白） */
    .btn-recruit-white {
        height: 100px;
    }

    .btn-text-sub {
        font-size: 0.8em;
    }

    .btn-text-main {
        margin-top: -6px;
        font-size: 1em;
    }

    /* 白ボタン背景に矢印を追加 */
    .btn-recruit-white {
        height: 100px;
    }
}









/* フッター全体 */
.footer {
    background-color: #fff;
    padding: 80px 0 40px;
    border-top: 1px solid #eee;
}

.footer-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* ロゴ部分 */
.footer-logo-unit {
    text-align: center;
    margin-bottom: 60px;
}



.footer-logo img {
    width: 200px;
}

.footer-logo-jp {
    font-size: 1.2rem;
    font-weight: bold;
    letter-spacing: 0.2em;
}

/* 情報グリッド（4カラム） */
.footer-info-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    margin-bottom: 60px;
}

.info-item {
    font-size: 0.85rem;
    line-height: 1.6;
}

.info-name {
    font-size: 0.95rem;
    font-weight: bold;
    margin-bottom: 15px;
    white-space: nowrap;
}

.info-address, .info-tel, .info-fax {
    margin-bottom: 2px;
}

/* コピーライト */
.copyright {
    text-align: center;
    font-size: 0.75rem;
    color: #999;
    border-top: 1px solid #f0f0f0;
    padding-top: 30px;
}

/* レスポンシブ */
@media (max-width: 1024px) {
    .footer-info-grid {
        grid-template-columns: repeat(2, 1fr);
        /* タブレット時は2列 */
    }
}

@media (max-width: 768px) {
    .footer-logo {
        font-size: 2.5rem;
    }

    .footer-info-grid {
        grid-template-columns: 1fr;
        /* スマホ時は1列 */
        text-align: center;
    }

    .info-name {
        white-space: normal;
    }
}






/* 下層ページ共通 ヒーローエリア */
.page-hero {
    width: 100%;
    height: 250px;
    /* 下層ページは高さを抑える */
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 70px;
    /* ヘッダーの高さ分 */
}

/* ミッションページの背景画像 */
.mission-hero {
    background-image: url('../img/mission_hero_bg.jpg');
}

/* ミッションページの背景画像 */
.mission-hero-business {
    background-image: url('../img/mission_hero_bg_business.jpg');
}




/* ヒーローエリアのオーバーレイ（文字を読みやすくする） */
.page-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.3);
}

.page-title {
    position: relative;
    z-index: 10;
    color: #fff;
    font-size: 2rem;
    font-weight: bold;
    letter-spacing: 0.2em;
}

/* 下層ページ レスポンシブ */
@media (max-width: 768px) {
    .page-hero {
        height: 160px;
    }

    .page-title {
        font-size: 1.5rem;
    }

    .page-content {
        padding: 60px 0;
    }

    .mission-headline {
        font-size: 1.1rem;
        line-height: 1.6;
    }

    .mission-desc {
        font-size: 0.85rem;
        line-height: 1.8;
    }
}




/* VALUEセクション全体 */
.value-section {
    background-color: #efefef;
    /* コンテンツエリアと共通の薄いグレー */
    padding: 0 0 100px 0;
    text-align: center;
}

/* タイトル "VALUE" */
.value-title {
    font-size: 1.6rem;
    font-weight: bold;
    letter-spacing: 0.3em;
    margin-bottom: 60px;
    color: #000;
}

/* リスト部分 */
.value-list {
    display: inline-block;
    /* 中央揃えを維持しつつ、テキストは左揃えにするため */
    text-align: left;
    list-style: none;
    padding: 0;
}

.value-list li {
    font-size: 1.3rem;
    font-weight: bold;
    line-height: 1;
    margin-bottom: 35px;
    /* 項目間の余白 */
    letter-spacing: 0.1em;
    display: flex;
    align-items: center;
}

/* ①〜⑤の数字部分の微調整 */
.value-num {
    margin-right: 10px;
    font-feature-settings: "palt";
    /* 文字詰め（フォントによって調整） */
}

/* 最後の項目の余白を消す */
.value-list li:last-child {
    margin-bottom: 0;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .value-section {
        padding: 0 0 60px 0;
    }

    .value-title {
        font-size: 1.3rem;
        margin-bottom: 40px;
    }

    .value-list li {
        font-size: 1rem;
        margin-bottom: 25px;
    }
}




/* サイドラインタイトルcss実装 */
.side-line-title {
    display: flex;
    align-items: center;
    /* 垂直方向の中央揃え */
    justify-content: center;
    /* 水平方向の中央揃え */
    width: 100%;
    margin: 30px 0;
    /* 前後の余白 */
    font-size: 1.3rem;
    /* テキストの大きさ */
    font-weight: bold;
    letter-spacing: 0.1em;
}

/* テキストの両側の線 */
.side-line-title::before,
.side-line-title::after {
    content: "";
    flex-grow: 1;
    /* 伸びる設定 */
    height: 1px;
    /* 線の太さ */
    background: #000;
    /* 線の色 */
}

/* テキストと線の間に余白を作る */
.side-line-title::before {
    margin-right: 60px;
}

.side-line-title::after {
    margin-left: 60px;
}

/* レスポンシブ調整（スマホ時に線が短くなりすぎないよう調整） */
@media (max-width: 768px) {
    .side-line-title {
        font-size: 1.1rem;
        margin: 40px 0;
    }

    .side-line-title::before,
    .side-line-title::after {
        margin-right: 10px;
        margin-left: 10px;
    }
}


/* 奥田精工株式会社の技術について */
.technology-image img {
    width: 100%;
    height: auto;
    display: block;
    margin-bottom: 80px;
}

/* レスポンシブ調整 奥田精工株式会社の技術について */
@media (max-width: 768px) {
    .technology-image img {
        display: none;
    }
}

/* 奥田精工株式会社の技術について PCでは表示しない */
.sp-only-content {
    display: none;
}

/* スマホサイト（768px以下）のみ表示 */
@media (max-width: 768px) {
    .sp-only-content {
        display: block;
        padding: 40px 0px;
    }

    .sp-block {
        margin-bottom: 50px;
    }

    /* 画像エリア */
    .sp-img-box {
        width: 70%;
        margin-bottom: 20px;
        margin-inline: auto;
        background-color: #ddd;
        /* 画像がない場合のプレースホルダー色 */
    }

    .spsagyouphoto img {
        width: 100% !important;
    }

    .sp-img-box img {
        width: 100%;
        height: auto;
        display: block;
    }

    /* テキストエリア */
    .sp-text-box p {
        font-size: 0.85rem;
        line-height: 1.8;
        text-align: left;
        letter-spacing: 0.03em;
    }

    /* 見出し */
    .sp-headline {
        font-size: 1.25rem;
        font-weight: bold;
        text-align: center;
        margin-bottom: 25px;
        color: #333;
        border-top: 3px solid #000;
        border-bottom: 2px solid #000;
        padding: 16px 0;
        background-color: #fff;
    }

    /* 最後の大きなコピー */
    .sp-footer-copy {
        margin-bottom: -30px;
        text-align: center;
    }

    .sp-footer-copy p {
        font-size: 1.2rem;
        font-weight: bold;
        line-height: 1.6;
        color: #000;
    }
}










/* 会社案内ページの背景画像 */
.company-hero {
    background-image: url('../img/company_hero_bg.jpg');
}

.ceoname {
    text-align: right;
    font-size: 1.1rem;
    font-weight: bold;
    letter-spacing: 0.05em;
    margin-bottom: 100px;
}


/* 会社概要セクション */
.company-overview {
    background-color: #efefef;
    /* 画像の背景色に合わせたグレー */
    padding: 30px 0;
    color: #000;
}

.overview-list {
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
}

.overview-item {
    display: flex;
    border-bottom: 1px solid #ccc;
    /* 項目ごとの区切り線（お好みで） */
    padding: 25px 0;
}

.overview-item:last-child {
    border-bottom: none;
}

/* 項目名（左側） */
.overview-item dt {
    width: 30%;
    font-weight: bold;
    letter-spacing: 0.5em;
    /* 文字間隔を広げて高級感を出す */
    flex-shrink: 0;
}

/* 内容（右側） */
.overview-item dd {
    width: 70%;
    margin-left: 0;
    line-height: 1.8;
}

/* 所在地内のブロック分け */
.address-block {
    margin-bottom: 25px;
}

.address-block:last-child {
    margin-bottom: 0;
}

.office-name {
    font-weight: bold;
    margin-bottom: 5px;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .company-overview {
        padding: 0px 20px;
    }

    .overview-item {
        flex-direction: column;
        /* 縦並びに変更 */
        padding: 20px 0;
    }

    .overview-item dt {
        width: 100%;
        margin-bottom: 10px;
        font-size: 0.9rem;
    }

    .overview-item dd {
        width: 100%;
        font-size: 0.95rem;
    }

    .address-block {
        margin-bottom: 20px;
    }
}





/* 会社案内 */


/* =========================
   会社情報レイアウト
========================= */

/* 横並び（PC） */
.company-info .container {
    display: flex;
    flex-direction: column;
    /* ← これが重要 */
    gap: 40px;
}

/* 各ブロック */
.info-block {
    flex: 1;
    line-height: 200%;
    margin: -50px 0 50px 0;
}

/* 左：社員数 少し細く */
.info-block:first-child {
    flex: 0.8;
}

/* 右：設備 広く */
.info-block:nth-child(2) {
    flex: .5;
}

/* リスト整形 */
.info-block ul {
    margin-top: 10px;
}

.info-block li {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid #ddd;
    padding: 16px;
}


/* 見出し */
.info-block h2 {
    font-size: 1.2rem;
    margin-bottom: 10px;
}

.info-block h3 {
    margin-top: 30px;
    font-size: 1rem;
    background-color: #858484;
    padding: 10px;
    color: #fff;
    letter-spacing: 2px;
}

span.smallfonttitle {
    font-size: 0.8em;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .info-block h3 {
        padding: 5px;
        font-size: 0.9rem;
    }
}

/* 認証 */
.cert li {
    border: none;
    padding: 4px 0;
}













/* ギャラリーセクション */
.company-gallery {
    background-color: #efefef;
    /* 会社概要と同じ背景色 */
    padding: 100px 0;
    /* セクション全体の余白 */
}

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    /* 2カラム */
    gap: 40px;
    /* 画像間の余白 */
}

.gallery-item {
    width: 100%;
    aspect-ratio: 16 / 10;
    /* 画像のアスペクト比を一定に保つ */
    overflow: hidden;
    background-color: #ccc;
    /* 読み込み前の下地色 */
}

.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* 枠いっぱいに収める */
    transition: transform 0.5s ease;
}

/* ホバー時に少し拡大する演出（お好みで） */
.gallery-item:hover img {
    transform: scale(1.05);
}

/* 画像がない場合のスタイル（添付画像の右下再現） */
.gallery-item.placeholder {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #c0c0c0;

    /* 添付画像に近いグレー */
}

.gallery-item.placeholder span {
    color: #999;
    font-size: 0.8rem;
    letter-spacing: 0.1em;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .company-gallery {
        padding-bottom: 60px;
    }

    .gallery-grid {
        grid-template-columns: 1fr;
        /* スマホでは1カラム */
        gap: 20px;
    }

    .gallery-item {
        aspect-ratio: 3 / 2;
        /* スマホで見やすい比率に */
    }
}






/* ==========================================================================
   採用
   ========================================================================== */

.recruit-hero {
    background-image: url('../img/recruit_hero_bg.jpg');
}



/* ==========================================================================
   採用フォーム
   ========================================================================== */

p.retitle img {
    width: 78%;
    display: block;
    margin: 0 auto;
}

div.recbox {
    margin: 60px 0 100px 0;
}

dl.rec {
    margin: 50px 0 0;
}

dl.rec dt {
    background-color: #0076a3;
    color: #fff;
    text-align: center;
    padding: 16px 0;
    font-weight: bold;
    letter-spacing: 2px;
    font-size: 1.25rem;
}

dl.rec dd {
    text-align: center;
    padding: 16px 0 0;
}


p.rectxt {
    text-align: center;
    margin: 50px 0 100px 0;
    font-size: 1rem;
    color: crimson;
}

.divider {
    height: 1px;
    background: #e5e5e5;
    margin: 60px 0;
}


/* ==========================================================================
   採用フォームの基本設定
   ========================================================================== */
.contact-form {
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    background-color: #f8f9fb;
    ;
    padding: 60px 20px;
    color: #333;
    line-height: 1.6;
}

.contact-form .inner {
    max-width: 900px;
    margin: 0 auto;
    background-color: #fff;
    padding: 100px 100px;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

/* タイトル・リード文 */
.contact-form h2 {
    font-size: 24px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 15px;
    letter-spacing: 0.05em;
}

.contact-form .lead {
    font-size: 14px;
    color: #666;
    text-align: center;
    margin-bottom: 40px;
}

.contact-form .lead002 {
    font-size: 14px;
    color: #666;
    margin-bottom: 40px;
}




/* ==========================================================================
   フォームレイアウト（PC基準: flexでの横並び）
   ========================================================================== */
.contact-form .form-group {
    display: flex;
    flex-wrap: wrap;
    /* スマホ時の折り返し用 */
    align-items: flex-start;
    padding: 20px 0;
    border-bottom: 1px solid #eee;
}

/* 最後の入力項目の下線は消す */
.contact-form .form-group:last-of-type {
    border-bottom: none;
    margin-bottom: 20px;
}

/* ラベルエリア */
.contact-form .form-group>label {
    flex: 0 0 240px;
    /* PC時は幅240pxに固定 */
    font-weight: bold;
    font-size: 15px;
    padding-top: 10px;
    /* 入力欄の高さと文字の基準を合わせる微調整 */
    box-sizing: border-box;
}


/* 必須マーク */
.contact-form .required {
    color: #de4437;
    margin-left: 4px;
    font-size: 13px;
}

/* 入力コントロール（input/textarea/radioの親） */
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form input[type="date"],
.contact-form textarea {
    flex: 1;
    /* 残りの幅をすべて使う */
    width: 100%;
    /* 特に入力欄が潰れないための保証 */
    max-width: 100%;
    padding: 12px 16px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 15px;
    background-color: #fafafa;
    transition: all 0.3s ease;
    box-sizing: border-box;
}

/* フォーカス時のエフェクト */
.contact-form input:focus,
.contact-form textarea:focus {
    outline: none;
    border-color: #0076a3;
    /* 好みに合わせてメインカラーに変えてください */
    background-color: #fff;
    box-shadow: 0 0 0 3px rgba(0, 118, 163, 0.1);
}

/* ==========================================================================
   ラジオボタン・テキストエリアの調整
   ========================================================================== */
.contact-form .radio-group {
    flex: 1;
    display: flex;
    gap: 20px;
    /* 選択肢同士の余白 */
    flex-wrap: wrap;
    padding-top: 10px;
    /* ラベルとの高さを合わせる */
}

.contact-form .radio-group label {
    display: flex;
    align-items: center;
    cursor: pointer;
    font-size: 15px;
}

.contact-form .radio-group input[type="radio"] {
    margin-right: 6px;
    width: 16px;
    height: 16px;
    cursor: pointer;
}

/* テキストエリア */
.contact-form textarea {
    resize: vertical;
    /* 縦方向にのみユーザーがサイズ変更可能に */
    min-height: 300px;
}

/* ==========================================================================
   送信ボタン
   ========================================================================== */
.contact-form .form-submit {
    text-align: center;
    margin-top: 40px;
}

.contact-form .form-submit button {
    display: inline-block;
    width: 320px;
    max-width: 100%;
    padding: 24px 0;
    background-color: rgb(0, 51, 145);
    /* ボタンの色（黒系。企業のメインカラー等に変更可） */
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.3s ease, transform 0.1s ease;
}

.contact-form .form-submit button:hover {
    background-color: rgb(40, 91, 185);
}

.contact-form .form-submit button:active {
    transform: scale(0.98);
    /* 押した時に少し凹む演出 */
}

/* ==========================================================================
   レスポンシブ対応（スマホ・タブレット用：画面幅768px以下）
   ========================================================================== */
@media screen and (max-width: 768px) {
    .contact-form {
        padding: 30px 10px;
    }

    .contact-form .inner {
        padding: 25px 15px;
    }

    .contact-form h2 {
        font-size: 20px;
    }

    .contact-form .form-group {
        flex-direction: column;
        /* 縦並びに変更 */
        align-items: stretch;
        padding: 15px 0;
    }

    .contact-form .form-group>label {
        flex: none;
        width: 100%;
        padding-top: 0;
        margin-bottom: 8px;
        /* ラベルと入力欄の間に余白を作る */
    }

    .contact-form .radio-group {
        padding-top: 5px;
        gap: 15px 20px;
        /* スマホで折り返した際の上下の隙間も確保 */
    }
}


/* ==========================================================================
   追加：個人情報保護方針エリアのスタイル
   ========================================================================== */
.contact-form .privacy-group {
    margin-top: 40px;
    padding-top: 30px;
    border-top: 2px solid #eee;
}

.contact-form .privacy-group h3 {
    font-size: 16px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 10px;
}

.contact-form .privacy-note {
    font-size: 13px;
    color: #666;
    text-align: center;
    margin-bottom: 20px;
}

/* iframeを包むラッパー（レスポンシブの土台） */
.contact-form .iframe-wrapper {
    width: 100%;
    max-width: 600px;
    margin: 0 auto 25px auto;
    border: 1px solid #ccc;
    border-radius: 4px;
    overflow: hidden;
    /* 角丸からはみ出さないように */
    background-color: #fff;
}

/* iframe 本体の設定 */
.contact-form .iframe-wrapper iframe {
    width: 100%;
    height: 180px;
    /* PC/スマホ共通で見やすい絶妙な高さ */
    border: none;
    display: block;
}

/* チェックボックスのラッパー */
.contact-form .checkbox-wrapper {
    text-align: center;
    margin-bottom: 30px;
}

.contact-form .checkbox-wrapper label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 15px;
    font-weight: bold;
    padding: 10px 15px;
    background-color: #f0f0f0;
    /* チェックしやすくするために少し背景をつける */
    border-radius: 4px;
    transition: background-color 0.2s ease;
    margin-bottom: 50px;
}

.contact-form .checkbox-wrapper label:hover {
    background-color: #e5e5e5;
}

/* チェックボックス本体のサイズ調整と余白 */
.contact-form .checkbox-wrapper input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin-right: 8px;
    cursor: pointer;
}

/* ==========================================================================
   レスポンシブ対応の調整（既存の @media screen and (max-width: 768px) 内に追加）
   ========================================================================== */
@media screen and (max-width: 768px) {
    .contact-form .privacy-group {
        margin-top: 30px;
        padding-top: 20px;
    }

    .contact-form .privacy-group h3 {
        font-size: 15px;
    }

    .contact-form .privacy-note {
        font-size: 12px;
        text-align: left;
        /* スマホでは左寄せの方が行数が多くなったとき読みやすい */
    }

    .contact-form .iframe-wrapper iframe {
        height: 150px;
        /* スマホ時は少しだけコンパクトに */
    }

    .contact-form .checkbox-wrapper label {
        font-size: 14px;
        width: 100%;
        /* スマホではタップ領域を広げるために横いっぱいに */
        box-sizing: border-box;
    }
}




/* ==========================================================================
   お問合せの注意事項記載：フォーム冒頭のご案内文スタイル
   ========================================================================== */
.form-intro {
    background-color: #fcfcfc;
    /* フォームの白背景と差別化する、ごく薄いグレー */
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    padding: 32px;
    margin: 40px 0;
    /* 下のフォームグループとの間に心地よい余白を確保 */
}

/* メインの案内文 */
.form-intro .intro-main {
    font-size: 15px;
    font-weight: bold;
    color: #333;
    line-height: 1.6;
    margin-top: 0;
    margin-bottom: 16px;
    /* 注意点との間の余白 */
    text-align: center;
}

/* 注意点リストの共通設定 */
.form-intro .intro-notes {
    list-style: none;
    /* デフォルトの黒丸を消す */
    margin: 0;
    padding: 0;
}

/* 各注意点（※） */
.form-intro .intro-notes li {
    font-size: 13.5px;
    color: #666;
    /* メイン文より少しだけ不透明度を下げて主従関係を明確に */
    line-height: 1.6;
    position: relative;
    padding-left: 1.2em;
    /* 米印が2行目以降に回り込まないように左側に余白をあける */
    margin-bottom: 8px;
}

.form-intro .intro-notes li:last-child {
    margin-bottom: 0;
    /* 最後の項目の下マージンはリセット */
}

/* 擬似要素を使って「※」の位置を綺麗に固定 */
.form-intro .intro-notes li::before {
    content: "※";
    position: absolute;
    left: 0;
    top: 0;
    color: #de4437;
    /* 注意を引くために、必須マークと同じ赤系をアクセントに */
    font-weight: bold;
}

/* ==========================================================================
   レスポンシブ対応（スマホ・タブレット用：画面幅768px以下）
   ========================================================================== */
@media screen and (max-width: 768px) {
    .form-intro {
        padding: 18px;
        /* スマホでは内側の余白を少しギュッと凝縮 */
        margin-bottom: 30px;
    }

    .form-intro .intro-main {
        font-size: 14px;
        /* スマホで文字が大きすぎないように微調整 */
    }

    .form-intro .intro-notes li {
        font-size: 12.5px;
    }
}






/* ==========================================================================
   金型の設計・製作
   ========================================================================== */

.recruit-section {
    padding: 30px 20px;
}

.recruit-box {
    max-width: 1100px;
    margin: 0 auto;
    border: 1px solid #ddd;
    padding: 30px;
    display: flex;
    align-items: center;
    gap: 30px;
    background: #fff;
    box-shadow: 0 0 10px rgb(190, 189, 189);
}

/* 画像 */
.recruit-image {
    flex: 1;
    width: 100%;
}

.recruit-image img {
    width: 100%;
    height: auto;
    display: block;
}

/* テキスト */
.recruit-content {
    flex: 1.2;
    text-align: left;

}

.recruit-content h2 {
    font-size: 22px;
    margin-bottom: 10px;
}

.recruit-content h3 {
    font-size: 18px;
    margin-bottom: 15px;
    font-weight: bold;
}

span.smallfontmold {
    font-size: 18px;
}

.recruit-content p {
    font-size: 16px;
    line-height: 1.8;
    text-align: justify; // Required for IE and Edge 
    text-align-last: right;
}

/* ▼スマホ対応 */
@media screen and (max-width: 768px) {


    .recruit-section {
        padding: 30px 0px;
    }

    .recruit-box {
        flex-direction: column;
        padding: 30px;
    }



    .recruit-content h2 {
        font-size: 18px;
        text-align: center;
    }

    .recruit-content h3 {
        font-size: 16px;
        text-align: center;

    }

    .recruit-content p {
        font-size: 14px;
        text-align: center;
    }
}



/* ==========================================================================
   画像をフェードで切り替える
   ========================================================================== */

.fade-slider {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    /* ←これが最強 */
    overflow: hidden;
}

.fade-slider img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;

    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.fade-slider img.active {
    opacity: 1;
    z-index: 1;
}




/* レイアウト調整 */
.mtm60 {
    margin-top: -60px;
}

.mb100 {
    margin-bottom: 100px;
}

.mt100 {
    margin-top: 100px;
}


/* スマホの時だけイアウト調整 */
@media (max-width: 600px) {
    .sp_staffnumber_title {
        margin-top: -50px;
        margin-bottom: 10px;
    }

    .sp_staffnumber_title002 {
        margin-top: -30px;
        margin-bottom: 10px;
    }

    .sp_staffnumber_title003 {
        margin-top: -30px;
        margin-bottom: 10px;
    }

    .sp_factoryinfotitle {
        margin-top: 20px;
        margin-bottom: 10px;
    }
}



/* スマホの時だけ改行させるクラス */
.br-sp {
    display: none;
}

@media (max-width: 600px) {
    .br-sp {
        display: block;
    }
}



/* ==========================================================================
   送信完了・メッセージ送信完了
   ========================================================================== */



div.sendbox {
    text-align: center;
    padding: 20px;
    line-height: 200%;
}

div.sendbox p.sendtxt {
    margin-bottom: 50px;
}