/* =========================
reset
========================= */
*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html{
	padding:0;
	margin:0;
     scroll-behavior: smooth;
}
body {
    font-family:
"Yu Mincho",
"Hiragino Mincho ProN",
"YuMincho",
serif;
  	padding:0;
	margin:0;
}

a{
  text-decoration:none;
  color:inherit;
}

ul{
  list-style:none;
}

/* =========================
Header
========================= */

.site-header{
  width:100%;
  background:#738a54;
  height:85px;

  position:fixed;
  top:0;
  left:0;
  z-index:9999;
}

.header-inner{
  width:100%;
  height:100%;

  display:flex;
  align-items:center;
  justify-content:space-between;

  padding:0 32px;
}

/* =========================
Logo
========================= */

.header-logo{
  width:120px;
  height:40px;

  display:flex;
  align-items:center;
  justify-content:center;

  flex-shrink:0;
}

.header-logo img{
  max-width:90px;
  width:100%;
  height:auto;
  display:block;
}

/* =========================
Nav
========================= */

.header-nav{
  flex:1;

  display:flex;
  justify-content:flex-end;
  margin-right:50px;
}

.header-nav ul{
  display:flex;
  align-items:center;
  gap:75px;
}

.header-nav a{
  color:#fff;
  font-size:18px;
  font-weight:400;
  letter-spacing:0.03em;

  position:relative;

  transition:0.3s;
}

/* 下線アニメ */

.header-nav a::after{
  content:"";

  width:0;
  height:1px;

  background:#fff;

  position:absolute;
  left:0;
  bottom:-6px;

  transition:0.3s;
}

.header-nav a:hover::after{
  width:100%;
}

/* =========================
Contact
========================= */

.header-contact{
  flex-shrink:0;
}

.header-contact a{
  width:145px;
  height:45px;

  background:#efefef;
  color:#738a54;

  display:flex;
  align-items:center;
  justify-content:center;

  font-size:16px;
  font-weight:700;

  transition:0.3s;
}

.header-contact a:hover{
    background:#738a54;
  color:#efefef;
}

/* =========================
Hamburger
========================= */

.hamburger{
  display:none;

  width:42px;
  height:42px;

  border:none;
  background:none;

  position:relative;
  z-index:10001;

  cursor:pointer;
}

.hamburger span{
  width:28px;
  height:2px;

  background:#fff;

  position:absolute;
  left:7px;

  transition:0.3s;
}

.hamburger span:nth-child(1){
  top:11px;
}

.hamburger span:nth-child(2){
  top:20px;
}

.hamburger span:nth-child(3){
  top:29px;
}

/* active */

.hamburger.active span:nth-child(1){
  transform:rotate(45deg);
  top:20px;
}

.hamburger.active span:nth-child(2){
  opacity:0;
}

.hamburger.active span:nth-child(3){
  transform:rotate(-45deg);
  top:20px;
}

/* =========================
SP Menu
========================= */

.sp-menu{
  width:100%;
  height:100vh;

  background:#738a54;

  position:fixed;
  top:0;
  right:-100%;

  z-index:10000;

  transition:0.4s;
}

.sp-menu.active{
  right:0;
}

.sp-nav{
  width:100%;
  height:100%;

  display:flex;
  align-items:center;
  justify-content:center;
}

.sp-nav ul{
  display:flex;
  flex-direction:column;
  gap:35px;
}

.sp-nav a{
  color:#fff;
  font-size:28px;
  text-align:center;
}
/* =========================
FV
========================= */

.fv{
  width:100%;
  height:100vh;

  position:relative;
  overflow:hidden;


}

/* =========================
slide
========================= */

.fv-slide{
  width:100%;
  height:100%;

  position:absolute;
  top:0;
  left:0;

  opacity:0;
  z-index:1;

  transition:opacity 1.5s ease;
}

.fv-slide.active{
  opacity:1;
  z-index:2;
}

/* 画像 */

.fv-slide img{
  width:100%;
  height:100%;

  object-fit:cover;

  transform:scale(1.15);

  animation:fvZoomOut 8s linear forwards;
}

/* ズームアウト */

@keyframes fvZoomOut{

  0%{
    transform:scale(1.15);
  }

  100%{
    transform:scale(1);
  }

}

/* =========================
overlay
========================= */

.fv-overlay{
  width:100%;
  height:100%;

  background:rgba(0,0,0,0.45);

  position:absolute;
  top:0;
  left:0;

  z-index:3;
}

/* =========================
content
========================= */

.fv-content{
  width:100%;

  position:absolute;
  top:50%;
  left:50%;

  transform:translate(-50%,-50%);

  z-index:5;

  text-align:center;

  color:#fff;

  padding:0 20px;
}

/* タイトル */

.fv-title{
  font-size:clamp(38px,4vw,72px);
  font-weight:400;

  letter-spacing:0.08em;
  line-height:1.4;

  margin-bottom:30px;

  text-shadow:
  0 0 10px rgba(0,0,0,0.25);
}

/* サブタイトル */

.fv-subtitle{
  font-size:clamp(15px,1.2vw,22px);
  font-weight:400;

  line-height:2;
  letter-spacing:0.06em;

  text-shadow:
  0 0 10px rgba(0,0,0,0.25);
}

/* =========================
dots
========================= */

.fv-dots{
  position:absolute;
  bottom:45px;
  left:50%;

  transform:translateX(-50%);

  display:flex;
  gap:14px;

  z-index:10;
}

.fv-dot{
  width:12px;
  height:12px;

  border-radius:50%;

  background:rgba(255,255,255,0.4);

  cursor:pointer;

  transition:0.3s;
}

.fv-dot.active{
  background:#fff;
  transform:scale(1.2);
}
/* =========================
WORRY
========================= */

.worry{
  width:100%;
  background:#ece7d6;

  padding:
  90px
  0
  120px;
}

/* inner */

.worry-inner{
  width:90%;
  max-width:1180px;

  margin:0 auto;
}

/* =========================
head
========================= */

.worry-head{
  text-align:center;

  margin-bottom:70px;
}

/* sub */

.worry-sub{
  color:#4e4e4e;

  font-size:18px;
  font-weight:400;

  letter-spacing:0.06em;

  margin-bottom:38px;
}

/* title */

.worry-title{
  color:#4e4e4e;

  font-size:44px;
  font-weight:700;

  line-height:1.5;
  letter-spacing:0.08em;
}

/* =========================
row
========================= */

.worry-row{
  display:flex;
  justify-content:center;
  gap:40px;
}

/* 上段 */

.worry-row-top{
  margin-bottom:48px;
}

/* =========================
box
========================= */

.worry-box{
  width:250px;

  background:#738a54;

  padding:
  24px
  24px
  28px;
}

/* image */

.worry-image{
  width:100%;
  aspect-ratio:1/0.78;

  overflow:hidden;

  margin-bottom:24px;
}

.worry-image img{
  width:100%;
  height:100%;

  object-fit:cover;

  display:block;
}

/* text */

.worry-text{
  color:#fff;

  font-size:14px;
  font-weight:400;

  line-height:1.8;
  letter-spacing:0.06em;
}
/* =========================
SOLUTION
========================= */

.solution{
  width:100%;
  background:#ece7d6;

  padding:
  30px
  0
  80px;
}

/* inner */

.solution-inner{
  width:90%;
  max-width:1000px;

  margin:0 auto;

  display:flex;
  flex-direction:column;
  align-items:center;
}

/* =========================
text
========================= */

.solution-text{
  text-align:center;

  margin-bottom:42px;
}

.solution-text p{
  color:#5a5a5a;

  font-size:18px;
  font-weight:400;

  line-height:2;
  letter-spacing:0.06em;
}

/* =========================
arrow
========================= */

.solution-arrow{
  display:flex;
  flex-direction:column;
  align-items:center;

  gap:10px;

  margin-bottom:42px;
}

/* 三角 */

.solution-arrow span{
  width:0;
  height:0;

  border-left:28px solid transparent;
  border-right:28px solid transparent;
  border-top:24px solid #738a54;

  opacity:0.95;
}

/* 上の三角 */

.solution-arrow span:nth-child(1){
  transform:translateY(0);
}

/* 下の三角 */

.solution-arrow span:nth-child(2){
  transform:translateY(-2px);
}
.mvv{
	font-weight:700;
	font-size:25px;
}
/* =========================
title
========================= */

.solution-title{
  color:#4e4e4e;

  font-size:34px;
  font-weight:700;

  line-height:1.5;
  letter-spacing:0.08em;

  position:relative;

  display:inline-block;

  padding-bottom:10px;
}

