/* ##############################################################################

    ANIMATION

############################################################################## */
  @keyframes gnav_line_mov1_in {
    0% {
      top: 0;
      transform: rotate(0deg);
    }
    50% {
      top: 50%;
      transform: rotate(0deg);
    }
    100% {
      top: 50%;
      transform: rotate(-30deg);
    }
  }
  @keyframes gnav_line_mov1_out {
    0% {
      top: 50%;
      transform: rotate(-30deg);
    }
    50% {
      top: 50%;
      transform: rotate(0deg);
    }
    100% {
      top: 0;
      transform: rotate(0deg);
    }
  }
  @keyframes gnav_line_mov2_in {
    0% {
      top: 100%;
      width: 60%;
      transform: rotate(0deg);
    }
    50% {
      top: 50%;
      width: 100%;
      transform: rotate(0deg);
    }
    100% {
      top: 50%;
      width: 100%;
      transform: rotate(30deg);
    }
  }
  @keyframes gnav_line_mov2_out {
    0% {
      top: 50%;
      width: 100%;
      transform: rotate(30deg);
    }
    50% {
      top: 50%;
      width: 100%;
      transform: rotate(0deg);
    }
    100% {
      top: 100%;
      width: 60%;
      transform: rotate(0deg);
    }
  }
  @keyframes fade_in {
    0% { opacity: 0; }
    100% { opacity: 1; }
  }
  @keyframes fade_out {
    0% { opacity: 1; }
    100% { opacity: 0; }
  }
  @keyframes flip_x {
    0% { transform: rotateY(-15deg); }
    100% { transform: rotateY(0deg); }
  }
  @keyframes slide_in {
    0% { transform: translateY(16px); }
    100% { transform: translateY(0px); }
  }
  @keyframes slide-to_top {
    0% { transform: translateY(110%); }
    100% { transform: translateY(0%); }
  }
  @keyframes slide-to_btm {
    0% { transform: translateY(-110%); }
    100% { transform: translateY(0%); }
  }
  @keyframes slide-to_lft {
    0% { transform: translateX(110%); }
    100% { transform: translateX(0%); }
  }
  @keyframes slide-to_rgt {
    0% { transform: translateX(-110%); }
    100% { transform: translateX(0%); }
  }
  @keyframes slide-rev_top {
    0% { transform: translateY(0%); }
    100% { transform: translateY(-110%); }
  }
  @keyframes slide-rev_btm {
    0% { transform: translateY(0%); }
    100% { transform: translateY(110%); }
  }
  @keyframes slide-rev_lft {
    0% { transform: translateX(0%); }
    100% { transform: translateX(-110%); }
  }
  @keyframes slide-rev_rgt {
    0% { transform: translateX(0%); }
    100% { transform: translateX(110%); }
  }
  @keyframes bounce {
    0% { transform: scale(1); }
    20% { transform: scale(1.02); }
    40% { transform: scale(.98); }
    60% { transform: scale(1.03); }
    80% { transform: scale(.97); }
    100% { transform: scale(1); }
  }
  @keyframes hov_bounce {
    0% { transform: scale(1); }
    50% { transform: scale(1); }
    70% { transform: scale(1.07); }
    85% { transform: scale(.95); }
    100% { transform: scale(1); }
  }

  .loaded .ts,
  .loaded .ts-bf::before {
    transition: .5s cubic-bezier(.5,0,.8,1);
  }
  .loaded .ts04,
  .loaded .ts04-bf::before {
    transition: .4s cubic-bezier(.5,0,.8,1);
  }

  .fade_in {
    opacity: 0;
  }
  .visible.fade_in,
  .visible .fade_in {
    animation-duration: .5s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-fill-mode: forwards;
    animation-play-state: running;
    animation-name: fade_in;
  }
  .fade_in-slide {
    opacity: 0;
    transform: translateY(16px);
  }
  .visible.fade_in-slide,
  .visible .fade_in-slide {
    animation-duration: .4s,.4s;
    animation-timing-function: ease-in-out,cubic-bezier(.5,0,.8,1);
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-fill-mode: forwards;
    animation-play-state: running;
    animation-name: fade_in,slide_in;
  }


  .del200 { transition-delay: 200ms; }
  .del250 { transition-delay: 250ms; }
  .del300 { transition-delay: 300ms; }
  .del350 { transition-delay: 350ms; }
  .del400 { transition-delay: 400ms; }
  .del450 { transition-delay: 450ms; }
  .del500 { transition-delay: 500ms; }
  .del550 { transition-delay: 550ms; }
  .del600 { transition-delay: 600ms; }
  .del650 { transition-delay: 650ms; }
  .del700 { transition-delay: 700ms; }
  .del750 { transition-delay: 750ms; }
  .del800 { transition-delay: 800ms; }
  .del850 { transition-delay: 850ms; }
  .del900 { transition-delay: 900ms; }
  .del950 { transition-delay: 950ms; }
  .del1000 { transition-delay: 1000ms; }
  .del1050 { transition-delay: 1050ms; }
  .del1100 { transition-delay: 1100ms; }
  .del1150 { transition-delay: 1150ms; }
  .del1200 { transition-delay: 1200ms; }
  .del1250 { transition-delay: 1250ms; }
  .del1300 { transition-delay: 1300ms; }

  .bf_del400::before { transition-delay: 400ms; }
  .bf_del500::before { transition-delay: 500ms; }
  .bf_del600::before { transition-delay: 600ms; }
  .bf_del700::before { transition-delay: 700ms; }
  .bf_del800::before { transition-delay: 800ms; }
  .bf_del900::before { transition-delay: 900ms; }
  .bf_del1000::before { transition-delay: 1000ms; }
  .bf_del1100::before { transition-delay: 1100ms; }
  .bf_del1200::before { transition-delay: 1200ms; }
  .bf_del1300::before { transition-delay: 1300ms; }
  .bf_del1400::before { transition-delay: 1400ms; }
  .bf_del1500::before { transition-delay: 1500ms; }
  .bf_del1600::before { transition-delay: 1600ms; }

  .anm_del200 { animation-delay: 200ms; }
  .anm_del300 { animation-delay: 300ms; }
  .anm_del400 { animation-delay: 400ms; }
  .anm_del500 { animation-delay: 500ms; }
  .anm_del600 { animation-delay: 600ms; }
  .anm_del700 { animation-delay: 700ms; }
  .anm_del800 { animation-delay: 800ms; }
  .anm_del900 { animation-delay: 900ms; }
  .anm_del1000 { animation-delay: 1000ms; }
  .anm_del1100 { animation-delay: 1100ms; }
  .anm_del1200 { animation-delay: 1200ms; }
  .anm_del1300 { animation-delay: 1300ms; }
  .anm_del1400 { animation-delay: 1400ms; }
  .anm_del1500 { animation-delay: 1500ms; }
  .anm_del1600 { animation-delay: 1600ms; }

/* ======================================================================================

    COMMON

====================================================================================== */
  body {
    font: 14px/1.231  'Noto Sans JP', 'YuGothic', '游ゴシック', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic ProN', 'メイリオ', 'Meiryo', 'ＭＳ Ｐゴシック', sans-serif;
    line-height: 2em;
    letter-spacing: .1em;
    text-align: justify;
    font-weight: 400;
  }
  @media screen and (max-width: 560px) {
    body {
      font-size: 13px;
      -webkit-text-size-adjust: none;
    }
  }

/* bg
**************************************** */


