/* ------------------------------------------------------------------
   form-sp.css ｜ 太子堂SP画像LP専用
   申込フォームをPC幅でもSPレイアウトで表示させるための上書き。

   element の form.css は 600px / 767px / 769px のメディアクエリで
   SPレイアウトに切り替わる作りになっているが、このLPは
   SP用の画像しか無く、PCで見てもフォームだけ横に広がってしまう。
   そこで form.css の SP用ブロックだけを取り出し、
   メディアクエリを外して常時適用している。

   生成元：https://elementgym-fit.com/lp/pilates/honbu01_shibuya_meta4/css/form.css
   ※ form.css を差し替えたら、このファイルも作り直すこと
   ------------------------------------------------------------------ */

.contact__form .pc {
    display: none !important;
  }

  .contact__form .sp {
    display: block !important;
  }
.contact .reserve__date select,
  .contact__select select {
    font-size: 15px;
  }
.contact__inner {
    padding-top: 18px;
    padding-bottom: 18px;
    padding-left: 15px;
    padding-right: 15px;
  }

  .contact__head {
    padding-top: 6.5vw;
    padding-bottom: 20px;
  }

  .contact__head01 {
    font-size: 3.2rem;
    font-size: 9vw;
    line-height: calc(40 / 32);
  }

  .contact__head02 {
    margin: 15px auto 25px;
    padding: 0 5vw;
    font-size: 1.2rem;
  }

  .contact__head02:before {
    bottom: -20px;
    left: calc(50% - 5px);
    border: 5px solid transparent;
    border-top: 15px solid #fff;
  }

  .contact__head02 ._delete {
    display: inline-block;
  }

  .contact__head02 ._delete::before {
    content: '';
    width: 100%;
    height: 1px;
    background: #000;
    position: absolute;
    top: 15px;
    left: 0;
  }

  .contact__head02 ._delete::after {
    content: '';
    width: 100%;
    height: 1px;
    background: #000;
    position: absolute;
    left: 0;
    top: 20px;
  }

  .contact__head02>span {
    height: 24px;
    vertical-align: baseline;
  }

  .contact__head02 small {
    font-size: 1.2rem;
  }

  .contact__btn01 {
    width: 251px;
  }

  .contact__btn01._item1 {
    margin-bottom: 15px;
  }

  .contact__btn01._item2 a {
    background: #fff;
    color: #ffba00;
  }

  .contact__btn01._item2 a:hover {
    background: #ddd;
  }

  .contact__btn01._item2 a span {
    display: inline-block;
    width: 40px;
  }

  .contact__btn01-link {
    width: 251px;
    height: 56px;
    font-size: 1.8rem;
  }

  .contact-thanks {
    margin: 0 auto 0;
    padding: 35px 30px 5px;
  }

  .contact__form {
    padding: 15px 0px 40px;
  }

  .contact__form textarea {
    height: 136px;
  }

  .contact__radio .contact__radio-txt {
    margin: 4px 0 11px;
  }

  .contact #date1,
  .contact #date2,
  .contact #date3 {
    width: 100%;
    height: 36px;
  }

  .contact .reserve__date {
    margin-bottom: 10px;
  }

  .contact .reserve__date,
  .contact__select {
    width: 100%;
    height: 43px;
  }

  .contact-privacy {
    margin: auto;
    padding-top: 35px;
  }

  .contact-privacy__head {
    font-size: 1.6rem;
  }

  .contact-privacy__wrap {
    margin-top: 10px;
    padding: 10px;
  }

  .contact__btn {
    margin: 40px auto 0;
    width: 100%;
    height: 64px;
  }

  .contact__btn-link input[type="submit"] {
    width: 100%;
    height: 64px;
    font-size: 1.6rem;
  }

  .contact__btn-back a,
  .contact__btn-back input[type="button"] {
    width: 100%;
    height: 64px;
    font-size: 24px;
  }

  .contact #formWrap th,
  .contact #formWrap td {
    padding: 0;
    display: block;
    text-align: left;
    font-size: 1.6rem;
    line-height: 1.5;
  }

  .contact #formWrap th {
    color: #ffba00;
    font-weight: 400;
  }

  .contact #formWrap td {
    padding-bottom: 2em;
  }

  .contact .contact-com {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: start;
    line-height: calc(24 / 16);
  }

  .contact .contact-com span:first-child {
    white-space: nowrap;
  }

  .contact .contact-com span:last-child {
    padding-left: 1em;
    text-indent: -1em;
  }

  .contact dt {
    font-size: 12px;
  }

  .contact #date1,
  .contact #date2,
  .contact #date3,
  .contact select {
    font-size: 16px;
  }
