@charset "UTF-8";
:root {
  --black: 51,51,51;
  --red: 238,0,59;
  --dark_red: 207,28,85;
  --main: 233,83,131;
  --accent: 227,55,129;
  --note: 102,102,102;
  --bg: 243,243,243;
  --gray: 153,153,153;
  --dark_gray: 167,167,167;
  --border: 210,211,212;
  --light_pink: 252,229,237;
  --beige: 248,244,241;
  --green: 92,198,172;
  --blue: 16,120,237;
  --purple: 189,104,200;
  --light_purple: 242,228,243;
  --contents_width: 1100px;
  --body_padding_side: 60px;
  --contents_width_with_padding: 1160px;
  --sidebar_width: 250px;
  --hover_opacity: .7;
}

/* l-container
================================================ */
#bridal_beauty .l-container {
  padding-top: 0;
}

.bridal_beauty-mainImg {
  background-color: #fffbf8;
}

/* .bridal_beauty-intro
================================================ */
.bridal_beauty-intro {
  background-color: #f7f1f1;
  padding: 40px 0 50px;
}
@media all and (min-width: 768px) {
  .bridal_beauty-intro {
    padding: 50px 0 100px;
  }
}
.bridal_beauty-intro__wrap {
  display: grid;
  grid-template-rows: repeat(2, auto);
}
.bridal_beauty-intro__img {
  width: 74vw;
  margin: 0 auto;
}
@media all and (min-width: 768px) {
  .bridal_beauty-intro__img {
    width: 100%;
    text-align: center;
  }
}
.bridal_beauty-intro__txt {
  background: url(../img/bg_intro02.jpg) left bottom/contain no-repeat, url(../img/bg_intro01.png) left top/100% no-repeat;
  overflow: hidden;
  margin-top: -15vw;
}
@media all and (min-width: 768px) {
  .bridal_beauty-intro__txt {
    width: 690px;
    margin: -113px auto 0;
  }
}
.bridal_beauty-intro__txt-inner {
  margin: 22vw 25px 9vw;
}
@media all and (min-width: 768px) {
  .bridal_beauty-intro__txt-inner {
    margin: 190px 50px 70px;
  }
}
.bridal_beauty-intro__read {
  width: 71.6vw;
  margin-left: auto;
  margin-right: auto;
}
@media all and (min-width: 768px) {
  .bridal_beauty-intro__read {
    width: 100%;
    text-align: center;
  }
}
.bridal_beauty-intro__point {
  display: grid;
  grid-template-columns: repeat(3, auto);
  justify-content: center;
  gap: 3.33vw;
  filter: drop-shadow(2px 2px 5px rgba(0, 0, 0, 0.2));
}
@media all and (min-width: 768px) {
  .bridal_beauty-intro__point {
    gap: 50px;
  }
}