/* layout
**************************************** */
  
  /* --- inner --- */
  .inner {
    width: 95%;
    max-width: 1280px;
    margin: 0 auto;
  }
  .inner-xs { max-width: 960px; }
  .inner-sm { max-width: 1064px; }
  .inner-lg { max-width: 1400px; }
  .inner-xl { max-width: calc(100% - 80px); }

  /* --- sect_pdg --- */
  .sect_pdg {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .sect_pdg-top_no { padding-top: 0; }
  .sect_pdg-btm_no { padding-bottom: 0; }
  @media screen and (max-width: 960px) {
    .sect_pdg {
      padding-top: 64px;
      padding-bottom: 64px;
    }
    .sect_pdg-top_no { padding-top: 0; }
    .sect_pdg-btm_no { padding-bottom: 0; }
  }
  @media screen and (max-width: 560px) {
    .inner { width: calc(100% - 32px); }
    .inner-xl { max-width: calc(100% - 32px); }
    .sect_pdg {
      padding-top: 48px;
      padding-bottom: 48px;
    }
    .sect_pdg-top_no { padding-top: 0; }
    .sect_pdg-btm_no { padding-bottom: 0; }
  }

/* ttl
**************************************** */

  /* --- page_ttl --- */
  .page_ttl {
    padding-top: 56px;
    padding-bottom: 56px;
    margin-top: 205px;
    text-align: center;
  }
  .page_ttl-jp,
  .page_ttl-en { display: block; }
  .page_ttl-jp {
    font-size: 320%;
  }
  .page_ttl-en {
    font-size: 120%;
    text-transform: uppercase;
  }
  @media screen and (max-width: 1400px) {
    .page_ttl {
      margin-top: 141px;
    }
  }
  @media screen and (max-width: 1064px) {
    .page_ttl {
      margin-top: 109px;
    }
  }
  @media screen and (max-width: 560px) {
    .page_ttl {
      margin-top: 67px;
      padding-top: 32px;
      padding-bottom: 32px;
    }
  }

  /* --- sect_ttl --- */
  .sect_ttl-jp,
  .sect_ttl-en {
    display: block;
  }
  .sect_ttl-jp {
    font-weight: 500;
    font-size: 214%;
    letter-spacing: .2em;
    line-height: 1.6;
    font-family: Noto serif JP;
  }
  .sect_ttl-en {
    font-weight: 500;
    font-size: 78%;
    opacity: .8;
    letter-spacing: .3em;
  }
  .sect_ttl-sm {
    position: absolute;
    top: -1em;
    left: 0;
  }
  .sect_ttl-sm .sect_ttl-en {
    font-size: 229%;
    letter-spacing: .2em;
  }
  .sect_ttl-xs .sect_ttl-en {
    font-size: 172%;
    letter-spacing: .2em;
  }
  .sect_ttl-xs .line {
    display: block;
    width: 1px;
    height: 60px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 24px;
    opacity: .2;
  }
  .sect_catch {
    text-align: center;
    font-size: 120%;
    font-weight: 700;
  }

  /* --- heading --- */
  .head2,
  .head3 {
    line-height: 1.6em;
  }
  .head1 span,
  .head2 span { display: block; }
  .head1-en,
  .head2-en {
    opacity: .8;
    letter-spacing: .3em;
    line-height: 1em;
  }
  .head1-jp {
    font-size: 180%;
    line-height: 1.6em;
  }
  .head1-en { font-size: 79%; }
  .head2-jp { font-size: 129%; }
  .head2-en { font-size: 70%; }
  .head3 { font-size: 120%; }
  .head4 { font-size: 100%; }
  @media screen and (max-width: 560px) {
    .sect_ttl-jp {
      font-size: 172%;
    }
    .sect_ttl-sm .sect_ttl-en {
      font-size: 185%;
    }
    .head1-jp {
      font-size: 155%;
    }
  }

/* txt
**************************************** */
  .fnt-lg { font-size: 107%; }
  .fnt-sm { font-size: 93%; }
  .fnt-en,
  .slider .slick-arrow { font-family: 'Playfair Display', 'Noto Serif JP', serif; }
  .fnt-serif,
  .fnt-bold:not(.fnt-en),
  .tbl-def th { font-family: 'Noto Serif JP'; font-weight: 600; }
  .w-t { font-weight: 100; }
  .w-l { font-weight: 300; }
  .w-r { font-weight: 400; }
  .w-m { font-weight: 500; }
  .w-b { font-weight: 700; }

/* table & list
**************************************** */
  table { width: 100%; }
  
  /* --- tbl-def --- */
  .tbl_wrap .scroll {
    overflow-y: scroll;
  }
  .tbl_wrap .scroll--cap {
    font-size: 85%;
    opacity: .7;
    text-align: right;
  }
  .tbl-def,
  .tbl-def thead tr {
    border-bottom-width: 3px;
    border-bottom-style: solid;
  }
  .tbl-def th, 
  .tbl-def td {
    padding: 8px 16px;
    border-bottom-width: 1px;
    border-bottom-style: solid;
  }
  .tbl-def th:not(:last-child), 
  .tbl-def td:not(:last-child) {
    border-right-width: 1px;
    border-right-style: solid;
  }
  .tbl-def th {
    text-align: center;
  }
  @media screen and (max-width: 560px) {
    .tbl-def th, 
    .tbl-def td {
      white-space: nowrap;
    }
  } 

  /* --- list-def --- */
  .list-def li,
  .list-def li > * {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }
  .list-def li > * {
    padding-top: 12px;
    padding-bottom: 12px;
    border-bottom-width: 1px;
    border-bottom-style: dashed;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
  }
  .list-def li h4 {
    width: 220px;
    text-align: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
  }
  .list-def li > *:not(h4) {
    flex: 1;
    line-height: 1.6em;
    padding-left: 24px;
    padding-right: 24px;
  }
  .flx > .list-def li h4 {
    width: 160px;
  }
  @media screen and (max-width: 560px) {
    .list-def li,
    .list-def li > * {
      display: block;
    }
    .list-def li h4,
    .flx > .list-def li h4 {
      width: 100%;
      border-bottom: none;
      padding-bottom: 0;
      text-align: left;
      font-family: 'Hiragino Kaku Gothic W6 JIS2004';
    }
    .list-def li > *:not(h4) {
      padding-left: 0;
      padding-right: 0;
      padding-top: 4px;
      padding-bottom: 16px;
      border-bottom-width: 2px;
    }
  }

/* btn
**************************************** */
  /* --- btn --- */
  .btn {
    display: inline-block;
  }
  .btn .btn--in {
    border-width: 2px;
    border-style: solid;
    border-radius: 100px;
    min-width: 180px;
    padding-left: 24px;
    padding-right: 24px;
    height: 40px;
    line-height: 1em;
    overflow: hidden;
  }
  .btn .btn--in .arrow-dot {
    margin-right: 10px;
    height: 12px;
    width: 10px;
  }
  .btn .btn--in .ico-outlink {
    margin-left: 0;
    margin-right: 8px;
  }
  .btn .btn--in::before {
    opacity: .1;
    border-radius: 100px;
    transform: translateX(-100%);
    animation: slide-rev_rgt .25s cubic-bezier(.27,.07,.36,.99) 0s 1 forwards;
  }

/* arrow-dot
**************************************** */
  .arrow-dot span {
    position: absolute;
    width: 2px;
    height: 2px;
    border-radius: 100%;
  }
  .arrow-dot span:nth-of-type(1) {
    top: 0;
    left: 0;
  }
  .arrow-dot span:nth-of-type(2) {
    top: calc(25% - 1px);
    left: calc(50% - 1px);
  }
  .arrow-dot span:nth-of-type(3) {
    top: calc(50% - 1px);
    right: 0;
  }
  .arrow-dot span:nth-of-type(4) {
    bottom: calc(25% - 1px);
    left: calc(50% - 1px);
  }
  .arrow-dot span:nth-of-type(5) {
    bottom: 0;
    left: 0;
  }
  @media screen and (min-width: 961px) {
    .btn .arrow-dot span {
      transition: .2s all;
    }
    .btn:hover .arrow-dot span:nth-of-type(1),
    .btn:hover .arrow-dot span:nth-of-type(2) {
      top: calc(50% - 1px);
    }
    .btn:hover .arrow-dot span:nth-of-type(4),
    .btn:hover .arrow-dot span:nth-of-type(5) {
      bottom: calc(50% - 1px);
    }
    .btn:hover .arrow-dot span:nth-of-type(3) {
      border-top-width: 2px;
      border-right-width: 2px;
      border-top-style: solid;
      border-right-style: solid;
      background: transparent;
      width: 5px;
      height: 5px;
      transform: rotate(45deg) translateY(-2px);
    }
    .btn:hover .btn--in::before {
      animation: slide-to_rgt .25s cubic-bezier(.27,.07,.36,.99) 0s 1 forwards;
    }
  }

/* flex
*************************************************** */

   /* --- ざっくりflexレイアウト --- */
  .flx-lo2,
  .flx-lo3,
  .flx-lo4 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .flx-lo2 { margin-top: -3%; }
  .flx-lo2 > * {
    width: 48.5%;
    margin-right: 3%;
    margin-top: 3%;
  }
  .flx-lo2 > *:nth-child(even) { margin-right: 0; }
  .flx-lo3 { margin-top: -3%; }
  .flx-lo3 > * {
    width: 31.33%;
    margin-right: 3%;
    margin-top: 3%;
  }
  .flx-lo3 > *:nth-child(3n+3) { margin-right: 0; }
  .flx-lo4 { margin-top: -3%; }
  .flx-lo4>* {
    width: 22.7%;
    margin-right: 3%;
    margin-top: 3%;
  }
  .flx-lo4 > *:nth-child(4n+4) { margin-right: 0; }
  @media screen and (max-width: 960px) {
    .flx-lo2-tab { margin-top: -6%; }
    .flx-lo2-tab > *,
    .flx-lo2-tab.flx-lo3 > *:nth-child(3n+3) {
      width: 47%;
      margin-right: 6%;
      margin-top: 6%;
    }
    .flx-lo2-tab > *:nth-child(even) { margin-right: 0; }
    .flx-lo3-tab { margin-top: -3%; }
    .flx-lo3-tab > *,
    .flx-lo3-tab.flx-lo4 > *:nth-child(4n+4) {
      width: 31.33%;
      margin-right: 3%;
      margin-top: 3%;
    }
    .flx-lo3-tab > *:nth-child(3n+3) { margin-right: 0; }
    .flx-lo4.flx-tab-blc,
    .flx-lo3.flx-tab-blc,
    .flx-lo2.flx-tab-blc {
      display: block;
    }
    .flx-lo4.flx-tab-blc > *,
    .flx-lo3.flx-tab-blc > *,
    .flx-lo2.flx-tab-blc > * {
      width: 100%;
      margin-right: 0 !important;
    }
    .flx-tab-blc {
      margin-top: 0;
    }
    .flx-lo4.flx-tab-blc > *:first-child,
    .flx-lo3.flx-tab-blc > *:first-child,
    .flx-lo2.flx-tab-blc > *:first-child {
      margin-top: 0;
    }
  }
  @media screen and (max-width: 560px) {
    .flx-lo2-sp { margin-top: -6%; }
    .flx-lo2-sp > *,
    .flx-lo2-sp.flx-lo3 > *:nth-child(3n+3) {
      width: 49%;
      margin-right: 2%;
      margin-top: 2%;
    }
    .flx-lo4.flx-lo2-sp > * { margin-top: 2%; }
    .flx-lo2-sp > *:nth-child(even) { margin-right: 0; }
    .flx-lo3-sp { margin-top: -6%; }
    .flx-lo3-sp > *,
    .flx-lo3-sp.flx-lo4 > *:nth-child(4n+4) {
      width: 29.33%;
      margin-right: 6%;
      margin-top: 6%;
    }
    .flx-lo3-sp > *:nth-child(3n+3) { margin-right: 0; }
    .flx-lo4.flx-sp-blc,
    .flx-lo3.flx-sp-blc,
    .flx-lo2.flx-sp-blc {
      display: block;
    }
    .flx-lo4.flx-sp-blc > *,
    .flx-lo3.flx-sp-blc > *,
    .flx-lo2.flx-sp-blc > * {
      width: 100%;
      margin-right: 0 !important;
      margin-top: 6%;
    }
    .flx-sp-blc {
      margin-top: 0;
    }
    .flx-lo4.flx-sp-blc > *:first-child,
    .flx-lo3.flx-sp-blc > *:first-child,
    .flx-lo2.flx-sp-blc > *:first-child {
      margin-top: 0;
    }
  }

/* sns_list
**************************************** */
  .sns_list--item:not(:last-child) {
    margin-right: 12px;
  }
  .sns_list--item a {
    width: 28px;
    height: 28px;
    opacity: 0.75;
  }
  @media screen and (max-width: 560px) {
    .sns_list--item {
      width: 14.28%;
      text-align: center;
    }
    .sns_list--item a {
      margin-left: auto;
      margin-right: auto;
    }
    .sns_list--item:not(:last-child) {
      margin-right: 0;
    }
  }

/* radius_box
*************************************************** */
  .radius_img,
  .radius_box {
    border-radius: 12px;
  }
  .radius_img {
    overflow: hidden;
  }
  .radius_box {
    padding: 32px;
  }
  .radius_box-sm { padding: 24px; }
  .radius_box-lg { padding: 64px; }
  .radius_box::before {
    content: '';
    position: absolute;
    top: 0;
    left: 32px;
    width: calc(100% - 64px);
    height: 3px;
  }
  .radius_box-sm::before {
    left: 24px;
    width: calc(100% - 48px);
  }
  .radius_box::after {
    border-radius: 12px;
    border-width: 3px;
    border-style: solid;
    opacity: .2;
  }
  @media screen and (max-width: 960px) {
    .radius_box-lg {
      padding: 40px;
    }
  }
  @media screen and (max-width: 560px) {
    .radius_box-lg {
      padding: 32px;
    }
  }

/* ##############################################################################

    HEADER

############################################################################## */

/* header
**************************************** */
  .header {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10000;
    width: 100%;
    border-top-width: 5px;
    border-top-style: solid;
  }
  .header .inner {
    height: 200px;
  }
  @media screen and (min-width: 1065px) {
    .header.change {
      position: fixed;
      padding-top: 16px;
      padding-bottom: 16px;
      transform: translateY(-100px);
      border-top-width: 3px;
    }
    .scrolled .header.change {
      transition: .4s cubic-bezier(.27,.07,.36,.99);
      transform: translateY(0px);
    }
    .header.change .inner {
      height: auto;
      -webkit-flex-direction: row;
      -ms-flex-direction: inherit;
      flex-direction: row;
      -webkit-align-items: center;
      -ms-flex-align: center;
      align-items: center;
    }
    .header.change .header--logo {
      margin-bottom: 0;
      margin-left: 0;
    }
    .header.change .header--logo img {
      width: auto;
      height: 20px;
    }
    .header.change .gnav_list--item a .gnav-jp {
      font-size: 100%;
    }
    .header.change .gnav_list--item {
      padding-left: 14px;
      padding-right: 18px;
    }
    .header.change .gnav_list--item:not(:last-child)::before {
      width: 4px;
      height: 4px;
      top: calc(50% - 2px);
    }
  }

/* gnav
**************************************** */
  .gnav_list--item::before {
    content: '';
    position: absolute;
    width: 6px;
    height: 6px;
    top: calc(50% - 3px);
    right: 0;
    border-radius: 100%;
  }
  .gnav_list--item:last-child::before {
    content: none;
  }
  .gnav_list--item a {
    display: block;
    text-align: left;
    line-height: 1em;
    text-align: center;
  }
  .gnav_list--item a span {
    display: block;
  }
  .gnav_list--item a .gnav-jp {
    font-size: 114%;
  }
  .gnav .sns_list {
    margin-top: auto;
  }
  .gnav_btn {
    position: fixed;
    top: 22px;
    right: 22px;
    width: 64px;
    height: 64px;
    z-index: 9999;
    border-radius: 100%;
  }
  .gnav_btn--in {
    line-height: 1em;
  }
  .gnav_btn--lines {
    position: relative;
    width: 32px;
    height: 10px;
    margin-top: 3px;
    margin-bottom: 8px;
    margin-left: auto;
    margin-right: auto;
  }
  .gnav_btn--lines span {
    transition: all .4s;
    box-sizing: border-box;
  }
  .gnav_btn--lines span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 1px;
  }
  .gnav_btn--lines span:nth-of-type(1) {
    top: 0;
    animation: gnav_line_mov1_out .6s cubic-bezier(.27,.07,.36,.99) 0s 1 forwards;
  }
  .gnav_btn--lines span:nth-of-type(2) {
    top: 100%;
    width: 60%;
    animation: gnav_line_mov2_out .6s cubic-bezier(.27,.07,.36,.99) 0s 1 forwards;
  }
  .gnav_btn--txt {
    font-size: 70%;
    letter-spacing: .1em;
  }
  .gnav_btn--txt::before {
    content: 'CLOSE';
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-60%);
    opacity: 0;
  }
  .header.active .gnav_btn--lines span:nth-of-type(1) {
    animation: gnav_line_mov1_in .6s cubic-bezier(.27,.07,.36,.99) 0s 1 forwards;
  }
  .header.active .gnav_btn--lines span:nth-of-type(2) {
    animation: gnav_line_mov2_in .6s cubic-bezier(.27,.07,.36,.99) 0s 1 forwards;
  }
  .header.active .gnav_btn--txt span {
    opacity: 0;
    transform: translateY(-12px);
  }
  .header.active .gnav_btn--txt::before {
    opacity: 1;
    transform: translate(-50%,-50%);
  }
  .gnav--list li {
    border-bottom: 1px solid #ccc;
  }
  .wrapper {
    overflow: hidden;
    min-height: 100vh;
  }
  .wrapper::before {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,.05);
    opacity: 0;
  }
  .header.active + .wrapper::before {
    opacity: 1;
  }
  @media screen and (max-width: 1400px) {
    .header--logo {
      margin-bottom: 24px;
    }
    .header .inner {
      height: 136px;
    }
  }
  @media screen and (min-width: 1065px) {
    .gnav_btn {
      display: none;
    }
    .gnav_list--item {
      padding-left: 20px;
      padding-right: 26px;
    }
    .gnav_head,
    .gnav_foot {
      display: none;
    }
  }
  @media screen and (max-width: 1064px) {
    .gnav_head,
    .gnav_foot {
      display: block;
    }
    .header .inner {
      height: 104px;
    }
    .header--logo {
      margin-bottom: 0;
    }
    .gnav {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      padding-top: 64px;
      padding-bottom: 80px;
      padding-right: 80px;
      padding-left: 80px;
      pointer-events: none;
      transition: .35s ease-out;
      opacity: 0;
      overflow-y: scroll;
      -ms-overflow-style: none;
      scrollbar-width: none;
    }
    .gnav::-webkit-scrollbar {
      display:none;
    }
    .gnav_list {
      display: block;
      margin-bottom: 32px;
    }
    .header.active .gnav {
      opacity: 1;
      pointer-events: all;
    }
    .gnav_list--item::before {
      right: auto;
      right: inherit;
      left: 0;
    }
    .gnav_list--item:last-child::before {
      content: '';
    }
    .gnav_list--item a {
      text-align: left;
      padding-left: 16px;
      padding-top: 20px;
      padding-bottom: 20px;
    }
    .gnav_list--item a::before {
      opacity: .3;
      border-bottom-width: 1px;
      border-bottom-style: dashed;
    }
  }
  @media screen and (max-width: 560px) {
    .header .inner {
      height: 62px;
    }
    .header--logo img,
    .gnav--logo img {
      height: 19px;
      width: auto;
    }
    .gnav_btn {
      width: 48px;
      height: 48px;
      top: 12px;
      right: 12px;
    }
    .gnav {
      padding-left: 32px;
      padding-right: 32px;
      width: 100%;
    }
    .gnav_btn--lines {
      width: 24px;
      height: 8px;
      margin-top: 3px;
      margin-bottom: 5px;
    }
  }
  @media screen and (max-width: 414px) {
    .header--logo {
      margin-left: 0;
    }
  }

