@charset "utf-8";

@media ( max-width: 767px ) {}/* スマホ（〜767px） */
@media ( min-width: 768px ) and (max-width: 1024px) {}/* タブレット（768px〜1024px） */
@media ( min-width: 1025px ) {}/* PC（1025px〜） */

/*＝＝＝＝＝＝＝＝＝テスト状態のためリンクを閉じる部分＝＝＝＝＝＝＝＝＝*/
/* a[href*="/staff"] {
  pointer-events: none;
  opacity: .5;
} */

/*＝＝＝＝＝＝＝＝＝全体＝＝＝＝＝＝＝＝＝*/
body { font-family: "Noto Sans", sans-serif; font-weight: 400; font-style: normal; color: #2F2F2F; font-size: 16px; letter-spacing: 0.1em; line-height: 2; overflow-x: hidden; }
/* @media ( min-width: 768px ) { body { font-size: 18px; } } */
*, *::before, *::after { box-sizing: border-box; }
a:hover { cursor: pointer; }
@media ( min-width: 768px ) {
    a[href^="tel:"] { pointer-events: none; }
}
/* 中身が短いページでも、フッターが画面の下端にくるようにする */
body { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; }
main { position: relative; flex-grow: 1; }
:focus-visible { outline: revert; }
img { vertical-align: bottom; }

.contents_wrap { width: 100%; }
.contents { width: min(90%, 1200px); margin: 0 auto; padding: 60px 0; }
.content { padding: 40px 0; }
.contents.nopadding, .content.nopadding { padding: 0; }
.contents.nopadding_bottom, .content.nopadding_bottom { padding-bottom: 0; }
.contents.nopadding_top, .content.nopadding_top { padding-top: 0; }
@media ( min-width: 768px ) {
    .contents { padding: 120px 0; }
    .content { padding: 80px 0; }
}

/*＝＝＝＝＝＝＝＝＝表示切り替え＝＝＝＝＝＝＝＝＝*/
.sp ,.sp-pad { display: block;}
.pad, .pad-pc, .pc { display: none; }
.inline_sp ,.inline_sp-pad { display: inline; }
.inline_pad, .inline_pad-pc, .inline_pc { display: none; }
@media ( min-width: 768px ) {
    .sp { display: none; }
    .pad, .pad-pc { display: block; }
    .inline_sp { display: none; }
    .inline_pad, .inline_pad-pc { display: inline; }
}
@media ( min-width: 1025px ) {
    .sp-pad, .pad { display: none; }
    .pc { display: block; }
    .inline_sp-pad, .inline_pad { display: none; }
    .inline_pc { display: inline; }
}

/*＝＝＝＝＝＝＝＝＝色＝＝＝＝＝＝＝＝＝*/
/*背景*/
body { background:#F4F0EC }
body::before { content: ''; position: absolute; top: 0; right: max(0px, calc(50vw - 600px)); display: block; width: min(60vw, 500px); aspect-ratio: 25 /27; background: url('/img/common/logo_bg.svg') no-repeat center; background-size: contain; opacity: 0.4; }
.bg_white { background:#FFF; }
.bg_light { background:#F4F0EC; }
.bg_base { background:#ECE5DC; }
.bg_dark { background:#DECFBF; }
.bg_split { position: relative; }
.bg_split::before { content: ''; position: absolute; top: 160px; bottom: 0; right: 0; left: 0; background: #ECE5DC; z-index: -1; }
@media screen and (min-width: 768px) {
    .bg_split::before { top: 320px; }
}
/*文字*/
.color_b { color: #2F2F2F; }
.color_g { color: #999; }
.color_primary { color: #CB4524; }
.color_secondary { color: #4C8B4F; }
.color_tertiary { color: #3B6E91; }
.color_g .target_blank_img { filter: invert(65%); }

/*＝＝＝＝＝＝＝＝＝フォント＝＝＝＝＝＝＝＝＝*/
p { text-align: justify; }
.nowrap { white-space: nowrap; }
.bold { font-weight: bold; }
.target_blank_img { width: 0.9em; margin-left: 0.3em; aspect-ratio: 1 / 1; vertical-align: baseline; }
.en { font-family: "Google Sans Flex", sans-serif; font-optical-sizing: auto; letter-spacing: 0.15em; line-height:1; font-weight: 550; font-style: normal; font-variation-settings: "slnt" 0, "wdth" 100, "GRAD" 0, "ROND" 0; }
/*サイズ*/
.text_ss { font-size:13px; }
.text_s { font-size:14px; }
.text_m { font-size:18px; letter-spacing: 0.1em; font-weight: bold; }
.text_l { font-size:20px; letter-spacing: 0.1em; font-weight: bold; }
@media screen and (min-width: 768px) {
    .text_ss { font-size:14px; }
    .text_s { font-size:16px; }
    .text_m { font-size:24px; }
    .text_l { font-size:32px; }
}
/*末尾省略*/
.ellipsis-1 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ellipsis-2 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.ellipsis-3 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }

/*＝＝＝＝＝＝＝＝＝ x-h1 ＝＝＝＝＝＝＝＝＝*/
.page_top_sec { position: relative; z-index: 1; }
.page_top_sec .h_wrap { padding-top: 40px; }
.page_top_sec .h_jp { font-size: 24px; line-height: 1em; }
.page_top_sec .h_en.sp { margin-top: 0.5em; font-size: 20px; color:#DECFBF; }
.page_top_right { position: absolute; top: 100px; right: 0; }
.page_top_illust { display: block; width: 120px; }
@media screen and ( min-width: 768px ) {
    .page_top_sec .h_jp { font-size: 40px; }
    .h_en { position: absolute; top: -0.5em; right: 0; font-size: 80px; color:#DECFBF; }
    .page_top_right { top: 160px; }
    .page_top_illust { width: 200px; }
}
@media screen and ( min-width: 1200px ) {
    .page_top_right { top: 200px; }
    .page_top_illust { width: 240px; }
}

/*＝＝＝＝＝＝＝＝＝パンくず＝＝＝＝＝＝＝＝＝*/
.breadcrumb_list { position: absolute; top:0px; left: 0px; display: flex; align-items: center; width: 100vw; padding: 16px 0/*max(5vw, calc(50vw - 600px))*/ 0; font-size: 12px; overflow-x: auto; scrollbar-width: none; z-index: 99; }
.breadcrumb_list::-webkit-scrollbar { display: none; }
.breadcrumb_list::before { content: ''; display: inline-block; width: 8px; aspect-ratio: 1/1; margin-right: 8px; background: #CB4524; }
.breadcrumb_list li { display: flex; align-items: center; }
.breadcrumb_list li::after { content: ''; display: inline-block; width: 12px; height: 1px; margin: 0 4px; background: #2F2F2F; }
.breadcrumb_list li:last-child::after { content: none; }
.breadcrumb_list li a, .breadcrumb_list li span { white-space: nowrap; }
@media screen and ( min-width: 768px ) {
    .breadcrumb_list { position: static; padding: 0; margin: 40px 0 -30px; font-size: 14px; }
.breadcrumb_list li::after { width: 16px; margin: 0 6px; }
}

/*＝＝＝＝＝＝＝＝＝outline_card＝＝＝＝＝＝＝＝＝*/
.outline_card { position: relative; padding: 24px; border-radius: 16px; background: #FFF; }
.outline_table { font-size: 14px; }
.outline_table dl { display: flex; flex-direction: column; gap: 0.5em; padding: 12px; border-bottom: 1px solid #BCBCBC; }
.outline_table dl:first-child { padding-top: 0; }
.outline_table dl:last-child { padding-bottom: 0; border-bottom: none; }
.outline_table dt { font-weight: bold; }
@media ( min-width: 768px ) {
    .outline_card { padding: 50px 60px; }
    .outline_table { font-size: 16px; }
    .outline_table dl { flex-direction: row; gap: 40px; padding: 24px; align-items: baseline; }
    .outline_table dt { flex: 0 0 180px; }

    .outline_card .h_en { position: absolute; top: -0.5em; right: 0; line-height: 1em; z-index: 2; }
}

/*＝＝＝＝＝＝＝＝＝フォーム＝＝＝＝＝＝＝＝＝*/
/*チェックボックス*/
.checkboxItem { display: inline-flex; align-items: center; column-gap: 4px; line-height: 1; cursor: pointer; }
.checkboxItem:not(:last-of-type) { margin-right: 16px; }
.checkboxItem input[type="checkbox"] { appearance: none; position: relative; width: 25px; height: 25px; background: #FFF; border: 1px solid #343330; cursor: pointer; }
.checkboxItem input[type="checkbox"]:hover { background: #EEE; }
.checkboxItem input[type="checkbox"]:checked { border: 1px solid #CB4524; background: #CB4524; }
.checkboxItem input[type="checkbox"]:checked:hover { opacity: 0.8; }
.checkboxItem input[type="checkbox"]:checked::after { content: ''; position: absolute; top: 3px; left: 9px; width: 6px; height: 14px; border: solid #FFF; border-width: 0 2px 2px 0; transform: rotate(45deg); }
@media (min-width:768px) {
  .checkboxItem input[type="checkbox"] {width: 20px; height: 20px;}
  .checkboxItem input[type="checkbox"]:checked::after { top: 2px;left: 6px;width: 6px;height: 11px;}
}

/*ラジオボタン*/
input[type="radio"] { appearance: none; position: relative; width: 22px; height: 22px; aspect-ratio: 1 / 1; border: 1px solid #343330; border-radius: 50%; cursor: pointer; }
input[type="radio"]:checked { border: 1px solid #CB4524; }
input[type="radio"]:checked::after { content: ""; position: absolute; inset: 0; width: 12px; aspect-ratio: 1 / 1; margin: auto; border-radius: 50%; background-color: #CB4524; }

/*セレクト*/
.selectPulldownItem:hover, .selectStepperItem:hover { background: #EEE; }
.selectPulldownItem { border: 1px solid #A3A3A3; background: #FFF; line-height: 1em; }
.selectPulldownItem select { padding: 8px; background: url('/img/common/selectPulldown_allow.svg') no-repeat right 8px center / 10px auto; -webkit-appearance: none; appearance: none; }
.selectStepperItem { border: 1px solid #A3A3A3; background: #FFF; line-height: 1em; }
.selectStepperItem select { padding: 8px; background: url('/img/common/selectStepper_allow.svg') no-repeat right 8px center / 10px auto; -webkit-appearance: none; appearance: none; }
