@charset "utf-8";
* {
    font-family: 'Hiragino Kaku Gothic Pro','ヒラギノ角ゴ Pro W3',"游ゴシック体","YuGothic","游ゴシック","Yu Gothic",'Meiryo','メイリオ', sans-serif;
    scroll-behavior: smooth;
}
body{
    margin: 0;
    padding: 0;
}
.abs {
    position: absolute;
}
.rel {
    position: relative;
}
.mt10 {
    margin-top: 10px;
}
.mt0 {
    margin-top: 0px;
}
.mb0 {
    margin-bottom: 0;
}
.fcr {
    color: #ff0000;
}
.fco {
    color: #ff5e10;
}
.fcy {
    color: #ffce1a;
}
.fcb {
    color: #2896dc;
}
.fcsb {
    color: #0497FF;
}
.fss {
    font-size: 12px;
    font-size: smaller;
}
.fsm {
    font-size: 19px;
}
.fsl {
    font-size: 21px;
}
.fsll {
    font-size: 23px;
}
.tal {
    text-align: left;
}
.tar {
    text-align: right;
}
.tac {
    text-align: center;
}
.bold {
    font-weight: bold;
}
.mark {
    background: rgba(0, 0, 0, 0) linear-gradient(transparent 60%,#ffff00 0%) repeat scroll 0 0;
}
#wrapper{
    margin: auto;
}
img,video {
    width: 100%;
    vertical-align: middle;
}
.anno {
    font-size: 10px;
    color: gray;
    text-align: right;
    margin-top: -10px;
}

@media only screen and (min-width: 767px){
    .sp {
        display: none!important;
    }
    .pc {
        display: block;
    }
}
@media only screen and (max-width: 766px){
    .sp {
        display: block;
    }
    .pc {
        display: none!important;
    }
}

p {
    font-size: clamp(14px, 1.2vw, 24px);
    color: #363636;
}

/* ヘッダー ------------------------------------------------------ */
header {
    position: sticky;
    top: 0;
    z-index: 999;
    background-color: #fff;
    box-shadow: 0px 0px 18.8px 1.2px rgba(7, 5, 5, 0.1);
}
.head_box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 98%;
    margin: auto;
}
.head_box .btn {
    display: block;
    background: #fece1b;
    padding: 7px 10px;
    border-radius: 999px;
    text-decoration: none;
    color: #363636;
    font-weight: bold;
    margin: auto;
}
.head_box .hea_r,
.head_box .hea_r ul,
.head_box .hea_r ul li a {
    display: flex;
    list-style: none;
    text-decoration: none;
    color: #363636;
}
.head_box .hea_r ul li {
    margin-right: 16px;
}
@media only screen and (max-width: 766px){
    header {
        padding: 10px 0;
    }
    .head_box .hea_r {
        width: 60%;
    }
    .head_box .hea_r ul {
        flex-direction: column;
    }
    .hamburger {
        display : block;
        position: fixed;
        z-index : 3;
        right : 13px;
        top   : 12px;
        width : 52px;
        height: 52px;
        cursor: pointer;
        text-align: center;
        border-radius: 4px;
      }
      .hamburger span {
        display : block;
        position: absolute;
        width   : 30px;
        height  : 3px ;
        left    : 11px;
        background: #363636;
        -webkit-transition: 0.3s ease-in-out;
        -moz-transition   : 0.3s ease-in-out;
        transition        : 0.3s ease-in-out;
      }
      .hamburger span:nth-child(1) {
        top: 14px;
      }
      .hamburger span:nth-child(2) {
        top: 24px;
      }
      .hamburger span:nth-child(3) {
        top: 34px;
      }
      /* ナビ開いてる時のボタン */
      .hamburger.active span:nth-child(1) {
        top : 25px;
        left: 11px;
        -webkit-transform: rotate(-45deg);
        -moz-transform   : rotate(-45deg);
        transform        : rotate(-45deg);
      }
      .hamburger.active span:nth-child(2),
      .hamburger.active span:nth-child(3) {
        top: 25px;
        -webkit-transform: rotate(45deg);
        -moz-transform   : rotate(45deg);
        transform        : rotate(45deg);
      }

      nav.globalMenuSp {
        position: fixed;
        z-index: 2;
        right: 0;
        color: #000;
        background: #fff;
        text-align: center;
        transform: translateX(100%);
        transition: all 0.6s;
        top: 60px;
        width: 100%;
      }

      nav.globalMenuSp ul {
        background: #ebebeb;
        margin: 0 auto;
        padding: 0;
        width: 100%;
      }

      nav.globalMenuSp ul li {
        list-style-type: none;
        padding: 0;
        width: 100%;
        border-bottom: 1px solid #fff;
      }
      nav.globalMenuSp ul li:last-child {
        padding-bottom: 0;
        border-bottom: none;
      }
      nav.globalMenuSp ul li:hover{
        background :#ddd;
      }

      nav.globalMenuSp ul li a {
        display: block;
        color: #000;
        padding: 1em 0;
        text-decoration :none;
      }
      /* このクラスを、jQueryで付与・削除する */
      nav.globalMenuSp.active {
        transform: translateX(0%);
      }
      nav.globalMenuSp ul li a{
      max-width: 300px;
      width: 90%;
      text-align: left;
      margin: auto;
      color: #0060ff;
      font-weight: bold;
    }
    nav.globalMenuSp.active p {
        text-align: center;
        margin: 0;
        padding: 20px 0;
    }
    .hamburger {
      right: 7px;
      top: 8px;
      width: 45px;
      height: 45px;
    }
    .hamburger span {
      left: 8px;
    }
    .hamburger span:nth-child(1) {
      top: 11px;
    }
    .hamburger span:nth-child(2) {
      top: 21px;
    }
    .hamburger span:nth-child(3) {
      top: 31px;
    }
    .hamburger.active span:nth-child(1) {
      top: 21px;
      left: 8px;
    }
    .hamburger.active span:nth-child(2), .hamburger.active span:nth-child(3) {
      top: 21px;
    }
}

