/* ============================
body.home
---------------------------- */
body.home section:first-child {
  padding-top: 0;
}

/* ============================
body.single
---------------------------- */
body.single section:first-child {
  padding-top: 12.8rem;
}
/*
body.single header nav {
  display: none;
}
*/

/* ============================
mv
---------------------------- */
#mv {}
#mv .inner {
  overflow: hidden;
}
#mv .inner img {
  width: 100%;
}

/* ============================
map
---------------------------- */
#map {
  position: relative;
}
#map h2 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 30rem;
  pointer-events: none;
  background-image: url(../img/ttl-map.svg);
  background-position: center center;
  background-repeat: no-repeat;
  z-index: 1;
  text-align: center;
  font-family: "Darumadrop One";
  font-size: 4.8rem;
  font-style: normal;
  line-height: 130%; /* 6.24rem */
  letter-spacing: 0.288rem;
}
#map h2 .col_g {
  color: #469559;
}
#map h2 .col_y {
  color: #EEB141;
}
#map h2 .col_b {
  color: #5AA2B7;
}

#map .map-cnt {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--radius);
  margin-top: 14.4rem;
}
#map .map-cnt .map-btn {
  position: absolute;
  bottom: 0.4rem;
  right: 0.4rem;
  z-index: 1;
  gap: 0.4rem;
  display: none;
}
#map .map-cnt .map-btn button {
  width: 6rem;
  border-radius: 10rem;
  border: none;
  font-size: 1.2rem;
  font-weight: 500;
  transition: all 0.3s ease;
  background-color: #F0F0F0;
  border: 0.2rem solid #F0F0F0;
}
#map .map-cnt .map-btn button.active {
  background-color: #FFFFFF;
  color: #CC0000;
  border: 0.2rem solid #CC0000;
}

#map .map-cnt .map-msk {
  position: relative;
  width: 100%;
  height: 100%;
  user-select: none;
  cursor: grab;
  overflow: scroll;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
#map .map-cnt .map-msk .map-img {
  position: relative;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  overflow: hidden;
}
/*
body.home #map .map-cnt .map-msk .map-img {
  background-image: url(../img/map.webp);
}
*/
#map .map-cnt .map-msk.map-work .map-img {
  background-image: url(../img/work-map.webp);
}
#map .map-cnt .map-msk.map-rally .map-img {
  background-image: url(../img/rally-map.webp);
}
#map .map-cnt .map-msk .map-img.x1 {
  width: calc(100% * 1);
  padding-top: calc(56.25% * 1);
  cursor: default;
}
#map .map-cnt .map-msk .map-img.x1_25 {
  width: calc(100% * 1.25);
  padding-top: calc(56.25% * 1.25);
}
#map .map-cnt .map-msk .map-img.x1_5 {
  width: calc(100% * 1.5);
  padding-top: calc(56.25% * 1.5);
}
#map .map-cnt .map-msk .map-img.x1_75 {
  width: calc(100% * 1.75);
  padding-top: calc(56.25% * 1.75);
}
#map .map-cnt .map-msk .map-img.x2 {
  width: calc(100% * 2);
  padding-top: calc(56.25% * 2);
}
#map .map-cnt .map-msk .map-img .marker {
  position: absolute;
  width: 1.475%; /* フォールバック。実座標/サイズは inc がインラインstyleで left/top/width を出力（map-pins-work.php 由来） */
  aspect-ratio: 1 / 1;
  transform: translate(-50%, -50%); /* left/top をピン白丸の中心に合わせる（中心基準） */
  z-index: 1;
}
#map .map-cnt .map-msk .map-img .marker .shop-id {
  width: 100%;
  aspect-ratio: 1 / 1;
  font-size: 1.4rem;
  font-size: 0;
  /*
  font-weight: var(--ExtraBold);
  text-align: center;
  line-height: 2.0rem;
  color: #EA3928;
  background-color: #FFFFFF;
  */
  border-radius: 50%;
  border: 3px solid #EA3928;
  cursor: pointer;
  transition: all 0.3s ease;
  overflow: visible;
  opacity: 0;/* ← 座標設定したら0に戻す */
  /* opacity: 1;*/ /*← 座標確認したいなら1に戻す */
}
#map .map-cnt .map-msk .map-img .marker.not-active .shop-id {
  opacity: 0;
}
#map .map-cnt .map-msk .map-img .marker.active:hover .shop-id {
  opacity: 0;
  /* transform: scale(1.15); */
}

#map .map-cnt .map-msk .map-img .marker .shop-name {
  position: relative;
  opacity: 0;
  margin-top: -7rem;
  padding: 0.5rem;
  z-index: 2;
  width: 12rem;
  width: 24rem;
  /* height: 4rem; */
  margin-left: -5rem;
  margin-left: -11rem;
  background-color: #FFFFFF;
  border-radius: 1.4rem;
  pointer-events: none;
  overflow: visible;
  font-size: 1.2rem;
  font-weight: 500;
  text-align: center;
  /* line-height: calc(4rem - 0.4rem); */
  filter: drop-shadow(5px 5px 3px rgba(0,0,0,0.4));
  transition: all 0.5s;
}
#map .map-cnt .map-msk .map-img .marker:hover .shop-name {
  margin-top: -7rem;
  animation: poyoyon 0.5s ease-in-out forwards;
}
@keyframes poyoyon {
  0%  {
    transform: scale(1.0, 1.0) translate(0, 0);
    opacity: 0;
  }
  15% {
    transform: scale(0.98, 0.9) translate(0, 5px);
    opacity: 0.25;
  }
  30% {
    transform: scale(1.02, 1.0) translate(0, 8px);
    opacity: 0.5;
  }
  50% {
    transform: scale(0.98, 1.05) translate(0, -8px);
    opacity: 1;
  }
  70% {
    transform: scale(1.0, 0.9) translate(0, 5px);
    opacity: 1;
  }
  100% {
    transform: scale(1.0, 1.0) translate(0, 0);
    opacity: 1;
  }
}

/*
#map .map-cnt .map-msk .map-img .marker::before,
*/
#map .map-cnt .map-msk .map-img .marker .shop-name::before {
  content: "";
  position: absolute;
  border: 0.8rem solid transparent;
  border-top: 0.75rem solid #FFFFFF;
  width: 0;
  height: 0;
  top: 98%;
  left: 50%;
  transform: translateX(-50%);
  filter: drop-shadow(5px 5px 3px rgba(0,0,0,0.4));
}

/* 個別マーカー座標(旧・手打ち data-shop-id[N]) は廃止。座標は map-pins-work.php を inc がインラインstyleで left/top/width 出力（中心基準 translate(-50%,-50%)）。 */

@media screen and (max-width: 1280px) {
  #map h2 {
    top: 12.0rem;
    height: 13.0rem;
    background-size: contain;
    font-size: 2.4rem;
    letter-spacing: 0.144rem;
  }
}

@media screen and (max-width: 1079px) {
  #map h2 {
    top: 3.0rem;
  }
  #map .map-cnt {
    aspect-ratio: 1 / 1;
    margin-top: 4rem;
  }
  #map .map-cnt .map-btn {
    display: none;
  }
  #map .map-cnt .map-msk .map-img.x1,
  #map .map-cnt .map-msk .map-img.x1_25,
  #map .map-cnt .map-msk .map-img.x1_5,
  #map .map-cnt .map-msk .map-img.x1_75,
  #map .map-cnt .map-msk .map-img.x2 {
    width: calc(100% * 4);
    padding-top: calc(56.25% * 4);
  }
  #map .map-cnt .map-msk .map-img .marker {
    /* background-color: #EA3928; */
  }
}

@media screen and (max-width: 767px) {
  #map .map-cnt .map-msk .map-img .marker .shop-name {
    display: none;
  }
}

