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

    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% {
      width: 65%;
      opacity: .5;
      transform: translateX(0);
    }
    100% {
      width: 20%;
      opacity: 0;
      transform: translateX(-8px);
    }
  }
  @keyframes gnav_line_mov2_out {
    0% {
      width: 20%;
      opacity: 0;
      transform: translateX(-8px);
    }
    100% {
      width: 65%;
      opacity: .5;
      transform: translateX(0);
    }
  }
  @keyframes gnav_line_mov3_in {
    0% {
      top: 100%;
      width: 80%;
      transform: rotate(0deg);
    }
    50% {
      top: 50%;
      width: 100%;
      transform: rotate(0deg);
    }
    100% {
      top: 50%;
      width: 100%;
      transform: rotate(30deg);
    }
  }
  @keyframes gnav_line_mov3_out {
    0% {
      top: 50%;
      width: 100%;
      transform: rotate(30deg);
    }
    50% {
      top: 50%;
      width: 100%;
      transform: rotate(0deg);
    }
    100% {
      top: 100%;
      width: 80%;
      transform: rotate(0deg);
    }
  }
  @keyframes fade_in_slide {
    0% {
      opacity: 0;
      transform: translateY(12px);
      filter: blur(8px);
    }
    100% {
      opacity: 1;
      transform: translateY(0);
      filter: blur(0);
    }
  }
  @keyframes fade_in {
    0% { opacity: 0; }
    100% { opacity: .1; }
  }
  @keyframes fade_out {
    0% { opacity: .1; }
    100% { opacity: 0; }
  }
  @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 ttl_line_mov {
    0% {
      transform: translateX(-110%);
    }
    50% {
      transform: translateX(110%);
    }
    50.1% {
      transform: translateX(-110%);
    }
    100% {
      transform: translateX(0);
    }
  }
  @keyframes btn_hov {
    0% {
      opacity: 1;
      transform: translate(0px,-50%) rotate(45deg);
    }
    45% {
      opacity: 0;
      transform: translate(8px,-50%) rotate(45deg);
    }
    55% {
      opacity: 0;
      transform: translate(-8px,-50%) rotate(45deg);
    }
    100% {
      opacity: 1;
      transform: translate(0px,-50%) rotate(45deg);
    }
  }
  @keyframes next_btn_hov-A {
    0% {
      opacity: 1;
      transform: translate(0,-50%) rotate(45deg) skew(10deg,10deg);
    }
    45% {
      opacity: 0;
      transform: translate(8px,-50%) rotate(45deg) skew(10deg,10deg);
    }
    55% {
      opacity: 0;
      transform: translate(-8px,-50%) rotate(45deg) skew(10deg,10deg);
    }
    100% {
      opacity: 1;
      transform: translate(0,-50%) rotate(45deg) skew(10deg,10deg);
    }
  }
  @keyframes prev_btn_hov-A {
    0% {
      opacity: 1;
      transform: translate(0,-50%) rotate(-135deg) skew(10deg,10deg);
    }
    45% {
      opacity: 0;
      transform: translate(-8px,-50%) rotate(-135deg) skew(10deg,10deg);
    }
    55% {
      opacity: 0;
      transform: translate(8px,-50%) rotate(-135deg) skew(10deg,10deg);
    }
    100% {
      opacity: 1;
      transform: translate(0,-50%) rotate(-135deg) skew(10deg,10deg);
    }
  }
  @keyframes next_btn_hov-B {
    0% {
      opacity: 1;
      transform: translate(-50%,-50%) rotate(45deg);
    }
    45% {
      opacity: 0;
      transform: translate(-10%,-50%) rotate(45deg);
    }
    55% {
      opacity: 0;
      transform: translate(-90%,-50%) rotate(45deg);
    }
    100% {
      opacity: 1;
      transform: translate(-50%,-50%) rotate(45deg);
    }
  }
  @keyframes prev_btn_hov-B {
    0% {
      opacity: 1;
      transform: translate(-50%,-50%) rotate(-135deg);
    }
    45% {
      opacity: 0;
      transform: translate(-90%,-50%) rotate(-135deg);
    }
    55% {
      opacity: 0;
      transform: translate(-10%,-50%) rotate(-135deg);
    }
    100% {
      opacity: 1;
      transform: translate(-50%,-50%) rotate(-135deg);
    }
  }
  .loaded .ts,
  .loaded .ts-bf::before {
    transition: .6s all;
  }
  .loaded .ts04,
  .loaded .ts04-bf::before {
    transition: .4s all;
  }

  .fade_in {
    opacity: 0;
    transform: translateY(12px);
    filter: blur(8px);
  }
  .visible.fade_in,
  .visible .fade_in {
    animation-duration: .8s;
    animation-timing-function: cubic-bezier(.47,0,.08,.99);
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-fill-mode: forwards;
    animation-play-state: running;
    animation-name: fade_in_slide;
  }

  .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: 2;
    letter-spacing: .1em;
    text-align: justify;
    font-weight: 300;
  }
  @media screen and (max-width: 560px) {
    body {
      font-size: 13px;
      -webkit-text-size-adjust: none;
    }
  }

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


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

  /* --- sect_pdg --- */
  .sect_pdg {
    padding-top: 88px;
    padding-bottom: 88px;
  }
  .sect_pdg-sm {
    padding-top: 72px;
    padding-bottom: 72px;
  }
  .sect_pdg-btm_no { padding-bottom: 0; }
  .sect_pdg-top_no { padding-top: 0; }
  @media screen and (max-width: 960px) {
    .sect_pdg {
      padding-top: 64px;
      padding-bottom: 64px;
    }
    .sect_pdg-btm_no { padding-bottom: 0; }
    .sect_pdg-top_no { padding-top: 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-btm_no { padding-bottom: 0; }
    .sect_pdg-top_no { padding-top: 0; }
  }

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

  /* --- page_ttl --- */
  .page_ttl {
    padding-top: 120px;
    padding-bottom: 40px;
    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;
  }

  /* --- sect_ttl --- */
  .sect_ttl {
    font-weight: normal;
  }
  .sect_ttl-en,
  .sect_ttl-jp {
    display: block;
    letter-spacing: .15em;
  }
  .sect_ttl-jp {
    font-weight: normal;
    font-size: 157%;
    line-height: 1.6;
  }
  .sect_ttl-en {
    font-weight: bold;
    font-size: 93%;
    text-transform: uppercase;
  }
  .sect_ttl .line {
    display: block;
    width: 48px;
    height: 1px;
    margin-top: 24px;
    margin-left: auto;
    margin-right: auto;
    opacity: .75;
    overflow: hidden;
  }
  .sect_ttl .line::before {
    width: 50%;
  }
  .sect_ttl .line::after {
    z-index: -1;
    opacity: .2;
  }
  .sect_ttl-sm .sect_ttl-en {
    font-size: 109%;
  }
  .sect_ttl-sm .line {
    width: 1px;
    height: 32px;
    margin-top: 8px;
  }
  .sect_ttl.flx .sect_ttl-jp {
    margin-right: 24px;
  }
  .sect_catch {
    text-align: center;
    font-size: 120%;
    font-weight: 700;
  }
  .sect_ttl .line::before {
    transform: translateX(-110%);
  }
  .visible.sect_ttl .line::before,
  .visible .sect_ttl .line::before {
    animation: ttl_line_mov .65s cubic-bezier(0,.5,.5,1) .4s 1 forwards;
  }

  /* --- heading --- */
  .head1,
  .head2,
  .head3 {
    line-height: 1.6em;
  }
  .head1 {
    font-weight: normal;
  }
  .head1-en,
  .head1-jp,
  .head1 span {
    display: block;
    letter-spacing: .15em;
  }
  .head1-jp {
    font-weight: normal;
    font-size: 128%;
    line-height: 1.6;
  }
  .head1-en {
    font-weight: bold;
    font-size: 85%;
    text-transform: uppercase;
  }
  .head2 { font-size: 114%; }
  .head2 span { display: block; }
  .head2 .line {
    margin-top: 16px;
    width: 24px;
    height: 1px;
  }
  .head3 { font-size: 120%; }
  .head4 { font-size: 100%; }
  @media screen and (max-width: 960px) {
    .page_ttl {
      padding-top: 96px;
    }
  }
  @media screen and (max-width: 560px) {
    .page_ttl {
      padding-bottom: 24px;
    }
    .head2 .line {
      margin-top: 8px;
    }
  }

/* txt
**************************************** */
  h1,h2,h3,h4,h5,h6 { font-weight: 500; }
  .fnt-lg { font-size: 107%; }
  .fnt-sm { font-size: 93%; }
  .fnt-xs { font-size: 85%; }
  .fnt-en,
  .slider-a .slick-arrow { font-family: 'Cormorant Garamond', serif; }
  .fnt-jp { font-family: 'Noto Sans JP'; }
  .fnt-bold:not(.fnt-en),
  .tbl-def th { font-weight: 500 }
  .fnt-min { font-family: 'Zen Old Mincho', serif; }
  .op05 { opacity: .5; }

/* 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 > * {
    position: relative;
    padding-top: 12px;
    padding-bottom: 12px;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
  }
  .list-def li h4 {
    width: 220px;
    margin-right: 8px;
    text-align: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    font-family: 'Hiragino Kaku Gothic W5 JIS2004';
  }
  .list-def li > *::before {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    opacity: .2;
  }
  .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;
    }
    .list-def li h4::before {
      bottom: 100%;
    }
    .list-def li > *:not(h4) {
      padding-left: 0;
      padding-right: 0;
      padding-top: 4px;
      padding-bottom: 16px;
      border-bottom-width: 2px;
    }
    .list-def li:not(:last-child) p::before {
      content: none;
    }
    .flx ul.list-def:not(:last-child) {
      margin-bottom: 0;
    }
    .flx ul.list-def:not(:last-child) li p::before {
      content: none;
    }
  }

  /* --- attn_list --- */
  .attn_list--item {
    position: relative;
    padding-left: 1.4em;
    font-size: 87%;
  }
  .attn_list--item::before {
    content: '\203B';
    position: absolute;
    top: 0;
    left: 0;
  }

/* btn
**************************************** */
  /* --- btn --- */
  .btn {
    display: inline-block;
  }
  .btn .btn--in {
    width: 160px;
    max-width: 100%;
    height: 32px;
    padding-left: 16px;
    padding-right: 16px;
    font-weight: bold;
    font-size: 93%;
    border-width: 1px;
    border-style: solid;
    line-height: 1em;
  }
  .btn .btn--in::after {
    opacity: 0;
    transition: .4s all;
  }
  .btn:not(.btn-outlink) .btn--in::before {
    content: '';
    position: absolute;
    top: 50%;
    right: 16px;
    width: 6px;
    height: 6px;
    border-top-width: 1px;
    border-right-width: 1px;
    border-top-style: solid;
    border-right-style: solid;
    transform: translateY(-50%) rotate(45deg);
  }
  @media screen and (min-width: 961px) {
    .btn:not(.btn-outlink) .btn--in:hover::before {
      animation: btn_hov 1.2s cubic-bezier(0,.5,.5,1) 0s infinite forwards;
    }
    .btn .btn--in:hover::after {
      opacity: .1;
    }
  }

/* 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: -4.2%; }
  .flx-lo3 > * {
    width: 30.5%;
    margin-right: 4.2%;
    margin-top: 4.2%;
  }
  .flx-lo3 > *:nth-child(3n+3) { margin-right: 0; }
  .flx-lo4 { margin-top: -3.85%; }
  .flx-lo4>* {
    width: 22.1%;
    margin-right: 3.85%;
    margin-top: 3.85%;
  }
  .flx-lo4 > *:nth-child(4n+4) { margin-right: 0; }
  @media screen and (max-width: 960px) {
    .flx-lo2-tab { margin-top: -3%; }
    .flx-lo2-tab > *,
    .flx-lo2-tab.flx-lo3 > *:nth-child(3n+3) {
      width: 48.5%;
      margin-right: 3%;
      margin-top: 3%;
    }
    .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: 47%;
      margin-right: 6%;
      margin-top: 6%;
    }
    .flx-lo4.flx-lo2-sp > * { margin-top: 6%; }
    .flx-lo2-sp > *:nth-child(even) { margin-right: 0; }
    .flx-lo3-sp { margin-top: -3%; }
    .flx-lo3-sp > *,
    .flx-lo3-sp.flx-lo4 > *:nth-child(4n+4) {
      width: 31.3%;
      margin-right: 3%;
      margin-top: 3%;
    }
    .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: 6px;
  }
  .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:not(:last-child) {
      margin-right: 0;
    }
    .sns_list--item a {
      margin-left: auto;
    }
  }

/* box
**************************************** */
  .shad_box {
    padding-top: 20px;
    padding-bottom: 20px;
    padding-left: 24px;
    padding-right: 24px;
  }
  .shad_box::before {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    opacity: .15;
  }
  @media screen and (max-width: 560px) {
    .shad_box {
      padding-top: 16px;
      padding-bottom: 16px;
      padding-left: 16px;
      padding-right: 16px;
    }
  }

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

    HEADER

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

/* header
**************************************** */
  .header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10000;
    width: 100%;
  }
  .header::before {
    opacity: 0;
  }
  .scrolled .header::before,
  .subpage .header::before {
    opacity: .95;
  }
  @media screen and (max-width: 1280px) {
    .header .inner {
      height: 60px;
    }
  }
  @media screen and (max-width: 560px) {
    .header .inner {
      height: 48px;
    }
    .header--logo img {
      max-height: 20px;
      width: 180px;
    }
  }