/* .bridal_beauty-schedule
================================================ */
@media all and (min-width: 768px) {
  .bridal_beauty-schedule {
    padding-top: 50px;
  }
}
.bridal_beauty-schedule__subhead {
  width: 65.6vw;
  margin-left: auto;
  margin-right: auto;
}
@media all and (min-width: 768px) {
  .bridal_beauty-schedule__subhead {
    width: auto;
  }
}
.bridal_beauty-schedule__card {
  background-color: #f3f3f4;
  border-radius: 10px;
}
.bridal_beauty-schedule__card-inner {
  padding: 15px 15px 20px;
}
@media all and (min-width: 768px) {
  .bridal_beauty-schedule__card-inner {
    padding: 30px 30px 40px;
  }
}
.bridal_beauty-schedule__card-head {
  color: #fff;
  background-color: #7f8197;
  border-radius: 10px 10px 0 0;
  text-align: center;
  line-height: 0;
  padding: 12px;
}
@media all and (min-width: 768px) {
  .bridal_beauty-schedule__card-head {
    padding: 25px;
  }
}
.bridal_beauty-schedule__card-head-txt {
  width: 29.73vw;
  margin-left: auto;
  margin-right: auto;
}
.bridal_beauty-schedule__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
@media all and (min-width: 768px) {
  .bridal_beauty-schedule__list {
    gap: 30px;
  }
}
.bridal_beauty-schedule__item {
  width: calc((100% - 10px) / 2);
  display: flex;
}
@media all and (min-width: 768px) {
  .bridal_beauty-schedule__item {
    width: calc((100% - 60px) / 3);
  }
}
.bridal_beauty-schedule__anchor {
  width: 100%;
  background-color: #fff;
  border-radius: 5px;
  filter: drop-shadow(2px 2px 5px rgba(0, 0, 0, 0.2));
  padding: 10px;
  display: flex;
  align-items: center;
  gap: 5px;
}
@media all and (min-width: 768px) {
  .bridal_beauty-schedule__anchor {
    border-radius: 10px;
    padding: 20px;
    gap: 10px;
  }
}
.bridal_beauty-schedule__ico {
  width: 12vw;
  flex-shrink: 0;
}
@media all and (min-width: 768px) {
  .bridal_beauty-schedule__ico {
    width: auto;
  }
}
.bridal_beauty-schedule__menu {
  flex-grow: 1;
  text-align: center;
}
.bridal_beauty-schedule__menu-name {
  font-size: 1.4rem;
  font-weight: bold;
  line-height: 1.2;
  border-bottom: 1px solid rgb(var(--black));
  padding: 0 1px 2px;
  display: inline-block;
}
@media all and (min-width: 768px) {
  .bridal_beauty-schedule__menu-name {
    font-size: 1.8rem;
  }
}
.bridal_beauty-schedule__menu-name .sub {
  font-size: 1.1rem;
}
@media all and (min-width: 768px) {
  .bridal_beauty-schedule__menu-name .sub {
    font-size: 1.3rem;
  }
}
.bridal_beauty-schedule__menu-time {
  font-size: 1.2rem;
  line-height: 1.4;
  margin-top: 2px;
}
@media all and (min-width: 768px) {
  .bridal_beauty-schedule__menu-time {
    font-size: 1.6rem;
    margin-top: 4px;
  }
}

/* .bridal_beauty-plan
================================================ */
.bridal_beauty-plan {
  background-color: #f3f3f4;
  padding-bottom: 50px;
}
@media all and (min-width: 768px) {
  .bridal_beauty-plan {
    padding-top: 50px;
    padding-bottom: 100px;
  }
}
.bridal_beauty-plan__wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  filter: drop-shadow(2px 2px 5px rgba(0, 0, 0, 0.2));
}
@media all and (min-width: 768px) {
  .bridal_beauty-plan__wrap {
    gap: 30px;
  }
}
.bridal_beauty-plan__card {
  width: calc((100% - 15px) / 2);
  background-color: #fff;
  border-radius: 10px;
}
@media all and (min-width: 768px) {
  .bridal_beauty-plan__card {
    width: calc((100% - 60px) / 3);
  }
}
@media all and (max-width: 767px) {
  .bridal_beauty-plan__card.is-body {
    width: 100%;
  }
}
.bridal_beauty-plan__card-inner {
  padding: 15px 15px 20px;
}
@media all and (min-width: 768px) {
  .bridal_beauty-plan__card-inner {
    padding: 30px 30px 40px;
  }
}
.is-skin .bridal_beauty-plan__card-inner {
  background: url(../img/img_plan01.jpg) center top/contain no-repeat;
}
@media all and (min-width: 768px) {
  .is-skin .bridal_beauty-plan__card-inner {
    background-position: center -15px;
  }
}
.is-face .bridal_beauty-plan__card-inner {
  background: url(../img/img_plan02.jpg) center top/contain no-repeat;
}
@media all and (min-width: 768px) {
  .is-face .bridal_beauty-plan__card-inner {
    background-position: center -15px;
  }
}
.is-body .bridal_beauty-plan__card-inner {
  background: url(../img/img_plan03.jpg) -5.33vw top/cover no-repeat;
  border-radius: 0 0 10px 10px;
  display: flex;
  justify-content: flex-end;
}
@media all and (min-width: 768px) {
  .is-body .bridal_beauty-plan__card-inner {
    border-radius: 0;
    display: block;
    background-position: left top;
    background-size: 200% auto;
  }
}
.bridal_beauty-plan__card-head {
  color: #fff;
  background-color: #7f8197;
  border-radius: 10px 10px 0 0;
  text-align: center;
  line-height: 0;
  padding: 12px;
}
@media all and (min-width: 768px) {
  .bridal_beauty-plan__card-head {
    padding: 25px;
  }
}
@media all and (max-width: 767px) {
  .is-body .bridal_beauty-plan__card-head {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
  }
}
.bridal_beauty-plan__card-head-sub {
  width: 100%;
  margin: 0 auto;
}
@media all and (max-width: 767px) {
  .is-body .bridal_beauty-plan__card-head-sub {
    width: 35.33vw;
    margin: 0;
  }
}
.bridal_beauty-plan__card-head-main {
  width: 35.73vw;
  margin: 5px auto 0;
}
@media all and (min-width: 768px) {
  .bridal_beauty-plan__card-head-main {
    width: auto;
    margin-top: 8px;
  }
}
@media all and (max-width: 767px) {
  .is-body .bridal_beauty-plan__card-head-main {
    margin: 0;
  }
}
.bridal_beauty-plan__list {
  position: relative;
  z-index: 2;
  margin-top: 26vw;
}
@media all and (min-width: 768px) {
  .bridal_beauty-plan__list {
    margin-top: 200px;
  }
}
@media all and (max-width: 767px) {
  .is-body .bridal_beauty-plan__list {
    width: 36vw;
    margin-top: 0;
  }
}
.bridal_beauty-plan__item + .bridal_beauty-plan__item::before {
  content: "＋";
  display: block;
  text-align: center;
}
.bridal_beauty-plan__anchor {
  font-size: 1.6rem;
  font-weight: bold;
  text-align: center;
  line-height: 1.2;
  border-radius: 100px;
  display: block;
  padding: 10px;
}
@media all and (min-width: 768px) {
  .bridal_beauty-plan__anchor {
    font-size: 1.8rem;
    padding: 15px;
  }
}
.bridal_beauty-plan__anchor .sub {
  font-size: 1.2rem;
}
@media all and (min-width: 768px) {
  .bridal_beauty-plan__anchor .sub {
    font-size: 1.4rem;
  }
}
.is-skin .bridal_beauty-plan__anchor {
  background-color: #f5e0dd;
}
.is-face .bridal_beauty-plan__anchor {
  background-color: #fbd6e6;
}
.is-body .bridal_beauty-plan__anchor {
  background-color: #d9dff2;
}

