/* =========================================================
  Header (PC layout like sample) + SP Fullscreen Menu
========================================================= */
img {
    width: 100%;
}
.ggmap {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    /* 16:9のアスペクト比 */
    height: 0;
}

.ggmap iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
/* コンテナ */
.siteHeader {
    background: url(../img/common/head_bg.png);
    position: relative;
    padding-bottom: 4%;
}
.siteHeader__inner{
  max-width: 1000px;
  margin: 0 auto;
  padding: 10px 18px 14px;
}
.siteHeader_bg1 {
    position: absolute;
    top: 0;
    left: 0;
}
.siteHeader_bg2 {
    position: absolute;
    top: 0;
    right: 0;
}
/* 上段 */
.siteHeader__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.siteHeader__tel{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:#0a6a3a;
  font-weight:700;
  font-size: 26px;
}

.siteHeader__telIcon img{
  width: 26px;
  height: 26px;
  display:block;
}

.siteHeader__sub{
  display:flex;
  align-items:center;
  gap:16px;
}

.siteHeader__subItem{
  text-decoration:none;
  color:#111;
  font-weight:600;
  font-size: 18px;
}
.siteHeader__subItemicon::before {
    content: '';
    display: inline-block;
    width: 14px;
    height: 23px;
    background-image: url(../img/common/icon-flag.png);
    background-size: contain;
    vertical-align: middle;
    margin-right: 0.5em;
}
.siteHeader__subItem--icon img{
  width: 22px;
  height: 22px;
  display:block;
}

/* 下段：中央ロゴ固定 */
.siteHeader__main{
  margin-top: 10px;
  display:grid;
  grid-template-columns: 1fr auto 1fr; /* 左 / ロゴ / 右 */
  align-items:end;
  gap: 18px;
  position: relative;
}

.siteHeader__logo{
  display:block;
  justify-self:center;
  text-decoration:none;
}

.siteHeader__logo img{
  display:block;
  width: 240px; /* お好みで */
  height:auto;
}

/* PCナビ */
.siteHeader__nav{
  display:flex;
  gap: 28px;
}

.siteHeader__nav--left{ justify-content:flex-start; }
.siteHeader__nav--right{ justify-content:flex-end; }

.gNavItem{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  text-decoration:none;
  color:#111;
  min-width: 86px;
}

.gNavItem__icon img{
  width: 34px;
  height: 34px;
  display:block;
}

.gNavItem__label{
  font-weight:700;
  font-size: 14px;
  letter-spacing: .02em;
}

/* SPボタン（右上） */
.siteHeader__cta{
  position:absolute;
  right: 0;
  top: 0;
  display:none; /* SPで表示 */
  gap:10px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 10px 12px;
  border-radius: 12px;
  text-decoration:none;
  font-weight:700;
  border: 0;
}

.btn--access{ background:#f6a11a; color:#fff; }
.btn--menu{ background:#2b8fd6; color:#fff; cursor:pointer; }

/* ===== PC/SP 表示切替 ===== */
@media (min-width: 1024px){
  .siteHeader__cta{ display:none; }
}

@media (max-width: 1023.98px){
  .siteHeader__sub,
  .siteHeader__nav{ display:none; } /* SPは全画面メニューへ */

  .siteHeader__tel{ font-size: 18px; }
  .siteHeader__logo img{ width: 200px; }

  .siteHeader__cta{
    display:flex;
  }
  .siteHeader_bg1 { display:none; }
.siteHeader_bg2 { display:none; }

}

/* =========================================================
  SP Fullscreen Menu (fade + slide)
========================================================= */
.spMenu{
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,.55);

  opacity: 0;
  pointer-events: none;
  transition: opacity .35s cubic-bezier(.4,0,.2,1);
}

.spMenu__inner{
  position:absolute;
  inset: 0;
  background:#fff;
  overflow:auto;
  -webkit-overflow-scrolling: touch;
  padding: 18px 18px 32px;

  transform: translateY(16px);
  transition: transform .35s cubic-bezier(.4,0,.2,1);

  color:#111;
}

.spMenu.is-open{
  opacity: 1;
  pointer-events: auto;
}

.spMenu.is-open .spMenu__inner{
  transform: translateY(0);
}

/* head */
.spMenu__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(0,0,0,.08);
}

.spMenu__title{
  margin:0;
  font-weight:800;
  letter-spacing: .08em;
}

.spMenu__close{
  appearance:none;
  border:0;
  background:transparent;
  font-size: 20px;
  line-height: 1;
  padding: 10px;
  cursor:pointer;
}

/* utility */
.spMenu__utility{
  padding: 16px 0;
  border-bottom: 1px solid rgba(0,0,0,.08);
}

.spMenu__tel{
  display:block;
  font-weight:800;
  font-size: 18px;
  margin-bottom: 10px;
  color:#111;
  -webkit-text-fill-color:#111;
  text-decoration:none;
}

