@charset "utf-8";
/* CSS Document */

/*
Theme Name: oneconcept
Theme URI: https://oneconcept.co.jp/
Author: oneconcept
Author URI: https://oneconcept.co.jp/
Description: Description
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags:
*/

/* A Modern CSS Reset */
*,*::before,*::after{box-sizing:border-box}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul[role="list"],ol[role="list"]{list-style:none}a:not([class]){text-decoration-skip-ink:auto}picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}table{border-collapse: collapse;border-spacing: 0;width: 100%;}


html {
    font-size: 16px;
    scroll-behavior: smooth;
    scroll-padding-top:80px;
}


body {
    position: relative;
    font-family: 'Noto Sans JP',-apple-system,Helvetica Neue,Hiragino Kaku Gothic ProN,"メイリオ",meiryo,sans-serif;
    line-height: 1.6;
    color: #000000;
    padding-top: 76px;
}

.font_e {
    font-family: 'Montserrat', 'Noto Sans JP',sans-serif;
}

::selection {
    background-color: #CBCBCB;
}
a:hover,
a:active,
a:visited {
    text-decoration: none;
}

p {
    word-break: break-all !important;
    word-wrap: break-word !important;
}

img {
    max-width: 100%;
    height: auto;
}

embed,
iframe,
object {
    max-width: 100%;
}

a {
    color:#000000;
    text-decoration: none;
}

ul,ol {
    padding-left: 1.5rem;
}

.pc {
    display: none!important;
}
@media only screen and (min-width: 1024px) , print {
    html {
        scroll-padding-top:160px;
    }
    .pc {
        display: inherit!important;
    }
    .mobile {
        display: none!important;
    }
}


.block {
    display: block;
}
.ib {
    display: inline-block;
}
.inline_block {
    display: inline-block!important;
}
.w_60 {
    width: 60px!important;
}
.w_80 {
    width: 80px!important;
}
.w_100 {
    width: 100px!important;
}
.w_120 {
    width: 120px!important;
}
.w_240 {
    width: 240px!important;
}
.w_30per {
    width: 30%!important;
}
.w_50per {
    width: 50%!important;
}
.w_auto {
    width: auto!important;
}
.h_auto {
    height: auto!important;
}
.mt0 {
    margin-top: 0!important;
}
.mt01 {
    margin-top: 1rem!important;
}
.mt02 {
    margin-top: 2rem!important;
}
.mt03 {
    margin-top: 3rem!important;
}
.mt04 {
    margin-top: 4rem!important;
}
.mb0 {
    margin-bottom: 0!important;
}
.mb01 {
    margin-bottom: 1rem!important;
}
.mb02 {
    margin-bottom: 2rem!important;
}
.mb03 {
    margin-bottom: 3rem!important;
}
.mb04 {
    margin-bottom: 4rem!important;
}
.mr_auto {
    margin-right: auto!important;
}
.mr01 {
    margin-right: 1rem!important;
}
.ml_auto {
    margin-left: auto!important;
}
.p01 {
    padding: 1.2rem 1rem!important;
}
.pt0 {
    padding-top: 0!important;
}
.pt01 {
    padding-top: 1rem!important;
}
.pt02 {
    padding-top: 2rem!important;
}
.pb0 {
    padding-bottom: 0!important;
}
.pb01 {
    padding-bottom: 1rem!important;
}
.pb02 {
    padding-bottom: 2rem!important;
}
.pb03 {
    padding-bottom: 3rem!important;
}
.pb04 {
    padding-bottom: 4rem!important;
}

.mt_middle {
    margin-top: 2rem;
}
.mb_middle {
    margin-bottom: 2rem;
}
.mt_middlelarge {
    margin-top: 3rem;
}
.mb_middlelarge {
    margin-bottom: 3rem;
}
.mt_large {
    margin-top: 4rem;
}
.mb_large {
    margin-bottom: 4rem;
}
.pt_middle {
    padding-top: 2rem;
}
.pb_middle {
    padding-bottom: 2rem;
}
.pt_large {
    padding-top: 4rem;
}
.pb_large {
    padding-bottom: 4rem;
}

.border_0 {
    border: 0!important;
}
.border_left_0 {
    border-left: 0!important;
}
.border_top_0 {
    border-top: 0!important;
}
.border_bottom_0 {
    border-bottom: 0!important;
}
.border_right_0 {
    border-right: 0!important;
}
.border01 {
    border: 1px solid #CBCBCB;
}
.border_bottom_01 {
    border-bottom: 1px solid #CBCBCB;
}
.border_top_01 {
    border-top: 1px solid #CBCBCB;
}
.bg_white {
    background-color: #fff;
}
.bg_red {
    background-color: #EC1C24;
}
.bg_red2 {
    background-color: #FF0042;
}
.bg_black {
    background-color: #000000;
}
.bg_light_orange {
    background-color: #FBF0E8;
}
.bg_light_pink {
    background-color: #EBE1E4;
}
.bg_light_gray {
    background-color: #F1F1F1;
}
.bg_brown {
    background-color: #866000;
}
.bg_brown02 {
    background-color: #5D4734;
}
.bg_peach {
    background-color: #E8B39F;
}
.brown {
    color: #5D4734;
}
.gray {
    color: #666666;
}
.gray2 {
    color: #4F4F4F;
}
.white {
    color: #fff;
}
.red {
    color: #d91c1c;
}
.red2 {
    color: #804C4F;
}

.pointer {
    cursor: pointer;
}

.underline {
    text-decoration: underline;
}

.fw {
    font-weight: 700;
}
.fw400 {
    font-weight: 400;
}
.small {
    font-size: 0.8em;
}

