@charset "UTF-8";
/*
Theme Name: LP用
Author: amanokikaku
Author URI: http://amnk.co.jp/
Description: 2025.12.08
Version: 1.0
*/

@layer reset, form, base, swiper, layout, common;
/*--------------------reset.css--------------------*/

@layer reset {

  html,
  body,
  div,
  span,
  object,
  iframe,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  p,
  blockquote,
  pre,
  abbr,
  address,
  cite,
  code,
  del,
  dfn,
  em,
  img,
  ins,
  kbd,
  q,
  samp,
  small,
  strong,
  var,
  b,
  i,
  dl,
  dt,
  dd,
  ol,
  ul,
  li,
  fieldset,
  form,
  label,
  legend,
  table,
  caption,
  tbody,
  tfoot,
  thead,
  tr,
  th,
  td,
  article,
  aside,
  canvas,
  details,
  figcaption,
  figure,
  footer,
  header,
  hgroup,
  menu,
  nav,
  section,
  summary,
  time,
  mark,
  audio,
  video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 100%;
    vertical-align: baseline;
    white-space: initial;
  }

  html {
    inline-size: 100%;
    overflow-x: hidden;
  }

  body {
    -webkit-text-size-adjust: 100%;
    line-height: 1;
  }

  article,
  aside,
  details,
  figcaption,
  figure,
  footer,
  header,
  hgroup,
  menu,
  nav,
  section {
    display: block;
  }

  ol,
  ul,
  li {
    list-style: none;
  }

  blockquote,
  q {
    quotes: none;
  }

  blockquote:before,
  blockquote:after,
  q:before,
  q:after {
    content: '';
    content: none;
  }

  a {
    margin: 0;
    padding: 0;
    background: transparent;
    color: inherit;
    font-size: 100%;
    text-decoration: none;
    vertical-align: baseline;

    &:not([href, link]) {
      pointer-events: none;
    }
  }

  /* change colours to suit your needs */
  ins {
    background-color: #ff9;
    color: #000;
    text-decoration: none;
  }

  /* change colours to suit your needs */


  del {
    text-decoration: line-through;
  }

  abbr[title],
  dfn[title] {
    border-bottom: 1px dotted;
    cursor: help;
  }

  table {
    border-collapse: collapse;
    border-spacing: 0;
  }

  /* change border colour to suit your needs
*/
  hr {
    display: block;
    block-size: 1px;
    margin: 1em 0;
    padding: 0;
    border: 0;
    border-top: 1px solid var(--border_color);
  }

  input,
  select {
    vertical-align: middle;
  }

  img,
  video {
    vertical-align: bottom;
    max-inline-size: 100%;
    block-size: auto;
  }

  iframe {
    vertical-align: bottom;
    max-inline-size: 100%;
  }

  th {
    text-align: left;
  }

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

/*--------------------reset.cssここまで--------------------*/

/*--------------------form.css--------------------*/

@layer form {

  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="search"],
  input[type="url"],
  input[type="password"],
  input[type="datetime"],
  input[type="date"],
  input[type="month"],
  input[type="week"],
  input[type="time"],
  input[type="datetime-local"],
  input[type="number"],
  input[type="range"],
  input[type="color"],
  input[type="radio"],
  input[type="checkbox"],
  input[type="submit"],
  input[type="button"],
  input[type="image"],
  select,
  button,
  textarea {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    outline: none;
    background: none;
    font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  }

  /* プレースホルダー */
  ::-webkit-input-placeholder {
    color: var(--border_color);
  }

  :-ms-input-placeholder {
    color: var(--border_color);
  }

  ::-ms-input-placeholder {
    color: var(--border_color);
  }

  ::placeholder {
    color: var(--border_color);
  }

  /* 入力欄 */
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="search"],
  input[type="url"],
  input[type="password"],
  input[type="datetime"] {
    inline-size: 100%;
    padding: 0.25rem 0.75rem;
    border: 1px solid var(--border_color);

  }

  /* 入力欄 */
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="search"],
  input[type="url"],
  input[type="password"],
  input[type="datetime"],
  input[type="date"],
  input[type="month"],
  input[type="week"],
  input[type="time"],
  input[type="datetime-local"],
  input[type="number"],
  input[type="range"],
  textarea {
    padding: 0.25rem 0.75rem;
    background: #fff;
    border-radius: 4px;
    box-shadow: inset 1.5px 1.5px 0px var(--border_color);
    border: none;
    border-bottom: 1px solid var(--border_color);
    border-right: 1px solid var(--border_color);
    font-size: min(4vw, 16px);
  }

  /* 日付 */
  input[type="datetime"],
  input[type="date"],
  input[type="month"],
  input[type="week"],
  input[type="time"],
  input[type="datetime-local"] {
    font-size: min(4vw, 16px);
    min-block-size: 34px;
    min-inline-size: 120px;
  }

  /* 数値 */
  /* スピンボタン非表示*/
  input[type="number"]::-webkit-outer-spin-button,
  input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
  }

  input[type="number"] {
    -moz-appearance: textfield;
  }

  /* レンジ */
  /* カラーピッカー */
  select {
    inline-size: 100%;
    padding: 0.25rem 0.75rem;
    border: 1px solid var(--border_color);
    background: url(images/down-select.png) no-repeat right 1em center;
    cursor: pointer;
    font-size: min(4vw, 16px);
  }

  select::-ms-expand {
    display: none;
  }

  textarea {
    inline-size: 100%;
    /* ieでスクロールバー非表示 */
    padding: 0.25rem 0.75rem;
    overflow: hidden;
  }

  input[type="submit"],
  input[type="button"],
  button {
    cursor: pointer;
  }

  form input[type="radio"] {
    display: none;
  }

  form input[type="radio"]+span {
    display: inline-block;
    vertical-align: middle;
    cursor: pointer;
    position: relative;
    line-height: 1;
    padding-inline-start: 1.25rem;
  }

  form input[type="radio"]+span:before {
    margin-right: 0.3em;
    content: "";
    inline-size: 1rem;
    block-size: 1rem;
    display: inline-flex;
    border-radius: 1rem;
    border: 1px solid var(--border_color);
    position: absolute;
    inset-block: 50%;
    inset-inline-start: 0;
    translate: 0 -50%;
  }

  form input[type="radio"]:checked+span:after {
    content: "";
    inline-size: 1rem;
    block-size: 1rem;
    background: currentcolor;
    display: inline-block;
    border-radius: 1rem;
    position: absolute;
    inset-block: 50%;
    inset-inline-start: 0;
    translate: 0 -50%;
    scale: 50%;
  }

  form input[type="checkbox"] {
    display: none;

    label:has(&) {
      display: block;
    }

    &+span {
      display: inline-flex;
      align-items: baseline;
      vertical-align: middle;
      cursor: pointer;
      position: relative;
      gap: 0.25rem;

      &:before {
        margin-right: 0.3em;
        content: "";
        min-inline-size: 14px;
        aspect-ratio: 1/1;
        display: inline-block;
        border: 1px solid var(--border_color);
        position: relative;
        inset-block-start: 2px;
      }

      & ruby {
        display: flex;
        flex-flow: column;
        line-height: 1.25;
        font-size: min(3.5vw, 13px);
        gap: 0.25rem;

        & rt {
          line-height: 1.25;
          color: #aaa;
        }
      }
    }

    &:checked+span:after {
      content: "";
      inline-size: 14px;
      block-size: 10px;
      display: inline-block;
      position: absolute;
      left: 1px;
      top: 3px;
      border-bottom: 3px solid currentcolor;
      border-left: 3px solid currentcolor;
      transform: rotate(-45deg);
    }

  }

  .prefbox select {
    inline-size: 100px;
    margin-bottom: 0.5em;
    font-size: 16px;
  }

  .wrap .contact-form table th,
  .wrap .contact-form table td {
    vertical-align: middle;
  }

  .contact-form button {
    display: block;
    z-index: 1;
    position: relative;
    inline-size: 300px;
    min-inline-size: 200px;
    margin-top: 40px;
    padding: 1em;
    background: #fff;
    text-align: center;
    transition: 0.5s;
    color: var(--main_color);
    /* border-bottom: #104f82 1px solid; */
    border: 1px solid var(--main_color);
    border-radius: 4px;
    filter: drop-shadow(1px 1px 0px var(--border_color));
    font-size: 14px;
    margin: auto;
  }

  .contact-form button:after {
    -webkit-transform: rotate(45deg);
    display: inline-block;
    position: absolute;
    top: 0;
    right: 1em;
    bottom: 0;
    inline-size: 12px;
    block-size: 12px;
    margin: auto;
    transform: rotate(45deg);
    border-top: 3px solid var(--main_color);
    border-right: 3px solid var(--main_color);
    content: "";
  }

  .contact-form button:hover {
    background: var(--main_color);
    color: #fff;
    opacity: 1;
  }

  .contact-form button:hover:after {
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
  }

  .mw_wp_form_preview .list-caution {
    display: none;
  }

  /*パスワード保護*/

  .post-password-form {
    text-align: initial;

    input[type="submit"] {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0.5rem;
      background: #333;
      color: #fff;
      inline-size: 100%;
      border-radius: 0.25rem;
      margin-block-start: 1rem;
    }
  }

  /*ログインショートコード*/

  .box-login {
    & p {
      text-align: initial;
    }

    & [type="submit"] {
      width: 100%;
      padding: min(3vw, 1rem);
      font-size: min(16px, 4vw);
      font-weight: bold;
      background: var(--main_color);
      color: #fff;
      border-radius: 8px;
    }

    & [type="checkbox"] {

      label:has(&) {
        display: inline-flex;
        align-items: baseline;
        vertical-align: middle;
        cursor: pointer;
        position: relative;
        gap: 0.25rem;

        &:before {
          margin-right: 0.3em;
          content: "";
          min-inline-size: 14px;
          aspect-ratio: 1/1;
          display: inline-block;
          border: 1px solid var(--border_color);
          position: relative;
          inset-block-start: 2px;
        }
      }

      label:has(&:checked):after {
        content: "";
        inline-size: 14px;
        block-size: 10px;
        display: inline-block;
        position: absolute;
        left: 1px;
        top: 3px;
        border-bottom: 3px solid var(--main_color);
        border-left: 3px solid var(--main_color);
        transform: rotate(-45deg);
      }

    }

  }

}

/*--------------------form.cssここまで--------------------*/

/*--------------------base.css--------------------*/