/* ============================
news
---------------------------- */
#news {
}
#news .news-cnt {
  position: relative;
  width: 100%;
  height: 17.375em;/* 278px */
  padding: 0 12rem;
  overflow: visible;
}
#news .news-cnt .news-msk {
  position: relative;
  width: 100%;
  height: 100%;
  padding: 3.6rem 10rem 3.6rem 15rem;
  border-radius: var(--radius);
  border: 0.4rem solid rgba(70, 149, 89, 1);
  background-color: #FFFFFF;
  box-shadow: 1.5rem 1.5rem 0 0 rgba(70, 149, 89, 0.5);
}
#news .news-cnt .news-msk::before {
  content: "";
  position: absolute;
  top: -6rem;
  left: 0;
  width: 26.0rem;
  height: 16.1rem;
  background-image: url(../img/ico_news.svg);
  background-position: top center;
  background-repeat: no-repeat;
  background-size: contain;
  pointer-events: none;
}
#news .news-cnt .news-msk .news-lst {
  width: 100%;
  height: 100%;
  overflow-y: scroll;
}
#news .news-cnt .news-msk .news-lst li {
  gap: 4.0rem;
  padding-top: 2.0rem;
  padding-bottom: 2.0rem;
  border-bottom: 0.1rem solid #DEDEDE;
}
#news .news-cnt .news-msk .news-lst li:last-child {
  border-bottom: none;
}
#news .news-cnt .news-msk .news-lst li .news-dat {
  color: #999999;
  font-size: 1.8rem;
  font-weight: var(--Bold);
  line-height: normal;
}
#news .news-cnt .news-msk .news-lst li .news-ttl a {
  display: block;
  color: #333333;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 1.8rem;
  font-weight: var(--Bold);
  line-height: normal;
}

@media screen and (max-width: 1280px) {
  #news .news-cnt {
    padding: 0 2.5%;
    aspect-ratio: 16 / 9;
  }
  #news .news-cnt .news-msk {
    padding: 3.6rem 1.6rem 1.6rem 1.6rem;
  }
  #news .news-cnt .news-msk::before {
    width: 12.0rem;
    height: 8.0rem;
  }
  #news .news-cnt .news-msk .news-lst li {
    gap: 0.8rem;
  }
}

@media screen and (max-width: 1079px) {
  #news .news-cnt .news-msk .news-lst div {
    width: 100%;
  }
}


/* ============================
about
---------------------------- */
/* common */

#about .inner.lets,
#about .inner.get,
#about .inner.stamp {
  max-width: 120rem;
  margin-bottom: 6.5rem;
  border-radius: var(--radius);
  position: relative;
}

#about .inner.lets {
  box-shadow: 1.5rem 1.5rem 0 0 rgba(87, 162, 183, 0.5);
}
#about .inner.get {
  box-shadow: 1.5rem 1.5rem 0 0 rgba(238, 177, 65, 0.5);
}
#about .inner.stamp {
  box-shadow: 1.5rem 1.5rem 0 0 rgba(71, 149, 89, 0.5);
}

/* about-header */
#about .inner .about-header {
  height: 12rem;
  color: #FFFFFF;
  border-top-left-radius: var(--radius);
  border-top-right-radius: var(--radius);
  position: relative;
  z-index: 1;
}
#about .inner .top.about-header {
  height: 18rem;
}
#about .inner .about-header::before,
#about .inner .about-header::after {
  content: "";
  position: absolute;
  width: 2.4rem;
  aspect-ratio: 1 / 1;
  top: 50%;
  transform: translateY(-50%);
  background-color: #FFF3DE;
  border-radius: 50%;
  z-index: 1;
}
#about .inner .about-header::before {
  left: 6rem;
}
#about .inner .about-header::after {
  right: 6rem;
}

#about .inner.lets .about-header {
  background-color: #5AA2B7;
}
#about .inner.get .about-header {
  background-color: #EEB141;
}
#about .inner.stamp .about-header {
  background-color: #479559;
}

#about .inner .about-header .dai1,
#about .inner .about-header .dai2,
#about .inner .about-header .dai3 {
  position: absolute;
  left: 12.4rem;
  padding: 0 2.0rem;
  border-radius: 4.0rem;
  background-color: #FFFFFF;
  top: 50%;
  transform: translateY(-50%);
  text-align: center;
  font-family: var(--DarumadropOne);
  font-size: 4.8rem;
  line-height: normal;
  letter-spacing: 0.288rem;
  z-index: 1;
}
#about .inner .about-header .dai1 ruby,
#about .inner .about-header .dai2 ruby,
#about .inner .about-header .dai3 ruby {
  font-family: var(--ZenMaruGothic);
  font-size: 3rem;
  font-style: normal;
  font-weight: 900;
  line-height: normal;
  letter-spacing: 0.18rem;
}
#about .inner .about-header .dai1 ruby rt,
#about .inner .about-header .dai2 ruby rt,
#about .inner .about-header .dai3 ruby rt {
/*
  font-size: 1rem;
  font-weight: var(--Bold);
  line-height: 100%;
  letter-spacing: -0.1rem;
*/
}

#about .inner .about-header .dai1 {
  color: #5AA2B7;
}
#about .inner .about-header .dai2 {
  color: #EEB141;
}
#about .inner .about-header .dai3 {
  color: #479559;
}

#about .inner .about-header .ico1,
#about .inner .about-header .ico2,
#about .inner .about-header .ico3 {
  position: absolute;
  width: 16.2rem;
  right: 10.4rem;
  aspect-ratio: 1 / 1;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
}

#about .inner .about-header .ico1 img,
#about .inner .about-header .ico2 img,
#about .inner .about-header .ico3 img {
  width: 100%;
}

#about .inner .about-header h3 {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-family: var(--DarumadropOne);
  color: #FFF;
  font-size: 4.8rem;
  letter-spacing: 0.288rem;
  white-space: nowrap;
}

#about .inner .about-header h3 ruby {
  font-family: var(--ZenMaruGothic);
  font-size: 3.8rem;
  font-weight: var(--Black);
  line-height: 130%;
  letter-spacing: 0.228rem;
}

#about .inner .about-header h3 .atent {
  display: block;
  font-family: var(--ZenMaruGothic);
  font-size: 1.4rem;
  font-weight: var(--Black);
  line-height: 130%;
  letter-spacing: 0.168rem;
}

#about .inner .about-header h3 .atent ruby {
  font-size: 1.4rem;
}

@media screen and (max-width: 1219px) {
  #about {
    padding: 0 2.5%;
  }
  #about .inner .about-header {
    height: 10rem;
  }
  #about .inner .about-header .dai1,
  #about .inner .about-header .dai2,
  #about .inner .about-header .dai3 {
    left: 8.0rem;
    padding: 0 1.2rem;
    border-radius: 4.0rem;
    font-size: 2.0rem;
    letter-spacing: 0.12rem;
  }
  #about .inner .about-header .dai1 ruby,
  #about .inner .about-header .dai2 ruby,
  #about .inner .about-header .dai3 ruby {
    font-size: 1.4rem;
    letter-spacing: 0.084rem;
  }
  #about .inner .about-header .ico1,
  #about .inner .about-header .ico2,
  #about .inner .about-header .ico3 {
    position: absolute;
    width: 11.0rem;
    right: 8.0rem;
  }
  #about .inner .about-header::before {
    left: 3rem;
  }
  #about .inner .about-header::after {
    right: 3rem;
  }
}

@media screen and (max-width: 1100px) {
  #about .inner .about-header h3 {
    font-size: 3.0rem;
    letter-spacing: 0.18rem;
  }
  #about .inner .about-header h3 ruby {
    font-size: 2.8rem;
    letter-spacing: 0.168rem;
  }
}

@media screen and (max-width: 884px) {
  #about .inner .top.about-header {
    height: 16rem;
  }
  #about .inner .btns .btn .dai1,
  #about .inner .btns .btn .dai2,
  #about .inner .about-header .dai1,
  #about .inner .about-header .dai2,
  #about .inner .about-header .dai3 {
    top: 0;
    /* left: 50%;*/
    transform: translate(-50%, -50%);
    padding: 0 1.2rem;
    border-radius: 4.0rem;
    font-size: 2.0rem;
    letter-spacing: 0.12rem;
  }
  #about .inner .about-header .dai1 {
    border: 0.2rem solid #5AA2B7;
  }
  #about .inner .about-header .dai2 {
    border: 0.2rem solid #EEB141;
  }
  #about .inner .about-header .dai3 {
    border: 0.2rem solid #479559;
  }
  #about .inner .btns .btn .dai1 ruby,
  #about .inner .btns .btn .dai2 ruby,
  #about .inner .about-header .dai1 ruby,
  #about .inner .about-header .dai2 ruby,
  #about .inner .about-header .dai3 ruby {
    font-size: 1.4rem;
    letter-spacing: 0.084rem;
  }
  #about .inner .about-header .ico1,
  #about .inner .about-header .ico2,
  #about .inner .about-header .ico3 {
    top: 0;
    right: 1.2rem;
    width: 9.0rem;
  }
  #about .inner .about-header::before,
  #about .inner .about-header::after {
    width: 1.2rem;
  }
}