.fs_xxs {
    font-size: 0.625rem;
}
.fs_xs {
    font-size: 0.84rem;
}
.fs_s {
    font-size: 0.88rem;
}
.fs_m {
    font-size: 1rem;
}
.fs_ml {
    font-size: 1.25rem;
}
.fs_l {
    font-size: 1.875rem;
}
.fs_xl {
    font-size: 2rem;
}
.f11 {
    font-size: 11px;
}
.f12 {
    font-size: 12px;
}
.f14 {
    font-size: 14px;
}
.fs_24 {
    font-size:24px;
}

.text-left {
    text-align: left!important;
}
.text-center {
    text-align: center!important;
}
.text-right {
    text-align: right!important;
}
.mobile_l_pc_c {
    text-align: left;
}
.lh01 {
    line-height: 1.4;
}
.lh02 {
    line-height: 1.25;
}
.lh03 {
    line-height: 1.8;
}
.lh04 {
    line-height: 2;
}

.d-flex {
    display: flex;
}
.flex-wrap {
    flex-wrap: wrap!important;
}
.justify-content-start {
    justify-content: flex-start!important;
}
.justify-content-end {
    justify-content: flex-end!important;
}
.justify-content-center {
    justify-content: center!important;
}
.justify-content-between {
    justify-content: space-between!important;
}
.justify-content-around {
    justify-content: space-around!important;
}
.align-items-start {
    align-items: flex-start!important;
}
.align-items-end {
    align-items: flex-end!important;
}
.align-items-center {
    align-items: center!important;
}
.align-items-baseline {
    align-items: baseline!important;
}
.align-items-stretch {
    align-items: stretch!important;
}

.d-grid {
    display: grid;
}
.gap01 {
    grid-gap: 1rem 4%;
}
.gap02 {
    grid-gap: 2rem 8%;
}
.gap03 {
    grid-gap: 3rem 12%;
}

.img_circle {
    display: block;
    border-radius: 100%;
}

.wrapper {
    width: 92%;
    max-width: 1260px;
    margin: 0 4%;
    position: relative;
}
.wrapper_640 {
    max-width: 640px;
}
.wrapper_720 {
    max-width: 720px;
}

@media only screen and (min-width: 1024px) , print {
    body {
        padding-top: 114px;
    }
    .wrapper {
        margin: 0 auto;
    }
    
    .mt_middle {
        margin-top: 4rem;
    }
    .mb_middle {
        margin-bottom: 4rem;
    }
    .mt_middlelarge {
        margin-top: 5rem;
    }
    .mb_middlelarge {
        margin-bottom: 5rem;
    }
    .mt_large {
        margin-top: 6rem;
    }
    .mb_large {
        margin-bottom: 6rem;
    }
    .pt_middle {
        padding-top: 4rem;
    }
    .pb_middle {
        padding-bottom: 4rem;
    }
    .pt_large {
        padding-top: 6rem;
    }
    .pb_large {
        padding-bottom: 6rem;
    }
    
    .gap01 {
        grid-gap: 2rem 4%;
    }
    .gap02 {
        grid-gap: 4rem 8%;
    }
    .gap03 {
        grid-gap: 6rem 12%;
    }
}

/* header
-------------------------------*/
.site-header {
    padding: 1rem 4%;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: rgba(255,255,255,0.8);
    -webkit-backdrop-filter: saturate(180%) blur(10px);
    backdrop-filter: saturate(180%) blur(10px);
    z-index: 1000;
    display: flex;
}
.site-header.open {
    height: 100%;
}
.site_logo a {
    color: inherit;
    text-decoration: none;
    display: flex;
    align-items: baseline;
    width: 120px;
}
.site_logo a img {
    width: 100%;
    display: block;
    object-fit: contain;
}

.head_sns {
    display: flex;
    align-items: center;
    gap:1rem;
    list-style: none;
    padding: 0;
    margin: 0 60px 0 auto;
}
.head_sns img {
    display: block;
    width: 20px;
}

.menu_icon,
.menu_close_icon {
    position: absolute;
    top: 24px;
    right: 4%;
    background: none;
    border: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    width: 28px;
    height: 28px;
    padding: 0;
}
.menu_icon span,
.menu_icon::before,
.menu_icon::after {
    width: 100%;
    content: "";
    display: block;
    border-bottom: 2px solid #000;
}

.menu_close_icon::before,
.menu_close_icon::after {
    transform: rotate(45deg);
    width: 100%;
    content: "";
    display: block;
    border-bottom: 2px solid #000;
    position: absolute;
}
.menu_close_icon::after {
    transform: rotate(-45deg);
}

.head_nav_area {
    transition: 0.8s ease;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 0;
    background: #F1F1F1;
    overflow: hidden;
    z-index: 1000;
}
.open .head_nav_area {
    height: 100%;
    overflow-y: auto;
}
.head_nav_wrap {
    padding: 1rem 4%;
}

.menu_logo {
    width: 120px;
    display: block;
}

.head_nav {
    margin: 4rem 0 2rem;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: 1fr 1fr;
}
.head_nav a {
    padding: 0.5rem 1rem;
    font-size: 1.6rem;
    display: block;
}


.head_nav_ec {
    display: flex;
    align-items: center;
    justify-content: center;
    gap:16px;
    border: 1px solid #CBCBCB;
    background: #fff;
    border-radius: 50px;
    font-size: 16px;
    padding: 1rem;
}
.head_nav_ec img {
    width: 12px;
}

.head_nav_wrap .foot_contact {
    margin-top: 2rem;
}
.head_nav_wrap .foot_contact a {
    padding: 0.5rem;
    font-size: 0.94rem;
}
.head_nav_wrap .foot_contact > a img {
    width: 30px;
    margin-bottom: 4px;
}

.body_drawer_open {
    overflow: hidden;
}
@-moz-document url-prefix() {/*Frefoxのバグ*/
    .body_drawer_open {
        overflow: inherit;
    }
}

