@charset "UTF-8";
:root {
    /* ヘッダーの高さ（上下余白20px + 本体84px） */
    --header-height: 124px;
    /* PADデバイスで見た場合の余白分10pxを加算 (A+10x2) */
    --site-min-width: 1340px;
    --color-main: #447D1A;
    --color-accent: #E8893A;
    --color-text: #222222;
    --color-border: #D0D7C8;
}
html{
    scroll-padding-top: var(--header-height);
}

/* page */
.wrapper {
    width: 100%;
    min-width: var(--site-min-width);
    margin: 0 auto;
    position: relative;
    overflow: hidden;
    padding-top: calc(var(--header-height) - 26px);
}

/* main */
.main {
    position: relative;
    z-index: 1;
    /* margin-bottom: 6em; */
}

/* inner　サイト指定のコンテンツ幅に納めるコンテナ */
.inner {
    max-width: 1200px;    /* サイト指定のコンテンツ領域幅 (A)*/
    margin: 0 auto;
}
.inner-1280 {
    max-width: 1280px;    /* サイト指定のコンテンツ領域幅 (A)*/
    margin: 0 auto;
}
.inner-1320 {
    max-width: 1320px;    /* サイト指定のコンテンツ領域幅 (A)*/
    margin: 0 auto;
}
.inner-1400 {
    max-width: 1400px;    /* サイト指定のコンテンツ領域幅 (A)*/
    margin: 0 auto;
}
.inner-1200 {
    max-width: 1200px;    /* サイト指定のコンテンツ領域幅 (A)*/
    margin: 0 auto;
}
.inner-1000 {
    max-width: 1000px;    /* サイト指定のコンテンツ領域幅 (A)*/
    margin: 0 auto;
}
.inner-900 {
    max-width: 900px;    /* サイト指定のコンテンツ領域幅 (A)*/
    margin: 0 auto;
}
.inner-800 {
    max-width: 800px;    /* サイト指定のコンテンツ領域幅 (A)*/
    margin: 0 auto;
}
.inner-1080 {
	max-width: 1080px;   /* サイト指定のコンテンツ領域幅 (A)*/
	margin: 0 auto;
}

/*===wrap / ページ余白（部品内蔵）===*/
/* ヘッダー下 10px */
.bc-wrap {
    margin-top: 10px;
}

/* ページタイトル下 80px（リードは直後・上余白0） */
.page-head .ttl-01 {
    margin-bottom: 80px;
}

/* ページタイトル直後〜最初のセクション 160px */
.page-head + .section {
    margin-top: 160px;
}

/* セクション間 160px */
.section + .section {
    margin-top: 160px;
}

/* 色背景セクション padding上下 80px */
.section.cnt-bg-01,
.section.cnt-bg-02 {
    padding-top: 80px;
    padding-bottom: 80px;
}

/* 色背景の次セクション上 80px */
.section.cnt-bg-01 + .section,
.section.cnt-bg-02 + .section {
    margin-top: 80px;
}

/* セクション内コンテンツ間 80px（.sec-wrap 同士） */
.section > .inner,
.section > .inner-1280,
.section > .inner-1320,
.section > .inner-1400,
.section > .inner-1200,
.section > .inner-1000,
.section > .inner-900,
.section > .inner-800,
.section > .inner-1080 {
    display: flex;
    flex-direction: column;
    gap: 80px;
}

/* 文書系ページ（タイトル直後の本文） */
.page-head + .section.sec-privacy {
    margin-top: 0;
}

/*===MV（ページヒーロー）===*/
.mv-wrap {
    position: relative;
}
.mv-visual {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(-1 * var(--header-height));
    z-index: 0;
    width: 100%;
    min-width: var(--site-min-width);
    height: 376px;
    pointer-events: none;
    overflow: hidden;
}
.mv-visual img {
    display: block;
    width: 100%;
    height: 376px;
    object-fit: cover;
    object-position: right center;
}
.mv-inner {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    min-height: calc(403px - var(--header-height));
}
.mv-inner .bc-wrap {
    position: absolute;
    top: 10px;
    left: 0;
    right: 0;
    margin-top: 0;
}
.mv-inner .page-head {
    box-sizing: border-box;
    padding-top: calc(241px - var(--header-height));
}
.mv-inner .page-head .ttl-01 {
    margin-bottom: 0;
}
.mv-lead {
    position: relative;
    z-index: 1;
    margin-bottom: 120px;
}
.mv-lead .page-lead {
    max-width: 1000px;
    margin: 0 auto;
}
.mv-wrap + .section {
    margin-top: 0;
}