/* FV ------------------------------------------------------ */
@media only screen and (min-width: 767px){
    .fv {
        background-image: url(../img/fv_bg_pc.jpg);
        /* background-size: contain; */
        background-repeat: no-repeat;
        background-position: center;
        width: 100%;
    }
    .fv .pc {
        width: 90%;
        max-width: 1016px;
        margin: auto;
        padding-top: 2%;
    }
}

section {
    padding: 3% 0;
}
@media only screen and (max-width: 766px){
    section {
        padding: 8% 0;
    }
}
.bg_blue {
    background-image: linear-gradient( -60deg, rgb(117,200,250) 0%, rgb(16,134,211) 100%);
}
.bg_pblue {
    background-color: #e0f3f7;
}

.box {
    background-color: #fff;
    border-radius: 20px;
    max-width: 1200px;
    width: 84%;
    margin: auto;
    padding: 20px;
}

.content_ttl {
    text-align: center;
    margin-bottom: 20px;
}
.content_ttl p:nth-of-type(1) {
    color: #2896dc;
    font-size: clamp(20px, 2.4vw, 60px);
    line-height: 1.4;
    margin: 0 auto 10px;
    font-weight: bold;
}
.content_ttl p:nth-of-type(2) {
    background-color: #2896dc;
    border-radius: 999px;
    color: #fff;
    display: inline;
    padding: 0 20px;
}
.content_ttl.white p:nth-of-type(1) {
    color: #fff;
}
.content_ttl.white p:nth-of-type(2) {
    background-color: #fff;
    color: #2896dc;
}
.content_ttl.black p:nth-of-type(1) {
    color: #363636;
}
.content_ttl.black p:nth-of-type(2) {
    background-color: #363636;
    color: #fff;
}
.cta_area>p {
    color: #0497FF;
    font-weight: bold;
    margin-top: 0;
}
.cta {
    width: 80%;
    margin: auto;
    display: block;
    text-decoration: none;
}
.cta_area {
    background-color: #fff;
    border-radius: 20px;
    max-width: 1200px;
    width: 80%;
    margin: auto;
    padding: 20px;
    padding: 2% 10%;
}
.cta .abs {
    width: 100%;
    left: 0%;
    top: 0;
    bottom: 0;
    margin: auto;
}
@media only screen and (max-width: 766px){
    .cta {
        width: 100%;
    }
    .cta p {
        margin: 10px auto 10px 24%;
    }
    .cta img {
        transform: scale(1.5); 
    }
    .cta_area {
        background-color: #e0f3f7;
    }
}

