@charset "utf-8";
html {font-size: 62.5%}
body {
background-color: #FFFFFF;
min-width: 1200px;
font-size: 1.6rem;
font-family: "Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
-webkit-text-size-adjust: 100%;
animation: fadeIn 2s ease 0s 1 normal;
-webkit-animation: fadeIn 2s ease 0s 1 normal;
}
@keyframes fadeIn {
 0% {opacity: 0}
 100% {opacity: 1}
}
@-webkit-keyframes fadeIn {
 0% {opacity: 0}
 100% {opacity: 1}
}
select,input,button,textarea,button {font:99%;}
table {font-size:inherit;font:100%;}
pre,code,kbd,samp,tt {
font-family:monospace;
*font-size:108%;
line-height:100%;
}
a:link {
color: #000000;
transition: .3s;
}
a:visited {
color: #000000;
text-decoration: none;
}
a:hover {
color: #0099CC;
text-decoration: underline;
}
a:active {
color: #999999;
text-decoration: none;
}
@media (any-hover: hover) {
  a.btn img {
    transition: 0.3s ease-in-out;
    opacity: 1;
  }
  a.btn:hover img {
    opacity: .4;
  }
}

a {
outline: none;
}
::selection {
background: #000000;
color: #FFFFFF;
}
::-moz-selection {
background:#000000;
color:#FFFFFF;
}
::-webkit-selection {
background:#000000;
color:#FFFFFF;
}
strong {
font-weight: bold;
}
.pc {
display: inherit!important;
}
.sp {
display: none!important;
}
#wrapper {
overflow: visible;
}
#panel-btn{
  display: none;
}
/*--HEADER-------------*/
header#index {
position: relative;
width: 100%;
height: 100vh;
}
header#index h1 {
position: absolute;
left: 0;
top: 0;
z-index: 5
}
header#index h1 img{
width: 200px;
height: auto
}
/*--MAINVIS-------------*/
#mainVis {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 3;
    width: 100%;
    height: 100vh;
    background-image: url(../../images/mv.jpg);
    background-size: cover;
    background-position: center center;
    display: flex;
    flex-direction: column;
    justify-content: center; /* 上下中央 */
    align-items: center;     /* 左右中央 */
    overflow: hidden;
}
#mainVis .mv_video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    z-index: -1;
}
#mainVis .second{
mix-blend-mode: difference;
margin-top: 60px;
}

/*--NAVIGATION-------------*/
nav#gnav {
    position: fixed;
    z-index: 5;
    top: 0;
    background-color: rgba(255,255,255,0);
    width: 100%;
    padding: 25px 50px 70px;
    transition: padding 0.3s ease;
}

@media screen and (min-width: 768px) {
    nav#gnav.is_scrolled {
        padding: 10px 50px 10px;
    }
}
nav#gnav ul {
display: flex;
justify-content: flex-end; 
}
nav#gnav ul li {
margin-left: 40px;
}
nav#gnav.index {
    background-color: rgba(255,255,255,0);
}
nav#gnav.index ul li a {
    color: #FFF;
}
nav#gnav.index ul li a::after {
    background: #FFF;
}
nav#gnav ul li a {
    position: relative;
    color: #000;
    font-size: 1.4rem;
    font-weight: 600;
    text-decoration: none;
}
nav#gnav ul li a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -5px;
    width: 100%;
    height: 1px;
    background: #000;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.3s ease;
}
nav#gnav ul li a:hover::after {
    transform: scaleX(1);
}

/*--INDEX_INTRODUCTION-------------*/
#index_introduction{
width: 100%;
height: 463px;
background-color: #5B6CB1;
color: #FFF;
text-align: center;
position: relative;
overflow: hidden;
}
#index_introduction p{
position: absolute;
    z-index: 2;
    top: 50%;
    left: 0;
    width: 100%;
    transform: translateY(-50%);
    text-align: center;
    font-size: 3.4rem;
    font-weight: 600;
    letter-spacing: 0.7em;
}
.txt_scroll {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    overflow: hidden;
    transform: translateY(-50%);
    white-space: nowrap;
}
.txt_scroll_inner {
    display: flex;
    width: max-content;
    animation: textLoop 40s linear infinite;
}
.txt_scroll_inner img {
    display: block;
    flex-shrink: 0;
    width: auto;
    height: 463px;
    max-width: none;
}
@keyframes textLoop {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-50%);
    }
}

/*--INDEX_OUTLINE-------------*/
#index_outline{
    display: flex;
    background-color: #DB491B;
    color: #FFF;
    height: 940px;
    background-image: url(../../images/index_outline_bg.svg);
    background-position: center center;
    background-size: cover;
}
#index_outline .ill,
#index_outline .cont{
width: 50%;
}
#index_outline .ill{
display: flex;
justify-content: center; /* 左右中央 */
align-items: flex-end;   /* 下寄せ */
}
#index_outline .cont{
display: flex;
justify-content: center;
align-items: center;
position: relative;
z-index: 3
}
#index_outline .cont h2{
font-size: 4.2rem;
font-weight: 600;
margin-bottom: 1em
}
#index_outline .cont p{
font-size: 1.7rem;
margin-bottom: 1.5em;
line-height: 2;
}


/*--BTN_MORE-------------*/
.btn_viewmore{
margin-top: 50px;
}
.btn_viewmore a{
    display: inline-block;
    font-family: "Barlow Condensed", sans-serif;
    font-weight: 800;
    font-style: normal;
    font-size: 1.8rem;
    color: #D33912!important;
    text-decoration: none;
    background-color: #FFF;
    padding-left: 20px;
    padding-right: 60px;
    line-height: 58px;
    letter-spacing: 0.08em;
    background-image: url(../../images/btn_viewmore_arrow.svg);
    background-position: right 20px center;
    background-repeat: no-repeat;
}
.btn_viewmore a:hover{
    background-position: right 15px center;
}
/*--BTN_MORE TRANS-------------*/
.btn_viewmore.trans a{
    color: #FFF!important;
    background-color: transparent;
    background-image: url(../../images/btn_viewmore_arrow_w.svg);
    border: 1px solid #FFFFFF!important;
}
/*--BTN_MORE TRANS-------------*/
.btn_viewmore.trans.bk a{
    color: #000!important;
    background-color: transparent;
    background-image: url(../../images/btn_viewmore_arrow_bk.svg);
    border: 1px solid #000!important;
}
/*--BTN_MORE NEWS-------------*/
.btn_viewmore.news{
text-align: right
}
.btn_viewmore.news a{
    color: #1E3A75!important;
    background-color: transparent;
    background-image: url(../../images/btn_viewmore_arrow_bl.svg);
    border: 1px solid #1E3A75!important;
}

/*--INDEX_ABOUT-------------*/
#index_about{
    display: flex;
    flex-direction: row-reverse;
    background-color: #FFF;
}
#index_about .ph,
#index_about .cont{
width: 50%;
height: 880px;
}
#index_about .ph{
    background-image: url(../../images/index_about_ph.jpg);
    background-position: center center;
    background-size: cover;
}
#index_about .cont{
    background-image: url(../../images/index_about_bg.svg);
    background-position: top center;
    background-size: cover;
    display: flex;
justify-content: center;
align-items: center;
}
#index_about .cont .cont_inner{
width: 550px;
}
#index_about .cont h2{
font-family: "Barlow Condensed", sans-serif;
font-weight: 800;
font-style: normal;
font-size: 12rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 60px;
}
#index_about .cont .read{
font-weight: 600;
font-size: 3.4rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}
#index_about .cont p{
line-height: 2;
}
#index_about .btn_viewmore a{
    border: 1px solid #131313;
}

/*--INDEX_PHILOSOPY-------------*/
#index_philosophy{
    display: flex;
    background-color: #FFF;
}
#index_philosophy .ph,
#index_philosophy .cont{
width: 50%;
height: 880px;
}
#index_philosophy .ph {
    position: relative;
    overflow: hidden;
    --split: 50%;
    cursor: ew-resize;
    touch-action: pan-y;
    user-select: none;
}

#index_philosophy .ph_image {
    position: absolute;
    inset: 0;
}

#index_philosophy .ph_image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

/* カラー写真 */
#index_philosophy .ph_image_color {
    z-index: 1;
}

/* モノクロ写真 */
#index_philosophy .ph_image_mono {
    z-index: 2;
    clip-path: inset(0 calc(100% - var(--split)) 0 0);
}

/* スライダーの取っ手 */
#index_philosophy .ph_slider {
    position: absolute;
    z-index: 3;
    top: 0;
    bottom: 0;
    left: var(--split);
    width: 48px;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: ew-resize;
    outline: none;
}

/* 白い縦線 */
#index_philosophy .ph_slider::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 4px;
    background: #FFF;
    transform: translateX(-50%);
}

/* 左右の三角形 */
#index_philosophy .ph_arrow {
    position: absolute;
    top: 50%;
    width: 0;
    height: 0;
    transform: translateY(-50%);
}

#index_philosophy .ph_arrow_left {
    left: 4px;
    border-top: 13px solid transparent;
    border-bottom: 13px solid transparent;
    border-right: 13px solid #FFF;
}

#index_philosophy .ph_arrow_right {
    right: 4px;
    border-top: 13px solid transparent;
    border-bottom: 13px solid transparent;
    border-left: 13px solid #FFF;
}

#index_philosophy .ph_slider:focus-visible {
    outline: 2px solid #FFF;
    outline-offset: -5px;
}
#index_philosophy .cont{
background-color: #0B2867;
    background-image: url(../../images/index_philosophy_bg.svg);
    background-position: top center;
    background-size: cover;
    display: flex;
justify-content: center;
align-items: center;
color: #FFF
}
#index_philosophy .cont .cont_inner{
width: 550px;
}
#index_philosophy .cont h2{
font-family: "Barlow Condensed", sans-serif;
font-weight: 800;
font-style: normal;
font-size: 12rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 60px;
}
#index_philosophy .cont .read{
font-weight: 600;
font-size: 3.4rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}
#index_philosophy .cont p{
line-height: 2;
}
#index_philosophy .btn_viewmore a{
    border: 1px solid #131313;
}

/*--INDEX_HISTORY-------------*/
#index_history{
background-color: #EED058;
color: #0A5E3D;
text-align: center;
padding-top: 215px;
}
#index_history h2{
font-family: "Barlow Condensed", sans-serif;
font-weight: 800;
font-style: normal;
font-size: 12rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 60px;
}
#index_history .read{
font-weight: 600;
font-size: 4.2rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}
#index_history .cont_ill{
margin-top: 60px;
    background-color: #0A5E3D;
    height: 400px;
    background-image: url(../../images/index_history_ill.svg);
    background-repeat: no-repeat;
    background-position: center center;
}

/*-- HISTORY NAV --*/
.history_nav {
    width: 100%;
    background: #EED058;
    padding: 80px 0 150px;
    overflow-x: auto;
}

.history_nav ul {
    display: flex;
    width: 1280px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
}

.history_nav ul li {
    flex: 0 0 256px;
    min-width: 0;
}

.history_nav ul li a {
    display: block;
    color: inherit;
    text-decoration: none;
}

.history_nav_line {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    margin-bottom: 18px;
}

.history_nav_line .dot {
    display: block;
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: currentColor;
}

