html:has(.product-dialog[open]){
  overflow: hidden;
  overscroll-behavior: none;
}

.productdetails .c-button{
  transition: opacity var(--transition-default);
}

@media (hover: hover) {
  .productdetails .c-button:hover{
    opacity: 0.6;
  }
}


.global-contents{
  min-width: 0;
}
.productdetails {
  --inner-width: 92%;
  letter-spacing: 0.06em;
}

.c-breadcrumb{
  margin-bottom: 0;
}

.grid-container{
  overflow: hidden;
}
@media screen and (min-width: 768px) {

  .c-breadcrumb{
    width: min(95%, 120rem);
    margin-inline: auto;
  }

  .global-contents__inner{
    width: 100%;
  }

  .grid-container{
    margin-top: 2rem;
  }

  .productdetails {
    --inner-width: 100%;
  }
}
.productdetail .c-heading--border {
  margin-bottom: 1rem;
}
@media screen and (min-width: 768px) {
  .productdetail .c-heading--border {
    margin-bottom: 2rem;
  }
}
@media screen and (min-width: 768px) {
  .productdetail .grid-container {
    width: min(90%, 880px);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 40rem 1fr;
    column-gap: 6rem;
    margin-top: 0;
    overflow: visible;
  }
}
.productdetail .productdetail__imagearea .swiper:not(.swiper-initialized) {
  /* visibility: hidden; */
}
.productdetail__imagearea {
  width: 100vw;
}
@media screen and (min-width: 768px) {
  .productdetail__imagearea {
    width: 100%;
  }
}
.productdetail__imagearea .main-slider {
  width: 100vw;
  position: relative;
}
@media screen and (min-width: 768px) {
  .productdetail__imagearea .main-slider {
    width: 100%;
  }
}
.productdetail__imagearea .thumbnail-slider {
  width: 100%;
  margin-top: 1rem;
  padding-inline: 1rem;
}
.productdetail__imagearea .thumbnail-slider .swiper-slide {
  cursor: pointer;
}
.productdetail__imagearea .thumbnail-slider .swiper-slide-thumb-active {
  border: 1px solid var(--color-black);
  box-sizing: border-box;
}

.product__item--icon-place {
  display: flex;
  gap: 1.5rem;
  padding: 0.9rem 1.5rem;
  background-color: #FAF7F0;
}

.product__item--icon-place .product__icon--label {
  display: grid;
  grid-template-columns: 2rem auto;
  gap: 0.5rem;
  align-items: center;
  font-size: 1.3rem;
  font-weight: var(--fw-medium);
  letter-spacing: .1em;
  line-height: 1;
}

@media (min-width: 768px) {
  .product__item--icon-place{
    background-color: transparent;
  }

  .product__item--icon-place .product__icon--label {
    font-size: 1.5rem;
  }
}

.product__item--icon-place .product__icon--label::before {
  content: "";
  width: 100%;
  aspect-ratio: 1;
  background-repeat: no-repeat;
  background-size: contain;
}

.product__item--icon-place .product__icon--place::before {
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%3E%20%3Cg%20id%3D%22icon_-_map%22%20data-name%3D%22icon%20-%20map%22%20transform%3D%22translate(-56.524%20-2876)%22%3E%20%3Crect%20id%3D%22base%22%20width%3D%2220%22%20height%3D%2220%22%20transform%3D%22translate(56.524%202876)%22%20fill%3D%22rgba(255%2C255%2C255%2C0)%22%2F%3E%20%3Cg%20id%3D%22MAP%22%20transform%3D%22translate(-668.531%202620.165)%22%3E%20%3Cg%20id%3D%22%E3%83%91%E3%82%B9%22%20fill%3D%22%23f27649%22%3E%20%3Cpath%20d%3D%22M%20734.9009399414062%20273.5975646972656%20C%20733.8441162109375%20272.2863464355469%20730.9281616210938%20268.6201171875%20730.1588745117188%20267.145751953125%20C%20729.7588500976562%20266.379638671875%20729.5560302734375%20265.5493469238281%20729.5560302734375%20264.6778564453125%20C%20729.5560302734375%20261.7317810058594%20731.9529418945312%20259.3349914550781%20734.8991088867188%20259.3349914550781%20C%20737.84521484375%20259.3349914550781%20740.2420654296875%20261.7317810058594%20740.2420654296875%20264.6778564453125%20C%20740.2420654296875%20265.4956970214844%20740.0623168945312%20266.2803039550781%20739.7078247070312%20267.0098571777344%20C%20738.9613037109375%20268.546142578125%20735.9752197265625%20272.2761535644531%20734.9009399414062%20273.5975646972656%20Z%22%20stroke%3D%22none%22%2F%3E%20%3Cpath%20d%3D%22M%20734.8991088867188%20259.8349914550781%20C%20732.2286376953125%20259.8349914550781%20730.0560302734375%20262.0075073242188%20730.0560302734375%20264.6778564453125%20C%20730.0560302734375%20265.4679260253906%20730.23974609375%20266.2203674316406%20730.6021118164062%20266.9144592285156%20C%20731.2288208007812%20268.115478515625%20733.483642578125%20271.0266418457031%20734.9026489257812%20272.8021850585938%20C%20736.3486328125%20271.0061950683594%20738.6515502929688%20268.0395812988281%20739.2581176757812%20266.7913513183594%20C%20739.5792236328125%20266.1304321289062%20739.7420654296875%20265.4193725585938%20739.7420654296875%20264.6778564453125%20C%20739.7420654296875%20262.0075073242188%20737.5695190429688%20259.8349914550781%20734.8991088867188%20259.8349914550781%20M%20734.8991088867188%20258.8349914550781%20C%20738.1260375976562%20258.8349914550781%20740.7420654296875%20261.45068359375%20740.7420654296875%20264.6778564453125%20C%20740.7420654296875%20265.5923461914062%20740.531982421875%20266.4577941894531%20740.1575317382812%20267.2283935546875%20C%20739.2103881835938%20269.177490234375%20734.8991088867188%20274.3895263671875%20734.8991088867188%20274.3895263671875%20C%20734.8991088867188%20274.3895263671875%20730.6904907226562%20269.2454223632812%20729.715576171875%20267.3770751953125%20C%20729.2940673828125%20266.5697937011719%20729.0560302734375%20265.6517028808594%20729.0560302734375%20264.6778564453125%20C%20729.0560302734375%20261.45068359375%20731.6719970703125%20258.8349914550781%20734.8991088867188%20258.8349914550781%20Z%22%20stroke%3D%22none%22%20fill%3D%22%23f27649%22%2F%3E%20%3C%2Fg%3E%20%3Ccircle%20id%3D%22%E6%A5%95%E5%86%86%E5%BD%A2%22%20cx%3D%221.656%22%20cy%3D%221.656%22%20r%3D%221.656%22%20transform%3D%22translate(732.929%20266.066)%20rotate(-76.663)%22%20fill%3D%22%23fff%22%2F%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%3C%2Fsvg%3E');
}