/* 最安値チェックフォーム ------------------------------------------------------ */
.check .box {
    padding: 0 0 20px;
}
.check .box .ttl {
    margin-bottom: 30px;
}
.check .box .ttl p {
    background-color: #e0f3f7;
    clip-path: polygon(0 0, 100% 0, 98% 100%, 2% 100%);
    width: 60%;
    margin: -1px auto auto;
    text-align: center;
    padding: 1% 0;
    font-size: clamp(15px, 1.4vw, 28px);
}
.check .box .ttl .abs {
    width: 10%;
    max-width: 20px;
    left: 0;
    right: 0;
    margin: auto;
}
.check .intro {
    background-image: url(../img/offer.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    padding: 50px 0 30px;
    margin: 30px auto 20px;
}
.check .intro .txt {
    display: flex;
    text-align: center;
    margin: auto;
    align-items: center;
    justify-content: center;
    padding-bottom: 20px;
}
.check .intro .txt p {
    margin: auto 20px;
    font-size: clamp(16px, 1.6vw, 28px);
    font-weight: bold;
}
.check .intro .txt img {
    width: 2%;
}
.check .intro .txt img:nth-of-type(2) {
    transform: scale(-1, 1);
}
.check .intro select {
    background-color: #ffce1a;
    border-radius: 999px;
    border: 4px solid #fff;
    margin: -40px auto 20px;
    padding: 16px 50px 16px 16px;
    font-weight: bold;
    max-width: 500px;
    display: block;
    text-decoration: none;
    box-shadow: 0px 0px 18.8px 1.2px rgba(7, 5, 5, 0.3);
    font-size: clamp(13px, 1.1vw, 22px);
}
.check .intro select option {
    font-size: clamp(14px, 1.0vw, 24px);
    color: #363636;
}

.selectWrapper {
    position: relative;
    /* display: inline-block;
    width: 100%; */
    width: max-content;
    margin: auto;
}
.selectWrapper select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 100%;
    padding: 0.5rem 2.5rem 0.5rem 0.75rem;
    font-size: 1rem;
    border-radius: 6px;
    box-sizing: border-box;
}
/* 矢印（白丸＋くの字） */
.selectWrapper::after {
    content: "▼";
    font-size: 0.7rem;
    color: #333;
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    background: #fff;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    padding: 0.3rem;
    pointer-events: none;
    display: flex;
    align-items: center;
    justify-content: center;
}

.check .checkcontent {
    width: 90%;
    max-width: 800px;
    margin: auto;
    border-radius: 20px;
    padding-bottom: 14px;
    border: 2px solid #2896dc;
}
.check .checkcontent .ttl {
    color: #fff;
    margin: 0;
    border-radius: 16px 16px 0 0;
    text-align: center;
    padding: 10px;
}
.check .checkcontent h3 {
    border-bottom: 2px solid #2896dc;
    margin: 0;
}
.check .regionBox {
    display: none;
    padding: 1rem;
    border-radius: 6px;
    max-height: 260px;
    overflow-y: auto;
  }
.check .tableWrapper {
    overflow-x: auto;
}
.check table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1rem;
}
.check th, td {
    text-align: left;
    white-space: nowrap;
}

.check .arrow {
    background-color: #363636;
    color: #fff;
    width: 30%;
    max-width: 300px;
    margin: 20px auto;
    padding: 10px;
    clip-path: polygon(0 0, 100% 0%, 100% 80%, 50% 100%, 0 80%);
    font-weight: bold;
    font-size: clamp(13px, 1.2vw, 20px);
    line-height: 1.4;
}

.check .ttl {
    background-color: #e0f3f7;
    border-radius: 20px 20px 0 0;
    padding: 10px;
}