@layer base {

  /* 共通色指定
*************************** */
  .btn-contact,
  .pagetop,
  .category-post,
  .slick-dots li.slick-active button:before,
  .sp-nav {
    background: var(--main_color);
    color: #fff;
  }

  body {
    color: #333;
    font-family: "Zen Kaku Gothic New", "游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
    font-size: min(16px, 3.5vw);
    font-weight: 500;
    font-feature-settings: "palt";
    text-rendering: optimizeLegibility;
  }

  body :is(p, li, dt, dd) {
    line-height: 1.75;

    & img {
      vertical-align: baseline;
    }
  }

  .textLeft {
    text-align: left;
  }

  .textRight {
    text-align: right;
  }

  .textCenter {
    text-align: center;
  }

  .textJustify {
    text-align: justify;
    text-justify: inter-ideograph;
  }


  html {
    scroll-behavior: smooth;
  }

  *:is([id]) {
    scroll-behavior: auto;
  }

  body {
    display: flex;
    flex-direction: column;
    min-block-size: 100vh;
    position: relative;
    scroll-behavior: smooth;
    background: #ffffffdd;
    overflow-x: hidden;
  }
/*
  body.over {
    padding-top: 84px;

    & .header.over {
      position: fixed;
      inset-inline-start: 0;
      inset-block-start: -84px;

      &.active {
        position: fixed;
        inset-block-start: 0;
        inset-inline: 0;
        transition: all 0.5s 0.5s;
      }
    }
  }
*/

  p {
      word-wrap: revert-layer;
      word-break: unset;
  }

  ul {

    & li {
      line-height: 1.75;
    }

    :is(&:not([class]), &.wp-block-list:not([class*=" "]))>li:not([class]) {
      text-indent: -1rem;
      padding-inline-start: 1rem;

      & a {
        text-decoration: underline;
      }

      &+li {
        margin-block-start: 0.5rem;
      }

      &:before {
        content: "";
        display: inline-block;
        block-size: 10px;
        inline-size: 10px;
        background: var(--main_color);
        border-radius: 5px;
        margin-right: 5px;
      }
    }
  }

  ol {
    counter-reset: ol-count;

    &>li {
      line-height: 1.75;

      &:before {
        counter-increment: ol-count;
        content: counter(ol-count);
      }

      [style*="lower-alpha"] &:before {
        content: counter(ol-count, lower-alpha);
      }
    }

    :is(&:not([class]), &.wp-block-list:not([class*=" "]))>li:not([class]) {
      text-indent: -1.5rem;
      padding-inline-start: 1.5rem;

      &+li {
        margin-block-start: 0.5rem;
      }

      &:before {
        color: var(--main_color);
        font-weight: bold;
        content: counter(ol-count)".";
        inline-size: 1.5rem;
        display: inline-block;
        text-indent: 0;
        text-align: right;
      }

      [style*="lower-alpha"] &:before {
        color: var(--main_color);
        font-weight: bold;
        content: counter(ol-count, lower-alpha)".";
      }
    }
  }

  /*
  .relative {
    position: relative;
  }

  .absolute {
    position: absolute;
  }

  .fullWidth {
    inline-size: 100%;
  }
*/

  .header {
    z-index: 6;
    position: fixed;
    inset: 0 0 auto;

    /*
    @media(width <=640px) {
      & .inner-header {
        padding: calc(min(4vw, 1rem) + 1rem) min(4vw, 1.5rem) min(4vw, 1rem);
        gap: unset;

        &:not(:has(.head-header)) {
          padding: min(4vw, 1rem) min(4vw, 1.5rem);
          --icon_top: 50%;
        }
      }
    }
    */
  }

  .list-sp-menu {
    display: flex;
    position: absolute;
    inset-block-start: var(--icon_top, calc(50% + 0.5rem));
    inset-inline-end: calc(min(4vw, 1.5rem) + 40px);
    transform: translateY(-50%);

    & .sp-menu {
      inline-size: 40px;
      display: flex;
      flex-flow: column nowrap;
      align-items: center;
      text-align: center;
      line-height: 1;

      & span {
        -webkit-transform: scale(0.8, 0.8);
        display: block;
        padding-top: 0.5em;
        transform: scale(0.8, 0.8);
        font-size: 10px;
        letter-spacing: 0;
      }
    }

    & .sp-header-tel:before {
      content: "";
      display: inline-block;
      block-size: 25px;
      inline-size: 25px;
      mask: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 24 24"><path fill="%231364b3" d="M15,12H17A5,5 0 0,0 12,7V9A3,3 0 0,1 15,12M19,12H21C21,7 16.97,3 12,3V5C15.86,5 19,8.13 19,12M20,15.5C18.75,15.5 17.55,15.3 16.43,14.93C16.08,14.82 15.69,14.9 15.41,15.18L13.21,17.38C10.38,15.94 8.06,13.62 6.62,10.79L8.82,8.59C9.1,8.31 9.18,7.92 9.07,7.57C8.7,6.45 8.5,5.25 8.5,4A1,1 0 0,0 7.5,3H4A1,1 0 0,0 3,4A17,17 0 0,0 20,21A1,1 0 0,0 21,20V16.5A1,1 0 0,0 20,15.5Z" /></svg>') no-repeat center center;
      -webkit-mask: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 24 24"><path fill="%231364b3" d="M15,12H17A5,5 0 0,0 12,7V9A3,3 0 0,1 15,12M19,12H21C21,7 16.97,3 12,3V5C15.86,5 19,8.13 19,12M20,15.5C18.75,15.5 17.55,15.3 16.43,14.93C16.08,14.82 15.69,14.9 15.41,15.18L13.21,17.38C10.38,15.94 8.06,13.62 6.62,10.79L8.82,8.59C9.1,8.31 9.18,7.92 9.07,7.57C8.7,6.45 8.5,5.25 8.5,4A1,1 0 0,0 7.5,3H4A1,1 0 0,0 3,4A17,17 0 0,0 20,21A1,1 0 0,0 21,20V16.5A1,1 0 0,0 20,15.5Z" /></svg>') no-repeat center center;
      background: var(--main_color);
      right: 0;
      left: 0;
      /*top:-5px;*/
    }

    & .sp-header-contact:before {
      content: "";
      display: inline-block;
      block-size: 25px;
      inline-size: 25px;
      mask: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 24 24"><path fill="%231364b3" d="M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z" /></svg>') no-repeat center center;
      -webkit-mask: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 24 24"><path fill="%231364b3" d="M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z" /></svg>') no-repeat center center;
      background: var(--main_color);
      right: 0;
      left: 0;
      /*top:-5px;*/
    }

    & .sp-header-access:before {
      content: "";
      display: inline-block;
      block-size: 25px;
      inline-size: 25px;
      mask: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 24 24"><path fill="%231364b3" d="M12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5M12,2A7,7 0 0,0 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9A7,7 0 0,0 12,2Z" /></svg>') no-repeat center center;
      -webkit-mask: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 24 24"><path fill="%231364b3" d="M12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5M12,2A7,7 0 0,0 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9A7,7 0 0,0 12,2Z" /></svg>') no-repeat center center;
      background: var(--main_color);
      right: 0;
      left: 0;
      /*top:-5px;*/
    }

    @media (640px<width) {
      display: none;
    }

  }

  #nav-open {
    z-index: 10000;
    position: absolute;
    inset: 0 0 auto auto;
    translate: max(-1.5rem, -3vw) min(1.5rem, 3vw);
    inline-size: min(15vw,100px);
    block-size: 20px;
    cursor: pointer;
    display: flex;
    flex-flow: column nowrap;
    gap: 0.5rem;
    justify-content: flex-end;
    transition: all 0.5s;

    & span {
      block-size: 1px;
      inline-size: 100%;
      margin: auto;
      background: var(--main_color);
      transform-origin: center right;
      transition: all 0.5s;

      &:nth-of-type(1) {}

      &:nth-of-type(2) {
        scale: 0.8 1;
      }

      &:nth-of-type(3) {
        scale: 0.6 1;
      }
    }

    #nav-input:checked~& {
      block-size: min(11vw,72px);

      & span {
        position: absolute;
        background: #fff;

        &:nth-of-type(1) {
          inset: 0 0 auto auto;
          rotate: -45deg;
          transition: all 0.5s;
          translate: 0 -50%;
        }

        &:nth-of-type(2) {
          opacity: 0;
        }

        &:nth-of-type(3) {
          inset: auto 0 0 auto;
          rotate: 45deg;
          scale: 1;
          transition: all 0.5s;
        }
      }
    }

    @media(width <=640px) {
      inset-block-start: var(--icon_top, calc(50% + 0.5rem));
    }

  }

  #nav-content {
    z-index: 100;
    position: fixed;
    top: 0;
    left: 0;
    height: 100dvh;
    width: 0;
    overflow-y: scroll;
    pointer-events: none;
    transform-origin: left top;
    background: unset;
    transition: width 0.5s ease-in-out;
    white-space: nowrap;
    word-break: keep-all;
    transform: scale(1);
    max-width: unset;

    &::-webkit-scrollbar {
      display: none;
    }

    #nav-input:checked~& {
      box-shadow: 6px 0 25px rgb(0 0 0 / 15%);
      pointer-events: unset;
      width: 100vw;
      background: unset;
      transition: width 0.5s ease-in-out;
    }

          & svg {
            inline-size: min(100%, 360px);

            & :is(.cls-1, .cls-2) {
              fill: #fff !important;
            }
          }
    
  }

  .nav {
    width: 100vw;
    min-height: 100vh;
    /* position: fixed; */
    top: 0;
    left: 0;
    color: var(--text_color);
    padding: min(25vw, 12rem) min(6vw, 14rem) min(12vw, 10rem) min(6vw, 14rem);
    backdrop-filter: blur(3px) grayscale(1);
    background: #1f1e1ccc;
    display: flex;
    align-items: center;
    justify-content: center;

    &>div {
      flex: 1;
    }
  }

  .global-nav {
    display: grid;
    grid-template: auto / repeat(auto-fill, minmax(min(100%, 350px), 1fr));
    gap: min(8vw, 3rem) 3rem;
    /*overflow: auto;*/

    &>li>a {
      font-size: min(4.5vw, 22px);
      display: flex;
      align-items: baseline;
      gap: 1rem;
      font-family: var(--garamond);
      border-bottom: 1px solid;
      color: #fff;

      &+.sub-menu {
        margin-top: min(6vw, 2rem);
        border-left: 1px solid #fff;
        padding-left: 1rem;
      }
    }

    & .sub-menu li {

      & a {
        font-size: min(4vw, 18px);
        font-family: var(--serif);
      }

      &+& {
        margin-top: min(4vw, 1rem);
      }
    }

  }

  /*
  .global-nav>li>ul.sub-menu>li>ul>li {
    position: relative;
  }

  .global-nav>li>ul.sub-menu>li>ul>li:nth-child(1):before {
    content: "";
    block-size: 0;
    inline-size: 0;
    display: block;
    border-color: transparent transparent #104f82;
    border-style: solid;
    border-width: 10px 10px 10px;
    position: absolute;
    top: 0;
    bottom: 0;
    left: -20px;
    margin: auto 0;
    z-index: 2;
    transform: rotate(-90deg);
    -webkit-transform: rotate(-90deg);
  }

  .global-nav>li:last-child>ul.sub-menu>li>ul>li:nth-child(1):before {
    left: initial;
    right: -20px;
    transform: rotate(90deg);
    -webkit-transform: rotate(90deg);
  }
  */
  /*
  .global-nav>li>ul>li>ul {
    position: absolute;
    top: 0;
    left: 100%;
    inline-size: 100%;
    opacity: 0;
    visibility: hidden;
    transition: 0.5s;
    z-index: 1;
  }

  .global-nav>li>ul>li:hover>ul {
    opacity: 1;
    visibility: visible;
    transition: 0.5s;
  }

  .global-nav>li:last-child>ul>li>ul {
    right: 100%;
    left: initial;
  }

  .global-nav>li>ul>li>ul>li {
    opacity: 0;
    visibility: hidden;
  }

  .global-nav>li>ul>li:hover>ul>li {
    opacity: 1;
    visibility: visible;
  }

  .global-nav>li>ul.sub-menu>li>ul>li>a {
    background: #104f82;
  }
*/

  .drawer-nav {
    border-block-end: 1px solid var(--border_color);

    & li {
      position: relative;
      line-height: 1.75;

      &+& {
        border-block-start: 1px solid var(--border_color);
      }

      & a {
        z-index: 1;
        position: relative;
        display: flex;
        align-items: center;
        justify-content: space-between;
        inline-size: 100%;
        min-block-size: 50px;
        display: flex;
        padding: 0.5rem 1rem;
        position: relative;

        &:not([href]) {
          pointer-events: none;
        }

        &:after {
          content: "";
          border-top: 3px solid #999;
          border-right: 3px solid #999;
          block-size: 9px;
          inline-size: 9px;
          transform: rotate(45deg);
        }

        & span {
          display: none;
        }
      }
    }

    & .sub-menu {
      display: none;
      border-block-start: 1px solid var(--border_color);

      & a {
        background: #eeeeee;
      }
    }

    & .btn-sub {
      z-index: 2;
      position: absolute;
      top: 0;
      right: 0;
      inline-size: 43px;
      block-size: 50px;
      margin: auto;
      color: #999999;

      &+a:after {
        content: none;
      }
    }

    & [class*=fa-angle] {
      &:before {
        content: "";
        border-top: 3px solid #999;
        border-right: 3px solid #999;
        block-size: 9px;
        inline-size: 9px;
        position: absolute;
        top: 50%;
        right: 50%;
      }

      &[class*="-down"]:before {
        transform: translate(75%, -50%) rotate(135deg);
      }

      &[class*="-up"]:before {
        transform: translate(75%, -50%) rotate(-45deg);
      }
    }

  }


  .wrap-fixed {
    position: fixed;
    inset: auto 0 0 auto;
    translate: -2rem -2rem;
    z-index: 5;

    .pagetop {
      display: flex;
      z-index: 5;
      align-items: center;
      justify-content: center;
      inline-size: 3rem;
      aspect-ratio: 1/1;
      border-radius: 50%;
      background: var(--main_color);
      color: #fff;
      text-align: center;
      opacity: 0;
      transition: 0.6s opacity;
      pointer-events: none;

      & span {
        -webkit-transform: rotate(-45deg);
        display: block;
        inline-size: 25%;
        block-size: 25%;
        rotate(-45deg);
        translate: 0 20%;
        border-top: 3px solid #fff;
        border-right: 3px solid #fff;
      }

      .wrap-fixed.active & {
        opacity: inherit;
        pointer-events: unset;
      }
    }
  }

  .sidebar img {
    max-inline-size: 100%;
    block-size: auto;
  }

  .widget_nav_menu h3,
  .head-side {
    position: relative;
    padding: 0.5rem 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--sub_color);
    margin-block-end: 1rem;
    line-height: 1;
  }

  .widget_nav_menu h3:before,
  .head-side:before,
  .widget_nav_menu h3:after,
  .head-side:after {
    display: block;
    content: none;
    background-color: #eeeeee;
    flex: 1 0 0%;
    min-inline-size: 20px;
  }

  .widget_nav_menu h3:before,
  .head-side:before {
    margin-right: 0.5em;
  }

  .widget_nav_menu h3:after,
  .head-side:after {
    margin-left: 0.5em;
  }

  .widget_nav_menu .menu>li {
    position: relative;
  }

  .widget_nav_menu .menu>li,
  .list-side>li:not(:last-of-type) {
    border-bottom: 1px solid #eee;
  }

  .widget_nav_menu .menu>li a,
  .list-side>li a {
    display: block;
    position: relative;
    padding: 0.75em 0;
    line-height: 1.25;
  }

  .widget_nav_menu .menu>li a:after {
    -webkit-transform: rotate(45deg);
    display: inline-block;
    position: absolute;
    top: 0;
    right: 1em;
    bottom: 0;
    inline-size: 10px;
    block-size: 10px;
    margin: auto;
    transform: rotate(45deg);
    border-top: 2px solid #999;
    border-right: 2px solid #999;
    content: "";
  }

  .widget_nav_menu ul>li>ul.sub-menu {
    visibility: hidden;
    position: absolute;
    top: 0;
    left: 100%;
    inline-size: 100%;
    opacity: 0;
    transition: 0.5s;
  }

  .widget_nav_menu ul>li:hover>ul.sub-menu {
    visibility: visible;
    z-index: 10;
    opacity: 1;
  }

  .widget_nav_menu ul>li>ul.sub-menu>li:nth-child(1):before {
    content: "";
    block-size: 15px;
    inline-size: 15px;
    display: block;
    background: var(--main_color);
    transform: rotate(-45deg);
    position: absolute;
    top: 0;
    bottom: 0;
    left: -8px;
    margin: auto 0;
    z-index: -1;
  }

  .widget_nav_menu ul>li>ul.sub-menu>li>ul>li:nth-child(1):before {
    background: #104f82;
  }

  .widget_nav_menu ul>li>ul.sub-menu>li:not(:last-child) {
    border-bottom: 1px solid #c9caca;
  }

  .widget_nav_menu ul>li>ul.sub-menu>li {
    position: relative;
  }

  .widget_nav_menu ul>li>ul.sub-menu>li a {
    background: var(--main_color);
    padding: 0.75em 1em;
    color: #ffffff;
    z-index: 1;
  }

  .widget_nav_menu ul>li>ul.sub-menu>li a:hover {
    opacity: 1;
    background: #3b80b7;
  }

  .widget_nav_menu ul>li>ul.sub-menu>li>ul>li>a {
    background: #104f82;
  }

  .wp-caption-text {
    font-size: 15px;
    line-height: 1.75;
    margin-top: 0.5em;
    inline-size: 300px;
    text-align: justify;
    letter-spacing: 0.05em;
  }

  .list-side2 {
    margin-bottom: 1em;
  }

  .list-side2 li:not(:first-child) {
    margin-top: 15px;
  }

  .list-side2 a {
    display: flex;
  }

  .list-side2 a div:nth-child(1) {
    inline-size: 90px;
    margin-right: 10px;
  }

  .list-side2 a div:nth-child(2) {
    inline-size: 200px;
  }

  .box-side2 .list-side2 img {
    inline-size: 100%;
    block-size: 90px !important;
  }

  .list-side2 time {
    display: block;
    margin-bottom: 0.5em;
    font-size: 12px;
  }

  .list-side2 span {
    font-size: 14px;
    line-height: 1.5;
  }

  .side-compnay {
    line-height: 1.5;
  }

  .side-compnay picture {
    margin-top: 12px;
  }

  .side-compnay img {
    margin-bottom: 1em;
  }

  .side-address-compnay p {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    line-height: 1.5;
    font-size: min(3.5vw, 14px);

    &+p {
      margin-block-start: 0.25rem;
    }

    &:before {
      content: "";
      display: flex;
      align-self: baseline;
      min-inline-size: 1rem;
      aspect-ratio: 1/1;
      background: var(--key_color);
      translate: 0 15%;
    }

    &.company_name:before {
      mask: url(images/company.svg) center/ contain no-repeat;
    }

    &.company_zipcode:before {
      mask: url(images/zip.svg) center / contain no-repeat;
    }

    &.company_pref:before {
      mask: url(images/pref.svg) center/ contain no-repeat;
    }

    &.company_tel:before {
      mask: url(images/tel2.svg) center / contain no-repeat;
    }

    &.company_fax:before {
      mask: url(images/fax.svg) center / contain no-repeat;
    }
  }

  .side-list-compnay {
    display: flex;
    gap: 1rem;

    & li {
      flex: 1;

      & a {
        display: block;
        padding: 0.75rem 1rem;
        border: 1px solid #aaaaaa;
        font-size: 12px;
        line-height: 1;
        text-align: center;
      }
    }
  }


  /*
.side-access:before {
  margin-right: 0.5em;
  color: #dc4b3e;
}

.side-company:after {
  margin-left: 1em;
}
*/
  .box-search {
    display: flex;
    padding-top: 12px;
  }

  .box-search input[type="text"] {
    inline-size: 85%;
    padding: 7px 14px 6px;
    border-radius: 4px 0 0 4px;
  }

  .box-search button[type="submit"] {
    inline-size: 15%;
  }

  .box-search .fa-search {
    display: block;
    background: #666666;
    block-size: 39px;
    border-radius: 0 4px 4px 0;
    position: relative;
  }

  .box-search .fa-search:before {
    content: "";
    background: url(images/search.svg);
    background-size: cover;
    display: block;
    block-size: 20px;
    inline-size: 20px;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
  }

  .breadcrumb {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 3rem;
    padding: 1rem 0 0.5rem;

    & li {
      line-height: 1;
      font-size: 12px;

      &+li:not(:first-child):before {
        content: "/";
      }
    }

    & li:nth-child(1) a:before {
      content: "";
      inline-size: 1rem;
      aspect-ratio: 595/529;
      display: inline-block;
      background: url(images/home.svg) center / contain no-repeat;
    }

    & :is(a, span) {
      font-size: 12px;
      display: inline-flex;
      align-items: center;
      line-height: 1;
      gap: 0.5rem;
    }

    & a:hover {
      text-decoration: underline;
      opacity: 1;
    }
  }

  .main-visual {
    position: relative;

    & .noslide {
      inline-size: 100%;
      position: relative;
    }

    &:not(:has(img)) {
      display: flex;
      align-items: center;
      min-block-size: min(30vw, 150px);
      background: var(--main_color);
    }

    & .swiper-slide {
      display: block;

      & img {
        inline-size: 100%;
        block-size: auto;
      }
    }
  }

  .main-visual:has(picture)+.wrap:has(.wrap-2column) {
    padding: min(10vw, 70px) 0 min(20vw, 150px);
  }

  :is(.main-visual:not(:has(picture)), :not(.main-visual))+.wrap {
    /* padding: 0 0 min(20vw, 150px); */
    /* margin-block-start: min(10vw, 70px); */



    &:has(.breadcrumb) {
      margin-block-start: unset;
    }
  }

  .contents {
    inline-size: min(100%, 1680px);
    margin-right: auto;
    margin-left: auto;
    padding-right: min(40px, 6vw);
    padding-left: min(40px, 6vw);

    &.wrap-1column-narrow {
      inline-size: min(100%, 940px);
    }
  }

  .wrap-1column {

    &:not(:has(.contents)) {
      container: gap / inline-size;
      padding-right: min(40px, 8vw);
      padding-left: min(40px, 8vw);
    }

    & .section-common {
      --section_padding: min(20vw, 150px);
      padding: var(--section_padding) 0;
      position: relative;


      &.no_space {
        padding: unset;
      }

      &.no_space-top {
        padding-block-start: unset;
      }

      &.no_space-bottom {
        padding-block-end: unset;
      }

      &.over_space {
        padding: calc(var(--section_padding)*1.5) 0;
      }

      &.over_space-top {
        padding-block-start: calc(var(--section_padding)*1.5);
      }

      &.over_space-bottom {
        padding-block-end: calc(var(--section_padding)*1.5);
      }
    }


    & .section-slider {
      --section_padding: min(20vw, 120px);
      margin: calc(var(--section_padding)*-1) 0;

      :is(.section-common:has(+&)) {
        padding-block-end: calc(var(--section_padding)*2);
      }

      :is(& + .section-common) {
        padding-block-start: calc(var(--section_padding)*2);
      }
    }

    & .contents {
      container: gap / inline-size;
    }
  }

  .wrap-2column {
    display: flex;
    flex-flow: row-reverse wrap;
    gap: min(10vw, 120px) min(8vw, 40px);

    & .main-column {
      flex: 1;
      container: gap / inline-size;

      & .section-common {

        &+.section-common {
          margin-top: min(20vw, 120px);
          position: relative;
        }

        &.no_space {
          margin-block: unset;
        }
      }
    }

    & .sidebar {
      flex: 0 min(30vw, 300px);
    }

    @media(width <=1080px) {
      flex-flow: wrap;

      & .sidebar {
        flex: 1 100%;
        ;
      }
    }
  }


  .main-column {

    &>*:nth-child(1) {
      margin-top: 0;
    }

    & :is(p, ul, ol):not(:first-child) {
      margin-block-start: 1rem;
    }

    & :is(p, ul, ol, table):not([class]) a:not([class]) {
      text-decoration: underline;
    }

    & table {
      inline-size: 100%;

      &.has-fixed-layout {
        table-layout: fixed;
        width: 100%
      }

      & :is(th, td) {
        line-height: 1.75;
        border: unset;
        word-break: break-word;
        text-align: initial;
        padding: 1rem 1rem;
        vertical-align: top;
        border: unset;
      }

      @media(width <=640px) {
        & th {
          border-bottom: none;
          border-top: none;
          background: #f3f3f3;
        }
      }
    }

    & .scroll {

      .scroll-pointer:has(+ &) {
        font-weight: 700;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 0.5rem;
        margin-block-end: 0.5rem;

        &:after {
          content: "";
          mask: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_2%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%202%22%20viewBox%3D%220%200%2023.58%2014%22%3E%20%3Cdefs%3E%20%3Cstyle%3E%20.cls-1%20%7B%20stroke%3A%20%23c96c88%3B%20%7D%20.cls-1%2C%20.cls-2%20%7B%20fill%3A%20none%3B%20stroke-linecap%3A%20round%3B%20stroke-linejoin%3A%20round%3B%20%7D%20.cls-2%20%7B%20stroke%3A%20%23b7b7b7%3B%20%7D%20%3C%2Fstyle%3E%20%3C%2Fdefs%3E%20%3Cg%20id%3D%22_%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%22%20data-name%3D%22%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%22%3E%20%3Cg%3E%20%3Cline%20class%3D%22cls-2%22%20x1%3D%22.5%22%20y1%3D%227%22%20x2%3D%2216.59%22%20y2%3D%227%22%2F%3E%20%3Cpolyline%20class%3D%22cls-1%22%20points%3D%2216.59%20.5%2023.08%207%2016.59%2013.5%22%2F%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%3C%2Fsvg%3E') center / contain no-repeat;
          background: var(--main_color);
          inline-size: 1.5rem;
          aspect-ratio: 253/150;
        }
      }

      & :is(.main-column table th) {
        word-break: keep-all;
      }

      &.over {
        overflow-x: scroll;

        & :is(.main-column table th, .main-column table td) {
          white-space: pre;
        }

        & .has-fixed-layout {
          table-layout: unset !important;
        }

        @media(640px < width) {
          transform: scale(1, -1);

          &>* {
            transform: scale(1, -1);
          }
        }
      }

      @media(width <=640px) {
        overflow-x: scroll;

        & :is(.main-column table th, .main-column table td) {
          white-space: pre;
        }

        & .has-fixed-layout {
          table-layout: unset !important;
        }

      }
    }

  }


  [class*="head_page"] {
    display: flex;
    flex-flow: column;
    align-items: center;

    &[class*="-full"] {
      color: #fff;
      font-size: min(5vw, 30px);
      letter-spacing: 0.3rem;
      text-align: center;
      text-indent: 0.3rem;
      line-height: 1.25;
      padding: min(40px, 8vw) 0;
    }

    &[class*="-boxed"] {
      background: #ffffffdd;
      padding: min(8vw, 3rem);
      position: absolute;
      inset: auto auto 0 50%;
      translate: -50% 50%;
      min-inline-size: calc(min(100%, 600px) - min(16vw, 4rem));
      font-size: min(5vw, 32px);
      line-height: 1.25;

      &:before {
        content: "";
        position: absolute;
        inset: auto auto 0 50%;
        translate: -50% 0;
        inline-size: min(100%, 160px);
        block-size: 0.5rem;
        background: var(--main_color);
      }

      .main-visual:has(&) {
        min-block-size: min(20vw, 200px);
        margin-block-end: min(20vw, 200px);

        &:after {
          content: "";
          z-index: -1;
          position: absolute;
          inset: 0 0 0 0;
          translate: 0 100%;
          background: var(--sub_color);
        }
      }
    }

    &[data-text]:after {
      content: attr(data-text);
      margin-top: 0.5rem;
      font-size: min(4vw, 16px);
    }
  }


  .wrap-head-common {
    margin-bottom: 2rem;
  }

  .head-common {
    font-size: min(5vw, 32px);
    border-bottom: 1px solid #999999;
    padding-bottom: 1rem;
    line-height: 1.25;
  }

  a:hover {
    opacity: 0.7;
    transition: 0.2s;
  }

  .hover-opacity1 a:hover {
    opacity: 1;
  }

  .wrap-btn {
    display: flex;
  }

  .section-about .wrap-btn {
    /* justify-content: center; */
  }


  /*投稿系*/
  .category-post {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-inline-size: 100px;
    border-radius: 3px;
    font-size: 12px;
    padding: 0.25rem;
    text-align: center;
    line-height: 1;
  }

  .box-post-text {
    border-bottom: 1px solid var(--border_color);

    & a {
      display: flex;
      align-items: center;
      padding: min(4vw, 1rem) 0;
      position: relative;
      gap: min(2vw, 1rem);
      padding-inline-end: 3rem;

      &:after {
        -webkit-transform: rotate(45deg);
        display: inline-block;
        position: absolute;
        top: 50%;
        right: 1.5em;
        /* bottom: 0; */
        inline-size: 10px;
        block-size: 10px;
        margin: auto;
        transform: rotate(45deg) translateY(-50%);
        border-top: 2px solid #999;
        border-right: 2px solid #999;
        content: "";
      }

      & h3 {
        line-height: 1.5;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        flex: 1 100%;
      }

      @media (width <=640px) {
        flex-flow: wrap;
      }
    }
  }

  .wrap-post-img-text {
    display: grid;
    grid-template: auto / repeat(auto-fill, minmax(240px, 1fr));
    gap: min(4vw, 2rem);

    & a {
      display: flex;
      flex-flow: column;
      gap: min(4vw, 1.5rem);

      &>div:nth-of-type(2) {
        display: flex;
        flex-flow: row wrap;
        justify-content: space-between;
        align-items: center;
        inline-size: 100%;
        gap: 0.5rem 1rem;
      }

      & h3 {
        line-height: 1.5;
        font-size: min(4vw, 16px);
        flex: 1 100%;
      }
    }
  }

  .box-post-archive {
    & a {
      display: flex;
      align-items: flex-start;
      gap: min(4vw, 2rem);
      inline-size: 100%;
      padding: min(40px, 8vw) 0;
      position: relative;

      &>div:has(img) {
        flex: 0 min(30%, 250px);
      }

      &>.box-post-info {
        position: relative;
        flex: 1;
        display: flex;
        flex-flow: row wrap;
        /*justify-content: space-between;*/
        align-items: center;
        inline-size: 100%;
        gap: min(2vw, 1rem);

        &>div {
          flex: 1 100%;

          & .title-middle {
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 2;
            overflow: hidden;

            &+p {
              display: -webkit-box;
              -webkit-box-orient: vertical;
              -webkit-line-clamp: 2;
              overflow: hidden;
            }
          }
        }
      }
    }

    &:first-of-type a {
      padding-top: 0;
    }

    &:last-of-type a {
      padding-bottom: 0;
    }

    & time {
      display: flex;
      align-items: center;
      gap: 0.5rem;

      &:before {
        content: "";
        display: inline-block;
        inline-size: 1rem;
        aspect-ratio: 1/1;
        background: url(images/date.svg);
        background-size: cover;
        position: relative;
      }
    }

    &+& {
      border-block-start: 1px solid var(--border_color);
    }
  }

  .box-post-archive-side a {
    display: flex;
    align-items: flex-start;
    inline-size: 100%;
    gap: 0.5rem;

    &>*:has(img) {
      flex: 0 75px;
    }

    &>* {
      flex: 1;
      display: flex;
      flex-flow: row wrap;
      gap: 0.25rem;
      align-items: center;
      justify-content: space-between;

      & time {
        display: block;
        font-size: 10px;
      }

      & h3 {
        inline-size: 100%;
        line-height: 1.35;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        font-size: min(3.5vw, 14px);
      }

      & .category-post {
        min-inline-size: 70px;
        border-radius: 3px;
        font-size: 10px;
        text-align: center;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
      }
    }
  }

  .pagination {
    display: flex;
    position: relative;
    align-items: center;
    justify-content: center;
    margin-top: 3rem;
    color: var(--main_color);

    & li {
      margin: 0 5px;
      line-height: 1;

      &:before {
        content: none;
      }
    }

    & .pager {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-inline-size: min(7.5vw, 40px);
      aspect-ratio: 1/1;
      border-radius: 50%;
      background: #999;
      color: #fff;
      font-weight: bold;
      text-align: center;
      /* border: 1px solid #fff; */
      position: relative;
      letter-spacing: 0;
      text-indent: 0;
      line-height: 1;
    }

    & :is(.pager_left, .pager_right) {
      background: unset;
    }

    & .pager_left:before {
      content: "";
      position: absolute;
      block-size: 100%;
      inline-size: 100%;
      mask: url('data:image/svg+xml;base64,PHN2ZyBpZD0iX+ODrOOCpOODpOODvF8xIiBkYXRhLW5hbWU9IuODrOOCpOODpOODvCAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4MS41IDE2OSI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2U6ICMzMzM7CiAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOwogICAgICAgIHN0cm9rZS1saW5lam9pbjogcm91bmQ7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiA2cHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxwb2x5bGluZSBjbGFzcz0iY2xzLTEiIHBvaW50cz0iMyAxNjYgNzguNSA4NC41IDMgMyIvPgo8L3N2Zz4=') center / auto 75% no-repeat;
      -webkit-mask: url('data:image/svg+xml;base64,PHN2ZyBpZD0iX+ODrOOCpOODpOODvF8xIiBkYXRhLW5hbWU9IuODrOOCpOODpOODvCAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4MS41IDE2OSI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2U6ICMzMzM7CiAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOwogICAgICAgIHN0cm9rZS1saW5lam9pbjogcm91bmQ7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiA2cHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxwb2x5bGluZSBjbGFzcz0iY2xzLTEiIHBvaW50cz0iMyAxNjYgNzguNSA4NC41IDMgMyIvPgo8L3N2Zz4=') center / auto 75% no-repeat;
      background: var(--main_color);
      transform: rotate(180deg);
    }

    & .pager_right:before {
      content: "";
      position: absolute;
      block-size: 100%;
      inline-size: 100%;
      mask: url('data:image/svg+xml;base64,PHN2ZyBpZD0iX+ODrOOCpOODpOODvF8xIiBkYXRhLW5hbWU9IuODrOOCpOODpOODvCAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4MS41IDE2OSI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2U6ICMzMzM7CiAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOwogICAgICAgIHN0cm9rZS1saW5lam9pbjogcm91bmQ7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiA2cHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxwb2x5bGluZSBjbGFzcz0iY2xzLTEiIHBvaW50cz0iMyAxNjYgNzguNSA4NC41IDMgMyIvPgo8L3N2Zz4=') center / auto 75% no-repeat;
      -webkit-mask: url('data:image/svg+xml;base64,PHN2ZyBpZD0iX+ODrOOCpOODpOODvF8xIiBkYXRhLW5hbWU9IuODrOOCpOODpOODvCAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4MS41IDE2OSI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2U6ICMzMzM7CiAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOwogICAgICAgIHN0cm9rZS1saW5lam9pbjogcm91bmQ7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiA2cHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxwb2x5bGluZSBjbGFzcz0iY2xzLTEiIHBvaW50cz0iMyAxNjYgNzguNSA4NC41IDMgMyIvPgo8L3N2Zz4=') center / auto 75% no-repeat;
      background: var(--main_color);
    }

    & :is(.pager:not(.pagination .pager_left, .pagination .pager_right):hover, .pager.current) {
      background: var(--main_color);
      opacity: 1;
    }
  }

  .nav-link {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    gap: min(4vw, 2rem);
    justify-content: center;
    margin: 2rem auto 0 !important;
    padding-block-start: 1rem;

    & :is(.link-prev, .link-next, .link-archive) {
      position: relative;

      & a {
        display: flex;
        align-items: center;
        justify-content: center;
        font-weight: 600;
        filter: drop-shadow();
        font-size: min(3.5vw, 14px);
      }
    }

    & .link-prev a:before {
      -webkit-transform: rotate(225deg);
      display: inline-block;
      inline-size: 10px;
      block-size: 10px;
      margin-right: 10px;
      transform: rotate(225deg);
      border-top: 2px solid currentColor;
      border-right: 2px solid currentColor;
      content: "";
    }

    & .link-next {
      order: 3;
      text-align: right;

      & a:after {
        -webkit-transform: rotate(45deg);
        display: inline-block;
        inline-size: 10px;
        block-size: 10px;
        margin-left: 10px;
        transform: rotate(45deg);
        border-top: 2px solid currentColor;
        border-right: 2px solid currentColor;
        content: "";
      }
    }

    & .link-archive {
      flex: 0 min(100%, 300px);

      & a {
        display: flex;
        align-items: center;
        justify-content: center;
        background: var(--sub_color);
        border-radius: 2rem;
        font-size: min(3.5vw, 16px);
        padding: 0.5rem 0.75rem;
        font-weight: 700;
        inline-size: 100%;
      }
    }

    @media (width <=640px) {
      & {
        flex-flow: wrap;
        justify-content: space-between;
      }

      & :is(.link-archive) {
        flex: 1 100%;
        order: 3;

        & a {
          padding: 0.5rem;
        }
      }
    }
  }

  .imgFullWidth {
    display: block;
    inline-size: 100%;
    block-size: auto;
  }

  .wrap-zoom {
    overflow: hidden;

    &>img {
      transition: 0.5s;
    }

    &>img:hover {
      -webkit-transform: scale(1.1);
      transform: scale(1.1);
    }
  }

  /*チェックボックス等は非表示に*/
  .nav-unshown {
    display: none;
  }

  .btn-close {
    margin: 40px;
    padding: 1em;
    text-align: center;
    cursor: pointer;
    border: #666666 1px solid;
  }

  .single-post {
    margin-bottom: 3rem;
  }

  .single-header {
    margin-bottom: min(4vw, 1rem);
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .single-header time {
    margin-right: 2em;
    font-size: min(3.5vw, 14px);
  }

  .single-header time:before {
    content: "";
    display: inline-block;
    inline-size: 14px;
    block-size: 14px;
    background: url(images/date.svg);
    background-size: cover;
    margin-right: 5px;
    position: relative;
    top: 2px;
  }


  .sitemap {
    &>li {
      border-top: 1px solid var(--border_color);

      &:last-child {
        border-top: 1px solid var(--border_color);
      }

      &>a {
        padding: min(2.5vw, 0.75rem) 0;
        display: block;
        font-weight: bold;
      }
    }

    & .sub-menu {
      margin: 0 0 min(2.5vw, 0.75rem);
      padding-left: min(4vw, 1rem);
    }

    &>li>.sub-menu {
      /* border-top: 1px solid var(--border_color); */
      margin-block: 0 1rem;
      border-left: 1px solid var(--main_color);
      padding-left: min(4vw, 1rem);

      &>li {
        line-height: 2;
        font-size: min(3.5vw, 14px);

        & a {
          display: inline-block;
          font-weight: 700;
        }

        &>ul>li {
          line-height: 2;

          &>a {
            display: inline-block;
          }
        }
      }
    }
  }


  #nav-content .logo {
    display: block;
    margin: 4vw 16vw 2vw;
    overflow: hidden;
  }


  .mobile-header-banner {
    margin: 30px 20px 0;
  }

  .mobile-header-banner li {
    position: relative;
    top: unset;
  }

  .mobile-header-banner li:not(:first-child) {
    margin-top: 10px;
  }

  .mobile-header-banner li>* {
    font-family: "Noto Sans JP", "游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  }

  .mobile-header-banner a {
    display: block;
    display: flex;
    align-items: center;
    position: relative;
    padding: 15px;
    font-size: 12px;
    background: var(--main_color);
    color: #fff;
  }

  .mobile-header-banner li.contact a:before {
    content: "";
    block-size: 20px;
    inline-size: 20px;
    margin-right: 10px;
    background: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 24 24"><path fill="white" d="M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z" /></svg>') no-repeat center center;
    background-size: cover;
    fill: #fff;
  }

  .mobile-header-banner li.tel a:before {
    content: "";
    block-size: 20px;
    inline-size: 20px;
    margin-right: 10px;
    background: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 24 24"><path fill="white" d="M15,12H17A5,5 0 0,0 12,7V9A3,3 0 0,1 15,12M19,12H21C21,7 16.97,3 12,3V5C15.86,5 19,8.13 19,12M20,15.5C18.75,15.5 17.55,15.3 16.43,14.93C16.08,14.82 15.69,14.9 15.41,15.18L13.21,17.38C10.38,15.94 8.06,13.62 6.62,10.79L8.82,8.59C9.1,8.31 9.18,7.92 9.07,7.57C8.7,6.45 8.5,5.25 8.5,4A1,1 0 0,0 7.5,3H4A1,1 0 0,0 3,4A17,17 0 0,0 20,21A1,1 0 0,0 21,20V16.5A1,1 0 0,0 20,15.5Z" /></svg>') no-repeat center center;
    background-size: cover;
    fill: #fff;
  }


  .webp .contact-box {
    /* background: url(images/contact.jpg.webp) #00000033; */
    /* background-blend-mode: multiply; */
    /* background-position: center; */
    padding: 100px 0;
    /* background-size: cover; */
  }

  .contact-tel {
    color: #ffffff;
  }

  @media screen and (min-width: 1080px),
  print {
    .tb {
      display: none;
    }

    .sp {
      display: none;
    }

    .inner {
      padding: 0 50px;
    }

    .wrap-section-interval>*:not(:last-child) {
      margin-bottom: 90px;
    }

    .wrap-section-padding>* {
      padding: 60px 0;
    }

    .wrap-2column .section-common:nth-child(1) h2 {
      margin-top: 0px;
    }

    .wrap-main {
      display: flex;
      position: absolute;
      top: -25px;
      left: -450px;
      align-items: center;
      justify-content: flex-end;
      inline-size: 898px;
      block-size: 305px;
      padding: 50px;
    }

    .inner-main {
      inline-size: 250px;
    }

    .inner-main h1 {
      font-size: 26px;
    }

    .inner-main p {
      font-size: 14px;
    }

    .wrap-tel-header {
      display: flex;
      flex-wrap: nowrap;
    }

    a[href^="tel:"] {
      /* pointer-events: none; */
      /* word-break: keep-all; */
      /* white-space: nowrap; */
    }

    .btn-form,
    button.btn-form {
      inline-size: 250px;
      padding: 1em;
      font-size: 15px;
    }

    .drawer-nav {
      display: none;
    }

    .pagetop.active:hover {
      opacity: 0.8;
    }

    .icon-question:before,
    .icon-tel:before {
      inline-size: 15px;
      block-size: 15px;
    }

    .bg-footer {
      background: url(images/bg-footer.jpg) no-repeat center top -1px;
      background-size: 2001px 273px;
    }

    #nav-open {
      /* display: none; */
    }

    .btn-close {
      display: none;
    }

    .wrap-1column .box-post-archive a>div:nth-child(2) {
      inline-size: calc(100% - 300px);
    }
  }

  @media screen and (min-width: 640px) and (max-width: 1080px) {
    .single-wrap {
      padding: 0px;
      border: 0px solid var(--border_color);
      box-shadow: 0px 0px 0px #eee;
    }

    .wrap-1column .box-post-archive a>div:nth-child(1) {
      /* inline-size: 240px; */
      /* margin-right: 40px; */
    }

    .wrap-1column .box-post-archive a>div:nth-child(2) {
      inline-size: calc(100% - 280px);
    }

    .wrap-message>div:nth-child(1) {
      inline-size: calc(70% - 40px);
    }

    .wrap-message>div:nth-child(2) {
      inline-size: 75%;
      margin-right: 2%;
    }

    .wrap-message>div:nth-child(2) .btn-archive {
      min-inline-size: 100%;
    }

    .main-visual .noslide {
      /* inline-size:calc(92% * 1.6); */
      /*left:calc(92% * -0.3);*/
    }

    .widget_media_image figure {
      inline-size: 100% !important;
      display: flex;
      flex-direction: row;
    }

    .widget_media_image figure a {
      max-inline-size: 300px;
      margin-right: 2%;
    }

    .widget_media_image figcaption {
      margin-top: 0;
      inline-size: calc(100% - (300px + 2%));
    }
  }

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

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

    .single-wrap {
      padding: 0px;
      border: 0px solid var(--border_color);
      box-shadow: 0px 0px 0px #eee;
    }

    .pc {
      display: none;
    }

    .sp {
      display: block;
    }

    .sidebar>* {
      inline-size: 100%;
    }

    .sidebar .widget_nav_menu {
      display: none;
    }

    .sidebar img {
      inline-size: 100%;
    }

    .list-side2 a div:nth-child(1) {
      inline-size: 40%;
      margin-right: 5%;
    }

    .list-side2 a div:nth-child(2) {
      inline-size: 55%;
    }

    .side-list-compnay {
      justify-content: flex-start;
    }

    .side-list-compnay li:nth-child(1) {
      margin-right: 1em;
    }


    .top-message {
      font-size: 30px;
    }

    .side-compnay {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
    }

    .side-compnay h3 {
      inline-size: 100%;
    }

    .side-compnay picture {
      inline-size: 100%;
    }

    .side-address-compnay-box {
      inline-size: 100%;
    }

    .company-photo {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
    }

    .sidebar .company-photo>div {
      inline-size: 48%;
      margin-bottom: 4vw;
    }

    /*
  .wrap-post-img-text {
    margin: -20px 0;
    }
	*/
    .contact-box .contents {
      padding: 0 6vw;
    }

    .contact-box h2+p {
      text-align: justify;
    }

    .contact-btn-box {
      flex-direction: column;
    }

    .contact-btn-box {
      inline-size: 100%;
    }

    .contact-btn-box a {
      inline-size: 100%;
    }

    .contact-btn-box a:nth-child(1) {
      margin-bottom: 20px;
    }

    body .telp {
      text-align: center;
      font-size: 3.5vw;
    }

    .single-post .head-common {
      /* font-size:4vw; */
    }

    .wrap .wrap-message h3 {
      margin: 0 2.5vw;
    }

    .contact-tel {
      font-size: 6vw;
      display: block;
      margin: 4vw 0 0;
    }
  }

  @media screen and (max-width: 640px) {
    .textCenter {
      text-align: unset;
    }

    .single-wrap {
      padding: 0px;
      border: 0px solid var(--border_color);
      box-shadow: 0px 0px 0px #eee;
    }

    .head-header {
      position: absolute;
      top: 0;
      left: 0;
      inline-size: 100%;
      margin: 0;
      background: var(--main_color);
      /* line-height: 15px; */
    }

    .head-header>* {
      color: #fff;
      font-size: 8px;
      /* text-align: center; */
      /* line-height: 1.75; */
      display: flex;
      align-items: center;
      justify-content: center;
      block-size: 1rem;
    }


    .inner-footer-top>div {
      /* margin: 0; */
    }

    .box-footer-top {
      padding: 10vw 10vw 7.5vw;
      text-align: center;
    }

    .wrap-footer-nav {
      display: none;
    }

    .sidebar {
      display: block;
    }

    .sidebar>* {
      inline-size: auto;
    }

    .widget_nav_menu:not(:last-child),
    .box-side:not(:last-child) {
      margin-bottom: 10vw;
    }

    .list-side2 a div:nth-child(1) {
      inline-size: 30%;
    }

    .list-side2 a div:nth-child(2) {
      inline-size: 65%;
    }

    .breadcrumb {
      /* margin-bottom:5px; */
    }

    .index .main-visual {
      inline-size: 100%;
      margin-bottom: 0;
    }

    body:not(.index) .main-visual {
      /* block-size: 100px; */
    }

    .head-page {
      /* padding-top: 0.5em; */
      /* font-size: 25px; */
    }

    .head-page:after {
      font-size: 12px;
    }

    .wrap-slider .slider {
      block-size: 75vw;
    }

    .wrap-slider .slider img {
      block-size: 75vw;
    }

    .section-about .wrap-btn {
      justify-content: center;
    }

    .btn-form,
    button.btn-form {
      inline-size: 65vw;
      padding: 1em;
    }

    .pagination .pager {
      /* min-inline-size: 7.5vw; */
      /* block-size: 7.5vw; */
      /* font-size: 4vw; */
      /* line-height: 7.5vw; */
    }

    .pagination .pager i:before {
      min-inline-size: 7.5vw;
      block-size: 7.5vw;
      font-size: 4vw;
      line-height: 7.5vw;
    }

    .icon-question:before,
    .icon-tel:before {
      inline-size: 4vw;
      block-size: 4vw;
    }

    .bg-footer {
      background: url(images/bg-footer@2x.jpg) no-repeat center top;
      background-size: 100% 55.5vw;
    }

    .bg-company {
      background: url(images/bg-works.png) no-repeat right 40% bottom;
      background-size: cover;
    }

    .bg-outline {
      background: url(images/bg-outline.jpg) no-repeat center top;
      background-size: cover;
    }

    .bg-history {
      background: url(images/bg-history.jpg) no-repeat center top;
      background-size: cover;
    }

    .bg-access {
      background: url(images/bg-access.jpg) no-repeat center top;
      background-size: cover;
    }

    .spImgFullWidth {
      display: block;
      inline-size: 100%;
      block-size: auto;
    }

    .wrap-about {
      flex-flow: row wrap;
      justify-content: center;
    }

    .wrap-about>div:nth-child(1) {
      margin-right: 0;
      margin-bottom: 3vw;
      margin-left: 0;
      inline-size: 100%;
    }

    .wrap-about>div:nth-child(1) img {
      inline-size: 100%;
    }

    .wrap-about>div:nth-child(2) {
      inline-size: 100%;
    }

    .wrap-message {
      flex-flow: row-reverse wrap;
      justify-content: center;
      padding: 5vw 2.5vw;
    }

    .wrap-message>div {
      margin: 2.5vw;
    }

    .wrap-message>div:nth-child(1) {
      inline-size: 100%;
    }

    .main-visual .noslide {
      inline-size: 100%;
      left: 0;
      transform: unset;
    }

    .wrap-message>div:nth-child(2) {
      inline-size: 100%;
    }

    .wrap-message>div:nth-child(3) {
      inline-size: 100%;
      padding: 0 15%;
    }

    .wrap-message p {
      text-align: center;
    }

    .widget_media_image figure {
      inline-size: 100% !important;
    }

    .widget_media_image figcaption {
      inline-size: 100%;
    }

    .single-post .head-common {
      /* font-size:6vw; */
    }

    .mobile-tel-header a {
      letter-spacing: -0.02em;
    }
  }

  /*recaptcha*/

  .grecaptcha-badge {
    inset-block-end: 100px !important;
  }

}