/* gnav
**************************************** */
  .gnav::before {
    opacity: 0;
  }
  .gnav_list--item a {
    display: block;
    padding-top: 20px;
    padding-bottom: 20px;
    text-align: left;
    line-height: 1em;
    text-align: center;
    overflow: hidden;
  }
  .gnav_list--item a::before {
    content: '';
    position: absolute;
    top: calc(50% - 1px);
    left: 0;
    width: 100%;
    height: 1px;
    transform: translateX(-110%);
    animation: slide-rev_rgt .25s cubic-bezier(0,.5,.5,1) 0s 1 forwards;
  }
  .gnav_list--item a span {
    display: block;
  }
  .gnav .sns_list {
    margin-top: auto;
  }
  .gnav_btn {
    position: fixed;
    top: 0;
    right: 16px;
    width: 60px;
    height: 60px;
    z-index: 9999;
  }
  .gnav_btn--in {
    line-height: 1em;
  }
  .gnav_btn--lines {
    position: relative;
    width: 24px;
    height: 13px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 6px;
  }
  .gnav_btn--lines span {
    transition: all .4s;
    box-sizing: border-box;
  }
  .gnav_btn--lines span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 1px;
    opacity: .5;
  }
  .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: 50%;
    width: 80%;
    animation: gnav_line_mov2_out .6s cubic-bezier(.27,.07,.36,.99) 0s 1 forwards;
  }
  .gnav_btn--lines span:nth-of-type(3) {
    top: 100%;
    width: 80%;
    animation: gnav_line_mov3_out .6s cubic-bezier(.27,.07,.36,.99) 0s 1 forwards;
  }
  .gnav_btn--txt {
    font-size: 75%;
    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--lines span:nth-of-type(3) {
    animation: gnav_line_mov3_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 (min-width: 1281px) {
    .gnav_btn {
      display: none;
    }
    .gnav_list--item:not(:last-child) {
      margin-right: 40px;
    }
    .gnav_head,
    .gnav_foot {
      display: none;
    }
  }
  @media screen and (min-width: 961px) {
    .gnav_list--item a:hover::before {
      animation: slide-to_rgt .25s cubic-bezier(0,.5,.5,1) 0s 1 forwards;
    }
  }
  @media screen and (max-width: 1280px) {
    .gnav {
      position: fixed;
      top: 0;
      right: 0;
      width: 100%;
      height: 100%;
      padding-top: 64px;
      padding-bottom: 80px;
      padding-right: 24px;
      padding-left: 24px;
      pointer-events: none;
      transition: .35s ease-out;
      opacity: 0;
      box-shadow: 0 0 16px 0 rgba(0,0,0,.05);
      overflow-y: scroll;
      -ms-overflow-style: none;
      scrollbar-width: none;
    }
    .gnav::-webkit-scrollbar {
      display:none;
    }
    .gnav::before {
      opacity: .95;
    }
    .header.active .gnav {
      opacity: 1;
      pointer-events: all;
    }
    .gnav_head,
    .gnav_foot {
      display: block;
    }
    .gnav_foot {
      margin-top: 24px;
    }
    .gnav_list {
      -webkit-flex-direction: column;
      -ms-flex-direction: column;
      flex-direction: column;
    }
    .gnav_list--item {
      display: table;
      margin-left: auto;
      margin-right: auto;
    }
    .gnav_list--item-home {
      display: none;
    }
  }
  @media screen and (max-width: 560px) {
    .gnav_btn {
      width: 48px;
      height: 48px;
      right: 4px;
    }
    .gnav {
      padding-left: 32px;
      padding-right: 32px;
      width: 100%;
    }
    .gnav .sns_list--item {
      width: auto;
    }
    .gnav .sns_list--item:not(:last-child) {
      margin-right: 6px;
    }
  }

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

    FOOTER

############################################################################## */
  .footer {
    margin-top: auto;
  }
  .footer::before {
    opacity: .95;
  }
  .footer nav {
    padding-top: 64px;
    padding-bottom: 64px;
  }
  .footer .sns_list {
    margin-top: 16px;
  }
  .foot_list {
    max-width: 704px;
  }
  .foot_list--item {
    margin-right: 10px;
  }
  .foot_list--item:nth-of-type(5n+5) {
    margin-right: 0;
  }
  .foot_list--item a {
    display: block;
    width: 132px;
    font-size: 89%;
    padding-top: 6px;
    padding-bottom: 6px;
  }
  .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--logo {
      margin-bottom: 16px;
      text-align: center;
    }
    .footer .sns_list {
      margin-bottom: 24px;
    }
  }
  @media screen and (max-width: 768px) {
    .footer nav {
      padding-top: 40px;
      padding-bottom: 40px;
    }
    .footer--logo img {
      width: 160px;
    }
    .foot_list--item {
      width: 50%;
      margin-right: 0;
    }
    .foot_list--item a {
      margin-left: auto;
      margin-right: auto;
    }
  }

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

    INDEX

############################################################################## */
  
/* hero
*************************************************** */
  .hero {
    height: 100vh;
    background-image: url(../images/hero_img-01.jpg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
  }
  .hero .hero--catch {
    max-width: 560px;
  }
  .hero .hero--catch .ttl {
    font-size: 300%;
    line-height: 1.8em;
    letter-spacing: .25em;
    font-weight: 500;
  }
  @media screen and (max-width: 560px) {
    .hero {
      background-image: url(../images/hero_img-01-sp.jpg);
      -webkit-align-items: flex-end;
      -ms-flex-align: end;
      align-items: flex-end;
    }
    .hero .hero--catch {
      padding-bottom: 24px;
    }
    .hero .hero--catch .ttl {
      font-size: 240%;
    }
    .hero .hero--catch .ttl {
      font-size: 240%;
    }
  }

/* home_news
*************************************************** */
  .home_news .btn_list {
    position: absolute;
    right: 0;
    top: 0;
  }
  @media screen and (max-width: 560px) {
    .home_news .btn_list {
      position: static;
      margin-top: 20px;
    }
  }

/* 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 #blog_slider.posts-blog .slick-arrow {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
  }
  .home_blog #blog_slider.posts-blog .slick-next {
    left: 60px;
  }
  .home_blog .posts-blog .slick-dots {
    position: absolute;
    bottom: calc(100% + 32px);
    left: auto;
    left: inherit;
    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 .inner {
      width: calc(100% - 64px);
    }
    .home_blog .posts-blog .post {
      padding-left: 10px;
      padding-right: 10px;
    }
    .home_blog .posts-blog .slick-list {
      padding-bottom: 64px;
    }
    .home_blog .posts-blog .slick-dots {
      bottom: 16px;
    }
    .home_blog #blog_slider.posts-blog .slick-arrow {
      top: auto;
      top: inherit;
      bottom: 0;
      width: 32px;
      height: 32px;
    }
    .home_blog #blog_slider.posts-blog .slick-next {
      left: 40px;
    }
    .home_blog .btn_list {
      -webkit-justify-content: center;
      -ms-flex-pack: center;
      justify-content: center;
    }
  }

/* home_insta
*************************************************** */
  .frame_wrap {
    left: 50%;
    width: 2148px;
    height: 200px;
    transform: translateX(-50%);
  }
  .frame_wrap iframe {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    min-width: 2080px;
    width: 100%;
    height: 100%;
  }
  @media screen and (max-width: 560px) {
    .frame_wrap {
      width: 1456px;
      height: 130px;
    }
    .frame_wrap iframe {
      min-width: 1456px;
    }
  }
/* contents
*************************************************** */
  .lr_bloc .txtarea {
    flex: 1;
  }
  .tb_bloc .txtarea {
    max-width: 768px;
    margin-left: auto;
    margin-right: auto;
  }
  .bg_bloc {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
  }
  .bg_bloc::before {
    opacity: .8;
  }
  @media screen and (max-width: 960px) {
    .lr_bloc .inner.flx .imgarea {
      margin-bottom: 56px;
    }
  }
  @media screen and (max-width: 560px) {
    .lr_bloc .inner.flx .imgarea {
      text-align: center;
      margin-bottom: 32px;
    }
    .lr_bloc .inner.flx .imgarea img {
      max-width: 80%;
    }
  }

/* slider
*************************************************** */
  .slider .slick-list {
    overflow: visible;
    padding-bottom: 40px;
  }
  .slider .slick-dots {
    left: 120px;
    transform: none;
  }
  .slider .slick-dots li {
    margin-right: 8px;
    height: 2px;
  }
  .slider .slick-dots li button {
    width: 24px;
    height: 2px;
  }
  .slider .slick-dots li.slick-active button {
    opacity: 1;
  }
  .slider-a .slider--item {
    padding-left: 120px;
    padding-right: 120px;
  }
  .slider-a .slider--item .txtarea {
    flex: 1;
  }
  .slider-a .slick-arrow,
  .slider-b .slick-arrow {
    position: absolute;
    top: 50%;
    width: 40px;
    height: 40px;
    transition: .4s ease-out;
    font-weight: bold;
    border-top-width: 1px;
    border-right-width: 1px;
    border-top-style: solid;
    border-right-style: solid;
    padding: 0;
  }
  .slider-a .slick-prev {
    left: 0;
    transform: translateY(-50%) rotate(-135deg) skew(10deg,10deg);
  }
  .slider-a .slick-next {
    right: 0;
    transform: translateY(-50%) rotate(45deg) skew(10deg,10deg);
  }
  .slider-b .inner {
    max-width: 1104px;
  }
  .slider-b .slider--item {
    padding-left: 20px;
    padding-right: 20px;
  }
  .slider-b .slick-list {
    padding-bottom: 88px;
  }
  .slider-b .slick-dots {
    left: auto;
    left: inherit;
    right: 20px;
    bottom: 24px;
  }
  .slider-b .slick-arrow,
  #blog_slider .slick-arrow {
    top: inherit;
    top: auto;
    bottom: 0;
    width: 48px;
    height: 48px;
    border-width: 1px;
    border-style: solid;
    z-index: 1;
  }
  .slider-b .slick-arrow::before,
  .slider-b .slick-arrow::after,
  #blog_slider .slick-arrow::before,
  #blog_slider .slick-arrow::after {
    content: '';
    position: absolute;
  }
  .slider-b .slick-arrow::before,
  #blog_slider .slick-arrow::before {
    top: 50%;
    left: 50%;
    width: 8px;
    height: 8px;
    border-top-width: 1px;
    border-right-width: 1px;
    border-top-style: solid;
    border-right-style: solid;
  }
  .slider-b .slick-arrow::after,
  #blog_slider .slick-arrow::after {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: .8s all;
    z-index: -1;
  }
  .slider-b .slick-prev,
  #blog_slider .slick-prev {
    left: 20px;
  }
  .slider-b .slick-next,
  #blog_slider .slick-next {
    left: 80px;
  }
  .slider-b .slick-prev::before,
  #blog_slider .slick-prev::before {
    transform: translate(-50%,-50%) rotate(-135deg);
  }
  .slider-b .slick-next::before,
  #blog_slider .slick-next::before {
    transform: translate(-50%,-50%) rotate(45deg);
  }
  @media screen and (min-width: 961px) {
    .slider-a .slick-prev:hover {
      animation: prev_btn_hov-A 1.2s cubic-bezier(0,.5,.5,1) 0s infinite forwards;
    }
    .slider-a .slick-next:hover {
      animation: next_btn_hov-A 1.2s cubic-bezier(0,.5,.5,1) 0s infinite forwards;
    }
    .slider-b .slick-prev:hover::before,
    #blog_slider .slick-prev:hover::before {
      animation: prev_btn_hov-B 1.2s cubic-bezier(0,.5,.5,1) 0s infinite forwards;
    }
    .slider-b .slick-next:hover::before,
    #blog_slider .slick-next:hover::before {
      animation: next_btn_hov-B 1.2s cubic-bezier(0,.5,.5,1) 0s infinite forwards;
    }
    .slider-b .slick-arrow:hover::after,
    #blog_slider .slick-arrow:hover::after {
      opacity: .85;
    }
  }
  @media screen and (max-width: 960px) {
    .slider-a .slider--item {
      padding-left: 32px;
      padding-right: 32px;
    }
    .slider-a .slider--item .imgarea {
      margin-bottom: 32px;
    }
    .slider-a .slider--item .imgarea img {
      width: 75%;
    }
    .slider-b .slider--item {
      padding-left: 4px;
      padding-right: 4px;
    }
    .slider-b .slider--item .imgarea img {
      width: 100%;
    }
    .slider-a .slick-arrow,
    .slider-b .slick-arrow,
    #blog_slider .slick-arrow {
      width: 24px;
      height: 24px;
    }
    .slider-b .slick-dots {
      right: 50%;
      transform: translateX(50%);
    }
  }
  @media screen and (max-width: 560px) {
    .slider-b .slick-list {
      padding-bottom: 40px;
    }
    .slider-b .slick-dots {
      bottom: 8px;
    }
  }