.spMenu__links{
  display:grid;
  gap: 10px;
}

.spMenu__links a{
  display:block;
  padding: 12px;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  color:#111;
  -webkit-text-fill-color:#111;
  text-decoration:none;
}

/* nav */
.spMenu__nav{ padding-top: 16px; }

.spNav{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap: 8px;
}

.spNav__item a{
  display:block;
  width:100%;
  box-sizing:border-box;

  padding: 14px 44px 14px 12px;
  border-radius: 14px;
  background: rgba(0,0,0,.04);

  color:#111;
  -webkit-text-fill-color:#111;
  text-decoration:none;

  font-size: 16px;
  line-height: 1.4;

  position: relative;
}

.spNav__item a::after{
  content: "›";
  position:absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  opacity: .6;
}



/* =========================
  Footer BG / Grass（修正版）
  - 草むら：1回だけ（上）
  - テクスチャ：草むらの下からのみ repeat
  - HTML追加なし（疑似要素で分割）
========================= */
:root{
  --footer-grass-h: 140px;     /* 本footer 草むら高さ */
  --floating-grass-h: 64px;    /* 追従footer 草むら高さ */
}

/* 本体は「背景を持たない」：背景は疑似要素で作る */
.siteFooter,
.floatingFooter{
  position: relative;
  color: #fff;
  overflow: hidden;
  background: none;
}

/* 中身を前面へ */
.siteFooter__inner,
.floatingFooter__inner{
  position: relative;
  z-index: 1;
}

/* 草むら（上に1回だけ） */
.siteFooter::before,
.floatingFooter::before{
  content:"";
  position:absolute;
  left:0; right:0;
  top:0;
  pointer-events:none;
  z-index: 0;

  background: url("../img/common/footer_bg_top.png") no-repeat bottom center;
  background-size: 1920px auto; /* 端が気になるなら cover に */
}

/* 草むら高さ：要素ごとに変える */
.siteFooter::before{
  height: var(--footer-grass-h);
}
.floatingFooter::before{
  height: var(--floating-grass-h);
}

/* テクスチャ（草むらの“下から”だけ開始して repeat） */
.siteFooter::after,
.floatingFooter::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  pointer-events:none;
  z-index: 0;

  background: url("../img/common/footer_bg_main.png") repeat-y top center;
  background-size: 100% auto;
}

/* テクスチャ開始位置：草むら高さ分だけ下げる */
.siteFooter::after{
  top: var(--footer-grass-h);
}
.floatingFooter::after{
  top: var(--floating-grass-h);
}


/* =========================
  本フッター
========================= */
.siteFooter {
    position: relative;
    margin-top: -7%;
}

.siteFooter__inner{
  max-width: 1200px;
  margin: 0 auto;
  padding: calc(var(--footer-grass-h) + 40px) 24px 48px;
}

.siteFooter__nav{
  display: flex;
  gap: 28px;
  flex-wrap: wrap;
  font-weight: 700;
  margin-bottom: 32px;
}

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

.siteFooter__main{
  display: grid;
  grid-template-columns: 1.2fr 1.6fr 1fr;
  gap: 24px;
  align-items: center;
}

.siteFooter__corp{
  margin: 0 0 6px;
  font-weight: 700;
}

.siteFooter__name{
  margin: 0;
  font-size: 32px;
  font-weight: 800;
}

.siteFooter__address{
  margin-bottom: 12px;
  font-weight: 700;
}

.siteFooter__map{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  border: 2px solid #fff;
  border-radius: 999px;
  color: inherit;
  text-decoration: none;
  font-weight: 800;
}

.siteFooter__utility{
  display: flex;
  gap: 16px;
  justify-content: flex-end;
  align-items: center;
}

.siteFooter__utility a{
  color: inherit;
  text-decoration: none;
  font-weight: 800;
}

.siteFooter__copy{
  margin-top: 32px;
  font-size: 12px;
  opacity: .85;
  text-align: right;
}

