@charset "UTF-8";
@import url("global.css");
.introduction {
  margin-bottom: 80px; }
  .introduction .catch {
    font-size: clamp(20px, 4.2vw, 30px);
    font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
    font-weight: 600;
    color: #132240;
    line-height: 1.6;
    margin-bottom: 30px; }

ul.list {
  display: flex;
  flex-wrap: wrap;
  margin-inline: max(-30px,-2vw); }
  ul.list li {
    width: 33.3333333333%;
    box-sizing: border-box;
    padding-inline: min(30px,2vw);
    container-type: inline-size; }
    ul.list li a {
      display: flex;
      flex-direction: column;
      height: 100%; }
      ul.list li a .image {
        position: relative;
        padding-top: 67%;
        height: 0;
        margin-bottom: 8px; }
        ul.list li a .image img {
          position: absolute;
          top: 0;
          left: 0; }
      ul.list li a .number {
        color: #B4975A;
        font-family: "Roboto", "Noto Sans JP", sans-serif;
        font-weight: 700;
        margin-bottom: 8px; }
      ul.list li a .title {
        font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
        font-size: 22px;
        line-height: 1.5;
        margin-bottom: 5px; }
      ul.list li a .data {
        margin-top: auto;
        text-align: right;
        line-height: 1.3; }
        ul.list li a .data .slash::after {
          content: "／";
          padding-inline: 5px; }
        ul.list li a .data strong {
          font-size: 120%;
          font-weight: 600;
          padding-inline: 10px 3px;
          vertical-align: -1px;
          letter-spacing: .03em;
          display: inline-block; }
@container (width <= 300px) {
  ul.list li a .title {
    font-size: 20px; }
  ul.list li a .data {
    font-size: 14px; } }
@container (width <= 210px) {
  ul.list li a .number {
    margin-bottom: 0; }
  ul.list li a .title {
    font-size: 16px; }
  ul.list li a .data {
    letter-spacing: 0;
    font-size: 13px; }
    ul.list li a .data .slash {
      display: block; }
      ul.list li a .data .slash::after {
        display: none; }
    ul.list li a .data strong {
      padding-inline: 3px 2px;
      letter-spacing: 0; } }