/* column
*************************************************** */
  .column .btn {
    width: 100%;
  }
  .column .btn--in {
    margin-left: auto;
    margin-right: auto;
  }
  .column:not(.column-lg) .column_list .txtarea p {
    font-size: 93%;
    line-height: 2em;
  }
  .column-lg .column_list--item {
    width: 33.25%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding-top: 64px;
    padding-bottom: 64px;
    padding-left: 40px;
    padding-right: 40px;
  }
  .column-lg .column_list--item::before {
    opacity: .8;
  }
  .column-lg .column_list--item .txtarea {
    max-width: 700px;
  }
  .modal_list--item .img img {
    display: block;
    margin-left: auto;
    margin-right: auto;
  }
  .modal_list--item {
    list-style: none !important;
  }
  .modal_list--item .txtarea {
    flex: 1;
    padding-top: 48px;
    padding-bottom: 48px;
    padding-left: 48px;
    padding-right: 48px;
  }
  .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: 960px) {
    .column-lg .column_list--item {
      width: 100%;
      margin-bottom: 1px;
    }
  }
  @media screen and (max-width: 750px) {
    .modal_list--item .flx .img {
      padding-top: 0;
    }
  }
  @media screen and (max-width: 560px) {
    .column .btn {
      margin-top: 8px;
      margin-bottom: 8px;
    }
    .column:not(.column-lg) .column_list .txtarea p {
      line-height: 1.8em;
      letter-spacing: .15em;
    }
    .column-lg .head3 { margin-bottom: 0; }
    .column-md .column_list--item:last-child {
      margin-bottom: 0;
    }
    .column-md .column_list--item .imgarea img,
    .column-sm .column_list--item .imgarea img {
      width: 100%;
    }
    .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: 50%;
    z-index: 1;
  }
  .company .gm::before {
    z-index: 1;
    pointer-events: none;
    opacity: .1;
  }
  .company .gm iframe,
  .company .gm object,
  .company .gm embed {
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    filter: grayscale(100%);
  }
  .company .gm::before,
  .company .gm iframe,
  .company .gm object,
  .company .gm embed {
    -webkit-transition: all 0.7s ease;
    -moz-transition: all 0.7s ease;
    -o-transition: all 0.7s ease;
    transition: all  0.7s ease;
  }
  .company .txtarea {
    width: 630px;
    padding-right: 96px;
    margin-left: auto;
  }
  .company .txtarea .list-def {
    width: 100%;
  }
  .company .txtarea .bg_ptrn {
    left: -136px;
    width: calc(100% + 136px);
  }
  .company .txtarea .ttl {
    position: absolute;
    top: -16px;
    right: 32px;
    line-height: 0em;
    font-size: 750%;
    opacity: .25;
  }
  @media screen and (min-width: 961px) {
    .company .gm:hover::before {
      opacity: 0;
    }
    .company .gm iframe:hover,
    .company .gm object:hover,
    .company .gm embed:hover {
      -webkit-filter: grayscale(0%);
      -moz-filter: grayscale(0%);
      -ms-filter: grayscale(0%);
      -o-filter: grayscale(0%);
      filter: grayscale(0%);
    }
  }
  @media screen and (max-width: 1360px) {
    .company .txtarea {
      width: 480px;
    }
  }
  @media screen and (max-width: 960px) {
    .company .gm {
      width: 100%;
      padding-top: 60%;
    }
    .company .gm::before {
      opacity: 0;
    }
    .company .gm iframe {
      top: 0;
      height: 100%;
    }
    .company .txtarea {
      position: relative;
      z-index: 1;
      width: 100%;
      padding-left: 40px;
      padding-right: 40px;
      padding-bottom: 48px;
      margin-left: auto;
    }
    .company .txtarea .bg_ptrn {
      left: 0;
      width: 100%;
    }
    .company .txtarea .ttl {
      font-size: 500%;
      top: 0;
    }
  }
  @media screen and (max-width: 560px) {
    .company .inner {
      margin-bottom: 0;
    }
    .company .gm {
      width: 100%;
      margin-left: 0;
      padding-top: 90%;
      transform: translateY(0);
    }
    .company .txtarea {
      width: 100%;
      transform: translateY(0);
      margin-top: 0;
      padding: 40px 16px;
    }
    .company .txtarea .bg_ptrn {
      top: 0;
    }
    .company .txtarea .ttl {
      font-size: 400%;
    }
    .company .txtarea h3 img {
       width: 148px;
    }
  }

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


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

    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;
    opacity: .5;
  }
  .side--ttl .fnt-jp {
    font-size: 116%;
    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: 1px;
    border-right-width: 1px;
    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: 48px;
    }
  }

