@charset "UTF-8";

:root {
  --header-height: 92px;
}

/* ==========================================================
   contact.css
   お問い合わせページ
========================================================== */


/* ==========================================================
   01. Base
========================================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-padding-top:120px;
}

body{
    font-family:
        "Yu Gothic",
        "Hiragino Kaku Gothic ProN",
        sans-serif;

    background:#ffffff;
    color:#222;
    line-height:1.8;
}


/* ==========================================================
   02. Link
========================================================== */

a{
    color:inherit;
    text-decoration:none;
}


/* ==========================================================
   03. Header
========================================================== */

header {
  position: sticky;
  top: 0;
  z-index: 1000;

  width: 100%;
  height: var(--header-height);

  background: #fff;
  border-bottom: 1px solid #e5e5e5;
}

.header-inner {
  display: flex;
  justify-content: center;
  align-items: center;

  width: 100%;
  height: 100%;
  padding: 0 20px;
}

.logo {
  display: block;
}

.logo img {
  display: block;
  width: 80px;
  height: auto;
  max-height: 60px;
  object-fit: contain;
}


/* ==========================================================
   04. Hero
========================================================== */

.hero{

    display:flex;

    justify-content:center;

    align-items:center;

    width:100%;
    min-height:180px;

    padding:30px 20px;

    background:#fff;

    text-align:center;
}

.hero-content h1{

    margin-bottom:20px;

    color:#111;

    font-size:48px;
}

.hero-content p{

    color:#555;

    font-size:18px;
}


/* ==========================================================
   05. Layout
========================================================== */

.container{

    width:100%;
    max-width:1000px;

    margin:60px auto;

    padding:0 20px;
}


/* ==========================================================
   06. Page Title
========================================================== */

.page-title{

    margin-bottom:30px;

    text-align:center;
}

.page-title h2{

    margin-bottom:30px;

    color:#111;

    font-size:38px;
}


/* ==========================================================
   07. Progress
========================================================== */

/* 進捗バーを固定する外枠 */
.progress-banner {
  position: sticky;
  top: var(--header-height);
  z-index: 900;

  width: 100%;
  padding: 10px 20px;
  box-sizing: border-box;

  background: rgba(255, 255, 255, 0.95);
  border-bottom: 1px solid #d0d7e2;
  box-shadow: 0 4px 14px rgba(0, 51, 153, 0.1);

}

/* 進捗バー本体 */
.progress {
  display: flex;

  width: 100%;
  max-width: 700px;
  margin: 0 auto;

  overflow: hidden;

  background: #f4f7fb;
  border: 1px solid #d0d7e2;
  border-radius: 12px;
}

/* ステップ */
.step {
  position: relative;
  flex: 1;

  padding: 14px 10px;

  color: #777;
  font-weight: bold;
  text-align: center;

  transition: 0.3s;
}

/* 区切り */
.step:not(:last-child) {
  border-right: 1px solid #d0d7e2;
}

/* アンダーライン */
.step::before {
  content: "";

  position: absolute;
  left: 0;
  bottom: 0;

  width: 0;
  height: 3px;

  background: #0f5cff;
  transition: 0.3s;
}

/* 現在 */
.step.active {
  color: #fff;
  background: #0f5cff;
}

/* 完了 */
.step.done {
  color: #0f5cff;
  background: #e8f0ff;
}

/* 現在のライン */
.step.active::before {
  width: 100%;
}

/* スマートフォン */
@media (max-width: 600px) {
  .progress-banner {
    padding: 8px;
  }

  .step {
    padding: 11px 3px;
    font-size: 0.8rem;
  }
}

/* ==========================================================
   08. Contact Form
========================================================== */

.contact-form{
    padding:40px;

    background:#fff;

    border:1px solid #e8e8e8;
    border-radius:20px;

    box-shadow:0 5px 20px rgba(0,0,0,.05);
}


/* ==========================================================
   09. Form Section
========================================================== */

.form-section{
    margin-bottom:50px;
}