/* ヒーロー画像なし（タイトルのみ） */
.mv-wrap:not(:has(.mv-visual)) .mv-inner {
    min-height: 0;
}
.mv-wrap:not(:has(.mv-visual)) .mv-inner .bc-wrap {
    position: static;
}
.mv-wrap:not(:has(.mv-visual)) .mv-inner .page-head {
    padding-top: 0;
}
.mv-wrap:not(:has(.mv-visual)) .mv-inner .page-head .ttl-01 {
    margin-bottom: 80px;
}

/* タイトル下 40px */
.sec-wrap > .ttl-01,
.sec-wrap > .ttl-02 {
    margin-bottom: 40px;
}

/* 大タイトル直後の中タイトルは合計80px（タイトル下別セクション） */
.sec-wrap > .ttl-01 + .ttl-02 {
    margin-top: 40px;
}

/* 小タイトル下（通常テキスト）20px */
.sec-wrap .ttl-03 {
    margin-bottom: 20px;
}

/* 小タイトル下（画像等）40px */
.sec-wrap .ttl-03.type-img {
    margin-bottom: 40px;
}

/* テキストの次の小タイトル */
.sec-wrap .txt-01 + .ttl-03 {
    margin-top: 40px;
}

/* テキストの次の画像枠 */
.sec-wrap .txt-01 + .col-img,
.col-box-body .txt-01 + .col-img {
    margin-top: 40px;
}

/* お問い合わせ上 160px（色背景直後は 10px） */
.main > .sec-contact {
    margin-top: 160px;
}
.section.cnt-bg-01 + .sec-contact,
.section.cnt-bg-02 + .sec-contact {
    margin-top: 10px;
}
/* SP下パンくず直後のお問い合わせも PC では 160px */
.bc-wrap.sp-mode-01 + .sec-contact {
    margin-top: 160px;
}

/*===margin===*/
.mt-160{
    margin-top: 160px;
}
.mt-80{
    margin-top: 80px;
}
.mt-40{
    margin-top: 40px;
}
.mt-32{
    margin-top: 32px;
}
.mt-20{
    margin-top: 20px;
}
.mt-10{
    margin-top: 10px;
}

.mb-160{
    margin-bottom: 160px;
}
.mb-80{
    margin-bottom: 80px;
}
.mb-40{
    margin-bottom: 40px;
}
.mb-32{
    margin-bottom: 32px;
}
.mb-20{
    margin-bottom: 20px;
}
.mb-10{
    margin-bottom: 10px;
}

[class*=" mb-"]:last-child,
[class^="mb-"]:last-child {
    margin-bottom: 0;
}

/*===padding（色背景セクション等）===*/
.pt-80{
    padding-top: 80px;
}
.pb-80{
    padding-bottom: 80px;
}
.py-80{
    padding-top: 80px;
    padding-bottom: 80px;
}

/*===横並びカラム（gap32px）===*/
.flex-wrap-01 {
    display: flex;
    flex-wrap: wrap;
    gap: 40px 32px;
}
.flex-wrap-01 > .flex-cnt-01 {
    flex: 1 1 0;
    min-width: 0;
}
.flex-wrap-01.flex-2 > .flex-cnt-01 {
    flex: 1 1 calc((100% - 32px) / 2);
    max-width: calc((100% - 32px) / 2);
}
.flex-wrap-01.flex-3 > .flex-cnt-01 {
    flex: 1 1 calc((100% - 64px) / 3);
    max-width: calc((100% - 64px) / 3);
}
.flex-wrap-01.flex-4 > .flex-cnt-01 {
    flex: 1 1 calc((100% - 96px) / 4);
    max-width: calc((100% - 96px) / 4);
}

/*===色背景===*/
.cnt-bg-01 {
    background-color: #F0F7D6;
}
.cnt-bg-02 {
    background-color: #FEFAF1;
}

/*===カラム用ボックス（リンク時は shadow）===*/
.col-box {
    background: #F1F3EF;
    border-radius: 10px;
    padding: 40px;
    box-sizing: border-box;
}
.col-box.type-shadow {
    background: #fff;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}
.col-box .col-img {
    display: block;
    width: auto;
    height: 250px;
    object-fit: cover;
    border-radius: 16px 16px 0 0;
    background: #aaa;
}
/* 画像付きカード（上：画像 / 下：テキスト） */
.col-box.type-img {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0;
    overflow: hidden;
    background: #fff;
}
.col-box.type-img .col-img {
    flex-shrink: 0;
    border-radius: 0;
}
.col-box.type-img .col-box-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 20px;
    padding: 40px;
    box-sizing: border-box;
}
.col-box.type-img .col-box-body > .ttl-03,
.col-box.type-img .col-box-body > .txt-01,
.col-box.type-img .col-box-body > .txt-02 {
    margin: 0;
}

