/*
Theme Name: 株式会社大蔵製作所
Description: 株式会社大蔵製作所 コーポレートサイト用オリジナルテーマ（JSTデザイン踏襲）
Author: oy
Version: 2.0
*/


@charset "UTF-8";



*,
*::before,
*::after {
    box-sizing: border-box;
}


img {
    max-width: 100%;
    height: auto;
    display: block;
}


body {
    margin: 0;
    font-family: "Noto Sans JP", sans-serif;
    overflow-x: hidden;
    letter-spacing: 0.04em;
}

html {
    scroll-behavior: smooth;
}

ul,
ol {
    padding-left: 0;
    margin-left: 0;
    list-style: none;
}

.en,
.tech-bg-text,
.hero-en {
    font-family: "Roboto Condensed", sans-serif;
}

h2 {
    letter-spacing: -0.04em;
    margin-top: 0;
    line-height: 1;
}

.roboto {
    font-family: "Roboto Condensed", sans-serif;
}

.pc-only {
    display: inline;
}

a {
    color: inherit;
    /* 親の色をそのまま使う */
    text-decoration: none;
}


a:hover {
    opacity: 0.8;
    /* 好きなhover演出 */
}



/* --------------------------------------------------------------------------
   コンテンツ
   -------------------------------------------------------------------------- */
main {
    /* position: relative; */
    /* background: #000; */
    min-height: 100vh;
    overflow: hidden;
}


.fv {
    background: #0d1b3d;
    padding: 40px 0 120px;
}

.fv-inner {
    /* max-width: 1200px; */
    margin: auto;
    display: flex;
    /* gap: 80px; */
    align-items: flex-start;
}

.fv-ja img {
    width: 100%;
    max-width: 738px;

    height: auto;
    display: block;
}

.fv-left {
    width: 36%;
    position: relative;
}

.left-img.top {
    width: 220px;
    display: block;
    margin-left: 80px;
    margin-top: 120px;
}

.left-en {
    width: 693px;
    display: block;
    margin-top: -75px;
    margin-left: 5px;
    opacity: 1;
    position: relative;
    z-index: 10;
}

.left-img.bottom {
    width: 300px;
    display: block;
    margin-top: -5px;
    margin-left: -37px;
}

.fv-right {
    width: 64%;
    position: relative;
}

.main-img {
    /* width: 100%; */
    height: 650px;
    object-fit: cover;
    display: block;
    object-position: left;
}

.fv-ja {
    position: absolute;
    right: 40px;
    bottom: 50px;
    font-size: 38px;
    font-weight: 600;
    line-height: 1.5;
    /* letter-spacing: .08em; */
    color: #fff;
    text-align: right;
    text-shadow: 0 6px 16px rgba(0, 0, 0, .6);
}

.fv-ja span {
    font-size: 1.15em;
}



hr {
    width: 990px;
    margin-top: 0px;
    margin-bottom: 0px;
    margin: 0 auto;

}

/* --------------------------------------------------------------------------
   NEWS
   -------------------------------------------------------------------------- */
.news-section {
    background: #0d1b3d;
    color: #fff;
    padding-top: 56px;
    /* padding: 80px 0; */
}

.news-inner {
    max-width: 990px;
    margin: 0 auto;
    padding-bottom: 120px;
}

.news-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 32px;
}

.news-title .news-ja {
    font-size: 14px;
    /* letter-spacing: 0.1em; */
    display: block;
    margin-bottom: 6px;
}

.news-title h2 {
    font-size: 48px;
    /* letter-spacing: -0.02em; */
    margin: 0;
}

.news-btn {
    background: #0b4ea8;
    color: #fff;
    font-weight: bold;
    padding: 14px 24px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: 190px;
}

.news-btn:hover {
    opacity: 0.8;
}

.news-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.news-list li {
    background: #fff;
    margin-bottom: 6px;
}

.news-list a {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 18px 24px;
    color: #222222;
    text-decoration: none;
}

.news-list time {
    font-weight: bold;
    white-space: nowrap;
}

.news-text {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.arrow {
    font-size: 20px;
}

.news-img {
    /* max-width: 1440px; */
    height: 383px;
    margin: 0 auto;
    overflow: hidden;
}

.news-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}


/* .fv-news-bg { 
    background: url("./img/bg.webp") center / cover no-repeat;
    min-height: 400px
}*/

.fv-news-bg {
    background: url("./img/bg.webp") center center / cover no-repeat;
}

.fv,
.news-section {
    background: transparent;
}

/* --------------------------------------------------------------------------
  company
   -------------------------------------------------------------------------- */
.company {
    background: linear-gradient(rgb(0 0 0), rgb(0 0 0 / 69%)), url(./img/bg2.webp) center / cover no-repeat;
    color: #fff;
    position: relative;
    overflow: hidden;
    padding: 120px 0px 130px 0px;
}

.company-inner {
    max-width: 1100px;
    margin: 0 auto;
    text-align: center;
    position: relative;
    z-index: 2;
}

/* 背景英字 */
.bg {
    position: absolute;
    top: -300px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 220px;
    font-weight: 600;
    /* letter-spacing: -0.03em; */
    color: rgb(255 255 255 / 16%);
    white-space: nowrap;
    z-index: 1;
    pointer-events: none;


}

.company-title {
    font-size: 32px;
    font-weight: 700;
    line-height: 1.6;
    margin-bottom: 24px;
    color: #ffffff;
}

.company-line {
    width: 120px;
    height: 3px;
    background: #1e90ff;
    margin: 0 auto 32px;
}

/* 背景英字 */
.bg2 {
    position: absolute;
    top: -70px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 220px;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: rgb(255 255 255 / 11%);
    white-space: nowrap;
    z-index: 1;
    pointer-events: none;


}

.company-title2 {
    font-size: 36px;
    font-weight: 700;
    line-height: 1.6;
    margin-bottom: 24px;
}

.company-text {
    font-size: 16px;
    font-weight: bold;
    line-height: 2;
    opacity: .9;
    margin-bottom: 40px;
}

.company-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 18px 48px;
    border: 1px solid #fff;
    color: #fff;
    text-decoration: none;
    font-weight: 600;
    letter-spacing: .1em;
    transition: .3s;
    width: 396px;
    height: 66px;
    font-size: 20px;
    font-weight: bold;
}

.company-btn:hover {
    background: #fff;
    color: #222222;
}

.company-btn .arrow {
    font-size: 18px;
    transform: translateY(1px);
}

/* --------------------------------------------------------------------------
  product
   -------------------------------------------------------------------------- */

.product {
    background: #fff;
    padding: 120px 0 120px;
    color: #222222;
}

.product-inner {
    max-width: 1012px;
    margin: 0 auto;
    padding: 0 20px;
    text-align: center;
}

.product-sub {
    font-size: 14px;
    /* letter-spacing: .12em; */
    margin-bottom: 12px;
    font-weight: bold;
}

.product-title {
    font-size: 80px;
    font-weight: 700;
    margin-bottom: 32px;
}

.product-lead {
    font-size: 16px;
    line-height: 2;
    max-width: 582px;
    margin: 0 auto 100px;

}

.product-row {
    display: flex;
    align-items: flex-start;
    gap: 48px;
    margin-bottom: 56px;
}

.product-row.reverse {
    flex-direction: row-reverse;
}

.product-row {
    justify-content: center;
}

.product-img {
    width: 486px;
    aspect-ratio: 486 / 300;
    /* 高さ固定と同義 */
    overflow: hidden;
    flex-shrink: 0;
}

.product-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    /* ← ここが超重要 */
    display: block;
}

.product-text {
    flex: 1;
    text-align: left;
}

.product-text h3 {
    font-size: 32px;
    margin-bottom: 20px;
}

.product-text p {
    font-size: 16px;
    line-height: 2;
    margin-bottom: 32px;
}

.product-btn {
    display: inline-flex;
    align-items: center;
    /* gap: 12px; */
    background: #0b4ea8;
    color: #fff;
    padding: 13px 40px;
    font-size: 16px;
    font-weight: bold;
    text-decoration: none;
    transition: .3s;
    width: 200px;
    height: 48px;
}


.product-btn:hover {
    opacity: .8;
}


/* 技術開発 */
.development {
    background-color: #222222;
    /* ポリゴン背景画像がある場合はここに追加 */
    padding: 100px 0;
    color: #fff;
    text-align: center;
    overflow: hidden;
}

.dev-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* 背景文字重なりタイトル */
.dev-title-wrap {
    position: relative;
    display: inline-block;
    margin-bottom: 20px;
}

.dev-bg-text {
    font-size: 120px;
    font-weight: 900;
    color: rgba(255, 255, 255, 0.05);
    /* かなり薄く */
    letter-spacing: 0.1em;
    line-height: 1;
}

.dev-main-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 28px;
    white-space: nowrap;
    margin: 0;
    letter-spacing: 0.2em;
}


.dev-lead {
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 60px;
}