.history_nav_line .line {
    display: block;
    flex: 0 0 220px;
    width: 220px;
    height: 4px;
    background: currentColor;
}

.history_nav_title,
.history_nav_year {
    display: block;
    padding-left: 30px;
}

.history_nav_title {
    font-size: 2rem;
    font-weight: 600;
    line-height: 1.5;
    margin-bottom: 4px;
}

.history_nav_year {
    font-size: 1.8rem;
    font-weight: 800;
    line-height: 1.5;
}

/* 各時代のカラー */
.history_01 { color: #0A5E3D; }
.history_02 { color: #3C64AA; }
.history_03 { color: #DB491B; }
.history_04 { color: #4F2968; }
.history_05 { color: #B84165; }


/*--INDEX_HISTORY_TIMELINE-------------*/
#index_history_timeline {
    width: 100%;
    background-color: #EED058;
    color: #0A5E3D;
    overflow: clip;
}

/* 各年代のブロック */
#index_history_timeline .history_item {
    display: grid;
    grid-template-columns: 300px 70px minmax(0, 1fr);
    column-gap: 40px;
    width: 100%;
    max-width: 1440px!important;
    margin: 0 auto;
    padding: 30px 0 150px;
    position: relative;
}

/* 年代エリア */
#index_history_timeline .history_year {
    grid-column: 1;
    grid-row: 1;
    position: sticky;
    top: 40px;
    align-self: start;
    min-width: 0;
}

#index_history_timeline .history_year p {
    margin: 0 0 10px;
}

#index_history_timeline .history_year .year {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 5.5rem;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: 0.08em
}

#index_history_timeline .history_year .en {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 3.2rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.08em
}

#index_history_timeline .history_year .ja {
    font-size: 3.6rem;
    font-weight: 800;
    line-height: 1.5;
}

/* 丸と縦線 */
#index_history_timeline .history_marker {
    grid-column: 2;
    grid-row: 1;
    position: relative;
    min-height: 100%;
}

#index_history_timeline .history_marker::before {
    content: "";
    position: absolute;
    top: 24px;
    bottom: -180px;
    left: 50%;
    width: 2px;
    background-color: currentColor;
    transform: translateX(-50%);
}

#index_history_timeline .history_marker .dot {
    position: absolute;
    top: 0;
    left: 50%;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background-color: currentColor;
    transform: translateX(-50%);
}

#index_history_timeline .history_last .history_marker::before {
    bottom: 0;
}

/* 出来事エリア */
#index_history_timeline .history_content {
    grid-column: 3;
    grid-row: 1;
    min-width: 0;
    font-size: 1.7rem;
}

#index_history_timeline .history_content h3 {
    margin: -5px 0 12px;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 7.8rem;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: 0.08em
}

#index_history_timeline .history_content .read {
    margin: 0 0 36px;
    font-size: 4.2rem;
    font-weight: 600;
}
#index_history_timeline .history_content .heading {
    font-size: 2.6rem;
    font-weight: 600;
}

#index_history_timeline .history_content p {
    line-height: 2;
    margin-bottom: 1em
}

/* 写真 */
#index_history_timeline .history_content .photo,
#index_history_timeline .history_content .movie {
    margin: 24px 0;
}

#index_history_timeline .history_content .photo img,
#index_history_timeline .history_content .movie video {
    display: block;
    width: 100%;
    height: auto;
    border: 10px solid #FFFFFF;
}
#index_history_timeline .history_content .movie video{
width: 800px;
height: auto
}
#index_history_timeline .history_content .photo img{
width: 380px;
height: auto
}
#index_history_timeline .history_content .photo.big img{
width: 800px;
height: auto
}

#index_history_timeline .history_content .photo.tow {
display: flex;
gap: 24px;
}

/* 各年代のカラー */
#index_history_timeline .history_01 {
    color: #0A5E3D;
}
#index_history_timeline .history_02 {
    color: #3C64AA;
}
#index_history_timeline .history_03 {
    color: #DB491B;
}
#index_history_timeline .history_04 {
    color: #4F2968;
}
#index_history_timeline .history_05 {
    color: #B84165;
}
/* 写真のキャプション */
#index_history_timeline .cap {
    font-size: 1.3rem;
}
.history_end{
text-align: center;
font-size: 3.0rem;
font-weight: 600;
color: #B84165;
padding-top: 0px;
padding-bottom: 140px;
line-height: 2;
}

/*--INDEX_NEWS-------------*/
#index_news{
background-color: #E3DAD4;
padding-top: 145px;
padding-bottom: 175px;
color: #1E3A75
}
.index_news_inner{
width: 100%;
max-width: 1200px;
margin-left: auto;
margin-right: auto;
position: relative;
display: flex;
justify-content: space-between;
align-items: center;
align-items: stretch;
}
#index_news .heading{
display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: stretch;
}
#index_news .heading h2{
font-family: "Barlow Condensed", sans-serif;
font-weight: 800;
font-style: normal;
font-size: 7.7rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}
#index_news .heading .read{
font-weight: 600;
font-size: 2.5rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}
#index_news .heading .btn_viewmore{
margin-top: auto;
}
#index_news .cont{
width: 960px;
}
#index_news dl,
.news_list dl{
    margin-left: 0px;
    margin-right: 10px;
    padding: 0px;
    margin-bottom: 10px;
    border-top: 1px solid #1E3A75;
}
#index_news dl .list_line,
.news_list dl .list_line{
border-bottom: 1px solid #1E3A75;
padding: 40px 30px;
display: flex
}
#index_news dt,
.news_list dt{
width: 120px;
font-size: 1.5rem
}
#index_news dd,
.news_list dd{
font-size: 1.7rem;
font-weight: 600;
}
#index_news a,
.news_list a{
text-decoration: none;
color: #1E3A75
}
#index_news dl .list_line:hover,
.news_list dl .list_line:hover{
background-color: #1E3A75;
color: #FFF;
}
#index_news dl .list_line:hover a,
.news_list dl .list_line:hover a{
color: #FFF;
}


/*--INDEX_WORKS-------------*/
#index_works{}
#index_works .swiper-container{
position: relative;
color: #FFF;
padding-bottom: 10px;
}
#index_works .swiper-container .ttl_bx{
position: absolute;
left: 0;
right: 0;
text-align: center;
width: 100%;
z-index: 10;
padding-top: 200px;
}
#index_works .swiper-container .ttl_bx h2{
font-family: "Barlow Condensed", sans-serif;
font-weight: 800;
font-style: normal;
font-size: 12rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 10px;
}
#index_works .swiper-container .ttl_bx .ja{
font-weight: 600;
font-size: 2.0rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}
#index_works .swiper-slide{
width: 100%;
height: 700px;
position: relative
}
#index_works .swiper-slide img{
width: 100%;
height: 100%;
object-fit: cover;
object-position: center center;
display: block;
}
#index_works .swiper-slide {
    position: relative;
}

#index_works .swiper-slide::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.2);
    pointer-events: none;
}

#index_works .swiper-slide .meta_bx{
padding-top: 390px;
position: absolute;
left: 0;
right: 0;
text-align: center;
width: 100%;
z-index: 10;
}
#index_works .swiper-slide .meta_bx .ttl{
font-weight: 600;
font-size: 4.2rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}

.swiper-button-prev::after,
.swiper-button-next::after {
    display: none!important;
}

.swiper-button-prev,
.swiper-button-next {
    width: 48px!important;
    height: 70px!important;
    background: none!important;
}
.swiper-button-prev{
left: 40px!important
}
.swiper-button-next{
right: 40px!important
}

.swiper-button-prev img,
.swiper-button-next img {
    display: block!important;
    width: 100%!important;
    height: 100%!important;
    object-fit: contain!important;
}
/* ページネーション全体 */
#index_works .swiper-pagination {
    position: absolute;
    bottom: 20px;
    left: 0;
    width: 100%;
    z-index: 20;
}

/* 丸の共通設定 */
#index_works .swiper-pagination-bullet {
    width: 14px;
    height: 14px;
    margin: 0 10px;
    background: transparent;
    border: 1px solid #000;
    border-radius: 50%;
    opacity: 1;
}

/* アクティブ時 */
#index_works .swiper-pagination-bullet-active {
    background: #000;
    border-color: #000;
}

/*--INDEX_RECRUIT-------------*/
#index_recruit{
background-color: #EB8C98;
text-align: center;
padding-top: 220px;
padding-bottom: 180px;
color: #FFF
}
#index_recruit h2{
margin-bottom: 40px;
}
#index_recruit .read{
font-weight: 600;
font-size: 1.7rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}

/*--INDEX_RECRUIT-------------*/
#index_recruit{
background-color: #EB8C98;
text-align: center;
padding-top: 220px;
padding-bottom: 180px;
color: #FFF
}
#index_recruit h2{
margin-bottom: 40px;
}
#index_recruit .read{
font-weight: 600;
font-size: 1.7rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}

/*--INDEX_CONTACT-------------*/
#index_contact{
    background-color: #144F9B;
    text-align: center;
    height: 720px;
    padding-top: 380px;
    color: #FFF;
    background-image: url(../../images/index_contact_bg.svg);
    background-repeat: no-repeat;
    background-position: center bottom;
}

#index_contact .read{
font-size: 1.7rem;
letter-spacing: 0.05em;
}


/*--FOOTER-------------*/
footer {
background-color: #E3DAD4;
display: flex;
flex-direction: row-reverse
}
footer .gmap,
footer .cont{
width: 50%;
}
footer .gmap iframe{
width: 100%;
height: 670px;
filter: grayscale(100%);
}
footer .cont{
display: flex;
justify-content: center;
align-items: center;
font-size: 1.4rem;
}
footer .cont .logo{
margin-bottom: 20px;
float: left;
margin-right: 70px;
}
footer .cont .logo img{
width: 320px;
height: auto
}
footer .cont .adress{
line-height: 2
}
footer ul.ft_nav {
margin-top: 60px;
margin-bottom: 30px;
display: flex;
align-items: flex-end;
gap:30px;
clear: both
}
footer ul.ft_nav li {}
footer ul.ft_nav li.privacy {
font-size: 1.0rem;
}
footer ul.ft_nav li a{
text-decoration: none;
position: relative;
color: inherit
}
footer ul.ft_nav li a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -3px;
    width: 100%;
    height: 1px;
    background: #000;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.3s ease;
}
footer ul.ft_nav li a:hover::after {
    transform: scaleX(1);
}
footer ul.ft_sns {
margin-bottom: 23px;
display: flex;
gap:23px;
padding-top: 20px;
}
footer .bnr_rec {
margin-bottom: 40px;
}
footer .bnr_rec img{
width: 270px;
height: auto
}

footer ul.ft_link {
display: flex;
flex-wrap: wrap;
gap: 15px;
width: 590px;
margin-bottom: 30px;
}
footer ul.ft_link li {
width: calc(calc(100% - 30px)/3)
}
footer ul.ft_link li img{
width: 100%;
height: auto
}

.copyright{
color: #AAAAAA;
font-size: 1.0rem;
}

/*--SUB_PAGE-------------*/
/*--HEADER_SUB-------------*/
header#sub {
position: relative;
width: 100%;
height: 280px;
}
header#sub h1 {
padding: 16px 33px 10px 16px;
  margin-left: 0px;
  background-color: #FFF;
  display: inline-block;
}
header#sub h1 img{
width: 245px;
height: auto;
position: relative;
z-index: 10;
}


