@charset "UTF-8";
/*---------------------------------------------------------------------------------
CSS構成
// 絶対に変更しないCSS
./assets/vendor/**.css

// メインで利用しているCSS
- style.css                 SCSSを集約したCSS

// SCSS構成
- external                  ./assets/vendor/**.cssを上書きする ※基本触らない
- foundation                基本の文字設定やWebフォントの読み込みなど ※基本触らない
- global                    @mixin, @function, 変数など ※基本触らない
- layout                    各ページを構成する大枠のレイアウト ※基本触らない
- object                    パーツやブロック
    ├─component             繰り返し使用される小さな単位のパーツ
    └─project               セクションや大きなブロック
- page                      下層ページ固有のスタイル
---------------------------------------------------------------------------------*/
/* ================================================================
external
================================================================ */
:root {
  /* container */
  --container-pd: max(2dvw, 40px);
  --container-value--base: 1340;
  --container-value--fluid01: 1760;
  --container-value--fluid02: 1140;
  --container-base: calc(var(--container-value--base) * 1px + var(--container-pd) * 2);
  --container-fluid01: calc(var(--container-value--fluid01) * 1px + var(--container-pd) * 2);
  --container-fluid02: calc(var(--container-value--fluid02) * 1px + var(--container-pd) * 2);
  --container-base--wide: calc(var(--container-value--base) / 2000 * 100dvw + var(--container-pd) * 2);
  --container-fluid01--wide: calc(var(--container-value--fluid01) / 2000 * 100dvw + var(--container-pd) * 2);
  --container-fluid02--wide: calc(var(--container-value--fluid02) / 2000 * 100dvw + var(--container-pd) * 2);
  /* space */
  --space-unit: .2dvw;
  --space-100: max(calc(var(--space-unit) * 25), 60px);
  --space-section: calc(var(--space-100) * 1);
  /* z-index */
  --z-page-top: 7000;
  --z-modal: 8000;
  --z-header: 9000;
  --z-nav: 9100;
  --z-dropdown: 9200;
  --z-hamburger: 9300;
  --z-loading: 9999;
  /* color */
  /* == color-primitive == */
  --base-orange-100: #;
  --base-orange-400: #f7894a;
  --base-orange-700: #F46615;
  --base-orange-900: #;
  --base-yellow-100: #;
  --base-yellow-400: #F6C96D;
  --base-yellow-700: #;
  --base-yellow-900: #;
  --base-brown-100: #D4C4B4;
  --base-brown-400: #;
  --base-brown-700: #856F59;
  --base-brown-900: #735D46;
  --base-beige-100: #FCF9F5;
  --base-beige-400: #FCF6EF;
  --base-beige-700: #ffd9b4;
  --base-beige-900: #;
  --base-white-100: #FCFBFA;
  --base-white-400: #;
  --base-white-700: #;
  --base-white-900: #;
  --base-black-100: ;
  --base-black-400: #55422E;
  --base-black-700: #3a322b;
  --base-black-900: #;
  --base-gray-100: lightgray;
  --base-gray-400: gray;
  --base-gray-700: #;
  --base-gray-900: #;
  --base-red-400: red;
  /* == color-semantic == */
  --bg-body: var(--base-beige-400);
  --bg-white: var(--base-white-100);
  --bg-light: var(--base-beige-100);
  --bg-middle: var(--base-beige-700);
  --bg-dark: var(--base-brown-900);
  --text-black: var(--base-black-400);
  --text-white: var(--base-white-100);
  --text-orange: var(--base-orange-700);
  --caution-red: var(--base-red-400);
  --line-hr: var(--base-brown-100);
  --line-underline: var(--base-brown-700);
  --line-text: var(--base-orange-400);
  --button-primary: var(--base-orange-700);
  --scrollbar-frame: var(--base-brown-100);
  --scrollbar-thumb: var(--base-brown-700);
  --accent-orange: var(--base-orange-700);
  --accent-yellow: var(--base-yellow-400);
  --accent-brown: var(--base-brown-900);
  --shadow-black: var(--base-black-700);
  /* gradation */
  --grd-button-default: linear-gradient(to right bottom, var(--accent-orange), var(--accent-orange));
  --grd-button-hover: linear-gradient(to right bottom, var(--accent-orange), var(--accent-yellow));
  /* pattern */
  --pattern-dot: url(../assets/images/common/bg-dot.png) repeat center / 2%;
  --pattern-texture: url(../assets/images/common/bg-texture.jpg) repeat center / cover;
  /* font */
  --fs-xxs: max(.5dvw, .5625rem);
  --fs-xs: max(.6dvw, .625rem);
  --fs-sm: max(.7dvw, .75rem);
  --fs-md: max(.8dvw, .875rem);
  --fs-lg: max(.9dvw, 1rem);
  --fs-xl: max(1dvw, 1.125rem);
  --fs-xxl: max(1.1dvw, 1.25rem);
  --ls-ja-min: .0em;
  --ls-ja-narrow: .02em;
  --ls-ja-base: .04em;
  --ls-ja-wide: .1em;
  --ls-en-min: .02em;
  --ls-en-narrow: .04em;
  --ls-en-base: .06em;
  --ls-en-wide: .1em;
  --lh-single: 1;
  --lh-min: 1.25;
  --lh-narrow: 1.5;
  --lh-base: 1.75;
  --lh-wide: 2.0;
  --ff-ja-primary: "Zen Kaku Gothic New";
  --ff-ja-secondary: normal 700 var(--fs-md) /var(--lh-narrow) "Kaisei Opti";
  --ff-en-primary: "Fredoka";
  --ff-base: "Helvetica Neue",
    Arial,
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans",
    "Noto Sans JP",
    sans-serif;
  /* transition */
  --transition-button: 0.2s;
  --transition-hamburger: 0.5s;
  --transition-nav: 0.3s;
  --transition-modal: 0.2s;
  --transition-form: 0.1s;
  --transition-fade: 1.6s;
  --transition-accordion: .3s;
  /* animation */
  --animation-spring: linear(0, 0.0107, 0.0398, 0.0834, 0.138, 0.2003, 0.2677, 0.3379, 0.4089, 0.4791, 0.5471, 0.612, 0.6731, 0.7297, 0.7815, 0.8283, 0.87, 0.9068, 0.9388, 0.9662, 0.9892, 1.0083, 1.0237, 1.0357, 1.0449, 1.0514, 1.0556, 1.058, 1.0587, 1.0581, 1.0563, 1.0538, 1.0506, 1.0469, 1.043, 1.0388, 1.0347, 1.0306, 1.0266, 1.0228, 1.0192, 1.0159, 1.0128, 1.0101, 1.0076, 1.0055, 1.0036, 1.002, 1.0006, 0.9995, 0.9986, 0.9979, 0.9974, 0.997, 0.9967, 0.9966, 0.9966, 0.9966, 0.9967, 0.9968, 0.997, 0.9972, 0.9975, 0.9977, 0.998, 0.9982, 0.9984, 0.9987, 0.9989, 0.9991, 0.9992, 0.9994, 0.9996, 0.9997, 0.9998, 0.9999, 1, 1, 1.0001, 1.0001, 1.0002, 1.0002, 1.0002, 1.0002, 1.0002, 1.0002, 1.0002, 1.0002, 1.0002, 1.0002, 1.0001, 1.0001, 1.0001, 1.0001, 1.0001, 1.0001, 1.0001, 1.0001, 1, 1, 1);
  /* aspect-ratio */
  --ar-gold-primary: 1.618 / 1;
  --ar-gold-secondary: 1.7321 / 1;
  --ar-silver-primary: 1.414 / 1;
  --ar-silver-secondary: 2.414 / 1;
}

/* 
destyle-custom
---------------------------------------------------------------- */
*,
::before,
::after {
  min-width: initial;
}

/*
bootstrap-custom
---------------------------------------------------------------- */
h1,
h2,
h3,
h4,
h5,
h6 {
  padding: 0;
  margin: 0;
  font-size: initial;
  line-height: 1;
}

hr {
  margin: initial;
  color: inherit;
  border: initial;
  border-top: initial;
  opacity: initial;
}

p {
  margin: 0;
}

address {
  margin: 0;
}

tbody,
td,
tfoot,
th,
thead,
tr {
  font-weight: 400;
  border: none;
}

a {
  color: #000;
  text-decoration: none;
}

svg,
img,
embed,
object,
iframe form {
  vertical-align: bottom;
}

figure {
  margin: initial;
}

ul,
ol,
dl {
  padding: 0;
  margin: 0;
}

dt,
dd {
  margin: 0;
  font-weight: 400;
}

.shadow {
  box-shadow: none !important;
}

.card {
  border: none;
}

.icon-link {
  display: initial;
  gap: initial;
  align-items: initial;
  text-decoration-color: initial;
  text-underline-offset: initial;
  backface-visibility: initial;
}

.lead {
  font-size: inherit;
  font-weight: initial;
}

.table > :not(caption) > * > * {
  padding: inherit;
  color: inherit;
  background-color: inherit;
  border-bottom-width: inherit;
  box-shadow: inherit;
}

.bg-white {
  --bs-bg-opacity: initial;
  background-color: initial !important;
}

mark,
.mark {
  padding: initial;
  background-color: initial;
}

a:hover {
  --bs-link-color-rgb: none;
}

.card {
  all: unset;
}

.bg-dark {
  --bs-bg-opacity: 0;
  background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important;
}

/* ================================================================
foundation
================================================================ */
/*
base
---------------------------------------------------------------- */
html {
  font-size: 1rem;
  overflow-x: clip;
}

body {
  font-family: YakuHanJP, var(--ff-ja-primary), var(--ff-base);
  font-size: var(--fs-md);
  letter-spacing: var(--ls-ja-base);
  color: var(--text-black);
  font-feature-settings: "palt";
  -webkit-font-feature-settings: "palt";
  background: var(--bg-body);
  overflow-wrap: anywhere;
  word-break: normal;
  line-break: strict;
  overflow-x: clip;
  position: relative;
}
body::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: var(--pattern-dot);
  mix-blend-mode: darken;
  opacity: 5%;
  position: absolute;
  z-index: -10;
  top: 0;
  left: 0;
}

div {
  line-height: var(--lh-single);
}

p {
  line-height: var(--lh-base);
}
p.small {
  display: block;
  margin-top: 0.25em;
  font-size: 0.875em;
}

a {
  display: inline-block;
  color: var(--text-black);
}
@media (any-hover: hover) {
  a[href^="tel:"] {
    pointer-events: none;
    cursor: text;
  }
}

img,
picture {
  display: inline-block;
  width: 100%;
  height: auto;
}

svg {
  display: inline-block;
}

use {
  display: inline-block;
  width: 100%;
  height: auto;
}

/* ====================
section
==================== */
section {
  padding-block: calc(var(--space-100) * 1.2);
}
section.bg-middle {
  margin: 0 calc(50% - 50dvw);
  padding-inline: calc(50dvw - 50%);
  background: var(--bg-middle);
  position: relative;
}
section.bg-middle[class*=ct-fluid] {
  padding-inline: 0;
}
section.bg-middle::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: var(--pattern-dot);
  mix-blend-mode: darken;
  opacity: 5.5%;
  position: absolute;
  top: 0;
  left: 0;
}
section.bg-middle > * {
  position: relative;
  z-index: 10;
}
section.bg-brown {
  margin: 0 calc(50% - 50dvw);
  padding: calc(var(--space-100) * 1.2) calc(50dvw - 50%);
  background: var(--bg-dark);
  color: var(--text-white);
  position: relative;
}
section.bg-brown::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: var(--pattern-texture);
  mix-blend-mode: color-burn;
  opacity: 50%;
  position: absolute;
  top: 0;
  left: 0;
}

