@charset "UTF-8";
/*==================================================

** index
==================================================*/
html.modalset {
  overflow: hidden; }

#mainvisual {
  background: url("../img/index/mainvisual_bg_pc.jpg") no-repeat center center/cover;
  max-height: 679px; }
  #mainvisual .mainvisual-box {
    margin-top: 40px; }
  #mainvisual .mainvisual-txt {
    width: 58.7%;
    margin-top: 46px; }
  #mainvisual .mainvisual-pht {
    width: 39%; }
  #mainvisual .mainvisual-award {
    margin-top: 20px; }

#indexSubsidy .maker-sec {
  margin-top: 96px; }
  #indexSubsidy .maker-sec h2 {
    max-width: 432px;
    width: 38.2%;
    margin: auto; }
  #indexSubsidy .maker-sec:after {
    content: "";
    background: linear-gradient(180deg, #fefefe 9.48%, #fffed8 100%);
    display: block;
    width: 100%;
    height: 118px;
    margin-top: 10px; }
#indexSubsidy .maker-logo {
  max-width: 864px;
  width: 76.5%;
  margin: 24px auto 0; }
#indexSubsidy .subsidy-sec {
  padding-bottom: 96px;
  background: url("../img/index/index_subsidy_bg_pc.jpg") no-repeat top center/cover; }
  #indexSubsidy .subsidy-sec h2 {
    position: relative;
    z-index: 1; }
    #indexSubsidy .subsidy-sec h2 img {
      width: 74%;
      margin: 0 0 0 auto; }
    #indexSubsidy .subsidy-sec h2:before {
      content: "";
      background: url("../img/index/index_subsidy_img01_pc.png") no-repeat center center/contain;
      display: block;
      width: 28.3%;
      aspect-ratio: 1/1.445;
      position: absolute;
      top: 0;
      left: 0;
      z-index: -1; }
#indexSubsidy .subsidy-subhead {
  width: 64%;
  margin: 48px auto 0; }
#indexSubsidy .subsidy-txt {
  font-weight: 900;
  text-align: center;
  font-size: 2.4rem;
  margin-top: 32px; }

#indexItems {
  padding: 96px 0 150px;
  background: url("../img/common/ptn_polygon_1920x1080_alpha15.png") repeat center center/1920px 1080px; }
  #indexItems h2 {
    margin: 0 auto;
    max-width: 720px;
    width: 63.8%; }
  #indexItems .item-txt {
    margin-top: 32px;
    font-size: 2.2rem;
    font-weight: 700; }
  #indexItems .item-list {
    margin-top: 88px;
    gap: 90px 0; }
    #indexItems .item-list + p {
      margin-top: 56px; }
  #indexItems .item-box {
    border: 2px solid #132838;
    width: 47.8%;
    box-shadow: 4px 4px 4px rgba(19, 40, 56, 0.25); }
  #indexItems .item-ttl {
    background: #132838;
    color: #fefefe;
    font-size: min(4.6vw, 5.2rem);
    font-weight: 900;
    text-align: center;
    line-height: 1;
    padding: 34px 0 24px;
    position: relative; }
    #indexItems .item-ttl:before {
      content: "";
      background: url("") no-repeat center center/contain;
      display: block;
      width: 78.7%;
      aspect-ratio: 422/60;
      position: absolute;
      top: -32.6%;
      right: 0;
      left: 0;
      margin: auto; }
  #indexItems .item-subsidy10:before {
    background-image: url("../img/index/index_items_subsidy_10.svg"); }
  #indexItems .item-subsidy13:before {
    background-image: url("../img/index/index_items_subsidy_13.svg"); }
  #indexItems .before {
    background: #ffef31;
    text-align: center;
    font-weight: 900;
    padding: 21px 0; }
    #indexItems .before-tax {
      -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
      writing-mode: vertical-rl;
      font-size: min(1.86vw, 2.1rem);
      letter-spacing: 0.05em; }
    #indexItems .before-num {
      font-size: min(5.14vw, 5.8rem);
      line-height: 1; }
    #indexItems .before-txt {
      font-size: min(1.86vw, 2.1rem); }
  #indexItems .after {
    background: #ff2300;
    text-align: center;
    padding: 35px 3.5% 25px;
    position: relative; }
    #indexItems .after:before {
      content: "";
      display: block;
      background: #ffef31;
      height: calc(56px / 3.1);
      width: 56px;
      clip-path: polygon(0 0, 100% 0, 50% 100%);
      position: absolute;
      top: -1px;
      left: 0;
      right: 0;
      margin: auto; }
    #indexItems .after-catch {
      color: #fefefe;
      font-size: min(1.98vw, 2.7rem);
      font-weight: 900;
      line-height: 1;
      width: max-content;
      margin-inline: auto;
      border-bottom: 2px solid #fff;
      padding-bottom: 6px; }
    #indexItems .after-price {
      margin-top: 8px;
      font-weight: 900;
      gap: 0 2px; }
    #indexItems .after-really {
      line-height: 1;
      background: #ffef31;
      color: #ff2300;
      font-size: 2.5rem;
      font-size: min(1.83vw, 2.6rem);
      padding: 12px;
      box-shadow: 3px 3px 0px #132838; }
    #indexItems .after-tax {
      -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
      writing-mode: vertical-rl;
      color: #ffef31;
      font-size: min(1.91vw, 2.6rem);
      letter-spacing: 0.1em;
      text-shadow: 3px 3px 0px #132838; }
    #indexItems .after-num .price {
      color: #ffed11;
      font-size: min(6.25vw, 8.5rem);
      line-height: 1;
      text-shadow: 5px 5px 0px #132838; }
    #indexItems .after-num .yen {
      color: #ffef31;
      font-size: min(1.91vw, 2.6rem);
      text-shadow: 3px 3px 0px #132838; }
  #indexItems .maker-sec h3 {
    width: 384px;
    margin: 64px auto 0; }
  #indexItems .maker-logo {
    max-width: 864px;
    width: 76.5%;
    margin: 24px auto 0; }

