@charset "utf-8";

:root {
  --leading-trim: calc((1em - 1lh) / 2);
  --col_white: #fff;

  --font_base: 'Noto Sans JP', serif;
  --fontRob: 'Roboto', serif;
  --color_text: #000;
  --color_01: #ffe9cf;
  --color_02: #e2f2fd;
  --color_03: #167fea;
  --color_04: #004ea2;
  --color_05: #ffe974;

  --col_simulation: #004ea2;
  --col_blue_01: #3474d6;
  --col_l_blue_01: #e6f2fc;
  --col_bg: #e2f2fd;
}

@supports not (top: 1lh) {
  :root {
    --leading-trim: 0px;
  }
}

/*
【1】=======================================================================
基本
@custom-media --pc (min-width: 769px), print;
@custom-media --sp only screen and (max-width: 768px);
*/

/*
【2】=======================================================================
【SP縦横 : タブレット : PC】
@custom-media --pc (min-width: 1367px), print;
@custom-media --tb (min-width: 768px) and (max-width: 1366px);
@custom-media --sp only screen and (max-width: 767px);
*/

/*
【3】=======================================================================
【SP縦 ＆ それ以外版。SP横でSP縦デザイン見せるメリットってあまりない？】
@custom-media --pc (min-width: 1367px), print;
@custom-media --tb only screen and (min-width: 479px) and (max-width: 1366px);
@custom-media --sp only screen and (max-width: 478px);
*/

/* anyIdeas? 何かあれば更新するので一声。 */

/* Cascade Layer definition */

@layer common, page, override;

/* Only in common.css */

@layer common{

html {
  font-size: 10px;
}

body,
button,
td,
th,
input,
select,
textarea {
  font-family: var(--fontDefault);
  font-weight: 400;
  color: var(--color_text);
}

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
nav,
figure,
main {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
  word-break: break-word;
  box-sizing: border-box;
}

ol,
ul {
  list-style: none;
}

table {
  border-collapse: separate;
  border-spacing: 0;
  vertical-align: middle;
}

caption,
th,
td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 1;
}

.clearfix:after {
  content: '';
  display: block;
  clear: both;
}

main,
figure,
picture {
  display: block;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: currentColor;
  text-decoration: none;
}

input[type='text'] {
  word-break: keep-all;
}
  input[type='text']::-ms-clear {
    display: none;
  }
  select::-ms-expand {
    display: none;
  }

button {
  padding: 0;
}

sup {
  vertical-align: super;
}
sub {
  vertical-align: sub;
}
iframe {
  display: block;
  border: none;
}
  ruby rt {
    text-align: center;
  }

.text-stroke {
  width: 0;
  height: 0;
  position: absolute;
  top: 0;
  left: 0;
}
  .text-stroke__elm {
    color: currentColor;
    filter: url('#stroke-text');
  }

* {
  box-sizing: border-box;
}
  * :after,
  * :before {
    box-sizing: border-box;
  }
}

