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

    COMMON

############################################################################## */
  
  html {
    height: 100%;
    overflow-y: scroll;
  }
  body {
    height: 100%;
    padding-top: 100px;
  }
  main {
    overflow: hidden;
  }

  @media screen and (max-width: 1080px) {
    body {
      padding-top: 64px;
    }
  }

/* layout
**************************************** */

  /* --- inner --- */
  .inner {
    width: 90%;
    max-width: 1170px;
    margin: 0 auto;
  }
  .inner-sm { max-width: 1010px; }
  .inner-sm2 { max-width: 1080px; }
  .inner-md { max-width: 1178px; }
  .inner-lg { max-width: 1366px; }

  /* --- section_pdg --- */
  .section_pdg {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .anker {
    position: absolute;
    top: -80px;
    left: 0;
  }

  @media print, screen and (min-width: 768px) {    
    .section-res .heading-1 {
      font-size: 2.2vw; /* Reduced from 2.78vw to prevent overlap */
      max-font-size: 32px;
    }
    .section-res .heading-1 small {
      font-size: 1.2vw; /* Reduced from 1.46vw */
      max-font-size: 18px;
    }
    .section-res p,
    .section-res div[class*="btn"] {
      font-size: 1.0vw; /* Reduced from 1.17vw */
      max-font-size: 15px;
    }
  }
  @media screen and  (max-width: 767px) {
    .inner { width: 86%; }
    .inner .inner { width: 100%; }
    .inner-lg { max-width: none; }

    /* --- section_pdg --- */
    .section_pdg {
      padding-top: 64px;
      padding-bottom: 64px;
    }
    .anker {
      top: -64px;
    }
  }

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

  /* --- ざっくりflexレイアウト --- */
  .flex-col1 {
    display: block;
  }
  .flex-col2,
  .flex-col3,
  .flex-col4 {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .flex-col2 > * {
    width: 48.5%;
    margin-right: 3%;
    margin-bottom: 3%;
  }
  .flex-col2 > *:nth-child(even) { margin-right: 0; }
  .flex-col3 > * {
    width: 31.33%;
    margin-right: 3%;
    margin-bottom: 3%;
  }
  .flex-col3.narrow > * {
    width: 31.96%;
    margin-right: 2.05%;
    margin-bottom: 2.05%;
  }
  .flex-col3 > *:nth-child(3n) { margin-right: 0; }
  .flex-col4 > * {
    width: 23.5%;
    margin-right: 2%;
    margin-bottom: 2%;
  }
  .flex-col4 > *:nth-child(4n) { margin-right: 0; }

  @media screen and (max-width: 767px) {
    /* --- ざっくりflexレイアウト - sp --- */
    .flex-col2.flex-sp-block > *,
    .flex-col3.flex-sp-block > *,
    .flex-col3.narrow.flex-sp-block > *,
    .flex-col4.flex-sp-block > * {
      width: 100%;
      margin-bottom: 24px;
      margin-right: 0;
    }
    .flex-col2.flex-sp-block > *:last-child,
    .flex-col3.flex-sp-block > *:last-child,
    .flex-col4.flex-sp-block > *:last-child {
      margin-bottom: 0;
    }
    .flex-sp-col2 > *,
    .flex-sp-col2.flex-col3 > *:nth-child(3n) {
      width: 48.5%;
      margin-right: 3%;
      margin-bottom: 3%;
    }
    .flex-sp-col2 > *:nth-child(even) { margin-right: 0; }
    .flex-sp-col3 > *,
    .flex-sp-col3.flex-col4 > *:nth-child(4n) {
      width: 31.33%;
      margin-right: 3%;
      margin-bottom: 3%;
    }
    .flex-sp-col3 > *:nth-child(3n) { margin-right: 0; }
  }

/* bg
**************************************** */
  .bg-main {
    background-color: #1A1A1A;
  }
  .bg-sub {
    background-color: #F2F2F2;
  }

/* img
********************************************** */
  .img-ctr {
    display: block;
    margin-left: auto;
    margin-right: auto;
  }
  .img-trim {
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .img-trim.pos_rel::before {
    content: '';
    display: block;
  }
  .img-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .img-cover.pos_ab {
    top: 0;
    left: 0;
  }
  .img-contain {
    object-fit: contain;
  }

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

  /* --- page_ttl --- */
  .page_ttl {
    position: relative;
    z-index: 10;
    overflow: hidden;
    height: 240px;
    line-height: 1.5;
    background-color: #eee;
    background-size: cover;
    background-position: center;
  }
  .page_ttl span {
    display: block;
  }
  .page_ttl span:not(:last-child) {
    margin-bottom: .5rem;
  }
  .page_ttl-jp {
    font-size: 2.5rem; /* 40px */
  }
  .page_ttl-en {
    text-transform: uppercase;
    font-size: 1.125rem; /* 18px */
    font-weight: 500;
  }
  
  /* --- heading --- */
  .heading-1:not(:first-child),
  .heading-2:not(:first-child),
  .heading-3:not(:first-child),
  .heading-4:not(:first-child) {
    margin-top: 2em;
  }
  .heading-1:not(:last-child),
  .heading-2:not(:last-child),
  .heading-3:not(:last-child),
  .heading-4:not(:last-child) {
    margin-bottom: 1em;
  }
  .heading-1 {
    font-size: 2.375rem; /* 38px */
    line-height: 1.8;
  }
  .heading-2 { font-size: 1.75rem; /* 28px */ }
  .heading-3 { font-size: 1.5rem; /* 24px */ }
  .heading-4 { font-size: 1.25rem; /* 20px */ }
  .heading-1::before {
    content: '';
    display: block;
    width: .737em; /* 28px */
    height: 1px;
    background-color: #D82317;
    margin-bottom: 1em;
  }
  .heading-1.bd-none::before {
    display: none;
  }
  .heading-1.txt-ctr::before {
    margin-left: auto;
    margin-right: auto;
  }
  .heading-1 small {
    display: block;
    font-size: 1.25rem; /* 20px */
    font-weight: 400;
    margin-bottom: 2em;
    letter-spacing: .08em;
  }

  @media screen and (max-width: 767px) {

    /* --- page_ttl --- */
    .page_ttl {
      height: 160px;
    }
    .page_ttl-jp {
      font-size: 2rem; /* 28px */
    }
    .page_ttl-en {
      font-size: 1rem; /* 14px */
    }

    /* --- heading --- */
    .heading-1 { font-size: 1.857rem; /* 26px */ }
    .heading-2 { font-size: 1.714rem; /* 24px */ }
    .heading-3 { font-size: 1.429rem; /* 20px */ }
    .heading-4 { font-size: 1.286rem; /* 18px */ }
  }

/* breadcrumbs
**************************************** */
  .breadcrumbs {
    padding: 1rem 0;
  }
  .breadcrumbs a {
    text-decoration: underline;
  }
  .breadcrumbs a:hover {
    text-decoration: none;
  }

/* txt
**************************************** */
  .txt-lg { font-size: 1.125rem; /* 18px */ }
  .txt-sm { font-size: .875rem; /* 14px */ }
  .txt-main,
  .txt-main * {
    color: #D82317;
  }
  .txt-wh,
  .txt-wh * { color: #fff; }
  .txtarea p:not(:last-child) {
    margin-bottom: 1.5em;
  }
  .bold {
    font-weight: bold;
  }

  /* --- font --- */
  .font-jp {    
    font-family: 'ヒラギノ角ゴ W6 JIS2004', 'Hiragino Kaku Gothic W6 JIS2004', 'ヒラギノ角ゴ Pro W6', 'Hiragino Kaku Gothic ProN', YuGothic, 'メイリオ', 'Meiryo', sans-serif;
    font-weight: 700;
  }
  .font-en {
    font-family: 'Poppins', sans-serif;
  }

  @media print, screen and (min-width: 768px) {
    .txt-tate {
      -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
      writing-mode: vertical-rl;
    }
    .txt-tate * {
      font-feature-settings: normal;
    }
  }
  @media screen and (max-width: 767px) {
    .txt-lg { font-size: 1.071rem; /* 15px */ }
    .txt-sm { font-size: .929rem; /* 13px */ }
  }

/* table & list
**************************************** */
  table { width: 100%; }
  
  /* --- table_default --- */
  .table_default th, 
  .table_default td {
    padding: 16px 8px;
  }
  .table_default th {
    border-bottom: 2px solid #666;
  }
  .table_default td {
    padding: 16px 16px;
    border-bottom: 1px solid #666;
    border-left: 4px solid #fff;
  }

  /* --- table_line --- */
  .table_line th,
  .table_line td {
    padding-top: 6px;
    padding-bottom: 6px;
    padding-left: 24px;
    padding-right: 24px;
  }
  .table_line th {
    background-color: #666;
    border: 1px solid #666;
    color: #fff;
    font-size: 1.063rem; /* 17px */
  }
  .table_line td {
    border: 1px solid #D2D2D2;
    font-size: .938rem; /* 15px */
  }

  /* --- list ---- */
  .list {
    list-style-type: disc;
  }
  .list ul {
    list-style-type: circle;
  }
  .list ul ul {
    list-style-type: square;
  }
  .list li:not(:last-child) { margin-bottom: 16px; }
  .list li {
    position: relative;
    margin-left: 1.4em;
  }
  .list li::marker {
    font-size: 1.5rem; /* 24px */
  }
  .list-num {
    padding-left: 1.4em;
    list-style-type: decimal;
  }
  .list-num li::marker {
    font-size: 1rem; /* 16px */
  }
  .list-num li { margin-left: 0; }
  .list li ul { margin-top: 16px; }

  /* --- dlリスト --- */
  .list-dl {
    position: relative;
    border-top: 1px solid #BFBFBF;
  }
  .list-dl dt {
    position: absolute;
    padding-top: 16px;
    color: #666;
    font-weight: 700;
  }
  .list-dl dd {
    padding-left: 140px;
    padding-top: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid #BFBFBF;
  }

/* hover
**************************************** */
  .hover-lg .imgarea {
    overflow: hidden;
  }
  .hover-lg .img-cover {
    transition: all .8s ease-out;
  }
  .hover-lg:hover .img-cover {
    transform: scale(1.05);
  }

/* btn
**************************************** */
  .btn_wrap {
    max-width: 769px;
    margin-left: auto;
    margin-right: auto;
  }
  .btn_wrap .btn:first-child {
    margin-left: auto;
  }
  .btn_wrap .btn:last-child {
    margin-right: auto;
  }
  *:not(.flex) > .btn:not(:last-child) {
    margin-bottom: .5em;
  }
  .btn a {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: 240px;
    padding: 1em;
    color: #fff;
    background-color: #000;
    text-align: center;
    letter-spacing: .1em;
    overflow: hidden;
    border-radius: .313rem;
  }
  .btn a::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background-color: #1A1A1A;
    transition: all .4s ease-out;
  }
  .btn a:hover::before {
    width: 100%;
  }
  .btn svg {
    fill: #fff;
  }
  .btn .icn {
    width: 1.375em; /* 22px */
    display: flex;
    justify-content: center;
    align-items: center;
    margin-right: .5em;
  }
  .btn .icn-mail {
    width: 1.375em; /* 22px */
    height: 1em; /* 16px */
  }
  .btn .icn-book {
    width: 1.313em; /* 21px */
    height: 1.125em; /* 18px */
  }
  .btn-cta a {
    background-color: #D82317;
  }
  .btn-cta a::before {
    background-color: #eb2b1d;
  }
  .btn a * {
    position: relative;
  }
  .btn-ctr {
    margin-left: auto;
    margin-right: auto;
  }
  .btn-rgt {
    margin-left: auto;
  }
  .btn-detail,
  .btn-detail::before {
    transition: all .4s ease-out;
  }
  .btn-detail {
    position: relative;
    display: table;
    font-size: .938rem; /* 15px */
    font-family: 'ヒラギノ角ゴ W6 JIS2004', 'Hiragino Kaku Gothic W6 JIS2004', 'ヒラギノ角ゴ Pro W6', 'Hiragino Kaku Gothic ProN', YuGothic, 'メイリオ', 'Meiryo', sans-serif;
    font-weight: 700;
  }
  .btn-detail::before {
    content: '';
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    width: 2.533em; /* 38px */
    height: 2.533em; /* 38px */
    color: #fff;
    background-color: #1B1B1B;
    border-radius: 50%;
  }
  .btn-detail:hover::before {
    background-color: #d82317;
  }
  .btn-detail a {
    padding: 1em 0;
  }
  .btn-detail a:hover {
    color: #d82317;
  }
  .btn-detail span {
    position: relative;
    display: block;
    padding-right: 3.6em; /* 54px */
  }
  .btn-detail span::before,
  .btn-detail span::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    right: .8em; /* 12px */
    margin: auto;
    color: #fff;
  }
  .btn-detail span::before {
    width: 1.067em; /* 16px */
    height: 1px;
    border-bottom: 1px solid;
  }
  .btn-detail span::after {
    width: .667em; /* 10px */
    height: .667em; /* 10px */
    border-top: 1px solid;
    border-right: 1px solid;
    transform: rotate(45deg);
  }
  .btn-bd.btn-detail::before {
    right: 1.5em;
  }
  .btn-bd a {
    position: relative;
    display: block;
    padding: 1.5em;
  }
  .btn-bd a::before,
  .btn-bd a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    height: 2px;
  }
  .btn-bd a::before {
    width: 100%;
    background-color: #1B1B1B;
  }
  .btn-bd a::after {
    width: 0;
    background-color: #d82317;
    transition: all .4s ease-out;
  }
  .btn-bd a:hover::after {
    width: 100%;
  }
  .btn-bd.btn-detail span {
    padding-right: 4.6em;
  }
  
  @media print, screen and (min-width: 768px) {    
    .btn .txt-tate .icn {
      margin-right: 0;
      margin-bottom: 1em;
    }
    .btn .txt-tate::before {
      width: 100%;
      height: 0;
    }
    .btn .txt-tate:hover::before {
      height: 100%;
    }
  }
  @media screen and (max-width: 767px) {
    .btn,
    .btn-detail,
    .btn-bd {
      margin-left: auto;
      margin-right: auto;
    }
    .btn a {
      max-width: 100%;
    }
  }

/* waypoint
**************************************** */
  @media only screen {
    .waypoint.fadein {
      opacity: 0;
      transition: all .4s ease-out;
    }
    .waypoint.fadein.active {
      opacity: 1;
    }
    .waypoint.fadein.to-top {
      transform: translateY(1em);
    }
    .waypoint.fadein.to-top.active {
      transform: translateY(0);
    }
    .waypoint.heading-1::before {
      width: 0;
      transition: all .4s ease-out;
    }
    .waypoint.heading-1.active::before {
      width: .737em;
    }
  }

/* cta
**************************************** */
  .cta {
    overflow: hidden;
  }
  .cta .tri {
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 200px 100vw;
    border-color: transparent transparent #ededed transparent;
  }
  .cta--list li {
    position: relative;
    padding: 4.55% 3.96%; /* 46px 40px */
    background-color: #fff;
    border-radius: .313rem;
    box-shadow: 0 0 1rem rgb(27,27,27,.1);
  }
  .cta--list li::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 18.99%; /* 60px */
    height: 3px;
    background-color: #D82317;
  }
  .cta--ttl-sm {
    margin-bottom: 1.5em;
  }

  @media print, screen and (min-width: 768px) {
    .cta--list li,
    .cta--list .txtarea {
      display: flex;
      flex-direction: column;
    }
    .cta--list .txtarea {
      height: 100%;
      justify-content: center;
    }
  }
  @media screen and (max-width: 1080px) {
    .cta--list li {
      padding: 4.18% 3.34%; /* 40px 32px */
    }
  }
  @media screen and (max-width: 767px) {
    .cta--list li {
      padding: 24px 7%;
    }
  }


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

    HEADER

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