.product__item--icon-place .product__icon--lesson-type::before {
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%3E%20%3Cg%20id%3D%22map%22%20transform%3D%22translate(-53%20-2877)%22%3E%20%3Crect%20id%3D%22base%22%20width%3D%2220%22%20height%3D%2220%22%20transform%3D%22translate(53%202877)%22%20fill%3D%22rgba(255%2C255%2C255%2C0)%22%2F%3E%20%3Cg%20id%3D%22pen%22%20transform%3D%22translate(51.113%202866.113)%22%3E%20%3Cpath%20id%3D%22%E3%83%91%E3%82%B9%22%20d%3D%22M12.7%2C2l3.527%2C3.527-9.7%2C9.7H3V11.7Z%22%20transform%3D%22translate(2.887%2011.773)%22%20fill%3D%22%23fff%22%20stroke%3D%22%23f27649%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%221.5%22%2F%3E%20%3Cline%20id%3D%22%E7%B7%9A_348%22%20data-name%3D%22%E7%B7%9A%20348%22%20x2%3D%223%22%20y2%3D%223%22%20transform%3D%22translate(6.5%2023)%22%20fill%3D%22none%22%20stroke%3D%22%23f27649%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%221.5%22%2F%3E%20%3Crect%20id%3D%22%E9%95%B7%E6%96%B9%E5%BD%A2_509%22%20data-name%3D%22%E9%95%B7%E6%96%B9%E5%BD%A2%20509%22%20width%3D%225%22%20height%3D%2213%22%20transform%3D%22translate(15.215%2014.023)%20rotate(45)%22%20fill%3D%22%23f27649%22%2F%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%3C%2Fsvg%3E');
}


.product-image__caption{
  display: block;
  margin-top: 3.6rem;
  text-align: center;
  font-size: 1.1rem;
}

.main-slider .swiper-pagination{
  width: 90%;
  left: 50%;
  transform: translateX(-50%);
  position: absolute;
  bottom: 2.7rem;
}

@media screen and (min-width: 768px) {
  .productdetail__imagearea .thumbnail-slider {
    padding-inline: 0;
  }
  .productdetail__imagearea .thumbnail-slider .swiper-wrapper {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 1.5rem;
  }
  .productdetail__imagearea .thumbnail-slider .swiper-slide {
    width: 100% !important;
  }

  .product-image__caption{
    margin-top: 3.1rem;
  }

}
.productdetail__descarea {
  /* width: var(--inner-width); */
  padding: 0 2.5rem;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .productdetail__descarea {
    margin-top: 2rem;
  }
}

.reservation-link{
  position: fixed;
  left: 50%;
  bottom: 1.5rem;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: unset;
  padding: 0;
  width: 34.5rem;
  height: 4rem;
  border-radius: 50px;
  opacity: 0;
  visibility: hidden;
  z-index: 1000;
  transition: opacity var(--transition-default);
  font-size: 1.4rem;
}

.reservation-link.is-visible{
  opacity: 1;
  visibility: visible;
}

.lesson-desc-icon{
  position: static;
  margin-bottom: 2rem;
  gap: 0.5rem;
}

.product__icon{
  padding: .4rem .8rem;
  font-size: 1.1rem;
  border-radius: 0.4rem;
}

.product__icon:empty{
  display: none;
}

.lesson-desc-outline{
  padding: 2rem;
  background-color: var(--color-secondary);
  font-weight: var(--fw-medium);
  border-radius: 1.5rem;
  font-size: 1.4rem;
  letter-spacing: 0.06em;
  line-height: 1.4;
}