/* ##############################################################################

    FOOTER

############################################################################## */
  .footer {
    margin-top: auto;
  }
  .footer::before {
    opacity: .95;
  }
  .footer nav {
    padding-top: 64px;
    padding-bottom: 64px;
  }
  .foot_list ul:not(:last-child) {
    margin-right: 72px;
  }
  .foot_list--item a {
    display: block;
    font-size: 89%;
    padding-top: 8px;
    padding-bottom: 8px;
    padding-left: 16px;
    line-height: 1.6em;
  }
  .foot_list--item a::before {
    content: '';
    position: absolute;
    top: calc(50% - 2px);
    left: 0;
    width: 5px;
    height: 5px;
    border-radius: 100px;
  }
  .footer--copyright {
    font-size: 85%;
    letter-spacing: .2em;
    padding-top: 4px;
    padding-bottom: 12px;
  }
  @media screen and (min-width: 961px) {
    .foot_list--item a:hover {
      opacity: 0.6;
    }
  }
  @media screen and (max-width: 960px) {
    .footer .foot_list {
      padding-bottom: 48px;
    }
    .footer .sns_list {
      position: absolute;
      left: 50%;
      bottom: 88px;
      transform: translateX(-50%);
    }
  }
  @media screen and (max-width: 560px) {
    .footer nav {
      padding-top: 40px;
      padding-bottom: 40px;
    }
    .footer--logo img {
      height: 20px;
      width: auto;
    }
    .footer .foot_list {
      -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
      justify-content: space-between;
    }
    .footer .foot_list ul:not(:last-child) {
      margin-right: 40px;
    }
    .footer .sns_list {
      bottom: 64px;
    }
  }

