@charset "UTF-8";
/*
 * css
 * uaplus.css reset css
 * 1. root variables
 * 2. fonts
 * 3. global styles
    3-1. base styles
    3-2. utility styles
 * 4. layout styles
    4-1. wrapper, content, base, inner
    4-3. page-container, page-header, page-content
 * 5. component styles
 */



/*
 * fonts
 */
/* zen-maru-gothic-regular - japanese_latin */
@font-face {
  font-family: 'Zen Maru Gothic';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/zen-maru-gothic/zen-maru-gothic-v19-japanese_latin-regular.woff2') format('woff2');
  font-display: swap;
}

/* zen-maru-gothic-500 - japanese_latin */
@font-face {
  font-family: 'Zen Maru Gothic';
  font-style: normal;
  font-weight: 500;
  src: url('../fonts/zen-maru-gothic/zen-maru-gothic-v19-japanese_latin-500.woff2') format('woff2');
  font-display: swap;
}

/* zen-maru-gothic-700 - japanese_latin */
@font-face {
  font-family: 'Zen Maru Gothic';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/zen-maru-gothic/zen-maru-gothic-v19-japanese_latin-700.woff2') format('woff2');
  font-display: swap;
}

/* noto-sans-jp-regular - japanese_latin */
@font-face {
  font-display: swap;
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/noto-sans-jp/noto-sans-jp-v56-japanese_latin-regular.woff2') format('woff2');
}

/* noto-sans-jp-500 - japanese_latin */
@font-face {
  font-display: swap;
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 500;
  src: url('../fonts/noto-sans-jp/noto-sans-jp-v56-japanese_latin-500.woff2') format('woff2');
}

/* noto-sans-jp-700 - japanese_latin */
@font-face {
  font-display: swap;
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/noto-sans-jp/noto-sans-jp-v56-japanese_latin-700.woff2') format('woff2');
}

/* lilita-one-regular - latin */
@font-face {
  font-display: swap;
  font-family: 'Lilita One';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/lilita-one/lilita-one-v17-latin-regular.woff2') format('woff2');
}


/*
 * root variables
 */
:root {
  /*#fff*/
  --color-base: 255, 255, 255;
  /*#FCE8B2*/
  --color-base-2: 252, 232, 178;
  /*#333333*/
  --color-contrast: 51, 51, 51;
  /*#594C46*/
  --color-contrast-2: 89, 76, 70;
  /*#FE7E04*/
  --color-primary: 254, 126, 4;
  /*#FFAF01*/
  --color-secondary: 255, 175, 1;
  /*#FEBA63*/
  --color-primary-light: 254, 186, 99;
  --font-jp: 'Zen Maru Gothic', 'Noto Sans JP', "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  --font-en: 'Lilita One', "Helvetica Neue", Arial, 'Zen Maru Gothic', 'Noto Sans JP', "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  /* size設定*/
  /* 基準サイズ・・・html 62.5%にはしない　=16px */
  --base-size: 1rem;
  /* コンテナ幅 */
  --container-size: 1120px;
  /* コンテナの最小幅 */
  --container-size-narrow: 1040px;
  /* コンテナの最大幅 */
  --container-size-wide: 1400px;
  /* ビューポート/コンテナの制約 */
  --min-viewport: 320;
  --max-viewport: 1400;
  /* フォントウェイト */
  --weight-normal: 400;
  --weight-medium: 500;
  --weight-bold: 700;
  /* 文字間 */
  --letter-base: 40;
  /* XD 文字間隔の数字 */
  --letter-calc: calc(var(--letter-base) / 1000);
  /* フォントサイズの適応設定 */
  /* 最小フォントサイズ(px) */
  --min-size: 12;
  /* 最大フォントサイズ(px) */
  --max-size: 16;
  /* ビューポート幅に基づく計算 100vwはビューポート幅全体を表す */
  /* --clamp-size: clamp(var(--min-size) * 1px, calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport))),
      var(--max-size) * 1px); */
}

/*
  * global styles
  */

* html body {
  background: url(null) fixed;
}

html {
  font-size: 100%;

  /** nav open **/
  &.is-locked {
    height: 100vh;
    overflow: hidden;
  }
}

body {
  width: 100%;
  margin: 0;
  padding: 0;
  color: rgb(var(--color-contrast));
  background-color: rgb(var(--color-base));
  font-size: var(--base-size);
  font-weight: var(--weight-medium);
  font-style: normal;
  font-family: var(--font-jp);
  line-height: calc(30 / 16);
  overflow-wrap: anywhere;
  /*折り返し指定 永井英単語でのレイアウトの突き抜け防止*/
  word-break: normal;
  /* break-all は強制的に折り返すのて使用控える */
  text-autospace: normal;
  /*英数字と日本語の間に余白を入れる*/
  text-size-adjust: 100%;
  line-break: strict;
  /* 禁則処理 子音や句読点、記号が行頭にこないようにする */
  font-feature-settings: "palt";
  letter-spacing: 0.03em;
  overflow-x: hidden;
}

/*
  * 3-2. utility styles
  */

::selection {
  color: rgb(var(--color-contrast-2));
  background: rgba(var(--color-primary), 0.1);
  text-shadow: none;
}

::-moz-selection {
  color: rgb(var(--color-contrast-2));
  background: rgba(var(--color-primary), 0.1);
  text-shadow: none;
}

.sp-only {
  @media screen and (min-width:480px) {
    display: none;
  }
}

.sp-hidden {
  display: none;

  @media screen and (min-width:480px) {
    display: block;
  }
}

.sp {
  display: none;

  @media screen and (min-width:480px) {
    display: block;
  }

  @media screen and (min-width:1025px) {
    display: none;
  }
}

.tab {
  display: none;

  @media screen and (min-width:768px) {
    display: block;
  }

  @media screen and (min-width:1025px) {
    display: none;
  }
}

.pc-hidden {
  @media screen and (min-width:1025px) {
    display: none;
  }
}

.pc-only {
  display: none;

  @media screen and (min-width:1025px) {
    display: block;
  }
}


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

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

.svgicon {
  width: 1em;
  height: 1em;
}

a {
  cursor: pointer;
  text-decoration: none;
  transition: all 0.3s;

  &:link,
  &:visited,
  &:active {
    /* color: currentColor; */
    text-decoration: none;
  }

  &:hover {
    opacity: 0.72;
    text-decoration: none;
  }
}

.has-base-color {
  color: rgb(var(--color-base));
}

.has-base-2-color {
  color: rgb(var(--color-base-2));
}

.has-contrast-color {
  color: rgb(var(--color-contrast));
}

.has-contrast-2-color {
  color: rgb(var(--color-contrast-2));
}

.has-gray-dark-color {
  color: rgb(var(--wp--preset--color--gray-dark));
}

.has-gray-color {
  color: rgb(var(--wp--preset--color--gray));
}

.has-gray-light-color {
  color: rgb(var(--wp--preset--color--gray-light));
}

.has-primary-color {
  color: rgb(var(--color-primary));
}

.has-primary-light-color {
  color: rgb(var(--color-primary-light));
}

.has-secondary-color {
  color: rgb(var(--color-secondary));
}


.has-base-background-color {
  background-color: rgb(var(--color-base));
}

.has-base-2-background-color {
  background-color: rgb(var(--color-base-2));
}

.has-contrast-background-color {
  background-color: rgb(var(--color-contrast));
}

.has-contrast-2-background-color {
  background-color: rgb(var(--color-contrast-2));
}

.has-primary-background-color {
  background-color: rgb(var(--color-primary));
}

.has-primary-light-background-color {
  background-color: rgb(var(--color-primary-light));
}

.has-secondary-background-color {
  background-color: rgb(var(--color-secondary));
}

.aligncenter {
  text-align: center;
}

.alignright {
  text-align: right;
}

.alignleft {
  text-align: left;
}

.section-title {
  --min-size: 32;
  --max-size: 42;
  --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));
  font-size: clamp(var(--min-size) * 1px,
      var(--clamp-size),
      var(--max-size) * 1px);
  letter-spacing: 3px;
  text-align: center;
  margin-inline: auto;
  font-weight: var(--weight-bold);

  &.font-en {
    --min-size: 40;
    --max-size: 50;

  }
}

.desc {
  line-height: 2.2;
  font-weight: var(--weight-medium);
}



.flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  row-gap: 1.25rem;

  &.nowrap {
    flex-wrap: nowrap;
  }

  &.dir-column {
    flex-direction: column;
    flex-wrap: initial;
  }

  --column-gap:1.25rem;

  @media screen and (min-width: 960px) {
    --column-gap: 2.5rem;
  }

  /* flex-itemが2つあるとき */
  &:has(> .flex-item:nth-child(2)) {

    .flex-item {
      @media screen and (min-width: 768px) {
        width: calc((100% - var(--column-gap))/2);
      }

      /* @media screen and (min-width: 480px) {
        width: calc((100% - var(--column-gap))/2);
      } */
    }
  }

  /* flex-itemが3つあるとき */
  &:has(> .flex-item:nth-child(3)) {
    .flex-item {
      @media screen and (min-width: 480px) {
        width: calc((100% - var(--column-gap))/2);
      }

      @media screen and (min-width: 960px) {
        width: calc((100% - var(--column-gap) * 2)/3);
      }

    }
  }

  /* flex-itemが4つあるとき */
  &:has(> .flex-item:nth-child(4)) {
    .flex-item {
      @media screen and (min-width: 480px) {
        width: calc((100% - var(--column-gap))/2);
      }

      @media screen and (min-width: 960px) {
        width: calc((100% - var(--column-gap) * 3)/4);
      }

    }
  }


}


.btn {
  /*280px*/
  min-width: 17.5em;
  max-width: fit-content;

  @media screen and (min-width: 768px) {
    min-width: 22.5em;
  }

  a {
    display: inline-block;
    min-width: 100%;
    padding: 18px calc(50px + 2em) 20px 20px;
    border-radius: 100vmax;
    font-weight: var(--weight-bold);
    color: rgb(var(--color-base));
    background-color: rgb(var(--color-primary));
    border: 1px solid rgb(var(--color-base));
    /* background-position: left center;
    background-repeat: no-repeat;
    background-size: 200% 100%;
    background-image: linear-gradient(90deg, #FF7E03 0%, #FEBA63 40%, #FEBA63 50%, #FF7E03 100%); */
    transition: background-color 0.3s, color 0.3s;
    position: relative;

    &:hover {
      opacity: 1;
      /* color: rgb(var(--color-primary)); */
      background-color: rgb(var(--color-secondary));

      /* background-position: right center; */

      &::after {
        right: 25px;
      }
    }

    &::before {
      content: "";
      display: inline-block;
      width: 30px;
      height: 30px;
      background-color: rgb(var(--color-base));
      border-radius: 50%;
      position: absolute;
      right: 20px;
      top: 50%;
      transform: translateY(-50%);
    }

    &::after {
      content: "";
      display: block;
      width: 12px;
      height: 12px;
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23FFAF01' viewBox='0 0 6 10'%3E%3Cg transform='translate(1 1)'%3E%3Cpath d='M980.589,1223.3a1,1,0,0,1-.707-1.707l3.293-3.293L979.882,1215a1,1,0,0,1,1.414-1.414l4,4a1,1,0,0,1,0,1.414l-4,4A1,1,0,0,1,980.589,1223.3Z' transform='translate(-980.589 -1214.295)'/%3E%3C/g%3E%3C/svg%3E") no-repeat center center / contain;
      position: absolute;
      top: 50%;
      right: 28px;
      transform: translateY(-50%);
      transition: right 0.3s;
    }

  }



  /* .is-style-fill-secondary */
  &.is-style-fill-secondary {
    a {
      background-color: rgb(var(--color-secondary));

      &::after {
        background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23FFAF01' viewBox='0 0 6 10'%3E%3Cg transform='translate(1 1)'%3E%3Cpath d='M980.589,1223.3a1,1,0,0,1-.707-1.707l3.293-3.293L979.882,1215a1,1,0,0,1,1.414-1.414l4,4a1,1,0,0,1,0,1.414l-4,4A1,1,0,0,1,980.589,1223.3Z' transform='translate(-980.589 -1214.295)'/%3E%3C/g%3E%3C/svg%3E") no-repeat center center / contain;
      }

      &:hover {
        background-color: rgb(var(--color-primary));
      }
    }
  }



  /*.is-style-arrow-left*/
  &.is-style-arrow-left {
    a {
      padding-left: 3em;
      padding-right: 1em;

      &::before {
        left: 0.5em;
        right: auto;
      }

      &::after {
        content: "";
        display: block;
        width: 0.75em;
        height: 0.75em;
        background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ff7e03' viewBox='0 0 6 10'%3E%3Cg transform='translate(1 1)'%3E%3Cpath d='M980.589,1223.3a1,1,0,0,1-.707-1.707l3.293-3.293L979.882,1215a1,1,0,0,1,1.414-1.414l4,4a1,1,0,0,1,0,1.414l-4,4A1,1,0,0,1,980.589,1223.3Z' transform='translate(-980.589 -1214.295)'/%3E%3C/g%3E%3C/svg%3E") no-repeat center center / contain;
        position: absolute;
        top: 50%;
        left: 0.75em;
        right: auto;
        transform: translateY(-50%) rotate(180deg);
        transition: left 0.3s;
      }

      &:hover {
        &::after {
          left: 0.6em;
          right: auto;
        }
      }
    }
  }


  /*.is-style-outline-arrow-left*/
  &.is-style-outline-arrow-left {
    a {
      padding-left: 3em;
      padding-right: 1em;
      background: rgb(var(--color-base));
      color: rgb(var(--color-contrast));
      border: 1px solid rgb(var(--color-primary));

      &::before {
        background: rgb(var(--color-primary));

        /* background-repeat: no-repeat;
        background-position: left center;
        background-size: 100% 100%;
        background-image: linear-gradient(90deg, #FF7E03 0%, #FEBA63 100%); */
        left: 0.5em;
      }

      &::after {
        content: "";
        display: block;
        width: 0.75em;
        height: 0.75em;
        background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 6 10'%3E%3Cg transform='translate(1 1)'%3E%3Cpath d='M980.589,1223.3a1,1,0,0,1-.707-1.707l3.293-3.293L979.882,1215a1,1,0,0,1,1.414-1.414l4,4a1,1,0,0,1,0,1.414l-4,4A1,1,0,0,1,980.589,1223.3Z' transform='translate(-980.589 -1214.295)'/%3E%3C/g%3E%3C/svg%3E") no-repeat center center / contain;
        left: 0.75em;
        right: auto;
        transform: translateY(-50%) rotate(180deg);
        transition: left 0.3s;
      }

      &:hover {
        background-color: rgb(var(--color-primary));
        color: rgb(var(--color-base));

        &::before {
          background: rgb(var(--color-base));
        }

        &::after {
          left: 0.6em;
          right: auto;
        }
      }

    }
  }

}

.btns {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;

  &:has(:nth-child(1)) .btn {
    margin-inline: auto;
  }
}


/*
 * layout styles
  * 4-1. wrapper, content, base, inner
 */
.wrapper {
  width: 100%;
  height: auto;
  padding: 0;
  margin: 0 auto;
  overflow: hidden;
}

.content {
  width: 100%;
  height: auto;
  /* padding: 3.5em 0 0; */
  padding: 0;
  margin: 0 auto;
  position: relative;

  /* @media screen and (min-width: 1120px) {
    padding: 6.875em 0 0;
  } */

  /* &:has(.page-container) {
    padding: 0;
  } */
}

/* .top .content {
    background-color: rgb(var(--color-secondary));
} */
/* .is-locked .content {
  z-index: 9;
  &:has(#js-sideNav.is-open) {
    z-index: 11;
  }
} */

.base {
  --min-size: 40;
  --max-size: 80;
  --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));

  width: 100%;
  height: auto;
  padding-block: clamp(var(--min-size) * 1px,
      var(--clamp-size),
      var(--max-size) * 1px);
  padding-inline: 0;
  margin: 0 auto;
  clear: both;
  position: relative;
  z-index: 1;

  &:has(.select-container) {
    padding-bottom: 8rem;

    @media screen and (min-width: 768px) {
      padding-bottom: 10rem;
      /* padding-bottom: clamp(var(--min-size) * 1px,
          var(--clamp-size),
          var(--max-size) * 1px); */
    }
  }
}



.inner {
  --min-size: 16;
  --max-size: 80;
  --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));
  --padding-inline: clamp(var(--min-size) * 1px,
      var(--clamp-size),
      var(--max-size) * 1px);

  width: 100%;
  max-width: calc(1120px + var(--padding-inline) * 2);
  height: auto;
  padding-block: 0;
  padding-inline: var(--padding-inline);
  margin: 0 auto;
  clear: both;
  position: relative;

  &::after {
    content: "";
    clear: both;
    display: block;
  }

  &.narrow {
    max-width: calc(1040px + var(--padding-inline) * 2);
  }

  &.wide {
    max-width: calc(1280px + var(--padding-inline) * 2);
  }

  &.fullwidth {
    width: 100vw;
    max-width: 100%;
    margin: 0 calc(50% - 50vw);
  }
}