/*===表組（定義リスト風）===*/
.dl-list-01 {
    width: 100%;
}
.dl-list-01 .dl-item {
    display: flex;
    gap: 50px;
    align-items: flex-start;
    padding: 20px 50px;
    border-top: 1px solid #D0D7C8;
}
.dl-list-01 .dl-item:last-child {
    border-bottom: 1px solid #D0D7C8;
}
.dl-list-01 .dl-ttl {
    flex: 0 0 250px;
    max-width: 250px;
    color: #447D1A;
    font-weight: 600;
    font-size: 16px;
    line-height: 1.5;
}
.dl-list-01 .dl-txt {
    flex: 1 1 auto;
    color: #222;
    font-size: 16px;
    line-height: 1.5;
}
.dl-list-01.type-02 .dl-ttl {
    flex: 0 0 100px;
    max-width: 100px;
}

/*===パンくず===*/
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  padding: 16px 0px 80px;
}
.breadcrumb li {
  color: #222;
  font-size: 14px;
  line-height: 1.5;
  position: relative;
  margin-right: 8px;
}
.breadcrumb li::before {
  content: ">";
  position: relative;
  top: 0;
  left: 0;
  margin: 0 7px 0 0;
}
.bc-wrap .breadcrumb li.bc-home::before {
  content: none;
}
.breadcrumb li a {
  color: #447D1A;
  text-decoration: underline;
  text-underline-offset: 2px;
}


/*================
タイトル・テキスト系
================*/
/*===タイトル===*/
.ttl-01 {
    color: #447D1A;
    font-size: 42px;
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
}
.ttl-01.type-02,
.ttl-01.type-04 {
    color: #222;
}
.ttl-01.type-02,
.ttl-01.type-03 {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}
.ttl-01.type-02::after,
.ttl-01.type-03::after {
    content: "";
    width: 50px;
    height: 2px;
    border-radius: 20px;
    background: #447D1A;
}
.ttl-01 .ttl-01-sub {
    font-size: 32px;
}
.ttl-01.type-03 {
    align-items: flex-start;
    text-align: left;
}
.ttl-01.type-05 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    text-align: left;
}
.ttl-01.type-05::before {
    content: "";
    width: 45px;
    height: 34px;
    background: url(/common/imgs/ttl_logo.svg) no-repeat center / contain;
    flex-shrink: 0;
}
.ttl-02 {
    color: #222;
    font-size: 28px;
    font-weight: 600;
    line-height: 1.5;
}
.ttl-02.type-02 {
    color: #447D1A;
}
.ttl-02.type-03 {
    color: #E8893A;
}
.ttl-03 {
    color: #222;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.5;
}
.ttl-03.type-02 {
    color: #447D1A;
}

/*===テキスト===*/
.txt-01 {
    color: #222;
    font-size: 16px;
    line-height: 1.8;
}
.txt-02 {
    color: #222;
    font-size: 20px;
    line-height: 1.8;
}
.txt-02.type-02 {
    color: #447D1A;
}
.txt-03 {
    color: #555;
    font-size: 14px;
    line-height: 1.8;
}
.txt-03.type-02 {
    color: #AFC400;
}
.txt-03.type-03 {
    color: #222;
}



.txt-l {
    text-align: left;
}
.txt-c {
    text-align: center;
}
.txt-r {
    text-align: right;
}
.txt-bold {
    font-weight: bold;
}
.txt-in{
    text-indent: -1.3em;
    padding-left: 1.3em;
}
.txt-underline {
    border-bottom: 2px solid currentColor;
}

.color-01 {
    color: #447D1A;
}
.color-02 {
    color: #E8893A;
}
.color-03 {
    color: #5FA8D3;
}