.radio-btns label {
    display: inline-block;
  }

  .radio-btns .row {
    margin-bottom: 3px;
  }
.carousel {
    width: 300px;
    height: 400px;
  }

  .carousel-list {
    width: 300px;
    height: 400px;
    margin-right: 0;
  }
.arrow-wrap {
    justify-content: space-around;
    padding: 0;
  }
.arrow-btn {
    width: 130px;
    height: 40px;
  }
.slider-title::before,
  .slider-title::after {
    width: 10px;
    height: 10px;
  }
.slider-title::before {
    left: -15px;
  }
.slider-title::after {
    right: -15px;
  }
.slider-title span {
    font-size: 30px;
  }
.slider-title {
    font-size: 18px;
    line-height: 30px;
    margin-top: 5px;
    margin-bottom: 10px;
  }
.slider-title-sp {
    font-size: 14px;
    margin-bottom: 0;
  }
.slider-dis {
    font-size: 12px;
    margin-top: 5px;
  }
.slider-btn-dis {
    font-size: 15px;
    margin-top: 90px;
  }
.carousel-list div {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
.contact__form dt {
    font-size: 15px;
    line-height: 25px;
  }
.contact__form .dt-center {
    margin: 10px 0 10px;
  }
.contact__form .dt-single {
    margin: 54px 0 20px;
  }
.contact__form .ico__optional,
  .contact__form .ico__required {
    padding: 2px 3px;
    margin-left: 0;
  }
.contact__radio {
    flex-direction: column;
    align-items: center;
  }
.contact__radio .item {
    width: 80%;
    margin: 0 auto;
    height: 70px;
  }
.contact__radio .item01 {
    margin: 0;
  }
.contact__radio .item.item03,
  .contact__radio .item.item04 {
    width: 95%;
  }
.contact__radio .item .select-sp {
    font-size: 1.5rem;
  }
.contact__form textarea,
  .contact__form input[type=text],
  .contact__form input[type=email] {
    width: 100%;
    height: 40px;
    font-size: 18px;
    padding: 6px 8px;
  }
.tennpo .contact .reserve__date,
  .tennpo .contact__select {
    width: 100%;
    height: 40px;
    font-size: 15px;
  }
.tennpo .contact .reserve__date:after,
  .tennpo .contact__select:after {
    width: 6px;
    height: 6px;
    top: 15px;
  }
.flex {
    flex-direction: column;
  }
.flex .flex-item {
    width: 100%;
    padding: 0;
  }
.flex .flex-item .date-title {
    font-size: 13px;
    margin: 10px 0 3px;
  }
.flex .flex-item .date {
    width: 95%;
    height: 30px;
    margin-bottom: 5px;
  }
.flex .flex-item .contact .reserve__date,
  .flex .flex-item .contact__select {
    width: 95%;
    height: 30px;
    line-height: 19px;
  }
.flex .flex-item .contact .reserve__date:after,
  .flex .flex-item .contact__select:after {
    width: 6px;
    height: 6px;
    top: 13px;
  }
.reserve__date {
    position: relative;
  }

  #placeholder {
    position: absolute;
    top: 0;
    left: 10px;
    line-height: 5rem;
    font-size: 1.5rem;
  }
#placeholder {
    line-height: 3.7rem;
    font-size: 1.2rem;
  }
.gym-trainer-container {
    max-width: 90% !important;
    width: 100%;
  }
.gym-access-container {
    padding: 0 15px;
    display: block;
  }

  .gym-access-item {
    width: 100%;
    margin-bottom: 40px;
  }
.carousel.custom-form-carousel {
    height: 100%;
  }
.carousel.custom-form-carousel,
  .carousel.custom-form-carousel .carousel-area,
  .carousel.custom-form-carousel .carousel-area .carousel-list {
    height: 100%;
  }