/*--------------------base.cssここまで--------------------*/


/*--------------------layout.css--------------------*/

@layer layout {

  /*幅*/

  [class*="width-"] {
    margin-inline-start: auto;
    margin-inline-end: auto;
    container: gap / inline-size;
  }

  .width-530 {
    inline-size: min(100%, 530px);
  }

  .width-760 {
    inline-size: min(100%, 760px);
  }

  .width-880 {
    inline-size: min(100%, 880px);
  }

  .width-960 {
    inline-size: min(100%, 960px);
  }

  .width-1100 {
    inline-size: min(100%, 1100px);
  }

  .width-1280 {
    inline-size: min(100%, 1280px);
  }

  .width-over {
    inline-size: 100vw;
    position: relative;
    left: 50%;
    translate: -50vw 0;
  }

  .width-over [class*="width-"]:not([class*="mat"]) {
    padding-inline-end: min(40px, 8vw);
    padding-inline-start: min(40px, 8vw);
  }

  .width-over_right {
    margin-inline-end: calc(50% - 50vw);
  }

  .width-over_left {
    margin-inline-start: calc(50% - 50vw);
  }

  /*インターバル*/

  :is(.interval5rem:not(.wp-block-group) > *:not(:first-child), .wp-block-group.interval5rem > div > *:not(:first-child)) {
    margin-top: 0.5rem;
  }

  :is(.interval10rem:not(.wp-block-group) > *:not(:first-child), .wp-block-group.interval10rem > div > *:not(:first-child)) {
    margin-top: min(4vw, 1rem);
  }

  :is(.interval15rem:not(.wp-block-group) > *:not(:first-child), .wp-block-group.interval15rem > div > *:not(:first-child)) {
    margin-top: min(4vw, 1.5rem);
  }

  :is(.interval20rem:not(.wp-block-group) > *:not(:first-child), .wp-block-group.interval20rem > div > *:not(:first-child)) {
    margin-top: min(4vw, 2rem);
  }

  :is(.interval25rem:not(.wp-block-group) > *:not(:first-child), .wp-block-group.interval25rem > div > *:not(:first-child)) {
    margin-top: min(5vw, 2.5rem);
  }

  :is(.interval30rem:not(.wp-block-group) > *:not(:first-child), .wp-block-group.interval30rem > div > *:not(:first-child)) {
    margin-top: min(6vw, 3rem);
  }

  :is(.interval35rem:not(.wp-block-group) > *:not(:first-child), .wp-block-group.interval35rem > div > *:not(:first-child)) {
    margin-top: min(7vw, 3.5rem);
  }

  :is(.interval40rem:not(.wp-block-group) > *:not(:first-child), .wp-block-group.interval40rem > div > *:not(:first-child)) {
    margin-top: min(8vw, 4rem);
  }

  :is(.interval45rem:not(.wp-block-group) > *:not(:first-child), .wp-block-group.interval45rem > div > *:not(:first-child)) {
    margin-top: min(9vw, 4.5rem);
  }

  :is(.interval50rem:not(.wp-block-group) > *:not(:first-child), .wp-block-group.interval50rem > div > *:not(:first-child)) {
    margin-top: min(10vw, 5rem);
  }

  :is(.interval80rem:not(.wp-block-group) > *:not(:first-child), .wp-block-group.interval80rem > div > *:not(:first-child)) {
    margin-top: min(16vw, 8rem);
  }

  /*番号*/

  [class*="number-"] {
    position: relative;

    .counter-reset:has(&) {
      counter-reset: number 0;
    }

    &.number-square:before {
      counter-increment: number 1;
      content: counter(number);
      position: absolute;
      inset-block-start: 0;
      inset-inline-start: 0;
      font-size: min(12vw, 30px);
      aspect-ratio: 1/1;
      background: var(--main_color);
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      inline-size: 3rem;
    }
  }

  /*grid*/

  :is([class*="grid-"]:not(.wp-block-group), [class*="grid-"].wp-block-group >div) {
    display: grid;

    &>* {
      margin: unset;
    }

  }

  :is(.grid-2:not(.wp-block-group), .grid-2.wp-block-group >div) {
    grid-template: auto / repeat(auto-fill, minmax(min(40%, 600px), 1fr));
    gap: min(8vw, 6rem) min(6vw, 6rem);

    @container gap (width <=1280px) {
      grid-template: auto / repeat(auto-fill, minmax(min(40%, 420px), 1fr));
      gap: min(8vw, 4rem) min(4vw, 4rem);
    }

    @container gap (width <=860px) {
      grid-template: auto / repeat(auto-fill, minmax(min(100%, 300px), 1fr));
      gap: min(6vw, 3rem) min(4vw, 2rem);

      :is(&.shape-keep, .shape-keep >&) {
        grid-template: auto / repeat(auto-fill, minmax(min(40%, 300px), 1fr));
        gap: min(4vw, 4rem) min(4vw, 2rem);
      }
    }

  }

  :is(.grid-3:not(.wp-block-group), .grid-3.wp-block-group >div) {
    grid-template: auto / repeat(auto-fill, minmax(min(40%, 400px), 1fr));
    gap: min(8vw, 4rem) min(6vw, 4rem);

    @container gap (width <=1280px) {
      grid-template: auto / repeat(auto-fill, minmax(min(100%, 320px), 1fr));
      gap: min(6vw, 4rem) min(4vw, 3rem);
    }

    @container gap (width <=860px) {
      grid-template: auto / repeat(auto-fill, minmax(min(100%, 240px), 1fr));
      gap: min(6vw, 3rem) min(4vw, 2rem);

      :is(&.shape-keep, .shape-keep >&) {
        grid-template: auto / repeat(auto-fill, minmax(min(40%, 240px), 1fr));
      }

    }
  }

  :is(.grid-4:not(.wp-block-group), .grid-4.wp-block-group >div) {
    grid-template: auto / repeat(auto-fill, minmax(min(40%, 350px), 1fr));
    gap: min(8vw, 3rem) min(6vw, 3rem);

    @container gap (width <=1280px) {
      grid-template: auto / repeat(auto-fill, minmax(min(40%, 310px), 1fr));
      gap: min(6vw, 3rem) min(4vw, 2rem);
    }

    @container gap (width <=860px) {
      grid-template: auto / repeat(auto-fill, minmax(min(100%, 300px), 1fr));
      gap: min(6vw, 2rem) min(4vw, 1rem);

      :is(&.shape-keep, .shape-keep >&) {
        grid-template: auto / repeat(auto-fill, minmax(min(40%, 180px), 1fr));
      }

    }

  }

  :is(.grid-5:not(.wp-block-group), .grid-5.wp-block-group >div) {
    grid-template: auto / repeat(auto-fill, minmax(min(40%, 400px), 1fr));
    gap: min(8vw, 3rem) min(6vw, 3rem);

    @container gap (width <=1280px) {
      grid-template: auto / repeat(auto-fill, minmax(min(40%, 240px), 1fr));
      gap: min(6vw, 3rem) min(4vw, 2rem);
    }

    @container gap (width <=860px) {
      grid-template: auto / repeat(auto-fill, minmax(min(100%, 150px), 1fr));
      gap: min(6vw, 2rem) min(4vw, 1rem);

      :is(&.shape-keep, .shape-keep >&) {
        grid-template: auto / repeat(auto-fill, minmax(min(30%, 150px), 1fr));
      }
    }
  }


  /*sticky*/

  [class*="sticky"] {

    &:not(.wp-block-group),
    &.wp-block-group>* {
      position: sticky;
      inset-block-start: min(20vw, 180px);
    }
  }

  /*flex*/

  .flexCenter {
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    inline-size: 100%;
    gap: 1rem 3rem;
  }

  .flexLeft {
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start;
  }

  .flexRight {
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-end;
  }

  :is(.flexCenter, .flexLeft, .flexRight):has(.btn-archive, .btn-min, .btn-repeat),
  :is(.flexCenter, .flexLeft, .flexRight):is(.btn-archive, .btn-min, .btn-repeat):has(>*) {
    margin-block-start: min(8vw, 3rem);
    position: relative;
    min-inline-size: min(320px, 100%);

    .sidebar & {
      margin-block-start: min(8vw, 1.5rem);
    }
  }

  [class*="flex"] {

    :is(&:not(.wp-block-group, [class*="-sp"]), &.wp-block-group:not([class*="-sp"]) >div) {
      display: flex;

      &>* {
        &:not([class*="width-over"]) {
          margin: unset;
        }
      }
    }

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

      :is(&:not(.wp-block-group, .flex-column, .no-wrap, .flex-center), &.wp-block-group:not(.flex-column, .no-wrap, .flex-center) >div) {
        flex-flow: wrap;
      }

      :is(&:not([class*="-sp"], .no-wrap), &.wp-block-group:not([class*="-sp"], .no-wrap) >div) {

        &>*:is([class*="fr"]) {
          flex: 1 100%;
          /*max-inline-size: 100%;*/
        }
      }

      &[class*="-sp"] {

        :is(&:not(.wp-block-group, .flex-column, .flex-center), &.wp-block-group:not(.flex-column, .flex-center) >div) {
          display: flex;
          flex-flow: nowrap;

          &>* {
            container: gap / inline-size;
            margin: unset !important;
          }

          :is([class*="grid"]:not(.wp-block-group), [class*="grid"].wp-block-group >div):has(&) {
            grid-template: auto / repeat(auto-fill, minmax(100%, 1fr));
          }

          [class*="mat-"]:has(&) {
            padding: unset !important;
            background: unset !important;
          }
        }

        &.flex-reverse {
          :is(&:not(.wp-block-group), &.wp-block-group >div) {
            flex-flow: row-reverse;
          }
        }
      }
    }
  }

  .fr0 {
    flex: 0 auto;
  }

  .fr1 {
    flex: 1;

    &.fr_min {
      flex: 0 calc(50% - var(--column_gap, min(4vw, 4rem)));
    }
  }

  .fr2 {
    flex: 2;
  }

  .fr3 {
    flex: 3;
  }

  .fr4 {
    flex: 4;
  }

  .fr5 {
    flex: 5;
  }


  .no-wrap {
    :is(&:not(.wp-block-group), &.wp-block-group >div) {
      flex-wrap: nowrap !important;
    }
  }

  .flex-reverse {
    :is(&:not(.wp-block-group), &.wp-block-group >div) {
      flex-flow: row-reverse;
    }
  }

  .flex-column {
    &.wp-block-group {
      display: flex;
    }

    :is(&:not(.wp-block-group), &.wp-block-group >div) {
      display: flex;
      flex-flow: column;

      &>*:last-child {
        margin-top: auto !important;

        .object-height & {
          margin: unset !important;
        }
      }
    }

    &.flex-reverse {
      :is(&:not(.wp-block-group), &.wp-block-group >div) {
        flex-flow: column-reverse;
        block-size: auto;
        gap: min(12vw, 4rem);

        @media(width <=1080px) {
          flex-flow: column;
        }
      }
    }
  }

  .flex-center {
    :is(&:not(.wp-block-group), &.wp-block-group >div) {
      display: flex;
      flex-flow: column;
      align-items: center;
      gap: min(4vw, 1.5rem);
    }
  }


  .self-top {
    align-self: flex-start;
  }

  .self-center {
    align-self: center;
  }

  .self-end {
    align-self: flex-end;
  }


  /*gap*/

  [class*="gap-"] {

    :is(&:not(.wp-block-group),
      &.wp-block-group >div),
    &.is-layout-grid {
      gap: var(--row_gap, min(6vw, 6rem)) var(--column_gap, min(4vw, 4rem)) !important;

    }

    &[class*="-0rem"] {
      --row_gap: 0rem;
      --column_gap: 0rem;
    }

    &[class*="-5rem"] {
      --row_gap: 0.5rem;
      --column_gap: 0.5rem;
    }

    &[class*="-10rem"] {
      --row_gap: min(4vw, 1rem);
      --column_gap: min(4vw, 1rem);
    }

    &[class*="-15rem"] {
      --row_gap: min(6vw, 1.5rem);
      --column_gap: min(4vw, 1.5rem);
    }

    &[class*="-20rem"] {
      --row_gap: min(8vw, 2rem);
      --column_gap: min(4vw, 2rem);
    }

    &[class*="-30rem"] {
      --row_gap: min(8vw, 3rem);
      --column_gap: min(3vw, 3rem);
    }

    &[class*="-40rem"] {
      --row_gap: min(8vw, 4rem);
      --column_gap: min(4vw, 4rem);
    }

    &[class*="-50rem"] {
      --row_gap: min(12vw, 5rem);
      --column_gap: min(4vw, 5rem);
    }

    &[class*="-60rem"] {
      --row_gap: min812vw, 6rem);
      --column_gap: min(6vw, 6rem);
    }

    &[class*="-100rem"] {
      --row_gap: min(12vw, 10rem);
      --column_gap: min(6vw, 10rem);
    }

    &[class*="_0rem"] {
      --column_gap: 0rem;
    }

    &[class*="_10rem"] {
      --column_gap: min(4vw, 1rem);
    }

    &[class*="_20rem"] {
      --column_gap: min(4vw, 2rem);
    }

    &[class*="_30rem"] {
      --column_gap: min(6vw, 3rem);
    }

    &[class*="_40rem"] {
      --column_gap: min(8vw, 4rem);
    }

    &[class*="_50rem"] {
      --column_gap: min(10vw, 5rem);
    }

    &[class*="_60rem"] {
      --column_gap: min(12vw, 6rem);
    }

    &[class*="_100rem"] {
      --column_gap: 10rem;
    }
  }

  /*flex・gridポジション*/

  .order-1 {
    order: 1;
  }

  .order-2 {
    order: 2;
  }

  .order-3 {
    order: 3;
  }

  .area-a {
    grid-area: a;
  }

  .area-b {
    grid-area: b;
  }

  .area-c {
    grid-area: c;
  }

  .area-d {
    grid-area: d;
  }

  .area-e {
    grid-area: e;
  }



  /*アスペクト*/

  [class*="aspect"] {

    &[class*="aspect-"] {

      &:not(:has(>img)),
      &.wp-block-image img {
        object-fit: cover;
        aspect-ratio: var(--aspect_column) / var(--aspect_row);

        &:not([width], [class*="width-"]) {
          inline-size: 100%;
        }
      }
    }

    &.contain {

      &:not(:has(>img)),
      &.wp-block-image img {
        object-fit: contain;
        object-position: center;
      }
    }

    &[class*="-1"] {
      --aspect_column: 1;
    }

    &[class*="-2"] {
      --aspect_column: 2;
    }

    &[class*="-3"] {
      --aspect_column: 3;
    }

    &[class*="-4"] {
      --aspect_column: 4;
    }

    &[class*="-5"] {
      --aspect_column: 5;
    }

    &[class*="-6"] {
      --aspect_column: 6;
    }

    &[class*="-7"] {
      --aspect_column: 7;
    }

    &[class*="-8"] {
      --aspect_column: 8;
    }


    &[class*="_1"] {
      --aspect_row: 1;
    }

    &[class*="_2"] {
      --aspect_row: 2;
    }

    &[class*="_3"] {
      --aspect_row: 3;
    }

    &[class*="_4"] {
      --aspect_row: 4;
    }

    &[class*="_5"] {
      --aspect_row: 5;
    }

    &[class*="_6"] {
      --aspect_row: 6;
    }

    &[class*="_7"] {
      --aspect_row: 7;
    }

    &[class*="_8"] {
      --aspect_row: 8;
    }


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

      &[class*="aspect_sp-"] {

        &:not(:has(>img)),
        &.wp-block-image img {
          object-fit: cover;
          aspect-ratio: var(--aspect_column) / var(--aspect_row);

          &:not([width]) {
            inline-size: 100%;
          }
        }
      }


      &[class*="-sp1"] {
        --aspect_column: 1;
      }

      &[class*="-sp2"] {
        --aspect_column: 2;
      }

      &[class*="-sp3"] {
        --aspect_column: 3;
      }

      &[class*="-sp4"] {
        --aspect_column: 4;
      }

      &[class*="-sp5"] {
        --aspect_column: 5;
      }

      &[class*="-sp6"] {
        --aspect_column: 6;
      }

      &[class*="-sp7"] {
        --aspect_column: 7;
      }

      &[class*="-sp8"] {
        --aspect_column: 8;
      }


      &[class*="_sp1"] {
        --aspect_row: 1;
      }

      &[class*="_sp2"] {
        --aspect_row: 2;
      }

      &[class*="_sp3"] {
        --aspect_row: 3;
      }

      &[class*="_sp4"] {
        --aspect_row: 4;
      }

      &[class*="_sp5"] {
        --aspect_row: 5;
      }

      &[class*="_sp6"] {
        --aspect_row: 6;
      }

      &[class*="_sp7"] {
        --aspect_row: 7;
      }

      &[class*="_sp8"] {
        --aspect_row: 8;
      }
    }
  }


  [class*="object"] {
    &[class*="-height"] :is(img, video) {
      object-fit: cover;
      inline-size: 100%;
      block-size: 100%;
    }

    &[class*="-position_top"] img {
      object-position: top;
    }

    &[class*="-position_bottom"] img {
      object-position: bottom;
    }

    &[class*="-position_left"] img {
      object-position: left;
    }

    &[class*="-position_right"] img {
      object-position: right;
    }
  }

  .circle:not(.wp-block-image),
  .circle.wp-block-image img {
    border-radius: 50%;
  }

  .radius:not(.wp-block-image),
  .radius.wp-block-image img {
    border-radius: 0.5rem;
    overflow: hidden;
  }
}