/* header
**************************************** */
  .header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 100px;
    background-color: #fff;
    z-index: 9990;
    transition: all .4s ease-out;
  }
  .page-contact .header {
    position: absolute;
  }
  .header > .inner {
    width: 100%;
    max-width: 100%;
    height: 100%;
    padding-left: 2.34%; /* 45px */
    padding-right: 2.24%; /* 43px */
  }
  .header--logo a,
  .footer--logo a {
    display: block;
  }
  .header--logo a:hover,
  .footer--logo a:hover {
    opacity: .7;
  }
  .fixed_btn--list {
    position: fixed;
  }
  .fixed_btn--list a {
    font-size: .813rem; /* 13px */
  }

  @media print, screen and (min-width: 1081px) {
    .header-sm {
      height: 80px;
    }
  }
  @media print, screen and (min-width: 768px) {
    .fixed_btn--list {
      top: 50%;
      right: 0;
      transform: translateY(-50%);
    }
    .fixed_btn--list .btn:not(:last-child) {
      margin-bottom: 1rem;
    }
    .fixed_btn--list a {
      height: 200px;
    }
  }
  @media screen and (max-width: 1080px) {
    .header {
      height: 64px;
    }
    .header > .inner {
      padding-left: 30px;
    }
    .header--logo img {
      width: auto;
      max-height: 40px;
    }
  }
  @media screen and (max-width: 767px) {
    .fixed_btn--list {
      display: flex;
      bottom: 0;
      left: 0;
      width: 100%;
    }
    .fixed_btn--list .btn {
      flex: 1;
    }
    .fixed_btn--list .btn:not(:last-child) {
      margin-bottom: 0;
    }
    .fixed_btn--list .btn a {
      border-radius: 0;
    }
  }