@media screen and (max-width: 390px) {
  #about .inner .about-header .dai1,
  #about .inner .about-header .dai2,
  #about .inner .about-header .dai3 {
    padding: 0 0.8rem;
    border-radius: 4.0rem;
    font-size: 1.8rem;
    letter-spacing: 0.12rem;
  }
  #about .inner .about-header .dai1 ruby,
  #about .inner .about-header .dai2 ruby,
  #about .inner .about-header .dai3 ruby {
    font-size: 1.2rem;
    letter-spacing: 0.072rem;
  }
  #about .inner .about-header .ico1,
  #about .inner .about-header .ico2,
  #about .inner .about-header .ico3 {
    width: 7.0rem;
  }
}

/* about-cnt */
#about .inner .about-cnt {
  width: 100%;
  padding: 4rem 6rem 6rem 6rem;
  background-color: #FFFFFF;
  border-bottom-left-radius: var(--radius);
  border-bottom-right-radius: var(--radius);
  position: relative;
  z-index: 0;
}

#about .inner.lets .about-cnt {
  background-image:
  url(../img/bg_lets01.svg),
  url(../img/bg_lets02.svg);
  background-repeat:
  no-repeat,
  no-repeat;
  background-position:
  right 13.572rem bottom 20.3rem,
  right 6.0rem bottom 5.8rem;
}
#about .inner.get .about-cnt {
  background-image:
  url(../img/bg_get01.svg),
  url(../img/bg_get02.svg);
  background-repeat:
  no-repeat,
  no-repeat;
  background-position:
  right 6.0rem bottom 6.0rem,
  right 11.4rem bottom 13.2rem;
}
#about .inner.stamp .about-cnt {
  background-image:
  url(../img/bg_stamp01.svg),
  url(../img/bg_stamp02.svg);
  background-repeat:
  no-repeat,
  no-repeat;
  background-position:
  right 11.5rem bottom 16.7rem,
  right 6.0rem bottom 6.0rem;
}

#about .inner .about-cnt h3 {
  margin-top: 3.4rem;
  margin-bottom: 2.5rem;
  font-size: 2.4rem;
  font-weight: var(--Black);
  line-height: 160%;
  gap: 1.2rem;
}
#about .inner .about-cnt h3.ttl2 {
  font-family: var(--DarumadropOne);
  margin-top: 6rem;
  font-size: 4.8rem;
  line-height: normal;
  letter-spacing: 0.288rem;
}
@media screen and (max-width: 1280px) {
  #about .inner .about-cnt h3.ttl2 {
    font-size: 3.8rem;
  }
}
@media screen and (max-width: 768px) {
  #about .inner .about-cnt h3.ttl2 {
    font-size: 2.8rem;
  }
}
#about .inner .about-cnt h4 {
  color: #5AA2B7;
  margin-top: 2.7rem;
  gap: 0.8rem;
}
#about .inner .about-cnt h4 .num {
  font-family: "Darumadrop One";
  font-size: 4rem;
  line-height: 160%;
}
#about .inner .about-cnt h4 .txt {
  font-size: 2.2rem;
  font-weight: var(--Black);
  line-height: 160%;
}
#about .inner .about-cnt .about-lead {
  gap: 2.0rem;
}
#about .inner .about-cnt .about-lead::before,
#about .inner .about-cnt .about-lead::after {
  content: "";
  display: block;
  width: 9.1rem;
  height: 10.5rem;
}
#about .inner .about-cnt .about-lead::after {
  background-image: url(../img/bg_about-lead.svg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
}
#about .inner .about-cnt p {
  font-size: 2rem;
  font-style: normal;
  font-weight: var(--Bold);
  line-height: 200%;
}
#about .inner .about-cnt p small {
  font-size: 1.5rem;
}
#about .inner .about-cnt p a.btn {
  display: inline-block;
  padding: 1.0rem 2.0rem;
  margin-top: 4.0rem;
  background-color: #5AA2B7;
  color: #FFFFFF;
  border-radius: 50px;
  text-align: center;
  text-decoration: none;
  transition: all 0.3s ease;
}
#about .inner .about-cnt p a.btn:hover {
  background-color: #EEB141;
}
#about .inner .about-cnt p a.lnk {
  text-decoration: underline;
  color: #5AA2B7;
  transition: all 0.3s ease;
  display: inline-block;
}
#about .inner .about-cnt p a.lnk:hover {
  color: #EEB141;
}

@media screen and (max-width: 1280px) {
  #about .inner .about-cnt p {
    font-size: 1.6rem;
  }
  #about .inner.lets .about-cnt {
    background-position:
    left 6.0rem bottom 5.8rem,
    right 6.0rem bottom 5.8rem;
    padding: 4rem 1.6rem 22.5rem 1.6rem;
  }
  #about .inner.get .about-cnt {
    background-position:
    left 6.0rem bottom 5.8rem,
    right 6.0rem bottom 5.8rem;
    padding: 4rem 1.6rem 18rem 1.6rem;
  }
  #about .inner.stamp .about-cnt {
    background-position:
    left 6.0rem bottom 5.8rem,
    right 6.0rem bottom 5.8rem;
    padding: 4rem 1.6rem 18rem 1.6rem;
  }
}

@media screen and (max-width: 767px) {
  #about .inner .about-cnt .about-lead {
    display: block;
  }
  #about .inner .about-cnt .about-lead::before {
    display: none;
  }
  #about .inner .about-cnt .about-lead::after {
    margin: 2.0rem auto 0 auto;
  }
}

/* about-nxt */
#about .inner .about-nxt {
  position: absolute;
  bottom: -5.4rem;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
}
#about .inner .about-nxt img {
  margin-left: auto;
  margin-right: auto;
}

/* exp */
#about .inner.exp {
  max-width: 120rem;
  margin-bottom: 6.5rem;
}
#about .inner.exp .exp-cnt {
  position: relative;
  width: 100%;
  height: 100%;
  padding: 5rem 6rem;
  border-radius: var(--radius);
  border: 0.4rem solid rgba(70, 149, 89, 1);
  background-color: #FFFFFF;
  box-shadow: 1.5rem 1.5rem 0 0 rgba(70, 149, 89, 0.5);
}

#about .inner.exp .exp-cnt .exp-txt {
}
#about .inner.exp .exp-cnt .exp-txt h3 {
  margin-bottom: 3.0rem;
  padding: 1rem;
  color: #FFFFFF;
  font-size: 3rem;
  font-weight: var(--Black);
  line-height: normal;
  letter-spacing: 0.18rem;
  text-align: center;
  background-color: #479559;
  border-radius: 50px;
}
#about .inner.exp .exp-cnt .exp-txt h4 {
  margin-bottom: 1.0rem;
  color: #479559;
  font-size: 2.2rem;
  font-weight: var(--Black);
  line-height: 160%;
  letter-spacing: 0.132rem;
}
#about .inner.exp .exp-cnt .exp-txt p {
  margin-bottom: 5.0rem;
  font-size: 1.8rem;
  font-weight: var(--Bold);
  line-height: 200%;
}
#about .inner.exp .exp-cnt .exp-txt ul {
  margin-bottom: 5.0rem;
  padding-left: 1.0rem;
  font-size: 1.8rem;
  list-style: disc;
}
#about .inner.exp .exp-cnt .exp-txt ul li {
  font-weight: var(--Bold);
  line-height: 200%;
}
#about .inner.exp .exp-cnt .exp-txt ul li.att {
  color: #990000;
}
#about .inner.exp .exp-cnt .exp-txt ul:last-child {
  margin-bottom: 0;
}
#about .inner.exp .exp-cnt .exp-box {
  gap: 4.0rem;
}
#about .inner.exp .exp-cnt .exp-box .exp-lst {
  width: 80.8rem;
}
#about .inner.exp .exp-cnt .exp-box .exp-img {
  width: 22.4rem;
  margin-top: -6.0rem;
}
#about .inner.exp .exp-cnt p a.lnk {
  text-decoration: underline;
  color: #5AA2B7;
  transition: all 0.3s ease;
}
#about .inner.exp .exp-cnt p a.lnk:hover {
  color: #EEB141;
}