/*================
リンク・ボタン
================*/
/*リンク*/
.link-01 a{
    position: relative;
    color: #222;
    display: flex;
    align-items: flex-start;
    gap: 15px;
    width: fit-content;
    font-size: 16px;
    line-height: 1.6;
}
.link-01 a:has(.link-ex),
.link-01 a:has(.link-pdf){
    gap: 8px;
}
.link-01 a .arrow2,
.link-01 a .link-ex,
.link-01 a .link-pdf{
    color: #447D1A;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}
.link-01 a .arrow2{
    width: 10px;
    height: 1.6em;
}
.link-01 a .arrow2 > svg{
    width: 10px;
    height: 10px;
}
.link-01 a .link-ex{
    width: 17px;
    height: 1.6em;
}
.link-01 a .link-ex > svg{
    width: 17px;
    height: 17px;
}
.link-01 a .link-pdf{
    width: 15px;
    height: 1.6em;
}
.link-01 a .link-pdf > svg{
    width: 15px;
    height: 23px;
}
.link-02 a{
	display: flex;
	align-items: center;
	width: fit-content;
	gap: 7px;
	font-weight: bold;
    font-size: 1.143em;
}
.link-pdf{
	display: flex;
	align-items: center;
	width: fit-content;
}
.arrow-next{
	display: flex;
	align-items: center;
	width: fit-content;
}

/* ボタン */
.btn-01 a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    position: relative;
    width: 350px;
    min-height: 56px;
    padding: 15px 40px;
    border: 2px solid #447D1A;
    border-radius: 100px;
    background: #fff;
    color: #447D1A;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.25;
    text-align: center;
}
.btn-01 .arrow2,
.btn-01 .link-ex {
    position: absolute;
    top: 50%;
    right: 23px;
    transform: translateY(-50%);
    display: flex;
    justify-content: center;
    align-items: center;
    color: inherit;
    box-sizing: border-box;
}
.btn-01 .arrow2 {
    width: 10px;
    height: 10px;
}
.btn-01 .arrow2 > svg {
    width: 10px;
    height: 10px;
}
.btn-01 .link-ex {
    width: 12px;
    height: 12px;
}
.btn-01 .link-ex > svg {
    width: 12px;
    height: 12px;
}
/*カラー*/
.btn-01.bg-01 a {
    border-color: #447D1A;
    background: #447D1A;
    color: #fff;
}
.btn-01.type-02 a {
    border-color: #E8893A;
    color: #E8893A;
}
.btn-01.type-02.bg-01 a {
    border-color: #E8893A;
    background: #E8893A;
    color: #fff;
}
.btn-01.type-03 a {
    border-color: #5FA8D3;
    color: #5FA8D3;
}
.btn-01.type-04 a {
    border-color: #D96B6B;
    color: #D96B6B;
}
/* 3カラム用 */
.btn-01.col a {
    width: 339px;
}
/* 大文字 */
.btn-01.lg a {
    width: auto;
    min-width: 331px;
    padding: 10px 50px;
    font-size: 20px;
}
.btn-01.lg .arrow2,
.btn-01.lg .link-ex {
    right: 19px;
}
.btn-01.lg .arrow2 {
    width: 10px;
    height: 10px;
}
.btn-01.lg .arrow2 > svg {
    width: 10px;
    height: 10px;
}
/* 電話番号 */
.btn-01.tel a {
    width: auto;
    min-width: 0;
    justify-content: center;
    padding: 10px 50px;
}
.btn-01.tel .icon {
    position: absolute;
    top: 50%;
    left: 19px;
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 25px;
    height: 25px;
    transform: translateY(-50%);
}
.btn-01.tel .icon img {
    display: block;
    width: 100%;
    height: 100%;
    filter: brightness(0) invert(1);
}
/*================
リスト
================*/
.list-01>li {
    display: flex;
    background-color: #fff;
}
.list-01>li:nth-of-type(even){
    background-color: #EFF6FB;
}
.list-01>li .list-ttl {
    width: 309px;
    padding: 30px 40px;
    box-sizing: border-box;
}
.list-01>li .list-cnt {
    flex: 1;
    padding: 30px 40px;
    box-sizing: border-box;
}
.list-01>li .list-cnt>*+* {
    margin-top: 16px;
}
/*ドット*/
.list-02 {
    list-style: disc;
    padding-left: 24px;
    color: #222;
    font-size: 16px;
    line-height: 1.25;
    word-break: break-word;
}
.list-02 li+li {
    margin-top: 15px;
}