/*--下層コンテンツヘッダ-------------*/
.heading.g_contents{
position: relative;
width: 100%;
max-width: 1200px;
margin-left: auto;
margin-right: auto;
}
.heading.g_contents h2{
 position: relative;
    z-index: 1;
    font-family: "Barlow Condensed", sans-serif;
    font-weight: 800;
    font-style: normal;
    font-size: 12rem;
    letter-spacing: 0.05em;
    line-height: 1;
    margin-bottom: 20px;
}
.heading.g_contents .read{
    position: relative;
    z-index: 1;
    font-weight: 600;
    font-size: 3rem;
    letter-spacing: 0.05em;
    line-height: 1;
    margin-bottom: 60px;
}

/*--ABOUT_会社概要-------------*/
.page_about{
background-color: #E3DAD4;
}
#about_container{
width: 100%;
margin-left: auto;
margin-right: auto;
}
#about_container a{
color: #FFF
}
.about_mid_ttl_set{}
.about_mid_ttl_set h2{
font-family: "Barlow Condensed", sans-serif;
font-weight: 500;
font-style: normal;
font-size: 6.2rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 10px;
color: #FFF
}
.about_mid_ttl_set .ja{
font-size: 2.2rem;
font-weight: 500;
letter-spacing: 0.1em;
margin-bottom: 15px;
}

.page_about .cont_innner{
width: 1200px;
margin-left: auto;
margin-right: auto;
line-height: 2
}

.about_company_wrap{
background-color: #3C64AA;
padding-top: 50px;
padding-bottom: 100px;
color: #FFF
}
table.company_tbl{
width: 100%;
letter-spacing: 0.1em;
}
table.company_tbl th,
table.company_tbl td{
    padding: 15px 100px 15px 0;
    border-bottom: 1px solid #FFF;
    vertical-align: top
}
table.company_tbl th{
font-weight: 600;
white-space: nowrap
}
table.company_tbl .office{
display: block;
margin-bottom: 1em
}

.about_quolity_wrap{
background-color: #2B7D5F;
padding-top: 50px;
padding-bottom: 100px;
color: #FFF
}

table.quolity_tbl{
width: 100%;
}
table.quolity_tbl th,
table.quolity_tbl td{
    padding: 15px 100px 15px 0px;
    display: block
}
table.quolity_tbl th{
font-weight: 600;
white-space: nowrap;
border-bottom: 1px solid #FFF;
}

table.quolity_tbl ul.iso li {
    padding-left: 2.5em;
    text-indent: -2.5em;
}
table.quolity_tbl ul.policy{
margin-top: 1em
}
table.quolity_tbl ul.policy li {
    padding-left: 2.5em;
    text-indent: -2.5em;
}

.about_history_wrap{
background-color: #DB491B;
padding-top: 50px;
padding-bottom: 100px;
color: #FFF
}
table.company_tbl.history th{
padding: 15px 0px 15px 0px;
}

/*--SERVICE_事業案内-------------*/
.page_service{
background-color: #F29FAC;
}
.page_service .cont_inner{
width: 680px;
margin-left: auto;
margin-right: auto;
line-height: 2;
}
#service_container{
width: 100%;
margin-left: auto;
margin-right: auto;
}
.page_service .heading.g_contents h2{
    color: #0B2867!important
}
.page_service .heading.g_contents .read{
    color: #0B2867!important
}
.service_header{
margin-bottom: 0px;
text-align: center;
padding-top: 100px;
padding-bottom: 20px;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
}
.service_header .meta{
display: flex;
justify-content: space-between;
text-align: left;
font-family: "Barlow Condensed", sans-serif;
font-weight: 800;
font-style: normal;
font-size: 3.5rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 90px;
}
.service_header h3{
font-size: 20rem;
  font-weight: 800;
  line-height: 1;
  margin-bottom: 80px;
  letter-spacing: 0.1em;
}
.service_content{
padding-bottom: 70px;
padding-top: 50px;
}
#service_ce{
background-color: #0A5E3D;
color: #ECBE53
}
#service_ds{
background-color: #DB491B;
color: #ECBE53
}
#service_at{
background-color: #F29FAC;
color: #0B2867
}
#service_sl{
background-color: #EED058;
color: #0A5E3D
}
#service_gb{
background-color: #5B6CB1;
color: #FFF
}
#service_irb{
background-color: #E3DAD4;
color: #0A5E3D
}
#service_irb a{
color: #0A5E3D
}
#service_rec{
background-color: #FFF;
color: #000!important
}
.service_rec_ttl_set{}
.service_rec_ttl_set h2{
font-family: "Barlow Condensed", sans-serif;
font-weight: 800;
font-style: normal;
font-size: 6.0rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 10px;
}
.service_rec_ttl_set .ja{
font-weight: 600;
font-size: 1.5rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}
.service_rec_ttl_set .read{
font-weight: 600;
font-size: 6.0rem;
letter-spacing: 0.05em;
line-height: 1.7;
margin-bottom: 60px;
}
.bnr_wrap_rec{
    width: 100%;
    padding-top: 100px;
    padding-bottom: 100px;
    text-align: center;
    background-image: url(../../service/images/bg_rec.jpg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    margin-top: 30px;
}

/*--WORKS_施工事例-------------*/
.page_works{
background-color: #E3DAD4;
}
.page_works .cont_inner{
line-height: 2
}
#works _container{
width: 100%;
margin-left: auto;
margin-right: auto;
}

.page_works .heading.g_contents h2{
    color: #1E3A75!important
}
.page_works .heading.g_contents .read{
    color: #1E3A75!important
}
.works_content{
padding-bottom: 70px;
width: 100%;
max-width: 1200px;
margin-left: auto;
margin-right: auto;
}

.works_name {
    font-size: 5.0rem;
    line-height: 1;
    font-weight: 900;
}
.works_cate_header{
padding-top: 100px;
padding-top: 20px;
}
.works_cate_header h3{
    font-size: 4rem;
    font-weight: 800;
    line-height: 1;
    color: #3C64AA;
    padding-bottom: 30px;
    border-bottom: 3px solid #3C64AA;
    /*font-family: "Barlow Condensed", sans-serif;*/
}
.works_content ul{}
.works_content ul li{
    border-bottom: 3px solid #3C64AA;
    padding-bottom: 30px;
    padding-top: 30px;
    width: 100%
}
.works_content ul li a{
display: flex;
gap : 40px;
align-items: flex-start;
text-decoration: none;
color: #3C64AA!important;
}
.works_content ul li a:hover{
color: inherit
}
.works_content ul li a .date{
font-size: 1.5rem;
width: 160px;
} 
.works_content ul li .thum img{
width: 210px;
height: 160px;
object-fit: cover
}
.works_content ul li a .ttl{
font-size: 2.6rem;
font-weight: 600;
line-height: 1
} 
.works_content ul li a > :last-child {
    margin-left: auto;
}
.works_content ul li .btn_vm{
font-weight: 600;
}
.works_content ul li .btn_vm .arrow_icon{
 color: #3C64AA;
 margin-left: 0.5em
}

.works_content ul li a:hover{
    background-position: right 15px center;
    color: inherit
}

#works_cate01.works_cate_header h3{
    color: #3C64AA;
    border-bottom: 3px solid #3C64AA;
}
#works_cate01.works_content ul li{
    border-bottom: 3px solid #3C64AA;
}
#works_cate01.works_content ul li a{
color: #3C64AA!important;
}
#works_cate01.works_content ul li .btn_vm .arrow_icon{
 color: #3C64AA;
}

#works_cate02 .works_cate_header h3{
    color: #2B7D5F!important;
    border-bottom: 3px solid #2B7D5F!important;
}
#works_cate02.works_content ul li{
    border-bottom: 3px solid #2B7D5F;
}
#works_cate02.works_content ul li a{
color: #2B7D5F!important;
}
#works_cate02.works_content ul li .btn_vm .arrow_icon{
 color: #2B7D5F;
}

#works_cate03 .works_cate_header h3{
    color: #DB491B!important;
    border-bottom: 3px solid #DB491B!important;
}
#works_cate03.works_content ul li{
    border-bottom: 3px solid #DB491B;
}
#works_cate03.works_content ul li a{
color: #DB491B!important;
}
#works_cate03.works_content ul li .btn_vm .arrow_icon{
 color: #DB491B;
}

/*--WORKS_DETAIL-------------*/
#works_cate01.page_detail{
color: #3C64AA;
font-weight: 600;
}
#works_cate02.page_detail{
color: #2B7D5F;
font-weight: 600;
}
#works_cate03.page_detail{
color: #DB491B;
font-weight: 600;
}
.works_cate_header.detail h3{
    font-size: 6rem;
    border-bottom: 3px solid #3C64AA;
    font-family: "Barlow Condensed", sans-serif;
}
.works_interview_header{
display: flex;
align-items: center;
gap : 30px;
flex-wrap: wrap;
padding-top: 20px;
padding-bottom: 30px;
font-size: 2.0rem;
}
.works_interview_header .thum{
position: relative
}
.works_interview_header .thum img.ppl_ph{
width: 160px;
height: auto
}

.itv_ques{
font-size: 2.0rem;
margin-bottom: 2em;
line-height: 1
}
.itv_ans{
font-size: 1.6rem;
margin-bottom: 3em;
line-height: 2
}

.works_detail_ph_single{
width: 100%;
max-width: 830px;
margin-left: auto;
margin-right: auto;
padding-top: 60px;
padding-bottom: 60px;
}
.works_detail_ph_single img{
width: 100%;
height: auto
}

.works_detail_ph_double{
width: 100%;
max-width: 1280px;
margin-left: auto;
margin-right: auto;
padding-top: 60px;
padding-bottom: 60px;
display: flex;
gap: 20px;
}
.works_detail_ph_double img{
width: calc(calc(100% - 20px)/2);
height: auto
}
table.works_data_tbl{
margin-top: 20px;
}
table.works_data_tbl th,
table.works_data_tbl td{
padding-top: 5px;
padding-bottom: 5px;
padding-right: 2em;
font-weight: 600;
}


/*--PHILOSOPHY_経営理念-------------*/
.page_philosophy{
    background-color: #0B2867;
    color: #FFF;
    background-image: url(../../philosophy/images/ill_bg.svg);
    background-repeat: no-repeat;
    background-position: center top 5vh;
    background-size: 100% auto;
}
#philosophy_container{
width: 820px;
margin-left: auto;
margin-right: auto;
padding-bottom: 200px;
}

#philosophy_container .heading{
text-align: center;
margin-bottom: 150px;
}
#philosophy_container .heading h2{
font-size: 16rem !important;
letter-spacing: 0.02em;
font-weight: 800!important;
font-family: "Barlow Condensed", sans-serif;
}
#philosophy_container .heading .ja{
font-weight: 600;
font-size: 3.0rem;
letter-spacing: 0.05em;
line-height: 1;
}
#philosophy_container .philo_cont{
line-height: 2;
font-size: 2.0rem;
}
#philosophy_container .philo_cont .heading_txt{
font-weight: 600;
font-size: 3.0rem;
letter-spacing: 0.05em;
line-height: 2.0;
margin-bottom: 2em
}
#philosophy_container .philo_cont .heading_txt.mt{
margin-top: 4em
}
#philosophy_container .philo_cont p{
margin-bottom: 1.8em
}

