/* --- 全体・基本設定 --- */
body {
    background-color: #F6F6F6;
    padding-top: 0px;
}

.contact-Wrapper {
    margin: 0px;
}

.c-HeaderPc_Logo img {
    width: 300px;
}

.c-HeaderSp_Logo img {
    width: 200px;
}

.c-HeaderSp {
    height: 45px;
}

/* プレースホルダー文字色変更 */
.ss_input input::placeholder,
.ss_input textarea::placeholder {
    color: #B2B2B2 !important; 
    opacity: 1; /* Firefox対策 */
}

.c-HeaderPc_Nav {
    padding-right: 20px;
    justify-content: space-between;
}

/* 既存の「必須」spanラベルは非表示（疑似要素beforeで描画するため） */
.ss_notnull {
    display: none !important;
}

.label-warning {
    background-color: #D60011; /* エラーの「！」等に使用される赤 */
}

/* 必須エラー時の文言デザイン */
.ss_error_msg, .errorMsg { 
    color: #D60011;
    font-size: 12px;
}

.label {
    vertical-align: text-top !important;
}

/* --- コンテンツエリアの枠組み --- */
.ss_contents {
    background-color: #fff;
    border: 1px solid #FFF;
    border-radius: 20px;
    margin: 0px auto;
    padding-bottom: 30px;
}

/* --- 言語切り替え箇所のデザイン --- */
.c-HeaderPc_TranslateJp, .c-HeaderPc_TranslateEn {
    font-size: 14px;

}

.c-HeaderPc_TranslateEn, .c-HeaderPc_TranslateJp {
    color: #B2B2B2;
}

.c-HeaderPc_TranslateEn.isActive, .c-HeaderPc_TranslateEn:hover, .c-HeaderPc_TranslateJp.isActive, .c-HeaderPc_TranslateJp:hover {
    color: #D60011;
}

@media screen and (min-width: 1100px) {
    .c-HeaderPc_Translate {
        /* 1. 子要素（JP, EN）を横並びにする */
        display: flex !important;
        /* 2. 上下中央を揃える */
        align-items: center !important;
        /* 3. 縦並び用の固定幅を解除し、中身に合わせる */
        width: auto !important;
    }

    .c-HeaderPc_TranslateJp {
        /* 4. 下側の線を消し、JPとENの間の右側に線を入れる */
        border-bottom: none !important;
        border-right: 1px solid #000;
        /* 5. 文字の余白調整 */
        padding-bottom: 0 !important;
        padding-right: 10px !important;
        margin-right: 10px !important;
        line-height: 1 !important;
    }

    .c-HeaderPc_TranslateEn {
        /* 6. 上側の余白をリセット */
        padding-top: 0 !important;
        line-height: 1 !important;
    }
}


/* --- タイトルエリア（資料請求｜登録フォーム） --- */
.navbar-inner {
    display: flex !important;
    align-items: center;      /* 上下中央寄せ */
    justify-content: center;   /* 左右中央寄せ */
    height: 70px !important;
    min-height: 0px !important;
    background: #D60011 !important; 
    background-image: none !important; /* グラデーション削除 */
    filter: none !important;           /* IE用フィルタ削除 */
    border: none !important; 
    border-radius: 20px 20px 0 0; 
    box-shadow: none !important;
    padding: 0;
}

.navbar .brand {
    color: #fff !important; 
    text-shadow: none !important; 
    font-weight: bold;
    font-size: 30px; 
    padding: 0 !important; 
    margin: 0 !important; 
    float: none !important;
}

.navbar {
    margin-bottom: 0px;
    overflow: visible;
}

/* --- フローナビ（矢印型ステップ） --- */
.ss_contents .breadcrumb {
    display: flex;
    padding: 0;
    margin: 5px auto 15px auto; /* タイトルバーとの距離調整 */
    list-style: none;
    background-color: transparent;
    border: none;
    justify-content: center;
    width: 100%;
    max-width: 1080px; 
}

.ss_contents .breadcrumb li {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1; 
    height: 45px;
    background: #f6f6f6;
    color: #333;
    font-size: 20px;
    font-weight: bold;
    margin-right: 10px; /* 矢印の重なりシロ */
    text-shadow: none !important;
}

/* 矢印の先端 */
.ss_contents .breadcrumb li::after {
    content: "";
    position: absolute;
    top: 0;
    right: -20px;
    border-top: 23px solid transparent;    
    border-bottom: 23px solid transparent; 
    border-left: 21px solid #f6f6f6;        
    z-index: 2;
}

/* 矢印の切り欠き */
.ss_contents .breadcrumb li::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    border-top: 22.5px solid transparent;
    border-bottom: 22.5px solid transparent;
    border-left: 20px solid #fff;
    z-index: 1;
}