/*================
お問い合わせカード（共通）
================*/
.sec-contact-inner {
    padding-top: 80px;
    padding-bottom: 80px;
}
.sec-contact-inner .ttl-01 {
    margin-bottom: 40px;
}
.contact-card-list {
    align-items: stretch;
}
.contact-card-list > .flex-cnt-01 {
    display: flex;
}
.contact-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-sizing: border-box;
    flex: 1;
    width: 100%;
    margin-top: 44px;
    padding: 92px 40px 40px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
    text-align: center;
}
.contact-balloon {
    position: absolute;
    top: -44px;
    left: 50%;
    transform: translateX(-50%);
    box-sizing: border-box;
    width: calc(100% - 80px);
    max-width: 339px;
    margin: 0;
    padding: 20px 20px 24px;
    border: 1px solid #447D1A;
    border-radius: 44px;
    background: #fff;
    color: #447D1A;
    font-size: 28px;
    font-weight: 600;
    line-height: 1.5;
    text-align: center;
}
/* 正三角形しっぽ（上辺は描画せず本体に食い込ませて接合） */
.contact-balloon-tail {
    position: absolute;
    left: 50%;
    bottom: -12px; /* 枠線1pxぶんだけ食い込ませ、めり込み感を抑える */
    display: block;
    width: 14px;
    height: 13px;
    transform: translateX(-50%);
    pointer-events: none;
    overflow: visible;
}
.contact-card.type-accent .contact-balloon {
    border-color: #E8893A;
    color: #E8893A;
}
.contact-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 120px;
    height: 120px;
    margin-bottom: 21px;
    border-radius: 50%;
    background: #F0F7D6;
}
.contact-card.type-accent .contact-icon {
    background: #FEFAF1;
}
.contact-icon img {
    display: block;
    width: 70px;
    height: auto;
}
.contact-txt {
    margin-bottom: 20px;
    color: #222;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.8;
    text-align: center;
}
.contact-card .btn-01 {
    margin-top: auto;
    width: 100%;
}
.contact-card .btn-01 a {
    display: grid;
    grid-template-columns: 227px 10px;
    column-gap: 23px;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 339px;
    padding: 15px 23px 15px 56px;
    text-align: center;
}
.contact-card .btn-01 .arrow2,
.contact-card .btn-01 .link-ex {
    position: static;
    top: auto;
    right: auto;
    transform: none;
}

/*================
テーブル
================*/
/* 数字つき */
.list-03 {
    list-style: decimal;
    padding-left: 1.5em;
}
.list-03 li+li {
    margin-top: 0.5em;
}
/* ダイヤ */
.list-04 {
    list-style: none;
    padding: 0;
    margin: 0;
}
.list-04 li {
    position: relative;
    padding-left: 1.2em;
    font-size: 16px;
    line-height: 1.8;
    color: #222;
}
.list-04 li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.65em;
    width: 0.5em;
    height: 0.5em;
    background: #447D1A;
    transform: rotate(45deg);
}

/* 右サイドバー */
/* contents */
.right-nv .main-cont-01 {
    float: left;
    width: 800px;
    box-sizing: border-box;
}

/* sidebar */
.right-nv .main-cont-02 {
    float: right;
    width: 250px;
    box-sizing: border-box;
}

/* 左サイドバー */
/* contents */
.left-nv .main-cont-01 {
    float: right;
    width: 800px;
    box-sizing: border-box;
}

/* sidebar */
.left-nv .main-cont-02 {
    float: left;
    width: 250px;
    box-sizing: border-box;
}