/* カードレイアウト */
.dev-cards {
    display: flex;
    justify-content: center;
    gap: 0;
    /* ぴったりくっつける */
    margin-bottom: 80px;
    max-width: 990px;
    margin: 0 auto;
}

.dev-card {
    position: relative;
    width: 50%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    display: block;
    text-decoration: none;
    color: #fff;
    max-width: 990px;
    border: 1px solid #9FB1C1;
}

.card-img-wrap {
    width: 100%;
    height: 100%;
    transition: transform 0.6s ease;

}

a.dev-card:nth-child(1),
a.dev-card:nth-child(2),
a.dev-card:nth-child(3) {
    height: 300px;
}

.card-img-wrap {
    position: relative;
    overflow: hidden;
}

.card-img-wrap::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0);
    transition: background 0.4s ease;
}

.dev-card:hover .card-img-wrap::after {
    background: rgba(255, 255, 255, 0.25);
}

.dev-card:hover {
    opacity: 1;
}

@media (max-width: 768px) {

    .dev-card:hover .card-img-wrap {
        transform: none;
    }

}

.dev-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* border: 1px solid #ffffff; */
}

/* 青い半透明ラベル */
.card-label {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: rgba(0, 102, 173, 0.7);
    /* 透過した青 */
    padding: 20px 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    font-size: 13px;
    font-weight: bold;
    height: 80px;
}

.dev-footer {
    padding-top: 40px;
    /* border-top: 1px solid #333; */
}

.footer-title {
    font-size: 28px;
    margin-bottom: 40px;
    text-align: center;
    padding-top: 56px;
}

.dev-footer {
    background: #fff;
    color: #222222;
    padding: 60px 20px;
    margin-top: -20px;
    /* カードとの隙間調整 */
}

.footer-btns {
    display: flex;
    justify-content: center;
    gap: 20px;
    height: 66px;
}

.btn-blue {
    background-color: #1e639a;
    color: #fff;
    text-decoration: none;
    padding: 15px 60px;
    width: 300px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: bold;
    transition: opacity 0.3s;
}

.btn-blue:hover {
    opacity: 0.8;
}

/* =============================================
   TECHNOLOGY SECTION - 最終完全安定版
   ============================================= */
/* 背景英字 */
.bg2 {
    position: absolute;
    top: -120px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 140px;
    font-weight: 600;
    /* letter-spacing: -0.03em; */
    color: rgb(255 255 255 / 16%);
    white-space: nowrap;
    z-index: 1;
    pointer-events: none;
}

.technology-lead {
    color: #fff;
    text-align: center;
    position: relative;
    z-index: 2;
    line-height: 2;
    padding-bottom: 40px;
    font-size: 16px;
    font-weight: bold;
}


.technology-section {
    position: relative;
    background: #fff;
    overflow: hidden;
    padding: 80px 0;
}

.technology-section::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 680px;
    background: #0d1b3d;
    z-index: 1;
    background: linear-gradient(rgb(0 0 0), rgb(0 0 0 / 22%)), url(./img/bg2.webp) center / cover no-repeat;

}


.container {
    position: relative;
    z-index: 5;
    max-width: 1100px;
    margin: 0 auto;
}

.bg-text {
    position: absolute;
    top: 30px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 130px;
    font-weight: 900;
    color: rgba(255, 255, 255, 0.05);
    z-index: 1;
    pointer-events: none;
}

/* .company-title, 
.product-lead {
    color: #fff;
    text-align: center;
    position: relative;
    z-index: 2;
}*/

/* ===== GRID ===== */
.product-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.grid-2 {
    grid-template-columns: repeat(2, 1fr);
}

/* ===== CARD ===== */
.product-card {
    position: relative;
    display: block;
    text-decoration: none;
    overflow: hidden;
    background: #000;
}

/* ===== IMAGE ===== */
.product-card img {
    width: 100%;
    height: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    display: block;
}



/* ===== WHITE ZONE ===== */
.middle-lead {
    text-align: center;
    /* padding: 56px 0 40px; */
    position: relative;
    z-index: 10;
    font-size: 16px;
    line-height: 2;
    padding: 40px 16px 24px;
    font-weight: bold;
}



.dev-grid-5 {
    max-width: 992px;
    margin: 0 auto 80px;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0;
}

.dev-grid-5 .dev-card:nth-child(-n+3) {
    grid-column: span 2;
}

.dev-grid-5 .dev-card:nth-child(n+4) {
    grid-column: span 3;
}

/* ===== 5枚グリッド専用 ===== */
.dev-grid-5 {
    max-width: 992px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0;
    /* border: 1px solid #ffffff; */
}

.dev-grid-5 .dev-card {
    width: 100%;
    max-width: none;
}

.dev-grid-5 .dev-card:nth-child(-n+3) {
    grid-column: span 2;
    border: 1px solid #9FB1C1;
}

.dev-grid-5 .dev-card:nth-child(n+4) {
    grid-column: span 3;
    border: 1px solid #9FB1C1;
}

.technology-section--development::before {
    height: 450px;

}


/* --------------------------------------------------------------------------
  message
   -------------------------------------------------------------------------- */
.message-section {
    width: 100%;
}

.message-bg {
    background: url("./img/message-img.webp") center / cover no-repeat;
    padding: 160px 0;
}

.message-box {
    width: 636px;
    margin: 0 auto;
    background: #333;
    color: #fff;
    text-align: center;
    padding: 60px 40px;
}

.message-sub {
    font-size: 18px;
    letter-spacing: 0.1em;
    margin-bottom: 10px;
    color: #ABABAB;
    font-weight: bold;
}

.message-box h2 {
    font-size: 80px;
    /* letter-spacing: 0.05em; */
    margin-bottom: 30px;
}

.message-btn {
    display: inline-block;
    border: 1px solid #fff;
    padding: 12px 120px;
    color: #fff;
    text-decoration: none;
    /* font-size: 14px; */
}

/* --------------------------------------------------------------------------
  GUIDE
   -------------------------------------------------------------------------- */
.guide-section {
    padding: 120px 0;
}

.guide-inner {
    width: 990px;
    margin: 0 auto;
}

.guide-sub {
    text-align: center;
    font-size: 14px;
    letter-spacing: 0.2em;
    margin-bottom: 8px;
    font-weight: bold;
}

.guide-title {
    text-align: center;
    font-size: 80px;
    /* letter-spacing: 0.1em; */
    margin-bottom: 80px;
}

.guide-main {
    display: flex;
    justify-content: space-between;
    gap: 60px;
    margin-bottom: 80px;
}

.guide-info {
    width: 360px;
}

.office-title {
    font-size: 32px;
    margin-bottom: 24px;
}

.office-title {
    position: relative;
    padding-left: 16px;
}

.office-title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 6px;
    height: 1.5em;
    background-color: #222222;
}

.guide-info dl dt {
    font-weight: bold;
    margin-top: 20px;
    margin-bottom: 4px;
    font-size: 15px;
}

.guide-info dl dd {
    margin-left: 0;
    line-height: 1.8;
    font-size: 15px;
}


.guide-map {
    width: 100%;
    max-width: 560px;
    /* PC時の最大幅 */
    margin: 0 auto;
}

.guide-map iframe {
    display: block;
    width: 100%;
    height: 360px;
    border: 0;
}

.other-office .office-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px 20px;
    margin-top: 32px;
    list-style: none;
}

.office-list li a {
    display: block;
    background: #0b4ea8;
    color: #fff;
    text-align: center;
    padding: 14px 10px;
    font-size: 15px;
    font-weight: bold;
    text-decoration: none;
    width: 240px;
}


/* --------------------------------------------------------------------------
recruit
   -------------------------------------------------------------------------- */
.recruit-section {
    width: 100%;
}