/* gnav
********************************************** */
  .gnav a {
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .gnav--link {
    padding: 0 1em;
  }
  .menu-item-has-children {
    position: relative;
  }
  .head_sub_nav a {
    display: block;
    padding: .5em 1.5em;
  }
  .btn-en {
    position: absolute;
    top: 0;
    right: 0;
    display: table;
  }
  .btn-en a {
    display: block;
    font-size: .75rem; /* 12px */
    width: 101px;
    color: #fff;
    background-color: #B3B3B3;
    border-radius: 0 0 .313rem .313rem;
    font-weight: 400;
    text-align: center;
    text-indent: -1.5em;
    font-size: .75rem; /* 12px */
  }
  .btn-en a::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    right: 1em;
    margin: auto;
    width: .5em;
    height: .5em;
    border-top: 1px solid;
    border-right: 1px solid;
    transform: rotate(45deg);
  }

  /* ---CTA --- */
  .cta_tel a {
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    line-height: 1.4;
  }
  .cta_tel a > span {
    display: block;
  }
  .cta_tel .tel {
    font-size: 1.5rem; /* 24px */
  }
  .cta_tel .num {
    font-size: 1.875rem; /* 30px */
  }
  .gnav--tel,
  .gnav--contact {
    margin-left: 8px;
  }
  .gnav--tel a {
    display: flex !important;
    flex-direction: column;
  }
  .gnav--contact a {
    padding: 24px;
  }
  .gnav--contact svg {
    fill: #fff;
    margin-right: 8px;
  }
  .gnav--cta .tel {
    font-size: 1.25rem; /* 20px */
  }
  .gnav--cta .num {
    font-size: 1.5rem; /* 24px */
  }
  .gnav--cta .hours {
    font-size: .875rem; /* 14px */
  }

  @media print, screen and (min-width: 1081px) {
    .gnav,
    .gnav ul,
    .gnav li,
    .gnav a {
      height: 100%;
    }
    .gnav {
      display: flex;
      font-size: .938rem; /* 15px */
    }
    .gnav_btn {
      display: none;
    }
    .gnav--link {
      text-align: center;
    }
    .gnav--link > span {
      position: relative;
      padding: .25em 0;
    }
    .gnav--link > span::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      margin: auto;
      width: 1.25em; /* 20px */
      height: 2px;
      background-color: #D82317;
      transition: all .4s ease-out;
      opacity: 0;
      transform: translateY(.5em);
    }
    .gnav--menu > li > .gnav--link:hover > span::before,
    .gnav--menu > li.current-menu-item > .gnav--link > span::before {
      opacity: 1;
      transform: translateY(0);
    }
    .head_sub_nav--wrap {
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translateX(-50%);
      z-index: 100;
      white-space: nowrap;
      transition: all .4s ease-out;
      opacity: 0;
      pointer-events: none;
    }
    .gnav--menu .menu-item-has-children:hover > .head_sub_nav--wrap {
      opacity: 1;
      pointer-events: auto;
    }
    .head_sub_nav li {
      margin-left: 2px;
      margin-right: 2px;
    }
    .head_sub_nav li:not(:last-child) {
      margin-bottom: 2px;
    }
    .head_sub_nav a {
      background-color: rgba(255,255,255,.8);
    }
    .head_sub_nav a:not([href="javascript:void(0);"]):hover {
      color: #d82317;
    }
    .head_sub_nav .head_sub_nav--wrap {
      top: 0;
      left: 100%;
      transform: none;
    }
    .gnav_sub_toggle {
      position: absolute;
      bottom: 30%;
      left: 50%;
      transform: translateX(-50%);
      width: 9px;
      height: 5px;
    }
    .gnav_sub_toggle::before {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      margin: auto;
      width: 6px;
      height: 6px;
      border-bottom: 2px solid;
      border-right: 2px solid;
      transform: rotate(40deg) skew(-10deg);
    }
    .head_sub_nav .gnav_sub_toggle {
      top: 50%;
      bottom: inherit;
      left: inherit;
      right: 1em;
      transform: translateY(-50%);
      width: 5px;
      height: 9px;
    }
    .head_sub_nav .gnav_sub_toggle::before {
      border-top: 2px solid;
      border-right: 2px solid;
      border-bottom: 0;
      transform: rotate(50deg) skew(10deg);
    }
    .gnav--contact a {
      border-radius: 0;
    }
  }
  @media screen and (max-width: 1080px) {
    .gnav {
      position: fixed;
      top: 64px;
      right: 0;
      width: 100%;
      height: calc(100% - 64px);
      opacity: 0;
      pointer-events: none;
      transition: all .4s ease-out;
      padding: 24px 7%;
      overflow: scroll;
      background-color: #F2F2F2;
      z-index: 300;
      transform: translateX(100%);
      -webkit-overflow-scrolling: touch;
    }
    .gnav.active {
      opacity: 1;
      pointer-events: auto;
      transform: translateX(0);
    }
    .gnav--menu,
    .gnav--cta {
      display: block;
    }
    .gnav--menu li {
      position: relative;
      display: block;
      width: 100%;
    }
    .gnav--menu li:not(:last-child) {
      border-bottom: 1px solid #D82317;
    }
    .gnav--menu a {
      display: block;
      padding: 17.35px 16px;
    }
    .gnav--menu li:not(.menu-item-has-children) a::before {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      right: 10px;
      margin: auto;
      width: 7px;
      height: 7px;
      border-top: 1px solid #D82317;
      border-right: 1px solid #D82317;
      transform: rotate(45deg);
    }
    .head_sub_nav--wrap {
      position: relative;
      width: 100%;
      border-top: 1px solid #D82317;
      display: none;
    }
    .head_sub_nav a {
      padding-left: 32px !important;
    }
    .head_sub_nav .head_sub_nav a {
      padding-left: 64px !important;
    }
    .gnav_sub_toggle {
      position: absolute;
      top: 0;
      right: -20px;
      width: 64px;
      height: 64px;
      transition: all .4s ease-out;
      color: #D82317;
    }
    .gnav_sub_toggle::before,
    .gnav_sub_toggle::after {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      margin: auto;
      width: 11px;
      height: 1px;
      border-bottom: 1px solid;
    }
    .gnav_sub_toggle::after {
      transform: rotate(90deg);
    }
    .gnav_sub_toggle.active {
      transform: rotate(180deg);
    }
    .current-menu-item .gnav_sub_toggle {
      color: #fff;
    }
    .head_sub_nav {
      position: relative;
    }
    .gnav_btn {
      position: fixed;
      top: 0;
      width: 64px;
      height: 64px;
      z-index: 9999;
    }
    .gnav_btn {
      right: 0;
      transition: all .4s ease-out;
    }
    .gnav_btn.active {
      background-color: #F2F2F2;
    }
    .gnav_btn--lines {
      position: relative;
      width: 24px;
      height: 16px;
    }
    .gnav_btn--lines span {
      transition: all .4s ease-out;
      box-sizing: border-box;
    }
    .gnav_btn--lines span {
      position: absolute;
      left: 0;
      width: 100%;
      height: 2px;
      background-color: #D82317;
    }
    .gnav_btn--lines span:nth-of-type(1) {
      top: 0;
    }
    .gnav_btn--lines span:nth-of-type(2) {
      top: 7px;
    }
    .gnav_btn--lines span:nth-of-type(3) {
      bottom: 0;
    }
    .active .gnav_btn--lines span:nth-of-type(1) {
      transform: translateY(7px) rotate(-45deg);
    }
    .active .gnav_btn--lines span:nth-of-type(2) {
      opacity: 0;
    }
    .active .gnav_btn--lines span:nth-of-type(3) {
      transform: translateY(-7px) rotate(45deg);
    }
    .btn-en {
      right: 7%;
    }

    /* ---CTA --- */
    .gnav--cta li:not(:last-child) {
      margin-bottom: 16px;
    }
    .gnav--tel {
      margin-left: 0;
      text-align: center;
    }
    .gnav--contact {
      margin-left: 0;
    }
    .gnav--contact a {
      padding: 10px 16px;
      margin-left: auto;
      margin-right: auto;
    }
  }
  @media screen and (max-width: 767px) {
    .gnav--menu a {
      padding: 19px 16px;
    }
    .gnav--contact svg {
      width: 16px;
      height: 11px;
    }
  }


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

    FOOTER

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

  .footer {
    overflow: hidden;
  }
  .footer_top {
    margin-left: auto;
    margin-right: auto;
    padding-top: 58px;
    padding-bottom: 50px;
  }
  .footer_top .inner > *:not(:last-child) {
    margin-bottom: 2rem;
  }
  .footer--logo {
    margin-bottom: 1.5em;
    fill: rgb(179, 179, 180);
  }
  .footer--logo a {
    display: table;
    margin-left: auto;
    margin-right: auto;
  }
  .footer--company {
    margin-bottom: .5em;
  }
  .footer--address {
    line-height: 1.6;
  }
  .fnav {
    padding: 3rem 11.02%; /* 119px */
    background-color: #0D0D0D;
  }
  .fnav--menu > li {
    width: auto;
    margin-bottom: 1%;
  }
  .fnav--menu > .menu-item-has-children {
    margin-bottom: 3%;
  }
  .fnav--menu > li > a {
    font-family: 'ヒラギノ角ゴ W6 JIS2004', 'Hiragino Kaku Gothic W6 JIS2004', 'ヒラギノ角ゴ Pro W6', 'Hiragino Kaku Gothic ProN', YuGothic, 'メイリオ', 'Meiryo', sans-serif;
    font-weight: 700;
  }
  .fnav--menu .sub-menu {
    font-size: .875rem; /* 14px */
  }
  .fnav--menu .sub-menu li {
    position: relative;
    padding-left: .5em;
  }
  .fnav--menu .sub-menu .sub-menu li {
    padding-left: 1.75em;
  }
  .fnav--menu .sub-menu .sub-menu li::before {
    content: '';
    position: absolute;
    top: 1em;
    left: .75em;
    width: .4em;
    height: 1px;
    border-bottom: 1px solid;
  }
  .fnav--menu a {
    display: block;
    padding: .2em 0;
  }
  .fnav--menu a:not([href="javascript:void(0);"]):hover {
    text-shadow: 0 0 1em rgba(255,255,255,.5);
  }
  .sns--list li:not(:last-child) {
    margin-right: 1rem;
  }
  .sns--list a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 1.375rem; /* 22px */
    height: 1.375rem; /* 22px */
  }
  .sns--list a:hover {
    opacity: .7;
  }
  .footer_btm {
    padding: 1em 0;
    color: rgba(255,255,255,.3);
    font-weight: 200;
    border-top: 1px solid rgba(255,255,255,.2);
  }
  .pbl a,
  .pbl img {
    display: block;
  }
  .pbl a {
    opacity: .5;
  }
  .pbl a:hover {
    opacity: 1;
  }

  @media print, screen and (min-width: 831px) {
    .fnav--menu {
      height: 17.25em;
    }
  }
  @media print, screen and (min-width: 768px) {
    .footer_top {
      display: flex;
      flex-direction: column;
      justify-content: center;
      min-height: 469px;
    }
    .footer_btm p:not(:last-child) {
      margin-right: 1em;
    }
  }
  @media screen and (max-width: 990px) {
    .fnav {
      padding-left: 1.5rem;
      padding-right: 1.5rem;
    }
  }


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

    INDEX

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