.logo-container {
  display: flex;
  align-items: center;
}

.main-logo {
  width: auto;
  height: auto;
  margin: 0 1em 0 0;
  max-width: 120px;
  transition: all 0.3s;

  @media screen and (min-width: 960px) {
    max-width: 140px;
  }


  a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;

    &:hover {
      opacity: 1;

      img {
        filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.6));
      }
    }
  }

  img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.3s;
  }
}

.sub .main-logo,
.is-fixed .main-logo {
  max-width: 80px;

  @media screen and (min-width: 960px) {
    max-width: 100px;
  }
}

.main-footer .main-logo {
  a {

    &:hover {
      opacity: 0.72;

      img {
        filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 0));
      }
    }
  }
}

.company-logo {
  max-width: 60%;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.625em;
  font-size: 0.75em;
  font-weight: var(--weight-bold);
  margin: 0 0 2em;

  @media screen and (min-width: 480px) {
    max-width: 212px;
  }

  .logo {
    display: block;
    flex: 1;
  }

  a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;

    &:hover {
      opacity: 0.72;

      /* img {
        filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.6));
      } */
    }
  }

  img {
    display: block;
    width: 100%;
    height: auto;
    transition: opacity 0.3s;
  }
}



/*
 * layout styles
 * 4-2. main-header,gnav
 */
.main-header {
  width: 100%;
  height: auto;
  margin: 0 auto;
  /* padding: 0 4rem 0 0; */
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2000;

  /* @media screen and (min-width: 1120px) {
    width: 6rem;
    height: 100vh;
    flex-direction: column;
    flex-wrap: nowrap;
    padding: calc(6rem + 1.5rem) 0 1.5rem;
  } */
  &.is-fixed {
    .logo-container {
      background-color: rgb(var(--color-base));
    }

    @media screen and (min-width: 1120px) {}
  }

  .logo-container {
    padding: 0 3em 0 1em;
    background-color: rgba(var(--color-base), 0);
    transition: background-color 0.3s;
    /* position: relative; */
    position: absolute;
    top: 0.5em;
    z-index: 2;


    @media screen and (min-width: 1025px) {
      padding: 0 1em;
    }
  }

  &:has(.header-inner.rounded) {
    padding-top: 12px;
    display: flex;
    align-items: center;

    @media screen and (min-width: 1025px) {
      padding-top: 20px;
    }
  }

  >.main-logo {
    margin: 0 10px;

    @media screen and (min-width: 480px) {
      margin-left: 20px;
    }

    @media screen and (min-width: 1025px) {
      margin: 0 25px;
    }
  }
}

.header-inner {
  width: 100%;
  background-color: rgb(var(--color-base));
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  position: relative;

  @media screen and (min-width: 1120px) {
    padding: 1rem 0;
  }

  &.rounded {
    border-radius: 100vmax;
    width: fit-content;
    max-width: 160px;
    padding: 15px 10px 17px;
    margin: 0 auto 0 0;
    overflow: hidden;

    @media screen and (min-width: 480px) {
      max-width: 180px;
      padding: 15px 20px 17px;
    }

    @media screen and (min-width: 1025px) {
      max-width: calc(100% - (140px + 50px + 25px));
      padding-inline: 30px;
      /* margin: 0 25px 0 auto; */
    }

    @media screen and (min-width: 1120px) {
      width: 100%;
      margin: 0 25px 0 auto;
    }

    .company-logo {
      margin: 0;
      max-width: 160px;
    }

  }
}

.sub .header-inner.rounded,
.is-fixed .header-inner.rounded {
  @media screen and (min-width: 1025px) {
    max-width: calc(100% - (100px + 50px + 25px));
  }
}


.nav-toggle {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  cursor: pointer;
  width: 3.5rem;
  height: 3.5rem;
  border: none;
  outline: none;
  min-height: auto;
  padding: 0;
  margin: 0 0 0 auto;
  background-color: rgb(var(--color-primary));
  /* position: absolute;
  top: 0;
  right: 0; */
  z-index: 10;
  overflow: hidden;

  &.rounded {
    border-radius: 50%;
    margin: 0 10px 0 auto;

    @media screen and (min-width: 480px) {
      margin: 0 20px 0 auto;
    }
  }

  @media screen and (min-width: 1025px) {
    width: 4.5rem;
    height: 4.5rem;
  }

  @media screen and (min-width: 1120px) {
    display: none;
    /* width: 6rem;
    height: 6rem; */
  }
}

.nav-toggle-icon {
  width: 2.2rem;
  height: 1rem;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  justify-content: space-between;

  span {
    display: block;
    width: 100%;
    height: 2px;
    background-color: rgb(var(--color-base));
    transition: transform 0.3s, opacity 0.3s;

    .is-active & {
      &:first-of-type {
        transform: translateY(8px) rotate(20deg);
      }

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

      &:last-of-type {
        transform: translateY(-6px) rotate(-20deg);
      }
    }
  }
}

.nav-toggle-text {
  font-size: 0.75rem;
  line-height: 1;
  display: block;
  height: auto;
  width: 100%;
  color: rgb(var(--color-base));
  /* font-family: var(--font-en); */
  font-weight: var(--weight-bold);
  text-transform: lowercase;
  text-align: center;
  margin-top: 3px;

  @media screen and (min-width: 1025px) {
    font-size: 0.875rem;

  }
}

.gnav {
  width: 100%;
  max-width: 24rem;
  /*24.375rem*/
  height: 100vh;
  padding: 6rem 1rem 2rem;
  position: fixed;
  top: 0;
  right: 0;
  transform: translateX(100%);
  /* z-index: 1000; */
  z-index: 1;
  background-color: rgb(var(--color-base));
  overflow-y: scroll;
  transition: transform 0.3s ease-in-out;

  &.is-active {
    transform: translateX(0);
    pointer-events: auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  @media screen and (min-width: 1120px) {
    max-width: calc(100% - 360px);
    height: auto;
    background-color: rgba(var(--color-base), 0);
    padding: 0 1.5em 0 0;
    margin: 0 0 0 auto;
    position: relative;
    top: auto;
    right: auto;
    transform: translateX(0);
    overflow: hidden;
  }

  @media screen and (min-width: 1200px) {
    padding: 0 3em 0 0;
  }

}

.rounded .gnav {
  @media screen and (min-width: 1120px) {
    width: fit-content;
    max-width: calc(100% - 160px);
    padding: 0 0 0 10px;
  }
  @media screen and (min-width: 1280px) {
    padding: 0 0 0 20px;
  }
}


.nav-inner {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
  height: auto;
  opacity: 0;
  padding: 0;
  position: relative;
  transition: opacity, 1.8s, 0.3s, cubic-bezier(0.165, 0.84, 0.44, 1);
  z-index: 20;

  .is-active & {
    opacity: 1;
  }

  @media screen and (min-width: 1120px) {
    flex-direction: row;
    opacity: 1;
    /* height: 100%; */
  }
}



.overlay {
  position: fixed;
  width: 100vw;
  height: 100%;
  display: block;
  background: rgba(var(--color-contrast), 0.64);
  top: 0;
  left: 0;
  opacity: 0;
  visibility: hidden;

  &.is-active {
    opacity: 1;
    visibility: visible;
    z-index: 900;
  }
}

.nav-list {
  width: 100%;
  display: flex;
  flex-direction: column;
  margin: 0 auto;
  padding: 0;
  list-style: none;
  gap: 1em;

  @media screen and (min-width: 1120px) {
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 1.25rem;
  }

  /* @media screen and (min-width: 1200px) {
    gap: 1.875em;
  } */
}

.rounded .nav-list {
  @media screen and (min-width: 1120px) {
    gap: 0.6em;
  }

  @media screen and (min-width: 1280px) {
    gap: 0.7em;
  }
  @media screen and (min-width: 1440px) {
    /* gap: 1.125rem; */
    gap: 1em;
  }
}

.nav-list-item {
  width: 100%;

  @media screen and (min-width: 1120px) {
    width: auto;
  }

  a {
    display: flex;
    align-items: center;
    width: 100%;
    line-height: 1.6;
    font-weight: var(--weight-bold);
    color: rgb(var(--color-contrast));
    transition: color 0.3s;

    &:hover {
      color: rgb(var(--color-primary));
      opacity: 1;
    }
  }

  .svgicon {
    width: 1.25em;
    height: 1.25em;
    margin-right: 1em;
    color: rgb(var(--color-primary));

    @media screen and (min-width: 1120px) {
      margin-right: 0.3em;
    }
  }
}

/* .has-nav-child {
  .nav-parent {
    &.js-dropdown-trigger {
      @media screen and (min-width: 1120px) {
        display: none;
      }
    }

    &:not(.js-dropdown-trigger) {
      display: none;

      @media screen and (min-width: 1120px) {
        display: block;
      }
    }
  }
} */

.nav-parent {
  --min-size: 11;
  --max-size: 16;
  --min-viewport: 1120;
  --max-viewport: 1440;
  --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) *
      /* 100vwはビューポート幅全体を表す */
      (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));

  font-size: 1em;

  color: rgb(var(--color-primary));
  padding: 0.5em;
  position: relative;

  @media screen and (min-width: 1120px) {
    font-size: clamp(var(--min-size) * 1px,
        var(--clamp-size),
        var(--max-size) * 1px);
    padding: 0;
    text-align: center;
  }

  /* &.js-dropdown-trigger {
    appearance: none;
    border: none;
    background: none;
  } */

  &:hover {
    color: rgb(var(--color-secondary));

    /* &::after {
      left: 0.4em;
    } */
  }

  /* &::before {
    content: "";
    display: block;
    width: 1em;
    height: 1em;
    border-radius: 50%;
    background-color: rgb(var(--color-primary));
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
  }

  &::after {
    content: "";
    display: block;
    width: 0.55em;
    height: 0.55em;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 24.658 22.833'%3E%3Cpath d='M180.56-1360.984a1.5,1.5,0,0,1,0-2.121l7.356-7.356H170.5a1.5,1.5,0,0,1-1.5-1.5,1.5,1.5,0,0,1,1.5-1.5h17.417l-7.357-7.357a1.5,1.5,0,0,1,0-2.121,1.5,1.5,0,0,1,2.121,0l10.977,10.977-1.043,1.043-.036.036-9.9,9.9a1.5,1.5,0,0,1-1.061.439A1.493,1.493,0,0,1,180.56-1360.984Z' transform='translate(-169 1383.379)'/%3E%3C/svg%3E") no-repeat center center / contain;
    position: absolute;
    top: 50%;
    left: 0.25em;
    transform: translateY(-50%);
    transition: left 0.3s;
  } */
}

/* .nav-child {
  gap: 0.5rem;
  padding-left: 0;

  &.is-open {
    margin-block: 0.75rem;

  }

  @media screen and (min-width: 1120px) {
    gap: 1rem;
    margin-top: 0.75rem;
  }
} */


/* gnav dropdown animation */
/* .js-dropdown-container {
  overflow: hidden;
  height: 0;
  opacity: 0;
  transition:
    height 0.35s ease,
    opacity 0.25s ease;

  @media screen and (min-width: 1120px) {
    display: flex !important;
    opacity: 1;
    height: auto;
  }
}

.js-dropdown-container.is-open {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .js-dropdown-container {
    transition: none;
  }
} */

/* .nav-child-item {
  a {
    font-size: 1rem;
    font-family: var(--font-serif);
    font-weight: var(--weight-bold);
    padding: 0 0 0 1.75rem;
    position: relative;

    &:hover {
      color: rgb(var(--color-secondary));

      &::after {
        left: 0.25em;
      }
    }

    &::after {
      content: "";
      display: block;
      width: 0.75em;
      height: 0.75em;
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23D1944C' viewBox='0 0 40.922 40.922'%3E%3Cpath d='M26.436,26.436H-.064A2.436,2.436,0,0,1-2.5,24,2.436,2.436,0,0,1-.064,21.564H21.564V-.064A2.436,2.436,0,0,1,24-2.5,2.436,2.436,0,0,1,26.436-.064Z' transform='translate(3.536 20.461) rotate(-45)'/%3E%3C/svg%3E") no-repeat center center / contain;
      position: absolute;
      top: 50%;
      left: 0;
      transform: translateY(-50%);
      transition: left 0.3s;
    }
  }
} */
.waves {

  &::before,
  &::after {
    content: "";
    display: block;
    width: 100vw;
    height: 30px;
    background: url(../img/wave-secondary.svg) repeat-x left 10% bottom / auto 100%;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;

    @media screen and (min-width: 768px) {
      height: 50px;
    }

  }

  &.has-secondary-background-color {

    &::before,
    &::after {
      background-image: url(../img/wave-secondary.svg);
    }
  }

  &.wave-top {
    margin-top: 30px;

    @media screen and (min-width: 768px) {
      margin-top: 50px;
    }

    &::before {
      top: -20px;
    }

    &::after {
      display: none;
    }
  }

  &.wave-btm {
    margin-bottom: 30px;

    @media screen and (min-width: 768px) {
      margin-bottom: 50px;
    }

    &::before {
      display: none;
    }

    &::after {
      bottom: -20px;
      transform: translateX(-50%) rotate(180deg);

    }

  }

  &.wave-both {
    margin-top: 30px;
    margin-bottom: 30px;

    @media screen and (min-width: 768px) {
      margin-top: 50px;
      margin-bottom: 50px;
    }

    &::before {
      top: -20px;
    }

    &::after {
      bottom: -20px;
      transform: translateX(-50%) rotate(180deg);
    }


  }
}

/* Animation */
/* .parallax>use {
  animation: move-forever 25s cubic-bezier(.55, .5, .45, .5) infinite;
}

.parallax>use:nth-child(1) {
  animation-delay: -2s;
  animation-duration: 7s;
}

.parallax>use:nth-child(2) {
  animation-delay: -3s;
  animation-duration: 10s;
}

.parallax>use:nth-child(3) {
  animation-delay: -4s;
  animation-duration: 13s;
}

.parallax>use:nth-child(4) {
  animation-delay: -5s;
  animation-duration: 18s;
}

@keyframes move-forever {
  0% {
    transform: translate3d(-90px, 0, 0);
  }

  100% {
    transform: translate3d(85px, 0, 0);
  }
} */


/*
 * 4-3. main-footer
 */
.main-footer {
  background: rgb(var(--color-contrast-2));
  padding: 1.5rem 0 1rem;
  margin: 0 auto 0;
  position: relative;
  z-index: 20;

  @media screen and (min-width: 768px) {
    padding: 2.5rem 0 1rem;
    /* margin-top: 100px; */
  }

  .waves {
    position: absolute;
    top: -60px;
    left: 0;
  }

  &::before {
    content: "";
    display: block;
    width: 200%;
    height: 30px;
    background: url(../img/wave-brawn.svg) repeat-x left 10% bottom / auto 100%;
    position: absolute;
    top: -28px;
    left: 0;

    @media screen and (min-width: 768px) {
      height: 50px;
      top: -48px;
    }
  }

  /*

  @media screen and (min-width: 1120px) {
    padding-left: 6.5rem;
  } */

  .inner {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;

    /* @media screen and (min-width: 1025px) {
      gap: 2.5rem;
    } */

  }

  .logo-container {
    flex-direction: column;
    margin: 0 auto;
    max-width: 220px;

    @media screen and (min-width: 768px) {
      margin: 0;
      grid-column: 1/2;
      grid-row: 1/3;

    }
  }

  .main-logo {
    width: 60%;
    max-width: 220px;
    margin: 0 auto 1.25em;

    @media screen and (min-width: 480px) {
      width: 80%;
    }

    @media screen and (min-width: 960px) {
      width: auto;
    }
  }

  .company-logo {
    margin: 0 auto;
    /* max-width: 220px; */
  }
}

.footer-nav {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  margin: 0 auto;

  .house-curry {
    margin-inline: auto;
    margin-bottom: 0;
    width: 148px;

    @media screen and (min-width: 480px) {
      margin-top: 0;
      margin-left: 1rem;
    }

    @media screen and (min-width: 1200px) {
      margin-left: 4rem;
    }
  }

  .nav-list {
    width: auto;
    margin: 0 auto;
    flex-direction: row;
    justify-content: center;
    flex-wrap: wrap;
    gap: 1em 1.5em;

    @media screen and (min-width: 480px) {
      max-width: calc(100% - (148px + 2rem));
    }

    @media screen and (min-width: 960px) {
      column-gap: 2em;
    }

    @media screen and (min-width: 1200px) {
      column-gap: 3em;
      max-width: calc(100% - (148px + 5rem));
    }
  }

  .nav-list-item {
    width: auto;

    a {
      color: rgb(var(--color-base));
      padding: 0;
      font-size: 0.875rem;

      @media screen and (min-width: 960px) {
        font-size: 1rem;
      }

      &:hover {
        color: rgb(var(--color-primary-light));
      }
    }
  }

  /* .nav-child {
    display: none;

    @media screen and (min-width: 1025px) {
      display: flex;
      margin-top: 0.75rem;
      row-gap: 0.75rem;
    }

  } */


}

