@charset "UTF-8";

/* 共通部分
------------------------------- */
html {
  font-size: 100%;
}
body {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN",
    "Hiragino Sans", Meiryo, sans-serif;
  line-height: 1.7;
  color: #432;
  display: flex;
  flex-flow: column;
  min-height: 100vh;
}
main {
  flex: 1;
}
a {
  text-decoration: none;
}
img {
  max-width: 100%;
  vertical-align: top;
}
.noneimg_pc {
  display: none;
}
address {
  max-width: 100%;
}

/* HEADER
------------------------------- */
header {
  background: #1783db;
}
header div{
  padding-top:0.5rem;
  padding-bottom:0.5rem;
}

h1{
  color: #fff;
  text-align: center;
  font-size: 0.95rem;
  letter-spacing: 0.05rem;
  font-weight: 600;
  margin: 0;
}


.logo {
  margin-left: 0;
  display: block;
  width: 250px;
  height: auto;
}
.page-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 0.5rem !important;
}

.page-header nav {
  display: flex;
  align-items: center;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: clamp(0.6rem, 0.9rem, 1rem);
  line-height: 1rem;
}

.main-nav a {
  color: #fff;
}
.hukuri_head {
  width: 100px;2
}

.wrapper {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 1%;
}

/* HOME
------------------------------- */
.home-content {
  text-align: center;
}
.home-content p {
  font-size: 1.125rem;
  margin: 10px 0 42px;
}
main section {
  margin-bottom: 2rem;
}
#head_content {
  display: flex;
  align-items: center;
  height: 200px;
}
.company #head_content {
  background: url(https://housesafety-support.com/images/back_company.jpg);
  background-size: cover;
  background-position: bottom center;
}
.privacy #head_content {
  background: url(https://housesafety-support.com/images/back_privacy.jpg);
  background-size: cover;
  background-position: bottom center;
}
.kiyaku #head_content {
  background: url(https://housesafety-support.com/images/back_kiyaku.jpg);
  background-size: cover;
  background-position: bottom center;
}
.contact #head_content {
  background: url(https://housesafety-support.com/images/back_contact.jpg);
  background-size: cover;
  background-position: bottom center;
}

main .company .wrapper {
  padding: 0;
}
.privacy .tbdl p,
.privacy .tbdl li,
.kiyaku .tbdl p,
.kiyaku .tbdl li {
  font-size: 0.9rem;
  line-height: 1.5rem;
}
.privacy .tbdl ol,
.kiyaku .tbdl ol {
  margin-left: 1rem;
}

.tbdl dl {
  line-height: 1.8rem;
}

h2 {
  position: relative;
  padding: 1.5rem 2rem;
  font-weight: normal;
  font-size: 1.7rem;
}
h2 span {
  display: block;
  font-size: 1.1rem;
  margin-top: 0.5rem;
}
h2:after {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  content: "";
  background-image: -webkit-linear-gradient(
    315deg,
    #704308 0%,
    #ffce08 40%,
    #e1ce08 60%,
    #704308 100%
  );
  background-image: linear-gradient(
    135deg,
    #704308 0%,
    #ffce08 40%,
    #e1ce08 60%,
    #704308 100%
  );
}
h2:after {
  bottom: 0;
}
h3 {
  padding-bottom: 0.5rem;
}

.mail .hukuri {
  max-width: 745px;
  margin: 0 auto;
}
.mail picture img {
  margin-bottom: 2rem;
  text-align: center;
}

/* form
------------------------------- */