.carousel.custom-form-carousel .slider-title {
    font-size: 16px;
  }

  .carousel.custom-form-carousel .slider-title span {
    font-size: 20px;
  }

  .carousel.custom-form-carousel .dt-single {
    margin: 20px 0;
  }

  .carousel.custom-form-carousel .contact__select {
    height: 40px;
    width: 99%;
  }

  .carousel.custom-form-carousel .contact__checkbox label {
    font-size: 16px;
    padding: 16px;
    width: 100%;
    display: block;
    text-align: left;
    /*    margin-bottom: 16px;*/
  }

  .carousel.custom-form-carousel .contact__radio label {
    font-size: 16px;
    padding: 10px 16px;
    width: 100%;
    display: inherit;
    text-align: left;
    /*    margin-bottom: 16px;*/
  }

  .carousel.custom-form-carousel input[type=radio]+span {
    width: 100%;
    display: inline-block;
  }

  .carousel.custom-form-carousel input[type=checkbox]+span:before,
  .carousel.custom-form-carousel input[type=radio]+span:before {
    width: 30px;
    height: 30px;
    margin-top: -15px;
  }

  .carousel.custom-form-carousel input[type=checkbox]:checked+span:after {
    /*    margin-top: -6px;
    right: 9px;
    top: 7px;
    width: 12px;
    height: 18px;*/
    right: 9px;
    top: 7px;
    width: 12px;
    height: 18px;
    position: absolute;
    top: calc(50% + 8px);
    -webkit-transform: translate(-50%, -50%) rotate(40deg);
    transform: translate(0, -50%) rotate(40deg);
  }

  .carousel.custom-form-carousel input[type=radio]:checked+span:after {
    /*    margin-top: -6px;
    right: 9px;
    top: 13px;
    width: 12px;
    height: 18px;*/
    right: 9px;
    top: 7px;
    width: 12px;
    height: 18px;
    position: absolute;
    top: calc(50% + 8px);
    -webkit-transform: translate(-50%, -50%) rotate(40deg);
    transform: translate(0, -50%) rotate(40deg);
  }

  .carousel.custom-form-carousel .reserve__select.contact__select {
    height: 37px;
  }
.carousel.custom-form-carousel input[type=radio]:checked+span:after {
    width: 7px;
    height: 14px;
  }

/* カルーセルの幅。
   スライド送りのJSが .carousel-list の実寸から移動量を計算し、
   .carousel-area には（list幅 × 枚数）をインラインで書き込む。
   そのため .carousel と .carousel-list は「同じ固定値」でなければならない
   （% 指定にすると .carousel-list が .carousel-area の幅を参照して破綻する）。
   LPの表示幅500pxに合わせて430px、狭い端末では画面幅に追従させる。 */
#reservation-form form { width: auto; }
#reservation-form form > dl { width: 100%; }
.carousel,
.carousel-list {
  width: min(430px, calc(100vw - 70px));
}
/* .carousel は form.css で margin:0 auto の中央寄せ。
   ここで margin-right:0 を当てると margin-left:auto だけが残って右に寄るので当てない。 */
.carousel {
  margin-left: auto;
  margin-right: auto;
}
.carousel-list {
  margin-right: 0;
}

/* ------------------------------------------------------------------
   余白の調整（2026-08-16／「要素間が詰まって見える」）
   元の form.css のSP値は狭い画面前提で組まれており、
   当LPの幅430pxで見ると設問・選択肢が密に見えるため広げる。
   カルーセルの高さはJSが中身から算出してインラインで書き込むので、
   ここを広げても下が切れることはない（変更後に実測で確認済み）。
   ------------------------------------------------------------------ */
/* カードの内側 */
.contact__inner {
  padding-top: 26px;
  padding-bottom: 26px;
}
/* 設問見出しと設問文 */
.carousel.custom-form-carousel .slider-title {
  margin-bottom: 18px;
}
.carousel.custom-form-carousel .dt-center,
.carousel.custom-form-carousel .dt-single {
  margin-top: 16px;
  margin-bottom: 16px;
}
/* 選択肢：行の内側の余白と、行と行の間隔 */
.carousel.custom-form-carousel .contact__radio label,
.carousel.custom-form-carousel .contact__checkbox label {
  padding: 15px 18px;
}
.carousel.custom-form-carousel .contact__radio,
.carousel.custom-form-carousel .contact__checkbox {
  gap: 24px;
}

/* 選択肢が左に40pxずれる件。
   dd はブラウザ既定で margin-inline-start:40px が付くが、element の form.css に
   打ち消しが無い。幅720pxのPC版では目立たないものの、幅430pxの当LPでは
   「左40px・右0px」になって中央寄せに見えないため、ここで0に戻す。 */
#reservation-form dd {
  margin-left: 0;
}