@media screen and (max-width: 1280px) {
  #about .inner.exp .exp-cnt {
    padding: 1.6rem 1.6rem;
  }
  #about .inner.exp .exp-cnt .exp-txt h3 {
    font-size: 2.0rem;
    letter-spacing: 0.12rem;
  }
  #about .inner.exp .exp-cnt .exp-txt h4 {
    font-size: 1.8rem;
    letter-spacing: 0.108rem;
  }
  #about .inner.exp .exp-cnt .exp-txt p {
    font-size: 1.6rem;
  }
  #about .inner.exp .exp-cnt .exp-txt ul {
    font-size: 1.6rem;
  }
  #about .inner.exp .exp-cnt .exp-txt ul {
    padding-left: 1.6rem;
  }

  #about .inner.exp .exp-cnt .exp-box .exp-lst {
    width: 100%;
  }
  #about .inner.exp .exp-cnt .exp-box .exp-img {
    width: 100%;
    margin-bottom: 5.0rem;
  }
  #about .inner.exp .exp-cnt .exp-box .exp-img img {
    margin: 0 auto;
  }
}

/* 2026ver */
#about .inner {
  position: relative;
}
#about .inner .btns {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  max-width: 120rem;
  margin: 0 auto 6.5rem auto;
}
@media screen and (max-width: 767px) {
  #about .inner .btns {
    flex-direction: column;
    gap: 4.0rem;
  }
}
#about .inner .btns .btn {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  gap: 1.0rem;
  width: 48%;
  border-radius: var(--radius);
  position: relative;
  color: #FFFFFF;
  padding: 4.8rem 0;
  transition: all 0.3s ease;
}
@media screen and (max-width: 767px) {
  #about .inner .btns .btn {
    width: 100%;
  }
}
#about .inner .btns .btn:hover {
  transform: translate(0.3rem, -0.3rem);
}
#about .inner .btns .btn .ttl {
  font-family: var(--DarumadropOne);
  font-size: 4.8rem;
  letter-spacing: 0.288rem;
  white-space: nowrap;
}
#about .inner .btns .btn .period {
  font-size: 2.0rem;
  letter-spacing: 0.288rem;
  font-weight: var(--Bold);
  letter-spacing: -0.08rem;
}
#about .inner .btns .btn .period .num {
  font-family: var(--DarumadropOne);
  font-size: 4.0rem;
  font-weight: normal;
  letter-spacing: 0.288rem;
}

#about .inner .btns .lsts.btn {
  background-color: #5AA2B7;
  box-shadow: 1.5rem 1.5rem 0 0 rgba(87, 162, 183, 0.5);

  background-image:
    url(../img/bg_lets01.svg),
    url(../img/bg_lets02.svg);
  background-repeat:
    no-repeat,
    no-repeat;
  background-position:
    left 2.0rem bottom 2.0rem,
    right 2.0rem bottom 2.0rem;
}
#about .inner .btns .get.btn {
  background-color: #EEB141;
  box-shadow: 1.5rem 1.5rem 0 0 rgba(238, 177, 65, 0.5);
  background-image:
    url(../img/bg_get01.svg),
    url(../img/bg_get02.svg);
  background-repeat:
    no-repeat,
    no-repeat;
  background-position:
    left 4.0rem bottom 2.0rem,
    right 2.0rem bottom 2.0rem;
}
#about .inner .btns .btn .dai1,
#about .inner .btns .btn .dai2 {
  position: absolute;
  top: -3.0rem;
  left: -3.0rem;
  padding: 0 2.0rem;
  border-radius: 4.0rem;
  background-color: #FFFFFF;
  text-align: center;
  font-family: var(--DarumadropOne);
  font-size: 4.8rem;
  line-height: normal;
  letter-spacing: 0.288rem;
  z-index: 1;
}
#about .inner .btns .btn .dai1 {
  color: #5AA2B7;
  border: 0.2rem solid #5AA2B7;
}
#about .inner .btns .btn .dai2 {
  color: #EEB141;
  border: 0.2rem solid #EEB141;
}
#about .inner .btns .btn .dai1 ruby,
#about .inner .btns .btn .dai2 ruby {
  font-family: var(--ZenMaruGothic);
  font-size: 3rem;
  font-style: normal;
  font-weight: 900;
  line-height: normal;
  letter-spacing: 0.18rem;
}
#about .inner .btns .btn .lbl {
  padding: 0.5rem 2.0rem;
  font-size: 2.0rem;
  font-weight: var(--Bold);
  background-color: #FFFFFF;
  border-radius: 4.0rem;
}
#about .inner .btns .lsts.btn .lbl {
  color: #5AA2B7;
}
#about .inner .btns .get.btn .lbl {
  color: #EEB141;
}
@media screen and (max-width: 1219px) {
  #about {
    padding: 6rem 2.5%;
  }
  #about .inner .about-header {
    height: 10rem;
  }
  #about .inner .btns .btn .ttl {
    font-size: 3.6rem;
  }
  #about .inner .btns .btn .dai1,
  #about .inner .btns .btn .dai2 {
    top: -2.0rem;
  }
  #about .inner .btns .btn .dai1,
  #about .inner .btns .btn .dai2 {
    left: 3.0rem;
    padding: 0 1.2rem;
    border-radius: 4.0rem;
    font-size: 2.0rem;
    letter-spacing: 0.12rem;
  }
  #about .inner .btns .btn .dai1 ruby,
  #about .inner .btns .btn .dai2 ruby{
    font-size: 1.4rem;
    letter-spacing: 0.084rem;
  }
}
@media screen and (max-width: 960px) {
  #about .inner .btns .btn .ttl {
    font-size: 2.4rem;
  }
  #about .inner .btns .btn .period {
    font-size: 1.6rem;
  }
  #about .inner .btns .btn .period .num {
    font-size: 3.0rem;
  }
}
@media screen and (max-width: 884px) {
  #about .inner .btns .btn .dai1,
  #about .inner .btns .btn .dai2 {
    top: 0;
    left: 6.0rem;
  }
}
@media screen and (max-width: 767px) {
  #about .inner .btns .btn .ttl {
    font-size: 3.0rem;
  }
  #about .inner .about-header h3 {
    font-size: 2.0rem;
    letter-spacing: 0.18rem;
  }
  #about .inner .about-header h3 ruby {
    font-size: 2.0rem;
    letter-spacing: 0.168rem;
  }
  body.work-experience #about .inner .about-header h3,
  body.sticker-rally #about .inner .about-header h3 {
    font-size: 3.0rem;
    letter-spacing: 0.18rem;
  }
}



/* ============================
shop-detail
---------------------------- */
#shop-detail {
  position: fixed;
  /* width: calc(100vw / 3); */
  width: 50rem;
  height: 98dvh;
  bottom: 0;
  right: -50rem;
  z-index: 10200;
  border-top-left-radius: var(--radius);
  background-color: #469559;
  transition: all 0.3s ease;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  #shop-detail {
    width: 95vw;
    right: -95vw;
  }
}
#shop-detail.active {
  right: 0;
}

#shop-detail .shop-detail-header {
  display: none;
}
#shop-detail .shop-detail-header .ttl {}

#shop-detail .shop-detail-body {
  counter-reset: shop;
  width: 100%;
  height: 100%;
  overflow-y: auto;
  position: relative;
}
#shop-detail .shop-detail-body .close-detail {
  margin: 0;
  padding: 0;
  width: 3.4rem;
  height: 3.4rem;
  position: absolute;
  top: 2.0rem;
  right: 3.4rem;
  border: none;
  border-radius: 50%;
  overflow: hidden;
  z-index: 2;
  background-color: rgba(255, 255, 255, 0.3);
  transition: all 0.3s ease;
}
#shop-detail .shop-detail-body .close-detail span {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 75%;
  aspect-ratio: 1 / 1;
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%22182%22%20height%3D%22182%22%20viewBox%3D%220%200%20182%20182%22%20fill%3D%22none%22%20xmlns%3D%22http://www.w3.org/2000/svg%22%3E%3Cg%20transform%3D%22translate(1%200)%22%3E%3Crect%20x%3D%2247.1602%22%20y%3D%2244.3301%22%20width%3D%22128%22%20height%3D%228%22%20transform%3D%22rotate(45%2047.1602%2044.3301)%22%20fill%3D%22%23FFFFFF%22%2F%3E%3Crect%20x%3D%22137.67%22%20y%3D%2247.1602%22%20width%3D%22128%22%20height%3D%228%22%20transform%3D%22rotate(135%20137.67%2047.1602)%22%20fill%3D%22%23FFFFFF%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  transition: all 0.3s ease;
}
#shop-detail .shop-detail-body .close-detail:hover {
  background-color: rgba(255, 255, 255, 0.8);
}
#shop-detail .shop-detail-body .close-detail:hover span {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%22182%22%20height%3D%22182%22%20viewBox%3D%220%200%20182%20182%22%20fill%3D%22none%22%20xmlns%3D%22http://www.w3.org/2000/svg%22%3E%3Cg%20transform%3D%22translate(1%200)%22%3E%3Crect%20x%3D%2247.1602%22%20y%3D%2244.3301%22%20width%3D%22128%22%20height%3D%228%22%20transform%3D%22rotate(45%2047.1602%2044.3301)%22%20fill%3D%22%23469559%22%2F%3E%3Crect%20x%3D%22137.67%22%20y%3D%2247.1602%22%20width%3D%22128%22%20height%3D%228%22%20transform%3D%22rotate(135%20137.67%2047.1602)%22%20fill%3D%22%23469559%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}