.form-section h3{
    margin-bottom:25px;
    padding-left:15px;

    border-left:5px solid #0f5cff;

    color:#0f5cff;

    font-size:26px;
}


/* ==========================================================
   10. Form Group
========================================================== */

.form-group{
    margin-bottom:25px;
}

.form-group label{
    display:block;

    margin-bottom:10px;

    color:#222;

    font-weight:bold;
}


/* 必須表示 */

.required{
    margin-left:10px;
    padding:3px 8px;

    background:#ff3c3c;

    border-radius:5px;

    color:#fff;

    font-size:12px;
}


/* ==========================================================
   11. Form Controls
========================================================== */

input,
select,
textarea{
    width:100%;

    padding:15px;

    background:#fff;

    border:1px solid #ccc;
    border-radius:12px;

    font-size:16px;

    scroll-margin-top:140px;

    transition:.3s;
}

input:focus,
select:focus,
textarea:focus{
    outline:none;

    border-color:#0f5cff;

    box-shadow:0 0 10px rgba(15,92,255,.2);
}

textarea{
    min-height:220px;

    resize:vertical;
}


/* 都道府県・選択欄の横幅 */

.pref-select{
    width:300px !important;
    max-width:100%;
}


/* ==========================================================
   12. Postal Code
========================================================== */

.zip-flex{
    display:flex;
    align-items:center;
    gap:10px;
}

.zip-flex input{
    max-width:180px;
}


/* ==========================================================
   13. Note
========================================================== */

.note{
    margin-top:12px;
    padding:15px;

    background:#f7f9fc;

    border-left:4px solid #0f5cff;
    border-radius:10px;

    color:#666;

    font-size:14px;
}


/* ==========================================================
   14. Warning Box
========================================================== */

.warning-box {
  padding: 25px;
  text-align: center;
}

.warning-text {
  display: inline-block;
  margin: 0;
  text-align: left;
}


/* ==========================================================
   15. Checkbox
========================================================== */

.checkbox-group{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:10px;

    margin-top:25px;

    font-size:15px;
}

.checkbox-group input{
    width:auto;

    transform:scale(1.3);
}


/* ==========================================================
   16. Submit Button
========================================================== */

.submit-area{
    margin-top:50px;

    text-align:center;
}

.submit-btn{
    padding:18px 60px;

    background:
        linear-gradient(
            135deg,
            #0f5cff,
            #2d7dff
        );

    border:none;
    border-radius:50px;

    color:#fff;

    font-size:18px;
    font-weight:bold;

    cursor:pointer;

    box-shadow:0 10px 20px rgba(15,92,255,.25);

    transition:.3s;
}

.submit-btn:hover{
    transform:translateY(-3px);

    box-shadow:0 15px 25px rgba(15,92,255,.35);
}


/* ==========================================================
   17. Footer
========================================================== */

footer{
    margin-top:80px;
    padding:30px 20px;

    background:#111;

    color:#fff;

    text-align:center;
}


/* ==========================================================
   18. Responsive
========================================================== */

/* この項目だけ、既存のspan用装飾を解除 */
.form-checkbox-list label.problem-link-system .problem-link-text,
.form-checkbox-list label.problem-link-system .problem-link-text span {
    background: none !important;
    color: inherit !important;
    font-size: inherit !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    font-weight: inherit !important;
}


.sp-only-break {
    display: none;
}

@media (max-width: 768px) {
    .sp-only-break {
        display: block;
    }
}

    .header-inner{
        padding:15px 20px;
    }

    .hero-content h1{
        font-size:34px;
    }

    .page-title h2{
        font-size:30px;
    }

    .contact-form{
        padding:25px;
    }

    .form-section h3{
        font-size:22px;
    }

    .zip-flex{
        flex-direction:column;
        align-items:flex-start;
    }

    .zip-flex input{
        width:100%;
        max-width:100%;
    }

    .submit-btn{
        width:100%;
    }

    /* スマホのみ2行 */
    .problem-link-text {
        display:flex;
        flex-direction:column;
        gap:0;
    }

    .problem-link-text > span {
        display:block;
    }
}