.productdetail__descarea .product__desc--icon {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-block: 1rem;
}
.productdetail__descarea .product__desc--sellterm {
  font-size: 1.2rem;
  margin-block: 1rem;
}
.productdetail__descarea .product__desc--catchcopy {
  font-size: 1.4rem;
  letter-spacing: 0.02em;
  line-height: 1.6;
}
.productdetail__descarea .lesson-desc-name {
  margin-bottom: 2.5rem;
  font-size: 2.1rem;
  font-weight: var(--fw-bold);
  letter-spacing: 0.06em;
  line-height: 1.5;
}
@media screen and (min-width: 768px) {

  .product__icon{
    font-size: 1.3rem;
  }

  .lesson-desc-icon{
    margin-bottom: 2.5rem;
  }

  .lesson-desc-outline{
    padding: 2.5rem;
    border-radius: 1rem;
    font-size: 1.5rem;
    line-height: 1.5;
  }


  .productdetail__descarea .lesson-desc-name {
    font-size: 2.6rem;
  }
  .productdetail__descarea{
    padding: 0;
  }
}
.productdetail__descarea .product__desc--id {
  font-size: 1.2rem;
  margin-block: 1rem;
}
.productdetail__descarea .product__desc--outline {
  font-size: 1.4rem;
  margin-block: 1rem;
}
.productdetail__descarea .product__desc--price {
  margin-top: 1.5rem;
}
.productdetail__descarea .product__desc--price .product__price--numeric {
  font-size: 2.5rem;
}
.productdetail__descarea .product__desc--price .product__price--tax {
  font-size: 1.2rem;
}
.productdetail__buyarea .product__count {
  display: grid;
  grid-template-columns: max-content 8rem;
  column-gap: 1rem;
  align-items: center;
  margin-block: 1rem;
}
.productdetail .variation__item {
  border-bottom: 1px solid var(--color-gray-200);
  display: grid;
  grid-template-columns: 10% 1fr 35%;
  align-items: center;
  column-gap: 1rem;
  padding-block: 2rem;
}
.productdetail .variation__item:first-of-type {
  border-top: 1px solid var(--color-gray-200);
}
.productdetail .variation__item--container {
  margin-block: 2rem;
}
.productdetail .variation__item--variation-name2 {
  display: flex;
  align-items: center;
  column-gap: 0.5rem;
  font-size: 1.3rem;
  font-weight: var(--fw-bold);
}
.productdetail .variation__item .variation__item--stock {
  display: flex;
  align-items: center;
  column-gap: 0.5rem;
}
.productdetail .variation__item--actions {
  display: grid;
  row-gap: 0.25rem;
}
.productdetail .variation__item--actions .c-button {
  min-width: auto;
  width: 100%;
  padding-inline: 0;
  padding-block: 1rem;
}
.productdetail .variation__panel {
  margin-block: 2rem;
}
.productdetail .variation__panel--wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}
.productdetail .variation__panel--heading {
  font-size: 1.4rem;
  margin-block: 1rem;
}
.productdetail .variation__panel--item {
  border: 1px solid var(--color-gray-200);
  border-radius: 0.5rem;
  color: inherit;
  padding: 1.5rem;
  text-decoration: none;
}
.productdetail .variation__panel--item.selected {
  border: 2px solid var(--color-black);
}
.productdetail .variation__matrix {
  margin-block: 2rem;
  overflow-x: auto;
}
.productdetail .variation__matrix--table {
  --table-border: 1px solid var(--color-black);
  width: max-content;
  border: var(--table-border);
  border-collapse: collapse;
}
.productdetail .variation__matrix--table tr:not(:last-of-type) {
  border-bottom: var(--table-border);
}
.productdetail .variation__matrix--table tr > *:not(:last-child) {
  border-right: var(--table-border);
}
.productdetail .variation__matrix--table th, .productdetail .variation__matrix--table td {
  padding-block: 1rem;
  padding-inline: 1rem;
}

.productdetail .variation__matrix .c-form__input--radio-nolabel {
  display: grid;
  place-content: center;
}
.productdetail .product__option {
  margin-block: 1rem;
}
.productdetail .product__share {
  width: 100%;
  background-color: var(--color-gray-200);
  margin-block: 1rem;
  padding: 2rem;
}
.productdetail .product__detail--share{
  display: flex;
  align-items: center;
  gap: 2rem;
  margin: 2rem 0 4rem;
}

.productdetail .product__detail--share .lesson-desc-share__heading{
  font-size: 1.3rem;
}

.productdetail .product__share--list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2rem;
}
.productdetail .product__share--item {
  width: 3rem;
  aspect-ratio: 1;
}
.productdetail .product__share--item-x {
  padding: 0.5rem;
}
.productdetail .product__addcart {
  display: grid;
  row-gap: 1rem;
}
.productdetail .product__arrivalmail {
  --inner-width: 100%;
  padding: 2rem;
}
.productdetail .product__tabarea {
  margin-block: 4rem;
}
.productdetail .product__favorite--popup {
  width: min(35rem, 90%);
  background-color: var(--color-white);
  border: 1px solid var(--color-gray-200);
  display: grid;
  row-gap: 2rem;
  padding: 4rem;
  position: fixed;
  top: 50%;
  right: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
}
.productdetail .product__favorite--popup .c-button {
  min-width: 0;
}
.productdetail .product__favorite--add .product__favorite-icon{
  --color-favorite-accent: #E25858;
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 32rem;
  right: 1rem;
  text-decoration: none;
  z-index: 2;
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2045%2045%22%3E%3Cg%20transform%3D%22translate(-308%20-504)%22%3E%3Crect%20width%3D%2245%22%20height%3D%2245%22%20fill%3D%22%2389827d%22%20opacity%3D%22.6%22%20rx%3D%2222.5%22%20transform%3D%22translate(308%20504)%22%2F%3E%3Cpath%20fill%3D%22rgba(255%2C255%2C255%2C0)%22%20d%3D%22M316%20512h30v30h-30z%22%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%221.8%22%20d%3D%22m339.177%20527.212-2.285%202.288-6.391%206.39-8.677-8.678a4.52%204.52%200%200%201%206.393-6.39l2.284%202.278%202.282-2.282a4.52%204.52%200%201%201%206.393%206.39Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
  background-repeat: no-repeat;
  background-size: contain;
}

