/*******************************************************************************************
なんでも屋HPテンプレート
*******************************************************************************************/
@charset "UTF-8";
@font-face {
    font-family:'DM Serif Display';
    src: url(../fonts/DMSerifDisplay-Regular.ttf);
}
@font-face {
    font-family:'Noto Sans Japanese';
    src: url(../fonts/NotoSansJP-Medium.ttf);
}
@font-face {
    font-family:'Oswald';
    src: url(../fonts/Oswald-Regular.ttf);
}
@font-face {
    font-family:'BIZUDPGothic';
    src: url(../fonts/BIZUDPGothic-Regular.ttf);
}


/*******************************************************************************************
共通処理
*******************************************************************************************/
html {
    font-size: 100%;
    scroll-snap-type:y proximity;/*ページ内リンク少し上に着地調整*/
    scroll-padding-top:15vh;/*ページ内リンク少し上に着地調整*/
    /*scroll-behavior:smooth;/*上に戻る挙動をスムーズ化　　問い合わせフォームの画面外のフォームエラーが表示されなくなる影響あり*/
    scroll-behavior:auto;/*上に戻る挙動をスムーズ化　　問い合わせフォームの画面外のフォームエラーが表示されなくなる影響あり*/
}
body {
    background-color:white;
    font-family:'BIZUDPGothic','Noto Sans Japanese';
    font-size: 0.9rem;
    line-height: 1.7;
}
/*英数字用*/
.text-en {
    font-family: "Quicksand",'Noto Sans Japanese';
}
/*中身のコンテンツ幅指定の共通クラス*/
.wrapper {
    width:100%;
    max-width:100%;
    margin: 0 auto;
    padding:0 20px;
    text-align: center;
    position:relative;
}
/*H3レイアウト*/
.title_h3{
    font-size:1.8vw;
    font-weight:bold;
    white-space: nowrap;
    text-shadow:1px 2px 3px gray;
}
/*新着記事に「NEW」を付与*/
.text_icon{
    color:white;
    font-weight:bold;
    background-color:red;
    border-radius:30px;
    padding:3px 10px;
    margin-left:10px;
}
span.inline{
    display:inline-block;
}
br.br_pc{
    display:none;
}
br.br_sm{
    display:block;
}
/*******************************************************************************************
変数定義
*******************************************************************************************/
body{
    /*テーマカラー*/
    --themecolor: #ffffeb;
    /*文字間隔*/
    --letter-space: 0.20em;
}
/*******************************************************************************************
h1（非表示）
*******************************************************************************************/
.visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
/*******************************************************************************************
header
*******************************************************************************************/
#header {
    /*position:fixed;*/
    /*position:relative;
    top:0;
    left:0;
    right:0;*/
    width:100%;
    height:110px;
    max-height:110px;
    max-width:100%;
    background-color:rgb(255,255,255,1.0);
    transition-duration:0.5s;
    height:auto;
    z-index:100;
}
/*
ヘッダーメニューモバイル用
*/
#header #header_menu_area{
    height:auto;
    /*position:relative;*/
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:101;
    display:block;
    background-color:rgb(255,255,255,1.0);
    border-bottom:1px solid #ccc;
    flex-direction:column;
    justify-content:space-between;
    align-items:center;
}
#header #header_menu_area #header_menu_top{
    display:block;
    width:100%;
    color:white;
    font-size:0.7rem;
    background-color:var(--themecolor);
    padding:2px 3px;
}
#header #header_menu_area #header_menu{
    display:flex;
    width:100%;
    height:auto;
    justify-content:space-between;
    align-items:center;
}
#header #header_menu_area #header_menu #header_logo{
    display:flex;
    width:200px;
    height:auto;
    margin-left:5px;
}
#header #header_menu_area #header_menu #header_logo img{
    display:flex;
}
#header_menu #header_logo .header_menu_title{
    display:flex;
    vertical-align: middle;/*inline-block上下中央に必須*/
    height:100%;
    width:100%;

}
#header_menu #header_logo .header_menu_title img{
    display:flex;
    width:100%;
    height:100%;
    object-fit:contain;
}
#header_menu #nav{
    height:100%;
    position:relative;
}
#header_menu #nav #nav_contact{
    display:flex;
    width:110px;
    height:110px;
    color:white;
    font-size:0.8rem;
    background-color:#00287d;
    background-image:url(../img/mail_sample.svg);
    background-repeat:no-repeat;
    background-size:40px 30px;
    background-position:center top 30px;
    position:absolute;
    top:0;
    right:0;
}
#header_menu #nav #nav_contact .btn{
    display:flex;
    width:100%;
    height:100%;
    justify-content:center;
    align-items:flex-end;
    padding-bottom:20px;

}
#header_menu #nav #nav_menu1{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    text-align:center;
    height:100%;
    margin-right:125px;
    padding-bottom:10px;
}
#header_menu #nav #nav_menu1 .nav_menu1_item{
    color: #231815;
    font-size:1.0vw;
    /*font-weight:bold;*/
    white-space:nowrap;
    position:relative;
    padding:5px 10px;
    border-radius:20px;
    margin-left:20px;
    transition-duration:0.5s;
}
#header_menu #nav #nav_menu1 .nav_menu1_item::after{
    content:"";
    width:100%;
    height:2px;
    background-color:#333333;
    position:absolute;
    bottom:0;
    left:0;
    /*visibility:hidden;*/
    opacity:0;
}
#header_menu #nav #nav_menu1 .nav_menu1_item:hover::after{
    /*visibility:visible;*/
    opacity:1;
    transition:1.0s;
}
#header_menu #nav #nav_menu2{
    display:flex;
    justify-content:space-between;
    text-align:center;
    position:absolute;
    top:25px;
    right:125px;
}
#header_menu #nav #nav_menu2 .nav_menu2_item{
    font-size:0.7vw;
    /*font-weight:bold;*/
    border-right:1px solid black;
    padding:0 10px;
    position:relative;
}
#header_menu #nav #nav_menu2 .nav_menu2_item::after{
    content:"";
    width:80%;
    height:1px;
    background-color:#333333;
    position:absolute;
    bottom:0;
    left:50%;
    transform:translateX(-50%);
    /*visibility:hidden;*/
    opacity:0;
}
#header_menu #nav #nav_menu2 .nav_menu2_item:hover::after{
    /*visibility:visible;*/
    opacity:1;
    transition:1.0s;
}
#header_menu #nav #nav_menu2 .nav_menu2_item:last-child{
    border-right:none;
}

/*
ハンバーガメニュー 
*/
#header #header_menu_area .hamburger_btn{
    display:block;
    position:relative;
    width:50px;
    /*height:auto;*/
    height:50px;
    margin:0 0 0 auto;
    z-index:100;
}
/*ボタン外側*/
#header #header_menu_area .hamburger_btn .header_menu_lines{
    position: relative;/*ボタン内側を基点とする*/
    background:#ed7836;
    cursor: pointer;
    width: 100%;
    height:100%;
}
/*ボタン内側*/
#header #header_menu_area .hamburger_btn .header_menu_lines span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 5px;
    height: 2px;
    border-radius: 5px;
    background: white;
    width: 75%;
}
#header #header_menu_area .hamburger_btn .header_menu_lines span:nth-of-type(1) {
    top:15px; 
}
#header #header_menu_area .hamburger_btn .header_menu_lines span:nth-of-type(2) {
    top:25px;
} 
#header #header_menu_area .hamburger_btn .header_menu_lines span:nth-of-type(3) {
    top:35px;
}
#header #header_menu_area .hamburger_btn .header_menu_lines.active span:nth-of-type(1) {
    top: 21px;
    left:13px;
    transform: translateY(6px) rotate(-45deg);
    width: 50%;
}
  
