/* ------------------------------ 1. リセット(余白・サイズ計算など) ------------------------------ */ .clearfix:after { content:"."; display:block; visibility:hidden; clear:both; height:0.1px; font-size:0.1em; line-height:0; } .clearfix { display:inline-table; zoom:1; } /*Hides from IE-mac \*/ * { margin: 0; padding: 0; box-sizing: border-box; } .clearfix { display:block; } /* End hide from IE-mac */ body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td { margin:0px; padding:0px; } table { border-collapse:collapse; border-spacing:0; } fieldset, img { border:0; } address, caption, cite, code, dfn, em, th, var { font-style:normal; font-weight:normal; } ul { list-style:none; } ol li{ list-style:none; } caption, th { text-align:left; } h1, h2, h3, h4, h5, h6 { font-size:100%; font-weight:normal; } q:before, q:after { content:''; } abbr, acronym { border:0; font-variant:normal; } sup { vertical-align:top; } sub { vertical-align:text-bottom; } input, textarea, select { font-family:inherit; font-size:inherit; font-weight:inherit; } input, textarea, select { *font-size:100%; } legend { color:#000000; } img { vertical-align:bottom; } table caption { font-weight: bold; margin:0 0 5px; } /* iOSでのデフォルトスタイルをリセット */ input[type="submit"], input[type="button"] { border-radius: 0; -webkit-box-sizing: content-box; -webkit-appearance: button; appearance: button; border: none; box-sizing: border-box; cursor: pointer; } input[type="submit"]::-webkit-search-decoration, input[type="button"]::-webkit-search-decoration { display: none; } input[type="submit"]::focus, input[type="button"]::focus { outline-offset: -2px; } i { margin-right: 5px;} /***リセットここまで ===================================================================================================================***/ /* ------------------------------ 2. HTML / BODY 基本設定 ------------------------------ */ html { font-size: 12px; /* remの基準サイズ */ scroll-behavior: smooth; /* スムーズスクロール */ } body { font-family: "Noto Sans JP", "Helvetica Neue", Arial, sans-serif; font-size: 1rem; line-height: 1.8; color: #222; background-color: #fff; -webkit-text-size-adjust: 100%; /* iOS文字拡大防止 */ word-break: break-word; } /* ------------------------------ 3. 共通リンク設定 ------------------------------ */ a { color: #fac60c; text-decoration: none; transition: 0.2s; outline:none; -webkit-transition: 0.3s; -moz-transition: 0.3s; -o-transition: 0.3s; -ms-transition: 0.3s; } a:link { color: #fac60c; text-decoration: none; } a:visited { color: #fac60c; text-decoration: none; } a:hover { color: #fac60c; text-decoration: underline; } a:active { color: #fac60c; text-decoration: none; } a:hover img { opacity:0.7; filter: alpha(opacity=70); -moz-opacity:0.7; } /* CFコンテンツ内 */ .contents-area a:link { text-decoration: underline; } .contents-area a:visited { text-decoration: underline; } .contents-area a:hover { text-decoration: none; } .contents-area a:active { text-decoration: none; } /* ------------------------------ 4. 見出し設定(全体統一) ------------------------------ */ /* 見出し(h1〜h6) */ h1, h2, h3, h4, h5, h6 { font-family: "Playfair Display", "Zen Old Mincho", serif; font-weight: 600; line-height: 1.4; color: #111; margin: 1.6em 1 0.6em; } /* h1:ページタイトル */ h1 { text-align: center; display: inline-block; font-size: 2em; border-bottom: 2px solid #ddd; border-left: none; padding-bottom: 0.4em; padding-left: 0.5em; padding-right: 0.5em; margin: 30px auto 30px; } h2 { position: relative; display: inline-block; /* テキスト幅に合わせる */ color: #000 !important; font-size: 2em; font-weight: 600; text-align: center; margin: 30px auto 30px; } /* h3:小見出し */ h3 { position: left; font-size: 1.8em; font-weight: 500; margin-top: 1.4em; text-align: left; } /* h4:小見出し */ h4 { position: left; font-size: 1.4em; font-weight: 500; margin-top: 1.4em; text-align: left; } /* h5:小見出し */ h5 { position: left; font-size: 1.2em; font-weight: 500; margin-top: 1.4em; text-align: left; } /* ------------------------------ 5. 段落・テキスト ------------------------------ */ /* 段落(p) */ p { text-align: left; font-size: 1em; margin: 1em 0; line-height: 1.9; } /* 強調 */ strong { text-align: left; font-weight: 600; color: #000; } td { text-align: left; vertical-align: top; } /* ------------------------------ 6. リスト ------------------------------ */ /* リスト */ ul, ol { margin: 1em 0 1em 2em; line-height: 1.8; } li { margin-bottom: 0.4em; } /* 引用 */ blockquote { border-left: 4px solid #ccc; margin: 1.5em 0; padding: 0.6em 1em; background: #fafafa; font-style: italic; color: #555; } /* 小要素 */ small { font-size: 0.85em; color: #666; } /* テキスト中央寄せ */ .center { text-align: center; } /* 英字だけ大文字風に */ .en { font-family: "Playfair Display", serif; letter-spacing: 0.05em; text-transform: uppercase; } /* ------------------------------ 7. 画像 ------------------------------ */ img { max-width: 100%; height: auto; vertical-align: bottom; display: block; border: none; } /*** ------------------------------------------------------------------------------ 通常機能パーツ ----------------------------------------------------------------------------- ***/ /*1.見出しの設定 h2 =================================================================================*/ /* ------h2 を確実に中央にするための float 解除 ------ */ .contents-area section { overflow: hidden; /* ★ float の影響を完全に断ち切る */ text-align: center; /* ★ inline-block を中央寄せできるようにする */ } /* ===== h2 本体 ===== */ .contents-area h2 { display: inline-block; /* テキスト幅に合わせつつ中央に置く */ position: relative; /* ::after の絶対配置の基準にする */ margin: 20px auto; /* 中央配置+上下余白 */ color: #000 !important; font-size: 2em; font-weight: 600; padding: 10px 0; text-align: center; } /* ===== 下線(h2幅に合わせて中央で伸びる) ===== */ .contents-area h2::after { content: ""; position: absolute; left: 0; bottom: -8px; width: 100%; height: 3px; background-color: #fac60c; border-radius: 5px; } /*2.中見出しの設定 h3 =================================================================================*/ #cont h3{ text-align: center; } /*3.画像+テキストセットの設定 .set-area =================================================================================*/ /* --- 基本レイアウト --- */ #cont .set-area { max-width: 1200px; width: 90%; /* レスポンシブ用 */ margin: 0 auto 60px; } /* 枠線ありバージョン */ #cont .set-area.border{ margin: 0 0 40px; padding: 0 0 40px; border-bottom: #CCC 1px dotted; } /* 画像を上に重ねるバージョン */ #cont .set-area.over{ position: relative; min-height: 400px; margin-bottom: -40px !important; } /* --- 通常(画像 → テキスト) --- */ #cont .set-area .img{ float:left; /* ★ 通常は左に画像 */ width: 400px; margin: 0; } /* ★★★ 反転(position クラスが付いてる時 → 画像右) ★★★ */ #cont .set-area.position .img{ float:right; } /* 画像が上に出るバージョン */ #cont .set-area.over .img{ position: absolute; top: -40px; left: 0px; } #cont .set-area.over .img img{ width: 600px !important; } /* --- テキスト部分 --- */ /* 通常(画像が左) */ #cont .set-area .text{ margin:0 0 0 420px; /* ★ 左画像分の余白を取る */ } /* ★★★ 反転(画像が右)のときのテキスト位置調整 ★★★ */ #cont .set-area.position .text{ margin:0 420px 0 0 !important; /* ★ 右画像分の余白に変更 */ } /* over時のテキスト */ #cont .set-area.over .text{ position: relative; z-index: 2; background: rgba(255,255,255,.9); padding: 20px; } /* テキスト基本設定 */ #cont .set-area .text p{ font-size: 16px; } #cont .set-area .text p:last-child{ margin: 0; } /* --- 見出し(catch) --- */ #cont .set-area p.catch{ color: #333; font-weight: bold; font-size: 22px; margin: 0 0 15px; } /* 番号付きキャッチ(ex.01 みたいな) */ #cont .set-area p.catch.number{ display: flex; align-items: center; } #cont .set-area p.catch.number span{ font-size: 55px; display: block; line-height: 1.2; } #cont .set-area p.catch.number strong{ margin: 0 0 0 20px; display: block; } /* * スマホレイアウト(768px以下) -----------------------------------------*/ @media screen and (max-width: 768px){ #cont .set-area{ margin: 0 0 30px; } #cont .set-area.over{ min-height: auto; margin-bottom: 0px !important; } #cont .set-area.border{ margin: 0 0 20px; padding: 0 0 20px; } /* 画像は全幅で上に来る */ #cont .set-area .img{ float: none !important; width: 100% !important; margin: 0 auto 1.6em; display: block; text-align: center; } #cont .set-area.over .img{ position: relative; top: 0px; } #cont .set-area.over .img img{ width: 100% !important; } /* テキストも全幅 */ #cont .set-area .text{ float: none; margin: 0 !important; } #cont .set-area .text *:last-child{ margin-bottom: 0; } #cont .set-area .text p{ font-size: 14px; } #cont .set-area p.catch{ font-size: 18px; } #cont .set-area p.catch br{ display: none; } #cont .set-area p.catch.number span{ font-size: 36px; } #cont .set-area p.catch.number strong{ margin: 0 0 0 10px; } } /*4.横並びボックスの設定 .block-area =================================================================================*/ /* 親:横並び(1行)+80%以内で中央寄せ */ #cont .block-area { display: grid; grid-auto-flow: column; /* ★常に横方向へ並べる(1行固定) */ justify-content: center; /* 全体を中央寄せ */ align-items: start; /* 子の縦位置を揃える */ gap: 20px; /* 要素間の間隔 */ max-width: 80%; /* 全体の最大幅 */ margin: 20px auto; /* 上下20px+中央寄せ */ box-sizing: border-box; overflow-x: hidden; /* はみ出し防止 */ } /* 子ブロック */ #cont .block-area .block { background: none; padding: 20px; text-align: center; border-radius: 6px; box-sizing: border-box; } /* 画像 */ #cont .block-area .block img { padding: 10px; max-width: 100%; height: auto; display: block; margin: 0 auto; } /* 見出し(キャッチ) */ #cont .block-area .block .catch { font-size: 1.2em; padding: 5px 0; text-align: center; } /* 説明文 */ #cont .block-area .block p { font-size: 1em; padding: 2px 0; text-align: left; } /*5.表組み(テーブル)の設定 table =================================================================================*/ /* デフォルトテーブル */ #cont table{ width: 100%; border: none; } #cont table th{ background: #eee; border: #CCC 1px solid; padding: 10px; font-weight: bold; } #cont table thead th{ text-align: center; } #cont table td{ border: #CCC 1px solid; padding: 10px; } /* 2列テーブル */ #cont table.table-2cell th{ width: 15%; border: none; border-bottom: #CCC 1px solid; padding: 10px 15px; vertical-align: top; font-weight: bold; background: none; } #cont table.table-2cell td{ border: none; border-bottom: #CCC 1px solid; padding: 10px 15px; vertical-align: top; } @media screen and (max-width: 768px){ #cont table th, #cont table td{ padding: 5px; } #cont table.table-2cell th{ border-top: #CCC 1px solid; list-style: none; width: 100%; display: list-item; border-bottom: none; padding: 10px 0px 0; } #cont table.table-2cell td{ list-style: none; display: list-item; padding: 0 0px 10px; font-size: 12px; border-bottom: none; } } /*6.Google Mapの設定 .acf-map =================================================================================*/ #cont .acf-map { width: 100%; height: 400px; border: #ccc solid 1px; margin: 0 0 5px; } #cont .acf-map + p{ text-align: right; } #cont .acf-map + p a{ color: #0068b7; font-size: 12px; } /* fixes potential theme css conflict */ #cont .acf-map img { max-width: inherit !important; } /*7.質問と回答の設定 .qa-area =================================================================================*/ #cont .qa-area { margin: 0 0 20px; } #cont .qa-area dt{ font-size: 18px; font-weight: bold; color: #0068b7; margin: 0 0 10px; } #cont .qa-area dt:before{ content: "\f0e6"; padding: 0 10px 0 0; font-family: "FontAwesome"; font-size: 22px; } #cont .qa-area dd{ background: #eee; padding: 10px 15px; margin: 0 0 2em; } #cont .qa-area dd p, #cont .qa-area dd ul, #cont .qa-area dd dl{ font-size: 1em; } #cont .qa-area dd *:last-child{ margin-bottom: 0; } /*8. フロー(流れ)エリアの設定 .flow-area =================================================================================*/ #cont .flow-area { } #cont .flow-area .side-arrow { padding: 0 0 0 60px; margin: 0 0 20px 40px; border-left: 5px #EEE solid; position: relative; } #cont .flow-area .side-arrow:before{ content: ""; display: block; position: absolute; left: -20px; bottom: 0; border: rgba(0,0,0,0.00) 20px solid; border-right: #EEE 20px solid; border-bottom: #EEE 20px solid; -moz-transform: rotate(45deg); -webkit-transform: rotate(45deg); -o-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); } #cont .flow-area .flow{ background: #EEE; padding: 30px; position: relative; margin: 0 0 30px; } #cont .flow-area .flow.last{ background: none; border: #0068b7 5px solid; } #cont .flow-area .flow:before{ content: ""; display: block; position: absolute; left: -20px; top: 50%; margin: -10px 0 0; border: rgba(0,0,0,0.00) 20px solid; border-right: #EEE 20px solid; border-bottom: #EEE 20px solid; -moz-transform: rotate(135deg); -webkit-transform: rotate(135deg); -o-transform: rotate(135deg); -ms-transform: rotate(135deg); transform: rotate(135deg); } #cont .flow-area .flow.last:before{ display: none; } #cont .flow-area .flow .img{ float: right; margin: 0; width: 300px; } #cont .flow-area .flow.last .img{ float: none; margin: 0 auto; } #cont .flow-area .flow .text{ margin: 0 340px 0 0; } #cont .flow-area .flow .text *:last-child{ margin-bottom: 0; } #cont .flow-area .side-arrow .flow .catch{ color: #333; margin: 0 0 10px; font-size: 22px; display: -webkit-flex; /* Safari */ display: flex; -webkit-align-items: center; /* 縦方向中央揃え(Safari用) */ align-items: center; /* 縦方向中央揃え */ } #cont .flow-area .flow.last .catch{ color: #333; margin: 0 0 10px; font-size: 22px; text-align: center; } #cont .flow-area .side-arrow .flow .catch:before{ display: block; font-size: 55px; float: left; line-height: 1.2; font-weight: bold; } #cont .flow-area .side-arrow .flow:nth-of-type(1) .catch:before{ content: "01"; } #cont .flow-area .side-arrow .flow:nth-of-type(2) .catch:before{ content: "02"; } #cont .flow-area .side-arrow .flow:nth-of-type(3) .catch:before{ content: "03"; } #cont .flow-area .side-arrow .flow:nth-of-type(4) .catch:before{ content: "04"; } #cont .flow-area .side-arrow .flow:nth-of-type(5) .catch:before{ content: "05"; } #cont .flow-area .side-arrow .flow:nth-of-type(6) .catch:before{ content: "06"; } #cont .flow-area .side-arrow .flow:nth-of-type(7) .catch:before{ content: "07"; } #cont .flow-area .side-arrow .flow:nth-of-type(8) .catch:before{ content: "08"; } #cont .flow-area .side-arrow .flow:nth-of-type(9) .catch:before{ content: "09"; } #cont .flow-area .side-arrow .flow:nth-of-type(10) .catch:before{ content: "10"; } #cont .flow-area .side-arrow .flow .catch strong{ margin: 0 0 0 20px; display: block; } @media screen and (max-width: 768px){ #cont .flow-area .side-arrow { padding: 0 0 0 20px; margin: 0 0 20px 20px; border-left: 3px #EEE solid; } #cont .flow-area .side-arrow:before{ left: -13px; border: rgba(0,0,0,0.00) 10px solid; border-right: #EEE 10px solid; border-bottom: #EEE 10px solid; } #cont .flow-area .flow{ padding: 15px; margin: 0 0 20px; } #cont .flow-area .flow.last{ border: #0068b7 3px solid; } #cont .flow-area .flow:before{ left: -10px; margin: -5px 0 0; border: rgba(0,0,0,0.00) 10px solid; border-right: #EEE 10px solid; border-bottom: #EEE 10px solid; } #cont .flow-area .flow .img{ float: none; margin: 0 0 10px; width: 100%; } #cont .flow-area .flow .text{ margin: 0; } #cont .flow-area .side-arrow .flow .catch{ font-size: 18px; } #cont .flow-area .flow.last .catch{ font-size: 18px; } #cont .flow-area .side-arrow .flow .catch:before{ font-size: 20px; } } /*9.リンクブロックセットの設定 .link-block-area =================================================================================*/ #cont .link-block-area { display: -webkit-flex; /* Safari */ display: flex; -webkit-flex-wrap: wrap; /* Safari */ flex-wrap: wrap; margin: 0 0 20px; } #cont .link-block-area .block{ width: 48%; float: left; margin: 0 4% 20px 0; } #cont .link-block-area .block:nth-of-type(2n){ margin: 0 0 20px; } #cont .link-block-area .block > a { display: block; } #cont .link-block-area .block > a:link { text-decoration: none; color: #333; } #cont .link-block-area .block > a:visited { text-decoration: none; color: #333; } #cont .link-block-area .block > a:hover { text-decoration: none; color: #333; opacity: 0.7; } #cont .link-block-area .block > a:active { text-decoration: none; color: #333; } #cont .link-block-area .block > a.bg-img{ background-size: cover; background-position: center center; position: relative; color: #fff; padding: 25px 25px; height: auto; min-height: 160px; } #cont .link-block-area .block > a.bg-img:link, #cont .link-block-area .block > a.bg-img:visited, #cont .link-block-area .block > a.bg-img:hover, #cont .link-block-area .block > a.bg-img:active, #cont .link-block-area .block > a.bg-img .catch{ color: #fff !important; } #cont .link-block-area .block > a.bg-img:before{ position: absolute; left: 0; top: 0; content: ""; background: rgba(0,0,0,0.40); width: 100%; height: 100%; z-index: 0; } #cont .link-block-area .block .img{ margin: 0; float: left; width: 160px; } #cont .link-block-area .block .text { margin: 0 0 0 160px; padding: 15px; } #cont .link-block-area .block a.bg-img .text { margin: 0; padding: 0; top: 50%; transform: translateY(-50%) ; -webkit- transform: translateY(-50%) ; position: absolute; } #cont .link-block-area .block.no-img .text { margin: 0; } #cont .link-block-area .block.no-img p, #cont .link-block-area .block .text p{ margin: 0; padding: 0; font-size: 14px; } #cont .link-block-area .block .text .catch{ padding: 0 0 10px; font-size: 18px; text-align: center; text-indent: -1.2em; margin: 0 0 0 1.2em; } #cont .link-block-area .block a.bg-img .text .catch{ font-size: 22px; padding: 0; } #cont .link-block-area .block a .catch{ text-align: left !important; } #cont .link-block-area .block a .catch:before{ content: "\f0a9"; padding: 0 5px 0 0; font-family: "FontAwesome"; } #cont .link-block-area .block a:hover { opacity: 0.7; } @media screen and (max-width: 768px){ #cont .link-block-area { display: block; } #cont .link-block-area .block{ width: 100% !important; float: none; margin: 0 0 20px !important; } #cont .link-block-area .block a{ padding: 10px; border: #CCC 1px solid; } #cont .link-block-area .block a.bg-img{ padding: 25px; border: none; } #cont .link-block-area .block .img{ width: 100%; margin: 0; text-align: center; } #cont .link-block-area .block a .img{ width: 100px; height: 100px; float: left; text-align: center; overflow: hidden; padding: 0; margin: 0; } #cont .link-block-area .block a .img img{ max-width: inherit; height: 100% !important; width: auto !important; margin: 0 0 0 -30%; } #cont .link-block-area .block .text{ margin: 0; padding: 0 !important; } #cont .link-block-area .block a .text, #cont .link-block-area .block.bg a .text{ margin: 0 0 0 100px; } #cont .link-block-area .block a.bg-img .text, #cont .link-block-area .block.bg a.bg-img .text{ margin: 0; } #cont .link-block-area .block p{ font-size: 12px; padding: 0; } #cont .link-block-area .block .catch{ padding: 0 ; font-size: 16px; } } /*10.リンクボタンセットの設定 .btn-area =================================================================================*/ #cont .btn-area { margin: 0 0 20px; text-align: center; } #cont .btn-area li{ margin: 0 10px 10px 0; display: inline-block; } #cont .btn-area li:nth-child(4n){ margin: 0 0 10px; } #cont .btn-area li a{ display: inline-block; min-width: 238px; padding: 15px 10px; border-radius: 5px; color: #FFF; text-align: center; font-size: 16px; background: #c60125; border-bottom: #97001c 3px solid; text-decoration: none; } #cont .btn-area li a:before{ content: "\f0a9"; padding: 0 5px 0 0; font-family: "FontAwesome"; } #cont .btn-area li a:hover{ background: #97001c; } @media screen and (max-width: 768px){ #cont .btn-area li{ margin: 0 0 10px !important; display: block; } #cont .btn-area li:last-child{ margin: 0; } #cont .btn-area li a{ display: block; width: 100%; padding: 10px 25px; } } /*11.説明会日程一覧表の設定 .briefing-table =================================================================================*/ #cont .briefing-table table th{ background: none; font-weight: normal; } #cont .briefing-table table tr:first-of-type th:first-of-type{ width: 220px; } #cont .briefing-table table tr:first-of-type th:last-of-type{ width: 160px; } #cont .briefing-table table thead th{ background: #eee; font-weight: bold; } #cont .briefing-table table td:last-of-type a{ display: block; border-radius: 5px; padding: 10px; text-decoration: none; text-align: center; color: #fff; } @media screen and (max-width: 768px){ #cont .briefing-table table tr:first-of-type th:first-of-type{ width: auto; } #cont .briefing-table table tr:first-of-type th:last-of-type{ width: auto; } } /* カード一覧(PC) */ .service-list{ display: flex; flex-wrap: wrap; justify-content: center; /* ★中央寄せ */ gap: 24px; /* カード間の余白 */ max-width: 1400px; /* 必要なら中央寄せ用の最大幅 */ margin: 0 auto; /* コンテナ自体を中央へ */ padding: 0; } .service-list-item{ flex: 0 1 320px; /* 幅の目安。画像比で調整 */ box-sizing: border-box; } .service-list-item a{ display: block; /* クリック範囲をカード全体に */ height: 100%; text-decoration: none; color: inherit; } .service-list-item .img img{ display: block; width: 100%; height: auto; } .service-list-item .tit{ font-weight: 700; text-align: center; margin: 10px 0; } .service-list-item ul{ margin: 0; padding: 0 8px 16px; font-size: 14px; } /* スマホ */ @media (max-width:768px){ .service-list{ display: block; max-width: none; } .service-list-item{ width: 100%; margin: 0 0 16px; } } /***募集要項のテストです。***/ /* 募集要項フィルターまわり */ .filter-group { display: flex; flex-wrap: wrap; gap: 24px; justify-content: flex-start; align-items: flex-end; margin: 20px 0; } .filter-block { display: flex; flex-direction: column; min-width: 220px; } .filter-block label { font-weight: bold; margin-bottom: 6px; font-size: 14px; } .filter-block select { padding: 6px 10px; font-size: 14px; border: 1px solid #ccc; border-radius: 4px; } #requirements-filter button { background: #fac60c; color: #000; border: none; padding: 8px 20px; border-radius: 4px; font-weight: bold; cursor: pointer; transition: background 0.3s ease; } #requirements-filter button:hover { background: #ffdc5f; } /*** ------------------------------------------------------------------------------ !!!共通パーツ!!! ----------------------------------------------------------------------------- ***/ /* トップアンカー・・・長いページをスクロールしたユーザーが、クリック一つでページの一番上(最上部)へ戻れるように設置されたリンクのこと ========================================================================================================================= ***/ #scroll { position:absolute; right:50%; margin:0 -550px 0 0; width:50px; height:50px; bottom:130px; z-index:9999; } #scroll.ptop { position: fixed; right:50%; margin:0 -550px 0 0; bottom:40px; } #scroll .banner{ position: fixed; right: 0; top: 60px; } #scroll li{ display: none; } #scroll .top{ display: block; } #scroll .top a{ display:block; background: #005ca1; width:50px; height:50px; border-radius:50%; position:relative; text-align: center; color: #FFF; font-size: 18px; line-height: 40px; } #scroll .top a:hover{ background: #001b39; } #scroll .top a i{ margin: 0; } @media screen and (max-width: 768px){ #scroll, #scroll.ptop { position:fixed !important; right:0; margin:0; bottom:0; width: 100%; height: auto; z-index: 9997; } #scroll.no-fix { position:relative !important; } #scroll .banner{ display: none; } #scroll ul{ display: -webkit-flex; display: flex; background: #CCC; height: 50px; flex-wrap: nowrap; } #scroll li{ display: block; text-align:center; flex-grow:2; -webkit-flex: 2; flex: 2; } #scroll li.btn{ width: 43%; } #scroll ul.one-btn li.btn{ width: 86%; flex-grow:3; -webkit-flex: 3; flex: 3; } #scroll li.top{ width: 14%; flex-grow:1; -webkit-flex: 1; flex: 1; } #scroll ul.no-btn li.top{ width: 100%; } #scroll li a{ padding:12px 0 11px; height: 50px; background: #c60125; box-sizing:border-box; border-right:1px #FFFFFF solid; display:block; color: #FFF; font-size: 16px; } #scroll li.top a{ background: #EEE; width: 100%; border-radius:0; line-height: 1.6; color: #333; } } /* 共通ヘッダー(黄色帯タイプ・全ページ共通) ========================================================================================================================= ***/ #header { position: relative; top: 0; left: 0; width: 100%; background: #ffffff; border-bottom: 3px solid #e2b100; color: #000; z-index: 200; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1); } /* 内側の並び */ #header .inner { display: flex; justify-content: space-between; align-items: center; max-width: 1200px; margin: 0 auto; padding: 12px 40px; box-sizing: border-box; } /* ロゴ */ #header .logo { margin: 0; padding: 0; border: none; } #header .logo img { max-height: 60px; height: auto; display: block; } /* ===== PC版ではメニュー閉じるボタン完全非表示 ===== */ #menu .menu-btn, nav .menu-btn, nav .menu-btn a { display: none !important; visibility: hidden !important; opacity: 0 !important; background: none !important; color: transparent !important; height: 0 !important; width: 0 !important; padding: 0 !important; margin: 0 !important; border: none !important; } /* ナビ全体 */ #header nav { margin-left: auto; position: relative; top: 0; } /* メニュー */ #header .menu-header-container ul.menu { display: flex; gap: 25px; list-style: none; margin: 0; padding: 0; } #header .menu-header-container ul.menu li { position: relative; flex: 0 0 auto; } #header .menu-header-container ul.menu li a { color: #000; text-decoration: none; font-weight: bold; font-size: 15px; transition: all 0.2s ease; padding: 4px 0; display: block; } #header .menu-header-container ul.menu li a:hover { color: #fac60c; border-bottom: 2px solid #fff; background: none; } /* ========================================================= 第2層メニュー(中央揃え+自然な配置+hover安定) ========================================================= */ #header .menu-header-container ul.menu li { position: relative; padding-bottom: 8px; /* ← hover領域を少し下に伸ばして切れ防止 */ } #header .menu-header-container ul.menu li ul.sub-menu { display: none; position: absolute; top: calc(100% - 25px); /* ← 距離を詰めて隙間をなくす */ left: 50%; /* 親メニューの中央を基準に */ transform: translateX(-50%); /* 中央揃え */ background: #fac60c; border-radius: 4px; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15); min-width: 220px; padding: 6px 0; list-style: none; z-index: 9999; overflow: hidden; white-space: nowrap; transition: opacity 0.15s ease; /* hover切れ時のちらつき防止 */ opacity: 0; pointer-events: none; /* 通常はクリックできない */ } /* hoverで表示(マウス移動で切れないよう、opacityで制御) */ #header .menu-header-container ul.menu > li:hover > ul.sub-menu, #header .menu-header-container ul.menu > li:focus-within > ul.sub-menu { display: block; opacity: 1; pointer-events: auto; } /* サブメニュー内リンク */ #header .menu-header-container ul.menu li ul.sub-menu li a { display: block; color: #000; padding: 8px 14px; /* ← 内側余白を少し広く */ font-weight: 600; text-decoration: none; white-space: nowrap; transition: background 0.2s ease, color 0.2s ease; } #header .menu-header-container ul.menu li ul.sub-menu li a:hover { background: #fff; color: #000; } /* ========================================================= スマホ対応(CSSのみ制御) ========================================================= */ @media screen and (max-width: 768px) { /* 固定ヘッダー */ #header { position: fixed; top: 0; left: 0; width: 100%; background: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1); z-index: 9999; } body { padding-top: 80px; /* ヘッダー高さ分の余白 */ } /* ロゴとメニューを横並びに */ #header .inner { flex-direction: row; justify-content: space-between; align-items: center; padding: 10px 20px; } /* ===== メニュー(右上ボタン) ===== */ #menu { position: relative; margin-left: auto; } #menu .menu-btn { display: block !important; position: relative; background: #fac60c; color: #000; font-weight: bold; padding: 8px 14px; border-radius: 4px; text-decoration: none; font-size: 10px; } #menu .menu-btn:hover { background: #e2b100; color: #fff; } /* ===== ナビ全体 ===== */ #header nav { display: none; position: fixed; top: 65px; left: 0; width: 100%; background: #fff; border-top: 1px solid #eee; box-shadow: 0 4px 10px rgba(0,0,0,0.2); z-index: 9998; overflow-y: auto; max-height: calc(100vh - 65px); } body.menu-open #header nav { display: block; } /* ===== メニューリスト ===== */ #header .menu-header-container ul.menu { display: block; width: 100%; margin: 0; padding: 0; list-style: none; } #header .menu-header-container ul.menu > li { width: 100%; border-bottom: 1px solid #e0e0e0; background: #fff; } #header .menu-header-container ul.menu > li > a { display: block; width: 100%; padding: 12px 20px; color: #000; background: #fff; text-decoration: none; font-weight: bold; font-size: 14px; } #header .menu-header-container ul.menu > li > a:hover { background: #fff6ce; } /* ===== 第2層 ===== */ #header .menu-header-container ul.menu li ul.sub-menu { display: block !important; background: #f3f3f3; border-top: 1px solid #ddd; position: relative; box-shadow: none; margin: 0; padding: 0; } #header .menu-header-container ul.menu li ul.sub-menu li { border-bottom: 1px solid #e0e0e0; } #header .menu-header-container ul.menu li ul.sub-menu li a { display: block; padding: 10px 30px; font-weight: normal; font-size: 13px; background: #f3f3f3; color: #000; text-decoration: none; } #header .menu-header-container ul.menu li ul.sub-menu li a:hover { background: #eaeaea; } /* ===== 閉じるボタン(スマホ時のみ表示) ===== */ nav .menu-btn { display: block !important; position: relative !important; width: 100%; text-align: center; margin: 0; padding: 0; } nav .menu-btn a { display: block; background: #fac60c; color: #000; font-weight: bold; font-size: 14px; text-decoration: none; padding: 14px 0; border-top: 2px solid #e2b100; } nav .menu-btn a:hover { background: #e2b100; color: #fff; } } /*2カラムレイアウト・・・ウェブページを縦に2つの列(カラム)に分けてコンテンツを配置するレイアウト ===================================================================================================*/ #column-2 { display: -webkit-flex; display: flex; justify-content: space-between; width: 1200px; margin: 0 auto; } #column-2 #main{ width: 876px; float: left; } #column-2 #main section .inner{ width: 100%; } #column-2 #sub{ width: 288px; float: right; } @media screen and (max-width: 768px){ #column-2 { display: block; width: 100%; margin: 0 auto; } #column-2 #main{ width:100%; float: none; margin:0 0 40px; } #column-2 #sub { width:100%; float: none; margin:0 0 -60px; } } /*sub ノーマルサイドバー ===================================================================================================*/ #sub .widget-area{ background: #EEE; } #sub .widget-area .widget h2{ color:#FFFFFF; font-weight: bold; padding:6px 10px; letter-spacing:1px; background: #0068b7; margin: 0; font-size: 16px; text-align: left; } #sub .widget-area .widget ul{ border: #CCC 1px solid; border-bottom: none; } #sub .widget-area .widget ul a{ position:relative; display:block; padding:7px 10px 7px 10px; border-bottom:#CCC 1px solid; background: #F3F3F3; color:#333; } #sub .widget-area .widget ul a:hover{ background: #CCC; text-decoration: none; } /*footer ===================================================================================================*/ footer { background: #1F1F1F !important; color: #fff; margin: 60px 0 10px; clear: both; } footer .footer-cont { display: flex; flex-direction: column; align-items: center; /* 横方向の中央寄せ */ text-align: center; /* テキスト中央寄せ */ } footer .inner { margin: 0 auto; padding: 30px 0; } /* =============================== フッターナビ(中央寄せ) =============================== */ footer .footer-nav { float: none; display: flex; justify-content: center; margin: 0 0 20px; } footer .footer-nav ul.menu { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; padding: 0; list-style: none; } footer .footer-nav ul.menu > li { margin: 0; padding: 0; } footer .footer-nav a { color: #fff; font-weight: bold; text-decoration: none; font-size: 16px; transition: color 0.2s ease; } footer .footer-nav a:hover { color: #fac60c; text-decoration: underline; } /* =============================== SNSアイコン =============================== */ .footer-sns { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 20px; margin: 20px 0; background: #1F1F1F; } .footer-sns .sns-link { display: flex; justify-content: center; align-items: center; width: 50px; height: 50px; transition: transform 0.2s ease, opacity 0.2s ease; } .footer-sns .sns-link img { width: 100%; height: 100%; object-fit: contain; } .footer-sns .sns-link:hover { transform: scale(1.1); opacity: 0.85; } .footer-sns .sns-link.x, .footer-sns .sns-link.facebook { width: 55px; height: 55px; } /* =============================== 会社情報 =============================== */ footer .info { text-align: center; margin-top: 20px; } footer .info h5 { margin: 0 0 10px; } footer .info img { max-width: 360px; height: auto; } footer .info p { margin: 0; line-height: 1.8; font-size: 14px; } /* =============================== 拠点リスト =============================== */ footer .footer-base { padding: 20px 0 0; display: flex; flex-wrap: wrap; justify-content: center; border-top: 1px dotted rgba(255, 255, 255, 0.3); } footer .footer-base li { width: 33%; padding: 10px 20px; font-size: 13px; line-height: 1.6; border-right: 1px dotted rgba(255, 255, 255, 0.4); } footer .footer-base li:nth-of-type(3n) { border-right: none; } footer .footer-base li strong { display: block; font-size: 14px; margin-bottom: 4px; color: #fac60c; } /* =============================== コピーライト =============================== */ .copyright { text-align: center; font-size: 12px; padding: 10px; color: #ccc; } /* =============================== スマホ対応 =============================== */ @media screen and (max-width: 768px) { footer { margin: 40px 0 0; } footer .inner { width: auto; padding: 20px 10px; } /* ナビ中央寄せ+縦並び */ footer .footer-nav { justify-content: center; margin-bottom: 15px; } footer .footer-nav ul.menu { flex-direction: column; align-items: center; gap: 8px; } footer .footer-nav a { font-size: 14px; padding: 6px 0; } /* SNS */ .footer-sns { gap: 16px; margin-top: 15px; margin-bottom: 10px; } .footer-sns .sns-link { width: 42px; height: 42px; } .footer-sns .sns-link.x, .footer-sns .sns-link.facebook { width: 46px; height: 46px; } /* 情報 */ footer .info img { max-width: 70%; } footer .info p { font-size: 12px; line-height: 1.6; } /* 拠点リスト */ footer .footer-base { flex-direction: column; align-items: center; padding-top: 15px; } footer .footer-base li { width: 100%; border: none; border-top: 1px dotted rgba(255, 255, 255, 0.3); padding: 12px 0; text-align: center; } footer .footer-base li strong { font-size: 13px; } .copyright { font-size: 11px; padding: 20px 10px 40px; } } /*トピックパス・・・パンくずリスト 例: ホーム>会社概要>営業所一覧 |のようなもの ===================================================================================================*/ #topic-pass { margin: 0 auto 60px; color:#333; padding: 10px 0; } #topic-pass li:first-child:before{ content: "\f0a9"; padding: 0 5px 0 0; font-family: "FontAwesome"; font-size: 11px; } #topic-pass a{ color:#664397; text-decoration: underline; } #topic-pass a:hover{ color:#664397; text-decoration: none; } #topic-pass li{ float:left; } #topic-pass li span{ display:inline-block; padding:0 5px; } @media screen and (max-width: 768px){ #topic-pass { width: auto; margin: 0 10px 30px; } } /*** フリーコンテンツ ----------------------------------- ***/ #cont .free-content img{ max-width: 100%; height: auto; display: block; /* インライン画像の余白を消す */ margin: 0 auto; /* ★左右中央寄せ */ } #cont .free-content iframe{ margin: 0 0 1.6em; } @media screen and (max-width: 768px){ #cont .free-content iframe{ width: 100%; height: auto; } }