/*--NAKATA_PRIDE-------------*/
.page_pride{
    background-color: #DB491B;
    color: #FFF;
    background-image:
    url(../../pride/images/bg01.svg),
    url(../../pride/images/bg02.svg);
background-repeat: no-repeat, no-repeat;
background-position: center top, center bottom;
background-size: 100% auto, 100% auto;
}
#pride_container{
width: 820px;
margin-left: auto;
margin-right: auto;
padding-bottom: 200px;
margin-top: -200px;
}

#pride_container .heading{
text-align: center;
margin-bottom: 150px;
}
#pride_container .heading h2 img{
width: 100%;
  height: auto;
}
#pride_container .heading .ja{
font-weight: 600;
font-size: 3.0rem;
letter-spacing: 0.05em;
line-height: 1;
}
#pride_container .pride_cont{
line-height: 2;
font-size: 2.0rem;
}
#pride_container .pride_cont .heading_txt{
font-weight: 600;
font-size: 3.0rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 2em
}
#pride_container .pride_cont p{
margin-bottom: 1.8em
}
#pride_container .pride_cont .ph{
margin-top: 60px;
margin-bottom: 60px;
}
#pride_container .pride_cont .ph img{
width: 100%;
height: auto
}
#pride_container .pride_cont .ph.shodai{
margin-top: 60px;
margin-bottom: 10px;
width: 80%
}
#pride_president_slide{
font-size: 1.2rem;
overflow: hidden;
width: 80%;
margin-left: auto;
margin-right: 0;
margin-bottom: 60px;
}
#pride_president_slide img{
width: 100%;
height: auto
}

/*--NEWS_お知らせ-------------*/
.page_news{
background-color: #E3DAD4;
color: #1E3A75;
}
#news_container{
width: 100%;
max-width: 1200px;
margin-left: auto;
margin-right: auto;
display: flex;
justify-content: space-between;
align-items: center;
align-items: stretch;
padding-bottom: 110px;
}
#news_container .aside h2{
font-family: "Barlow Condensed", sans-serif;
  font-weight: 800;
  font-style: normal;
  font-size: 10rem;
  letter-spacing: 0.05em;
  line-height: 1;
  margin-bottom: 20px;
}
#news_container .aside .read{
font-weight: 600;
font-size: 3.0rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}
.news_list,
.news_detail{
width: 870px
}

.news_pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 490px;
    padding: 15px 20px;
    box-sizing: border-box;
    background-color: #e5dcd5;
    color: #173d78;
    float: right
}
.news_pagination a {
    color: inherit;
    text-decoration: none;
}
.news_pagination_prev,
.news_pagination_next {
    display: flex;
    align-items: center;
    gap: 16px;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 3rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.04em;
}
.news_pagination_numbers {
    display: flex;
    align-items: center;
    gap: 22px;
    font-size: 1.7rem;
    line-height: 1;
}
.news_pagination_numbers a {
    display: inline-block;
    transition: opacity 0.3s;
}
.news_pagination_numbers a:hover,
.news_pagination_prev:hover,
.news_pagination_next:hover {
    opacity: 0.6;
}
.news_pagination .arrow {
    display: block;
    width: 15px;
    height: 15px;
    border-top: 1px solid currentColor;
    border-right: 1px solid currentColor;
    flex-shrink: 0;
}
.news_pagination .arrow_prev {
    transform: rotate(-135deg);
}
.news_pagination .arrow_next {
    transform: rotate(45deg);
}

.news_detail{
line-height: 2;
font-weight: 600
}
.news_detail .news_entry_header{
    border-bottom: 1px solid #1E3A75;
    padding-bottom: 30px;
    margin-bottom: 50px;
}
.news_detail .news_entry_header .date{
font-size: 1.5rem;
font-weight: 400
}
.news_detail .news_entry_header .ttl{
font-size: 2.0rem;
font-weight: 600
}
.news_detail .ph{
width: 830px;
margin-left: auto;
margin-right: auto;
padding-top: 50px;
padding-bottom: 70px;
}
.news_detail .ph img{
width: 100%;
height: auto
}


/*--PRIVACY_POLICY プライバシーポリシー-------------*/
.page_privacy{
background-color: #FFF;
}
#privacy_container{
width: 1010px;
margin-left: auto;
margin-right: auto;
padding-bottom: 110px;
font-weight: 500!important;
line-height: 2;
}
#privacy_container .heading h2{
padding-bottom: 70px;
text-align: center;
font-size: 3.0rem!important;
font-weight: 600!important;
}
#privacy_container h3{
background-color: #EFEFEF;
padding: 13px 20px;
margin-top: 40px;
margin-bottom: 30px;
font-weight: 600!important;
}


/*--404-------------*/
.page_nf404{
    background-color: #FFF;
    background-image: url(../../images/404_bg.svg);
    background-repeat: no-repeat;
    background-position: center bottom 700px;
    background-size: contain;
}
.page_nf404 .heading{
text-align: center;
padding-bottom: 30vh
}
.page_nf404 .heading h2{
font-size: 20rem;
font-weight: 800;
font-family: "Barlow Condensed", sans-serif;
}
.page_nf404 .heading .read{
font-weight: 600;
font-size: 3.0rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}


/*--CONTACT_お問い合わせ-------------*/
.page_contact{
background-color: #144F9B;
color: #FFF;
}
#contact_container{
width: 1200px;
margin-left: auto;
margin-right: auto;
padding-bottom: 200px;
}

.page_contact.form{
    background-color: #144F9B;
    color: #FFF;
}
.page_contact.form #contact_container{
padding-bottom: 160px;
}

#contact_container .heading{
text-align: center;
color: #FFBC33;
margin-bottom: 90px;
}
#contact_container .heading h2{
font-size: 22rem!important;
font-weight: 800!important;
font-family: "Barlow Condensed", sans-serif;
}
#contact_container .heading .ja{
font-weight: 600;
font-size: 3.0rem;
letter-spacing: 0.05em;
line-height: 1;
}
#contact_container .cate_ttl{
color: #FFF;
text-align: center;
font-weight: 600;
font-size: 2.6rem;
line-height: 1;
padding-bottom: 10px;
}
#contact_container .tel_num{
text-align: center;
margin-bottom: 150px;
}
#contact_container .tel_num .num{
font-size: 6.0rem!important;
font-weight: 800!important;
font-family: "Barlow Condensed", sans-serif;
letter-spacing: 0.08em;
}
.form_flex{
display: flex;
gap: 30px;
}
.form_flex .form_bx{
width: calc(calc(100% - 30px)/2)
}

#contact_container .form_bx{
    padding-bottom: 25px;
    margin-bottom: 25px;
    border-bottom: 1px solid #B5B5B6;
}
#contact_container .form_bx .label{
   font-size: 2.0rem;
   font-weight: 600;
   margin-bottom: 17px;
}
#contact_container .form_bx .label span{
   display: inline-block;
   font-size: 1.6rem;
   background-color: #000;
   color: #FFF;
   padding: 5px 18px;
   margin-right: 12px;
}
#contact_container .form_bx .label span.nes{
   background-color: #FFBC33;
   color: #000;
}
#contact_container .form_field{
width: calc(100% - 30px)!important;
padding: 15px!important;
border: 0;
box-shadow: 0px 0px 0px #CCC inset!important;
font-size: 2.0rem;
}
#contact_container .input_wrap{
background-color: #C3C3C3;
color: #000;
display: flex;
gap :50px;
padding:10px 50px;
width: 300px;
}
#contact_container select{
background-color: #C3C3C3;
color: #000;
border: 0;
padding:10px 50px;
width: 300px;
}
.notice_privacy{
text-align: center;
color: #FFF;
margin-top: 90px;
margin-bottom: 40px;
}
.notice_privacy a{
color: #FFF
}


.form_btn_send {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
    width: 100%;
}
.form_btn_send.second {
    margin-top: 80px;
}
.form_btn_send .submit_btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 400px;
    padding: 30px 60px;
    border: none;
    border-radius: 0;
    background-color: #FFBC33;
    color: #000;
    font-size: 2.6rem;
    font-weight: 600;
    line-height: 1.5;
    text-align: center;
    cursor: pointer;
    box-sizing: border-box;
    transition: background-color 0.3s, color 0.3s;
}
.form_btn_send .submit_btn::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 35px;
    width: 32px;
    height: 32px;
    border-top: 2px solid #000;
    border-right: 2px solid #000;
    transform: translateY(-50%) rotate(45deg);
    box-sizing: border-box;
    transition: border-color 0.3s;
}
/* hover */
.form_btn_send .submit_wrap,
.form_btn_send .submit_wrap_back{
    position:relative;
    display:inline-block;
}

/* hover */
.form_btn_send .submit_btn:hover {
    background-color: #000;
    color: #FFF;
}
.form_btn_send .submit_btn:hover::after {
    border-color: #FFF;
}


.form_btn_send .submit_btn.back {
    background-color: #000;
    color: #FFF;
}
.form_btn_send .submit_btn.back::after {
    border-top: 2px solid #FFF;
    border-right: 2px solid #FFF;
}
/* hover */
.form_btn_send .submit_btn.back:hover {
    background-color: #FFBC33;
    color: #000;
}
.form_btn_send .submit_btn.back:hover::after {
    border-color: #000;
}

.form_btn_send .submit_wrap .submit_btn.back {
    background-color: #000;
    color: #FFF;
}
.form_btn_send .submit_wrap .submit_btn.back::after {
    border-top: 2px solid #FFF;
    border-right: 2px solid #FFF;
}
/* CONFIRM */
.form_btn_send .submit_wrap::after{
    content:"";
    position:absolute;
    top:50%;
    right:35px;
    width:32px;
    height:32px;
    border-top:2px solid #000;
    border-right:2px solid #000;
    transform:translateY(-50%) rotate(45deg);
    box-sizing:border-box;
    pointer-events:none;
}
.form_btn_send .submit_wrap:hover::after{

    border-top:2px solid #FFF;
    border-right:2px solid #FFF;

}
.form_btn_send .submit_wrap_back::after{
    content:"";
    position:absolute;
    top:50%;
    right:35px;
    width:32px;
    height:32px;
    border-top:2px solid #FFF;
    border-right:2px solid #FFF;
    transform:translateY(-50%) rotate(45deg);
    box-sizing:border-box;
    pointer-events:none;
}


/* CONFIRM */
#contact_container .heading.sub h2{
font-size: 12rem!important;
}
#contact_container .heading .message_status{
font-weight: 600;
font-size: 3.0rem;
letter-spacing: 0.05em;
line-height: 1;
color: #FFF;
margin-top: 130px;
}
#contact_container .form_bx.conlirm{
display: flex;
align-items: baseline
}
#contact_container .form_bx.conlirm .label{
width: 30%
}
#contact_container .form_bx.conlirm > :not(.label) {
    flex: 1;
    min-width: 0;
}

#contact_container.thanks_page{
width: 100%!important;
}
#contact_container .form_thaanks_message{
text-align: center;
margin-bottom: 80px;
font-size: 2.0rem;
line-height: 2;
}
#contact_container .form_thanks_notice{
text-align: center;
margin-bottom: 80px;
line-height: 2;
}
#contact_container .form_thanks_notice p{
margin-bottom: 1em
} 