/* hero
*************************************************** */
  .hero {
    height: 780px;
    overflow: hidden;
  }
  .hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 1100%;
    height: 100%;
    background-image: url(../images/hero-ptn.png);
  }
  /* IE */
  _:-ms-input-placeholder, :root .hero--vid {
    height: auto;
  }
  .hero > .inner {
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 85.65%; /* 1170px */
    max-width: 85.65%;
    height: 100%;
    padding-bottom: 172px;
  }
  .hero--ttl {
    font-size: 3.5rem; /* 56px */
    font-style: italic;
  }
  .hero--txt {
    margin-bottom: 40px;
    font-size: 1.125rem; /* 18px */
  }

  @media screen and (max-width: 767px) {
    .hero {
      height: 296px;
    }
    .hero > .inner {
      padding-bottom: 48px;
    }
    .hero--ttl {
      font-size: 2rem; /* 28px */
    }
  }

/* home_news
*************************************************** */
  .home_news {
    width: 90%;
    max-width: 704px;
  }
  .home_news .news_list {
    padding: 18px 4.83%; /* 34px */
    flex: 1;
  }
  .home_news .news_list .post {
    padding-top: .25em;
    padding-bottom: .25em;
    border-bottom: 0;
  }
  .btn-more a {
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    background-color: #ccc;
    font-weight: 300;
  }
  .btn-more a:hover {
    background-color: #bbb;
  }

  @media print, screen and (min-width: 768px) {
    .home_news {
      position: absolute;
      top: calc(100% - 40px);
      left: 0;
      margin-top: -56px;
    }
    .home_news .news_list {
      font-size: .875rem; /* 14px */
    }
    .home_news .post--date {
      font-size: .813rem; /* 13px */
    }
    .btn-more a {
      width: 30px;
      font-size: .75rem; /* 12px */
    }
  }
  @media screen and (max-width: 767px) {
    .home_news {
      display: block;
      width: 100%;
    }
    .btn-more a {
      padding: .5em 1em;
    }
  }

