.ThanksPage {
    width:100%;
    padding:36px 0 60px;
    display:flex;
    justify-content:center;
    align-items:center;
}

.ThanksPage .ThanksInner {
    width:100%;
    max-width:961px;
    text-align:center;
}

.ThanksPage .Thx {
    position:relative;
    width:100%;
    background:url("../images/img_CmpltImg@2x.png") center no-repeat;
    background-size:cover;
    border-radius:20px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    color:#000;
    margin:0 auto 40px;
    aspect-ratio:16 / 9;
    min-height:clamp(320px, 56vw, 486px);
    padding:clamp(24px, 5vw, 64px) clamp(24px, 6vw, 72px);
    text-align:center;
}

.ThanksPage .Thx h1 {
    font-size:2.8rem;
    margin-bottom:40px;
}

.ThanksPage .Thx p {
    font-size:1.6rem;
    line-height:2;
    padding:0 clamp(16px, 5vw, 40px);
}

.ThanksPage .Thx .SiteCode {
    display:block;
    font-size:1.4rem;
    margin-top:24px;
    font-weight:500;
}

.ThanksPage .ThanksInner a {
    display:inline-block;
    width:292px;
    height:45px;
}

@media screen and (max-width:960px) {
    .ThanksPage {
        padding:20px 0 40px;
    }
    .ThanksPage .Thx {
        margin-bottom:32px;
        min-height: clamp(280px, 65vw, 420px);
        padding:clamp(24px, 6vw, 48px);
    }
    .ThanksPage .Thx h1 {
        font-size:clamp(20px, 5.33vw, 28px);
        margin-bottom:24px;
    }
    .ThanksPage .Thx p {
        font-size:clamp(13px, 4.27vw, 16px);
        padding:0 24px;
    }
    .ThanksPage .ThanksInner a {
        width:220px;
        height:40px;
    }
}

@charset "UTF-8";

/*js連動部分！必須設定*/
html {
  scroll-behavior: smooth; /* スムーズスクロールを有効にする */
}
.form-transition-mask {
  position: fixed;
  inset: 0;
  background: #fff;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.24s ease;
  z-index: 9999;
}
.form-transition-mask.no-transition {
  transition: none;
}
.form-transition-mask.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
/* 既存のエラーメッセージのスタイルと区別するため、error-messageにもwarning-messageを適用 */
.error {
  border:1px solid #f00 !important;
  box-shadow: 0 0 5px rgba(255, 40, 100, 0.5);
  margin:5px 0 0;
}
.error-message {
  color: #f00 !important;
  margin:5px 0 0;
}
/* 入力欄自体をオレンジ色の枠にする */
  .warning {
    border: 1px solid #ff9800 !important; /* オレンジ色 */
    box-shadow: 0 0 5px rgba(255, 152, 0, 0.5);
}
/* 注意メッセージをオレンジ色の文字にする */
.warning-message {
    color: #ff9800 !important; /* オレンジ色 */
    margin:5px 0 0;
}
/* --- 【修正箇所】 --- */
  .privacy-consent-wrapper.disabled, /* PHPが disabled 属性を付けた場合 */
  .privacy-consent-wrapper.check-disabled { /* JSがクラスを付けた場合 */
    opacity: 0.6;
    cursor: not-allowed;
    /*pointer-events: none;*/ /* 親要素全体でクリック操作を阻止 */
}

/* 送信ボタンが disabled 状態に見えるようにする */
  .submit-disabled {
  pointer-events: auto !important; /* クリックイベントが阻止されないようにする */
  opacity: 0.3;
  background-color: #cde8f9 !important; /* 例 */
  cursor: not-allowed !important;
  }
/* 送信ボタンのdisabled属性は常にfalseだが、CSSで無効に見せる */

/*フォーム部分設定*/
.MainArea {
    width:100%;
    max-width:961px;
    margin:0 auto;
}
h2 {
    text-align:center;
    font-size:3.6rem;
    font-weight:600;
    margin:0 0 80px;
    position:relative;
}
h2::after {
    position:absolute;
    content:"";
    background:#fff8ba;
    width:100%;
    max-width:506px;
    height:32px;
    bottom:-18px;
    left:50%;
    transform:translateX(-50%);
    z-index:-999;
}
#ContactArea {
    width:100%;
    max-width:961px;
    background:#cde8f9;
    border:1px solid #bdbdbd;
    border-radius:10px;
    padding:50px 0 50px;
    margin-bottom:50px;
}
#ContactArea .Attention {
    width:100%;
}
#ContactArea .Attention p {
    width:100%;
    font-size:1.6rem;
    text-align:center;
    line-height:2;
}
#ContactArea .Attention p:first-child,
#ContactArea .Attention p:last-child {
    margin:0 0 50px;
}
#ContactArea hr {
    width:100%;
    max-width:780px;
    border-bottom:4px dotted #000;
    margin:0 auto 50px;
}