.productdetail .product__favorite--add .product__favorite-icon.product__favorite-icon--done{
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2045%2045%22%3E%3Cg%20transform%3D%22translate(-308%20-504)%22%3E%3Crect%20width%3D%2245%22%20height%3D%2245%22%20fill%3D%22%23fff%22%20opacity%3D%22.7%22%20rx%3D%2222.5%22%20transform%3D%22translate(308%20504)%22%2F%3E%3Cpath%20fill%3D%22rgba(255%2C255%2C255%2C0)%22%20d%3D%22M316%20512h30v30h-30z%22%2F%3E%3Cpath%20fill%3D%22%23fa7b63%22%20stroke%3D%22%23fa7b63%22%20stroke-width%3D%221.8%22%20d%3D%22m339.177%20527.212-2.285%202.288-6.391%206.39-8.677-8.678a4.52%204.52%200%200%201%206.393-6.39l2.284%202.278%202.282-2.282a4.52%204.52%200%201%201%206.393%206.39Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
}

@media screen and (min-width: 768px) {
  .productdetail .product__favorite--add .product__favorite-icon{
    top: 34.5rem;
  }
}

@media (hover: hover) {
  .productdetail .product__favorite--add:hover .product__favorite--icon path {
    fill: var(--color-favorite-accent);
  }
}
.productdetail .product__favorite--icon {
  width: 3.5rem;
  aspect-ratio: 1;
}
.productdetail .product__favorite--icon path {
  transition: fill var(--transition-default);
}
.productdetail .product__favorite--icon.added path {
  fill: var(--color-favorite-accent);
}
.productdetail .product__favorite--count {
  color: var(--color-black);
  text-align: center;
  line-height: 1;
}
.productdetail .product__desc--fullwidth {
  grid-column: 1/3;
  margin-block: 2rem;
}

.product__history,
.product__upsell,
.product__crosssell {
  width: var(--inner-width);
  margin-inline: auto;
  margin-block: 2rem;
}

.product__content--bottom + .product__content--bottom {
  margin-top: 5rem;
}

.c-heading + .product__container {
  margin-top: 2rem;
}

.lesson-desc-info-table{
  margin-top: 2rem;
  --table-title-width: 44.6153846154%;
}

.lesson-desc-info-table > div{
  display: flex;
  border-bottom: 1px solid var(--color-project-ui-border-primary);
}

.lesson-desc-info-table > div:first-child{
  border-top: 1px solid var(--color-project-ui-border-primary);
}

.lesson-desc-info-table dt,
.lesson-desc-info-table dd{
  font-weight: var(--fw-medium);
}

.lesson-desc-info-table dt{
  display: flex;
  align-items: center;
  width: var(--table-title-width);
  padding-right: 1rem;
  padding-block: 0.8rem;
  gap: 0.5rem;
  font-size: 1.3rem;
}

.lesson-desc-info-table dt img{
  width: 2.5rem;
  height: auto;
}

.lesson-desc-info-table dd{
  display: flex;
  align-items: center;
  flex: 1;
  font-size: 1.4rem;
}

.lesson-desc-info-table dd span{
  margin-left: 0.8rem;
  font-size: 1.2rem;
  font-weight: var(--fw-regular);
}

@media screen and (min-width: 768px) {
  .lesson-desc-info-table{
    --table-title-width: 34.2857142857%;
  }

  .lesson-desc-info-table dd{
    font-size: 1.4rem;
  }

  .lesson-desc-info-table dd span{
    margin-left: 0.8rem;
    font-size: 1.2rem;
    font-weight: var(--fw-regular);
  }
  
  .productdetail .product__detail--share{
    justify-content: flex-end;
    margin-bottom: 0;
  }

  .productdetail .product__desc--fullwidth{
    margin-bottom: 0;
  }

}


@media screen and (max-width: 767px) {
  .product__history .product__container,
  .product__upsell .product__container,
  .product__crosssell .product__container {
    max-width: 35.8rem;
    overflow: hidden;
    overflow-x: auto;
    display: flex;
    padding-bottom: 0.5rem;
  }
  .product__history .product__container .product__item,
  .product__upsell .product__container .product__item,
  .product__crosssell .product__container .product__item {
    width: 12rem;
    -ms-flex-negative: 0;
    flex-shrink: 0;
  }
  .product__history .product__container .product__item {
    width: 12rem;
    -ms-flex-negative: 0;
    flex-shrink: 0;
  }
}
@media screen and (min-width: 768px) {
  .product__history .product__container,
  .product__upsell .product__container,
  .product__crosssell .product__container {
    --grid-columns: 6;
  }
}
/* .product__review {
  width: var(--inner-width);
  margin-inline: auto;
  margin-block: 2rem;
}
.product__review .product__container {
  --grid-columns: 3;
} */
@media screen and (min-width: 768px) {
  .product__review{
    width: min(90%, 880px);
    margin: 0 auto;
  }

  .product__review .product__container {
    --grid-columns: 6;
  }
}

.product-desc__review{
  padding: 2rem 0;
}

.review-list{
  display: grid;
  gap: 1rem;
  padding: 0 1.5rem;
}

.review-item{
  padding: 2rem;
  border-radius: 0.5rem;
  background-color: var(--color-project-bg-beige-default);
}

.review-item .review-item-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px dotted var(--color-project-ui-placeholder);
}