#header #header_menu_area .hamburger_btn .header_menu_lines.active span:nth-of-type(2) {
    opacity: 0;
}
#header #header_menu_area .hamburger_btn .header_menu_lines.active span:nth-of-type(3){
    top: 33px;
    left: 15px;
    transform: translateY(-6px) rotate(45deg);
    width: 50%;
}
#header #header_menu_area .hamburger_btn .header_menu_lines.active span:nth-of-type(3)::after {
    /*content:"Close";MENU文言非表示*/
    transform: translateY(0) rotate(-45deg);
    top:5px;
    left:4px;
}
#header #header_slide_menu_area{
    display:none;/*PC非表示*/
    background-color:white;
    position: fixed;
    top: 0px;
    right: 0px;
    width: 80%;
    height:100%;
    transform: translateX(100%); /* ハンバーガーメニューOFF時、右側へスライドさせておく */
    z-index:100;
    transition: 0.4s;
    overflow-y:scroll;/*メニュー縦スクロール許可*/
}
#header #header_slide_menu_area.active{
    transform: translateX(0);
    display:block;
}
#header #header_slide_menu_area ul.header_slide_menu{
    margin:100px 20px 70px 20px;
}
#header #header_slide_menu_area ul.header_slide_menu li.item{
    display:block;
    width:100%;
    height:auto;
    border-bottom:1px solid #ccc;
    padding:10px;
    position:relative;
}
#header #header_slide_menu_area ul.header_slide_menu li.item:nth-of-type(1):before{
    content:"";
    display:block;
    width:25px;
    height:25px;
    background-image:url(../img/icon_airplane.png);
    background-repeat:no-repeat;
    background-size:contain;
    background-position:center center;
    position:absolute;
    top:50%;
    left:0;
    transform:translateY(-50%);
}
#header #header_slide_menu_area ul.header_slide_menu li.item:nth-of-type(2):before{
    content:"";
    display:block;
    width:25px;
    height:25px;
    background-image:url(../img/icon_balloon.png);
    background-repeat:no-repeat;
    background-size:contain;
    background-position:center center;
    position:absolute;
    top:50%;
    left:0;
    transform:translateY(-50%);
}
#header #header_slide_menu_area ul.header_slide_menu li.item:nth-of-type(3):before{
    content:"";
    display:block;
    width:25px;
    height:25px;
    background-image:url(../img/icon_palette.png);
    background-repeat:no-repeat;
    background-size:contain;
    background-position:center center;
    position:absolute;
    top:50%;
    left:0;
    transform:translateY(-50%);
}
#header #header_slide_menu_area ul.header_slide_menu li.item:nth-of-type(4):before{
    content:"";
    display:block;
    width:25px;
    height:25px;
    background-image:url(../img/icon_windmill.png);
    background-repeat:no-repeat;
    background-size:contain;
    background-position:center center;
    position:absolute;
    top:50%;
    left:0;
    transform:translateY(-50%);
}
#header #header_slide_menu_area ul.header_slide_menu li.item:nth-of-type(5):before{
    content:"";
    display:block;
    width:25px;
    height:25px;
    background-image:url(../img/icon_book.png);
    background-repeat:no-repeat;
    background-size:contain;
    background-position:center center;
    position:absolute;
    top:50%;
    left:0;
    transform:translateY(-50%);
}
#header #header_slide_menu_area ul.header_slide_menu li.item:nth-of-type(6):before{
    content:"";
    display:block;
    width:25px;
    height:25px;
    background-image:url(../img/icon_crayon.png);
    background-repeat:no-repeat;
    background-size:contain;
    background-position:center center;
    position:absolute;
    top:50%;
    left:0;
    transform:translateY(-50%);
}
#header #header_slide_menu_area ul.header_slide_menu li.item:nth-of-type(7):before{
    content:"";
    display:block;
    width:25px;
    height:25px;
    background-image:url(../img/icon_note.png);
    background-repeat:no-repeat;
    background-size:contain;
    background-position:center center;
    position:absolute;
    top:50%;
    left:0;
    transform:translateY(-50%);
}
#header #header_slide_menu_area ul.header_slide_menu li.item span{
    padding:10px 10px 10px 30px;
}
#header #header_slide_menu_area ul.header_slide_menu li.item:last-child{
    margin-bottom:0px;
}
#header #header_slide_menu_area ul.header_slide_menu li.item a{
    color:#593202;
}
#header #header_slide_menu_area ul.header_slide_menu ul.header_slide_menu_child{
    padding:0px;
    background-color:#ecf2fb;
}
#header #header_slide_menu_area ul.header_slide_menu ul.header_slide_menu_child li.item_child{
    color:#593202;
    border-bottom:1px solid #ccc;
    padding:5px 5px 5px 50px;
}
#header #header_slide_menu_area ul.header_slide_menu ul.header_slide_menu_child li.item_child:last-child{
    border-bottom:none;
}
#header #header_slide_menu_area #nav_contact_sm{
    background-color:var(--themecolor);
    padding:10px 10px 10px 10px;
}
#header #header_slide_menu_area #nav_contact_sm .message{
    display:block;
    color:#593202;
    text-align:center;
    margin:0 auto;
}
#header #header_slide_menu_area #nav_contact_sm .telno_area{
    text-align:center;
}
#header #header_slide_menu_area #nav_contact_sm .telno_area .telno{
    color:#467302;
    font-size:1.7rem;
    font-weight:bold;
    font-family:"Oswald",sans-serif;
    text-align:center;
    position:relative;
}
#header #header_slide_menu_area #nav_contact_sm .telno_area .telno:before{
    content:"";
    display:block;
    width:30px;
    height:30px;
    background-image:url(../img/tel.png);
    background-repeat:no-repeat;
    background-size:contain;
    background-position:center center;
    position:absolute;
    top:50%;
    left:0;
    transform:translate(calc(-100% - 10px), -50%);
}
#header #header_slide_menu_area #nav_contact_sm .time{
    display:block;
    width:100%;
    height:auto;
    color:#593202;
    text-align:center;
    margin-bottom:50px
}
#header #header_slide_menu_area #nav_contact_sm .contact_btn{
    display:block;
    width:80%;
    height:auto;
    background-color:#d70d22;
    border:2px solid #d70d22;
    border-radius:30px;
    margin:10px auto 50px;
}
#header #header_slide_menu_area #nav_contact_sm .contact_btn span{
    display:block;
    width:100%;
    height:auto;
    font-size:1.1rem;
    color:white;
    text-align:center;
    background-color:#d70d22;
    border:2px solid white;
    border-radius:30px;
    margin:0 auto;
    padding:5px 10px;
    position:relative;
}
#header #header_slide_menu_area #nav_contact_sm .contact_btn span:before{
    content:"";
    display:block;
    width:10px;
    height:10px;
    background-image:url(../img/chevron-right-solid.svg);
    background-repeat:no-repeat;
    background-size:cover;
    background-position:center center;
    position:absolute;
    top:50%;
    right:0;
    transform:translate(-100%,-50%);
}