.section {
  margin-block: 130px; }
  .section .inner {
    display: flex;
    gap: min(55px,3.5vw); }
  .section .image {
    box-sizing: border-box;
    aspect-ratio: 4 / 3; }
  .section .main {
    padding-top: 5px;
    width: 50%;
    flex-shrink: 0; }
    .section .main .number {
      color: #B4975A;
      font-family: "Roboto", "Noto Sans JP", sans-serif;
      font-weight: 700;
      margin-bottom: 5px; }
    .section .main .title {
      font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
      font-size: min(26px,3vw);
      line-height: 1.5;
      margin-bottom: 20px; }
    .section .main .price {
      margin-bottom: 5px; }
      .section .main .price strong {
        font-weight: 600;
        font-size: 160%;
        letter-spacing: .03em;
        vertical-align: -1px;
        padding-inline: 10px 3px; }
    .section .main .data {
      margin-bottom: 30px; }
      .section .main .data .slash {
        display: inline-block; }
        .section .main .data .slash::before {
          content: "／";
          padding-inline: 10px; }
  .section .pay {
    margin-top: 45px;
    background-color: #F1F1F1;
    padding: 40px 50px 50px; }
    .section .pay .h {
      font-size: 20px;
      font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
      margin-bottom: 30px; }
    .section .pay .detail {
      display: flex; }
      .section .pay .detail .item {
        display: flex;
        flex-grow: 1;
        align-items: center; }
        .section .pay .detail .item::before {
          content: "＋";
          font-size: 30px;
          margin: 0 15px; }
        .section .pay .detail .item:first-of-type::before {
          display: none; }
        .section .pay .detail .item:last-of-type::before {
          content: "＝"; }
      .section .pay .detail .box {
        box-sizing: border-box;
        position: relative;
        background-color: #fff;
        padding: 24px 15px 26px 25px;
        border-radius: 3px;
        flex-grow: 1; }
        .section .pay .detail .box .cost {
          font-size: 14px;
          line-height: 1; }
          .section .pay .detail .box .cost dt {
            margin-bottom: 10px; }
          .section .pay .detail .box .cost strong {
            font-size: 160%;
            font-weight: 700;
            letter-spacing: 0;
            vertical-align: -1px;
            padding-right: 3px; }
      .section .pay .detail .sub .notes {
        display: block;
        font-size: 12px;
        padding-left: 1em;
        text-indent: -1em;
        line-height: 1.5;
        margin-top: 5px; }
    .section .pay .monthly {
      margin: 20px 0 0 auto;
      width: 640px;
      position: relative;
      border-radius: 3px;
      padding: 20px 30px 20px 60px;
      background-color: #fff; }
      .section .pay .monthly::before, .section .pay .monthly::after {
        content: "";
        width: 21px;
        height: 26px;
        background-color: #B4975A;
        position: absolute;
        top: 50%;
        margin-top: -13px;
        clip-path: polygon(0 0, 100% 50%, 0 100%);
        left: -20px; }
      .section .pay .monthly::after {
        margin-left: -20px;
        opacity: .7; }
      .section .pay .monthly dl {
        display: flex;
        align-items: center; }
        .section .pay .monthly dl dt {
          font-size: 14px;
          font-weight: 500;
          border-right: #B4975A 1px solid;
          padding-right: 40px;
          margin-right: 40px; }
          .section .pay .monthly dl dt span {
            display: block;
            font-size: 12px;
            font-weight: 400; }
        .section .pay .monthly dl dd strong {
          font-size: 160%;
          font-weight: 700;
          vertical-align: -1px;
          padding-inline: 5px; }
    .section .pay ul.notice {
      margin: 25px 0 0 40px;
      letter-spacing: -.4em;
      line-height: 1.5; }
      .section .pay ul.notice li {
        display: inline-block;
        margin-right: 15px;
        font-size: 12px;
        font-weight: 400;
        padding-left: 15px;
        text-indent: -15px;
        letter-spacing: .05em; }
        .section .pay ul.notice li::before {
          content: "";
          width: 8px;
          height: 8px;
          background-color: #dcdcdc;
          display: inline-block;
          vertical-align: 1px;
          margin-right: 7px;
          border-radius: 50%; }
      .section .pay ul.notice a {
        text-decoration: underline;
        font-weight: 500;
        color: #B4975A;
        padding: 0 3px; }

/* ------------------------------------------------------------------------------------------------------------------------

 Responsive-Breakpoint-1 ( 1300px )
 
------------------------------------------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------------------------------------------

 Responsive-Breakpoint-2 ( 959px )
 
------------------------------------------------------------------------------------------------------------------------ */
@media only screen and (max-width: 959px) {
  .introduction {
    margin-bottom: 60px; }

  .section {
    margin-block: 100px; }
    .section .inner {
      display: block; }
    .section .image {
      aspect-ratio: 3 / 2; }
    .section .main {
      padding-top: 0;
      width: auto; }
      .section .main .title {
        font-size: min(24px,5vw); }
      .section .main .price {
        text-align: right; }
    .section .pay {
      margin-top: 30px; }
      .section .pay .h {
        text-align: center; }
      .section .pay .detail {
        display: block; }
        .section .pay .detail .item {
          display: block; }
          .section .pay .detail .item::before {
            display: block;
            margin: 0 auto;
            text-align: center;
            line-height: 1.5; }
          .section .pay .detail .item:last-of-type::before {
            rotate: 90deg;
            padding-bottom: 5px; }
        .section .pay .detail .box {
          padding: 20px 40px; }
          .section .pay .detail .box .cost {
            display: flex;
            align-items: center;
            justify-content: center; }
            .section .pay .detail .box .cost dt {
              margin: 0 20px 0 0; }
        .section .pay .detail .sub .notes {
          text-align: center; }
          .section .pay .detail .sub .notes br {
            display: none; }
      .section .pay .monthly {
        width: auto;
        margin: 20px 0 0 40px;
        padding: 20px 30px 20px 40px; }
        .section .pay .monthly dl {
          display: block; }
          .section .pay .monthly dl dt {
            padding-right: 0;
            margin-right: 0;
            border: none; }
      .section .pay ul.notice {
        margin: 25px 0 0 30px; }
        .section .pay ul.notice li {
          margin-top: 3px; } }
/* ------------------------------------------------------------------------------------------------------------------------

 Responsive-Breakpoint-3 ( 644px )
 
------------------------------------------------------------------------------------------------------------------------ */
@media only screen and (max-width: 644px) {
  .introduction {
    margin-bottom: 10px; }
    .introduction .catch {
      margin-bottom: 20px; }

  ul.list li {
    width: 50%;
    margin-top: 35px; }

  .section {
    margin-block: 70px; }
    .section .image {
      margin-bottom: 10px; }
    .section .main .number {
      margin-bottom: 0; }
    .section .main .title {
      margin-bottom: 10px; }
    .section .main .price {
      margin-bottom: 0; }
    .section .main .data {
      margin-bottom: 20px; }
      .section .main .data .slash {
        display: block; }
        .section .main .data .slash::before {
          display: none; }
    .section .main .comment {
      letter-spacing: 0;
      font-size: 13px; }
    .section .pay {
      margin-top: 30px;
      padding: 30px 20px 40px; }
      .section .pay .h {
        font-size: 18px;
        margin-bottom: 20px; }
      .section .pay .detail {
        display: block; }
        .section .pay .detail .item {
          display: block;
          flex-grow: 1;
          align-items: center; }
          .section .pay .detail .item::before {
            font-size: 26px; }
        .section .pay .detail .box {
          padding: 20px; }
          .section .pay .detail .box .cost dt {
            margin: 0 10px 0 0; }
        .section .pay .detail .sub .notes {
          text-align: left; }
      .section .pay .monthly {
        margin: 20px 0 0 0;
        padding: 15px 20px 15px 30px; }
        .section .pay .monthly::before, .section .pay .monthly::after {
          width: 18px;
          height: 22px;
          top: 18px;
          margin: 0;
          left: -8px; }
        .section .pay .monthly::after {
          margin-left: -15px; }
        .section .pay .monthly dl {
          display: block; }
          .section .pay .monthly dl dt span {
            font-size: 11px;
            letter-spacing: 0; }
      .section .pay ul.notice {
        margin: 15px 0 0 0; } }