@media only screen and (max-width: 766px){
    .check .box .ttl p {
        width: 90%;
    }
    .check .box .ttl .abs {
        max-width: 12px;
    }
    .check .intro {
        padding: 40px 0 30px;
    }
    .check .intro .txt {
        width: 94%;
    }
    .check .intro .txt img {
        width: 5%;
    }
    .check .intro .txt p {
        margin: auto 10px;
    }
    .check .intro select {
        max-width: 320px;
        outline: none;
        -webkit-appearance: none;
        appearance: none;
        -webkit-tap-highlight-color: transparent;
    }
    .check .box {
        width: 90%;
    }
    .check th, td {
        white-space: normal;
    }
    .check .regionBox {
        padding: 0.7rem;
    }
}

/* 削減できる仕組み-------------------------------------------------- */
.system .problem {
    border: 3px solid #363636;
    max-width: 840px;
}
.system .problem {
    padding: 0 20px 10px;
}
.system .problem .ttl {
    background-color: #363636;
    color: #fff;
    clip-path: polygon(0 0, 100% 0, 98% 100%, 2% 100%);
    width: 90%;
    margin: -1px auto auto;
    padding: 1% 0;
}
.system .concent {
    width: 10%;
    max-width: 30px;
    margin: auto;
    display: block;
}
.system .frash {
    display: flex;
    width: 80%;
    max-width: 740px;
    margin: 20px auto 40px;
    align-items: center;
    justify-content: center;
}
.system .frash p {
    background-color: #ffce1a;
    text-align: center;
    border-radius: 999px;
    margin: 0 10px;
    padding: 16px 22px;
    font-size: clamp(20px, 1.6vw, 24px);
    font-weight: bold;
}
.system .frash img {
    width: 5%;
}
.system .frash img:nth-of-type(2) {
    transform: scale(-1, 1);
}