#shop-detail .shop-detail-body .shop {
  width: 100%;
  height: 0;
  padding: 0;
  overflow: hidden;
  visibility: hidden;
}
#shop-detail .shop-detail-body .shop.active {
/*
  height: auto;
  overflow: visible;
  visibility: visible;
*/
  visibility: visible;
  display: grid;
  grid-template-rows: auto 1fr;
  height: 100%;
}

#shop-detail .shop-detail-body .shop .shop-detail-ttl {
  min-height: 7.4rem;
  padding: 2.0rem 9.75rem 2.0rem 4.0rem;
  color: #FFFFFF;
  font-size: 2.4rem;
  font-weight: var(--Bold);
  line-height: 150%;
  letter-spacing: 0.144rem;
  background-color: #469559;/* デフォは緑 */
}

#shop-detail .shop-detail-body .shop .shop-detail-ttl .shop-num {
  margin-right: 1.6rem;
  font-size: 5rem;
  font-weight: var(--Black);
  line-height: normal;
}

#shop-detail .shop-detail-body .shop .shop-detail-ttl small {
  font-size: 1.6rem;
}

#shop-detail .shop-detail-body .shop .shop-detail-cnt {
  width: 100%;
  height: auto;
  padding: 2.0rem 4.0rem;
  position: relative;
  background-color: #FFFFFF;
  overflow-y: auto;
}

#shop-detail .shop-detail-body .shop .shop-detail-cnt a {
  text-decoration: underline;
}

#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-photo {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  object-fit: cover;
  position: relative;
}
#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-photo img {
  display: block;
  position: absolute;
  border-radius: calc(var(--radius) / 3);
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  object-fit: cover;
}
#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-photo.is-landscape img {
  width: 100%;
  height: auto;
}
#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-photo.is-portrait img {
  width: auto;
  height: 100%;
}

#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-type {
  margin: 1.5rem 0;
}
#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-type li {
  display: none;
  font-size: 1.6rem;
  font-weight: var(--Bold);
  line-height: 130%;
}
#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-type li::before {
  content: "●";
  display: inline;
  margin-right: 0.8rem;
  color: #469559;/* デフォは緑 */
}

#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-target {
  gap: 0.8rem;
  margin: 1.5rem 0;
}
#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-target li {
  padding: 0.5rem 1.0rem;
  text-align: center;
  font-size: 1.4rem;
  font-weight: var(--Bold);
  line-height: 160%;
  border: 1px solid #469559;/* デフォは緑 */
  color: #469559;/* デフォは緑 */
}

/* シールラリーの店舗詳細(.col_y)では以下を一旦非表示（今後不要確定で削除予定）。
   ※詳細パネルは共通だが、rally表示中のカードは .col_y が付くため色で出し分け。 */
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .excel-15,
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .shop-profile,
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .excel-20,
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .excel-21,
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .excel-22,
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .excel-23 {
  display: none;
}

#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-name {
  font-size: 2.2rem;
  font-weight: var(--Bold);
  line-height: 150%;
  letter-spacing: 0.132rem;
  margin-bottom: 1.0rem;
}

#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-address,
#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-holiday {
  font-size: 1.8rem;
  font-weight: var(--Bold);
  line-height: 150%;
  letter-spacing: 0.132rem;
}
#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-holiday {
  margin-bottom: 1.5rem;
}
#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-holiday .cap {
  white-space: nowrap;
}

#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-concept {
  font-size: 1.8rem;
  font-weight: var(--Bold);
  line-height: 200%;
}

#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-profile {
  font-size: 1.8rem;
  font-weight: var(--Medium);
  line-height: normal;
  border-radius: 5px;
  padding: 2.0rem;
  margin: 2.0rem 0 3.0rem 0;
  background-color: rgba(71, 149, 89, 0.2); /* デフォは緑 */
}
#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-profile li:first-child div small {
  font-size: 1.2rem;
}
#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-profile li:first-child div span {
  margin-right: 0.8rem;
}
#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-profile li:first-child div span:last-child {
  margin-right: 0;
}

#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-profile li {
  margin-bottom: 1.0rem;
}
#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-profile li:last-child {
  margin-bottom: 0;
}
#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-profile li .ico {
  width: 2.4rem;
  height: 2.4rem;
  margin-right: 1.2rem;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
}
#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-profile li .txt {
  width: calc(100% - 2.4rem - 1.2rem);
  gap: 0 1.6rem;
}
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt .shop-profile li .txt {
  gap: 0.8rem 0;
}
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt .shop-profile li .txt div {
  width: 100%;
}

#shop-detail .shop-detail-body .shop .shop-detail-cnt .uketsuke,
#shop-detail .shop-detail-body .shop .shop-detail-cnt .aikotoba,
#shop-detail .shop-detail-body .shop .shop-detail-cnt .moushikomi {
  font-size: 1.8rem;
  font-weight: var(--Bold);
  line-height: normal;
  gap: 1.2rem;
  margin-bottom: 0.8rem;
}

#shop-detail .shop-detail-body .shop .shop-detail-cnt .uketsuke .cap,
#shop-detail .shop-detail-body .shop .shop-detail-cnt .aikotoba .cap,
#shop-detail .shop-detail-body .shop .shop-detail-cnt .moushikomi .cap {
  min-width: 120px;
  padding: 0.3rem 1.0rem;
  text-align: center;
  color: #FFFFFF;
  background-color: #469559; /* デフォは緑 */
}

#shop-detail .shop-detail-body .shop .shop-detail-cnt .uketsuke .txt,
#shop-detail .shop-detail-body .shop .shop-detail-cnt .aikotoba .txt,
#shop-detail .shop-detail-body .shop .shop-detail-cnt .moushikomi .txt {
  padding: 0.3rem 0;
  font-size: 1.6rem;
}

/* .txt common ul ol */
#shop-detail .shop-detail-body .shop .shop-detail-cnt .txt ul {
  margin: 0;
  padding-left: 1.2rem;
  list-style: disc;
}
#shop-detail .shop-detail-body .shop .shop-detail-cnt .txt ol {
  margin: 0;
  padding-left: 1.2rem;
  list-style: decimal;
}
#shop-detail .shop-detail-body .shop .shop-detail-cnt .txt ol.apply-list {
  padding-left: 2rem;
}

#shop-detail .shop-detail-body .shop .shop-detail-cnt hr {
  margin: 4.0rem 0;
  border: none;
  border-top: 1px solid #E0E0E0;
}

/* fukidashi */
#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-profile li .ico .fukidashi {
  position: relative;
  opacity: 0;
  margin-top: -4rem;
  padding: 0.5rem;
  z-index: 2;
  width: 8rem;
  /* height: 4rem; */
  margin-left: -3rem;
  background-color: #FFFFFF;
  border-radius: 1.4rem;
  pointer-events: none;
  overflow: visible;
  font-size: 1.2rem;
  font-weight: 500;
  text-align: center;
  /* line-height: calc(4rem - 0.4rem); */
  filter: drop-shadow(5px 5px 3px rgba(0,0,0,0.4));
  transition: all 0.5s;
}
#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-profile li .ico:hover .fukidashi {
  margin-top: -4rem;
  animation: poyoyon 0.5s ease-in-out forwards;
}
#shop-detail .shop-detail-body .shop .shop-detail-cnt .shop-profile li .ico .fukidashi::before {
  content: "";
  position: absolute;
  border: 0.8rem solid transparent;
  border-top: 0.75rem solid #FFFFFF;
  width: 0;
  height: 0;
  top: 98%;
  left: 50%;
  transform: translateX(-50%);
  filter: drop-shadow(5px 5px 3px rgba(0,0,0,0.4));
}

