.elementor-1613 .elementor-element.elementor-element-2ebba30{--display:flex;--margin-top:-15px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1613 .elementor-element.elementor-element-12e1940{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1613 .elementor-element.elementor-element-5faf633{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1613 .elementor-element.elementor-element-98f10f1{--display:flex;--padding-top:1px;--padding-bottom:1px;--padding-left:1px;--padding-right:1px;}.elementor-1613 .elementor-element.elementor-element-c6398e3{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1613 .elementor-element.elementor-element-adc2497{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1613 .elementor-element.elementor-element-6e07c51{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1613 .elementor-element.elementor-element-3c68bc0{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1613 .elementor-element.elementor-element-18e93eb{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1613 .elementor-element.elementor-element-eec5a69{margin:22px 22px calc(var(--kit-widget-spacing, 0px) + 22px) 22px;}.elementor-1613 .elementor-element.elementor-element-cf825ce{--display:flex;}@media(max-width:1024px){.elementor-1613 .elementor-element.elementor-element-eec5a69{margin:20px 20px calc(var(--kit-widget-spacing, 0px) + 20px) 20px;padding:0px 0px 0px 0px;}}@media(max-width:767px){.elementor-1613 .elementor-element.elementor-element-18e93eb{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1613 .elementor-element.elementor-element-eec5a69{margin:6px 6px calc(var(--kit-widget-spacing, 0px) + 6px) 6px;}}/* Start custom CSS for html, class: .elementor-element-730512d *//* ==================================================
   WHAT WE CAN DO / SERVICE INDEX
================================================== */

.jpd-service-index {
  --si-navy: #093D52;
  --si-navy-dark: #062F40;
  --si-gold: #A67C37;
  --si-paper: #F8F6F1;
  --si-white: #FCFBF8;
  --si-muted: #718188;
  --si-line: rgba(9, 61, 82, 0.15);

  width: 100%;

  padding:
    clamp(90px, 9vw, 145px)
    clamp(24px, 5vw, 80px);

  overflow: hidden;

  background:
    linear-gradient(
      180deg,
      #F8F6F1 0%,
      #FCFBF8 100%
    );

  color: var(--si-navy);
}

.jpd-service-index,
.jpd-service-index * {
  box-sizing: border-box;
}

.jpd-service-index__inner {
  width: min(100%, 1660px);
  margin: 0 auto;
}


/* ==================================================
   HEADER
================================================== */

.jpd-service-index__header {
  margin-bottom:
    clamp(65px, 7vw, 105px);
}

.jpd-service-index__label {
  display: flex;
  align-items: center;

  gap: 17px;

  margin-bottom:
    clamp(42px, 5vw, 68px);

  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size: 10px;
  font-weight: 700;
  letter-spacing: .2em;

  color: var(--si-gold);
}

.jpd-service-index__label-line {
  display: block;

  width: 54px;
  height: 1px;

  flex: 0 0 54px;

  background: var(--si-gold);
}

.jpd-service-index__header-grid {
  display: grid;

  grid-template-columns:
    minmax(0, 1.25fr)
    minmax(340px, .65fr);

  gap:
    clamp(60px, 9vw, 150px);

  align-items: end;
}

.jpd-service-index__header h2 {
  margin: 0;

  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif;

  font-size:
    clamp(42px, 4.2vw, 68px);

  line-height: 1.52;

  font-weight: 500;
  letter-spacing: 0;

  color: var(--si-navy);
}

.jpd-service-index__header h2 > span {
  display: block;
}

.jpd-service-index__header-grid > p {
  margin: 0;

  max-width: 520px;

  font-size: 14px;
  line-height: 2;

  color: var(--si-muted);
}


/* ==================================================
   LIST
================================================== */

.jpd-service-index__list {
  position: relative;

  border-top:
    1px solid var(--si-navy);
}


/* ==================================================
   ROW
================================================== */

.jpd-service-row {
  position: relative;

  display: grid;

  grid-template-columns:
    70px
    minmax(220px, .9fr)
    minmax(250px, 1fr)
    minmax(300px, 1.15fr);

  gap:
    clamp(22px, 3vw, 55px);

  align-items: center;

  min-height: 190px;

  padding:
    34px
    24px;

  border-bottom:
    1px solid var(--si-line);

  transition:
    background-color .3s ease,
    padding-left .3s ease;
}


/* GOLD SIDE LINE */

.jpd-service-row::before {
  content: "";

  position: absolute;

  left: 0;
  top: 0;
  bottom: 0;

  width: 3px;

  background: var(--si-gold);

  transform: scaleY(0);
  transform-origin: center;

  transition:
    transform .3s ease;
}

.jpd-service-row:hover {
  padding-left: 34px;

  background:
    rgba(9, 61, 82, .035);
}

.jpd-service-row:hover::before {
  transform: scaleY(1);
}


/* BIG BACKGROUND NUMBER */

.jpd-service-row::after {
  position: absolute;

  z-index: 0;

  right: 22px;
  top: 50%;

  transform:
    translateY(-50%);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(80px, 7vw, 120px);

  line-height: 1;

  font-style: italic;

  color:
    rgba(9, 61, 82, .027);

  pointer-events: none;
}

.jpd-service-row:nth-child(1)::after {
  content: "01";
}

.jpd-service-row:nth-child(2)::after {
  content: "02";
}

.jpd-service-row:nth-child(3)::after {
  content: "03";
}

.jpd-service-row:nth-child(4)::after {
  content: "04";
}

.jpd-service-row:nth-child(5)::after {
  content: "05";
}

.jpd-service-row > * {
  position: relative;
  z-index: 2;
}


/* ==================================================
   NUMBER
================================================== */

.jpd-service-row__no span {
  display: grid;
  place-items: center;

  width: 42px;
  height: 42px;

  border:
    1px solid
    rgba(166, 124, 55, .45);

  border-radius: 50%;

  font-family:
    Georgia,
    serif;

  font-size: 11px;

  font-style: italic;

  color: var(--si-gold);
}


/* ==================================================
   NAME
================================================== */

.jpd-service-row__en {
  display: block;

  margin-bottom: 11px;

  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size: 9px;

  font-weight: 700;
  letter-spacing: .16em;

  color: var(--si-gold);
}

.jpd-service-row__name h3 {
  margin: 0;

  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif;

  font-size:
    clamp(23px, 2vw, 32px);

  line-height: 1.5;

  font-weight: 500;

  color: var(--si-navy);

  line-break: strict;
}


/* ==================================================
   SUMMARY
================================================== */

.jpd-service-row__summary {
  margin: 0;

  max-width: 400px;

  font-size: 13px;
  line-height: 1.9;

  color: var(--si-muted);

  line-break: strict;
}


/* ==================================================
   ITEMS
================================================== */

.jpd-service-row__items {
  display: flex;
  flex-wrap: wrap;

  gap: 7px;
}

.jpd-service-row__items span {
  display: inline-block;

  padding:
    6px
    9px;

  border:
    1px solid
    rgba(9, 61, 82, .11);

  background:
    rgba(255, 255, 255, .48);

  font-size: 10px;
  line-height: 1.4;

  color: #708188;

  white-space: nowrap;
}


/* ==================================================
   NOTE
================================================== */

.jpd-service-row__note {
  grid-column:
    4;

  margin:
    -18px
    0
    0;

  font-size: 9px;
  line-height: 1.6;

  color: #919C9F;
}


/* ==================================================
   FOOTER
================================================== */

.jpd-service-index__footer {
  display: grid;

  grid-template-columns:
    .65fr
    1.5fr
    auto;

  gap:
    clamp(35px, 6vw, 90px);

  align-items: center;

  margin-top:
    clamp(60px, 7vw, 95px);

  padding-top:
    clamp(42px, 5vw, 65px);

  border-top:
    1px solid var(--si-line);
}

.jpd-service-index__footer-label span {
  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size: 9px;
  font-weight: 700;

  letter-spacing: .18em;

  color: var(--si-gold);
}

.jpd-service-index__footer > p {
  margin: 0;

  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;

  font-size:
    clamp(22px, 2.3vw, 34px);

  line-height: 1.65;

  color: var(--si-navy);
}

.jpd-service-index__footer > p span,
.jpd-service-index__footer > p strong {
  display: block;
}

.jpd-service-index__footer > p strong {
  font-weight: 500;
}


/* CTA */

.jpd-service-index__cta {
  min-width: 190px;
  min-height: 74px;

  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 25px;

  padding:
    14px
    17px
    14px
    24px;

  background: var(--si-navy);

  color: #fff;

  text-decoration: none;

  font-size: 13px;
  font-weight: 700;

  transition:
    background .25s ease,
    transform .25s ease;
}

.jpd-service-index__cta:hover {
  background: var(--si-navy-dark);

  transform:
    translateY(-2px);
}

.jpd-service-index__cta i {
  width: 42px;
  height: 42px;

  flex: 0 0 42px;

  display: grid;
  place-items: center;

  border:
    1px solid
    rgba(255, 255, 255, .35);

  border-radius: 50%;

  font-size: 18px;
  font-style: normal;
}


/* ==================================================
   TABLET
================================================== */

@media (max-width: 1100px) {

  .jpd-service-row {
    grid-template-columns:
      55px
      minmax(190px, .8fr)
      minmax(220px, 1fr)
      minmax(240px, 1fr);

    gap: 25px;

    padding-left: 15px;
    padding-right: 15px;
  }

  .jpd-service-index__footer {
    grid-template-columns:
      1fr
      1.6fr;
  }

  .jpd-service-index__cta {
    grid-column: 2;

    width: 210px;
  }

}


/* ==================================================
   MOBILE
================================================== */

@media (max-width: 820px) {

  .jpd-service-index {
    padding:
      76px
      18px
      85px;
  }


  /* HEADER */

  .jpd-service-index__header {
    margin-bottom: 48px;
  }

  .jpd-service-index__label {
    gap: 11px;

    margin-bottom: 34px;

    font-size: 8px;

    letter-spacing: .14em;
  }

  .jpd-service-index__label-line {
    width: 32px;

    flex-basis: 32px;
  }

  .jpd-service-index__header-grid {
    display: block;
  }

  .jpd-service-index__header h2 {
    font-size:
      clamp(30px, 8.5vw, 38px);

    line-height: 1.55;

    letter-spacing: -.015em;
  }

  /*
   * PC用の2行固定を解除。
   * スマホ幅に合わせて自然に折り返す。
   */
  .jpd-service-index__header h2 > span {
    display: inline;
  }

  .jpd-service-index__header h2 > span + span::before {
    content: " ";
  }

  .jpd-service-index__header-grid > p {
    margin-top: 28px;

    font-size: 13px;
    line-height: 1.95;

    line-break: strict;
  }


  /* ROW */

  .jpd-service-row {
    display: grid;

    grid-template-columns:
      42px
      minmax(0, 1fr);

    gap:
      0
      13px;

    min-height: 0;

    padding:
      32px
      4px;

    align-items: start;
  }

  .jpd-service-row:hover {
    padding-left: 4px;
  }

  .jpd-service-row::after {
    top: 25px;
    right: 2px;

    transform: none;

    font-size: 70px;
  }


  /* NUMBER */

  .jpd-service-row__no {
    grid-column: 1;
    grid-row: 1 / 5;
  }

  .jpd-service-row__no span {
    width: 32px;
    height: 32px;

    font-size: 9px;
  }


  /* NAME */

  .jpd-service-row__name {
    grid-column: 2;
  }

  .jpd-service-row__en {
    padding-right: 55px;

    margin-bottom: 9px;

    font-size: 8px;

    letter-spacing: .11em;
  }

  .jpd-service-row__name h3 {
    padding-right: 28px;

    font-size:
      clamp(22px, 6.2vw, 27px);

    line-height: 1.5;

    /*
     * 「イベント」などの語が
     * 途中で不自然に見えにくいように
     */
    word-break: normal;
    line-break: strict;
  }


  /* SUMMARY */

  .jpd-service-row__summary {
    grid-column: 2;

    margin-top: 15px;

    max-width: none;

    padding-right: 4px;

    font-size: 12px;
    line-height: 1.9;

    word-break: normal;
    line-break: strict;
  }


  /* ITEMS */

  .jpd-service-row__items {
    grid-column: 2;

    margin-top: 18px;

    gap: 6px;
  }

  .jpd-service-row__items span {
    padding:
      5px
      7px;

    font-size: 9px;

    white-space: nowrap;
  }


  /* NOTE */

  .jpd-service-row__note {
    grid-column: 2;

    margin:
      13px
      0
      0;

    font-size: 9px;
  }


  /* FOOT */

  .jpd-service-index__footer {
    display: block;

    margin-top: 55px;
    padding-top: 38px;
  }

  .jpd-service-index__footer-label {
    margin-bottom: 20px;
  }

  .jpd-service-index__footer > p {
    font-size:
      clamp(24px, 6.8vw, 30px);

    line-height: 1.6;
  }

  .jpd-service-index__footer > p span,
  .jpd-service-index__footer > p strong {
    display: block;
  }

  .jpd-service-index__cta {
    width: 100%;

    min-height: 74px;

    margin-top: 30px;
  }

}


/* ==================================================
   SMALL MOBILE
================================================== */

@media (max-width: 390px) {

  .jpd-service-index {
    padding-left: 15px;
    padding-right: 15px;
  }

  .jpd-service-index__header h2 {
    font-size: 29px;
  }

  .jpd-service-row {
    grid-template-columns:
      36px
      minmax(0, 1fr);

    gap: 9px;
  }

  .jpd-service-row__name h3 {
    font-size: 22px;
  }

  .jpd-service-row__summary {
    font-size: 11px;
  }

}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-31ebbe1 *//* ==================================================
   PROJECT EXAMPLE
================================================== */

.jpd-project {
  --project-navy: #093D52;
  --project-dark: #062F40;
  --project-gold: #A67C37;
  --project-paper: #F7F4ED;
  --project-white: #FCFBF8;
  --project-muted: #718188;
  --project-line: rgba(9, 61, 82, 0.14);

  width: 100%;

  padding:
    clamp(90px, 9vw, 145px)
    clamp(24px, 5vw, 80px);

  overflow: hidden;

  background:
    linear-gradient(
      135deg,
      #FCFBF8 0%,
      #F5F1E8 100%
    );

  color: var(--project-navy);
}


.jpd-project,
.jpd-project * {
  box-sizing: border-box;
}


.jpd-project__inner {
  width: min(100%, 1660px);
  margin: 0 auto;
}


/* ==================================================
   HEADER
================================================== */

.jpd-project__header {
  margin-bottom:
    clamp(60px, 7vw, 100px);
}


.jpd-project__label {
  display: flex;
  align-items: center;

  gap: 17px;

  margin-bottom:
    clamp(38px, 5vw, 62px);

  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size: 10px;
  font-weight: 700;

  letter-spacing: .2em;

  color: var(--project-gold);
}


.jpd-project__label-line {
  width: 54px;
  height: 1px;

  flex: 0 0 54px;

  background: var(--project-gold);
}


.jpd-project__title {
  margin: 0;

  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif;

  font-size:
    clamp(44px, 4.5vw, 72px);

  line-height: 1.48;

  font-weight: 500;
  letter-spacing: 0;

  color: var(--project-navy);
}


.jpd-project__title span {
  display: block;
}


/* ==================================================
   MAIN
================================================== */

.jpd-project__main {
  display: grid;

  grid-template-columns:
    minmax(0, 1.2fr)
    minmax(390px, .8fr);

  gap:
    clamp(65px, 8vw, 135px);

  align-items: center;
}


/* ==================================================
   VISUAL
================================================== */

.jpd-project__visual {
  position: relative;

  min-width: 0;

  padding:
    40px
    25px
    55px
    0;
}


/* browser */

.jpd-project-browser {
  position: relative;

  z-index: 3;

  width: 100%;

  padding: 9px;

  background: #fff;

  box-shadow:
    0 30px 80px
    rgba(9, 61, 82, .16);
}


.jpd-project-browser__top {
  height: 40px;

  display: grid;

  grid-template-columns:
    80px 1fr 80px;

  align-items: center;

  padding:
    0 12px;

  background: #EFEEE9;
}


.jpd-project-browser__dots {
  display: flex;
  gap: 6px;
}


.jpd-project-browser__dots i {
  width: 6px;
  height: 6px;

  display: block;

  border-radius: 50%;

  background:
    rgba(9, 61, 82, .27);
}


.jpd-project-browser__top > span {
  justify-self: center;

  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size: 8px;

  font-weight: 700;
  letter-spacing: .16em;

  color: #829096;
}


.jpd-project-browser__screen {
  position: relative;

  width: 100%;

  aspect-ratio: 16 / 10;

  overflow: hidden;

  background: #ddd;
}


.jpd-project-browser__screen img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: top;
}


/* ==================================================
   VISUAL DECORATION
================================================== */

.jpd-project__number {
  position: absolute;

  z-index: 1;

  right: -10px;
  top: -45px;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(120px, 11vw, 190px);

  line-height: 1;

  font-style: italic;

  color:
    rgba(9, 61, 82, .045);

  pointer-events: none;
}


/* gold background panel */

.jpd-project__visual::before {
  content: "";

  position: absolute;

  z-index: 0;

  left: -45px;
  bottom: 0;

  width: 55%;
  height: 52%;

  background:
    rgba(166, 124, 55, .085);
}


/* navy small panel */

.jpd-project__visual::after {
  content: "";

  position: absolute;

  z-index: 1;

  right: 0;
  top: 0;

  width: 22%;
  height: 32%;

  background:
    var(--project-navy);
}


/* stamp */

.jpd-project__stamp {
  position: absolute;

  z-index: 5;

  left: -22px;
  bottom: 13px;

  width: 96px;
  height: 96px;

  display: grid;
  place-items: center;

  border:
    1px solid
    rgba(166, 124, 55, .65);

  border-radius: 50%;

  background:
    var(--project-paper);

  font-family:
    Georgia,
    serif;

  font-size: 8px;
  line-height: 1.55;

  font-style: italic;

  letter-spacing: .14em;

  text-align: center;

  color: var(--project-gold);

  transform:
    rotate(-9deg);

  box-shadow:
    0 12px 28px
    rgba(9, 61, 82, .08);
}


/* ==================================================
   CONTENT
================================================== */

.jpd-project__content {
  max-width: 610px;
}


.jpd-project__type {
  display: block;

  margin-bottom: 10px;

  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size: 9px;

  font-weight: 700;

  letter-spacing: .18em;

  color: var(--project-gold);
}


.jpd-project__name {
  margin:
    0 0 32px;

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size: 14px;

  letter-spacing: .13em;

  color: #86949A;
}


.jpd-project__content h3 {
  margin:
    0 0 30px;

  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif;

  font-size:
    clamp(36px, 3.4vw, 54px);

  line-height: 1.6;

  font-weight: 500;

  color: var(--project-navy);
}


.jpd-project__copy {
  margin: 0;

  font-size: 14px;
  line-height: 2;

  color: var(--project-muted);

  line-break: strict;
}


.jpd-project__copy +
.jpd-project__copy {
  margin-top: 17px;
}


/* ==================================================
   WHAT WE CREATED
================================================== */

.jpd-project-created {
  margin-top: 36px;

  padding-top: 23px;

  border-top:
    1px solid var(--project-line);
}


.jpd-project-created__label {
  display: block;

  margin-bottom: 14px;

  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size: 8px;
  font-weight: 700;

  letter-spacing: .18em;

  color: var(--project-gold);
}


.jpd-project-created__items {
  display: flex;
  flex-wrap: wrap;

  gap: 7px;
}


.jpd-project-created__items span {
  padding:
    7px
    9px;

  background:
    rgba(255,255,255,.55);

  border:
    1px solid
    rgba(9,61,82,.10);

  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size: 9px;

  letter-spacing: .04em;

  color: #74858C;

  white-space: nowrap;
}


/* ==================================================
   MESSAGE
================================================== */

.jpd-project__message {
  margin-top: 37px;

  padding:
    22px
    0
    22px
    23px;

  border-left:
    3px solid
    var(--project-gold);
}


.jpd-project__message > span {
  display: block;

  margin-bottom: 8px;

  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size: 8px;
  font-weight: 700;

  letter-spacing: .17em;

  color: var(--project-gold);
}


.jpd-project__message p {
  margin: 0;

  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;

  font-size:
    clamp(21px, 2vw, 30px);

  line-height: 1.65;

  color: var(--project-navy);
}


.jpd-project__message strong {
  font-weight: 500;
}


/* ==================================================
   LINK
================================================== */

.jpd-project__link {
  width: 100%;

  min-height: 78px;

  display: flex;

  align-items: center;
  justify-content: space-between;

  gap: 30px;

  margin-top: 34px;

  padding:
    15px
    17px
    15px
    24px;

  background:
    var(--project-navy);

  color: #fff;

  text-decoration: none;

  font-size: 13px;
  font-weight: 700;

  transition:
    background .25s ease,
    transform .25s ease;
}


.jpd-project__link:hover {
  background:
    var(--project-dark);

  transform:
    translateY(-2px);
}


.jpd-project__link i {
  width: 44px;
  height: 44px;

  flex: 0 0 44px;

  display: grid;
  place-items: center;

  border:
    1px solid
    rgba(255,255,255,.4);

  border-radius: 50%;

  font-size: 19px;
  font-style: normal;
}


/* ==================================================
   NOTE
================================================== */

.jpd-project__note {
  margin:
    16px 0 0;

  font-size: 9px;
  line-height: 1.7;

  color: #909A9E;
}


/* ==================================================
   TABLET
================================================== */

@media (max-width: 1100px) {

  .jpd-project__main {
    grid-template-columns:
      minmax(0, 1fr)
      minmax(350px, .8fr);

    gap: 55px;
  }


  .jpd-project__content h3 {
    font-size:
      clamp(34px, 3.4vw, 45px);
  }

}


/* ==================================================
   MOBILE
================================================== */

@media (max-width: 820px) {

  .jpd-project {
    padding:
      76px
      18px
      85px;
  }


  /* HEADER */

  .jpd-project__header {
    margin-bottom: 48px;
  }


  .jpd-project__label {
    gap: 11px;

    margin-bottom: 33px;

    font-size: 8px;

    letter-spacing: .14em;
  }


  .jpd-project__label-line {
    width: 32px;

    flex-basis: 32px;
  }


  .jpd-project__title {
    font-size:
      clamp(32px, 9vw, 40px);

    line-height: 1.5;

    letter-spacing: -.015em;
  }


  /*
   * この見出しは2行固定でOK。
   * 「日本向けPRを、」
   * 「実際の形に。」
   */
  .jpd-project__title span {
    display: block;
    white-space: nowrap;
  }


  /* MAIN */

  .jpd-project__main {
    display: block;
  }


  /* VISUAL */

  .jpd-project__visual {
    padding:
      20px
      8px
      42px
      0;

    margin-bottom: 54px;
  }


  .jpd-project-browser {
    padding: 5px;
  }


  .jpd-project-browser__top {
    height: 30px;

    grid-template-columns:
      45px 1fr 45px;

    padding:
      0 6px;
  }


  .jpd-project-browser__top > span {
    font-size: 6px;

    letter-spacing: .1em;
  }


  .jpd-project-browser__dots {
    gap: 4px;
  }


  .jpd-project-browser__dots i {
    width: 4px;
    height: 4px;
  }


  .jpd-project-browser__screen {
    aspect-ratio: 4 / 3;
  }


  .jpd-project__visual::before {
    left: -18px;

    width: 60%;
  }


  .jpd-project__visual::after {
    width: 20%;
    height: 28%;
  }


  .jpd-project__number {
    top: -23px;
    right: 0;

    font-size: 88px;
  }


  .jpd-project__stamp {
    width: 70px;
    height: 70px;

    left: 8px;
    bottom: 6px;

    font-size: 6px;
  }


  /* CONTENT */

  .jpd-project__content {
    max-width: none;
  }


  .jpd-project__name {
    margin-bottom: 25px;
  }


  .jpd-project__content h3 {
    margin-bottom: 24px;

    font-size:
      clamp(29px, 8vw, 36px);

    line-height: 1.55;

    word-break: keep-all;
  }


  /*
   * PC側の強制brをスマホでは解除。
   * 端末幅に合わせて自然に改行。
   */
  .jpd-project__content h3 br {
    display: none;
  }


  .jpd-project__copy {
    font-size: 13px;
    line-height: 1.95;

    word-break: normal;
    line-break: strict;
    overflow-wrap: break-word;
  }


  /* CREATED */

  .jpd-project-created {
    margin-top: 30px;
  }


  .jpd-project-created__items {
    gap: 6px;
  }


  .jpd-project-created__items span {
    padding:
      6px
      7px;

    font-size: 8px;
  }


  /* MESSAGE */

  .jpd-project__message {
    margin-top: 31px;

    padding:
      18px
      0
      18px
      18px;
  }


  .jpd-project__message p {
    font-size:
      clamp(21px, 6vw, 26px);

    line-height: 1.65;

    word-break: keep-all;
  }


  .jpd-project__message p br {
    display: none;
  }


  /* LINK */

  .jpd-project__link {
    min-height: 74px;

    margin-top: 28px;
  }

}


/* ==================================================
   SMALL MOBILE
================================================== */

@media (max-width: 390px) {

  .jpd-project {
    padding-left: 15px;
    padding-right: 15px;
  }


  .jpd-project__title {
    font-size: 30px;
  }


  .jpd-project__content h3 {
    font-size: 28px;
  }


  .jpd-project__copy {
    font-size: 12px;
  }


  .jpd-project__message p {
    font-size: 21px;
  }

}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-9fe71e2 *//* ==================================================
   STARTER PLAN / PRICING
================================================== */

.jpd-price {
  --price-navy: #093D52;
  --price-dark: #062F40;
  --price-gold: #A67C37;
  --price-paper: #F7F3EA;
  --price-white: #FCFBF8;
  --price-muted: #718188;
  --price-line: rgba(9,61,82,.14);

  width: 100%;

  padding:
    clamp(90px, 9vw, 145px)
    clamp(24px, 5vw, 80px);

  overflow: hidden;

  background:
    #F8F6F1;

  color:
    var(--price-navy);
}


.jpd-price,
.jpd-price * {
  box-sizing: border-box;
}


.jpd-price__inner {
  width: min(100%, 1580px);
  margin: 0 auto;
}


/* ==================================================
   HEADER
================================================== */

.jpd-price__header {
  margin-bottom:
    clamp(55px, 7vw, 90px);
}


.jpd-price__label {
  display: flex;
  align-items: center;

  gap: 17px;

  margin-bottom:
    clamp(36px, 5vw, 60px);

  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size: 10px;
  font-weight: 700;

  letter-spacing: .2em;

  color:
    var(--price-gold);
}


.jpd-price__label-line {
  width: 54px;
  height: 1px;

  flex: 0 0 54px;

  background:
    var(--price-gold);
}


.jpd-price__header-grid {
  display: grid;

  grid-template-columns:
    minmax(0,1.2fr)
    minmax(340px,.65fr);

  gap:
    clamp(60px,8vw,140px);

  align-items: end;
}


.jpd-price__header h2 {
  margin: 0;

  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif;

  font-size:
    clamp(42px,4.2vw,68px);

  line-height: 1.5;

  font-weight: 500;

  color:
    var(--price-navy);
}


.jpd-price__header h2 span {
  display: block;
}


.jpd-price__header-grid > p {
  margin: 0;

  max-width: 520px;

  font-size: 14px;
  line-height: 2;

  color:
    var(--price-muted);
}


/* ==================================================
   GRID
================================================== */

.jpd-price__grid {
  display: grid;

  grid-template-columns:
    minmax(0,1.25fr)
    minmax(390px,.75fr);

  align-items: stretch;

  box-shadow:
    0 28px 80px
    rgba(9,61,82,.08);
}


/* ==================================================
   STARTER
================================================== */

.jpd-price-starter {
  position: relative;

  padding:
    clamp(42px,5vw,72px);

  background:
    var(--price-white);

  border-top:
    4px solid
    var(--price-gold);
}


.jpd-price-starter__top {
  display: flex;

  justify-content: space-between;
  align-items: flex-start;

  gap: 50px;
}


.jpd-price-starter__en {
  display: block;

  margin-bottom: 17px;

  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size: 9px;
  font-weight: 700;

  letter-spacing: .18em;

  color:
    var(--price-gold);
}


.jpd-price-starter h3 {
  margin: 0;

  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;

  font-size:
    clamp(32px,3vw,46px);

  line-height: 1.55;

  font-weight: 500;
}


/* PRICE */

.jpd-price-starter__price {
  flex: 0 0 auto;

  text-align: right;
}


.jpd-price-starter__price > span {
  display: block;

  margin-bottom: 5px;

  font-family:
    Arial,
    sans-serif;

  font-size: 8px;
  font-weight: 700;

  letter-spacing: .18em;

  color:
    var(--price-gold);
}


.jpd-price-starter__price p {
  margin: 0;

  display: flex;
  align-items: baseline;

  white-space: nowrap;
}


.jpd-price-starter__price strong {
  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(48px,5vw,76px);

  line-height: 1;

  font-weight: 400;

  letter-spacing: -.03em;
}


.jpd-price-starter__price small {
  margin-left: 7px;

  font-size: 13px;
}


/* LEAD */

.jpd-price-starter__lead {
  max-width: 700px;

  margin:
    34px 0 0;

  font-size: 14px;
  line-height: 2;

  color:
    var(--price-muted);
}


/* ==================================================
   SUBTITLE
================================================== */

.jpd-price-subtitle {
  display: block;

  margin-bottom: 14px;

  font-family:
    Arial,
    Helvetica,
    sans-serif;

  font-size: 8px;
  font-weight: 700;

  letter-spacing: .18em;

  color:
    var(--price-gold);
}


/* ==================================================
   INCLUDED
================================================== */

.jpd-price-starter__included {
  margin-top: 38px;

  padding-top: 25px;

  border-top:
    1px solid
    var(--price-line);
}


.jpd-price-starter__items {
  display: flex;
  flex-wrap: wrap;

  gap: 8px;
}


.jpd-price-starter__items span {
  padding:
    7px 10px;

  border:
    1px solid
    rgba(9,61,82,.11);

  background:
    rgba(9,61,82,.025);

  font-size: 10px;
  line-height: 1.4;

  color:
    #6E8087;

  white-space: nowrap;
}


/* ==================================================
   RECOMMENDED
================================================== */

.jpd-price-starter__for {
  margin-top: 33px;
}


.jpd-price-starter__for ul {
  margin: 0;
  padding: 0;

  list-style: none;
}


.jpd-price-starter__for li {
  position: relative;

  margin-top: 8px;
  padding-left: 20px;

  font-size: 13px;
  line-height: 1.75;

  color:
    var(--price-navy);
}


.jpd-price-starter__for li::before {
  content: "—";

  position: absolute;

  left: 0;

  color:
    var(--price-gold);
}


/* NOTE */

.jpd-price-starter__note {
  margin:
    30px 0 0;

  font-size: 9px;
  line-height: 1.8;

  color: #8D999E;
}


/* ==================================================
   CTA
================================================== */

.jpd-price-starter__cta {
  min-height: 84px;

  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 25px;

  margin-top: 34px;

  padding:
    16px
    18px
    16px
    25px;

  color: #fff;

  background:
    var(--price-navy);

  text-decoration: none;

  transition:
    background .25s ease,
    transform .25s ease;
}


.jpd-price-starter__cta:hover {
  background:
    var(--price-dark);

  transform:
    translateY(-2px);
}


.jpd-price-starter__cta > span {
  display: flex;
  flex-direction: column;

  gap: 3px;
}


.jpd-price-starter__cta strong {
  font-size: 14px;
}


.jpd-price-starter__cta small {
  font-size: 9px;
  font-weight: 400;

  opacity: .68;
}


.jpd-price-starter__cta i {
  width: 46px;
  height: 46px;

  flex: 0 0 46px;

  display: grid;
  place-items: center;

  border:
    1px solid
    rgba(255,255,255,.38);

  border-radius: 50%;

  font-size: 19px;
  font-style: normal;
}


/* ==================================================
   CUSTOM
================================================== */

.jpd-price-custom {
  position: relative;

  padding:
    clamp(42px,4vw,62px);

  overflow: hidden;

  background:
    linear-gradient(
      145deg,
      #0A4257 0%,
      #062F40 100%
    );

  color: #fff;
}


/* decorative circle */

.jpd-price-custom::before {
  content: "";

  position: absolute;

  width: 330px;
  height: 330px;

  right: -210px;
  top: -160px;

  border:
    1px solid
    rgba(166,124,55,.35);

  border-radius: 50%;
}


.jpd-price-custom > * {
  position: relative;
  z-index: 2;
}


/* HEAD */

.jpd-price-custom__en {
  display: block;

  margin-bottom: 17px;

  font-family:
    Arial,
    sans-serif;

  font-size: 9px;
  font-weight: 700;

  letter-spacing: .18em;

  color: #CDA35A;
}


.jpd-price-custom h3 {
  margin: 0;

  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;

  font-size:
    clamp(27px,2.4vw,37px);

  line-height: 1.6;

  font-weight: 500;

  color: #fff;
}


.jpd-price-custom__head > p {
  margin:
    23px 0 0;

  font-size: 12px;
  line-height: 1.9;

  color:
    rgba(255,255,255,.58);
}


/* ==================================================
   CUSTOM LIST
================================================== */

.jpd-price-custom__list {
  margin-top: 37px;

  border-top:
    1px solid
    rgba(255,255,255,.15);
}


.jpd-price-custom__row {
  display: grid;

  grid-template-columns:
    32px
    minmax(0,1fr);

  gap: 14px;

  padding:
    22px 0;

  border-bottom:
    1px solid
    rgba(255,255,255,.12);
}


.jpd-price-custom__row > span {
  font-family:
    Georgia,
    serif;

  font-size: 10px;

  font-style: italic;

  color: #CDA35A;
}


.jpd-price-custom__row strong {
  display: block;

  margin-bottom: 6px;

  font-family:
    Arial,
    sans-serif;

  font-size: 9px;

  letter-spacing: .12em;

  color: rgba(255,255,255,.88);
}


.jpd-price-custom__row p {
  margin: 0;

  font-size: 11px;
  line-height: 1.75;

  color:
    rgba(255,255,255,.52);
}


/* EVENT slightly highlighted */

.jpd-price-custom__row--event strong {
  color: #D4AE67;
}


/* ==================================================
   CUSTOM BOTTOM
================================================== */

.jpd-price-custom__bottom {
  margin-top: 31px;

  padding:
    24px
    0 0;

  border-top:
    1px solid
    rgba(166,124,55,.5);
}


.jpd-price-custom__bottom > span {
  display: block;

  margin-bottom: 8px;

  font-family:
    Arial,
    sans-serif;

  font-size: 8px;
  font-weight: 700;

  letter-spacing: .18em;

  color: #CDA35A;
}


.jpd-price-custom__bottom p {
  margin: 0;

  display: flex;
  flex-direction: column;

  gap: 5px;
}


.jpd-price-custom__bottom strong {
  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    serif;

  font-size: 26px;

  font-weight: 500;
}


.jpd-price-custom__bottom small {
  font-size: 10px;

  color:
    rgba(255,255,255,.5);
}


/* ==================================================
   TABLET
================================================== */

@media (max-width: 1050px) {

  .jpd-price__grid {
    grid-template-columns:
      minmax(0,1fr)
      minmax(340px,.7fr);
  }


  .jpd-price-starter__top {
    display: block;
  }


  .jpd-price-starter__price {
    margin-top: 32px;

    text-align: left;
  }

}


/* ==================================================
   MOBILE
================================================== */

@media (max-width: 820px) {

  .jpd-price {
    padding:
      76px
      18px
      85px;
  }


  /* HEADER */

  .jpd-price__label {
    gap: 11px;

    margin-bottom: 33px;

    font-size: 8px;

    letter-spacing: .14em;
  }


  .jpd-price__label-line {
    width: 32px;

    flex-basis: 32px;
  }


  .jpd-price__header-grid {
    display: block;
  }


  .jpd-price__header h2 {
    font-size:
      clamp(30px,8.4vw,38px);

    line-height: 1.55;

    letter-spacing: -.015em;
  }


  /*
    PCの2行固定はスマホで解除。
  */
  .jpd-price__header h2 span {
    display: inline;
  }


  .jpd-price__header h2 span + span::before {
    content: " ";
  }


  .jpd-price__header-grid > p {
    margin-top: 28px;

    font-size: 13px;
    line-height: 1.95;

    word-break: normal;
    line-break: strict;
  }


  /* GRID */

  .jpd-price__grid {
    display: block;

    box-shadow:
      0 18px 50px
      rgba(9,61,82,.08);
  }


  /* STARTER */

  .jpd-price-starter {
    padding:
      38px
      20px
      42px;
  }


  .jpd-price-starter__top {
    display: block;
  }


  .jpd-price-starter h3 {
    font-size:
      clamp(28px,7.7vw,35px);

    line-height: 1.55;

    word-break: normal;
    line-break: strict;
  }


  .jpd-price-starter h3 br {
    display: none;
  }


  .jpd-price-starter__price {
    margin-top: 29px;

    text-align: left;
  }


  .jpd-price-starter__price strong {
    font-size:
      clamp(50px,15vw,66px);
  }


  .jpd-price-starter__lead {
    font-size: 13px;
    line-height: 1.95;

    word-break: normal;
    line-break: strict;
  }


  .jpd-price-starter__items {
    gap: 6px;
  }


  .jpd-price-starter__items span {
    padding:
      6px 7px;

    font-size: 9px;
  }


  .jpd-price-starter__for li {
    font-size: 12px;

    word-break: normal;
    line-break: strict;
  }


  .jpd-price-starter__cta {
    width: 100%;
  }


  /* CUSTOM */

  .jpd-price-custom {
    padding:
      42px
      20px;
  }


  .jpd-price-custom h3 {
    font-size:
      clamp(27px,7.4vw,33px);

    word-break: normal;
    line-break: strict;
  }


  .jpd-price-custom h3 br {
    display: none;
  }


  .jpd-price-custom__head > p,
  .jpd-price-custom__row p {
    word-break: normal;
    line-break: strict;
  }

}


/* ==================================================
   SMALL MOBILE
================================================== */

@media (max-width: 390px) {

  .jpd-price {
    padding-left: 15px;
    padding-right: 15px;
  }


  .jpd-price__header h2 {
    font-size: 29px;
  }


  .jpd-price-starter {
    padding-left: 17px;
    padding-right: 17px;
  }


  .jpd-price-custom {
    padding-left: 17px;
    padding-right: 17px;
  }

}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-eec5a69 *//* =========================================================
   JAPAN PR DESK
   CONTACT HEADING ONLY
========================================================= */

.jpd-contact-head{
  max-width:1180px;
  margin:0 auto 42px;

  color:#ffffff;
}


/* -----------------------------------------
   EYEBROW
----------------------------------------- */

.jpd-contact-head__eyebrow{
  display:flex;
  align-items:center;
  gap:14px;

  margin-bottom:24px;

  color:#d9c28e;

  font-size:10px;
  font-weight:700;
  letter-spacing:.18em;
}

.jpd-contact-head__eyebrow::before{
  content:"";

  flex:0 0 auto;

  width:42px;
  height:1px;

  background:#c49b45;
}


/* -----------------------------------------
   TITLE
----------------------------------------- */

.jpd-contact-head__title{
  margin:0 0 24px;

  color:#ffffff;

  font-family:
    "Yu Mincho",
    "YuMincho",
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Noto Serif JP",
    serif;

  font-size:clamp(36px,3.4vw,58px);
  font-weight:500;

  line-height:1.55;
  letter-spacing:-.04em;

  word-break:keep-all;
  line-break:strict;
}


/* -----------------------------------------
   LEAD
----------------------------------------- */

.jpd-contact-head__lead{
  max-width:780px;

  margin:0;

  color:rgba(255,255,255,.70);

  font-size:14px;
  font-weight:400;

  line-height:2;
  letter-spacing:.01em;
}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:767px){

  .jpd-contact-head{
    margin-bottom:30px;
  }


  .jpd-contact-head__eyebrow{
    gap:11px;

    margin-bottom:20px;

    font-size:9px;
  }


  .jpd-contact-head__eyebrow::before{
    width:30px;
  }


  .jpd-contact-head__title{
    margin-bottom:22px;

    font-size:clamp(28px,7.4vw,34px);

    line-height:1.65;
    letter-spacing:-.035em;
  }


  .jpd-contact-head__lead{
    font-size:13px;

    line-height:1.95;
  }

}
/* CONTACT見出し：白背景用の修正 */

.jpd-contact-head{
  color:#0a3036;
}

.jpd-contact-head__title{
  color:#0a3036 !important;
}

.jpd-contact-head__lead{
  color:#66797c !important;
}

.jpd-contact-head__eyebrow{
  color:#b68b32;
}
/* =========================================================
   CONTACT HEADING / MOBILE FIX
========================================================= */

@media(max-width:767px){

  .jpd-contact-head{
    width:100%;
    box-sizing:border-box;

    /* 上のFAQとの距離 */
    padding:
      42px
      20px
      0;

    margin:0 auto 34px;
  }


  .jpd-contact-head__eyebrow{
    gap:11px;

    margin-bottom:24px;

    font-size:9px;
    line-height:1.5;
  }


  .jpd-contact-head__eyebrow::before{
    width:30px;
  }


  .jpd-contact-head__title{
    margin:0 0 26px;

    /* ここを小さくして句点落ちを防ぐ */
    font-size:26px;

    line-height:1.68;
    letter-spacing:-.04em;

    word-break:keep-all;
    line-break:strict;
  }


  /* HTML内の2行をそれぞれ崩さない */
  .jpd-contact-head__title br{
    display:block;
  }


  .jpd-contact-head__lead{
    max-width:none;

    margin:0;

    font-size:13px;
    line-height:2;

    color:#66797c !important;
  }

}/* End custom CSS */
/* Start custom CSS for shortcode, class: .elementor-element-baf73af *//* =========================================================
   MOON LOOP STUDIO
   JAPAN PR DESK / CONTACT FORM 7
========================================================= */

.ml-cf7{
  --ml-green:#07353d;
  --ml-green-deep:#052c33;
  --ml-gold:#c49b45;
  --ml-gold-soft:#ddc68d;
  --ml-bg:#f3f0e8;
  --ml-white:#ffffff;
  --ml-text:#0a3036;
  --ml-muted:#6f8083;
  --ml-line:rgba(10,48,54,.16);
  --ml-error:#9d3e38;

  width:100%;
  color:var(--ml-text);

  font-family:
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    sans-serif;
}

.ml-cf7,
.ml-cf7 *,
.ml-cf7 *::before,
.ml-cf7 *::after{
  box-sizing:border-box;
}


/* =========================================================
   GRID
========================================================= */

.ml-cf7__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:30px 26px;
}

.ml-cf7__field{
  position:relative;
  min-width:0;
}

.ml-cf7__field--full{
  grid-column:1 / -1;
}


/* =========================================================
   LABEL
========================================================= */

.ml-cf7__label{
  display:block;

  margin-bottom:10px;

  color:var(--ml-text);

  font-size:12px;
  font-weight:700;
  line-height:1.6;
  letter-spacing:.04em;
}

.ml-cf7__help{
  margin:-2px 0 13px;

  color:#829093;

  font-size:10px;
  line-height:1.8;
  letter-spacing:.015em;
}


/* =========================================================
   INPUT / SELECT / TEXTAREA
========================================================= */

.ml-cf7 input[type="text"],
.ml-cf7 input[type="email"],
.ml-cf7 input[type="tel"],
.ml-cf7 input[type="url"],
.ml-cf7 select,
.ml-cf7 textarea{
  width:100%;

  border:0;
  border-bottom:1px solid var(--ml-line);
  border-radius:0;

  background:transparent;

  color:var(--ml-text);

  font:inherit;
  font-size:14px;
  line-height:1.8;

  outline:none;

  transition:
    border-color .25s ease,
    background .25s ease,
    box-shadow .25s ease;
}


/* text fields */

.ml-cf7 input[type="text"],
.ml-cf7 input[type="email"],
.ml-cf7 input[type="tel"],
.ml-cf7 input[type="url"],
.ml-cf7 select{
  min-height:54px;
  padding:8px 4px;
}


/* textarea */

.ml-cf7 textarea{
  min-height:180px;

  padding:
    14px
    4px
    18px;

  resize:vertical;
}


/* placeholder */

.ml-cf7 input::placeholder,
.ml-cf7 textarea::placeholder{
  color:#9ca7a9;
  opacity:1;
}


/* select */

.ml-cf7 select{
  appearance:none;
  -webkit-appearance:none;

  padding-right:34px;

  background-image:
    linear-gradient(45deg,transparent 50%,var(--ml-gold) 50%),
    linear-gradient(135deg,var(--ml-gold) 50%,transparent 50%);

  background-position:
    calc(100% - 14px) 50%,
    calc(100% - 9px) 50%;

  background-size:
    5px 5px,
    5px 5px;

  background-repeat:no-repeat;

  cursor:pointer;
}


/* focus */

.ml-cf7 input[type="text"]:focus,
.ml-cf7 input[type="email"]:focus,
.ml-cf7 input[type="tel"]:focus,
.ml-cf7 input[type="url"]:focus,
.ml-cf7 select:focus,
.ml-cf7 textarea:focus{
  border-color:var(--ml-gold);

  background:rgba(255,255,255,.24);

  box-shadow:
    0 1px 0 var(--ml-gold);
}


/* filled */

.ml-cf7 .is-filled input,
.ml-cf7 .is-filled select,
.ml-cf7 .is-filled textarea{
  border-color:rgba(10,48,54,.32);
}


/* =========================================================
   CHECKBOX / INQUIRY TYPE
========================================================= */

.ml-cf7 .wpcf7-checkbox{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;

  width:100%;
}

.ml-cf7 .wpcf7-list-item{
  margin:0;
}

.ml-cf7 .wpcf7-list-item label{
  position:relative;

  display:flex;
  align-items:center;

  min-height:62px;

  padding:
    15px
    18px
    15px
    46px;

  border:1px solid var(--ml-line);

  background:rgba(255,255,255,.20);

  cursor:pointer;

  transition:
    border-color .25s ease,
    background .25s ease,
    transform .25s ease,
    box-shadow .25s ease;
}

.ml-cf7 .wpcf7-list-item label:hover{
  border-color:rgba(196,155,69,.60);

  background:rgba(255,255,255,.42);
}

.ml-cf7 .wpcf7-list-item input[type="checkbox"]{
  position:absolute;
  opacity:0;
  pointer-events:none;
}


/* custom checkbox */

.ml-cf7 .wpcf7-list-item-label::before{
  content:"";

  position:absolute;

  left:17px;
  top:50%;

  width:17px;
  height:17px;

  border:1px solid rgba(10,48,54,.35);

  transform:translateY(-50%);

  transition:
    background .22s ease,
    border-color .22s ease;
}

.ml-cf7 .wpcf7-list-item-label::after{
  content:"";

  position:absolute;

  left:22px;
  top:50%;

  width:7px;
  height:4px;

  border-left:1.5px solid #fff;
  border-bottom:1.5px solid #fff;

  opacity:0;

  transform:
    translateY(-65%)
    rotate(-45deg);

  transition:opacity .2s ease;
}

.ml-cf7 .wpcf7-list-item-label{
  position:relative;

  display:block;

  font-size:12px;
  line-height:1.7;
}


/* checked */

.ml-cf7 .wpcf7-list-item.is-checked label{
  border-color:var(--ml-gold);

  background:rgba(196,155,69,.075);

  box-shadow:
    inset 2px 0 0 var(--ml-gold);
}

.ml-cf7
.wpcf7-list-item.is-checked
.wpcf7-list-item-label::before{
  border-color:var(--ml-gold);
  background:var(--ml-gold);
}

.ml-cf7
.wpcf7-list-item.is-checked
.wpcf7-list-item-label::after{
  opacity:1;
}


/* =========================================================
   PRIVACY
========================================================= */

.ml-cf7__privacy{
  padding:
    19px
    21px;

  border-top:1px solid var(--ml-line);
  border-bottom:1px solid var(--ml-line);

  background:rgba(255,255,255,.18);

  color:#66787b;

  font-size:11px;
  line-height:1.8;
}

.ml-cf7__privacy .wpcf7-list-item{
  margin:0;
}

.ml-cf7__privacy label{
  display:flex;
  align-items:flex-start;
  gap:10px;

  cursor:pointer;
}

.ml-cf7__privacy input[type="checkbox"]{
  flex:0 0 auto;

  width:16px;
  height:16px;

  margin-top:2px;

  accent-color:var(--ml-gold);
}

.ml-cf7__privacy a{
  color:var(--ml-green);
  text-decoration:underline;
  text-underline-offset:3px;
}


/* =========================================================
   ACTION / SUBMIT
========================================================= */

.ml-cf7__actions{
  position:relative;

  padding-top:12px;
}

.ml-cf7 .ml-cf7__submit{
  appearance:none;
  -webkit-appearance:none;

  width:100%;
  min-height:68px;

  padding:
    18px
    72px
    18px
    25px;

  border:1px solid var(--ml-green);
  border-radius:0;

  background:var(--ml-green);
  color:#fff;

  font:inherit;
  font-size:13px;
  font-weight:700;
  letter-spacing:.045em;

  text-align:left;

  cursor:pointer;

  transition:
    background .27s ease,
    border-color .27s ease,
    transform .27s ease,
    box-shadow .27s ease,
    opacity .27s ease;
}

.ml-cf7__actions::after{
  content:"→";

  position:absolute;

  right:25px;
  top:30px;

  display:flex;
  align-items:center;
  justify-content:center;

  width:36px;
  height:36px;

  border:1px solid rgba(255,255,255,.35);
  border-radius:50%;

  color:#fff;

  font-size:14px;

  pointer-events:none;

  transition:
    transform .27s ease,
    background .27s ease;
}

.ml-cf7 .ml-cf7__submit:hover{
  background:var(--ml-green-deep);

  box-shadow:
    0 18px 38px rgba(5,44,51,.13);

  transform:translateY(-2px);
}

.ml-cf7__actions:hover::after{
  transform:translateX(3px);

  background:rgba(255,255,255,.08);
}

.ml-cf7 .ml-cf7__submit:disabled{
  opacity:.55;
  cursor:not-allowed;
  transform:none;
}


/* =========================================================
   NOTE
========================================================= */

.ml-cf7__note{
  margin-top:15px;

  color:#7d8c8e;

  font-size:10px;
  line-height:1.9;
}

.ml-cf7__note b{
  color:var(--ml-text);
  font-weight:700;
}


/* =========================================================
   CF7 VALIDATION
========================================================= */

.ml-cf7 .wpcf7-not-valid{
  border-color:var(--ml-error) !important;
}

.ml-cf7 .wpcf7-not-valid-tip{
  display:block;

  margin-top:8px;

  color:var(--ml-error);

  font-size:10px;
  line-height:1.6;
}

.ml-cf7 .wpcf7-response-output{
  margin:
    26px
    0
    0 !important;

  padding:
    18px
    20px !important;

  border:1px solid var(--ml-line) !important;

  background:rgba(255,255,255,.30);

  color:var(--ml-text);

  font-size:11px;
  line-height:1.8;
}

.ml-cf7 form.sent .wpcf7-response-output{
  border-color:var(--ml-gold) !important;

  background:rgba(196,155,69,.08);
}

.ml-cf7 form.invalid .wpcf7-response-output,
.ml-cf7 form.failed .wpcf7-response-output{
  border-color:rgba(157,62,56,.40) !important;
}


/* ajax spinner */

.ml-cf7 .wpcf7-spinner{
  position:absolute;

  left:20px;
  bottom:-34px;

  margin:0;
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:900px){

  .ml-cf7__grid{
    grid-template-columns:1fr;
  }

  .ml-cf7__field--full{
    grid-column:auto;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:767px){

  .ml-cf7__grid{
    gap:25px;
  }

  .ml-cf7__label{
    font-size:11px;
  }

  .ml-cf7__help{
    font-size:9px;
  }

  .ml-cf7 input[type="text"],
  .ml-cf7 input[type="email"],
  .ml-cf7 input[type="tel"],
  .ml-cf7 input[type="url"],
  .ml-cf7 select,
  .ml-cf7 textarea{
    font-size:16px;
  }

  /* iPhone zoom prevention */

  .ml-cf7 .wpcf7-checkbox{
    grid-template-columns:1fr;
    gap:8px;
  }

  .ml-cf7 .wpcf7-list-item label{
    min-height:58px;

    padding:
      13px
      14px
      13px
      43px;
  }

  .ml-cf7 .wpcf7-list-item-label{
    font-size:11px;
  }

  .ml-cf7__privacy{
    padding:16px;
  }

  .ml-cf7 .ml-cf7__submit{
    min-height:64px;

    padding:
      17px
      64px
      17px
      19px;

    font-size:12px;
  }

  .ml-cf7__actions::after{
    right:18px;
    top:28px;

    width:32px;
    height:32px;
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media(prefers-reduced-motion:reduce){

  .ml-cf7 *,
  .ml-cf7 *::before,
  .ml-cf7 *::after{
    transition-duration:.001ms !important;
  }

}

/* =========================================================
   CF7 CHECKBOX FIX
   文字とチェックマークの重なり修正
========================================================= */

.ml-cf7 .wpcf7-checkbox .wpcf7-list-item label{
  position:relative !important;

  padding-left:52px !important;
}


/* 本物のcheckboxを完全に非表示 */

.ml-cf7 .wpcf7-checkbox .wpcf7-list-item input[type="checkbox"]{
  position:absolute !important;

  width:1px !important;
  height:1px !important;

  margin:0 !important;
  padding:0 !important;

  opacity:0 !important;

  pointer-events:none !important;
}


/* ここが重要
   spanを基準にしない */

.ml-cf7 .wpcf7-checkbox .wpcf7-list-item-label{
  position:static !important;

  display:block;

  padding:0 !important;
}


/* チェック枠 */

.ml-cf7 .wpcf7-checkbox .wpcf7-list-item-label::before{
  content:"" !important;

  position:absolute !important;

  left:18px !important;
  top:50% !important;

  width:18px !important;
  height:18px !important;

  border:1px solid rgba(10,48,54,.35) !important;

  background:transparent;

  transform:translateY(-50%) !important;

  transition:
    background .22s ease,
    border-color .22s ease;
}


/* チェック記号 */

.ml-cf7 .wpcf7-checkbox .wpcf7-list-item-label::after{
  content:"" !important;

  position:absolute !important;

  left:23px !important;
  top:50% !important;

  width:8px !important;
  height:5px !important;

  border-left:2px solid #fff !important;
  border-bottom:2px solid #fff !important;

  opacity:0;

  transform:
    translateY(-70%)
    rotate(-45deg) !important;

  transition:opacity .2s ease;
}


/* JSがなくてもcheckedを反映 */

.ml-cf7
.wpcf7-checkbox
.wpcf7-list-item
input[type="checkbox"]:checked
+ .wpcf7-list-item-label::before{
  background:#c49b45 !important;
  border-color:#c49b45 !important;
}

.ml-cf7
.wpcf7-checkbox
.wpcf7-list-item
input[type="checkbox"]:checked
+ .wpcf7-list-item-label::after{
  opacity:1 !important;
}


/* カード自体の選択状態 */

.ml-cf7
.wpcf7-checkbox
.wpcf7-list-item
label:has(input[type="checkbox"]:checked){
  border-color:#c49b45 !important;

  background:rgba(196,155,69,.075) !important;

  box-shadow:
    inset 3px 0 0 #c49b45;
}


/* JS側のis-checkedにも対応 */

.ml-cf7 .wpcf7-list-item.is-checked label{
  border-color:#c49b45 !important;

  background:rgba(196,155,69,.075) !important;

  box-shadow:
    inset 3px 0 0 #c49b45;
}

/* =========================================================
   PRIVACY / ACCEPTANCE FIX
========================================================= */

.ml-cf7 .ml-cf7__privacy{
  width:100%;

  display:flex;
  justify-content:center;
  align-items:center;

  padding:24px 16px;

  border-top:1px solid rgba(10,48,54,.16);
  border-bottom:1px solid rgba(10,48,54,.16);

  background:transparent;

  text-align:center;
}


/* CF7 wrapper */

.ml-cf7 .ml-cf7__privacy .wpcf7-form-control-wrap,
.ml-cf7 .ml-cf7__privacy .wpcf7-acceptance{
  display:block;
  width:100%;
}


/* list itemの既存カードCSSを解除 */

.ml-cf7 .ml-cf7__privacy .wpcf7-list-item{
  display:block !important;

  width:100% !important;

  margin:0 !important;
  padding:0 !important;

  border:0 !important;

  background:transparent !important;
  box-shadow:none !important;
}


/* label */

.ml-cf7 .ml-cf7__privacy .wpcf7-list-item label{
  position:relative !important;

  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;

  width:auto !important;
  min-height:0 !important;

  margin:0 auto !important;
  padding:0 !important;

  border:0 !important;

  background:transparent !important;
  box-shadow:none !important;

  cursor:pointer;
}


/* 本物のcheckboxを復活 */

.ml-cf7 .ml-cf7__privacy input[type="checkbox"]{
  position:static !important;

  display:block !important;

  width:17px !important;
  height:17px !important;

  flex:0 0 17px;

  margin:0 10px 0 0 !important;

  padding:0 !important;

  opacity:1 !important;

  pointer-events:auto !important;

  appearance:auto !important;
  -webkit-appearance:auto !important;

  accent-color:#c49b45;
}


/* 相談内容用の疑似チェックを無効化 */

.ml-cf7 .ml-cf7__privacy .wpcf7-list-item-label{
  position:static !important;

  display:inline !important;

  padding:0 !important;

  color:#66787b;

  font-size:12px;
  line-height:1.8;
}

.ml-cf7 .ml-cf7__privacy .wpcf7-list-item-label::before,
.ml-cf7 .ml-cf7__privacy .wpcf7-list-item-label::after{
  content:none !important;
  display:none !important;
}


/* link */

.ml-cf7 .ml-cf7__privacy a{
  color:#07353d;

  font-weight:600;

  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:4px;
}


/* checked時のカード装飾も解除 */

.ml-cf7 .ml-cf7__privacy .wpcf7-list-item.is-checked label,
.ml-cf7 .ml-cf7__privacy label:has(input[type="checkbox"]:checked){
  border:0 !important;

  background:transparent !important;

  box-shadow:none !important;
}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:767px){

  .ml-cf7 .ml-cf7__privacy{
    width:100%;

    padding:22px 10px;

    justify-content:center;

    text-align:center;
  }


  .ml-cf7 .ml-cf7__privacy .wpcf7-list-item label{
    display:flex !important;

    width:100% !important;

    align-items:center !important;
    justify-content:center !important;

    margin:0 !important;

    text-align:center;
  }


  .ml-cf7 .ml-cf7__privacy .wpcf7-list-item-label{
    width:auto;

    font-size:11px;
    line-height:1.7;

    text-align:left;
  }

}/* End custom CSS */