.ss_contents .breadcrumb li:first-child { border-radius: 0; }
.ss_contents .breadcrumb li:first-child::before { display: none; }
.ss_contents .breadcrumb li:last-child { margin-right: 0; }
.ss_contents .breadcrumb li:last-child::after { display: none; }

.ss_contents .breadcrumb li.ss_active {
    background-color: #d9d9d9; 
    color: #333 !important;
}

.ss_contents .breadcrumb li.ss_active::after {
    border-left-color: #d9d9d9;
}

/* --- 入力項目のスタイル --- */
.name_notnull,
.name {
    display: block;
    font-weight: bold;
    margin-bottom: 8px;
    font-size: 15px;
    color: #333;
}

/* --- 必須・任意のアイコン出し分け --- */
/* 共通スタイル */
.name_notnull::before {
    display: inline-block;
    font-size: 12px;
    padding: 5px 10px;
    border-radius: 5px;
    margin-right: 5px;
    vertical-align: middle;
}

/* 「必須」の判定：子要素に .ss_notnull が存在する場合 */
.name_notnull:has(.ss_notnull)::before {
    content: "必須";
    background-color: #D60011;
    color: #fff;
}

/* 「任意」の判定：子要素に .ss_notnull が存在しない場合 */
.name_notnull:not(:has(.ss_notnull))::before {
    content: "任意";
    background-color: #d9d9d9;
    color: #333;
}

/* 入力欄（背景グレー・角丸） */
.ss_input input[type="text"],
.ss_input input[type="email"],
.ss_input textarea,
.ss_input select {
    width: 100% !important;
    height: 40px !important;
    background-color: #f6f6f6 !important;
    border: none !important;
    border-radius: 5px !important;
    padding: 0 15px !important; /* selectの上下パディングはブラウザに任せるため左右のみ */
    box-sizing: border-box !important;
    -webkit-appearance: none; /* iOS/Safariの標準デザイン解除 */
    -moz-appearance: none;    /* Firefoxの標準デザイン解除 */
    appearance: none;         /* 標準デザイン解除 */
    color: #333;
    font-size: 14px;
}

/* テキストエリアだけは高さ40pxを解除、パディング調整 */
.ss_input textarea {
    height: auto !important;
    padding: 15px !important;
}

/* プルダウン（select）専用：下向き矢印のアイコンを追加 */
.ss_input select {
    /* 矢印アイコンを背景画像として配置 */
    background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="%23333" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M6 9l6 6 6-6"/></svg>') !important;
    background-repeat: no-repeat !important;
    background-position: right 15px center !important;
    background-size: 12px !important;
    cursor: pointer;
}

/* IEで矢印が重複するのを防ぐ */
.ss_input select::-ms-expand {
    display: none;
}

/* --- 内覧希望日時のレイアウト微調整 --- */
@media screen and (min-width: 741px) {
    /* 親要素を横並びに設定 */
    #viewingDate .validate {
        display: flex !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;
    }

    /* 2つ目のブロック（時間側）全体を左から離す */
    #viewingDate .ss_input:nth-of-type(2) {
        margin-left: 40px !important;
        flex: none !important;
    }

    /* 日付inputと時間selectの「外枠の合計幅」を183pxで統一 */
    #viewingDate .ss_input input[type="text"],
    #viewingDate .ss_input select {
        width: 183px !important; /* 153px + padding 30px */
        padding: 0 15px !important;
        height: 40px !important;
        box-sizing: border-box !important; /* paddingを幅に含める設定 */
    }

    /* 下の注釈コメントが折り返さないようにする */
    #viewingDate .ss_bottomComment {
        white-space: nowrap !important;
        width: auto !important;
    }
}

/* スマホ時は 100% 表示にリセット */
@media screen and (max-width: 740px) {
    #viewingDate .ss_input input[type="text"],
    #viewingDate .ss_input select {
        width: 100% !important;
    }
    #viewingDate .ss_input:nth-of-type(2) {
        margin-top: 20px !important;
        margin-left: 0 !important;
    }
}

/* --- フォームコメントデザイン --- */
.ss_upComment, .ss_leftComment, .ss_rightComment, .ss_bottomComment{
    color: #333 !important;
}

/* --- プライバシーポリシーリンクデザイン --- */
.contact-Poricy_Link {
    color: #d60011 ;
    font-weight: 700;
    text-decoration: underline;
    display: block;
    font-size: 12px;
    margin-top: 5px;
}

a:hover, a:focus {
    color: #333 ;
    text-decoration: underline;
}

/* --- 入力エリア内テーブルの間隔調整--- */
/* 入力欄（.ss_input）の中にあるテーブルすべてに適用 */
.ss_input table {
    width: auto !important;          /* コンテンツ幅に合わせる */
    border-collapse: separate !important; 
    border-spacing: 0 !important;    /* 枠線の隙間はゼロにする */
    margin-bottom: 0 !important;
    color:#333 !important;
}