/*
ヘッダーメニュー ＰＣ用
*/
#header #header_menu_area_pc{
    display:none;
    position:relative;
    z-index:20;
    background-color:var(--themecolor);
    flex-direction:column;
    justify-content:space-between;
    align-items:center;
}
#header #header_menu_area_pc #header_menu_top #header_menu{
    display:flex;
    justify-content:space-between;
}
#header #header_menu_area_pc #header_menu_top #header_menu #header_logo{
    display:block;
    width:300px;
    height:100%;
}
#header #header_menu_area_pc #header_menu_top #header_menu #header_logo a{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
}
#header #header_menu_area_pc #header_menu_top #header_menu #header_logo a img{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
}
#header #header_menu_area_pc #header_menu_top #header_menu #header_contact_area{
    display:flex;
    justify-content:right;
    align-items:center;
    width:200px;
}
#header #header_menu_area_pc #header_menu_top #header_menu #header_contact_area .telno_area{
    width:100%;
}
#header #header_menu_area_pc #header_menu_top #header_menu #header_contact_area .telno_area .telno{
    display:flex;
    color:#467302;
    flex-direction:column;
    font-size:1.5rem;
    font-weight:bold;
    font-family:"Oswald",sans-serif;
    white-space:nowrap;
    position:relative;
}
#header #header_menu_area_pc #header_menu_top #header_menu #header_contact_area .telno_area .telno::before{
    content:"";
    width:30px;
    height:30px;
    background-image:url(../img/tel.png);
    background-repeat:no-repeat;
    background-size:contain;
    background-position:center center;
    position:absolute;
    top:50%;
    left:0;
    transform:translate(calc(-100% + 10px),-50%);
}
#header #header_menu_area_pc #header_menu_top #header_menu #header_contact_area .telno_area .time{
    color:#593202;
    font-size:0.8rem;
    white-space:nowrap;
    padding-right:15px; 
}
#header #header_menu_area_pc #header_menu_top #header_menu #header_contact_area .btn_area{
    display:inline-block;
    width:45%;
    border-radius:5px;
    margin-top:20px;
    margin-bottom:20px;
}
#header #header_menu_area_pc #header_menu_top #header_menu #header_contact_area .btn_area .btn{
    display:inline-block;
    width:100%;
    font-size:0.8rem;
    white-space:nowrap;
    color:#6e3819;
    background-color:#fdf1ea;
    border:2px solid #e5803a;
    box-shadow:3px 3px 0 #ed7836;
    border-radius:5px;
    padding:5px 0 5px 20px;
    position:relative;
}
#header #header_menu_area_pc #header_menu_top #header_menu #header_contact_area .btn_area .btn::before{
    content:"";
    display:block;
    width:20px;
    height:20px;
    background-image:url(../img/contact.svg);
    background-repeat:no-repeat;
    background-position:center center;
    background-size:cover;
    position:absolute;
    top:50%;
    left:5%;
    transform:translateY(-50%);
}
#header #header_menu_area #header_btn_area{
    display:flex;
}
#header #header_menu_area #header_btn_area .contact_link_btn{
    display:block;
    width:50px;
    height:50px;
    border:1px solid #ed7836;
}
#header #header_menu_area #header_btn_area .contact_link_btn a img{
    display:block;
    margin:5px;
}
/*******************************************************************************************
header.php maskエリア
*******************************************************************************************/
#header #mask_area.active{
    display:block;
}
#header #mask_area{
    display:none;
    width:100%;
    height:100%;
    background-color:rgb(0,0,0,0.3);
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:99;
}
/*******************************************************************************************
ナビゲーションメニュー（ＰＣ用）
*******************************************************************************************/
#navi_area{
    position:sticky;
    top:0px;
    left:0;
    right:0;
    display:none;
    width:100%;
    height:auto;
    background-color:var(--themecolor);
    border-top:1px solid #e5803a;
    border-bottom:1px solid #e5803a;
    z-index:99;
}
#navi_area .menu_area{
    position:relative;
}
#navi_area ul.navi_list{
    display:flex;
    color:#593202;
    justify-content:space-between;
    margin:5px auto;
    position:relative;
}
#navi_area ul.navi_list li{
    width:calc(100% / 8);
    border-right:1px dotted #e5803a;
}
#navi_area ul.navi_list li:first-child{
    border-left:1px dotted #e5803a;
}
#navi_area ul.navi_list li a.btn{
    display:flex;
    width:100%;
    height:100%;
    flex-direction:column;
    align-items:flex-end;
    padding:5px;
}
#navi_area ul.navi_list li a.btn img{
    width:30px;
    height:30px;
    margin:0 auto;
}
#navi_area ul.navi_list li a.btn span{
    display:block;
    width:100%;
    font-size:0.8rem;
    text-align:center;
}
#navi_area ul.navi_list li a.btn span.home{
    color:#d70d22;
}
#navi_area ul.navi_list li a.home img path{
    fill:#d70d22;
}
#navi_area ul.navi_list li a.add_menu{
    background-image:url(../img/chevron-down-solid.svg);
    background-repeat:no-repeat;
    background-size:20px 10px;
    background-position:center bottom;
}
#navi_area .pop_menu_area.show{
    opacity:1;
    transition:opacity .3s,visibility .3s;
    visibility:visible;
}
#navi_area .pop_menu_area{
    opacity:0;
    visibility: hidden;
    display:block;
    width:100%;
    height:auto;
    background-color:#ecf2fb;
    transition: opacity .3s, visibility .3s;
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    transform:translateY(100%);
}
#navi_area .pop_menu_area ul.pop_menu{
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
}
#navi_area .pop_menu_area ul.pop_menu li{
    display:block;
    width:calc(100% / 5);
    font-size:0.8rem;
    white-space:nowrap;
}
#navi_area .pop_menu_area ul.pop_menu li .pop_item{
    display:block;
    color:#593202;
    margin:5px;
}
#navi_area .pop_menu_area ul.pop_menu li .pop_item:hover{
    color:white;
    background-color:#6495ed;
    transition: 0.3s; /* マウスカーソルを載せるとき */
}
/*******************************************************************************************
mainvisual
*******************************************************************************************/
#mainvisual{
    display:block;
    width:100%;
    height:auto;
    margin:70px auto 0 auto;
}
#mainvisual picture img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
/*******************************************************************************************
index.php about
*******************************************************************************************/
#about{
    margin-top:50px;
}
#about .inner_area{
    display:flex;
    flex-direction:column;
}
#about .inner_area h2{
    display:block;
    font-size:1.5rem;
    font-weight:bold;
    letter-spacing: var(--letter-space);
    color:#6e3819;
    padding:10px 0;
    position:relative;
}
#about .inner_area h2::before{
    content:"";
    width:100%;
    height:3px;
    background-color:#fdf1ea;
    position:absolute;
    left:0;
    right:0;
    bottom:0;
}
#about .inner_area h2::after{
    content:"";
    width:50%;
    height:3px;
    background-color:#ed7836;
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    transform:translateX(50%);
}
#about .inner_area .head_comment{
    display:block;
    font-size:1.1rem;
    letter-spacing: var(--letter-space);
    text-align:justify;
    margin-top:20px;
    margin-bottom:20px;
    color:#593202;
}
#about .inner_area .img_area{
    display:block;
    max-width:500px;
    border-radius:50%;
    margin:0 auto;
    overflow:hidden;
}
#about .inner_area .img_area img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
#about .inner_area ul{
    display:flex;
    flex-direction:column;
    margin:0 10px;
}
#about .inner_area ul li{
    margin-bottom:50px;
}
#about .inner_area ul li .serivice_item{
    display:flex;
    position:relative;
}
#about .inner_area ul li .serivice_item img{
    width:100%;
    height:100%;
    border:3px solid #0643ac;
    object-fit:cover;
}
#about .inner_area ul li .serivice_item .btn_area{
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    margin:0 auto;
    transform:translateY(50%);
    display:block;
    width:90%;
    padding:5px;
    font-size:1rem;
    font-weight:bold;
    color:white;
    background-color:var(--themecolor);
    border-radius:50px;
}
#about .inner_area ul li .serivice_item .btn_area .span1{
    display:block;
    width:100%;
    height:100%;
    padding:5px;
    border:1px solid white;
    border-radius:50px;
    background-image:url(../img/chevron-right-solid.svg);
    background-repeat:no-repeat;
    background-position:calc(100% - 10px) center;
    background-size:10px 10px;
}

/* 全体の余白 */
#about .about-features {
  margin: 3rem 0;
}

/* 各アイテム */
#about .feature-item {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    margin-bottom: 100px;
    text-align: left;
}
#about .feature-item.reverse {
    flex-direction: column; /* 縦並びに */
}
#about .feature-item .feature-img{
    display:flex;
    width:100%;
    order:2;
}
/* テキスト部分 */
#about .feature-text {
    display:contents;
    flex: 1;
    font-size: 1.1rem;
    text-align:left;
    line-height: 1.7;
    color: #593202;
    margin-left:50px;
}
#about .feature-text p.text{
    text-align:justify;
    letter-spacing: var(--letter-space);
    order:3;
}
#about .feature-text h3 {
    display:block;
    font-size: 1.5rem;
    text-align:left;
    letter-spacing: var(--letter-space);
    margin-left:1.5em;
    margin-bottom: 1rem;
    color: #6e3819;
    font-weight: bold;
    border-bottom:1px solid #6e3819;
    position:relative;
    z-index:1;
    order:1;
}
#about .feature-text h3::before{
    content:"";
    display:block;
    width:30px;
    height:30px;
    background-image:url(/public/img/about_header_img.png);
    background-repeat:no-repeat;
    background-position:center center;
    background-size:contain;
    position:absolute;
    top:50%;
    left:0;
    translate:calc(-100% - 10px) -50%;
    z-index:-1;
}
#about .feature-text h3 span{
    font-size:0.7em;
}
#about .feature-img img {
    width: 100%;
    height: auto;
    border-radius: 10px;
    object-fit: cover;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
/*******************************************************************************************
運営理念　philosophy
*******************************************************************************************/
#philosophy{
    background-color:#fffdea;
    padding-top:30px;
    padding-bottom:50px;
}
#philosophy .inner_area h2{
    display:block;
    font-size:1.5rem;
    font-weight:bold;
    letter-spacing: var(--letter-space);
    color:#6e3819;
    margin-bottom:30px;
    padding:20px 0;
    position:relative;
}
#philosophy .inner_area h2::before{
    content:"";
    width:100%;
    height:3px;
    background-color: #fdf1ea;
    position:absolute;
    left:0;
    right:0;
    bottom:0;
}
#philosophy .inner_area h2::after{
    content:"";
    width:50%;
    height:3px;
    background-color:#ed7836;
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    transform:translateX(50%);
}
#philosophy .inner_area .intro_area{
    display:block;
}
#philosophy .inner_area .intro_area p.intro{
    font-size:1.1rem;
    text-align:justify;
    letter-spacing: var(--letter-space);
    color:#593202;
}
#philosophy .inner_area .intro_area p strong.st_text{
    font-size:1.5em;
    font-weight:bold;
}