/*================
ヘッダー
================*/
/*===外枠===*/
.header_01.header-group {
    width: 100%;
    min-width: var(--site-min-width);
    box-sizing: border-box;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 101;
    background-color: transparent;
    padding: 20px;
}
.header_01 .header-group-inner {
    width: 100%;
    max-width: 1560px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
    height: 84px;
    box-sizing: border-box;
    background-color: #fff;
    border-radius: 10px;
    border-bottom: 1px solid var(--color-border);
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}
.header-width {
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-sizing: border-box;
    height: 100%;
    padding: 0 20px 0 40px;
    gap: 24px;
}
/*ロゴ*/
.header-logo {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    margin: 0;
    padding: 0;
}
.header-logo a {
    display: block;
    width: 227px;
}
.header-logo img {
    display: block;
    width: 100%;
    height: auto;
}
.header-global-01 {
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 60px;
    flex: 1;
    min-width: 0;
    height: 100%;
    padding-bottom: 20px;
    box-sizing: border-box;
    /* sidr初期スタイルの打ち消し（PC） */
    position: static;
    right: auto;
    left: auto;
    width: auto;
    overflow: visible;
    background: transparent;
    border: none;
}
/*リンクと外枠*/
.header-nav-wrap {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    height: 44px;
}
/*===リンク===*/
.header-nav {
    display: flex;
    align-items: center;
}
.hglb02-nav {
    display: flex;
    align-items: center;
    column-gap: 40px;
}
.hglb02nv-item {
    display: flex;
    position: relative;
}
.hglb02nv-item > a {
    color: var(--color-text);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.5;
    display: flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    box-sizing: border-box;
}
.hglb02nv-item.hglb02nv-current > a {
    color: var(--color-main);
}
@media (hover: hover) {
    .hglb02nv-item > a:hover {
        color: var(--color-main);
    }
}
/* SPメニュー・SP用CTAはPC非表示（min-widthで限定し、SPの表示指定を妨げない） */
@media only screen and (min-width: 769px) {
    .sp-nav-btn,
    .sp-nav-menu,
    .header-ex-btn-sp,
    .sp-menu-ex-btn {
        display: none !important;
    }
}
/* CTAボタン */
.header-ex-btn {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    height: 44px;
    margin: 0;
    padding: 0;
}
.header-ex-btn li {
    display: flex;
    align-items: center;
}
.header-ex-btn a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    box-sizing: border-box;
    width: 175px;
    height: 44px;
    border-radius: 40px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
}
.header-ex-btn .hdr-btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}
.header-ex-btn .hdr-btn-icon img {
    display: block;
    width: 100%;
    height: auto;
}
.header-ex-btn .inq-btn a {
    border: 2px solid var(--color-main);
    background-color: #fff;
    color: var(--color-main);
}
.header-ex-btn .doc-btn a {
    border: 2px solid var(--color-main);
    background-color: var(--color-main);
    color: #fff;
}
.header-ex-btn .tour-btn a {
    border: 2px solid var(--color-accent);
    background-color: var(--color-accent);
    color: #fff;
}
@media (hover: hover) {
    .header-ex-btn .inq-btn a:hover {
        background-color: var(--color-main);
        color: #fff;
    }
    .header-ex-btn .inq-btn a:hover .hdr-btn-icon {
        filter: brightness(0) invert(1);
    }
    .header-ex-btn .doc-btn a:hover {
        opacity: 0.9;
    }
    .header-ex-btn .tour-btn a:hover {
        opacity: 0.9;
    }
}