/*ユーザー入力部分設定*/
fieldset span.Remarks {
    width:55px;
    height:20px;
    background:#fff8ba;
    border-radius:25px;
    font-size:1.5rem;
    text-align:center;
    margin:0 0 0 10px;
    line-height:20px;
    display: inline-block;
}

form {
    width:100%;
    max-width:none;
    margin:0;
}
fieldset {
    width:100%;
    border:none;
    display:flex;
    flex-direction: column;
    justify-content:center;
    align-items: center;
}
legend {
  display:none;
}
.Group {
    width:100%;
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin:0 0 40px;
}
.GroupContact {
    width:100%;
    max-width:500px;
    display:flex;
    justify-content:space-between;
    align-items:center;
}
.GroupContact p.InputArea {
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    align-items:center;
}
.GroupContact input {
    width:100%;
    max-width:430px;
    height:40px;
}
.Add {
    width:100% !important;
    max-width:780px !important;
    height:40px !important;
    margin:0 0 40px 0 !important;
    display: block !important;
}
.RightEnd {
    float:right !important;
}
fieldset p.LabelsItem {
    width:100%;
    max-width:280px;
}
fieldset p.InputArea {
    width:100%;
    max-width:500px;
}
/* registration2 の新IDにも同じ幅/高さを適用 */
fieldset input#customer_name,
fieldset input#customer_furi,
fieldset input#company,
fieldset input#dept,
fieldset input#position,
fieldset input#tel_fixed,
fieldset input#tel_mobile,
fieldset input#email,
fieldset select#how_found,
fieldset input#light_count,
fieldset select#survey_date,
fieldset select#purpose {
    width:100%;
    max-width:500px;
    height:40px;
}
fieldset textarea {
    width:100%;
    max-width:500px;
    height:150px;
}
p.AutoInput {
    width:220px;
    height:40px;
    background:#fff8ba;
    text-align: center;
    border-radius: 25px;
    line-height:40px;
}
/* ボタン化した場合の体裁を維持 */
p.AutoInput button {
    width:100%;
    height:100%;
    background:transparent;
    border:none;
    font: inherit;
    cursor:pointer;
}
fieldset .ZipCodeArea {
    width:100%;
    max-width:500px;
    display:flex;
    justify-content:space-between;
    align-items:center;
}
fieldset p.PreSuff {
    width:100%;
    max-width:242px;
    display:flex;
    flex-wrap: wrap;
    justify-content:space-between;
    align-items:center;
}
fieldset input.ZipPrefix,
fieldset input.ZipSuffix {
    width:100%;
    max-width:100px;
    height:40px;
}
fieldset input.ZipSuffix {
    width:100%;
    max-width:110px;
}
/* 単一フィールド(zip)に統合した場合の幅 */
fieldset input#zip {
    width:100%;
    max-width:242px;
    height:40px;
}
.PrefCity {
    width:100%;
    max-width:500px;
    display:flex;
    justify-content:space-between;
    align-items:center;
}
.PrefCity input#pref {
    width:100%;
    max-width:130px;
  height:40px;
}
.PrefCity p.Citys {
    width:100%;
    max-width:340px;
    display:flex;
    justify-content:space-between;
    align-items:center;
}
p.Citys input#city {
    width:100%;
    max-width:253px;
    height:40px;
}
p.Text {
    margin:10px auto 50px;
    text-align:center;
}
p.InputArea label {
    margin:0 20px 0 0;
}
p.InputArea label:first-child {
    margin-left:0;
}
input.InputCheck {
    margin-right:10px;
}
.UpLoad {
    width:100%;
    max-width:500px;
    height:40px;
    padding:4px 0 0 10px;
    background:#fff;
    border:1px solid #959595;
}
p.PrivacyPolicy {
    width:100%;
    max-width:350px;
    margin:0 auto 40px;
    text-align:center;
}
p.PrivacyPolicy label span.marker {
    /*background:#fff8ba;*/
    background:linear-gradient(transparent 65%, #fff8ba 65%);
}

/* 同意チェックの中央揃えと整列 */
.privacy-consent-wrapper {
    display:inline-flex;
    align-items:center;
    gap:8px;
}
p.Submit {
    width:100%;
    max-width:290px;
    height:45px;
    margin:0 auto 40px;
    font-size:1.6rem;
}

/* for Sp*/
@media screen and (min-width:0) and (max-width:960px) {
    .MainArea {
        max-width:960px;
    }
    h2 {
        font-size:2.8rem;
        margin:0 0 50px;
    }
    h2::after {
        max-width:calc(320vw / 3.75);
        height:15px;
        bottom:-14px;
    }
    #ContactArea {
        max-width:960px;
        border-radius:0;
        padding:calc(24vw / 3.75) calc(32vw / 3.75);
        margin:0 0 calc(48vw / 3.75);
    }
    #ContactArea .Attention p:last-child {
        margin:0 0 calc(40vw / 9.6);
    }
    #ContactArea hr {
        max-width:calc(321vw / 3.75);
        margin:0 auto calc(45vw /9.6);
    }
    form {
        max-width:960px;
        position:relative;
    }
    .Group {
        flex-direction: column;
        margin:0 0 calc(30vw / 3.75);
    }
    label br {
        display:none;
    }
    .GroupContact {
        flex-direction: column;
        max-width:calc(320vw / 3.75);
    }
    .GroupContact p.InputArea {
        flex-direction:column;
        align-items: normal;
        margin:0 0 30px;
    }
    .GroupContact input {
        max-width:calc(320vw / 3.75);
    }
    .Add {
        max-width:calc(321vw / 3.75) !important;
        margin-top:25px !important;
    }
    .RightEnd {
        float:none !important;
    }
    fieldset p.LabelsItem {
        max-width:calc(320vw / 3.75);
        margin:0 0 15px;
    }
    fieldset p.InputArea {
        max-width:calc(320vw / 3.75);
    }
    fieldset input#name,
    fieldset input#furigana,
    fieldset input#company,
    fieldset input#department,
    fieldset input#officePost,
    fieldset input#tel,
    fieldset input#mobile,
    fieldset input#email,
    fieldset select#learn,
    fieldset input#units,
    fieldset select#desired,
    fieldset select#intention {
        max-width:calc(320vw / 3.75);
    }
    /* registration2 の新IDにも同じmax-widthを適用 */
    fieldset input#customer_name,
    fieldset input#customer_furi,
    fieldset input#company,
    fieldset input#dept,
    fieldset input#position,
    fieldset input#tel_fixed,
    fieldset input#tel_mobile,
    fieldset input#email,
    fieldset select#how_found,
    fieldset input#light_count,
    fieldset select#survey_date,
    fieldset select#purpose {
        max-width:calc(320vw / 3.75);
    }
    /* zip 単体の幅（SP） */
    fieldset input#zip {
        max-width:calc(242vw / 3.75);
    }
    .LedAdd {
        margin-bottom:15px;
    }
    fieldset textarea {
        max-width:calc(320vw / 3.75);
        height:200px;
    }
    fieldset .ZipCodeArea {
        max-width:calc(320vw / 3.75);
        flex-direction:column;
        align-items:normal;
    }
    fieldset p.PreSuff {
        /*max-width:calc(320vw / 3.75);*/
    }
    .PrefCity input#pref {
        max-width:calc(320vw / 3.75);
        align-items:normal;
        margin:0 0 30px;
    }
    .PrefCitys {
        max-width:calc(320vw / 3.75);
        flex-direction: column;
    }
    .PrefCity p.Citys {
        max-width:calc(320vw / 3.75);
        flex-direction: column;
        align-items: normal;
    }
    p.Citys input#city {
        max-width:calc(320vw / 3.75);
    }
    p.InputArea label {
        margin:0;
        display:flex;
    }
    p.AutoInput {
        margin-top:15px;
    }
    .UpLoad {
        max-width:calc(320vw / 3.75);
    }
    p.PrivacyPolicy {
        max-width:320px;
        margin:calc(20vw / 3.75) auto calc(16vw / 3.75);
    }
    p.Submit {
        width:100%;
        max-width:320px;
        height:45px;
        margin:0 auto calc(28vw / 3.75);
    }
    #confirmButton, #finalSubmitButton, #backButton {
        width:100%;
        max-width:320px;
        margin:0 auto 12px;
        display:block;
    }
    .ConfirmationActions {
        max-width:320px;
        flex-direction:column;
        gap:12px;
        align-items:stretch;
        margin:16px auto 32px;
    }
    /*label, input, textarea, select {
        margin-top:15px;
    }*/
    label.city,
    label.cityAdd,
    label.buildAdd {
        margin:0 0 15px !important;
    }
    input.files {
        margin-top:0;
    }
}