/*******************************************************************************************
運営理念 画像部　philosophy_img
*******************************************************************************************/
#philosophy_img{
    background-color:#fffdea;
    padding-bottom:50px;
}
#philosophy_img .wrapper{
    padding:0;
}
#philosophy_img .inner_area .img_area{
    display:block;
    width:100%;
    background-color:white;
    margin:0 auto 100px auto;
    position:relative;
}
#philosophy_img .inner_area .img_area .design_area{
    display:block;
    width:80px;
    height:80px;
    position:absolute;
    bottom:0;
    left:0;
    z-index:0;
}
/* 足元の影 */
#philosophy_img .inner_area .img_area .design_area::before {
    content:"";
    position:absolute;
    left:50%;
    bottom:-10px;
    transform:translateX(-50%);
    width:90%;
    height:32px;
    background: radial-gradient(
        ellipse at center,
        rgba(0,0,0,.45) 0%,   /* ← 濃さ：αを0.45くらいに上げる */
        rgba(0,0,0,.25) 40%, /* ← 中間も残すと床っぽい */
        rgba(0,0,0,0) 75%
    );
    filter: blur(4px);
    pointer-events: none; /* クリック操作を邪魔しない */
    z-index:-1;
}
#philosophy_img .inner_area .img_area .design2_area{
    display:block;
    width:100px;
    height:100px;
    position:absolute;
    top:0;
    right:0;
    z-index:0;
}
/* 足元の影 */
#philosophy_img .inner_area .img_area .design2_area::before {
    content:"";
    position:absolute;
    left:60%;
    bottom:-10px;
    transform:translateX(-50%);
    width:50%;
    height:32px;
    background: radial-gradient(
        ellipse at center,
        rgba(0,0,0,.45) 0%,   /* ← 濃さ：αを0.45くらいに上げる */
        rgba(0,0,0,.25) 40%, /* ← 中間も残すと床っぽい */
        rgba(0,0,0,0) 75%
    );
    filter: blur(4px);
    pointer-events: none; /* クリック操作を邪魔しない */
    z-index:-1;
}
#philosophy_img .inner_area .img_area img.img_shapes{
    display:block;
    width:500px;
    margin:0 auto;
}
#philosophy_img .inner_area .explanation_area{
    display:block;
    max-width:800px;
    margin:0 auto;
}
#philosophy_img .inner_area .explanation_area .photo-pc {
    display: none;
}
#philosophy_img .inner_area .explanation_area .photo-sm {
    display: inline-block;
    width: 100%;
}
/*******************************************************************************************
お悩み worries
*******************************************************************************************/
#worries{
    background-color:#fdf1ea;
    padding-top:30px;
    padding-bottom:50px;
}
#worries .wrapper .inner_area h2{
  display:block;
  font-size:1.5rem;
  font-weight:bold;
  letter-spacing: var(--letter-space);
  color:#6e3819;
  margin-bottom:30px;
  padding:20px 0;
  position:relative;
}
#worries .wrapper .inner_area h2 span.pickup{
    color:#ed7836;
    font-size:1.25em;
}
#worries .wrapper .inner_area h2::before{
  content:"";
  width:100%; height:3px; background-color: white;
  position:absolute; left:0; right:0; bottom:0;
}
#worries .wrapper .inner_area h2::after{
  content:"";
  width:50%; height:3px; background-color:#ed7836;
  position:absolute; left:0; right:0; bottom:0; transform:translateX(50%);
}
#worries .wrapper .inner_area p.intro{
  font-size:1.1rem; color:#593202; text-align:justify;
  letter-spacing: var(--letter-space); margin-bottom:50px;
}
#worries .wrapper .inner_area .img_sm_area{
    display:block;
    width:200px;
    margin:0 auto;
}
#worries .wrapper .inner_area .img_sm_area img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
#worries .wrapper .inner_area .worries_list{
    background-color:white;
    border-radius:10px;
    padding:40px 10px;
}
#worries .wrapper .inner_area .worries_list img{
    display:block;
    filter: drop-shadow(5px 5px 5px #aaa);
    margin:0 auto;
}
#worries .wrapper .inner_area .worries_list img.photo-pc {
    display: none;
}
#worries .wrapper .inner_area .worries_list img.photo-sm {
    display: inline-block;
    width: 100%;
}
/*******************************************************************************************
1日の流れ timetable
*******************************************************************************************/
/* ========= 変数 & ベース ========= */
:root{
  --ink:#1f2937;
  --muted:#6b7280;
  --line:#d1d5db;
  --head:#f3f4f6;
  --acc:#2563eb;
  --paper:#ffffff;
  --radius:14px;
  --sticky-offset:80px;
  --time-col: 80px;

  --cell-gap-x: 8px;
  --cell-gap-y: 10px;

  /* 追加：本文の字間 */
  --letter-space: 0.02em;
}
html { scroll-padding-top: var(--sticky-offset); }

.board {
  position: relative;
  padding: 24px;
  border-radius: 20px;
  border: 20px solid #e8d9c8;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
  background-color:#e7c7a2; /* 木目風（画像なし） */
}
#timetable{
  background-color:white;
  padding-top:30px;
  padding-bottom:50px;
}
#timetable .wrapper.pc_none{ padding:0; }
#timetable .wrapper h2{
  display:block;
  font-size:1.5rem;
  font-weight:bold;
  letter-spacing: var(--letter-space);
  color:#6e3819;
  margin-bottom:30px;
  padding:20px 0;
  position:relative;
}
#timetable .wrapper h2::before{
  content:"";
  width:100%; height:3px; background-color: #fdf1ea;
  position:absolute; left:0; right:0; bottom:0;
}
#timetable .wrapper h2::after{
  content:"";
  width:50%; height:3px; background-color:#ed7836;
  position:absolute; left:0; right:0; bottom:0; transform:translateX(50%);
}
#timetable .wrapper p.intro{
  font-size:1.1rem; color:#593202; text-align:justify;
  letter-spacing: var(--letter-space); margin-bottom:50px;
}
#timetable .board::after {
  content:"";
  display:block; width:100%; height:150px;
  background-image:url(/public/img/flow_img.png);
  background-repeat:no-repeat; background-position:center center; background-size:contain;
  position:absolute; bottom:-10px; left:50%; translate:-50% 0; z-index:2;
}
#timetable .board-title {
  font-size: 1.3rem; font-weight:bold; letter-spacing: var(--letter-space);
  margin-bottom: 10px; text-align: center; color: #6e3819; text-shadow: 0 1px 0 #fff5ea;
}

/* 中の紙エリア */
#timetable .table-wrap {
  background: #fffdf9;
  border-radius: 10px;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.1);
  padding: 12px 0 140px 0;
  margin-bottom: 16px;
}

/* ========= テーブル共通 ========= */
#timetable .timetable-board {
  border-collapse: separate;
  border-spacing: var(--cell-gap-x) var(--cell-gap-y);
  min-width: 0;
  width: 100%;
  background: transparent;
  border-radius: 8px;
  table-layout: fixed;
}
/* 列幅（SP一列テーブル） */
#timetable .timetable-board--sp .col-time { width: var(--time-col); }
#timetable .timetable-board--sp .col-one  { width: calc(100% - var(--time-col)); }

/* 列幅（PC統合テーブル） */
#timetable .timetable-board--pc .col-time  { width: var(--time-col); }
#timetable .timetable-board--pc .col-child { width: calc((100% - var(--time-col)) / 2); }
#timetable .timetable-board--pc .col-after { width: calc((100% - var(--time-col)) / 2); }

/* ヘッダー */
#timetable .timetable-board thead th {
  letter-spacing: var(--letter-space);
  background-color:white;
  font-weight: 700;
  color: #6e3819;
}

/* 各セル */
#timetable .timetable-board th,
#timetable .timetable-board td {
  border-radius:10px;
  padding: 12px;
  text-align: center;
  vertical-align: middle;
  word-break: break-word;
  background-clip: padding-box;
}

/* 時間列 */
#timetable .timetable-board tbody th {
  background: #fafafa;
  font-weight: 700;
  width: var(--time-col);
}
#timetable .timetable-board tbody th small {
  display: block; color: var(--muted); font-size: .8em;
}

/* リンク（コマ） */
#timetable .slot {
  display:block; letter-spacing: var(--letter-space);
  text-decoration:none; color:#593202;
  border-radius: 8px; transition: all .25s ease;
}
#timetable .slot:hover {
  background: #fff3e9; /* 基調色に寄せた淡色 */
  box-shadow: inset 0 0 0 1px #ffc89f;
}

/* sticky */
#timetable .sticky-top {
  position: sticky; top: 0; z-index: 3;
  box-shadow: 0 1px 0 rgba(0,0,0,.04); background: #ffffff;
}
#timetable th.sticky-top{ border:none; }
#timetable .sticky-col {
  position: sticky; left: 0; z-index: 2;
  box-shadow: 1px 0 0 rgba(0,0,0,.04); background: #ffffff;
}
#timetable .sticky-col.sticky-top {
  background-color:white; border-left:none; border-right:none; z-index: 4;
}