/* 下線 */

.solution-title::after{
  content:"";

  width:100%;
  height:2px;

  background:#d99d92;

  position:absolute;
  left:0;
  bottom:0;
}
/* =========================
SERVICE LIST
========================= */

.service-list{
  width:100%;
  background:#ece7d6;

  padding:
  40px
  0
  120px;
}

/* inner */

.service-list-inner{
  width:90%;
  max-width:1180px;

  margin:0 auto;
}

/* =========================
head
========================= */

.service-list-head{
  text-align:center;

  margin-bottom:75px;
}

/* sub */

.service-list-sub{
  color:#5b5b5b;

  font-size:18px;
  font-weight:400;

  letter-spacing:0.08em;

  margin-bottom:32px;
}

/* title */

.service-list-title{
  color:#555;

  font-size:28px;
  font-weight:700;

  line-height:1.5;
  letter-spacing:0.08em;
}

/* =========================
row
========================= */

.service-list-row{
  display:flex;
  justify-content:center;

  gap:36px;
}

/* 上段 */

.service-list-row-top{
  margin-bottom:38px;
}

/* =========================
card
========================= */

.service-card{
  width:232px;

  background:#738a54;

  padding:
  22px
  22px
  24px;
}

/* image */

.service-card-image{
  width:100%;

  aspect-ratio:1/0.68;

  overflow:hidden;

  margin-bottom:18px;
}

.service-card-image img{
  width:100%;
  height:100%;

  object-fit:cover;

  display:block;
}

/* text */

.service-card-text{
  color:#fff;

  font-size:14px;
  font-weight:400;

  line-height:1.8;
  letter-spacing:0.06em;
}
/* =========================
ABOUT
========================= */

.about{
  width:100%;

  background:#ece7d6;

  overflow:hidden;

  padding:
  95px
  0
  70px;

  position:relative;

  transition:
  background 1.8s ease;
}

/* スクロール後 */

.about.is-show{
  background:#8ea56b;
}

/* inner */

.about-inner{
  width:90%;
  max-width:1380px;

  margin:0 auto;

  display:flex;
  justify-content:space-between;
  align-items:flex-start;

  gap:140px;
}

/* =========================
left
========================= */

.about-content{
  width:58%;
}

/* =========================
head
========================= */

.about-head{
  margin-bottom:42px;
}

/* title */

.about-title{
  color:#fff;

  font-size:68px;
  font-weight:700;

  line-height:1;
  letter-spacing:0.06em;

  margin-bottom:22px;
}

/* sub wrap */

.about-sub-wrap{
  display:flex;
  align-items:center;

  gap:14px;
}

/* line */

.about-line{
  width:60px;
  height:1px;

  background:#fff;

  opacity:0.8;
}

/* sub */

.about-sub{
  color:#fff;

  font-size:18px;
  font-weight:400;

  letter-spacing:0.08em;
}

/* =========================
catch
========================= */

.about-catch{
  color:#fff;

  font-size:24px;
  font-weight:400;

  line-height:1.9;
  letter-spacing:0.08em;

  margin-bottom:55px;
}

/* =========================
text
========================= */

.about-text{
  display:flex;
  flex-direction:column;

  gap:42px;
}

.about-text p{
  color:#fff;

  font-size:18px;
  font-weight:400;

  line-height:2;
  letter-spacing:0.06em;
}

/* =========================
image
========================= */

.about-image{
  width:400px;

  flex-shrink:0;

  margin-top:35px;
}

.about-image img{
  width:100%;
  height:500px;

  object-fit:cover;

  display:block;
}

/* =========================
flow
========================= */

.about-flow{
  width:100%;

  overflow:hidden;

  margin-top:120px;
}

/* track */

.about-flow-track{
  display:flex;

  width:max-content;

  animation:aboutFlow 35s linear infinite;
}

/* text */

.about-flow-track span{
  color:rgba(255,255,255,0.22);

  font-size:110px;
  font-weight:700;

  line-height:1;

  letter-spacing:0.06em;

  white-space:nowrap;

  padding-right:90px;
}

/* animation */

@keyframes aboutFlow{

  0%{
    transform:translateX(0);
  }

  100%{
    transform:translateX(-50%);
  }

}

/* =========================
fade animation
========================= */

.about-title,
.about-sub-wrap,
.about-catch,
.about-text,
.about-image,
.about-flow{
  opacity:0;

  transform:translateY(30px);

  transition:
  opacity 1.2s ease,
  transform 1.2s ease;
}

/* 表示後 */

.about.is-show .about-title,
.about.is-show .about-sub-wrap,
.about.is-show .about-catch,
.about.is-show .about-text,
.about.is-show .about-image,
.about.is-show .about-flow{
  opacity:1;

  transform:translateY(0);
}

/* 遅延 */

.about.is-show .about-sub-wrap{
  transition-delay:0.15s;
}

.about.is-show .about-catch{
  transition-delay:0.3s;
}

.about.is-show .about-text{
  transition-delay:0.45s;
}

.about.is-show .about-image{
  transition-delay:0.6s;
}

.about.is-show .about-flow{
  transition-delay:0.8s;
}
/* =========================
MESSAGE
========================= */

.message{
  width:100%;
  background:#8ea56b;

  padding:
  110px
  0
  120px;
}

/* inner */

.message-inner{
  width:90%;
  max-width:1380px;

  margin:0 auto;

  display:flex;
  justify-content:space-between;
  align-items:flex-start;

  gap:110px;
}

/* =========================
left
========================= */

.message-content{
  width:100%;
  max-width:880px;
}

/* =========================
head
========================= */

.message-head{
  margin-bottom:55px;
}

/* top */

.message-head-top{
  display:flex;
  align-items:center;

  gap:36px;

  margin-bottom:12px;
}

/* title */

.message-title{
  color:#fff;

  font-size:74px;
  font-weight:400;

  line-height:1;
  letter-spacing:0.04em;

  white-space:nowrap;
}

/* line */

.message-line{
  width:100%;
  height:1px;

  background:rgba(255,255,255,0.7);

  margin-top:8px;
}

/* sub */

.message-sub{
  color:#fff;

  font-size:20px;
  font-weight:400;

  letter-spacing:0.08em;

  padding-left:78px;
}

/* =========================
text
========================= */

.message-text{
  display:flex;
  flex-direction:column;

  gap:40px;

  margin-bottom:65px;
}

.message-text p{
  color:#fff;

  font-size:15px;
  font-weight:400;

  line-height:2;
  letter-spacing:0.06em;
}

/* =========================
name
========================= */

.message-name{
  color:#fff;

  font-size:22px;
  font-weight:400;

  line-height:1.8;
  letter-spacing:0.06em;

  margin-bottom:95px;
}

/* =========================
info
========================= */

.message-info{
  width:100%;
  max-width:690px;

  margin:0 auto;
}

/* row */

.message-info-row{
  display:flex;
  align-items:center;

  border-top:1px dashed rgba(255,255,255,0.7);

  padding:
  20px
  0;
}

/* 最後 */

.message-info-row:last-child{
  border-bottom:1px dashed rgba(255,255,255,0.7);
}

/* head */

.message-info-head{
  width:160px;

  color:#fff;

  font-size:15px;
  font-weight:400;

  letter-spacing:0.06em;

  padding-left:40px;
}

/* data */

.message-info-data{
  flex:1;

  color:#fff;

  font-size:18px;
  font-weight:400;

  letter-spacing:0.06em;
}

/* =========================
image
========================= */

.message-image{
  width:360px;

  flex-shrink:0;

  margin-top:28px;
}

.message-image img{
  width:100%;
  height:500px;

  object-fit:cover;

  display:block;
}
/* =========================
MESSAGE SERVICE
========================= */

.message-service{
  width:100%;

  margin-top:140px;
}

/* =========================
head
========================= */

.message-service-head{
  display:flex;
  align-items:center;
  justify-content:flex-end;

  gap:16px;

  margin-bottom:70px;
}

/* line */

.message-service-line{
  width:60px;
  height:1px;

  background:rgba(255,255,255,0.7);
}

/* title */

.message-service-title{
  color:#fff;

  font-size:38px;
  font-weight:400;

  line-height:1;
  letter-spacing:0.08em;
}

/* =========================
box
========================= */

.message-service-box{
  width:80%;

  display:flex;
    margin:
  0 auto 52px;
  align-items:stretch;

  background:#f3f3f3;


  box-shadow:
  0 5px 14px rgba(0,0,0,0.08);
}

/* 最後 */