.footer-info {
  width: 100%;
  border-radius: 30px;
  background-color: rgb(var(--color-base));
  padding: 1.75em 1.5em;
  margin: 1.5rem auto;
  display: flex;
  flex-wrap: wrap;

  @media screen and (min-width: 768px) {
    display: grid;
    align-items: center;
    grid-template-columns: 220px auto;
    column-gap: 2.5rem;
  }

  @media screen and (min-width: 960px) {
    margin: 2.5rem auto;
    padding: 3.75em 4em;
    column-gap: 3.75rem;
    border-radius: 60px;
    align-items: start;
  }

  @media screen and (min-width: 1120px) {
    padding: 3.75em 5.75em;
  }

}

.footer-info-add {
  font-size: 0.875rem;
  font-style: normal;
  color: rgb(var(--color-contrast));
  margin: 2.5rem 0 1.5rem;

  @media screen and (min-width: 768px) {
    grid-column: 2/3;
    grid-row: 1/2;
    margin: 0 0 1.5rem;
    /* max-width: calc(100% - 220px - 1.5rem);
    margin: 0 0 2.5rem 1.5rem; */
  }

  /* @media screen and (min-width: 960px) {
    max-width: ;
  } */

  @media screen and (min-width: 1025px) {
    font-size: 1rem;
  }


  a {
    color: rgb(var(--color-contrast));

    &:hover {
      opacity: 1;
      color: rgb(var(--color-primary));

    }
  }

  span {
    display: block;
    font-weight: var(--weight-bold);
  }



}

.footer-notice {
  font-size: 0.875rem;
  margin: 0 auto;
  width: 100%;

  @media screen and (min-width: 768px) {
    grid-column: 2/3;
    grid-row: 2/3;

    /* max-width: calc(100% - 220px - 1.5rem);
    margin: 0 0 0 1.5rem; */
  }

  @media screen and (min-width: 1025px) {
    font-size: 1rem;
  }

  a {
    color: rgb(var(--color-contrast));

    &:hover {
      opacity: 1;
      color: rgb(var(--color-primary));

    }
  }
}

.footer-info-copyright {
  width: 100%;
  font-size: 0.75rem;
  color: rgb(var(--color-base));
  display: flex;
  align-items: center;
  text-align: center;
  position: relative;
  margin: 0 auto;

  @media screen and (min-width: 768px) {
    font-size: 0.875rem;
  }

}

.copy {
  display: block;
  margin: 0 auto;
}


.fix-link {
  position: fixed;
  bottom: 0;
  z-index: 900;
  width: 100%;
  display: flex;
  justify-content: center;
  padding: 0 1rem 1rem;
  transform: translateY(120%);
  transition: all 0.5s;

  @media screen and (min-width: 768px) {
    width: fit-content;
    flex-direction: column;
    padding: 0;
    bottom: auto;
    top: 120px;
    right: 1rem;
    transform: translate(120%, 0);
  }

  @media screen and (min-width: 960px) {
    top: 150px;
    right: 20px;
  }

  &.is-fixed {
    transform: translateY(0);

    @media screen and (min-width: 768px) {
      transform: translate(0, 0);
    }
  }

  a {
    color: rgb(var(--color-base));

    &:hover {
      opacity: 1;
    }
  }
}

.fix-link-btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 0.5em 2em 0.5em 3.5em;
  text-align: center;
  font-weight: var(--weight-bold);
  background-color: rgb(var(--color-primary));
  border: 2px solid rgb(var(--color-primary));
  color: rgb(var(--color-base));
  border-radius: 0.675rem;
  font-size: 1rem;
  max-width: 280px;
  position: relative;

  @media screen and (min-width: 768px) {
    /* padding: 0.75rem 0.5rem; */
    width: 160px;
    aspect-ratio: 1;
    padding: 0;
    border-radius: 50%;
    justify-content: center;
    align-items: center;

    br {
      display: block;
    }
  }

  @media screen and (min-width: 960px) {
    width: 200px;
    font-size: 1.25rem;
  }

  &:hover {
    background-color: rgb(var(--color-base-2));
    color: rgb(var(--color-primary));
  }

  &::before {
    content: "";
    display: block;
    width: 4rem;
    height: 4rem;
    margin: 0 auto;
    background: url(../img/fix-link-img.svg) no-repeat center center / contain;
    position: absolute;
    top: 50%;
    left: 0.5em;
    transform: translateY(-50%);

    @media screen and (min-width: 768px) {
      top: -2rem;
      left: 50%;
      transform: translate(-50%, 0);
    }

    /* @media screen and (min-width: 768px) {
      top: -1.5em;
      left: 50%;
      transform: translateX(-50%);
    } */
  }

  &::after {
    content: "";
    display: grid;
    place-content: center;
    width: 1rem;
    height: 1rem;
    margin: 0 auto;
    background: #fff url(../img/icon/icon-cheveron-right.svg) no-repeat left 6px center / 7px auto;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    right: 1em;
    transform: translateY(-50%);

    @media screen and (min-width: 768px) {
      background-position: left 6px center;
      background-size: 6px auto;

      top: auto;
      bottom: 1rem;
      right: 50%;
      transform: translate(50%, 0);

    }

    @media screen and (min-width: 960px) {
      width: 1.25rem;
      height: 1.25rem;
      background-position: left 7px center;
      background-size: 6px auto;

    }

  }


}



/*
 * 4-4. page-container, page-header, page-content,breadcrumb,local-nav
 */
.page-container {
  margin: 0 auto;


}

.page-content {
  >.base {
    padding-top: 2.5rem;
    padding-bottom: 8rem;

    @media screen and (min-width:960px) {
      padding-top: 4.75rem;
      padding-bottom: 10rem;
    }
  }
}

.page-header {
  --min-size: 16;
  --max-size: 80;
  --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));
  --padding-inline: clamp(var(--min-size) * 1px, var(--clamp-size), var(--max-size) * 1px);

  width: 100%;
  height: auto;
  max-width: calc(1280px + var(--padding-inline) * 2);
  margin: 0 auto;
  padding: 3.5rem var(--padding-inline) 1.5rem;
  position: relative;

  @media screen and (min-width: 768px) {
    padding: 2.5rem var(--padding-inline) 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  /* @media screen and (min-width: 768px) {
    width: calc(100% - 4rem);
  }

  @media screen and (min-width: 1025px) {
    padding: 2.5rem 4rem 3.5rem;
    width: calc(100% - 5rem);
    max-width: calc(1120px + 4rem * 2);
  } */

  &::after {
    content: "";
    display: block;
    width: 100vw;
    height: 30px;
    background: url(../img/wave-secondary.svg) repeat-x left 10% bottom / auto 100%;
    position: absolute;
    bottom: -2px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;

    @media screen and (min-width: 768px) {
      height: 50px;
    }

  }

  &:not(:has(.page-header-img)) {
    padding-bottom: 3rem;

    .page-title {
      width: 100%;
    }
  }

}

.page-title {
  --min-size: 28;
  --max-size: 42;
  --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));

  letter-spacing: 0.05em;
  margin: 0 0 1.25rem;
  /* font-size: 2.5rem; */
  font-size: clamp(var(--min-size) * 1px,
      var(--clamp-size),
      var(--max-size) * 1px);
  position: relative;
  z-index: 3;
  display: flex;
  flex-wrap: wrap;

  /* flex-direction: column; */
  @media screen and (min-width: 768px) {
    width: 50%;
    padding-right: 20px;
    margin: 0 0 50px;
  }

  @media screen and (min-width: 960px) {
    margin: 0 0 90px;
  }
}

.page-header-img {
  width: 100%;
  max-width: 660px;
  height: auto;
  margin: 0 auto;
  position: relative;
  z-index: 2;

  @media screen and (min-width: 768px) {
    width: 50%;
    margin: 0;
  }

  div {
    width: 100%;
    height: auto;
    margin: 0 auto;
    aspect-ratio: 660 / 340;
    max-height: 340px;
    border: 8px solid rgb(var(--color-base));
    border-radius: 25px;
    overflow: hidden;

    @media screen and (min-width: 960px) {
      border-width: 12px;
      border-radius: 50px;
    }
  }

  img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .point {
    display: block;
    position: absolute;
    z-index: 2;

    &.point-cutlery {
      width: 15%;
      aspect-ratio: 72/90;
      max-width: 72px;
      max-height: 90px;
      background: url(../img/point-cutlery.png) no-repeat center center / contain;
    }

    &.point-curry {
      width: 25%;
      aspect-ratio: 130/90;
      max-width: 130px;
      max-height: 90px;
      background: url(../img/point-curry.png) no-repeat center center / contain;
    }
  }
}

.page,
.archive,
.photogallery,
.oyako {
  .page-header-img {
    .point-cutlery {
      top: 8%;
      left: -6%;
      transform: rotate(-20deg);
    }

    .point-curry {
      bottom: -6%;
      right: -6%;
      transform: rotate(5deg);
    }
  }
}

/* breadcrumb */
.breadcrumb {
  width: 100%;
  margin: 0;
  padding: 10px 0 0;
  background-color: rgb(var(--color-secondary));
}

.breadcrumb-list {
  width: 100%;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  list-style: none;
}

.breadcrumb-item {
  --min-size: 12;
  --max-size: 14;
  --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));
  font-size: clamp(var(--min-size) * 1px,
      var(--clamp-size),
      var(--max-size) * 1px);
  color: rgb(var(--color-base));
  display: flex;
  align-items: center;
  letter-spacing: 0.05em;
  position: relative;

  +.breadcrumb-item {
    &::before {
      content: "";
      display: block;
      width: 0.9em;
      height: 0.9em;
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 6 10'%3E%3Cg transform='translate(1 1)'%3E%3Cpath d='M980.589,1223.3a1,1,0,0,1-.707-1.707l3.293-3.293L979.882,1215a1,1,0,0,1,1.414-1.414l4,4a1,1,0,0,1,0,1.414l-4,4A1,1,0,0,1,980.589,1223.3Z' transform='translate(-980.589 -1214.295)'/%3E%3C/g%3E%3C/svg%3E") no-repeat center center / contain;
      margin: 0 0.5em;
    }
  }

  .svgicon {
    width: 0.9em;
    height: 0.9em;
    margin: 0 0.5em 0 0;
  }

  a {
    color: rgb(var(--color-base));
    display: flex;
    align-items: center;
    position: relative;


    &:hover {
      color: rgb(var(--color-contrast-2));
    }
  }
}

.page-content {
  width: 100%;
  height: auto;
  margin: 0 auto;
  padding: 3.5em 0 0;

  @media screen and (min-width: 1120px) {
    padding: 6.875em 0 0;
  }
}

/* select-container */
.select-container {
  width: 100%;
  max-width: 820px;
  margin: 0 auto 0;
  display: flex;
  flex-wrap: wrap;
  position: relative;
  z-index: 5;

  .select-ttl {
    width: fit-content;
    font-size: 33px;
    font-family: var(--font-en);
    text-align: center;
    margin: 0 auto -0.5em;
    font-weight: var(--weight-bold);
    /* -webkit-text-stroke: 10px rgb(var(--color-base));
    text-stroke: 10px rgb(var(--color-base));
    paint-order: stroke fill; */
    letter-spacing: 0.05em;
    line-height: 1;
    position: relative;

    &::before {
      content: attr(data-text);
      color: rgb(var(--color-base));
      position: absolute;
      inset: 0;
      -webkit-text-stroke: 10px rgb(var(--color-base));
      text-stroke: 10px rgb(var(--color-base));
      paint-order: stroke;
      z-index: -1;
    }
  }
}

.selector {
  width: 100%;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  padding: 2.5em 2em 2em;
  gap: 1rem;
  /*
  margin-top: 1.5rem; */
  background-color: rgb(var(--color-base));
  border-radius: 50px 50px 0 0;

  @media screen and (min-width: 768px) {
    border-radius: 60px 60px 0 0;
  }


  @media screen and (min-width: 960px) {
    border-radius: 80px;
    padding: 46px 60px;
  }

  @media screen and (min-width: 1120px) {
    border-radius: 120px;
  }
}

.select-box {
  width: 100%;
  position: relative;
  max-width: 340px;

  @media screen and (min-width: 768px) {
    width: calc(50% - 10px);
  }
}

.select-box:nth-child(2) {
  .select-trigger {
    border-color: rgb(var(--color-secondary));

    &:hover {
      background-color: rgba(var(--color-secondary), 0.3);
    }

    &::before {
      background-color: rgb(var(--color-secondary));
    }
  }

  .select-list-item {
    border-color: rgb(var(--color-secondary));
  }
}

.select-trigger {
  width: 100%;
  margin: 0;
  color: rgb(var(--color-contrast));
  background-color: rgb(var(--color-base));
  padding: 0.75em 3em 0.75em 2em;
  border-radius: 100vmax;
  font-weight: var(--weight-bold);
  border: 1px solid rgb(var(--color-primary));
  text-align: left;
  cursor: pointer;
  position: relative;
  transition: background-color 0.3s;

  @media screen and (min-width: 960px) {
    padding: 23px 3em 26px 30px;
    font-size: 1.125rem;
  }

  &:hover {
    background-color: rgba(var(--color-primary), 0.3);
  }

  &::before {
    content: "";
    display: inline-block;
    width: 2em;
    height: 2em;
    background-color: rgb(var(--color-primary));
    border-radius: 50%;
    position: absolute;
    right: 0.5em;
    top: 50%;
    transform: translateY(-50%);

    @media screen and (min-width: 960px) {
      width: 2.5rem;
      height: 2.5rem;
    }
  }

  &::after {
    content: "";
    display: block;
    width: 1em;
    height: 0.6em;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 14 8'%3E%3Cpath d='M980.589,1227.3a1,1,0,0,1-.707-1.707l5.293-5.293L979.882,1215a1,1,0,0,1,1.414-1.414l6,6a1,1,0,0,1,0,1.414l-6,6A1,1,0,0,1,980.589,1227.3Z' transform='translate(1227.295 -979.589) rotate(90)'/%3E%3C/svg%3E") no-repeat center center / 100%;
    position: absolute;
    top: calc(0.75em + 0.5em);
    right: 1em;
    /* transform: translateY(-50%); */
    transition: transform 0.3s;

    @media screen and (min-width: 960px) {
      top: calc(0.75em + 1.1em);
      right: 1.1em;
    }
  }

  &.is-active {
    &::after {
      top: calc(0.75em + 0.3em);
      transform: rotate(180deg);

      @media screen and (min-width: 960px) {
        top: calc(0.75em + 0.9em);
      }
    }
  }
}

.select-list {
  width: 100%;
  height: 0;
  opacity: 0;
  visibility: hidden;
  list-style: none;
  padding: 1.5em 2em 2em;
  margin: 0;
  border-radius: 25px;
  background-color: rgb(var(--color-base));
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: height 0.3s ease, opacity 0.3s ease;

  &.is-active {
    /* display: block; */
    height: auto;
    max-height: 300px;
    overflow-y: scroll;
    opacity: 1;
    visibility: visible;
    z-index: 2;
  }
}

.select-list-item {
  width: 100%;
  list-style: none;
  padding: 0;
  border-bottom: 1px solid rgb(var(--color-primary));

  a {
    display: block;
    width: 100%;
    height: 100%;
    color: rgb(var(--color-contrast));
    padding: .5em 0;

    &:hover {

      color: rgb(var(--color-primary));
    }
  }
}


/* side-nav */
#js-sideNavfixArea {
  @media screen and (min-width: 960px) {
    display: flex;
    align-items: flex-start;
    flex-direction: row-reverse;
    justify-content: space-between;
    /* flex-wrap: wrap; */
    position: relative;
  }
}

#js-sideNav {
  width: calc(100% - 4rem);
  max-width: calc(390px + 4rem);
  /* padding-left: 4rem; */
  height: 100%;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 1000;
  transform: translateX(100%);
  transition: transform 0.2s linear;

  &.is-open {
    transform: translateX(0);
    /* z-index: 11; */
  }

  /*gnavが開いてる時はoverlayの下*/
  &.is-under-overlay {
    z-index: 10;
  }

  @media screen and (min-width: 960px) {
    width: 284px;
    height: auto;
    /* position: absolute;
    top: auto;
    right: 2.5rem; */
    padding: 0;
    transform: translateX(0);
    z-index: 10;

    /* &.is-fixed {
      position: fixed;
      top: 5rem;
    } */


  }
}

#js-sideNavfixAreaContent {
  /* border: 1px solid blue; */

  /* @media screen and (min-width: 960px) {
    padding-right: calc(284px + var(--padding-inline));
  } */
}