.recruit-section {
    background: linear-gradient(135deg, #eef5f8 0%, #ffffff 60%);
    overflow: hidden;
}

.recruit-title {
    font-size: 40px;
}

.recruit-inner {
    max-width: 990px;
    margin: 0 auto;
    display: flex;
    align-items: stretch;
    /* ← 高さを揃える */
    position: relative;
    min-height: 320px;
    padding-bottom: 35px;
}

.recruit-text {
    width: 420px;
    padding: 60px 0;
    z-index: 2;
}

.recruit-text p {
    margin-bottom: 56px;
    line-height: 2;
    padding-top: 20px;
    font-size: 18px;
    width: 468px;
}


.recruit-image {
    position: absolute;
    right: -200px;
    top: 0;
    bottom: -23px;
    display: flex;
    align-items: center;
}

.recruit-image img {
    height: 495px;
    width: auto;
    display: block;
}


.recruit-bottom {
    /* background: url("./img/eruboshi.webp") center / cover no-repeat; */
    padding: 100px 0;
    position: relative;
}

.recruit-bottom-inner {
    width: 662px;
    margin: 0 auto;
    text-align: center;
    position: relative;
}

.recruit-bottom-inner::before,
.recruit-bottom-inner::after {
    content: "";
    position: absolute;
    top: 0;
    width: 260px;
    height: 100%;
    /* background: url("./img/woman1.jpg") center/cover no-repeat; */
    opacity: 0.15;
}

.recruit-bottom-inner::after {
    right: 0;
    /* background-image: url("./img/woman2.jpg"); */
}

.recruit-bottom-inner::before {
    left: 0;
}

.recruit-bottom h3 {
    font-size: 32px;
    line-height: 1.6;
    margin-bottom: 24px;
}

.recruit-bottom p {
    line-height: 1.8;
    font-size: 16px;
    /* max-width: 580px; */
}

.recruit-btn {
    display: inline-flex;
    align-items: center;
    /* gap: 12px; */
    background: #09508D;
    color: #ffffff;
    padding: 16px;
    font-size: 18px;
    font-weight: 600;
    text-decoration: none;
    transition: .3s;
    width: 300px;
    height: 60px;
}

/* --------------------------------------------------------------------------
eruboshi
   -------------------------------------------------------------------------- */
.eruboshi {
    margin-top: 40px;
}

.eruboshi img {
    width: 127px;
    margin: 0 auto;
}


/* --------------------------------------------------------------------------
フッター
   -------------------------------------------------------------------------- */
.site-footer {
    /* width: 990px; */
    margin: 0 auto;
    background: #fff;
    padding: 50px 0 40px;
    color: #222222;
    box-shadow: 0 0px 19px rgb(0 0 0 / 14%);
}

.footer-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}

.footer-logo img {
    height: 40px;
    margin-bottom: 50px;
}

.footer-nav {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 40px;
    margin-bottom: 60px;
}

.footer-col h4 {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 14px;
}

.footer-col h4 a {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 14px;
}

.footer-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-col li {
    margin-bottom: 10px;
}

.footer-col a {
    font-size: 13px;
    color: #222222;
    text-decoration: none;
    line-height: 1.6;
}

.footer-col a:hover {
    text-decoration: underline;
}

.copyright {
    text-align: center;
    font-size: 12px;
    color: #666;
}

.guide-map iframe {
    width: 100%;
    max-width: 100%;
    aspect-ratio: 619 / 328;
    border: 0;
    display: block;
    padding-top: 30px;
}


/* --------------------------------------------------------------------------
   スマホ対応
   -------------------------------------------------------------------------- */
/* --------------------------------------------------------------------------
   スマホ対応
   -------------------------------------------------------------------------- */

/* PC用（768px以上など） */
@media screen and (max-width: 768px) {
    .pc-only {
        display: none;

    }

    main {
        padding-top: 35px;
    }
}


/* --------------------------------------------------------------------------
   FV SP対応
   -------------------------------------------------------------------------- */
@media screen and (max-width: 767px) {


    hr {
        width: 90%;
        margin: 30px auto;
    }

    .fv {
        padding: 0;
        background: #0d1b3d;
        overflow: hidden;
        background: transparent;
    }

    .fv-inner {
        position: relative;
        display: block;
        width: 100%;
        height: 100svh;
        margin: 0 auto;
    }

    /* 全体共通の絶対配置設定 */
    .fv-left,
    .fv-right,
    .fv-ja,
    .left-img,
    .left-en,
    .main-img {
        position: absolute;
    }

    .fv-right {
        top: 0;
        right: 0;
        width: 70%;
        /* 右側7割を占める */
        height: 50%;
        /* 上半分 */
    }

    .main-img {
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        object-fit: cover;
        object-position: center;
    }

    .fv-ja {
        top: 107%;
        left: 6%;
        transform: translate(-50%, -50%);
        width: 90%;
        z-index: 100;
        right: auto;
        bottom: auto;
        text-align: center;
    }

    .fv-ja img {
        width: 100%;
        height: auto;
        filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.8));
    }

    .left-img.top {
        top: 35%;
        left: 0;
        width: 45%;
        height: 30%;
        object-fit: cover;
        margin: 0;
        z-index: 5;
    }

    .left-img.bottom {
        bottom: 13%;
        right: 0;
        width: 55%;
        height: 20%;
        object-fit: cover;
        margin: 0;
        z-index: 5;
    }

    .left-en {
        bottom: 4%;
        left: 2%;
        width: 80%;
        height: auto;
        margin: 0;
        opacity: 0.8;
        z-index: 20;
        pointer-events: none;
    }

    .fv-left {
        width: 100%;
        height: 100%;
        position: static;
    }
}


/* --------------------------------------------------------------------------
   NEWS SP対応
   -------------------------------------------------------------------------- */
@media screen and (max-width: 768px) {

    .news-section {
        padding-top: 40px;
    }

    .news-inner {
        padding: 0 16px 80px;
    }

    .news-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
        margin-bottom: 24px;
    }

    .news-title .news-ja {
        font-size: 12px;
    }

    .news-title h2 {
        font-size: 32px;
    }

    .news-btn {
        align-self: flex-start;
        padding: 10px 16px;
        font-size: 16px;
    }


    .news-list a {
        padding: 14px 16px;
        gap: 12px;
    }

    .news-list time {
        font-size: 12px;
    }

    .news-text {
        font-size: 16px;
    }

    .arrow {
        font-size: 16px;
    }

    .news-img {
        height: 200px;
        margin: 0;
    }

    .news-img img {
        width: 100%;
        /* height: auto; */
        object-fit: cover;
        display: block;
    }
}

/* --------------------------------------------------------------------------
   company SP対応
   -------------------------------------------------------------------------- */
@media screen and (max-width: 768px) {

    .company {
        padding: 80px 16px;
    }

    .company-inner {
        max-width: 100%;
        padding: 0;
    }

    /* 背景英字 */
    .bg {
        top: -96px;
        font-size: 80px;
    }

    .company-title {
        font-size: 22px;
        line-height: 1.5;
        margin-bottom: 16px;
    }

    .company-text {
        font-size: 16px;
        line-height: 1.8;
        margin-bottom: 32px;
        text-align: justify;
    }

    .company-btn {
        width: 100%;
        max-width: 320px;
        height: 56px;
        font-size: 16px;
        padding: 0;
    }

    .company-btn .arrow {
        font-size: 16px;
    }
}

/* --------------------------------------------------------------------------
   product SP対応
   -------------------------------------------------------------------------- */
@media screen and (max-width: 768px) {

    .product {
        padding: 80px 0 60px;
    }

    .product-inner {
        padding: 0 16px;
    }

    .product-sub {
        font-size: 12px;
        margin-bottom: 8px;
    }

    .product-title {
        font-size: 36px;
        margin-bottom: 20px;
    }

    .product-lead {
        font-size: 16px;
        line-height: 1.8;
        margin-bottom: 48px;
        text-align: justify;
    }

    .product-row {
        flex-direction: column;
        gap: 20px;
        margin-bottom: 48px;
    }

    .product-row.reverse {
        flex-direction: column;
    }

    .product-img {
        width: 100%;
        aspect-ratio: 16 / 10;
    }

    .product-text {
        text-align: left;
    }

    .product-text h3 {
        font-size: 22px;
        margin-bottom: 12px;
    }

    .product-text p {
        font-size: 16px;
        line-height: 1.8;
        margin-bottom: 20px;
    }

    .product-btn {
        width: 100%;
        max-width: 100%;
        height: 44px;
        font-size: 16px;
        justify-content: center;
    }
}

/* =============================================
   TECHNOLOGY / DEVELOPMENT スマホ対応
   ============================================= */
@media screen and (max-width: 768px) {

    /* 背景英字 */
    .bg2 {
        top: 0px;
        font-size: 48px;
    }

    .technology-section {
        padding: 60px 0;
    }

    .technology-section::before {
        height: 469px;
    }

    .technology-section--development::before {
        height: 412px;
    }

    .bg-text {
        font-size: 64px;
        top: 20px;
    }

    .company-title {
        font-size: 22px;
    }

    .technology-lead {
        font-size: 16px;
        line-height: 1.8;
        padding: 0 16px 32px;
        text-align: justify;
    }

    /* ===== 5枚カードグリッド ===== */
    .dev-grid-5 {
        grid-template-columns: 1fr;
        max-width: 100%;
        box-shadow: none;
        row-gap: 16px;
        padding: 0 16px;
    }

    .dev-grid-5 .dev-card {
        grid-column: span 1 !important;
        aspect-ratio: 16 / 10;
    }

    .middle-lead {
        text-align: justify;
    }

    /* ===== 下の2枚カード ===== */
    .dev-cards {
        flex-direction: column;
        max-width: 100%;
        box-shadow: none;
        gap: 16px;
        padding: 0 16px;
    }

    .dev-card {
        width: 100%;
        aspect-ratio: 16 / 10;
        /* padding: 12px; */
    }

    .card-label {
        padding: 14px 20px;
        font-size: 14px;
    }


    /* ===== フッターCTA ===== */
    .footer-title {
        font-size: 20px;
        padding-top: 40px;
    }

    .footer-btns {
        flex-direction: column;
        gap: 16px;
        height: auto;
    }

    .btn-blue {
        width: 100%;
        max-width: 100%;
        margin: 0 auto;
        padding: 14px 24px;
        font-size: 14px;
    }

    a.dev-card:nth-child(1),
    a.dev-card:nth-child(2),
    a.dev-card:nth-child(3) {
        height: auto;
    }

}