@media only screen and (min-width: 1024px) , print {
    .site-header {
        display: grid; 
        grid-template-columns: auto auto; 
        grid-template-rows: auto auto; 
        grid-gap: 1rem;
        grid-template-areas: "logo_area ." "logo_area ."; 
        justify-content: space-between;
        padding-top: 1.5rem;
        padding-bottom: 1.5rem;
    }
    .site-header.open {
        height: auto;
    }
    .body_drawer_open {
        overflow: inherit;
    }
    .site_logo {
        grid-area: logo_area;
    }
    .site_logo a {
        width: 177px;
    }
    
    .head_sns {
        margin-right: 0;
    }
    
    .head_nav_area {
        display: flex;
        position: static;
        height: auto;
        background: none;
        margin-left: auto;
        width: auto;
        overflow: inherit;
    }
    .head_nav_wrap {
        padding: 0;
        display: flex;
        justify-content: flex-end;
        align-items: center;
        gap:24px;
    }
    .head_nav {
        margin: 0;
        display: flex;
        gap:0 8px;
    }
    .head_nav a {
        font-size: 14px;
        padding: 0 0 0 0.5rem;
    }
    .head_nav_ec {
        width: 188px;
        padding: 0.25rem;
        font-size: 12px;
    }
}
@media only screen and (min-width: 1200px) , print {
    .head_nav a {
        font-size: 16px;
        padding: 0 0 0 1rem;
    }
    .head_nav_ec {
        width: 218px;
        padding: 0.25rem;
        font-size: 16px;
    }
}

/* main
-------------------------------*/
.site-content {
}

.page_title {
    font-size: 2rem;
    margin-bottom: 2rem;
    margin-top: 2rem;
    font-weight: 600;
    letter-spacing: 0.05em;
}
.page_title_sub {
    font-size: 1rem;
    display: inline-block;
}

.main_title {
    font-size: 1.4rem;
    margin-bottom: 1rem;
    font-weight: 600;
    letter-spacing: 0.05em;
}

/*table*/
.responsive_table ,
.responsive_table caption ,
.responsive_table thead ,
.responsive_table tbody ,
.responsive_table tfoot ,
.responsive_table tr ,
.responsive_table th ,
.responsive_table td {
    display: block;
    width: 100%;
}
.responsive_table th {
    text-align: left;
}

/*hoverで少し透過*/
.hover01 {
    opacity: 1;
    transition: 0.4s;
}
.hover01:hover {
    opacity: 0.7;
}
/*hoverで赤文字赤線*/
.hover02 {
    color: inherit;
}
.hover02:hover {
    color: #f00;
}
.hover02 > span {
    position: relative;
}
.hover02 > span::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -0.5rem;
    width: 0;
    height: 2px;
    background: #f00;
    transition: 0.8s;
}
.hover02:hover > span::after {
    width: 100%;
}

/*hoverで画像拡大*/
.enlarge_img {
    display: block;
    overflow: hidden;
}
.enlarge_img img {
    display: block;
    width: 100%;
    height: 100%;
    transition: 1.6s;
}
.enlarge_img:hover img {
    transform: scale(1.05,1.05);
}

/*ふわっと表示*/
.fadein {
    opacity: 0;
    transition: 2.4s;
}
.fadein.animation_in {
    opacity: 1;
}

/*拡大からふわっと表示*/
.expand_fadein {
    overflow: hidden;
}
.expand_fadein img {
    opacity: 0;
    transform:scale(1.2 , 1.2);
    transition: 6.4s ease;
}
.expand_fadein.animation_in img {
    opacity: 1;
    transform:scale(1 , 1);
}


/*下から表示*/
.slideup {
    opacity: 0;
    transition: 1.6s ease;
    transform:translate(0, 2rem);
}
.slideup.animation_in {
    opacity: 1;
    transform:translate(0,0);
}

.delay01 {
     transition-delay: 0.8s;
}


/*検索枠*/
.search-form > div {
    position: relative;
    max-width: 320px;
}
.search-field {
    border: 1px solid #CBCBCB;
    border-radius: 50px;
    padding: 0.5rem 1rem;
    padding-right: 3rem;
    width: 100%;
}
.search-submit {
    position: absolute;
    right: 1rem;
    top: calc(50% - 13px);
    background: none;
    border: 0;
    padding: 0;
    color: #CBCBCB;
}
::placeholder {
    color: #CBCBCB;
}

/*六角形みたいな見出し*/
.headline01 {
    position: relative;
    display: inline-block;
    margin-left: 15px;
    margin-right: 30px;
    padding: 0.5em 1em;
    background: #EC1C24;
    color: #fff;
}
.headline01::before,
.headline01::after {
    position: absolute;
    top: 0;
    content: '';
    width: 30px;
    height: 100%;
}
.headline01::before {
    left: -29.5px;
    background: inherit;
    clip-path: polygon(50% 50%, 100% 0, 100% 100%);
}
.headline01::after {
    right: -29.5px;
    background: inherit;
    clip-path: polygon(50% 50%, 0 0, 0 100%);
}