table.formTable{
width: 100%
}
table.formTable th,
table.formTable td{
padding-top: 25px;
padding-bottom: 25px;
border-bottom: 1px solid #B5B5B6;
}
table.formTable th{
   font-size: 2.0rem;
   font-weight: 600;
}























@media screen and (max-width: 520px) {
html {font-size: 62.5%}
body {
background-color: #FFF;
min-width: 320px;
font-family: "Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
font-size: 1.4rem;
-webkit-text-size-adjust: 100%;
animation: fadeIn 2s ease 0s 1 normal;
-webkit-animation: fadeIn 2s ease 0s 1 normal;
}
.pc {
display: none!important;
}
.sp {
display: inherit!important;
}
input{ font-size:16px!important; } /*フォームのフォーカスOFF*/
/* 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;
  font-size:16px;
}
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;
}
button{
        background-color: transparent;
        border: none;
        cursor: pointer;
        outline: none;
        padding: 0;
        appearance: none;
}
/*SP NAV*/
#panel-btn{
  display: inline-block;
  position: fixed;
  width: 40px;
  height: 40px;
  margin: 0px 0 10px;
  right: 10px;
  top: 10px;
  z-index: 9999999;
animation-duration: 2s;
background-color: #FFF;
}
#panel-btn-icon{
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 2px;
  margin: -1px 0 0 -10px;
  background: #727272;
  transition: .2s;
}
#panel-btn-icon:before, #panel-btn-icon:after{
  display: block;
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 20px;
  height: 2px;
  background: #727272;
  transition: .3s;
}
#panel-btn-icon:before{
  margin-top: -8px;
}
#panel-btn-icon:after{
  margin-top: 6px;
}
#panel-btn .close{
  background: transparent;
}
#panel-btn .close:before, #panel-btn .close:after{
  margin-top: 0;
}
#panel-btn .close:before{
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  background: #FFF
}
#panel-btn .close:after{
  transform: rotate(-135deg);
  -webkit-transform: rotate(-135deg);
  background: #FFF
}

#panel-btn.close{
background-color: #0B2867;
}

/*--HEADER-------------*/
header#index {
position: relative;
width: 100%;
height: 100vh;
}
header#index h1 {
position: absolute;
left: 0;
top: 0;
z-index: 5
}
header#index h1 img{
width: 104px;
height: auto
}
/*--MAINVIS-------------*/
#mainVis {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 3;
    width: 100%;
    height: 100vh;
    background-image: url(../../images/mv.jpg);
    background-size: cover;
    background-position: center center;
    display: flex;
    flex-direction: column;
    justify-content: center; /* 上下中央 */
    align-items: center;     /* 左右中央 */
    overflow: hidden;
}
#mainVis .mv_video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    z-index: 4;
}
.mv_video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#mainVis .main_copy{
width: 80%;
margin-left: auto;
margin-right: auto;
display: block!important
}
#mainVis .main_copy .second{
mix-blend-mode: difference;
margin-top: 30px;
}
#mainVis .main_copy img{
width: 100%;
height: auto
}

/*--NAVIGATION-------------*/
nav#gnav {
    position: fixed;
    z-index: 5;
    top: 0;
    background-color: #0B2867!important;
    width: 100%;
    padding: 0px 0px 0px;
    transition: padding 0.3s ease;
    height: 100%;
    display: none
}
nav#gnav .logo img{
width: 104px;
height: auto
}
nav#gnav ul {
display: block;
justify-content: flex-end;
width: 80%;
margin-left: auto;
margin-right: auto;
padding-top: 10vh;
}
nav#gnav ul li {
margin-left: 0px;
margin-bottom: 50px
}
nav#gnav.index {
    background-color: rgba(255,255,255,0);
}
nav#gnav.index ul li a {
    color: #FFF;
}
nav#gnav.index ul li a::after {
    background: #FFF;
}
nav#gnav ul li a {
    position: relative;
    color: #FFF;
    font-size: 2.0rem;
    font-weight: 600;
    text-decoration: none;
}
nav#gnav ul li a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -5px;
    width: 100%;
    height: 1px;
    background: #FFF;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.3s ease;
}
nav#gnav ul li a:hover::after {
    transform: scaleX(1);
}

/*--INDEX_INTRODUCTION-------------*/
#index_introduction{
width: 100%;
height: 370px;
background-color: #5B6CB1;
color: #FFF;
text-align: center;
position: relative;
overflow: hidden;
}
#index_introduction p{
position: absolute;
    z-index: 2;
    top: 50%;
    left: 0;
    width: 100%;
    transform: translateY(-50%);
    text-align: center;
    font-size: 2.6rem;
    font-weight: 600;
    letter-spacing: 0.7em;
}
.txt_scroll {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    overflow: hidden;
    transform: translateY(-50%);
    white-space: nowrap;
}
.txt_scroll_inner {
    display: flex;
    width: max-content;
    animation: textLoop 40s linear infinite;
}
.txt_scroll_inner img {
    display: block;
    flex-shrink: 0;
    width: auto;
    height: 370px;
    max-width: none;
}

/*--INDEX_OUTLINE-------------*/
#index_outline{
    display: block;
    background-color: #DB491B;
    color: #FFF;
    height: auto;
    background-image: url(../../images/index_outline_bg_sp.svg);
    background-position: center center;
    background-size: cover;
}
#index_outline .ill,
#index_outline .cont{
width: 100%;
}
#index_outline .ill{
display: flex;
justify-content: center; /* 左右中央 */
align-items: flex-end;
padding-top: 30px
}
#index_outline .ill img{
width: 90%;
height: auto
}
#index_outline .cont{
display: flex;
justify-content: center;
align-items: center;
position: relative;
z-index: 3;
padding-top: 70px;
padding-bottom: 70px;
}
#index_outline .cont .cont_inner{
width: 90%;
margin-left: auto;
margin-right: auto
}
#index_outline .cont h2{
font-size: 3.0rem;
font-weight: 600;
margin-bottom: 1em
}
#index_outline .cont p{
font-size: 1.4rem;
margin-bottom: 1.5em;
line-height: 2;
}

/*--BTN_MORE-------------*/
.btn_viewmore{
margin-top: 50px;
}
.btn_viewmore a{
    display: inline-block;
    font-family: "Barlow Condensed", sans-serif;
    font-weight: 800;
    font-style: normal;
    font-size: 1.8rem;
    color: #D33912!important;
    text-decoration: none;
    background-color: #FFF;
    padding-left: 20px;
    padding-right: 60px;
    line-height: 58px;
    letter-spacing: 0.08em;
    background-image: url(../../images/btn_viewmore_arrow.svg);
    background-position: right 20px center;
    background-repeat: no-repeat;
}
.btn_viewmore a:hover{
    background-position: right 15px center;
}
/*--BTN_MORE TRANS-------------*/
.btn_viewmore.trans a{
    color: #FFF!important;
    background-color: transparent;
    background-image: url(../../images/btn_viewmore_arrow_w.svg);
    border: 1px solid #FFFFFF!important;
}
/*--BTN_MORE TRANS-------------*/
.btn_viewmore.trans.bk a{
    color: #000!important;
    background-color: transparent;
    background-image: url(../../images/btn_viewmore_arrow_bk.svg);
    border: 1px solid #000!important;
}

/*--INDEX_ABOUT-------------*/
#index_about{
    display: block;
    flex-direction: row-reverse;
    background-color: #FFF;
}
#index_about .ph,
#index_about .cont{
width: 100%;
height: auto;
}
#index_about .ph{
    background-image: url(../../images/index_about_ph.jpg);
    background-position: center center;
    background-size: cover;
    height: 110vw;
}
#index_about .cont{
    background-image: url(../../images/index_about_bg.svg);
    background-position: center top;
    background-size: 145% auto;
     background-repeat: no-repeat;
     background-color: #E3DAD4;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-top: 140px;
    padding-bottom: 70px;
}
#index_about .cont .cont_inner{
width: 90%;
}
#index_about .cont h2{
font-family: "Barlow Condensed", sans-serif;
font-weight: 800;
font-style: normal;
font-size: 7.2rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 60px;
}
#index_about .cont .read{
font-weight: 600;
font-size: 2.4rem;
letter-spacing: 0.05em;
line-height: 2;
margin-bottom: 30px;
}
#index_about .cont p{
line-height: 2;
}
#index_about .btn_viewmore a{
    border: 1px solid #131313;
}

/*--INDEX_PHILOSOPY-------------*/
#index_philosophy{
    display: block;
    background-color: #FFF;
}
#index_philosophy .ph,
#index_philosophy .cont{
width: 100%;
height: auto;
}
#index_philosophy .ph {
    position: relative;
    overflow: hidden;
    --split: 50%;
    cursor: ew-resize;
    touch-action: pan-y;
    user-select: none;
    height: 110vw
}

#index_philosophy .ph_image {
    position: absolute;
    inset: 0;
}

#index_philosophy .ph_image img {
    display: block;
    width: 100%;
    height: 110vw;
    object-fit: cover;
    pointer-events: none;
}

/* カラー写真 */
#index_philosophy .ph_image_color {
    z-index: 1;
}

/* モノクロ写真 */
#index_philosophy .ph_image_mono {
    z-index: 2;
    clip-path: inset(0 calc(100% - var(--split)) 0 0);
}

/* スライダーの取っ手 */
#index_philosophy .ph_slider {
    position: absolute;
    z-index: 3;
    top: 0;
    bottom: 0;
    left: var(--split);
    width: 48px;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: ew-resize;
    outline: none;
}

/* 白い縦線 */
#index_philosophy .ph_slider::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 4px;
    background: #FFF;
    transform: translateX(-50%);
}

/* 左右の三角形 */
#index_philosophy .ph_arrow {
    position: absolute;
    top: 50%;
    width: 0;
    height: 0;
    transform: translateY(-50%);
}

#index_philosophy .ph_arrow_left {
    left: 4px;
    border-top: 13px solid transparent;
    border-bottom: 13px solid transparent;
    border-right: 13px solid #FFF;
}

#index_philosophy .ph_arrow_right {
    right: 4px;
    border-top: 13px solid transparent;
    border-bottom: 13px solid transparent;
    border-left: 13px solid #FFF;
}

#index_philosophy .ph_slider:focus-visible {
    outline: 2px solid #FFF;
    outline-offset: -5px;
}
#index_philosophy .cont{
background-color: #0B2867;
background-image: url(../../images/index_philosophy_bg.svg);
background-position: center top;
background-size: 145% auto;
background-repeat: no-repeat;
display: flex;
justify-content: center;
align-items: center;
color: #FFF;
padding-top: 140px;
padding-bottom: 70px;
}
#index_philosophy .cont .cont_inner{
width: 90%;
}
#index_philosophy .cont h2{
font-family: "Barlow Condensed", sans-serif;
font-weight: 800;
font-style: normal;
font-size: 7.2rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 60px;
}
#index_philosophy .cont .read{
font-weight: 600;
font-size: 2.4rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}
#index_philosophy .cont p{
line-height: 2;
}
#index_philosophy .btn_viewmore a{
    border: 1px solid #131313;
}

