@charset "utf-8";
/* CSS Document */

/*----------------------------------
カミネ グランドセイコー コンシェルジュ（モーダル）
※見出し・ボタン等はLP共通クラス（ul.title / arw-box_bk / arw-box2 / overlap_block / models2 / staff 等）を流用し、
  ここではモーダル固有のレイアウトと、button要素で共通クラスを使うための最小限の補正のみ定義
------------------------------------*/

/* button要素で .arw-box_bk を使う場合の補正 */
button.arw-box_bk {
   background-color: transparent;
   line-height: inherit;
   cursor: pointer;
   border-radius: 0;
   -webkit-appearance: none;
   appearance: none;
}

button.arw-box_bk:disabled {
   opacity: 0.35;
   cursor: default;
}

/* LP側の起動ボタン */
.concierge_open {
   margin: 10px 0 0 0;
}

/* モーダル本体 */
.concierge {
   display: none;
   position: fixed;
   top: 0;
   right: 0;
   bottom: 0;
   left: 0;
   z-index: 1000;
   -webkit-box-align: center;
   -ms-flex-align: center;
   align-items: center;
   -webkit-box-pack: center;
   -ms-flex-pack: center;
   justify-content: center;
}

.concierge.is-open {
   display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
   animation: fadeIn .3s ease 0s 1 normal;
   -webkit-animation: fadeIn .3s ease 0s 1 normal;
}

.concierge_overlay {
   position: absolute;
   top: 0;
   right: 0;
   bottom: 0;
   left: 0;
   background-color: rgba(0, 0, 0, 0.84);
}

.concierge_dialog {
   position: relative;
   width: calc(100% - 40px);
   max-width: 900px;
   max-height: calc(100% - 40px);
   display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
   -webkit-box-orient: vertical;
   -ms-flex-direction: column;
   flex-direction: column;
   background-color: #fff;
   box-shadow: 0 0 30px rgba(0, 0, 0, 0.4);
}

.concierge_dialog:focus {
   outline: none;
}

.concierge_body.bg_wh {
   -webkit-box-flex: 1;
   -ms-flex: 1 1 auto;
   flex: 1 1 auto;
   min-height: 0;
   overflow-y: auto;
   -webkit-overflow-scrolling: touch;
   overscroll-behavior: contain;
   padding: 60px 50px 50px 50px;
   color: #000044;
}

/* 右上×ボタン（常時表示） */
.concierge_close {
   position: absolute;
   top: 0;
   right: 0;
   z-index: 2;
   width: 48px;
   height: 48px;
   border: none;
   background-color: #000044;
   color: #fff;
   font-size: 28px;
   line-height: 48px;
   text-align: center;
   cursor: pointer;
   -webkit-appearance: none;
   appearance: none;
   transition: all .3s;
}

.concierge_close:hover {
   opacity: 0.8;
}

/* 画面（ステップ）切り替え */
.concierge_step {
   display: none;
}

.concierge_step.is-active {
   display: block;
   animation: fadeIn .4s ease 0s 1 normal;
   -webkit-animation: fadeIn .4s ease 0s 1 normal;
}

/* 進捗表示 */
.concierge_progress {
   display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
   -webkit-box-align: center;
   -ms-flex-align: center;
   align-items: center;
   margin: 0 0 25px 0;
}

.concierge_progress_num {
   margin: 0 15px 0 0;
   font-size: 18px;
   white-space: nowrap;
   letter-spacing: 0.1em;
}

.concierge_progress_bar {
   -webkit-box-flex: 1;
   -ms-flex: 1;
   flex: 1;
   height: 6px;
   background-color: #e6e8f0;
   overflow: hidden;
}