.message-service-box:last-child{
  margin-bottom:0;
}

/* =========================
image
========================= */

.message-service-image{
  width:240px;

  aspect-ratio:1/1;

  flex-shrink:0;

  overflow:hidden;
}

.message-service-image img{
  width:100%;
  height:100%;

  object-fit:cover;

  display:block;
}

/* =========================
content
========================= */

.message-service-content{
  flex:1;

  padding:
  42px
  48px;
}

/* title */

.message-service-content h3{
  color:#738a54;

  font-size:26px;
  font-weight:700;

  line-height:1.6;
  letter-spacing:0.06em;

  margin-bottom:28px;
}

/* text */

.message-service-content p{
  color:#555;

  font-size:16px;
  font-weight:400;

  line-height:2;
  letter-spacing:0.05em;
}
/* =========================
MOVIE
========================= */

.message-movie{
  width:100%;

  margin-top:140px;

  text-align:center;
}

/* =========================
title
========================= */

.message-movie-title{
  display:inline-block;

  color:#fff;

  font-size:28px;
  font-weight:700;

  line-height:1.5;
  letter-spacing:0.08em;

  position:relative;

  padding-bottom:12px;

  margin-bottom:50px;
}

/* underline */

.message-movie-title::after{
  content:"";

  width:100%;
  height:1px;

  background:rgba(255,255,255,0.7);

  position:absolute;
  left:0;
  bottom:0;
}

/* =========================
text
========================= */

.message-movie-text{
  color:#fff;

  font-size:18px;
  font-weight:400;

  line-height:2;
  letter-spacing:0.06em;

  margin-bottom:55px;
}

/* =========================
movie box
========================= */

.message-movie-box{
  width:78%;
  max-width:980px;

  margin:0 auto;

  background:#ddd;

  aspect-ratio:16/9;

  overflow:hidden;

  position:relative;
}

/* iframe */

.message-movie-box iframe{
  width:100%;
  height:100%;

  border:none;

  display:block;
}

/* dummy */

.movie-dummy{
  width:100%;
  height:100%;

  display:flex;
  align-items:center;
  justify-content:center;

  color:#666;

  font-size:24px;
  font-weight:400;

  background:#ddd;
}
/* =========================
VOICE
========================= */

.voice{
  width:100%;
  background:#ece7d6;

  overflow:hidden;

  padding:
  110px
  0
  120px;

  position:relative;
}

/* inner */

.voice-inner{
  width:90%;
  max-width:1380px;

  margin:0 auto;

  display:flex;
  justify-content:space-between;
  align-items:flex-start;

  gap:120px;
}

/* =========================
left
========================= */

.voice-content{
  width:100%;
  max-width:760px;
}

/* =========================
head
========================= */

.voice-head{
  display:flex;
  align-items:center;

  gap:18px;

  margin-bottom:90px;
}

/* title */

.voice-title{
  color:#738a54;

  font-size:72px;
  font-weight:700;

  line-height:1;
  letter-spacing:0.05em;
}

/* line */

.voice-line{
  width:82px;
  height:1px;

  background:#738a54;

  margin-top:10px;
}

/* sub */

.voice-sub{
  color:#738a54;

  font-size:22px;
  font-weight:400;

  letter-spacing:0.08em;

  margin-top:10px;
}

/* =========================
company
========================= */

.voice-company{
  color:#666;

  font-size:30px;
  font-weight:400;

  line-height:1.6;
  letter-spacing:0.06em;

  margin-bottom:52px;

  position:relative;

  display:inline-block;
}

/* underline */

.voice-company::after{
  content:"";

  width:100%;
  height:1px;

  background:#d5a293;

  position:absolute;
  left:0;
  bottom:2px;
}

/* =========================
catch
========================= */

.voice-catch{
  color:#555;

  font-size:23px;
  font-weight:400;

  line-height:1.8;
  letter-spacing:0.08em;

  margin-bottom:60px;
}

/* =========================
text
========================= */

.voice-text{
  display:flex;
  flex-direction:column;

  gap:42px;
}

.voice-text p{
  color:#666;

  font-size:15px;
  font-weight:400;

  line-height:2;
  letter-spacing:0.06em;
}

/* =========================
right
========================= */

.voice-visual{
  width:520px;

  flex-shrink:0;

  position:relative;

}

/* image */

.voice-image{
  width:300px;

  position:relative;
  z-index:5;
}

.voice-image img{
  width:100%;
  height:400px;

  object-fit:cover;

  display:block;
}

/* =========================
object
========================= */

.voice-obj{
  position:absolute;
}

/* green */

.voice-obj-green{
  width:350px;
  height:240px;

  background:#a9b48a;

  bottom:-140px;
  left:100px;

  z-index:1;
}

/* pink */

.voice-obj-pink{
  width:260px;
  height:260px;

  background:#dfb8a4;

  top:240px;
  right:-180px;

  z-index:2;
}
/* =========================
MENU
========================= */
/* ========================================
CONSULT TABLE
======================================== */

.consult-table-section{
    padding:120px 0;
}

.consult-table-inner{
    width:92%;
    max-width:1380px;
    margin:0 auto;
}

/* =========================
HEAD
========================= */

.consult-table-head{
    position:relative;
    margin-bottom:45px;
}

.consult-table-title{

    font-size:25px;
    font-weight:700;
    color:#4e6139;

    text-align:center;

    letter-spacing:.08em;

    line-height:1.4;

}

.consult-table-note{

    position:absolute;
    right:0;
    top:18px;

    font-size:18px;
    color:#777;

}

/* =========================
SCROLL
========================= */

.consult-table-scroll{

    overflow:hidden;

}

/* =========================
TABLE
========================= */

.consult-table{

    width:100%;

    border-collapse:collapse;


    border-radius:16px;

    overflow:hidden;

    box-shadow:
    0 12px 35px rgba(0,0,0,.08);

}

/* =========================
THEAD
========================= */

.consult-table thead th{

    background:#6f8351;

    color:#fff;

    padding:22px 18px;

    border:1px solid rgba(255,255,255,.18);

    text-align:center;

    font-size:12px;

    font-weight:700;

    line-height:1.6;

}

.consult-table thead th span{

    display:block;

    font-size:18px;

    line-height:1.1;

    margin-top:8px;

}

.consult-table thead th small{

    display:block;

    font-size:14px;

    font-weight:400;

    margin-top:8px;

}

/* =========================
COLUMN
========================= */

.consult-no{
    width:60px;
}

.consult-service{
    width:180px;
}

.consult-detail{
    width:340px;
}

.consult-plan{
    width:170px;
}

/* =========================
BODY
========================= */

.consult-table tbody td{

    border:1px solid #d8ddd0;

    padding:18px 22px;

    vertical-align:top;

    color:#444;

    font-size:17px;

    line-height:1.8;

    background:#fff;

}

/* =========================
NO
========================= */

.consult-number{

    text-align:center;

    vertical-align:middle !important;

}

.consult-number span{
    width:32px;
    height:32px;

    display:inline-flex;

    align-items:center;
    justify-content:center;

    background:#6f8351;

    color:#fff;

    border-radius:50%;

    font-size:16px;

    font-weight:700;

}

/* =========================
CHECK
========================= */

.consult-check{

    text-align:center;

    vertical-align:middle !important;

    color:#6f8351;

    font-size:24px;

    font-weight:700;

}

/* =========================
SERVICE
========================= */

.consult-table tbody td:nth-child(2){

    font-weight:700;

}

/* =========================
DETAIL
========================= */

.consult-table tbody td:nth-child(3){

    font-size:15px;

    line-height:1.9;

}

/* =========================
ROW HEIGHT
========================= */

.consult-table tbody tr{

    transition:.25s;

}

.consult-table tbody tr:hover{

    background:#f8faf5;

}

.consult-table tbody tr:hover td{

    background:#f8faf5;

}
/* ========================================
TABLE DESIGN UP
======================================== */

/* タイトル下余白 */
.consult-table-title{
    margin-bottom:12px;
}

/* ヘッダー角丸 */
.consult-table thead th:first-child{
    border-top-left-radius:16px;
}

.consult-table thead th:last-child{
    border-top-right-radius:16px;
}

/* 行の高さ */
.consult-table tbody tr{
  height:auto;
}

/* 最終行 */
.consult-table tbody tr:last-child td:first-child{
    border-bottom-left-radius:16px;
}

.consult-table tbody tr:last-child td:last-child{
    border-bottom-right-radius:16px;
}

/* NO列 */
.consult-number{
    background:#fafaf7;
}

