@charset "UTF-8";

/* ===== CSSリセット ===== */
* { margin:0; padding:0; border:0; outline:0; vertical-align:baseline; background:transparent; word-wrap:break-word; }
div, ul, section { overflow:hidden; }
ul { list-style:none; }
table { border-collapse:collapse; border-spacing:0; table-layout:fixed; }
form, input, select, textarea { vertical-align:middle; }
summary::-webkit-details-marker { display:none; }

/* ===== タグ定義 ===== */
* { box-sizing:border-box; }
html, body, input { color:#000000; font-size:16px; font-weight:400; line-height:1.6; }
body, textarea, input { font-family:'Noto Sans JP', sans-serif; }
body { width:100%; margin:0 auto; -webkit-text-size-adjust:none; }
a { background:transparent; text-decoration:none; outline:none; -webkit-tap-highlight-color:rgba(0,0,0,0.5); }
a { text-decoration:none; outline:none; color:#000000; }
@media (any-hover:hover) { a:hover { opacity:0.5; } }
h2, h3, h4 { font-weight:400; }
h2 { font-size:2rem;  margin-bottom:2rem; text-align:center; }
h3 { font-size:1.5rem; margin-bottom:1rem; }
h4 { font-size:1.1rem; }
p { margin-bottom:0.5rem; }
p:last-child { margin-bottom:0; }
table { border:1px solid #dddddd; margin-left:auto; margin-right:auto; }
th { padding:5px 25px; vertical-align:middle; border:1px solid #dddddd; white-space:nowrap; background-color:#eeeeee; text-align:right; font-weight:400; }
td { padding:5px 25px; vertical-align:middle; border:1px solid #dddddd; text-align:left; }
section { margin-top:100px; margin-bottom:100px; }
input[type="text"], input[type="password"], textarea { border:1px solid #dddddd; background-color:#ffffff; }
input[type="checkbox"] { border-radius:0; -webkit-appearance:none; -moz-appearance:none; appearance:none; }
input[type="checkbox"] { position:relative; width:24px; height:24px; border:1px solid #dddddd; vertical-align:-8px; }
input[type="checkbox"]:checked:before { position:absolute; top:1px; left:6px; transform:rotate(40deg); width:8px; height:12px; border-right:3px solid #000000; border-bottom:3px solid #000000; content:''; }
textarea { height:10rem; }
img { display:block; max-width:100%; }
br { line-height:1; }
details { transition:.5s; }
summary { cursor:pointer; list-style:none; }
summary::before { content:"＋"; font-weight:700; }
details[open]>summary::before { content:"－"; }

/* ===== ヘッダ・ナビ ===== */
header { height:100px; }
header a { display:block; }
.header_title { column-gap:25px;  display:flex; align-items:center; margin-right:1rem; }
.header_title p span { line-height:1; font-weight:400; }
.header_title_jp { font-size:1.5rem; flex-wrap:wrap; column-gap:0.5rem; row-gap:0.25rem; }
.header_title_en { font-size:1rem; }
nav { background-color:#1560bb; }
.nav_menu ul { height:75px; }
.nav_menu li { display:block; flex:1; }
.nav_menu li a:hover { background-color:#08366f; }
.nav_menu li a, .nav_menu li.nav_select { display:flex; justify-content:center; align-items:center; }
.nav_menu li>a:hover  { opacity:unset; }
.nav_menu li a { height:100%; }
.nav_menu li p { border-bottom:0; color:#ffffff; text-align:center; }
.nav_select { border-bottom:1px solid #ffffff; }

/* ----- スマホメニューボタン ----- */
.sp_menu_button { display:none; width:50px; height:60px; position:relative; flex-shrink:0; }
.sp_menu_button div { height:36px; }
.sp_menu_button span { display:inline-block; transition:all .4s; position:absolute; left:0; width:50px; height:4px; background-color:#1560bb; border-radius:2px; }
.sp_menu_button span:nth-of-type(1) { top:8px; }
.sp_menu_button span:nth-of-type(2) { top:24px; }
.sp_menu_button.nav_active span:nth-of-type(1) { -webkit-transform:translateY(8px) rotate(-45deg); transform:translateY(8px) rotate(-45deg); }
.sp_menu_button.nav_active span:nth-of-type(2) { -webkit-transform:translateY(-8px) rotate(45deg); transform:translateY(-8px) rotate(45deg); }
.sp_menu_button p { font-size:0.85rem; line-height:1; font-weight:700; color:#1560bb; text-align:center; margin-top:5px; }


/* ===== フッタ ===== */
footer { padding:100px 0 150px; background-color:#3a3a3a; }
footer p, footer a { color:#ffffff; }
.footer_name { margin-bottom:2rem; }
.copyright { text-align:center; margin-top:2.5rem; font-size:0.75rem; }

/* ===== ページトップへの戻り ===== */
.go_to_top { display:block; position:fixed; bottom:50px; right:50px; width:60px; height:60px; background-color:#1560bb; color:#ffffff; font-size:36px; font-weight:700; line-height:60px; text-align:center; z-index:10; text-decoration:none; }
@media (any-hover:hover) { .go_to_top:hover { background-color:#08366f; color:#ffffff; cursor:pointer; } }

/* ===== ページ共通 ===== */
/* ----- ブロック系 ----- */
.inner { margin-left:50px; margin-right:50px; }
.bg { padding-top:100px; padding-bottom:100px; }
.bg_yellow { background-color:#fdf4dc; }
.flex_left   { display:flex; }
.flex_center { display:flex; justify-content:center; }
.flex_separate { display:flex; justify-content:space-between; }
.flex_right  { display:flex; justify-content:flex-end; }
.flex_middle { align-items:center; }
.buttons { display:flex; justify-content:center; }
.buttons:not(:first-child) { margin-top:50px; }
.buttons .button:not(:last-child), .buttons input[type="submit"]:not(:last-child) { margin-right:25px; }
.button, a.button, input[type="submit"] { display:block; width:250px; height:50px; line-height:50px; background-color:#1560bb; color:#ffffff; font-weight:700; text-align:center; cursor:pointer; }
@media (any-hover:hover) { .button:hover, a.button:hover, input[type="submit"]:hover { opacity:unset; background-color:#08366f;} }
.fade { opacity:0; }
.slide_in { transition:transform 1.5s; }
.slide_left  { transform:translateX(calc(-40vw - 0%)); }
.slide_right { transform:translateX(calc( 40vw + 0%)); }
.slide_up    { transform:translateY(10vw); }
.slide_finish   { transform:translateX(0) translateY(0); }
img.center { margin-left:auto; margin-right:auto; }
.page_top { position:relative; }
.page_top>div { position:absolute; top:0; left:0; right:0; bottom:0; display:flex; justify-content:start; align-items:center; }
.page_top h1 { color:#ffffff; font-size:2rem; padding-left:5vw; }
.page_top h1 { text-shadow:0 0 0.1rem #000000, 0 0 0.2rem #000000, 0 0 0.4rem #000000, 0 0 0.8rem #000000; }
.border_up { border-top:2px solid #08366f; padding-top:100px; }
.decimal { list-style-type:decimal; list-style-position:inside; }
.decimal li { text-indent:-1em; padding-left:1em; }
.decimal li:not(:last-child) { margin-bottom:1em; }
.message p { border:1px solid #ff0000; padding:1rem 2rem; color:#ff0000; }

/* ----- テキスト系 ----- */
.serif { font-family:"Noto Serif JP", serif; }
.indent { text-indent:1em; }
.left   { text-align:left; }
.center { text-align:center; }
.right  { text-align:right; }
a.outlink::after { content:url('images/common_outlink_black.png'); margin-left:5px; }
.object_fit { display:block; object-fit:cover; width:100%; }
.nobr { white-space:nowrap; display:inline-block; }
.under_construction { margin:100px 0; font-size:48px; text-align:center; }
h2 span.small { font-size:1rem; margin-left:1rem; }
.f_req { color:#ff0000; }

/* ===== ページ別定義 ===== */
/* ----- TOPページ ----- */
.top_mainvisual>div { padding:1vw; }
.top_mainvisual p { color:#ffffff; font-size:2.25rem; font-weight:700; padding-left:5vw; }
.top_mainvisual p { text-shadow:0 0 0.1rem #000000, 0 0 0.2rem #000000, 0 0 0.3rem #000000, 0 0 0.4rem #000000, 0 0 0.8rem #000000; }
.top_lead { margin-top:-15vw; padding-right:50px; }
.top_lead div { padding:50px; width:680px; }
.top_topic h2 { column-gap:2rem; }
.top_report p { width:780px; }

/* ----- プロフィールページ ----- */
.timeline { list-style:none; }
.timeline p { margin-bottom:0; padding-bottom:20px; }
.timeline li:first-child p { line-height:1; }
.timeline>li { overflow:hidden; margin:0; position:relative; }
.timeline-date { width:130px; float:left; text-align:right; padding-right:30px; }
.timeline-content { float:left; border-left:3px #cccccc solid; padding-left:30px; width:calc(100% - 130px); }
.timeline-content:before { content:''; width:16px; height:16px; background:#016c17; position:absolute; left:124px; top:6px; border-radius:100%; }
li:first-child .timeline-content:before { top:0; }
.profile_graybox li { background-color:#eeeeee; padding:1rem 2rem; }
.profile_graybox li:not(:last-child) { margin-bottom:1rem; }
.profile_graybox h3 { font-size:1.1rem; }
.profile_graybox p { margin-left:2rem; }

/* ----- 相談料・顧問契約ページ ----- */
.fee_subtitle { margin-top:2.5rem; }

/* ----- 採用情報ページ ----- */
.recruit_stop { margin:25px 0; text-align:center; color:#ff0000; font-size:125%; }

/* ----- 地図ページ ----- */
.map_add { display:flex; justify-content:center; flex-wrap:wrap; column-gap:1rem; row-gap:0.5rem; margin-bottom:0.5rem; }
.map_google { max-width:1000px; height:450px; margin-left:auto; margin-right:auto; }
.map_original { border:1px solid #dddddd; }

/* ----- トピックスページ ----- */
.topics, .topics tr, .topics th, .topics td { border:0; }
.topics th { text-align:right; background-color:transparent; padding:0 1rem 1rem 0; vertical-align:top; }
.topics tr:last-child th, .topics tr:last-child td { padding-bottom:0; }
.topics td { padding:0 0 1rem 0; }
.topics_rss { margin-top:1rem; }
.topics_rss img { margin-right:0.5rem; display:inline; }

/* ----- 個人情報保護方針ページ ----- */
.privacy { list-style-type:decimal; list-style-position:inside; margin-top:2rem; }
.privacy li { margin-left:20px; text-indent:-20px; }
.privacy li:not(:last-child) { margin-bottom:1rem; }
.privacy ol { list-style-type:none; margin-left:2rem; margin-bottom:1rem; }
.privacy ol li:not(:last-child) { margin-bottom:0.5rem; }
.privacy li div { display:inline-block; }

/* ----- お問い合わせページ ----- */
.inquiry table { margin-top:1rem; }
.inquiry_input, .inquiry_input tr, .inquiry_input th, .inquiry_input td { border:0; }
.inquiry_input th { background-color:transparent; padding-right:1rem; }
.inquiry_input td { padding-left:0; }
.inquiry_input input[type="text"], .inquiry_input textarea { padding:5px; width:450px; }
.inquiry_input label { margin-right:1rem; }
.inquiry_privacy { display:flex; justify-content:center; flex-wrap:wrap; column-gap:2rem; row-gap:1rem; margin-top:1rem; }
.inquiry_privacy input { margin-left:1rem; }
.inquiry_confirm { max-width:780px; }
.inquiry_confirm td { min-width:400px; }


/*■■■■■■■■■■■■■■■■■■■■■■■■■
  タブレット大
 ■■■■■■■■■■■■■■■■■■■■■■■■■*/
@media screen and (max-width:1080px) {

/* ===== ヘッダ・ナビ ===== */
nav ul.inner { margin-left:unset; margin-right:unset; }

/* ===== ページ共通 ===== */
/* ----- ブロック系 ----- */
.inner { width:unset; margin-left:25px; margin-right:25px; }

/* ===== ページ別定義 ===== */
/* ----- TOPページ ----- */
.top_mainvisual>div { padding:0.5vw; }
.top_mainvisual p { font-size:1.8rem; padding-left:2.5vw; }
.top_lead { margin-top:-10vw; padding-right:25px; }
.top_lead div { padding:25px; width:670px; }

/* ----- プロフィールページ ----- */
.profile_graybox li { padding:1rem; }
.profile_graybox p { margin-left:1rem; }
}

/*■■■■■■■■■■■■■■■■■■■■■■■■■
  タブレット小
 ■■■■■■■■■■■■■■■■■■■■■■■■■*/
@media screen and (max-width:800px) {

/* ===== タグ定義 ===== */
h2 { font-size:1.5rem; }
h3 { font-size:1.25rem; }
section { margin-top:50px; margin-bottom:50px; }

/* ===== ヘッダ・ナビ ===== */
.header_title { display:block; }
.header_title span { display:block; }
.header_title_jp { font-size:1.25rem; margin-bottom:0.5rem; }
.sp_menu_button { display:block; }
.fixed { height:100%; position:fixed; }
.nav_menu { display:none; position:fixed; z-index:2; width:100%; height:100%; top:100px; left:0; background-color:#1560bb; }
.nav_menu ul { display:block; overflow-y:scroll; height:calc(100% - 100px); border-top:1px solid #ffffff; }
.nav_menu li { height:60px; border-bottom:1px solid #ffffff; margin-left:0; text-align:center; }
.nav_menu li:not(:last-child) { padding-bottom:0; }
.nav_menu a { display:block; }
.nav_menu span { display:inline-block; height:60px; line-height:60px; font-size:20px; }
.nav_select { background-color:#08366f; }

/* ===== フッタ ===== */
footer { padding:50px 0 100px; }
.footer_name { margin-bottom:1.5rem; }
.copyright { margin-top:2rem; }

/* ===== ページトップへの戻り ===== */
.go_to_top { right:10px; bottom:25px; }

/* ===== ページ共通 ===== */
/* ----- ブロック系 ----- */
.inner { margin-left:10px; margin-right:10px; }
.border_up { padding-top:50px; }
.page_top h1 { font-size:1.75rem; padding-left:2.5vw; }

/* ===== ページ別定義 ===== */
/* ----- TOPページ ----- */
.top_lead { margin-top:50px; padding-right:unset; margin-left:10px; margin-right:10px; }
.top_lead.flex_right { justify-content:center; }
.top_report p { width:unset; }

/* ----- プロフィールページ ----- */
.timeline-date { width:110px; padding-right:15px; }
.timeline-content { width:calc(100% - 110px); padding-left:15px; }
.timeline-content::before { left:103px; }
.profile_graybox h3 { font-size:1rem; margin-bottom:0.5rem; }
.profile_graybox p { margin-left:0.5rem; }

/* ----- 相談料・顧問契約ページ ----- */
.fee_subtitle { margin-top:1.25rem; }

/* ----- 地図ページ ----- */
.map_office td { padding:5px; }

/* ----- お問い合わせページ ----- */
.inquiry table { display:flex; justify-content:center; }
.inquiry tr, .inquiry th, .inquiry td { display:block; border:0; }
.inquiry th { text-align:left; padding:0; }
.inquiry td { padding:0 0 0.75rem 0; }
.inquiry_input tbody, .inquiry_confirm tbody { width:100%; }
.inquiry_input input[type="text"], .inquiry_input textarea { width:100%; }
.inquiry_confirm { width:100%; border:0; }
.inquiry_confirm tr:not(:last-child) { margin-bottom:1rem; }
.inquiry_confirm th, .inquiry_confirm td { padding:5px; }
.inquiry_confirm td { min-width:unset; }

}

/*■■■■■■■■■■■■■■■■■■■■■■■■■
 *  スマートフォン
 ■■■■■■■■■■■■■■■■■■■■■■■■■*/
@media screen and (max-width:480px) {

/* ===== タグ定義 ===== */
h2 { font-size:1.3rem; }
h3 { font-size:1.15rem; }

/* ===== ヘッダ・ナビ ===== */
header { height:125px; }
.header_title_jp { font-size:1.15rem; }
.header_title_en { font-size:0.9rem; }
.nav_menu { top:125px; }

/* ===== フッタ ===== */
footer { padding:50px 0 100px; }
.footer_name { font-size:0.85rem; }
.copyright { text-align:center; margin-top:2.5rem; font-size:0.75rem; }

/* ===== ページ共通 ===== */
/* ----- ブロック系 ----- */
.page_top img { height:50vw; }
.page_top h1 { font-size:1.4rem; padding-left:2vw; }

/* ----- テキスト系 ----- */
h2 span.small { margin-left:0.25rem; }

/* ===== ページ別定義 ===== */
/* ----- TOPページ ----- */
.top_mainvisual p { font-size:1.4rem; padding-left:2vw; margin-bottom:0.2rem; }
.top_lead { margin-top:25px; margin-bottom:25px; }

/* ----- 地図ページ ----- */
.map_office { display:flex; justify-content:center; border:0; }
.map_office tr, .map_office th, .map_office td { display:block; border:0; }
.map_office tr:not(:last-child) { margin-bottom:1rem; }
.map_office th, .map_office td { padding:0; }
.map_office td:first-child::before { content:'■'; }
.map_office td:not(:first-child) { display:inline; }
.map_office td:last-child { margin-left:1rem; }
.map_google { max-width:1000px; height:450px; margin-left:auto; margin-right:auto; }
.map_original { border:1px solid #dddddd; }

/* ----- トピックスページ ----- */
.topics, .topics tr, .topics th, .topics td { display:block; }
.topics th { text-align:unset; padding-bottom:0.5rem; }
.topics tr:not(:first-child) th { padding-top:0.5rem; }
.topics td { padding-bottom:0.5rem; }
.topics tr:not(:last-child) { border-bottom:1px solid #cccccc; }

}