@media only screen and (min-width: 1024px) , print {
    .page_title {
        font-size: 2.4rem;
        margin-bottom: 4rem;
    }
    .main_title {
        font-size: 1.5rem;
        letter-spacing: 0.1em;
        margin-bottom: 2rem;
    }
    
    .column_content {
        display: flex;
        justify-content: space-between;
        gap: 64px;
    }
    .content-area {
        flex: 1;
    }
    .widget-area  {
        width: 240px;
        flex-shrink: 0;
    }
    
    .col_title {
        display: grid;
        grid-template-columns: 1fr 5fr;
        grid-gap:8%;
    }
    
    .pc_col_2 {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
    
    .responsive_table {
        display: table;
        table-layout: fixed;
    }
    
    .responsive_table caption {
        display: table-caption;
    }
    
    .responsive_table thead {
        display: table-header-group;
    }
    
    .responsive_table tbody {
        display: table-row-group;
    }
    
    .responsive_table tfoot {
        display: table-footer-group;
    }
    
    .responsive_table tr {
        display: table-row;
        background-size: 100% 1px;
        border: 0;
    }
    
    .responsive_table th ,
    .responsive_table td {
        display: table-cell;
    }
    
}

/* footer
-------------------------------*/
.fixed_ec {
    position: fixed;
    bottom: 2%;
    right: 2%;
    z-index: 10;
}
.fixed_ec a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap:8px; 
    font-size: 14px;
    line-height: 1.25;
    width: min(28vw, 164px);
    height: min(28vw, 164px);
    padding: 10px;
    border: 1px solid #CBCBCB;
    border-radius: 100px;
    background: rgba(255,255,255,0.8);
    -webkit-backdrop-filter: saturate(180%) blur(10px);
    backdrop-filter: saturate(180%) blur(10px);
}
.fixed_ec a img {
    width: 28px;
}

.site-footer {
    padding-top: 2rem;
    padding-bottom: 1rem;
    border-top: 1px solid #F1F1F1;
}


.foot_wrap {
}
.foot_logo a {
    width: min(48vw, 230px);
    display: block;
    margin: 0 auto 2rem;
}
.foot_logo a img {
    display: block;
}

.foot_contact {
    margin: 0 0 2rem;
}
.foot_contact > a {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1rem;
    color:#fff;
    background: #333333;
    line-height: 1.25;
    text-align: center;
    border-radius: 4px;
}
.foot_contact > a.foot_line {
    background: #06C755;
}
.foot_contact > a > span {
    text-align: left;
}
.foot_contact > a img {
    width: 40px;
    display: block;
}


.foot_nav {
    margin: 0;
    padding: 0;
    list-style-type: none;
    display: grid;
    grid-template-columns: 1fr;
}
.foot_nav li {
    display: block;
}
.foot_nav li a {
    display: block;
    padding: 0 0 1rem;
}

.foot_com {
    padding-top: 2rem;
    padding-bottom: 2rem;
    max-width: 60vw;
    line-height: 2;
}

@media only screen and (min-width: 768px) , print {
    .fixed_ec a {
        font-size: 16px;
    }
    
    .site-footer {
        padding-top: 5rem;
    }
    .foot_contact {
        grid-template-columns: 1fr 1fr;
    }
    .foot_contact > a {
        padding: 0.5rem 1rem;
    }
    .foot_contact > a.foot_line img {
        width: 98px;
    }
    
    .foot_wrap {
        display: flex;
        justify-content: space-between;
    }
    .foot_nav {
        grid-template-rows: repeat(3, auto);
        grid-template-columns: repeat(3, auto);
        grid-auto-flow: column;
        grid-gap: 0 6rem;
    }
    .foot_com {
        padding-top: 0;
    }
}


/* Button
-------------------------------*/
.btn {
    background: #fff;
    padding: 0.5rem 2rem;
    border: 1px solid #CBCBCB;
    border-radius: 50px;
    color: #000;
    text-align: center;
    display: inline-block;
    transition: 1.6s;
}

.btn:hover {
    background: #333;
    color: #fff;
}

.btn_sm {
    padding: 0.25rem 1rem;
    font-size: 0.84rem;
}

.btn_wrap .btn {
    display: block;
    margin: 0 auto;
    min-width: 180px;
}

.arrow_left ,
.arrow_right {
    width: 33px;
    border-bottom: 1px solid #CBCBCB;
    display: block;
    position: relative;
}
.arrow_left::after ,
.arrow_right::after {
    content: "";
    width: 7px;
    border-top: 1px solid #CBCBCB;
    display: block;
    position: absolute;
    bottom: 1px;
}
.arrow_right::after {
    right: -1px;
    transform: rotate(45deg);
}
.arrow_left::after {
    left: -1px;
    transform: rotate(-45deg);
}

.angle_down {
    display: inline-block;
    width: 6px;
    height: 6px;
    margin: 0 10px;
    border-bottom: 1px solid #333;
    border-right: 1px solid #333;
    transform: rotate(45deg);
}

.view_more .btn {
    width: 218px;
    display: block;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    font-size: 14px;
    letter-spacing: 0.05rem;
}

.view_more .arrow_right {
    position: absolute;
    right: 1rem;
    top: calc(50% - 1px);
    transition: 0.8s;
}
.view_more:hover .arrow_right {
    right: 0.5rem;
}

.link_underline {
    display: inline-block;
    padding-bottom: 0.25rem;
    letter-spacing: 0.05rem;
    position: relative;
}
.link_underline::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 1px;
    border-bottom: 1px solid;
    transition: 0.8s;
}
.link_underline:hover::after {
    width: 0;
}

.btn_fixed_bottom {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 58px;
    border: 0;
    z-index: 10;
}

.fixed_bottom_area {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(255,255,255,0.9);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
}

@media only screen and (min-width: 768px) , print {
    .btn_fixed_bottom {
        bottom: 2rem;
        left: auto;
        right: 2rem;
        width: auto;
        height: auto;
    }
    
    .fixed_bottom_area {
        bottom: 2rem;
        left: auto;
        right: 2rem;
        width: auto;
        display: block;
    }
}