/* ========= セル配色（児童/放課後 共用） ========= */
#timetable .timetable-board td.td-child-1  { background: linear-gradient(to top, #FAD4D4 0px, #FEF3F3 25px); }
#timetable .timetable-board td.td-child-2  { background: linear-gradient(to top, #F9CBAF 0px, #FEF0E5 25px); }
#timetable .timetable-board td.td-child-3  { background: linear-gradient(to top, #F9DCA5 0px, #FFF7E3 25px); }
#timetable .timetable-board td.td-child-4  { background: linear-gradient(to top, #FBF4A0 0px, #FFFBE1 25px); }
#timetable .timetable-board td.td-child-5  { background: linear-gradient(to top, #D9F4A8 0px, #F5FAE9 25px); }
#timetable .timetable-board td.td-child-6  { background: linear-gradient(to top, #A8EAD1 0px, #E4F7F2 25px); }
#timetable .timetable-board td.td-child-7  { background: linear-gradient(to top, #89D8E8 0px, #E3F7FB 25px); }
#timetable .timetable-board td.td-child-8  { background: linear-gradient(to top, #9DB9F4 0px, #EBF1FE 25px); }
#timetable .timetable-board td.td-child-9  { background: linear-gradient(to top, #C2B1F6 0px, #EEEAFD 25px); }
#timetable .timetable-board td.td-child-10 { background: linear-gradient(to top, #E0B5E5 0px, #F7E9F8 25px); }
#timetable .timetable-board td.td-child-11 { background: linear-gradient(to top, #F3AEC3 0px, #FCE8EF 25px); }

#timetable .timetable-board td.td-after-1 { background: none; }
#timetable .timetable-board td.td-after-2 { background: none; }
#timetable .timetable-board td.td-after-3 { background: none; }
#timetable .timetable-board td.td-after-4 { background: none; }
#timetable .timetable-board td.td-after-5 { background: none; }
#timetable .timetable-board td.td-after-6 { background: none; }
#timetable .timetable-board td.td-after-7 { background: linear-gradient(to top, #83D0E6 0px, #E3F7FB 25px); }
#timetable .timetable-board td.td-after-8 { background: linear-gradient(to top, #BFC5F8 0px, #ECEEFD 25px); }
#timetable .timetable-board td.td-after-9 { background: linear-gradient(to top, #D5B5EB 0px, #F3EAF9 25px); }
#timetable .timetable-board td.td-after-10{ background: linear-gradient(to top, #E6B2D8 0px, #F8ECF5 25px); }
#timetable .timetable-board td.td-after-11{ background: linear-gradient(to top, #F3AEC3 0px, #FCE8EF 25px); }



/* ========= 詳細カード ========= */
/* グループ見出し */
#details .details-group-title{
  font-size:1.2rem;
  font-weight:700;
  letter-spacing: var(--letter-space);
  color:#6e3819;
  margin: 50px 0 8px;
  padding-left: .6em;
  border-left: 6px solid #ed7836; /* セクション見出しのアクセント */
}

/* グループ間の余白（最初は詰める） */
#details .details-group:first-child .details-group-title { margin-top: 0; }

/* 見出しに飛んだときのズレ防止（上部固定対策） */
#details .details-group-title { scroll-margin-top: var(--sticky-offset); }
#details { margin: 28px 0 80px; display: grid; gap: 16px; }
#details .detail-card {
  border: 1px solid var(--line); border-radius: 12px;
  background: #fff; padding: 18px 20px; margin-bottom:20px;
  scroll-margin-top: var(--sticky-offset);
}
#details .detail-card:target { outline: 2px solid var(--acc); background: #eef2ff; }
#details .detail-card h3{ font-size:1.1rem; font-weight:bold; letter-spacing: var(--letter-space); color:#6e3819; }
#details .detail-card h4{
    font-size:1.1rem;
    font-weight:bold;
    background-color:#fffdea;
    border:1px solid var(--line);
    border-radius:10px;
    letter-spacing: var(--letter-space);
    color:#6e3819;
    margin-bottom:18px;
}
#details .detail-card p.text{ color:#593202; text-align:justify; letter-spacing: var(--letter-space); }
#details .detail-card .back { margin-top: 0.5em; }
#details .detail-card .back a {
  color:white; background-color:#ed7836; border-radius:50px; padding:0.5em 1em; text-decoration: none;
}
#details .visually-hidden {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; clip-path: inset(50%); border: 0; padding: 0; margin: -1px;
}

/* ========= 表示切替（モバイルファースト） ========= */
/* SP：2表（児童→放課後）を表示、PC統合表は隠す */
#timetable .table-wrap--sp { display: block; }
#timetable .table-wrap--pc { display: none; }

/* PC以上：統合表を表示、SPの2表は隠す */
@media (min-width: 721px) {
  #timetable .table-wrap--sp { display: none; }
  #timetable .table-wrap--pc { display: block; }
}


/********************************************************************
セクションTOPに戻るボタン
*/
#target-section {
    position: relative;
    min-height: 1200px; /* デモ用 */
    background: #f9f9f9;
    padding: 60px;
}

/* wrapper内で固定っぽく見せる */
.section-back-btn {
    display: block;
    width:fit-content;
    background: #ed7836;
    color: #fff;
    font-size:0.8rem;
    border: none;
    border-radius: 6px;
    padding: 5px 10px;
    opacity: 1;
    pointer-events: auto;
    cursor:pointer;
    transition: opacity 0.3s ease;
    position: sticky;
    margin: 0 auto;
    bottom: 40px;
    right: 40px;
}
/********************************************************************
施設を利用するまでの流れ
********************************************************************/
#flow{
    background-color:var(--themecolor);
    position:relative;
    padding-top:30px;
    padding-bottom:50px;
}
#flow::before{ 
    content:"";
    display:block;
    width:100px;
    height:100px;
    background-image:url(/public/img/tree.png);
    background-repeat:no-repeat;
    background-position:center center;
    background-size:contain;
    position:absolute;
    top:0;
    left:0;
    translate:0% 70%;
    z-index:2;
}
#flow::after{ 
    content:"";
    display:block;
    width:100px;
    height:100px;
    background-image:url(/public/img/bird.png);
    background-repeat:no-repeat;
    background-position:center center;
    background-size:contain;
    position:absolute;
    bottom:0%;
    right:0;
    translate:0 0;
    z-index:2;
}
#flow .inner_area {
    max-width: 800px;
    margin: 0 auto;
    padding: 0;
}
#flow .wrapper h2.flow-title{
    display:block;
    font-size:1.5rem;
    font-weight:bold;
    letter-spacing: var(--letter-space);
    text-align: center;
    color:#6e3819;
    margin-bottom:30px;
    padding:20px 0;
    position:relative;
}
#flow .wrapper h2.flow-title::before{
    content:"";
    width:100%;
    height:3px;
    background-color: #fdf1ea;
    position:absolute;
    left:0;
    right:0;
    bottom:0;
}
#flow .wrapper h2.flow-title::after{
    content:"";
    width:50%;
    height:3px;
    background-color:#ed7836;
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    transform:translateX(50%);
}
#flow .flow-lead {
    font-size:1.2rem;
    text-align:justify;
    color: #593202;
    letter-spacing: var(--letter-space);
    line-height: 1.8;
    margin-bottom: 40px;
}

/* 各ステップボックス */
.flow-steps {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.flow-step {
  display: flex;
  align-items: flex-start;
  background: #fffdf9;
  border-radius: 12px;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1);
  padding: 20px 24px;
  position: relative;
}
/* ▼ 各ステップ下に矢印を追加 */
.flow-step::after {
  content: "▼";
  position: absolute;
  bottom: -26px; /* ステップボックスの下位置 */
  left: 50%;
  transform: translateX(-50%);
  font-size: 18px;
  color: #bfa77a; /* やさしいベージュ系矢印色 */
  opacity: 0.8;
}

/* 最後のステップには矢印を非表示 */
.flow-step:last-child::after {
  display: none;
}
/* ステップ番号 */
.flow-step-num {
  flex-shrink: 0;
  background: #ADE0D6;
  color: #333;
  font-weight: bold;
  font-size: 1.1rem;
  letter-spacing: var(--letter-space);
  border-radius: 8px;
  padding: 10px 14px;
  margin-right: 20px;
  text-align: center;
  min-width: 90px;
}

/* 本文部分 */
.flow-step-content {
  flex: 1;
}

.flow-step-title {
  font-size: 1.2rem;
  font-weight: bold;
  letter-spacing: var(--letter-space);
  text-align:left;
  margin-bottom: 6px;
  color: #6e3819;
}

.flow-step p {
  color: #593202;
  line-height: 1.7;
  letter-spacing: var(--letter-space);
  text-align:justify;
}