/* ##############################################################################

    INDEX

############################################################################## */
  
/* hero
*************************************************** */
  .hero {
    padding-top: 200px;
  }
  .hero--img img {
    width: 100%;
  }
  @media screen and (max-width: 1400px) {
    .hero {
      padding-top: 141px;
    }
  }
  @media screen and (max-width: 1064px) {
    .hero {
      padding-top: 109px;
    }
  }
  @media screen and (max-width: 560px) {
    .hero {
      padding-top: 67px;
    }
  }
  @keyframes slideUp {
    0% {
      transform: translateY(0);
    }
    100% {
      transform: translateY(-50%);
    }
  }
  @keyframes slideDown {
    0% {
      transform: translateY(-50%);
    }
    100% {
      transform: translateY(0);
    }
  }
  .hero--catch {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    z-index: 1;
    padding-top: 64px;
    padding-bottom: 64px;
    padding-left: 96px;
    padding-right: 96px;
    backdrop-filter: blur(8px);
    border-radius: 16px;
    white-space: nowrap;
  }
  .hero--catch::before {
    opacity: .85;
  }
  .hero .slider_wrap {
    height: 55svw;
    max-height: 720px;
  }
  .hero_slider {
    width: 50svw;
  }
  .hero_slider .slider_inner {
    display: flex;
    flex-direction: column;
  }
  .hero_slider-lft .slider_inner {
    animation: slideUp 50s linear infinite;
  }
  .hero_slider-rgt .slider_inner {
    animation: slideDown 50s linear infinite;
  }
  .hero_slider--item {
    position: relative;
    width: 100%;
    padding-top: 33.333svw;
  }
  .hero_slider--item img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  @media (max-width: 1064px) {
    .hero--catch {
      padding-top: 56px;
      padding-bottom: 56px;
      padding-left: 80px;
      padding-right: 80px;
      font-size: 100%;
    }
  }
  @media (max-width: 768px) {
    .hero .slider_wrap {
      height: 600px;
    }
    .hero--catch {
      padding-top: 6svw;
      padding-bottom: 7svw;
      padding-left: 0;
      padding-right: 0;
      font-size: 85%;
      width: calc(100% - 48px);
      border-radius: 10px;
    }
    .hero--catch .txt {
      line-height: 1.6em;
    }
  }
  @media (max-width: 560px) {
    .hero .slider_wrap {
      height: 360px;
    }
  }