/* トップページ
-------------------------------*/
.slide_area {
    position: relative;
}
.top_slide_area {
    max-width: 1260px;
    margin-left: auto;
    margin-right: auto;
}
.top_slide_area img {
    aspect-ratio: 2.03225806452/1;
    object-fit: cover;
}
.slide .swiper-pagination-bullets.swiper-pagination-horizontal {
    position: static;
    margin: 0 auto 24px;
    line-height: 1;
}
.slide .swiper-pagination-bullet {
    background: #F1F1F1;
    opacity: 0.25;
    width: 16px;
    height: 2px;
    border-radius: 0;
    transition: 1.6s;
    opacity: 1;
}
.slide .swiper-pagination-bullet:hover,
.slide .swiper-pagination-bullet-active {
    background: #CBCBCB;
}
.slide_area .swiper-button-next,
.slide_area .swiper-button-prev {
    color: #CBCBCB;
    left: 4px;
    right: auto;
    top: calc((100% - 24px) / 2 - 22px);
    margin: 0;
}
.slide_area .swiper-button-next {
    right: 4px;
    left: auto;
}
.slide_area .swiper-button-next:after,
.slide_area .swiper-button-prev:after {
    font-size: 18px;
}

.top_concept {
    display: flex;
    flex-direction: row-reverse;
    justify-content: center;
    gap: 1rem;
}
.top_concept_img {
    overflow: hidden;
}
.top_concept_title {
    font-size: 1.5rem;
    background: #fff;
    margin-top: -3rem;
    font-weight: 400;
    padding: 2rem 1rem;
    letter-spacing: 0.1rem;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
}
.top_concept_title > span {
}
.top_concept_text {
    line-height: 2;
    font-size: 0.88rem;
    margin: 3rem 0 4rem;
}
.top_concept_text p {
}

.top_news_area .news_img {
    border: 2px solid #fff;
}

.top_pickup_main_img img {
    aspect-ratio: 1/1;
    object-fit: cover;
}
.top_pickup_text {
    padding-top: 1rem;
}
.top_pickup_title {
    margin-bottom: 1rem;
}

.top_pickup_sub {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap: 2rem 4%;
    margin-top: 4rem;
}

.top_service_img {
    height: 620px;
}
.fixed_image {
    position: relative;
}
.fixed_image > div {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    clip: rect(auto, auto, auto, auto);
}
.fixed_image img {
    position: fixed;
    top: 0;
    left: 0;
    transform: translateY(0%);
    z-index: -1;
    width: 100%;
    height: 100vh;
    height: 100lvh;
    object-fit: cover;
}

.top_service {
    background: #fff;
    position: relative;
    z-index: 10;
}

@media only screen and (min-width: 768px) , print {
    .slide .swiper-pagination-bullets.swiper-pagination-horizontal {
        margin: 12px auto 64px;
    }
    .slide .swiper-pagination-bullet {
        width: 24px;
        height: 4px;
    }
    .slide .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
         margin: 0 8px;
     }
     .slide_area .swiper-button-next,
     .slide_area .swiper-button-prev {
         left: 4%;
         top: calc((100% - 92px) / 2 - 22px);
     }
     .slide_area .swiper-button-next {
         right: 4%;
         left: auto;
     }
     .slide_area .swiper-button-next:after,
     .slide_area .swiper-button-prev:after {
         font-size: 28px;
     }
     
     .top_concept {
         gap:4rem;
     }
     .top_concept_title {
        margin-top: -6rem;
        padding: 3rem 2rem;
     }
     .top_concept_title > span {
         transition-delay: 0s;
     }
     .top_concept_text {
         -ms-writing-mode: tb-rl;
         writing-mode: vertical-rl;
         margin: 5rem 0 7rem;
         line-height: 2.4;
     }
     .top_concept_text p {
         margin-right: 2rem;
     }
     .top_concept_text p:nth-child(1) {
        transition-delay: 0.4s;
     }
     .top_concept_text p:nth-child(2) {
        transition-delay: 0.8s;
     }
     .top_concept_text p:nth-child(3) {
        transition-delay: 1.2s;
     }
     .top_concept_text p:nth-child(4) {
        transition-delay: 1.6s;
     }
     
     .top_pickup_main {
         display: grid;
         grid-template-columns: 50% 1fr;
     }
     .top_pickup_text {
         padding: 12%;
     }
     .top_pickup_title  {
         margin-bottom: 2rem;
     }
     .top_pickup_sub {
         grid-template-columns: 1fr 1fr 1fr 1fr;
         grid-gap: 4.7%;
     }
     .top_maker_area .maker_wrap > a {
         width: 142px;
     }
}
@media only screen and (min-width: 1440px) , print {
    .top_slide_area .swiper-button-next,
    .top_slide_area .swiper-button-prev {
        left: -4%;
    }
    .top_slide_area .swiper-button-next {
        right: -4%;
        left: auto;
    }
}


/* PICK UP
-------------------------------*/
.pickup_list_inner {
    display: grid;
    grid-template-columns: 1fr;
    grid-gap: 0.5rem;
    line-height: 1.25;
    padding-top: 1rem;
    padding-bottom: 1rem;
}
.pickup_list_inner > a {
    display: grid;
    gap: 1rem;
    grid-template-columns: 60px 1fr;
    background: #fff;
    padding: 0.5rem;
    font-size: 15px;
}
.pickup_list_inner > a > div {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1rem;
}
.pickup_list_inner > a .arrow_right  {
    transition: 0.8s;
}
.pickup_list_inner > a:hover .arrow_right {
    width: 66px;
}

.pickup {
    padding: 0.5rem 0;
    margin-bottom: 2rem;
}

.pickup_img {
    margin-bottom: 1rem;
}
.pickup_img .slide .swiper-pagination-bullets.swiper-pagination-horizontal {
    margin-bottom: 0;
}

.pickup_title {
    padding-bottom: 2rem;
}
.pickup_title:after {
    content: "";
    display: block;
    width: 24px;
    border-bottom: 4px solid #f00;
    margin-top: 1rem;
}

.pickup_text a:not(.btn) {
    text-decoration: underline;
}