#indexStrengths {
  padding: 140px 0;
  background: url("../img/common/ptn_cross_400x300_alpha50.png") repeat center center/400px 300px; }
  #indexStrengths h2 {
    width: 538px;
    margin: auto;
    position: relative; }
    #indexStrengths h2:before {
      content: "";
      background: url("../img/index/index_strengths_ttl_deco.svg") no-repeat center center/contain;
      width: 247px;
      aspect-ratio: 247/67;
      position: absolute;
      top: -30px;
      left: -50px; }
  #indexStrengths .strength-list {
    margin-top: 72px;
    gap: 16px 0; }
  #indexStrengths .strength-sec {
    width: 47.8%; }
    #indexStrengths .strength-sec:nth-child(even) {
      margin-top: 56px; }
    #indexStrengths .strength-sec .phtbox {
      position: relative; }
      #indexStrengths .strength-sec .phtbox:before {
        content: "";
        display: block;
        width: 96px;
        aspect-ratio: 96/57;
        position: absolute;
        top: -27px;
        left: 24px; }
      #indexStrengths .strength-sec .phtbox img {
        border-radius: 8px;
        box-shadow: 8px 8px 0px #2185cf; }
    #indexStrengths .strength-sec .phtbox.num01:before {
      background: url("../img/index/index_strengths_num01.svg") no-repeat left center/contain; }
    #indexStrengths .strength-sec .phtbox.num02:before {
      background: url("../img/index/index_strengths_num02.svg") no-repeat left center/contain; }
    #indexStrengths .strength-sec .phtbox.num03:before {
      background: url("../img/index/index_strengths_num03.svg") no-repeat left center/contain; }
    #indexStrengths .strength-sec .phtbox.num04:before {
      background: url("../img/index/index_strengths_num04.svg") no-repeat left center/contain; }
    #indexStrengths .strength-sec .phtbox.num05:before {
      background: url("../img/index/index_strengths_num05.svg") no-repeat left center/contain; }
    #indexStrengths .strength-sec .txtbox h3 {
      margin-top: 34px;
      font-size: 3.2rem;
      line-height: 1.2;
      color: #2185cf;
      font-weight: 900; }
    #indexStrengths .strength-sec .txtbox p {
      margin-top: 24px;
      font-weight: 700;
      line-height: 1.5; }

#indexArea {
  background: url("../img/common/ptn_slash_bl.png") repeat center center/96px 96px;
  padding: 96px 0; }
  #indexArea .wrap {
    z-index: 1; }
  #indexArea .txtbox {
    width: 54.4%;
    position: absolute;
    top: 64px;
    left: 20px; }
  #indexArea .areabox {
    background: #fefefe;
    padding: 35px 4.6%;
    margin-top: 56px;
    position: relative; }
    #indexArea .areabox h3, #indexArea .areabox p {
      line-height: 1.5;
      font-weight: 900; }
    #indexArea .areabox h3 {
      display: flex;
      gap: 0 3px;
      position: absolute;
      top: -21px;
      left: 32px;
      font-size: 2.5rem;
      color: #fefefe; }
      #indexArea .areabox h3 span {
        background: #2185cf;
        padding: 2px 8px; }
    #indexArea .areabox p {
      font-size: 3.8rem;
      font-size: min(3.36vw, 3.8rem);
      text-align: center; }
      #indexArea .areabox p .ye {
        color: #ffc23d; }
      #indexArea .areabox p .rd {
        color: #fa4c4c; }
      #indexArea .areabox p .gn {
        color: #5cca20; }
      #indexArea .areabox p .pk {
        color: #ef8df4; }
      #indexArea .areabox p .gr {
        color: #8d9ef4; }
      #indexArea .areabox p .yegn {
        color: #d5cf22; }
  #indexArea .phtbox {
    width: 46.6%;
    min-width: 400px;
    margin-left: auto;
    z-index: -1; }