/* home_news
*************************************************** */
  .home_news,
  .home_insta {
    width: 48%;
  }
  @media screen and (max-width: 960px) {
    .home_news,
    .home_insta {
      width: 100%;
    }
  }

/* home_blog
*************************************************** */
  .home_blog {
    overflow: hidden;
  }
  .home_blog .posts-blog .slick-list {
    overflow: visible;
  }
  .home_blog .posts-blog .slick-track {
    margin-left: 0;
  }
  .home_blog .posts-blog .post {
    padding-left: 20px;
    padding-right: 20px;
  }
  .home_blog .posts-blog .slick-arrow {
    position: absolute;
    top: calc(100% + 36px);
    left: 0;
    width: 56px;
    height: 56px;
  }
  .home_blog .posts-blog .arrow-dot {
    transform: scale(.6);
  }
  .home_blog .posts-blog .slick-prev .arrow-dot {
    transform: rotate(180deg) scale(.6);
  }
  .home_blog .posts-blog .slick-next {
    left: 76px;
  }
  .home_blog .posts-blog .slick-dots {
    position: absolute;
    bottom: calc(100% + 32px);
    right: 0;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
  }
  @media screen and (max-width: 560px) {
    .home_blog .posts-blog .slick-dots {
      bottom: calc(100% + 20px);
    }
    .home_blog .posts-blog .slick-arrow {
      top: calc(100% + 24px);
      width: 40px;
      height: 40px;
    }
    .home_blog .posts-blog .slick-next {
      left: 52px;
    }
  }

/* contents
*************************************************** */
  .lr_bloc .txtarea {
    flex: 1;
  }
  .lr_bloc .inner:not(.flx-rev) .txtarea {
    transform: translateX(-88px);
  }
  .lr_bloc .inner.flx-rev .txtarea {
    transform: translateX(88px);
  }
  .tb_bloc .txtarea {
    margin-top: -56px;
    max-width: 824px;
    margin-left: auto;
    margin-right: auto;
  }
  .bg_bloc {
    overflow: hidden;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
  }
  .bg_bloc::before {
    opacity: .75;
  }
  .bg_bloc::after {
    content: '';
    position: absolute;
    top: calc(50% - 25vw);
    left: calc(50% - 25vw);
    z-index: -1;
    width: 50vw;
    padding-top: 50vw;
    opacity: .7;
    border-radius: 100%;
    animation: bounce 20s ease-in-out 0s infinite forwards;
  }
  .bg_bloc .txtarea {
    padding-top: 8vw;
    padding-bottom: 8vw;
  }
  @media screen and (max-width: 960px) {
    .lr_bloc .inner:not(.flx-rev) .txtarea,
    .lr_bloc .inner.flx-rev .txtarea,
    .tb_bloc .txtarea {
      margin-top: -32px;
      transform: translate(0,0);
      width: calc(100% - 48px);
    }
  }
  @media screen and (max-width: 560px) {
    .lr_bloc .inner:not(.flx-rev) .txtarea,
    .lr_bloc .inner.flx-rev .txtarea,
    .tb_bloc .txtarea {
      width: calc(100% - 40px);
    }
    .bg_bloc::after {
      top: calc(50% - 55vw);
      left: calc(50% - 55vw);
      width: 110vw;
      padding-top: 110vw;
    }
  }

/* slider
*************************************************** */
  .slick-arrow,
  .slick-dots button {
    border-radius: 100px;
  }
  .slider .slick-list {
    overflow: visible;
  }
  .slider .slider--item img {
    border-radius: 1000px;
    overflow: hidden;
  }
  .slider .slider--item {
    margin-left: 10px;
    margin-right: 10px;
  }
  .slider .slick-arrow {
    position: absolute;
    width: 88px;
    height: 88px;
    padding: 0;
    border-width: 2px;
    border-style: solid;
  }
  .slider .slick-prev .arrow-dot {
    transform: rotate(180deg);
  }
  .slider .arrow-dot {
    width: 16px;
    height: 23px;
  }
  .slider .arrow-dot span {
    width: 4px;
    height: 4px;
    border-radius: 100%;
  }
  .slider .arrow-dot span:nth-of-type(2) {
    top: calc(25% - 2px);
    left: calc(50% - 2px);
  }
  .slider .arrow-dot span:nth-of-type(3) {
    top: calc(50% - 2px);
  }
  .slider .arrow-dot span:nth-of-type(4) {
    bottom: calc(25% - 2px);
    left: calc(50% - 2px);
  }

  /* --- slider-a --- */
  .slider-a .slider {
    margin-bottom: 34px;
  }
  .slider-a .slider--item .txtarea {
    flex: 1;
  }
  .slider-a .slick-arrow {
    top: calc(50% - 44px);
  }
  .slider-a .slick-dots {
    bottom: -34px;
    left: 50%;
    transform: translateX(-50%);
  }
  .slider-a .slick-next {
    right: -4px;
  }
  .slider-a .slick-prev {
    left: -4px;
  }

  /* --- slider-b --- */
  .slider-b .slider {
    padding-bottom: 56px;
  }
  .slider-b .slick-dots {
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
  }
  @media screen and (min-width: 961px) {
    .slider .slick-arrow:hover {
      animation: hov_bounce .5s cubic-bezier(.5,0,.8,1) 0s 1 forwards;;
    }
  }
  @media screen and (max-width: 560px) {
    .slider .slider--item img {
      border-radius: 8px;
    }
    .slider .slick-dots li:not(:last-child) {
      margin-right: 12px;
    }
    .slider-a .slider--item {
      margin-left: 24px;
      margin-right: 24px;
    }
    .slider-a .slider--item .imgarea {
      margin-bottom: 20px;
    }
    .slider-a .slider--item img {
      width: 80%;
    }
    .slider-a .slick-arrow {
      width: 56px;
      height: 56px;
      top: calc(50% - 28px);
    }
    .slider-a .slick-next {
      right: -12px;
    }
    .slider-a .slick-prev {
      left: -12px;
    }
    .slider-a .arrow-dot {
      width: 13px;
      height: 16px;
    }
    .slider-a .arrow-dot span {
      width: 3px;
      height: 3px;
    }
    .slider-a .arrow-dot span:nth-of-type(2) {
      top: calc(25% - 1px);
      left: calc(50% - 1px);
    }
    .slider-a .arrow-dot span:nth-of-type(4) {
      bottom: calc(25% - 1px);
      left: calc(50% - 1px);
    }
    .slider-b .slider {
      padding-bottom: 40px;
    }
    .slider-b .slider--item {
      margin-right: 5px;
      margin-left: 5px;
    }
  }