/* blog
*************************************************** */
  .archive_blog .posts-blog {
    margin-top: -32px;
  }
  .archive_blog .posts-blog .post {
    width: calc(50% - 16px);
    margin-top: 32px;
    overflow: hidden;
  }
  .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;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 300%;
  }
  .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 .post--img_src {
      transform: scale(1.05);
    }
  }
  @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 .post {
      width: 100%;
    }
  }

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

  /* --- news_list --- */
  main .posts-news .post {
    padding-top: 32px;
    padding-bottom: 32px;
    margin-bottom: 0;
    border-bottom-width: 1px;
    border-bottom-style: solid;
    line-height: 1em;
  }
  main .home_news .posts-news .post {
    padding-bottom: 24px;
  }
  main .posts-news .post--date {
    margin-right: 24px;
    min-width: 115px;
  }
  main .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 (min-width: 960px) {
    main .posts-news .post a:hover {
      text-decoration: underline;
    }
  }
  @media screen and (max-width: 560px) {
    .posts-news .post > * {
      width: 100%;
    }
    main .posts-news .post {
      padding-top: 16px;
      padding-bottom: 16px;
    }
    main .posts-news .post--date {
      min-width: auto;
      padding: 0;
      margin-right: 0;
      margin-bottom: 8px;
      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: 48px;
  }
  .pagenavi a {
    position: relative;
    z-index: 0;
    display: inline-block;
    vertical-align: top;
    line-height: 1.4;
    padding: 8px 16px;
    margin-left: 4px;
    margin-right: 4px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: .8s all;
  }
  .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: 32px;
    }
  }