/* サービス名 */
.consult-table tbody td:nth-child(2){

    background:#fafaf7;

    font-size:15px;

    font-weight:700;

    vertical-align:middle;

}

/* 詳細 */
.consult-table tbody td:nth-child(3){

    background:#fff;

    font-size:15px;

    color:#555;

}

/* プラン列 */
.consult-table tbody td:nth-child(n+4){

    text-align:center;

    vertical-align:middle;

}

/* ● */
.consult-check{

    font-size:40px;

    color:#6f8351;

    line-height:1;

}

/* 線を少し薄く */
.consult-table td,
.consult-table th{

    border-color:#d7dccf;

}

/* 影 */
.consult-table{

    box-shadow:
    0 25px 55px rgba(0,0,0,.08);

}

/* ヘッダー */
.consult-table thead th{

    background:#738a54;

}

/* 金額 */
.consult-table thead span{

    font-size:30px;

    font-weight:700;

}

/* 面談時間 */
.consult-table thead small{

    line-height:1.6;

    opacity:.95;

}

/* ホバー */

.consult-table tbody tr:hover td{

    background:#f7f9f3;

}

.consult-table tbody tr:hover td:nth-child(2){

    background:#eef3e7;

}
.menu-section{
  width:100%;
  background:#ece7d6;

  padding:
  110px
  0
  60px;
}

/* inner */

.menu-inner{
  width:90%;
  max-width:1380px;

  margin:0 auto;
}

/* =========================
head
========================= */

.menu-head{
  display:flex;
  align-items:center;

  gap:18px;

}

/* title */

.menu-title{
  color:#738a54;

  font-size:72px;
  font-weight:700;

  line-height:1;
  letter-spacing:0.05em;
}

/* line */

.menu-line{
  width:82px;
  height:1px;

  background:#738a54;

  margin-top:10px;
}

/* sub */

.menu-sub{
  color:#738a54;

  font-size:22px;
  font-weight:400;

  letter-spacing:0.08em;

  margin-top:10px;
}

/* =========================
box
========================= */

.menu-box{
  width:74%;
  max-width:980px;

  height:420px;

  margin:0 auto;

  border:1px solid #8ea56b;

  background:#ddd;

  display:flex;
  align-items:center;
  justify-content:center;

  position:relative;

  overflow:hidden;

  transition:0.4s ease;
}

/* hover */

.menu-box:hover{
  opacity:0.85;
}

/* inner */

.menu-box-inner{
  width:100%;
  height:100%;

  display:flex;
  align-items:center;
  justify-content:center;
}

/* text */

.menu-box-text{
  color:#666;

  font-size:28px;
  font-weight:400;

  line-height:1.6;
  letter-spacing:0.08em;
}
/* =========================
FLOW
========================= */

.flow{
  width:100%;
  background:#8ea56b;

  padding:
  110px
  0
  130px;
}

/* inner */

.flow-inner{
  width:90%;
  max-width:1380px;

  margin:0 auto;
}

/* =========================
head
========================= */

.flow-head{
  margin-bottom:90px;
}

/* title */

.flow-title{
  color:#fff;

  font-size:72px;
  font-weight:700;

  line-height:1;
  letter-spacing:0.05em;

  margin-bottom:24px;
}

/* sub wrap */

.flow-sub-wrap{
  display:flex;
  align-items:center;

  gap:14px;
}

/* line */

.flow-line{
  width:74px;
  height:1px;

  background:rgba(255,255,255,0.8);
}

/* sub */

.flow-sub{
  color:#fff;

  font-size:22px;
  font-weight:400;

  letter-spacing:0.08em;
}

/* =========================
list
========================= */

.flow-list{
  display:flex;
  justify-content:space-between;

  gap:36px;
}

/* =========================
box
========================= */

.flow-box{
  width:100%;

  background:#f5f5f5;

  border-radius:12px;

  padding:
  18px
  20px
  28px;

  position:relative;
}

/* =========================
number
========================= */

.flow-number{
  color:#666;

  font-size:30px;
  font-weight:700;

  line-height:1;

  letter-spacing:0.04em;

  margin-bottom:28px;
}

/* =========================
icon
========================= */

.flow-icon{
  width:70px;
  height:70px;

  margin:
  0 auto
  34px;
}

.flow-icon img{
  width:100%;
  height:100%;

  object-fit:contain;

  display:block;
}

/* =========================
title
========================= */

.flow-box-title{
  color:#555;

  font-size:20px;
  font-weight:700;

  line-height:1.6;
  letter-spacing:0.06em;

  text-align:center;

  margin-bottom:18px;
}

/* =========================
line
========================= */

.flow-box-line{
  width:100%;
  height:1px;

  background:#bbb;

  display:block;

  margin-bottom:22px;
}

/* =========================
text
========================= */

.flow-text{
  color:#666;

  font-size:13px;
  font-weight:400;

  line-height:1.9;
  letter-spacing:0.05em;
}
/* =========================
NEWS
========================= */

.top-news{
  width:100%;
  background:#ece7d6;

  padding:
  110px
  0
  120px;
}

/* inner */

.top-news-inner{
  width:92%;
  max-width:1380px;

  margin:0 auto;
}

/* =========================
head
========================= */

.top-news-head{
  margin-bottom:90px;
}

/* title */

.top-news-title{
  color:#555;

  font-size:60px;
  font-weight:700;

  line-height:1;
  letter-spacing:0.05em;

  margin-bottom:24px;
}

/* sub */

.top-news-sub-wrap{
  display:flex;
  align-items:center;

  gap:12px;
}

.top-news-line{
  width:64px;
  height:1px;

  background:#555;
}

.top-news-sub{
  color:#555;

  font-size:20px;
  letter-spacing:0.08em;
}

/* =========================
list
========================= */

.top-news-list{
  display:grid;
  grid-template-columns:repeat(4,1fr);

  gap:34px;

  margin-bottom:90px;
}

/* =========================
card
========================= */

.top-news-card{
  display:block;
}

/* thumbnail */

.top-news-thumb{
  width:100%;

  aspect-ratio:1/0.7;

  overflow:hidden;

  background:#ddd;

  border-radius:6px;

  margin-bottom:24px;
}

.top-news-thumb img{
  width:100%;
  height:100%;

  object-fit:cover;

  display:block;

  transition:0.5s ease;
}

/* hover */

.top-news-card:hover .top-news-thumb img{
  transform:scale(1.05);
}

/* =========================
category
========================= */

.top-news-category{
  display:inline-block;

  background:#738a54;
  color:#fff;

  font-size:13px;
  font-weight:700;

  line-height:1;

  letter-spacing:0.08em;

  padding:
  8px
  14px;

  margin-bottom:18px;
}

/* =========================
title
========================= */

.top-news-card-title{
  color:#555;

  font-size:18px;
  font-weight:400;

  line-height:1.9;
  letter-spacing:0.05em;
}

/* =========================
button
========================= */

.top-news-btn-wrap{
  display:flex;
  justify-content:flex-end;
}

/* btn */

.top-news-btn{
  width:240px;
  height:72px;

  background:#738a54;
  color:#fff;

  display:flex;
  align-items:center;
  justify-content:center;

  font-size:18px;
  font-weight:700;

  letter-spacing:0.08em;

  transition:0.3s ease;
}

.top-news-btn:hover{
  background:#fff;
  color:#738a54;
}
/* =========================
CONTACT
========================= */

.contact-sec{
  width:100%;
  height:540px;

  position:relative;

  overflow:hidden;
}

/* =========================
bg
========================= */

.contact-bg{
  width:100%;
  height:100%;

  position:absolute;
  top:0;
  left:0;

  z-index:1;
}

.contact-bg img{
  width:100%;
  height:100%;

  object-fit:cover;

  display:block;
}

/* =========================
overlay
========================= */

.contact-overlay{
  width:100%;
  height:100%;

  background:rgba(0,0,0,0.8);

  position:absolute;
  top:0;
  left:0;

  z-index:2;
}

/* =========================
content
========================= */

.contact-content{
  width:90%;
  max-width:1200px;

  height:100%;

  margin:0 auto;

  position:relative;
  z-index:5;

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  text-align:center;
}

/* =========================
head
========================= */

.contact-head{
  margin-bottom:50px;
}

/* title */

.contact-title{
  color:#fff;

  font-size:72px;
  font-weight:700;

  line-height:1;
  letter-spacing:0.06em;

  margin-bottom:24px;
}

/* sub wrap */

.contact-sub-wrap{
  display:flex;
  align-items:center;
  justify-content:center;

  gap:14px;
}

/* line */