.review-item__rating-inner{
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.review-item__rating-inner svg{
  width: 1.4rem;
  height: auto;
}

.review-item__date{
  font-size: 1.3rem;
  font-weight: var(--fw-medium);
  color: #89827D;
} 

.review-item__heading{
  margin-bottom: 1rem;
  font-size: 1.3rem;
  font-weight: var(--fw-medium);
  line-height: 1.5;
}

.review-item__comment{
  margin-bottom: 2rem;
  font-size: 1.3rem;
  line-height: 1.5;
}

.review-item__name{
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: 1.3rem;
  font-weight: var(--fw-light);
  line-height: 1.5;
  color: #89827D;
}

.review-item__name::before{
  content: '';
  display: block;
  width: 2.5rem;
  height: auto;
  aspect-ratio: 1;
  background-image: url(../Contents/ThemeImage/product/detail/icon_user.svg);
  background-repeat: no-repeat;
  background-size: contain;
}

.product-desc__review .button__group{
  margin-top: 2.5rem;
}

.product-desc__review .button__group:empty{
  display: none;
}

.product-desc__review .button__group .c-button{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  min-width: unset;
  width: 24.5rem;
  height: 5.5rem;
  border-radius: 50px;
  border-color: var(--color-project-ui-border-primary);
  margin: 0 auto;
  color: var(--color-project-text-default);
  font-weight: var(--fw-medium);
}

.product-desc__review .button__group .c-button.c-button__primary{
  color: var(--color-white);
}

.product-desc__review .button__group .c-button.c-button::after{
  content: '';
  width: 2rem;
  height: 2rem;
  aspect-ratio: 1/1;
  background-image: url(../Contents/ThemeImage/product/detail/icon_button_arrow_white.svg);
}

.product-desc__review .button__group .c-button__secondary::after{
  display: none;
}

.product-desc__review .button__group .c-button__secondary.c-button-arrow::after{
  display: block;
  background-image: url(../Contents/ThemeImage/product/detail/icon_button_arrow.svg);
}

.product-desc__review .button__group:not(:has(.c-button)){
  display: none;
}

.product__review .c-pager{
  margin-top: 1.5rem;
}

#pagination + .review-list{
  margin-top: 2rem;
}

.review-all-button{
  display: block;
  margin: 2rem 0;
  text-align: center;
}

.product__upsell,
.product__crosssell {
  grid-column: 1/3;
}

.product-desc-heading{
  padding: 0 1.5rem 2rem;
}

.product-desc__schedule{
  padding: 2rem 0 4rem;
  border-block: .5rem solid #F4F4F4;
}

.product-desc__schedule-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1.5rem 2rem;
}

.product-desc__schedule-head .product-desc-heading{
  padding: 0;
  margin-bottom: 0;
}

