@charset "UTF-8";
/* ------------------------------------------------------------
   reservation（ブライダル相談会）用パーツ
   ・3つの導線ボタン .reservationNav
   ・LINEバナー      .lineBnr
   ・電話バナー      .telBnr
   NOVA_WEB-6503 / 2608_KOS_ブライダルフェアページ改修
   ベースカラーは各会場の --color-theme を継承
------------------------------------------------------------ */

/* ---------- 3つの導線ボタン ---------- */
.reservationNav {
  display: flex;
  gap: 20px;
  max-width: 980px;
  margin: 0 auto;
}

.reservationNav__item {
  flex: 1 1 0;
  min-height: 217px;
  box-sizing: border-box;
  padding: 24px 10px 32px;
  border-radius: 10px;
  background: var(--color-theme, #279590);
  color: #fff;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: opacity 0.3s;
}

.reservationNav__item:hover {
  opacity: 0.75;
  color: #fff;
}

.reservationNav__icn {
  height: 84px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.reservationNav__icn img {
  display: block;
  width: auto;
  max-width: 100%;
}

.reservationNav__icn--online img {
  height: 65px;
}

.reservationNav__icn--chapel img {
  height: 66px;
}

.reservationNav__icn--salon img {
  height: 84px;
}

.reservationNav__txt {
  margin-top: 28px;
  min-height: 49px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  line-height: 1.75;
  letter-spacing: 0.13em;
  text-align: center;
}

@media (max-width: 980px) {
  .reservationNav {
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
  }
  .reservationNav__item {
    flex: 1 1 0;
    min-height: 93px;
    padding: 10px 6px 6px;
    border-radius: 6px;
  }
  .reservationNav__item:first-child {
    flex: 0 0 100%;
    min-height: 69px;
    padding: 10px 6px 7px;
  }
  .reservationNav__icn {
    height: 31px;
  }
  .reservationNav__item:first-child .reservationNav__icn {
    height: 25px;
  }
  .reservationNav__icn--online img {
    height: 25px;
  }
  .reservationNav__icn--chapel img {
    height: 26px;
  }
  .reservationNav__icn--salon img {
    height: 31px;
  }
  .reservationNav__txt {
    margin-top: 12px;
    min-height: 34px;
    font-size: 11px;
    line-height: 1.55;
    letter-spacing: 0.05em;
  }
  .reservationNav__item:first-child .reservationNav__txt {
    margin-top: 11px;
    min-height: 17px;
  }
}

/* ---------- LINEバナー ---------- */
.lineBnr {
  display: flex;
  align-items: stretch;
  max-width: 980px;
  margin: 74px auto 0;
  background: #ccc6c0;
  color: #221815;
}

.lineBnr__body {
  flex: 1 1 auto;
  min-height: 90px;
  display: flex;
  align-items: center;
  padding: 0 20px 0 33px;
}

.lineBnr__hdg {
  display: flex;
  align-items: center;
  flex: none;
  margin: 0;
  font-size: 18px;
  line-height: 1.4;
  letter-spacing: 0.18em;
  white-space: nowrap;
}

.lineBnr__logo {
  display: block;
  flex: none;
  width: 36px;
  height: auto;
  margin-right: 36px;
}

.lineBnr__sep {
  flex: none;
  width: 1px;
  height: 60px;
  margin: 0 33px;
  background: #221815;
  opacity: 0.55;
}

.lineBnr__tags {
  display: flex;
  align-items: center;
  margin: 0;
  white-space: nowrap;
}

.lineBnr__tag {
  display: inline-block;
  min-width: 100px;
  box-sizing: border-box;
  padding: 0 12px;
  height: 24px;
  line-height: 24px;
  border-radius: 12px;
  background: #000;
  color: #fff;
  font-size: 11px;
  letter-spacing: 0.15em;
  text-align: center;
  font-weight: bold;
}

.lineBnr__tag + .lineBnr__tag {
  margin-left: 10px;
}

.lineBnr__note {
  margin-left: 14px;
  font-size: 15px;
  letter-spacing: 0.16em;
}

.lineBnr__link {
  position: relative;
  flex: none;
  width: 208px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #aaa096;
  color: #fff;
  font-size: 13px;
  letter-spacing: 0.15em;
  text-decoration: none;
  transition: opacity 0.3s;
}

.lineBnr__link:hover {
  opacity: 0.75;
  color: #fff;
}

.lineBnr__link .arrow {
  position: absolute;
  top: 50%;
  right: 29px;
  width: 8px;
  height: auto;
  margin-top: -4px;
}

@media (max-width: 980px) {
  .lineBnr {
    display: block;
    margin: 40px 0 0;
  }
  .lineBnr__body {
    display: block;
    min-height: 0;
    padding: 17px 15px 11px;
    text-align: center;
  }
  .lineBnr__hdg {
    display: flex;
    justify-content: center;
    font-size: 15px;
    letter-spacing: 0.13em;
  }
  .lineBnr__logo {
    width: 28px;
    margin-right: 13px;
  }
  .lineBnr__sep {
    display: block;
    width: auto;
    height: 1px;
    margin: 12px 0;
  }
  .lineBnr__tags {
    justify-content: center;
  }
  .lineBnr__tag {
    min-width: 88px;
    padding: 0 8px;
    height: 21px;
    line-height: 21px;
    border-radius: 11px;
    font-size: 10px;
    letter-spacing: 0.09em;
  }
  .lineBnr__tag + .lineBnr__tag {
    margin-left: 5px;
  }
  .lineBnr__note {
    margin-left: 7px;
    font-size: 11px;
    letter-spacing: 0.13em;
  }
  .lineBnr__link {
    width: auto;
    min-height: 37px;
    font-size: 11px;
  }
  .lineBnr__link .arrow {
    position: static;
    width: 7px;
    margin: 0 0 0 9px;
  }
}

/* ---------- 電話バナー ---------- */
.telBnr {
  position: relative;
  box-sizing: border-box;
  max-width: 980px;
  min-height: 80px;
  margin: 110px auto 0;
  padding: 14px 45px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--color-theme, #279590);
  color: #fff;
  text-decoration: none;
  transition: opacity 0.3s;
}

.telBnr:hover {
  opacity: 0.85;
  color: #fff;
}

.telBnr__lead {
  display: block;
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: 0.2em;
}

.telBnr__num {
  display: block;
  font-size: 22px;
  line-height: 1.4;
  letter-spacing: 0.2em;
}

.telBnr .arrow {
  position: absolute;
  top: 50%;
  right: 29px;
  width: 8px;
  height: auto;
  margin-top: -4px;
}

.telBnr__note {
  max-width: 980px;
  margin: 22px auto 0;
  text-align: center;
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: 0.15em;
  color: var(--color-theme, #279590);
}

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

@media (max-width: 980px) {
  .telBnr {
    min-height: 90px;
    margin: 55px 0 0;
    padding: 14px 20px;
  }
  .telBnr__lead {
    font-size: 12px;
    letter-spacing: 0.1em;
  }
  .telBnr__num {
    font-size: 20px;
    letter-spacing: 0.175em;
  }
  .telBnr .arrow {
    display: none;
  }
  .telBnr__note {
    margin: 14px 0 0;
    font-size: 12px;
    letter-spacing: 0.1em;
  }
}

/* ---------- リード文（SPの改行位置調整） ----------
   共通CSSの letter-spacing:0.18rem だと1行目が数px溢れて
   「な」だけ次行に落ちるため、このページのみ僅かに詰める */
@media (max-width: 980px) {
  body.lower.event #list .editable .txt p {
    letter-spacing: 0.16rem;
  }
}
