@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;
}

/* 表示切り替え・汎用クラス */
.sp_none { display: none; }
.max_w { max-width: 100%; }

/* 基本レイアウト */
.container {
    margin: 0 auto;
    width: 85%;
}
.container:after {
    content: "";
    display: block;
    clear: both;
}

#main { margin-bottom: 20px; }
.section { margin-bottom: 30px; }
.full { margin-left: -15px; margin-right: -15px; }

/* =========================================
   2. ヘッダー & ハンバーガーメニュー (Header & Nav)
   ========================================= */
#header {
    height: 45px;
    margin-top: 0;
    margin-bottom: 10px;
}

.logo img {
    max-width: 140px;
    display: block;
}

/* PCナビ非表示 */
#gnav { display: none; }

/* スマホメニュー全体 */
#rwdMenuWrap {
    width: 100%;
    top: 0;
    right: 0;
    z-index: 9999;
    position: fixed;
}

/* 三本線ボタンエリア */
#rwdMenuWrap #switchBtnArea {
    width: 100%;
    height: 56px;
    position: relative;
}

#rwdMenuWrap #switchBtnArea #switchBtn {
    top: 10px;
    right: 10px;
    width: 40px;
    height: 40px;
    display: block;
    background: #fff;
    position: absolute;
    border-radius: 5px;
}

/* 三本線アニメーション */
#rwdMenuWrap #switchBtnArea #switchBtn span {
    left: 20%;
    width: 60%;
    height: 4px;
    display: block;
    position: absolute;
    background-color: #323333;
    border-radius: 5px;
    transition: all 0.2s linear;
}

#rwdMenuWrap #switchBtnArea #switchBtn span:nth-of-type(1) { top: 10px; transform: rotate(0); }
#rwdMenuWrap #switchBtnArea #switchBtn span:nth-of-type(2) { top: 18px; transform: scale(1); }
#rwdMenuWrap #switchBtnArea #switchBtn span:nth-of-type(3) { bottom: 10px; transform: rotate(0); }

/* ボタンが閉じている時（X印） */
#rwdMenuWrap #switchBtnArea #switchBtn.btnClose span:nth-of-type(1) { top: 18px; transform: rotate(-45deg); }
#rwdMenuWrap #switchBtnArea #switchBtn.btnClose span:nth-of-type(2) { transform: scale(0); }
#rwdMenuWrap #switchBtnArea #switchBtn.btnClose span:nth-of-type(3) { bottom: 18px; transform: rotate(45deg); }

/* 開閉メニューリスト */
#rwdMenuWrap ul { width: 100%; display: none; }
#rwdMenuWrap ul li { width: 100%; border-bottom: #aaa 1px solid; }
#rwdMenuWrap ul li a {
    padding: 15px 20px;
    text-align: left;
    display: block;
    background: #464744;
    position: relative;
    color: #fff;
}

/* メニュー横の矢印印 */
#rwdMenuWrap ul li a:after {
    content: '';
    margin-top: -4px;
    top: 50%;
    right: 15px;
    width: 8px;
    height: 8px;
    position: absolute;
    border-top: 2px solid #b0b0b0;
    border-right: 2px solid #b0b0b0;
    transform: rotate(45deg);
}

/* アンカーリンク調整 */
#nav01, #nav02, #nav03, #nav04, #nav05 {
    margin-top: -61px;
    padding-top: 61px;
}

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

/* ビジュアル (FV) */
#visual { margin-bottom: -30px; }
#visual .bx-controls { display: none; }
.bx-viewport ul { transform: none !important; transition: none !important; }

picture, picture img { display: block; width: 100%; height: auto; }