/* sideNavがないとき */
.wrapper:not(:has(#js-sideNav)) {

  /* #js-sideNavfixArea {} */
  /* #js-sideNavfixAreaContent {
    @media screen and (min-width: 960px) {
      padding-right: var(--padding-inline);
    }
  } */
}

.post-container {
  position: relative;

  &::after {
    content: "";
    display: block;
    width: 100vw;
    height: calc(100% + 18rem);
    border-radius: 30px 30px 0 0;
    background-color: rgb(var(--color-base));
    position: absolute;
    top: -6rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: -1;

    @media screen and (min-width: 768px) {
      border-radius: 40px 40px 0 0;
      top: -4rem;
    }

    @media screen and (min-width: 960px) {
      border-radius: 60px 60px 0 0;
      top: -6rem;
    }

    @media screen and (min-width: 1120px) {
      border-radius: 120px 120px 0 0;
    }
  }

  .term-ttl {
    --min-size: 28;
    --max-size: 36;
    --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));
    --font-size: clamp(var(--min-size) * 1px, var(--clamp-size), var(--max-size) * 1px);

    width: fit-content;
    font-size: var(--font-size);
    margin: 0 auto 1.25rem;
    padding: 0;
    display: flex;
    align-items: center;
    position: relative;

    &::before,
    &::after {
      content: "";
      display: block;
      width: 0.5em;
      height: 0.5em;
      border-radius: 50%;
      background-color: rgb(var(--color-primary));
    }

    &::before {
      margin-right: 0.5em;
    }

    &::after {
      margin-left: 0.5em;
    }
  }
}

/* .side-nav {} */

.side-toggle {
  width: 4rem;
  height: 4rem;
  font-size: 0.75rem;

  line-height: 1.5;
  letter-spacing: 0.5px;
  background-color: rgb(var(--color-base-2));
  padding: 0.5rem 0.25rem 0.5rem 0.75rem;
  border: 2px solid rgb(var(--color-secondary));
  border-right: none;
  border-radius: 0.5rem 0 0 0.5rem;
  position: absolute;
  top: 5rem;
  left: -4rem;
  z-index: 9999;
  transition: transform 0.2s linear;

  @media screen and (min-width: 960px) {
    display: none;
  }

  &::before {
    content: "";
    border-top: 5px solid transparent;
    border-right: 5px solid rgb(var(--color-secondary));
    border-bottom: 5px solid transparent;
    position: absolute;
    left: 0.25rem;
    top: 50%;
    transform: translateY(-50%);
  }
}

.is-open .side-toggle::before {
  transform: translateY(-50%) rotate(180deg);
}

.side-toggle .off,
.is-open .side-toggle .on {
  display: block;
  height: auto;
  opacity: 1;
  visibility: visible;
}

.side-toggle .on,
.is-open .side-toggle .off {
  display: none;
  height: 0;
  opacity: 0;
  visibility: hidden;
}

.side-inner {
  padding: 5rem 1em;
  background-color: rgb(var(--color-base-2));
  /* border: 1px solid red; */
  width: 100%;
  height: 100%;
  overflow-y: scroll;

  @media screen and (min-width: 960px) {
    padding: 1.5rem;
    border-radius: 1rem;
    height: auto;
    overflow: hidden;

    &:not(:has(.btns)) {
      padding-bottom: calc(1.5rem + 0.75rem);
    }
  }

  .btns {
    gap: 1rem;
    margin: 1.5rem 0 0.75rem;
    flex-direction: column;
    width: 100%;

    .btn a {
      width: 100%;
      font-size: 1.125rem;
      text-align: left;
      padding-block: 0.5em;
      padding-left: 1em;
    }

  }

  .nav-list {
    gap: 0.5rem;
  }

  .nav-list-item a {
    font-size: 1.125rem;
    font-weight: var(--weight-semibold);
    padding: 0.5rem 0 1rem 1.75em;
    border-bottom: 1px solid rgba(var(--color-secondary), 0.3);
    position: relative;

    &:hover {
      color: rgb(var(--color-secondary));
      opacity: 1;

      &::after {
        left: 0.1em;
      }
    }

    &::before {
      content: "";
      display: block;
      width: 1.25em;
      height: 1.25em;
      border-radius: 50%;
      background-color: rgb(var(--color-primary));
      position: absolute;
      top: 50%;
      left: 0;
      transform: translateY(-50%);
    }

    &::after {
      content: "";
      display: block;
      width: 0.75em;
      height: 0.75em;
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 24.658 22.833'%3E%3Cpath d='M180.56-1360.984a1.5,1.5,0,0,1,0-2.121l7.356-7.356H170.5a1.5,1.5,0,0,1-1.5-1.5,1.5,1.5,0,0,1,1.5-1.5h17.417l-7.357-7.357a1.5,1.5,0,0,1,0-2.121,1.5,1.5,0,0,1,2.121,0l10.977,10.977-1.043,1.043-.036.036-9.9,9.9a1.5,1.5,0,0,1-1.061.439A1.493,1.493,0,0,1,180.56-1360.984Z' transform='translate(-169 1383.379)'/%3E%3C/svg%3E") no-repeat center center / contain;
      position: absolute;
      top: 50%;
      left: 0.25em;
      transform: translateY(-50%) rotate(180deg);
      transition: left 0.3s;
    }
  }
}

/*
 * 5. component styles
 */

/*
  * swiper,ticker
  */
.slider-container {
  position: relative;
}

.swiper-button-prev,
.swiper-button-next {
  position: absolute;
  top: 50%;
  width: 2.5rem;
  height: 2.5rem;
  margin-top: calc(0px - (var(--swiper-navigation-size) / 2));
  z-index: 10;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.swiper-button-next::after,
.swiper-button-prev::after {
  content: "";
  display: block;
  width: 0.75em;
  height: 0.75em;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23FFAF01' viewBox='0 0 6 10'%3E%3Cg transform='translate(1 1)'%3E%3Cpath d='M980.589,1223.3a1,1,0,0,1-.707-1.707l3.293-3.293L979.882,1215a1,1,0,0,1,1.414-1.414l4,4a1,1,0,0,1,0,1.414l-4,4A1,1,0,0,1,980.589,1223.3Z' transform='translate(-980.589 -1214.295)'/%3E%3C/g%3E%3C/svg%3E") no-repeat center center / contain;
}

.swiper-button-prev::after {
  transform: rotate(180deg);
}



/* ──────────────────────────────
       TICKER 共通: swiper-wrapper の挙動
    ────────────────────────────── */
.swiper.ticker .swiper-wrapper {
  transition-timing-function: linear !important;
  align-items: center;
}

/* ──────────────────────────────
       TICKER カード型 (.ticker-card-wrap 内)
    ────────────────────────────── */
.ticker-card-wrap {
  width: 100vw;
  margin: 0 calc(50% - 50vw);
  overflow: hidden;
  position: relative;
}

.ticker-card-wrap .swiper.ticker {
  padding: 3rem 0;

  @media screen and (min-width: 960px) {
    padding: 4rem 0;
  }
}

.ticker-card-wrap .swiper-slide {
  padding: 17px;
  max-width: 280px;
  position: relative;

  @media screen and (min-width: 960px) {
    max-width: 360px;
  }
}

.ticker-card-wrap .swiper-slide:nth-of-type(even) {
  transform: translateY(-40px);
}

.slide-content.card {
  width: 100%;
  aspect-ratio: 360/250;
  border-radius: 30px;
  border: 6px solid rgb(var(--color-base));
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
  overflow: hidden;

  @media screen and (min-width: 768px) {
    border-width: 8px;
  }

  @media screen and (min-width: 960px) {
    border-width: 12px;
  }
}


.slide-content img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mainvisual .ticker-card-wrap .swiper-slide {
  padding: 20px 10px;
  max-width: 300px;

  @media screen and (min-width: 960px) {
    max-width: 480px;
  }

  &::before,
  &::after {
    content: "";
    display: block;
    position: absolute;
    z-index: 2;
  }
}

.mainvisual .slide-content.card {
  aspect-ratio: 480/370;
  box-shadow: none;
}

.mainvisual .ticker-card-wrap .slide1 {
  &::before {
    width: 23%;
    height: 24%;
    max-width: 100px;
    max-height: 82px;
    background: url(../img/point-pumpkin-futi.png) no-repeat center center / 100% auto;
    top: -2%;
    left: 8%;
    transform: rotate(348deg);


  }

  &::after {
    width: 22%;
    height: 22%;
    max-width: 96px;
    max-height: 74px;
    background: url(../img/point-tomato-futi.png) no-repeat center center / 100% auto;
    bottom: -2%;
    right: 5%;
    transform: rotate(-15deg);
  }
}

.mainvisual .ticker-card-wrap .slide2 {
  &::before {
    width: 18%;
    height: 30%;
    max-width: 76px;
    max-height: 106px;
    background: url(../img/point-cutlery-futi.png) no-repeat center center / 100% auto;
    top: -2%;
    left: 5%;

  }

  &::after {
    width: 18%;
    height: 24%;
    max-width: 96px;
    max-height: 100px;
    background: url(../img/point-onion-futi.png) no-repeat center center / 100% auto;
    bottom: -2%;
    right: 5%;
    /* transform: rotate(-15deg); */
  }
}

.mainvisual .ticker-card-wrap .slide3 {
  &::before {
    width: 18%;
    height: 24%;
    max-width: 86px;
    max-height: 106px;
    background: url(../img/point-carrot-futi.png) no-repeat center center / 100% auto;
    top: -4%;
    right: 8%;
    transform: rotate(-70deg);
  }

  &::after {
    width: 25%;
    height: 24%;
    max-width: 130px;
    max-height: 132px;
    background: url(../img/point-potato-futi.png) no-repeat center center / 100% auto;
    bottom: -8%;
    left: 9%;
  }
}

.mainvisual .ticker-card-wrap .slide4 {
  &::before {
    width: 18%;
    height: 24%;
    max-width: 96px;
    max-height: 106px;
    background: url(../img/point-onion-futi.png) no-repeat center center / 100% auto;
    top: -5%;
    left: 5%;
    transform: rotate(-30deg);

  }

  &::after {
    width: 24%;
    height: 24%;
    max-width: 120px;
    max-height: 100px;
    background: url(../img/point-sweetpotato-futi.png) no-repeat center center / 100% auto;
    bottom: -5%;
    right: 5%;
    /* transform: rotate(-15deg); */
  }
}

/*
 * has-point-box
 */

.has-point-box {
  --min-size: 20;
  --max-size: 77;
  --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));
  --padding-inline: clamp(var(--min-size) * 1px, var(--clamp-size), var(--max-size) * 1px);
  width: 100%;
  max-width: calc(960px + var(--padding-inline) * 2);
  height: auto;
  padding-top: 4.5rem;
  padding-bottom: 2.5rem;
  padding-inline: var(--padding-inline);


  border-radius: 40px;
  max-width: 960px;
  margin: 0 auto;
  position: relative;

  @media screen and (min-width: 960px) {
    padding-top: 5rem;
    padding-bottom: 70px;
    border-radius: 60px;
  }

  h2 {
    --min-size: 28;
    --max-size: 36;
    --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));
    --font-size: clamp(var(--min-size) * 1px, var(--clamp-size), var(--max-size) * 1px);
    font-size: var(--font-size);
    margin: 0 auto 2.25rem;
  }

  p {
    margin: 0 auto;
    padding: 0;
    font-size: 1rem;
    line-height: 2.2;
    font-weight: 500;
  }

  p.closed {
    line-height: 1.8;
    color: rgb(var(--color-base));
    margin-bottom: 2em;
    background: rgb(var(--color-primary));
    padding: 1em !important;
    border-radius: 10px;
  }

  .notice {
    line-height: 1.8;
    font-weight: 400;
    padding: 1.5em 1em 1em;
    margin: 2.5em auto 0;
    background-color: rgba(var(--color-base-2), 0.6);
    border-radius: 10px;

    p {
      font-size: 0.875rem;
    }
  }

  .point {
    display: block;
    position: absolute;
    z-index: 2;

    &.point-nabe {
      width: 25%;
      aspect-ratio: 140/93;
      max-width: 140px;
      max-height: 93px;
      background: url(../img/point-nabe.png) no-repeat center center / contain;
      top: 1rem;
      left: -6%;
      transform: rotate(-3deg);

      @media screen and (min-width: 480px) {
        top: 1rem;
        left: -9%;
      }

      @media screen and (min-width: 768px) {
        top: 3rem;
        left: -7%;
      }

      @media screen and (min-width: 960px) {}
    }

    &.point-otama {
      width: 15%;
      aspect-ratio: 70/146;
      max-width: 70px;
      max-height: 146px;
      background: url(../img/point-otama.png) no-repeat center center / contain;
      top: -2rem;
      right: 1%;
      transform: rotate(21deg);

      @media screen and (min-width: 480px) {
        top: -2rem;
        right: -2%;
      }

      @media screen and (min-width: 768px) {
        top: 0rem;
        right: 0%;
      }

      @media screen and (min-width: 960px) {}
    }



  }
}


/*
 * card-container
 */
.card-container {
  border-radius: 30px;

  a {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 10px 10px 55px;
    border-radius: 30px;
    color: rgb(var(--color-base));
    overflow: hidden;
    position: relative;

    &::after {
      content: "";
      display: block;
      width: 45px;
      height: 45px;
      border-radius: 50%;
      background-color: rgb(var(--color-base));
      background-repeat: no-repeat;
      background-size: 8px 16px;
      background-position: center;
      position: absolute;
      bottom: 15px;
      right: 15px;
    }

    &.has-primary-background-color::after {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23FE7E04' viewBox='0 0 6 10'%3E%3Cg transform='translate(1 1)'%3E%3Cpath d='M980.589,1223.3a1,1,0,0,1-.707-1.707l3.293-3.293L979.882,1215a1,1,0,0,1,1.414-1.414l4,4a1,1,0,0,1,0,1.414l-4,4A1,1,0,0,1,980.589,1223.3Z' transform='translate(-980.589 -1214.295)'/%3E%3C/g%3E%3C/svg%3E");
    }

    &.has-secondary-background-color::after {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23FFAF01' viewBox='0 0 6 10'%3E%3Cg transform='translate(1 1)'%3E%3Cpath d='M980.589,1223.3a1,1,0,0,1-.707-1.707l3.293-3.293L979.882,1215a1,1,0,0,1,1.414-1.414l4,4a1,1,0,0,1,0,1.414l-4,4A1,1,0,0,1,980.589,1223.3Z' transform='translate(-980.589 -1214.295)'/%3E%3C/g%3E%3C/svg%3E");
    }
  }

  .card-ttl {
    --min-size: 24;
    --max-size: 28;
    --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));
    font-size: clamp(var(--min-size) * 1px,
        var(--clamp-size),
        var(--max-size) * 1px);
    order: 2;
    text-align: center;
    margin-inline: auto;
    font-weight: var(--weight-bold);
    margin: 35px auto 20px;

  }

  .card-desc {
    order: 3;
    line-height: 2.2;
    text-align: center;
    margin: 0 auto auto;
    font-weight: var(--weight-bold);
  }

  .card-thumb {
    width: 100%;
    order: 1;
    aspect-ratio: 480/250;
    border-radius: 30px 30px 0 0;
    overflow: hidden;

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
}




/*
 * post-list
 */
.postdate {
  font-size: 1rem;
  /* font-family: var(--font-en); */
  font-weight: var(--weight-bold);
  font-style: normal;
  color: rgb(var(--color-primary));
  letter-spacing: 0.05em;
}

.tags {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 4px;
  list-style: none;
  padding: 0;
  margin: 0;

  /* @media screen and (min-width: 1120px) {
    justify-content: center;
  } */

  /* a {
    min-width: 6rem;
    font-size: 1rem;
    padding: 0.157em 1em;
    line-height: 1;
    text-align: center;
    color: rgb(var(--color-primary));
    background-color: rgb(var(--color-primary-light));
    border-radius: 0.25em;

    &:hover {
      opacity: 1;
      color: rgb(var(--color-base));
      background-color: rgb(var(--color-primary));
    }
  } */

  .tag {
    color: rgb(var(--color-base));
    border-radius: 100vmax;
    padding: 0.5em 1.125em;
    width: 120px;
    text-align: center;
    line-height: 1;

    &.tag-primary {
      background-color: rgb(var(--color-primary));
    }

    &.tag-secondary {
      background-color: rgb(var(--color-secondary));
    }

    /* background-color: rgb(var(--color-primary)); */
    /* &.is-current {
      a {

        &:hover {
          color: rgb(var(--color-primary));
          background-color: rgb(var(--color-primary-light));
        }
      }
    } */
  }

  /* .tag:not(:has(>a)) {
    min-width: 4.5rem;
    font-size: 0.875rem;
    padding: 0.286em 0.5em;
    line-height: 1;
    text-align: center;
    color: rgb(var(--color-primary));
    border: 1px solid currentColor;
    border-radius: 0.25em;


  } */
}

.post-list {
  list-style: none;
  padding: 0;
}

.archive .post-list {
  margin: 2.5rem auto 0;
  padding: 1.5em 0 0;
  border-top: 1px solid rgba(var(--color-secondary), 0.3);

}