/* home_message
*************************************************** */
  .home_message--img {
    display: block;
  }
  .home_message .imgarea::before {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 7.91vw; /* 108px */
    width: 26.35vw;
    height: 84.92vw; /* 1160px */
    background-image: url(../images/message-bg.svg);
    background-repeat: space;
    background-position: center;
    background-size: 26.35vw; /* 360px */
    z-index: -1;
  }
  .home_message--img01 {
    width: 38.53vw; /* 601px 1560px基準 */
    margin-top: 14.32vw;
    margin-left: auto;
    margin-right: 7.32vw;
  }
  .home_message--img02 {
    margin-top: 4.5vw;
    width: 17vw; /* 325px 1912px基準 */
    transform: translateY(13.18vw); /* 180px */
    margin-left: 9.52vw;
  }
  .home_message--img03 {
    width: 29.39vw; /* 562px 1912px基準 */
    margin-top: -20.5vw;
    margin-left: auto;
    margin-right: 3.5vw;
  }

  @media print, screen and (min-width: 768px) {
    .home_message {
      padding-top: 9.15vw; /* 125px */
      padding-bottom: 9.52vw; /* 130px */
    }
    .home_message > .inner {
      max-width: 78.04vw; /* 1066px */
    }
    .home_message .txtarea {
      width: 45%; /* Limit text area width to prevent overlap */
      padding-right: 2vw;
    }
    .home_message .imgarea {
      position: absolute;
      top: 0;
      right: 0;
      width: 54.17vw; /* 740px */
      height: 100%;
    }
  }
  @media screen and (max-width: 767px) {
    .home_message .imgarea {
      width: 116%;
      margin-left: -8%;
    }
    .home_message .imgarea::before {
      left: 0;
      right: 0;
      margin: auto;
      margin-left: -10%;
      width: 120%;
      height: 40vw;
    }
    .home_message--img01 {
      width: 57.8vw;
    }
    .home_message--img02 {
      width: 25.5vw;
      margin-top: 8.5vw;
    }
    .home_message--img03 {
      width: 44vw;
      margin-top: -31.5vw;
    }
  }