.pickup_period {
    display: flex;
    align-items: center;
    gap:0.5rem;
    line-height: 1.25;
}
.text_label {
    background: #333;
    color: #fff;
    padding: 3px 1rem;
    display: inline-block;
    white-space: nowrap;
}
.pickup_file {
    word-break: break-all;
}

@media only screen and (min-width: 768px) , print {
    .pickup_list_inner {
        grid-template-columns: repeat(3, 1fr);
        grid-gap: 1rem;
        padding-top: 2rem;
        padding-bottom: 2rem;
    }
    .pickup_list_inner > a {
        font-size: 16px;
        padding: 1rem;
    }
    
    .pickup {
        display: grid;
        grid-template-columns: 1fr 1.36fr;
        grid-gap: 4rem;
        padding: 2rem 0;
        margin-bottom: 4rem;
    }
}

/* SERVICE サービス
-------------------------------*/
.sevice_head {
    background: #fff;
    margin-bottom: -6rem;
    width: 85%;
    margin-right: auto;
    padding-right: 2rem;
    padding-bottom: 1rem;
    position: relative;
}
.sevice_head_img {
    width: 100%;
    height: 28vh;
    object-fit: cover;
}

.sevice_list_wrap {
    padding: 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap:2rem;
    font-size: 0.88rem;
}
.sevice_list {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    gap:1rem;
    max-width: 180px;
    margin-left: auto;
    margin-right: auto;
}

.sevice_list2_wrap {
    padding: 2rem;
    display: flex;
    justify-content: center;
}
.sevice_list2 {
    display: flex;
    justify-content: center;
    align-items: center;
    gap:8%;
}
.sevice_list2_img {
    max-width: 30%;
}


.service_sub {
    padding: 2rem;
    margin-bottom: 1rem;
    display: flex;
    flex-direction: column;
    gap:1rem;
}
.service_sub_img img {
    display: block;
}

@media only screen and (min-width: 768px) , print {
    .sevice_head_wrap {
        display: flex;
        flex-direction: column;
    }
    .sevice_head {
        width: auto;
        padding-right: 4rem;
        padding-bottom: 4rem;
    }
    .sevice_head_img {
        height: auto;
    }
    
    .sevice_main {
        display: grid;
        grid-template-columns: 1.5fr 1fr;
        grid-gap: 8%;
    }
    
    .sevice_list_wrap {
        flex-direction: row;
        align-items: stretch;
        justify-content: center;
        gap: 8%;
    }
    .sevice_list {
        margin: 0;
    }
    
    .sevice_list2 {
        max-width: 80%;
    }
    
    .service_sub {
        display: grid;
        grid-template-columns: 1fr 1.625fr;
        grid-gap: 8%;
        align-items: center;
        margin-bottom: 2.5rem;
    }
}


/* ABOUT
-------------------------------*/
.table_about {
}
.table_about tr {
    border-bottom: 1px solid #CBCBCB;
    padding: 1.5rem 0;
}
.table_about th {
    font-size: 0.84rem;
    padding-bottom: 0.5rem;
    vertical-align: top;
}

.map {
    height: 0;
    overflow: hidden;
    padding-bottom:75%;
    position: relative;
}
.map iframe {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 100%;
}



@media only screen and (min-width: 1024px) , print {
    .table_about th ,
    .table_about td {
        border-bottom: 1px solid #CBCBCB;
        padding: 1.8rem 0;
    }
    .table_about th,
    .table_about tr:first-child th {
        width: 15em;
        color: inherit;
        border-color: #f00;
    }
    
    
    .map {
        padding-bottom:42.6%;
    }
}

/* メーカー
-------------------------------*/
.maker_title_area {
    margin-bottom: 2rem;
}
.maker_wrap {
    display: flex;
    flex-wrap: wrap;
    gap:1rem 4%;
    margin-bottom: 4rem;
}
.maker_wrap > a {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 48%;
}
.maker_wrap > a > img {
    margin: auto;
    aspect-ratio: 1.5/1;
    object-fit: contain;
}
.maker_title {
    font-size: 0.84rem;
    line-height: 1.25;
    text-align: center;
}
@media only screen and (min-width: 768px) , print {
    .maker_title_area {
        margin-bottom: 3rem;
    }
    .maker_wrap {
        justify-content: center;
        margin-bottom: 10rem;
    }
    .maker_wrap > a {
        width: 210px;
    }
}

/* FAQ よくある質問
-------------------------------*/
.qa_cate_list {
    display: flex;
    flex-direction: column;
    gap:0.5rem 1rem;
}
.qa_cate_list a {
    line-height: 1.25;
    font-size: 0.84rem;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0.5rem 2rem;
}

.qa_wrap {
    border-top: 1px solid #CBCBCB;
    border-bottom: 1px solid #CBCBCB;
    margin-bottom: -1px;
}
.qa_q {
    padding: 1.5rem 0;
    display: grid;
    grid-template-columns: 22px 1fr 52px;
    grid-gap: 1rem;
    cursor: pointer;
    font-weight: 700;
    font-size: 0.94rem;
}
.qa_q::before {
    content: "Q.";
    color: #f00;
    font-size: 20px;
    line-height: 1.1;
    font-family: 'Montserrat', sans-serif;
}
.qa_q_ico {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    pointer-events: none;
}
.qa_q_ico::before ,
.qa_q_ico::after {
    content: "";
    display: block;
    position: absolute;
    background: #CBCBCB;
}
.qa_q_ico::before {
    width: 1px;
    height: 24px;
}
.qa_q_ico::after {
    width: 24px;
    height: 1px;
}
.qa_q.active .qa_q_ico::before {
    content: none;
}
.qa_a {
    height: 0px;
    opacity: 0;
    overflow: hidden;
    transition:0.8s;
}
.qa_q.active + .qa_a {
    opacity: 1;
}
.qa_a_inner {
    padding: 0 1rem 1rem;
    line-height: 1.8;
}