/* 入力セクション内コンテンツの横幅を旧フォーム相当に制限して中央寄せ */
#formInputSection {
    width:100%;
    max-width:780px;
    margin:0 auto;
}

/* number入力のスピナーを非表示（見た目の差異を抑制） */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
input[type=number] {
  -moz-appearance: textfield;
}

#confirmButton {
    width:290px;
    height:45px;
    background:#cde8f9;
    border:1px solid #959595;
    border-radius: 25px;
    margin:0 auto;
    cursor:not-allowed;
    opacity:0.5;
    color:#000;
    font-size:1.6rem;
}
#confirmButton.is-active {
    cursor:pointer;
    opacity:1;
}

.ConfirmationView {
    display:none;
    padding:0;
    background:transparent;
}
.ConfirmationView.is-hidden {
    display:none;
}
.ConfirmationView:not(.is-hidden) {
    display:block;
}
.ConfirmationMain {
    width:100%;
    max-width:961px;
    margin:0 auto 80px;
    padding:0;
}
.ConfirmationBody {
    width:100%;
    background:#cde8f9;
    border-radius:15px;
    padding:60px 50px 48px;
}
.ConfirmationTitle {
    text-align:center;
    font-size:3.6rem;
    font-weight:600;
    margin:0 0 80px;
    position:relative;
}
.ConfirmationTitle::after {
    position:absolute;
    content:"";
    background:#fff8ba;
    width:100%;
    max-width:506px;
    height:32px;
    bottom:-18px;
    left:50%;
    transform:translateX(-50%);
    z-index:-999;
}
.ConfirmationTable {
    width:100%;
    border-collapse:collapse;
    margin-bottom:30px;
    font-size:1.6rem;
}
.ConfirmationTable th,
.ConfirmationTable td {
    font-size:1.6rem;
    padding:24px 32px;
    border:1px solid #cde8f9;
    background:transparent;
    text-align:left;
    line-height:1.9;
}
.ConfirmationTable th {
    width:30%;
    font-weight:600;
}
.ConfirmationFiles {
    margin-bottom:30px;
    padding:0 32px;
}
.ConfirmationFilesTitle {
    font-weight:600;
    margin-bottom:10px;
}
.ConfirmationFilesSubtitle {
    font-weight:600;
    margin:20px 0 10px;
}
.confirm-photo-list,
.confirm-doc-list {
    list-style:none;
    margin:0;
    padding:0;
}
.confirm-photo-list {
    display:flex;
    flex-wrap:wrap;
    gap:20px;
}
.confirm-photo-list li {
    width:140px;
    text-align:center;
}
.confirm-photo-list img {
    width:100%;
    height:100px;
    object-fit:cover;
    border-radius:12px;
    border:1px solid #959595;
    margin-bottom:8px;
    background:#fff;
}
.confirm-photo-list span {
    font-size:1.4rem;
    word-break:break-all;
    display:block;
}
.ConfirmationDocPreview {
    margin-top:20px;
}
.confirm-doc-list li {
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:12px;
}
.confirm-doc-icon {
    width:32px;
    height:32px;
    border-radius:6px;
    background:#f4f4f4;
    border:1px solid #959595;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:2.0rem;
}
.confirm-doc-name {
    font-size:1.5rem;
    word-break:break-all;
}
.ConfirmationEmptyItem {
    font-size:1.6rem;
    word-break:keep-all;
}
.ConfirmationFilesNote {
    font-size:1.3rem;
    color:#555;
}
.ConfirmationActions {
    width:100%;
    max-width:961px;
    margin:24px auto 64px;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:24px;
}
.ConfirmationActions button {
    width:240px;
    padding:16px 0;
    border-radius:25px;
    border:1px solid #959595;
    background:#cde8f9;
    color:#000;
    text-align:center;
    cursor:pointer;
    font-size:1.6rem;
}
.ConfirmationActions button + button {
    margin-top:0;
}

@media screen and (max-width:960px) {
    .ConfirmationMain {
        padding:0;
        margin:0 auto 60px;
    }
    .ConfirmationBody {
        border-radius:0;
        padding:calc(24vw / 3.75) 0 calc(22vw / 3.75);
        background:#cde8f9;
    }
    .ConfirmationActions {
        max-width:320px;
        flex-direction:column;
        gap:12px;
        align-items:stretch;
        margin:16px auto 32px;
    }
    .ConfirmationActions button {
        width:100%;
        max-width:inherit;
    }
    .ConfirmationTable {
        font-size:1.6rem;
    }
    .ConfirmationTable th,
    .ConfirmationTable td {
        font-size:1.6rem;
        padding:calc(18vw / 3.75) calc(16vw / 3.75);
    }
}

/* 旧フォームに合わせて確認エリア全体を調整 */
.ConfirmationBody,
.ConfirmationTable th,
.ConfirmationTable td {
    line-height:1.9;
}

/* is-hidden Utility */
.is-hidden {
    display:none !important;
}
.PrefReadOnly[readonly] {
    background:#e6eef5;
    color:#555;
    cursor:not-allowed;
}