/* home_product
*************************************************** */
  .home_product {
    background-image: url(../images/products-bg.jpg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
  }
.home_product--list {
  display: flex;
  flex-wrap: wrap; /* Ensure items wrap if necessary */
  justify-content: center; /* Center all items horizontally */
}

  .home_product--list .imgarea::before {
    padding-top: calc(240/376*100%);
  }
  .home_product--list .txtarea {
    padding: 1.5rem;
    background-color: #fff;
  }
  .home_product--ttl {
    font-size: 1.375rem; /* 22px */
    font-family: 'ヒラギノ角ゴ W6 JIS2004', 'Hiragino Kaku Gothic W6 JIS2004', 'Poppins', sans-serif;
    margin-bottom: 1em;
  }
  .home_product--ttl small {
    display: block;
    font-size: .813rem; /* 13px */
  }
  .home_product--list a:hover .btn-detail {
    color: #d82317;
  }
  .home_product--list a:hover .btn-detail::before {
    background-color: #d82317;
  }

  @media print, screen and (min-width: 768px) {
    .home_product--list a,
    .home_product--list .txtarea {
      display: flex;
      flex-direction: column;
    }
    /* IE */
    _:-ms-input-placeholder, :root .home_product--list a,
    _:-ms-input-placeholder, :root .home_product--list .txtarea {
      display: block;
    }
    .home_product--list a {
      height: 100%;
    }
    .home_product--list .txtarea {
      flex: 1;
    }
    .home_product--txt {
      font-size: .875rem; /* 14px */
    }
    .home_product--list .btn-detail {
      margin-top: auto;
    }
  }

/* home_recruit
*************************************************** */
  .home_recruit .imgarea::before {
    padding-top: calc(1078/956*100%);
  }
  .home_recruit .btn-detail {
    margin-top: 2em;
  }

  @media print, screen and (min-width: 768px) {
    .home_recruit {
      display: flex;
    }
    .home_recruit .imgarea {
      width: 50%;
    }
    .home_recruit .txtarea {
      padding: 4.98% 8.78% 5.34% 7.25%; /* 68px 120px 73px 99px */
      flex: 1;
    }
  }
  @media screen and (max-width: 767px) {
    .home_recruit .txtarea {
      padding: 32px 7%;
    }
  }


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

    PAGE

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

/* contact
*************************************************** */
  .contact--tel .tel_txt {
    font-size: 2rem; /* 32px */
  }
  .contact--form {
    background-color: #fff;
  }

/* sitemap
*************************************************** */
  .sitemap--menu {
    flex: 1;
  }
  .sitemap--menu a,
  .sitemap--menu span {
    display: block;
  }
  .sitemap--menu a {
    position: relative;
  }
  .sitemap--menu a:hover {
    color: #D82317;
  }
  .sitemap--menu > li > a {
    font-size: 1.125rem; /* 18px */
    border-bottom: 1px solid #D3D3D3;
    padding-bottom: .5em;
    margin-bottom: 1.25em;
  }
  .sitemap_sub_nav--wrap {
    padding-left: 1.25em;
    margin-bottom: 1.5em;
  }
  .sitemap_sub_nav a {
    padding-top: .4em;
    padding-bottom: .4em;
    padding-left: 1.25em;
  }
  .sitemap_sub_nav a::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    width: 6px;
    height: 6px;
    border-top: 1px solid #D82317;
    border-right: 1px solid #D82317;
    transform: rotate(45deg);
  }

  @media screen and (min-width: 768px) {
    .sitemap--menu:not(:last-child) {
      margin-right: 7.41%; /* 80px */
    }
  }
  @media screen and (max-width: 767px) {
    .sitemap--menu:not(:last-child) {
      margin-bottom: 24px;
    }
  }


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

    ARCHIVE

############################################################################## */
  
/* main_column
**************************************** */
  .main_column {
    flex: 1;
    margin-right: 80px;
  }

  /* --- post --- */
  .post { position: relative; }
  .post--link::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    cursor: pointer;
  }
  .post--info + .heading-2 {
    margin-top: .5em;
  }
  .post--date {
    color: #A6A6A6;
    font-size: .875rem; /* 14px */
  }
  .cat_list {
    position: relative;
    z-index: 1;
    overflow: hidden;
  }
  .cat_list a {
    display: inline-block;
    vertical-align: middle;
    font-size: .813rem; /* 13px */
    background-color: #56a0b9;
    color: #f6f6f6;
    line-height: 1;
    padding: 6px 12px;
    float: left;
    margin-right: 4px;
    margin-bottom: 4px;
    white-space: nowrap;
  }
  .post .post--img {
    border-radius: 3px;
  }
  .no-image {
    background-size: 80% auto!important;
    background-repeat: no-repeat;
    background-position: center;
    background-color: #eee;
    /* background-image: url(../../../../../../via.placeholder.com/160x481f22.html?text=LOGO); */ /* Disabled placeholder */
  }

  @media screen and (max-width: 1100px) {
    .container > .inner.flex {
      display: block;
    }
    .main_column {
      width: 100%;
      margin-right: 0;
    }
  }

