@charset "utf-8";

/* =========================================
   1. 基本設定 (Base & Reset)
   ========================================= */
body {
    color: #000;
    font-size: 14px;
    line-height: 1.4;
    font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", Meiryo, メイリオ, Verdana, Arial, sans-serif;
}

a {
    color: #000;
    text-decoration: none;
}

img {
    border: 0;
    max-width: 100%; /* フルードイメージ */
    height: auto;
}

/* float対策 */
.fcl { zoom: 100%; }
.fcl:after {
    content: " ";
    clear: both;
    height: 0;
    display: block;
    visibility: hidden;
}

/* 表示切り替え用 */
.pc_none { display: none !important; }
.sp_none { }
.br_pc { display: none; }

/* 基本レイアウト */
.container {
    margin: 0 auto;
    max-width: 1200px;
}

#main { margin-bottom: 50px; }
.section { margin-bottom: 100px; }
.full { display: block; width: 100%; height: auto; }

/* =========================================
   2. ヘッダー (Header)
   ========================================= */
#header {
    width: 100%;
    height: 80px;
    position: relative;
    z-index: 9999;
}

.header_inner {
    width: 100%;
    margin: 0 auto;
    max-width: 1500px;
}

/* 固定ヘッダー設定 */
.fixbar {
    height: 80px;
    border-bottom: 2px solid #fff;
    background-color: #fff;
    box-shadow: 0px 3px 3px rgba(0,0,0,0.1);
    -webkit-box-shadow: 0px 3px 3px rgba(0,0,0,0.1);
    -moz-box-shadow: 0px 3px 3px rgba(0,0,0,0.1);
}

#header .fixbar { position: absolute; width: 100%; top: 0px; }
#header.fixed .fixbar { position: fixed; top: 0px; }

/* ヘッダー内パーツ */
.logo { float: left; }
.nav_area { float: right; }

/* 電話・問い合わせ(旧) */
.contact_tel {
    float: right;
    font-weight: bold;
    font-size: 230%;
    margin-right: 30px;
    overflow: hidden;
    position: relative;
}

.contact_tel:before {
    content: "";
    display: inline-block;
    width: 27px;
    height: 20px;
    margin-right: 8px;
    background: url(../images/icon_tel.png) no-repeat;
    background-size: contain;
    position: relative;
    bottom: 1px;
}

#icon01_01 {
    color: #d9887a;
    border-bottom: 1px solid #d9887a;
    font-size: 27px;
    font-weight: bold;
    overflow: hidden;
    position: relative;
    margin-bottom: 10px;
}

.text_big { font-weight: bold; font-size: 200%; margin-left: 5px; }