/* スマホ対応 */
@media (max-width: 720px) {
  .flow-step {
    flex-direction: column;
    align-items: stretch;
  }
  .flow-step-num {
    margin: 0 0 10px 0;
    width: 100%;
    text-align: left;
  }
}
/*******************************************************************************************
よくある質問
*******************************************************************************************/
#question{
    background-color:white;
    padding-top:30px;
    padding-bottom:50px;
}
#question .inner_area h2{
    display:block;
    font-size:1.5rem;
    font-weight:bold;
    letter-spacing: var(--letter-space);
    color:#6e3819;
    margin-bottom:30px;
    padding:20px 0;
    position:relative;
}
#question .inner_area h2::before{
    content:"";
    width:100%;
    height:3px;
    background-color: #fdf1ea;
    position:absolute;
    left:0;
    right:0;
    bottom:0;
}
#question .inner_area h2::after{
    content:"";
    width:50%;
    height:3px;
    background-color:#ed7836;
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    transform:translateX(50%);
}
#question .inner_area dl{
    display:flex;
    flex-direction:column;
}
#question .inner_area dl dt{
    text-align:left;
    font-size:1.0rem;
    font-weight:bold;
    letter-spacing: var(--letter-space);
    color:#6e3819;
    margin-left:3em;
    margin-bottom:20px;
    position:relative;
}
#question .inner_area dl dt span.question{
    display:inline-block;
    width:35px;
    height:35px;
    text-align:center;
    padding:0.3em;
    text-align:center;
    color:#ed7836;
    border:1px solid #ed7836;
    position:absolute;
    top:50%;
    left:0;
    translate:-130% -50%;
}
#question .inner_area dl dd{
    text-align:justify;
    font-size:1.0rem;
    color:#593202;
    letter-spacing: var(--letter-space);
    margin-left:3em;
    margin-bottom:50px;
    border-bottom:1px solid var(--themecolor);
    position:relative;
}
#question .inner_area dl dd span.answer{
    display:inline-block;
    width:35px;
    height:35px;
    font-weight:bold;
    text-align:center;
    margin-right:1em;
    color:#ed7836;
    border:1px solid #ed7836;
    position:absolute;
    top:0;
    left:0;
    translate:-130% 0;
}
/*******************************************************************************************
お知らせ
*******************************************************************************************/
#news{
    padding-top:50px;
    padding-bottom:140px;
    background-color:var(--themecolor);
    background-image:url(../img/news_background.png);
    background-repeat:no-repeat;
    background-position:right bottom;
    background-size:300px auto;
    position:relative;
}
#news .inner_area h2{
    font-size:1.5rem;
    font-weight:bold;
    color:#6e3819;
    padding-bottom:20px;
}
#news .inner_area ul{
    display:block;
    color:#593202;
    background-color:white;
    padding:10px;
    border-radius:10px;
border: 2px solid #ccc; /* 枠線を追加してみる */
}
#news .inner_area ul li{
    text-align:left;
}
#news .inner_area ul li p time.update_time{
    font-size:0.8rem;
    font-weight:bold;
    color:#6e3819;
}
#news .inner_area ul li h3{
    color:#593202;
    letter-spacing: var(--letter-space);
    margin-bottom:10px;
}
/*******************************************************************************************
CTA
*******************************************************************************************/
aside#cta{
    background-color:#e8ecf5;
}
aside#cta .inner_area .cta_title{
    font-size:1.3rem;
    text-align:center;
    color:white;
    background-color:var(--themecolor);
    padding:10px;
    position:relative;
}
aside#cta .inner_area .cta_title::after{
    content:"";
    display:block;
    width:70%;
    height:50px;
    position:absolute;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    background-color:var(--themecolor);
    bottom:0;
    left:0;
    right:0;
    margin:0 auto;
    transform:translateY(100%);
}
aside#cta .inner_area .cta_main{
    display:block;
    width:100%;
    min-height:300px;
    margin-top:100px;
    padding-bottom:100px;
}
aside#cta .inner_area .cta_main .cta_content{
    margin:30px auto 0 auto;
    text-align:center;
}
aside#cta .inner_area .cta_main .cta_content .info_area p.name{
    display:block;
    font-size:2rem;
    color:#6e3819;
    font-weight:bold;
    letter-spacing: var(--letter-space);
    margin-bottom:50px;
}
/* ▼ 基本：スマホ用（dtとddを縦並び・中央寄せ） */
aside#cta .inner_area .cta_main .cta_content .info_area dl {
    display: block;
    background-color:white;
    border-radius:10px;
    text-align: justify;
    margin: 0;
    padding: 0.5em;
}

aside#cta .inner_area .cta_main .cta_content .info_area dl dt{
    display: block;
    width: 100%;
    font-size: 1.1rem;
    font-weight:bold;
    letter-spacing: var(--letter-space);
    color: #6e3819;
    margin: 0 0 0.5em 0;
}
aside#cta .inner_area .cta_main .cta_content .info_area dl dd {
    display: block;
    width: 100%;
    font-size: 1.0rem;
    letter-spacing: var(--letter-space);
    color: #593202;
    margin: 0 0 1em 0;
}
/* ▼ 画面が広くなったら（例：768px～）横並びに切り替え */
@media (min-width: 768px) {
  aside#cta .inner_area .cta_main .cta_content .info_area dl {
    display: grid;
    grid-template-columns: 150px 1fr; /* dt固定、dd可変 */
    column-gap: 1em;
    row-gap: .5em;
    text-align: left; /* PC時は左寄せに戻す */
  }

  aside#cta .inner_area .cta_main .cta_content .info_area dl dt,
  aside#cta .inner_area .cta_main .cta_content .info_area dl dd {
    margin: 0;
  }

  aside#cta .inner_area .cta_main .cta_content .info_area dl dt {
    white-space: nowrap; /* ラベル折返し防止 */
  }

  /* 縦積みにしたい長文用 */
  aside#cta .inner_area .cta_main .cta_content .info_area dl dd.is-stack {
    grid-column: 1 / -1;
  }
}
aside#cta .inner_area .cta_main .cta_content .top_area .telno_area .tel_img{
    width:40px;
    margin-top:5px;
    margin-right:10px;
}
aside#cta .inner_area .cta_main .cta_content .top_area .telno_area a.telno{
    font-size:2.5rem;
    font-family:"Oswald",sans-serif;
    font-weight:bold;
    color:#467302;
}
aside#cta .inner_area .cta_main .cta_content .top_area p.time{
    letter-spacing: var(--letter-space);
}
aside#cta .inner_area .cta_main .cta_content .btn_area{
    display:inline-block;
    width:100%;
    background-color:var(--themecolor);
    border:3px solid var(--themecolor);
    border-radius:5px;
    margin-top:20px;
    margin-bottom:20px;
}
aside#cta .inner_area .cta_main .cta_content .btn_area .btn{
    display:inline-block;
    width:100%;
    font-size:1rem;
    color:#593202;
    background-color:var(--themecolor);
    border:3px solid #ed7836;
    border-radius:5px;
    padding:5px 40px;
    position:relative;
}
aside#cta .inner_area .cta_main .cta_content .btn_area .btn::before{
    content:"";
    display:block;
    width:25px;
    height:25px;
    background-image:url(../img/envelope-regular-full-orange.svg);
    background-repeat:no-repeat;
    background-position:center center;
    background-size:cover;
    position:absolute;
    top:50%;
    left:5%;
    transform:translateY(-50%);
}
aside#cta .inner_area .cta_main .cta_content .btn_area .btn::after{
    content:"";
    display:block;
    width:10px;
    height:10px;
    background-image:url(../img/chevron-right-solid.svg);
    background-repeat:no-repeat;
    background-position:center center;
    background-size:cover;
    position:absolute;
    top:50%;
    right:5%;
    transform:translateY(-50%);
}
aside#cta .inner_area .cta_main .cta_content .img_area{
    display:block;
    width:250px;
    height:auto;
    margin:0 auto;
}
aside#cta .inner_area .cta_main .cta_content .img_area .img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
/*******************************************************************************************
cta_map
*******************************************************************************************/
aside#cta_map{
    display:block;
    width:100%;
}
aside#cta_map .ifr_area{
    display:block;
    width:100%;
}