/*--INDEX_HISTORY-------------*/
#index_history{
background-color: #EED058;
color: #0A5E3D;
text-align: center;
padding-top: 110px;
}
#index_history h2{
font-family: "Barlow Condensed", sans-serif;
font-weight: 800;
font-style: normal;
font-size: 7.2rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}
#index_history .read{
font-weight: 600;
font-size: 2.4rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}
#index_history .cont_ill{
    margin-top: 30px;
    background-color: #0A5E3D;
    height: 170px;
    background-image: url(../../images/index_history_ill.svg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: auto 100%;
}

/*-- HISTORY NAV --*/
.history_nav {
    width: 100%;
    background: #EED058;
    padding: 40px 0 70px;
    overflow-x: auto;
    overflow-x: scroll
}

.history_nav ul {
    display: flex;
    width: 1280px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
}

.history_nav ul li {
    flex: 0 0 256px;
    min-width: 0;
}

.history_nav ul li a {
    display: block;
    color: inherit;
    text-decoration: none;
}

.history_nav_line {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    margin-bottom: 18px;
}

.history_nav_line .dot {
    display: block;
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: currentColor;
}

.history_nav_line .line {
    display: block;
    flex: 0 0 220px;
    width: 220px;
    height: 4px;
    background: currentColor;
}

.history_nav_title,
.history_nav_year {
    display: block;
    padding-left: 30px;
}

.history_nav_title {
    font-size: 2rem;
    font-weight: 600;
    line-height: 1.5;
    margin-bottom: 4px;
}

.history_nav_year {
    font-size: 1.8rem;
    font-weight: 800;
    line-height: 1.5;
}

/* 各時代のカラー */
.history_01 { color: #0A5E3D; }
.history_02 { color: #3C64AA; }
.history_03 { color: #DB491B; }
.history_04 { color: #4F2968; }
.history_05 { color: #B84165; }

/*--INDEX_HISTORY_TIMELINE-------------*/
#index_history_timeline {
    width: 100%;
    background-color: #EED058;
    color: #0A5E3D;
    overflow: clip;
}
/* 各年代のブロック */
    #index_history_timeline .history_item {
        grid-template-columns: 24px minmax(0, 1fr);
        column-gap: 16px;
        padding: 20px 20px 70px;
    }

    /* タイムラインを左側へ */
#index_history_timeline .history_marker {
        grid-column: 1;
        grid-row: 1 / span 2;
    }

#index_history_timeline .history_marker::before {
        top: 24px;
        bottom: -70px;
    }

/* 年代情報 */
#index_history_timeline .history_year {
        grid-column: 2;
        grid-row: 1;
        position: static;
        margin-bottom: 48px;
    }

    /* 出来事 */
#index_history_timeline .history_content {
        grid-column: 2;
        grid-row: 2;
    }

#index_history_timeline .history_year .year {
        font-size: 5.5rem;
    }

    #index_history_timeline .history_year .en {
        font-size: 3.2rem;
    }

    #index_history_timeline .history_year .ja {
        font-size: 2.4rem;
    }

    #index_history_timeline .history_content h3 {
        font-size:  4.6rem;
        overflow-wrap: anywhere;
    }

    #index_history_timeline .history_content .read {
        font-size: 2.4rem;
    }
#index_history_timeline .history_content .heading {
    font-size: 1.4rem;
    font-weight: 600;
}
    #index_history_timeline .history_content .photo_tow {
        grid-template-columns: 1fr;
    }
/* 写真 */
#index_history_timeline .history_content .photo,
#index_history_timeline .history_content .movie {
    margin: 24px 0;
}

#index_history_timeline .history_content .photo img,
#index_history_timeline .history_content .movie video {
    display: block;
    width: 100%;
    height: auto;
    border: 10px solid #FFFFFF;
}
#index_history_timeline .history_content .movie video{
width: 100%;
height: auto
}
#index_history_timeline .history_content .photo img{
width: 100%;
height: auto
}
#index_history_timeline .history_content .photo.big img{
width: 100%;
height: auto
}

#index_history_timeline .history_content .photo.tow {
display: block;
gap: 24px;
}
#index_history_timeline .history_content .photo.tow img{
margin-bottom: 24px;
}
/* 写真のキャプション */
#index_history_timeline .cap {
    font-size: 1.3rem;
}
.history_end{
text-align: center;
font-size: 2.0rem;
font-weight: 600;
color: #B84165;
padding-top: 120px;
padding-bottom: 100px;
line-height: 2;
width: 80%;
margin-left: auto;
margin-right: auto
}

/*--INDEX_NEWS-------------*/
#index_news{
background-color: #E3DAD4;
padding-top: 70px;
padding-bottom: 90px;
color: #1E3A75
}
.index_news_inner{
width: 90%;
max-width: 90%;
margin-left: auto;
margin-right: auto;
position: relative;
display: block;
justify-content: space-between;
align-items: center;
align-items: stretch;
}
#index_news .heading{
display: block;
    flex-direction: column;
    justify-content: space-between;
    align-items: stretch;
}
#index_news .heading h2{
font-family: "Barlow Condensed", sans-serif;
font-weight: 800;
font-style: normal;
font-size: 7.7rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}
#index_news .heading .read{
font-weight: 600;
font-size: 2.5rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}
#index_news .heading .btn_viewmore{
margin-top: auto;
display: none
}
#index_news .cont{
width: 100%;
}
#index_news dl,
.news_list dl{
    margin-left: 0px;
    margin-right: 10px;
    padding: 0px;
    margin-bottom: 10px;
    border-top: 1px solid #1E3A75;
}
#index_news dl .list_line,
.news_list dl .list_line{
border-bottom: 1px solid #1E3A75;
padding: 40px 0px;
display: block
}
#index_news dt,
.news_list dt{
width: 100%;
font-size: 1.5rem
}
#index_news dt{
margin-bottom: 10px;
}
#index_news dd,
.news_list dd{
font-size: 1.7rem;
font-weight: 600;
}
#index_news a,
.news_list a{
text-decoration: none;
color: #1E3A75
}
#index_news dl .list_line:hover,
.news_list dl .list_line:hover{
background-color: #1E3A75;
color: #FFF;
}
#index_news dl .list_line:hover a,
.news_list dl .list_line:hover a{
color: #FFF;
}


/*--INDEX_WORKS-------------*/
#index_works{}
#index_works .swiper-container{
position: relative;
color: #FFF;
padding-bottom: 10px;
}
#index_works .swiper-container .ttl_bx{
position: absolute;
left: 0;
right: 0;
text-align: center;
width: 100%;
z-index: 10;
padding-top: 22vh;
}
#index_works .swiper-container .ttl_bx h2{
font-family: "Barlow Condensed", sans-serif;
font-weight: 800;
font-style: normal;
font-size: 7.2rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 10px;
}
#index_works .swiper-container .ttl_bx .ja{
font-weight: 600;
font-size: 2.0rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}
#index_works .swiper-slide{
width: 100%;
height: 90vh;
position: relative;
 overflow: hidden;
}
#index_works .swiper-slide img{
width: auto;
height: 100%;
position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    max-width: none;
}
#index_works .swiper-slide .meta_bx{
padding-top: 60vh;
position: absolute;
left: 0;
right: 0;
text-align: center;
width: 90%;
z-index: 10;
line-height: 1.5;
margin-left: auto;
margin-right: auto
}
#index_works .swiper-slide .meta_bx .ttl{
font-weight: 600;
font-size: 2.4rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}

.swiper-button-prev::after,
.swiper-button-next::after {
    display: none!important;
}

.swiper-button-prev,
.swiper-button-next {
    width: 30px!important;
    height: 44px!important;
    background: none!important;
}
.swiper-button-prev{
left: 40px!important
}
.swiper-button-next{
right: 40px!important
}

.swiper-button-prev img,
.swiper-button-next img {
    display: block!important;
    width: 100%!important;
    height: 100%!important;
    object-fit: contain!important;
}
/* ページネーション全体 */
#index_works .swiper-pagination {
    position: absolute;
    bottom: 20px;
    left: 0;
    width: 100%;
    z-index: 20;
}

/* 丸の共通設定 */
#index_works .swiper-pagination-bullet {
    width: 14px;
    height: 14px;
    margin: 0 10px;
    background: transparent;
    border: 1px solid #000;
    border-radius: 50%;
    opacity: 1;
}

/* アクティブ時 */
#index_works .swiper-pagination-bullet-active {
    background: #000;
    border-color: #000;
}

/*--INDEX_RECRUIT-------------*/
#index_recruit{
background-color: #EB8C98;
text-align: center;
padding-top: 110px;
padding-bottom: 90px;
color: #FFF
}
#index_recruit h2{
margin-bottom: 20px;
}
#index_recruit h2 img{
width: 90%;
height: auto
}
#index_recruit .read{
font-weight: 600;
font-size: 1.7rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}
#index_recruit p{
padding-left: 10%;
padding-right: 10%;
}


/*--INDEX_CONTACT-------------*/
#index_contact{
    background-color: #144F9B;
    text-align: center;
    height: 80vh;
    padding-top: 40vh;
    color: #FFF;
    background-image: url(../../images/index_contact_bg_sp.svg);
    background-repeat: no-repeat;
    background-position: center bottom;
}

#index_contact .read{
font-size: 1.7rem;
letter-spacing: 0.05em;
}

/*--FOOTER-------------*/
footer {
background-color: #E3DAD4;
display: block;
flex-direction: row-reverse;
}
footer .gmap,
footer .cont{
width: 100%;
}
footer .gmap iframe{
width: 100%;
height: 100vw;
filter: grayscale(100%);
}
footer .cont{
display: flex;
justify-content: center;
align-items: center;
font-size: 1.4rem;
padding-top: 80px;
text-align: center;
padding-bottom: 50px;
}
footer .cont .logo{
margin-bottom: 20px;
float: none;
margin-right: auto;
}
footer .cont .logo img{
width: 320px;
height: auto
}
footer .cont .adress{
line-height: 2;
margin-bottom: 2em
}
footer ul.ft_nav {
margin-top: 50px;
margin-bottom: 30px;
display: block;
align-items: flex-end;
gap: 30px;
clear: both
}
footer ul.ft_nav li {
font-size: 1.8rem;
margin-bottom: 1em;
font-weight: 600
}
footer ul.ft_nav li.privacy {
font-size: 1.4rem;
}
footer ul.ft_nav li a{
text-decoration: none;
position: relative;
color: #000
}
footer ul.ft_nav li a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -3px;
    width: 100%;
    height: 1px;
    background: #000;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.3s ease;
}
footer ul.ft_nav li a:hover::after {
    transform: scaleX(1);
}
footer ul.ft_sns {
margin-bottom: 23px;
display: flex;
gap:23px;
padding-top: 20px;
justify-content: center
}
footer .bnr_rec {
margin-bottom: 40px;
}
footer .bnr_rec img{
width: 270px;
height: auto
}

footer ul.ft_link {
display: flex;
flex-wrap: wrap;
gap: 15px;
width: 90%;
margin-bottom: 30px;
margin-left: auto;
margin-right: auto;
justify-content: center
}
footer ul.ft_link li {
width: calc(calc(100% - 15px)/2)
}
footer ul.ft_link li img{
width: 100%;
height: auto
}
footer a{
text-decoration: none!important
}
.copyright{
color: #AAAAAA;
font-size: 1.0rem;
}