/* color */
#shop-detail .shop-detail-body .shop.col_g .shop-detail-ttl {
  background-color: #469559;
}
#shop-detail .shop-detail-body .shop.col_y .shop-detail-ttl {
  background-color: #EEB141;
}
#shop-detail .shop-detail-body .shop.col_b .shop-detail-ttl {
  background-color: #5AA2B7;
}

#shop-detail .shop-detail-body .shop.col_g .shop-detail-cnt a {
  color: #469559;
}
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt a {
  color: #EEB141;
}
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt a {
  color: #5AA2B7;
}

#shop-detail .shop-detail-body .shop.col_g .shop-detail-cnt .shop-type li:nth-of-type(1) {
  display: block;
}
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .shop-type li:nth-of-type(2) {
  display: block;
}
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt .shop-type li:nth-of-type(3) {
  display: block;
}
#shop-detail .shop-detail-body .shop.col_g .shop-detail-cnt .shop-type li::before {
  color: #469559;
}
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .shop-type li::before {
  color: #EEB141;
}
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt .shop-type li::before {
  color: #5AA2B7;
}

#shop-detail .shop-detail-body .shop.col_g .shop-detail-cnt .shop-target li {
  border: 1px solid #469559;
  color: #469559;
}
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .shop-target li {
  border: 1px solid #EEB141;
  color: #EEB141;
}
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt .shop-target li {
  border: 1px solid #5AA2B7;
  color: #5AA2B7;
}

#shop-detail .shop-detail-body .shop.col_g .shop-detail-cnt .shop-profile {
  background-color: rgba(71, 149, 89, 0.2);
}
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .shop-profile {
  background-color: rgba(238, 177, 65, 0.2);
}
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt .shop-profile {
  background-color: rgba(90, 162, 183, 0.2);
}

#shop-detail .shop-detail-body .shop.col_g .shop-detail-cnt .uketsuke .cap,
#shop-detail .shop-detail-body .shop.col_g .shop-detail-cnt .aikotoba .cap,
#shop-detail .shop-detail-body .shop.col_g .shop-detail-cnt .moushikomi .cap {
  background-color: #469559;
}
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .uketsuke .cap,
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .aikotoba .cap,
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .moushikomi .cap {
  background-color: #EEB141;
}
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt .uketsuke .cap,
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt .aikotoba .cap,
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt .moushikomi .cap {
  background-color: #5AA2B7;
}

#shop-detail .shop-detail-body .shop.col_g .shop-detail-cnt .uketsuke .txt,
#shop-detail .shop-detail-body .shop.col_g .shop-detail-cnt .aikotoba .txt,
#shop-detail .shop-detail-body .shop.col_g .shop-detail-cnt .moushikomi .txt {
  color: #469559;
}
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .uketsuke .txt,
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .aikotoba .txt,
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .moushikomi .txt {
  color: #EEB141;
}
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt .uketsuke .txt,
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt .aikotoba .txt,
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt .moushikomi .txt {
  color: #5AA2B7;
}

#shop-detail .shop-detail-body .shop-detail-cnt .uketsuke .txt,
#shop-detail .shop-detail-body .shop-detail-cnt .aikotoba .txt,
#shop-detail .shop-detail-body .shop-detail-cnt .moushikomi .txt {
  overflow: hidden;
}


#shop-detail .shop-detail-body .shop.col_g .shop-detail-cnt .shop-profile li.excel-12 .ico {
  background-image: url(../img/ico_excel-12_g.svg);
}
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .shop-profile li.excel-12 .ico {
  background-image: url(../img/ico_excel-12_y.svg);
}
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt .shop-profile li.excel-12 .ico {
  background-image: url(../img/ico_excel-12_b.svg);
}

#shop-detail .shop-detail-body .shop.col_g .shop-detail-cnt .shop-profile li.excel-13 .ico {
  background-image: url(../img/ico_excel-13_g.svg);
}
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .shop-profile li.excel-13 .ico {
  background-image: url(../img/ico_excel-13_y.svg);
}
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt .shop-profile li.excel-13 .ico {
  background-image: url(../img/ico_excel-13_b.svg);
}

#shop-detail .shop-detail-body .shop.col_g .shop-detail-cnt .shop-profile li.excel-14 .ico {
  background-image: url(../img/ico_excel-14_g.svg);
}
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .shop-profile li.excel-14 .ico {
  background-image: url(../img/ico_excel-14_y.svg);
}
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt .shop-profile li.excel-14 .ico {
  background-image: url(../img/ico_excel-14_b.svg);
}

#shop-detail .shop-detail-body .shop.col_g .shop-detail-cnt .shop-profile li.excel-16 .ico {
  background-image: url(../img/ico_excel-16_g.svg);
}
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .shop-profile li.excel-16 .ico {
  background-image: url(../img/ico_excel-16_y.svg);
}
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt .shop-profile li.excel-16 .ico {
  background-image: url(../img/ico_excel-16_b.svg);
}

#shop-detail .shop-detail-body .shop.col_g .shop-detail-cnt .shop-profile li.excel-17 .ico {
  background-image: url(../img/ico_excel-17_g.svg);
}
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .shop-profile li.excel-17 .ico {
  background-image: url(../img/ico_excel-17_y.svg);
}
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt .shop-profile li.excel-17 .ico {
  background-image: url(../img/ico_excel-17_b.svg);
}

#shop-detail .shop-detail-body .shop.col_g .shop-detail-cnt .shop-profile li.excel-22 .ico {
  background-image: url(../img/ico_excel-22_g.svg);
}
#shop-detail .shop-detail-body .shop.col_y .shop-detail-cnt .shop-profile li.excel-22 .ico {
  background-image: url(../img/ico_excel-22_y.svg);
}
#shop-detail .shop-detail-body .shop.col_b .shop-detail-cnt .shop-profile li.excel-22 .ico {
  background-image: url(../img/ico_excel-22_b.svg);
}

@media screen and (max-width: 767px) {
  /* 消せばもとに戻る */
  #shop-detail .shop-detail-body .close-detail {
    top: 1.0rem;
    right: unset;
    left: 1.0rem;
  }
  /* 消せばもとに戻る */
  #shop-detail .shop-detail-body .shop .shop-detail-ttl {
    padding: 2.0rem 2.0rem 2.0rem 4.0rem;
    font-size: 1.8rem;
  }
}

/* ============================
schedule
---------------------------- */
#schedule {
}
#schedule .inner {
  /* padding: 0 12rem; */
}

#schedule .inner .schedule-event-color {
  gap: 2.0rem;
  margin-bottom: 4.0rem;
}
#schedule .inner .schedule-event-color .event-color {
  font-size: 1.8rem;
  font-weight: var(--Bold);
  line-height: 130%;
}
#schedule .inner .schedule-event-color .event-color .col::before {
  content: "";
  display: inline-block;
  width: 2.2rem;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  margin-right: 0.8rem;
}
#schedule .inner .schedule-event-color .event-color .col.col_g::before {
  background-color: #469559;
}
#schedule .inner .schedule-event-color .event-color .col.col_y::before {
  background-color: #EEB141;
}
#schedule .inner .schedule-event-color .event-color .col.col_b::before {
  background-color: #5AA2B7;
}

#schedule .inner .schedule-header {
  height: 12rem;
  color: #FFFFFF;
  background-color: #469559;
  border-top-left-radius: var(--radius);
  border-top-right-radius: var(--radius);
  position: relative;
  box-shadow: 1.5rem 1.5rem 0 0 rgba(87, 162, 183, 0.5);
  z-index: 0;
}

#schedule .inner .schedule-header.col_g {
  background-color: #469559;
}
#schedule .inner .schedule-header.col_y {
  background-color: #EEB141;
}
#schedule .inner .schedule-header.col_b {
  background-color: #5AA2B7;
}

#schedule .inner .schedule-header::before {
  content: "";
  position: absolute;
  top: -2rem;
  left: 6rem;
  width: 3rem;
  height: 5rem;
  background-color: #469559;
  border: 0.5rem solid var(--main-bgcol);
  box-sizing: content-box;
  border-radius: 1.0rem;
  z-index: 1;
}
#schedule .inner .schedule-header::after {
  content: "";
  position: absolute;
  top: -2rem;
  right: 6rem;
  width: 3rem;
  height: 5rem;
  background-color: #469559;
  border: 0.5rem solid var(--main-bgcol);
  box-sizing: content-box;
  border-radius: 1.0rem;
  z-index: 1;
}