/*******************************************************************************************
scroll
*******************************************************************************************/
#scroll_area{
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    height:100vh;
    max-height:100vh;
    width:100%;
    position:absolute;
    bottom:0;
    left:0;
    right:0;
}
#scroll_area .scroll_btn{
    display:block;
    width:50px;
    text-align:center;
    margin:0 auto;
    margin-bottom:30px;
    z-index:15;
}
#scroll_area .scroll_btn p{
    border-bottom:1px dotted #333333;
}
/*アニメーション（上下に動く）*/
.anime_updown{
    animation-name:UpDown;/*名称*/
    animation-duration: 1.5s;/*1回分の長さ*/
    animation-iteration-count: infinite;/*繰り返し回数*/
    animation-timing-function: ease-in-out;/*進行具合*/
    animation-direction: alternate;/*再生の向き*/
    }
    /* アニメーションの設定 */
    @keyframes UpDown{
    /* 開始地点 */
    0%{
    /* Y軸0px */
    transform: translateY(0);
    }
    /* 終了地点 */
    100%{
    /* Y軸50px */
    transform: translateY(15px);
    }
}
/*******************************************************************************************
フッターメニュー
*******************************************************************************************/
#footer{
    scroll-behavior:auto;/*問合せページのフォームエラーメッセージが表示されない対応のため*/
}
#footer #footer_head .footer_inner .logo_area{
    display:block;
    width:100%;
    height:auto;
    margin:0 auto;
}
#footer #footer_head .footer_inner .logo_area img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
/*******************************************************************************************
フッターサイトマップ
*******************************************************************************************/
#footer #footer_sitemap{
    background-color:#ecf2fb;
    padding-top:20px;
    padding-bottom:20px;
}
#footer #footer_sitemap .footer_inner ul.sitemap_box{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
}
#footer #footer_sitemap .footer_inner ul.sitemap_box li.item{
    display:flex;
    justify-content:center;
    align-items:center;
    color:#593202;
    padding:0.5em 1em;
    border-right:1px dotted #593202;
}
#footer #footer_sitemap .footer_inner ul.sitemap_box li.item:nth-child(1){
    border-left:1px dotted #593202;
}
#footer #footer_sitemap .footer_inner ul.sitemap_box li.item:nth-child(4){
    border-left:1px dotted #593202;
}
#footer #footer_sitemap .footer_inner ul.sitemap_box li.item:nth-child(6){
    border-left:1px dotted #593202;
}
/*******************************************************************************************
トップに戻るボタン
*******************************************************************************************/
#footer{
    position:relative;
    margin-top:50px;
    z-index:12;
}
#footer #footer_head{
    margin-bottom:50px;
}
#footer #return_top_btn {
    position:fixed;
    right: 1rem;
    width:5.5rem;
    height:5.5rem;
    z-index:100;/*ハンバーガーメニュー表示中は後ろに隠す*/
    scroll-behavior:smooth;
}
#footer #return_top_btn img{
    filter: drop-shadow(5px 5px 5px #aaa);
}
/*******************************************************************************************
コピーライト
*******************************************************************************************/
#footer #copyright{
    color:white;
    background-color:black;
    text-align:center;
    padding-top:10px;
    padding-bottom:10px;
}
#footer #copyright .copyright_area{
    color:white;
    font-size:0.7rem;
}
#footer #copyright .webdesign_area{
    color:white;
    font-size:0.6rem;
}
/*******************************************************************************************
ボトムナビゲーション（スマホ用）
*******************************************************************************************/
#footer #bottom_navi{
    display:block;
    width:100%;
    height:auto;
    color:white;
    background-color:var(--themecolor);
    /*position:fixed;*/
    bottom:0;
    right:0;
    left:0;
    z-index:99;
}
#footer #bottom_navi .bottom_navi_area ul.bottom_navi_lists{
    display:flex;
}
#footer #bottom_navi .bottom_navi_area ul.bottom_navi_lists li.telno_area{
    display:flex;
    flex-direction:column;
    width:70%;
    height:60px;
    background-color:var(--themecolor);
}
#footer #bottom_navi .bottom_navi_area ul.bottom_navi_lists li.telno_area a.telno{
    display:block;
    width:100%;
    height:auto;
    color:#467302;
    text-align:center;
    font-size:1.1rem;
    font-family:"Oswald",sans-serif;
    font-weight:bold;
}
#footer #bottom_navi .bottom_navi_area ul.bottom_navi_lists li.telno_area a.telno img{
    display:inline-block;
    width:18px;
    height:18px;
    margin-right:10px;
}
#footer #bottom_navi .bottom_navi_area ul.bottom_navi_lists li.telno_area span.time{
    display:block;
    width:100%;
    height:auto;
    color:#593202;
    font-size:0.7rem;
    text-align:center;
} 
#footer #bottom_navi .bottom_navi_area ul.bottom_navi_lists li.contact_area{
    display:block;
    font-size:0.8rem;
    width:30%;
    height:60px;
    background-color:#d70d22;
}
#footer #bottom_navi .bottom_navi_area ul.bottom_navi_lists li.contact_area a.contact{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    text-align:center;
}
#footer #bottom_navi .bottom_navi_area ul.bottom_navi_lists li.contact_area a.contact img{
    display:block;
    width:25px;
    height:25px;
    margin:0 auto;
}
/*******************************************************************************************
ボトムナビゲーション（ＰＣ用）
*******************************************************************************************/
#footer #bottom_navi_pc{
    display:none;
}
#footer #bottom_navi_pc .bottom_navi_area ul.bottom_navi_lists li.contact_area .btn_area a.btn{
    position:relative;
    box-shadow: 2px 2px 4px gray;
}
#footer #bottom_navi_pc .bottom_navi_area ul.bottom_navi_lists li.contact_area .btn_area a.btn img{
    position:absolute;
    top:50%;
    left:10%;
    transform:translateY(-50%);
}
/*******************************************************************************************
お問い合わせ画面
*******************************************************************************************/
#contact_main{
    margin-top:100px;
    border-bottom:1px solid var(--themecolor);
}
#contact_main  h2{
    display:block;
    font-size:1.5rem;
    font-weight:bold;
    text-align:center;
    letter-spacing: var(--letter-space);
    color:#6e3819;
    margin-top:30px;
    margin-bottom:30px;
    padding:10px 0;
    position:relative;
}
#contact_main h2::before{
    content:"";
    width:100%;
    height:3px;
    background-color:#fdf1ea;
    position:absolute;
    left:0;
    right:0;
    bottom:0;
}
#contact_main h2::after{
    content:"";
    width:50%;
    height:3px;
    background-color:#ed7836;
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    transform:translateX(50%);
}
#contact_main .explanation{
    font-size:1.1rem;
    text-align: justify;
    color: #593202;
    letter-spacing: var(--letter-space);
    line-height: 1.8;
    margin-bottom: 40px;

}
/*******************************************************************************************
アニメーション（共通）
*******************************************************************************************/
/*
アニメーション（スクロール時、右下にフェードイン）
フェードイン前の初期ポジションを指定用？
*/
.anime_slideBottom {
    opacity: 0;
    transform: translateY(20px);
    transition-property:all;
    transition-duration:0.5s;
    transition-delay:0s;
    transition-timing-function:ease-in-out;
}
/*******************************************************************************************
slickカスタマイズ
*******************************************************************************************/
/*スライダー要素の高さを揃える*/
.slick-track {
    display: flex;
}
/*PC表示時調整の為コメントアウト
.slick-slide {
    height: auto !important;
}*/

/*矢印*/
.slick-prev{
    position:absolute;
    left:0;
    z-index:2;
}
.slick-next{
    position:absolute;
    right:0;
    z-index:2;
}
.slick-prev:before {
    font-size: 30px;
    line-height: 1;
    color: var(--themecolor);
    background-color:white;
    border-radius:50%;
}
.slick-next:before {
    font-size: 30px;
    line-height: 1;
    color: var(--themecolor);
    background-color:white;
    border-radius:50%;
}