#indexFlow {
  padding: 96px 0; }
  #indexFlow h2 {
    width: 618px;
    margin: auto; }
  #indexFlow .flow-list {
    margin-top: 72px;
    position: relative; }
    #indexFlow .flow-list li {
      width: 18.4%;
      background: #feffee;
      border: 2px solid #132838;
      border-radius: 8px;
      padding: 46px 20px 40px;
      box-shadow: 4px 4px 4px rgba(19, 40, 56, 0.25); }
      #indexFlow .flow-list li:before {
        content: "";
        display: block;
        background: #feffee;
        width: 132px;
        height: 2px;
        position: absolute;
        top: -2px;
        right: 0;
        left: 0;
        margin: auto; }
      #indexFlow .flow-list li:after {
        content: "";
        display: block;
        background: #2185cf;
        height: 36px;
        aspect-ratio: cos(60deg);
        clip-path: polygon(0 0, 100% 50%, 0 100%);
        background: #2185cf;
        position: absolute;
        top: 0;
        right: -20px;
        bottom: 0;
        margin: auto; }
      #indexFlow .flow-list li:last-child:after {
        content: none; }
    #indexFlow .flow-list h3 {
      font-weight: 900;
      text-align: center;
      margin-top: 16px; }
    #indexFlow .flow-list p {
      margin-top: 8px;
      font-size: 1.4rem;
      font-weight: 700; }
    #indexFlow .flow-list .phtbox {
      height: 65px; }
    #indexFlow .flow-list .stepbox {
      height: 30px;
      position: absolute;
      top: -20px;
      right: 0;
      left: 0;
      margin: auto; }

#indexCase {
  background: url("../img/common/ptn_polygon_1920x1080_alpha15.png") repeat center center/1920px 1080px;
  padding: 96px 0; }
  #indexCase h2 {
    width: 276px;
    margin: auto; }
  #indexCase .case-list {
    margin-top: 64px;
    gap: 64px 0; }
  #indexCase .case-box {
    width: 47.8%; }
    #indexCase .case-box dt {
      width: 81.4%;
      margin: auto;
      background: #ebdd52;
      text-align: center;
      font-weight: 900;
      font-size: 2.2rem;
      padding: 11px 0;
      border-radius: 8px 8px 0 0; }
    #indexCase .case-box dd img {
      border: 2px solid #132838;
      border-radius: 8px;
      box-shadow: 4px 4px 4px rgba(19, 40, 56, 0.25); }