/*--SUB_PAGE-------------*/
/*--HEADER_SUB-------------*/
header#sub {
position: relative;
width: 100%;
height: 130px;
}
header#sub h1 {
padding: 0;
  margin-left: 0px;
  background-color: #FFF;
  display: inline-block;
}
header#sub h1 img{
width: 104px;
height: auto;
position: relative;
z-index: 10;
}

/*--下層コンテンツヘッダ-------------*/
.heading.g_contents{
position: relative;
width: 90%;
max-width: 90%;
margin-left: auto;
margin-right: auto;
}
.heading.g_contents h2{
 position: relative;
    z-index: 1;
    font-family: "Barlow Condensed", sans-serif;
    font-weight: 800;
    font-style: normal;
    font-size: 8.3rem;
    letter-spacing: 0.05em;
    line-height: 1;
    margin-bottom: 30px;
}
.heading.g_contents .read{
    position: relative;
    z-index: 1;
    font-weight: 600;
    font-size: 1.5rem;
    letter-spacing: 0.05em;
    line-height: 1;
    margin-bottom: 30px;
}

/*--ABOUT_会社概要-------------*/
.page_about{
background-color: #E3DAD4;
}
#about_container{
width: 100%;
margin-left: auto;
margin-right: auto;
}
.about_mid_ttl_set{}
.about_mid_ttl_set h2{
font-family: "Barlow Condensed", sans-serif;
font-weight: 800;
font-style: normal;
font-size: 4.9rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 10px;
color: #FFF
}
.about_mid_ttl_set .ja{
font-weight: 600;
font-size: 2.0rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}

.page_about .cont_innner{
width: 90%;
margin-left: auto;
margin-right: auto;
line-height: 2
}

.about_company_wrap{
background-color: #3C64AA;
padding-top: 50px;
padding-bottom: 50px;
color: #FFF
}
table.company_tbl{
width: 100%;
font-size: 1.4rem
}
table.company_tbl th,
table.company_tbl td{
    padding: 25px 0px;
    border-bottom: 1px solid #FFF;
    vertical-align: top
}
table.company_tbl th{
font-weight: 600;
white-space: nowrap;
padding-right: 1em
}
table.company_tbl .office{
display: block;
margin-bottom: 1em
}

.about_quolity_wrap{
background-color: #2B7D5F;
padding-top: 50px;
padding-bottom: 50px;
color: #FFF
}

table.quolity_tbl{
width: 100%;
}
table.quolity_tbl th,
table.quolity_tbl td{
    padding: 25px 0px 25px 0px;
    display: block
}
table.quolity_tbl th{
font-weight: 600;
white-space: nowrap;
border-bottom: 1px solid #FFF;
}
table.quolity_tbl ul.iso li {
    padding-left: 1.5em;
    text-indent: -1.5em;
}
table.quolity_tbl ul.policy{
margin-top: 1em
}
table.quolity_tbl ul.policy li {
    padding-left: 1.5em;
    text-indent: -1.5em;
}

.about_history_wrap{
background-color: #DB491B;
padding-top: 50px;
padding-bottom: 50px;
color: #FFF
}
table.company_tbl.history th{
padding: 15px 0px 15px 0px;
padding-right: 1em;
}
table.company_tbl.history td{
padding: 15px 0px 15px 0px;
}

/*--SERVICE_事業案内-------------*/
.page_service{
background-color: #F29FAC;
}
.page_service .cont_inner{
width: 90%;
margin-left: auto;
margin-right: auto;
line-height: 2;
}
#service_container{
width: 100%;
margin-left: auto;
margin-right: auto;
}
.page_service .heading.g_contents h2{
    color: #0B2867!important
}
.page_service .heading.g_contents .read{
    color: #0B2867!important
}
.service_header{
margin-bottom: 0px;
text-align: center;
padding-top: 50px;
padding-bottom: 10px;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
}
.service_header .meta{
display: flex;
justify-content: space-between;
text-align: left;
font-family: "Barlow Condensed", sans-serif;
font-weight: 800;
font-style: normal;
font-size: 1.6rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 50px;
}
.service_header h3{
font-size: 9rem;
  font-weight: 800;
  line-height: 1;
  margin-bottom: 40px;
  letter-spacing: 0.1em;
}
.service_content{
padding-bottom: 30px;
padding-top: 20px;
}
#service_ce{
background-color: #0A5E3D;
color: #ECBE53
}
#service_ds{
background-color: #DB491B;
color: #ECBE53
}
#service_at{
background-color: #F29FAC;
color: #0B2867
}
#service_sl{
background-color: #EED058;
color: #0A5E3D
}
#service_gb{
background-color: #5B6CB1;
color: #FFF
}
#service_irb{
background-color: #E3DAD4;
color: #0A5E3D
}
#service_irb a{
color: #0A5E3D
}
#service_rec{
background-color: #FFF;
color: #000!important
}
.service_rec_ttl_set{}
.service_rec_ttl_set h2{
font-family: "Barlow Condensed", sans-serif;
font-weight: 800;
font-style: normal;
font-size: 6.0rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 10px;
}
.service_rec_ttl_set .ja{
font-weight: 600;
font-size: 1.5rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}
.service_rec_ttl_set .read{
font-weight: 600;
font-size: 3.0rem;
letter-spacing: 0.05em;
line-height: 1.7;
margin-bottom: 60px;
}
.service_content .bnr{
padding-top: 2em
}
.bnr_wrap_rec{
    width: 100%;
    padding-top: 50px;
    padding-bottom: 50px;
    text-align: center;
    background-image: url(../../service/images/bg_rec.jpg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    margin-top: 30px;
}
.bnr_wrap_rec img{
width: 70%;
height: auto
}
.bnr_wrap_rec .btn_viewmore {
    margin-top: 20px!important;
  }
  
/*--WORKS_施工事例-------------*/
.page_works{
background-color: #E3DAD4;
}
.page_works .cont_inner{
line-height: 2
}
#works _container{
width: 90%;
margin-left: auto;
margin-right: auto;
}

.page_works .heading.g_contents h2{
    color: #1E3A75!important
}
.page_works .heading.g_contents .read{
    color: #1E3A75!important
}
.works_content{
padding-bottom: 30px;
width: 90%;
max-width: 100%;
margin-left: auto;
margin-right: auto;
}

.works_name {
    font-size: 3.0rem;
    line-height: 1.5;
    font-weight: 900;
}

.works_cate_header{
padding-top: 20px;
}
.works_cate_header h3{
    font-size: 2.5rem;
    font-weight: 800;
    line-height: 1;
    color: #3C64AA;
    padding-bottom: 20px;
    border-bottom: 3px solid #3C64AA;
    /*font-family: "Barlow Condensed", sans-serif;*/
}
.works_content ul{}
.works_content ul li{
    border-bottom: 3px solid #3C64AA;
    padding-bottom: 20px;
    padding-top: 20px;
    width: 100%
}
.works_content ul li a{
display: flex;
gap : 0px;
align-items: stretch;
text-decoration: none;
color: #3C64AA!important;
flex-direction: column;
}
.works_content ul li a:hover{
color: inherit
}
.works_content ul li a .date{
font-size: 1.5rem;
width: 100%;
order: 1;
} 
.works_item .thum {
    order: 2;
    width: 100%;
    margin-bottom: 10px;
}
.works_content ul li .thum img{
width: 100%;
height: 60vw;
object-fit: cover
}
.works_content ul li a .ttl{
font-size: 1.8rem;
font-weight: 600;
order: 3;
line-height: 1;
margin-bottom: 10px;
} 
.works_content ul li a > :last-child {
    margin-left: 0;
}
.works_content ul li .thum{
margin-bottom: 10px;
}
.works_content ul li .btn_vm{
font-weight: 600;
order: 4;
}
.works_content ul li .btn_vm .arrow_icon{
 color: #3C64AA;
 margin-left: 0.5em
}

.works_content ul li a:hover{
    background-position: right 15px center;
    color: inherit
}

#works_cate01.works_cate_header h3{
    color: #3C64AA;
    border-bottom: 3px solid #3C64AA;
}
#works_cate01.works_content ul li{
    border-bottom: 3px solid #3C64AA;
}
#works_cate01.works_content ul li a{
color: #3C64AA!important;
}
#works_cate01.works_content ul li .btn_vm .arrow_icon{
 color: #3C64AA;
}

#works_cate02 .works_cate_header h3{
    color: #2B7D5F!important;
    border-bottom: 3px solid #2B7D5F!important;
}
#works_cate02.works_content ul li{
    border-bottom: 3px solid #2B7D5F;
}
#works_cate02.works_content ul li a{
color: #2B7D5F!important;
}
#works_cate02.works_content ul li .btn_vm .arrow_icon{
 color: #2B7D5F;
}


#works_cate03 .works_cate_header h3{
    color: #DB491B!important;
    border-bottom: 3px solid #DB491B!important;
}
#works_cate03.works_content ul li{
    border-bottom: 3px solid #DB491B;
}
#works_cate03.works_content ul li a{
color: #DB491B!important;
}
#works_cate03.works_content ul li .btn_vm .arrow_icon{
 color: #DB491B;
}

/*--WORKS_DETAIL-------------*/
#works_cate01.page_detail{
color: #3C64AA;
font-weight: 600;
padding-bottom: 80px;
}
#works_cate02.page_detail{
color: #2B7D5F;
font-weight: 600;
padding-bottom: 80px;
}
#works_cate03.page_detail{
color: #DB491B;
font-weight: 600;
padding-bottom: 80px;
}
.works_cate_header.detail h3{
    font-size: 3.5rem;
    border-bottom: 3px solid #3C64AA;
    font-family: "Barlow Condensed", sans-serif;
}
.works_interview_header{
display: flex;
align-items: center;
gap : 15px;
flex-wrap: nowrap;
padding-top: 20px;
padding-bottom: 30px;
font-size: 1.6rem;
}
.works_interview_header .thum{
position: relative
}
.works_interview_header .thum img.ppl_ph{
width: 100px;
height: auto
}

.itv_ques{
font-size: 2.0rem;
margin-bottom: 1em;
line-height: 1.5
}
.itv_ans{
font-size: 1.4rem;
margin-bottom: 1.5em;
line-height: 2
}

.works_detail_ph_single{
width: 100%;
max-width: 100%;
margin-left: auto;
margin-right: auto;
padding-top: 30px;
padding-bottom: 30px;
}
.works_detail_ph_single img{
width: 100%;
height: auto
}

.works_detail_ph_double{
width: 100%;
max-width: 100%;
margin-left: auto;
margin-right: auto;
padding-top: 30px;
padding-bottom: 30px;
display: block;
gap: 20px;
}
.works_detail_ph_double img{
width: 100%;
height: auto;
margin-bottom: 30px;
}
table.works_data_tbl{}
table.works_data_tbl th,
table.works_data_tbl td{
padding-top: 5px;
padding-bottom: 5px;
padding-right: 2em;
font-weight: 600;
}

/*--PHILOSOPHY_経営理念-------------*/
.page_philosophy{
    background-color: #0B2867;
    color: #FFF;
    background-image: url(../../philosophy/images/ill_bg_sp.svg);
    background-repeat: no-repeat;
    background-position: center top 90px;
    background-size: 170% auto;
}
#philosophy_container{
width: 90%;
margin-left: auto;
margin-right: auto;
padding-bottom: 100px;
padding-top: 130px;
}