.contact-line{
  width:72px;
  height:1px;

  background:rgba(255,255,255,0.8);
}

/* sub */

.contact-sub{
  color:#fff;

  font-size:20px;
  font-weight:400;

  letter-spacing:0.08em;
}

/* =========================
text
========================= */

.contact-text{
  color:#fff;

  font-size:20px;
  font-weight:400;

  line-height:2;
  letter-spacing:0.06em;

  margin-bottom:60px;

  text-shadow:
  0 0 10px rgba(0,0,0,0.2);
}

/* =========================
button
========================= */

.contact-btn-wrap{
  display:flex;
  justify-content:center;
}

/* btn */

.contact-btn{
  width:260px;
  height:72px;

  border:1px solid rgba(255,255,255,0.9);

  color:#fff;

  display:flex;
  align-items:center;
  justify-content:center;

  font-size:24px;
  font-weight:400;

  letter-spacing:0.08em;

  transition:0.4s ease;

  background:transparent;
}

/* hover */

.contact-btn:hover{
  background:#fff;
  color:#333;
}
/* =========================
ARCHIVE
========================= */

.archive-page{
  width:100%;
  background:#ece7d6;

  padding:
  110px
  0
  120px;
}

/* inner */

.archive-inner{
  width:92%;
  max-width:1380px;

  margin:0 auto;
}

/* =========================
head
========================= */

.archive-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;

  margin-bottom:24px;
}

/* =========================
title
========================= */

.archive-title{
  color:#cfd3bb;

  font-size:72px;
  font-weight:700;

  line-height:1;

  letter-spacing:0.04em;

  margin-bottom:14px;
}

/* sub */

.archive-sub-wrap{
  display:flex;
  align-items:center;

  gap:12px;
}

.archive-line{
  width:60px;
  height:1px;

  background:#738a54;
}

.archive-sub{
  color:#738a54;

  font-size:20px;
  font-weight:400;

  letter-spacing:0.06em;
}

/* =========================
category
========================= */

.archive-category form{
  position:relative;
}

/* select */

.archive-category select{
  width:240px;
  height:54px;

  border:none;
  border-bottom:1px solid #738a54;

  background:transparent;

  color:#738a54;

  font-size:18px;
  font-weight:400;

  letter-spacing:0.08em;

  appearance:none;

  padding:
  0
  40px
  0
  0;

  cursor:pointer;
}

/* arrow */

.archive-category form::after{
  content:"⌄";

  color:#738a54;

  font-size:22px;

  position:absolute;
  right:8px;
  top:12px;

  pointer-events:none;
}

/* =========================
border
========================= */

.archive-border{
  width:100%;
  height:1px;

  background:#738a54;

  margin-bottom:70px;
}

/* =========================
list
========================= */

.archive-list{
  display:grid;

  grid-template-columns:
  repeat(4,1fr);

  gap:
  60px
  28px;
}

/* =========================
card
========================= */

.archive-card{
  display:block;
}

/* thumb */

.archive-thumb{
  width:100%;

  aspect-ratio:1/0.78;

  overflow:hidden;

  background:#ddd;

  margin-bottom:16px;
}

.archive-thumb img{
  width:100%;
  height:100%;

  object-fit:cover;

  display:block;

  transition:0.5s ease;
}

/* hover */

.archive-card:hover .archive-thumb img{
  transform:scale(1.05);
}

/* =========================
category
========================= */

.archive-card-category{
  display:inline-block;

  background:#738a54;
  color:#fff;

  font-size:12px;
  font-weight:700;

  letter-spacing:0.08em;

  padding:
  5px
  16px;

  margin-bottom:18px;
}

/* =========================
title
========================= */

.archive-card-title{
  color:#666;

  font-size:16px;
  font-weight:400;

  line-height:1.9;
  letter-spacing:0.05em;
}

/* =========================
pagination
========================= */

.archive-pagination{
  margin-top:90px;

  display:flex;
  justify-content:center;

  gap:12px;
}

.archive-pagination .page-numbers{
  width:46px;
  height:46px;

  border:1px solid #738a54;

  display:flex;
  align-items:center;
  justify-content:center;

  color:#738a54;

  transition:0.3s ease;
}

.archive-pagination .current{
  background:#738a54;
  color:#fff;
}
/* =========================
SINGLE
========================= */

.single-page{
  width:100%;
  background:#ece7d6;

  padding:
  110px
  0
  140px;
}

/* inner */

.single-inner{
  width:90%;
  max-width:760px;

  margin:0 auto;
}

/* =========================
title
========================= */

.single-title{
  color:#555;

  font-size:42px;
  font-weight:400;

  line-height:1.7;
  letter-spacing:0.06em;

  margin-bottom:24px;
}

/* =========================
date
========================= */

.single-date{
  color:#777;

  font-size:14px;
  font-weight:400;

  letter-spacing:0.08em;

  padding-bottom:18px;

  border-bottom:
  1px dashed rgba(0,0,0,0.2);

  margin-bottom:50px;
}

/* =========================
thumbnail
========================= */

.single-thumbnail{
  width:100%;

  margin-bottom:60px;
}

.single-thumbnail img{
  width:100%;
  height:auto;

  display:block;
}

/* =========================
content
========================= */

.single-content{
  color:#666;

  font-size:16px;
  font-weight:400;

  line-height:2.2;
  letter-spacing:0.05em;
}

/* paragraph */

.single-content p{
  margin-bottom:38px;
}

/* heading */

.single-content h2{
  color:#555;

  font-size:30px;
  font-weight:700;

  line-height:1.6;

  margin:
  70px
  0
  26px;
}

/* h3 */

.single-content h3{
  color:#555;

  font-size:24px;
  font-weight:700;

  line-height:1.6;

  margin:
  60px
  0
  20px;
}

/* image */

.single-content img{
  max-width:100%;
  height:auto;

  display:block;

  margin:
  40px
  auto;
}

/* list */

.single-content ul{
  margin:
  30px
  0;
  padding-left:1.5em;
}

.single-content li{
  margin-bottom:12px;
}

/* link */

.single-content a{
  color:#738a54;

  text-decoration:underline;
}
/* =========================
CONTACT PAGE
========================= */

.contact-page{
  width:100%;
  background:#ece7d6;

  padding:
  110px
  0
  140px;
}

/* inner */

.contact-page-inner{
  width:92%;
  max-width:1380px;

  margin:0 auto;

  display:flex;
  justify-content:space-between;
  align-items:flex-start;

  gap:100px;
}

/* =========================
left
========================= */

.contact-page-left{
  width:320px;

  flex-shrink:0;

  padding-top:40px;
}

/* =========================
head
========================= */

.contact-page-head{
  margin-bottom:70px;
}

/* title */

.contact-page-title{
  color:#738a54;

  font-size:68px;
  font-weight:700;

  line-height:1;

  letter-spacing:0.05em;

  margin-bottom:22px;
}

/* sub */

.contact-page-sub-wrap{
  display:flex;
  align-items:center;

  gap:12px;
}

.contact-page-line{
  width:60px;
  height:1px;

  background:#738a54;
}

.contact-page-sub{
  color:#738a54;

  font-size:18px;
  letter-spacing:0.08em;
}

/* =========================
text
========================= */

.contact-page-text{
  display:flex;
  flex-direction:column;

  gap:40px;
}

.contact-page-text p{
  color:#666;

  font-size:16px;
  line-height:2;
  letter-spacing:0.05em;
}

/* =========================
form wrap
========================= */

.contact-page-form-wrap{
  flex:1;

  max-width:760px;

  background:#f5f5f5;

  padding:
  55px
  60px
  65px;
}

/* =========================
form
========================= */

.form-group{
  margin-bottom:34px;
}

/* label */

.form-group label{
  display:flex;
  align-items:center;

  gap:10px;

  color:#555;

  font-size:16px;
  font-weight:700;

  margin-bottom:14px;
}

/* required */

.required{
  background:#e28d73;
  color:#fff;

  font-size:11px;
  font-weight:700;

  line-height:1;

  padding:
  4px
  8px;

  border-radius:2px;
}

/* input */

.contact-page-form-wrap input,
.contact-page-form-wrap textarea,
.contact-page-form-wrap select{
  width:100%;

  border:1px solid #bbb;

  background:#fff;

  padding:
  12px
  14px;

  font-size:16px;

  appearance:none;
}

/* textarea */

.contact-page-form-wrap textarea{
  height:180px;

  resize:none;
}

/* privacy */

.privacy-box{
  width:100%;
  height:120px;

  border:1px solid #bbb;

  background:#fff;

  padding:18px;

  overflow-y:auto;

  font-size:14px;

  line-height:2;
}