/* 狭いPC幅での調整 */
@media only screen and (max-width: 1280px) {
    .header-width {
        padding: 0 24px;
        gap: 16px;
    }
    .header-global-01 {
        gap: 32px;
    }
    .hglb02-nav {
        column-gap: 24px;
    }
    .header-ex-btn a {
        width: 160px;
        gap: 10px;
    }
    .header-logo a {
        width: 200px;
    }
}
#GDPR.open {
	display: block;
}
#GDPR {
	display: none;
	position: fixed;
	width: 100%;
	color: #cccccc;
	background-color: #555555;
	border-top: 1px solid #aaaaaa;
	padding-top: 1.5em;
	padding-bottom: 1em;
	left: 0;
	bottom: 0;
	z-index: 20200724;
}
#GDPR .gdpr-clm-01{
	width: 726px;
	float: left;
}
#GDPR .gdpr-clm-02{
	width: 220px;
	float: right;
}
#GDPR .gdpr-ttl{
	font-size: 128.57%;
	font-weight: bold;
	margin-bottom: 0.5em;
}
#GDPR .gdpr-txt{
	margin-bottom: 2em;
}
#GDPR .gdpr-btn{
	width: 220px;
	margin-bottom: 20px;
}
#GDPR .gdpr-btn a{
	color: #333333;
	background-color: #ffffff;
	border: 1px solid #cccccc;
	text-align: center;
	padding: 10px 24px;
	width: 100%;
	display: block;
	box-sizing: border-box;
}
#GDPR .gdpr-btn a::after{
	content: "";
	background: url(/common/imgs/ico-arw-gdpr.png) no-repeat;
	background-size: 0.5em;
	display: inline-block;
	width: 1em;
	height: 0.9em;
	margin-left: 0.5em;
	vertical-align: middle;
}
#GDPR .gdpr-btn a:hover{
	opacity: 0.7;
	text-decoration: none;
}
/*================
フッター
================*/
/*===フッターリクルート部分===*/
.footer-recruit{
    background: url('/recruit/common/imgs/foot_rec_bg.jpg')no-repeat center/cover;
    padding: 80px 0;
}
.footer-recruit .inner{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.footer-recruit h2{
    color: #fff;
    font-size: 3.571em;
    font-weight: bold;
    line-height: 1.44;
}
.footer-recruit .btn-01:not(:first-child){
    margin-top: 30px;
}
.footer-recruit .btn-01 a{
    width: 434px;
    padding: 29px 80px 26px 40px;
}
.footer-recruit .btn-01:last-child a{
    display: flex;
    align-items: center;
    background: none;
    box-sizing: border-box;
    pointer-events: none;
}
.footer-recruit .btn-01 .arrow2,
.footer-recruit .btn-01 .link-ex{
    width: 50px;
    height: 50px;
}
.footer-recruit .btn-01 .tel{
    width: 60px;
    height: 60px;
    margin-right: 15px;
    background-color: #fff;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
}
.footer-recruit .btn-01 .tel svg{
    width: 30px;
    height: 30px;
}
.footer-recruit .btn-01:last-child a .txt-wrap > span:first-child{
    color: #fff;
    font-size: 1em;
}
.footer-recruit .btn-01:last-child a .txt-wrap > span:last-child{
    color: #fff;
    font-size: 0.667em;
}
/*===フッターコンタクト部分===*/
.footer-contact{
    background-color: #0072BC;
    background-image: url('/common/imgs/bg_contact.png');
    background-repeat: repeat;
    background-size: 100% auto;
    padding: 93px 0;
}
.footer-contact .inner-1000{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.footer-contact .subttl-01{
    color: #fff;
}
.footer-contact .subttl-01 + p{
    color: #fff;
}
.footer-contact .subttl-01::after{
    background-color: #fff;
}
.footer-contact .btn-01:not(:first-child) {
    margin-top: 30px;
}
.footer-contact .btn-01 a{
    width: 100%;
    text-align: left;
}
.footer-contact .btn-01 a .arrow2{
    background-color: #182D3A;
}

/*===フッター===*/
.footer_01.footer-group {
    width: 100%;
    min-width: var(--site-min-width);
    box-sizing: border-box;
}
/* 新卒採用WP：テーマ style.css の a underline を打ち消す */
body.recruit_new .footer_01.footer-group a,
body.recruit_new .footer_01.footer-group a:link,
body.recruit_new .footer_01.footer-group a:visited {
    text-decoration: none;
    /* color: inherit; */
}
body.recruit_new .footer_01.footer-group a:hover,
body.recruit_new .footer_01.footer-group a:active {
    text-decoration: none;
}
/*===フッターメイン部分===*/
.footer-global-1 {
    color: var(--color-text);
    background: #fff;
    padding: 60px 40px 40px;
    box-sizing: border-box;
}
.footer-global-1 .fglb01-inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px 90px;
    position: relative;
    max-width: 1320px;
    margin: 0 auto;
}
/*===左カラム===*/
.footer-global-1 .fglb01-01-inner {
    width: 260px;
    flex-shrink: 0;
}
.footer-catch {
    color: var(--color-main);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    margin: 0 0 3px;
    width: 200px;
    text-align: center;
}
.footer-global-1 .footer-logo {
    margin: 0;
}
.footer-global-1 .footer-logo a {
    display: block;
    width: 200px;
}
.footer-global-1 .footer-logo img {
    display: block;
    width: 100%;
    height: auto;
}
.footer-global-1 .footer-info {
    margin-top: 39px;
}
.footer-global-1 .footer-info > p {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    color: var(--color-text);
}
.footer-global-1 .footer-info > p + p {
    margin-top: 8px;
}
.footer-global-1 .footer-info .footer-address {
    display: block;
    margin-bottom: 16px;
}
.footer-global-1 .footer-info .footer-address .footer-info-icon {
    display: inline-flex;
    vertical-align: text-top;
    margin-top: 4px;
    margin-right: 0;
}
.footer-global-1 .footer-info .footer-info-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    margin-top: 3px;
}
.footer-global-1 .footer-info .footer-info-icon img {
    display: block;
    width: 100%;
    height: auto;
}
.footer-global-1 .footer-info .footer-tel .footer-info-icon,
.footer-global-1 .footer-info .footer-fax .footer-info-icon {
    margin-top: 2px;
}