.contact_btn { margin-top: 5px; width: 220px; height: 40px; float: right; }
.contact_btn_dsn {
    background-color: #EC8E25;
    padding: 12px 25px;
    font-weight: bold;
    font-size: 20px;
    text-align: center;
    color: #fff;
    transition: all 0.3s linear;
}
.contact_btn_dsn:hover { background-color: #323333; color: #fff; }
.contact_btn_dsn:before {
    content: "";
    display: inline-block;
    width: 26px;
    height: 20px;
    margin-right: 12px;
    background: url(../images/icon_contact.png) no-repeat;
    background-size: contain;
    position: relative;
    bottom: -4px;
}

/* グローバルナビゲーション */
#gnav { height: 20px; margin-top: 30px; z-index: 10; }
#gnav ul { display: flex; align-items: center; list-style: none; padding: 0; margin: 0; }
#gnav li { margin-right: 30px; }
#gnav li a { text-decoration: none; color: #000; font-weight: bold; }

/* ナビ内SNS・ボタン */
#gnav li.nav-sns:first-of-type { margin-left: auto; }
.nav-sns img { width: 32px; height: auto; display: block; }

.nav-contact { margin-right: 0 !important; }
.nav-contact a {
    display: flex;
    align-items: center;
    background-color: #004494;
    color: #ffffff !important;
    padding: 0 40px;
    font-size: 1em;
    transition: background-color 0.3s;
}
.nav-contact a:hover { background-color: #003370; }
.nav-contact a::before { content: '✉'; margin-right: 10px; font-size: 2em; }

/* =========================================
   3. メインコンテンツ (Main Content)
   ========================================= */

/* ビジュアル (Slider) */
#visual { overflow: hidden; position: relative; width: 100%; }
.visual_inner {
    position: relative;
    left: 50%;
    width: 4500px;
    margin-left: -2250px;
    background: url(../images/back01.jpg);
    background-size: contain;
}
.visual_inner li { width: 1500px; }
#slideFilterL, #slideFilterR {
    position: absolute;
    top: 0;
    width: 1500px;
    height: 600px;
    opacity: 0.8;
    filter: alpha(opacity=80);
    -ms-filter: "alpha( opacity=80 )";
    background: #fff;
}
#slideFilterL { left: 0; }
#slideFilterR { right: 0; }
#visual .bx-controls { display: none; }

/* 共通タイトルバー */
.title_bar { font-size: 200%; color: #000; font-weight: bold; margin: 0 auto 30px; text-align: center; }
.title_bar span { font-size: 50%; display: inline-block; margin-bottom: 20px; color: #004097; }
.title_bar::after {
    content: "";
    display: block;
    width: 340px;
    height: 3px;
    margin: 12px auto 0;
    background: linear-gradient(to right, rgba(242, 209, 99, 0), #004097 50%, rgba(242, 209, 99, 0));
}

/* カルーセル */
.carousel_box { padding: 20px 0; background-color: #fff; width: 470px !important; }
.carousel_box img { width: 420px; margin: 0 auto; }
.carousel_title { font-size: 130%; font-weight: bold; text-align: center; margin: 10px 0; padding: 0 20px; }
.carousel_text { font-size: 90%; text-align: center; padding: 0 20px; }

/* 事業内容 (Business) */
.business { background-color: #e9f1fc; padding: 120px 0; margin-bottom: -50px; }
.business_wrap { display: flex; align-items: flex-start; gap: 0; position: relative; max-width: 1000px; margin: 120px auto 0; }

.business_img { flex: 0 0 50%; position: relative; z-index: 2; transform: translateY(-30px); margin-right: -60px; }
.business_txt { flex: 0 0 56%; position: relative; z-index: 1; background: #fff; padding: 40px 40px 40px 60px; height: 300px; }

.business_title { font-size: 180%; color: #000; font-weight: bold; margin: 0 0 20px; text-align: left; line-height: 1.4; }
.business_title span { font-size: 60%; color: #000; font-weight: bold; margin: 0 0 20px; text-align: left; line-height: 1.4; }
.business_txt p { margin-bottom: 1em; line-height: 2em; }
.dots { color: #004097 !important; vertical-align: middle; margin-right: 6px; }

/* 反転パターン */
.rsc_reverse { display: flex; flex-direction: row-reverse; }
.business_img_revers { margin-left: -30px !important; margin-right: 0 !important; }
.business_txt_revers { background: #fff; padding: 40px 60px 40px 40px !important; height: 300px; }

/* ボタン */
.sns_btn {
    display: block; width: fit-content; margin: 60px auto 0; background-color: #004494;
    padding: 12px 25px; font-weight: bold; font-size: 20px; text-align: center; color: #fff;
    text-decoration: none; transition: all 0.3s linear;
}
.sns_btn:hover { background-color: #003370; color: #fff; }
.sns_btn:visited { color: #fff; }

/* 会社情報 (Company) */
.company { padding: 120px 0; }
.company-info-table { width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 16px; border-top: 1px solid #ddd; }
.company-info-table th, .company-info-table td { padding: 15px; border-bottom: 1px solid #ddd; line-height: 1.6; }
.company-info-table th { width: 25%; background-color: #f9f9f9; text-align: left; font-weight: bold; color: #333; vertical-align: top; }

.client-list { display: flex; flex-wrap: wrap; gap: 8px 15px; }
.client-list span::after { content: " /"; color: #ccc; margin-left: 10px; }
.client-list span:last-child::after { content: ""; }

/* プロフィール */
.profile-section { padding: 60px 20px; background-color: #fff; }
.profile-container { max-width: 900px; margin: 0 auto; display: flex; align-items: center; gap: 40px; }
.profile-image { flex: 1; max-width: 350px; }
.profile-image img { width: 100%; height: auto; border-radius: 4px; box-shadow: 10px 10px 0px #004494; }
.profile-text { flex: 1.5; }
.subtitle { color: #e67e22; font-weight: bold; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 5px; }
.name { font-size: 32px; margin-bottom: 20px; color: #333; border-bottom: 2px solid #eee; padding-bottom: 10px; }
.name span { font-size: 16px; color: #888; margin-left: 15px; font-weight: normal; }
.biography p { line-height: 1.8; margin-bottom: 15px; color: #444; text-align: justify; }

/* マップ */
.map_area { margin: 30px auto; width: 1200px; }
#map { width: 1200px; height: 500px; margin: 0 auto; }

/* お知らせ・採用 */
.news-recruit { margin: 40px 0; padding: 25px; border: 1px solid #e0e0e0; display: flex; align-items: flex-start; background-color: #fafafa; }
.news-label { background: #00469b; color: #fff; padding: 4px 12px; font-size: 14px; font-weight: bold; margin-right: 20px; flex-shrink: 0; }
.news-content { flex-grow: 1; }
.recruit-title { font-weight: bold; font-size: 18px; margin-bottom: 10px; color: #333; }
.recruit-text { font-size: 15px; line-height: 1.6; color: #666; }
.recruit-text a { color: #00469b; text-decoration: underline; font-weight: bold; }
.recruit-text a:hover { text-decoration: none; }

/* 問い合わせフォーム */
#contact { padding: 120px 0 200px; margin-bottom: -100px; }
.form_inner { max-width: 700px; margin: 0 auto; }
.form_btn_dsn {
    background-color: #004097; transition: all 0.3s linear; color: #fff;
    width: 240px; height: 60px; margin-top: 40px; font-weight: bold;
}
.form_btn_dsn:hover { background-color: #003370; color: #fff; }

/* ページトップへ */
.page_top { display: none; position: fixed; bottom: 30px; right: 15px; }
.page_top a {
    display: block; background-color: #888; text-align: center; color: #fff;
    font-size: 20px; text-decoration: none; padding: 7px 13px; border-radius: 5px;
}
.page_top a:hover { filter: alpha(opacity=50); -moz-opacity: 0.5; opacity: 0.5; }

/* =========================================
   4. フッター (Footer)
   ========================================= */
.footer_inner { width: 1200px; margin: 0 auto; }

/* フッター上部 */
.footer_top { background-color: #464744; padding: 30px 0; color: #fff; }
.footer_nav ul { text-align: center; }
.footer_nav li { display: inline; border-right: 1px solid #fff; padding: 0 30px; font-size: 90%; }
.footer_nav li:first-child { border-left: 1px solid #fff; }
.footer_nav li a { color: #fff; }
.footer_nav li a:hover { text-decoration: underline; }

.footer_logo { text-align: center; margin-bottom: 20px; }
.footer_logo p { text-align: center; font-size: 90%; }

/* SNSアイコン共通設定 */
.social-links { display: flex; align-items: center; gap: 16px; justify-content: center; margin-bottom: 20px; }
.sns-container .social-links { justify-content: left; }
.social-links a img { width: 30px; height: auto; transition: 0.3s; }
.social-links a:hover img { opacity: 0.7; }
.footer_nav .social-links a img { filter: brightness(0) invert(1); }

/* フッター最下部 */
.footer_bottom { background-color: #000; }
.footer_bottom p { width: 1200px; margin: 0 auto; text-align: center; padding: 30px 0; font-size: 90%; color: #fff; }