/* column
*************************************************** */
  .column .btn {
    width: 100%;
  }
  .column .btn--in {
    margin-left: auto;
    margin-right: auto;
  }
  .column:not(.column-lg) .column_list .imgarea img {
    border-radius: 1000px;
    overflow: hidden;
  }
  .column:not(.column-lg) .column_list .txtarea p {
    font-size: 93%;
    line-height: 2em;
  }
  .column-sm .head2-jp {
    font-size: 116%;
  }
  .modal_list--item .img {
    margin-top: 40px;
    padding-left: 24px;
    padding-right: 24px;
  }
  .modal_list--item .img img {
    display: block;
    margin-left: auto;
    margin-right: auto;
    max-width: 500px;
    width: 100%;
    border-radius: 10000px;
  }
  .modal_list--item {
    list-style: none !important;
  }
  .modal_list--item .txtarea {
    flex: 1;
    padding-top: 40px;
    padding-bottom: 40px;
    padding-left: 64px;
    padding-right: 64px;
  }
  .iziModal-navigate-caption {
    display: none !important;
  }
  @media screen and (max-width: 1280px) {
    .modal_list--item .flx {
      display: block;
    }
    .modal_list--item .flx .img {
      padding-top: 40px;
    }
    .modal_list--item .flx .img img {
      width: 100%;
      max-width: 600px;
    }
  }
  @media screen and (max-width: 750px) {
    .modal_list--item .flx .img {
      padding-top: 0;
    }
  }
  @media screen and (max-width: 560px) {
    .column:not(.column-lg) .column_list .txtarea p {
      line-height: 1.8em;
      letter-spacing: .15em;
    }
    .modal_list--item {
      max-width: 95% !important;
    }
    .iziModal-navigate {
      z-index: 100000 !important;
    }
    .modal_list--item .txtarea {
      padding-top: 32px;
      padding-bottom: 64px;
      padding-left: 24px;
      padding-right: 24px;
    }
    .iziModal-navigate>button {
      width: 48px;
      height: 48px;
      top: inherit;
      top: auto;
      bottom: 32px;
      background: #fff;
      opacity: .9;
      border-radius: 100px;
      box-shadow: 0 0 0 4px rgba(0,0,0,.05);
    }
    .iziModal-navigate>button::before {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 8px;
      height: 8px;
      border-top: 1px solid;
      border-right: 1px solid;
      transform-origin: 0 0;
    }
    .iziModal-navigate .iziModal-navigate-prev {
      left: calc(100% - 140px);
      margin-left: 0 !important;
    }
    .iziModal-navigate .iziModal-navigate-prev::before {
      transform: rotate(-135deg) translate(-50%,-50%);
    }
    .iziModal-navigate .iziModal-navigate-next {
      right: 24px;
      margin-right: 0 !important;
    }
    .iziModal-navigate .iziModal-navigate-next::before {
      transform: rotate(45deg) translate(-50%,-50%);
    }
  }

/* company
*************************************************** */
  .company .gm {
    width: 100%;
    padding-top: 35%;
  }
  .company .txtarea .ttl {
    position: absolute;
    top: -16px;
    right: 32px;
    line-height: 0em;
    font-size: 750%;
    opacity: .25;
  }
  @media screen and (max-width: 960px) {
    .company .gm {
      padding-top: 60%;
    }
    .company .list-def:not(:first-child) {
      margin-top: 0;
    }
  }
  @media screen and (max-width: 560px) {
    .company .gm {
      padding-top: 75%;
    }
    .company .txtarea {
      width: 100%;
      margin-top: 0;
    }
    
  }

/* bnr
*************************************************** */
  @media screen and (max-width: 560px) {
    .bnr_list--item:not(:last-child) {
      margin-bottom: 8px;
    }
    .bnr_list-col3 .bnr_list--item,
    .bnr_list-col4 .bnr_list--item {
      width: 49%;
    }
  }


/* ##############################################################################

    ARCHIVE

############################################################################## */

/* common
*************************************************** */
  .main_column {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 100%;
    flex: 1;
    margin-right: 96px;
  }
  .side_column {
    width: 280px;
  }
  .side--ttl span {
    display: block;
  }
  .side--ttl span:not(:last-child) {
    margin-bottom: 16px;
  }
  .side--ttl .fnt-en {
    font-size: 70%;
    line-height: 1em;
  }
  .side--ttl .fnt-jp {
    font-size: 133%;
    line-height: 1em;
  }
  .side--cat .cat_list--item::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    opacity: .1;
  }
  .side--cat .cat_list--item a {
    display: block;
    padding-top: 10px;
    padding-bottom: 10px;
    padding-left: 12px;
    padding-right: 24px;
  }
  .side--cat .cat_list--item a .arrow {
    position: absolute;
    top: calc(50% - 3px);
    right: 12px;
    width: 5px;
    height: 5px;
    z-index: 1;
  }
  .side--cat .cat_list--item a .arrow::before {
    border-top-width: 2px;
    border-right-width: 2px;
    border-top-style: solid;
    border-right-style: solid;
    transform: rotate(45deg);
    opacity: .5;
  }
  .post--cat a {
    font-size: 80%;
    letter-spacing: .2em;
    padding-top: 6px;
    padding-bottom: 6px;
    padding-left: 12px;
    padding-right: 12px;
  }
  .post--cat a::before {
    border-radius: 2px;
    opacity: .15;
  }
  @media screen and (min-width: 1065px) {
    .side--cat .cat_list {
      display: block !important;
    }
  }
  @media screen and (min-width: 961px) {
    @keyframes hov_arrow {
      0% {
        transform: translateX(0);
        opacity: 1;
      }
      50% {
        transform: translateX(4px);
        opacity: 0;
      }
      51% {
        transform: translateX(-4px);
        opacity: 0;
      }
      100% {
        opacity: 1;
        transform: translateX(0);
      }
    }
    .side--cat .cat_list--item a:hover .arrow {
      animation-duration: 1.2s;
      animation-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1);
      animation-delay: 0;
      animation-iteration-count: infinite;
      animation-fill-mode: forwards;
      animation-name: hov_arrow;
    }
    .post--cat a:hover {
      color: #fff;
    }
    .post--cat a:hover::before {
      opacity: 1;
    }
  }
  @media screen and (max-width: 1064px) {
    .fix_wrap {
      -webkit-flex-direction: column;
      -ms-flex-direction: column;
      flex-direction: column;
      -webkit-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
      flex-direction: column-reverse;
    }
    .main_column,
    .side_column,
    .side_column--in {
      width: 100%;
      position: static !important;
    }
    .main_column {
      margin-right: 0;
    }
    .side_column {
      margin-bottom: 64px;
    }
    .side_column .cat_list {
      display: none;
    }
    .side_column .btn-plus {
      width: 48px;
      height: 48px;
    }
    .side_column .btn-plus::before {
      opacity: .1;
      transform: scale(.8);
      border-radius: 100%;
    }
    .side_column .btn-plus .line {
      position: absolute;
      top: 50%;
      left: calc(50% - 13%);
      width: 26%;
      height: 1px;
    }
    .side_column .btn-plus .line:nth-of-type(2) {
      transform: rotate(90deg);
    }
    .side_section.active .btn-plus .line:nth-of-type(2) {
      transform: rotate(0deg);
    }
  }
  @media screen and (max-width: 560px) {
    .side_column {
      margin-bottom: 32px;
    }
  }