.product-desc__schedule-pattern {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.product-desc__schedule-pattern li{
  display: flex;
  align-items: center;
  gap: 0.2rem;
  font-size: 1.3rem;
  font-weight: var(--fw-medium);

}

.product-desc__schedule-pattern li svg{
  width: 2.5rem;
}

.product-desc__schedule-table{
  position: relative;
  /* table-layout: fixed; */
  width: 100%;
  border-spacing: 0;
  letter-spacing: 0.02em;
}

.product-desc__schedule-table tbody{
  display: grid;
  grid-template-columns: 22.6666666667% 16% 18.6666666667% 42.6666666667%;
}

.product-desc__schedule-table tbody tr{
  display: grid;
  grid-column: span 4;
  grid-template-columns: subgrid;
}

.product-desc__schedule-table tr td{
  display: flex;
  align-items: center;
  justify-content: center;
  padding-block: 1rem;
  border-bottom: 1px solid #E5E5E5;
  font-weight: var(--fw-medium);
}

.product-desc__schedule-table tr:first-child td{
  border-top: 1px solid #E5E5E5;
}

.product-desc__schedule-table tr td.product-desc__schedule-table-data--date{
  align-items: flex-start;
  padding-inline: 1.5rem 0.5rem;
  /* width: 22.6666666667%; */
}

.product-desc__schedule-table tr td.product-desc__schedule-table-data--time{
  padding-inline: 0.5rem;
  font-size: 1.4rem;
  line-height: 1.2;
  /* width: 16%; */
}

.product-desc__schedule-table tr td.product-desc__schedule-table-data--status{
  /* width: 18.6666666667%; */
}

.product-desc__schedule-table tr td.product-desc__schedule-table-buttons{
  /* width: 42.6666666667%; */
  padding-inline: 0.5rem 1.5rem;
}

.product-desc__schedule-table-data--date{
  vertical-align: top;
  font-size: 1.5rem;
  white-space: nowrap;
}

.product-desc__schedule-table-data--status .product-desc__schedule-status-icon {
  display: none;
  place-content: center;
  text-align: center;
}

.product-desc__schedule-table-data--status .product-desc__schedule-status-icon svg {
  width: 2.9rem;
}

.product-desc__schedule-table-data--status[data-sale-status="on-sale"] .product-desc__schedule-status-icon[data-sale-status="on-sale"],
.product-desc__schedule-table-data--status[data-sale-status="last"] .product-desc__schedule-status-icon[data-sale-status="last"],
.product-desc__schedule-table-data--status[data-sale-status="finished"] .product-desc__schedule-status-icon[data-sale-status="finished"] {
  display: grid;
}

.product-desc__schedule-table-data--status[data-sale-status="reception"] .product-desc__schedule-status-icon[data-sale-status="reception"],
.product-desc__schedule-table-data--status[data-sale-status="cancel"] .product-desc__schedule-status-icon[data-sale-status="cancel"] {
  display: grid;
  color: var(--color-project-calendar-cancel);
  font-size: 1.5rem;
  font-weight: var(--fw-medium);
  letter-spacing: normal;
  line-height: calc(10 / 9);
  word-break: keep-all;
}

.product-desc__schedule-table-data--status[data-sale-status="reception"] .product-desc__schedule-status-icon[data-sale-status="reception"]{
  color: var(--color-project-calendar-reception);
}

.viewmore-button{
  display: grid;
  grid-template-columns: auto 1rem;
  align-items: center;
  column-gap: .5rem;
  margin-block: 1.5rem 0;
  margin-inline: auto;
  padding-block: .5rem .35rem;
  border-bottom: solid 1px var(--color-text-default);
  font-weight: var(--fw-regular);
  letter-spacing: .06em;
  line-height: 1;
  font-family: var(--font-main);
  font-size: 1.4rem;
}

.viewmore-button::after {
  content: "";
  width: 1rem;
  aspect-ratio: 1;
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2210%22%20height%3D%2210%22%20viewBox%3D%220%200%2010%2010%22%3E%20%3Cg%20id%3D%22arrow%22%20transform%3D%22translate(10)%20rotate(90)%22%3E%20%3Crect%20id%3D%22bg%22%20width%3D%2210%22%20height%3D%2210%22%20fill%3D%22rgba(237%2C125%2C84%2C0)%22%2F%3E%20%3Cpath%20id%3D%22%E3%83%91%E3%82%B9%22%20d%3D%22M0%2C7%2C4%2C3.5%2C0%2C0%22%20transform%3D%22translate(3%201.5)%22%20fill%3D%22none%22%20stroke%3D%22%23382d29%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%221%22%2F%3E%20%3C%2Fg%3E%3C%2Fsvg%3E');
  background-repeat: no-repeat;
  background-size: contain;
  transition: scale var(--transition-default);
}

.viewmore-button[data-state="active"]::after {
  scale: 1 -1;
}

.product-desc__schedule-button .c-button{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 14rem;
  height: 3.5rem;
  min-width: unset;
  line-height: 1;
  letter-spacing: inherit;
  padding-block: 0.7rem;
  padding-inline: 0.5rem;
  border-radius: 50px;
}

.product-desc__schedule-button[data-sale-status="finished"] .c-button{
  color: var(--color-text-default);
  font-size: 1.3rem;
  background-color: transparent;
  font-weight: var(--fw-medium);
  border: 0;
  opacity: 1;
}

.product-desc__schedule-button{
  text-align: center;
}

.viewmore-button-body{
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: 14rem;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 2rem;
  background: linear-gradient(rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 61.58%, #fff 100%);
  text-align: center;
}

.viewmore-button-body.is-open{
  height: auto;
  position: relative;
}

.product-desc__schedule-table .product-desc__schedule-table-tfoot td{
  padding-block: 0;
  border-top: 0 !important;
  border-bottom: 0 !important;
}

.js-expandScheduleContent{
  display: block;
  overflow: hidden;
  opacity: 0;
  transition: height var(--transition-default); 
  will-change: height;
}

.js-expandScheduleContent.is-initialized {
  opacity: 1; 
}

.product-desc__lesson-info{
  padding: 2rem 0;
}

@media screen and (max-width: 767px) {
  .product-desc__lesson-info:not(:has(.product-desc__lesson-info__text)){
    padding: 2rem 1.5rem;
  }
}

.product-desc__lesson-info .product-desc__lesson-info__text-wrap{
  position: relative;
}

.product-desc__lesson-info .product-desc__lesson-info__text{
  padding: 0 1.5rem;
  font-size: 1.4rem;
  line-height: 1.7;
}

.product-desc__caution-area{
  padding: 2rem 1.5rem 4rem;
  border-bottom: .5rem solid #F4F4F4;
}

.product-desc__caution{
  padding: 2rem 2rem 3rem;
  border: 1px solid #EA3A3B;
  border-radius: 1rem;
}

.product-desc__caution-heading{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
  color: #EA3A3B;
  text-align: center;
  line-height: 1;
}

.product-desc__caution-heading::before,
.product-desc__caution-heading::after{
  content: '';
  display: block;
  width: 2rem;
  height: 1.83rem;
  background-image: url(../Contents/ThemeImage/product/detail/icon_caution.svg);
  background-repeat: no-repeat;
}

.product-desc__caution-area p,
.product-desc__caution-text{
  font-size: 1.4rem;
  line-height: 1.7;
}

.product__recommend{
    width: 100%;
    margin-block: 0;
    padding-block: 2rem 5rem;
    border-top: solid 4px var(--color-project-bg-beige-default);
}

.product__recommend .product__container{
  position: relative;
}

.product__container.js-recommendSlider{
  display: block;
  width: 100%;
  margin-block: 0;
  padding-block: 2rem 5rem;
  /* border-top: solid 4px var(--color-project-bg-beige-default); */
  overflow: hidden;
  position: relative;
  /* display: none; */
  opacity: 0;
  width: 100%;
  /* max-width: 88rem; */
  margin: 0 auto;
  padding: 0 1.5rem;
  overflow: hidden;
  height: 26.5rem;
  transition: opacity var(--transition-default);
}

.product__recommend:not(:has(.swiper-slide)){
  display: none;
}

.product__container.js-recommendSlider:has(.swiper-initialized){
  height: auto;
  opacity: 1;
}

.product-dialog{
  position: fixed;
  display: flex;
  align-items: flex-end;
  margin: 0 auto;
    width: 100%;
  height: 100%;
  background-color: transparent;
  border: none;
  padding: 0;
  max-width: 100%;
  max-height: 100%;
  z-index: 1000;
}

.product-dialog__bg{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(51,51,51,0.6);
  backdrop-filter: blur(3px);
  --webkit-backdrop-filter: blur(3px);
  z-index: 1;
}

.product-dialog__content{
  position: relative;
  width: 100%;
  height: 90svh;
  overflow: auto;
  background-color: var(--color-white);
  padding-bottom: 11.1rem;
  border-radius: 1.5rem 1.5rem 0 0;
  z-index: 2;
}

.product-dialog__content:has(.product-dialog__terms){
  padding-bottom: 3rem;
}

.product-dialog__content .c-form__item{
  margin-top: 2rem;
}

.product-dialog__lead{
  margin-bottom: 3rem;
}

.product-dialog__lead--caution{
  font-size: 1.2rem;
}

.product-dialog__content:has(.product-dialog__terms) .product-dialog__lead{
  margin-bottom: 2rem;
}

.product-dialog__heading{
  position: relative;
  padding: 1.8rem 0.9rem;
  font-size: 1.7rem;
  background-color: var(--color-white);
  border-bottom: 1px solid #BBBBBB;
}

.product-dialog__close{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 0.9rem;
  font-size: 1.7rem;
}

.product-dialog__content .c-button{
  min-width: unset;
  width: 32.5rem;
  border-radius: 50px;
}

.product-dialog__content:has(.product-dialog__terms) .button__group{
  margin-top: 0;
}

.product-dialog__content .c-form__item{
  font-weight: var(--fw-medium);
}

.product-dialog__content .c-form__item dt{
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.product-dialog__content .c-form__item dd{
  margin-top: 1rem;
}

.product-dialog__content .c-form__item .product-dialog__text-label{
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.product-dialog__content .c-form__item .product-dialog__text-label::before{
  content: '';
  display: block;
  width: 1.2rem;
  height: auto;
  aspect-ratio: 1;
  background-color: #382D29;
  border-radius: 1px;
}

.product-dialog__content:has(.product-dialog__terms) .form__section--content{
  padding-bottom: 0;
}

.product-dialog__terms{
  margin: 0 auto;
  border-radius: 0.5rem;
  border: 1px solid #DDD;
  padding: 2rem;
  margin: 0 auto;
  width: 100%;
  max-height: 42.5rem;
  overflow-y: auto;
  overflow-x: hidden;
  line-height: 1.6;
}

.product-dialog__terms-check{
  margin: 2rem 0;
}

.product-dialog__terms-check .c-form__input--check{
  justify-content: center;
}


@media screen and (min-width: 768px){

  .reservation-link{
    display: none;
  }

  .product__container.js-recommendSlider{
    overflow: visible;
    max-width: unset;
  }

  .product-desc__review{
    padding: 3rem 0 5.5rem;
  }

  .review-list{
    padding: 0;
  }

  .review-item{
    padding: 3rem 4rem;
    border-radius: 1rem;
  }

  .review-item__rating-inner{ 
    gap: 0.4rem;
  }

  .review-item__rating-inner svg{
    width: 1.8rem;
  }

  .review-item__date{
    font-size: 1.4rem;
  } 

  .review-item__heading{
    font-size: 1.8rem;
    line-height: 1.25;
  }

  .review-item__comment{
    font-size: 1.5rem;
  }

  .review-item__name{
    font-size: 1.5rem;
  }

  .review-item__name::before{
    width: 2.5rem;
  }

  .product-desc__review .button__group{
    margin-top: 3.5rem;
  }

  .c-heading--large{
    font-size: 2.4rem;
  }
  
  .productdetail .product-desc__schedule-wrap {
    padding: 4rem 0;
    background-color: var(--color-project-bg-beige-default);
  }
    
  .product-desc__schedule{
    padding: 3rem 0;
    width: min(90%, 880px);
    border-block: 0;
    margin: 0 auto;
    border-radius: 1rem;
    background-color: var(--color-white);
  }

  .product-desc-heading{
    padding: 0;
    margin-bottom: 2.4rem;
    line-height: 1.5;
  }

  .product-desc-heading br{
    display: none;
  }

  .product-desc__schedule-head{
    padding: 0 3rem;
    margin-bottom: 2.4rem;
  }

  .product-desc__schedule-table tbody{
    justify-content: center;
    grid-template-columns: 24.5rem 17rem 10rem 36.5rem;
  }

  .product-desc__schedule-table tbody tr{
    display: grid;
    grid-column: span 4;
    grid-template-columns: subgrid;
  }

  .product-desc__schedule-table tr td{
    padding-block: 1.3rem;
  }

  .product-desc__schedule-table tr td.product-desc__schedule-table-data--date{
    padding-inline: min(55.1%,13.5rem) 1rem;
    justify-content: flex-start;
    font-size: 1.8rem;
  }

  .product-desc__schedule-table tr td.product-desc__schedule-table-data--time{
    padding-inline: 0 1rem;
    font-size: 1.6rem;
    justify-content: flex-start;
  }
  
  .product-desc__schedule-table tr td.product-desc__schedule-table-data--time br{display: none;}

  .product-desc__schedule-table tr td.product-desc__schedule-table-buttons{
    padding-inline: 0.5rem 1.5rem;
  }

  .product-desc__schedule-table-data--date{
    font-size: 1.5rem;
  }

  .product-desc__schedule-table-data--date span{
    height: 100%;
    display: flex;
    align-items: center;
  }

  .product-desc__schedule-table-data--status .product-desc__schedule-status-icon svg {
    width: 4.1rem;
  }

  .product-desc__schedule-table-data--status[data-sale-status="reception"] .product-desc__schedule-status-icon[data-sale-status="reception"],
  .product-desc__schedule-table-data--status[data-sale-status="can el"] .product-desc__schedule-status-icon[data-sale-status="cancel"] {
    font-size: 1.5rem;
  }

  .viewmore-button{
    grid-template-columns: auto 1.5rem;
    margin-block: 3rem 0;
    padding-block: .5rem .3rem;
    font-size: 1.6rem;
  }

  .viewmore-button::after {
    content: "";
    width: 1rem;
    aspect-ratio: 1;
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2210%22%20height%3D%2210%22%20viewBox%3D%220%200%2010%2010%22%3E%20%3Cg%20id%3D%22arrow%22%20transform%3D%22translate(10)%20rotate(90)%22%3E%20%3Crect%20id%3D%22bg%22%20width%3D%2210%22%20height%3D%2210%22%20fill%3D%22rgba(237%2C125%2C84%2C0)%22%2F%3E%20%3Cpath%20id%3D%22%E3%83%91%E3%82%B9%22%20d%3D%22M0%2C7%2C4%2C3.5%2C0%2C0%22%20transform%3D%22translate(3%201.5)%22%20fill%3D%22none%22%20stroke%3D%22%23382d29%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%221%22%2F%3E%20%3C%2Fg%3E%3C%2Fsvg%3E');
    background-repeat: no-repeat;
    background-size: contain;
    transition: scale var(--transition-default);
  }

  .viewmore-button[data-state="active"]::after {
    scale: 1 -1;
  }

  .product-desc__schedule-button .c-button{
    width: 20rem;
    height: 4rem;
  }
  
  .viewmore-button-body{
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 14rem;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: 2rem;
    background: linear-gradient(rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 40%, #fff 100%);
    text-align: center;
  }

  .viewmore-button-body.is-open{
    padding-bottom: 0;
  }

  .product-desc__lesson-info{
    width: min(90%, 880px);
    margin: 0 auto;
    padding: 5rem 0 2.5rem;
  }

  .product-desc__lesson-info .product-desc__lesson-info__text{
    padding: 0;
    font-size: 1.6rem;
    line-height: 1.8;
  }

  .product-desc__caution-area{
    padding: 2.5rem 0 5rem;
  }

  .product-desc__caution-area:not(:has(.product-desc__caution)) .product-desc__caution-area-inner{
    width: min(90%, 880px);
    margin: 0 auto;
  }

  .product-desc__caution{
    width: min(90%, 880px);
    margin: 0 auto;
    padding: 2rem 2rem 3rem;
  }


  .product-desc__caution-area p{
    font-size: 1.4rem;
  }

  .product-desc__caution-text{
    font-size: 1.6rem;
    line-height: 1.8;
  }

  .product__recommend{
    padding-block: 3rem 5rem;
    border-top-width: 5px;
  }

  .product__recommend .product__container{
    display: block;
  }

  .product__container.js-recommendSlider{
    padding: 0;
    height: 28.3rem;
  }

  .product__container.js-recommendSlider:has(.swiper-initialized){
    display: block;
  }

  .product-dialog{
    width: 100%;
    align-items: center;
  }

  .product-dialog .form__section--content{
    padding: 0;
    padding: 2rem 7rem;
    padding-bottom: 0;
    width: 100%;
  }

  .product-dialog__bg{
    width: 100vw;
  }

  .product-dialog__content{
    width: 640px;
    height: auto;
    max-height: 64rem;
    padding-bottom: 9rem;
    border-radius: 1rem;
  }

  .product-dialog__content:has(.product-dialog__terms){
    padding-bottom: 3.4rem;
  }

  .product-dialog__heading{ 
    padding: 1.5rem 0.5rem;
    font-size: 2rem;
  }

  .product-dialog__close{
    right: 0.5rem;
  }

  .product-dialog__content .c-form__item .product-dialog__text-label{
    gap: 0.7rem;
  }

  .product-dialog__content .c-form__item .product-dialog__text-label::before{
    width: 1.5rem;
  }

  .product-dialog__terms{
    width: 50rem;
    max-height: 39rem;
  }

  .product-dialog__terms-check{
    margin: 1.5rem 0;
  }

  .product__recommend-content{
    width: min(90%, 880px);
    margin: 0 auto;
  }

  #dvCheckList.product__history .js-historySlider,
  #dvCheckList.product__history .c-heading{
    max-width: unset;
  }

  #dvCheckList.product__history .c-heading,
  #dvCheckList.product__history .product__container {
    width: min(90%, 880px);
    margin-inline: auto;
  }

  .product-desc__schedule-button[data-sale-status="finished"] .c-button{
    font-size: 1.5rem;
  }
 
}

.swiper-button-prev, .swiper-button-next{
  top: var(--swiper-navigation-top-offset);
  transform: translateY(-50%);
}

.swiper-button-prev::after,
.swiper-button-next::after{
  display: none;
}

.productdetails .swiper-button-next, .productdetails .swiper-rtl .swiper-button-prev{
  right: var(--swiper-navigation-sides-offset);
}

.productdetails .swiper-button-prev, .productdetails .swiper-rtl .swiper-button-next{
  left: var(--swiper-navigation-sides-offset);
}

#dvCheckList.product__history .js-historySlider [class*="swiper-button-"]{
  --swiper-navigation-top-offset: 30%;
}

.productdetails .swiper-button-prev, .productdetails .swiper-rtl .swiper-button-next,
.productdetails .swiper-button-next, .productdetails .swiper-rtl .swiper-button-prev{
  --swiper-navigation-top-offset: 50%;
  width: 4rem;
  height: 4rem;
}

.main-slider .swiper-button-prev,
.main-slider .swiper-button-next{
  --swiper-navigation-sides-offset: -.5rem;
}

.main-slider {

}

.product__container:has(.swiper-pagination-lock) [class*="swiper-button"]{
  display: none;
}

.product__recommend .product__item--name{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

.product__recommend .js-recommendSlider [class*="swiper-button-"]{
  --swiper-navigation-top-offset: 28%;
}


@media screen and (min-width: 768px){

  .main-slider .swiper-button-prev,
  .main-slider .swiper-button-next{
    --swiper-navigation-sides-offset: -2rem;
  }

  .main-slider .swiper-slide img{
    border-radius: 2.5rem;
    overflow: hidden;
  }

}