@charset "UTF-8";
.web_font, .list_style li dl dd > div .day, .ttl_style .ttl .en {
  font-family: 'Marcellus', serif;
  font-weight: normal;
  line-height: 1;
  letter-spacing: 0; }

.ls {
  letter-spacing: 0.28rem; }

@media screen and (max-width: 736px) {
  .ls {
    letter-spacing: 0.24rem; } }
.btn_hover {
  transition: all 0.3s 0s cubic-bezier(0, 0.49, 0.08, 1);
  opacity: 1; }
  .btn_hover:hover {
    opacity: 0.5; }

.deco_star_left {
  position: relative; }
  .deco_star_left:after {
    display: block;
    content: '';
    width: 2.7415143603vw;
    height: 3.0678851175vw;
    background: url("../common/images/deco_star.png") left top no-repeat;
    background-size: 2.7415143603vw 3.0678851175vw;
    position: absolute;
    bottom: 0;
    opacity: 0;
    left: 15.6657963446vw;
    margin-bottom: -1.501305483vw;
    transition: all 0.6s 0s cubic-bezier(0, 0.49, 0.08, 1);
    transform: rotate(180deg); }
  .deco_star_left.is-scroll:after {
    left: 2.6109660574vw;
    opacity: 1;
    transform: rotate(0); }

@media screen and (max-width: 736px) {
  .deco_star_left:after {
    width: 5.6vw;
    height: 6.2666666667vw;
    background: url("../common/images/deco_star.png") left top no-repeat;
    background-size: 5.6vw 6.2666666667vw;
    left: 32vw;
    margin-bottom: -3.0666666667vw; }
  .deco_star_left.is-scroll:after {
    left: 4.6666666667vw;
    opacity: 1;
    transform: rotate(0); } }
.deco_star_right {
  position: relative; }
  .deco_star_right:after {
    display: block;
    content: '';
    width: 2.7415143603vw;
    height: 3.0678851175vw;
    background: url("../common/images/deco_star.png") left top no-repeat;
    background-size: 2.7415143603vw 3.0678851175vw;
    position: absolute;
    top: 0;
    opacity: 0;
    right: 16.9712793734vw;
    margin-top: -1.501305483vw;
    transition: all 0.6s 0s cubic-bezier(0, 0.49, 0.08, 1);
    transform: rotate(-180deg); }
  .deco_star_right.is-scroll:after {
    right: 3.9164490862vw;
    opacity: 1;
    transform: rotate(0); }

@media screen and (max-width: 736px) {
  .deco_star_right:after {
    width: 5.6vw;
    height: 6.2666666667vw;
    background: url("../common/images/deco_star.png") left top no-repeat;
    background-size: 5.6vw 6.2666666667vw;
    right: 34.6666666667vw;
    margin-top: -3.0666666667vw; }
  .deco_star_right.is-scroll:after {
    right: 4.6666666667vw;
    opacity: 1;
    transform: rotate(0); } }
.list_style {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap; }
  .list_style::after {
    content: "";
    width: 18%; }
  .list_style::before {
    order: 1;
    content: "";
    width: 17.3148148148%; }
  .list_style .flex__item-empty {
    display: block;
    width: 17.3148148148%; }
  .list_style li {
    width: 17.3148148148%;
    position: relative; }
    .list_style li:hover {
      cursor: pointer; }
      .list_style li:hover dl dt img {
        transform: scale(1.05) rotate(2deg); }
      .list_style li:hover dl dd {
        opacity: 0.5; }
    .list_style li a {
      display: block;
      position: absolute;
      width: 100%;
      height: 100%;
      left: 0;
      top: 0;
      z-index: 10;
      cursor: pointer; }
    .list_style li dl {
      display: flex;
      flex-direction: column;
      flex-wrap: wrap;
      height: 100%; }
      .list_style li dl dt {
        border-radius: 1.1422976501vw;
        overflow: hidden;
        transition: all 0.6s 0s cubic-bezier(0, 0.49, 0.08, 1);
        margin-bottom: 0.9791122715vw;
        width: 100%;
        aspect-ratio: 187/150; }
        .list_style li dl dt img {
          width: 100%;
          transition: all 0.6s 0s cubic-bezier(0, 0.49, 0.08, 1);
          height: 100%;
          object-fit: cover; }
      .list_style li dl dd {
        width: 100%;
        display: flex;
        flex-direction: column;
        height: auto;
        flex: 1;
        flex-wrap: wrap;
        transition: all 0.6s 0s cubic-bezier(0, 0.49, 0.08, 1); }
        .list_style li dl dd .ttl {
          font-size: 1.125rem;
          line-height: 1.33;
          font-weight: 700;
          margin-bottom: 0.625rem;
          flex: 1;
          width: 100%; }
        .list_style li dl dd .txt {
          width: 100%;
          font-size: 0.875rem;
          line-height: 1.5;
          flex: 1; }
        .list_style li dl dd > div {
          width: 100%;
          display: flex;
          justify-content: space-between;
          align-items: center;
          line-height: 0;
          position: relative;
          padding-top: 0.9791122715vw;
          margin-top: 1.9582245431vw;
          box-sizing: border-box; }
          .list_style li dl dd > div:before {
            display: block;
            content: '';
            width: 100%;
            height: 1px;
            background: #525049;
            position: absolute;
            top: 0;
            left: 0; }
          .list_style li dl dd > div .day {
            font-size: 0.925rem; }
          .list_style li dl dd > div .btn {
            width: 5.75rem; }
            .list_style li dl dd > div .btn img {
              width: 100%;
              height: auto; }
  .list_style.type2:after {
    content: "";
    display: block;
    width: 29.9074074074%; }
  .list_style.type2::before {
    display: none; }
  .list_style.type2 li {
    width: 29.9074074074%; }
    .list_style.type2 li dl dt {
      border-radius: 1.1749347258vw;
      margin-bottom: 1.3054830287vw;
      aspect-ratio: 323/212; }
    .list_style.type2 li dl dd .ttl {
      font-size: 1.25rem;
      line-height: 1.2; }
    .list_style.type2 li dl dd > div {
      padding-top: 0.9791122715vw;
      margin-top: 0.6527415144vw; }