/* --------------------------------------------------------------------------
   message SP対応
   -------------------------------------------------------------------------- */
@media screen and (max-width: 768px) {

    .message-bg {
        padding: 100px 16px;
    }

    .message-box {
        width: 100%;
        max-width: 320px;
        padding: 40px 0;
    }

    .message-sub {
        font-size: 12px;
        margin-bottom: 6px;
    }

    .message-box h2 {
        font-size: 36px;
        margin-bottom: 20px;
    }

    .message-box .company-btn {
        width: 100%;
        max-width: 240px;
        height: 44px;
        font-size: 16px;
    }
}


/* --------------------------------------------------------------------------
   GUIDE SP対応
   -------------------------------------------------------------------------- */
@media screen and (max-width: 768px) {

    .guide-section {
        padding: 80px 0;
    }

    .guide-inner {
        width: 100%;
        padding: 0 16px;
    }

    .guide-sub {
        font-size: 12px;
        margin-bottom: 6px;
    }

    .guide-title {
        font-size: 36px;
        margin-bottom: 40px;
    }


    .guide-main {
        flex-direction: column;
        gap: 32px;
        margin-bottom: 56px;
    }

    .guide-info {
        width: 100%;
    }

    .office-title {
        font-size: 22px;
        margin-bottom: 16px;
    }

    .guide-info dl dt {
        font-size: 13px;
        margin-top: 16px;
    }

    .guide-info dl dd {
        font-size: 16px;
        line-height: 1.7;
    }

    .guide-map {
        width: 100%;
    }


    .other-office .office-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
        margin-top: 24px;
    }

    .office-list li a {
        width: 100%;
        font-size: 11px;
        padding: 12px 8px;
    }
}

/* --------------------------------------------------------------------------
   recruit SP対応
   -------------------------------------------------------------------------- */
@media screen and (max-width: 768px) {

    .recruit-inner {
        flex-direction: column;
        padding: 40px 16px 60px;
        min-height: auto;
    }

    .recruit-text {
        width: 100%;
        padding: 0;
        text-align: center;
    }

    .recruit-title {
        font-size: 28px;
    }

    .recruit-text p {
        width: 100%;
        font-size: 16px;
        line-height: 1.8;
        margin-bottom: 32px;
        padding-top: 30px;
        text-align: justify;
    }

    .recruit-btn {
        width: 100%;
        max-width: 100%;
        height: 48px;
        font-size: 16px;
        justify-content: center;
    }

    .recruit-image {
        position: static;
        margin-top: 32px;
        justify-content: center;
    }

    .recruit-image img {
        width: 100%;
        max-width: 320px;
        height: auto;
    }
}

/* --------------------------------------------------------------------------
   eruboshi SP対応
   -------------------------------------------------------------------------- */
@media screen and (max-width: 768px) {

    .recruit-bottom {
        padding: 60px 16px;
        background-position: 80% center;
    }

    .recruit-bottom-inner {
        width: 100%;
    }

    .recruit-bottom h3 {
        font-size: 22px;
        line-height: 1.5;
        margin-bottom: 16px;
    }

    .recruit-bottom p {
        font-size: 16px;
        line-height: 1.8;
        text-align: justify;
    }

    .eruboshi {
        margin-top: 24px;
    }

    .eruboshi img {
        width: 90px;
    }
}

/* --------------------------------------------------------------------------
   footer SP対応
   -------------------------------------------------------------------------- */
@media screen and (max-width: 768px) {

    .site-footer {
        width: 100%;
        padding: 60px 0 32px;
    }

    .footer-inner {
        padding: 0 16px;
    }

    .footer-logo {
        text-align: center;
    }

    .footer-logo img {
        height: 32px;
        margin-bottom: 32px;
    }

    .footer-nav {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px 16px;
        margin-bottom: 40px;
    }

    .footer-col h4 {
        font-size: 15px;
        margin-bottom: 10px;
    }

    .footer-col h4 a {
        font-size: 15px;
        margin-bottom: 10px;
    }

    .footer-col a {
        font-size: 12px;
        line-height: 1.6;
    }

    .footer-col li {
        margin-bottom: 8px;
    }

    .copyright {
        font-size: 11px;
    }
}


@media screen and (max-width: 768px) {

    .product-row,
    .product-row.reverse {
        display: flex !important;
        flex-direction: column !important;
        align-items: center;
    }

    .product-img,
    .product-text {
        width: 100% !important;
        max-width: none !important;
    }
}


/* スマホでの不要な改行を抑制（任意） */
@media (max-width: 480px) {
    /*.recruit-bottom-inner br {
        display: none;

    }*/

    .recruit-bottom-inner h3 br {
        display: block;
    }
}


/* WPの微修正 */
.other-office .office-list {
    display: grid;
    /* grid-template-columns: repeat(4, minmax(0, 1fr)); */
    gap: 12px;
    padding: 0;
    margin: 32px 0 0;
    list-style: none;
    box-sizing: border-box;
}

.other-office .office-list li {
    box-sizing: border-box;
}

.other-office .office-list li a {
    display: block;
    /* padding: 12px 14px; */
    text-decoration: none;
    white-space: normal;
    box-sizing: border-box;
    width: 100%;
}

.guide-section,
.recruit-bottom {
    background-color: #fff;
    color: #222222;
}


/* --------------------------------------------------------------------------
  header
   -------------------------------------------------------------------------- */
.header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 80px;
    padding: 0 34px;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 10000;
    background: #fff;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.header-logo {
    width: 325px;
    height: auto;
    display: block;
}

/* =====================
   PC Navigation (769px以上)
===================== */
@media (min-width: 769px) {

    .nav-sp,
    .hamburger {
        display: none !important;
    }

    .pc-nav__list {
        display: flex !important;
        align-items: center;
        list-style: none;
    }

    .pc-nav__list>li {
        position: relative;
    }

    .pc-nav__link {
        display: flex;
        align-items: center;
        justify-content: center;
        /* height: 80px; */
        padding: 0 18px;
        font-size: 16px;
        font-weight: 600;
        color: #000;
        text-decoration: none;
        border-left: 1px solid #ddd;
    }

    .pc-nav__list>li:first-child .pc-nav__link {
        border-left: none;
    }

    /* PC版：矢印アイコン（下向き） */
    .has-sub>.pc-nav__link::after {
        content: '';
        width: 6px;
        height: 6px;
        border-bottom: solid 2px #333;
        border-right: solid 2px #333;
        transform: rotate(45deg);
        margin-left: 10px;
        margin-top: -4px;
        display: inline-block;
        transition: transform 0.3s;
    }

    /* ホバー時に矢印を回転させたい場合は追加 */
    .has-sub:hover>.pc-nav__link::after {
        transform: rotate(-135deg);
        margin-top: 2px;
    }

    /* PC版は浮かせる（absolute） */
    .pc-nav__sub,
    .pc-nav__sub-inner {
        position: absolute;
        top: 100%;
        left: 0;
        background: #fff;
        min-width: 240px;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
        opacity: 0;
        visibility: hidden;
        transform: translateY(12px);
        transition: 0.25s;
        z-index: 200;
        padding: 8px 0;
    }

    .pc-nav__sub-inner {
        top: 0;
        left: 100%;
    }

    /* 長寿化〜だけ真横に子メニュー */
    .nav-item--side {
        position: relative;
    }

    .nav-item--side .pc-nav__sub-inner {
        top: 0;
        left: 100%;
    }


    .has-sub:hover>.pc-nav__sub,
    .pc-nav__sub li:hover>.pc-nav__sub-inner {
        opacity: 1;
        visibility: visible;
        transform: translate(0);
    }

    .pc-nav__sub a {
        display: block;
        padding: 10px 20px;
        color: #333;
        text-decoration: none;
    }

    /* 1層目のメニュー（企業情報など）にマウスを乗せた時 */
    .pc-nav__link:hover {
        background-color: #f5f7fa;
        color: #005bac !important;
    }

    /* ドロップダウン内の項目にマウスを乗せた時 */
    .pc-nav__sub a:hover {
        background-color: #005bac !important;
        color: #fff !important;
    }
}