#indexContact {
  background: #feffd9;
  padding: 96px 0; }
  #indexContact h2 {
    width: 336px;
    margin: auto; }
  #indexContact .lrbox {
    margin-top: 88px; }
  #indexContact .contact-sec {
    background: #fefefe;
    border: 2px solid #132838;
    border-radius: 16px;
    box-shadow: 4px 4px 4px rgba(19, 40, 56, 0.25);
    padding: 54px 5%;
    position: relative; }
    #indexContact .contact-sec.half {
      width: 47.8%; }
  #indexContact .ballon {
    width: 320px;
    margin: auto;
    text-align: center;
    font-size: 2.2rem;
    color: #fefefe;
    font-weight: 900;
    background: #2185cf;
    padding: 8px 0;
    border-radius: 1000px;
    position: absolute;
    top: -26px;
    right: 0;
    left: 0; }
    #indexContact .ballon:after {
      content: "";
      display: block;
      width: 22px;
      aspect-ratio: 22/11;
      clip-path: polygon(0 0, 100% 0%, 50% 100%);
      background: #2185cf;
      position: absolute;
      top: 50px;
      right: 0;
      left: 0;
      margin: auto; }
    #indexContact .ballon-tel {
      background: #2185cf; }
      #indexContact .ballon-tel:after {
        background: #2185cf; }
    #indexContact .ballon-line {
      background: #06c755; }
      #indexContact .ballon-line:after {
        background: #06c755; }
    #indexContact .ballon-mail {
      background: #fc391a; }
      #indexContact .ballon-mail:after {
        background: #fc391a; }
  #indexContact .tel-sec p, #indexContact .line-sec p {
    font-weight: 700;
    text-align: center; }
  #indexContact .tel-box {
    margin-top: 17px; }
    #indexContact .tel-box a {
      display: block;
      width: max-content;
      margin: auto; }
      #indexContact .tel-box a:hover {
        opacity: 0.8; }
    #indexContact .tel-box span {
      display: inline-block;
      width: 100%; }
    #indexContact .tel-box .num {
      font-size: 4.4rem;
      line-height: 1;
      color: #fc391a;
      display: flex;
      gap: 0 6px; }
      #indexContact .tel-box .num:before {
        content: "";
        background: url("../img/common/ico_freedial.svg") no-repeat center center/contain;
        width: 58px;
        aspect-ratio: 58/38;
        display: inline-block; }
    #indexContact .tel-box .txt {
      font-size: 1.8rem;
      font-weight: 900;
      text-align: center;
      margin-top: 7px; }
  #indexContact .line-box {
    margin-top: 20px; }
    #indexContact .line-box a {
      display: block;
      margin: auto;
      width: 320px;
      border: 2px solid #06c755;
      text-align: center;
      color: #06c755;
      font-size: 2.0rem;
      font-weight: 900;
      border-radius: 1000px;
      padding: 20px 0; }
      #indexContact .line-box a:hover {
        background: #06c755;
        color: #fefefe; }
  #indexContact .mail-sec {
    margin-top: 96px;
    padding-inline: 7%; }
  #indexContact .form-tbl {
    margin-top: 0; }
    #indexContact .form-tbl tr {
      border-bottom: 1px solid #d9d9d9; }
    #indexContact .form-tbl th {
      width: 264px;
      padding: 35px 24px 35px 0;
      font-weight: 700; }
    #indexContact .form-tbl td {
      padding: 24px 0; }
    #indexContact .form-tbl .must,
    #indexContact .form-tbl .free {
      display: inline-flex;
      justify-content: center;
      width: 40px;
      line-height: 25px;
      border-radius: 2px;
      background: #2185cf;
      text-align: center;
      color: #fefefe;
      font-size: 1.3rem;
      font-weight: 500;
      margin-right: 8px;
      vertical-align: 1px; }
    #indexContact .form-tbl .free {
      background: #aaa; }
    #indexContact .form-tbl .txt {
      display: inline-flex; }
  #indexContact .form-btn {
    margin-top: 48px;
    display: flex;
    flex-direction: column;
    align-items: center; }
    #indexContact .form-btn button {
      display: block;
      border: none;
      border-radius: 1000px;
      width: 320px;
      height: auto;
      background: #ebdd52;
      color: #153f28;
      text-align: center;
      font-size: 1.8rem;
      font-weight: 900;
      line-height: 1.6;
      margin-inline: auto;
      padding: 18px 15px;
      cursor: pointer;
      transition: all 0.4s; }
      #indexContact .form-btn button:hover {
        background: rgba(235, 221, 82, 0.8);
        transition: all 0.6s; }
  #indexContact input,
  #indexContact textarea,
  #indexContact select {
    width: 100%;
    border: 1px solid #aaa;
    border-radius: 4px;
    padding: 0 15px;
    background: transparent; }
    #indexContact input:placeholder-shown,
    #indexContact textarea:placeholder-shown,
    #indexContact select:placeholder-shown {
      color: #ccc; }
    #indexContact input::-webkit-input-placeholder,
    #indexContact textarea::-webkit-input-placeholder,
    #indexContact select::-webkit-input-placeholder {
      color: #ccc; }
    #indexContact input:-moz-placeholder,
    #indexContact textarea:-moz-placeholder,
    #indexContact select:-moz-placeholder {
      opacity: 1;
      color: #ccc; }
    #indexContact input::-moz-placeholder,
    #indexContact textarea::-moz-placeholder,
    #indexContact select::-moz-placeholder {
      opacity: 1;
      color: #ccc; }
    #indexContact input:-ms-input-placeholder,
    #indexContact textarea:-ms-input-placeholder,
    #indexContact select:-ms-input-placeholder {
      color: #ccc; }
    #indexContact input.size-s,
    #indexContact textarea.size-s,
    #indexContact select.size-s {
      width: 320px; }
  #indexContact input {
    height: 48px; }
  #indexContact textarea {
    width: 100% !important;
    min-height: 160px;
    padding: 15px;
    resize: vertical; }
  #indexContact .address-li + .address-li {
    margin-top: 8px; }
  #indexContact .address-dt {
    width: 68px;
    padding-top: 14px;
    font-size: 1.4rem;
    font-weight: 700; }
  #indexContact .address-dd {
    width: calc(100% - 68px); }
  #indexContact .address-zipcode {
    max-width: 320px; }
  #indexContact .address-pref {
    max-width: 187px; }
  #indexContact .file-label {
    position: relative; }
  #indexContact .file-input {
    position: absolute;
    width: 100%;
    height: 100%;
    opacity: 0; }
  #indexContact .file-btn {
    width: 135px;
    background: #e6e6e6;
    text-align: center;
    font-size: 1.4rem;
    font-weight: 700;
    border: 1px solid #ccc;
    border-radius: 6px;
    padding: 12px 0; }
  #indexContact .file-txt {
    width: calc(100% - 151px);
    font-size: 1.4rem;
    font-weight: 700; }
  #indexContact .file-note {
    font-size: 1.4rem;
    font-weight: 700;
    margin-top: 16px; }
  #indexContact .compliance-sec {
    margin-top: 48px;
    height: 320px;
    border: 1px solid #ddd;
    padding: 48px 5.3%;
    overflow-y: auto; }
    #indexContact .compliance-sec h3, #indexContact .compliance-sec h4 {
      font-weight: 900;
      color: #2185cf;
      line-height: 1.5; }
    #indexContact .compliance-sec h3 {
      font-size: 2.4rem;
      text-align: center; }
      #indexContact .compliance-sec h3 + p {
        margin-top: 40px; }
    #indexContact .compliance-sec h4 {
      font-size: 2.0rem;
      margin-top: 40px; }
      #indexContact .compliance-sec h4 + p {
        margin-top: 32px; }
    #indexContact .compliance-sec p {
      font-weight: 700;
      line-height: 1.7; }
  #indexContact .compliance-list {
    margin-top: 24px; }
    #indexContact .compliance-list li {
      font-weight: 700;
      padding-left: 24px;
      position: relative; }
      #indexContact .compliance-list li:before {
        content: "・";
        position: absolute;
        top: 0;
        left: 0; }
  #indexContact .consent-box {
    margin-top: 32px;
    text-align: center; }
  #indexContact .consent-check {
    width: 100%;
    padding: 25px 0;
    background: #eee;
    position: relative;
    display: inline-block;
    font-weight: 700;
    cursor: pointer; }
    #indexContact .consent-check:before {
      content: "";
      display: inline-block;
      border: 1px solid #ccc;
      background: url("../img/common/ico_check_gy.svg") no-repeat center top 5px/12px 9px, #fff;
      width: 20px;
      height: 20px;
      margin-right: 8px;
      vertical-align: -4px;
      border-radius: 4px;
      transition: all 0.3s; }
    #indexContact .consent-check:has(input:checked):before {
      background-image: url("../img/common/ico_check_bl.svg");
      transition: all 0.6s; }
    #indexContact .consent-check input {
      position: absolute;
      top: 0;
      left: 0;
      width: 0;
      height: 0;
      opacity: 0;
      padding: 0; }