/*
#schedule .inner .schedule-header.col_y::before {
  background-color: #EEB141;
}
#schedule .inner .schedule-header.col_b::before {
  background-color: #5AA2B7;
}
#schedule .inner .schedule-header.col_g::before {
  background-color: #469559;
}
*/

#schedule .inner .schedule-header h3 {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-family: var(--DarumadropOne);
  color: #FFF;
  font-size: 4.8rem;
  letter-spacing: 0.288rem;
  white-space: nowrap;
  z-index: 2;
}
#schedule .inner .schedule-header h3 ruby {
  font-family: "Zen Maru Gothic";
  font-size: 3.8rem;
  font-weight: var(--Black);
  line-height: normal;
  letter-spacing: 0.228rem;
}

@media screen and (max-width: 1280px) {
  #schedule .inner .schedule-header {
    height: 6rem;
  }
  #schedule .inner .schedule-header h3 {
    margin-top: 0;
    font-size: 2.4rem;
    letter-spacing: 0.144rem;
  }
  #schedule .inner .schedule-header h3 ruby {
    font-size: 2.0rem;
    letter-spacing: 0.12rem;
  }
}

@media screen and (max-width: 767px) {
  #schedule .inner .schedule-header::before {
    left: 2rem;
  }
  #schedule .inner .schedule-header::after {
    right: 2rem;
  }
  #schedule .inner .schedule-event-color .event-color {
    font-size: 1.4rem;
  }
}

/* ──────────────────────────────────────── */
/* １）コンテナ定義                          */
/* ──────────────────────────────────────── */
#schedule .inner .gantt-cnt {
  width: 100%;
  /* padding: 6rem; */
  padding: 2rem;
  background-color: #FFFFFF;
  box-shadow: 1.5rem 1.5rem 0 0 rgba(87, 162, 183, 0.5);
  border-bottom-left-radius: var(--radius);
  border-bottom-right-radius: var(--radius);
  position: relative;
  z-index: 1;
}
#schedule .inner .gantt-cnt .gantt {
  z-index: 1;
  display: grid;
  /* 左端 150px + 日付列。日数は PHP がカレンダーから注入する --gantt-days（既定15＝7/25〜8/8）。期間変更時も自動追従 */
  /* grid-template-columns: 150px repeat(var(--gantt-days, 15), 1fr); */
  /* 左端 380px + 日付列。日数は PHP がカレンダーから注入する --gantt-days（既定15＝7/25〜8/8）。期間変更時も自動追従 */
  grid-template-columns: 380px repeat(var(--gantt-days, 15), 1fr);
  /* １行目 auto／２行目 auto／３行目以降を 最小40px に */
  grid-template-rows: auto auto repeat(47, minmax(40px, auto));
  position: relative;
  border-bottom-left-radius: var(--radius);
  border-bottom-right-radius: var(--radius);
}

/* ──────────────────────────────────────── */
/* ２）ヘッダー全般（共通スタイル）            */
/* ──────────────────────────────────────── */
#schedule .inner .header {
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  background-color: #FFFFFF;
  border-bottom: 1px solid #DEDEDE;
  z-index: 3;
}

#schedule .inner .header.month {
  border-bottom: 1px solid #FFFFFF;
}

/* 月ヘッダーを １行目 に */
#schedule .inner .header.month {
  grid-row: 1;
  /* grid-column: 2 / span 7 等はインライン or 別指定 */
  background-color: #FFFFFF;
}
#schedule .inner .header .month-box {
  width: 100%;
  background-color: #B4CFDA;
  color: #FFFFFF;
  text-align: center;
}
#schedule .inner .header.month7 .month-box {
  border-top-left-radius: 10rem;
  border-bottom-left-radius: 10rem;
  border-right: 1px solid #FFFFFF;
}
#schedule .inner .header.month8 .month-box {
  border-top-right-radius: 10rem;
  border-bottom-right-radius: 10rem;
}

/* 日付ヘッダーを ２行目 に */
#schedule .inner .header.date {
  grid-row: 2;
  /* grid-column: n で配置 */
  border-left: 1px solid #FFFFFF;
}

/* 「店舗名」ヘッダー も １行目 に */
#schedule .inner .header.shop-name-ttl {
  grid-row: 1 / span 2;
  grid-column: 1;
  text-align: center;
  font-size: 1.8rem;
  font-weight: var(--Bold);
  line-height: normal;
  letter-spacing: 0.108rem;
  border-bottom: 1px solid #DEDEDE;;
  background-color: #FFFFFF;
  position: sticky;
  left: 0;
  z-index: 4;
}

/* ──────────────────────────────────────── */
/* ３）各店舗行（左端「店舗名」列）            */
/* ──────────────────────────────────────── */
#schedule .inner .shop-name {
  grid-column: 1;
  background-color: #FFFFFF;
  padding: 8px;
  display: flex;
  align-items: center;
  position: sticky;
  left: 0;
  z-index: 2;
  border-right: 1px solid #dddddd;
  border-bottom: 1px solid #dddddd;
  cursor: pointer;
  white-space: nowrap;
  font-size: 1.8rem;
  /* font-size: 0.75vw; */
  font-weight: var(--Medium);
  line-height: 150%;
  transition: all 0.3s ease;
}
#schedule .inner .shop-name:hover {
  background-color: #e0f7fa;
  color: #00796b;
}
@media screen and (max-width: 767px) {
  #schedule .inner .shop-name {
    padding: 0;
    font-size: 1.2rem;
  }
}

/* ──────────────────────────────────────── */
/* ４）背景グリッド（セル）                   */
/* ──────────────────────────────────────── */
#schedule .inner .cell {
  background-color: #EFF7F9;
  border-bottom: 1px solid #eeeeee;
  border-right: 1px solid #F5FAFF;
  background-image: linear-gradient(
    to right,
    transparent 50%,
    #FFFFFF 50%
  );
  background-size: calc((100% / 15) * 2) 100%;
  grid-column: 2 / 17;
}

/* 追加列（本編期間外の開催日＝extra_days。例 9/27）。8/8の右に区切りを置いて1列追加 */
#schedule .inner .cell.cell-extra {
  background-color: #EFF7F9;
  border-bottom: 1px solid #eeeeee;
  background-image: linear-gradient(to right, #FFFFFF 50%, #FFFFFF 50%);
  background-size: 100%;
}
#schedule .inner .header.date.extra,
#schedule .inner .header.month.extra,
#schedule .inner .cell.cell-extra {
  border-left: 3px dashed #5AA2B7; /* 本編との区切り */
}
#schedule .inner .header.month.extra .month-box {
  border-radius: 10rem; /* 独立したピル（9月など） */
}

/* ──────────────────────────────────────── */
/* ５）期間バー（タスク）                     */
/* ──────────────────────────────────────── */
#schedule .inner .task {
  border-radius: 10rem;
  align-self: center;
  height: 60%;  /* 行高の 60％ で中央寄せ */
  z-index: 1;
}
#schedule .inner .task {
  background-color: #479559; /* デフォは緑 */
}
#schedule .inner .task.col_g {
  background-color: #479559;
}
#schedule .inner .task.col_b {
  background-color: #5AA2B7;
}
#schedule .inner .task.col_y {
  background-color: #EEB141;
}

/* --- １行目（top:0） ---------------------------------- */
/* 「店舗名」見出しセル */
#schedule .inner .header.shop-name-ttl {
  position: sticky;
  top: 11rem;
  z-index: 20;    /* 日付より前面に */
  /* 既存の grid-row:1/span 2, background 等はそのまま */
}

/* 月ヘッダー */
#schedule .inner .header.month {
  position: sticky;
  top: 11rem;
  z-index: 15;
  /* grid-row:1 の指定はそのまま */
}

/* --- ２行目（日付。top:月ヘッダー高さ） --- */
#schedule .inner .header.date {
  position: sticky;
  top: calc(11rem + 27px); /* ←月ヘッダーの実際の高さに合わせて */
  z-index: 15;
}
#schedule .inner .header.date.sat {
  background-color: #F5F5F5;
}
#schedule .inner .header.date.sun {
  background-color: #FFEBEE;
}
#schedule .inner .header.date.hol {
  background-color: #FFEBEE;
}

/* 左端の各店舗名セルは既に横sticky済み */
#schedule .inner .shop-name {
  position: sticky;
  left: 0;
  z-index: 10;
}