/* =====================
   SP Navigation (768px以下)
===================== */
@media (max-width: 768px) {
    .nav-pc {
        display: none !important;
    }

    .header {
        padding: 0 15px;
    }

    .hamburger {
        display: block;
        position: fixed;
        top: 16px;
        right: 15px;
        z-index: 2000;
        width: 48px;
        height: 48px;
        border: none;
        background: transparent;
    }

    .hamburger__line {
        position: absolute;
        left: 11px;
        width: 26px;
        height: 2px;
        background-color: #333;
        transition: 0.4s;
    }

    .hamburger__line:nth-of-type(1) {
        top: 14px;
    }

    .hamburger__line:nth-of-type(2) {
        top: 23px;
    }

    .hamburger__line:nth-of-type(3) {
        top: 32px;
    }

    .hamburger.active .hamburger__line:nth-of-type(1) {
        transform: translateY(9px) rotate(-45deg);
    }

    .hamburger.active .hamburger__line:nth-of-type(2) {
        opacity: 0;
    }

    .hamburger.active .hamburger__line:nth-of-type(3) {
        transform: translateY(-9px) rotate(45deg);
    }

    .nav-sp.nav {
        display: block !important;
        position: fixed;
        top: 0;
        left: 0;
        width: 300px;
        height: 100dvh;
        background-color: #28537ee0;
        transform: translateX(-100%);
        transition: transform 0.4s ease;
        z-index: 1500;
        overflow-y: auto;
    }

    .nav-sp.nav.active {
        transform: translateX(0);
    }

    .nav__list {
        margin: 0;
        padding: 100px 0 60px;
        list-style: none;
    }

    /* 被り防止の最重要設定 */
    .nav__item {
        width: 100% !important;
        display: block !important;
        position: relative !important;
        height: auto !important;
    }

    .nav__link,
    .nav__link-btn,
    .nav__sub a {
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        width: 100% !important;
        min-height: 48px;
        padding: 14px 20px;
        color: #fff;
        text-decoration: none;
        background: none;
        border: none;
        font-size: 16px;
        box-sizing: border-box;
    }

    .nav__sub {
        display: block !important;
        max-height: 0;
        overflow: hidden;
        position: static !important;
        width: 100% !important;
        background-color: #2b4a7d;
        transition: max-height 0.35s ease-out;
    }

    /* 開いた時の見切れ防止 ＆ 押し下げ確定 */
    .nav__item.is-open>.nav__sub {
        max-height: 2000px !important;
    }

    /* --- SP階層デザイン ＆ タップ反応 決定版 --- */

    /* 1層目（メイン） */
    .nav__item>.nav__link,
    .nav__item>.nav__link-btn {
        font-size: 17px;
        font-weight: 700;
        background-color: transparent;
    }

    /* 2層目（サブ） */
    .nav__sub>li>.nav__link,
    .nav__sub>li>.nav__link-btn,
    .nav__sub>li>a {
        font-size: 15px;
        font-weight: 600;
        padding-left: 35px;
        background-color: #2b4a7d !important;
    }

    /* 3層目（孫） */
    .nav__sub .nav__sub {
        background-color: #1a325a !important;
    }

    .nav__sub .nav__sub li a,
    .nav__sub .nav__sub li .nav__link-btn {
        font-size: 13px;
        font-weight: 500;
        padding-left: 55px;
        color: #d1d9e6;
    }

    /* --- 全階層共通：タップした時の反応 --- */
    .nav__link:active,
    .nav__link-btn:active,
    .nav__sub a:active,
    .nav__sub .nav__link-btn:active {
        background-color: rgba(255, 255, 255, 0.2) !important;
        transition: background-color 0.1s;
    }

    /* 矢印の基本形（下向き：45度） */
    .nav__item.has-sub>.nav__link-btn::after {
        content: '';
        width: 7px;
        height: 7px;
        border-bottom: solid 2px #fff;
        border-right: solid 2px #fff;
        transform: rotate(45deg) !important;
        margin-left: 10px;
        margin-bottom: 4px;
        display: inline-block;
        transition: transform 0.3s ease;
        flex-shrink: 0;
    }

    /* メニューが開いた時（上向き：-135度） */
    .nav__item.is-open>.nav__link-btn::after {
        transform: rotate(-135deg) !important;
        margin-bottom: -4px;
    }

    /* 1層目・2層目をタップした時 */
    .nav__link:active,
    .nav__link-btn:active,
    .nav__sub a:active {
        background-color: rgba(255, 255, 255, 0.1) !important;
    }

    /* 3層目（孫メニュー）をタップした時：背景が濃いので少し強めに */
    .nav__sub .nav__sub li a:active {
        background-color: rgba(255, 255, 255, 0.2) !important;
    }

    .header-logo {
        width: 280px;
    }
}



/* --------------------------------------------------------------------------
固定ページ
   -------------------------------------------------------------------------- */

body.page:not(.home) .company,
body.blog .company {
    background: linear-gradient(rgb(0 0 0 / 56%), rgb(0 0 0 / 49%)), url(./img/bg2.webp) center / cover no-repeat;
    padding: 100px 0px 50px 0px;
}

.breadcrumb {
    padding: 10px 20px;
    font-size: 14px;
    white-space: nowrap;
    overflow-x: auto;
}

.breadcrumb ul {
    display: flex;
    list-style: none;
    gap: 8px;
    margin: 0;
    padding: 0;
}

.breadcrumb li::after {
    content: "›";
    margin-left: 8px;
    display: inline;
}

.breadcrumb li:last-child::after {
    content: "";
}

.breadcrumb a {
    text-decoration: none;
}

.page-content {
    padding: 30px 80px 20px 80px;

}

.company-inner {
    text-align: center;
}

.company-title {
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #fff;
    gap: 10px;
    font-weight: bold;
}

.title-ja {
    font-size: 28px;
}

.divider {
    width: 450px;
    height: 2px;
    background-color: #fff;
}

.title-en {
    font-size: 18px;
    letter-spacing: 2px;
    font-family: "Roboto Condensed", sans-serif;
}

[id] {
    scroll-margin-top: 85px;
}

@media (max-width: 768px) {

    body.page .company {
        padding: 85px 16px 50px 16px;
    }

    body.page main {
        padding-top: 20px;
    }

    .page-content {
        padding: 30px 15px 100px 15px;

    }

    .divider {
        width: 335px;
    }

    [id] {
        scroll-margin-top: 90px;
    }
}


/* --------------------------------------------------------------------------
会社概要
   -------------------------------------------------------------------------- */
.company-info-container {
    padding-top: 30px;
    background: #fff;
}

.profile-table {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 16px;
}

.profile-row {
    display: flex;
    border-bottom: 1px solid #e5e5e5;
    padding: 28px 0;
}

.profile-label {
    width: 220px;
    font-weight: 700;
    color: #1A63A1;
    letter-spacing: 0.05em;
}

.profile-content {
    flex: 1;
    line-height: 1.9;
    color: #222;
}

@media (max-width: 768px) {

    .profile-row {
        flex-direction: column;
        padding: 20px 0;
    }

    .profile-label {
        width: 100%;
        margin-bottom: 8px;
        font-size: 14px;
    }

    .profile-content {
        font-size: 15px;
    }

}


/* --------------------------------------------------------------------------
  事業所案内
   -------------------------------------------------------------------------- */

.location-nav {
    margin: 0 0 50px;
}

.location-nav ul {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    list-style: none;
    /* padding: 0 100px; */
    margin: 0;
}

.location-nav li {
    width: 100%;
}

.location-nav a {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 64px;
    background: #0b4ea8;
    color: #fff;
    text-decoration: none;
    font-weight: bold;
    font-size: 15px;
    /* border-radius: 4px; */
    text-align: center;
    transition: 0.25s ease;
    box-sizing: border-box;
}

/* .location-nav a:hover { */
/* background: #222; */
/* color: #fff; */
/* } */


@media (max-width: 768px) {

    .location-nav ul {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
        padding: 0;
    }

    .location-nav a {
        height: 56px;
        font-size: 14px;
        padding: 0 8px;
    }

}


.location-card {
    background: #fff;
    padding: 40px;
    margin-bottom: 60px;
    box-shadow: 0 -2px 25px rgb(0 0 0 / 16%);
    border-top: 4px solid #1A63A1;
}

.location-name {
    font-size: 22px;
    font-weight: bold;
    margin-bottom: 25px;
    padding-bottom: 10px;
    border-bottom: 2px solid #eee;
}

.location-flex {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

.location-map {
    width: 45%;
    position: relative;
}

.location-map img {
    width: 100%;
    display: block;
    border-radius: 4px;
    height: 260px;
    object-fit: cover;
}


.map-overlay {
    position: absolute;
    bottom: 12px;
    right: 12px;
    background: rgba(0, 0, 0, 0.7);
    color: #fff;
    font-size: 13px;
    padding: 6px 10px;
    border-radius: 3px;
}


.location-table {
    width: 55%;
}

.location-row {
    display: flex;
    padding: 14px 0;
    border-bottom: 1px solid #eee;
}

.location-label {
    width: 120px;
    font-weight: bold;
    color: #666;
}

.location-content {
    flex: 1;
    line-height: 1.7;
}


@media (max-width: 768px) {

    .location-map,
    .location-table {
        width: 100%;
    }

    .location-row {
        flex-direction: column;
        gap: 5px;
    }

    .location-label {
        width: 100%;
    }

    .location-flex {
        display: flex;
        flex-direction: column;
    }

    .location-card {
        padding: 25px;
    }
}


/* --------------------------------------------------------------------------
  詳細ページの親ページ
   -------------------------------------------------------------------------- */

.tp-category {
    display: flex;
    gap: 30px;
    flex-wrap: wrap;
}

.tp-category-item {
    width: calc(50% - 15px);
    display: block;
    overflow: hidden;
}

.tp-category-item img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.4s ease;
}