.main .indexcta {
  background: url("../img/common/ptn_tri_ye.png") repeat center center/400px 400px; }
  .main .indexcta .wrap {
    padding-block: 68px 96px; }
  .main .indexcta h2 {
    width: 87%;
    position: absolute;
    top: -40px;
    right: 0;
    left: 0;
    margin: auto; }
    .main .indexcta h2 img {
      filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25)); }
  .main .indexcta .cta-promise h3 {
    width: 74.4%;
    margin: auto; }
  .main .indexcta .cta-promise .txtbox {
    width: 70.2%;
    margin-top: 32px; }
  .main .indexcta .cta-promise .phtbox {
    width: 26%; }
  .main .indexcta .cta-contact {
    background: #fefefe;
    border: 2px solid #132838;
    border-radius: 16px;
    box-shadow: 4px 4px 4px rgba(19, 40, 56, 0.25);
    padding: 54px 4.25% 40px; }
  .main .indexcta .cta-txt {
    font-weight: 700;
    text-align: center;
    font-size: 2.2rem;
    margin-top: 40px; }
  .main .indexcta .cta-button {
    width: 63%;
    display: block;
    margin: 24px auto 0;
    background: linear-gradient(to top, #2185cf 0%, #2e56c5 50%, #2e56c5 51%, #2185cf 100%);
    background-size: auto 200%;
    border: 6px solid #fefefe;
    box-shadow: 0px 8px 8px rgba(0, 0, 0, 0.25);
    border-radius: 1000px;
    font-size: 2.8rem;
    text-align: center;
    font-weight: 900;
    color: #fefefe;
    line-height: 1.2;
    padding: 25px 0;
    cursor: pointer;
    transition: all 0.4s; }
    .main .indexcta .cta-button:hover {
      transition: all 0.6s;
      background-position: bottom center; }
  .main .indexcta .promise-bubble {
    margin-top: 24px;
    gap: 0 3%; }
    .main .indexcta .promise-bubble .bubble {
      width: 31.3%;
      background: #fefefe;
      padding: 17px 8px;
      border-radius: 11px;
      position: relative; }
      .main .indexcta .promise-bubble .bubble:after {
        content: "";
        background: #fefefe;
        clip-path: polygon(7.6% 0, 0% 100%, 100% 0);
        display: block;
        width: 26px;
        aspect-ratio: 26 / 18;
        position: absolute;
        right: 0;
        bottom: -18px;
        left: 0;
        margin: auto; }
      .main .indexcta .promise-bubble .bubble p {
        font-size: 1.6rem;
        font-weight: 900;
        text-align: center;
        line-height: 1.3; }
    .main .indexcta .promise-bubble .em {
      color: #fc391a;
      font-size: 2.6rem;
      display: block; }
  .main .indexcta .contact-catch {
    display: flex;
    align-items: flex-end;
    gap: 0 10px;
    font-size: 1.8rem;
    line-height: 1.2;
    font-weight: 900;
    margin-bottom: 12px;
    width: max-content;
    margin-inline: auto; }
    .main .indexcta .contact-catch:before, .main .indexcta .contact-catch:after {
      content: "";
      background: url("../img/common/line_bk_l.svg") no-repeat center center/contain;
      display: inline-block;
      width: 14px;
      aspect-ratio: 14/27; }
    .main .indexcta .contact-catch:after {
      transform: scale(-1, 1); }
  .main .indexcta .contact-tel {
    width: 33.8%; }
  .main .indexcta .contact-ohther {
    width: 62.25%; }
  .main .indexcta .contact-button {
    width: 48.75%; }
    .main .indexcta .contact-button a {
      display: block;
      font-size: 1.6rem;
      line-height: 1.2;
      text-align: center;
      font-weight: 900;
      padding: 21px 10px;
      border-radius: 1000px;
      position: relative; }
      .main .indexcta .contact-button a .fsl {
        font-size: 2.2rem; }
      .main .indexcta .contact-button a:before {
        content: "";
        background: url("") no-repeat center center/contain;
        display: block;
        width: 22px;
        aspect-ratio: 1 / 1;
        position: absolute;
        top: 0;
        bottom: 0;
        left: 24px;
        margin: auto; }
  .main .indexcta .contact-mail a {
    background: #ebdd52;
    color: #325743; }
    .main .indexcta .contact-mail a:before {
      background-image: url("../img/common/ico_mail.svg"); }
    .main .indexcta .contact-mail a:hover {
      background: rgba(235, 221, 82, 0.8); }
  .main .indexcta .contact-line a {
    background: #06c755;
    color: #fefefe; }
    .main .indexcta .contact-line a:before {
      background-image: url("../img/common/ico_line.svg"); }
    .main .indexcta .contact-line a:hover {
      background: rgba(6, 199, 85, 0.8); }
.main .modal {
  display: none;
  width: 100%;
  height: 100vh;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 9999; }
  .main .modal-content {
    width: 100%;
    height: 100%;
    overflow-y: auto; }
  .main .modal-wrap {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column; }
  .main .modal-bg {
    position: absolute;
    left: 0;
    top: 0;
    background: rgba(19, 40, 56, 0.8);
    width: 100%;
    height: 100%; }
  .main .modal-box {
    width: 100%;
    vertical-align: middle;
    margin: auto;
    padding-block: 118px 96px; }
    .main .modal-box .inner {
      background: #fefefe;
      box-shadow: 4px 4px 4px rgba(19, 40, 56, 0.25);
      border-radius: 8px;
      border: 2px solid #132838;
      text-align: center; }
      .main .modal-box .inner > :first-child {
        margin-top: 0; }
  .main .modal-close {
    background: url("../img/common/ico_close.svg") no-repeat center center/contain;
    border: none;
    position: absolute;
    top: -24px;
    right: -24px;
    width: 56px;
    aspect-ratio: 1;
    cursor: pointer; }
  .main .modal-sec {
    padding: 80px 7%;
    position: relative; }
    .main .modal-sec h2 {
      font-size: 4.0rem;
      color: #2185cf;
      font-weight: 900; }
      .main .modal-sec h2 + p {
        margin-top: 40px; }
    .main .modal-sec p {
      font-weight: 700;
      line-height: 1.7; }
.main .maker-list {
  margin-top: 48px;
  gap: 48px 0; }
.main .maker-box {
  width: 47.5%; }
  .main .maker-box.daikin dt img {
    height: 30px; }
  .main .maker-box.mitsubishi dt img {
    height: 30px; }
  .main .maker-box.chofu dt img {
    height: 25px; }
  .main .maker-box dt {
    background: #f8f8f8;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 48px; }
    .main .maker-box dt img {
      height: 20px; }
  .main .maker-box dd {
    margin: 32px auto 0;
    width: 83%; }

@media screen and (min-width: 961px) {
  #mainvisual .wrap {
    width: 100%; } }
@media screen and (max-width: 1150px) {
  .main .indexcta .contact-button a {
    padding: 16px 10px; }
    .main .indexcta .contact-button a .fsl {
      font-size: 1.9rem; }
  .main .indexcta .cta-promise .txtbox {
    margin-top: 16px; }
  .main .indexcta .cta-button {
    font-size: 2.4rem; } }
@media screen and (max-width: 960px) and (min-width: 768px) {
  #mainvisual .mainvisual-box {
    margin-top: 20px; }
  #mainvisual .mainvisual-txt {
    margin-top: 20px; }
  #mainvisual .mainvisual-award {
    margin-top: 20px; }

  #indexItems .item-ttl {
    padding: 24px 0 16px; } }