/* ====================
list
==================== */
ol:not([class]) {
  counter-reset: ol-counter;
}
ol:not([class]) > li {
  padding-left: 1.5em;
  line-height: var(--lh-base);
  position: relative;
}
ol:not([class]) > li::before {
  content: counter(ol-counter) ".";
  counter-increment: ol-counter;
  line-height: var(--lh-single);
  position: absolute;
  left: 0;
  top: calc(1em * var(--lh-base) / 2 - 0.5em);
}

ul:not([class]) {
  line-height: var(--lh-narrow);
}
ul:not([class]) > li {
  position: relative;
  padding-left: 1.25em;
}
ul:not([class]) > li::before {
  content: "";
  display: block;
  width: 0.2em;
  aspect-ratio: 1/1;
  background: var(--text-black);
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 0.4em;
  transform: translate(-50%, -50%);
}

ul.is-col {
  display: flex;
  flex-wrap: wrap;
}
ul.is-col > li:not(:last-child)::after {
  content: "/";
  display: inline-block;
  margin-inline: 0.5em;
}

dl:not([class]) > div {
  display: flex;
  flex-wrap: wrap;
}
dl:not([class]) dt,
dl:not([class]) dd {
  flex-shrink: 0;
  line-height: var(--lh-narrow);
}
dl:not([class]) dt::after {
  content: "：";
  display: inline-block;
  margin-inline: 0.25em;
}

/* ====================
table
==================== */
*:has(> table) {
  container-name: table-block;
  container-type: inline-size;
}
*:has(> table) > table:not([class]) {
  width: 100%;
  margin-inline: auto;
  line-height: var(--lh-narrow);
}
*:has(> table) > table:not([class]) tr {
  border-bottom: 1px solid var(--line-hr);
}
*:has(> table) > table:not([class]) th,
*:has(> table) > table:not([class]) td {
  vertical-align: middle;
}
*:has(> table) > table:not([class]) th {
  width: 25%;
  padding: 1.5em 0.75em;
  font-weight: 500;
  color: var(--text-orange);
  box-sizing: content-box;
  border-bottom: 1px solid var(--accent-orange);
}
*:has(> table) > table:not([class]) td {
  padding: 1.5em 0.75em 1.5em 1em;
}
@container table-block (max-width: 576px) {
  *:has(> table) > table:not([class]) {
    width: 100%;
  }
  *:has(> table) > table:not([class]) tr {
    display: block;
    padding-block: 1.25em;
  }
  *:has(> table) > table:not([class]) th,
  *:has(> table) > table:not([class]) td {
    display: block;
    width: 100%;
    padding: 0;
  }
  *:has(> table) > table:not([class]) th {
    border: none;
  }
  *:has(> table) > table:not([class]) td {
    margin-top: 0.5em;
  }
}

form:has(> table) > table:not([class]) tr {
  border-bottom: none;
}
form:has(> table) > table:not([class]) tr:has(*[required]) th::after {
  content: "*必須";
  margin-left: 0.25em;
  font-size: 0.75em;
  font-weight: 500;
  color: var(--caution-red);
  vertical-align: top;
}
form:has(> table) > table:not([class]) tr:has(textarea) th {
  vertical-align: top;
}
form:has(> table) > table:not([class]) th {
  color: var(--text-black);
  border-bottom: none;
  box-sizing: border-box;
}
form:has(> table) > table:not([class]) td:has(> label), form:has(> table) > table:not([class]) td:has(> * > label + .unit) {
  display: flex;
  align-items: center;
  gap: 0.5em 1.5em;
  flex-wrap: wrap;
}

/* ====================
form
==================== */
::-moz-placeholder {
  color: var(--line-hr);
}
::placeholder {
  color: var(--line-hr);
}

label {
  display: flex;
  align-items: center;
  gap: 0.5em;
}
label > input {
  flex-shrink: 0;
}
label > span {
  flex-shrink: 0;
  line-height: var(--lh-single);
  white-space: nowrap;
}
label:has(input[type=checkbox]), label:has(input[type=radio]) {
  font-size: 1em;
  cursor: pointer;
}

input,
textarea,
select {
  font-size: 0.95em;
}

input:not([type=file]):not([type=checkbox]):not([type=radio]),
textarea,
select {
  padding: 0.725em;
  background: var(--text-white);
  border: 1px solid var(--line-hr);
  border-radius: 4px;
  transition: filter var(--animation-input);
}

input:not([type=file]),
textarea {
  width: 100%;
}

textarea {
  height: 8lh;
  line-height: var(--lh-base);
}

label:has(> select) {
  position: relative;
}
label:has(> select) > select {
  padding-right: 2.1em;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  cursor: pointer;
}
label:has(> select) > select::-ms-expand {
  display: none;
}
label:has(> select) > select {
  width: -moz-fit-content;
  width: fit-content;
}
label:has(> select)::before {
  content: "";
  position: absolute;
  display: block;
  width: 0.65em;
  aspect-ratio: 2/1;
  background: var(--text-black);
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  right: 0.725em;
  top: 50%;
  transform: translateY(-50%);
}

*:has(> label + .unit) {
  display: flex;
  align-items: center;
  gap: 0.5em;
}

input[type=radio],
input[type=checkbox] {
  width: 1.25em;
  aspect-ratio: 1/1;
  padding: 0;
  border: solid 1px var(--line-hr);
  background: var(--text-white);
  border-radius: 2px;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  position: relative;
  cursor: pointer;
}