.system .points {
    display: flex;
    width: 90%;
    max-width: 1200px;
    margin: auto;
}
.system .points .box {
    width: 28%;
    display: flex;
    flex-direction: column;
    text-align: justify;
    position: relative;
}
.system .points .box:before {
    position: absolute;
    top: -3vh;
    left: 0;
    right: 0;
    margin: auto;
    text-align: center;
    font-size: clamp(28px, 2.4vw, 40px);
    color: #2896dc;
    font-weight: bold;
    font-style: italic;
}
.system .points .box:nth-of-type(1):before {
    content: "01";
}
.system .points .box:nth-of-type(2):before {
    content: "02";
}
.system .points .box:nth-of-type(3):before {
    content: "03";
}
.system .points .box img {
    max-height: 180px;
    object-fit: contain;
    flex-grow: 1;
}
.system .line {
    height: 40px;
    width: 10px;
    margin: 10px auto;
    background: radial-gradient(circle farthest-side, #2896dc, #2896dc 60%, transparent 60%, transparent);
    background-size: 10px 10px;
    content: '';
    text-align: center;
}

.system .last {
    width: 90%;
    max-width: 1200px;
    margin: auto;
    padding: 10px 0;
}
.system .last p {
    color: #fff;
    font-size: clamp(16px, 2.2vw, 24px);
    font-weight: bold;
    margin: 0;
}
@media only screen and (max-width: 766px){
    .system .problem .ttl {
        line-height: 1.4;
    }
    .system .concent {
        max-width: 20px;
    }
    .system .frash {
        display: flex;
        width: 100%;
    }
    .system .frash p {
        font-size: clamp(16px, 1.6vw, 24px);
        padding: 10px 16px;
        margin: 0 6px;
    }
    .system .points {
        flex-direction: column;
    }
    .system .points .box {
        width: 88%;
        margin-bottom: 30px;
    }
    .system .points .box:last-of-type {
        margin-bottom: 0;
    }
    .system .points .box img {
        max-height: 100px;
    }
}

/* 選ばれる理由-------------------------------------------------- */
.reason .box {
    padding: 20px 30px;
    width: 80%;
}
.reason .box .ttl {
    clip-path: polygon(0 0, 100% 0, 95% 100%, 0% 100%);
    color: #fff;
    padding: 10px 30px 10px 10px;
    display: inline-block;
    font-weight: bold;
    margin: 30px auto 0;
}
.reason .box .ttl:nth-of-type(1) {
    margin-top: 0;
}
.reason .box>div {
    display: flex;
    justify-content: space-between;
}
.reason .box>div div {
    width: 49%;
    text-align: justify;
}
.reason .box>div div img {
    width: 80%;
}
@media only screen and (max-width: 766px){
    .reason .box {
        padding: 20px;
        width: 80%;
    }
    .reason .box>div:nth-of-type(2),
    .reason .box>div:nth-of-type(3) {
        flex-direction: column;
    }
    .reason .box>div:nth-of-type(2) div,
    .reason .box>div:nth-of-type(3) div  {
        width: 100%;
    }
}

/* お客様の声 -------------------------------------------------- */
.review .review_box {
    display: flex;
    width: 90%;
    max-width: 1200px;
    margin: auto;
    justify-content: space-between;
}
.review .review_box>div {
    width: 32%;
    display: flex;
    flex-direction: column;
}
.review .review_box .detail {
    padding: 20px 10px 10px;
    border-radius: 0 0 10px 10px;
    flex-grow: 1;
}
.review .review_box .detail p.abs {
    background-color: #0497FF;
    border-radius: 999px;
    top: -2vh;
    left: 0;
    right: 0;
    color: #fff;
    font-weight: bold;
    display: inline-table;
    margin: auto;
    padding: 4px 14px;
}
.review .review_box .detail p:nth-of-type(2) {
    color: #0497FF;
    text-align: center;
    font-size: clamp(16px, 1.8vw, 24px);
    line-height: 1.4;
    margin: 12px auto 8px;
}
@media only screen and (max-width: 766px){
    .review .review_box {
        flex-direction: column;
    }
    .review .review_box>div {
        width: 100%;
        margin: 10px auto;
    }
}

/* 流れ -------------------------------------------------- */
.flow_box>div {
    display: flex;
    flex-wrap: wrap;
    width: 94%;
    justify-content: space-between;
    margin: auto;
}
.flow_box .detail {
    width: 32%;
}
.flow_box .arrow {
    width: 32%;
    clip-path: polygon(0% 0%, 90% 0, 100% 50%, 90% 100%, 0% 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    height: 80%;
}
.flow_box .arrow p {
    color: #fff6d4;
    font-size: clamp(16px, 1.8vw, 24px);
    text-align: center;
    font-weight: bold;
}
.flow_box .detail div {
    display: flex;
}
.flow_box .detail div img {
    width: 30%;
    object-fit: contain;
    margin-right: 10px;
}
@media only screen and (max-width: 766px){
    .flow_box {
        display: flex;
    }
    .flow_box .detail {
        width: 90%;
    }
    .flow_box .arrow {
        clip-path: polygon(0% 0%, 100% 0, 100% 96%, 50% 100%, 0 96%);
        writing-mode: vertical-rl;
        width: auto;
        flex-grow: 1;
        height: auto;
        margin: 0;
    }
    .flow_box .arrow p {
        margin: 10px;

    }
}

/* 比較表  -------------------------------------------------- */
.sogood {
    font-size: 35px;
    color: #ff4a1d;
}
.good {
    font-size: 34px;
    color: #ffbb00;
    font-weight: normal;
}
.bad {
    font-size: 37px;
    font-weight: 300;
    color: #747474;
}
.soso {
    font-size: 34px;
    font-weight: bold;
    color: #0cc300;
}
.rankTable {
    overflow-x: scroll;
}
.rankTable table {
    width: 100%;
    text-align: center;
    line-height: 1.2;
}
.rankTable table {
    width: 1800px;
}
.rankTable {
    margin: 20px auto;
}
.rankTable th {
    position: sticky;
    width: 40px;
    padding: 9px 0px 9px;
    background-color: #2896dc;
    color: #fff;
    left: 0;
    border-bottom: 1px dotted #fff;
    font-size: 9px;
}
.rankTable td {
    width: auto;
    border-bottom: 1px dotted #8b8b8b;
    border-top: none;
    padding: 9px 5px 9px;
    font-size: 12px;
    position: relative;
    vertical-align: middle;
    border-right: 1px dotted #ddd;
    background: none;
}
.rankTable td:last-child {
    border-right: none;
}
.rankTable tr td {
    background-color: #f6f6f6;
    text-align: center;
}
.rankTable table th {
    width: 19.0%;
    font-size: 13px;
}
.rankTable td {
    border-right: 1px dotted #8b8b8b;
}
.rankTable tr {
    border-bottom: 1px dotted #ddd;
}
.rankTable tr:last-child td {
    border-bottom: none;
}
.rankTable table th {
    vertical-align: middle;
    width: 9.0%;
    font-size: 12.5px;
    z-index: 88;
}
img.table_icon {
    width: 99%;
    margin-top: 5px;
}
.t_btn {
    display: block;
    width: 90%;
    background: #fece1b;
    padding: 7px 5px;
    border-radius: 999px;
    text-decoration: none;
    color: #363636;
    font-weight: bold;
    margin: auto;
}

@media screen and (max-width:768px) {
    .rankTable table {
        width: 1100px;
    }
    .rank .box {
        padding: 20px 10px;
        width: 86%;
    }
}


/* 動画 -------------------------------------------------- */
.movie .mov {
    margin: auto;
    text-align: center;
    width: 90%;
    max-width: 600px;
    aspect-ratio: 16 / 9;
}
.movie .mov iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
}

/* 削減事例 -------------------------------------------------- */
.case .slider {
    width: 90%;
    max-width: 1200px;
    margin: auto;
}
.case .detail {
    border: 2px solid #cfcfcf;
    border-radius: 10px;
    padding: 20px 20px 10px;
    margin: 40px 10px 10px;
}
.case .detail img {
    width: 20%;
    left: 0;
    right: 0;
    top: -5vh;
    margin: auto;
}
.case .detail>div {
    display: flex;
    justify-content: space-between;
}
.case .detail>div:nth-of-type(1) {
    border-bottom: 2px dotted #cfcfcf;
}
.case .detail>div:nth-of-type(2) {
    border-bottom: 1px solid #cfcfcf;
}
.case .detail>div:nth-of-type(3) p {
    color: #ff5e10;
    font-weight: bold;
    font-size: clamp(14px, 1.6vw, 28px);
}
.case .detail .bbl {
    background-color: #ff5e10;
    color: #fff;
    border-radius: 999px;
    text-align: center;
    font-size: large;
    position: relative;
    margin-top: 0;
    font-size: 1.5rem;
}
.case .detail .bbl:before {
    content: "";
    position: absolute;
    top: -19px;
    left: 50%;
    margin-left: -15px;
    border: 10px solid transparent;
    border-bottom: 10px solid #ff5e10;
}

.case .slider .slick-prev,
.case .slider .slick-next {
    background: #2896dc;
    border-radius: 999px;
    width: 40px;
    height: 40px;
    z-index: 3;
}
.case .slider .slick-prev::before,
.case .slider .slick-next::before {
    opacity: 1;
    content: '';
    background-color: #fff;
    width: 16px;
    height: 16px;
    display: block;
    left: 0;
    right: 0;
    position: absolute;
    margin: auto;
    top: 0;
    bottom: 0;
}
.case .slider .slick-prev::before {
    clip-path: polygon(100% 0, 0 50%, 100% 100%);
}
.case .slider .slick-next::before {
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
}
.case .anno {
    margin: auto;
    margin-top: 0px;
    width: 80%;
    max-width: 1200px;
}
@media only screen and (max-width: 766px){
    .case .slider .slick-prev {
        left: -15px;
    }
    .case .slider .slick-next {
        right: -15px;
    }
}


/* よくある質問 ---------------------------------------------------- */
.qa-6 {
    margin: auto;
    width: 90%;
    max-width: 600px;
    margin-bottom: 5px;
    border-bottom: 2px solid #d6dde3;
}
.qa-6 summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    padding: 1em 2em 1em 3em;
    color: #333333;
    font-weight: 600;
    cursor: pointer;
}
.qa-6 summary::before,
.qa-6 p::before {
    position: absolute;
    left: 1em;
    font-weight: 600;
    font-size: 1.3em;
}
.qa-6 summary::before {
    color: #75bbff;
    content: "Q";
}
.qa-6 summary::after {
    transform: translateY(-25%) rotate(45deg);
    width: 7px;
    height: 7px;
    margin-left: 10px;
    border-bottom: 3px solid #333333b3;
    border-right: 3px solid #333333b3;
    content: '';
    transition: transform .5s;
}
.qa-6[open] summary {
    border-bottom: 2px dotted #d6dde3;
}
.qa-6[open] summary::after {
    transform: rotate(225deg);
}
.qa-6 p {
    position: relative;
    transform: translateY(-10px);
    opacity: 0;
    margin: 10px 0 0;
    padding: .3em 3em 1.5em;
    color: #333;
    transition: transform .5s, opacity .5s;
    font-size: clamp(14px, 1.0vw, 20px)
}
.qa-6[open] p {
    transform: none;
    opacity: 1;
}
.qa-6 p::before {
    color: #ff8d8d;
    line-height: 1.2;
    content: "";
}
@media only screen and (max-width: 766px){
    .qa-6 {
        width: 94%;
    }
    .qa-6 p {
        padding: .3em 2em 1.5em;
    }
    .qa-6 summary {
        padding: 1em 1.8em 1em 2em;
    }
    .qa-6 summary::before, .qa-6 p::before {
        left: 0.3em;
    }
    .qa-6 summary::after {
        position: absolute;
        top: 50%;
        right: 0.5em;
    }
}