/* 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: disc;
  }
  @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: 240%;
    line-height: 1em;
    letter-spacing: .2em;
  }
  .contact .tel_num small {
    font-size: 60%;
  }
  .contact .contact--line {
    padding-left: 64px;
    padding-right: 64px;
    padding-bottom: 40px;
  }
  .contact .contact--line::before {
    height: 1px;
    top: inherit;
    top: auto;
    bottom: 0;
    opacity: .15;
  }
  .contact .contact--line .btn .btn--in {
    padding-top: 2px;
    width: 200px;
  }
  .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 {
      width: 100%;
      padding-left: 16px;
      padding-right: 16px;
      padding-bottom: 32px;
    }
    .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-top: 40px;
    padding-bottom: 64px;
    padding-left: 64px;
    padding-right: 64px;
  }
  .cf_form .form_wrap {
    z-index: 1;
  }
  .cf_form table { width:100%; }
  .cf_form tr {
    border-bottom-width: 1px;
    border-bottom-style: solid;
  }
  .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: 164px;
    padding-right: 16px;
    font-weight: normal;
    white-space: nowrap;
    text-align: right;
  }
  .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;
  }
  @media screen and (max-width: 960px) {
    .cf_form {
      padding-top: 24px;
      padding-bottom: 40px;
      padding-left: 40px;
      padding-right: 40px;
    }
  }
  @media screen and (max-width: 560px) {
    .cf_form {
      padding-top: 12px;
      padding-bottom: 32px;
      padding-left: 24px;
      padding-right: 24px;
    }
  }

/* 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;
    right: 0;
    color: #de0329;
    line-height: 2em;
  }

  /* --- 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 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 .btn .btn--in {
    width: 200px;
  }
  .cf_form--btns button:focus {
    outline: none;
  }
  .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;
  }
  .formErrorContent {
    background-color: #de0329;
    color: #fff;
    padding-left: 8px;
    padding-right: 8px;
    padding-top: 4px;
    padding-bottom: 4px;
  }

  /* --- 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: 12px;
      padding-bottom: 0;
      white-space: normal;
      font-weight: bold;
      line-height: 1em;
      text-align: left;
    }
    .cf_form td {
      padding-top: 6px;
      padding-bottom: 16px;
      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;
    }
    .required {
      position: static;
    }
  }
  @media screen and (max-width: 560px) {
    .cf_form th {
      line-height: 24px;
    }
    .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 {
      margin-left: auto;
      margin-right: auto;
    }
  }

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