.contact {
  margin-top: 2rem;
  margin-bottom: 2rem;
  background: url(https://housesafety-support.com/images/contact_back.png)
    no-repeat center center;
}

/* フォーム */
.contact form {
  width: 600px;
  margin-left: auto;
  margin-right: auto;
}
.contact form label {
  font-weight: 600;
}
.contact form div {
  margin-bottom: 1.5rem;
}
.contact form span {
  color: #c00000;
  margin-left: 0.3rem;
}
label {
  font-size: 1.125rem;
  margin-bottom: 10px;
  display: block;
}

input[type="text"],
input[type="email"],
input[type="tel"],
textarea {
  border: 1px #ccc solid;
  background: #fff;
  border-radius: 5px;
  padding: 10px;
  font-size: 1rem;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
textarea:focus {
  border: 1px #007c8b solid;
  outline: 0;
}

input[type="text"] {
  width: 100% !important;
  max-width: 300px !important;
}
input[type="tel"] {
  width: 100% !important;
  max-width: 300px !important;
}
input[type="email"] {
  width: 100% !important;
  max-width: 600px !important;
}
textarea {
  width: 100% !important;
  max-width: 600px !important;
  height: 10rem !important;
}
input[type="submit"] {
  border: none;
  cursor: pointer;
  line-height: 1;
  background: #007c8b;
  color: #fff;
  font-size: 1.3rem;
  padding: 1rem 2rem;
  border: 0;
  border-radius: 5px;
  width: 100%;
  max-width: 600px !important;
}

/*

input,
textarea {
  border: solid 2px #ccc;
  padding: 0.2rem 0.5rem;
  color: #333;
  font-size: 1.1rem;
}

#mailform th {
  font-size: 1.1rem;
  width: 25%;
}
#mailform th span {
  font-size: 1.1rem;
  margin-left: 0.1rem;
}
#mailform td span {
  font-size: 0.9rem;
  color: #666;
  display: block;
}
#mailform td {
  font-size: 1rem;
}
#mailform td label {
  margin-right: 1rem;
}
#mailform .reset {
  background: #ccc;
  color: #555;
  font-size: 1.5rem;
  padding: 0.5rem 2rem;
  border: 0;
  border-radius: 5px;
}
#mailform .sousin {
  background: #007c8b;
  color: #fff;
  font-size: 1.5rem;
  padding: 0.5rem 2rem;
  border: 0;
  border-radius: 5px;
}

/* footer
------------------------------- */
footer {
  background: #151a5a;
  color: #fff;
  text-align: center;
}
footer a {
  color: #fff;
}
footer a:hover {
  color: #fff;
}
.footer1 {
  padding-top: 1rem;
  max-width: 750px;
}
.footer2 {
  background: #000;
  margin-bottom: 0 !important;
  padding-bottom: 0;
}
.footer2 p {
  padding-top: 1rem;
  padding-bottom: 1rem;
  margin-bottom: 0;
}

.footer-nav {
  display: flex;
  font-size: 1rem;
  list-style: none;
  justify-content: space-around;
}
.footer-nav li {
  margin-left: 1rem;
}

/* lp
------------------------------- */
.lpbtn {
  margin: 20px auto;
}

.lpbtn a {
  width: 670px !important;
}
address {
  width: 670px !important;
  margin: 10px auto;
}
.address {
  font-size: 1.2rem;
  font-weight: 600;
  margin: 0;
  padding: 0;
  color: #008231;
}
.address2 {
  font-size: 1.2rem;
  font-weight: 600;
  margin: 0;
  padding: 0;
  color: #fdd559;
}

.lp1 {
  padding-top: 2rem;
  text-align: center;
  background-color: #ffffff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25'%3E%3Cdefs%3E%3ClinearGradient id='a' gradientUnits='userSpaceOnUse' x1='0' x2='0' y1='0' y2='100%25' gradientTransform='rotate(195,697,409)'%3E%3Cstop offset='0' stop-color='%23ffffff'/%3E%3Cstop offset='1' stop-color='%237CFFFC'/%3E%3C/linearGradient%3E%3Cpattern patternUnits='userSpaceOnUse' id='b' width='778' height='648.3' x='0' y='0' viewBox='0 0 1080 900'%3E%3Cg fill-opacity='0.09'%3E%3Cpolygon fill='%23444' points='90 150 0 300 180 300'/%3E%3Cpolygon points='90 150 180 0 0 0'/%3E%3Cpolygon fill='%23AAA' points='270 150 360 0 180 0'/%3E%3Cpolygon fill='%23DDD' points='450 150 360 300 540 300'/%3E%3Cpolygon fill='%23999' points='450 150 540 0 360 0'/%3E%3Cpolygon points='630 150 540 300 720 300'/%3E%3Cpolygon fill='%23DDD' points='630 150 720 0 540 0'/%3E%3Cpolygon fill='%23444' points='810 150 720 300 900 300'/%3E%3Cpolygon fill='%23FFF' points='810 150 900 0 720 0'/%3E%3Cpolygon fill='%23DDD' points='990 150 900 300 1080 300'/%3E%3Cpolygon fill='%23444' points='990 150 1080 0 900 0'/%3E%3Cpolygon fill='%23DDD' points='90 450 0 600 180 600'/%3E%3Cpolygon points='90 450 180 300 0 300'/%3E%3Cpolygon fill='%23666' points='270 450 180 600 360 600'/%3E%3Cpolygon fill='%23AAA' points='270 450 360 300 180 300'/%3E%3Cpolygon fill='%23DDD' points='450 450 360 600 540 600'/%3E%3Cpolygon fill='%23999' points='450 450 540 300 360 300'/%3E%3Cpolygon fill='%23999' points='630 450 540 600 720 600'/%3E%3Cpolygon fill='%23FFF' points='630 450 720 300 540 300'/%3E%3Cpolygon points='810 450 720 600 900 600'/%3E%3Cpolygon fill='%23DDD' points='810 450 900 300 720 300'/%3E%3Cpolygon fill='%23AAA' points='990 450 900 600 1080 600'/%3E%3Cpolygon fill='%23444' points='990 450 1080 300 900 300'/%3E%3Cpolygon fill='%23222' points='90 750 0 900 180 900'/%3E%3Cpolygon points='270 750 180 900 360 900'/%3E%3Cpolygon fill='%23DDD' points='270 750 360 600 180 600'/%3E%3Cpolygon points='450 750 540 600 360 600'/%3E%3Cpolygon points='630 750 540 900 720 900'/%3E%3Cpolygon fill='%23444' points='630 750 720 600 540 600'/%3E%3Cpolygon fill='%23AAA' points='810 750 720 900 900 900'/%3E%3Cpolygon fill='%23666' points='810 750 900 600 720 600'/%3E%3Cpolygon fill='%23999' points='990 750 900 900 1080 900'/%3E%3Cpolygon fill='%23999' points='180 0 90 150 270 150'/%3E%3Cpolygon fill='%23444' points='360 0 270 150 450 150'/%3E%3Cpolygon fill='%23FFF' points='540 0 450 150 630 150'/%3E%3Cpolygon points='900 0 810 150 990 150'/%3E%3Cpolygon fill='%23222' points='0 300 -90 450 90 450'/%3E%3Cpolygon fill='%23FFF' points='0 300 90 150 -90 150'/%3E%3Cpolygon fill='%23FFF' points='180 300 90 450 270 450'/%3E%3Cpolygon fill='%23666' points='180 300 270 150 90 150'/%3E%3Cpolygon fill='%23222' points='360 300 270 450 450 450'/%3E%3Cpolygon fill='%23FFF' points='360 300 450 150 270 150'/%3E%3Cpolygon fill='%23444' points='540 300 450 450 630 450'/%3E%3Cpolygon fill='%23222' points='540 300 630 150 450 150'/%3E%3Cpolygon fill='%23AAA' points='720 300 630 450 810 450'/%3E%3Cpolygon fill='%23666' points='720 300 810 150 630 150'/%3E%3Cpolygon fill='%23FFF' points='900 300 810 450 990 450'/%3E%3Cpolygon fill='%23999' points='900 300 990 150 810 150'/%3E%3Cpolygon points='0 600 -90 750 90 750'/%3E%3Cpolygon fill='%23666' points='0 600 90 450 -90 450'/%3E%3Cpolygon fill='%23AAA' points='180 600 90 750 270 750'/%3E%3Cpolygon fill='%23444' points='180 600 270 450 90 450'/%3E%3Cpolygon fill='%23444' points='360 600 270 750 450 750'/%3E%3Cpolygon fill='%23999' points='360 600 450 450 270 450'/%3E%3Cpolygon fill='%23666' points='540 600 630 450 450 450'/%3E%3Cpolygon fill='%23222' points='720 600 630 750 810 750'/%3E%3Cpolygon fill='%23FFF' points='900 600 810 750 990 750'/%3E%3Cpolygon fill='%23222' points='900 600 990 450 810 450'/%3E%3Cpolygon fill='%23DDD' points='0 900 90 750 -90 750'/%3E%3Cpolygon fill='%23444' points='180 900 270 750 90 750'/%3E%3Cpolygon fill='%23FFF' points='360 900 450 750 270 750'/%3E%3Cpolygon fill='%23AAA' points='540 900 630 750 450 750'/%3E%3Cpolygon fill='%23FFF' points='720 900 810 750 630 750'/%3E%3Cpolygon fill='%23222' points='900 900 990 750 810 750'/%3E%3Cpolygon fill='%23222' points='1080 300 990 450 1170 450'/%3E%3Cpolygon fill='%23FFF' points='1080 300 1170 150 990 150'/%3E%3Cpolygon points='1080 600 990 750 1170 750'/%3E%3Cpolygon fill='%23666' points='1080 600 1170 450 990 450'/%3E%3Cpolygon fill='%23DDD' points='1080 900 1170 750 990 750'/%3E%3C/g%3E%3C/pattern%3E%3C/defs%3E%3Crect x='0' y='0' fill='url(%23a)' width='100%25' height='100%25'/%3E%3Crect x='0' y='0' fill='url(%23b)' width='100%25' height='100%25'/%3E%3C/svg%3E");
  background-attachment: fixed;
  background-size: cover;
}

.step-container {
    width: 95%; /* スマホでの見やすさを考慮し、幅を調整 */
    max-width: 800px; /* PCでの最大幅 */
    margin: 20px auto; /* 上下の画像との間に適切な余白 */
    text-align: center;
    color: #333; /* 基本テキストカラー */
}

/* 導入文 */
.step-intro-text {
    font-size: clamp(1rem, 0.055rem + 2.33vw, 1.8rem);
    margin-bottom: 15px;
    line-height: 1.6;
    font-weight: bold;
}
.step-intro-text strong {
    color: #007bff; /* メインカラーの青 */
    font-size: clamp(1.1rem, 0.036rem + 2.62vw, 2rem);
    font-weight: 700;
}

/* 3ステップの全体を囲むラッパー (Flexboxの親) */
.step-flow-wrapper-flex {
    margin-bottom: 30px;
}

/* 各ステップのブロック */
.step-item-flex {
    display: flex; /* 横並びの指定 */
    background-color: #f8faff; 
    border: 3px solid #5abdff;
    border-radius: 8px;
    padding: 3px 10px;
    margin-bottom: 0px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
    align-items: stretch;
}

/* 左側のSTEP番号カラム */
.step-number-col {
    flex-basis: 10%;
    text-align: center;
    padding-right: 10px;
    border-right: 1px dashed #cceeff;
}
.number{
  font-size: 1.2rem;
  line-height: 0.8;
}

.step-number-badge {
    display: flex; /* STEPと数字を中央に配置するためのFlexbox */
    flex-direction: column; /* 縦並び */
    justify-content: center;
    align-items: stretch;
    background: linear-gradient(to top, #0062eb, #00baf9);
    color: #ffffff;
    font-size: 14px;
    font-weight: 700;
    /* 正円にするための設定 */
    width: 60px;
    height: 60px;
    border-radius: 50%;
    line-height: 1.1; /* 改行後の行間を調整 */
    margin: 0 auto; /* 中央揃え */
}

/* 右側の内容カラム */
.step-content-col {
    flex-basis: 90%;
    text-align: left;
    padding-left: 15px;
}

/* STEPの名前 (1分でWeb診断など) */
.step-name {
    font-size:clamp(1.1rem, 0.864rem + 0.58vw, 1.3rem);
    font-weight: 700;
    color: #ff9100;
    margin: 0;
    line-height: 1.2;
    padding-bottom: 0.3rem;
}

/* STEPの詳細説明 */
.step-detail {
    font-size:clamp(0.8rem, 0.564rem + 0.58vw, 1rem); 
    color: #555;
    margin: 0;
    line-height: 1.4;
    word-break: auto-phrase;

}

/* ステップ間の区切り（矢印） */
.step-separator-flex {
    text-align: center;
    margin: 2px 0;
    line-height: 1;
    font-size: 15px;
    color: #ff9900; 
    font-weight: 700;
}
/* ========================================= */
/* 📱 モバイル優先 (縦並び) の基本設定 */
/* ========================================= */

/* STEPの各ブロック */
.step-item-flex {
    /* (現状維持) STEP番号と内容が左右に並ぶ設定 */
    display: flex; 
    align-items: center; /* 垂直中央寄せ */
    border-radius: 8px;
    padding: 10px 10px;
    margin-bottom: 0px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); 
    /* モバイルでは幅いっぱい */
}

/* STEP間の区切り (モバイルでは縦方向の矢印) */
.step-separator-flex {
    text-align: center;
    margin: 5px 0;
    line-height: 1;
    font-size: 24px;
    display: block; 
}


/* ========================================= */
/* 💻 PC/タブレット用 (横並び) の設定 */
/* ========================================= */

@media (min-width: 650px) {
    
    /* 全体を横並びにするFlexコンテナ */
    .step-flow-wrapper-flex {
        display: flex;
        justify-content: space-between; /* 要素間に均等なスペースを確保 */
        align-items: stretch; /* 横並びになったら上端揃えに戻す */
    }

    /* 各ステップのブロック */
    .step-item-flex {
        /* 横並びになったら全幅の約30%を使用 (3つ並べるため) */
        width: 30%;
        min-height: auto; /* 内容の量に関わらず高さを揃える (調整推奨) */
        /* 横並びになってもSTEP番号と内容の左右配置は維持 */
        flex-direction: column; /* ★ 縦並びに戻すか検討 ★ */
        align-items: center; /* 中央揃えにする */
        padding: 15px 10px 20px;
    }
    
    /* ★ STEP番号と内容の横並びを解除し、縦に積むことでデザインをシンプル化 ★ */
    .step-number-col {
        border-right: none; /* 縦並びなので区切り線は不要 */
        padding-right: 0;
        margin-bottom: 0.5rem;
        flex-basis: auto; /* 幅指定を解除 */
    }
    .step-content-col {
        flex-basis: auto;
        padding-left: 0;
        text-align: center; /* 内容も中央揃えに */
    }
    .step-name {
        margin: 10px 0 5px 0;
    }
    
    /* STEP間の区切り (PCでは横方向の矢印) */
    .step-separator-flex {
        display: block;
        margin: 0 5px 0 5px; /* 縦の配置を調整し、要素の高さの中央に近くなるように */
        font-size: 40px; /* 横並びなので矢印を大きく */
        transform: rotate(270deg); /* 矢印を横向きにする */
        line-height: 0; /* 行の高さをリセット */
        align-self: center;
    }
}



.lp2 {
  margin-top: 2rem;
  background: #f6f3eb;
  padding-top: 45px;
  padding-bottom: 45px;
}

.lp3 {
  background: #efffce;
  padding-top: 45px;
  padding-bottom: 45px;
}
.lp3_5 {
  background: #15cdcb;
  padding-top: 45px;
  padding-bottom: 45px;
}


.lp4 {
  background: #007c8b;
  padding-top: 45px;
  padding-bottom: 25px;
}

.lp5 {
  background: url(https://housesafety-support.com/images/lp_05_back.gif) repeat;
  padding-top: 45px;
  padding-bottom: 0;
}

.lp6 {
  background: #c00000;
  padding-top: 30px;
  padding-bottom: 30px;
}

.lp7 {
  background: #ffec47;
  padding-top: 45px;
  padding-bottom: 0;
}

.lp8 {
  background: url(https://housesafety-support.com/images/lp_08_back.gif) repeat;
  padding-top: 65px;
  padding-bottom: 65px;
}

.lp9 {
  background: url(https://housesafety-support.com/images/lp_09_back.jpg)
    no-repeat bottom;
  background-size: cover;
  padding-top: 60px;
  padding-bottom: 20px;
  text-align: center;
}
.lp9 .lpbtn {
  margin-top: 50px;
}

.lp10 {
  background: url(https://housesafety-support.com/images/lp_10_back.gif) repeat;
  padding-top: 65px;
  padding-bottom: 20px;
  text-align: center;
}

.lp11 {
  background: url(https://housesafety-support.com/images/lp_05_back.gif) repeat;
  padding-top: 65px;
  padding-bottom: 20px;
  text-align: center;
}

.lp11 .lpbtn {
  margin-top: 50px;
}




/*メニューをページ下部に固定*/
#sp-fixed-menu{
   position: fixed;
   width: 100%;
   bottom: 0px;
   font-size: 0;
   opacity: 0.95;
   z-index: 99;
}

/*メニューを横並びにする*/
#sp-fixed-menu ul{
   display: flex;
   list-style: none;
   padding:0;
   margin:0;
   width:100%;
}
/**
#sp-fixed-menu li{
   justify-content: center;
   align-items: center;
   width: 33.3333333333%;
   padding:0;
   margin:0;
   font-size: 15px;
   font-weight: bold !important;
   line-height: 1.3;
   border-right: 1px solid #fff;
}**/



#sp-fixed-menu li{
  justify-content: center;
  align-items: center;
  width: 100%;
  padding:0;
  margin:0;
  font-size: 15px;
  font-weight: bold !important;
  line-height: 1.3;
  border-right: 1px solid #fff;
  /**border-top: 2px solid #fff;
  border-radius: 10px;**/
}
#sp-fixed-menu li span{
  font-weight: normal;
  font-size: 13px;
}

/*左側メニューを緑色に*/
#sp-fixed-menu li{
  background: #1f64c2;
}

/*左側メニューをオレンジ色に*/
#sp-fixed-menu li:nth-child(2){
   background: #38b435;
}

/*ボタンを調整*/
#sp-fixed-menu li a{
   color: #fff;
   text-align: center;
   display:block;
   width: 100%;
   padding:10px;
}
/*PCの場合にはメニューを表示させない*/
@media (min-width: 768px) {
   .for-sp{
      display:none;
    }
}
/*spの場合にはメニューを表示させない*/
@media (max-width: 768px) {
  .for-pc{
     display:none;
   }
}