/* side_column
**************************************** */

  /* --- archive-pulldown --- */
  .archive-pulldown {
    position: relative;
    margin-left: auto;
    z-index: 1;
  }
  .archive-pulldown .archive_list {
    position: relative;
  }
  .archive-pulldown .archive_list:not(:last-child) { margin-right: 24px; }
  .archive-pulldown .archive_list a {
    display: block;
    padding: .25em 1em;
    text-align: left;
  }
  .archive-pulldown .archive_list a:not(:last-child) { border-bottom: 1px solid #eee; }
  .archive-pulldown .archive_list a:hover {
    background-color: #F2F2F2;
  }
  .archive-pulldown .archive_list--label { margin-right: 8px; }
  .archive-pulldown .archive_list--btn {
    cursor: pointer;
    border: none;
    outline: none;
    appearance: none;
    padding: .25em 4em .25em 2em;
    background-color: #fff;
    border: 1px solid #ccc;
    font-family: 'ヒラギノ角ゴ W3 JIS2004', 'Hiragino Kaku Gothic W3 JIS2004', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic ProN', YuGothic, 'メイリオ', 'Meiryo', sans-serif;
    font-size: 1rem;
    line-height: 1.8;
    letter-spacing: .08em;
  }
  .archive-pulldown .archive_list--btn::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: .4em;
    right: .8em;
    margin: auto;
    width: .6em;
    height: .6em;
    border-bottom: 2px solid;
    border-right: 2px solid;
    transform: rotate(45deg);
    transition: all .2s ease-out;
  }
  .archive-pulldown .active .archive_list--btn::after {
    bottom: -.2em;
    transform: rotate(225deg);
  }
  .archive-pulldown .archive_list--menu {
    position: absolute;
    z-index: 1;
    width: 100%;
    background-color: #fff;
    border: 1px solid #ccc;
    visibility: hidden;
    margin-top: -1px;
    opacity: 0;
    transition: all .2s ease-out;
  }
  .archive-pulldown .active .archive_list--menu {
    visibility: visible;
    opacity: 1;
  }

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

  /* --- news_list --- */
  .news_list .post {
    padding-bottom: 1em;
    padding-top: 1em;
    margin-bottom: 0;
    border-bottom: 1px solid #ccc;
  }
  .news_list .post--date {
    width: 7em;
  }
  .news_list .post--ttl {
    flex: 1;
  }
  .news_list .post--link:not([href="javascript:void(0);"]):hover {
    color: #d82317;
  }
  .icon-new_tab {
    width: .875rem; /* 14px */
    height: .875rem; /* 14px */
  }
  .news_list .icon-new_tab {
    fill: #1B1B1B;
  }
  .news_list .post--link:hover .icon-new_tab {
    fill: #D82317;
  }

  @media screen and (max-width: 767px) {
    .news_list .post { display: block; }
    .news_list .post--date {
      display: inline-block;
      margin-bottom: 8px;
    }
  }


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

    SINGLE

############################################################################## */
  .eyecatch:not(:last-child) {
    margin-bottom: 2rem;
  }

/* pass
**************************************** */
  #pass p {
    margin-bottom: 1em;
  }
  #pass input[name="post_password"] {
    padding: 5px;
    border: solid 1px #aaa;
    outline: none;
  }
  #pass input[type="submit"] {
    padding: 4px 16px;
    letter-spacing: .15em;
    background-color: #ddd;
    border-radius: 4px;
    outline: none;
    border: none;
    cursor: pointer;
    transition: all .4s ease-out;
  }
  #pass input[type="submit"]:hover {
    opacity: .7;
  }
  .single .pass {
    width: 100%;
  }
  .single .pass p:first-child {
    margin-bottom: 16px;
  }

  @media screen and (max-width: 767px) {
    .single .pass p:first-child {
      text-align: left;
    }
  }

/* wp-pagenavi
**************************************** */
  .wp-pagenavi {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 2.5em;
  }
  .archive .wp-pagenavi {
    font-family: 'Poppins', sans-serif;
  }
  .wp-pagenavi-single {
    font-family: 'ヒラギノ角ゴ W6 JIS2004', 'Hiragino Kaku Gothic W6 JIS2004', 'ヒラギノ角ゴ Pro W6', 'Hiragino Kaku Gothic ProN', YuGothic, 'メイリオ', 'Meiryo', sans-serif;
    font-weight: 700;
  }
  .wp-pagenavi .pages {
    display: block;
    text-align: center;
    width: 100%;
    margin-bottom: 1em;
  }
  .wp-pagenavi a {
    position: relative;
    padding: .5em 1em;
    color: #1B1B1B;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .wp-pagenavi a:not([rel="prev"]):not([rel="next"]):not(.first):not(.last) {
    border-bottom: 2px solid;
  }
  .wp-pagenavi a:hover {
    color: #d82317;
  }
  .wp-pagenavi > *:not(.pages) {
    max-width: calc(100% / 2.6);
  }
  .wp-pagenavi > *:not(.pages) {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 2.5em;
    line-height: 1;
  }
  .archive .wp-pagenavi > *:not(.pages) {
    width: 1.5em;
  }
  .wp-pagenavi > *:not(.pages) {
    margin: 3px;
  }
  .wp-pagenavi .extend {
    width: 1.5em !important;
  }
  .wp-pagenavi a[rel="prev"]::before,
  .wp-pagenavi a[rel="next"]::before,
  .wp-pagenavi .first::before,
  .wp-pagenavi .last::before,
  .wp-pagenavi .first::after,
  .wp-pagenavi .last::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    border-top: 2px solid;
    border-right: 2px solid;
  }
  .wp-pagenavi a[rel="prev"]::before,
  .wp-pagenavi a[rel="next"]::before,
  .wp-pagenavi .first::before,
  .wp-pagenavi .last::before,
  .wp-pagenavi .first::after,
  .wp-pagenavi .last::after {
    width: .5em;
    height: .5em;
  }
  .wp-pagenavi a[rel="prev"]::before,
  .wp-pagenavi .first::before,
  .wp-pagenavi .first::after {
    transform: rotate(-135deg);
  }
  .wp-pagenavi a[rel="next"]::before,
  .wp-pagenavi .last::before,
  .wp-pagenavi .last::after {
    transform: rotate(45deg);
  }
  .wp-pagenavi-single a[rel="prev"]::before {
    transform: rotate(45deg);
  }
  .wp-pagenavi-single a[rel="next"]::before {
    transform: rotate(-135deg);
  }
  .wp-pagenavi .first::before,
  .wp-pagenavi .last::before {
    left: -6px;
  }
  .wp-pagenavi .first::after,
  .wp-pagenavi .last::after {
    right: -6px;
  }


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

    FORMY