/*--------------------layout.cssここまで--------------------*/

/*--------------------common.css--------------------*/

@layer common {

  /* ////////////////////////////////////////
PC,SP共通
//////////////////////////////////////// */

  /*　フッター　*/
  /* カテゴリ表示の背景色 */
  .bg-cate-1 {
    background: #ffae5e;
  }

  .bg-cate-2 {
    background: #7a5b44;
  }

  .bg-cate-3 {
    background: #57b7e8;
  }

  .bg-cate-4 {
    background: #8fc31f;
  }

  .bg-cate-5 {
    background: #7e2a00;
  }

  .bg-cate-6 {
    background: #00a29a;
  }

  .bg-cate-7 {
    background: #f29c97;
  }

  .bg-cate-8 {
    background: #9082a4;
  }

  .bg-cate-9 {
    background: #e6001b;
  }

  .bg-cate-10 {
    background: #0047cf;
  }

  /* カテゴリ表示の背景色 */
  /* 共通色指定*/

  :root {
    --main_color: #030303;
    --sub_color: #ececec;
    --key_color: #a1272f;
    --border_color: #7e7e7e;
    --garamond: "EB Garamond", serif;
  }

  .garamond {
    font-family: var(--garamond);
  }

  /*画面占有率によるアクティブ*/
  :is(.move, .remove) {
    transition: translate 0.6s cubic-bezier(0.7, 0, 0.36, 0.63), opacity 0.6s cubic-bezier(0.7, 0, 0.36, 0.63);
    --delay: 0.6s;
    transition-delay: var(--delay);
    translate: 0 -1rem;
    opacity: 0;

    &.active {
      translate: unset;
      opacity: 1;
    }
  }

  /*
  [data-width] {
    inline-size: min(100%, attr(data-width px));
  }
	*/

  .btn-archive {

    :is(&:not(:has(>*)), &:has(>*) *) {
      display: inline-flex;
      align-items: center;
      gap: 1rem;
      z-index: 1;
      position: relative;
      min-inline-size: min(320px, 100%);
      inline-size: auto;
      padding: 1rem 1.5rem;
      background: var(--main_color);
      color: #fff;
      text-align: center;
      font-weight: 700;
      transition: 0.5s;
      border: 1px solid var(--main_color);
      font-size: min(16px, 3.5vw);
      line-height: 1;

      &:is(input) {
        justify-content: center;
      }

      &:hover {
        background: #fff;
        color: var(--main_color);
        opacity: 1;
      }

      &:after {
        content: "";
        aspect-ratio: 1/1;
        border-radius: 50%;
        inline-size: 1.25rem;
        background: currentColor;
        mask: url('data:image/svg+xml;base64,PHN2ZyBpZD0iX+ODrOOCpOODpOODvF8xIiBkYXRhLW5hbWU9IuODrOOCpOODpOODvCAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogI2Q5ZDlkOTsKICAgICAgICBzdHJva2Utd2lkdGg6IDBweDsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTguMDEsMTIuMTZsLTUuNzIsNS40NGMtLjU1LjUzLTEuNDMuNS0xLjk1LS4wNS0uNTMtLjU1LS41LTEuNDMuMDUtMS45NWwyLjMzLTIuMjJoLTUuNTJjLS43NiwwLTEuMzgtLjYyLTEuMzgtMS4zOHMuNjItMS4zOCwxLjM4LTEuMzhoNS41MmwtMi4zMy0yLjIyYy0uNTUtLjUyLS41Ny0xLjQtLjA1LTEuOTUuNTMtLjU1LDEuNC0uNTgsMS45NS0uMDVsNS43Miw1LjQ0cy4wNy4xLjA3LjE2LS4wMi4xMi0uMDcuMTZaTTEyLDBDNS4zNywwLDAsNS4zNywwLDEyczUuMzcsMTIsMTIsMTIsMTItNS4zNywxMi0xMlMxOC42MywwLDEyLDBaIi8+Cjwvc3ZnPg==') center / contain no-repeat;
        -webkit-mask: url('data:image/svg+xml;base64,PHN2ZyBpZD0iX+ODrOOCpOODpOODvF8xIiBkYXRhLW5hbWU9IuODrOOCpOODpOODvCAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogI2Q5ZDlkOTsKICAgICAgICBzdHJva2Utd2lkdGg6IDBweDsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTguMDEsMTIuMTZsLTUuNzIsNS40NGMtLjU1LjUzLTEuNDMuNS0xLjk1LS4wNS0uNTMtLjU1LS41LTEuNDMuMDUtMS45NWwyLjMzLTIuMjJoLTUuNTJjLS43NiwwLTEuMzgtLjYyLTEuMzgtMS4zOHMuNjItMS4zOCwxLjM4LTEuMzhoNS41MmwtMi4zMy0yLjIyYy0uNTUtLjUyLS41Ny0xLjQtLjA1LTEuOTUuNTMtLjU1LDEuNC0uNTgsMS45NS0uMDVsNS43Miw1LjQ0cy4wNy4xLjA3LjE2LS4wMi4xMi0uMDcuMTZaTTEyLDBDNS4zNywwLDAsNS4zNywwLDEyczUuMzcsMTIsMTIsMTIsMTItNS4zNywxMi0xMlMxOC42MywwLDEyLDBaIi8+Cjwvc3ZnPg==') center / contain no-repeat;
        margin-inline-start: auto;
      }

      &[target]:after {
        border-radius: unset;
        inline-size: 1.25rem;
        mask: url('data:image/svg+xml;base64,PHN2ZyBpZD0iX+ODrOOCpOODpOODvF8xIiBkYXRhLW5hbWU9IuODrOOCpOODpOODvCAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2U6ICMwMDA7CiAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOwogICAgICAgIHN0cm9rZS1saW5lam9pbjogcm91bmQ7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiAycHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxwb2x5bGluZSBjbGFzcz0iY2xzLTEiIHBvaW50cz0iMTQgMSAyMyAxIDIzIDEwIi8+CiAgPHBvbHlsaW5lIGNsYXNzPSJjbHMtMSIgcG9pbnRzPSIxOSAxNSAxOSAyMyAxIDIzIDEgNSA5IDUiLz4KICA8bGluZSBjbGFzcz0iY2xzLTEiIHgxPSIxMSIgeTE9IjEzIiB4Mj0iMjIiIHkyPSIyIi8+Cjwvc3ZnPg==') center / contain no-repeat;
        -webkit-mask: url('data:image/svg+xml;base64,PHN2ZyBpZD0iX+ODrOOCpOODpOODvF8xIiBkYXRhLW5hbWU9IuODrOOCpOODpOODvCAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2U6ICMwMDA7CiAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOwogICAgICAgIHN0cm9rZS1saW5lam9pbjogcm91bmQ7CiAgICAgICAgc3Ryb2tlLXdpZHRoOiAycHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxwb2x5bGluZSBjbGFzcz0iY2xzLTEiIHBvaW50cz0iMTQgMSAyMyAxIDIzIDEwIi8+CiAgPHBvbHlsaW5lIGNsYXNzPSJjbHMtMSIgcG9pbnRzPSIxOSAxNSAxOSAyMyAxIDIzIDEgNSA5IDUiLz4KICA8bGluZSBjbGFzcz0iY2xzLTEiIHgxPSIxMSIgeTE9IjEzIiB4Mj0iMjIiIHkyPSIyIi8+Cjwvc3ZnPg==') center / contain no-repeat;
      }

      &+.wpcf7-spinner {
        display: none !important;
      }

      .flexCenter:has(.wpcf7-form-control-wrap + &) {
        flex-flow: column;
        align-items: center;
      }

      .main-column .has-text-align-center & {
        margin: 0 auto;
      }

      &.none {
        pointer-events: none;
        filter: grayscale(1);
      }

      @media(width <=640px) {
        inline-size: min(400px, 100%);
      }
    }
  }


  :is(.btn-min:not(:has(>*)), .btn-min:has(>*) *) {
    display: inline-flex;
    gap: 0.5rem;
    align-items: center;
    line-height: 1;
    font-weight: 700;
    text-decoration: underline;

    &:after {
      content: "";
      aspect-ratio: 1/1;
      border-radius: 50%;
      inline-size: 1.25rem;
      background: var(--main_color);
      mask: url('data:image/svg+xml;base64,PHN2ZyBpZD0iX+ODrOOCpOODpOODvF8xIiBkYXRhLW5hbWU9IuODrOOCpOODpOODvCAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogI2Q5ZDlkOTsKICAgICAgICBzdHJva2Utd2lkdGg6IDBweDsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTguMDEsMTIuMTZsLTUuNzIsNS40NGMtLjU1LjUzLTEuNDMuNS0xLjk1LS4wNS0uNTMtLjU1LS41LTEuNDMuMDUtMS45NWwyLjMzLTIuMjJoLTUuNTJjLS43NiwwLTEuMzgtLjYyLTEuMzgtMS4zOHMuNjItMS4zOCwxLjM4LTEuMzhoNS41MmwtMi4zMy0yLjIyYy0uNTUtLjUyLS41Ny0xLjQtLjA1LTEuOTUuNTMtLjU1LDEuNC0uNTgsMS45NS0uMDVsNS43Miw1LjQ0cy4wNy4xLjA3LjE2LS4wMi4xMi0uMDcuMTZaTTEyLDBDNS4zNywwLDAsNS4zNywwLDEyczUuMzcsMTIsMTIsMTIsMTItNS4zNywxMi0xMlMxOC42MywwLDEyLDBaIi8+Cjwvc3ZnPg==') center / contain no-repeat;
      -webkit-mask: url('data:image/svg+xml;base64,PHN2ZyBpZD0iX+ODrOOCpOODpOODvF8xIiBkYXRhLW5hbWU9IuODrOOCpOODpOODvCAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogI2Q5ZDlkOTsKICAgICAgICBzdHJva2Utd2lkdGg6IDBweDsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTguMDEsMTIuMTZsLTUuNzIsNS40NGMtLjU1LjUzLTEuNDMuNS0xLjk1LS4wNS0uNTMtLjU1LS41LTEuNDMuMDUtMS45NWwyLjMzLTIuMjJoLTUuNTJjLS43NiwwLTEuMzgtLjYyLTEuMzgtMS4zOHMuNjItMS4zOCwxLjM4LTEuMzhoNS41MmwtMi4zMy0yLjIyYy0uNTUtLjUyLS41Ny0xLjQtLjA1LTEuOTUuNTMtLjU1LDEuNC0uNTgsMS45NS0uMDVsNS43Miw1LjQ0cy4wNy4xLjA3LjE2LS4wMi4xMi0uMDcuMTZaTTEyLDBDNS4zNywwLDAsNS4zNywwLDEyczUuMzcsMTIsMTIsMTIsMTItNS4zNywxMi0xMlMxOC42MywwLDEyLDBaIi8+Cjwvc3ZnPg==') center / contain no-repeat;
    }
  }

  [class*="back_color-"] {
    background: var(--sub_color);

    &[class*="-main"] {
      background: var(--main_color);
    }

    &[class*="-key"] {
      background: var(--key_color);
    }

    &[class*="-gray"] {
      background: #f3f3f3;
    }
  }

  [class*="mat-"] {
    padding: min(6vw, 8rem);

    a:is(&) {
      display: block;
    }

    &[class*="-middle"] {
      padding: min(6vw, 3rem);
    }

    &[class*="-min"] {
      padding: min(6vw, 2rem);
    }

    &[class*="-filter"] {
      backdrop-filter: blur(20px);
    }

    &[class*="-white"] {
      background: #fff;
    }

    &[class*="-gray"] {
      background: #f2f2f2;
    }

    &[class*="-main"] {
      background: var(--main_color);
    }

    &[class*="-sub"] {
      background: var(--sub_color);
    }

    &[class*="-border"] {
      border: 1px solid var(--border_color);
    }

    & .contents {
      padding: unset;
      inline-size: min(100%, 1600px);

    }
  }

  .list-caution {

    & li {
      font-size: min(13px, 3.5vw);
      line-height: 1.5;
      text-indent: max(-6vw, -1rem);
      padding-inline-start: min(6vw, 1rem);

      & :is(ul, ol) {
        margin: unset;

        & li+li {
          margin-block-start: 0
        }
      }

      &+li {
        margin-block-start: 0.25rem;
      }
    }

    &>li:before {
      content: "※";
      block-size: initial;
      inline-size: initial;
      background: none;
    }
  }

  .list-data_text li {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    word-break: break-word;
    font-size: min(3.5vw, 14px);
    letter-spacing: 0;

    &[data-text]:before {
      content: attr(data-text);
      flex: 0 auto;
      white-space: pre;
      /* order: -2; */
    }

    @media(width <=640px) {
      flex-flow: wrap;
    }
  }

  .list-check {
    & li {
      line-height: 1.75;
      text-indent: calc(max(-4vw, -1rem) - 0.75rem);
      padding-inline-start: calc(min(4vw, 1rem) + 0.75rem);

      *:not([class*="grid"], [class*="flex"])>&+li {
        margin-block-start: 0.5rem;
      }

      &:before {
        display: inline-block;
        content: "";
        min-inline-size: min(6vw, 1rem);
        margin-right: 0.5rem;
        aspect-ratio: 5/4;
        vertical-align: middle;
        background: var(--main_color);
        mask: url('data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%20%5B%20%3C!ENTITY%20ns_flows%20%22http%3A%2F%2Fns.adobe.com%2FFlows%2F1.0%2F%22%3E%5D%3E%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%20113%2089%22%20enable-background%3D%22new%200%200%20113%2089%22%20xml%3Aspace%3D%22preserve%22%3E%3Cdefs%3E%3C%2Fdefs%3E%3Cpath%20fill%3D%22%231f887c%22%20d%3D%22M41.453%2C89.064L2.5%2C47.858c-3.417-3.538-3.319-9.176%2C0.219-12.594c3.452-3.333%2C8.923-3.333%2C12.375%2C0%20l26.359%2C27.081L97.354%2C2.756c3.396-3.558%2C9.034-3.689%2C12.593-0.292c3.557%2C3.396%2C3.688%2C9.034%2C0.292%2C12.592l0%2C0L41.453%2C89.064z%22%2F%3E%3C%2Fsvg%3E') center/contain no-repeat;
      }
    }
  }


  .list-flex {
    display: flex;
    flex-flow: wrap;
    align-items: baseline;
    gap: min(2vw, 0.5rem) min(4vw, 1.5rem);

    & li {
      margin: unset !important;

      @media (width <=640px) {
        flex: 1 100%;
      }
    }
  }

  [class*="title-"] {

    &[class*="-section"] {
      font-size: clamp(2.25rem, 6vw, 100px);
      font-weight: 500;
      line-height: 1.25;
      display: flex;
      flex-flow: column;
      gap: min(4vw, 4rem) 1.5rem;
      font-family: var(--garamond);

      &:has(+ *) {
        margin-block-end: min(8vw, 6rem);
      }

      &:has(+p) {
        margin-block-end: min(8vw, 3rem);
      }

      &+ :is(p, ul, ol, dd) {
        margin-block-start: -0.5rem;
      }

      &+p {
        margin-block-start: -0.5rem;
        /*line-height: 2.5;
        font-size: min(16px, 3.5vw);
        font-weight: 700;*/
      }

      &+p:has(+*) {
        margin-block-end: min(12vw, 6rem);
      }

      &[data-text]:before {
        content: attr(data-text);
        font-size: min(4vw, 24px);
        color: #fff;
        background: var(--main_color);
        line-height: 1;
        padding: 0.5rem 4rem;
      }

    }

    &[class*="-large"] {
      font-size: clamp(1.5rem, 3vw, 30px);
      font-weight: 500;
      line-height: 1.25;
      display: flex;
      flex-flow: column;
      gap: 1rem 1.5rem;
      font-family: var(--garamond);

      &:has(+ *) {
        margin-block-end: clamp(1.75rem, 2vw, 2rem);
      }

      &:has(+p) {
        margin-block-end: clamp(1rem, 2vw, 1.75rem);
      }

      &+ :is(p, ul, ol, dd) {
        margin-block-start: -0.5rem;
      }

      &+p {
        margin-block-start: -0.5rem;
        /*line-height: 2.5;
        font-size: min(16px, 3.5vw);
        font-weight: 700;*/
      }

      &+p:has(+*) {
        margin-block-end: min(8vw, 4rem);
      }

      &[data-text]:before {
        content: attr(data-text);
        font-size: min(4vw, 20px);
        line-height: 1;
        color: var(--main_color);
      }

    }

    &[class*="-middle"] {
      font-size: min(4.5vw, 24px);
      font-family: var(--garamond);
      font-weight: 500;
      line-height: 1.5;

      &:has(+ *) {
        margin-block-end: min(5vw, 1.75rem);
      }

      &+ :is(p, ul, ol, dd) {
        margin-block-start: -0.5rem;
      }

      &[data-text] {
        display: inline-flex;
        flex-flow: column;
        gap: 0.5rem;

        &:before {
          content: attr(data-text);
          font-size: min(4vw, 18px);
          line-height: 1;
        }
      }

      &[class*="-center"][class*="-border_bottom"] {
        border: unset;
        padding: unset;
        gap: min(3vw, 1.25rem);

        &:after {
          content: "";
          inline-size: 3rem;
          block-size: 1px;

          background: currentColor;
        }
      }

    }

    &[class*="-min"] {
      font-size: min(4vw, 18px);
      line-height: 1.25;

      &:has(+ *) {
        margin-block-end: 1.5rem;
      }

      &+ :is(p, ul, ol, dd) {
        margin-block-start: -0.5rem;
      }

    }

    &[class*="-border_right"] {
      display: flex;
      gap: 1rem;
      align-items: center;
      flex-flow: row;

      &:after {
        content: "";
        flex: 1;
        background: var(--border_color);
        block-size: 1px;
      }
    }

    &[class*="-border_side"] {
      display: flex;
      gap: 1rem;
      align-items: center;
      flex-flow: row;
      text-align: center;

      &:before,
      &:after {
        content: "";
        flex: 1;
        background: var(--border_color);
        block-size: 1px;
        min-inline-size: min(40px, 8vw);
      }

      @media(640px < width) {
        &+p:not(:is(.textLeft, .has-text-align-left)) {
          text-align: center;
        }
      }

    }

    &[class*="-border_left"] {
      border-left: 1px solid currentColor;
      padding-inline-start: 1rem;

      &[data-text] {
        display: flex;
        flex-flow: column;
      }
    }

    &[class*="-border_bottom"] {
      padding-block-end: 0.5rem;
      border-bottom: 1px solid var(--key_color);

      &[data-text] {
        display: flex;
        align-items: baseline;
        gap: 0.5rem 1rem;

        &:after {
          margin-inline-start: auto;
        }

        @media(width <=640px) {
          flex-flow: wrap;

          &:after {
            flex: 1 100%;
            margin-inline-start: unset;
          }
        }
      }
    }

    &[class*="-color"] {
      color: var(--main_color);
    }

    &[class*="-first_color"] {
      display: block !important;

      &:first-letter {
        color: var(--key_color);
      }

      &:before {
        content: none;
      }
    }

    &[class*="-mat"] {
      background: var(--main_color);
      color: #fff;
      font-family: var(--garamond);
      display: inline-block;
      line-height: 1;
      padding: 0.25rem min(4vw, 1.5rem);

      &[class*="-large"] {
        padding: 0.5rem min(8vw, 8rem);
      }

      &[class*="-mat_white"] {
        background: #fff;
      }

      &[class*="-mat_border"] {
        background: unset;
        border: 1px solid var(--border_color);
        color: currentcolor;
      }
    }

    &[class*="-icon"] {
      display: flex;
      gap: 0.5rem;

      &:before {
        content: "";
        background: var(--main_color);
        aspect-ratio: 1/1;
        inline-size: 1rem;
      }

      &[class*="_lp_top"] {
        gap: min(6vw, 2.5rem);
        margin-block-end: min(7vw, 2.5rem);

        &:before {
          background: url(../images/logo_itakura.svg) center / contain no-repeat;
          inline-size: min(100%, 500px);
          aspect-ratio: 300/73;
          order: -2;
        }

        &:after {
          content: "";
          inline-size: min(240px, 100%);
          block-size: 1px;
          background: currentColor;
          order: -1;
        }
      }
    }

    :is(&[class*="-center"], &.has-text-align-center) {
      display: flex;
      flex-flow: column;
      text-align: center;
      align-items: center;

      @media(640px < width) {
        &+p:not(.textLeft, .has-text-align-left) {
          text-align: center;
        }
      }

      @media(width <=640px) {
        &:not([class*="-keep"]) {
          text-align: inherit;
          align-items: baseline;
        }
      }
    }

    :is(&[class*="-right"], &.has-text-align-right) {
      text-align: right;
      align-items: flex-end;

      &+p {
        text-align: right;
      }
    }

    :is(&[class*="-left"], &.has-text-align-left) {
      text-align: left;
      flex-flow: wrap;
      align-items: baseline;
    }

    & img {
      vertical-align: baseline;
    }

  }

  .section {

    &+.section {
      margin-block-start: min(20vw, 200px);

    }
  }

  .section_in {

    &+.section_in {
      margin-block-start: min(12vw, 80px);

    }
  }


  .table-info {

    & th {
      border: unset !important;
      border-block-end: 1px solid var(--key_color) !important;
      inline-size: min(20vw, 150px);
      background: unset;
      white-space: pre;
      padding: 0.5rem;
    }

    & td {
      border: unset !important;
      border-block-end: 1px solid var(--border_color) !important;
      padding: 0.5rem;
    }

    & li {
      font-size: min(3.5vw, 14px);
      line-height: 1.5;
    }

  }


  .table-mat {

    & tr {
      background: #fff;

      & :is(th, td) {
        padding: 0.75rem 1rem;
        border: 1px solid var(--border_color) !important;
      }

      & th {
        background: #f5f5f5;
      }
    }

    & figcaption {
      margin-block-start: 1rem;
    }
  }

  /*question*/

  .card-question {
    padding: 1rem;
    background: #f2f2f2;
    border-radius: 0.5rem;

    & .question-wrap {

      & .question-title {
        display: flex;
        gap: 0.75rem;
        cursor: pointer;
        align-items: baseline;
        line-height: 1.5;

        &:before {
          content: "Q";
          min-inline-size: 2rem;
          display: flex;
          align-items: center;
          justify-content: center;
          background: var(--main_color);
          color: #fff;
          aspect-ratio: 1/1;
          font-weight: 700;
        }

        &:after {
          content: "";
          margin-inline-start: auto;
          mask: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%22160px%22%20height%3D%2285px%22%20viewBox%3D%220%200.001%20160%2085%22%20enable-background%3D%22new%200%200.001%20160%2085%22%20xml%3Aspace%3D%22preserve%22%3E%3Cdefs%3E%3C%2Fdefs%3E%3Cpath%20fill%3D%22%231c50a1%22%20d%3D%22M79.995%2C84.656c-7.223%2C0-14.443-2.723-19.953-8.186L3.4%2C19.818c-4.534-4.535-4.534-11.881%2C0-16.417%20c4.535-4.535%2C11.882-4.535%2C16.417%2C0l56.604%2C56.618c1.951%2C1.928%2C5.171%2C1.961%2C7.166-0.021l56.595-56.595%20c4.534-4.535%2C11.881-4.535%2C16.416%2C0c4.534%2C4.536%2C4.534%2C11.882%2C0%2C16.417L99.981%2C76.435C94.471%2C81.923%2C87.229%2C84.656%2C79.995%2C84.656z%22%2F%3E%3C%2Fsvg%3E') center / contain no-repeat;
          background: var(--main_color);
          aspect-ratio: 32/17;
          min-inline-size: min(6vw, 1.5rem);
          transition: 0.4s;
          align-self: center;
        }

        &.active:after {
          rotate: 180deg;
        }
      }
    }

    & .answer-wrap {
      display: none;

      & .answer-title {
        display: flex;
        gap: 0.75rem;
        margin-block-start: 1rem;
        padding-block-start: 1rem;
        border-block-start: 1px solid var(--border_color);
        align-items: baseline;

        &:before {
          content: "A";
          min-inline-size: 2rem;
          display: flex;
          align-items: center;
          justify-content: center;
          background: #a11c1c;
          color: #fff;
          aspect-ratio: 1/1;
          font-weight: 700;
          align-self: baseline;
        }

      }
    }
  }

  /*スライダー*/

  .scroll-slider {
    position: relative;
    z-index: 2;
    pointer-events: none;
    overflow: hidden;

    & .scroll-track {
      display: flex;
      align-items: center;
      animation: scrollSide 80s linear infinite;
      gap: min(3vw, 1.25rem);
      inline-size: max-content;
      /* line-height: 1; */




      &>* {
        line-height: 0.9;
        font-weight: 700;
        font-size: min(15vw, 200px);
        white-space: pre;
        pointer-events: none;
      }

      &:has(img) {
        gap: 4px;

        & img {
          inline-size: min(30vw, 350px);
        }
      }
    }

    *:has(>&) {
      position: relative;
      margin: unset;
    }
  }


  /* 横に流れるアニメーション */
  @keyframes scrollSide {
    0% {
      transform: translateX(0);
    }

    100% {
      transform: translateX(-50%);
      /* 画像セット1分が終わったらちょうど繋がる */
    }
  }


  /*swiper 共通設定*/

  .swiper {

    & li:has(img) {
      line-height: 1;
    }

    & .swiper-scrollbar {
      background: var(--border_color);
    }

    & .swiper-scrollbar-drag {
      background: currentColor;
    }
  }

  /* フェードモード時 共通調整 */
  .swiper-fade {
    .swiper-slide {
      transition-property: opacity !important;
    }
  }

  /*バレット　矢印共通*/

  .swiper-button {
    display: flex;
    gap: 1rem;

    & [class*="swiper-button-"] {
      aspect-ratio: 1/1;
      inline-size: min(12vw, 3rem);
      position: relative;
      cursor: pointer;

      &:before {
        content: "";
        position: absolute;
        inset: 1rem;
        mask: url(../images/arrow_side.svg) center / contain no-repeat;
        background: var(--main_color);
      }
    }

    & .swiper-button-prev:before {
      scale: -1 -1;
    }

  }

  .swiper-pagination {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    justify-content: flex-end;

    & .swiper-pagination-bullet {
      inline-size: 1rem;
      aspect-ratio: 1/1;
      border-radius: 50%;
      cursor: pointer;
      position: relative;
      scale: 0.4;
      background: var(--main_color);

      &:before {
        content: "";
        position: absolute;
        inset: 0;
        border-radius: 50%;
        outline: 1px solid var(--main_color);
        transition: 0.2s;
      }

      & svg {
        position: absolute;
        inset: 0;
        rotate: -90deg;

        & circle {
          fill: transparent;
          stroke: #333;
          stroke-width: 3;
          stroke-dasharray: 75;
          stroke-dashoffset: 75;
        }
      }

      &.swiper-pagination-bullet-active {
        &:before {
          scale: 2;
        }

        & svg {
          scale: 2;

          & circle {
            animation: line_move 6.5s infinite;
          }
        }
      }
    }

    @media(width <=640px) {
      justify-content: center;
    }
  }

  /*front_fade*/

  .front_fade {
    .swiper-slide {

      & img {
        transform: scale(1);
        transition: transform 7s linear
      }

      &[class*=-active] {
        & img {
          transform: scale(1.03);
        }
      }
    }
  }

  /*large_slider*/

  .large_slider {
    position: relative;

    & .swiper-button {
      position: absolute;
      z-index: 5;
      inset-block-start: calc(50% - 1rem);
      inset-inline-start: 0;
      translate: 0% -50%;
      inline-size: calc(clamp(320px, 40vw, 600px) *0.9 *1.15);
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin: unset;

      & li {
        aspect-ratio: 1/1;
        inline-size: 2rem;
        background: #fff;
        border-radius: 50%;
        cursor: pointer;
        position: relative;

        &:after {
          content: "";
          position: absolute;
          inset: 0;
          mask: url('data:image/svg+xml;base64,PHN2ZyBpZD0iX+ODrOOCpOODpOODvF8xIiBkYXRhLW5hbWU9IuODrOOCpOODpOODvCAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogI2Q5ZDlkOTsKICAgICAgICBzdHJva2Utd2lkdGg6IDBweDsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTguMDEsMTIuMTZsLTUuNzIsNS40NGMtLjU1LjUzLTEuNDMuNS0xLjk1LS4wNS0uNTMtLjU1LS41LTEuNDMuMDUtMS45NWwyLjMzLTIuMjJoLTUuNTJjLS43NiwwLTEuMzgtLjYyLTEuMzgtMS4zOHMuNjItMS4zOCwxLjM4LTEuMzhoNS41MmwtMi4zMy0yLjIyYy0uNTUtLjUyLS41Ny0xLjQtLjA1LTEuOTUuNTMtLjU1LDEuNC0uNTgsMS45NS0uMDVsNS43Miw1LjQ0cy4wNy4xLjA3LjE2LS4wMi4xMi0uMDcuMTZaTTEyLDBDNS4zNywwLDAsNS4zNywwLDEyczUuMzcsMTIsMTIsMTIsMTItNS4zNywxMi0xMlMxOC42MywwLDEyLDBaIi8+Cjwvc3ZnPg==') center / contain no-repeat;
          background: #ddd;
        }

        &.swiper-button-prev {
          translate: 50% 0;
          rotate: 180deg;
        }

        &.swiper-button-next {
          translate: -50% 0;
        }
      }
    }

    & .swiper-wrapper {
      align-items: flex-end;
    }

    & .swiper-slide {
      inline-size: clamp(320px, 40vw, 600px);
      transform: scale(0.9);
      transform-origin: left bottom;
      transition: transform 0.6s;
      margin-right: min(4vw, 40px);

      &:not(.swiper-slide-active):has(+.swiper-slide-active) {
        transform: scale(0.9) translateX(max(-4vw, -40px));
        transform-origin: left bottom;
      }

      &.swiper-slide-active+.swiper-slide:not(.swiper-slide-active) {
        transform: scale(0.9) translateX(min(3vw, 45px));
        transform-origin: left bottom;
      }

      & figure {
        transition: 0.6s;
        transform-origin: left bottom;
        border: 1px solid;
      }

      &.swiper-slide-active {

        & figure {
          transform: scale(1.15);
          transform-origin: left bottom;
          transition: 0.6s;
        }
      }
    }

    & figcaption {
      font-size: min(3.5vw, 20px);
      line-height: 1;
      padding-top: 1.5rem;
      font-family: var(--eng_serif);
    }

    @media (width <=640px) {

      & .swiper-wrapper {
        align-items: baseline;
        padding-top: unset;
      }

      & .swiper-slide {
        transform: unset !important;
        margin-right: min(8vw, 2rem);
        inline-size: 80%;

        & figure {
          transform: unset !important;
          transform-origin: left bottom;
        }
      }

      & figcaption {
        font-size: initial;
        padding-top: 1rem;
      }
    }
  }

  /*middle_slider*/

  .middle_slider {
    position: relative;

    & .swiper-button {
      display: flex;
      gap: 1.5rem;

      & li {
        aspect-ratio: 1/1;
        inline-size: 2rem;
        background: #fff;
        border-radius: 50%;
        cursor: pointer;
        position: relative;

        &.swiper-button-prev {
          rotate: 180deg;
        }

        &:after {
          content: "";
          position: absolute;
          inset: 0;
          mask: url('data:image/svg+xml;base64,PHN2ZyBpZD0iX+ODrOOCpOODpOODvF8xIiBkYXRhLW5hbWU9IuODrOOCpOODpOODvCAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogI2Q5ZDlkOTsKICAgICAgICBzdHJva2Utd2lkdGg6IDBweDsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTguMDEsMTIuMTZsLTUuNzIsNS40NGMtLjU1LjUzLTEuNDMuNS0xLjk1LS4wNS0uNTMtLjU1LS41LTEuNDMuMDUtMS45NWwyLjMzLTIuMjJoLTUuNTJjLS43NiwwLTEuMzgtLjYyLTEuMzgtMS4zOHMuNjItMS4zOCwxLjM4LTEuMzhoNS41MmwtMi4zMy0yLjIyYy0uNTUtLjUyLS41Ny0xLjQtLjA1LTEuOTUuNTMtLjU1LDEuNC0uNTgsMS45NS0uMDVsNS43Miw1LjQ0cy4wNy4xLjA3LjE2LS4wMi4xMi0uMDcuMTZaTTEyLDBDNS4zNywwLDAsNS4zNywwLDEyczUuMzcsMTIsMTIsMTIsMTItNS4zNywxMi0xMlMxOC42MywwLDEyLDBaIi8+Cjwvc3ZnPg==') center / contain no-repeat;
          background: #ddd;
        }

        &:hover:after {
          background: var(--main_color);
        }

      }
    }

    & .swiper-slide {
      inline-size: clamp(320px, 40vw, 360px);
      margin-right: min(4vw, 60px);
      block-size: 100%;
    }

    & figcaption {
      font-size: min(3.5vw, 20px);
      line-height: 1;
      padding-top: 1.5rem;
      font-family: var(--eng_serif);
    }

    @media (width <=640px) {

      & .swiper-wrapper {
        align-items: baseline;
        padding-top: unset;
      }

      & .swiper-slide {
        transform: unset !important;
        margin-right: min(8vw, 2rem);
        inline-size: 80%;

        & figure {
          transform: unset !important;
          transform-origin: left bottom;
        }
      }

      & figcaption {
        font-size: initial;
        padding-top: 1rem;
      }
    }

    & .card-img_text {
      & dd {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        overflow: hidden;
      }
    }
  }

  /*other_slider*/

  .other_slider-wrap {
    inline-size: min(100%, 720px);
    margin: 0 auto;
    position: relative;

    & .other_slider {

      & .swiper-slide {
        overflow: hidden;
      }

    }

    & .fraction {
      position: absolute;
      z-index: 2;
      inset-block-start: 0;
      inset-inline-end: 0;
      translate: min(4vw, 40%) -50%;
      display: flex;
      align-items: baseline;
      gap: 0.5rem;
      font-size: min(4vw, 32px);
      font-weight: 700;

      &:before {
        content: "/";
        order: 2;
      }

      & .num {
        display: inline-block;
        font-size: min(84px);
        order: 1;

        &.anm-started {
          -webkit-animation: other_slider-fraction 1s var(--easing);
          animation: other_slider-fraction 1s var(--easing);
        }
      }

      & .total {
        order: 3;
      }
    }

    & .content {
      position: absolute;
      z-index: 2;
      inset-block-start: 0;
      inset-inline-start: 0;
      translate: max(-10rem, -4vw) min(16vw, 5rem);
      inline-size: min(80%, 500px);
      pointer-events: none;

      & p {
        overflow: hidden;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 6;
      }

      & .marker {
        position: relative;

        -webkit-clip-path: inset(0 100% 0 0);
        clip-path: inset(0 100% 0 0);

        &:after {
          position: absolute;
          top: 0;
          left: 0;
          inline-size: 100%;
          block-size: 100%;
          content: "";
          background-color: #fff;
        }
      }

      &.anm-started .marker {
        -webkit-animation: other_slider-marker 1s 0.5s both;
        animation: other_slider-marker 1s 0.5s both;

        &:after {
          -webkit-animation: other_slider-markerBg 1s 0.5s both;
          animation: other_slider-markerBg 1s 0.5s both;
        }
      }

      &.anm-finished .marker {
        -webkit-animation: other_slider-markerHide 0.5s both;
        animation: other_slider-markerHide 0.5s both;

        &:after {
          -webkit-clip-path: inset(0 0 0 100%);
          clip-path: inset(0 0 0 100%);
        }
      }
    }

    & .swiper-button {
      position: absolute;
      z-index: 2;
      inset-block-start: 50%;
      inset-inline-end: 0;
      translate: 50% -50%;
      display: flex;
      flex-flow: column;
      gap: 1.5rem;

      & li {
        inline-size: 2rem;
        aspect-ratio: 1/1;
        background: #333;
        cursor: pointer;

        &:hover {
          opacity: 0.8;
        }

        &.swiper-button-prev {
          mask: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjMiIGhlaWdodD0iNjMiIHZpZXdCb3g9IjAgMCA2MyA2MyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2LjE4MDUgNDEuMzMzMkwyNi4zNDcyIDMxLjQ5OTlMMzYuMTgwNSAyMS4yNTY4IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMzEuNTI1OCAyQzM4LjcwNDggMi4wMDYyOSA0NS42MzUxIDQuNjMwMjEgNTEuMDE4MSA5LjM4MDA3QzU2LjQwMTEgMTQuMTI5OSA1OS44NjczIDIwLjY3OTcgNjAuNzY3MiAyNy44MDIxQzYxLjY2NzEgMzQuOTI0NCA1OS45MzkgNDIuMTMwNSA1NS45MDY1IDQ4LjA3QzUxLjg3NDEgNTQuMDA5NSA0NS44MTQzIDU4LjI3NDcgMzguODYyNCA2MC4wNjY0QzMxLjkxMDYgNjEuODU4MSAyNC41NDQxIDYxLjA1MzMgMTguMTQzMSA1Ny44MDI4QzExLjc0MjEgNTQuNTUyNCA2Ljc0NjE0IDQ5LjA3OTMgNC4wOTEzIDQyLjQwOTNDMS40MzY0NiAzNS43MzkyIDEuMzA0OTkgMjguMzMgMy43MjE1MiAyMS41Njk5QzYuMTM4MDUgMTQuODA5OSAxMC45MzY3IDkuMTYzMDEgMTcuMjE4MyA1LjY4NzUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPg==') center/ contain no-repeat;
        }

        &.swiper-button-next {
          mask: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjMiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2MyA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI4LjI0OCAyMS43NUwzOC4wODE0IDMxLjU4MzNMMjguMjQ4IDQxLjgyNjQiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0zMS41MjU4IDIuNDkzMTZDMzguNzA0OCAyLjQ5OTQ2IDQ1LjYzNTEgNS4xMjMzOCA1MS4wMTgxIDkuODczMjNDNTYuNDAxMSAxNC42MjMxIDU5Ljg2NzMgMjEuMTcyOSA2MC43NjcyIDI4LjI5NTJDNjEuNjY3MSAzNS40MTc2IDU5LjkzOSA0Mi42MjM3IDU1LjkwNjUgNDguNTYzMkM1MS44NzQxIDU0LjUwMjYgNDUuODE0MyA1OC43Njc5IDM4Ljg2MjQgNjAuNTU5NkMzMS45MTA2IDYyLjM1MTMgMjQuNTQ0MSA2MS41NDY1IDE4LjE0MzEgNTguMjk2QzExLjc0MjEgNTUuMDQ1NSA2Ljc0NjE0IDQ5LjU3MjUgNC4wOTEzIDQyLjkwMjRDMS40MzY0NiAzNi4yMzI0IDEuMzA0OTkgMjguODIzMSAzLjcyMTUyIDIyLjA2MzFDNi4xMzgwNSAxNS4zMDMgMTAuOTM2NyA5LjY1NjE3IDE3LjIxODMgNi4xODA2NiIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+') center / contain no-repeat;
        }
      }
    }

  }

  @-webkit-keyframes other_slider-marker {

    60%,
    100% {
      -webkit-clip-path: inset(0);
      clip-path: inset(0);
    }
  }

  @keyframes other_slider-marker {

    60%,
    100% {
      -webkit-clip-path: inset(0);
      clip-path: inset(0);
    }
  }

  @-webkit-keyframes other_slider-markerBg {
    60% {
      -webkit-clip-path: inset(0);
      clip-path: inset(0);
    }

    100% {
      -webkit-clip-path: inset(0 0 0 100%);
      clip-path: inset(0 0 0 100%);
    }
  }

  @keyframes other_slider-markerBg {
    60% {
      -webkit-clip-path: inset(0);
      clip-path: inset(0);
    }

    100% {
      -webkit-clip-path: inset(0 0 0 100%);
      clip-path: inset(0 0 0 100%);
    }
  }

  @-webkit-keyframes other_slider-markerHide {
    0% {
      -webkit-clip-path: inset(0);
      clip-path: inset(0);
    }

    100% {
      -webkit-clip-path: inset(0 0 0 100%);
      clip-path: inset(0 0 0 100%);
    }
  }

  @keyframes other_slider-markerHide {
    0% {
      -webkit-clip-path: inset(0);
      clip-path: inset(0);
    }

    100% {
      -webkit-clip-path: inset(0 0 0 100%);
      clip-path: inset(0 0 0 100%);
    }
  }

  @-webkit-keyframes other_slider-fraction {

    0%,
    100% {
      -webkit-transform: translateY(0);
      transform: translateY(0);
      opacity: 1;
    }

    50% {
      -webkit-transform: translateY(-110%);
      transform: translateY(-110%);
      opacity: 1;
    }

    50.1% {
      -webkit-transform: translateY(110%);
      transform: translateY(110%);
      opacity: 0;
    }
  }

  @keyframes other_slider-fraction {

    0%,
    100% {
      -webkit-transform: translateY(0);
      transform: translateY(0);
      opacity: 1;
    }

    50% {
      -webkit-transform: translateY(-110%);
      transform: translateY(-110%);
      opacity: 1;
    }

    50.1% {
      -webkit-transform: translateY(110%);
      transform: translateY(110%);
      opacity: 0;
    }
  }

  /*auto_slide*/


  /*auto_slider*/

  .auto_slider {
    position: relative;

    & .swiper-wrapper {
      transition-timing-function: linear !important;
    }

    & .swiper-slide {
      width: min(400px);
      block-size: 100%;
      pointer-events: none;
      margin-inline-end: min(4vw, 3rem);

    }

    @media (width <=640px) {

      & .swiper-wrapper {
        align-items: baseline;
        padding-top: unset;
      }

      & .swiper-slide {
        transform: unset !important;
        width: 30%;

        & figure {
          transform: unset !important;
          transform-origin: left bottom;
        }
      }
    }
  }

  /*フッター*/


  .footer {
    position: relative;
    margin-top: auto;
    background: var(--main_color);
    color: #fff;
    font-family: var(--garamond);
    --border_color: #fff;

    & .top-footer {
      padding: 4rem 0;

      & a {
        display: flex;
        justify-content: center;
        align-items: center;
        text-align: center;
        padding: clamp(1rem, 2vw, 3.5rem);
        border: 1px solid currentColor;
        font-size: clamp(16px, 1.5vw, 24px);
        font-family: var(--garamond);
        block-size: 100%;

        & svg {
          max-block-size: min(8vw, 3rem);
          max-inline-size: min(80%, 260px);

          & .cls-1 {
            fill: #fff !important;
          }

        }
      }
    }

    & .bottom-footer {
      border-block-start: 1px solid var(--border_color);

      & .grid-footer {
        display: grid;
        grid-template:
          "a b" 1fr
          "a c" auto / 1fr 1fr;
        font-size: min(3.5vw, 14px);


        & a {
          text-decoration: underline;
        }

        .contents:has(>&) {
          inline-size: min(100%, 1600px);
          padding: unset;
        }

        &>* {
          border: 1px solid var(--border_color);
          margin: -1px -0.5px 0;

        }

        & .area-a {
          & svg {
            inline-size: min(100%, 360px);

            & :is(.cls-1, .cls-2) {
              fill: #fff !important;
            }
          }
        }

        & .area-c {
          & * {
            line-height: 1;
          }
        }

        & .btn-repeat {
          position: relative;
          inline-size: min(450px, 100%);
          height: 75px;
          overflow: hidden;
          box-shadow: var(--shadow_3);
          isolation: isolate;
          font-weight: 500;
          font-size: min(5vw, 24px);
          line-height: 75px;
          text-transform: capitalize;
          white-space: nowrap;
          display: flex;
          background: #fff;
          color: var(--main_color);

          /*
        &:hover {
            opacity: 1;
            & [class*=text] {
                translate: 0 -100%;
                &[class*=_2] {
                    translate: 0 0%;
                }
            }
        }
        */

          & [class*=text] {
            display: flex;
            align-items: center;
            animation: scrollSide 20s linear infinite;
            position: absolute;
            transition: all .7s cubic-bezier(1, 0, 0, 1);
            transition-property: translate;
            transition-timing-function: cubic-bezier(1, 0, 0, 1);

            & span {
              flex: 0 0 min(40vw, 180px);
              white-space: pre;
              text-align: center;
            }
          }
        }

        @media(width <=1280px) {
          grid-template:
            "a b" 1fr
            "c c" auto / 1fr 1fr;
        }

        @media(width <=1080px) {
          grid-template:
            "a" auto
            "b" auto
            "c" auto / 1fr;

          &>* {
            border-inline: unset;
          }
        }
      }
    }

    & .link-footer {
      & li {
        font-size: min(4vw, 18px);

        &+& {
          margin-block-start: 0.75rem;
        }
      }
    }

    & .copy-footer {
      display: flex;
      align-items: center;
      gap: min(4vw, 2rem);
      justify-content: space-between;
    }

    & .contents {
      container: gap / inline-size;
    }


    @media(width <=1080px) {
      & .footer-top {

        & .tb-contents {
          inline-size: 100%;
          padding-right: 0;
          padding-left: 0;
        }
      }

      & .simple-footer-nav {
        flex-wrap: wrap;
        margin-bottom: unset;
        gap: unset;

        & li {
          flex: 1 100%;
          text-align: center;
          border-top: 1px solid #999999;

          & a {
            border-right: none;
            inline-size: 100%;
            padding: 15px 0;
            display: block;
          }
        }
      }


      & .copy-footer {
        flex-flow: column;
        align-items: center;
        justify-content: unset;
        text-align: center;
        padding: 0.5rem;

        & .flex {
          display: none;
        }
      }
    }
  }

  /*LPトップ*/

  .section-lp1 {
    position: relative;
    overflow: hidden;
    min-block-size: 100svh;

    & .flex {

      &:before {
        content: "";
        flex: 0 min(40vw, 650px);
        margin-inline-end: -6rem;
        block-size: 100svh;
        background: url(../images/image-lp1.png) right calc(0% - 5rem) / auto no-repeat;
        translate: 0%;
        z-index: 2;
        transition: translate 0.6s cubic-bezier(0.7, 0, 0.36, 0.63), opacity 0.6s cubic-bezier(0.7, 0, 0.36, 0.63);
        transition-delay: 1s, 1s;
      }

      &:not(:has(.active)) {
        &:before {
          translate: -100% 0;
        }
      }
    }

    @media(width <=1080px) {
      background: #fafafaaa;
      padding: var(--section_padding) 0;

      & .flex {
        margin-inline-start: unset;

        &:before {
          position: absolute;
          inset: 0 auto 0 0;
          margin-inline: unset;
          block-size: 100%;
          inline-size: min(40vw, 650px);
          background: url(../images/image-lp1.png) right calc(0% - 5rem) / auto calc(100% + 5rem) no-repeat;
          z-index: -1;
        }
      }
    }


  }

  .section-lp2 {
    overflow: hidden;
    color: #fff;
  }

  .grid-lp2 {
    display: grid;
    grid-template: repeat(29, 1fr)/repeat(14, 1fr);
    position: relative;
    z-index: 0;

    & .grid_box-lp2 {
      position: relative;
      grid-column: var(--column);
      grid-row: var(--row);

      & dt {

        &.title-middle {
          display: inline-flex;
          flex-flow: column;
          gap: 1rem;
          margin: unset;
        }

        span {
          display: inline-flex;
          align-items: center;
          gap: 0.5rem;
          font-size: min(3.5vw, 18px);
          padding: 0.25rem 2rem;
          line-height: 1;
          background: #080404;
          align-self: flex-start;
          color: #fff;
          translate: -2rem 0;

          &:before {
            content: "";
            inline-size: 0.5rem;
            aspect-ratio: 1/1;
            border-radius: 50%;
            background: #fff;
          }

        }
      }

      & dd {
        position: absolute;
        inset: 0;
        z-index: -1;

        & img {
          object-fit: cover;
          inline-size: 100%;
          block-size: 100%;
        }
      }

      &.count-1 {
        --column: 1/15;
        --row: 1/10;
        max-block-size: 100svh;
        inline-size: 100%;
        aspect-ratio: 8/5;
      }

      &.count-2 {
        --column: 1/5;
        --row: 10/16;
      }

      &.count-3 {
        --column: 5/11;
        --row: 10/16;
      }

      &.count-4 {
        --column: 11/15;
        --row: 10/16;
      }

      &.count-5 {
        --column: 1/8;
        --row: 16/20;
      }

      &.count-6 {
        --column: 8/15;
        --row: 16/20;
      }

      &.count-7 {
        --column: 1/5;
        --row: 20/26;
      }

      &.count-8 {
        --column: 5/11;
        --row: 20/26;
        color: initial;
      }

      &.count-9 {
        --column: 11/15;
        --row: 20/26;
        color: initial;
      }

      &.count-10 {
        --column: 1/8;
        --row: 26/30;
      }

      &.count-11 {
        --column: 8/15;
        --row: 26/30;
      }
    }

    @media(width <=1080px) {
      grid-template: auto/ repeat(auto-fill, minmax(min(50%, 400px), 1fr));

      & .grid_box-lp2 {
        position: relative;
        grid-column: unset;
        grid-row: unset;
        aspect-ratio: 1/1;

        &.count-1 {
          grid-column: span 2;
          aspect-ratio: 2/1;
        }

      }
    }

    @media(width <=640px) {
      grid-template: auto/ repeat(auto-fill, minmax(min(100%, 400px), 1fr));

      & .grid_box-lp2 {
        aspect-ratio: 2/1;

        &.count-1 {
          grid-column: unset;
        }

      }
    }
  }


  .section-lp3 {
    position: relative;
    overflow: hidden;
    border-block-end: 1px solid var(--border_color);

    & [class*="title-section"] {
      font-size: clamp(4rem, 10vw, 150px);
    }

    & .width-over {
      &:before {
        content: "";
        flex: 0 min(40vw, 650px);
        background: url(../images/image-lp3.png) right calc(0% - 0.5rem) / auto 110% no-repeat;
        translate: 0;
        z-index: 2;
        margin-inline-end: -3rem;
        transition: translate 0.6s cubic-bezier(0.7, 0, 0.36, 0.63), opacity 0.6s cubic-bezier(0.7, 0, 0.36, 0.63);
        transition-delay: 1s, 1s;
      }

      &:not(:has(.active)) {
        &:before {
          translate: -100% 0;
        }
      }
    }


    @media(width <=1080px) {
      background: #fafafaaa;

      & .width-over {
        position: unset;
        inset: unset;
        translate: unset;

        &:before {
          position: absolute;
          inset: 0 auto 0 0;
          margin-inline: unset;
          block-size: 100%;
          flex: unset;
          inline-size: min(40vw, 650px);
          background: url(../images/image-lp3.png) right calc(0% - 0.5rem) / auto 110% no-repeat;
          z-index: -1;
        }

      }

    }
  }

  .section-lp4 {

    & [class*="title-section"] {
      font-size: clamp(3rem, 10vw, 150px);
      margin-block-end: min(12vw, 8rem);
    }

    & .box-lp4 {
      --padding: 6rem;

      &:nth-child(2) {
        --delay: 0.8s;
        padding-block-start: var(--padding);
      }

      &:nth-child(3) {
        --delay: 1s;
        padding-block-start: calc(var(--padding)*2);
      }

      &:nth-child(4) {
        --delay: 1.2s;
        padding-block-start: calc(var(--padding)*3);
      }

      @media(width <=1080px) {

        & {
          flex: 1 100%;
          padding-block-start: 0 !important;

          .flex:has(>&) {
            flex-flow: wrap;
          }
        }

      }
    }

  }


  .box-lp5 {
    position: relative;

    &:after {
      content: attr(data-text);
      font-family: var(--garamond);
      font-size: clamp(4rem, 16vw, 300px);
      color: #333;
      position: absolute;
      inset: 0 auto auto 0;
      white-space: pre;
      letter-spacing: 0;
      line-height: 0.6;
      mix-blend-mode: color-burn;
      pointer-events: none;
      transform: translate3d(0,0,0);
    }

    &[data-category="indigo_dye"] {
      position: relative;
      z-index: 0;
      padding-block-start: calc(min(1000px, 80vw) - 15rem);

      &:before {
        content: "";
        position: absolute;
        inset: 0 auto auto 50%;
        translate: -50% 0;
        inline-size: 100svw;
        background: url("../images/image-lp5_back.png") center/ 100% auto no-repeat;
        aspect-ratio: 57/30;
        z-index: -1;
        pointer-events: none;
      }

      &:after {
        position: absolute;
        inset: 0 auto auto 50%;
        translate: -50% 0;
        inline-size: 100svw;
        aspect-ratio: 2/1;
        display: flex;
        align-items: center;
        justify-content: center;
        mix-blend-mode: plus-lighter;
      }
    }

    &:has(.flex-reverse) {
      &:after {
        inset: 0 0 auto auto;
      }
    }

  }

  .absolute-lp6 {
    z-index: -1;

    .box-lp6:has(&) {
      position: relative;

    }

    & img {
      margin-block: max(-30vw, -30rem) 0;
      scale: 1.6;
      transform-origin: calc(50% - 4rem) 50%;
    }

    @media(1080px < width) {
      & img {
        position: absolute;
        inset: 50% 50% auto auto;
        translate: 50% -40%;
        inline-size: min(1600px, 110vw);
        max-inline-size: unset;
        z-index: -1;
        scale: unset;
        transform-origin: unset;
        margin: unset;
      }

      & .width-530 {
        width: min(40%, 530px);
      }
    }

    @media(width <=1080px) {
      .box-lp6:has(&) {
        &+.flex {

          & .fr2 {
            flex: 1 40%;
          }
        }
      }
    }

  }

  .box-lp7 {
    position: relative;
    padding-block-start: min(4vw, 5rem);

    .counter-reset:has(&) {
      position: relative;
      counter-reset: number 0;
      z-index: 0;

      &:before {
        content: "";
        block-size: 1px;
        inline-size: calc((100% + min(4vw, 5rem)) *3/4);
        background: currentColor;
        position: absolute;
        inset: 0 auto auto 50%;
        translate: -50% 0%;
        z-index: ;
      }
    }

    &:before {
      content: "";
      position: absolute;
      inset: 0 auto auto 50%;
      translate: -50% -50%;
      inline-size: 0.75rem;
      aspect-ratio: 1/1;
      border-radius: 50%;
      background: var(--key_color);
    }

    &:after {
      counter-increment: number 1;
      content: counter(number);
      position: absolute;
      inset: auto 0 0 auto;
      translate: 0 4rem;
      font-size: min(12vw, 200px);
      font-weight: 400;
      color: var(--sub_color);
      line-height: 1;
      font-family: var(--garamond);
      z-index: -1;
    }

    @media(width <=1080px) {
      padding: 2rem;
      background: #fff;
      border: 1px solid var(--main_color);

      &.number-simple:before {
        translate: -50% 1.5rem;
      }

      &:before {
        content: none;
      }

      &:after {
        content: none;
      }

      .counter-reset:has(&) {
        position: relative;
        z-index: 0;

        &:before {
          content: "";
          block-size: 100%;
          inline-size: 2px;
          background: var(--main_color);
          position: absolute;
          inset: 0 auto 0 50%;
          translate: -50% 0;
          z-index: 0;
        }
      }

    }
  }

  .box2-lp7 {
    background: url(../images/image-lp7_back.jpg) center / cover no-repeat;
    position: relative;
    z-index: 0;
    overflow: hidden;
    color: #fff;
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    text-align: right;
    max-block-size: 50vw;


    &:after {
      content: attr(data-text);
      font-family: var(--garamond);
      font-size: clamp(4rem, 10vw, 200px);
      color: #fff;
      position: absolute;
      inset: auto auto 0 0;
      white-space: pre;
      letter-spacing: 0;
      line-height: 0.7;
      mix-blend-mode: overlay;
      pointer-events: none;
      z-index: -1;
    }

    @media(width <=1080px) {
      justify-content: flex-start;
      align-items: flex-start;
      text-align: initial;
    }
  }

  .section-lp8 {
    --border_color: #babbb6;

    & .map-lp8 {
      margin-block: max(-15vw, -15rem) max(-10vw, -10rem);
      position: relative;
      z-index: -1;
      pointer-events: none;
    }

    & .box-lp8 {
      position: relative;
      padding: 0 2rem;

      &:before {
        content: "";
        position: absolute;
        inset: 0;
        border-inline: 1px solid var(--border_color);
        margin-inline: -0.5px;
      }

      .counter-reset:has(&) {
        position: relative;
        counter-reset: number 0;
      }

      &:after {
        counter-increment: number 1;
        content: counter(number);
        position: absolute;
        inset: auto auto 0 0;
        translate: 2rem 0;
        font-size: min(12vw, 48px);
        font-weight: 400;
        line-height: 1;
        font-family: var(--garamond);
      }

      @media(width <=1080px) {
        aspect-ratio: unset;
        padding: unset;

        &:before {
          content: none;
        }

        &:after {
          inset: 0 auto auto 0;
          translate: -40% -50%;
        }
      }
    }
  }

  .section-lp9 {
    background: var(--main_color);
    color: #fff;

    & .box-lp9 {
      position: relative;
      z-index: 0;

      &:before {
        content: "";
        position: absolute;
        translate: calc((100vw - min(100vw, 1680px)) /2 + min(8vw, 3rem)) 0;
        z-index: -1;
        inset: 2rem 0;
        background: #2e2e2e;
        pointer-events: none;
      }
    }
  }

  .section-lp10 {
    min-block-size: 100svh;
    display: flex;
    flex-flow: column;
    align-items: center;
    justify-content: center;
    position: relative;
    --section_padding: min(24vw, 12rem);

    & .contents {
      flex: 1;
      display: flex;
      flex-flow: column;
      align-items: center;
      justify-content: center;
      position: relative;
      padding-block: min(20vw, 150px);

      &:before {
        content: "Domestic Japanese Woods";
        position: absolute;
        inset: 0 auto auto 0;
        translate: min(40px, 6vw) 0;
        font-size: min(6vw, 36px);
        font-family: var(--garamond);
        line-height: 0.7;
      }

      &:after {
        content: "Internationally Sourced Woods";
        position: absolute;
        inset: auto 0 0 auto;
        translate: -min(40px, 6vw) 0;
        font-size: min(6vw, 36px);
        font-family: var(--garamond);
        line-height: 0.75;
      }
    }


    & .slide_top-lp10 {
      position: absolute;
      inset: 0 0 auto;
    }

    & .slide_bottom-lp10 {
      position: absolute;
      inset: auto 0 0;
    }

    & :is(.slide_top-lp10, .slide_bottom-lp10) {
      & .scroll-track {
        gap: unset;
        margin: unset;

        & img {
          inline-size: unset;
          block-size: min(12vw, 6rem);
        }

        &>* {
          font-size: unset;
        }

        &+& {
          translate: max(-6vw, -4rem) -1px;
        }
      }
    }

    @media(width <=1080px) {
      min-block-size: unset;
    }
  }

  .gallery-lp11 {
    display: flex;
    align-items: center;
    gap: 2.5rem;

    &:before,
    &:after {
      content: "";
      flex: 1;
      block-size: 1px;
      background: var(--main_color);
    }

    &:after {
      flex: 2;
    }

    &>* {
      flex: 0 min(100%, 930px);
    }


    & .gallery_slider {
      position: relative;
      padding-inline-end: min(40px, 6vw);
      margin-inline-end: max(-40px, -6vw);

      & .swiper-button {
        position: absolute;
        inset: 0 0 auto auto;
        z-index: 2;
        flex-flow: column;
      }
    }

    @media(width <=1080px) {
      gap: unset;
      inline-size: unset;
      inset: unset;
      translate: unset;

      & .gallery_slider {
        padding: unset;
        margin: unset;

        & .swiper-button {
          gap: unset;
        }
      }

    }
  }

  .box-lp11 {
    mar-inline-end: 3rem;

    & figure {
      position: relative;
      margin: unset !important;

      & span {
        position: absolute;
        inset: 3rem auto auto 0;
        display: inline-flex;
        align-items: center;
        gap: 0.5rem;
        font-size: min(3.5vw, 18px);
        padding: 0.25rem 2rem;
        line-height: 1;
        background: #080404;
        align-self: flex-start;
        color: #fff;
        font-family: var(--garamond);

        &:before {
          content: "";
          inline-size: 0.5rem;
          aspect-ratio: 1/1;
          border-radius: 50%;
          background: #fff;
        }

      }
    }
  }

  .section-lp13 {
    position: relative;
    padding-block-start: clamp(10rem, 20vw, 380px);
    z-index: 0;

    & .title-lp13 {
      font-size: clamp(5rem, 22vw, 420px);
      letter-spacing: 0.5rem;
      line-height: 0.75;
      font-family: var(--garamond);
      font-weight: 400;
      pointer-events: none;
      position: absolute;
      inset: 0 0 auto;
      color: var(--sub_color);
      z-index: -1;

      & span {
        font-size: clamp(7rem, 15vw, 260px);
        line-height: 0.85;
        display: flex;
      }
    }

    @media(width <=1080px) {
      padding: min(20vw, 150px) 0;

      & .title-lp13 {
        position: relative;
        inset: unset;
        white-space: initial;
        letter-spacing: unset;
        z-index: 1;
      }
    }
  }

  .section-lp14 {
    background: url(../images/image-lp14_back.jpg) center / cover;
    display: flex;
    flex-flow: column;
    justify-content: flex-end;
    color: #fff;

    & .title-section {
      letter-spacing: 0;
      line-height: 0.7;
      mix-blend-mode: color-dodge;
      margin-block: unset;
      filter: contrast(0.5);
    }
  }

  .section-lp15 {
    & .title-section {
      margin-block-end: min(8vw, 4rem);
      line-height: 0.75;
    }
  }

  .section-lp16 {
    border-block-start: 1px solid var(--main_color);

    & .fr1 img {
      block-size: 100%;
      inline-size: 100%;
    }

    & .fr2 {
      padding-block: min(20vw, 130px);
    }

    & .title-section {
      line-height: 0.75;
      transform-origin: left bottom;
      font-size: clamp(2.5rem, 10vw, 300px);
      margin-inline: max(-16vw, -18rem) 0;
      color: var(--sub_color);
      mix-blend-mode: difference;
    }

    @media(width <=1080px) {
      border: unset;

      & .title-section {
        font-size: clamp(2.5rem, 10vw, 300px);
        margin-inline: unset;
      }
    }
  }

  /* 固定ページ
*************************** */


  /* 会社概要　
*************************** */

  .table-company {
    & th {
      border: none;
    }

    & td {
      border: none;
    }

    @media(width <=640px) {
      & tr:not(:last-of-type) {
        border-bottom: 1px solid var(--border_color);
      }

      & th {
        inline-size: 20%;
      }
    }
  }


  .company-access h3 {
    margin-top: 0;
  }

  .history {
    overflow: visible;

    & tr {
      line-height: 1.5;

      & td:nth-of-type(1) {
        position: relative;
        font-weight: bold;
        inline-size: min(25vw, 110px);
        text-align: right;
        padding: 0 1rem 0 0 !important;
      }

      & td:nth-of-type(2) {
        padding: 0 0 2rem 1rem !important;
        position: relative;
        border-left: 1px solid var(--main_color) !important;

        &:before {
          content: "";
          block-size: 11px;
          inline-size: 11px;
          border-radius: 50%;
          position: absolute;
          top: 0.4rem;
          left: -6px;
          /* transform: translateY(-50%); */
          background: var(--main_color);
        }
      }
    }
  }

  /* 会社概要
*************************** */
  /*お問い合わせ*/


  .wrap-contact_tel {
    margin-block-end: 5rem;
  }

  .box-contact_tel {
    display: flex;
    flex-flow: column;
    align-items: center;

    & * {
      line-height: 1;
    }

    & .contact_tel {
      & a {
        font-weight: 700;
        font-size: min(6vw, 32px);
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        gap: min(2vw, 0.5rem);
        color: var(--main_color);
        pointer-events: none;
        line-height: 0.7;

        &:before {
          content: "";
          inline-size: min(5vw, 1.75rem);
          aspect-ratio: 4/5;
          background: currentColor;
          mask: url('data:image/svg+xml;base64,PHN2ZyBpZD0iX+ODrOOCpOODpOODvF8yIiBkYXRhLW5hbWU9IuODrOOCpOODpOODvCAyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyODguMDcgMzU5LjkzIj4KICA8ZGVmcz4KICAgIDxzdHlsZT4KICAgICAgLmNscy0xIHsKICAgICAgICBmaWxsOiAjZTc5M2JjOwogICAgICAgIHN0cm9rZS13aWR0aDogMHB4OwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICA8cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik03NS4yNSwyMjkuMzZjMTYuOTYsMjQuNzQsMTEzLjQ4LDE2My43NiwxNzEuNTcsMTIzLjIyLjEyLS4wOS4yNC0uMTguMzYtLjI4bDM3LjY4LTMxLjY2YzMuNjItMy4wNSw0LjMyLTguNzQsMS4zOC0xMi45NGwtNDguMTctNjguOGMtMS40NS0yLjA3LTQuMDUtMi44My02LjEtMS43MmwtNDcuMjQsMjUuMzgtLjQ2LS42NXMtMzMuMjYtMTIuNDctNjguNjctNjAuNzljLTMzLjI5LTQ5LjgxLTMzLjY0LTg1LjMyLTMzLjY0LTg1LjMybC0uNDYtLjY1LDQwLjAxLTM1LjcxYzEuNzQtMS41NSwxLjkxLTQuMjYuNDctNi4zMkw3My44LDQuM2MtMi45NC00LjItOC41My01LjQ5LTEyLjYzLTMuMTNMMTguNjEsMjUuNjhjLS4xMy4wOC0uMy4xOS0uNDMuMjctNTcuOTYsNDAuNzIsMzkuNjIsMTc5LDU3LjA2LDIwMy40WiIvPgo8L3N2Zz4=') center / contain no-repeat;
        }
      }

      &+p {
        font-size: min(3.5vw, 14px);
        margin-block-start: 0.75rem;
      }

      @media(width <=640px) {
        & a {
          padding: 0.75rem 1.5rem;
          background: var(--main_color);
          border-radius: 2rem;
          color: #fff;
          pointer-events: initial;
        }
      }
    }
  }


  .table-list {
    & tr {
      display: flex;
      align-items: flex-start;
      gap: 0.5rem 2rem;

      &+tr {
        margin-block-start: 2rem;
      }

      & :is(th, td) {
        padding: unset;
      }

      & th {
        flex: 0 min(240px, 40%);
        background: unset;

        & ruby {
          display: flex;
          flex-flow: column;
          line-height: 1.5;

          & rt {
            font-size: min(3.5vw, 14px);
            color: #aaa;
          }
        }
      }

      & td {
        flex: 1;
      }

      @media screen and (width <=640px) {
        flex-flow: wrap;

        & th {
          flex: 1 100%;
        }
      }
    }

    & .required {
      background: #990000;
      margin-left: 10px;
      color: #ffffff;
      font-size: 12px;
      padding: 2px 5px;
      border-radius: 5px;
      line-height: 1;
      letter-spacing: 0.2em;
      text-indent: 0.2em;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }
  }


  /* お問い合わせ　
*************************** */

  /*コメント機能*/

  .comments-area {
    .comment-list {
      &>*+* {
        margin-block-start: 3rem;
      }

      & .comment-body {
        flex: 1;

        & .comment-meta {
          display: flex;
          gap: 0.5rem 2rem;
          padding: 0.75rem;
          background: #f2f2f2;
          line-height: 1;
          font-size: min(3.5vw, 14px);

          & .comment-metadata {
            margin-inline-start: auto;
            display: flex;
            gap: 1rem;

            & a {
              text-decoration: underline;
            }
          }

          @media(width <=640px) {
            flex-flow: wrap;

            & .comment-metadata {
              margin-inline-start: unset;

            }
          }
        }

        & .comment-content {
          padding: 0.75rem 0 0 0;

          & p {
            font-size: min(3.5vw, 16px);
            line-height: 1.75;
          }
        }


        .children & {

          .children:has(&) {
            margin-block-start: 2rem;
            gap: min(2vw, 1rem);
            padding-inline-start: 1.5rem;
            border-inline-start: 1px solid var(--border_color);
          }

          & .comment-meta {

            & .comment-metadata {
              margin-inline-start: auto;
              display: flex;
              gap: 1rem;

            }

            @media(width <=640px) {
              flex-flow: wrap;

              & .comment-metadata {
                margin-inline-start: unset;

              }
            }
          }
        }

      }
    }
  }

  .comment-respond {
    margin-block-start: 3rem;
    padding: 2rem;
    border: 1px solid var(--border_color);
    text-align: initial;

    & a {
      text-decoration: underline;
    }

    & .comment-reply-title {
      margin-block-end: 1.5rem;
      display: flex;
      gap: 1rem;

      & small {
        font-size: min(3.5vw, 14px);
      }
    }

    .comment-form {
      font-size: min(3.5vw, 14px);

      & .form-submit {
        & .submit {
          font-size: min(4vw, 16px);
          font-weight: 700;
          padding: 0.25rem 1rem;
          background: var(--main_color);
          color: #fff;
          border-radius: 2rem;
        }
      }
    }
  }

}