/*******************************************************************************************
Media Queries
*******************************************************************************************/
@media only screen and (min-width:990px) {
    .wrapper{
        width:1000px;
        max-width:100%;
        margin: 0 auto;
        padding:0 20px;
        text-align: center;
        position:relative;
    }
    br.br_pc{
        display:block;
    }
    br.br_sm{
        display:none;
    }
    #navi_area{
        display:block;
    }
    #header #header_menu_area{
        display:none;
    }
    #header #header_menu_area_pc{
        display:block;
    }
    #mainvisual{
        margin:0 auto;
    }
    /*index.php about*/
    
    #about .inner_area h2{
        display:block;
        font-size:2.5rem;
        font-weight:bold;
        padding:10px 0;
        position:relative;
    }
    #about .inner_area .head_comment{
        font-size:1.1rem;
        text-align:center;
    }
    #about .inner_area ul{
        flex-direction:row;
        flex-wrap:wrap;
        justify-content:center;
    }
    #about .inner_area ul li{
        width:calc(50% - 50px);
        margin-right:50px;
        margin-bottom:100px;
    }
    #about .feature-text h3 {
        font-size: 1.5rem;
    }
    /* 各アイテム */
    #about .feature-item {
        display: flex;
        align-items: center;
        gap: 2rem;
        margin-bottom: 3rem;
        flex-direction: row;
    }
    #about .feature-item.reverse {
        flex-direction: row-reverse;
    }
    #about .feature-item .feature-img{
        display:flex;
        width:30%;
        order:1;
    }
    #about .feature-text {
        display:flex;
        flex-direction:column;
    }
    /*index.php philosophy*/
    #philosophy .inner_area h2{
        display:block;
        font-size:2.5rem;
        font-weight:bold;
        padding:10px 0;
        position:relative;
    }
    #philosophy .inner_area .intro_area p{
        font-size:1.3rem;
    }
    #philosophy .inner_area .img_area .design_area{
        width:120px;
        height:120px;
    }
    #philosophy .inner_area .img_area .design2_area{
        width:150px;
        height:150px;
    }
    #philosophy .inner_area .intro_area p.intro{
        text-align:center;
    }
    /*
    #philosophy_img
    */
    #philosophy_img .inner_area .explanation_area .photo-pc {
        display: block;
        width: 100%;
    }
    #philosophy_img .inner_area .explanation_area .photo-sm {
        display: none;
    }
    /*index.php worries*/
    #worries .wrapper .inner_area h2{
        font-size:2.5rem;
    }
    #worries .wrapper .inner_area p.intro {
        font-size: 1.3rem;
    }
    #worries .wrapper .inner_area .img_sm_area{
        display:none;
    }
    #worries .wrapper .inner_area .worries_list img.photo-pc {
        display: block;
        width: 100%;
    }
    #worries .wrapper .inner_area .worries_list img.photo-sm {
        display: none;
    }
    /*index.php timetable*/
    #timetable .wrapper h2{
        display:block;
        font-size:2.5rem;
        font-weight:bold;
        padding:10px 0;
        position:relative;
    }
    #timetable .wrapper p.intro {
        font-size:1.3rem;
    }
    /* 列幅指定 */
    .timetable-board .col-time  { width: var(--time-col); }
    .timetable-board .col-child { width: calc((100% - var(--time-col))) / 2; }
    .timetable-board .col-after { width: calc((100% - var(--time-col))) / 2; }
    .board-title {
        font-size: 1.9rem;
    }
    .board::after {
        width:600px;
    }
    /* 💻 PCサイズ以上で再表示 */
    .timetable-board th:nth-child(3),
    .timetable-board td.td-after-1,
    .timetable-board td.td-after-2,
    .timetable-board td.td-after-3,
    .timetable-board td.td-after-4,
    .timetable-board td.td-after-5,
    .timetable-board td.td-after-6,
    .timetable-board td.td-after-7,
    .timetable-board td.td-after-8,
    .timetable-board td.td-after-9,
    .timetable-board td.td-after-10,
    .timetable-board td.td-after-11 {
        display: table-cell;
    }
    /* テーブル */
    .timetable-board {
        min-width: 480px;
    }
    /* 中の紙エリア */
    .table-wrap {
        padding: 12px 12px 140px 12px;
    }
    /*index.php flow*/
    #flow .inner_area {
        padding: 0px 20px;
    }
    #flow::before{ 
        width:300px;
        height:300px;
    }
    #flow::after{ 
        width:200px;
        height:200px;
    }
    #flow .wrapper h2.flow-title{
        font-size:2.5rem;
    }
    .flow-lead {
        font-size:1.3rem;
    }
    /*index.php question*/
    #question .inner_area h2{
        display:block;
        font-size:2.0rem;
        font-weight:bold;
        padding:10px 0;
        position:relative;
    }
    #question .inner_area dl dt{
        font-size:1.3rem;
        line-height:1.3rem;
    }
    #question .inner_area dl dd{
        font-size:1.3rem;
        line-height:2rem;
    }
    /*
    お知らせ
    */
    #news{
        padding-top:150px;
        padding-bottom:100px;
        background-position:right top;
        background-size:700px auto;
        position:relative;
    }
    #news .inner_area h2{
        font-size:1.5rem;
        text-align:left;
    }
    #news .inner_area ul{
        width:650px;
        background-color:white;
        padding:10px;
        border-radius:10px;
    }
    /*
    CTA
    */
    aside#cta .inner_area .cta_title{
        font-size:1.8rem;
        text-align:center;
        color:white;
        background-color:var(--themecolor);
    
        padding:10px;
        position:relative;
    }
    aside#cta .inner_area .cta_main .cta_content{
        display:flex;
        flex-direction:row-reverse;
    }
    aside#cta .inner_area .cta_main .cta_content .info_area{
        width:65%;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
    }
    aside#cta .inner_area .cta_main .cta_content .top_area{
        width:35%;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
    }
    aside#cta .inner_area .cta_main .cta_content .top_area .telno_area .tel_img{
        width:50px;
        margin-right:10px;
    }
    aside#cta .inner_area .cta_main .cta_content .top_area .telno_area a.telno{
        font-size:2.8rem;
    }
    aside#cta .inner_area .cta_main .cta_content .img_area{
        width:50%;
    }
    aside#cta .inner_area .cta_main .cta_content .img_area img{
        width:50%;
        height:auto;
        margin:0 0 auto auto;
    }
    /*
    */
    #footer #return_top_btn {
        width:6.5rem;
        height:6.5rem;
    }
    #footer #footer_head .footer_inner .logo_area{
        width:400px;
    }
    #footer #footer_head .footer_inner span.contact_btn_area{
        display:inline-block;
        width:400px;
        background-color:#ed7836;
        border:3px solid #ed7836;
        box-shadow: 2px 2px 4px gray;
        border-radius:30px;
        margin-top:20px;
        margin-bottom:20px;
    }

    #footer #footer_sitemap .footer_inner ul.sitemap_box li.box{
        width:calc(25% - 30px);
        margin-right:30px;
    }
    #footer #footer_sitemap .footer_inner ul.sitemap_box li.item:nth-child(1){
        border-left:none;
    }
    #footer #footer_sitemap .footer_inner ul.sitemap_box li.item:nth-child(4){
        border-left:none;
    }
    #footer #footer_sitemap .footer_inner ul.sitemap_box li.item:nth-child(6){
        border-left:none;
    }
    /*
    ボトムナビゲーション
    */
    #footer #bottom_navi{
        display:none;
    }
    #footer #bottom_navi_pc{
        display:block;
        width:100%;
        height:auto;
        color:white;
        background-color:var(--themecolor);
        /*position:fixed;*/
        bottom:0;
        right:0;
        left:0;
        z-index:99;
    }
    #bottom_navi_pc .bottom_navi_area ul.bottom_navi_lists{
        display:flex;
        justify-content:center;
        color:#593202;
    }
    #bottom_navi_pc .bottom_navi_area ul.bottom_navi_lists  li.telno_area{
        width:50%;
    }
    #bottom_navi_pc .bottom_navi_area ul.bottom_navi_lists  li.telno_area .inner{
        display:flex;
        width:100%;
        justify-content:center;
        align-items:center;
        flex-direction:column;
        position:relative;
    }
    #bottom_navi_pc .bottom_navi_area ul.bottom_navi_lists  li.telno_area .inner::after{
        content:"";
        width:200px;
        height:100px;
        background-image:url(../img/footer_hukidashi.png);
        background-repeat:no-repeat;
        background-size:contain;
        background-position:center center;
        position:absolute;
        top:0;
        left:0;
        translate:0 -80%;
    }
    #bottom_navi_pc .bottom_navi_area ul.bottom_navi_lists  li.telno_area .comment{
        display:block;
        position:relative;
    }
    #bottom_navi_pc .bottom_navi_area ul.bottom_navi_lists  li.telno_area .telno{
        display:flex;
        width:fit-content;
        line-height:1.7rem;
    }
    #bottom_navi_pc .bottom_navi_area ul.bottom_navi_lists  li.telno_area .telno img{
        display:flex;
        width:35px;
        height:35px;
        margin-right:10px;
    }
    #bottom_navi_pc .bottom_navi_area ul.bottom_navi_lists  li.telno_area .telno span{
        display:inline-block;
        color:#467302;
        line-height:2.0rem;
        font-size:2.0rem;
        font-family:"Oswald",sans-serif;
        font-weight:bold;
    }
    #bottom_navi_pc .bottom_navi_area ul.bottom_navi_lists  li.contact_area{
        width:50%;
        position:relative;
    }
    #bottom_navi_pc .bottom_navi_area ul.bottom_navi_lists  li.contact_area .btn_area{
        display:block;
        width:300px;
        border-radius:5px;
        position:absolute;
        top:50%;
        left:0;
        margin-left:50px;
        transform:translateY(-50%); 
    }
    #bottom_navi_pc .bottom_navi_area ul.bottom_navi_lists  li.contact_area .btn_area img{
        display:block;
        width:30px;
        height:30px;
        position:absolute;
        top:0;
    }
    #bottom_navi_pc .bottom_navi_area ul.bottom_navi_lists  li.contact_area .btn_area .btn{
        display:inline-block;
        width:100%;
        font-size:1rem;
        color:white;
        background-color:#ed7836;
        border-radius:50px;
        padding:1.5em 3em;
        position:relative;
    }
    #bottom_navi_pc .bottom_navi_area ul.bottom_navi_lists  li.contact_area .btn_area .btn::after{
        content:"";
        display:block;
        width:10px;
        height:10px;
        background-image:url(../img/chevron-right-solid.svg);
        background-repeat:no-repeat;
        background-position:center center;
        background-size:cover;
        position:absolute;
        top:50%;
        right:5%;
        transform:translateY(-50%);
    }

    /*
    コピーライト
    */
    /*contact.php*/
    #contact_main h2{
        display:block;
        font-size:2.5rem;
    }
    #contact_main .explanation{
        font-size:1.3rem;
    }
}