/* blog
*************************************************** */
  .archive_blog .posts-blog {
    margin-top: -40px;
  }
  .archive_blog .posts-blog .post {
    width: calc(50% - 20px);
    margin-top: 40px;
  }
  .archive_blog .posts-blog .post--in {
    border-width: 3px;
    border-style: solid;
  }
  .archive_blog .posts-blog .post--in.radius_box::before {
    top: -3px;
  }
  .posts-blog .post .date_cat {
    z-index: 1;
  }
  .posts-blog .post .post--date {
    opacity: .5;
    letter-spacing: .1em;
  }
  .posts-blog .post--ttl a::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  .posts-blog .post--img {
    width: 100%;
    padding-top: calc(100% * 9 / 16 );
    overflow: hidden;
  }
  .posts-blog .post--img .post--img_src {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    transition: 1s cubic-bezier(0.17,0.84,0.44,1);
  }
  .posts-blog .post--img.no_img::before {
    opacity: .35;
    z-index: -10;
  }
  .posts-blog .post--img.no_img .post--img_src {
    z-index: -1;
    background-image: url(../images/logo-wht@2x.png);
    background-size: 33%;
  }
  .archive_blog .posts-blog .post.no_post {
    width: 100%;
    padding-top: 10vw;
    padding-bottom: 10vw;
  }
  .archive_blog .posts-blog .post.no_post::before {
    opacity: .1;
  }
  @media screen and (min-width: 961px) {
    .posts-blog .post:hover {
      animation: hov_bounce .6s cubic-bezier(.5,0,.8,1) 0s 1 forwards;;
    }
  }
  @media screen and (max-width: 768px) {
    .archive_blog .posts-blog {
      margin-top: -40px;
    }
    .archive_blog .posts-blog .post {
      width: calc(50% - 12px);
      margin-top: 40px;
    }
  }
  @media screen and (max-width: 560px) {
    .archive_blog .posts-blog {
      margin-top: -32px;
    }
    .archive_blog .posts-blog .post {
      width: 100%;
      margin-top: 32px;
    }
  }
  @media screen and (max-width: 413px) {
    .archive_blog .posts-blog .post--in.radius_box {
      padding: 24px;
    }
  }

/* news
**************************************** */

  /* --- news_list --- */
  .posts-news .post {
    padding-top: 24px;
    padding-bottom: 24px;
    padding-left: 24px;
    padding-right: 24px;
    margin-bottom: 0;
    border-bottom-width: 1px;
    border-bottom-style: dashed;
    line-height: 1em;
  }
  .posts-news .post--date {
    font-size: 86%;
    margin-bottom: 12px;
  }
  .posts-news .post a {
    display: block;
  }
  .ico-outlink {
    display: inline-block;
    position: relative;
    width: 11px;
    height: 11px;
    margin-left: 8px;
  }
  .ico-outlink::before,
  .ico-outlink::after {
    content: '';
    position: absolute;
    width: 8px;
    height: 8px;
    border-style: solid;
    border-width: 1px;
  }
  .ico-outlink::before {
    top: 0;
    right: 0;
  }
  .ico-outlink::after {
    bottom: 0;
    left: 0;
  }

  @media screen and (max-width: 560px) {
    main .posts-news .post {
      padding-top: 20px;
      padding-bottom: 20px;
      padding-left: 0;
      padding-right: 0;
    }
    main .posts-news .post:first-child {
      padding-top: 12px;
    }
    main .posts-news .post--date {
      display: inline-block;
      background-color: transparent;
      min-width: auto;
      padding: 0;
      margin-bottom: 4px;
      opacity: .5;
    }
  }


/* ##############################################################################

    SINGLE

############################################################################## */
  .pagenavi {
    display: flex;
    display: -webkit-flex;
    flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    justify-content: center;
    -webkit-justify-content: center;
    margin-top: 64px;
  }
  .pagenavi a {
    position: relative;
    z-index: 0;
    display: inline-block;
    vertical-align: top;
    font-weight: bold;
    line-height: 1.4;
    padding: 8px 13px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: .8s all;
    border-radius: 100px;
    margin-left: 6px;
    margin-right: 6px;
  }
  .pagenavi a::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    opacity: 0;
  }
  .pagenavi a.current {
    color: #fff;
    pointer-events: none;
  }
  @media  only screen and (min-width: 961px) {
    .pagenavi a:hover::before {
      opacity: .2;
    }
  }
  @media screen and (max-width: 560px) {
    .pagenavi {
      margin-top: 40px;
    }
  }

/* blog
*************************************************** */
  @media screen and (max-width: 1064px) {
    .single_blog .side_column {
      display: none;
    }
  }


/* ##############################################################################

    PRIVACY

############################################################################## */
  .subpage-privacy .txtarea-privacy h3 {
    margin-top: 40px;
    margin-bottom: 8px;
  }
  .subpage-privacy .txtarea-privacy ol {
    padding-left: 1.7em;
    list-style-type: decimal;
  }
  @media screen and (max-width: 560px) {
    .subpage-privacy .txtarea-privacy h3 {
      margin-top: 32px;
    }
  }


/* ##############################################################################

    TOKUSHOHO

############################################################################## */
  .tokushoho .list-def li > div {
    display: block;
    padding-top: 20px;
    padding-bottom: 20px;
  }
  .tokushoho .list-def li > div .head4 {
    opacity: .5;
  }
  .tokushoho .list-def li > *:not(h4) {
    -webkit-justify-content: start;
    -ms-flex-pack: start;
    justify-content: start;
  }
  @media screen and (max-width: 560px) {
    .tokushoho .list-def li > div {
      padding-top: 12px;
      padding-bottom: 16px;
      padding-left: 0;
      padding-right: 0;
    }
    .tokushoho .list-def li > div .head4 {
      font-size: 92%;
      line-height: 1em;
      margin-bottom: 2px;
    }
    .tokushoho .list-def li > div p {
      padding-bottom: 0;
    }
  }


/* ##############################################################################

    CONTACT FORM

############################################################################## */

/* layout
*************************************************** */
  .contact {
    overflow: hidden;
  }
  .contact .tel_num {
    font-size: 333%;
    line-height: 1em;
  }
  .contact .tel_num small {
    font-size: 60%;
  }
  .contact .contact--line {
    padding-top: 48px;
    padding-bottom: 48px;
    padding-left: 80px;
    padding-right: 80px;
    border-radius: 1000px;
  }
  .contact .imgarea {
    z-index: -10;
  }
  .contact .imgarea .img {
    position: absolute;
  }
  .contact .imgarea .img01 {
    left: 95%;
    top: -260px;
    width: 360px;
    height: 360px;
  }
  .contact .imgarea .img02 {
    top: -80px;
    right: 102%;
    width: 300px;
    height: 401px;
  }
  .contact .imgarea .img::before {
    opacity: .2;
  }
  .contact .imgarea .img01::before {
    transform: translate(48px,64px);
  }
  .contact .imgarea .img02::before {
    transform: translate(-72px,-48px);
  }
  @media screen and (max-width: 560px) {
    .contact .tel_num {
      font-size: 230%;
    }
    .contact .txts {
      position: relative;
      z-index: 1;
    }
    .contact .contact--line {
      padding-top: 24px;
      padding-bottom: 28px;
      padding-left: 24px;
      padding-right: 24px;
      width: 100%;
    }
    .contact .imgarea .img {
      opacity: 0.3;
    }
    .contact .imgarea .img01 {
      left: 68%;
      top: -80px;
      width: 120px;
      height: 120px;
    }
    .contact .imgarea .img02 {
      top: 0;
      right: 82%;
      width: 110px;
      height: 160px;
    }
  }
  @media screen and (max-width: 320px) {
    .contact .tel_num {
      font-size: 200%;
    }
  }