input[type=radio] {
  border-radius: 50%;
}
input[type=radio]::before {
  transition: opacity var(--animation-input);
  opacity: 1;
  animation: radioChecked 0.2s forwards;
}
@keyframes radioChecked {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
input[type=radio]:checked::before {
  content: "";
  display: block;
  width: 60%;
  aspect-ratio: 1/1;
  border-radius: 50%;
  background: var(--accent-orange);
  opacity: 1;
  position: absolute;
  top: 20%;
  left: 20%;
}

input[type=checkbox]::before {
  content: "";
  display: block;
  width: 1em;
  aspect-ratio: 2/1;
  border-left: 0.2em solid var(--accent-orange);
  border-bottom: 0.2em solid var(--accent-orange);
  transform: rotate(-45deg);
  opacity: 0;
  transition: opacity var(--animation-input);
  position: absolute;
  top: 0.2em;
  left: 0.05em;
}
input[type=checkbox]:checked::before {
  opacity: 1;
}

/*
responsive-visible
---------------------------------------------------------------- */
.xs-visible {
  display: none;
}
@media screen and (max-width: 320px) {
  .xs-visible {
    display: block;
  }
}

.sm-visible {
  display: none;
}
@media screen and (max-width: 576px) {
  .sm-visible {
    display: block;
  }
}

.md-visible {
  display: none;
}
@media screen and (max-width: 768px) {
  .md-visible {
    display: block;
  }
}

.lg-visible {
  display: none;
}
@media screen and (max-width: 992px) {
  .lg-visible {
    display: block;
  }
}

.xl-visible {
  display: none;
}
@media screen and (max-width: 1200px) {
  .xl-visible {
    display: block;
  }
}

.xxl-visible {
  display: none;
}
@media screen and (max-width: 1400px) {
  .xxl-visible {
    display: block;
  }
}

@media screen and (max-width: 576px) {
  .sm-hidden {
    display: none;
  }
}

@media screen and (max-width: 768px) {
  .md-hidden {
    display: none;
  }
}

@media screen and (max-width: 991px) {
  .lg-hidden {
    display: none;
  }
}

@media screen and (max-width: 1200px) {
  .xl-hidden {
    display: none;
  }
}

@media screen and (max-width: 1400px) {
  .xxl-hidden {
    display: none;
  }
}

/*
animation
---------------------------------------------------------------- */
/* .js-fadeIn */
.js-fadeIn {
  opacity: 0;
  visibility: hidden;
}
.js-fadeIn.is-animated {
  animation-name: fadeIn;
  animation-duration: 0.8s;
  animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  animation-fill-mode: forwards;
}
@keyframes fadeIn {
  0% {
    opacity: 0;
    visibility: hidden;
  }
  100% {
    opacity: 1;
    visibility: visible;
  }
}

/* .js-wave */
.js-en-wave,
.js-wave {
  display: inline-block;
}
.js-en-wave > span,
.js-wave > span {
  display: inline-block;
  white-space: pre;
}

/* === animation-custom === */
/* delay */
@media screen and (min-width: 768px) {
  .animation-delay-1 {
    animation-delay: 0.1s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-2 {
    animation-delay: 0.2s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-3 {
    animation-delay: 0.3s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-4 {
    animation-delay: 0.4s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-5 {
    animation-delay: 0.5s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-6 {
    animation-delay: 0.6s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-7 {
    animation-delay: 0.7s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-8 {
    animation-delay: 0.8s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-9 {
    animation-delay: 0.9s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-10 {
    animation-delay: 1s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-11 {
    animation-delay: 1.1s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-12 {
    animation-delay: 1.2s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-13 {
    animation-delay: 1.3s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-14 {
    animation-delay: 1.4s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-15 {
    animation-delay: 1.5s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-16 {
    animation-delay: 1.6s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-17 {
    animation-delay: 1.7s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-18 {
    animation-delay: 1.8s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-19 {
    animation-delay: 1.9s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-20 {
    animation-delay: 2s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-21 {
    animation-delay: 2.1s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-22 {
    animation-delay: 2.2s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-23 {
    animation-delay: 2.3s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-24 {
    animation-delay: 2.4s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-25 {
    animation-delay: 2.5s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-26 {
    animation-delay: 2.6s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-27 {
    animation-delay: 2.7s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-28 {
    animation-delay: 2.8s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-29 {
    animation-delay: 2.9s;
  }
}
@media screen and (min-width: 768px) {
  .animation-delay-30 {
    animation-delay: 3s;
  }
}
/* ================================================================
layout
================================================================ */
/* .l-wrapper */
.l-wrapper {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* .l-header */
.l-header {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: var(--z-header);
}

/* .l-main */
.l-main {
  /* l-main内の要素が存在しない場合、
     親要素のサイズをl-mainに割り当てる */
  flex: 1;
}

/* .l-container */
.l-container {
  max-width: var(--container-base);
  padding-inline: var(--container-pd);
  margin-inline: auto;
}
@media screen and (min-width: 2001px) {
  .l-container {
    max-width: var(--container-base--wide);
  }
}
.l-container .ct-fluid01 {
  margin-inline: calc(50% - 50dvw);
}
.l-container .ct-fluid01 > .inner {
  max-width: var(--container-fluid01);
  margin-inline: auto;
  padding-inline: var(--container-pd);
}
@media screen and (min-width: 2001px) {
  .l-container .ct-fluid01 > .inner {
    max-width: var(--container-fluid01--wide);
  }
}
.l-container .ct-fluid02 {
  margin-inline: calc(50% - 50dvw);
}
.l-container .ct-fluid02 > .inner {
  max-width: var(--container-fluid02);
  margin-inline: auto;
  padding-inline: var(--container-pd);
}
@media screen and (min-width: 2001px) {
  .l-container .ct-fluid02 > .inner {
    max-width: var(--container-fluid02--wide);
  }
}
@media screen and (max-width: 768px) {
  .l-container {
    max-width: 100%;
    padding-inline: 5%;
  }
  .l-container .ct-fluid01 > .inner,
  .l-container .ct-fluid02 > .inner,
  .l-container .ct-fluid03 > .inner {
    max-width: 100%;
    padding-inline: 5%;
  }
}

/* .l-footer */
.l-footer {
  /* 1ページ内のコンテンツ高さが100vhに満たない場合
     p-footerを画面最下部に寄せる */
  justify-self: end;
}

/* ================================================================
object
================================================================ */
/*
.c-swiper-fade
---------------------------------------------------------------- */
.c-swiper-fade {
  /* === base-setting === */
}
.c-swiper-fade .slide {
  height: 100%;
}
.c-swiper-fade .swiper,
.c-swiper-fade .swiper-wrapper,
.c-swiper-fade .swiper-slide,
.c-swiper-fade .media {
  height: 100%;
}
.c-swiper-fade .swiper-wrapper {
  transition-timing-function: linear !important;
}
.c-swiper-fade .swiper-slide {
  transition-property: opacity !important;
}
.c-swiper-fade .swiper-slide[class*=-active] .media > img {
  transition-delay: 0s;
  transform: scale(1.025);
}
.c-swiper-fade .media > img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  transition: transform 7s 1s ease-out;
}

.c-swiper-gallery .gallery-main {
  position: relative;
  width: 100%;
}
.c-swiper-gallery .gallery-main .slide,
.c-swiper-gallery .gallery-main .swiper,
.c-swiper-gallery .gallery-main .swiper-wrapper,
.c-swiper-gallery .gallery-main .swiper-slide {
  height: 100%;
}
.c-swiper-gallery .gallery-main .media {
  height: 100%;
}
.c-swiper-gallery .gallery-main .media img {
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.c-swiper-gallery .gallery-main.swiper-slide[class*=-active] .slide__media img {
  opacity: 1;
}
.c-swiper-gallery {
  /* navigation */
}
.c-swiper-gallery .navigation .arrow--prev .arrow-box::before, .c-swiper-gallery .navigation .arrow--prev .arrow-box::after {
  scale: -1 1;
}

.gallery-thumb {
  margin-top: 0.5em;
  /* slide */
}
.gallery-thumb .slide,
.gallery-thumb .swiper,
.gallery-thumb .swiper-wrapper,
.gallery-thumb .swiper-slide {
  height: 100%;
}
.gallery-thumb .media {
  height: 100%;
  aspect-ratio: 16/9;
  border-radius: 2px;
  transition: var(--animation-button);
  transform-origin: center;
}
.gallery-thumb .media img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  transition: var(--animation-button);
  transform-origin: center;
}
.gallery-thumb .swiper-slide {
  aspect-ratio: 4/3;
  overflow: hidden;
  cursor: pointer;
  transition: var(--animation-button);
}
.gallery-thumb .swiper-slide .thumb-media {
  width: 100%;
  height: 100%;
}
.gallery-thumb .swiper-slide .thumb-media img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.gallery-thumb .swiper-slide[class*=-thumb-active] {
  opacity: 0.8;
  transform: scale(0.96);
}
.gallery-thumb .swiper-slide[class*=-thumb-active] img {
  transform: scale(1.04);
}
.gallery-thumb {
  /* scrollbar */
}
.gallery-thumb .scrollbar {
  height: 8px;
  margin-top: 10px;
  background: var(--scrollbar-bg);
  border-radius: 1000px;
}
.gallery-thumb .scrollbar .swiper-scrollbar-drag {
  height: 100%;
  background: var(--scrollbar-thumb);
  border-radius: 1000px;
}

.c-swiper-loop .slide {
  height: 100%;
}
.c-swiper-loop .swiper-wrapper {
  transition-timing-function: linear !important;
}
.c-swiper-loop .swiper-slide {
  width: -moz-max-content;
  width: max-content;
}

/*
.c-swiper-navigation
---------------------------------------------------------------- */
.c-swiper-navigation {
  display: flex;
  gap: 12px;
}
.c-swiper-navigation .arrow {
  width: max(4dvw, 48px);
  aspect-ratio: 1/1;
  border-radius: 50%;
  background: var(--button-primary);
  transition: filter var(--animation-button), scale var(--animation-button);
  position: relative;
}
.c-swiper-navigation .arrow::before {
  content: "";
  display: block;
  width: 15%;
  aspect-ratio: 6.7/5.02;
  -webkit-mask: url(../assets/images/common/arrow-anchor.svg) no-repeat center/contain;
          mask: url(../assets/images/common/arrow-anchor.svg) no-repeat center/contain;
  background: var(--text-white);
  position: absolute;
  margin: auto;
  inset: 0;
}
.c-swiper-navigation .arrow.prev {
  rotate: 90deg;
}
.c-swiper-navigation .arrow.next {
  rotate: -90deg;
}
@media (any-hover: hover) {
  .c-swiper-navigation .arrow:hover {
    filter: brightness(1.05);
    scale: 0.95;
  }
}

/*
.c-swiper-pagination
---------------------------------------------------------------- */
.c-swiper-pagination {
  display: flex;
  gap: 20px;
}
.c-swiper-pagination .swiper-pagination-bullet {
  display: block;
  width: 8px;
  height: 8px;
  border-radius: 100px;
  background: var(--scrollbar-bg);
  overflow: hidden;
  transition: var(--animation-button);
  position: relative;
}
.c-swiper-pagination .swiper-pagination-bullet::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 100px;
  background: var(--accent-tennis);
  position: absolute;
  top: 0;
  left: 0;
  transform: scaleX(0);
  transform-origin: left;
  transition-delay: 0s;
}
.c-swiper-pagination .swiper-pagination-bullet[class*=-active] {
  width: 40px;
}
.c-swiper-pagination .swiper-pagination-bullet[class*=-active]::before {
  animation: paginationBar 4s linear forwards;
}
@keyframes paginationBar {
  0% {
    transform: scaleX(0);
  }
  100% {
    transform: scaleX(1);
  }
}
.c-swiper-pagination {
  /* not-active-pagination */
}
@media (any-hover: hover) {
  .c-swiper-pagination .swiper-pagination-bullet:not([class*=-active]):hover {
    filter: brightness(0.95);
  }
}

/*
.c-band
---------------------------------------------------------------- */
.c-band {
  display: inline-block;
  padding: 0.25em 0.5em 0.3em;
  line-height: var(--lh-single);
  border-radius: 0.5em;
  text-align: center;
  white-space: nowrap;
}
.c-band.is-dark {
  color: var(--text-black);
}
.c-band.is-light {
  color: var(--text-white);
}

/*
.c-button
---------------------------------------------------------------- */
.c-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0 1.5em;
  width: -moz-fit-content;
  width: fit-content;
  min-width: 280px;
  min-height: 64px;
  padding: 0.6666666667em 0.7777777778em 0.6666666667em 1.7777777778em;
  background: var(--button-primary);
  border-radius: max(18px, 1.2dvw);
  font-size: var(--fs-lg);
  font-weight: 500;
  color: var(--text-white);
  position: relative;
  overflow: hidden;
}
.c-button::before {
  content: "";
  background: var(--grd-button-hover);
  opacity: 0;
  transition: opacity var(--transition-button);
  position: absolute;
  z-index: 0;
  inset: 0;
}
.c-button > * {
  position: relative;
  z-index: 10;
}
.c-button > .text {
  margin-left: 0 !important;
}
.c-button .arrow {
  display: grid;
  width: 2.4444444444em;
  aspect-ratio: 1/1;
  background: var(--bg-light);
  border-radius: calc(max(18px, 1.2dvw) - 0.5555555556em);
}
.c-button .icon {
  place-self: center;
  width: 0.7777777778em;
  aspect-ratio: 1/1;
  overflow: hidden;
  position: relative;
}
.c-button .icon::before, .c-button .icon::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  -webkit-mask: url(../assets/images/common/icon-arrow.svg) no-repeat center/contain;
          mask: url(../assets/images/common/icon-arrow.svg) no-repeat center/contain;
  background: var(--button-primary);
  position: absolute;
  top: 0;
  left: 0;
}
.c-button .icon::after {
  left: -100%;
}
@media (any-hover: hover) {
  .c-button:hover::before {
    opacity: 1;
  }
  .c-button:hover .icon::before, .c-button:hover .icon::after {
    animation: arrowLtoR var(--transition-button) forwards;
    background: var(--grd-button-hover);
  }
  @keyframes arrowLtoR {
    0% {
      transform: translateX(0%);
    }
    100% {
      transform: translateX(100%);
    }
  }
  .c-button:hover .icon::after {
    animation-delay: 0.15s;
  }
}
@media screen and (max-width: 576px) {
  .c-button {
    width: 90%;
    min-width: initial;
    margin-inline: auto;
  }
}

/*
.c-card
---------------------------------------------------------------- */
*:has(> .c-card) {
  display: flex;
  gap: max(1em, 2dvw) 2dvw;
}
*:has(> .c-card):has(> .c-card > .numbering) > .c-card {
  margin-top: calc(max(22px, 1.6dvw) * 3 / 2);
}
*:has(> .c-card) > .c-card {
  flex: 1;
  padding: max(48px, 5.8%) max(28px, 4.4%);
  background: var(--bg-white);
  border-radius: max(40px, 5dvw);
  position: relative;
}
*:has(> .c-card) > .c-card > .numbering {
  font-size: max(22px, 1.6dvw);
  position: absolute;
  transform: translateY(-50%);
  top: 0;
  left: calc(50% - 1.5em);
}
*:has(> .c-card) > .c-card > .inner {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
}
*:has(> .c-card) > .c-card .text > .title {
  font-size: max(1.25rem, 1.2dvw);
  text-align: center;
  line-height: var(--lh-min);
}
*:has(> .c-card) > .c-card .text > .desc {
  margin-top: max(12px, 1.2dvw);
}
*:has(> .c-card) > .c-card .image {
  margin-top: max(20px, 1.6dvw);
}
@media screen and (max-width: 768px) {
  *:has(> .c-card) {
    flex-direction: column;
  }
}
@media screen and (max-width: 768px) and (min-width: 577px) {
  *:has(> .c-card):has(> .c-card > .numbering) > .c-card {
    margin-top: 0;
  }
  *:has(> .c-card) > .c-card {
    display: flex;
    align-items: start;
    gap: calc(var(--space-100) * 0.28);
    padding-block: max(28px, 5.8%);
  }
  *:has(> .c-card) > .c-card > .numbering {
    flex-shrink: 0;
    transform: none;
    position: static;
  }
  *:has(> .c-card) > .c-card > .inner {
    flex-direction: row;
    gap: calc(var(--space-100) * 0.4);
  }
  *:has(> .c-card) > .c-card .text {
    flex: 3;
  }
  *:has(> .c-card) > .c-card .text > .title {
    text-align: start;
  }
  *:has(> .c-card) > .c-card .image {
    flex: 2;
    margin-top: 0;
    align-self: center;
  }
}
@media screen and (max-width: 576px) {
  *:has(> .c-card) > .c-card > .inner {
    max-width: 320px;
    margin-inline: auto;
  }
}

/*
.c-desc
---------------------------------------------------------------- */
.c-desc {
  line-height: var(--lh-base);
  text-align: justify;
  -moz-text-align-last: left;
       text-align-last: left;
  font-weight: 500;
}
.c-desc p:not(:first-child) {
  margin-top: 0.75em;
}
.c-desc a:not([class]) {
  text-decoration: underline;
}

/*
.c-hamburger
---------------------------------------------------------------- */
/*
.c-logo
---------------------------------------------------------------- */
.c-logo > span {
  display: block;
}
.c-logo.is-col .type {
  margin-top: 8px;
}
.c-logo.is-row {
  display: flex;
  align-items: center;
  gap: 0 5%;
}
.c-logo.is-row .mark {
  width: 25.5%;
}
.c-logo.is-row .type {
  width: 74.5%;
  margin-bottom: 0.5%;
}

/*
.c-md-title
---------------------------------------------------------------- */
/*
.c-paging
---------------------------------------------------------------- */
.c-paging {
  display: flex;
  gap: 0.5em;
  align-items: center;
  justify-content: center;
  margin-top: 2em;
  font-family: var(--ff-en-primary);
}
.c-paging .paging-text {
  flex-shrink: 0;
  display: grid;
  place-content: center;
}
.c-paging .paging-text > a {
  display: grid;
  place-content: center;
  width: 1.5em;
  aspect-ratio: 1/1;
}
.c-paging .paging-text > a[rel=prev], .c-paging .paging-text > a[rel=next] {
  width: 2em;
  aspect-ratio: 1/1;
  background: var(--text-black);
  border-radius: 50%;
}
.c-paging .paging-text > a .arrow::before {
  content: "";
  display: block;
  width: 0.5em;
  aspect-ratio: 6.7/5.02;
  -webkit-mask: url(../assets/images/common/arrow-anchor.svg) no-repeat center/contain;
          mask: url(../assets/images/common/arrow-anchor.svg) no-repeat center/contain;
  background: var(--text-white);
}
.c-paging .paging-text > a[rel=prev] .arrow::before {
  rotate: 90deg;
}
.c-paging .paging-text > a[rel=next] .arrow::before {
  rotate: -90deg;
}
.c-paging .paging-text.current {
  width: 1.5em;
  position: relative;
}
.c-paging .paging-text.current::before {
  content: "";
  display: block;
  width: 75%;
  height: 1px;
  background: var(--text-black);
  position: absolute;
  bottom: -0.5em;
  left: 12.5%;
}

/*
.c-section-title
---------------------------------------------------------------- */
.c-section-title {
  font-size: max(24px, 1.6dvw);
}
.c-section-title .ja {
  font-weight: 500;
  line-height: var(--lh-single);
}
.c-section-title .ja .small {
  display: block;
  margin-bottom: 0.35em;
  font-size: max(13px, 0.5em);
}
.c-section-title .en {
  display: block;
  margin-top: 1.2em;
  font-family: var(--ff-en-primary);
  font-size: 0.5625em;
  line-height: var(--lh-single);
  color: var(--text-orange);
}
.c-section-title.is-center {
  text-align: center;
}
.c-section-title.is-right {
  text-align: right;
}

/*
.c-tel
---------------------------------------------------------------- */
.c-tel {
  width: -moz-fit-content;
  width: fit-content;
  line-height: var(--lh-single);
}
.c-tel .num {
  font-family: var(--ff-en-primary);
  color: var(--text-orange);
  letter-spacing: var(--ls-en-base);
  white-space: nowrap;
}
.c-tel .num::before {
  content: "";
  display: inline-block;
  width: 0.715em;
  aspect-ratio: 1/1;
  margin-right: 0.215em;
  -webkit-mask: url(../assets/images/common/icon-tel.svg) no-repeat center/contain;
          mask: url(../assets/images/common/icon-tel.svg) no-repeat center/contain;
  background: var(--text-orange);
}
.c-tel .time {
  font-family: var(--ff-ja-primary);
  font-size: max(0.625rem, 0.65dvw);
  font-weight: 500;
  white-space: nowrap;
}
.c-tel .time > div {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0 0.75em;
  margin-top: 0.5em;
}

/*
.c-underline
---------------------------------------------------------------- */
.c-underline {
  margin-inline: 0.25em;
  font: var(--ff-ja-secondary);
  line-height: var(--lh-single);
  position: relative;
}
.c-underline::before {
  content: "";
  display: block;
  width: calc(100% + 0.25em);
  height: 0.35em;
  background: var(--line-text);
  position: absolute;
  z-index: -10;
  bottom: 0.1em;
  left: calc(50% - (100% + 0.25em) / 2);
}

/*
.c-accordion
---------------------------------------------------------------- */
.c-accordion .cover {
  cursor: pointer;
}
.c-accordion .content {
  display: grid;
  grid-template-rows: minmax(0, 0fr);
  transition: var(--animation-accordion);
  overflow: hidden;
}
.c-accordion .cover.is-open + .content {
  grid-template-rows: minmax(0, 1fr);
}

/*
.c-modal
---------------------------------------------------------------- */
.c-modal .modal-thumb {
  width: 100%;
  aspect-ratio: 4/3;
  background: var(--bg-middle) var(--bg-noise);
  border-radius: 2px;
  transition: filter var(--animation-button);
}
.c-modal .modal-thumb > img {
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
@media (any-hover: hover) {
  .c-modal .modal-thumb:hover {
    filter: brightness(0.95);
  }
}
.c-modal .modal-window {
  width: 100dvw;
  height: 100dvh;
  position: fixed;
  z-index: var(--z-modal);
  top: 0;
  left: 0;
  visibility: hidden;
  opacity: 0;
  transition: visibility 0s var(--animation-modal), opacity var(--animation-modal);
}
.c-modal .modal-window.is-active {
  visibility: visible;
  opacity: 1;
  transition: visibility 0s, opacity var(--animation-modal);
}
.c-modal .bg {
  width: 100%;
  height: 100%;
  background: rgba(20, 20, 20, 0.5);
}
.c-modal .window {
  max-width: var(--container-base);
  width: 100%;
  height: 90%;
  padding-inline: var(--container-pd);
  position: absolute;
  margin: auto;
  inset: 0;
}
.c-modal .icon {
  width: var(--container-pd);
  aspect-ratio: 1/1;
  position: absolute;
  top: 0;
  right: 0;
}
.c-modal .icon::before, .c-modal .icon::after {
  content: "";
  display: block;
  width: 2px;
  height: 100%;
  margin: auto;
  background: var(--text-white);
  position: absolute;
  inset: 0;
}
.c-modal .icon::before {
  transform: rotate(45deg);
}
.c-modal .icon::after {
  transform: rotate(-45deg);
}
.c-modal .img {
  height: 100%;
}
.c-modal .img > img {
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

/*
.c-scroll-box
---------------------------------------------------------------- */
.c-scroll-box {
  padding-right: max(5%, 20px);
  overflow-y: auto;
}
@media screen and (max-width: 576px) {
  .c-scroll-box {
    margin-right: -1.15%;
  }
}
.c-scroll-box::-webkit-scrollbar {
  width: 8px;
}
@media screen and (max-width: 576px) {
  .c-scroll-box::-webkit-scrollbar {
    width: 5px;
  }
}
.c-scroll-box::-webkit-scrollbar-track {
  background-color: var(--scrollbar-frame);
  border-radius: 100px;
}
.c-scroll-box::-webkit-scrollbar-thumb {
  background-color: var(--scrollbar-thumb);
  border-radius: 100px;
}

/*
.c-tab-panel
---------------------------------------------------------------- */
.c-tab-panel {
  display: none;
  opacity: 0;
}
.c-tab-panel.is-active {
  display: block;
  animation-name: tabSwitch;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
}
@keyframes tabSwitch {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/*
.c-numbering
---------------------------------------------------------------- */
.c-numbering {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 3em;
  aspect-ratio: 1/1;
  background: var(--accent-orange);
  border-radius: 0.85em;
  font-family: var(--ff-en-primary);
  font-weight: 500;
  color: var(--text-white);
}
.c-numbering > .title {
  font-size: 0.34375em;
}

/*
.p-nav
---------------------------------------------------------------- */
.p-nav .nav-list {
  display: flex;
  align-items: center;
  gap: 0 max(1.5em, 1.6dvw);
}
.p-nav .nav-item {
  font-size: max(0.8125rem, 0.75dvw);
  font-weight: 500;
}
.p-nav .nav-item > a {
  white-space: nowrap;
  position: relative;
  transition: transform var(--transition-button);
}
.p-nav .nav-item > a::before {
  content: "";
  display: block;
  width: 0.35em;
  aspect-ratio: 1/1;
  background: var(--accent-orange);
  border-radius: 20%;
  position: absolute;
  bottom: -0.85em;
  left: calc(50% - 0.175em);
  transform: scale(0);
  transition: transform var(--transition-button);
}
@media (any-hover: hover) {
  .p-nav .nav-item > a:hover {
    transform: translate(0, -0.35em);
  }
  .p-nav .nav-item > a:hover::before {
    transform: scale(1);
  }
}
.p-nav .nav-item.is-current > a {
  transform: translateY(-0.35em);
}
.p-nav .nav-item.is-current > a::before {
  transform: scale(1);
}
.p-nav .nav-item:has(.dropdown) {
  position: relative;
}
.p-nav .nav-item:has(.dropdown) > a {
  display: inline-flex;
  align-items: center;
}
.p-nav .nav-item:has(.dropdown) .icon-plus {
  display: inline-block;
  width: 0.75em;
  aspect-ratio: 1/1;
  margin-left: 0.3em;
  position: relative;
}
.p-nav .nav-item:has(.dropdown) .icon-plus::before, .p-nav .nav-item:has(.dropdown) .icon-plus::after {
  content: "";
  display: block;
  background: var(--text-black);
  transition: transform var(--transition-button), opacity var(--transition-button);
  position: absolute;
}
.p-nav .nav-item:has(.dropdown) .icon-plus::before {
  width: 1px;
  height: 100%;
  top: 0;
  left: calc(50% - 0.5px);
}
.p-nav .nav-item:has(.dropdown) .icon-plus::after {
  width: 100%;
  height: 1px;
  top: calc(50% - 0.5px);
  left: 0;
}
@media (any-hover: hover) {
  .p-nav .nav-item:has(.dropdown):hover .icon-plus::before {
    transform: rotate(90deg);
    opacity: 0;
  }
  .p-nav .nav-item:has(.dropdown):hover .dropdown {
    transition: opacity var(--transition-button), visibility 0s;
    visibility: visible;
    opacity: 1;
  }
}
.p-nav .dropdown {
  position: absolute;
  left: calc(max(28px, 2dvw) * -1);
  transition: opacity var(--transition-button), visibility 0s var(--transition-button);
  opacity: 0;
  visibility: hidden;
}
.p-nav .dropdown-list {
  padding: max(20px, 1.2dvw) max(28px, 2dvw);
  background: var(--bg-light);
  border-radius: max(20px, 2dvw);
}
.p-nav .dropdown-item {
  font-weight: 500;
}
.p-nav .dropdown-item > a {
  width: 100%;
  padding-block: 1.25em;
  border-bottom: 1px dashed var(--line-underline);
  transition: color var(--transition-button);
}
@media (any-hover: hover) {
  .p-nav .dropdown-item > a:hover {
    color: var(--text-orange);
  }
}
.p-nav .dropdown-item:last-child > a {
  border: none;
}
.p-nav .dropdown-item.is-current > a {
  color: var(--text-orange);
}
@media screen and (max-width: 991px) {
  .p-nav {
    background: var(--bg-light);
    border-radius: 20px;
    position: fixed;
    top: 0;
    right: max(1em, 2dvw);
    transition: opacity var(--transition-button), visibility 0s var(--transition-button);
    opacity: 0;
    visibility: hidden;
  }
  .p-nav.is-active {
    transition: opacity var(--transition-button), visibility 0s;
    opacity: 1;
    visibility: visible;
  }
  .p-nav.is-active .dropdown {
    transition: opacity var(--transition-button), visibility 0s;
    opacity: 1;
    visibility: visible;
  }
  .p-nav .nav-list {
    flex-direction: column;
    align-items: start;
    padding: max(20px, 1.2dvw) max(28px, 2dvw);
  }
  .p-nav .nav-item {
    width: 100%;
  }
  .p-nav .nav-item.is-current > a {
    padding-left: 1em;
    transform: translate(0);
  }
  .p-nav .nav-item.is-current > a::before {
    transform: scale(1);
  }
  .p-nav .nav-item > a {
    width: 100%;
    padding-block: 1.25em;
    border-bottom: 1px dashed var(--line-underline);
    transition: padding-left var(--transition-button);
  }
  .p-nav .nav-item > a::before {
    content: "";
    inset: initial;
    top: calc(50% - 0.175em);
    left: 0;
    transform: scale(0) translate(0);
  }
}
@media screen and (max-width: 991px) and (any-hover: hover) {
  .p-nav .nav-item > a:hover {
    padding-left: 1em;
    transform: translate(0);
  }
  .p-nav .nav-item > a:hover::before {
    transform: scale(1);
  }
}
@media screen and (max-width: 991px) {
  .p-nav .nav-item:has(.dropdown) .icon-plus {
    display: none;
  }
}
@media screen and (max-width: 991px) and (any-hover: hover) {
  .p-nav .nav-item:has(.dropdown):hover .dropdown {
    opacity: 1;
    visibility: visible;
    animation: none;
  }
}
@media screen and (max-width: 991px) {
  .p-nav .dropdown {
    opacity: 0;
    visibility: hidden;
    animation: none;
    position: static;
  }
  .p-nav .dropdown-list {
    padding: 0;
  }
  .p-nav .dropdown-item > a {
    border-color: var(--line-hr);
  }
  .p-nav .dropdown-item > a::before {
    content: "- ";
  }
}
@media screen and (max-width: 576px) {
  .p-nav {
    width: calc(100% - max(1em, 2dvw) * 2);
  }
  .p-nav > .inner {
    width: 100%;
  }
}

/*
.p-header
---------------------------------------------------------------- */
.p-header {
  padding: max(8px, 0.6dvw) max(1em, 2dvw);
}
.p-header > .inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: center;
  padding: max(10px, 0.6dvw) max(20px, 1.6dvw);
  border-radius: max(20px, 1.4dvw);
  background: var(--bg-light);
}
.p-header .logo {
  width: max(240px, 19.8dvw);
}
.p-header .nav {
  place-self: center;
}
.p-header .nav .tel {
  display: none;
}
.p-header .right {
  place-self: end;
}
.p-header .tel {
  font-size: max(1.25rem, 1.4dvw);
}
.p-header .hamburger {
  display: none;
}
@media screen and (max-width: 991px) {
  .p-header > .inner {
    display: flex;
    justify-content: space-between;
  }
  .p-header .right {
    display: flex;
    align-items: center;
    gap: 1em;
  }
  .p-header .hamburger {
    display: block;
    width: max(48px, 3dvw);
    aspect-ratio: 1/1;
    background: var(--accent-orange);
    border-radius: 27.5%;
    position: relative;
  }
  .p-header .hamburger > span {
    display: block;
    width: 48%;
    height: 1px;
    background: var(--bg-white);
    border-radius: 9999px;
    transition: var(--transition-hamburger);
    position: absolute;
    left: 26%;
  }
  .p-header .hamburger > span:nth-child(1) {
    top: 35%;
  }
  .p-header .hamburger > span:nth-child(2) {
    top: calc(50% - 0.5px);
  }
  .p-header .hamburger > span:nth-child(3) {
    bottom: 34%;
  }
  .p-header .hamburger.is-active > span:nth-child(1) {
    top: 50%;
    transform: rotate(45deg);
  }
  .p-header .hamburger.is-active > span:nth-child(2) {
    opacity: 0;
  }
  .p-header .hamburger.is-active > span:nth-child(3) {
    bottom: 48%;
    transform: rotate(-45deg);
  }
}
@media screen and (max-width: 576px) {
  .p-header .logo {
    width: max(180px, 41.6666666667dvw);
  }
  .p-header .nav .tel {
    display: block;
    font-size: max(max(1.5rem, 6.25vw));
    margin: 0 auto calc(max(20px, 1.2dvw) * 1.5);
  }
  .p-header .right .tel {
    display: none;
  }
}

/*
.p-footer
---------------------------------------------------------------- */
.p-footer > .wrapper {
  margin-block: var(--space-100) calc(var(--space-100) * 0.6);
}
.p-footer .content {
  display: flex;
  justify-content: space-between;
  gap: 0 40px;
}
.p-footer .left {
  display: flex;
  gap: calc(var(--space-100) * 1);
}
.p-footer .logo {
  width: max(180px, 1.08dvw);
}
.p-footer .logo .mark {
  width: 75%;
}
.p-footer .info {
  margin-top: 1em;
  font-size: max(0.8125rem, 0.75dvw);
  font-weight: 500;
}
.p-footer .info .address > p {
  line-height: var(--lh-narrow);
}
.p-footer .info .map-link {
  margin-left: 0.25em;
  background: var(--accent-orange);
}
.p-footer .info dl {
  font-family: var(--ff-en-primary);
  font-size: var(--fs-md);
  margin-top: 0.5em;
}
.p-footer .info dl dt::after {
  content: "";
  margin-right: 0.1em;
}
.p-footer .contact-list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5em 0;
  margin-top: max(2em, 2dvw);
}
.p-footer .contact-list .tel {
  font-size: max(1.5rem, 1.4dvw);
}
.p-footer .f_nav {
  font-size: max(13px, 0.75dvw);
  font-weight: 500;
}
.p-footer .f_nav .f_nav-item:not(:first-child) {
  margin-top: 1.25em;
}
.p-footer .f_nav .f_nav-item:has(.dropdown) .dropdown {
  margin-top: 1.25em;
}
.p-footer .f_nav .f_nav-item:has(.dropdown) .dropdown-item::before {
  content: "- ";
}
.p-footer .f_nav .dropdown-item {
  margin-top: 1.25em;
}
.p-footer .section-contact {
  padding-right: clamp(0px, 9.921dvw - 98.4px, 5dvw);
}
.p-footer .section-contact .section-title {
  font-size: max(20px, 1.3dvw);
}
.p-footer .section-contact .button {
  min-width: initial;
}
.p-footer .copyright {
  margin-top: calc(var(--space-100) * 0.68);
  font-size: var(--fs-sm);
  text-align: center;
}
@media screen and (max-width: 991px) {
  .p-footer .f_nav {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  .p-footer .content {
    flex-direction: column;
    align-items: center;
  }
  .p-footer .left {
    order: 2;
    justify-content: center;
    width: 100%;
    margin-top: calc(var(--space-100) * 0.6);
    padding-top: calc(var(--space-100) * 0.6);
    text-align: center;
    border-top: 1px dashed var(--line-hr);
  }
  .p-footer .logo .mark {
    margin-inline: auto;
  }
  .p-footer .info dl {
    width: -moz-fit-content;
    width: fit-content;
    margin-inline: auto;
  }
  .p-footer .section-contact {
    order: 1;
  }
}
@media screen and (max-width: 768px) and (min-width: 577px) {
  .p-footer .section-contact {
    display: flex;
    gap: calc(var(--space-100));
  }
  .p-footer .section-contact .contact-list {
    margin-top: 0;
  }
}
@media screen and (max-width: 576px) {
  .p-footer .section-contact {
    width: 100%;
  }
}

/*
.p-lower-header
---------------------------------------------------------------- */
.p-lower-header {
  height: max(220px, 15dvw);
}
.p-lower-header > .inner {
  display: grid;
  place-content: center;
  height: 100%;
  position: relative;
}
.p-lower-header > .inner > .bg {
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: -10;
  top: 0;
  left: 0;
}
.p-lower-header .page-title {
  margin-top: calc(max(8px, 0.6dvw) * -1);
  font-size: max(28px, 2dvw);
  position: relative;
  z-index: 10;
}
.p-lower-header .page-title .ja {
  color: var(--text-white);
}

/*
.p-kind-icon
---------------------------------------------------------------- */
.p-kind-icon {
  display: grid;
  place-items: center;
  flex: 1;
  width: 100%;
  height: 100%;
  aspect-ratio: 1/1;
  background: var(--accent-yellow);
  border-radius: 50%;
  color: var(--accent-brown);
}
.p-kind-icon .image {
  display: grid;
  place-items: center;
  width: 6.75em;
  aspect-ratio: 1/1;
}
.p-kind-icon .image > img[src*=beef] {
  width: 100%;
}
.p-kind-icon .image > img[src*=pork] {
  width: 85.2%;
}
.p-kind-icon .image > img[src*=chicken] {
  width: 74.1%;
}
.p-kind-icon .image > img[src*=domestic] {
  width: 77.8%;
}
.p-kind-icon .image > img[src*=others] {
  width: 61.1%;
}
.p-kind-icon .name {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5em;
  line-height: var(--lh-single);
  font-weight: 700;
}
.p-kind-icon .name .en {
  font-size: 0.67em;
}

@media (any-hover: hover) {
  a.p-kind-icon {
    transition: scale var(--transition-button);
    position: relative;
    overflow: hidden;
  }
  a.p-kind-icon::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: var(--grd-button-hover);
    opacity: 0;
    transition: opacity var(--transition-button);
    position: absolute;
    z-index: -10;
    top: 0;
    left: 0;
  }
  a.p-kind-icon:hover {
    scale: 1.025;
  }
  a.p-kind-icon:hover::before {
    opacity: 0.5;
  }
}

/*
.p-numbering-desc
---------------------------------------------------------------- */
.p-numbering-desc {
  padding-block: calc(var(--space-100) * 0.68);
}
.p-numbering-desc:not(:last-child) {
  border-bottom: 1px dashed var(--line-hr);
}
.p-numbering-desc:first-child {
  padding-top: 0;
}
.p-numbering-desc:last-child {
  padding-bottom: 0;
}
.p-numbering-desc > .inner {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(375px, 1fr));
  gap: max(28px, 6.9444444444dvw) calc(var(--space-100) * 0.6);
}
.p-numbering-desc .left .text {
  display: flex;
  align-items: start;
}
.p-numbering-desc .left .text .numbering {
  font-size: max(22px, 1.6dvw);
}
.p-numbering-desc .left .text > .title {
  font-size: max(1.125rem, 1.2dvw);
  font-weight: 500;
  line-height: var(--lh-base);
  margin-left: 1em;
}
.p-numbering-desc .left .image {
  width: 60%;
  margin: calc(var(--space-100) * 0.28) auto 0;
}
.p-numbering-desc .left .image img {
  aspect-ratio: 4/3;
}
@media screen and (max-width: 768px) and (min-width: 577px) {
  .p-numbering-desc .left {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: max(20px, 5.2083333333dvw);
  }
  .p-numbering-desc .left .image {
    width: 35%;
    margin: 0;
  }
}
@media screen and (max-width: 576px) {
  .p-numbering-desc > .inner {
    grid-template-columns: auto;
  }
  .p-numbering-desc .left .text > .title {
    font-size: var(--fs-lg);
  }
}

/* ================================================================
page
================================================================ */
/*
top
---------------------------------------------------------------- */
/* fv */
.fv {
  width: 100%;
  height: 100dvh;
  padding-bottom: 1.4dvw;
  visibility: hidden;
}
.fv > .inner {
  width: calc(100% - 4dvw);
  height: 100%;
  margin-inline: auto;
  border-radius: 6dvw;
  overflow: hidden;
  position: relative;
}
.fv > .inner > .fv-slider {
  height: 100%;
}
.fv > .inner > .fv-slider .media > img[src*=slide01] {
  -o-object-position: 50% 25%;
     object-position: 50% 25%;
}
.fv > .inner > .fv-slider .media > img[src*=slide03] {
  -o-object-position: 50% 20%;
     object-position: 50% 20%;
}
.fv > .inner > .fv-slider .media > img[src*=slide04] {
  -o-object-position: 50% 25%;
     object-position: 50% 25%;
}
.fv > .inner > .text {
  width: -moz-fit-content;
  width: fit-content;
  height: -moz-fit-content;
  height: fit-content;
  margin: auto;
  position: absolute;
  z-index: 10;
  inset: 0;
  filter: drop-shadow(0 0 0.4dvw rgba(var(--shadow-black), 0.35));
}
.fv .logo {
  width: max(200px, 12dvw);
  margin-inline: auto;
}
.fv .logo > .type {
  width: 90%;
  margin-inline: auto;
}
.fv .copy {
  margin-top: 2em;
}
.fv .copy > p {
  width: -moz-fit-content;
  width: fit-content;
  font: var(--ff-ja-secondary);
  font-size: max(20px, 1.2dvw);
  color: var(--text-white);
  text-align: center;
}
@media screen and (max-width: 768px) {
  .fv .copy > p {
    font-size: max(18px, 2.6041666667dvw);
  }
}
@media screen and (max-width: 576px) {
  .fv .logo {
    width: max(180px, 34.7222222222dvw);
  }
  .fv .copy > p {
    font-size: max(18px, 4.1666666667dvw);
  }
}

/* lead */
.section-lead {
  padding-block: calc(var(--space-100) * 1.1) calc(var(--space-100) * 1.4);
}
.section-lead > .inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: max(28px, 8dvw);
}
.section-lead > .inner > .text {
  width: -moz-max-content;
  width: max-content;
  white-space: nowrap;
  font-size: max(20px, 1.3dvw);
}
.section-lead > .inner > .text p {
  line-height: var(--lh-wide);
}
.section-lead > .inner > .image {
  width: max(380px, 31.2dvw);
}
.section-lead .underline {
  font-size: 1.5em;
  line-height: var(--lh-min);
}
.section-lead .underline:nth-child(1) {
  margin-left: 0;
}
@media screen and (max-width: 991px) {
  .section-lead > .inner > .text {
    font-size: max(18px, 2.0181634712dvw);
  }
  .section-lead > .inner > .image {
    width: auto;
  }
}
@media screen and (max-width: 768px) {
  .section-lead > .inner > .text {
    font-size: max(16px, 2.34375dvw);
  }
}
@media screen and (max-width: 576px) {
  .section-lead > .inner {
    flex-direction: column;
  }
  .section-lead > .inner > .text {
    font-size: max(16px, 3.125dvw);
  }
  .section-lead > .inner > .text p {
    text-align: center;
    -moz-text-align-last: center;
         text-align-last: center;
  }
  .section-lead > .inner > .image {
    width: auto;
  }
}

/* points */
.section-points .points-list {
  margin-top: calc(max(22px, 1.6dvw) * 3 / 2);
}

/* business */
.section-business > .inner {
  container-name: business-inner;
  container-type: inline-size;
}
.section-business > .inner > .text {
  display: grid;
  grid-template-columns: max-content auto;
  grid-template-rows: max-content minmax(0, 1fr);
  gap: max(36px, 3dvw) max(28px, 8dvw);
  width: -moz-fit-content;
  width: fit-content;
  margin: calc(var(--space-100) * 0.68) auto 0;
}
@container business-inner (max-width: 612px) {
  .section-business > .inner > .text {
    grid-template-columns: auto;
  }
  .section-business > .inner > .text > * {
    grid-column: auto;
    grid-row: auto;
  }
  .section-business > .inner > .text > .md-title {
    order: 1;
    text-align: center;
  }
  .section-business > .inner > .text > .desc {
    order: 2;
  }
  .section-business > .inner > .text > .button {
    order: 3;
    margin-top: 1em;
  }
  .section-business > .inner .business-list {
    margin-top: max(40px, 8.3333333333dvw);
  }
}
.section-business .md-title {
  grid-column: 1/2;
  grid-row: 1/2;
  height: -moz-fit-content;
  height: fit-content;
  font-size: var(--fs-xl);
  font-weight: 500;
  line-height: var(--lh-base);
  white-space: nowrap;
}
.section-business .desc {
  grid-column: 2/3;
  grid-row: 1/3;
}
.section-business .button {
  grid-column: 1/2;
  grid-row: 2/3;
  height: -moz-fit-content;
  height: fit-content;
}
.section-business .business-list {
  display: flex;
  gap: max(12px, 2.4dvw);
  width: 90%;
  margin: max(40px, 3dvw) auto 0;
}
.section-business .business-item {
  height: 100%;
  aspect-ratio: 1/1;
  flex: 1;
}
.section-business .business-item:nth-child(2), .section-business .business-item:nth-child(4) {
  margin-top: 6%;
}
.section-business .business-item:nth-child(3) {
  margin-top: 9%;
}
@media screen and (max-width: 1199px) {
  .section-business > .inner > .text {
    gap: max(28px, 5.6713928274dvw);
  }
  .section-business .business-list {
    gap: max(12px, 1.6680567139dvw);
  }
}
@media screen and (max-width: 991px) {
  .section-business > .inner {
    width: min(768px, 100%);
    margin-inline: auto;
  }
  .section-business > .inner .text {
    gap: max(28px, 4.0363269425dvw);
    margin-inline: auto;
  }
  .section-business .business-list {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    row-gap: 0;
    width: min(576px, 100%);
    margin-top: max(28px, 4.843592331dvw);
  }
  .section-business .business-item {
    grid-column: span 2;
  }
  .section-business .business-item:nth-child(n) {
    margin-top: 0;
  }
  .section-business .business-item:nth-child(4) {
    grid-column: 2/4;
  }
  .section-business .business-item:nth-child(5) {
    grid-column: 4/6;
  }
}
@media screen and (max-width: 576px) {
  .section-business .business-list {
    -moz-column-gap: 6px;
         column-gap: 6px;
  }
  .section-business .business-item {
    font-size: var(--fs-sm);
  }
  .section-business .business-item .image {
    width: 60%;
    margin-inline: auto;
  }
}

/* recruit */
.section-recruit {
  border-radius: 6dvw;
}
.section-recruit > .inner {
  display: grid;
  grid-template-columns: 48% minmax(0, 1fr);
  gap: max(20px, 1.6dvw) max(40px, 6dvw);
}
.section-recruit .section-title {
  grid-column: 2/3;
}
.section-recruit .section-title .en {
  color: var(--text-white);
}
.section-recruit .md-title {
  font: var(--ff-ja-secondary);
  font-size: max(1.25rem, 1.2dvw);
}
.section-recruit .image {
  grid-column: 1/2;
  grid-row: 1/4;
  align-self: center;
  width: 100%;
  aspect-ratio: 4/3;
  border-radius: max(20px, 2dvw);
  overflow: hidden;
}
.section-recruit .image > img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.section-recruit .text .desc:not(:first-child) {
  margin-top: 1.5em;
}
.section-recruit .text .button {
  margin-top: max(36px, 3dvw);
}
@media screen and (max-width: 1199px) {
  .section-recruit .section-title {
    grid-column: 1/3;
    margin-bottom: 1em;
    text-align: center;
  }
  .section-recruit .md-title {
    grid-row: 2/3;
  }
  .section-recruit .text {
    grid-row: 3/4;
  }
  .section-recruit .image {
    grid-row: 2/4;
    align-self: start;
  }
}
@media screen and (max-width: 991px) and (min-width: 577px) {
  .section-recruit .image {
    aspect-ratio: 3/4;
  }
}
@media screen and (max-width: 768px) {
  .section-recruit > .inner {
    grid-template-columns: 35% minmax(0, 1fr);
  }
}
@media screen and (max-width: 576px) {
  .section-recruit > .inner {
    display: flex;
    flex-direction: column;
  }
  .section-recruit .md-title {
    text-align: center;
  }
}

/*
service
---------------------------------------------------------------- */
.page-service .lower-header > .inner .bg {
  background: url(../assets/images/service/lower-header.jpg) no-repeat center/cover;
}

/* value */
.section-value .content {
  margin-top: calc(var(--space-100) * 1);
}

/* products */
.section-products {
  padding-inline: 0;
}
.section-products .content {
  margin-top: calc(var(--space-100) * 0.68);
}
.section-products .lead-products {
  display: flex;
  align-items: center;
  gap: max(28px, 3.4dvw);
}
.section-products .lead-products > .desc {
  flex: 4;
}
.section-products .lead-products .kind-list {
  flex: 5;
  gap: 0 max(12px, 0.8dvw);
}
.section-products .kind-list {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.section-products .kind-item {
  grid-column: span 2;
}
.section-products .kind-item:nth-child(4) {
  grid-column: 2/4;
}
.section-products .kind-item:nth-child(5) {
  grid-column: 4/6;
}
.section-products .detail-list {
  margin-top: calc(var(--space-100) * 0.48);
}
.section-products .detail-item {
  display: flex;
  gap: max(1.5em, 4.8611111111dvw) max(28px, 2.4dvw);
  align-items: start;
  padding: max(20px, 5.2%);
  background: var(--bg-white);
  border-radius: max(20px, 5dvw);
}
.section-products .detail-item:not(:first-child) {
  margin-top: calc(var(--space-100) * 0.28);
}
.section-products .detail-item > .image {
  flex-shrink: 0;
  width: max(280px, 20dvw);
  aspect-ratio: 4/3;
  border-radius: max(16px, 3.8dvw);
  overflow: hidden;
}
.section-products .detail-item > .image img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.section-products .detail-item > .text {
  padding-block: 1em;
}
.section-products .detail-item > .text > .title {
  padding-left: 1.25em;
  font-size: max(20px, 1.2dvw);
  font-weight: 500;
  position: relative;
}
.section-products .detail-item > .text > .title::before {
  content: "";
  display: block;
  width: 0.6666666667em;
  aspect-ratio: 1/1;
  background: var(--accent-orange);
  border-radius: 25%;
  position: absolute;
  top: calc(50% - 0.3333333333em);
  left: 0;
}
.section-products .detail-item > .text > .detail {
  margin-top: max(1.5em, 2dvw);
}
.section-products .detail-item > .text .area {
  display: flex;
  align-items: start;
  gap: 0.75em;
}
.section-products .detail-item > .text .area > .band {
  padding: 0.35em 0.6em 0.4em;
  background: var(--bg-middle);
  font-weight: 500;
}
.section-products .detail-item > .text .area li {
  line-height: var(--lh-narrow);
}
.section-products .detail-item > .text .area li:last-child::after {
  content: "etc.";
  display: inline-block;
  margin-left: 0.25em;
}
.section-products .detail-item > .text .desc {
  margin-top: 1.75em;
}
.section-products .detail-item > .text .desc > .title {
  padding-left: 1.25em;
  font-size: var(--fs-lg);
  font-weight: 500;
  line-height: var(--lh-single);
  position: relative;
}
.section-products .detail-item > .text .desc > .title::before {
  content: "";
  display: block;
  width: 0.6666666667em;
  aspect-ratio: 1/1;
  background: var(--text-black);
  border-radius: 25%;
  position: absolute;
  top: calc(50% - 0.3333333333em);
  left: 0;
}
.section-products .detail-item > .text .desc > .title + p {
  margin-top: 0.5em;
}
@media screen and (max-width: 1199px) and (min-width: 992px) {
  .section-products .kind-item {
    font-size: max(13px, 0.75dvw);
  }
}
@media screen and (max-width: 991px) {
  .section-products .lead-products {
    flex-direction: column;
    width: min(576px, 100%);
    margin-inline: auto;
  }
  .section-products .kind-list {
    width: 100%;
  }
}
@media screen and (max-width: 768px) and (min-width: 577px) {
  .section-products .detail-item > .image {
    width: max(200px, 36.4583333333dvw);
    aspect-ratio: 1/1;
  }
}
@media screen and (max-width: 576px) {
  .section-products .lead-products .kind-list {
    gap: 0 6px;
  }
  .section-products .lead-products .kind-item {
    font-size: var(--fs-sm);
  }
  .section-products .lead-products .kind-item .image {
    width: 60%;
    margin-inline: auto;
  }
  .section-products .detail-item {
    flex-direction: column;
  }
  .section-products .detail-item > .image {
    order: 2;
    width: 100%;
  }
  .section-products .detail-item > .text {
    order: 1;
    padding-block: 0.5em 0;
  }
}

/*
company
---------------------------------------------------------------- */
.page-company .lower-header > .inner .bg {
  background: url(../assets/images/company/lower-header.jpg) no-repeat center/cover;
}

/* greeting */
.section-greeting > .inner > .content {
  margin-top: calc(var(--space-100) * 0.6);
}
.section-greeting .detail {
  margin-top: calc(var(--space-100) * 0.6);
}
.section-greeting .block {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: max(40px, 4dvw);
}
.section-greeting .block > .image {
  width: max(320px, 20dvw);
}
.section-greeting .block > .desc {
  width: max(576px, 24dvw);
}
.section-greeting .block > .desc > p {
  line-height: var(--lh-wide);
  color: #1A1613;
}
.section-greeting .block > .desc .strong {
  font-size: 1.25em;
  font-weight: 500;
  color: var(--text-orange);
}
.section-greeting .block .signature {
  text-align: right;
  -moz-text-align-last: right;
       text-align-last: right;
  margin-top: 0;
}
.section-greeting .block .signature span {
  display: inline-block;
  margin-right: 1em;
}
.section-greeting .block:nth-child(2n) {
  flex-direction: row-reverse;
}
.section-greeting .block:not(:first-child) {
  margin-top: calc(var(--space-100) * 0.48);
}
@media screen and (max-width: 768px) {
  .section-greeting .detail {
    width: min(576px, 100%);
    margin-inline: auto;
  }
  .section-greeting .block > .desc,
  .section-greeting .block > .image {
    width: 100%;
  }
  .section-greeting .block:nth-child(n) {
    flex-direction: column;
  }
  .section-greeting .block:last-child > .image {
    display: none;
  }
}

/* outline */
.section-outline {
  background: var(--bg-light);
  border-radius: max(40px, 5dvw);
}
.section-outline .frame {
  max-width: calc(var(--container-base) * 0.65);
  padding-inline: var(--container-pd);
  margin-inline: auto;
}
.section-outline .content {
  margin-top: calc(var(--space-100) * 0.48);
}

/* access */
.section-access {
  margin-top: calc(var(--space-100) * 1.2) !important;
}
.section-access .map {
  margin-top: calc(var(--space-100) * 0.6);
}
.section-access .map > iframe {
  width: 100%;
  height: 400px;
}

/*
recruit
---------------------------------------------------------------- */
.page-recruit .lower-header > .inner .bg {
  background: url(../assets/images/recruit/lower-header.jpg) no-repeat center/cover;
}

/* lead */
.lead-recruit {
  padding-block: calc(var(--space-100) * 1.2);
}
.lead-recruit > .inner {
  display: flex;
  gap: 2em max(40px, 5dvw);
}
.lead-recruit .title > p {
  font: var(--ff-ja-secondary);
  font-size: max(1.5rem, 1.4dvw);
  white-space: nowrap;
}
.lead-recruit .title .image {
  margin-top: 2em;
}
.lead-recruit .desc > p {
  line-height: var(--lh-wide);
}
@media screen and (max-width: 768px) {
  .lead-recruit > .inner {
    flex-direction: column;
    width: min(576px, 100%);
    margin-inline: auto;
  }
  .lead-recruit .title {
    text-align: center;
  }
}
@media screen and (max-width: 576px) {
  .lead-recruit .title {
    font-size: max(1.25rem, 4.1666666667dvw);
  }
}
@media screen and (max-width: 375px) {
  .lead-recruit .title {
    font-size: 5.3333333333dvw;
  }
}

/* work */
.section-work .content {
  margin-top: calc(var(--space-100) * 0.6);
}
.section-work .work-item {
  padding: max(36px, 4.4%) max(28px, 4.4%);
}
.section-work .work-item .strong {
  font-weight: 700;
  color: var(--text-orange);
}
.section-work .work-item .desc > p {
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}
@media screen and (max-width: 768px) and (min-width: 577px) {
  .section-work .work-item .text {
    display: flex;
    flex-direction: column;
    place-content: center;
  }
  .section-work .work-item .text > .title {
    text-align: center;
  }
  .section-work .work-item {
    display: block;
  }
}

/* ideal */
.section-ideal > .inner {
  display: flex;
  justify-content: space-between;
  justify-content: center;
  gap: max(40px, 6dvw);
}
.section-ideal .section-title {
  flex-shrink: 0;
}
.section-ideal .content {
  width: 55%;
}
.section-ideal .ideal-list {
  display: grid;
  gap: 0 max(1.25em, 1dvw);
  grid-template-columns: auto;
  justify-content: center;
}
.section-ideal .ideal-item {
  display: grid;
  grid-template-columns: subgrid;
  grid-column: span 2;
  padding-block: 1em;
  font-size: max(1.25rem, 1.2dvw);
  font-weight: 500;
}
.section-ideal .ideal-item:first-child {
  padding-top: 0;
}
.section-ideal .ideal-item:last-child {
  padding-bottom: 0;
}
.section-ideal .ideal-item:not(:last-child) {
  border-bottom: 1px dashed var(--line-hr);
}
.section-ideal .ideal-item .icon {
  width: 3em;
  display: grid;
  place-content: center;
}
.section-ideal .ideal-item .icon > img {
  aspect-ratio: 1/1;
  margin-inline: auto;
}
.section-ideal .ideal-item:nth-child(1) .icon > img {
  width: 90%;
}
@media screen and (max-width: 991px) {
  .section-ideal .ideal-item {
    font-size: max(16px, 2.0181634712dvw);
  }
}
@media screen and (max-width: 768px) {
  .section-ideal > .inner {
    flex-direction: column;
  }
  .section-ideal .section-title {
    text-align: center;
  }
  .section-ideal .content {
    width: 100%;
  }
  .section-ideal .ideal-list {
    margin-inline: auto;
  }
  .section-ideal .ideal-item {
    justify-content: center;
    font-size: max(16px, 2.34375dvw);
  }
}

/* roadmap */
.section-roadmap {
  padding-bottom: 0 !important;
}
.section-roadmap .content {
  margin-top: calc(var(--space-100) * 0.6);
}
.section-roadmap .step-list {
  display: flex;
  align-items: end;
}
.section-roadmap .step-list > * {
  flex: 1;
}
.section-roadmap .step-item > .text {
  position: relative;
}
.section-roadmap .step-item .step {
  height: 60px;
  background: var(--line-hr);
}
.section-roadmap .step-item:nth-child(2) .step {
  height: 120px;
}
.section-roadmap .step-item:nth-child(3) .step {
  height: 180px;
}
.section-roadmap .step-item .signboard {
  display: flex;
  align-items: start;
  gap: max(3px, 0.3dvw);
}
.section-roadmap .step-item .signboard::before {
  content: "";
  display: inline-block;
  width: max(4px, 0.3dvw);
  height: max(240px, 16dvw);
  background: var(--accent-orange);
  border-radius: 9999px;
}
.section-roadmap .step-item .numbering {
  font-size: max(20px, 1.6dvw);
}
.section-roadmap .step-item .detail {
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -40%);
}
.section-roadmap .step-item .band {
  background: var(--accent-brown);
  font: var(--ff-ja-secondary);
  font-size: var(--fs-lg);
  color: var(--text-white);
}
.section-roadmap .step-item .desc {
  margin-top: 0.5em;
}
.section-roadmap .step-item .desc > p {
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
  white-space: nowrap;
}
@media screen and (max-width: 768px) and (min-width: 577px) {
  .section-roadmap .step-item .numbering {
    font-size: max(18px, 2.6041666667dvw);
  }
  .section-roadmap .step-item .desc {
    font-size: max(12.5px, 1.8229166667dvw);
  }
}
@media screen and (max-width: 576px) {
  .section-roadmap .step-list {
    flex-direction: column;
  }
  .section-roadmap .step-list > * {
    width: min(375px, 100%);
    margin-inline: auto;
  }
  .section-roadmap .step-item {
    padding-top: 20px;
  }
  .section-roadmap .step-item:not(:last-child) {
    border-bottom: 1px dashed var(--line-hr);
  }
  .section-roadmap .step-item:not(:last-child) .step {
    display: none;
  }
  .section-roadmap .step-item:last-child .signboard::before {
    height: 253.3333333333px;
  }
  .section-roadmap .step-item:last-child .step {
    width: 100dvw;
    height: 80px;
    margin-left: calc(50% - 50dvw);
    margin-top: -53.3333333333px;
    clip-path: polygon(33% 66%, 33% 33%, 66% 33%, 66% 0, 100% 0, 100% 100%, 0 100%, 0 66%);
  }
  .section-roadmap .step-item:last-child .detail {
    padding-bottom: 40px;
  }
  .section-roadmap .step-item .signboard::before {
    height: 200px;
  }
  .section-roadmap .step-item .detail {
    transform: translate(-50%, -55%);
  }
}

/* details */
.section-details .content {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1em;
  margin-top: calc(var(--space-100) * 0.6);
}
.section-details .button[href*=benefit] > .text {
  font-size: 0.95em;
}
@media screen and (max-width: 991px) {
  .section-details .content {
    flex-direction: column;
  }
}

/*
benefits
---------------------------------------------------------------- */
.page-benefits .lower-header > .inner .bg {
  background: url(../assets/images/benefits/lower-header.jpg) no-repeat center/cover;
}
.page-benefits .section-title {
  display: none;
}

/* lead */
.lead-benefits {
  padding-top: calc(var(--space-100) * 1.2);
}
.lead-benefits > .inner {
  display: flex;
  justify-content: center;
  gap: max(28px, 5dvw);
}
.lead-benefits .title {
  font: var(--ff-ja-secondary);
  font-size: max(24px, 1.4dvw);
  white-space: nowrap;
}
.lead-benefits .desc {
  max-width: 600px;
}
@media screen and (max-width: 768px) {
  .lead-benefits > .inner {
    flex-direction: column;
    width: min(576px, 100%);
  }
  .lead-benefits .title {
    text-align: center;
  }
}

/* appeal */
.section-appeal .value-item .title .sub {
  display: block;
  font-size: max(0.875rem, 0.75em);
}

/* case */
.section-case {
  background: var(--bg-white);
  border-radius: max(40px, 5dvw);
  margin-bottom: calc(var(--space-100) * 1.2);
}
.section-case .frame {
  max-width: calc(var(--container-base) * 0.75);
  padding-inline: var(--container-pd);
  margin-inline: auto;
}
.section-case .md-title {
  font-size: max(1.25rem, 1.4dvw);
  font-weight: 500;
  color: var(--text-orange);
  text-align: center;
}
.section-case .case-list {
  margin-top: calc(var(--space-100) * 0.48);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 0 max(28px, 3dvw);
}
.section-case .case-item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 3;
  place-items: start center;
}
.section-case .case-item > .title {
  font-size: var(--fs-lg);
  font-weight: 500;
  line-height: var(--lh-narrow);
}
.section-case .case-item .strong {
  font-size: 1.25em;
  position: relative;
}
.section-case .case-item .strong::before {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background: var(--line-underline);
  position: absolute;
  bottom: 0;
  left: 0;
}
.section-case .case-item .issue {
  margin-top: calc(var(--space-100) * 0.4);
  text-align: center;
  font-weight: 500;
}
.section-case .case-item .issue > .inner {
  width: -moz-fit-content;
  width: fit-content;
  padding: 1em 1.5em;
  background: var(--bg-middle);
  border-radius: max(12px, 1dvw);
  white-space: nowrap;
}
.section-case .case-item .issue::after {
  content: "";
  display: block;
  width: 1em;
  aspect-ratio: 1/1;
  margin: 0.75em auto;
  background: url(../assets/images/common/icon-arrow.svg) no-repeat center/contain;
  transform: rotate(90deg);
}
.section-case .case-item .solution {
  width: 100%;
  height: 100%;
  position: relative;
  padding-top: calc(var(--fs-lg));
}
.section-case .case-item .solution::before {
  content: "解決";
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.45em 0.75em 0.55em;
  background: var(--accent-orange);
  color: var(--text-white);
  font-size: var(--fs-lg);
  font-weight: 500;
  border-radius: 0.25em;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}
.section-case .case-item .solution > .inner {
  height: 100%;
  padding: max(1.75em, 1.6dvw) max(1em, 1.4dvw) max(1em, 1.4dvw);
  border: 1px solid var(--accent-orange);
  border-radius: max(12px, 1dvw);
}
.section-case .case-item .solution .desc {
  font-weight: 500;
}
.section-case .case-item .solution .desc > p {
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}
.section-case .case-item .solution .image {
  width: 75%;
  margin: 1em auto 0;
}
@media screen and (max-width: 991px) {
  .section-case .frame {
    padding-inline: 5%;
  }
  .section-case .case-list {
    grid-template-columns: auto;
  }
  .section-case .case-item {
    width: min(576px, 100%);
    margin-inline: auto;
  }
  .section-case .case-item:not(:first-child) {
    margin-top: calc(var(--space-100) * 0.8);
  }
}

/* career */
.section-career .md-title {
  font: var(--ff-ja-secondary);
  font-size: max(1.25rem, 1.4dvw);
  text-align: center;
}
.section-career .md-title .underline {
  font-size: 1em;
}
.section-career .career-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1em max(20px, 2dvw);
  width: min(var(--container-base) * 0.6, 100%);
  margin: calc(var(--space-100) * 0.48) auto;
}
.section-career .career-item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  padding: max(1.5em, 1.4dvw) max(1.5em, 1.4dvw);
  background: var(--bg-light);
  border-radius: max(12px, 1dvw);
}
.section-career .career-item > .title {
  padding-bottom: 0.65em;
  border-bottom: 2px solid var(--accent-orange);
  font-size: var(--fs-lg);
  line-height: var(--lh-narrow);
}
.section-career .button {
  margin-inline: auto;
}

/*
interview
---------------------------------------------------------------- */
.page-interview .lower-header > .inner .bg {
  background: url(../assets/images/interview/lower-header.jpg) no-repeat center/cover;
}

/* interview */
.section-interview .section-title {
  display: none;
}
.section-interview .md-title {
  font: var(--ff-ja-secondary);
  font-size: max(1.25rem, 1.4dvw);
  color: var(--accent-brown);
  text-align: center;
}
.section-interview .interview-list {
  margin-top: calc(var(--space-100) * 0.6);
}
.section-interview .interview-item {
  display: flex;
  gap: max(28px, 3dvw);
}
.section-interview .interview-item:not(:first-child) {
  margin-top: calc(var(--space-100) * 0.6);
  padding-top: calc(var(--space-100) * 0.6);
  border-top: 1px dashed var(--line-hr);
}
.section-interview .person {
  width: max(200px, 14dvw);
  flex-shrink: 0;
  position: relative;
}
.section-interview .person > .inner {
  position: sticky;
  top: 0;
  text-align: center;
}
.section-interview .person .text {
  margin-top: 0.5em;
}
.section-interview .person .name {
  font-size: var(--fs-lg);
  font-weight: 500;
}
.section-interview .person .year {
  font-size: var(--fs-sm);
  margin-top: 0.5em;
}
.section-interview .detail > .copy {
  font-size: max(1.25rem, 1.4dvw);
  font-weight: 500;
  color: var(--text-orange);
  line-height: var(--lh-narrow);
}
.section-interview .detail .text-block:not(:first-child) {
  margin-top: 2em;
}
.section-interview .detail .title {
  font-size: var(--fs-lg);
  font-weight: 700;
  padding-left: 1.25em;
  position: relative;
  line-height: var(--lh-min);
}
.section-interview .detail .title::before {
  content: "";
  display: block;
  width: 0.7em;
  aspect-ratio: 1/1;
  margin-top: 0.05em;
  background: var(--accent-orange);
  border-radius: 25%;
  position: absolute;
  top: calc(1em * var(--lh-min) / 2 - 0.35em);
  left: 0;
}
.section-interview .detail .desc {
  margin-top: 0.75em;
}
@media screen and (max-width: 768px) {
  .section-interview .person {
    width: max(120px, 26.0416666667dvw);
  }
}
@media screen and (max-width: 576px) {
  .section-interview .interview-item {
    flex-direction: column;
  }
  .section-interview .person {
    width: 100%;
  }
}

/* schedule */
.section-schedule .content {
  margin-top: calc(var(--space-100) * 0.48);
}
.section-schedule .md-title {
  font: var(--ff-ja-secondary);
  font-size: max(1.25rem, 1.4dvw);
  font-weight: 500;
  text-align: center;
}
.section-schedule .schedule-list {
  display: grid;
  grid-template-columns: auto auto;
  justify-content: center;
  gap: 0 0.75em;
  width: min(768px, 100%);
  margin: calc(var(--space-100) * 0.48) auto 0;
}
.section-schedule .schedule-item {
  display: grid;
  grid-template-columns: subgrid;
  grid-column: span 2;
}
.section-schedule .schedule-item:not(:last-child) {
  padding-bottom: 1em;
}
.section-schedule .schedule-item > .time {
  height: -moz-fit-content;
  height: fit-content;
  background: var(--accent-orange);
  font-weight: 500;
  color: var(--text-white);
}
.section-schedule .button {
  margin: calc(var(--space-100) * 0.48) auto 0;
}

/* 
form
---------------------------------------------------------------- */
.page-contact .lower-header > .inner .bg {
  background: url(../assets/images/contact/lower-header.jpg) no-repeat center/cover;
}
.page-contact .l-container {
  max-width: calc(var(--container-base) * 0.75);
}

/* guidelines */
.section-guidelines {
  border-bottom: 1px dashed var(--line-hr);
}
.section-guidelines .section-title {
  margin-bottom: 1.5em;
}
.section-guidelines .md-title {
  margin-bottom: 1em;
  font-size: var(--fs-xl);
  font-weight: 700;
  color: var(--accent-brown);
  text-align: center;
}
.section-guidelines .desc {
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}
.section-guidelines .occupation-list {
  margin-top: max(32px, 3dvw);
}
.section-guidelines .occupation-name {
  padding-left: 0.9em;
  margin-bottom: 0.75em;
  font-size: var(--fs-xl);
  font-weight: 500;
  line-height: var(--lh-narrow);
  position: relative;
}
.section-guidelines .occupation-name::before {
  content: "";
  display: block;
  width: 0.25em;
  height: 100%;
  background-color: var(--accent-orange);
  border-radius: 0 0.25em 0.25em 0;
  position: absolute;
  top: 0;
  left: 0;
}
.section-guidelines .button {
  margin: calc(var(--space-100) * 0.48) auto 0;
}
@media screen and (max-width: 576px) {
  .section-guidelines .desc {
    text-align: left;
    -moz-text-align-last: left;
         text-align-last: left;
  }
}

/* mail */
.section-mail .section-title .ja {
  line-height: var(--lh-min);
}
.section-mail .contact-lead {
  margin-top: 2em;
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}
.section-mail .form {
  margin-top: max(32px, 3dvw);
}
.section-mail tr.only-entry.is-hidden {
  display: none;
}
.section-mail label:has(input.hidden) {
  cursor: text;
}
.section-mail input.hidden {
  display: none;
}

/* fixed */
.format {
  font-size: 0.75em;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

article#policy {
  margin-top: calc(var(--space-100) * 1);
  padding: max(3dvw, 40px) max(3dvw, 28px);
  background: var(--bg-middle);
  border-radius: max(40px, 2dvw);
}
@media screen and (max-width: 576px) {
  article#policy {
    padding-inline: 5%;
  }
}
article#policy > h2 {
  font-size: 1.325em;
  text-align: center;
}
article#policy > .detail {
  height: 20lh;
  font-size: 0.9em;
  margin-top: 2em;
}
@media screen and (max-width: 576px) {
  article#policy > .detail {
    padding-inline: 0 5%;
  }
}
article#policy .clause-list {
  margin-top: 2em;
}
article#policy .clause {
  padding-block: 0;
}
article#policy .clause:not(:first-of-type) {
  margin-top: 1.5em;
}
article#policy .clause > .title {
  margin-bottom: 0;
  font-size: 1.1em;
}
article#policy .clause > .title::before {
  content: "";
  display: inline-block;
  width: 0.75em;
  aspect-ratio: 1/1;
  margin-right: 0.4em;
  background: var(--text-black);
}
article#policy .clause > .desc {
  margin-top: 0.75em;
}
article#policy .clause dl,
article#policy .clause ol {
  margin-top: 0.5em;
}
article#policy .agree-box {
  margin-top: 2em;
  font-weight: 500;
}
article#policy .agree-box > label {
  justify-content: center;
}

.submit-container {
  margin-top: 4em;
  text-align: center;
}
.submit-container button[type=submit] > .text {
  width: 100%;
  padding-right: 1em;
}
.submit-container button[type=submit][data-role=confirmation] {
  margin-inline: auto;
}
.submit-container button[type=submit][data-role=back] {
  background: var(--bg-white);
  border: 2px solid var(--accent-orange);
  color: var(--text-orange);
  transition: opacity var(--transition-button);
}
.submit-container button[type=submit][data-role=back]::before {
  display: none;
}
@media (any-hover: hover) {
  .submit-container button[type=submit][data-role=back]:hover {
    opacity: 0.85;
  }
}
.submit-container .back-send {
  display: flex;
  justify-content: center;
  gap: 0.5em 1.5em;
}

/* 
print
---------------------------------------------------------------- *//*# sourceMappingURL=style.css.map */