/* SP */
@media (max-width: 900px){
  :root{
    --footer-grass-h: 110px;
    --floating-grass-h: 56px; /* SPで追従消しててもOK */
  }

  .siteFooter__inner{
    padding: calc(var(--footer-grass-h) + 28px) 16px 36px;
  }

  .siteFooter__main{
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .siteFooter__utility{
    justify-content: flex-start;
  }

  .siteFooter__copy{
    text-align: left;
  }
}


/* =========================
  追従フッター（PC）
========================= */
.floatingFooter{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 999;

  opacity: 0;
  transform: translateY(100%);
  pointer-events: none;
  transition: opacity .25s ease, transform .25s ease;
}

.floatingFooter.is-show{
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.floatingFooter__inner{
  max-width: 1200px;
  margin: 0 auto;
  padding: calc(var(--floating-grass-h) + 10px) 24px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.floatingFooter__nav{
  display: flex;
  gap: 22px;
  font-weight: 800;
}

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

.floatingFooter__right{
  display: flex;
  align-items: center;
  gap: 14px;
}

.floatingFooter__tel{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: inherit;
  text-decoration: none;
  font-weight: 900;
}

.floatingFooter__tel img{
  width: 18px;
}

.floatingFooter__top{
  border: 2px solid #fff;
  background: transparent;
  color: inherit;
  border-radius: 999px;
  padding: 8px 14px;
  font-weight: 900;
  cursor: pointer;
}

/* SPは追従フッター非表示 */
@media (max-width: 900px){
  .floatingFooter{ display: none; }
}


/* TOP MV */
.topMv{
  /* ここは緑テクスチャに合わせる */
  background: url("../img/common/head_bg.png") repeat;
  padding: 18px 0 ０;
}

.topMv__wrap{
  margin: 0 auto;
  position: relative;
}

.topMv__img{
  width: 100%;
  height: auto;
  display: block; /* 四角のまま */
}

/* 上をアーチに見せる“ふた” */
.topMv__arch{
  position: absolute;
  left: 16px;
  right: 16px;
  top: 0;
  height: 120px;

  /* topMv と同じ背景を敷く（継ぎ目消し） */
  background: url("../img/common/head_bg.png") repeat;

  border-radius: 0 0 260px 260px;
  pointer-events: none;
  z-index: 2;
}
/* TOP goal */
section#top_goal {
    background: url(../img/index/goal_bg.png) no-repeat bottom center;
    padding: 3% 0 10%;
    background-size: cover;
}
.top_goal_box {
    display: flex;
    flex-wrap: wrap;
}
p.top_goal_no {
    width: 13%;
}
dl.top_goal_dl {
    width: 75%;
}
dt.top_goal_dt {
    width: 60%;
}
dd.top_goal_dd {
    margin: 0 2%;
    font-size: 22px;
    line-height: 1.4em;
}
@media (min-width: 768px){
.top_goal_inner {
    max-width: 1100px;
    margin: 0 auto;
}
}

dl.about_ttl_dl {
    text-align: center;
}
dt.about_ttl_dt {
    width: 50%;
    display: block;
    margin: 0 auto 2%;
}
dd.about_ttl_dd {
    font-size: 30px;
    margin: 0 auto 5%;
}
ul.top_about_ul {
    display: flex;
    flex-wrap: wrap;
    width: 90%;
    margin: 0 auto;
    justify-content: space-between;
}
li.top_about_li {
    /* display: flex; */
    /* flex-wrap: wrap; */
    width: 49%;
    margin-bottom: 5%;
}
li.top_about_li:nth-child(even){
  margin-top: 35px; /* 好きな値に */
}
dd.top_about_li_dd {
    margin: 0 auto;
    text-align: center;
    font-size: 19px;
}

@media (min-width: 768px){
.top_about_inner {
    max-width: 1100px;
    margin: 0 auto;
}
dt.about_ttl_dt {
    width: 25%;
    display: block;
    margin: 0 auto 2%;
}
dd.about_ttl_dd {
    font-size: 34px;
    margin: 0 auto 5%;
}
li.top_about_li {
    /* display: flex; */
    /* flex-wrap: wrap; */
    width: 23%;
    margin-bottom: 5%;
}
li.top_about_li:nth-child(even){
  margin-top: inherit; /* 好きな値に */
}
li.top_about_li:nth-child(2),
  li.top_about_li:nth-child(3){
    margin-top: 45px; /* 調整したい高さ */
  }
}

/* TOP access */
section#top_access {
    background: url(../img/index/top_access_bg.png) no-repeat top center;
    padding: 3% 0 10%;
    background-size: cover;
}
.top_access_inner {
    max-width: 1100px;
    margin: 0 auto;
        padding-top: 7%;
}
h3.top_access_head2 {
    text-align: center;
    margin-bottom: 5%;
}
.top_access_infobox {
    display: flex;
}

@media (min-width: 768px){
      .top_access_infobox {
        display: flex;
        flex-wrap: wrap;
        
        justify-content: space-between;
        margin-bottom: 10%;
    }
  .top_access_infobox.revrow {
    flex-direction: row-reverse;
    }
    .top_access_infobox .ggmap {
        width: 48%;
    }
    .top_access_info {
    width: 48%;
}
dl.top_access_info_dl {
    border-bottom: solid 1px;
}
dl.top_access_info_dl {
    border-bottom: solid 1px;
    display: flex;
}
dt.top_access_info_dt {
    width: 15%;
    margin-right: 4%;
}
dd.top_access_info_dd {
    margin: 0;
}
p.top_access_img {
    width: 48%;
}
dl.top_access_info_dl2 {
    display: flex;
}
}