.post-list-item {
  width: 100%;
  margin: 0 0 15px;
  list-style: none;
  border-radius: 20px;
  background-color: rgb(var(--color-base));
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  color: rgb(var(--color-contrast));
  padding: 1.5em 1em;
  border-radius: 20px;
  background-color: rgb(var(--color-base));

  @media screen and (min-width: 768px) {
    padding: 2em 2.5em;
    gap: 25px;
    border-radius: 100vmax;
    border-radius: 100vmax;
  }

  a {
    color: rgb(var(--color-primary));
    text-decoration: underline;

    &:hover {
      color: rgb(var(--color-secondary));

    }
  }

  .tags {
    justify-content: flex-start;
    gap: 0.5rem;
  }

  .post-title {
    /* width: 100%; */
    margin: 0;
    overflow: hidden;
    /* display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;

    @media screen and (min-width: 768px) {
      -webkit-line-clamp: 1;
    } */

    p {
      margin: 0;
    }
  }
}

.single {
  .post-title {
    --min-size: 26;
    --max-size: 28;
    --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));
    --font-size: clamp(var(--min-size) * 1px,
        var(--clamp-size),
        var(--max-size) * 1px);
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    font-size: var(--font-size);
    margin-top: 0;
    margin-bottom: 1.25em;

    span:not(.tags, .tag) {
      width: 100%;
      display: block;
    }
  }

  .tags {
    justify-content: flex-start;
  }
}


/*
 * card-list
 */
.card-list {
  list-style: none;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem 2.5rem;
  padding: 0;
  margin: 0 auto;
}

.photogallery .card-list {
  padding-top: 24px;

  @media screen and (min-width: 960px) {
    padding-top: 54px;
  }
}

.card-list-item {
  width: 100%;

  @media screen and (min-width: 480px) {
    width: calc((100% - 2.5rem) / 2);

    &:last-of-type {
      margin-inline: auto;
    }
  }

  @media screen and (min-width: 960px) {
    width: calc((100% - 5rem) / 3);

    &:last-of-type {
      margin-inline: 0;
    }
  }

  &:has(.comment) {
    padding: 4.5rem 0 2rem;
    position: relative;
  }
}

.archive-card {
  width: 100%;
  height: 100%;
  padding: 10px 10px 35px;
  display: flex;
  flex-direction: column;
  border-radius: 30px;
  background-color: rgb(var(--color-base-2));
  overflow: hidden;
  cursor: pointer;
  transition: box-shadow 0.3s;

  &:hover {
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.16);
  }

  .ttl {
    --min-size: 18;
    --max-size: 20;
    --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));

    width: calc(100% - 2rem);
    margin: 1.25rem auto 0;
    font-size: clamp(var(--min-size) * 1px,
        var(--clamp-size),
        var(--max-size) * 1px);
    font-weight: var(--weight-bold);
    order: 3;
    display: flex;
    flex-direction: column;

  }

  .tags {
    width: 100%;
    order: 2;
    margin: -1em auto 0;
    position: relative;
    z-index: 1;
  }

  .comment {
    width: 90%;
    border-radius: 100vmax;
    background-color: rgb(var(--color-secondary));
    color: rgb(var(--color-base));
    text-align: center;
    padding: 0.5em 1.5em;
    /* order: 2; */
    font-size: 15px;
    font-weight: var(--weight-bold);
    margin: 0 auto;
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;

    &::after {
      content: "";
      display: block;
      border-left: 8px solid transparent;
      border-right: 8px solid transparent;
      border-top: 16px solid rgb(var(--color-secondary));
      position: absolute;
      bottom: -12px;
      left: 50%;
      transform: translateX(-50%);
    }
  }

  .thumb {
    width: 100%;
    aspect-ratio: 340/210;
    order: 1;
    border-radius: 30px 30px 0 0;
    background-color: rgb(var(--color-base));
    margin: 0 auto;
    overflow: hidden;

    img {
      width: 100%;
      height: 100%;
      object-fit: contain;
    }
  }
}

/*
 * modal
*/

html:has(.modal.is-active) {
  overflow: hidden;
  height: 100vh;
}

.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
}

.modal-overlay {
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
}

.modal-container {
  width: 90%;
  height: auto;
  /* padding-top: 3rem; */
  max-width: calc(660px + 2.5rem);
  /* max-height: calc(550px + 1.25rem + 2.5rem); */
  padding: 1.25rem 0.5rem 2.5rem 1.25rem;
  border-radius: 1.5rem;
  background: #fff;
  display: grid;
  place-content: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);

  @media screen and (min-width: 768px) {
    padding: 2.5rem 1.25rem 3.5rem;
  }
}

.modal-close {
  padding: 1rem;
  margin: 0 auto;
  width: 180px;
  height: auto;
  background: rgb(var(--color-secondary));
  border: 2px solid rgb(var(--color-secondary));
  /* border: none; */
  outline: none;
  /* text-indent: -9999px; */
  position: relative;
  cursor: pointer;
  font-size: 1rem;
  position: absolute;
  bottom: -2em;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 100vmax;
  color: rgb(var(--color-base));
  font-weight: bold;
  letter-spacing: 0.08em;
  transition: background-color 0.3s, color 0.3s;

  &:hover {
    background: rgb(var(--color-base-2));
    color: rgb(var(--color-secondary));

    /* &::before,
    &::after {
      background-color: rgb(var(--color-primary));
    } */
  }

  /* &::before,
  &::after {
    content: "";
    display: block;
    width: 2.5rem;
    height: 5px;
    background-color: rgb(var(--color-base-2));
    border-radius: 10px;
    position: absolute;
    top: 50%;
    left: 50%;
  }

  &::before {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  &::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  } */
}


.modal-content {
  /* background-color: rgb(var(--color-base)); */
  text-align: center;
  display: flex;
  flex-direction: column;
  background: #fff;
  padding: 0 10px 0 0;
  max-height: 80vh;
  overflow-y: auto;
  /* background: #fff url(../img/popup_bg.png) no-repeat left top / 100% auto; */
  position: relative;

  @media screen and (min-width: 768px) {
    /* height: 550px; */
    height: auto;
    min-height: 424px;
  }

  &::after {
    content: "";
    display: block;
    width: calc(100% - 10px);
    height: 100%;
    background: url(../img/popup_bg.png) no-repeat left top / 100% auto;
    position: absolute;
    top: 0;
    left: 0;
  }



  .ttl {
    width: fit-content;
    max-width: 320px;
    margin: 0 auto 0;
    order: 2;
    font-size: 1.275rem;
    line-height: 1.5;
    background: #fff;
    padding: 0 1.5em;
    border-radius: 100vmax;
    position: relative;
    z-index: 2;

    .company_name {
      display: block;
      font-size: 0.7em;
    }
  }

  .txt {
    order: 3;
    max-width: 95%;
    margin: 10px auto 0;
    position: relative;
    z-index: 2;

    @media screen and (min-width: 768px) {
      margin: 60px auto 0;
    }
  }

  .photo-container {
    width: 100%;
    order: 1;
    padding: 18% 14% 25%;
    position: relative;
    z-index: 2;


    @media screen and (min-width: 768px) {
      padding: 18% 14% 8.5%;
    }

    .photo {
      width: 100%;
      aspect-ratio: 614/424;
      max-width: 614px;
      max-height: 424px;
      border-radius: 1.5rem;
      overflow: hidden;
      display: flex;

      &:has(img + img) img {
        flex: 1;
        margin: 0 8px;
        width: calc(50% - 16px);
        height: auto;
        object-fit: contain;
      }
    }

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
}

.modal-content::-webkit-scrollbar {
  width: 10px;
}

.modal-content::-webkit-scrollbar-track {
  background-color: #e4e4e4;
  border-radius: 100vmax;
}

.modal-content::-webkit-scrollbar-thumb {
  background-color: rgb(var(--color-secondary));
  border-radius: 100vmax;
}

.modal-content.ver_30th {
  &::after {
    background-image: url(../img/popup_bg_30th.png);
  }
}

.ver_30th .photo-container {
  padding: 24% 14% 26%;

  @media screen and (min-width: 768px) {
    padding: 23% 14% 8.5%;
  }
}

.oyako {
  .modal-content {
    @media screen and (min-width: 768px) {
      height: auto;
    }

    .photo-container {
      @media screen and (min-width: 768px) {
        padding-bottom: 9%;
      }
    }

    .photo {
      img {
        object-fit: contain;
      }
    }
  }
}

.oyako .ver_30th .photo-container {
  padding: 23.5% 14% 28%;

  @media screen and (min-width: 768px) {
    padding: 24% 14% 8.5%;
  }
}


/*
 * pagination,pager
 */
.pagination {
  width: 100%;
  margin: 4rem auto 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;

  a {
    text-decoration: none !important;

    &:hover {
      opacity: 1;
    }
  }

  .btn {
    width: 15rem;

    a {
      width: 100%;
      font-family: var(--font-jp);
    }
  }
}

.pagination:not(:has(> .page-numbers, .btn)) {
  margin-top: 0;
}

.page-numbers {
  display: grid;
  place-content: center;
  /* margin: 0.75rem; */
  margin: 0;
  width: 3rem;
  height: 3rem;
  padding: 0.25rem;
  text-align: center;
  color: rgb(var(--color-contrast-2));
  background-color: #FDF3D8;
  border-radius: 50%;
  font-size: 25px;
  font-family: var(--font-en);
  /* font-weight: var(--weight-semibold); */
  line-height: 1;
  text-decoration: none !important;
  cursor: pointer;
  transition: color 0.3s, backgroundColor 0.3s;

  &:hover {
    opacity: 1;
    color: rgb(var(--color-base));
    background-color: rgb(var(--color-secondary));
  }

  &.current,
  &.back {
    color: rgb(var(--color-base));
    background-color: rgb(var(--color-secondary));

    &:hover {
      opacity: 1;
      color: rgb(var(--color-base));
      background-color: rgb(var(--color-primary-light));
    }
  }


  &.prev,
  &.next {
    /* background-color: rgb(var(--color-base)); */

    .svgicon {
      width: 0.75em;
      height: 0.75em;
      color: rgb(var(--color-contrast-2));
      transition: color 0.3s;

    }

    &:hover {
      .svgicon {
        color: rgb(var(--color-base));
      }
    }
  }

  &.prev {
    .svgicon {
      margin: 0 0.15em 0 0;
      transform: rotate(180deg);
    }
  }

  &.next {
    .svgicon {
      margin: 0 0 0 0.25em;
    }
  }

}

/*
 * form
 */

.form-container {
  width: 100%;
  margin: 2.5rem auto;
  max-width: 800px;

  .wpcf7-not-valid-tip {
    font-size: 0.75rem;
    width: 100%;
  }

  .notice {
    display: block;
    width: 100%;
    font-size: 0.875rem;
    margin-bottom: 1em;
    background-color: rgb(var(--color-base-2));
    border-radius: 8px;
    padding: 0.75em 1em;
  }
}

.form-field {

  input,
  button,
  textarea,
  select {
    width: calc(100% - 0.5rem);
    border-radius: 0;
    border: 1px solid rgba(var(--color-contrast), 0.3);
    background-color: rgb(var(--color-base));
    font-size: 1rem;
    font-weight: var(--weight-medium);
    border-radius: 4px;
    appearance: none;
    margin: 0 0.25rem;

    &:focus-visible {
      outline: 2px solid rgba(var(--color-secondary), 0.3);
      box-shadow: none;
      outline-offset: 0;
    }

    &::placeholder {
      color: rgb(var(--color-contrast), 0.6);
    }
  }

  input,
  button,
  textarea {
    padding: 0.5rem;
  }

  select {
    padding: 0.5rem;
    cursor: pointer;
    background-color: rgb(var(--color-base));
  }

  textarea {
    height: 16rem;
  }

  input[type="radio"],
  input[type="checkbox"] {
    width: 1.5rem;
    height: 1.5rem;
    background-color: rgb(var(--color-base));
    border: 1px solid rgba(var(--color-contrast), 0.3);
    position: relative;
    margin: 0 0.5rem 0 0;
    cursor: pointer;

    &::before {
      content: "";
      display: block;
      opacity: 0;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      transition: opacity 0.2s linear;
    }

    &:checked {
      &::before {
        opacity: 1;
      }
    }
  }

  input[type="checkbox"] {
    &::before {
      content: "";
      display: inline-block;
      width: 1em;
      height: 1em;
      background-repeat: no-repeat;
      background-size: contain;
      background-position: center;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%23fe7e04' d='M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z'/%3E%3C/svg%3E%0A");
    }
  }

  input[type="radio"] {
    border-radius: 50%;

    &::before {
      width: 0.75em;
      height: 0.75em;
      background-color: rgb(var(--color-primary));
      border-radius: 50%;
    }
  }
}

.form-field {
  width: 100%;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: wrap;
  padding: 0 0 1rem;
  margin: 0 auto 1rem;

  &.your_add,
  &.message {

    .form-ttl,
    .form-input {
      align-items: flex-start;
    }
  }
}

.field-ttl {
  font-size: 1.125em;
  padding: 0 0 0.25em;
  border-bottom: 2px solid rgb(var(--color-secondary));
}

.form-ttl,
.form-input {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}

.form-ttl {
  align-items: flex-start;
}

.form-input {
  div {
    width: 100%;

    +div {
      margin-top: 0.5rem;
    }
  }
}

.input-ttl {
  font-weight: var(--weight-medium);
}

.input-2cols,
.input-3cols {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;

  gap: 10px;

  .wpcf7-form-control-wrap {
    flex-basis: calc(50% - 5px);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: nowrap;

    @media screen and (min-width: 480px) {
      flex-basis: calc(50% - 5px);
    }

    &:has(.wpcf7-not-valid-tip) {
      flex-wrap: wrap;
    }
  }

  .input-ttl,
  .input {
    display: flex;
  }

  &.zip {
    .input {
      width: calc(50% - 2.5rem);

      .wpcf7-form-control-wrap {
        flex-basis: 100%;
      }
    }
  }
}


label {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;

  &:has(input[type="radio"], input[type="checkbox"]) {
    margin-left: 10px;
    width: auto;
  }
}

.form-tag {
  font-size: 0.75rem;
  font-weight: var(--weight-medium);

  &.required {
    display: inline-block;
    background-color: rgb(var(--color-primary));
    color: rgb(var(--color-base));
    margin: 6px 0 0 auto;
    line-height: 1.5;
    padding: 2px 1em;
    border-radius: 4px;
  }

  &.note {
    display: block;
    margin-bottom: auto;
    width: 100%;
  }

  &.auto {
    display: inline-block;
    border: 1px solid rgb(var(--color-contrast));
    color: rgb(var(--color-contrast));
    margin: 0 0.5rem;
    line-height: 1.2;
    padding: 2px 0.5rem;
  }
}

.form-ttl {
  font-weight: var(--weight-medium);
  padding: 0.5rem 0;

  @media screen and (min-width: 768px) {
    width: 30%;
  }
}

.form-input {
  margin: 0;
  font-weight: var(--weight-medium);

  &.flex {
    align-items: center;
    justify-content: flex-start;
  }

  @media screen and (min-width: 768px) {
    width: 70%;
    padding-left: 2em;
  }

  .form-input {
    width: 100%;
    padding-left: 0;
  }

  >div {}
}

.w-32 {
  justify-content: flex-start;

  .wpcf7-form-control-wrap {
    max-width: calc(20rem + 0.5rem);
    margin-right: 0.5rem;
  }
}

.size-s {
  justify-content: flex-start;

  .wpcf7-form-control-wrap {
    max-width: calc(50% + 0.5rem);
    margin-right: 0.5rem;

    @media screen and (min-width: 480px) {
      max-width: calc(25% + 0.5rem);
    }
  }
}

.size-m {
  justify-content: flex-start;

  .wpcf7-form-control-wrap {
    max-width: calc(80% + 0.5rem);
    margin-right: 0.5rem;

    @media screen and (min-width: 480px) {
      max-width: calc(50% + 0.5rem);
    }
  }
}


.wpcf7-form-control-wrap {
  width: 100%;
  margin: 0.5em 0;
}

.type_date {
  .wpcf7-form-control-wrap {
    max-width: calc(20rem + 0.5rem);
  }

  input {
    cursor: pointer;
    width: auto;
    min-width: 9rem;
  }
}

.type-checkbox {
  .wpcf7-form-control-wrap {
    justify-content: center;
    margin-inline: auto;
  }

  .wpcf7-list-item {
    display: block;

    +.wpcf7-list-item {
      margin: 0.5em 0 0;
    }
  }
}

.type-select {
  .wpcf7-form-control-wrap:has(select) {
    display: block;
    width: 100%;
    flex-basis: auto;
    justify-content: center;
    margin-inline: 0;
    position: relative;

    &::before {
      content: "";
      display: inline-block;
      width: 10px;
      height: 10px;
      /*くの字矢印*/
      border-top: 2px solid rgb(var(--color-contrast));
      border-right: 2px solid rgb(var(--color-contrast));
      transform: rotate(135deg);
      position: absolute;
      top: 1em;
      right: 1em;
    }
  }
}

.type-accept {
  width: 100%;
  padding: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  margin-left: auto;

  a {
    display: inline-block;
    color: rgb(var(--color-primary));
    margin: 0 0.5em 0 0;
    text-decoration: underline;

    &:hover {
      text-decoration: none;
    }
  }

  .wpcf7-form-control-wrap {
    margin: 0;
    padding: 0;
    font-weight: var(--weight-medium);
    /* width: fit-content;
    margin: 1em auto 0;
    padding: 1em 0; */

  }
}


/*
/* ポリシーページの内容を呼び出すとき
 .policy-box {
 	width: 100%;
 	margin: 2em auto;
 	padding: 1em;
 	background-color: rgb(var(--color-base));
 	height: 220px;
 	overflow-y: scroll;
 	scrollbar-width: 8px;
 	scrollbar-color: $color-contrast;
 	font-size: 0.875rem;
 	@include mq(tab) {
 		padding: 2em;
 	}
 	.wp-block-heading,
 	h2,
 	h3,
 	h4,
 	h5,
 	h6 {
 		font-size: 1.125rem !important;
 	}
 	&::-webkit-scrollbar {
 		width: 8px;
 	}
 	&::-webkit-scrollbar-track {
 		background-color: rgba($color-contrast, 0.15);
 	}
 	&::-webkit-scrollbar-thumb {
 		background-color: $color-contrast;
 		height: 40px;
 	}
 }
*/

.submit-field {
  justify-content: center;
  margin: 4rem auto;
  border: none;
  position: relative;

  .form-input {
    width: fit-content;
  }

  .btn {
    .submit-btn {
      max-width: 28rem;
      position: relative;
      display: inline-block;
      min-width: 100%;
      padding: 18px calc(50px + 2em) 20px 20px;
      border-radius: 100vmax;
      font-weight: var(--weight-bold);
      color: rgb(var(--color-base));
      background: rgb(var(--color-primary));
      border: 1px solid rgb(var(--color-base));
      transition: background-color 0.3s, color 0.3s;

      &::before {
        content: "";
        display: inline-block;
        width: 30px;
        height: 30px;
        background-color: rgb(var(--color-base));
        border-radius: 50%;
        position: absolute;
        right: 20px;
        top: 50%;
        transform: translateY(-50%);
      }

      &::after {
        content: "";
        display: block;
        width: 12px;
        height: 12px;
        background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23FFAF01' viewBox='0 0 6 10'%3E%3Cg transform='translate(1 1)'%3E%3Cpath d='M980.589,1223.3a1,1,0,0,1-.707-1.707l3.293-3.293L979.882,1215a1,1,0,0,1,1.414-1.414l4,4a1,1,0,0,1,0,1.414l-4,4A1,1,0,0,1,980.589,1223.3Z' transform='translate(-980.589 -1214.295)'/%3E%3C/g%3E%3C/svg%3E") no-repeat center center / contain;
        position: absolute;
        top: 50%;
        right: 28px;
        transform: translateY(-50%);
        transition: right 0.3s;
      }

      &:hover {
        opacity: 1;
        background-color: rgb(var(--color-secondary));

        &::after {
          right: 25px;
        }
      }

      &:has(input:disabled) {
        border-color: rgba(var(--color-contrast), 0.3);
        background-color: rgba(var(--color-contrast), 0.3);
        color: rgba(var(--color-contrast), 0.3);

        &::before {
          background-color: rgba(var(--color-contrast), 0.3);
        }

        &::after {
          background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23888888' viewBox='0 0 6 10'%3E%3Cg transform='translate(1 1)'%3E%3Cpath d='M980.589,1223.3a1,1,0,0,1-.707-1.707l3.293-3.293L979.882,1215a1,1,0,0,1,1.414-1.414l4,4a1,1,0,0,1,0,1.414l-4,4A1,1,0,0,1,980.589,1223.3Z' transform='translate(-980.589 -1214.295)'/%3E%3C/g%3E%3C/svg%3E") no-repeat center center / contain;
        }
      }
    }
  }

  input,
  button {
    padding-inline: 0;
    margin-inline: 0;
    text-align: left;
    color: rgb(var(--color-base));
    cursor: pointer;
    transition: all 0.3s ease-in-out;
    position: relative;
    z-index: 1;

    &[type="submit"] {
      background: none;
      border: none;
    }


  }
}

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

/* wpcf7 */
/* ------------------------------------------------------------ */
.wpcf7-list-item {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin: 0;



  label {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  label:has(input[type="radio"], input[type="checkbox"]) {
    margin-left: 0;
  }

  .wpcf7-list-item-label {
    width: auto;
    text-align: left;
  }
}

.type-radio .wpcf7-list-item,
.type-checkbox .wpcf7-list-item {
  margin: 0.5rem 1em 0.5rem 0;
}

/*
 * 6. block-editor styles
 */
.page .editor-area {
  --block-min-size: 40;
  --block-max-size: 80;
  --block-size: calc(var(--block-min-size) * 1px + (var(--block-max-size) - var(--block-min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));
  --inline-min-size: 16;
  --inline-max-size: 80;
  --inline-size: calc(var(--inline-min-size) * 1px + (var(--inline-max-size) - var(--inline-min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));

  --padding-block: clamp(var(--block-min-size) * 1px, var(--clamp-size), var(--block-max-size) * 1px);
  --padding-inline: clamp(var(--inline-min-size) * 1px, var(--clamp-size), var(--inline-max-size) * 1px);

  padding-block: var(--padding-block);
  padding-inline: var(--padding-inline);
  border-radius: 40px;
  overflow: hidden;
}

.base .has-base-background-color.rounded {
  --block-min-size: 40;
  --block-max-size: 80;
  --block-size: calc(var(--block-min-size) * 1px + (var(--block-max-size) - var(--block-min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));
  --inline-min-size: 16;
  --inline-max-size: 80;
  --inline-size: calc(var(--inline-min-size) * 1px + (var(--inline-max-size) - var(--inline-min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));

  --padding-block: clamp(var(--block-min-size) * 1px, var(--clamp-size), var(--block-max-size) * 1px);
  --padding-inline: clamp(var(--inline-min-size) * 1px, var(--clamp-size), var(--inline-max-size) * 1px);

  padding-block: var(--padding-block);
  padding-inline: var(--padding-inline);

  border-radius: 40px;

}

.editor-area {

  p {
    width: 100%;
    /* line-height: 2.2; */
    margin-bottom: 1em;

    &:not(.has-background) {
      padding-top: 0.25em;
    }

    a {
      color: rgb(var(--color-primary));
      text-decoration: underline;

      &[target="_blank"]::after {
        content: "";
        display: inline-block;
        width: 1em;
        height: 1em;
        margin: 0 0.25em;
        background: url(../img/icon/icon-blank.svg) no-repeat center center / contain;
        font-size: 0.875em;
        color: rgb(var(--color-secondary));
      }

      &[href$=".pdf"]::after {
        content: "";
        display: inline-block;
        width: 1.25em;
        height: 1.25em;
        margin: 0 0.25em;
        background: url(../img/icon/icon-pdf.svg) no-repeat center center / contain;
        font-size: 0.875em;
        color: rgb(var(--color-secondary));
      }

      &:hover {
        color: rgb(var(--color-secondary));
        opacity: 1;
        text-decoration: none;
      }
    }
  }

  sup,
  sub {
    font-size: 0.75em;
  }

  iframe[src^="https://www.google.com/"] {
    width: 100%;
    height: 360px;
  }

  >.wp-block-image {
    margin-block: 1em;
  }
}

.editor-area .has-background {
  padding: 1.25em 2.375em;
}

.has-text-align-left {
  text-align: left;
}

.has-text-align-right {
  text-align: right;
}

.has-text-align-center {
  text-align: center;
}

.has-font-jp-font-family {
  font-family: var(--font-serif);
}

.has-font-en-font-family {
  font-family: var(--font-en);
}

.has-system-font-font-family {
  font-family: var(--font-jp);
}

.has-huge-font-size {
  /* @include clampSize(font-size, 33, 320, 1280, 38); */
  line-height: 1.55;
  --min-size: 28;
  --max-size: 40;
  --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));
  --font-size: clamp(var(--min-size) * 1px,
      var(--clamp-size),
      var(--max-size) * 1px);
  font-size: var(--font-size);

}

.has-xxx-large-font-size {
  --min-size: 26;
  --max-size: 32;
  --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));
  --font-size: clamp(var(--min-size) * 1px,
      var(--clamp-size),
      var(--max-size) * 1px);
  font-size: var(--font-size);

  /* &.post-ttl {
  } */
}

.has-xx-large-font-size {
  line-height: 1.65;
  --min-size: 24;
  --max-size: 28;
  --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));
  --font-size: clamp(var(--min-size) * 1px,
      var(--clamp-size),
      var(--max-size) * 1px);
  font-size: var(--font-size);
}

