@charset "UTF-8";
/**
 * デザイントークン (レスポンシブ化 Phase 0)
 *
 * ◆ 使い方 =======================================================
 *   pages/*.css (SCSS) 側では import 不要。var() で直接参照する。
 *
 *   .setIndex {
 *     color: var(--color-text);
 *     background: var(--color-bg-sub);
 *     border: 1px solid var(--color-border);
 *     max-width: var(--container-max-width);
 *     margin: 0 auto;
 *     padding: var(--space-lg) var(--space-sm);
 *     font-family: var(--font-family-base);
 *     font-size: var(--font-size-base);
 *     line-height: var(--line-height-base);
 *   }
 *
 *   .setIndex__price { color: var(--color-brand-red); }
 *   .setIndex__btn   { background: var(--color-brand-orange); color: var(--color-bg); }
 *   .setIndex__modal { z-index: var(--z-index-modal); }
 *
 *   ▼ フォールバック付き(トークン未定義時の保険)
 *   .foo { color: var(--color-text, #7E432C); }
 *
 *   ▼ NG: メディアクエリの条件式に var() は使えない
 *   @media (max-width: var(--breakpoint-sp)) { ... }  ← 効かない
 *   @media (max-width: 960px) { ... }                 ← 直値で書く
 *
 *   ▼ NG: SCSS 側で @use/@import しない(トークンが重複出力される)
 *   @use "../tokens";  ← 不要
 *
 * ◆ ブレークポイント規約(正準) ====================================
 *   ...(以下既存)
 */
/* mixin */
/* 汎用(inline block) ---------------------------------------- */
.block_p {
  display: block; }
  @media screen and (max-width: 960px) {
    .block_p {
      display: none; } }

.block_s {
  display: none; }
  @media screen and (max-width: 960px) {
    .block_s {
      display: block; } }

.inline_p {
  display: inline; }
  @media screen and (max-width: 960px) {
    .inline_p {
      display: none; } }

.inline_s {
  display: none; }
  @media screen and (max-width: 960px) {
    .inline_s {
      display: inline; } }

.hide {
  display: none !important; }

/* 汎用見出し ---------------------------------------- */
.commonTtl {
  background: none;
  padding: 0;
  margin: 0;
  font-size: 28px;
  margin-bottom: 10px;
  color: var(--color-text) !important; }
  @media screen and (max-width: 960px) {
    .commonTtl {
      font-size: 22px; } }

/* 汎用テキスト ---------------------------------------- */
.txtBold {
  font-weight: 600; }

.txtCenter {
  text-align: center; }

/* 汎用ボックス ---------------------------------------- */
.shadowBox {
  border-radius: 20px;
  background: #FFF;
  box-shadow: inset 0 2px 6px rgba(145, 145, 145, 0.25);
  box-sizing: border-box;
  padding: 40px 40px 60px;
  position: relative; }
  @media screen and (max-width: 960px) {
    .shadowBox {
      border-radius: 20px 20px 0 0;
      padding: 40px 20px 60px; } }
  @media screen and (max-width: 960px) {
    .shadowBox:before {
      content: "";
      background: #FFF;
      position: absolute;
      left: 0;
      bottom: 0;
      width: 100%;
      height: 5px; } }

/* 汎用ボタン ---------------------------------------- */
.commonBtn {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 320px;
  width: 100%;
  height: 60px;
  margin-left: auto;
  margin-right: auto;
  font-weight: 600;
  appearance: none;
  -webkit-appearance: none;
  border: none;
  background: none;
  cursor: pointer;
  padding: 0;
  border-radius: 10000px;
  font-size: 16px; }