/* ホバーでちょっと拡大 */
.tp-category-item:hover img {
    transform: scale(1.05);
}


@media (max-width: 768px) {

    .tp-category {
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }

    .tp-category-item {
        width: 100%;
    }

}

/* --------------------------------------------------------------------------
  詳細ページ tp-専用スタイル
   -------------------------------------------------------------------------- */

.tp-header {
    text-align: left;
    /* margin-bottom: 50px; */
}

/* .tp-main-title {
    font-size: 28px;
    font-weight: bold;
    margin-bottom: 25px;
} */

.tp-intro-text {
    /* max-width: 900px; */
    /* margin: 0 auto; */
    line-height: 1.9;
    font-size: 16px;
}

/* タイトルや文章が無い場合の余白調整 */
.tp-header:empty {
    display: none;
}

.tp-title:empty {
    display: none;
}


.tp-wrapper {
    background: #f5f5f5;
    padding: 80px 0;
}

.tp-container {
    width: 1100px;
    margin: 0 auto;
}


.tp-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: start;
    margin: 20px 0 40px;
}

.tp-btn {
    background: #0b4ea8;
    padding: 10px 50px;
    font-weight: bold;
    text-decoration: none;
    color: #fff;
    transition: 0.3s;
    white-space: nowrap;
}

.tp-btn:hover {
    background: #063a82;
}


.tp-title {
    background: #1f5f9d;
    color: #fff;
    padding: 15px 40px;
    font-size: 22px;
    margin-bottom: 50px;
    letter-spacing: 1px;
}


.tp-flex {
    display: flex;
    gap: 50px;
    align-items: flex-start;
    margin-bottom: 60px;
}

.tp-image {
    width: 35%;
    position: relative;
}

.tp-image img {
    width: 100%;
    display: block;
}

.tp-label {
    position: absolute;
    top: 50%;
    left: 20px;
    transform: translateY(-50%);
    border: 3px solid #fff;
    padding: 20px;
    color: #fff;
    font-weight: bold;
    font-size: 20px;
}

.tp-text {
    width: 58%;
}

.tp-text h4 {
    margin-bottom: 20px;
}

.tp-text p {
    line-height: 1.8;
}


.tp-gallery {
    display: flex;
    gap: 30px;
    margin-top: 50px;
    flex-wrap: wrap;
}

.tp-gallery-nowrap-pc {
    flex-wrap: nowrap;
    /* PCだけ横一列 */
}

.tp-gallery-item {
    width: 25%;
	max-width: 170px;
    text-align: left;
}

.tp-gallery-item img,
.tp-gallery-item video {
    width: 100%;
    height: auto;
    object-fit: cover;
    border: 1px solid #eee;
}

.tp-gallery-item p {
    margin-top: 10px;
    font-size: 12px;
    color: #616161;
}

.tp-text .tp-award-label {
    display: inline-block;
    padding: 6px 16px;
    background: linear-gradient(135deg, #063a82, #1774ff);
    color: #ffffff;
    font-weight: bold;
    letter-spacing: 0.08em;
}

/* ===== SP ===== */

@media (max-width: 768px) {

    .tp-container {
        width: 90%;
    }

    .tp-flex {
        flex-direction: column;
        gap: 15px;
    }

    .tp-image,
    .tp-text {
        width: 100%;
    }


    .tp-gallery {
        flex-wrap: wrap;
        gap: 15px;
    }

    .tp-gallery-item {
        width: calc(50% - 8px);
    }

    .tp-gallery-item img,
    .tp-gallery-item video {
        width: 100%;
    }
}

.tp-section {
    border-top: 1px solid #5a6d9d;
}


.tp-table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0 40px;
    font-size: 15px;
    background: #fff;
    border: 1px solid #e0e0e0;
}

.tp-table tr:not(:last-child) {
    border-bottom: 1px solid #eaeaea;
}

.tp-table th,
.tp-table td {
    padding: 10px 18px;
    text-align: left;
    vertical-align: top;
}

.tp-table th {
    width: 32%;
    font-weight: 600;
    background: #f7f9fc;
    border-right: 1px solid #e0e0e0;
    white-space: nowrap;
}

.tp-table td {
    line-height: 1.7;
}

.tp-text h3 {
    color: #1e639a;
}

.tp-text h4 {
    margin-top: 40px;
    margin-bottom: 10px;
    color: #1e639a;
}

.tp-intro-text a,
.tp-text a {
    position: relative;
    color: #1e639a;
    text-decoration: none;
}

.tp-intro-text a::after,
.tp-text a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 0;
    height: 2px;
    background: #1e639a;
    transition: width 0.3s ease;
}

.tp-intro-text a:hover::after,
.tp-text a:hover::after {
    width: 100%;
}

@media (max-width: 768px) {

    .tp-table {
        font-size: 14px;
    }

    .tp-table th,
    .tp-table td {
        display: block;
        width: 100%;
        border-right: none;
    }

    .tp-table th {
        background: #f1f3f7;
        border-bottom: none;
    }



    .tp-table tr {
        border-bottom: 1px solid #ddd;
        margin-bottom: 12px;
    }
}

/* =====================================
   ・交互レイアウト
   ・見出しを線強調型に変更
   ・画像をカード化
   ・テキストに縦ライン装飾
===================================== */

/* ---- セクション余白を強化 ---- */
.tp-section {
    padding: 60px 0;
}


/* ---- 見出しを帯→線強調型へ ---- */
.tp-title {
    background: none;
    color: #1f5f9d;
    font-size: 30px;
    font-weight: 700;
    padding: 0 0 18px;
    margin-bottom: 60px;
    border-bottom: 3px solid #1f5f9d;
    display: inline-block;
}

/* ワンポイントアクセント */
.tp-title::before {
    content: "";
    display: inline-block;
    width: 6px;
    height: 28px;
    background: #0b4ea8;
    margin-right: 14px;
    vertical-align: middle;
}

.tp-image img {
    /* border-radius: 14px; */
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.08);
}

/* ---- テキスト側に縦ライン ---- */
.tp-text {
    border-left: 10px solid #e6ecf4;
    padding-left: 30px;
}

/* 交互時は右側にライン */
.tp-section:nth-of-type(even) .tp-text {
    border-left: none;
    border-right: 10px solid #e6ecf4;
    padding-left: 0;
    padding-right: 30px;
}

.tp-gallery-item img,
.tp-gallery-item video {
    border-radius: 10px;
    transition: transform 0.3s ease;
}

.tp-gallery-item:hover img,
.tp-gallery-item:hover video {
    transform: scale(1.05);
}

/* ===== PCだけ交互にする ===== */
@media (min-width: 769px) {
    .tp-section:nth-of-type(even) .tp-flex {
        flex-direction: row-reverse;
    }
}

/* ===== SPは必ず縦並び＆順番固定 ===== */
@media (max-width: 768px) {
    .tp-flex {
        flex-direction: column !important;
    }

    .tp-section:nth-of-type(even) .tp-flex {
        flex-direction: column !important;
    }
}


.tp-image {
    position: relative;
    overflow: visible;
    display: inline-block;
}

.tp-image img {
    display: block;
    width: 100%;
    position: relative;
    z-index: 2;
}

.tp-image::after {
    content: "";
    position: absolute;
    top: 15px;
    left: 15px;
    width: 100%;
    height: 100%;
    background: #1e639a;
    z-index: 1;
}

.tp-image-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 3;
    background: rgb(255 255 255 / 61%);
    /* backdrop-filter: blur(8px); */
    padding: 26px 34px;
    margin: 0;
    text-align: center;
    color: #222222;
    font-size: 23px;
    letter-spacing: 0.05em;
    white-space: nowrap;
    display: inline-block;
}

.tp-main-title {
    line-height: 1.6;
    color: #1e639a;
}

@media (max-width: 768px) {

    .tp-image {
        width: 90%;
        margin: 0 auto;
    }

    .tp-image::after {
        top: 10px;
        left: 10px;
    }

    .tp-title {
        line-height: 1.3;
    }

    .tp-text {
        border-left: none;
        border-right: none !important;
        padding-left: 0;
    }

    .tp-image-title {
        font-size: 20px;
        padding: 24px 20px;
    }

    .tp-section {
        padding: 30px 0 10px 0;
    }

    .tp-section:nth-of-type(even) .tp-text {
        padding-right: 0;
    }

    /* スマホ時はボタンなし */
    .tp-btn,
    .tp-arrow {
        display: none;
    }

}

.tp-buttons {
    display: flex;
    align-items: center;
    gap: 10px;
}

.tp-arrow {
    color: #222222;
    font-size: 12px;
}


/* --------------------------------------------------------------------------
詳細ページの画像拡大
   -------------------------------------------------------------------------- */