/*--------------------common.cssここまで--------------------*/

/*以下レイヤーcss外の強めのcss*/

.wp-block-buttons>.wp-block-button {
  display: inline-block;
  margin: 0;
}

.wp-block-table td,
.wp-block-table th {
  border: unset;
  padding: .5em
}

& :is(.alignright, .has-text-align-right) {
  text-align: right;
}

& :is(.aligncenter, .has-text-align-center) {
  text-align: center;
}

:where(.wp-block-columns):last-of-type {
  margin-block-end: unset;
}


/*自由入力用*/

:is(.area-free>.wp-block-group__inner-container, .single-contents) {

  &>* {
    margin-block-start: 1rem;
  }

  & * {
    &:first-child {
      margin-block-start: unset;
    }

    &:is(figure) {
      margin-block-end: unset;
    }
  }


  & h2 {
    font-size: min(6vw, 28px);
    font-weight: 700;
    margin-block: 4rem min(6vw, 2.5rem);
    line-height: 1.25;
    display: flex;
    flex-flow: column;
    gap: 1rem;

  }

  & h3 {
    font-size: min(4.5vw, 22px);
    font-weight: 700;
    margin-block: min(16vw, 3rem) min(6vw, 2rem);
    line-height: 1.5;
    display: flex;
    gap: 1rem;
    align-items: center;

    &:after {
      content: "";
      flex: 1;
      min-inline-size: 2rem;
      background: var(--border_color);
      block-size: 1px;
    }

    &:is(.has-text-align-center, .has-text-align-right) {

      &:before {
        content: "";
        flex: 1;
        background: var(--border_color);
        block-size: 1px;
      }

      &.has-text-align-right:after {
        content: none;
      }
    }

    &:has(+ p) {
      margin-block-end: min(6vw, 1rem);
    }

  }

  & h4 {
    font-size: min(4vw, 18px);
    font-weight: 700;
    margin-block: 2rem 1rem;
    line-height: 1.25;
    border-left: 3px solid var(--main_color);
    padding-inline-start: 0.75rem;

    &.has-text-align-center {
      border: unset;
      display: flex;
      flex-flow: column;
      align-items: center;
      gap: 0.75rem;

      &:after {
        content: "";
        inline-size: 3rem;
        block-size: 3px;
        background: var(--main_color);
      }
    }

    &.has-text-align-right {
      border: unset;
      display: flex;
      align-items: center;
      gap: 1rem;
      justify-content: flex-end;

      &:before {
        content: "";
        inline-size: 2rem;
        block-size: 3px;
        background: var(--main_color);
      }
    }
  }

  & .main-column .wp-block-button a {
    display: block;
  }
}