/*===右カラム（ナビ）===*/
.footer-global-1 .fglb01-02-inner {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 40px 60px;
    flex: 1;
    min-width: 0;
    position: relative;
    /* Figma: ナビ上端y=60 → SNSタイトルy=308 → アイコン下端≈386 → 高さ326 */
    min-height: 326px;
}
.fglb01-wrap {
    width: auto;
    min-width: 136px;
    flex-shrink: 0;
}
.fglb01-wrap-04 {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
/* Figma node 2088:230 — 公式SNS x=1376/y=308（ナビ上端60基準で top:248） */
.fglb01-wrap-sns {
    position: absolute;
    top: 248px;
    right: 0;
    margin: 0;
    min-width: 0;
    text-align: center;
}
.fglb01w-ttl {
    font-size: 16px;
    font-weight: 600;
    line-height: 1.5;
    border-bottom: none;
    padding-bottom: 0;
    margin: 0;
    color: var(--color-text);
}
.fglb01w-ttl-follow {
    margin-top: 30px;
}
.fglb01w-ttl a {
    color: inherit;
}
@media (hover: hover) {
    .fglb01w-ttl a:hover {
        color: var(--color-main);
    }
}
.fglb01w-nav {
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    margin-top: 10px;
}
.fglb01w-nav li + li {
    margin-top: 10px;
}
.fglb01w-nav a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--color-text);
}
.fglb01w-nav li:not(.is-plain) a::before {
    content: "─";
    flex-shrink: 0;
}
@media (hover: hover) {
    .fglb01w-nav a:hover {
        color: var(--color-main);
    }
}
.footer-sns {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-top: 10px;
}
.footer-sns a {
    display: block;
    width: 44px;
    height: 44px;
}
.footer-sns img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* フッターCTA */
.footer-ex-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 38px auto 0;
    padding: 0;
    max-width: 1320px;
}
.footer-ex-btn a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    box-sizing: border-box;
    width: 175px;
    height: 44px;
    border-radius: 40px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
}
.footer-ex-btn .hdr-btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}
.footer-ex-btn .hdr-btn-icon img {
    display: block;
    width: 100%;
    height: auto;
}
.footer-ex-btn .inq-btn a {
    border: 2px solid var(--color-main);
    background-color: #fff;
    color: var(--color-main);
}
.footer-ex-btn .doc-btn a {
    border: 2px solid var(--color-main);
    background-color: var(--color-main);
    color: #fff;
}
.footer-ex-btn .tour-btn a {
    border: 2px solid var(--color-accent);
    background-color: var(--color-accent);
    color: #fff;
}
@media (hover: hover) {
    .footer-ex-btn .inq-btn a:hover {
        background-color: var(--color-main);
        color: #fff;
    }
    .footer-ex-btn .inq-btn a:hover .hdr-btn-icon {
        filter: brightness(0) invert(1);
    }
    .footer-ex-btn .doc-btn a:hover,
    .footer-ex-btn .tour-btn a:hover {
        opacity: 0.9;
    }
}

/*===最下部===*/
.footer_01 .footer-global-03 {
    color: #fff;
    background-color: var(--color-main);
    padding: 16px 20px;
    border-top: none;
}
.footer_01 .footer-global-03 .footer-copy {
    color: #fff;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    text-align: center;
    margin: 0;
}

@media only screen and (min-width: 1600px) {
    .footer-global-1 {
        padding: 60px 140px 40px;
    }
}

/*================
ページャー
================*/
.pager {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
    margin-top: 80px;
}
.pager-list {
    display: flex;
    align-items: center;
    gap: 20px;
}
.pager-list a,
.pager-list span {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 56px;
    height: 56px;
    padding: 0 14px;
    border-radius: 28px;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.5;
    text-align: center;
    white-space: nowrap;
}
.pager-list a {
    border: 2px solid var(--color-main);
    color: var(--color-main);
    background: #fff;
    text-decoration: none;
}
.pager-list a:hover {
    background: var(--color-main);
    color: #fff;
}
.pager-list .is-current span {
    background: var(--color-main);
    color: #fff;
}
.pager-list .pager-ellipsis span {
    width: auto;
    height: auto;
    min-width: 25px;
    letter-spacing: 0.15em;
    color: var(--color-main);
}
.pager-prev,
.pager-next {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    color: var(--color-main);
}
.pager-prev .arrow2,
.pager-next .arrow2 {
    display: flex;
    width: 20px;
    height: 20px;
}
.pager-prev .arrow2 {
    transform: scaleX(-1);
}
.pager-prev .arrow2 > svg,
.pager-next .arrow2 > svg {
    width: 20px;
    height: 20px;
}
.pager-prev.is-disabled,
.pager-next.is-disabled {
    opacity: 0.35;
    pointer-events: none;
}