@layer common{
/* よく使うホバー。不要なら削除 */
@media (any-hover: hover) {
    /*
      .link__alpha: 透明度アニメーション
      a.link__text(href="#") リンク文字
    */
    .link__alpha {
      cursor: pointer;
      transition: opacity 0.3s ease;
      will-change: opacity;
    }
      .link__alpha:hover {
        opacity: 0.6;
      }
    /*
      .link__color: 色アニメーション
      a.link__text(href="#") リンク文字
    */
    .link__color {
      cursor: pointer;
      transition: color 0.3s ease;
      will-change: color;
    }
      .link__color:hover {
        color: #fff;
      }
    /*
      .link__text: 下線アニメーション
      a.link__text(href="#") リンク文字
    */
    .link__text {
      cursor: pointer;
      position: relative;
    }
      .link__text:before {
        content: '';
        display: block;
        height: 1px;
        width: 100%;
        background-color: currentColor;
        position: absolute;
        left: 0;
        bottom: 0;
        transform-origin: right center;
        transform: scale(0, 1);
        transition: transform 0.3s ease;
        will-change: transform;
      }
        .link__text:hover:before {
          transform-origin: left center;
          transform: scale(1, 1);
        }
    /*
      .link__line:複数行対応下線アニメーション
      a.link__line(href="#")
        | あいうえお
        br
        | かきくけこ
    */
    .link__line {
      padding-bottom: 0.25em;
      background: linear-gradient(currentColor, currentColor) 0 100%/0 1px no-repeat;
      transition: background 0.3s ease;
      will-change: background;
    }
      .link__line:hover {
        background-size: 100% 1px;
      }
    /*
    .link__fill : 塗りつぶしアニメーション
    width, height、色などは別途指定。

    a.link__fill(href="#")
      span リンク文字
    */
    .link__fill {
      position: relative;
      cursor: pointer;
      display: flex;
      justify-content: center;
      align-items: center;
    }
      .link__fill span {
        position: relative;
      }
      .link__fill:before {
        content: '';
        display: block;
        width: 100%;
        height: 100%;
        position: absolute;
        left: 0;
        top: 0;
        background-color: #000;
        transform-origin: right center;
        transform: scale(0, 1);
        transition: transform 0.3s ease;
        will-change: transform;
      }
        .link__fill:hover:before {
          transform-origin: left center;
          transform: scale(1, 1);
        }

    /*
      .link__zoom : anchor内に画像がある場合拡大。他のと重ねがけ出来る。
      a.link__zoom(href="#")
        figure
          img(src="//placehold.jp/dcdcdc/ffffff/100x100.png", alt="dummy")
    */
      .link__zoom figure {
        overflow: hidden;
      }
      .link__zoom img {
        transition: transform 0.4s ease;
        will-change: transform;
      }
        .link__zoom:hover img {
          transform: scale(1.2);
        }
}
}

@layer override{

@media (min-width: 769px),print {
  .only-sp {
    display: none;
  }
}

@media only screen and (max-width: 768px) {
  .only-pc {
    display: none;
  }
}
}

/*
  A single file can now support tablets.
  The contents of @media (--pc) {} are automatically converted.
  (Of course, you can import _pc.css and _sp.css as before.)

  1) set MediaQuery (--tb) on ./_config/_media.css
  2) isAutoTablet = true on ../../postcss.config.js 
*/

@layer common {
  .visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  @media (min-width: 769px),print {
  }
  @media only screen and (max-width: 768px) {
  }
}