/*work*/

.single-work {
  .grid-3 {
    gap: min(3vw, 1.5rem);
    grid-template:
      ". . ." auto
      ". . ." auto /1fr 1fr 1fr;

    &>*:first-child {
      grid-area: 1 / 1 / 2 / 4;
    }
  }
}


/*ギャラリー用*/

.wp-block-gallery {

  &.has-nested-images figure.wp-block-image {
    flex-grow: unset;
  }

  & img {
    aspect-ratio: 1/1;
    object-fit: cover;
  }

  &.has-nested-images figure.wp-block-image {
    overflow: hidden;

    & figcaption {
      text-align: initial;
      overflow: hidden;
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 2;
      padding: 0.25rem 0.5rem 0.5rem;
      /* scale: 0.95; */
      line-height: 1.5;
      translate: 0 0.25rem;
      background: #333333aa;
    }
  }
}

@media (min-width: 600px) {

  .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2),
  .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2)~figure.wp-block-image:not(#individual-image) {
    max-inline-size: calc(25% - var(--wp--style--unstable-gallery-gap, 16px)*.75);
  }

  .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image) {
    max-inline-size: calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px)*.66667);
  }

  .wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image) {
    max-inline-size: calc(25% - var(--wp--style--unstable-gallery-gap, 16px)*.75);
  }
}