.qa_a_inner a:not(.btn) {
    text-decoration: underline;
}

.qa_a_inner p {
    margin-bottom: 1rem;
}

@media only screen and (min-width: 1024px) , print {
    .qa_cate_list {
        flex-direction: column;
        flex-direction: row;
    }
    .qa_q {
        padding: 2rem 0;
    }
    .qa_a_inner {
        padding: 0 2rem 2rem;
    }
}


/* RECRUIT 採用情報
-------------------------------*/
.job {
    border-bottom: 1px solid #f1f1f1;
    padding-bottom: 1.5rem;
    margin-bottom: 1.5rem;
}
.job_cate {
    display: flex;
    flex-wrap: wrap;
    gap:4px;
    margin: 0.5rem 0;
    padding: 0;
    list-style: none;
}
.job_cate li {
    background: #333;
    font-size: 11px;
    color: #fff;
    line-height: 1;
    padding: 4px 8px;
}

.recruit_img {
    height: 580px;
}

.recruit_flow_wrap {
    border-top: 1px solid #CBCBCB;
}
.recruit_flow {
    border-bottom: 1px solid #CBCBCB;
    padding: 2rem 0;
}
.recruit_flow_title > span {
    font-size: 11px;
    display: block;
    color: #f00;
}

.table_base {
    border-top: 1px solid #CBCBCB;
}
.table_base th,
.table_base td {
    border-bottom: 1px solid #CBCBCB;
    padding: 1.5rem 0;
    text-align: left;
    font-size: 0.84rem;
    vertical-align: top;
}
.table_base td {
    padding-left: 1rem;
}

@media only screen and (min-width: 1024px) , print {
    .job {
        border: 0;
    }
    
    .recruit_flow_wrap {
        border-top: 0;
        border-left: 1px solid #CBCBCB;
        display: flex;
        justify-content: space-between;
    }
    .recruit_flow {
        border-bottom: 0;
        border-right: 1px solid #CBCBCB;
        padding: 0 2rem;
    }
    
    .table_base th,
    .table_base td {
        padding: 1.8rem 0;   
    }
    .table_base th {
        width: 10em;
        color: inherit;
    }
}


/* CONTACT お問い合わせ
-------------------------------*/
.table_contact th {
    font-size: 0.84rem;
}
.table_contact td {
    padding-bottom: 2rem;
}


input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea {
    display: block;
    width: 100%;
    padding: 0.5rem 0.75rem;
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.5;
    color: #000;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #CBCBCB;
}

select {
    display: block;
    width: 100%;
    padding: 0.5rem 2.25rem 0.5rem 0.75rem;
    -moz-padding-start: calc(0.75rem - 3px);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #000;
    border: 1px solid #CBCBCB;
}

textarea {
    width: 100%;
}

.wpcf7-acceptance .wpcf7-list-item,
.wpcf7-checkbox .wpcf7-list-item,
.wpcf7-radio .wpcf7-list-item {
    margin-left: 0;
    display: block;
}
.wpcf7-acceptance label,
.wpcf7-checkbox label,
.wpcf7-radio label {
    position: relative;
}
.wpcf7-acceptance label input,
.wpcf7-checkbox label input,
.wpcf7-radio label input {
    display: none;
}
.wpcf7-acceptance .wpcf7-list-item-label,
.wpcf7-checkbox .wpcf7-list-item-label,
.wpcf7-radio .wpcf7-list-item-label  {
    display: flex;
    align-items: flex-start;
    position: relative;
    padding-left: 2rem;
}
.wpcf7-acceptance .wpcf7-list-item-label::before,
.wpcf7-checkbox .wpcf7-list-item-label::before,
.wpcf7-radio .wpcf7-list-item-label::before {
    content: "";
    position: absolute;
    top: 0.25rem;
    left: 0;
    width: 18px;
    height: 18px;
    border: 2px solid #CBCBCB;
    border-radius: 4px;
    background: #fff;
}
.wpcf7-radio .wpcf7-list-item-label::before {
    border-radius: 18px;
}
.wpcf7-acceptance input:checked + .wpcf7-list-item-label::before ,
.wpcf7-checkbox input:checked + .wpcf7-list-item-label::before {
    background: #333;
    border-color: #333;
}
.wpcf7-acceptance input:checked + .wpcf7-list-item-label::after,
.wpcf7-checkbox input:checked + .wpcf7-list-item-label::after {
    content: "";
    position: absolute;
    left: 6px;
    top: 0.25rem;
    width: 8px;
    height: 12px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.wpcf7-radio input:checked + .wpcf7-list-item-label::after  {
    content: "";
    position: absolute;
    left: 4px;
    top: 8px;
    width: 10px;
    height: 10px;
    background: #333;
    border-radius: 10px;
}


.wpcf7-checkbox .has-free-text {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap:0 1rem;
}
input[type=text].wpcf7-free-text {
    display: inline-block;
    width: auto;
}

.radio_row  {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
}


::placeholder {
    font-size: 0.84em;
    color: #bbb;
}

.hissu {
    color: #f00;
    font-size: 12px;
    display: inline-block;
    margin-left: 0.5rem;
}

.wpcf7-not-valid-tip {
    color: #f00;
    font-size: 0.84rem;
}

.contact_privacy {
    border: 1px solid #CBCBCB;
    background: #fff;
    height: 200px;
    padding: 1rem;
    font-size: 0.78rem;
    overflow-y: auto;
}
.contact_privacy ol {
    margin: 0;
    padding: 0.5rem 1rem;
}
.contact_privacy ol > li {
    margin-bottom: 0.5rem;
}
.contact_privacy ol li dt {
    font-weight: 700;
}

.grecaptcha-badge {
    visibility: hidden;
}

@media only screen and (min-width: 1024px) , print {
    .table_contact th ,
    .table_contact td {
        padding: 1.5rem 0;
    }
    .table_contact th {
        width: 15em;
    }
}



/* NEWS ニュース
-------------------------------*/
.news_area {
    margin-bottom: 4rem;
}
.news_list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap: 2rem clamp(16px, 4%, 60px);
    margin: 0;
    padding: 0;
    list-style: none;
}
.news_img a {
    display: block;
}
.news_img a img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.news_text {
    display: grid;
    grid-template-columns: auto;
    margin-top: 1rem;
}
.news_title {
    font-size: 0.88rem;
    font-weight: 400;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden; 
}
.news_date {
    font-size: 14px;
    letter-spacing: 0.075em;
}
.news_excerpt {
    font-size: 14px;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden; 
    min-height: 2.5rem;
}
.news_cate {
    display: flex;
    flex-wrap: wrap;
    gap:4px;
    margin-top: 1rem;
}
.news_cate a {
    border: 1px solid #CBCBCB;
    border-radius: 30px;
    text-align: center;
    padding: 4px 0.5rem;;
    font-size: 11px;
    text-decoration: none;
    line-height: 1;
}