/* =========================
check
========================= */

.form-check{
  margin:
  45px
  0
  50px;
}

.form-check .wpcf7-list-item{
  margin:0;
}

.form-check label{
  display:flex;
  align-items:center;

  gap:10px;

  color:#666;

  font-size:14px;
}

/* checkbox */

.form-check input[type="checkbox"]{
  width:18px;
  height:18px;
}

/* =========================
submit
========================= */

.form-submit{
  text-align:left;
}

/* button */

.form-submit input[type="submit"]{
  width:240px;
  height:62px;

  border:none;

  background:#e28d73;
  color:#fff;

  font-size:16px;
  font-weight:700;

  letter-spacing:0.08em;

  cursor:pointer;

  transition:0.3s ease;
}

/* hover */

.form-submit input[type="submit"]:hover{
  opacity:0.85;
}















/* =========================
Footer
========================= */

.site-footer{
  width:100%;
  background:#ece7d6;

  position:relative;
}

/* =========================
inner
========================= */

.footer-inner{
  width:100%;

  display:flex;
  justify-content:space-between;

  padding:
  70px
  140px
  90px;
}

/* =========================
left
========================= */

.footer-left{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

/* ブランドエリア */

.footer-brand{
  display:flex;
  align-items:flex-start;
  gap:26px;
}

/* ロゴ */

.footer-logo{
  width:72px;

  opacity:0.45;
  filter:blur(0.4px);
}

.footer-logo img{
  width:100%;
  display:block;
}

/* テキスト */

.footer-brand-text h2{
  font-size:19px;
  font-weight:400;
  color:#454545;

  margin-bottom:34px;

  letter-spacing:0.05em;
  line-height:1;
}

.footer-brand-text p{
  font-size:14px;
  color:#666;

  letter-spacing:0.04em;
  line-height:1.8;
}

/* =========================
contact
========================= */

.footer-contact{
  margin-top:75px;
  padding-left:110px;
}

.footer-contact a{
  width:160px;
  height:56px;

  background:#df9479;
  color:#fff;

  display:flex;
  align-items:center;
  justify-content:center;

  font-size:18px;
  font-weight:700;

  letter-spacing:0.08em;

  transition:0.3s;
}

.footer-contact a:hover{
  background:#fff;
  color:#df9479;
}

/* =========================
right
========================= */

.footer-right{
  padding-right:120px;
}

/* nav */

.footer-nav ul{
  display:flex;
  flex-direction:column;
  gap:48px;
}

.footer-nav a{
  color:#5a5a5a;

  font-size:20px;
  font-weight:400;

  letter-spacing:0.03em;

  position:relative;

  transition:0.3s;
}

/* hover line */

.footer-nav a::after{
  content:"";

  width:0;
  height:1px;

  background:#5a5a5a;

  position:absolute;
  left:0;
  bottom:-7px;

  transition:0.3s;
}

.footer-nav a:hover::after{
  width:100%;
}

/* =========================
bottom bar
========================= */

.footer-bottom-bar{
  width:100%;
  height:18px;
  background:#738a54;
}
/* =========================
Responsive
========================= */

@media screen and (max-width:767px){

.site-header{
  height:70px;
}

.header-inner{
  padding:0 20px;
}

.header-logo{
  width:140px;
  height:42px;
}

.header-logo img{
  max-width:90px;
}

.header-nav{
  display:none;
}

.header-contact{
  display:none;
}

.hamburger{
  display:block;
}
.site-footer{
  overflow:hidden;
}

.footer-inner{
  flex-direction:column;

  padding:
  60px
  24px
  70px;

  gap:60px;
}

/* brand */

.footer-brand{
  gap:18px;
}

.footer-logo{
  width:56px;
}

.footer-brand-text h2{
  font-size:18px;
  line-height:1.6;

  margin-bottom:18px;
}

.footer-brand-text p{
  font-size:13px;
  line-height:1.8;
}

/* contact */

.footer-contact{
  margin-top:45px;
  padding-left:0;
}

.footer-contact a{
  width:100%;
  max-width:220px;

  height:54px;

  font-size:16px;
}

/* right */

.footer-right{
  width:100%;
  padding-right:0;
}

.footer-nav ul{
  gap:30px;
}

.footer-nav a{
  font-size:24px;
}

.footer-bottom-bar{
  height:14px;
}
	.fv{
  margin-top:70px;
  height:calc(100vh - 70px);
}

.fv-title{
  font-size:30px;

  line-height:1.5;

  margin-bottom:22px;
}

.fv-subtitle{
  font-size:12px;
  line-height:2;
}

.fv-dots{
  bottom:30px;
}
	.worry{
  padding:
  70px
  0
  90px;
}

.worry-inner{
  width:92%;
}

/* head */

.worry-head{
  margin-bottom:50px;
}

.worry-sub{
  font-size:15px;

  margin-bottom:20px;
}

.worry-title{
  font-size:30px;
  line-height:1.6;
}

/* row */

.worry-row{
  flex-wrap:wrap;
  gap:24px;
}

.worry-row-top{
  margin-bottom:24px;
}

/* box */

.worry-box{
  width:calc(50% - 12px);

  padding:
  14px
  14px
  18px;
}

.worry-image{
  margin-bottom:16px;
}

.worry-text{
  font-size:14px;
  line-height:1.8;
}
.solution{
  padding:
  20px
  0
  60px;
}

/* text */

.solution-text{
  margin-bottom:34px;
}

.solution-text p{
  font-size:15px;
  line-height:1.9;
}

/* arrow */

.solution-arrow{
  gap:8px;
  margin-bottom:34px;
}

.solution-arrow span{
  border-left:22px solid transparent;
  border-right:22px solid transparent;
  border-top:20px solid #738a54;
}

/* title */

.solution-title{
  font-size:28px;
  line-height:1.8;

  text-align:center;

  padding-bottom:8px;
}

.solution-title::after{
  width:100%;
}
	.service-list{
  padding:
  60px
  0
  90px;
}

.service-list-inner{
  width:92%;
}

/* head */

.service-list-head{
  margin-bottom:50px;
}

.service-list-sub{
  font-size:15px;

  margin-bottom:18px;
}

.service-list-title{
  font-size:20px;
  line-height:1.6;
}

/* row */

.service-list-row{
  flex-wrap:wrap;

  gap:22px;
}

.service-list-row-top{
  margin-bottom:22px;
}

/* card */

.service-card{
  width:calc(50% - 11px);

  padding:
  14px
  14px
  18px;
}

.service-card-image{
  margin-bottom:14px;
}

.service-card-text{
  font-size:14px;
  line-height:1.8;
}
	.about{
  padding:
  70px
  0
  50px;
}

/* inner */

.about-inner{
  width:92%;

  flex-direction:column;

  gap:50px;
}

/* =========================
left
========================= */

.about-content{
  width:100%;
}

/* =========================
head
========================= */

.about-head{
  margin-bottom:30px;
}

/* title */

.about-title{
  font-size:48px;

  margin-bottom:16px;

  line-height:1.1;
}

/* sub wrap */

.about-sub-wrap{
  gap:10px;
}

/* line */

.about-line{
  width:45px;
}

/* sub */

.about-sub{
  font-size:14px;
}

/* =========================
catch
========================= */

.about-catch{
  font-size:22px;

  line-height:1.8;

  margin-bottom:34px;
}

/* =========================
text
========================= */

.about-text{
  gap:24px;
}

.about-text p{
  font-size:15px;

  line-height:2;
}

/* =========================
image
========================= */

.about-image{
  width:100%;

  margin-top:10px;
  margin-right:0;
}

.about-image img{
  width:100%;
  height:520px;

  object-fit:cover;
}

/* =========================
flow
========================= */

.about-flow{
  margin-top:65px;
}

.about-flow-track span{
  font-size:58px;

  padding-right:40px;
}

/* animation軽く */

.about-title,
.about-sub-wrap,
.about-catch,
.about-text,
.about-image,
.about-flow{
  transform:translateY(20px);
}
	.message{
  padding:
  70px
  0
  80px;
}

.message-inner{
  width:92%;

  flex-direction:column;

  gap:50px;
}

/* title */

.message-head{
  margin-bottom:40px;
}

.message-head-top{
  gap:18px;
}

.message-title{
  font-size:52px;
}

.message-line{
  margin-top:4px;
}

.message-sub{
  font-size:15px;

  padding-left:56px;
}

/* text */

.message-text{
  gap:28px;

  margin-bottom:40px;
}

.message-text p{
  font-size:15px;

  line-height:2;
}

/* name */

.message-name{
  font-size:15px;

  margin-bottom:55px;
}

/* info */

.message-info{
  max-width:100%;
}

.message-info-row{
  flex-direction:column;
  align-items:flex-start;

  gap:10px;

  padding:
  18px
  0;
}

.message-info-head{
  width:100%;

  font-size:15px;

  padding-left:0;
}

.message-info-data{
  font-size:15px;
}

/* image */

.message-image{
  width:100%;

  margin-top:0;
}

.message-image img{
  height:300px;
}
/* =========================
SERVICE
========================= */

.message-service{
  width:100%;

  margin-top:80px;
}

/* =========================
head
========================= */

.message-service-head{
  justify-content:center;

  gap:10px;

  margin-bottom:36px;
}

/* line */

.message-service-line{
  width:36px;
}

/* title */

.message-service-title{
  font-size:24px;

  letter-spacing:0.06em;
}

/* =========================
box
========================= */

.message-service-box{
  width:100%;

  margin:
  0 auto 24px;

  flex-direction:column;

  overflow:hidden;
}

/* 最後 */

.message-service-box:last-child{
  margin-bottom:0;
}

/* =========================
image
========================= */

.message-service-image{
  width:100%;

  aspect-ratio:1/1;

  overflow:hidden;
}

.message-service-image img{
  width:100%;
  height:100%;

  object-fit:cover;

  display:block;
}

/* =========================
content
========================= */

.message-service-content{
  width:100%;

  padding:
  24px
  20px
  28px;
}

/* title */

.message-service-content h3{
  font-size:20px;

  line-height:1.6;

  margin-bottom:16px;
}

/* text */

.message-service-content p{
  font-size:14px;

  line-height:1.9;
}

/* =========================
shadow軽く
========================= */

.message-service-box{
  box-shadow:
  0 3px 10px rgba(0,0,0,0.06);
}
	.message-movie{
  margin-top:90px;
}

/* title */

.message-movie-title{
  font-size:22px;

  padding-bottom:8px;

  margin-bottom:32px;
}

/* text */

.message-movie-text{
  font-size:14px;

  line-height:1.9;

  margin-bottom:32px;
}

/* movie */

.message-movie-box{
  width:100%;
}

/* dummy */

.movie-dummy{
  font-size:18px;
}
	.voice{
  padding:
  70px
  0
  80px;
}

.voice-inner{
  width:92%;

  flex-direction:column;

  gap:70px;
}

/* =========================
head
========================= */

.voice-head{
  gap:10px;

  margin-bottom:50px;
}

.voice-title{
  font-size:48px;
}

.voice-line{
  width:40px;

  margin-top:4px;
}

.voice-sub{
  font-size:14px;

  margin-top:4px;
}

/* =========================
company
========================= */

.voice-company{
  font-size:26px;

  margin-bottom:30px;
}

/* =========================
catch
========================= */

.voice-catch{
  font-size:24px;

  line-height:1.8;

  margin-bottom:34px;
}

/* =========================
text
========================= */

.voice-text{
  gap:26px;
}

.voice-text p{
  font-size:15px;

  line-height:2;
}

/* =========================
right
========================= */

.voice-visual{
  width:100%;

  padding-top:0;

  padding-bottom:120px;
}

/* image */

.voice-image{
  width:72%;

  margin:0 auto;
}

.voice-image img{
  height:420px;
}

/* green */

.voice-obj-green{
  width:65%;
  height:180px;

  left:10%;
  bottom:0;
}

/* pink */

.voice-obj-pink{
  width:180px;
  height:180px;

  top:180px;
  right:-60px;
}
	.menu-section{
  padding:
  70px
  0
  80px;
}

.menu-inner{
  width:92%;
}

/* =========================
head
========================= */

.menu-head{
  gap:10px;

  margin-bottom:50px;
}

.menu-title{
  font-size:48px;
}

.menu-line{
  width:40px;

  margin-top:4px;
}

.menu-sub{
  font-size:14px;

  margin-top:4px;
}

/* =========================
box
========================= */

.menu-box{
  width:100%;

  height:260px;
}

/* text */

.menu-box-text{
  font-size:20px;
}
	.flow{
  padding:
  70px
  0
  80px;
}

.flow-inner{
  width:92%;
}

/* =========================
head
========================= */

.flow-head{
  margin-bottom:50px;
}

.flow-title{
  font-size:48px;

  margin-bottom:16px;
}

.flow-sub-wrap{
  gap:10px;
}

.flow-line{
  width:40px;
}

.flow-sub{
  font-size:14px;
}

/* =========================
list
========================= */

.flow-list{
  flex-direction:column;

  gap:24px;
}

/* =========================
box
========================= */

.flow-box{
  padding:
  16px
  18px
  24px;
}

/* number */

.flow-number{
  font-size:32px;

  margin-bottom:20px;
}

/* icon */

.flow-icon{
  width:72px;
  height:72px;

  margin:
  0 auto
  24px;
}

/* title */

.flow-box-title{
  font-size:22px;

  margin-bottom:14px;
}

/* line */

.flow-box-line{
  margin-bottom:18px;
}

/* text */

.flow-text{
  font-size:14px;

  line-height:1.9;
}
	.top-news{
  padding:
  70px
  0
  80px;
}

/* head */

.top-news-head{
  margin-bottom:50px;
}

.top-news-title{
  font-size:48px;

  margin-bottom:18px;
}

.top-news-line{
  width:40px;
}

.top-news-sub{
  font-size:14px;
}

/* list */

.top-news-list{
  grid-template-columns:1fr;

  gap:40px;

  margin-bottom:50px;
}

/* thumb */

.top-news-thumb{
  margin-bottom:18px;
}

/* category */

.top-news-category{
  font-size:12px;

  padding:
  7px
  12px;

  margin-bottom:14px;
}

/* title */

.top-news-card-title{
  font-size:16px;

  line-height:1.8;
}

/* button */

.top-news-btn-wrap{
  justify-content:center;
}

.top-news-btn{
  width:100%;
  max-width:260px;

  height:60px;

  font-size:16px;
}
	.contact-sec{
  height:480px;
}

/* content */

.contact-content{
  width:92%;
}

/* head */

.contact-head{
  margin-bottom:34px;
}

/* title */

.contact-title{
  font-size:48px;

  margin-bottom:18px;
}

/* sub wrap */

.contact-sub-wrap{
  gap:10px;
}

/* line */

.contact-line{
  width:40px;
}

/* sub */

.contact-sub{
  font-size:14px;
}

/* =========================
text
========================= */

.contact-text{
  font-size:15px;

  line-height:2;

  margin-bottom:38px;
}

/* =========================
button
========================= */

.contact-btn{
  width:220px;
  height:58px;

  font-size:18px;
}
	.archive-page{
  padding:
  70px
  0
  80px;
}

/* head */

.archive-head{
  flex-direction:column;
  align-items:flex-start;

  gap:30px;
}

/* title */

.archive-title{
  font-size:48px;

  margin-bottom:14px;
}

.archive-line{
  width:40px;
}

.archive-sub{
  font-size:14px;
}

/* category */

.archive-category{
  width:100%;
}

.archive-category select{
  width:100%;

  font-size:16px;
}

/* border */

.archive-border{
  margin-bottom:40px;
}

/* list */

.archive-list{
  grid-template-columns:1fr;

  gap:40px;
}

/* title */

.archive-card-title{
  font-size:15px;
}

/* pagination */

.archive-pagination{
  margin-top:60px;
}

.archive-pagination .page-numbers{
  width:40px;
  height:40px;
}
	.single-page{
  padding:
  70px
  0
  90px;
}

.single-inner{
  width:92%;
}

/* title */

.single-title{
  font-size:28px;

  line-height:1.6;

  margin-bottom:18px;
}

/* date */

.single-date{
  font-size:12px;

  padding-bottom:14px;

  margin-bottom:34px;
}

/* thumbnail */

.single-thumbnail{
  margin-bottom:40px;
}

/* content */

.single-content{
  font-size:15px;

  line-height:2;
}

/* paragraph */

.single-content p{
  margin-bottom:28px;
}

/* h2 */

.single-content h2{
  font-size:24px;

  margin:
  50px
  0
  20px;
}

/* h3 */

.single-content h3{
  font-size:20px;

  margin:
  40px
  0
  18px;
}
.contact-page{
  padding:
  70px
  0
  80px;
}

.contact-page-inner{
  flex-direction:column;

  gap:50px;
}

/* left */

.contact-page-left{
  width:100%;

  padding-top:0;
}

/* title */

.contact-page-title{
  font-size:48px;

  margin-bottom:18px;
}

.contact-page-line{
  width:40px;
}

.contact-page-sub{
  font-size:14px;
}

/* text */

.contact-page-text{
  gap:24px;
}

.contact-page-text p{
  font-size:14px;
}

/* form */

.contact-page-form-wrap{
  width:100%;

  padding:
  30px
  20px
  40px;
}

/* label */

.form-group label{
  font-size:14px;
}

/* input */

.contact-page-form-wrap input,
.contact-page-form-wrap textarea,
.contact-page-form-wrap select{
  font-size:14px;
}

/* textarea */

.contact-page-form-wrap textarea{
  height:150px;
}

/* submit */

.form-submit input[type="submit"]{
  width:100%;

  height:56px;

  font-size:14px;
}
.consult-table-section{

    padding:70px 0;

}

.consult-table-inner{

    width:94%;

}

.consult-table-head{

    margin-bottom:30px;

}

.consult-table-title{

    font-size:19px;

    line-height:1.6;

}

.consult-table-note{

    position:static;

    text-align:center;

    margin-top:15px;

    font-size:13px;

}

.consult-table-scroll{

    overflow-x:auto;

    overflow-y:hidden;

    -webkit-overflow-scrolling:touch;

    border-radius:14px;

}

/* ←重要 */
.consult-table{

    min-width:1450px;

}

/* ヘッダー */

.consult-table thead th{

    font-size:20px;

    padding:18px 16px;

}

.consult-table thead span{

    font-size:30px;

}

.consult-table thead small{

    font-size:14px;

}

/* 本文 */

.consult-table tbody td{

    padding:16px 18px;

    font-size:18px;

}

.consult-table tbody td:nth-child(2){

    font-size:9px;

}

.consult-table tbody td:nth-child(3){

    font-size:16px;

}

/* 丸 */

.consult-number span{

    width:36px;

    height:36px;

    font-size:18px;

}

/* ● */

.consult-check{

    font-size:30px;

}

    .consult-table-scroll{

        overflow-x:auto;
        overflow-y:hidden;

    }

    .consult-table{

        min-width:1050px;   /* ←1450はデカすぎる */

    }

    .consult-table tbody td:first-child,
    .consult-table thead th:first-child{

        position:sticky;
        left:0;
        z-index:8;

        background:#fff;

    }

    .consult-table tbody td:nth-child(2),
    .consult-table thead th:nth-child(2){

        position:sticky;
        left:60px;

        z-index:7;

        background:#fafaf7;

    }

    .consult-table thead th:first-child,
    .consult-table thead th:nth-child(2){

        background:#738a54;
        color:#fff;

    }
	  .consult-table-scroll{
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    border-radius:14px;
    position:relative;
  }

  .consult-table{
    width:max-content;
    min-width:1100px;
    table-layout:fixed;
    border-collapse:separate;
    border-spacing:0;
    overflow:visible;
  }

  .consult-no{
    width:52px;
  }

  .consult-service{
    width:135px;
  }

  .consult-detail{
    width:280px;
  }

  .consult-plan{
    width:210px;
  }

  .consult-table thead th,
  .consult-table tbody td{
    padding:12px 10px;
    font-size:13px;
    line-height:1.7;
  }

  .consult-table thead th span{
    font-size:22px;
  }

  .consult-table thead th small{
    font-size:11px;
  }

  .consult-table tbody td:nth-child(3){
    font-size:9px;
  }

  .consult-number span{
    width:20px;
    height:20px;
    font-size:10px;
  }

  .consult-check{
    font-size:24px;
  }

  /* NO列固定 */
  .consult-table thead th:first-child,
  .consult-table tbody td:first-child{
    position:sticky;
    left:0;
    z-index:20;
  }

  /* サービス項目列固定 */
  .consult-table thead th:nth-child(2),
  .consult-table tbody td:nth-child(2){
    position:sticky;
    left:52px;
    z-index:19;
  }

  .consult-table thead th:first-child,
  .consult-table thead th:nth-child(2){
    background:#738a54;
    color:#fff;
  }

  .consult-table tbody td:first-child,
  .consult-table tbody td:nth-child(2){
    background:#fafaf7;
  }

}
/* ========================================
PC：タイトルと緑ヘッダーを固定
======================================== */
@media screen and (min-width:768px){
  .consult-table-scroll{
    overflow:visible;
  }
  .consult-table{
    overflow:visible;
    border-collapse:separate;
    border-spacing:0;
  }
  .consult-table-head{
    position:sticky;
    top:85px;
    z-index:101;
    min-height:86px;
    margin-bottom:0;
    padding:18px 0 16px;
    background:#ece7d6;
  }
  .consult-table thead th{
    position:sticky;
    top:171px;
    z-index:100;
    background:#738a54;
  }
}

/* ========================================
SP：タイトルを固定
======================================== */
@media screen and (max-width:767px){
  .consult-table-section{
    position:relative;
    background:#ece7d6;
  }
  .consult-table-head{
    position:sticky;
    top:70px;
    z-index:101;
    min-height:94px;
    margin-bottom:0;
    padding:12px 8px;
    background:#ece7d6;
  }
  .consult-table-title{
    margin:0;
    font-size:17px;
    line-height:1.5;
  }
  .consult-table-note{
    margin-top:7px;
    font-size:11px;
    line-height:1.5;
  }
}
/* ========================================
SP：タイトル＋緑ヘッダーを固定
======================================== */
@media screen and (max-width:767px){

  .consult-table-section{
    position:relative;
    background:#ece7d6;
  }

  /* タイトル固定 */
  .consult-table-head{
    position:sticky;
    top:70px;
    z-index:300;
    min-height:90px;
    margin-bottom:0;
    padding:12px 8px;
    background:#ece7d6;
  }

  .consult-table-title{
    margin:0;
    font-size:17px;
    line-height:1.5;
  }

  .consult-table-note{
    margin-top:6px;
    font-size:11px;
    line-height:1.5;
  }

  /* テーブル領域 */
  .consult-table-scroll{
    position:relative;
    max-height:calc(100vh - 160px);
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    border-radius:14px;
  }

  .consult-table{
    width:max-content;
    min-width:1100px;
    table-layout:fixed;
    border-collapse:separate;
    border-spacing:0;
    overflow:visible;
  }

  /* 緑の見出し行を縦固定 */
  .consult-table thead th{
    position:sticky;
    top:0;
    z-index:200;
    background:#738a54;
  }

  /* NO列を横固定 */
  .consult-table thead th:first-child,
  .consult-table tbody td:first-child{
    position:sticky;
    left:0;
  }

  /* サービス項目列を横固定 */
  .consult-table thead th:nth-child(2),
  .consult-table tbody td:nth-child(2){
    position:sticky;
    left:52px;
  }

  /* 左上の交差部分を最前面へ */
  .consult-table thead th:first-child{
    z-index:260;
  }

  .consult-table thead th:nth-child(2){
    z-index:250;
  }

  .consult-table tbody td:first-child{
    z-index:160;
    background:#fafaf7;
  }

  .consult-table tbody td:nth-child(2){
    z-index:150;
    background:#fafaf7;
  }
  /* 各行の固定高さを完全解除 */
  .consult-table tbody tr{
    height:auto !important;
    min-height:0 !important;
  }

  /* セルの縦余白をかなり縮める */
  .consult-table tbody td{
    height:auto !important;
    min-height:0 !important;
    padding:4px 8px !important;
    line-height:1.35;
  }

  /* サービス項目 */
  .consult-table tbody td:nth-child(2){
    padding-top:4px !important;
    padding-bottom:4px !important;
    line-height:1.4;
  }

  /* 詳細 */
  .consult-table tbody td:nth-child(3){
    padding-top:4px !important;
    padding-bottom:4px !important;
    line-height:1.45;
  }

  /* NO */
  .consult-number{
    padding-top:4px !important;
    padding-bottom:4px !important;
  }

  .consult-number span{
    width:20px;
    height:20px;
    font-size:9px;
  }
	  .consult-table tbody td{
    font-weight:600;
  }

  .consult-table tbody td:nth-child(2){
    font-weight:700;
  }

  .consult-table tbody td:nth-child(3){
    font-weight:600;
  }

  .consult-table thead th{
    font-weight:700;
  }
}




/* ログイン時の管理バー対応 */
body.admin-bar header {
    top: 32px;
}

@media screen and (max-width: 782px) {
    body.admin-bar header {
        top: 46px;
    }
}