@charset "utf-8";

/* スマホ（〜767px） */
@media (max-width: 767px) {
  /* スマホ専用スタイル */
}

/* タブレット（768px〜1024px） */
@media (min-width: 768px) and (max-width: 1024px) {
  /* タブレット専用スタイル */
}

/* PC（1025px〜） */
@media (min-width: 1025px) {
  /* PC専用スタイル */
}


input[type="checkbox"],input[type="radio"] { cursor: pointer; }

.text-danger { color: #FC5942; }
.alert { text-align: center; margin-bottom: 12px; color: #FC5942; }

.contact_caption { margin-bottom: 20px; }
.contact_form { margin-bottom: 40px; }
.contact_form dl dt { position: relative; padding: 16px; border-top: 1px solid #DADADA; }
.contact_form em { display: inline-block; height: 22px; padding: 0 4px; font-size: 14px; line-height: 20px; font-weight: 500; color: #FFF; background: #FC5942; }
.contact_form dl dt em { position: absolute; top: 0; right: 10px; bottom: 0; margin: auto 0; }
.contact_form .privacy_policy_check em { margin: 0 6px; }
.contact_form dl dd { display: flex; flex-direction: column; gap: 8px; padding: 0 16px 16px; flex-wrap:wrap; }
.contact_form dl dd  div { position: relative; }
.contact_form dl dd .pass { width:100%; margin:5px 0 0 0; }
.contact_form dl dd dl dt { padding:10px 0 0 0; background:none; border-bottom:none; font-weight:700; }
.contact_form dl dd dl:first-child dt { border-top:none; }
.contact_form dl dd label { display: block; }
.contact_form dl dd input, textarea { width: 100%; padding: 10px; background: #FFF; border: 2px solid #000; }
.contact_form dl dd select { padding: 10px; background: #FFF; border: 2px solid #000; }
.contact_form .is-invalid { padding:10px; display:inline-block; border:2px solid #FC5942; }
.contact_form dl dd input.input_short { width:100px; }
.contact_form dl dd input.input_datetime { width:100%; }
.contact_form dl dd input.input_zip { width:200px; margin-left:0px; }
.contact_form dl dd input.input_address { margin-top:5px; }
.contact_form dl dd input.input_address_last { margin-top:5px; }
.contact_form dl dd input.is-invalid { border:2px solid #FC5942; }
.contact_form dl dd .span_chiku { margin-left:5px; }
.contact_form .invalid-feedback { color:#FC5942; font-weight:bold; }
.contact_form dl dd label input { width: 18px; aspect-ratio: 1 / 1; margin-right: 10px; }
.contact_form dl dd .checkbox_after { padding-top: 4px; }
.contact_form dl dd .ass_type { display:none; }
.contact_form dl dd .ass_type.active { display:block; width: 100%; }
.contact_form dl dd .ass_type dl:first-child dt { border-top: 1px solid #DADADA;  }

.contact_form .privacy_policy { display: flex; flex-direction: column; gap: 12px; height: 120px; padding: 10px; margin:40px 0 20px; overflow-y: scroll; background: #FFF; border: 2px solid #000; }
.contact_form .privacy_content_text { line-height: 1.8; }
.contact_form .privacy_policy_check { display: block; margin: 20px 10px 0; }
input[type="checkbox"] {/* width: 18px; */aspect-ratio: 1 / 1; }
.icon_othersite_black { width: 16px; height: 16px; margin: 0 4px -2px 0; }
.privacy_link { padding-bottom: 4px; border-bottom: 1px solid #222; }
.privacy_link:hover { border-bottom: none; }
.button.input_send { margin: 40px auto 80px; }

@media (min-width: 768px) {
  .contact_form { margin-bottom: 80px; }
  .contact_caption { text-align: center; margin-bottom: 80px; }
  .contact_form dl { display: flex; border-top: 1px solid #DADADA; }
  .contact_form dl:first-child { display:flex; }
  .contact_form dl:last-child { border-bottom: 1px solid #DADADA; }
  .contact_form dl dt { width: 240px; padding: 24px 0; flex-shrink: 0; border-top: none; }
  .contact_form dl dt em { margin-top: 28px; right: 24px; }
  .contact_form dl dd { padding: 24px 0; flex-grow: 1; }
  .contact_form dl dd  div { width:40%; display:block; }
  .contact_form dl dd dl:first-child { border-top:none; }
  .contact_form dl dd dl:last-child { border-bottom:none; }
  .contact_form dl dd { flex-direction: initial; gap: 5%;}
  .contact_form dl dd input.input_datetime { width:100%; }
  .contact_form dl dd #time { width:45%; }
  .contact_form dl dd dl { width: 100%; flex-direction: column; }
  .contact_form dl dd dl dt { width:180px; padding-left:0; display: flex;align-items: center;}
  .contact_form dl dd dl dt em { margin-top: 12px; right: 24px; }
  .contact_form dl dd input.input_address { width:110px; margin-right:5px; }
  .contact_form dl dd input.input_address_last { width:210px; flex-grow: 1; }
  .contact_form dl dd .span_chiku { display: flex;align-items: center; }
  .contact_form dl dd .ass_type dl:first-child { border-top: 1px solid #DADADA; }
  .contact_form dl dd .ass_type dl:first-child dt { border-top: none }
  .contact_form .privacy_policy { height: 180px; margin: 80px 0 40px; }
  .contact_form .privacy_policy_check { margin-top: 60px; text-align: center; }
  .button.input_send { margin: 80px auto 120px; }
  .contact_form dl dd label { width: 100%;}
  .flex_wrap { display: flex; }
}
@media (min-width: 1000px) {
    .contact_form dl dd { gap: 8px 20px; }
    .contact_form dl dd label { width: calc(calc(100% - 20px)/2);}
}



/* ここからサンクスページ */
.thanks_contact_wrap{margin: 0 auto;}
.contact_input_contents{width: 90vw;padding: 40px 20px;border: 1px solid #DADADA;}
.button_normal{margin: 80px auto 120px;}
@media (min-width: 768px) {
  .thanks_contents{width: min(90%, 900px);}
  .contact_thanks_caption{text-align: center;margin-bottom: 20px;}
  .contact_input_contents {padding: 40px 5vw;width: 900px;}
}

/*インプットボタン*/

/* ベース */
.privacy_policy_check input[type="checkbox"] {appearance:none; -webkit-appearance:none; -moz-appearance:none; box-sizing:border-box; display:inline-block; width:28px; height:28px; border:1px solid #ccc; border-radius:6px; background:#fff; position:relative; vertical-align:middle; margin:0; line-height:1; outline:none;}
/* 中央のチェック（線で描く・中央固定） */
.privacy_policy_check input[type="checkbox"]::after {content:""; position:absolute; left:50%; top:50%; width:10px; height:18px; border-right:3px solid #f00; border-bottom:3px solid #f00; transform:translate(-50%, -55%) rotate(45deg); opacity:0; pointer-events:none;}
/* チェック時：表示だけ切り替え（寸法は変えない） */
.privacy_policy_check input[type="checkbox"]:checked::after {opacity:1;}
/* 任意：フォーカス見やすく（位置は変えない） */
.privacy_policy_check input[type="checkbox"]:focus-visible {outline:2px solid #4CC764; outline-offset:2px;}
/* 推奨：ラベルと縦中央揃えで横ズレ対策 */
.privacy_policy_check label.cb {display:inline-flex; align-items:center; gap:.5em;}


#pagetop_lottie { display:none; }






input[type="date"] {
  color: #222;
}
input[type="date"]:not(:valid) {
  color: #888;
}
select.is-placeholder {
  color: #888;
}
select:not(.is-placeholder) {
  color: #222;
}



.contact_form dl dd input.input_datetime { background: transparent; }
.date_icon {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: #666;
    z-index: -1;
}
@-moz-document url-prefix() {
  .date_icon {
    display: none;
  }
}

@media (min-width: 768px) {
    .width_100_pc { width: 100% !important; }
}
@media screen and (-webkit-min-device-pixel-ratio:0) {
    .date_icon { display: none; }
}