:root {
  --gray100: #f5f5f5;
  --gray200: #d2d2d2;
  --white: #fff;
  --attention-red: #d22323;
  --bg-color: #272343;
  --primary-color: #16293d;
  --blue100: #7ea2c9;
  --blue200: #e5ecf4;
  font-family: 'Noto Sans CJK JP';
}
.main-contents * {
  color: var(--primary-color);
}
/* br設定 */
.br-is-sp {
  display: none;
}
@media screen and (max-width: 480px) {
  .br-is-pc {
    display: none;
  }
  .br-is-sp {
    display: inline-block;
  }
}
/* ---- */
.c-breadcrumb__wrapper {
  border-top: 1px solid var(--blue200);
  grid-column: 1/4;
  max-width: none;
  width: 100%;
  padding-top: 15px;
  padding-bottom: 15px;
}
.c-breadcrumb__item:last-child {
  color: #272343;
}
.main-contents {
  padding-bottom: 0;
  padding-top: 66px;
}
@media screen and (max-width: 480px) {
  .main-contents {
    padding-top: 0;
  }
}
.section:last-of-type {
  padding-bottom: 140px;
}
@media screen and (min-width: 481px) {
  .main-visual {
    background-color: var(--bg-color);
    padding: 67.5px 0;
    text-align: center;
    grid-column: 1/-1;
  }
  .main-visual h1 {
    color: var(--white);
    font-size: 32px;
    font-weight: 500;
    letter-spacing: 3.2px;
    line-height: normal;
  }
  .main-visual + .section {
    margin-top: 120px;
  }

  .price-section + .subsection,
  .subsection + .subsection {
    margin-top: 80px;
  }
  .price-section + .price-section,
  .case-section {
    margin-top: 123px;
  }
  .section__inner {
    max-width: 1064px;
    margin: 0 auto;
  }
  .section-heading {
    margin-bottom: 40px;
  }
  .section-heading h2 {
    font-size: 28px;
    font-weight: 400;
    text-align: center;
    line-height: normal;
  }
  .section-heading span {
    margin-top: 13px;
    display: block;
    color: var(--blue100);
    font-family: Avenir;
    font-size: 16px;
    line-height: normal;
  }
  .price-plan__desc {
    line-height: 180%;
    text-align: center;
  }
  .price-plan__desc__p {
    font-size: 16px;
    letter-spacing: 0;
  }
  /* 基本メニュー */
  .sec-fig {
    max-width: 822px;
    background-color: var(--blue200);
    padding: 27px 41px 36px;
    margin: 0 auto;
    margin-top: 56px;
  }
  .sec-fig-container {
    display: flex;
    flex-direction: column;
    margin: 0 auto;
  }
  .sec-fig__heading {
    margin-bottom: 24px;
    text-align: center;
  }
  .sec-fig__heading h3 {
    font-size: 22px;
    font-weight: 400;
    line-height: normal;
  }

  .sec-fig__container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: 15px;
  }

  .sec-fig-box {
    background-color: var(--white);
    display: flex;
    justify-content: center;
    align-items: center;
    height: 68px;
  }

  .sec-fig-box p {
    font-size: 16px;
    line-height: 130%;
    text-align: center;
    font-weight: 500;
  }
  .sec-fig-box p span {
    font-size: 12px;
  }

  .box1 {
    grid-row: 1;
    grid-column: 1;
  }
  .box2 {
    grid-row: 1;
    grid-column: 2;
  }
  .box3 {
    grid-row: 1;
    grid-column: 3;
  }
  .box4 {
    grid-row: 2;
    grid-column: 1;
  }
  .box5 {
    grid-row: 2;
    grid-column: 2;
  }
  .box6 {
    grid-row: 2;
    grid-column: 3;
  }
  /* 料金表 */
  .section .subsection:nth-child(2) .section-heading {
    margin-bottom: 48px;
  }
  /* table border */
  .price-plan__table th,
  .price-plan__table tr,
  .price-plan__table td {
    border: 1px solid;
    border-color: var(--gray200);
  }
  /* table color */
  .price-plan__table thead tr {
    background: var(--primary-color);
  }
  .price-plan__table-head1 {
    color: var(--white);
  }
  .price-plan__table-head2 {
    background-color: var(--blue200);
  }
  /* table size */
  .price-plan__table thead tr {
    width: 100%;
  }
  .price-plan__table-head1:nth-child(1) {
    width: 345px;
  }
  .price-plan__table-head1:nth-child(2) {
    width: 399px;
  }
  .price-plan__table-head1:nth-child(3) {
    width: 320px;
  }
  .price-plan__table tr:first-child {
    height: 48px;
  }
  .price-plan__table-head2 {
    padding-left: 42.5px;
    padding-right: 42.5px;
  }
  .price-plan__table tr {
    height: 48px;
  }
  /*  */
  .price-plan__table th,
  .price-plan__table td {
    line-height: 180%;
  }
  .price-plan__table thead th {
    text-align: center;
  }
  .price-plan__table-head1 {
    text-align: center;
  }
  .price-plan__table td {
    text-align: center;
  }
  .price-plan__table th {
    font-weight: 500;
  }
  /* 括弧中 */
  .price-plan__table-head2 span {
    font-size: 14px;
  }
  /* caption */
  .price-plan__table__caption {
    font-size: 12px;
    font-weight: 400;
    line-height: 180%;
    margin-top: 23px;
  }
  .price-plan__table__caption li {
    position: relative;
    padding-left: 12px;
    letter-spacing: 0;
  }
  .price-plan__table__caption li:before {
    position: absolute;
    content: '・';
    left: 0;
  }

  /* 見積もり例 */
  .--case + .--case {
    margin-top: 120px;
  }
  .--case:nth-of-type(2) {
    margin-top: 142px;
  }
  /* table border */
  .price-case__table th,
  .price-case__table tr,
  .price-case__table td {
    border: 1px solid;
    border-color: var(--gray200);
  }
  /* table color */
  .price-case__table-head1 {
    background: var(--blue200);
  }
  .price-case__table-head2 {
    background-color: var(--gray100);
  }
  /* table size */
  .price-case__table-head1 {
    height: 47px;
  }
  .price-case__table-head2 {
    width: 345px;
    padding: 10px 42.5px;
  }
  /*  */
  .price-case__table th,
  .price-case__table td {
    line-height: 180%;
  }
  .price-case__table thead th {
    text-align: center;
  }
  .price-case__table-head2 {
    font-weight: 500;
  }
  .price-case__table td {
    padding: 16.5px 28px;
  }
  .price-case__table td li {
    position: relative;
    padding-left: 22px;
    letter-spacing: 0;
  }
  .price-case__table td li:before {
    position: absolute;
    content: '・';
    left: 0;
  }
  /* 括弧中 */
  .price-case__table td span {
    font-size: 14px;
  }
  /* caption */
  .price-case__table caption {
    font-size: 18px;
    font-weight: 700;
    text-align: left;
    margin-bottom: 11px;
    margin-left: 8px;
    line-height: 180%;
  }
  /* total */
  .price-case__total {
    margin: 25px auto 56.5px;
    width: 404px;
    height: 67px;
    background: var(--blue200);
    display: flex;
    align-items: end;
    justify-content: center;
    padding: 12px;
    padding-left: 18px;
    gap: 20px;
  }
  .--case:last-of-type .price-case__total {
    margin-bottom: 84px;
  }
  .price-case__total p {
    font-size: 20px;
    display: flex;
    align-items: end;
  }
  .price-case__total .--total-num {
    font-size: 28px;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 0;
  }
  /* button */
  .price-case__footer-btn-ctn {
    display: flex;
    justify-content: center;
    gap: 72px;
  }
  .price-case__footer-btn {
    width: 400px;
    height: 98px;
    flex-shrink: 0;
    transition: all 0.2s;
  }
  .--orange .price-case__footer-btn__inner {
    background: var(--orange, #e47232);
  }
  .--navy .price-case__footer-btn__inner {
    background: var(--primary-color);
  }
  .price-case__footer-btn__inner {
    border-radius: 50px;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--white);
    text-align: center;
    position: relative;
    font-weight: 700;
    line-height: 180%;
    transition: all 0.2s;
  }
  .icon-arrow {
    position: absolute;
    width: 35px;
    height: 35px;
    background: url(../../images/renewal/common/btn-arrow.png) center / cover no-repeat;
    right: 0;
    transform: translateX(-25px);
    transition: all 0.2s;
  }
  .price-case__footer-btn__inner:hover {
    text-decoration: none;
    background: var(--blue200);
    border: solid 1px var(--blue200);
    color: var(--primary-color);
  }
  .price-case__footer-btn:hover {
    transform: scale(1.02);
  }
  .price-case__footer-btn__inner:hover .icon-arrow {
    width: 40px;
    height: 40px;
    background-image: url(../../images/renewal/common/btn-arrow-on.png);
  }
}
@media screen and (max-width: 480px) {
  :root {
    --mainGridColsValue: 1fr calc(100% - 32px) 1fr;
  }
  .main-visual {
    background-color: var(--bg-color);
    padding: clamp(23px, calc(23px + (30 - 23) * ((100vw - 320px) / (480 - 320))), 30px) 0;
    text-align: center;
    grid-column: 1/-1;
  }
  .main-visual h1 {
    color: var(--white);
    font-size: clamp(22px, calc(22px + (28 - 22) * ((100vw - 320px) / (480 - 320))), 28px);
    font-weight: 500;
    letter-spacing: 1.2px;
    line-height: 150%;
  }
  .main-visual + .section {
    margin-top: clamp(36px, calc(36px + (44 - 36) * ((100vw - 320px) / (480 - 320))), 44px);
  }
  .price-section + .price-section,
  .price-section + .subsection,
  .subsection + .subsection {
    margin-top: clamp(60px, calc(60px + (68 - 60) * ((100vw - 320px) / (480 - 320))), 68px);
  }
  .subsection + .subsection {
    margin-top: clamp(63px, calc(63px + (68 - 63) * ((100vw - 320px) / (480 - 320))), 68px);
  }
  .case-section {
    margin-top: 120px;
  }
  .section-heading {
    margin-bottom: 32px;
  }
  .section-heading h2 {
    font-size: clamp(22px, calc(22px + (26 - 22) * ((100vw - 320px) / (480 - 320))), 26px);
    line-height: normal;
    font-weight: 400;
    text-align: center;
  }
  .section-heading span {
    display: block;
    color: var(--blue100);
    font-family: Avenir;
    font-size: clamp(14px, calc(14px + (18 - 14) * ((100vw - 320px) / (480 - 320))), 18px);
    line-height: normal;
    margin-top: clamp(16px, calc(16px + (19 - 16) * ((100vw - 320px) / (480 - 320))), 19px);
  }
  .price-plan__desc {
    font-size: clamp(15px, calc(15px + (18 - 15) * ((100vw - 320px) / (480 - 320))), 18px);
    line-height: 180%;
  }
  .price-plan__desc__p {
    letter-spacing: 0;
  }
  /* 基本メニュー */
  .sec-fig {
    background-color: var(--blue200);
    padding: 0 clamp(10px, calc(10px + (14 - 10) * ((100vw - 320px) / (480 - 320))), 14px);
    padding-top: clamp(21px, calc(21px + (25 - 21) * ((100vw - 320px) / (480 - 320))), 25px);
    padding-bottom: clamp(15px, calc(15px + (18 - 15) * ((100vw - 320px) / (480 - 320))), 18px);
    margin: 0 auto;
    margin-top: clamp(26px, calc(26px + (32 - 26) * ((100vw - 320px) / (480 - 320))), 32px);
  }
  .sec-fig-container {
    display: flex;
    flex-direction: column;
    margin: 0 auto;
  }
  .sec-fig__heading {
    margin-bottom: clamp(22px, calc(22px + (26 - 22) * ((100vw - 320px) / (480 - 320))), 26px);
    text-align: center;
  }
  .sec-fig__heading h3 {
    font-size: clamp(18px, calc(18px + (22 - 18) * ((100vw - 320px) / (480 - 320))), 22px);
    font-weight: 400;
    line-height: normal;
  }

  .sec-fig__container {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(3, 80px);
    gap: clamp(8px, calc(8px + (10 - 8) * ((100vw - 320px) / (480 - 320))), 10px);
    padding: 0;
  }

  .sec-fig-box {
    background-color: var(--white);
    display: flex;
    justify-content: center;
    align-items: center;
    min-width: 0;
    min-height: 0;
  }

  .sec-fig-box p {
    font-size: 16px;
    font-weight: 500;
    line-height: normal;
    text-align: center;
    letter-spacing: 0;
  }
  /* 括弧内 */
  .sec-fig-box p span {
    font-size: 12px;
  }
  /*  */
  .box1 {
    grid-row: 1;
    grid-column: 1;
  }
  .box2 {
    grid-row: 1;
    grid-column: 2;
  }
  .box3 {
    grid-row: 2;
    grid-column: 1;
  }
  .box4 {
    grid-row: 2;
    grid-column: 2;
  }
  .box5 {
    grid-row: 3;
    grid-column: 1;
  }
  .box6 {
    grid-row: 3;
    grid-column: 2;
  }
  /* 料金表 */
  .section .subsection:nth-child(2) .section-heading {
    margin-bottom: 22px;
  }

  .price-plan__table-ctn {
    overflow-x: auto;
  }
  .price-plan__table {
    min-width: 550px;
  }
  /* table border */
  .price-plan__table th,
  .price-plan__table td {
    border: 1px solid;
    border-color: var(--gray200);
    border-collapse: collapse;
  }
  /* table color */
  .price-plan__table thead tr {
    background: var(--bg-color);
  }
  .price-plan__table-head1 {
    color: var(--white);
  }
  .price-plan__table-head2 {
    background-color: var(--blue200);
  }
  /* table size */
  .price-plan__table thead tr {
    width: 100%;
  }
  .price-plan__table-head1:nth-child(1) {
    width: 166px;
  }
  .price-plan__table-head1:nth-child(2) {
    width: 226px;
  }
  .price-plan__table-head1:nth-child(3) {
    width: 158px;
  }
  .price-plan__table-head1 {
    padding: 11.5px 0;
  }
  .price-plan__table-head2 {
    padding: 8px 13px;
  }
  .price-plan__table td {
    padding: 13px 0;
    min-height: 51px;
  }
  /*  */
  .price-plan__table thead th {
    text-align: center;
  }
  .price-plan__table-head1 {
    text-align: center;
  }
  .price-plan__table td {
    text-align: center;
  }
  .price-plan__table th {
    font-weight: 500;
    font-size: 14px;
    line-height: 159%;
  }
  /* 括弧中 */
  .price-plan__table-head2 span {
    font-size: 12px;
  }
  /* caption */
  .price-plan__table__caption {
    text-align: left;
    font-size: 12px;
    font-weight: 400;
    line-height: 180%;
    margin-top: 19px;
  }
  .price-plan__table__caption li {
    position: relative;
    padding-left: 12px;
    letter-spacing: 0;
  }
  .price-plan__table__caption li:before {
    position: absolute;
    content: '・';
    left: 0;
  }

  /* 見積もり例 */
  .--case + .--case {
    margin-top: 64px;
  }
  /* table border */
  .price-case__table th,
  .price-case__table tr,
  .price-case__table td {
    border: 1px solid;
    border-color: var(--gray200);
  }
  /* table color */
  .price-case__table-head1 {
    background: var(--blue200);
  }
  .price-case__table-head2 {
    background-color: var(--gray100);
  }
  /* table size */
  .price-case__table-head1 {
    padding: 0.9em 3.2em;
  }
  .price-case__table-head2 {
    width: clamp(84px, calc(84px + (116 - 84) * ((100vw - 320px) / (480 - 320))), 116px);
    padding: clamp(11px, calc(11px + (14 - 11) * ((100vw - 320px) / (480 - 320))), 14px);
  }
  .price-case__table td {
    padding: clamp(8px, calc(8px + (14 - 8) * ((100vw - 320px) / (480 - 320))), 14px) 16px;
  }
  .price-case__table td:has(ul) {
    padding-left: 11px;
    padding-right: 9px;
  }
  /*  */
  .price-case__table th,
  .price-case__table td {
    font-size: clamp(14px, calc(14px + (15 - 14) * ((100vw - 320px) / (480 - 320))), 15px);
  }
  .price-case__table th td {
    line-height: 180%;
  }
  .price-case__table thead th {
    text-align: center;
  }
  .price-case__table-head2 {
    font-weight: 500;
  }
  .price-case__table td li {
    position: relative;
    padding-left: 16px;
    letter-spacing: 0;
  }
  .price-case__table tr:nth-child(3) td,
  .price-case__table tr:nth-child(7) td,
  .price-case__table tr:nth-child(8) td,
  .price-case__table tr:nth-child(9) td,
  .price-case__table tr:nth-child(10) td,
  .price-case__table tr:nth-child(11) td {
    vertical-align: top;
  }
  .price-case__table td li:before {
    position: absolute;
    content: '・';
    left: 0;
  }
  /* caption */
  .price-case__table caption {
    font-size: 16px;
    font-weight: 700;
    text-align: left;
    margin-bottom: 8px;
    line-height: 180%;
  }
  /* total */
  .price-case__total {
    margin: 1em auto 2.23em;
    background: var(--blue200);
    display: flex;
    justify-content: center;
    align-items: end;
    padding: clamp(10px, calc(10px + (14 - 10) * ((100vw - 320px) / (480 - 320))), 14px) 0;
    gap: clamp(16px, calc(16px + (20 - 16) * ((100vw - 320px) / (480 - 320))), 20px);
  }
  .price-case__total p {
    font-size: clamp(15px, calc(15px + (18 - 15) * ((100vw - 320px) / (480 - 320))), 18px);
    display: flex;
    align-items: end;
  }
  .price-case__total .--total-num {
    font-size: clamp(22px, calc(22px + (25 - 22) * ((100vw - 320px) / (480 - 320))), 25px);
    font-weight: 400;
    line-height: normal;
  }
  /* button */
  .price-case__footer-btn-ctn {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: clamp(22px, calc(22px + (28 - 22) * ((100vw - 320px) / (480 - 320))), 28px);
  }
  .price-case__footer-btn {
    min-width: 300px;
    width: calc(100% - 3.5%);
    height: clamp(78px, calc(78px + (100 - 78) * ((100vw - 320px) / (480 - 320))), 100px);
    transition: all 0.2s;
  }
  .--orange .price-case__footer-btn__inner {
    background: var(--orange, #e47232);
  }
  .--navy .price-case__footer-btn__inner {
    background: var(--text_navy, #16293d);
  }
  .price-case__footer-btn__inner {
    border-radius: 50px;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--white);
    text-align: center;
    position: relative;
    font-weight: 700;
    line-height: 180%;
    font-size: clamp(14px, calc(14px + (17 - 14) * ((100vw - 320px) / (480 - 320))), 17px);
    transition: all 0.2s;
  }
  .icon-arrow {
    position: absolute;
    width: 30px;
    height: 30px;
    background: url(../../images/renewal/common/btn-arrow.png) center / cover no-repeat;
    right: 0;
    transform: translateX(-70%);
    transition: all 0.2s;
  }
  .price-case__footer-btn__inner:hover {
    text-decoration: none;
    background: var(--blue200);
    border: solid 1px var(--blue200);
    color: var(--primary-color);
  }
  .price-case__footer-btn:hover {
    transform: scale(1.02);
  }
  .price-case__footer-btn__inner:hover .icon-arrow {
    width: 38px;
    height: 38px;
    background-image: url(../../images/renewal/common/btn-arrow-on.png);
  }
}