@media screen and (max-width: 960px) {
  #indexStrengths {
    padding: 100px 0; }
    #indexStrengths h2 {
      width: 64%; }
      #indexStrengths h2:before {
        width: 30vw; }
    #indexStrengths .strength-sec:nth-child(even) {
      margin-top: 56px; }
    #indexStrengths .strength-sec .phtbox:before {
      width: 69px;
      top: -20px; }
    #indexStrengths .strength-sec .txtbox h3 {
      margin-top: 28px;
      font-size: 2.8rem; }

  #indexArea .txtbox {
    left: 0; }

  #indexFlow h2 {
    width: 58%; }
  #indexFlow .flow-list {
    margin-top: 60px;
    gap: 48px 0;
    position: relative; }
    #indexFlow .flow-list li {
      width: 100%;
      padding: 32px 5.5%; }
      #indexFlow .flow-list li:before {
        width: 132px; }
      #indexFlow .flow-list li:after {
        transform: rotate(90deg);
        top: auto;
        right: 0;
        bottom: -29px;
        left: 0; }
    #indexFlow .flow-list .stepbox {
      height: 30px;
      position: absolute;
      top: -20px;
      right: 0;
      left: 0;
      margin: auto; }

  #indexCase .case-box dt {
    font-size: 1.8rem; }

  #indexContact .lrbox {
    margin-top: 88px; }
  #indexContact .contact-sec {
    padding: 46px 3%; }
  #indexContact .ballon {
    max-width: 320px;
    width: 80%;
    font-size: 1.8rem; }
    #indexContact .ballon:after {
      top: 44px; }
  #indexContact .tel-box .num {
    font-size: 4.0vw; }
    #indexContact .tel-box .num:before {
      width: 5.0vw; }
  #indexContact .line-box a {
    max-width: 320px;
    width: 100%; }
  #indexContact .mail-sec {
    margin-top: 64px;
    padding: 36px 5% 64px; }
  #indexContact .form-tbl {
    margin-top: 0; }
    #indexContact .form-tbl th, #indexContact .form-tbl td {
      width: 100%;
      display: block; }
    #indexContact .form-tbl th {
      padding: 24px 0 8px; }
    #indexContact .form-tbl td {
      padding: 8px 0 24px; }
  #indexContact .form-btn {
    margin-top: 24px; }

  .main .indexcta h2 {
    width: 87%;
    top: -30px;
    right: 0;
    left: 0; }
  .main .indexcta .wrap {
    padding-top: 40px;
    padding-bottom: 80px; }
  .main .indexcta .cta-promise .phtbox {
    width: 28%; }
  .main .indexcta .cta-contact {
    padding: 54px 12% 40px; }
    .main .indexcta .cta-contact .lrbox {
      flex-wrap: wrap;
      gap: 32px 0; }
  .main .indexcta .cta-txt {
    font-size: 2.0rem; }
  .main .indexcta .cta-button {
    width: 80%;
    font-size: 2.4rem; }
  .main .indexcta .promise-bubble {
    margin-top: 16px; }
    .main .indexcta .promise-bubble .bubble {
      width: 32%;
      padding: 17px 8px; }
      .main .indexcta .promise-bubble .bubble p {
        font-size: 1.2rem; }
    .main .indexcta .promise-bubble .em {
      font-size: 1.8rem; }
  .main .indexcta .contact-catch {
    font-size: 2.0rem; }
  .main .indexcta .contact-tel {
    width: 100%; }
  .main .indexcta .contact-ohther {
    width: 100%; }
  .main .indexcta .contact-button {
    width: 48.75%; }
    .main .indexcta .contact-button a {
      padding: 15px 10px; }
  .main .modal-box {
    width: 90%;
    padding-block: 40px; }
  .main .modal-sec {
    padding: 64px 5%;
    position: relative; }
    .main .modal-sec h2 {
      font-size: 2.8rem; }
      .main .modal-sec h2 + p {
        margin-top: 32px; }
    .main .modal-sec p {
      line-height: 1.5; }
  .main .modal-close {
    top: -12px;
    right: -16px;
    width: 46px; }
  .main .maker-box {
    width: 49%; } }