@media screen and (max-width: 736px) {
  .list_style li {
    width: 43.0666666667vw;
    margin-bottom: 6.6666666667vw; }
    .list_style li dl dt {
      border-radius: 3.7333333333vw;
      margin-bottom: 2.6666666667vw;
      aspect-ratio: 323/241; }
    .list_style li dl dd .ttl {
      font-size: 3.2vw;
      line-height: 1.29;
      margin-bottom: 2.6666666667vw; }
    .list_style li dl dd .txt {
      font-size: 2.4vw;
      line-height: 1.44; }
    .list_style li dl dd > div {
      padding-top: 2.6666666667vw;
      margin-top: 2.6666666667vw; }
      .list_style li dl dd > div .day {
        font-size: 2.4vw; }
      .list_style li dl dd > div .btn {
        width: 15.0666666667vw; }
  .list_style.type2:after {
    display: none; }
  .list_style.type2 li {
    width: 43.0666666667vw; }
    .list_style.type2 li dl dt {
      border-radius: 3.7333333333vw;
      margin-bottom: 2.6666666667vw;
      aspect-ratio: 323/241; }
    .list_style.type2 li dl dd .ttl {
      font-size: 3.2vw;
      line-height: 1.29; }
    .list_style.type2 li dl dd > div {
      padding-top: 0.9791122715vw;
      margin-top: 0.6527415144vw; } }
.ttl_style {
  display: flex;
  justify-content: space-between;
  position: relative;
  padding-bottom: 0.8485639687vw;
  margin-bottom: 2.9373368146vw; }
  .ttl_style:before {
    display: block;
    content: '';
    width: 100%;
    height: 1px;
    background: #525049;
    position: absolute;
    bottom: 0;
    left: 0; }
  .ttl_style .wrap {
    display: flex;
    justify-content: space-between;
    align-items: center; }
  .ttl_style .ttl {
    display: flex;
    align-items: flex-end; }
    .ttl_style .ttl .en {
      font-size: 2.5rem;
      display: block; }
    .ttl_style .ttl .jp {
      font-size: 1.375rem;
      margin-left: 1.875rem;
      padding-top: 0.25rem;
      display: block; }
  .ttl_style .btn {
    width: 13.1875rem;
    padding-bottom: 0.625rem; }
    .ttl_style .btn img {
      width: 100%;
      height: auto; }

@media screen and (max-width: 736px) {
  .ttl_style {
    padding-bottom: 5.3333333333vw;
    margin-bottom: 6vw; }
    .ttl_style .wrap {
      align-items: flex-end; }
    .ttl_style .ttl {
      display: block; }
      .ttl_style .ttl .en {
        font-size: 7.3333333333vw; }
      .ttl_style .ttl .jp {
        font-size: 3.7333333333vw;
        margin-left: 0;
        padding-top: 1.3333333333vw; }
    .ttl_style .btn {
      width: 28.2666666667vw;
      padding-bottom: 0.625rem; } }
.error-message {
  color: #c00; }

/*------------------------------------------------------------
input
------------------------------------------------------------*/
fieldset {
  border: medium none !important;
  min-width: 100%;
  width: 100%; }
  fieldset.size01 {
    width: 75px;
    min-width: auto; }
  fieldset.size02 {
    width: 300px;
    min-width: auto; }
  fieldset.size03 {
    width: 350px;
    min-width: auto; }
  fieldset.size04 {
    width: 400px;
    min-width: auto; }

input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="password"], textarea {
  width: 100%;
  border: 1px solid #525049;
  height: 100%;
  padding: 0 10px;
  border-width: 1px;
  border-radius: 100px;
  font-size: 1.5rem;
  background: none;
  box-sizing: border-box;
  -webkit-appearance: none; }