.commonBtn--gray {
  background: #EFECEA !important;
  color: #FFF !important; }

.commonBtn--Cv {
  background: #4FB340 !important;
  color: #FFF !important; }

.commonBtn--white {
  background: #FFF;
  color: #7E432C !important;
  border: 1px solid #7E432C;
  box-shadow: 0px 1px 3px rgba(145, 145, 145, 0.25); }

.commonBtn--yellow {
  background: #FED81F;
  color: #7E432C !important;
  box-shadow: 0px 1px 3px rgba(145, 145, 145, 0.25); }

.commonBtn--green {
  background: #FFF;
  color: #4FB340 !important;
  border: 1px solid #4FB340;
  box-shadow: 0px 1px 3px rgba(145, 145, 145, 0.25); }

/* 汎用色 ---------------------------------------- */
.bgTintYellow {
  background: var(--color-bg-tint-yellow); }

.bgWhite {
  background: var(--color-bg); }

/* フォームここから ---------------------------------------- */
.contentForm {
  padding: 90px 0; }
  @media screen and (max-width: 960px) {
    .contentForm {
      padding: 40px 0 0 0; } }
  .contentForm__inner {
    max-width: 1000px;
    margin: auto;
    position: relative; }
  .contentForm__ttlImg {
    max-width: 530px;
    margin: auto;
    display: block; }
    @media screen and (max-width: 960px) {
      .contentForm__ttlImg {
        max-width: 310px; } }
  .contentForm__lead {
    margin-top: 20px;
    margin-bottom: 30px; }
    @media screen and (max-width: 960px) {
      .contentForm__lead {
        margin-top: 10px;
        margin-bottom: 20px;
        font-size: 16px; } }

/*---
フォーム構造
※ 色は既存トークン(:root)に合致するもののみ var() 参照
---*/
.commonForm {
  max-width: 840px;
  margin: auto; }
  .commonForm__dl {
    display: flex;
    flex-wrap: wrap;
    padding: 30px 0;
    border-bottom: 1px solid #EFECEA; }
    @media screen and (max-width: 960px) {
      .commonForm__dl {
        display: block; } }
  .commonForm__dt {
    width: 250px;
    font-weight: 600;
    font-size: 16px;
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    flex-wrap: wrap; }
  .commonForm__dtInner {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: 0%;
    box-sizing: border-box; }
  .commonForm__dtTxt {
    position: relative;
    left: 40px;
    margin-left: 10px;
    box-sizing: border-box;
    font-size: 14px;
    font-weight: 400; }
  .commonForm__dd {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: 0%;
    padding-left: 30px;
    font-size: 16px; }
    @media screen and (max-width: 960px) {
      .commonForm__dd {
        padding-left: 0;
        padding-top: 10px; } }
  .commonForm__essential, .commonForm__anyGray {
    display: inline-block;
    box-sizing: border-box;
    background: var(--color-brand-red);
    font-weight: 600;
    color: var(--color-bg);
    margin: 0 10px 0 0;
    min-width: 35px;
    font-size: 14px;
    line-height: 1.5;
    padding: 2px 5px;
    border-radius: 2px;
    max-height: 26px; }
  .commonForm__anyGray {
    background: #D3CECB;
    color: var(--color-bg);
    border: 1px solid #D3CECB; }
  .commonForm__select {
    min-width: 300px; }
  .commonForm__btnWrap {
    margin-top: 40px; }
  .commonForm__backLink {
    display: inline-block;
    margin-top: 10px;
    color: var(--color-brand-text) !important;
    font-size: 14px;
    text-decoration: underline !important; }
  .commonForm__subTxt {
    display: inline-block;
    margin-left: 10px;
    position: relative; }
  .commonForm__privacyTxt {
    font-weight: 400 !important;
    font-size: 12px;
    margin-top: 40px; }
    @media screen and (max-width: 960px) {
      .commonForm__privacyTxt {
        margin-top: 30px; } }
  .commonForm__privacyLink {
    color: #D22500 !important;
    text-decoration: underline; }
  .commonForm__subTtl {
    margin-bottom: 10px;
    font-weight: 600; }
  .commonForm__box {
    margin-bottom: 20px; }
    .commonForm__box:last-of-type {
      margin-bottom: 0; }

/*---
項目( input textareaなど)
---*/
.commonInput,
.commonSelect,
.commonTextarea {
  background: var(--color-bg) !important;
  border: 1px solid #A89E98 !important;
  outline: none;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
  color: var(--color-brand-text) !important;
  border-radius: 5px;
  font-size: 16px;
  padding: 8px !important;
  height: auto !important;
  min-height: 40px;
  box-shadow: inset 0 1px 3px rgba(145, 145, 145, 0.25); }

.commonInput:-webkit-autofill, .commonInput:-webkit-autofill:hover, .commonInput:-webkit-autofill:focus, .commonInput:-webkit-autofill:active,
.commonSelect:-webkit-autofill,
.commonSelect:-webkit-autofill:hover,
.commonSelect:-webkit-autofill:focus,
.commonSelect:-webkit-autofill:active,
.commonTextarea:-webkit-autofill,
.commonTextarea:-webkit-autofill:hover,
.commonTextarea:-webkit-autofill:focus,
.commonTextarea:-webkit-autofill:active {
  -webkit-text-fill-color: var(--color-brand-text) !important; }
.commonInput::placeholder,
.commonSelect::placeholder,
.commonTextarea::placeholder {
  color: #D3CECB !important; }

.commonSelect {
  background: url("/user_data/packages/default/img/mypage/icon_arrow_select.svg") right 15px top 15px no-repeat var(--color-bg) !important;
  background-size: 6px;
  min-width: 235px; }
  @media screen and (max-width: 960px) {
    .commonSelect {
      width: 100%; } }

.commonInput {
  width: 235px; }
  .commonInput--short {
    width: 100% !important;
    max-width: 150px !important;
    display: inline-block !important; }
    @media screen and (max-width: 960px) {
      .commonInput--short {
        max-width: 185px !important; } }
  .commonInput--wide {
    width: 100% !important; }
  .commonInput--error {
    border: 2px solid var(--color-brand-red) !important;
    background: #FDF4F2 !important; }
    .commonInput--error::placeholder {
      color: #EB9C8D !important; }

.commonTextarea {
  width: 100%;
  min-height: 250px; }

.commonInput--calender {
  cursor: pointer;
  width: 235px;
  background: url("/user_data/packages/default/img/cart/icon_calender.svg") right 10px center no-repeat #FFF !important;
  background-size: 16px; }

.commonRadioGroup__item {
  margin-bottom: 10px; }
  .commonRadioGroup__item:last-of-type {
    margin-bottom: 0; }

.commonRadio {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  min-width: 235px;
  padding: 11px 16px;
  border-radius: 5px;
  background: var(--color-bg);
  box-shadow: 0 1px 3px rgba(145, 145, 145, 0.25);
  font-size: var(--font-size-base);
  font-weight: 600;
  cursor: pointer; }
  @media screen and (max-width: 960px) {
    .commonRadio {
      width: 100%; } }
  .commonRadio:has(.commonRadio__input:checked) {
    background: var(--color-brand-yellow);
    box-shadow: inset 0 1px 3px rgba(151, 146, 116, 0.25); }
  .commonRadio__input {
    display: none; }
    .commonRadio__input:checked + .commonRadio__mark::before {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      width: 9px;
      height: 9px;
      margin: -4.5px 0 0 -4.5px;
      border-radius: 50%;
      background: var(--color-brand-green); }
  .commonRadio__mark {
    position: relative;
    box-sizing: border-box;
    flex-shrink: 0;
    width: 15px;
    height: 15px;
    margin-right: 10px;
    border: 1px solid var(--color-brand-text);
    border-radius: 50%;
    background: var(--color-bg); }

.commonCheckGroup {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  flex-wrap: wrap; }

.commonCheck {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  font-weight: 400 !important;
  margin-right: 30px;
  margin-bottom: 10px;
  -webkit-tap-highlight-color: transparent; }
  .commonCheck__input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap; }
  .commonCheck__box {
    position: relative;
    flex: 0 0 auto;
    box-sizing: border-box;
    width: 18px;
    height: 18px;
    margin-right: 6px;
    border: 2px solid #A89E98;
    border-radius: 3px;
    background-color: var(--color-bg);
    top: 1px; }
    .commonCheck__box::before {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      width: 12px;
      height: 12px;
      margin: -6px 0 0 -6px;
      background-color: var(--color-text);
      -webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2012%2012'%3E%3Cpath%20d='M2.5%206.4%205%208.9%209.5%203.5'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/12px 12px;
      mask: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2012%2012'%3E%3Cpath%20d='M2.5%206.4%205%208.9%209.5%203.5'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/12px 12px;
      opacity: 0; }
  .commonCheck__input:checked + .commonCheck__box {
    border-color: var(--color-brand-yellow);
    background-color: var(--color-brand-yellow); }
    .commonCheck__input:checked + .commonCheck__box::before {
      opacity: 1; }
  .commonCheck__input:focus-visible + .commonCheck__box {
    outline: 2px solid var(--color-text);
    outline-offset: 2px; }
  .commonCheck__text {
    font-size: 16px;
    line-height: 1.4;
    font-weight: 400; }

/*---
エラー表示共通
----*/
.commonForm__btnWrap {
  text-align: center; }

.attention_msg {
  color: #D22500;
  /*margin-top: 10px;*/
  position: relative;
  box-sizing: border-box;
  padding-left: 20px;
  font-weight: 400 !important;
  line-height: 1.4;
  display: inline-block;
  height: auto;
  /*letter-spacing: -1px;*/
  top: auto;
  margin-bottom: 20px; }

.attention_msg:before {
  content: "";
  background: url("/user_data/packages/default/img/mypage/icon_error.svg") no-repeat;
  background-size: 15.19px;
  width: 15.19px;
  height: 13.29px;
  position: absolute;
  left: 0;
  top: 6px; }

/*---
項目(カレンダー)
---*/
/* カレンダー色
   大枠背景        #FFF8CC
   日付の茶        #6E5A3A
   ヘッダー濃い茶  #5E4B2E
   前後月グレー    #C8BFA0
   選択中の黄色丸  #FED81F
   ホバー薄茶丸    #E5D3AB
*/
.ui-datepicker {
  width: auto;
  padding: 12px;
  background: #FFF8CC !important;
  border: 1px solid #FFF08F !important;
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(145, 145, 145, 0.5); }

/* ── ヘッダー ── */
.ui-datepicker .ui-datepicker-header {
  background: transparent !important;
  border: none !important;
  color: #5E4B2E;
  position: relative;
  padding: 0 28px; }

.ui-datepicker .ui-datepicker-title {
  color: #5E4B2E;
  font-weight: bold;
  line-height: 2; }

.ui-datepicker .ui-datepicker-year,
.ui-datepicker .ui-datepicker-month {
  color: #5E4B2E; }

/* ── prev/next 矢印（本体に疑似要素を当てる） ── */
.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next {
  top: 50% !important;
  margin-top: 0 !important;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  background: transparent !important;
  border: none !important;
  cursor: pointer; }

.ui-datepicker .ui-datepicker-prev .ui-icon,
.ui-datepicker .ui-datepicker-next .ui-icon {
  display: none !important; }

.ui-datepicker .ui-datepicker-prev::before,
.ui-datepicker .ui-datepicker-next::before {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 20px;
  font-weight: bold;
  color: #5E4B2E;
  line-height: 1; }

.ui-datepicker .ui-datepicker-prev {
  left: 4px !important; }

.ui-datepicker .ui-datepicker-prev::before {
  content: "\2039"; }

/* ‹ */
.ui-datepicker .ui-datepicker-next {
  right: 4px !important; }

.ui-datepicker .ui-datepicker-next::before {
  content: "\203A"; }

/* › */
.ui-datepicker .ui-datepicker-prev.ui-state-disabled::before {
  opacity: .35; }

/* ── 曜日ヘッダ ── */
.ui-datepicker .ui-datepicker-calendar th {
  color: #5E4B2E;
  font-weight: bold; }

.ui-datepicker .ui-datepicker-calendar th span {
  text-decoration: none; }

/* ── 日付セル共通 ── */
.ui-datepicker td {
  padding: 0 !important; }

.ui-datepicker .ui-datepicker-calendar td a,
.ui-datepicker .ui-datepicker-calendar td span {
  display: block;
  width: 36px;
  height: 36px;
  line-height: 36px;
  margin: 0 auto;
  text-align: center;
  background: transparent !important;
  border: none !important;
  border-radius: 50% !important;
  color: #6E5A3A !important;
  font-weight: normal;
  padding: 0 !important;
  transition: none !important; }

/* ── hover/active/focus装飾を無効化（※:hoverは薄茶で使うので除外） ── */
.ui-datepicker .ui-datepicker-calendar td a.ui-state-hover,
.ui-datepicker .ui-datepicker-calendar td a.ui-state-active,
.ui-datepicker .ui-datepicker-calendar td a.ui-state-focus,
.ui-datepicker .ui-datepicker-calendar td a:focus,
.ui-datepicker .ui-datepicker-calendar td a:active {
  background: transparent !important;
  border: none !important;
  color: #6E5A3A !important;
  outline: none !important;
  box-shadow: none !important; }

/* ── 前後月・選択不可（グレー文字） ── */
.ui-datepicker .ui-datepicker-other-month .ui-state-default,
.ui-datepicker .ui-state-disabled .ui-state-default {
  color: #C8BFA0 !important;
  opacity: 1; }

.ui-datepicker-unselectable.ui-state-disabled.undefined.ui-datepicker-today {
  opacity: 1 !important; }

/* ── 選択中の日付（黄色丸） ── */
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-current-day .ui-state-default,
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-current-day a.ui-state-active,
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-current-day a.ui-state-hover {
  background: #FED81F !important;
  color: #6E5A3A !important;
  opacity: 1 !important; }

/* ── 今日（黄色丸）※disabled/グレーより優先。文字色そのまま ──
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-today.ui-state-disabled .ui-state-default,
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-today .ui-state-default {
  background: #FED81F !important;
  color: #6E5A3A !important;
  opacity: 1 !important;
}
*/
/* ── ホバー（薄茶丸・背景のみ／文字色そのまま）※最後に置いて勝たせる ── */
.ui-datepicker .ui-datepicker-calendar td a:hover {
  background: #E5D3AB !important;
  opacity: 1 !important; }

/* ── ボタンパネル（非表示） ── */
.ui-datepicker .ui-datepicker-buttonpane,
.ui-datepicker-close {
  display: none !important; }

/* フォームここまで ---------------------------------------- */
.hojin {
  margin-top: -101px; }
  @media screen and (max-width: 1250px) {
    .hojin {
      margin-top: -91px; } }
  @media screen and (max-width: 960px) {
    .hojin {
      margin-top: 0; } }
  .hojin__set-example {
    margin-bottom: 30px; }
    @media screen and (max-width: 960px) {
      .hojin__set-example {
        margin-bottom: -30px; } }
    @media screen and (max-width: 960px) {
      .hojin__set-example .container {
        padding-bottom: 0; } }
  .hojin__estimate-example .container {
    padding-bottom: 10rem; }
    @media screen and (max-width: 960px) {
      .hojin__estimate-example .container {
        padding-bottom: 9rem; } }
  .hojin__question {
    margin-top: 10rem; }
    @media screen and (max-width: 960px) {
      .hojin__question {
        margin-top: 9rem; } }
  @media screen and (max-width: 960px) {
    .hojin__set-example__group__item__inner__btn .-btn {
      padding: 1.3rem 3rem;
      max-width: calc(100% - 2rem); } }

.hojinCta {
  background: #DBF2FF;
  padding: 7rem 0;
  margin-bottom: 10rem;
  /* フォームバナーはリンクをやめて p にしたぶん、
     &:last-of-type(p も a も last-of-type になる)が効いてしまうので打ち消す。
     下向きの吹き出し三角はバナーと同色。960px以下では出さない */ }
  @media screen and (max-width: 960px) {
    .hojinCta {
      margin-bottom: 9rem; } }
  .hojinCta__ttl {
    max-width: 525px;
    margin: 10px auto 30px; }
    @media screen and (max-width: 960px) {
      .hojinCta__ttl {
        max-width: 300px; } }
  .hojinCta__bnrs {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    flex-wrap: wrap;
    -webkit-justify-content: space-between;
    /* Safari etc. */
    -ms-justify-content: space-between;
    /* IE10        */
    justify-content: space-between;
    max-width: 1080px;
    padding: 0 40px;
    align-items: flex-start;
    margin: 0 auto 30px; }
  .hojinCta__bnr {
    display: block;
    width: calc(100%/2 - 7px); }
    @media screen and (max-width: 960px) {
      .hojinCta__bnr {
        width: 100%; } }
    .hojinCta__bnr:last-of-type {
      position: relative;
      top: 2px; }
      @media screen and (max-width: 960px) {
        .hojinCta__bnr:last-of-type {
          margin-top: 10px;
          top: auto; } }
  .hojinCta__bnrs .hojinCta__bnr--form {
    position: relative;
    top: auto; }
    .hojinCta__bnrs .hojinCta__bnr--form::after {
      content: "";
      position: absolute;
      left: 50%;
      bottom: -12px;
      width: 0;
      height: 0;
      border-top: 20px solid #DD5834;
      border-right: 20px solid transparent;
      border-left: 20px solid transparent;
      transform: translateX(-50%); }
    @media screen and (max-width: 960px) {
      .hojinCta__bnrs .hojinCta__bnr--form {
        margin-top: 0; }
        .hojinCta__bnrs .hojinCta__bnr--form::after {
          display: none; } }