.has-x-large-font-size {
  line-height: 1.65;
  --min-size: 22;
  --max-size: 24;
  --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));
  --font-size: clamp(var(--min-size) * 1px,
      var(--clamp-size),
      var(--max-size) * 1px);
  font-size: var(--font-size);
}

.has-large-font-size {
  --min-size: 20;
  --max-size: 22;
  --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));
  --font-size: clamp(var(--min-size) * 1px,
      var(--clamp-size),
      var(--max-size) * 1px);
  font-size: var(--font-size);
}

.has-medium-font-size {
  /* font-size: 1.125em; */
  --min-size: 18;
  --max-size: 20;
  --clamp-size: calc(var(--min-size) * 1px + (var(--max-size) - var(--min-size)) * (100vw - var(--min-viewport) * 1px) / (var(--max-viewport) - var(--min-viewport)));
  --font-size: clamp(var(--min-size) * 1px,
      var(--clamp-size),
      var(--max-size) * 1px);
  font-size: var(--font-size);
}

.has-small-font-size {
  font-size: 0.875em;
}

.has-x-small-font-size {
  font-size: 0.75em;
}

.has-xx-small-font-size {
  font-size: 10px;
}

.wp-block-heading {
  font-family: var(--font-jp);
  font-weight: var(--weight-bold);
  color: rgb(var(--color-contrast));

  &.is-style-underline {
    padding-bottom: 0.25em;
    border-bottom: 3px solid rgb(var(--color-secondary));
  }

  &.is-style-borderleft {
    padding-left: 0.75em;
    font-family: var(--font-jp);
    position: relative;

    &::before {
      content: "";
      display: block;
      width: 4px;
      height: 1.125em;
      border-radius: 6px;
      background-color: rgb(var(--color-secondary));
      position: absolute;
      top: 0.45em;
      left: 0;
    }

    /* border-left: 3px solid rgb(var(--color-secondary)); */
  }
}

.editor-area {
  font-family: var(--font-jp);
  font-weight: var(--weight-medium);

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    margin-top: 0;
    margin-bottom: 0.75em;
    font-family: var(--font-jp);
    font-weight: var(--weight-bold);
  }

  h1 {
    font-size: var(--wp--preset--font-size--huge);
  }

  h2 {
    font-size: var(--wp--preset--font-size--xxx-large);
  }

  h3 {
    font-size: var(--wp--preset--font-size--xx-large);
  }

  h4 {
    font-size: var(--wp--preset--font-size--x-large);
  }

  h5 {
    font-size: var(--wp--preset--font-size--large);
  }

  h6 {
    font-size: var(--wp--preset--font-size--medium);
  }
}

sup,
sub {
  display: inline-block;
  vertical-align: middle;
}

hr,
.wp-block-separator {
  width: 100%;
  border: none;
  border-top: 1px solid;
  background-color: rgba(var(--color-primary), 0.2);
  margin-top: 2.5rem;
  margin-bottom: 2.5rem;
  color: rgba(var(--color-primary), 0.2);

  &.has-background {
    padding: 0;
  }

  &.is-style-dots {
    border: none;
    margin-top: 4.5rem;
    margin-bottom: 4.5rem;

    padding: 6px;
    background-color: #fff;
    background-image:
      radial-gradient(rgba(var(--color-secondary), 1) 30%, transparent 30%);
    background-size: 12px 12px;
  }
}



.wp-block-list {
  padding-left: 1.5em;

  ul,
  ol {
    margin-top: 0.5em;
  }

  li {
    /* line-height: 1.75; */
    margin-bottom: 0.5em;

    &::marker {
      display: none;
    }

    .wp-block-list {
      margin-top: 1em;
      margin-bottom: 1.5em;
    }
  }
}

ul.wp-block-list {
  list-style: none;

  >li {
    position: relative;

    &::before {
      content: "";
      display: inline-block;
      width: 0.5em;
      height: 0.5em;
      /* margin-right: 0.5em; */
      background-color: rgb(var(--color-primary));
      border-radius: 50%;
      /* vertical-align: middle; */
      position: absolute;
      left: -1.2em;
      top: 0.65em;
    }

    li::marker {
      color: rgb(var(--color-secondary));
    }

    ul.wp-block-list {
      li {
        position: relative;

        &::before {
          width: 0.35em;
          height: 0.35em;
          top: 0.85em;
          background-color: rgb(var(--color-secondary));
        }
      }
    }
  }
}

ol.wp-block-list {
  li {
    &::marker {
      /* font-family: var(--font-en); */
      font-size: 1.125em;
      font-weight: var(--weight-semibold);
      color: rgb(var(--color-primary));
    }

    li::marker {
      color: rgb(var(--color-secondary));
    }

    ul.wp-block-list {
      li {
        &::before {
          width: 0.35em;
          height: 0.35em;
          top: 0.8em;
          background-color: rgb(var(--color-secondary));
        }
      }
    }
  }
}

.alignleft:not(.post-ttl) {
  float: left;
  margin-right: 1em;
  margin-bottom: 1em;
}

.alignright:not(.post-ttl) {
  float: right;
  margin-left: 1em;
  margin-bottom: 1em;
}

.clearfloat {
  clear: both;
  margin: 1em 0;
}

.wp-block-image {
  width: 100%;
  height: auto;
  position: relative;
  margin: 0 auto 1em;
  overflow: hidden;

  figure,
  picture {
    margin: 0;
    width: 100%;
    display: block;
    position: relative;
  }

  .wp-element-caption {
    margin-bottom: 1em;
    margin-top: 0.5em;
    font-size: 0.75rem;
    text-align: center;

    color: rgb(var(--color-contrast), 0.6);
  }

  img {
    width: auto;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
  }

  &.size-thumb {
    max-width: 240px;

    img {
      width: 100%;
    }
  }

  &.size-large {
    max-width: 80%;

    img {
      width: 100%;
    }
  }

  &.size-full {
    width: 100%;

    img {
      width: 100%;
    }
  }

  &.size-medium,
  &.alignleft,
  &.alignright {
    max-width: 50%;

    img {
      width: 100%;
    }
  }

  &.alignright {
    margin-top: 0;
    margin-left: 1em;
  }

  &.alignleft {
    margin-top: 0;
    margin-right: 1em;
  }
}