@media (min-width: 769px),print {
  a[href^='tel'] {
    pointer-events: none;
    text-decoration: none;
  }
  .show_sp {
    display: none !important;
  }

  .sns-account {
    font-family: var(--font_base);
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 160%;
    letter-spacing: 0.48px;
    color: var(--color_text);
  }

    .sns-account-wrap {
      display: grid;
      row-gap: 60px;
    }

  .l-banner {
    margin-bottom: 40px;
  }

  /* アコーディオン共通 */
    .accordion__trigger {
      position: relative;
      border: 1px solid var(--col_blue_01);
      border-radius: 5px;
      cursor: pointer;
      font-family: var(--font_base);
      font-weight: 500;
      font-size: 1.6rem;
      line-height: 140%;
      letter-spacing: 0.8px;
      overflow: hidden;
      padding: 22px 20px 20px 20px;
      text-align: left;
      width: 100%;
      list-style: none;
    }
      .accordion__trigger::-webkit-details-marker {
        display: none;
      }
      .accordion-items[open] > .accordion__trigger {
        border-bottom: none;
        border-radius: 5px 5px 0 0;
      }
        .accordion-items[open] > .accordion__trigger:after {
          transform: rotate(180deg) translateY(2px);
        }
      .accordion__trigger::before,
      .accordion__trigger::after {
        content: '';
        position: absolute;
      }
      .accordion__trigger::before {
        top: 50%;
        transform: translateY(-50%);
        right: 12px;
        width: 30px;
        height: 30px;
        background-color: var(--col_l_blue_01);
        border-radius: 50%;
      }
      .accordion__trigger::after {
        width: 14px;
        height: 8px;
        background: url('../images/sns/icon_allow.svg?vde459beb9411f85551a4fb57b7520099') no-repeat center/contain;
        margin: auto;
        top: 0;
        right: 20px;
        bottom: 0;
        transition: transform 0.3s;
        will-change: transform;
      }
    .accordion__target {
      border: 1px solid var(--col_blue_01);
      border-top: none;
      border-radius: 0 0 5px 5px;
      padding: 0 20px;
      width: 100%;
      font-weight: 400;
      font-size: 1.6rem;
      line-height: 140%;
      letter-spacing: 0.48px;
    }
    .accordion__body {
      border-top: solid 1px #e0e0e0;
      display: grid;
      row-gap: 21px;
      padding-block: 18px 24px;
    }

  /* ご注意ください */
    .sns-notice__list {
      list-style: disc;
      padding-left: 1.5em;
    }

  /* SNSセクション共通 */
  .sns-section {
    padding: 20px;
    background-color: var(--col_bg);
    border-radius: 5px;
  }
    .sns-section .inner {
      background-color: var(--col_white);
      border-radius: 5px;
      padding: 40px;
    }
    .sns-section__heading {
      display: flex;
      align-items: center;
      justify-content: center;
      column-gap: 40px;
      font-size: 4rem;
      font-weight: 700;
      line-height: 150%;
      letter-spacing: 2px;
      margin-bottom: 25px;
      padding-bottom: 30px;
      border-bottom: 1px solid var(--col_blue_01);
    }
      .sns-section__heading--notes {
        font-size: 2rem;
        font-style: normal;
        font-weight: 400;
        line-height: 100%;
        letter-spacing: 1px;
        border-bottom: none;
      }
    .sns-section__icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 80px;
      height: auto;
      flex-shrink: 0;
    }
      .sns-section__icon img {
        width: 100%;
        height: auto;
      }
    .sns-section__body {
      display: grid;
      row-gap: 35px;
    }
    .sns-section__account-name {
      color: var(--col_simulation);
      font-size: 3rem;
      font-weight: 700;
      line-height: 140%;
      letter-spacing: 1.2px;
      width: -webkit-fit-content;
      width: -moz-fit-content;
      width: fit-content;
      text-decoration: underline;
      text-underline-offset: 7px;
      text-decoration-thickness: 2px;
    }
    .sns-section__account-info {
      display: grid;
      grid-auto-flow: column;
      column-gap: 40px;
      place-items: center start;
    }
      .sns-section__account-info:not(:has(p)) {
        place-items: center center;
      }
    .sns-section__account-img {
      width: 300px;
    }
    .sns-section__account-link {
      width: 100%;
      display: inline-flex;
      align-items: center;
      justify-content: space-between;
      background: var(--color_03);
      border-radius: 5px;
      color: var(--col_white) !important;
      font-size: 2.4rem;
      font-weight: 500;
      line-height: 180%;
      letter-spacing: 1.2px;
      padding: 18px 20px;
    }
      .sns-section__account-link::after {
        content: '';
        display: block;
        width: 10px;
        height: 16px;
        background-color: var(--col_white);
        -webkit-clip-path: polygon(0 0, 30% 0, 100% 50%, 30% 100%, 0 100%, 70% 50%);
                clip-path: polygon(0 0, 30% 0, 100% 50%, 30% 100%, 0 100%, 70% 50%);
        flex-shrink: 0;
      }
      .sns-section#section-facebook .sns-section__account-name {
        margin: 0 auto;
      }

  /* フォロー方法 */
    .sns-howto a {
      color: var(--color_04);
      border-bottom: 1px solid var(--color_04);
    }
    .sns-howto__step {
      display: grid;
      row-gap: 30px;
      counter-reset: step-counter;
      margin-bottom: 4px;
    }

      .sns-howto__step li {
        display: grid;
        grid-template-columns: 36px 1fr;
        column-gap: 16px;
        row-gap: 25px;
        counter-increment: step-counter;
      }
        .sns-howto__step li::before {
          content: counter(step-counter, decimal-leading-zero);
          display: flex;
          width: 36px;
          height: 36px;
          justify-content: center;
          align-items: center;
          aspect-ratio: 1 / 1;
          border-radius: 100px;
          background: var(--col_simulation);
          color: var(--col_white);
          font-family: var(--fontRob);
          font-size: 1.6rem;
          font-weight: 500;
          letter-spacing: 0.8px;
          flex-shrink: 0;
        }
        .sns-howto__step li > *:not(:first-child) {
          grid-column: 1 / -1;
        }

        .sns-howto__step li p {
          line-height: 160%;
        }
    .sns-howto__qr-group {
      display: flex;
      gap: 40px;
      justify-content: center;
      margin-bottom: 24px;
    }
    .sns-howto__qr-item {
      text-align: center;
    }
    .sns-howto__qr {
      width: 120px;
      margin: 0 auto;
    }
      .sns-howto__qr img {
        width: 100%;
        height: auto;
      }
    .sns-howto__qr-label {
      font-size: 1.4rem;
      line-height: 160%;
      margin-top: 5px;
    }
    .sns-howto__image {
      margin: 0 auto;
      width: 425px;
    }
      .sns-howto__image img {
        width: 100%;
        height: auto;
      }
    .sns-howto__btn {
      display: inline-block;
      height: 27px;
      margin-right: 5px;
      vertical-align: middle;
      margin-bottom: 4px;
    }
      .sns-howto__btn img {
        height: 100%;
        width: auto;
      }

  /* ご留意事項 */
    .sns-notes__list {
      display: grid;
      row-gap: 60px;
    }
    .sns-notes__title {
      padding-left: 12px;
      position: relative;
      font-size: 2rem;
      font-weight: 400;
      line-height: 100%;
      letter-spacing: 1px;
      margin-bottom: 40px;
    }
      .sns-notes__title::before {
        content: '';
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        width: 4px;
        height: 31px;
        background-color: #0773dd;
      }
      .sns-notes__text a {
        color: var(--color_03);
        text-decoration: underline;
      }
      .sns-notes__text .icon-pdf {
        display: inline-block;
        width: 15px;
        height: 18px;
        background: url('../images/sns/icon_pdf.svg?v630d02c32f0e7e390f7166258084cc79') no-repeat center/contain;
        margin-left: 4px;
        vertical-align: middle;
      }
}