############################################################################## */
  #formy_form table { width:100%; }
  #formy_form th,
  #formy_form td {
    padding: 16px;
    vertical-align: middle;
    border-bottom: solid 1px #eee;
  }
  #formy_form th {
    font-weight: normal;
    white-space: nowrap;
    text-align: left;
    width: 34%;
  }
  #formy_form table input[type="text"],
  #formy_form table input[type="email"],
  #formy_form table input[type="tel"],
  #formy_form table input[type="date"],
  #formy_form table input[type="password"],
  #formy_form table textarea {
    width: 100%;
    border-radius: 3px;
    vertical-align: bottom;
  }
  #formy_form table input[type="text"],
  #formy_form table input[type="email"],
  #formy_form table input[type="tel"],
  #formy_form table input[type="date"],
  #formy_form table input[type="password"],
  #formy_form select,
  #formy_form textarea {
    margin: 0;
    padding: 5px 15px;
    border: 1px solid #ccc;
    font: inherit;
    font-size: 1rem; /* 16px */
  }
  #formy_form textarea { height: 100px; }
  #formy_form select { height: 40px; }
  #formy_form ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  #formy_form input:hover { opacity: .7; }
  #formy_form textarea:hover { opacity: .7; }
  #formy_form input:focus { outline: none; }
  #formy_form .parsley-validated {  background-color: #eee; }
  #formy_form .parsley-error {  background-color: #fee; }
  #formy_form .parsley-success {  background-color: #fff; }
  .help_text {
    font-size: .875rem; /* 14px */
    color: #999;
  }
  .hidden_help { display: none; }
  .formy_privacy div {
    overflow-y: scroll;
    height: 140px;
    border: solid 1px #ccc;
    font-size: .875rem; /* 14px */
    padding: 8px 16px;
  }
  .requiredIcon {
    background-color: #ff9426;
    color: #fff;
    margin: 0 0 0 1em;
    font-size: .75rem; /* 12px */
    padding: 2px 5px;
    border-radius: 3px;
    float: right;
  }
  #formy_btn {
    padding-top: 32px;
    text-align: center;
  }
  #formy_btn input {
    min-width: 220px;
    padding: 16px 32px;
    margin-right: 4px;
    margin-left: 4px;
    border: none;
    border-radius: 3px;
    color: #fff;
    font-size: inherit;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
  }
  #formy_form ul li input[type="radio"],
  #formy_form ul li input[type="checkbox"] { display: none !important; }
  #formy_form ul li label {
    position: relative;
    display: inline-block;
    padding: .5em 8px .5em 40px;
    line-height: 1.6;
    vertical-align: top;
    cursor: pointer;
  }
  #formy_form ul li label:hover { opacity: .7; }
  #formy_form ul li label::before {
    content: "";
    position: absolute;
    width: 16px;
    height: 16px;
    border: 2px solid #788b93;
    left: 16px;
    top: 12px;
  }
  #formy_form ul li input[type="radio"] + label::before { border-radius: 10px; }
  #formy_form ul li input[type="radio"]:checked + label,
  #formy_form ul li input[type="checkbox"]:checked + label {
    color: #e75f5f;
    font-weight: bold;
  }
  #formy_form ul li input[type="radio"]:checked + label::before,
  #formy_form ul li input[type="checkbox"]:checked + label::before {
    border-color: #e75f5f;
  }
  #formy_form ul li input[type="radio"]:checked + label::after,
  #formy_form ul li input[type="checkbox"]:checked + label::after {
    content: "";
    width: 10px;
    height: 18px;
    top: 4px;
    left: 20px;
    border-right: 2px solid #e75f5f;
    border-bottom: 2px solid #e75f5f;
    display: block;
    position: absolute;
    z-index: 10;
    transform: rotate(45deg);
  }
  .formy_confirm { background-color: #4dbaff; }
  .formy_submit_disabled { background-color: #ccc; }
  #formy_btn .formy_submit_disabled:hover {
    opacity:1;
    cursor: default;
  }
  .autoConfirmBack { background-color: #aaa; }
  .formy_send { background-color: #ff6600; }
  #total_required {
    padding: 16px;
    color: #ff9426;
    text-align: center;
  }

  @media print, screen and (min-width: 768px) {
    #formy_form .confirm-message {
      text-align: center;
    }
  }
  @media screen and (max-width: 767px) {
    #formy_form { padding: 0 16px; }
    #formy_form th,
    #formy_form td {
      display: block;
      width: auto;
      padding-left: 0;
      padding-right: 0;
    }
    #formy_form th {
      border-bottom:none;
      padding-bottom: 0;
      white-space: normal;
      font-weight: bold;
    }
    #formy_form td { padding-top: 0; }
    #formy_btn { padding-top: 8px; }
    #formy_btn input {
      width: 100%;
      margin-right: 0;
      margin-left: 0;
      background-size: contain;
      background-position: center;
    }
    .autoConfirmBack { margin-bottom: 8px; }
    #formy_form table input[type="text"],
    #formy_form table input[type="email"],
    #formy_form table input[type="tel"],
    #formy_form table input[type="date"],
    #formy_form table input[type="password"],
    #formy_form select,
    #formy_form textarea {
      font-size: 16px; /* iOSでズーム防止 */
    }
  }

/* Language Switcher
*************************************************** */
  .language-switcher {
    display: flex;
    align-items: center;
    margin-left: 20px;
    font-size: 14px;
    font-weight: 600;
  }
  .lang-btn {
    color: #1B1B1B;
    text-decoration: none;
    padding: 5px 8px;
    border-radius: 3px;
    transition: all 0.3s ease;
    font-family: 'Poppins', sans-serif;
  }
  .lang-btn:hover {
    background-color: #f0f0f0;
  }
  .lang-btn.active {
    color: #e74c3c;
    font-weight: 700;
  }
  .lang-separator {
    margin: 0 5px;
    color: #999;
  }

  @media screen and (max-width: 1080px) {
    .language-switcher {
      margin-left: 15px;
      font-size: 13px;
    }
    .lang-btn {
      padding: 4px 6px;
    }
  }