.wp-block-embed {
  &.is-type-video {
    aspect-ratio: 16/9;
  }

  .wp-block-embed__wrapper {
    width: 100%;
    height: 100%;
  }

  iframe {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  iframe[src^="https://www.google.com/"] {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

.wp-block-embed {
  margin-bottom: 2em;

  .wp-element-caption {
    margin-bottom: 1em;
    margin-top: 1em;
    font-size: 0.75rem;
    text-align: center;
    font-weight: 400;
    color: rgba(var(--color-contrast), 0.6);
  }
}

.editor-area>section>iframe[src*="youtube.com/embed/"] {
  height: auto;
  aspect-ratio: 16/9;
}


.wp-block-table {
  overflow-x: scroll;
  padding-top: 1.5em;
  position: relative;
  width: 100%;
  margin: 1.5em auto 2.5em;

  @media screen and (min-width:768px) {
    padding-top: 0;
    overflow-x: hidden;

  }

  &::before,
  &::after {
    display: inline-block;
    font-size: 0.8em;
    color: rgba(var(--color-contrast), 0.6);
    position: absolute;
    top: 0;

    @media screen and (min-width:768px) {
      display: none !important;
    }
  }

  /* https://mimihokuro.com/blog/change-color-svg-in-css/ */
  &::before {
    content: "";
    display: inline-block;
    vertical-align: middle;
    width: 1em;
    height: 1em;
    aspect-ratio: 1;
    top: 0.25em;
    background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='%2344515dcc' viewBox='0 0 448 512'%3E%3Cpath d='M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40l0 148.2c8.5-7.6 19.7-12.2 32-12.2c20.6 0 38.2 13 45 31.2c8.8-9.3 21.2-15.2 35-15.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48l0 48 0 16 0 48c0 70.7-57.3 128-128 128l-16 0-64 0-.1 0-5.2 0c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7L128 40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z'/></svg>");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
  }

  &::after {
    content: "スクロールで全体をご覧いただけます";

    left: 1.75em;
  }

  .element-caption {
    color: rgba(var(--color-contrast), 0.72);
    font-size: 0.875rem;
    margin-top: 0.5em;
    border: none;
  }

  table {
    border-spacing: 0;
    width: 100%;
    min-width: 640px;
    border: none;
    /* border-right: 1px solid rgba(var(--color-contrast), 0.72);
    border-left: 1px solid rgba(var(--color-contrast), 0.72);
    border-bottom: 1px solid rgba(var(--color-contrast), 0.72); */
    background-color: rgb(var(--color-base));
    overflow: hidden;

    &.has-fixed-layout {
      table-layout: fixed;
    }

    &:not(.has-fixed-layout:not(:has(thead))) {
      border-radius: 0;

      td:first-of-type {
        width: 33%;
      }

      th+td:first-of-type {
        width: auto;
      }
    }

    @media screen and (min-width:768px) {
      min-width: 100%;
    }

    th,
    td {
      border: none;
      padding: 1em 0.875em;
    }
  }

  thead {
    background-color: rgba(var(--color-secondary), 0.5);
    border: none;

    /* border-bottom: 4px solid rgb(var(--color-base)); */
    tr {
      border-bottom: 4px solid rgb(var(--color-base));
    }

    th,
    td {
      border-left: 4px solid rgb(var(--color-base));
      font-weight: var(--weight-semibold);
      color: rgb(var(--color-primary));
    }

    th:first-of-type,
    td:first-of-type {
      border-left: none;
    }
  }

  tfoot {
    border-top: 1px solid rgb(var(--color-primary));
    background-color: rgb(var(--color-base-2));
    color: rgb(var(--color-primary));

    th,
    td {
      font-size: 0.875em;
      border-left: 4px solid rgb(var(--color-base));
    }

    td:first-of-type {
      border-left: none;
    }

  }

  tbody {

    td,
    th {
      border-left: 4px solid rgb(var(--color-base));
      border-bottom: 4px solid rgb(var(--color-base));
      background-color: rgba(var(--color-base-2), 0.4);

      &:first-of-type {
        border-left: none;
        min-width: 6em;
      }

    }

    &:not(:has(thead)) {

      th,
      td {
        &:first-of-type {
          background-color: rgba(var(--color-secondary), 0.5);
          /* color: rgb(var(--color-primary)); */
          font-weight: var(--weight-semibold);
          min-width: 6em;
        }
      }

      th+td:first-of-type {
        border-left: 4px solid rgb(var(--color-base));

      }
    }

    &:has(tfoot) tr:last-of-type td {
      border-bottom: none;
    }
  }

  /* ストライプ */
  &.is-style-stripes {
    border: none;

    table {
      background: none;
    }


    thead {
      background: rgba(var(--color-secondary), 0.5);

      th,
      td {
        background: none !important;
      }
    }

    tfoot {
      border-top: 4px solid rgb(var(--color-base));
      /* background-color: rgb(var(--color-primary-light));
      color: rgb(var(--color-primary)); */

    }


    td,
    th {
      background: none !important;
      border: none;
    }

    tbody tr {
      background-color: rgb(var(--color-base));

      &:nth-of-type(even) {
        background-color: rgba(var(--color-base-2), 0.4);
      }

      &:nth-of-type(odd) {
        background-color: rgba(var(--color-secondary), 0.5);
      }
    }
  }

}

.wp-block-buttons {
  width: 100%;
  margin: 1.5em auto;

  +.wp-block-buttons {
    margin-top: 0;
  }

  &.is-content-justification-center {
    justify-content: center;
  }
}



.wp-block-buttons>.wp-block-button {
  /* font-weight: var(--weight-semibold); */
  width: 100%;

  @media screen and (min-width: 480px) {
    flex: 1;
    max-width: calc(50% - 0.75rem);
  }

  @media screen and (min-width: 960px) {
    max-width: calc(40% - 0.75rem);
  }
}

.wp-block-buttons:has(:nth-child(1))>.wp-block-button {
  width: auto;
  /* margin-inline: auto; */

  @media screen and (min-width: 480px) {
    max-width: initial;
    flex: initial;
  }

  @media screen and (min-width: 960px) {
    max-width: initial;
  }
}

.wp-block-buttons:has(:nth-child(2))>.wp-block-button {
  @media screen and (min-width: 960px) {
    max-width: calc(50% - 0.75rem);
  }
}

.wp-block-buttons>.wp-block-button.wp-block-button__width-100 {
  width: 100%;
  max-width: 100%;
}

.wp-block-button {
  /* min-width: 17.5em;
  max-width: fit-content;

  @media screen and (min-width: 768px) {
    min-width: 22.5em;
  } */

  /* 矢印右共通 */
  &.is-style-arrow-right,
  &.is-style-outline-arrow-right {
    .wp-block-button__link::before {
      content: "";
      display: inline-block;
      width: 30px;
      height: 30px;
      background-color: rgb(var(--color-base));
      border-radius: 50%;
      position: absolute;
      right: 20px;
      top: 50%;
      transform: translateY(-50%);
    }

    .wp-block-button__link::after {
      content: "";
      display: block;
      width: 12px;
      height: 12px;
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23FFAF01' viewBox='0 0 6 10'%3E%3Cg transform='translate(1 1)'%3E%3Cpath d='M980.589,1223.3a1,1,0,0,1-.707-1.707l3.293-3.293L979.882,1215a1,1,0,0,1,1.414-1.414l4,4a1,1,0,0,1,0,1.414l-4,4A1,1,0,0,1,980.589,1223.3Z' transform='translate(-980.589 -1214.295)'/%3E%3C/g%3E%3C/svg%3E") no-repeat center center / contain;
      position: absolute;
      top: 50%;
      right: 28px;
      transform: translateY(-50%);
      transition: right 0.3s;
    }

    .wp-block-button__link:hover {
      opacity: 1;
      background-color: rgb(var(--color-secondary));

      &::after {
        right: 25px;
      }
    }


  }

  /* 矢印左共通 */
  &.is-style-arrow-left,
  &.is-style-outline-arrow-left {
    .wp-block-button__link::before {
      content: "";
      display: inline-block;
      width: 30px;
      height: 30px;
      border-radius: 50%;
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      transition: border-color 0.3s;
    }

    .wp-block-button__link::after {
      content: "";
      display: block;
      width: 12px;
      height: 12px;
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23FFAF01' viewBox='0 0 6 10'%3E%3Cg transform='translate(1 1)'%3E%3Cpath d='M980.589,1223.3a1,1,0,0,1-.707-1.707l3.293-3.293L979.882,1215a1,1,0,0,1,1.414-1.414l4,4a1,1,0,0,1,0,1.414l-4,4A1,1,0,0,1,980.589,1223.3Z' transform='translate(-980.589 -1214.295)'/%3E%3C/g%3E%3C/svg%3E") no-repeat center center / contain;
      position: absolute;
      top: 50%;
      transform: translateY(-50%) rotate(180deg);
      transition: left 0.3s;
    }

    .wp-block-button__link:hover {
      opacity: 1;

      &::after {
        left: 25px;
      }
    }

    .wp-block-button__link.has-background,
    .wp-block-button__link.has-text-color {
      &:hover {
        opacity: 0.72;
      }
    }
  }

  /* 矢印右 */
  &.is-style-arrow-right {
    .wp-block-button__link {
      padding-right: calc(50px + 1em);
      /* border-color: rgb(var(--color-primary)); */
      border-color: currentColor;

      &::before {
        background-color: rgb(var(--color-base));
        right: 20px;
      }

      &::after {
        right: 28px;
      }

      &:hover {
        background-color: rgb(var(--color-secondary));
        /* color: rgb(var(--color-primary)); */
      }

      &.has-background {
        &:hover {
          color: rgb(var(--color-base));
        }
      }
    }
  }

  /* 矢印左 */
  &.is-style-arrow-left {
    .wp-block-button__link {
      padding-left: calc(50px + 1em);
      /* border-color: rgb(var(--color-primary)); */
      border-color: currentColor;

      &::before {
        background-color: rgb(var(--color-base));
        left: 20px;
      }

      &::after {
        left: 28px;
      }

      &:hover {
        background-color: rgb(var(--color-secondary));
        /* color: rgb(var(--color-primary)); */
      }

      &.has-background {
        &:hover {
          color: rgb(var(--color-base));
        }
      }
    }
  }

  /* 輪郭・矢印右 */
  &.is-style-outline-arrow-right {
    .wp-block-button__link {
      background-color: rgb(var(--color-base));
      /* border-color: rgb(var(--color-primary)); */
      border-color: currentColor;
      color: rgb(var(--color-primary));
      padding-right: calc(50px + 1em);

      &::before {
        background-color: rgb(var(--color-primary));
        right: 20px;
      }

      &::after {
        right: 28px;
        background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 6 10'%3E%3Cg transform='translate(1 1)'%3E%3Cpath d='M980.589,1223.3a1,1,0,0,1-.707-1.707l3.293-3.293L979.882,1215a1,1,0,0,1,1.414-1.414l4,4a1,1,0,0,1,0,1.414l-4,4A1,1,0,0,1,980.589,1223.3Z' transform='translate(-980.589 -1214.295)'/%3E%3C/g%3E%3C/svg%3E") no-repeat center center / contain;

      }

      &:hover {
        background-color: rgb(var(--color-secondary));
        color: rgb(var(--color-base));
      }
    }
  }

  /* 輪郭・矢印左 */
  &.is-style-outline-arrow-left {
    .wp-block-button__link {
      background-color: rgb(var(--color-base));
      border-color: currentColor;
      color: rgb(var(--color-primary));
      padding-left: calc(50px + 1em);

      &::before {
        background-color: rgb(var(--color-primary));
        left: 20px;
      }

      &::after {
        left: 28px;
        background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 6 10'%3E%3Cg transform='translate(1 1)'%3E%3Cpath d='M980.589,1223.3a1,1,0,0,1-.707-1.707l3.293-3.293L979.882,1215a1,1,0,0,1,1.414-1.414l4,4a1,1,0,0,1,0,1.414l-4,4A1,1,0,0,1,980.589,1223.3Z' transform='translate(-980.589 -1214.295)'/%3E%3C/g%3E%3C/svg%3E") no-repeat center center / contain;

      }

      &:hover {
        background-color: rgb(var(--color-secondary));
        color: rgb(var(--color-base));
      }
    }
  }

}


.wp-block-button__link {
  padding: 16px 20px 16px;
  min-width: 100%;
  text-align: initial;
  position: relative;
  border-radius: 100vmax;

  &.has-text-align-center {
    text-align: center;
  }

  &.has-text-align-left {
    text-align: left;
  }

  &.has-text-align-right {
    text-align: right;
  }

  &:hover {
    opacity: 1;
    background-color: rgb(var(--color-secondary));
    color: rgb(var(--color-base));
  }

  &.has-background,
  &.has-text-color {
    &:hover {
      opacity: 0.72 !important;
    }
  }
}

.wp-block-buttons .wp-block-button__link[target="_blank"] {
  padding-right: calc(50px + 1em);
  padding-left: 20px;
  position: relative;

  &::before {
    content: "";
    display: inline-block;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background-color: rgb(var(--color-base));
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    transition: border-color 0.3s;
    left: auto;
    right: 20px;
  }

  &::after {
    content: "";
    display: inline-block;
    width: 18px;
    height: 18px;
    /* background-image: url(../img/icon/icon-blank.svg); */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Crect width='40' height='40' fill='none'/%3E%3Cpath d='M11.3.6h26.1c1.1,0,2,.9,2,2v26.1c0,1.1-.9,2-2,2H11.3c-1.1,0-2-.9-2-2V2.6c0-1.1.9-2,2-2ZM35.4,4.6H13.3v22.1h22.1V4.6Z' fill='%23ffaf01'/%3E%3Cpath d='M26.3,39.4H2.6c-1.1,0-2-.9-2-2V13.7c0-1.1.9-2,2-2s2,.9,2,2v21.6h21.6c1.1,0,2,.9,2,2s-.9,2-2,2Z' fill='%23ffaf01'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 16px;
    position: absolute;
    top: 50%;
    left: auto;
    right: 25px;
    transform: translateY(-50%);
    transition: right 0.3s;
  }

  &:hover {

    /* opacity: 0.72; */
    &::after {
      left: auto;
      right: 25px;
    }
  }

  /* &[href$=".pdf"] {
    &::before {
      width: 1.65em;
      height: 1.65em;
    }

    &::after {
      width: 1.15em;
      height: 1.15em;
      background-image: url(../img/icon/icon-pdf.svg);
      background-size: 1.15em;
      right: 0.8em;
    }
  } */
}

.wp-block-buttons .is-style-outline .wp-block-button__link[target="_blank"],
.wp-block-buttons .is-style-outline-arrow-right .wp-block-button__link[target="_blank"],
.wp-block-buttons .is-style-outline-arrow-left .wp-block-button__link[target="_blank"] {
  &:hover {
    opacity: 1;
    background-color: rgb(var(--color-secondary));
    color: rgb(var(--color-base));

  }

  &::before {
    background-color: rgb(var(--color-primary));
  }

  &::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Crect width='40' height='40' fill='none'/%3E%3Cpath d='M11.3.6h26.1c1.1,0,2,.9,2,2v26.1c0,1.1-.9,2-2,2H11.3c-1.1,0-2-.9-2-2V2.6c0-1.1.9-2,2-2ZM35.4,4.6H13.3v22.1h22.1V4.6Z' fill='%23ffffff'/%3E%3Cpath d='M26.3,39.4H2.6c-1.1,0-2-.9-2-2V13.7c0-1.1.9-2,2-2s2,.9,2,2v21.6h21.6c1.1,0,2,.9,2,2s-.9,2-2,2Z' fill='%23ffffff'/%3E%3C/svg%3E");
  }
}


.wp-block-accordion-heading {
  font-family: var(--font-jp);
  font-weight: var(--weight-semibold);
  color: rgb(var(--color-primary));
  background-color: rgb(var(--color-base-2));
  border-top: 1px solid rgb(var(--color-primary));
}

.wp-block-accordion-heading__toggle,
.wp-block-accordion-heading__toggle:focus,
.wp-block-accordion-heading__toggle:hover {
  /* padding-left: 1rem;
  padding-right: 1rem; */
  position: relative;
}


.wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title {
  text-decoration: none;
}

.wp-block-accordion-heading__toggle-icon {
  /*  */
  text-indent: -9999px;
  position: relative;
}

.wp-block-accordion-heading__toggle-icon::before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 2px;
  aspect-ratio: 1;
  background-color: rgb(var(--color-primary));
  position: absolute;
  top: 50%;
  right: 0;
  transform-origin: center;
  transform: translateY(-50%);
  transition: transform 0.3s;
}

.wp-block-accordion-heading__toggle-icon::after {
  content: "";
  display: inline-block;
  width: 2px;
  height: 1em;
  aspect-ratio: 1;
  background-color: rgb(var(--color-primary));
  position: absolute;
  top: 50%;
  right: 0.8rem;
  transform-origin: center;
  transform: translateY(-50%);
  transition: opacity 0.3s;
}

/* .wp-block-accordion-item.is-open>.wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon {
	transform: rotate(0deg);
}
.wp-block-accordion-item.is-open>.wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon::after {
	opacity: 0;
} */

.wp-block-accordion-panel {
  transition: height 0.3s;
}

.wp-block-accordion-panel[aria-hidden=true],
.wp-block-accordion-panel[inert] {
  display: block;
  height: 0;
  opacity: 0;
}

.wp-block-accordion-panel[aria-hidden=false],
.wp-block-accordion-panel {
  height: auto;
  opacity: 1;
}

.wp-block-query {}

.wp-block-post-template {
  list-style: none;
  padding: 0;

}

.wp-block-post {
  width: 100%;
  margin: 0 0 1.5em;
  padding: 0 0 1.5em;
  border-bottom: 1px solid rgba(var(--color-secondary), 0.3);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  color: rgb(var(--color-contrast));


  .wp-block-post-date {
    font-size: 0.875rem;
    font-family: var(--font-en);
    font-weight: var(--weight-normal);
    font-style: normal;
    color: rgb(var(--color-primary)) !important;
    letter-spacing: 0.05em;
  }

  .wp-block-post-terms {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    list-style: none;
    padding: 0;
    margin: 0;
    font-family: var(--font-jp);

    a {
      min-width: 4.5rem;
      font-size: 0.875rem;
      padding: 0.286em 0.5em;
      line-height: 1;
      text-align: center;
      color: rgb(var(--color-primary));
      border: 1px solid currentColor;
      border-radius: 0.25em;


      &:hover {
        opacity: 1;
        color: rgb(var(--color-primary));
        background-color: rgb(var(--color-primary-light));
      }
    }

    .wp-block-post-terms__separator {
      display: none;
    }
  }

  .wp-block-post-title {
    width: 100%;
    font-size: 1em;
    font-family: var(--font-jp);
    font-weight: var(--weight-normal);
    background: none;
    margin: 0.5em 0 0;
    padding: 0;
    border: none;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;

    @media screen and (min-width: 768px) {
      -webkit-line-clamp: 1;
    }

  }
}

/*
 * 7. page
 * top
 */

.mainvisual {
  width: 100%;
  padding: 8rem 0 0;
  /* height: 30rem; */
  overflow: hidden;

  @media screen and (min-width: 768px) {
    padding: 8rem 0 0;
  }

  @media screen and (min-width: 1025px) {
    padding: 8rem 0 0;
  }
}


.top .topics {
  margin: 20px auto 0;
  padding: 2rem 0 2.5rem;
  position: relative;

  @media screen and (min-width: 960px) {
    margin: 50px auto 0;
  }

  &::after {
    content: "";
    display: block;
    width: 100vw;
    height: 30px;
    background: url(../img/wave-secondary.svg) repeat-x left 10% bottom / auto 100%;
    position: absolute;
    top: -20px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;

    @media screen and (min-width: 768px) {
      height: 50px;
    }

  }

  .inner {
    @media screen and (min-width: 960px) {
      border-radius: 100vmax;
    }
  }

  .topics-ttl {
    width: fit-content;
    font-size: 33px;
    font-family: var(--font-en);
    text-align: center;
    margin: 0 auto -33px 0;
    font-weight: var(--weight-bold);
    color: rgb(var(--color-primary));
    letter-spacing: 0.05em;
    line-height: 1;
    position: relative;
    z-index: 3;
    transform: translate(16px, 20px);

    @media screen and (min-width: 768px) {
      margin: 0 auto -15px 0;
      transform: translate(30px, 0);
    }

    &::before {
      content: attr(data-text);
      color: rgb(var(--color-base));
      position: absolute;
      inset: 0;
      -webkit-text-stroke: 10px rgb(var(--color-base));
      text-stroke: 10px rgb(var(--color-base));
      paint-order: stroke;
      z-index: -1;
    }
  }

  .slider-container {
    padding-top: 50px;
    position: relative;
    border-radius: 20px;
    background-color: rgb(var(--color-base));
    overflow: hidden;

    @media screen and (min-width: 768px) {
      padding-top: 0;
      border-radius: 100vmax;
    }
  }

  .swiper-wrapper {
    list-style: none;
    padding: 0;
    margin: 0;
  }

  .post-list-item {
    margin: 0;

    @media screen and (min-width: 768px) {
      padding-right: 120px;
    }


  }
}


.topics {

  .swiper-button-prev,
  .swiper-button-next {
    width: 30px;
    height: 30px;
    background-color: rgb(var(--color-primary));
    border-radius: 50%;
    top: 20px;
    margin-top: 0;

    @media screen and (min-width: 768px) {
      top: 31px;
    }

    &:hover {
      background-color: rgb(var(--color-secondary));
    }

    &::after {
      width: 14px;
      height: 14px;
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23FFffff' viewBox='0 0 6 10'%3E%3Cg transform='translate(1 1)'%3E%3Cpath d='M980.589,1223.3a1,1,0,0,1-.707-1.707l3.293-3.293L979.882,1215a1,1,0,0,1,1.414-1.414l4,4a1,1,0,0,1,0,1.414l-4,4A1,1,0,0,1,980.589,1223.3Z' transform='translate(-980.589 -1214.295)'/%3E%3C/g%3E%3C/svg%3E") no-repeat center center / contain;
    }

  }

  .swiper-button-prev,
  .swiper-rtl .swiper-button-next {
    left: auto;
    right: 55px;

    @media screen and (min-width: 768px) {
      right: 70px;
    }
  }

  .swiper-button-next,
  .swiper-rtl .swiper-button-prev {
    right: 15px;
    left: auto;

    @media screen and (min-width: 768px) {
      right: 30px;
    }
  }

}


.top .about {
  .btn {
    margin-top: 50px;
  }

  .section-title {
    position: relative;

    &::before {
      content: "";
      display: block;
      width: 80%;
      height: 3em;
      max-width: 264px;
      max-height: 104px;
      background: url(../img/fukidashi-hajimete.svg) no-repeat center / 100% auto;
      margin: 0 auto 10px;
      transform: rotate(-7deg);

      @media screen and (min-width: 960px) {
        position: absolute;
        top: -5rem;
        right: 4rem;
        margin: 0 auto;
        transform: rotate(0deg);
      }
    }
  }

  .has-point-box {
    padding-block: 5rem;
    margin-top: 2rem;
    margin-bottom: 5rem;

    @media screen and (min-width: 480px) {
      padding-block: 8rem;
      margin-top: 4rem;
      margin-bottom: 8rem;

    }

    @media screen and (min-width: 960px) {
      padding-block: 6.25rem;
      margin-top: 0;
      margin-bottom: 3rem;
    }

    .point {
      background-repeat: no-repeat;
      background-size: 100% auto;
      background-position: center;
      position: absolute;
      z-index: 2;

      &.point-img1 {
        background-image: url(../img/about01.png);
        width: 40%;
        /* height: 15%; */
        aspect-ratio: 240 / 220;
        max-width: 240px;
        max-height: 220px;
        top: -5%;
        left: -5%;

        @media screen and (min-width: 480px) {
          /* height: 40%; */
        }

        @media screen and (min-width: 960px) {
          width: 25%;
          top: 10%;
        }
      }

      &.point-img2 {
        background-image: url(../img/about02.png);
        width: 40%;
        /* height: 15%; */
        aspect-ratio: 260 / 265;
        max-width: 260px;
        max-height: 265px;
        bottom: -7%;
        left: -5%;

        @media screen and (min-width: 480px) {
          bottom: -11%;
        }

        @media screen and (min-width: 768px) {
          bottom: -17%;
        }

        @media screen and (min-width: 960px) {
          width: 25%;
          bottom: 5%;
          left: -10%;
        }
      }

      &.point-img3 {
        background-image: url(../img/about03.png);
        width: 50%;
        /* height: 17%; */
        aspect-ratio: 330 / 296;
        max-width: 330px;
        max-height: 296px;
        top: -6%;
        right: -8%;
        transform: rotate(5deg);

        @media screen and (min-width: 960px) {
          width: 32%;
          top: 12%;
          right: -12%;
        }
      }

      &.point-img4 {
        background-image: url(../img/about04.png);
        width: 40%;
        /* height: 15%; */
        aspect-ratio: 240 / 230;
        max-width: 240px;
        max-height: 230px;
        bottom: -7%;
        right: -5%;

        @media screen and (min-width: 480px) {
          bottom: -11%;
        }

        @media screen and (min-width: 768px) {
          bottom: -17%;
        }

        @media screen and (min-width: 960px) {
          width: 25%;
          bottom: 5%;
          right: -10%;
        }
      }
    }

  }

}

.top .photogallery {
  .has-point-box {
    padding-block: 4rem;
    margin-top: 2rem;
    margin-bottom: 2rem;

    @media screen and (min-width: 480px) {
      margin-top: 3rem;
    }
  }

  .ticker-card-wrap .swiper.ticker {
    padding: 4rem 0 2rem;
  }

  .section-title {
    --min-size: 32;
    --max-size: 42;
    margin-top: -6rem;
    margin-bottom: 20px;

    @media screen and (min-width: 960px) {
      margin-top: -7rem;
    }

    &::before {
      content: "";
      display: block;
      width: 90%;
      height: 2.5em;
      max-width: 360px;
      background: url(../img/fukidashi-kodomo.svg) no-repeat center center / 100% auto;
      margin: 0 auto 10px;
    }
  }

  .point {
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: center;
    position: absolute;
    z-index: 2;

    &.point-tomato {
      background-image: url(../img/point-tomato-futi.png);
      width: 20%;
      /* height: 8%; */
      aspect-ratio: 135/95;
      max-width: 135px;
      max-height: 95px;
      top: 2%;
      left: -5%;

      @media screen and (min-width: 480px) {
        width: 15%;
      }

      @media screen and (min-width: 768px) {
        top: -4%;
        left: 7%;
      }

      @media screen and (min-width: 960px) {
        top: -5%;
        left: 10%;
      }
    }

    &.point-potato {
      background-image: url(../img/point-potato-futi.png);
      width: 25%;
      /* height: 10%; */
      aspect-ratio: 200/203;

      max-width: 200px;
      max-height: 203px;
      top: 10%;
      left: -11%;

      @media screen and (min-width: 480px) {
        width: 20%;
        left: -8%;
      }

      @media screen and (min-width: 960px) {
        width: 18%;
        left: -5%;
      }
    }

    &.point-onion {
      background-image: url(../img/point-onion-futi.png);
      width: 20%;
      /* height: 10%; */
      aspect-ratio: 130/128;

      max-width: 130px;
      max-height: 128px;
      bottom: -3%;
      left: -5%;

      @media screen and (min-width: 480px) {
        width: 15%;
        bottom: 5%;
        left: -7%;
      }

      @media screen and (min-width: 960px) {
        bottom: 8%;
        left: -4%;
        width: 13%;
      }
    }

    &.point-carrot {
      background-image: url(../img/point-carrot-futi.png);
      width: 16%;
      /* height: 9%; */
      aspect-ratio: 85/115;

      max-width: 85px;
      max-height: 115px;
      top: 0;
      right: -5%;

      @media screen and (min-width: 480px) {
        width: 12%;
      }

      @media screen and (min-width: 768px) {
        top: -7%;
        right: 8%;
      }

      @media screen and (min-width: 960px) {
        top: -8%;
        right: 10%;
      }

    }

    &.point-pumpkin {
      background-image: url(../img/point-pumpkin-futi.png);
      width: 20%;
      /* height: 8%; */
      aspect-ratio: 150/128;

      max-width: 150px;
      max-height: 128px;
      top: 10%;
      right: -5%;

      @media screen and (min-width: 480px) {
        width: 17%;
        top: 14%;
        right: -7%;
      }

      @media screen and (min-width: 960px) {
        width: 14%;
        right: -5%;
      }

    }

    &.point-sweetpotato {
      background-image: url(../img/point-sweetpotato-futi.png);
      width: 28%;
      /* height: 10%; */
      aspect-ratio: 150/128;
      max-width: 150px;
      max-height: 128px;
      bottom: -4%;
      right: -8%;

      @media screen and (min-width: 480px) {
        width: 18%;
        bottom: 4%;
        right: -6%;
      }

      @media screen and (min-width: 960px) {
        width: 16%;
        bottom: 7%;
        right: -5%;
      }

    }

  }
}

.top .oyako {
  margin-bottom: 2.5rem;

  &::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 0 0 40px 40px;
    overflow: hidden;
    background-color: rgb(var(--color-base));
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: -1;

    @media screen and (min-width: 480px) {
      border-radius: 0 0 60px 60px;
    }

    @media screen and (min-width: 960px) {
      border-radius: 0 0 100px 100px;
    }

    @media screen and (min-width: 1120px) {
      border-radius: 0 0 120px 120px;
    }
  }

  &::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-color: rgb(var(--color-secondary));
    position: absolute;
    bottom: -5rem;
    left: 0;
    z-index: -2;
  }

  .inner {
    max-width: calc(1200px + var(--padding-inline) * 2);
  }

  .flex {
    gap: 0;
    align-items: center;

    .flex-item {
      @media screen and (min-width: 480px) {
        width: 100%;
      }

      @media screen and (min-width: 960px) {
        width: 40%;
      }
    }

    .flex-item:last-of-type {
      @media screen and (min-width: 480px) {
        width: 100vw;
      }

      @media screen and (min-width: 960px) {
        width: 60%;
        margin-inline: 0;
      }
    }


  }

  .section-title {
    /* text-align: left; */
    margin-top: 0;
    margin-bottom: 25px;

    @media screen and (min-width: 960px) {
      margin-bottom: 40px;
      text-align: left;
    }
  }

  .desc {
    text-align: center;

    @media screen and (min-width: 960px) {
      text-align: left;
    }
  }

  .btn {
    margin-inline: auto;
    margin-top: 50px;
    margin-bottom: 80px;

    @media screen and (min-width: 960px) {
      margin-left: 0;
    }
  }

  .img-box {
    width: 100vw;
    margin-inline: calc(50% - 50vw);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    position: relative;
    padding-top: 30px;
    margin-bottom: 40px;

    @media screen and (min-width: 768px) {
      padding-top: 80px;
    }

    &::before,
    &::after {
      content: "";
      display: block;
      background-repeat: no-repeat;
      background-size: 100% auto;
      background-position: center;
      position: absolute;
      z-index: 3;
    }

    &::before {
      background-image: url(../img/point-nabe.png);
      width: 30%;
      /* height: 30%; */
      aspect-ratio: 160/118;
      max-width: 160px;
      max-height: 118px;
      bottom: -1%;
      left: -8%;

      @media screen and (min-width: 480px) {
        width: 20%;
        left: 0;
      }

      @media screen and (min-width: 960px) {
        left: 5%;
      }
    }

    &::after {
      background-image: url(../img/point-otama.png);
      width: 18%;
      /* height: 60%; */
      aspect-ratio: 85/161;
      max-width: 85px;
      max-height: 161px;
      bottom: -8%;
      right: 2%;
      transform: rotate(15deg);

      @media screen and (min-width: 480px) {
        width: 12%;
      }

      @media screen and (min-width: 960px) {
        right: -3%;
        bottom: 0;
      }
    }
  }

  .thumb {
    width: 180px;
    /* height: 330px; */
    border-radius: 20px;
    border: 8px solid rgb(var(--color-base-2));
    box-shadow: 0 3px 6px rgb(var(--color-contrast), 0.16);
    position: relative;
    overflow: hidden;

    @media screen and (min-width: 480px) {
      width: 115%;
    }

    @media screen and (min-width: 960px) {
      width: 120%;
      max-width: 250px;
    }

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    &:nth-of-type(1) {
      transform: translate(-6%, -20%) rotate(-5deg);

      @media screen and (min-width: 480px) {
        transform: translate(0, -20%) rotate(-5deg);
      }

      @media screen and (min-width: 960px) {
        transform: translate(22%, -20%) rotate(-5deg);
      }
    }

    &:nth-of-type(2) {
      transform: translate(-44%, 4%) rotate(10deg);
      z-index: 2;

      @media screen and (min-width: 480px) {
        transform: translate(0, 4%) rotate(10deg);
      }

      @media screen and (min-width: 960px) {
        transform: translate(14%, 4%) rotate(10deg);
      }

    }

    &:nth-of-type(3) {
      transform: translate(-64%, -20%) rotate(-355deg);

      @media screen and (min-width: 480px) {
        transform: translate(0, -20%) rotate(-355deg);
      }

      @media screen and (min-width: 960px) {
        transform: translate(6%, -20%) rotate(-355deg);
      }

    }
  }
}