.tp-gallery-item img {
    cursor: zoom-in;
    transition: opacity 0.2s ease;
}

/* 拡大時 */
.tp-gallery-item img.zoomed {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10001;
    cursor: zoom-out;
    max-width: 90vw;
    max-height: 90vh;
    width: auto;
    height: auto;
    opacity: 1;
}

/* 背景 */
.zoom-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.85);
    z-index: 10000;
}


/* --------------------------------------------------------------------------
ボタンの矢印部分
   -------------------------------------------------------------------------- */
.btn-arrow {
    position: relative;
    padding-right: 2.5em;
}

/* 矢印 */
.btn-arrow::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 1.8em;
    transform: translateY(-50%) scaleX(1);
    transform-origin: left;
    width: 2em;
    height: 0.5em;
    background-color: currentColor;
    clip-path: polygon(0 100%,
            100% 100%,
            70% 40%,
            70% 90%,
            0% 90%);
    transition: transform 0.3s ease;
}

/* ホバーで伸びる */
.btn-arrow:hover::after {
    transform: translateY(-50%) scaleX(1.4);
}


.card-label {
    text-align: center;
}

.card-label span {
    display: inline-flex;
    align-items: center;
    gap: 0.6em;
    font-size: 18px;
}

.card-label span::after {
    content: "";
    width: 1.8em;
    height: 0.5em;
    background-color: currentColor;
    clip-path: polygon(0 100%,
            100% 100%,
            70% 40%,
            70% 90%,
            0% 90%);
    transform-origin: left;
    transition: transform 0.3s ease;
}

.dev-card:hover .card-label span::after {
    transform: scaleX(1.3);
}

.tp-category-item {
    position: relative;
    overflow: hidden;
}

.tp-category-item img {
    width: 100%;
    display: block;
}


/* ===== 共通（まずは完全中央） ===== */
.tp-category-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 310px;
    max-width: 85%;
    min-height: 140px;
    padding: 24px 20px;
    box-sizing: border-box;
    background: rgb(255 255 255 / 71%);
    /* backdrop-filter: blur(3px); */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

@media (min-width: 769px) {
    .tp-category-text {
        transform: translate(-75%, -50%);
    }
}

/* 日本語（長くても崩れない） */
.tp-category-text .ja {
    margin: 0;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.4;
    word-break: break-word;
    letter-spacing: 0.8px;
}

.tp-category-text .line {
    width: 1px;
    height: 28px;
    background: #000;
    margin: 14px 0;
}

.tp-category-text .en {
    margin: 0;
    /* font-size: 13px; */
    letter-spacing: 2px;
    font-size: clamp(10px, 1.2vw, 13px);
    white-space: nowrap;
}

@media (max-width: 768px) {
    .tp-category-text {
        width: 85%;
        min-height: 110px;
        padding: 16px 14px;
    }

    .tp-category-text .line {
        height: 20px;
        margin: 10px 0;
    }

    .tp-category-text .ja {
        font-size: 18px;
    }

    .tp-category-text .en {
        font-size: 12px;
    }
}

/* --------------------------------------------------------------------------
最新情報
   -------------------------------------------------------------------------- */

.news-page-list {
    border-top: 1px solid #ddd;
    max-width: 900px;
    margin: 0 auto;
}

.news-item {
    border-bottom: 1px solid #ddd;
}

.news-item a {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 18px 0;
    text-decoration: none;
    color: #222;
    transition: opacity 0.3s ease;
}

.news-item a:hover {
    opacity: 0.8;
}

.news-date {
    background: #1e639a;
    color: #fff;
    padding: 6px 12px;
    font-size: 14px;
    font-family: "Roboto Condensed", sans-serif;
    white-space: nowrap;
    width: 110px;
    text-align: center;
}

.news-title {
    flex: 1;
    font-size: 16px;
}


.news-item a:hover .news-title {
    text-decoration: underline;
}

@media (max-width: 768px) {

    .news-item a {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .news-date {
        width: auto;
    }

}

/* ページネーション */
.pagination {
    margin-top: 50px;
}

.pagination .nav-links {
    display: flex;
    justify-content: center;
    gap: 10px;
}

.pagination .page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 1px solid #ccc;
    color: #333;
    text-decoration: none;
    transition: 0.3s;
}

.pagination .page-numbers:hover {
    background: #000;
    color: #fff;
    border-color: #000;
}

.pagination .current {
    background: #000;
    color: #fff;
    border-color: #000;
}


/* --------------------------------------------------------------------------
最新情報詳細（single.php)
   -------------------------------------------------------------------------- */

.single-news {
    padding: 40px 20px 80px;
    font-size: 16px;
    line-height: 1.9;
}

.news-single-container {
    max-width: 990px;
    margin: 0 auto;
}

.news-single-date {
    font-size: 14px;
    color: #777;
    margin-bottom: 10px;
}

.news-single-title {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.5;
    margin-bottom: 30px;
    border-left: 6px solid #0b4ea8;
    padding-left: 16px;
}

.news-single-content p {
    margin-bottom: 1.6em;
}

.news-single-content img {
    width: 50%;
    height: auto;
    margin: 30px 0;
    border-radius: 6px;
    display: block;
}

.news-single-content .aligncenter {
    margin-left: auto;
    margin-right: auto;
}


.news-single-pagination {
    display: flex;
    justify-content: space-between;
    margin-top: 60px;
    padding-top: 30px;
    border-top: 1px solid #eee;
}

.news-single-pagination a {
    text-decoration: none;
    color: #333;
    font-size: 14px;
}

.news-single-back {
    margin-top: 40px;
    text-align: center;
}

.news-single-back a {
    display: inline-block;
    padding: 10px 28px;
    border: 1px solid #333;
    text-decoration: none;
    color: #333;
    transition: .3s;
}

.news-single-back a:hover {
    background: #333;
    color: #fff;
}

.news-single-article {
    background: #fff;
    padding: 20px 40px;
    box-shadow: 0 -2px 25px rgb(0 0 0 / 16%);
    margin-top: 20px;
    border-top: 4px solid #1A63A1;
}

.single-post main {
    padding-top: 75px;
}

.news-single-content a {
    color: #2a6db0;
    text-decoration: underline;
    transition: 0.2s;
}

.news-single-content a:hover {
    opacity: 0.7;
}

@media screen and (max-width:768px) {

    .single-news {
        padding: 30px 15px 60px;
    }

    .news-single-title {
        font-size: 22px;
    }

    .news-single-content h2 {
        font-size: 20px;
    }

    .news-single-content img {
        width: 100%;
    }

    .news-single-article {
        padding: 20px;
    }

}

/* --------------------------------------------------------------------------
トップメッセージ
   -------------------------------------------------------------------------- */
.top-message {
    padding: 50px 0;
}

.top-message__inner {
    max-width: 1100px;
    margin: auto;
    display: flex;
    align-items: center;
    gap: 80px;
    position: relative;
}

.top-message__accent {
    position: absolute;
    width: 100px;
    height: 100px;
    background: #2c6aa0;
    left: -35px;
    top: 40px;
    z-index: 0;
}

.top-message__image {
    flex: 0 0 380px;
    position: relative;
    z-index: 1;
    aspect-ratio: 4 / 5;
    overflow: hidden;
}

.top-message__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    box-shadow: 0 -2px 25px rgb(0 0 0 / 16%);
}

.top-message__card {
    flex: 1;
    background: white;
    padding: 50px 60px;
    box-shadow: 0 -2px 25px rgb(0 0 0 / 16%);
    position: relative;
    z-index: 2;
}

.top-message__card p {
    line-height: 2;
    margin-bottom: 20px;
}

@media (max-width: 768px) {

    .top-message {
        padding: 70px 20px;
    }

    .top-message__inner {
        flex-direction: column;
        gap: 40px;
    }

    .top-message__accent {
        width: 80px;
        height: 80px;
        left: -20px;
        top: -20px;
    }

    .top-message__image {
        width: 100%;
        flex: none;
    }

    .top-message__image img {
        width: 100%;
    }

    .top-message__card {
        padding: 20px;
    }

    .top-message__card p {
        font-size: 14px;
        line-height: 1.9;
    }

}

/* --------------------------------------------------------------------------
フェードアップ等の動き
   -------------------------------------------------------------------------- */
.fade-up,
.slide-left,
.slide-right {
    opacity: 0;
    transition: all .8s cubic-bezier(.25, .8, .25, 1);
    will-change: transform, opacity;
    backface-visibility: hidden;
}

.fade-up {
    transform: translateY(40px);
}

.slide-left {
    transform: translateX(-40px);
}

.slide-right {
    transform: translateX(40px);
}

.is-show {
    opacity: 1;
    transform: translate(0, 0);
}

.dev-card {
    transition: opacity .8s ease, transform .8s ease;
}

.dev-card:nth-child(1) {
    transition-delay: 0s;
}

.dev-card:nth-child(2) {
    transition-delay: .1s;
}

.dev-card:nth-child(3) {
    transition-delay: .2s;
}