/* 選択肢1列目と2列目の右側にのみ余白を追加 */
.ss_input table td:nth-child(1),
.ss_input table td:nth-child(2) {
    padding-right: 80px !important;
    vertical-align: middle !important;
}

/* 行間に余白を設定 */
.ss_input table td {
    padding-bottom: 10px !important;
}

/* 2列目以降のセルを垂直方向の中央揃え */
.ss_input table td:nth-child(even) {
    vertical-align: middle !important;
}

/*--- ss_inputのデザイン　--- */
div.ss_input {
    color: #333;
}

/* SP表示（幅1100px以下）時、画面からはみ出さないよう余白調整 */
@media screen and (max-width: 1100px) {
    .ss_input table td:nth-child(odd) {
        padding-right: 20px !important; /* スマホやタブレットでは余白を狭める */
    }
}

/* --- submitボタン --- */
.ss_form_btn.js_btn_area {
    text-align: center;
}

/* Bootstrapのグラデーションを打ち消し */
.ss_form_btn.js_btn_area button.btn.btn-primary.btn-large[type="submit"] {
    background-color: #D60011 !important; /* 赤色単色 */
    background-image: none !important;    /* グラデーション解除 */
    filter: none !important;              /* IE用解除 */
    border: none !important;              /* 既存の枠線解除 */
    color: #fff !important; 
    padding: 15px 80px;
    border-radius: 50px;
    font-size: 18px;
    font-weight: bold;
    cursor: pointer;
    width: auto !important;
    min-width: 300px;
    box-shadow: none !important;
    transition: background-color 0.3s;
}

/* ホバー時のデザイン適用 */
.ss_form_btn.js_btn_area button.btn.btn-primary.btn-large[type="submit"]:hover {
    background-color: #222222 !important;
    background-image: none !important;
}

/* ---reCAPTCHAのデザイン修正--- */
#recaptcha-anchor-label {
    color: #333 !important;
}

/* --- ヘッダー・フッター調整 --- */
header.c-Header {
    width: 1080px;
    margin: 0 auto;
}

.c-HeaderPc {
    position: unset;
    background-color: transparent;
}

.c-HeaderPc_Logo {
    padding-top: 30px;
}

a {
    color: #000;
    cursor: pointer;
    display: block;
    text-decoration: none;
    background: transparent;
    font-size: 100%;
    margin: 0;
    padding: 0;
    vertical-align: baseline;
}

.c-Footer {
    background-color: transparent;
    max-width: 1080px;
    width: 100%;
    margin: 0 auto;
}

.c-Footer_Inner {
    display: flex;
    justify-content: flex-end;
    padding: 13px 0;
    margin: 0 auto;
    width: 1080px;
}

.c-Footer_Inner a, .c-Footer_Inner p {
    color: #333333 !important;
}
.c-Footer_Inner a:hover {
    color: #D60011 !important;
}

.c-Footer_Company,
.c-Footer_Privacy {
    font-size: 12px;
    font-weight: 700;
    margin-right: 30px;
}

.c-Footer_Company:after,.c-Footer_Privacy:after {
    content: none !important;
}

.c-Footer_Copyright {
    font-size: 10px;
}

/* --- PC・レスポンシブ個別設定 --- */
@media screen and (min-width:1100px) {
    .ss_contents {
        width: 1080px;
        padding-bottom: 50px;
    }
    .ss_contents p {
        width: 940px;
        color: #333333;
    }
    .container {
        display: block;
        width: 100%;
        max-width: 900px;
        margin: 0 auto;
    }

    .container p {
        margin-bottom: 25px;
    }

    .container_lead {
        width: 100% !important;
        margin-bottom: 15px;
        padding-bottom: 10px;
        border-bottom: 1px solid rgba(0, 0, 0, .1);
    }
}

@media screen and (max-width:1100px) {
    .ss_contents {
        margin-top: 50px;
    }
    .container, .ss_form, .ss_contents p {
        width: 90%;
        margin: 0 auto;
    }
    .ss_contents p {
        width: 100%;
        margin: 0 auto;
    }
    .c-Footer_Inner {
        width: 90%;
        flex-direction: column;
        align-items: center;
    }
    .c-Footer_Company, .c-Footer_Privacy {
        margin-right: 0;
        margin-bottom: 10px;
    }
    .js_btn_area button[type="submit"] {
        width: 100% !important;
        min-width: unset;
    }
    .container_lead {
        width: 100% !important;
        margin-bottom: 15px;
        padding-bottom: 10px;
        border-bottom: 1px solid rgba(0, 0, 0, .1);
    }
}