@media screen and (max-width: 1280px) {
  #schedule .inner {
    padding: 0 2.5%;
  }
  #schedule .inner .gantt-cnt {
    padding: 1rem;
  }
  #schedule .inner .gantt-cnt .gantt {
    grid-template-columns: 75px repeat(var(--gantt-days, 15), 1fr);
    overflow: auto;
    font-size: 1.2rem;
    height: 500px;
  }
  #schedule .inner .header.shop-name-ttl {
    top: 0;
  }
  #schedule .inner .header.month {
    top: 0;
  }
  #schedule .inner .header.date {
    top: 2.1rem; /* 月ヘッダーの高さ */
    width: 4rem;
  }
}


/* ──────────────────────────────────────── */
/* 店舗名一覧（ガントの代替：shopNameList）   */
/* ──────────────────────────────────────── */
#schedule .inner .shop-name-list-cnt {
  position: relative;
  z-index: 1;
}
#schedule .inner .shop-name-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  padding: 2rem;
  background-color: #FFFFFF;
  box-shadow: 1.5rem 1.5rem 0 0 rgba(87, 162, 183, 0.5);
  border-radius: 0 0 var(--radius) var(--radius);
}
@media screen and (max-width: 1280px) {
  #schedule .inner .shop-name-list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 767px) {
  #schedule .inner .shop-name-list {
    grid-template-columns: 1fr;
  }
}

#schedule .inner .shop-name-list .shop-name-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.2rem 1.6rem;
  background-color: #FFFFFF;
  border: 1px solid #dddddd;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.3s ease;
}
#schedule .inner .shop-name-list .shop-name-item:hover {
  background-color: #FFF7E6;
  border-color: #EEB141;
}
#schedule .inner .shop-name-list .shop-name-item .shop-num {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 50%;
  background-color: #EEB141;
  color: #FFFFFF;
  font-size: 1.6rem;
  font-weight: var(--Bold);
  line-height: 1;
}
#schedule .inner .shop-name-list .shop-name-item .name {
  flex: 1 1 auto;
  font-size: 1.8rem;
  font-weight: var(--Medium);
  line-height: 150%;
}
@media screen and (max-width: 767px) {
  #schedule .inner .shop-name-list {
    grid-template-columns: 1fr;
  }
  #schedule .inner .shop-name-list .shop-name-item .name {
    font-size: 1.4rem;
  }
}


/* ============================
body.single
---------------------------- */
body.single {}
body.single main {
  padding-bottom: 13.0rem;
}
body.single .container #content {
  position: relative;
  margin: 0 auto;
  padding: 6.0rem 15.0rem 9.6rem 15.0rem;
  width: 100%;
  max-width: 1280px;
  border-radius: 60px;
  border: 4px solid #479559;
  background: #FFFFFF;
  box-shadow: 1.5rem 1.5rem 0 0 rgba(70, 149, 89, 0.5);
}
body.single .container #content a.btn-back {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -3.5rem;
  width: 360px;
  height: 70px;
  border-radius: 40px;
  background-color: #479559;
}
body.single .container #content a.btn-back > .flex {
  position: relative;
  width: 100%;
  height: 100%;
  color: #FFFFFF;
  text-align: center;
  font-size: 1.8rem;
  font-weight: var(--Bold);
  letter-spacing: 0.108rem;
}
body.single .container #content a.btn-back > .flex::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 0;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background-color: #FFFFFF;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='30'%20height='30'%20viewBox='0%200%2030%2030'%20fill='none'%3E%3Ccircle%20cx='15'%20cy='15'%20r='15'%20fill='white'/%3E%3Cpath%20d='M7%2014C6.44772%2014%206%2014.4477%206%2015C6%2015.5523%206.44772%2016%207%2016V14ZM22.7071%2015.7071C23.0976%2015.3166%2023.0976%2014.6834%2022.7071%2014.2929L16.3431%207.92893C15.9526%207.53841%2015.3195%207.53841%2014.9289%207.92893C14.5384%208.31946%2014.5384%208.95262%2014.9289%209.34315L20.5858%2015L14.9289%2020.6569C14.5384%2021.0474%2014.5384%2021.6805%2014.9289%2022.0711C15.3195%2022.4616%2015.9526%2022.4616%2016.3431%2022.0711L22.7071%2015.7071ZM7%2015V16H22V15V14H7V15Z'%20fill='%23479559'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transition: all 0.3s ease;
  transform: translate(-50%, -50%);
}
body.single .container #content a.btn-back:hover > .flex::after {
  transform: translate(-50%, -50%) scale(1.2);
}
body.single .container #content div.post-dat {
  color: #999;
  margin-bottom: 1.0rem;
  font-size: 1.8rem;
  font-weight: var(--Bold);
  line-height: normal;
}
body.single .container #content h2.post-ttl {
  font-size: 2.8rem;
  font-style: normal;
  font-weight: var(--Bold);
  line-height: 160%;
  padding-bottom: 3.0rem;
  margin-bottom: 4.0rem;
  border-bottom: 1px solid #DEDEDE;
}
body.single .container #content h1 {
  font-size: 3.2rem;
  font-weight: var(--Bold);
  line-height: 160%;
  padding-top: 1.0rem;
  margin-bottom: 3.0rem;
}
body.single .container #content h2 {
  font-size: 2.8rem;
  font-weight: var(--Bold);
  line-height: 160%;
  padding-top: 1.0rem;
  margin-bottom: 3.0rem;
}
body.single .container #content h3 {
  font-size: 2.4rem;
  font-weight: var(--Bold);
  line-height: 160%;
  padding-top: 1.0rem;
  margin-bottom: 3.0rem;
}
body.single .container #content h4 {
  font-size: 2.0rem;
  font-weight: var(--Bold);
  line-height: 160%;
  padding-top: 1.0rem;
  margin-bottom: 3.0rem;
}
body.single .container #content h5 {
  font-size: 1.8rem;
  font-weight: var(--Bold);
  line-height: 160%;
  padding-top: 1.0rem;
  margin-bottom: 3.0rem;
}
body.single .container #content h6 {
  font-size: 1.6rem;
  font-weight: var(--Bold);
  line-height: 160%;
  padding-top: 1.0rem;
  margin-bottom: 3.0rem;
}
body.single .container #content p {
  font-size: 1.8rem;
  font-style: normal;
  font-weight: var(--Medium);
  line-height: 180%;
  margin-bottom: 3.0rem;
}
body.single .container #content a {
  color: #479559;
  text-decoration: underline;
}
body.single .container #content ul {
  list-style-type: disc;
  padding-left: 2.0rem;
  font-size: 1.8rem;
  font-weight: var(--Medium);
  line-height: 180%;
  margin-bottom: 3.0rem;
}
body.single .container #content ol {
  list-style-type: decimal;
  padding-left: 2.0rem;
  font-size: 1.8rem;
  font-weight: var(--Medium);
  line-height: 180%;
  margin-bottom: 3.0rem;
}
body.single .container #content blockquote {
  font-size: 1.6rem;
  font-weight: var(--Medium);
  line-height: 180%;
  margin: 3.0rem 0;
  padding: 1.5rem 2.0rem;
  border-left: 4px solid #479559;
  background-color: rgba(71, 149, 89, 0.1);
}
body.single .container #content p:last-child,
body.single .container #content ul:last-child,
body.single .container #content ol:last-child {
  margin-bottom: 0;
}
body.single .container #content::before {
  content: "";
  position: absolute;
  top: -6rem;
  left: 0;
  width: 26.0rem;
  height: 16.1rem;
  background-image: url(../img/ico_news.svg);
  background-position: top center;
  background-repeat: no-repeat;
  background-size: contain;
  pointer-events: none;
}
body.single #map {
  display: none;
}

@media screen and (max-width: 1280px) {
  body.single .container {
    padding-right: 2.5%;
    padding-left: 2.5%;
  }
  body.single .container #content::before {
    top: -3rem;
    width: 12.0rem;
    height: 8.0rem;
  }
  body.single .container #content {
    padding: 4.8rem 5%;
  }
}

@media screen and (max-width: 767px) {
  body.single .container #content a.btn-back {
    width: 64vw;
  }
  body.single .container #content h2.post-ttl {
    font-size: 2.4rem;
  }
  body.single .container #content h3 {
    font-size: 2.0rem;
  }
  body.single .container #content p,
  body.single .container #content ul,
  body.single .container #content ol {
    font-size: 1.6rem;
  }
}