.dev-card:nth-child(4) {
    transition-delay: .3s;
}

.dev-card:nth-child(5) {
    transition-delay: .4s;
}

/* =========================
FV メイン画像
========================= */

.fv-main-anim {
    opacity: 0;
    transform: scale(1.1);
    animation: fvMain 1.6s ease forwards;
}

@keyframes fvMain {
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* =========================
FV 左装飾
========================= */

.fv-left-anim {
    opacity: 0;
    transform: translateX(-40px);
    animation: fvLeft 1s ease forwards;
}

.left-img.top {
    animation-delay: .4s;
}

.left-en {
    animation-delay: .6s;
}

.left-img.bottom {
    animation-delay: .8s;
}

@keyframes fvLeft {
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* =========================
FV キャッチコピー
========================= */

.fv-text-anim {
    opacity: 0;
    transform: translateY(40px);
    animation: fvText 1s ease forwards;
    animation-delay: 1s;
}

@keyframes fvText {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* スマホは全部 fade-up */
@media (max-width:768px) {

    .slide-left,
    .slide-right {
        transform: translateY(40px);
    }

}


/* =========================
画像拡大
========================= */
.zoom-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.8);
    z-index: 10000;
    cursor: zoom-out;
}

.zoomed-image {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: 90vw;
    max-height: 90vh;
    z-index: 10001;
    cursor: pointer;
    animation: zoomInAnim 0.3s ease-out forwards;
}

.image-counter {
    position: fixed;
    bottom: 20px;
    left: 20px;
    color: #fff;
    font-size: 14px;
    z-index: 10002;
    background: rgba(0, 0, 0, 0.5);
    padding: 6px 10px;
    border-radius: 5px;
}

@keyframes zoomInAnim {
    from {
        opacity: 0;
        transform: translate(-50%, -45%) scale(0.9);
    }

    to {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}


/* =========================
えるぼし変更
========================= */

.program-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0px;
    margin-top: 40px;
    max-width: 800px;
    margin: 0 auto;
}

.program-card {
    background: #fff;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.program-card img {
    width: 100%;
    height: auto;
    display: block;
}

.program-card .dot-heading {
    padding: 16px;
    font-size: 1.125rem;
}

.program-card p {
    /*   padding: 0 16px 16px; */
    line-height: 2;
    color: #333;
    text-align: left;
}

.program-card-box {
    padding: 15px;
}

.certification-logo {
    padding: 0 24px;
    display: flex;
    align-items: flex-end;
    height: 140px;
}

.certification-logo img {
    display: block;
    max-width: 120px;
    height: auto;
}

.education {
    padding: 120px 0;
}

@media (max-width: 768px) {
    .program-cards {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .program-card {
        box-shadow: none;
    }

    .education {
        padding: 80px 0;
    }
}


/* 動画の高さ調整 */
.tp-gallery {
    align-items: flex-start;
}

.tp-gallery-video {
    width: auto !important;
    flex: none !important;
}

.tp-gallery-video video {
    height: 150px;
    width: auto;
    display: block;
    object-fit: unset !important;
}

/* PCナビの修正 */
li.has-sub {
    position: relative;
}

.pc-nav__sub-inner {
    position: absolute;
    top: 0px;
    left: 100%;
}

/* NEWS画像横並び */
.news-img-2col {
    display: flex;
    gap: 20px;
    margin: 30px 0;
    align-items: center;
}

.news-img-2col img:first-child {
    width: 50%;
    height: auto;
    margin: 0;
}

.news-img-2col img:last-child {
    width: 100%;
    height: auto;
    margin: 0;
}

.no-radius{
	border-radius:0 !important;	
}

@media screen and (max-width:768px) {
    .news-img-2col {
        flex-direction: column;
    }

    .news-img-2col img:first-child,
    .news-img-2col img:last-child {
        width: 100%;
    }
}

/* --------------------------------------------------------------------------
  大蔵製作所 追加コンポーネント（JSTデザイン踏襲・ohkuraブルー）
   -------------------------------------------------------------------------- */
.page-content-inner {
    max-width: 900px;
    margin: 0 auto;
}

.tp-lead {
    font-size: 16px;
    line-height: 2;
    margin: 0 0 48px;
}

/* 代表メッセージ */
.tp-message {
    max-width: 900px;
    margin: 0 auto;
    line-height: 2;
    text-align: left;
}

.tp-message p {
    margin: 0 0 20px;
}

.tp-message__signature {
    text-align: right;
    font-weight: 700;
    color: #1A63A1;
}

/* 沿革 */
.tp-history {
    max-width: 820px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
    border-top: 1px solid #e5e5e5;
    text-align: left;
}

.tp-history__item {
    display: flex;
    gap: 24px;
    padding: 20px 4px;
    border-bottom: 1px solid #e5e5e5;
}

.tp-history__year {
    flex-shrink: 0;
    width: 90px;
    font-size: 20px;
    font-weight: 700;
    color: #0b4ea8;
}

.tp-history__text {
    line-height: 1.8;
    padding-top: 2px;
}

/* お問い合わせ情報 */
.tp-contact-info {
    text-align: center;
    margin-bottom: 40px;
}

.tp-contact-info__tel {
    font-size: 28px;
    font-weight: 700;
    color: #1A63A1;
    margin: 0 0 6px;
}

.tp-contact-info__hours {
    color: #666;
    margin: 0;
}

/* お問い合わせフォーム */
.tp-form {
    max-width: 760px;
    margin: 0 auto;
    text-align: left;
}

.tp-form__row {
    margin-bottom: 24px;
}

.tp-form__row label {
    display: block;
    font-weight: 700;
    margin-bottom: 8px;
}

.tp-req {
    display: inline-block;
    font-size: 12px;
    font-weight: 400;
    color: #fff;
    background: #c0392b;
    padding: 2px 8px;
    margin-left: 8px;
    border-radius: 2px;
}

.tp-form__row input,
.tp-form__row select,
.tp-form__row textarea {
    width: 100%;
    padding: 14px;
    border: 1px solid #ccc;
    font-family: inherit;
    font-size: 15px;
    background: #fff;
    box-sizing: border-box;
}

.tp-form__row input:focus,
.tp-form__row select:focus,
.tp-form__row textarea:focus {
    outline: 2px solid #0b4ea8;
    border-color: #0b4ea8;
}

.tp-form__submit-wrap {
    text-align: center;
    margin-top: 32px;
}

.tp-form-success {
    max-width: 760px;
    margin: 0 auto;
    background: #eef5f8;
    border: 1px solid #d1d9e6;
    padding: 24px;
    text-align: center;
    line-height: 1.8;
}

.tp-form-errors {
    max-width: 760px;
    margin: 0 auto 24px;
    background: #fdecec;
    border: 1px solid #f0b4b4;
    color: #b32424;
    padding: 16px 20px;
    list-style: none;
}

/* 採用：募集要項カード */
.tp-recruit-img {
    max-width: 900px;
    margin: 0 auto 48px;
}

.tp-recruit-img img {
    width: 100%;
    max-height: 420px;
    object-fit: cover;
}

.tp-job-list {
    max-width: 820px;
    margin: 0 auto 56px;
    padding: 0;
    list-style: none;
    text-align: left;
}

.tp-job-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 20px 28px;
    background: #f5f7fa;
    border-left: 6px solid #0b4ea8;
    margin-bottom: 12px;
}

.tp-job-card__employment {
    display: inline-block;
    font-size: 12px;
    color: #0b4ea8;
    border: 1px solid #0b4ea8;
    padding: 2px 10px;
    margin-bottom: 6px;
}

.tp-job-card__title {
    margin: 0;
    font-size: 18px;
    color: #222;
}

/* 採用：応募フロー */
.tp-flow {
    max-width: 900px;
    margin: 0 auto 56px;
    padding: 0;
    list-style: none;
    display: flex;
    gap: 12px;
}

.tp-flow__step {
    flex: 1;
    text-align: center;
    padding: 28px 12px;
    background: #f5f7fa;
    position: relative;
}

.tp-flow__step:not(:last-child)::after {
    content: "›";
    position: absolute;
    right: -12px;
    top: 50%;
    transform: translateY(-50%);
    color: #0b4ea8;
    font-weight: 700;
    font-size: 20px;
}

.tp-flow__num {
    display: block;
    font-size: 24px;
    color: #0b4ea8;
    margin-bottom: 6px;
}

.tp-flow__label {
    font-weight: 700;
    color: #222;
}

.tp-recruit-cta {
    text-align: center;
    margin-top: 40px;
}

.tp-recruit-cta p {
    margin-bottom: 20px;
}

@media (max-width: 768px) {
    .tp-history__item {
        flex-direction: column;
        gap: 6px;
    }

    .tp-history__year {
        width: auto;
    }

    .tp-job-card {
        flex-direction: column;
        align-items: flex-start;
    }

    .tp-flow {
        flex-direction: column;
    }

    .tp-flow__step:not(:last-child)::after {
        content: "";
    }
}