@media screen and (max-width: 767px) {
  #mainvisual {
    background-image: url("../img/index/mainvisual_bg_sp.jpg");
    max-height: none; }
    #mainvisual .mainvisual-box {
      margin-top: 0;
      flex-wrap: wrap; }
    #mainvisual .mainvisual-txt {
      width: 100%;
      margin-top: 46px; }
    #mainvisual .mainvisual-pht {
      width: 100%;
      margin-top: 13px; }
    #mainvisual .mainvisual-award {
      margin-top: 13px; }

  #indexSubsidy .maker-sec {
    margin-top: 80px; }
    #indexSubsidy .maker-sec h2 {
      width: 76.5%; }
    #indexSubsidy .maker-sec:after {
      height: 70px;
      margin-top: 0; }
  #indexSubsidy .maker-logo {
    width: 90%; }
  #indexSubsidy .subsidy-sec {
    padding-bottom: 40px;
    background-image: url("../img/index/index_subsidy_bg_sp.jpg"); }
    #indexSubsidy .subsidy-sec h2 img {
      width: 81%; }
    #indexSubsidy .subsidy-sec h2:before {
      background-image: url("../img/index/index_subsidy_img01_sp.png");
      width: 22.7%;
      aspect-ratio: 1/1.951; }
  #indexSubsidy .subsidy-subhead {
    width: 72.2%;
    margin-top: 40px; }
  #indexSubsidy .subsidy-txt {
    font-size: 1.6rem;
    text-align: left; }

  #indexItems {
    padding: 80px 0 160px; }
    #indexItems h2 {
      margin: 0 auto;
      max-width: none;
      width: 86%; }
    #indexItems .item-txt {
      font-size: 1.6rem;
      line-height: 1.5; }
    #indexItems .item-list {
      margin-top: 64px;
      gap: 85px 0; }
      #indexItems .item-list + p {
        margin-top: 40px; }
    #indexItems .item-box {
      width: 100%; }
    #indexItems .item-ttl {
      font-size: min(10.5vw, 4.2rem);
      padding: min(5.5vw, 22px) 0 15px; }
      #indexItems .item-ttl:before {
        max-width: 340px;
        width: 80%;
        top: -40%; }
    #indexItems .before {
      padding: 16px 0; }
      #indexItems .before-tax {
        font-size: 3.5vw; }
      #indexItems .before-num {
        font-size: 9.5vw; }
      #indexItems .before-txt {
        font-size: 3.5vw; }
    #indexItems .after {
      padding: 25px 3.5%; }
      #indexItems .after:before {
        height: calc(36px / 3);
        width: 36px; }
      #indexItems .after-catch {
        font-size: 4.5vw; }
        #indexItems .after-catch:after {
          margin-top: 4px; }
      #indexItems .after-really {
        font-size: 4.25vw;
        padding: min(2vw, 8px);
        box-shadow: 2px 2px 0px #132838; }
      #indexItems .after-tax {
        font-size: 4.25vw;
        text-shadow: 2px 2px 0px #132838; }
      #indexItems .after-num .price {
        font-size: 14vw;
        text-shadow: 3px 3px 0px #132838; }
      #indexItems .after-num .yen {
        font-size: 4.25vw;
        text-shadow: 2px 2px 0px #132838; }
    #indexItems .maker-sec h3 {
      width: 68vw;
      margin-top: 48px; }
    #indexItems .maker-logo {
      max-width: none;
      width: 100%; }

  #indexStrengths {
    padding: 80px 0 160px; }
    #indexStrengths h2 {
      width: 96%; }
      #indexStrengths h2:before {
        width: 38.25vw;
        top: -25%;
        left: -3%; }
    #indexStrengths .strength-list {
      margin-top: 40px;
      gap: 60px 0; }
    #indexStrengths .strength-sec {
      width: 100%; }
      #indexStrengths .strength-sec:nth-child(even) {
        margin-top: 0; }
      #indexStrengths .strength-sec .phtbox:before {
        left: 5.6%; }

  #indexArea {
    padding: 80px 0; }
    #indexArea .txtbox {
      width: 100%;
      position: static; }
    #indexArea .areabox {
      padding: 32px 5.55%;
      margin-top: 60px; }
      #indexArea .areabox h3 {
        position: absolute;
        top: -16px;
        left: 50%;
        transform: translateX(-50%);
        font-size: 2.0rem; }
        #indexArea .areabox h3 span {
          background: #2185cf;
          padding: 1px 6px; }
      #indexArea .areabox p {
        font-size: 6vw; }
    #indexArea .phtbox {
      width: 77.7%;
      min-width: auto;
      margin: 32px auto 0;
      z-index: auto; }

  #indexFlow {
    padding-bottom: 160px; }

  #indexCase {
    padding: 80px 0; }
    #indexCase h2 {
      width: 49.4%; }
    #indexCase .case-list {
      margin-top: 32px;
      gap: 40px 0; }
    #indexCase .case-box {
      width: 100%; }
      #indexCase .case-box dt {
        width: 81.4%;
        font-size: 1.4rem;
        padding: 8px 0;
        border-radius: 6px 6px 0 0; }
      #indexCase .case-box dd img {
        border: 2px solid #132838;
        border-radius: 8px; }

  #indexContact {
    padding: 80px 0; }
    #indexContact h2 {
      width: 55.8%; }
    #indexContact .lrbox {
      margin-top: 72px; }
    #indexContact .contact-sec {
      padding: 46px 5%; }
      #indexContact .contact-sec.half {
        width: 100%; }
    #indexContact .ballon:after {
      top: 44px; }
    #indexContact .tel-sec p, #indexContact .line-sec p {
      text-align: left; }
    #indexContact .tel-box .num {
      font-size: 9.31vw; }
      #indexContact .tel-box .num:before {
        width: 12.25vw; }
    #indexContact .line-sec {
      margin-top: 64px; }
    #indexContact .line-box a {
      max-width: none;
      width: 100%; }
    #indexContact .tel-sec p, #indexContact .line-sec p {
      text-align: left; }
    #indexContact .form-btn button {
      width: 100%; }
    #indexContact input.size-s,
    #indexContact textarea.size-s,
    #indexContact select.size-s {
      width: 100%; }
    #indexContact .file-btn {
      width: 100%; }
    #indexContact .file-txt {
      margin-top: 8px; }
    #indexContact .address-li + .address-li {
      margin-top: 8px; }
    #indexContact .address-dt {
      width: 100%;
      padding-top: 14px;
      font-size: 1.4rem;
      font-weight: 700; }
    #indexContact .address-dd {
      width: 100%;
      margin-top: 8px; }
    #indexContact .address-zipcode {
      max-width: 100%; }

  .main .indexcta h2 {
    width: 95%;
    top: -18vw;
    right: 0;
    left: 0; }
  .main .indexcta .wrap {
    padding-top: 10vw; }
  .main .indexcta .cta-promise {
    flex-direction: column; }
    .main .indexcta .cta-promise h3 {
      width: 92.7%; }
    .main .indexcta .cta-promise .phtbox {
      width: 61%;
      margin: 12px auto 0; }
    .main .indexcta .cta-promise .txtbox {
      width: 100%; }
  .main .indexcta .cta-contact {
    padding: 32px 5%; }
  .main .indexcta .cta-txt {
    font-size: 1.6rem;
    text-align: left; }
  .main .indexcta .cta-button {
    width: 100%;
    font-size: min(5.5vw, 2.2rem);
    padding: 16px 0;
    border-width: 4px; }
  .main .indexcta .promise-bubble {
    margin-top: 24px;
    flex-wrap: wrap;
    gap: 24px 0; }
    .main .indexcta .promise-bubble .bubble {
      width: 94.4%;
      padding: 18px 8px;
      border-radius: 8px; }
      .main .indexcta .promise-bubble .bubble:nth-child(even) {
        margin-left: auto; }
      .main .indexcta .promise-bubble .bubble:after {
        right: 10%;
        left: auto;
        width: 19px;
        aspect-ratio: 19 / 13;
        bottom: -12px; }
      .main .indexcta .promise-bubble .bubble p {
        text-align: left;
        font-size: 3.5vw;
        gap: 0 4px; }
    .main .indexcta .promise-bubble .em {
      font-size: 5vw; }
  .main .indexcta .contact-catch {
    font-size: 4.5vw;
    text-align: center;
    margin-bottom: 24px; }
    .main .indexcta .contact-catch:before, .main .indexcta .contact-catch:after {
      width: 3.5vw;
      aspect-ratio: 14/27;
      margin-bottom: 0.8vw; }
  .main .indexcta .contact-tel {
    width: 100%; }
  .main .indexcta .contact-ohther {
    width: 100%; }
    .main .indexcta .contact-ohther .lrbox {
      gap: 20px 0; }
  .main .indexcta .contact-button {
    width: 100%; }
    .main .indexcta .contact-button a {
      padding: 17px 10px; }
      .main .indexcta .contact-button a .fsl {
        font-size: 2.2rem; }
  .main .modal-sec h2 {
    line-height: 1.2; }
  .main .modal-sec p {
    text-align: left; }
  .main .maker-list {
    margin-top: 24px;
    gap: 32px 0; }
  .main .maker-box {
    width: 100%; }
    .main .maker-box dd {
      margin-top: 24px;
      width: 88.6%; } }