/* .bridal_beauty-menu
================================================ */
.bridal_beauty-menu__head {
  width: 65.6vw;
  margin: 0 auto;
}
@media all and (min-width: 768px) {
  .bridal_beauty-menu__head {
    width: auto;
  }
}
@media all and (min-width: 768px) {
  .bridal_beauty-menu__list {
    width: 690px;
    margin: 0 auto;
  }
}
.bridal_beauty-menu__item {
  background-color: #be849a;
  border-radius: 10px;
  padding: 20px 8px 15px;
  position: relative;
}
@media all and (min-width: 768px) {
  .bridal_beauty-menu__item {
    padding: 40px 16px 30px;
  }
}
.bridal_beauty-menu__item::before {
  content: "";
  width: 11.33vw;
  height: 9.46vw;
  background: url(../img/ico_ribbon.png) left top/contain no-repeat;
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%) translateY(-30%);
}
@media all and (min-width: 768px) {
  .bridal_beauty-menu__item::before {
    width: 85px;
    height: 71px;
    transform: translateX(-50%) translateY(-24%);
  }
}
@media all and (min-width: 768px) {
  .bridal_beauty-menu__subhead {
    font-size: 2.4rem;
  }
}
.bridal_beauty-menu .c-table02 tr {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}
@media all and (min-width: 768px) {
  .bridal_beauty-menu .c-table02 tr {
    gap: 20px;
  }
}
.bridal_beauty-menu .c-table02 th {
  width: auto;
  color: #fff;
  border: none;
  font-size: 1.4rem;
  text-align: right;
  padding: 0;
}
@media all and (min-width: 768px) {
  .bridal_beauty-menu .c-table02 th {
    font-size: 1.8rem;
  }
}
.bridal_beauty-menu .c-table02 td {
  border: none;
  padding: 0;
  flex-shrink: 0;
}
.bridal_beauty-menu .c-table02 .c-price__main {
  color: #fff88c;
}
.bridal_beauty-menu__petit_hy_faceline-forehead::before {
  content: "　";
}

/* .bridal_beauty-bottom
================================================ */
.bridal_beauty__bottom-img {
  width: 71.6vw;
  margin-inline: auto;
}
@media all and (min-width: 768px) {
  .bridal_beauty__bottom-img {
    width: auto;
  }
}