.top .info {
  padding-bottom: 100px;

  @media screen and (min-width: 768px) {
    padding-bottom: 140px;
  }

  .section-title {
    width: fit-content;
    padding-inline: 1em;
    margin: 0 auto 40px;
    position: relative;

    &::before,
    &::after {
      content: "";
      display: block;
      width: 28px;
      height: 1.75em;
      position: absolute;
      top: 0;
    }

    &::before {
      width: 28px;
      background: url(../img/point-fork-wht.svg) no-repeat center / 100% auto;
      left: 0;

    }

    &::after {
      width: 34px;
      background: url(../img/point-spoon-wht.svg) no-repeat center / 100% auto;
      right: 0;

    }
  }

  .post-list {
    margin: 0 auto 50px;
  }

  .btn {
    margin-inline: auto;
  }
}

.top .house {
  /* margin-top: 2.5rem; */

  &::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 40px 40px 0 0;
    overflow: hidden;
    background-color: rgb(var(--color-base));
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;

    @media screen and (min-width: 480px) {
      border-radius: 60px 60px 0 0;
    }

    @media screen and (min-width: 960px) {
      border-radius: 100px 100px 0 0;
    }

    @media screen and (min-width: 1120px) {
      border-radius: 120px 120px 0 0;
    }
  }

  &::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-color: rgb(var(--color-secondary));
    position: absolute;
    top: 0;
    left: 0;
    z-index: -2;
  }

  .section-title {
    --min-size: 28;
    --max-size: 38;
    text-align: left;
    margin: 0 0 40px;
  }

  .btn {
    margin-top: 40px;
  }

  .flex {
    align-items: center;

    &:has(> .flex-item:nth-child(2)) {
      & .flex-item {
        @media screen and (min-width: 768px) {
          width: 80%;
          margin-inline: auto;
        }

        @media screen and (min-width: 1040px) {
          width: calc((100% - var(--column-gap))/2);
          margin-inline: 0;
        }
      }
    }
  }

  .flex-item {}

  .flex-item:has(.thumb) {
    &::after {
      content: "";
      display: block;
      width: 40%;
      /* height: 30%; */
      aspect-ratio: 260/120;
      max-width: 260px;
      background: url(../img/fukidashi-oishisasonomama.svg) no-repeat center / 100% auto;
      position: absolute;
      bottom: -5%;
      right: 0;
      /* right: -40px; */
      z-index: 2;
      /* @media screen and (min-width: 768px) {
      bottom: 0;
        }
@media screen and (min-width: 1025px) {
      bottom: -5%;
        } */
    }
  }

  .thumb {
    aspect-ratio: 560/420;
    border-radius: 20px;
    border: 8px solid rgb(var(--color-base-2));
    box-shadow: 0 3px 6px rgb(var(--color-contrast), 0.16);
    position: relative;
    overflow: hidden;

    @media screen and (min-width: 480px) {
      border-radius: 40px;
      border-width: 10px;
    }

    @media screen and (min-width: 960px) {
      border-radius: 80px;
      border-width: 12px;
      /* transform: translateX(40px); */
    }

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
}


@media (orientation: landscape) and (max-width: 767px) {
  /* デバイスが横向き、画面の横幅が 767px 以下の場合の記述 */
}