/* common
*************************************************** */
  .cf_form {
    padding: 0;
  }
  .cf_form::before {
    z-index: 0;
  }
  .cf_form .form_wrap {
    z-index: 1;
  }
  .cf_form table { width:100%; }
  .cf_form th,
  .cf_form td {
    position: relative;
    line-height: 36px;
    padding-top: 16px;
    padding-bottom: 16px;
    vertical-align: middle;
  }
  .cf_form th {
    position: relative;
    width: 192px;
    font-weight: normal;
    white-space: nowrap;
    text-align: right;
  }
  .cf_form th .contact-item {
    padding-right: 48px;
  }
  .cf_form td {
    padding-left: 48px;
    font-family: 'YuGothic', '游ゴシック', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic ProN', 'メイリオ', 'Meiryo', 'ＭＳ Ｐゴシック', sans-serif;
  }
  .cf_form td:not(.cf_rc) {
    line-height: 48px;
  }
  .cf_form table input[type="text"],
  .cf_form table input[type="email"],
  .cf_form table input[type="tel"],
  .cf_form table input[type="date"],
  .cf_form table input[type="password"],
  .cf_form table textarea {
    width: 100%;
    vertical-align: bottom;
    -webkit-appearance: none;
    appearance: none;
    border-radius: 0px;
  }
  .cf_form table input[type="text"],
  .cf_form table input[type="email"],
  .cf_form table input[type="tel"],
  .cf_form table input[type="date"],
  .cf_form table input[type="password"] {
    height: 48px;
    line-height: 48px;
  }
  .cf_form table input[type="text"],
  .cf_form table input[type="email"],
  .cf_form table input[type="tel"],
  .cf_form table input[type="date"],
  .cf_form table input[type="password"],
  .cf_form select,
  .cf_form textarea {
    margin: 0;
    padding-left: 16px;
    padding-right: 16px;
    border: 1px solid #ccc;
    font: inherit;
    font-size: 100%;
  }
  .cf_form textarea {
    height: 100px;
    padding-top: 8px;
    padding-bottom: 8px;
    line-height: 1.6em;
  }
  .cf_form select { height: 48px; }
  .cf_form ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .cf_form table input::placeholder,
  .cf_form select::placeholder,
  .cf_form textarea::placeholder {
    color: #ccc;
  }
  .cf_form input:hover { opacity: .7; }
  .cf_form textarea:hover { opacity: .7; }

/* radio & checkbox
*************************************************** */
  .cf_form .cf_rc input[type="radio"],
  .cf_form .cf_rc input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }
  .cf_form .cf_rc .wpcf7-list-item {
    margin-left: 0;
    display: block;
    margin-right: 16px;
  }
  .cf_form .cf_rc .wpcf7-list-item-label {
    height: 32px;
    line-height: 32px;
    display: inline-block;
    vertical-align: top;
    position: relative;
    padding-left: 24px;
    padding-right: 8px;
    cursor: pointer;
    white-space: nowrap;
  }

  .cf_form .cf_rc .wpcf7-list-item-label:hover { opacity: .7; }
  .cf_form .cf_rc .wpcf7-list-item-label::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
  }
  .cf_form .acceptance input[type="checkbox"] {
    position: relative;
    margin-right: 8px;
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    background-color: transparent;
  }
  .cf_form .cf_rc .wpcf7-list-item-label::before,
  .cf_form .acceptance input[type="checkbox"] {
    width: 15px;
    height: 15px;
    border-width: 1px;
    border-style: solid;
  }
  .cf_form .cf_rc input[type="radio"] + .wpcf7-list-item-label::before { border-radius: 10px; }
  .cf_form .cf_rc input[type="radio"]:checked + .wpcf7-list-item-label,
  .cf_form .cf_rc input[type="checkbox"]:checked + .wpcf7-list-item-label {
    color: #de0329;
    font-weight: bold;
  }
  .cf_form .cf_rc input[type="radio"]:checked + .wpcf7-list-item-label::before,
  .cf_form .cf_rc input[type="checkbox"]:checked + .wpcf7-list-item-label::before,
  .cf_form .acceptance input[type="checkbox"]:checked {
    border-color: #de0329;
  }
  .cf_form .cf_rc input[type="radio"]:checked + .wpcf7-list-item-label::after,
  .cf_form .cf_rc input[type="checkbox"]:checked + .wpcf7-list-item-label::after,
  .cf_form .acceptance input[type="checkbox"]:checked::after {
    content: "";
    position: absolute;
    top: 12px;
    left: 5px;
    z-index: 10;
    width: 5px;
    height: 9px;
    border-right: 2px solid #de0329;
    border-bottom: 2px solid #de0329;
    display: block;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  .cf_form .acceptance input[type="checkbox"]:checked::after {
    top: 1px;
    left: 4px;
  }

/* address
*************************************************** */
  .cf_form table .cf_zip input[type="text"] {
    width: auto;
    margin-left: 8px;
    margin-right: 8px;
  }

/* other
*************************************************** */
  
  /* --- support --- */
  .cf_form--support {
    margin-top: 4px;
    line-height: 1.6em;
    font-size: 80%;
    letter-spacing: .05em;
  }
  
  /* --- required --- */
  .required {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    width: 32px;
    line-height: 32px;
    background-color: #de0329;
    border-radius: 100px;
    color: #fff;
    font-size: 80%;
    text-align: center;
    letter-spacing: 0em;
  }

  /* --- cf_form--btns --- */
  .cf_form--btns {
    padding-top: 32px;
    text-align: center;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
  }
  .cf_form--btns .btn {
    margin: 8px;
  }
  .cf_form--btns button {
    border: none;
    padding: 0;
    margin: 0;
    border: none;
    border-radius: 0;
    font-size: inherit;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    background: transparent;
    letter-spacing: .15em;
  }
  .cf_form--btns button:focus {
    outline: none;
  }
  .cf_form--btns .btn--in {
    width: 224px;
  }
  .cf_form--btns > *:not(:last-child) {
    margin-right: 24px;
  }

  /* --- error --- */
  .formError {
    position: static !important;
    font-weight: bold;
    font-size: 93%;
  }
  .formErrorContent {
    color: #de0329;
    font-size: 85%;
    letter-spacing: .05em;
    line-height: 1.8em;
    margin-bottom: 8px;
  }
  
  /* --- hide --- */
  div.wpcf7 .ajax-loader,
  .cf_form form.sent p,
  .cf_form form.sent table,
  .cf_form form.sent .acceptance,
  .cf_form form.sent div.wpcf7-mail-sent-ok:nth-child(2),
  .cf_form form.sent .cf_form--btns {
    display: none !important;
  }

  .contact_confirm .cf_form th,
  .contact_confirm .cf_form td {
    line-height: 1.8em;
  }
  .contact_confirm .cf_form th {
    font-family: 'Hiragino Kaku Gothic W6 JIS2004';
    padding-top: 12px;
  }
  .contact_confirm .cf_form td {
    padding-bottom: 12px;
  }
  
  @media only screen and (max-width: 960px) {
    .cf_form th,
    .cf_form td {
      display: block;
      width: auto;
      padding-left: 0;
      padding-right: 0;
    }
    .cf_form th {
      width: 100%;
      border-bottom:none;
      padding-top: 8px;
      padding-bottom: 0;
      white-space: normal;
      font-weight: bold;
      text-align: left;
    }
    .cf_form td {
      padding-top: 8px;
      padding-bottom: 8px;
      padding-left: 0;
    }
    .cf_form .cf_rc .wpcf7-list-item {
      display: block;
    }
    .cf_form table .cf_zip input[type="text"] {
      width: calc(100% - 120px);
      margin-right: 0;
    }
    .cf_form--btns { padding-top: 8px; }
    .cf_form--btns input {
      width: 100%;
      margin-right: 0;
      margin-left: 0;
      background-size: contain;
      background-position: center;
    }
  }
  @media screen and (max-width: 560px) {
    .cf_form table input[type="text"],
    .cf_form table input[type="email"],
    .cf_form table input[type="tel"],
    .cf_form table input[type="date"],
    .cf_form table input[type="password"],
    .cf_form textarea {
      font-size: 16px;
    }
    .cf_form--btns {
      margin-top: 16px;
    }
    .cf_form--btns,
    .cf_form--btns > * {
      display: block;
    }
    .cf_form--btns > *:not(:last-child) {
      margin-right: 0;
      margin-bottom: 8px;
    }
    .cf_form--btns .btn,
    .cf_form--btns .btn .btn--in {
      min-width: 100%;
    }
  }

/* recapthca
*************************************************** */
  .recaptcha_txt {
    display: block;
    font-size: 80%;
    opacity: .6;
    letter-spacing: .05em;
    line-height: 1em;
  }
  .grecaptcha-badge { visibility: hidden; }