@media only screen and (max-width: 768px) {
  .show_pc {
    display: none !important;
  }

  .l_content section:first-child {
    margin-top: 0;
  }

  .sns-account {
    font-family: var(--font_base);
    font-weight: 400;
    font-size: 4.17vw;
    line-height: 160%;
    letter-spacing: 0.48px;
    color: var(--color_text);
  }

    .sns-account-wrap {
      display: grid;
      row-gap: 10.42vw;
    }

  .l-banner {
    margin-bottom: 10.42vw;
    margin-inline: -20px;
  }

  /* アコーディオン共通 */
    .accordion__trigger {
      position: relative;
      border: 1px solid var(--col_blue_01);
      border-radius: 1.30vw;
      cursor: pointer;
      font-family: var(--font_base);
      font-weight: 500;
      font-size: 3.65vw;
      line-height: 140%;
      letter-spacing: 0.7px;
      overflow: hidden;
      padding: 5.21vw 15.63vw 4.56vw 5.21vw;
      text-align: left;
      width: 100%;
      list-style: none;
    }
      .accordion__trigger::-webkit-details-marker {
        display: none;
      }
      .accordion-items[open] > .accordion__trigger {
        border-bottom: none;
        border-radius: 1.30vw 1.30vw 0 0;
      }
        .accordion-items[open] > .accordion__trigger:after {
          transform: rotate(180deg) translateY(0.52vw);
        }
      .accordion__trigger::before,
      .accordion__trigger::after {
        content: '';
        position: absolute;
      }
      .accordion__trigger::before {
        top: 50%;
        transform: translateY(-50%);
        right: 5.21vw;
        width: 7.81vw;
        height: 7.81vw;
        background-color: var(--col_l_blue_01);
        border-radius: 50%;
      }
      .accordion__trigger::after {
        width: 2.60vw;
        height: 1.56vw;
        background: url('../images/sns/icon_allow.svg?vde459beb9411f85551a4fb57b7520099') no-repeat center/contain;
        margin: auto;
        top: 0.65vw;
        right: 7.94vw;
        bottom: 0;
        transition: transform 0.3s;
        will-change: transform;
      }
    .accordion__target {
      border: 1px solid var(--col_blue_01);
      border-top: none;
      border-radius: 0 0 1.30vw 1.30vw;
      padding: 0 5.21vw;
      width: 100%;
      font-weight: 400;
      font-size: 3.13vw;
      line-height: 140%;
      letter-spacing: 0.48px;
    }
    .accordion__body {
      border-top: solid 1px #e0e0e0;
      display: grid;
      row-gap: 6.51vw;
      padding-block: 6.25vw;
      font-size: 3.65vw;
      font-weight: 400;
      line-height: 140%;
      letter-spacing: 0.42px;
    }

  /* ご注意ください */
    .sns-notice__list {
      padding-left: 1.5em;
    }

      .sns-notice__list li {
        position: relative;
      }

        .sns-notice__list li::before {
          content: '';
          position: absolute;
          left: -1em;
          top: 1.95vw;
          width: 0.91vw;
          height: 0.91vw;
          background-color: var(--color_text);
          border-radius: 50%;
        }

  /* SNSセクション共通 */
  .sns-section {
    padding: 3.13vw;
    background-color: var(--col_bg);
    border-radius: 1.30vw;
  }
    .sns-section .inner {
      background-color: var(--col_white);
      border-radius: 1.30vw;
      padding: 7.81vw 5.21vw;
    }
    .sns-section__heading {
      display: flex;
      align-items: center;
      justify-content: center;
      column-gap: 6.25vw;
      font-size: 6.25vw;
      font-weight: 700;
      line-height: 150%;
      letter-spacing: 2px;
      margin-bottom: 8.07vw;
      padding-bottom: 6.25vw;
      border-bottom: 1px solid var(--col_blue_01);
    }
    .sns-section__icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 10.42vw;
      height: auto;
      flex-shrink: 0;
    }
      .sns-section__icon img {
        width: 100%;
        height: auto;
      }
    .sns-section__body {
      display: grid;
      row-gap: 7.16vw;
    }
    .sns-section__account-name {
      color: var(--col_simulation);
      font-size: 6.25vw;
      font-weight: 700;
      line-height: 140%;
      letter-spacing: 1.2px;
      width: -webkit-fit-content;
      width: -moz-fit-content;
      width: fit-content;
      text-decoration: underline;
      text-underline-offset: 0.91vw;
      text-decoration-thickness: 2px;
    }
    .sns-section__account-info {
      display: grid;
      row-gap: 8.33vw;
      place-items: center start;
    }
      .sns-section__account-info:not(:has(p)) {
        place-items: center center;
      }
    .sns-section__account-img {
      width: 100%;
    }
    .sns-section__account-link {
      width: 100%;
      display: inline-flex;
      align-items: center;
      justify-content: space-between;
      background: var(--color_03);
      border-radius: 1.30vw;
      color: var(--col_white) !important;
      font-size: 4.69vw;
      font-weight: 500;
      line-height: 140%;
      letter-spacing: 0.9px;
      padding: 3.52vw 5.21vw;
    }
      .sns-section__account-link::after {
        content: '';
        display: block;
        width: 2.60vw;
        height: 3.91vw;
        background-color: var(--col_white);
        -webkit-clip-path: polygon(0 0, 30% 0, 100% 50%, 30% 100%, 0 100%, 70% 50%);
                clip-path: polygon(0 0, 30% 0, 100% 50%, 30% 100%, 0 100%, 70% 50%);
        flex-shrink: 0;
      }
      .sns-section#section-facebook .sns-section__account-name {
        margin: 0 auto;
      }

  /* フォロー方法 */
    .sns-howto a {
      color: var(--color_04);
      border-bottom: 1px solid var(--color_04);
    }
    .sns-howto__step {
      display: grid;
      row-gap: 8.33vw;
      counter-reset: step-counter;
      margin-bottom: 0.52vw;
    }

      .sns-howto__step li {
        display: grid;
        grid-template-columns: 7.81vw 1fr;
        column-gap: 4.17vw;
        row-gap: 4.17vw;
        counter-increment: step-counter;
      }
        .sns-howto__step li::before {
          content: counter(step-counter, decimal-leading-zero);
          display: flex;
          width: 7.81vw;
          height: 7.81vw;
          justify-content: center;
          align-items: center;
          aspect-ratio: 1 / 1;
          border-radius: 100px;
          background: var(--col_simulation);
          color: var(--col_white);
          font-family: var(--fontRob);
          font-size: 3.65vw;
          font-weight: 500;
          letter-spacing: 0.8px;
          flex-shrink: 0;
        }
        .sns-howto__step li > *:not(:first-child) {
          grid-column: 1 / -1;
        }

        .sns-howto__step li p {
          line-height: 160%;
        }
    .sns-howto__qr-group {
      display: flex;
      flex-direction: column;
      row-gap: 4.17vw;
      align-items: center;
    }
    .sns-howto__qr-item {
      text-align: center;
    }
    .sns-howto__qr {
      width: 23.44vw;
      margin: 0 auto;
    }
      .sns-howto__qr img {
        width: 100%;
        height: auto;
      }
    .sns-howto__qr-label {
      font-size: 2.73vw;
      line-height: 160%;
      margin-top: 0.52vw;
    }
    .sns-howto__image {
      margin: 0 auto;
    }
      .sns-howto__image img {
        width: 100%;
        height: auto;
      }
    .sns-howto__btn {
      display: inline-block;
      height: 5.21vw;
      vertical-align: middle;
      margin-right: 0.91vw;
      margin-bottom: 0.52vw;
    }
      .sns-howto__btn img {
        height: 100%;
        width: auto;
      }

  /* ご留意事項 */
    .sns-notes__list {
      display: grid;
      row-gap: 7.16vw;
    }
    .sns-notes__title {
      padding-left: 3.13vw;
      position: relative;
      font-size: 4.69vw;
      font-weight: 400;
      line-height: 160%;
      letter-spacing: 0.7px;
      margin-bottom: 5.21vw;
    }
      .sns-notes__title::before {
        content: '';
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        width: 0.78vw;
        height: 4.95vw;
        background-color: #0773dd;
      }
    .sns-notes__text {
      font-size: 3.65vw;
    }
      .sns-notes__text a {
        color: var(--color_03);
        text-decoration: underline;
      }
      .sns-notes__text .icon-pdf {
        display: inline-block;
        width: 2.86vw;
        height: 3.65vw;
        background: url('../images/sns/icon_pdf.svg?v630d02c32f0e7e390f7166258084cc79') no-repeat center/contain;
        margin-left: 1.04vw;
        vertical-align: middle;
      }
}