#philosophy_container .heading{
text-align: center;
margin-bottom: 70px;
}
#philosophy_container .heading h2{
font-size: 14rem !important;
    font-weight: 800 !important;
    font-family: "Barlow Condensed", sans-serif;
    line-height: 1;
    margin-bottom: 30px;
}
#philosophy_container .heading .ja{
font-weight: 600;
font-size: 3.0rem;
letter-spacing: 0.05em;
line-height: 1;
}
#philosophy_container .philo_cont{
line-height: 2;
font-size: 2.0rem;
}
#philosophy_container .philo_cont .heading_txt{
font-weight: 600;
font-size: 2.0rem;
letter-spacing: 0.05em;
line-height: 2;
margin-bottom: 2em
}
#philosophy_container .philo_cont p{
font-size: 1.4rem;
margin-bottom: 1.8em
}

/*--NAKATA_PRIDE-------------*/
.page_pride{
    background-color: #DB491B;
    color: #FFF;
    background-image:
    url(../../pride/images/bg01.svg),
    url(../../pride/images/bg02.svg);
background-repeat: no-repeat, no-repeat;
background-position: center top, center bottom;
background-size: 100% auto, 100% auto;
}
#pride_container{
width: 100%;
margin-left: auto;
margin-right: auto;
padding-bottom: 100px;
margin-top: -100px;
}

#pride_container .heading{
text-align: center;
margin-bottom: 70px;
}
#pride_container .heading h2 img{
width: 100%;
height: auto;
}
#pride_container .heading .ja{
font-weight: 600;
font-size: 3.0rem;
letter-spacing: 0.05em;
line-height: 1;
}
#pride_container .pride_cont{
line-height: 2;
font-size: 1.4rem;
width: 90%;
margin-left: auto;
margin-right: auto
}
#pride_container .pride_cont .heading_txt{
font-weight: 600;
font-size: 2.0rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 2em
}
#pride_container .pride_cont p{
margin-bottom: 1.8em
}
#pride_container .pride_cont .ph img{
width: 100%;
height: auto;
display: block;
}
#pride_container .pride_cont .ph{
margin-top:30px;
margin-bottom:30px;
width: 100vw;
margin-left: calc(50% - 50vw);
}
#pride_container .pride_cont .ph.shodai{
margin-top: 60px;
margin-bottom: 10px;
width: 80%
}
#pride_president_slide{
font-size: 1.0rem;
overflow: hidden;
width: 80%;
margin-left: auto;
margin-right: 0;
margin-bottom: 60px;
}
#pride_president_slide img{
width: 100%;
height: auto
}


/*--NEWS_お知らせ-------------*/
.page_news{
background-color: #E3DAD4;
color: #1E3A75;
}
#news_container{
width: 90%;
max-width: 90%;
margin-left: auto;
margin-right: auto;
display: block;
justify-content: space-between;
align-items: center;
align-items: stretch;
padding-bottom: 50px;
}
#news_container .aside h2{
font-family: "Barlow Condensed", sans-serif;
font-weight: 800;
font-style: normal;
font-size: 8.3rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}
#news_container .aside .read{
font-weight: 600;
font-size: 3.0rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}
.news_list,
.news_detail{
width: 100%
}

.news_pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 15px 20px;
    box-sizing: border-box;
    background-color: #e5dcd5;
    color: #173d78;
    float: none
}
.news_pagination a {
    color: inherit;
    text-decoration: none;
}
.news_pagination_prev,
.news_pagination_next {
    display: flex;
    align-items: center;
    gap: 16px;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 2.0rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.04em;
}
.news_pagination_numbers {
    display: flex;
    align-items: center;
    gap: 22px;
    font-size: 1.4rem;
    line-height: 1;
}
.news_pagination_numbers a {
    display: inline-block;
    transition: opacity 0.3s;
}
.news_pagination_numbers a:hover,
.news_pagination_prev:hover,
.news_pagination_next:hover {
    opacity: 0.6;
}
.news_pagination .arrow {
    display: block;
    width: 15px;
    height: 15px;
    border-top: 1px solid currentColor;
    border-right: 1px solid currentColor;
    flex-shrink: 0;
}
.news_pagination .arrow_prev {
    transform: rotate(-135deg);
}
.news_pagination .arrow_next {
    transform: rotate(45deg);
}

.news_detail{
line-height: 2;
font-weight: 600
}
.news_detail .news_entry_header{
    border-bottom: 1px solid #1E3A75;
    padding-bottom: 15px;
    margin-bottom: 20px;
}
.news_detail .news_entry_header .date{
font-size: 1.5rem;
font-weight: 400
}
.news_detail .news_entry_header .ttl{
font-size: 2.0rem;
font-weight: 600
}
.news_detail .ph{
width: 100%;
margin-left: auto;
margin-right: auto;
padding-top: 20px;
padding-bottom: 30px;
}
.news_detail .ph img{
width: 100%;
height: auto
}

/*--PRIVACY_POLICY プライバシーポリシー-------------*/
.page_privacy{
background-color: #FFF;
}
#privacy_container{
width: 90%;
margin-left: auto;
margin-right: auto;
padding-bottom: 110px;
font-weight: 500!important;
line-height: 2;
}
#privacy_container .heading h2{
padding-bottom: 40px;
text-align: center;
font-size: 2.4rem!important;
font-weight: 600!important;
}
#privacy_container h3{
background-color: #EFEFEF;
padding: 13px 20px;
margin-top: 40px;
margin-bottom: 30px;
font-weight: 600!important;
}

/*--404-------------*/
.page_nf404{
    background-color: #FFF;
    background-image: url(../../images/404_bg.svg);
    background-repeat: no-repeat;
    background-position: center bottom 700px;
    background-size: contain;
}
.page_nf404 .heading{
text-align: center;
padding-bottom: 10vh;
width: 90%;
margin-left: auto;
margin-right: auto
}
.page_nf404 .heading h2{
font-size: 15rem;
font-weight: 800;
font-family: "Barlow Condensed", sans-serif;
}
.page_nf404 .heading .read{
font-weight: 600;
font-size: 2.0rem;
letter-spacing: 0.05em;
line-height: 1;
margin-bottom: 30px;
}

/*--CONTACT_お問い合わせ-------------*/
.page_contact{
background-color: #144F9B;
color: #FFF;
}
#contact_container{
width: 90%;
margin-left: auto;
margin-right: auto;
padding-bottom: 100px;
}

.page_contact.form{
    background-color: #144F9B;
    color: #FFF;
}
.page_contact.form #contact_container{
padding-bottom: 80px;
}

#contact_container .heading{
text-align: center;
color: #FFBC33;
margin-bottom: 40px;
}
#contact_container .heading h2{
font-size: 9rem!important;
font-weight: 800!important;
font-family: "Barlow Condensed", sans-serif;
}
#contact_container .heading .ja{
font-weight: 600;
font-size: 2.0rem;
letter-spacing: 0.05em;
line-height: 1;
}
#contact_container .cate_ttl{
color: #fff;
text-align: center;
font-weight: 600;
font-size: 1.8rem;
line-height: 1;
padding-bottom: 10px;
}
#contact_container .tel_num{
text-align: center;
margin-bottom: 70px;
}
#contact_container .tel_num .num{
font-size: 4.0rem!important;
font-weight: 800!important;
font-family: "Barlow Condensed", sans-serif;
letter-spacing: 0.08em;
}
.form_flex{
display: block;
gap: 30px;
}
.form_flex .form_bx{
width: 100%
}

#contact_container .form_bx{
    padding-bottom: 25px;
    margin-bottom: 25px;
    border-bottom: 1px solid #B5B5B6;
}
#contact_container .form_bx .label{
   font-size: 1.6rem;
   font-weight: 600;
   margin-bottom: 17px;
}
#contact_container .form_bx .label span{
   display: inline-block;
   font-size: 1.6rem;
   background-color: #000;
   color: #FFF;
   padding: 5px 18px;
   margin-right: 12px;
}
#contact_container .form_bx .label span.nes{
   background-color: #FFBC33;
   color: #000;
}
#contact_container .form_field{
width: calc(100% - 0px)!important;
padding: 15px!important;
border: 0;
box-shadow: 0px 0px 0px #CCC inset!important;
font-size: 2.0rem;
}
#contact_container .input_wrap{
background-color: #C3C3C3;
color: #000;
display: flex;
gap :50px;
padding:10px 50px;
width: 300px;
}
#contact_container select{
background-color: #C3C3C3;
color: #000;
border: 0;
padding:10px 50px;
width: 100%;
-webkit-appearance: none;
appearance: none;
}
.notice_privacy{
text-align: center;
color: #FFF;
margin-top: 40px;
margin-bottom: 20px;
line-height: 2
}
.notice_privacy a{
color: #FFF
}


.form_btn_send {
    display: block;
    align-items: center;
    justify-content: center;
    gap: 40px;
    width: 100%;
}
.form_btn_send.second {
    margin-top: 40px;
}
.form_btn_send .submit_btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 15px 30px;
    border: none;
    border-radius: 0;
    background-color: #FFBC33;
    color: #000;
    font-size: 2.0rem;
    font-weight: 600;
    line-height: 1.5;
    text-align: center;
    cursor: pointer;
    box-sizing: border-box;
    transition: background-color 0.3s, color 0.3s;
}
.form_btn_send .submit_btn::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 35px;
    width: 20px;
    height: 20px;
    border-top: 2px solid #000;
    border-right: 2px solid #000;
    transform: translateY(-50%) rotate(45deg);
    box-sizing: border-box;
    transition: border-color 0.3s;
}
/* hover */
.form_btn_send .submit_btn:hover {
    background-color: #000;
    color: #FFF;
}
.form_btn_send .submit_btn:hover::after {
    border-color: #FFF;
}


.form_btn_send .submit_btn.back {
    background-color: #000;
    color: #FFF;
    margin-top: 20px;
}
.form_btn_send .submit_btn.back::after {
    border-top: 2px solid #FFF;
    border-right: 2px solid #FFF;
}
/* hover */
.form_btn_send .submit_btn.back:hover {
    background-color: #FFBC33;
    color: #000;
}
.form_btn_send .submit_btn.back:hover::after {
    border-color: #000;
}


/* CONFIRM */
#contact_container .heading.sub h2{
font-size: 9rem!important;
}
#contact_container .heading .message_status{
font-weight: 600;
font-size: 1.8rem;
letter-spacing: 0.05em;
line-height: 1;
color: #FFF;
margin-top: 70px;
}
#contact_container .form_bx.conlirm{
display: block;
align-items: baseline
}
#contact_container .form_bx.conlirm .label{
width: 100%
}
#contact_container .form_bx.conlirm > :not(.label) {
    flex: 1;
    min-width: 0;
}

#contact_container.thanks_page{
width: 100%!important;
}
#contact_container .form_thaanks_message{
text-align: left;
margin-bottom: 80px;
font-size: 1.8rem;
line-height: 2;
width: 90%;
margin-left: auto;
margin-right: auto;
}
#contact_container .form_thanks_notice{
text-align: left;
margin-bottom: 80px;
line-height: 2;
width: 90%;
margin-left: auto;
margin-right: auto;
}
#contact_container .form_thanks_notice p{
margin-bottom: 1em
} 


}