/*contactform7*/
.wpcf7-form {

  /*確認画面と完了画面を非表示*/
  & :is(.confirm_area, .thanks_area) {
    display: none;
  }

  /*確認画面と完了画面を非表示*/
  & :is(.confirm_area, .thanks_area) {
    display: none;
  }

  /*デフォルトのサンクスメッセージを非表示*/
  & .wpcf7-response-output {
    display: none;
  }

  & .wpcf7-list-item {
    display: inline-block;
    margin: unset;

    .wpcf7-form-control:has(&) {
      display: flex;
      flex-flow: wrap;
      gap: 0.5rem 1rem;
    }
  }
}




/*テスト用*/

.l-transition {
  position: fixed;
  z-index: 100;
  pointer-events: none;
  /*background: var(--main_color);*/
}

.l-transition,
.l-transition__mask {
  height: 100%;
  left: 0;
  top: 0;
  width: 100%;
}

.l-transition__mask {
  display: grid;
  grid-template-rows: repeat(16, 1fr);
  position: absolute;
  z-index: 1;
}

.l-transition__el {
  position: relative;
}

.l-transition__in {
  background-color: var(--main_color);
  height: calc(100% + 1px);
  position: relative;
  width: 100%;
  will-change: transform;
}

.is-loaded .l-transition {
  pointer-events: none;
}

.is-transition .l-transition {
  pointer-events: auto;
}