.pagination {
    text-align:center;
    margin:2rem auto;
    font-size:16px;
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.pagination > a{
    flex: 1;
}

.pagination_num {
    flex: 2;
    font-size: 0.84rem;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.25rem;
    background: #f1f1f1;
    border-radius: 4px;
}
.page_prev + .pagination_num {
}

.pagination a,
.page_current {
    margin: 0 4px;
    text-decoration: none;
    padding: 0.25rem;
    background: #f1f1f1;
    display: flex;
    border-radius: 4px;
}

.pagination a.page_next {
    flex: 1;
}
.pagination a.page_prev {
    flex: 1;
}

.pagination a i {
    margin: auto;
    border-color: #000;
}
.pagination a i::after {
    border-color: #000;
}

.page_current {
    background:#fff;
    border:1px solid #EC1C24;
}

.page_next,
.page_prev {
    padding:2px 18px;
}

.widget  {
    margin-bottom: 2rem;
}
.widget_categories,
.widget_archive {
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid #f1f1f1;
}
.widget-title {
    font-size: 14px;
    letter-spacing: 0.05em;
}
.widget ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.widget li {
    font-size: 14px;
    position: relative;
}

.widget li a ,
.widget li label {
    text-decoration: none;
    display: block;
    padding: 0.5rem 0;
}
.widget li .month a {
    padding-left: 1rem;
}

.widget_archive a.year {
    cursor: pointer;
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.widget_archive .years ul {
    transition: 0.8s ease;
    margin: 0;
    margin-bottom: 1rem;
    padding-left: 1rem;
}

#sidebar .widget_archive ul.years li{
    margin-bottom: 0;
}

.widget_archive ul.years .hide {
    margin: 0;
    height: 0;
    opacity: 0;
    visibility: hidden;
}


/*ニュース詳細*/
.entry-header .news_date,
.entry-header .news_cate {
    margin-bottom: 4px;
}
.entry-title {
    font-weight: 700;
    margin-bottom: 2rem;
}
.entry-content {
    margin-bottom: 2rem;
}

.entry-content p {
    margin-bottom: 1rem;
}

.entry-content a:not(.btn) {
    text-decoration: underline;
}

.wp-block-separator {
    border: 1px solid #f1f1f1;
}

.news_link_list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap:1rem;
    margin: 4rem 0 0;
    padding: 2rem 0;
    border-top: 1px solid #CBCBCB;
    border-bottom: 1px solid #CBCBCB;
}
.news_link_list > span {
    display: block;
    line-height: 1;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.news_link_list a {
    display: block;
    font-size: 0.84rem;
    position: relative;
}
.prev a {
    padding-left: 2rem;
}
.next a {
    padding-right: 2rem;
    text-align: right;
}
.prev a::before,
.next a::after {
    content: "";
    width: 10px;
    height: 10px;
    border: 2px solid;
    transform: rotate(45deg);
    position: absolute;
    top: calc(50% - 5px);
}
.prev a::before {
    border-color: transparent transparent #CBCBCB #CBCBCB;
    left: 2px;
}
.next a::after {
    border-color: #CBCBCB #CBCBCB transparent transparent ;
    right: 2px;
}
.back_archive {
    padding: 1rem 0;
    text-align: center;
    font-size: 0.84rem;
}

.share_area {
    margin: 5rem auto -2rem;
    width: 80%;
}
.share_title {
    opacity: 0.6;
    font-size: 11px;
    text-align: center;
    margin-bottom: 0.5rem;
}
.share {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin: 0;
    list-style: none;
}
.share li {
    display: block;
}
.share a {
    display: block;
    text-decoration: none;
    font-size: 11px;
    padding: 0.3rem 1.6rem;
    color: #fff;
    text-align: center;
    line-height: 1;
}
.share_twitter a {
    color: #1DA1F2;
}
.share_facebook a {
    color: #1877F2;
}
.share_line a {
    color: #00B900;
}
.share a img {
    display: block;
    width: 36px;
    margin: 0 auto;
    border-radius: 30px;
}
.share a span {
    margin: 5px 0;
    display: block;
}


@media only screen and (min-width: 768px) , print {
    .news_list {
        grid-template-columns: 1fr 1fr 1fr 1fr;
    }
    .pagination {
        margin-top: 4rem;
    }
    .pagination a,
    .page_current,
    .pagination a.page_prev,
    .pagination a.page_next {
        flex: none;
        padding: 1rem 1.5rem;
    }
    .entry-title {
        margin-bottom: 4rem;
    }
    .share_area {
        margin-top: 7rem;
    }
    .news_link_list {
        margin-top: 5rem;
    }
}