.concierge_progress_bar span {
   display: block;
   height: 100%;
   background: linear-gradient(to right, #000044, #3a3a8a);
   transition: width .4s;
}

/* 質問文 */
.concierge_question {
   text-align: left;
   margin: 0 0 25px 0;
}

.concierge_question h3 {
   font-size: 24px;
   margin-bottom: 0;
}

/* 選択肢（.waku2 を流用） */
ul.concierge_choices {
   margin: 0 0 30px 0;
   text-align: left;
}

ul.concierge_choices li {
   margin: 0 0 12px 0;
}

ul.concierge_choices label.waku2 {
   display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
   -webkit-box-align: center;
   -ms-flex-align: center;
   align-items: center;
   margin: 0;
   padding: 14px 20px;
   border-color: #000044;
   cursor: pointer;
   transition: all .3s;
}

ul.concierge_choices label.waku2:hover {
   background-color: #f5fafb;
}

ul.concierge_choices input {
   position: absolute;
   opacity: 0;
   width: 1px;
   height: 1px;
}

.concierge_choice_key {
   -ms-flex-negative: 0;
   flex-shrink: 0;
   width: 32px;
   height: 32px;
   margin: 0 15px 0 0;
   border: 1px solid #000044;
   border-radius: 50%;
   line-height: 30px;
   text-align: center;
   box-sizing: border-box;
}

ul.concierge_choices input:focus-visible + label.waku2 {
   outline: 2px solid #000044;
   outline-offset: 2px;
}

ul.concierge_choices input:checked + label.waku2 {
   background-color: #000044;
   color: #fff;
}

ul.concierge_choices input:checked + label.waku2 .concierge_choice_key {
   border-color: #fff;
   background-color: #fff;
   color: #000044;
}

/* 戻る／次へ */
.concierge_nav {
   display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
   -webkit-box-pack: center;
   -ms-flex-pack: center;
   justify-content: center;
}

.concierge_nav .arw-box_bk {
   min-width: 200px;
   margin: 0 10px;
}

.concierge_nav .concierge_back {
   padding-left: 40px;
   padding-right: 40px;
   background-image: none;
}

/* 結果画面 */
.concierge_watch {
   width: 100%;
   max-width: 380px;
   margin-bottom: 10px;
}

.concierge_model h3 {
   margin-bottom: 0;
}

.concierge_model h4 {
   margin-bottom: 10px;
}

.concierge_catch {
   font-size: 18px;
   margin: 0 0 30px 0;
}

.overlap_block.concierge_staff {
   overflow: hidden;
   margin: 0 0 20px 0;
}

.concierge_staff .staff {
   max-width: 140px;
}

.concierge_staff_text {
   overflow: hidden;
}

.concierge_staff_name {
   margin: 0 0 10px 0;
   font-size: 14px;
   line-height: 160%;
}

.concierge_staff_name .font16 {
   font-weight: bold;
}

.concierge_staff h4 {
   margin-bottom: 5px;
   font-size: 16px;
   border-top: 1px solid #ddd;
   padding: 10px 0 0 0;
}

.concierge_staff p {
   margin: 0;
}

.concierge_detail.arw-box_bk {
   margin: 0 0 50px 0;
}

.concierge_also {
   margin: 0 0 30px 0;
}

ul.models2.concierge_also {
   -webkit-box-align: center;
   -ms-flex-align: center;
   align-items: center;
}

ul.models2.concierge_also li {
   margin: 0 0 10px 0;
}

ul.models2.concierge_also li img {
   max-width: 300px;
   display: block;
   margin: 0 auto 8px auto;
}

ul.models2.concierge_also .concierge_catch {
   font-size: 16px;
   margin: 0 0 20px 0;
}

/* 末尾CTA */
.concierge_cta {
   display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
   -webkit-box-pack: center;
   -ms-flex-pack: center;
   justify-content: center;
   -webkit-box-align: stretch;
   -ms-flex-align: stretch;
   align-items: stretch;
   border-top: 1px solid #ddd;
   padding: 30px 0 0 0;
}

.concierge_cta .arw-box2 {
   display: -webkit-box;
   display: -ms-flexbox;
   display: flex;
   -webkit-box-align: center;
   -ms-flex-align: center;
   align-items: center;
   -webkit-box-pack: center;
   -ms-flex-pack: center;
   justify-content: center;
   width: auto;
   padding: 15px 30px;
   line-height: 150%;
   white-space: nowrap;
}

.concierge_cta .concierge_cta_close {
   width: 200px;
   margin: 1%;
   padding: 15px;
   background-image: none;
}


@media only screen and (max-width:767px){

.concierge_dialog {
   width: calc(100% - 20px);
   max-height: calc(100% - 20px);
}

.concierge_body.bg_wh {
   padding: 55px 5% 30px 5%;
}

.concierge_close {
   width: 42px;
   height: 42px;
   font-size: 24px;
   line-height: 42px;
}

.concierge_progress {
   margin: 0 0 15px 0;
}

.concierge_progress_num {
   font-size: 15px;
}

.concierge_question {
   margin: 0 0 15px 0;
}

.concierge_question h3 {
   font-size: 18px;
}

ul.concierge_choices {
   margin: 0 0 20px 0;
}

ul.concierge_choices li {
   margin: 0 0 8px 0;
}

ul.concierge_choices label.waku2 {
   padding: 10px 12px;
   line-height: 160%;
}

.concierge_choice_key {
   width: 28px;
   height: 28px;
   margin: 0 10px 0 0;
   line-height: 26px;
}

.concierge_nav {
   -webkit-box-pack: justify;
   -ms-flex-pack: justify;
   justify-content: space-between;
}

.concierge_nav .arw-box_bk {
   min-width: 0;
   margin: 0;
}

.concierge_nav .arw-box_bk + .arw-box_bk {
   margin: 0 0 0 4%;
}

.concierge_nav .concierge_back {
   width: 40%;
   padding: 8px 5px;
}

.concierge_watch {
   max-width: 260px;
}

.concierge_catch {
   font-size: 15px;
   margin: 0 0 20px 0;
}

.concierge_staff .staff {
   max-width: 35%;
}

.concierge_staff_text {
   overflow: visible;
}

.overlap_block.concierge_staff {
   padding: 15px;
   line-height: 180%;
}

ul.models2.concierge_also {
   width: 100%;
}

ul.models2.concierge_also li img {
   max-width: 220px;
}

.concierge_cta {
   -webkit-box-orient: vertical;
   -ms-flex-direction: column;
   flex-direction: column;
   -webkit-box-align: center;
   -ms-flex-align: center;
   align-items: center;
   padding: 20px 0 0 0;
}

.concierge_cta .arw-box2 {
   width: 100%;
   margin: 0 0 10px 0;
   padding: 10px;
   white-space: normal;
}

.concierge_cta .concierge_cta_close {
   width: 100%;
   margin: 0;
   padding: 10px;
}

}