input[type="text"]:focus, input[type="email"]:focus, input[type="tel"]:focus, input[type="url"]:focus, input[type="password"]:focus, input[type="url"]:focus, textarea:focus {
  outline: 0; }

textarea {
  padding: 10px 2%; }
  textarea:read-only {
    color: #666;
    cursor: not-allowed;
    font-size: 2.0rem; }

label, input[type='checkbox'] {
  cursor: pointer; }

button[type="submit"], input[type="submit"], input[type="button"] {
  cursor: pointer;
  width: auto;
  height: auto;
  border: none;
  font-weight: bold;
  font-size: 2rem;
  border-radius: 0;
  position: relative;
  color: #525049;
  background: none;
  display: block;
  line-height: 1;
  -webkit-appearance: none; }
  button[type="submit"]:hover, input[type="submit"]:hover, input[type="button"]:hover {
    opacity: 0.7; }

input::placeholder, textarea::placeholder {
  color: #CCC;
  text-align: center; }

/* IE */
input:-ms-input-placeholder, textarea:-ms-input-placeholder {
  color: #CCC;
  text-align: center; }

/* Edge */
input::-ms-input-placeholder, textarea::-ms-input-placeholder {
  color: #CCC;
  text-align: center; }

@media screen and (max-width: 736px) {
  label, input[type='checkbox'] {
    cursor: pointer; } }
/*------------------------------------------------------------
//セレクトボックス
------------------------------------------------------------*/
.select {
  text-align: center;
  width: 100%;
  position: relative; }
  .select::before {
    position: absolute;
    top: 0.8em;
    right: 0.4em;
    width: 0;
    height: 0;
    padding: 0;
    content: '';
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid #666666;
    pointer-events: none;
    z-index: 40; }
  .select select {
    width: 100%;
    z-index: 20;
    padding-right: 1em;
    cursor: pointer;
    text-indent: 0.01px;
    text-overflow: ellipsis;
    border: none;
    outline: none;
    background: transparent;
    background-image: none;
    box-shadow: none;
    -webkit-appearance: none;
    appearance: none;
    font-size: 2.0rem;
    position: relative;
    border: 1px solid #666666;
    border-radius: 0;
    background: #ffffff;
    padding: 8px 18px 8px 8px;
    color: #666666; }
    .select select::-ms-expand {
      display: none; }

@media screen and (max-width: 736px) {
  .select {
    letter-spacing: 0.08em; }
    .select::before {
      top: 12px;
      right: 0.4em;
      border-left: 3px solid transparent;
      border-right: 3px solid transparent;
      border-top: 3px solid #666666; }
    .select select {
      padding: 5px 12px 5px 2px;
      font-size: 1.1rem; } }
/*------------------------------------------------------------
//ラジオボタン
------------------------------------------------------------*/
.radio-input {
  opacity: 0;
  margin-left: -20px; }
  .radio-input + label {
    padding-left: 35px;
    position: relative;
    letter-spacing: 0.1em; }
    .radio-input + label::before {
      content: "";
      display: block;
      position: absolute;
      top: 50%;
      left: 0;
      margin-top: -11px;
      width: 20px;
      height: 20px;
      border: 1px solid #666666;
      border-radius: 50%;
      box-sizing: border-box; }
  .radio-input:checked + label::after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    margin-top: -7px;
    left: 4px;
    width: 12px;
    height: 12px;
    background: #803c27;
    border-radius: 50%;
    box-sizing: border-box; }

@media screen and (max-width: 736px) {
  .radio-input + label {
    padding-left: 17px;
    letter-spacing: 0.08em; }
    .radio-input + label::before {
      margin-top: -7px;
      width: 12px;
      height: 12px; }
  .radio-input:checked + label::after {
    margin-top: -4px;
    left: 3px;
    width: 6px;
    height: 6px; } }
/*------------------------------------------------------------
チェックボックス
------------------------------------------------------------*/
.checkbox-input {
  opacity: 0;
  margin: 0; }
  .checkbox-input:checked + .checkbox-parts::after {
    content: "";
    display: block;
    position: absolute;
    background: url("../form/images/icon_check.png") left top no-repeat;
    background-size: 27px 22px;
    width: 27px;
    height: 22px;
    top: 50%;
    left: 2px;
    margin-top: -10px; }

.checkbox-parts {
  padding-left: 50px;
  position: relative;
  margin-right: 20px; }
  .checkbox-parts::before {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    margin-top: -13px;
    left: 0;
    width: 26px;
    height: 26px;
    border: 2px solid #666666;
    border-radius: 0; }

@media screen and (max-width: 736px) {
  .checkbox-input:checked + .checkbox-parts::after {
    background: url("../form/images/icon_check.png") left top no-repeat;
    background-size: 13px 11px;
    width: 13px;
    height: 11px;
    left: 1px;
    margin-top: -7px; }

  .checkbox-parts {
    padding-left: 25px;
    margin-right: 10px; }
    .checkbox-parts::before {
      margin-top: -9px;
      width: 13px;
      height: 13px;
      border: 1px solid #666666; } }