/* タイトルバー */
.title_bar {
    font-size: 150%;
    color: #000;
    font-weight: bold;
    padding: 8px 0;
    margin-bottom: 20px;
    text-align: center;
}
.title_bar span { font-size: 60%; display: inline-block; margin-bottom: 0.5em; color: #004097; }
.title_bar::after {
    content: "";
    display: block;
    width: 60%;
    height: 3px;
    margin: 4px 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: 85vw !important; }
.carousel_box img { width: 85%; 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: 60px 0; margin-bottom: -50px; }
.business_wrap { display: flex; flex-direction: column; align-items: flex-start; margin: 30px auto 0; }
.business_txt, .business_txt_revers { background: #fff; padding: 20px; }
.business_txt p { margin-bottom: 1em; line-height: 2em; }
.business_title { font-size: 120%; font-weight: bold; margin: 0 0 20px; line-height: 1.4; }
.business_title span { font-size: 60%; }
.dots { color: #004097 !important; vertical-align: middle; margin-right: 6px; }
.rsc_reverse { display: flex; flex-direction: column; }

/* 会社概要 (Company) */
.company { padding: 30px 0 60px; }
.company_title { font-size: 180%; margin-top: 10px; }
.company_table { font-size: 90%; margin: 20px auto; width: 90%; }
.company_table dt { float: left; clear: both; width: 25%; padding: 20px 10px 20px 0; border-bottom: #f2d163 1px solid; }
.company_table dd { width: 80%; margin-left: 25%; padding: 20px 0 20px 10px; border-bottom: #f2d163 1px solid; }

/* 会社写真・マップ */
.company_ph_area img { margin-right: 1%; margin-bottom: 5px; width: 48%; }
.company_ph_area img:nth-child(even) { margin-right: 0; }

.map_area { position: relative; padding-bottom: 70%; padding-top: 30px; height: 0; overflow: hidden; }
#map { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

/* プロフィール (Profile) */
.profile-container { display: block; padding: 0 20px; margin-top: 60px; }
.profile-image { width: 200px; margin: 0 auto 30px; }
.profile-image img { border-top: 4px solid #004494; padding-top: 15px; }
.profile-content { text-align: center; }
.subtitle { color: #e67e22; font-weight: bold; text-transform: uppercase; 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; }
.biography p { line-height: 1.8; margin-bottom: 15px; color: #444; text-align: justify; }

/* テーブル（SP用縦並び） */
.company-info-table th, .company-info-table td { display: block; width: 100% !important; box-sizing: border-box; }
.company-info-table th { background-color: #f0f4f8; padding: 8px 15px; border-bottom: none; }
.company-info-table td { padding: 10px 15px 20px; }

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

/* お知らせ・スタッフ募集 */
.news-recruit { margin: 30px 0; padding: 20px; display: block; border: 1px solid #e0e0e0; background-color: #fafafa; }
.news-label { display: inline-block; background: #00469b; color: #fff; padding: 4px 12px; font-size: 13px; font-weight: bold; margin-bottom: 15px; }
.recruit-title { font-weight: bold; font-size: 16px; margin-bottom: 10px; }
.recruit-text { font-size: 14px; line-height: 1.6; }
.recruit-text a { color: #00469b; text-decoration: underline; }

/* 問い合わせ・ボタン */
#contact { padding: 60px 0 100px; margin-bottom: -20px; }
.form_inner { width: 85%; margin: 0 auto; }
.form_btn_dsn { background-color: #004097; color: #fff; width: 200px; height: 50px; margin-top: 40px; font-weight: bold; }

.sns_btn { display: block; width: 70%; margin: 40px auto 30px; background-color: #004494; padding: 15px 10px; font-weight: bold; font-size: 14px; text-align: center; color: #fff; text-decoration: none; }
.sns_btn:hover { background-color: #003370; }
.sns_btn:visited { color: #fff; }

/* ページトップ */
.page_top { display: none; position: fixed; bottom: 30px; right: 15px; }
.page_top a { display: block; background-color: #888; color: #fff; font-size: 15px; padding: 5px 10px; border-radius: 5px; opacity: 0.5; }

/* =========================================
   4. フッター (Footer)
   ========================================= */
.footer_inner { width: 100%; margin: 0 auto; }
.footer_top { background-color: #464744; padding: 0 0 20px 0; color: #fff; }
.footer_nav li { border-bottom: 1px solid #7f8080; padding: 10px 30px; font-size: 90%; text-align: center; width: 100%; }
.footer_nav li a { color: #fff; display: block; text-align: center; }

.footer_logo { text-align: center; width: 90%; margin: 20px auto 0; padding: 20px 0; }
.footer_logo img { width: 50%; }
.footer_logo p { 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; }
.footer_nav .social-links a img { filter: brightness(0) invert(1); }
.social-links a:hover img { opacity: 0.7; }

.footer_bottom { background-color: #000; }
.footer_bottom p { margin: 0 auto; text-align: center; padding: 30px 0; font-size: 90%; color: #fff; }