footer {
    padding: 3vh 0;
}
footer a {
    color: #363636;
}

/* フォーム --------------------------------------------*/
.form .box {
    padding: 0 0 20px;
}
.form .ttl {
    background-color: #ff5e10;
    border-radius: 20px 20px 0 0;
    padding: 10px;
}
.form .ttl b {
    font-size: 2rem;
}
.estimate-form {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1rem;
    width: 90%;
    max-width: 880px;
    margin: 2rem auto;
    background: #f9f9f9;
    padding: 2rem;
    border-radius: 12px;
    font-family: sans-serif;
  }
  .estimate-form label {
    display: flex;
    flex-direction: column;
    font-weight: bold;
  }
  .estimate-form label>div {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .estimate-form input,
  .estimate-form select {
    margin-top: 0.25rem;
    padding: 0.5rem;
    font-size: 1rem;
    border: 1px solid #ccc;
    border-radius: 6px;
  }
  .estimate-form .required,
  .estimate-form .any {
    font-size: 0.7rem;
    margin-left: 0.25rem;
    color: #fff;
    border-radius: 4px;
    padding: 1px 4px;
  }
  .estimate-form .required {
    background-color: #2896dc;
  }
  .estimate-form .any {
    background-color: #cfcfcf;
  }
  .checkbox {
    grid-column: span 3;
    font-weight: normal;
    justify-content: center;
    margin-top: 10px;
  }
  .estimate-form label.checkbox {
    flex-direction: row;
  }
  .estimate-form button {
    grid-column: span 3;
    background: #ffd500;
    border: 4px solid #fff;
    box-shadow: 0px 0px 18.8px 1.2px rgba(7, 5, 5, 0.3);
    color: #000;
    font-size: 1.2rem;
    padding: 1rem;
    border-radius: 100px;
    cursor: pointer;
    font-weight: bold;
    position: relative;
    transition: 0.3s ease;
    width: 70%;
    margin: auto;
    min-width: 580px;
}
.estimate-form button:disabled {
    background: #ccc;
    border: 4px solid #fff;
    cursor: not-allowed;
}
.estimate-form .dual {
    display: flex;
    gap: 0.5rem;
}
.estimate-form .dual input,
.estimate-form .dual select {
      flex: 1;
      width: 50%;
}

.badge {
    font-size: 0.8rem;
    padding: 0.2rem 0.5rem;
    border-radius: 999px;
    position: absolute;
    right: 1rem;
    top: 20%;
    transform: translateY(-50%);
}
@media only screen and (max-width: 766px){
    .form .box {
        width: 90%;
    }
    .form .box .ttl {
        margin-bottom: 10px;
    }
    .form .ttl b {
    font-size: 21px;
    }
    .check .arrow {
        width: 70%;
    }
    .check .box .ttl {
        margin-bottom: 10px;
    }
    .estimate-form {
      grid-template-columns: 1fr;
      padding: 1rem;
      background-color: unset;
      margin: 0rem auto;
    }
    .estimate-form button {
      font-size: 1rem;
      grid-column: span 1;
      min-width: 80vw;
      padding: 0.6rem;
    }
    .checkbox {
        grid-column: span 1;
    }
    .badge {
        right: -1rem;
        width: 20%;
    }
}