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

body {
  line-height: 1;
}

article, aside, dialog, figure, footer, header, hgroup, nav, section {
  display: block;
}

nav ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

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

a {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

ins {
  text-decoration: none;
}

ins, mark {
  background-color: #ff9;
  color: #000;
}

mark {
  font-style: italic;
  font-weight: 700;
}

del {
  text-decoration: line-through;
}

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

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

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0;
}

input, select {
  vertical-align: baseline;
}

/*------------------------------
    読み込み
------------------------------*/
/*------------------------------
    font-face
------------------------------*/
/* --- [日本語用]  --- */
@font-face {
  font-family: "ZenKakuGothic";
  src: url("./font/ZenKakuGothicNew-Medium.ttf") format("truetype");
  font-weight: 500; /* 通常の太さを指定 */
  font-display: swap;
}
@font-face {
  font-family: "ZenKakuGothic"; /* 名前を同じにする！ */
  src: url("./font/ZenKakuGothicNew-Black.ttf") format("truetype");
  font-weight: 900; /* 太字（Bold）として指定 */
  font-display: swap;
}
/* --- [英数字用]  --- */
@font-face {
  font-family: "BarlowCondensed";
  src: url("./font/BarlowCondensed-Medium.ttf") format("truetype");
  font-weight: 500; /* 通常の太さを指定 */
  font-display: swap;
}
@font-face {
  font-family: "BarlowCondensed"; /* 名前を同じにする！ */
  src: url("./font/BarlowCondensed-MediumItalic.ttf") format("truetype");
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}
body {
  font-family: "BarlowCondensed", "Noto Sans JP", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
}

.bold {
  font-weight: 900;
}

.font-zenkaku {
  font-family: "ZenKakuGothic", "Noto Sans JP", sans-serif;
}

.english,
.title-english {
  font-family: "BarlowCondensed", sans-serif;
}

.italic,
.title-english {
  font-style: italic;
}

/*------------------------------
    All 共通設定
------------------------------*/
:root {
  /* --- Color - Raw Values [調整用/加工用] --- */
  --color-black-rgb: 0 0 0;
  --color-white-rgb: 255 255 255;
  --color-gray-500-rgb: 181 181 182;
  --color-brand-green-500-rgb: 42 95 67;
  --color-brand-cream-500-rgb: 250 243 224;
  --color-brand-yellow-500-rgb: 250 207 2;
  /* --- Color - Semantic [直指定用/完成品] --- */
  --color-black: rgb(var(--color-black-rgb));
  --color-white: rgb(var(--color-white-rgb));
  --color-gray-500: rgb(var(--color-gray-500-rgb));
  --color-brand-green-500: rgb(var(--color-brand-green-500-rgb));
  --color-brand-cream-500: rgb(var(--color-brand-cream-500-rgb));
  --color-brand-yellow-500: rgb(var(--color-brand-yellow-500-rgb));
  /* --- Width Size (定規) --- */
  --width-size-m: 900px;
  --width-size-l: 980px;
  --width-size-ll: 1080px;
  /* --- Spacing Scale (定規) --- */
  --space-8: 8px;
  --space-1em: var(--font-size);
  --space-m: var(--font-size-m);
  --space-20: 20px;
  --space-30: 30px;
  --space-40: 40px;
  --space-50: 50px;
  --space-70: 70px;
  --space-80: 80px;
  --space-100: 100px;
  --space-150: 150px;
  /* --- Font Size --- */
  --font-size-h1: 4rem;
  --font-size-h2: 3.2rem;
  --font-size-h3: 3rem;
  --font-size-h4: 2.4rem;
  --font-size-h5: 2rem;
  --font-size-h6: 1.6rem;
}
@media screen and (max-width: 960px) {
  :root {
    --font-size-h1: 3.8rem;
    --font-size-h2: 3rem;
    --font-size-h3: 2.4rem;
    --font-size-h4: 2rem;
    --font-size-h5: 1.8rem;
  }
}
:root {
  --font-size-ss: 1rem;
  --font-size-s: 1.2rem;
  --font-size: 1.6rem;
  --font-size-m: 1.8rem;
  --font-size-l: 2.4rem;
  --font-size-ll: 2.8rem;
  --font-size-xl: 3.5rem;
  --font-size-xxl: 4.2rem;
  --line-height-size-1em: 1em;
  --line-height-size-s: 1.2em;
  --line-height-size: 1.6em;
  --line-height-size-l: 2.5em;
  --letter-spacing-size-s: 0.06em;
  --letter-spacing-size: 0.11em;
  --letter-spacing-size-l: 0.16em;
  --letter-spacing-size-ll: 0.18em;
  /* --- Border-Radius --- */
  --border-radius-size-max: 1000px;
  /* --- Semantic Spacing (役割名) --- */
  --contents-padding-y: var(--space-160); /* 共通セクションの上下余白 */
  --scroll-offset: var(--space-80); /* 固定ヘッダー分のズレ調整 */
}

html {
  font-feature-settings: "palt";
  letter-spacing: var(--letter-spacing-size-s);
  font-size: 10px;
  line-height: var(--line-height-size-l);
  scroll-padding-top: var(--scroll-offset);
}

body {
  color: var(--color-black);
}

*, *::before, *::after {
  box-sizing: border-box;
  transition: 0.3s ease all;
}

h1 {
  font-weight: 500;
}

h2 {
  font-weight: 500;
}

h3 {
  font-weight: 500;
}

h4 {
  font-weight: 500;
}

h5 {
  font-weight: 500;
}

h6 {
  font-weight: 500;
}

p, a, table * {
  font-size: var(--font-size);
  line-height: var(--line-height-size-l);
}

a {
  text-decoration: none;
  color: var(--color-white);
}

/*p:not(.button):hover a,*/
ul:not(.button) a:hover {
  color: var(--color-brand-cream-500);
}

ul {
  list-style: none;
}

figure img {
  width: 100%;
  height: auto;
  -o-object-fit: fill;
     object-fit: fill;
  vertical-align: middle;
}

/* --- Class --- */
.pc {
  display: block;
}
@media screen and (max-width: 960px) {
  .pc {
    display: none;
  }
}

.sp {
  display: none;
}
@media screen and (max-width: 960px) {
  .sp {
    display: block;
  }
}

.sp-link {
  color: var(--color-black);
  pointer-events: none;
  text-decoration: none;
}
@media screen and (max-width: 960px) {
  .sp-link {
    pointer-events: visible;
  }
}

.clearfix::after {
  display: block;
  content: "";
  clear: both;
}

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

.flex.flex-center {
  justify-content: space-between;
}

.flex.middle {
  align-items: center;
}

.center {
  text-align: center;
}

.right {
  text-align: right;
}

/*------------------------------
    PC 設定
------------------------------*/
/* --- [Color]  --- */
.color-white {
  color: var(--color-white);
}

.color-brand-green-500, .color-brand-green-500 p, .color-brand-green-500 span, .color-brand-green-500 li, .news-date, .news-date p, .news-date span, .news-date li {
  color: var(--color-brand-green-500) !important;
}

.color-brand-cream-500, .color-brand-cream-500 p, .color-brand-cream-500 span, .color-brand-cream-500 li {
  color: var(--color-brand-cream-500) !important;
}

.color-brand-yellow-500, .color-brand-yellow-500 p, .color-brand-yellow-500 span, .color-brand-yellow-500 li {
  color: var(--color-brand-yellow-500) !important;
}

/* --- [.mix-blend-multiply]  --- */
.mix-blend-multiply {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  position: relative;
  padding: var(--space-1em) var(--space-30);
  font-size: var(--font-size-xl);
  line-height: var(--line-height-size-1em);
  letter-spacing: var(--letter-spacing-size-l);
}
@media screen and (max-width: 960px) {
  .mix-blend-multiply {
    font-size: var(--font-size-l);
    padding: var(--space-8) 20px;
  }
}
.mix-blend-multiply .mix-blend-multiply-blend-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--color-brand-green-500);
  mix-blend-mode: multiply;
  transform: skewX(-15deg);
}
.mix-blend-multiply > span:not(.mix-blend-multiply-blend-bg) {
  position: relative;
  color: var(--color-white);
}
.mix-blend-multiply:not(:last-child) {
  margin-bottom: var(--space-1em);
}
@media screen and (max-width: 960px) {
  .mix-blend-multiply:not(:last-child) {
    margin-bottom: var(--space-8);
  }
}

.background-color-white {
  background-color: var(--color-white);
}

.background-color-brand-cream-500 {
  background-color: var(--color-brand-cream-500);
}

.background-color-brand-green-500,
.button.background-color-brand-green-500 a {
  background-color: var(--color-brand-green-500);
}

.background-color-brand-green-500 p {
  color: var(--color-white);
}
.background-color-brand-green-500 .title-english {
  color: var(--color-white);
}
.background-color-brand-green-500 .title-english + h2 {
  color: var(--color-white);
}

/* --- [.button]  --- */
.button {
  background-color: transparent;
  line-height: var(--line-height-size-1em);
  margin-top: var(--space-50);
}
.button.english a {
  font-family: "Helvetica Neue", "Noto Sans JP", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
}
.button a {
  /* hoverで表示される色[default] */
  --btn-rgb: var(--color-black);
  --btn-hover-text: var(--color-black);
  overflow: hidden;
  display: inline-block;
  position: relative;
  z-index: 1;
  isolation: isolate;
  font-size: var(--font-size-m);
  line-height: var(--line-height-size-1em);
  /*// 💡【デフォルト】矢印なしの通常ボタンの余白と中央揃え*/
  padding: var(--space-1em) var(--space-50);
  text-align: center;
  color: var(--color-white);
  border-radius: var(--border-radius-size-max);
  background-color: var(--btn-rgb);
  transition: color 0.2s ease;
  /* 境界線 */
  border: 2px solid var(--btn-rgb);
  /* 矢印用の疑似要素（デフォルトでは隠す）+ 文字色（currentColor）をマスクでくり抜くため、100%文字色とシンクロ */
}
.button a::before {
  display: none;
  content: "";
  position: absolute;
  right: var(--space-30);
  top: 50%;
  transform: translateY(-50%);
  width: 19.57px;
  height: 15.55px;
  background-color: currentColor;
  -webkit-mask-image: url('data:image/svg+xml,<?xml version="1.0" encoding="UTF-8"?><svg id="_レイヤー_2" data-name="レイヤー 2" xmlns="http://www.w3.org/2000/svg" width="19.57" height="15.55" viewBox="0 0 19.57 15.55"><defs><style> .cls-1 { fill: none; stroke: black; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5px; } </style></defs><g id="TOP"><g><path class="cls-1" d="M11.63,14.8l6.65-5.82c.73-.64.73-1.77,0-2.41L11.62.75"/><line class="cls-1" x1="18.01" y1="7.78" x2=".75" y2="7.78"/></g></g></svg>');
  mask-image: url('data:image/svg+xml,<?xml version="1.0" encoding="UTF-8"?><svg id="_レイヤー_2" data-name="レイヤー 2" xmlns="http://www.w3.org/2000/svg" width="19.57" height="15.55" viewBox="0 0 19.57 15.55"><defs><style> .cls-1 { fill: none; stroke: black; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5px; } </style></defs><g id="TOP"><g><path class="cls-1" d="M11.63,14.8l6.65-5.82c.73-.64.73-1.77,0-2.41L11.62.75"/><line class="cls-1" x1="18.01" y1="7.78" x2=".75" y2="7.78"/></g></g></svg>');
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.button a {
  /* hoverで出てくる背景の幕 */
}
.button a::after {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  width: 100%;
  height: 100%;
  background-color: var(--color-white);
  transform: scale(0, 1);
  transform-origin: left top;
  transition: 0.2s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
}
.button a:hover {
  color: var(--btn-hover-text) !important;
}
.button a:hover::after {
  transform: scale(1, 1);
}
.button {
  /*【矢印あり】 */
}
.button.arrow a {
  padding: var(--space-m) var(--space-70) var(--space-m) var(--space-30);
  text-align: left;
}
.button.arrow a::before {
  display: block;
}
.button {
  /* --- カラーバリエーション（すべてのボタンに適用） --- */
}
.button.background-color-brand-green-500 a {
  --btn-rgb: var(--color-brand-green-500);
  --btn-hover-text: var(--color-brand-green-500);
}
.button.background-color-brand-yellow-500 a {
  --btn-rgb: var(--color-brand-yellow-500);
  color: var(--color-brand-green-500);
  --btn-hover-text: var(--color-brand-yellow-500);
}
.button.background-color-brand-yellow-500 a::after {
  background-color: var(--color-brand-green-500) !important;
}
.button.background-color-brand-cream-500 a {
  --btn-rgb: var(--color-brand-cream-500);
  color: var(--color-brand-green-500);
  --btn-hover-text: var(--color-brand-cream-500);
}
.button.background-color-brand-cream-500 a::after {
  background-color: var(--color-brand-green-500) !important;
}
.button.background-color-white a {
  --btn-rgb: var(--color-white);
  color: var(--color-brand-green-500);
  --btn-hover-text: var(--color-white);
  /* default */
  border-color: transparent;
  /* .background-color-whiteの場合、境界線追加 */
}
.background-color-white .button.background-color-white a {
  border-color: var(--color-brand-green-500);
}

.button.background-color-white a::after {
  background-color: var(--color-brand-green-500);
}

/* --- [.title-english]  --- */
.title-english {
  text-align: center;
  font-size: var(--font-size-ll);
  line-height: var(--line-height-size-1em);
  margin-bottom: 1em;
}
@media screen and (max-width: 960px) {
  .title-english {
    font-size: var(--font-size-m);
  }
}
.title-english + h2 {
  margin-bottom: var(--space-80);
  font-size: var(--font-size-xxl);
  line-height: var(--line-height-size-s);
  text-align: center;
  letter-spacing: var(--letter-spacing-size-ll);
}
@media screen and (max-width: 960px) {
  .title-english + h2 {
    font-size: var(--font-size-l);
    margin-bottom: var(--space-20);
  }
}

/* --- [main]  --- */
/*#main figure{
    max-width: 1100px;
    /*display: block;*
    margin: 0 auto;
    text-align: center;
}*/
header {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 9000;
  align-items: center;
  padding: var(--space-1em) var(--space-50);
  background-color: var(--color-white);
}
@media screen and (max-width: 960px) {
  header {
    padding: var(--space-1em);
    background-color: var(--color-white);
    height: 80px;
    transition: 0.3s ease all;
  }
}
header h1 {
  width: -moz-fit-content;
  width: fit-content;
  height: auto;
}
header h1 a {
  display: inline-block;
  line-height: var(--line-height-size-1em);
}
@media screen and (max-width: 960px) {
  header h1 {
    position: fixed;
    z-index: 9999;
    top: var(--space-1em);
    left: var(--space-1em);
  }
  header h1 img {
    max-height: 50px;
    width: auto;
  }
}
header #global-navigation {
  width: -moz-fit-content;
  width: fit-content;
}
header #global-navigation ul li:not(:last-of-type) {
  margin-right: 4em;
}
header #global-navigation ul li a {
  color: var(--color-brand-green-500);
  line-height: var(--line-height-size-s);
}
header #global-navigation p:not(.button) a {
  font-size: var(--font-size-m);
}
@media screen and (max-width: 960px) {
  header #global-navigation {
    transition: 0.3s ease all;
    opacity: 0;
    visibility: hidden;
    overflow-y: auto;
    position: fixed;
    z-index: 9900;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    min-height: 100vh;
    background-color: var(--color-white);
  }
  header #global-navigation.open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
  header #global-navigation ul.flex {
    display: block;
    width: 100%;
    padding: var(--space-80) 15px 0;
  }
  header #global-navigation ul li, header #global-navigation a {
    width: 100%;
    display: block;
  }
  header #global-navigation ul li a {
    border-bottom: 1px solid var(--color-brand-green-500);
    border-left: none;
    border-right: none;
    font-size: var(--font-size-s);
    padding: var(--font-size);
  }
  header #global-navigation .button-list {
    margin-top: var(--space-50);
    width: 100%;
    padding: var(--space-50) 0 var(--space-100);
    background-color: var(--color-brand-green-500);
  }
  header #global-navigation .button-list .button a {
    text-align: left;
    position: relative;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0) !important;
    -webkit-tap-highlight-color: transparent !important;
    -webkit-touch-callout: none !important;
    padding: 15px 0;
  }
  header #global-navigation .button-list .button a:hover::after, header #global-navigation .button-list .button a:active::after, header #global-navigation .button-list .button a:focus::after {
    display: none !important;
  }
  header #global-navigation .button-list .button a::before {
    position: absolute;
    display: block;
    width: 1em;
    height: 1em;
    content: "";
    width: 8px;
    height: 8px;
    border-top: 2px solid var(--color-white);
    border-right: 2px solid var(--color-white);
    transform: translateY(-50%) rotate(45deg);
    color: var(--color-white);
    top: 50%;
    left: 16em;
    z-index: 1;
    -webkit-mask-image: none !important;
            mask-image: none !important;
    background-color: transparent;
  }
  header #global-navigation .button-list .button a:hover {
    background-color: transparent;
    color: var(--color-white) !important;
  }
}
header #botton-menu {
  display: none;
}
@media screen and (max-width: 960px) {
  header #botton-menu {
    display: block;
    position: fixed;
    top: var(--space-1em);
    right: var(--space-1em);
    width: var(--space-40);
    height: var(--space-40);
    border-radius: var(--border-radius-size-max);
    z-index: 9999;
    cursor: pointer;
  }
  header #botton-menu span,
  header #botton-menu span::before,
  header #botton-menu span::after {
    display: block;
    width: 24px;
    height: 2px;
    content: "";
    background-color: var(--color-white);
    position: absolute;
    z-index: 9999;
    top: var(--space-20);
    right: var(--space-20);
    cursor: pointer;
    left: 0;
    right: 0;
    margin: auto;
    transition: 0.3s ease all;
  }
  header #botton-menu span {
    top: 50%;
    transform: translate-y(-50%);
  }
  header #botton-menu span::before {
    top: -8px;
    transform: translate-y(-50%);
  }
  header #botton-menu span::after {
    top: 8px;
    transform: translate-y(-50%);
  }
  header #botton-menu.open span {
    transform: rotate(45deg);
  }
  header #botton-menu.open span::before {
    top: 0;
    transform: rotate(90deg);
    opacity: 1;
  }
  header #botton-menu.open span::after {
    opacity: 0;
  }
}
header .button {
  margin-left: var(--space-40);
  margin-top: 0;
}
header .button a {
  font-size: var(--font-size-s);
  padding: var(--space-1em) 4em;
}

.contents {
  max-width: 1100px;
  margin: 0 auto;
}
@media screen and (max-width: 960px) {
  .contents {
    max-width: 100%;
    width: 100%;
  }
}
.contents.width-size-m {
  width: var(--width-size-m);
}
.contents.width-size-l {
  width: var(--width-size-l);
}
.contents.width-size-ll {
  width: var(--width-size-ll);
}

/* --- [.section-box-list]  --- */
.section-box-list li {
  width: calc((100% - var(--space-80)) / 2);
  border-radius: 5px;
}
@media screen and (max-width: 960px) {
  .section-box-list li {
    width: 100%;
  }
}
.section-box-list li a {
  width: 100%;
  padding: var(--space-8) var(--space-80) var(--space-8) var(--space-50);
}
@media screen and (max-width: 960px) {
  .section-box-list li a {
    padding: var(--space-20) var(--space-50);
  }
  .section-box-list li a figure {
    width: auto;
  }
  .section-box-list li a figure img {
    height: 70px;
  }
  .section-box-list li a div {
    margin-left: var(--space-40);
  }
}
.section-box-list li:nth-child(2n) {
  margin-left: var(--space-80);
}
@media screen and (max-width: 960px) {
  .section-box-list li:nth-child(2n) {
    margin-left: 0;
    margin-top: var(--space-20);
  }
}
.section-box-list li:nth-child(n+3) {
  margin-top: var(--space-50);
}
@media screen and (max-width: 960px) {
  .section-box-list li:nth-child(n+3) {
    margin-top: var(--space-20);
  }
}
.section-box-list li:hover {
  opacity: 0.8;
}
@media screen and (max-width: 960px) {
  .section-box-list li:hover {
    opacity: 1;
  }
}
.section-box-list .big {
  font-size: var(--font-size-xl);
  letter-spacing: var(--letter-spacing-size-ll);
}
@media screen and (max-width: 960px) {
  .section-box-list .big {
    font-size: var(--font-size-l);
  }
}
.section-box-list .english {
  font-size: var(--font-size-m);
  letter-spacing: var(--letter-spacing-size);
  margin-top: var(--font-size-ss);
}
@media screen and (max-width: 960px) {
  .section-box-list .english {
    font-size: 1.4rem;
  }
}
.section-box-list .big, .section-box-list .english {
  line-height: var(--line-height-size-1em);
  text-align: center;
}
.section-box-list {
  /* --- カラーバリエーション --- */
}
.section-box-list .color-white h2, .section-box-list .color-white .title-english {
  color: var(--color-white);
}
.section-box-list .color-white p {
  color: var(--color-brand-green-500);
}

/* --- [.news-list]  --- */
.news-list .list li {
  border-bottom: 1px solid var(--color-gray-500);
}
.news-list .list a {
  color: var(--color-black);
}
.news-list .list a:hover {
  color: var(--color-black);
  background-color: var(--color-brand-yellow-500);
}

/* --- [footer]  --- */
footer {
  background-color: var(--color-brand-green-500);
  margin-top: var(--space-150);
  padding: var(--space-70) 0;
}
@media screen and (max-width: 960px) {
  footer {
    padding: var(--space-40) var(--space-20);
    margin-top: var(--space-70);
  }
  footer .flex {
    display: block;
  }
}
footer.margin-top-none {
  margin-top: 0;
}
footer .contents {
  position: relative;
}
footer * {
  color: var(--color-white);
  font-size: var(--font-size-s);
  line-height: var(--line-height-size-s);
  font-family: "Noto Sans JP", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
}
footer .font-size-m * {
  font-size: 1.4rem;
}
footer h2 {
  margin-bottom: var(--space-m);
}
footer .box:first-child {
  order: 2;
}
footer .box:last-child {
  order: 1;
}
footer .box:last-child #footer-tel {
  font-size: var(--font-size-m);
  line-height: 1em;
  margin: var(--font-size-m) auto;
}
footer .box:last-child #footer-tel a {
  font-size: var(--font-size-m);
  line-height: 1em;
}
@media screen and (max-width: 960px) {
  footer .box:first-child {
    order: 1;
  }
  footer .box:last-child {
    order: 1;
    margin-top: var(--space-40);
    text-align: center;
  }
}
footer .box.font-size-m .box-col {
  margin-left: var(--space-80);
}
@media screen and (max-width: 960px) {
  footer .box.font-size-m .box-col {
    margin-left: 0;
  }
}
footer .box.font-size-m .box-col {
  /* 「.box-col」の連続 */
}
footer .box.font-size-m .box-col + .box-col {
  margin-left: var(--space-50);
}
@media screen and (max-width: 960px) {
  footer .box.font-size-m .box-col + .box-col {
    margin-left: 0;
    margin-top: var(--space-40);
  }
}
footer .box.font-size-m .box-col li {
  line-height: var(--line-height-size);
}
footer .box.font-size-m .box-col li:first-child a {
  padding: 0 !important;
  position: static;
}
footer .box.font-size-m .box-col li:first-child a::before {
  display: none;
}
footer .box.font-size-m .box-col ul:not(:first-child) {
  margin-top: var(--space-m);
}
footer .box.font-size-m .box-col ul:not(:first-child):not(:first-child) {
  margin-top: var(--space-30);
}
footer .box.font-size-m .box-col a {
  display: inline-block;
  position: relative;
}
footer .box.font-size-m .box-col a:hover {
  color: var(--color-brand-yellow-500);
}
footer .box.font-size-m .box-col a:hover::before {
  background: var(--color-brand-yellow-500);
}
footer .box.font-size-m .box-col {
  /* 限定で横線（before）を装飾 */
}
footer .box.font-size-m .box-col ul:not(.menu-list-single) a {
  padding-left: 1.5em;
}
footer .box.font-size-m .box-col ul:not(.menu-list-single) a::before {
  position: absolute;
  z-index: 0;
  width: var(--font-size-ss);
  height: 1px;
  content: "";
  background: var(--color-white);
  left: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  /*@include mq($tb) {
      display: none;
  }*/
}
footer .box.font-size-m .box-col ul:not(.menu-list-single) a:hover {
  color: var(--color-brand-yellow-500);
}
footer .box.font-size-m .box-col ul:not(.menu-list-single) a:hover::before {
  background: var(--color-brand-yellow-500);
}
@media screen and (max-width: 960px) {
  footer .box-col ul {
    display: grid !important;
    width: 100%;
    grid-template-columns: 160px 1fr;
    row-gap: 10px;
    -moz-column-gap: 0;
         column-gap: 0;
  }
  footer .box-col ul li {
    width: 100%;
    max-width: none !important;
    margin: 0 !important;
    display: block;
    color: var(--color-white);
    /* 大見出し用 */
  }
  footer .box-col ul li:first-child {
    grid-column: 1;
    font-weight: bold;
  }
  footer .box-col ul li {
    /* その他見出し */
  }
  footer .box-col ul li:not(:first-child) {
    grid-column: 2;
  }
  footer .box-col ul li:not(:first-child) a {
    display: block;
    color: var(--color-white);
    text-decoration: none;
  }
}
footer small {
  display: block;
  text-align: center;
  border-top: 1px solid var(--color-white);
  margin-top: var(--space-70);
  padding-top: var(--space-m);
}
@media screen and (max-width: 960px) {
  footer small {
    margin-top: var(--space-20);
    madding-top: var(--space-20);
  }
}

/* --- [#page-top]  --- */
#page-top {
  position: absolute;
  bottom: 60px;
  right: 0;
  z-index: 900;
  font-family: "Noto Sans JP", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
}
#page-top a {
  border-radius: var(--border-radius-size-max);
  display: block;
  width: 130px;
  font-size: var(--font-size-s);
  line-height: var(--line-height-size-1em);
  padding: var(--space-m) var(--space-m) var(--space-m) var(--space-30);
  color: var(--color-white);
  border: 1px solid var(--color-white);
}
#page-top a:hover {
  border-color: var(--color-brand-green-500) !important;
  color: var(--color-brand-green-500) !important;
}
#page-top a:before {
  border-color: var(--color-brand-green-500);
  height: var(--font-size-s);
  transform: rotate(-90deg);
  top: 33%;
  margin: auto;
  left: -60px;
}
@media screen and (max-width: 960px) {
  #page-top {
    display: none;
  }
}

/* --- [#sub-page]  --- */
#sub-page {
  margin-top: var(--space-100);
}
#sub-page .sub-page-frame {
  max-width: 1080px;
  /*padding: 0 130px;*/
  margin: 0 auto;
}
#sub-page .sub-page-frame p {
  letter-spacing: 0.1em;
}
#sub-page .sub-page-frame.width-max {
  max-width: 100%;
}
@media screen and (max-width: 960px) {
  #sub-page {
    margin-top: var(--space-80);
  }
  #sub-page .sub-page-frame {
    max-width: 100%;
    padding: 0 var(--space-20);
  }
}

.box-page-title {
  width: 100%;
  border-bottom: 1px solid var(--color-brand-green-500);
  margin-bottom: 10px;
}
@media screen and (max-width: 960px) {
  .box-page-title {
    margin-bottom: var(--space-40);
  }
}
.box-page-title .contents {
  padding: var(--space-70) 0 var(--space-100);
}
@media screen and (max-width: 960px) {
  .box-page-title .contents {
    padding: var(--space-20) var(--space-20) 30px;
  }
}
.box-page-title .contents * {
  text-align: left;
}
.box-page-title .contents .title-english {
  color: #aeb3b3;
  font-size: 7.2rem;
  margin-bottom: var(--space-40);
}
@media screen and (max-width: 960px) {
  .box-page-title .contents .title-english {
    font-size: 3.8rem;
    margin-bottom: var(--space-20);
  }
}
.box-page-title .contents h2 {
  margin-bottom: 0;
  font-size: var(--font-size-ll);
  padding-left: var(--space-100);
  position: relative;
  color: var(--color-brand-green-500);
}
.box-page-title .contents h2:before {
  position: absolute;
  z-index: -1;
  width: 80px;
  height: 1px;
  background-color: var(--color-brand-green-500);
  display: block;
  content: "";
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}
@media screen and (max-width: 960px) {
  .box-page-title .contents h2 {
    font-size: var(--font-size);
    padding-left: 60px;
  }
  .box-page-title .contents h2:before {
    width: var(--space-50);
  }
}

/* --- [#pankuzu]  --- */
#pankuzu {
  align-items: center;
  display: flex;
  max-width: 1100px;
  margin: 0 auto var(--space-100);
}
#pankuzu li {
  color: #aeb3b3;
  line-height: var(--line-height-size-1em);
}
#pankuzu li * {
  color: #aeb3b3;
  font-size: var(--font-size-ss);
  line-height: var(--line-height-size-1em);
}
#pankuzu li a:hover {
  text-decoration: underline;
}
@media screen and (max-width: 960px) {
  #pankuzu {
    display: none;
  }
}

/* --- [.tabs-container]  --- */
.tabs-container {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
}
.tabs-container .tab-menu {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-80);
  display: flex;
  gap: 25px;
  justify-content: space-between;
}
@media screen and (max-width: 960px) {
  .tabs-container .tab-menu {
    flex-wrap: wrap; /* SP時は2列にするため折り返す */
    gap: var(--space-10);
    margin-bottom: var(--space-50);
  }
}
.tabs-container .tab-menu .tab-item {
  flex: 1;
  text-align: center;
  padding: 25px 10px;
  font-weight: bold;
  font-size: var(--font-size-m);
  letter-spacing: 0.34em;
  color: var(--color-brand-green-500);
  border: 1px solid var(--color-brand-green-500);
  background-color: var(--color-white);
  cursor: pointer;
  transition: all 0.3s ease;
}
.tabs-container .tab-menu .tab-item:hover {
  background-color: var(--color-brand-green-500);
  color: var(--color-white);
}
@media screen and (max-width: 960px) {
  .tabs-container .tab-menu .tab-item {
    flex: none;
    font-size: var(--font-size);
    width: calc((100% - 15px) / 2); /* SP時は2段2列に均等分割 */
    padding: 15px 5px;
  }
  .tabs-container .tab-menu .tab-item.tume {
    letter-spacing: 0.04em;
  }
  .tabs-container .tab-menu .tab-item:nth-child(n+3) {
    margin-top: 15px;
  }
}
.tabs-container .tab-menu .tab-item {
  /* 現在アクティブ（選択中）のタブの見た目 */
}
.tabs-container .tab-menu .tab-item.active {
  background-color: var(--color-brand-green-500);
  color: var(--color-white);
}
.tabs-container .tab-content-wrapper .tab-content {
  /* 基本はすべて非表示にしておく */
  display: none;
  text-align: center;
  animation: fadeIn 0.5s ease forwards;
  /* activeなタブに対応するコンテンツだけを表示 */
}
.tabs-container .tab-content-wrapper .tab-content.is-show {
  display: block;
}
.tabs-container .tab-content-wrapper .tab-content h3 {
  font-size: var(--font-size-xxl);
  margin-bottom: var(--space-100);
  letter-spacing: 0.13em;
}
@media screen and (max-width: 960px) {
  .tabs-container .tab-content-wrapper .tab-content h3 {
    font-size: var(--font-size-l);
    margin-bottom: var(--space-50);
  }
}
.tabs-container .tab-content-wrapper .tab-content .lead {
  font-size: 3.1rem;
  line-height: var(--line-height-size);
  font-weight: bold;
  margin-bottom: var(--space-80);
}
@media screen and (max-width: 960px) {
  .tabs-container .tab-content-wrapper .tab-content .lead {
    font-size: var(--font-size-m);
    margin-bottom: var(--space-40);
  }
}
.tabs-container .tab-content-wrapper .tab-content .description {
  margin: 0 auto var(--space-80);
  line-height: 2.33em;
}
@media screen and (max-width: 960px) {
  .tabs-container .tab-content-wrapper .tab-content .description {
    margin: 0 auto var(--space-40);
    line-height: var(--line-height-size);
    text-align: left;
  }
}
.tabs-container .tab-content-wrapper .tab-content .img-box {
  max-width: 600px;
  margin: 0 auto;
}
.tabs-container .tab-content-wrapper .tab-content .img-box img {
  width: 100%;
  height: auto;
}

/* タブ切り替え時のフェードインアニメーション */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* --- [.navigation]  --- */
.navigation {
  width: -moz-fit-content;
  width: fit-content;
  margin: var(--space-100) auto 0;
  gap: 2em;
}
@media screen and (max-width: 960px) {
  .navigation {
    margin-top: var(--space-70);
  }
}
.navigation * {
  font-family: "游ゴシック体", "Yu Gothic", "YuGothic", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
  font-size: 2.2rem;
  line-height: var(--line-height-size-1em);
}
.navigation .page-numbers {
  color: var(--color-black);
  margin-right: 2em;
}
.navigation .page-numbers:last-child {
  margin-right: 0;
}
.navigation .page-numbers:hover {
  color: var(--color-brand-green-500);
}
.navigation .current {
  color: var(--color-brand-green-500);
  position: relative;
}
.navigation .current:after {
  width: 1.5em;
  height: 1px;
  content: "";
  background-color: var(--color-brand-green-500);
  position: absolute;
  z-index: 1;
  left: 50%;
  transform: translateX(-50%);
  bottom: -10px;
  transition: 0.3s ease all;
}
.navigation .prev,
.navigation .next {
  color: #727171;
}

/* --- [#news-single]  --- */
#news-single h1 {
  margin-bottom: 1em;
  line-height: 1.6em;
  color: var(--color-brand-green-500);
}
#news-single h1 + p {
  margin-bottom: var(--space-70);
}
#news-single h2 {
  margin-bottom: 1em;
  line-height: 1.6em;
  color: var(--color-brand-green-500);
}
#news-single h2 + p {
  margin-bottom: var(--space-70);
}
#news-single h3 {
  margin-bottom: 1em;
  line-height: 1.6em;
  color: var(--color-brand-green-500);
}
#news-single h3 + p {
  margin-bottom: var(--space-70);
}
#news-single h4 {
  margin-bottom: 1em;
  line-height: 1.6em;
  color: var(--color-brand-green-500);
}
#news-single h4 + p {
  margin-bottom: var(--space-70);
}
#news-single h5 {
  margin-bottom: 1em;
  line-height: 1.6em;
  color: var(--color-brand-green-500);
}
#news-single h5 + p {
  margin-bottom: var(--space-70);
}
#news-single h6 {
  margin-bottom: 1em;
  line-height: 1.6em;
  color: var(--color-brand-green-500);
}
#news-single h6 + p {
  margin-bottom: var(--space-70);
}
#news-single h1 {
  font-size: var(--font-size-h1);
}
#news-single h2 {
  font-size: var(--font-size-h2);
}
#news-single h3 {
  font-size: var(--font-size-h3);
}
#news-single h4 {
  font-size: var(--font-size-h4);
}
#news-single h5 {
  font-size: var(--font-size-h5);
}
#news-single h6 {
  font-size: var(--font-size-h6);
}
#news-single figure {
  margin: var(--space-20) auto;
}
#news-single p a {
  color: rgb(22, 126, 229);
}
@media screen and (max-width: 960px) {
  #news-single {
    margin-bottom: 0.5em;
  }
  #news-single h1 {
    margin-bottom: 0.5em;
  }
  #news-single h1 + p {
    margin-bottom: var(--space-40);
  }
  #news-single h2 {
    margin-bottom: 0.5em;
  }
  #news-single h2 + p {
    margin-bottom: var(--space-40);
  }
  #news-single h3 {
    margin-bottom: 0.5em;
  }
  #news-single h3 + p {
    margin-bottom: var(--space-40);
  }
  #news-single h4 {
    margin-bottom: 0.5em;
  }
  #news-single h4 + p {
    margin-bottom: var(--space-40);
  }
  #news-single h5 {
    margin-bottom: 0.5em;
  }
  #news-single h5 + p {
    margin-bottom: var(--space-40);
  }
  #news-single h6 {
    margin-bottom: 0.5em;
  }
  #news-single h6 + p {
    margin-bottom: var(--space-40);
  }
}

/* --- [box-form]  --- */
.box-form {
  margin-top: var(--space-100);
}
@media screen and (max-width: 960px) {
  .box-form {
    margin-top: var(--space-50);
  }
}
.box-form .required {
  position: relative;
  padding-right: var(--space-50);
}
.box-form .required::before {
  width: -moz-fit-content;
  width: fit-content;
  height: auto;
  display: inline-block;
  position: absolute;
  content: "必須";
  color: var(--color-white);
  padding: 3px;
  font-size: var(--font-size);
  line-height: var(--line-height-size-1em);
  right: 0;
  top: var(--space-40);
  background-color: #cd473d;
}
@media screen and (max-width: 960px) {
  .box-form .required::before {
    font-size: 1.4rem;
    top: 1.5em !important;
    transform: translateY(-50%) !important;
  }
}
.box-form table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}
@media screen and (max-width: 960px) {
  .box-form table {
    display: block;
    table-layout: auto;
    width: 100%;
  }
  .box-form table tbody,
  .box-form table tr {
    display: block;
    width: 100%;
  }
}
.box-form tr:last-child th, .box-form tr:last-child td {
  padding-bottom: 0;
}
@media screen and (max-width: 960px) {
  .box-form tr:last-child th, .box-form tr:last-child td {
    padding-bottom: 1px;
  }
}
.box-form th, .box-form td {
  padding-top: 25px;
  padding-bottom: 25px;
  vertical-align: top;
}
@media screen and (max-width: 960px) {
  .box-form th, .box-form td {
    padding: 0;
    display: block;
  }
}
.box-form th {
  font-size: var(--font-size-m);
  width: 220px;
  text-align: left;
  height: auto;
}
@media screen and (max-width: 960px) {
  .box-form th {
    width: 100%;
  }
}
.box-form td {
  width: calc(100% - 220px);
  padding-left: var(--space-50);
  font-size: 2rem;
  align-content: center;
  height: auto;
}
@media screen and (max-width: 960px) {
  .box-form td {
    width: 100%;
    padding-left: 0;
    padding-bottom: var(--space-30);
  }
}
.box-form td .flex {
  gap: var(--space-30);
}
@media screen and (max-width: 960px) {
  .box-form td .flex {
    display: block;
  }
}
.box-form td input,
.box-form td textarea {
  width: 100%;
  padding: 12px 20px;
  font-size: var(--font-size-m);
  line-height: var(--line-height-size-s);
}
.box-form td input::-moz-placeholder, .box-form td textarea::-moz-placeholder {
  color: #b3b3b3;
}
.box-form td input::placeholder,
.box-form td textarea::placeholder {
  color: #b3b3b3;
}
.box-form td input[type=radio] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.box-form td input[type=radio]:checked + label::before {
  border-color: var(--color-brand-green-500);
  background-color: var(--color-white);
}
.box-form td input[type=radio]:checked + label::after {
  opacity: 1;
  transform: translate(0, -50%) scale(1);
}
.box-form td label {
  position: relative;
  padding-left: 28px;
  cursor: pointer;
  display: inline-block;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  line-height: 20px;
}
.box-form td label:has(input[type=radio]:checked)::before {
  border-color: var(--color-brand-green-500);
  background-color: var(--color-white);
}
.box-form td label:has(input[type=radio]:checked)::after {
  opacity: 1;
  transform: translate(0, -50%) scale(1);
}
@media screen and (max-width: 960px) {
  .box-form td label {
    margin-top: 5px;
    width: 100%;
  }
}
.box-form td label:not(:first-of-type) {
  margin-left: var(--space-70);
}
@media screen and (max-width: 960px) {
  .box-form td label:not(:first-of-type) {
    margin-left: 0;
  }
}
.box-form td label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  border: 2px solid var(--color-black);
  border-radius: 50%;
  background-color: var(--color-white);
  transition: all 0.2s ease;
}
.box-form td label::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 50%;
  transform: translate(0, -50%) scale(0);
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: var(--color-brand-green-500);
  opacity: 0;
  transition: all 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.box-form td textarea {
  height: 260px;
}
.box-form .button {
  display: block;
  margin: var(--space-70) auto 0;
  text-align: center;
  width: -moz-fit-content;
  width: fit-content;
  height: auto;
  font-size: 2rem;
  line-height: var(--line-height-size-1em);
  padding: var(--space-30);
  border-radius: var(--border-radius-size-max);
  border: 2px solid var(--color-brand-green-500);
  background-color: var(--color-brand-green-500);
  color: var(--color-white);
  transition: 0.3s ease all;
  cursor: pointer;
}
.box-form .button:hover {
  background-color: var(--color-white);
  color: var(--color-brand-green-500);
}
@media screen and (max-width: 960px) {
  .box-form .button {
    margin: var(--space-50) auto 0;
    width: 100%;
    max-width: 400px;
    font-size: var(--font-size-m);
    padding: var(--space-20);
  }
}

/* --- [.box-dl]  --- */
.box-dl dl {
  margin-bottom: var(--space-70);
}
.box-dl dl:last-child {
  margin-bottom: 0;
}
.box-dl dl dt {
  font-size: 2rem;
  margin-bottom: 1em;
}
.box-dl dl dd {
  padding-left: var(--space-30);
}
@media screen and (max-width: 960px) {
  .box-dl dl {
    margin-bottom: var(--space-50);
  }
  .box-dl dl dt {
    font-size: var(--font-size-m);
    margin-bottom: var(--space-30);
  }
  .box-dl dl dd {
    padding-left: 0;
  }
}

/* --- [.list-style-dot]  --- */
.list-style-dot li {
  padding-left: 1.5em;
  font-size: var(--font-size);
  position: relative;
}
.list-style-dot li::before {
  width: 8px;
  height: 8px;
  border-radius: var(--border-radius-size-max);
  background-color: var(--color-brand-green-500);
  content: "";
  display: block;
  position: absolute;
  z-index: -1;
  top: 1em;
  left: 0.5em;
}
@media screen and (max-width: 960px) {
  .list-style-dot li {
    padding-left: 1em;
  }
  .list-style-dot li::before {
    left: 0;
  }
}

/* --- [.box-info]  --- */
.box-info {
  margin-top: var(--space-70);
  padding: var(--space-50);
  border-radius: var(--border-radius-size-max);
  text-align: center;
}
.box-info .title-info {
  font-size: var(--font-size-l);
  letter-spacing: 0.14em;
  font-weight: 700;
}
.box-info p {
  width: 335px;
  margin: var(--space-30) auto 0;
}
.box-info p img {
  display: block;
  width: 100%;
  height: auto;
}
@media screen and (max-width: 960px) {
  .box-info {
    margin-top: var(--space-50);
    border-radius: 70px;
  }
  .box-info .title-info {
    font-size: 2rem;
    line-height: var(--line-height-size);
  }
  .box-info p {
    width: 100%;
    max-width: 335px;
    margin: var(--space-20) auto 0;
  }
}

/* --- [.box-kadomaru]  --- */
.box-kadomaru {
  margin-top: var(--space-70);
  border-radius: var(--border-radius-size-max);
  padding: var(--space-40) 130px;
  border: 1px solid var(--color-brand-green-500);
}
.box-kadomaru .title-box-kadomaru {
  font-size: var(--font-size-l);
  letter-spacing: 0.14em;
  text-align: center;
  margin-bottom: var(--space-30);
}
@media screen and (max-width: 960px) {
  .box-kadomaru {
    margin-top: var(--space-40);
    border-radius: 50px;
    padding: var(--space-50) var(--space-30);
  }
  .box-kadomaru .title-box-kadomaru {
    font-size: 2rem;
    line-height: var(--line-height-size);
    letter-spacing: 0.18em;
    margin-bottom: var(--space-50);
  }
  .box-kadomaru p {
    letter-spacing: 0.1em;
    line-height: 2.25em;
  }
}

/* --- [.section-style-02]  --- */
.section-style-02:not(:first-of-type) {
  margin-top: 90px;
}
.section-style-02 figure {
  width: 180px;
  height: auto;
  margin: 0;
  text-align: center;
  display: block;
}
.section-style-02 figure img {
  max-width: 160px;
}
.section-style-02 .box {
  width: 550px;
}
.section-style-02 .box h3 {
  font-size: var(--font-size-h4);
  padding-bottom: var(--space-20);
  border-bottom: 1px solid var(--color-black);
}
.section-style-02 .box p {
  font-size: var(--font-size);
  line-height: var(--line-height-size);
  margin: var(--space-20) auto var(--space-30);
}
.section-style-02 .box p:last-child {
  line-height: var(--line-height-size);
  margin: 0;
}
@media screen and (max-width: 960px) {
  .section-style-02 {
    position: relative;
    padding-top: var(--space-30);
  }
  .section-style-02:not(:first-of-type) {
    margin-top: 60px;
  }
  .section-style-02 figure {
    width: 135px;
    position: absolute;
    z-index: -1;
    right: -10px;
    top: 0;
  }
  .section-style-02 figure img {
    max-width: 100%;
    height: auto;
  }
  .section-style-02 .box {
    width: 100%;
  }
  .section-style-02 .box h3 {
    font-size: 2rem;
    max-width: 165px;
  }
  .section-style-02 .box p {
    font-size: var(--font-size);
    line-height: var(--line-height-size);
    margin: var(--space-40) auto var(--space-20);
  }
}

/* --- [.section-style-03]  --- */
.section-style-03 section {
  text-align: left;
}
.section-style-03 section.center {
  text-align: center !important;
}
.section-style-03 section:not(:first-of-type) {
  margin-top: var(--space-70);
}
.section-style-03 section figure {
  width: 500px;
  order: 1;
}
.section-style-03 section .box {
  width: calc(100% - var(--space-70) - 500px);
  order: 2;
}
.section-style-03 section .box .title {
  font-size: var(--font-size-h2);
  margin-bottom: var(--space-20);
  padding-bottom: var(--space-30);
  border-bottom: 1px solid #c9caca;
  letter-spacing: 0.24em;
}
.section-style-03 section .box p {
  letter-spacing: 0.06em;
}
@media screen and (max-width: 960px) {
  .section-style-03 section:not(:first-of-type) {
    margin-top: 60px;
  }
  .section-style-03 section figure,
  .section-style-03 section .box {
    width: 100%;
    order: 0;
  }
  .section-style-03 section figure {
    margin-top: var(--space-40);
  }
  .section-style-03 section .box .title {
    font-size: 2rem;
    margin-bottom: var(--space-30);
    padding-bottom: var(--space-20);
    text-align: center;
  }
}

/* --- [.video]  --- */
.video {
  width: 100%;
  display: block;
}
.video video {
  width: 100%;
  height: auto;
  -o-object-fit: fill;
     object-fit: fill;
}

/* --- [.section-style-map]  --- */
.section-style-map + .section-style-map {
  margin-top: var(--space-80);
}
.section-style-map {
  text-align: left;
  letter-spacing: 0.22em;
}
.section-style-map .title {
  font-size: var(--font-size-ll);
  margin-bottom: var(--space-20);
  padding-bottom: 1em;
  border-bottom: 1px solid #c9caca;
}
.section-style-map table {
  font-family: "Noto Sans JP", sans-serif;
  margin-bottom: var(--space-30);
}
.section-style-map table th {
  width: 100px;
}
.section-style-map .map {
  position: relative;
  width: 100%;
  padding-bottom: 31.25%; /* 縦横比16:5 */
  height: 0;
  overflow: hidden;
}
.section-style-map .map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 960px) {
  .section-style-map + .section-style-map {
    margin-top: var(--space-70);
  }
  .section-style-map .title {
    font-size: 2rem;
    margin-bottom: var(--space-40);
    padding-bottom: 1.2em;
  }
  .section-style-map table {
    font-family: "Noto Sans JP", sans-serif;
    margin-bottom: var(--space-30);
  }
  .section-style-map table th {
    width: 70px;
  }
  .section-style-map .map {
    padding-bottom: 74.62%; /* 縦横比67:50(335 x 250) */
  }
}

/* --- [.table-style-01]  --- */
.table-style-01 * {
  font-size: var(--font-size);
  line-height: 1.75em;
  font-family: "Noto Sans JP", sans-serif;
}
.table-style-01 a {
  color: var(--color-black);
}
.table-style-01 a:hover {
  text-decoration: underline;
}
.table-style-01 {
  text-align: left;
}
.table-style-01 table, .table-style-01 tbody, .table-style-01 tr {
  width: 100%;
}
.table-style-01 tr {
  width: 100%;
  border-top: 1px solid #c9caca;
  border-bottom: 1px solid #c9caca;
}
.table-style-01 th {
  width: 200px;
  padding: 15px 0 15px 10px;
}
.table-style-01 td {
  padding: 15px 0;
}
@media screen and (max-width: 960px) {
  .table-style-01 table, .table-style-01 tbody, .table-style-01 tr, .table-style-01 th, .table-style-01 td {
    display: block;
  }
  .table-style-01 tr {
    width: 100%;
    border-top: none;
    border-bottom: 1px solid #c9caca;
  }
  .table-style-01 tr:first-of-type {
    border-top: 1px solid #c9caca;
  }
  .table-style-01 th {
    padding: 15px 0 5px;
  }
  .table-style-01 td {
    padding: 0 0 15px;
  }
}

/* --- [.list-style-circle]  --- */
.list-style-circle {
  width: 420px;
}
.list-style-circle li {
  padding-left: 1em;
  position: relative;
}
.list-style-circle li:nth-of-type(n+2) {
  margin-left: 1em;
}
.list-style-circle li:before {
  width: 1em;
  height: 1em;
  display: block;
  content: "●";
  position: absolute;
  z-index: -1;
  left: 0;
  top: 0;
}
@media screen and (max-width: 960px) {
  .list-style-circle {
    width: 100%;
    display: block;
  }
  .list-style-circle li {
    width: 100%;
  }
  .list-style-circle li:nth-of-type(n+2) {
    margin-left: 0;
  }
}

/* --- [#company-history]  --- */
#sub-page #company-history .table-style-01 th {
  padding-left: 0;
  width: 215px;
}
@media screen and (max-width: 960px) {
  #sub-page #company-history .table-style-01 th {
    width: 100%;
  }
}

/* --- [Contact Form7 css用]  --- */
.wpcf7-list-item:first-of-type {
  margin-left: 0;
}

/* 確認画面表示中は入力画面を隠す */
.step-confirm .wpcf7-form {
  display: none;
}

/* 確認画面表示中はデフォルトの確認ボタンを隠す */
.step-confirm #confirm_button {
  display: none;
}

/* real_submit（本来の送信ボタン）は確認画面でのみ表示 */
.wpcf7-form input[type=submit]#real_submit {
  display: none !important;
}

/* 確認画面のsend_buttonを押すとreal_submitを裏でクリックするため、send_buttonは見た目だけのボタン */
.box-form .button:disabled {
  background-color: var(--color-black);
  border-color: var(--color-black);
  pointer-events: none;
}

/* 送信成功時のメッセージのみ非表示（バリデーションエラーは残す） */
.wpcf7-mail-sent-ok {
  display: none !important;
}

/* --- [確認画面]  --- */
#contact-form-wrap #confirm-area tr {
  border-top: 1px solid var(--color-gray-500);
}
#contact-form-wrap #confirm-area tr:last-of-type {
  border-bottom: 1px solid var(--color-gray-500);
}
#contact-form-wrap .box-form tr th, #contact-form-wrap .box-form tr td {
  line-height: var(--line-height-size-s);
  vertical-align: middle;
}
#contact-form-wrap .box-form tr:last-child th, #contact-form-wrap .box-form tr:last-child td {
  padding-bottom: 25px;
}
#contact-form-wrap #back_button, #contact-form-wrap #send_button {
  min-width: 300px;
}
#contact-form-wrap #back_button {
  background-color: var(--color-black);
  border-color: var(--color-black);
}
#contact-form-wrap #back_button:hover {
  background-color: var(--color-white);
  color: var(--color-black);
  border-color: var(--color-black);
}
@media screen and (max-width: 960px) {
  #contact-form-wrap #confirm-area tr {
    border: none;
  }
  #contact-form-wrap #confirm-area tr:first-of-type {
    border-top: 1px solid var(--color-gray-500);
  }
  #contact-form-wrap #confirm-area tr:first-of-type th {
    padding-top: 25px;
  }
  #contact-form-wrap .box-form tr:last-child th, #contact-form-wrap .box-form tr:last-child td {
    padding-bottom: 25px;
  }
  #contact-form-wrap #back_button, #contact-form-wrap #send_button {
    min-width: auto;
    max-width: 500px;
  }
  #contact-form-wrap .box-form .button + .button {
    margin-top: var(--space-20);
  }
}

/*------------------------------
    PC 設定
------------------------------*/
/* --- [TOP FV]  --- */
#top-page #fv {
  background: url(images/back-ground-image-top-fv_pc.webp) no-repeat;
  background-size: cover;
  background-position: top center;
  padding: var(--space-50) var(--space-100);
  height: 495px;
  margin-top: var(--space-100);
}
@media screen and (max-width: 960px) {
  #top-page #fv {
    height: 400px;
    padding: var(--space-30);
    margin-top: var(--space-80);
    background: url(images/back-ground-image-top-fv_sp.webp) no-repeat;
    background-size: cover;
    background-position: top center;
  }
}
#top-page #fv .contents {
  max-width: 100%;
  position: relative;
}
#top-page #fv .contents h2 {
  position: absolute;
  top: 0;
  left: 0;
  width: -moz-fit-content;
  width: fit-content;
}
@media screen and (max-width: 960px) {
  #top-page #fv .contents h2 img {
    width: auto;
    height: 50px;
  }
}

/* --- [TOP ABOUT]  --- */
#top-page #about {
  padding: var(--space-100) 0;
}
@media screen and (max-width: 960px) {
  #top-page #about {
    padding: var(--space-50) 20px;
  }
}
#top-page #about .contents {
  max-width: 100%;
}
#top-page #about h2 {
  margin-bottom: var(--space-50);
}
@media screen and (max-width: 960px) {
  #top-page #about h2 {
    margin-bottom: var(--space-20);
  }
}
#top-page #about figure {
  width: 530px;
}
@media screen and (max-width: 960px) {
  #top-page #about figure {
    width: 70%;
    margin: 0 auto;
  }
}
#top-page #about .box {
  width: 455px;
  margin-top: var(--space-70);
}
#top-page #about .box p {
  letter-spacing: var(--letter-spacing-size);
}
@media screen and (max-width: 960px) {
  #top-page #about .box {
    width: 100%;
    margin-top: var(--space-20);
  }
}
#top-page #about ul {
  align-items: stretch;
  margin-bottom: var(--space-50);
}
#top-page #about ul li {
  width: 33.3333333333%;
  padding: 0 var(--space-m);
  border-right: 1px solid var(--color-brand-yellow-500);
}
#top-page #about ul li:first-child {
  border-left: 1px solid var(--color-brand-yellow-500);
}
#top-page #about ul li .big {
  font-size: var(--font-size-xl);
}
#top-page #about ul li .small {
  font-size: var(--font-size-m);
}
@media screen and (max-width: 960px) {
  #top-page #about ul {
    width: 100%;
    margin: var(--space-20) auto var(--space-50);
    display: block;
  }
  #top-page #about ul li {
    width: 100%;
    padding: var(--space-m) 0;
    border-bottom: 1px solid var(--color-brand-yellow-500);
    border-right: none;
    border-left: none;
  }
  #top-page #about ul li:first-child {
    border-top: 1px solid var(--color-brand-yellow-500);
    border-left: none;
  }
  #top-page #about ul li .big {
    font-size: var(--font-size-xl);
  }
  #top-page #about ul li .small {
    font-size: var(--font-size-m);
  }
}
@media screen and (max-width: 960px) {
  #top-page .button {
    text-align: center;
    margin-top: var(--space-20);
  }
}

/* --- [TOP COMPANY]  --- */
#top-page #company {
  padding: var(--space-100) 0;
}
@media screen and (max-width: 960px) {
  #top-page #company {
    padding: var(--space-50) var(--space-20) var(--space-80);
  }
}

/* --- [TOP CORRUGATED BOARD]  --- */
#top-page #corrugated-board {
  padding: var(--space-150) 0;
}
@media screen and (max-width: 960px) {
  #top-page #corrugated-board {
    padding: var(--space-70) var(--space-20);
  }
}
#top-page #corrugated-board .box p {
  font-size: var(--font-size-m);
}
@media screen and (max-width: 960px) {
  #top-page #corrugated-board .box p {
    text-align: left;
  }
}
#top-page #corrugated-board ul {
  margin: var(--space-80) 0;
  padding: 0 var(--space-40);
}
@media screen and (max-width: 960px) {
  #top-page #corrugated-board ul {
    margin: var(--space-50) 0;
    padding: 0;
    justify-content: center !important;
    gap: var(--space-30) var(--space-20);
  }
  #top-page #corrugated-board ul li {
    width: 40%;
    text-align: center;
  }
}
@media screen and (max-width: 960px) and (max-width: 960px) {
  #top-page #corrugated-board ul li:nth-child(1), #top-page #corrugated-board ul li:nth-child(2) {
    width: 42%;
  }
  #top-page #corrugated-board ul li:nth-child(3), #top-page #corrugated-board ul li:nth-child(4), #top-page #corrugated-board ul li:nth-child(5) {
    width: 28%;
  }
}
#top-page #corrugated-board ul img {
  height: 120px;
}
@media screen and (max-width: 960px) {
  #top-page #corrugated-board ul img {
    height: 75px;
    max-width: 100%;
  }
}

/* --- [TOP Products & Technology]  --- */
#top-page #products-technology {
  padding: var(--space-150) 0;
  background-image: url(images/bg_products_technology.webp);
  background-repeat: no-repeat;
  background-position: top center;
  background-size: cover;
}
@media screen and (max-width: 960px) {
  #top-page #products-technology {
    background-image: url(images/bg_products_technology_sp.webp);
    background-repeat: no-repeat;
    background-position: top center;
    background-size: cover;
    padding: var(--space-50) var(--space-20) var(--space-70);
  }
  #top-page #products-technology h2 {
    margin-bottom: var(--space-50);
  }
}
#top-page #products-technology a {
  padding: var(--space-8) var(--space-50);
}
@media screen and (max-width: 960px) {
  #top-page #products-technology a {
    padding: var(--space-20) var(--space-30);
  }
}
#top-page #products-technology li .big {
  margin: var(--space-m) 0 0 var(--space-50);
  font-size: var(--font-size-l);
  padding: 0 var(--space-8) var(--space-m);
  border-bottom: 1px solid var(--color-brand-green-500);
}
@media screen and (max-width: 960px) {
  #top-page #products-technology li .big {
    font-size: var(--font-size-m);
  }
}
#top-page #products-technology li:last-child .big {
  margin-left: var(--space-m);
}
#top-page #products-technology li:hover {
  background-color: var(--color-brand-yellow-500);
  opacity: 1;
}

/* --- [TOP NEWS]  --- */
#top-page #news-list {
  padding: var(--space-150) 0 0;
}
@media screen and (max-width: 960px) {
  #top-page #news-list {
    padding: var(--space-50) var(--space-20) var(--space-100);
  }
}
#top-page #news-list .title-english {
  margin-bottom: var(--space-m);
}
#top-page #news-list .title-english, #top-page #news-list .title-english + h2 {
  text-align: left;
}
#top-page #news-list h2 {
  margin-bottom: var(--space-70);
}
@media screen and (max-width: 960px) {
  #top-page #news-list h2 {
    margin-bottom: var(--space-50);
  }
}
#top-page #news-list .list {
  width: 655px;
}
@media screen and (max-width: 960px) {
  #top-page #news-list .list {
    width: 100%;
  }
}
#top-page #news-list .list a {
  display: block;
  padding: var(--space-30) 0;
}
#top-page #news-list .list a:hover {
  background-color: transparent;
  color: var(--color-brand-green-500);
}
@media screen and (max-width: 960px) {
  #top-page #news-list .list a {
    overflow: visible;
    display: block;
  }
  #top-page #news-list .list a .news-title {
    overflow: hidden;
    display: -webkit-box !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    word-break: break-all;
    line-height: 1.8em;
  }
}
#top-page #news-list .news-date {
  font-family: "游ゴシック体", "Yu Gothic", "YuGothic", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
  font-weight: 500;
  line-height: var(--line-height-size-1em);
  margin-bottom: var(--space-8);
}
#top-page #news-list .news-title {
  line-height: var(--line-height-size-s);
}
@media screen and (max-width: 960px) {
  #top-page #news-list .button {
    margin-top: var(--space-40);
    text-align: center;
    width: 100%;
  }
}

/* --- [width設定まとめ]  --- */
#disclaimer,
#news,
#contact,
#privacy-policy,
#recruitment,
#customer-success,
#factory-overview {
  padding: 0 130px;
}
@media screen and (max-width: 960px) {
  #disclaimer,
  #news,
  #contact,
  #privacy-policy,
  #recruitment,
  #customer-success,
  #factory-overview {
    padding: 0 var(--space-20);
  }
}

#sub-page #about,
#sub-page #production-process {
  padding: 0 90px;
}
@media screen and (max-width: 960px) {
  #sub-page #about,
  #sub-page #production-process {
    padding: 0 var(--space-20);
  }
}

#sub-page #overview.tab-content,
#sub-page #company-history.tab-content,
#sub-page #code-of-conduct.tab-content {
  padding: 0 130px;
}
#sub-page #access.tab-content {
  padding: 0 70px;
}
@media screen and (max-width: 960px) {
  #sub-page #overview.tab-content,
  #sub-page #company-history.tab-content,
  #sub-page #code-of-conduct.tab-content,
  #sub-page #access.tab-content {
    padding: 0;
  }
}

/* --- [#news]  --- */
#news .news-date {
  color: var(--color-black) !important;
  font-family: "游ゴシック体", "Yu Gothic", "YuGothic", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
}
#news .list a {
  display: flex;
  justify-content: start;
  align-items: middle;
  padding: var(--space-40) 10px;
}
@media screen and (max-width: 960px) {
  #news .list a {
    display: block;
  }
}
#news .news-date {
  width: 130px;
}
@media screen and (max-width: 960px) {
  #news .news-date {
    width: 100%;
  }
}
#news .news-title {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  word-break: break-all;
}
@media screen and (max-width: 960px) {
  #news .news-title {
    display: -webkit-box !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    margin-top: var(--space-10);
    line-height: 2em;
    /* PC解除 */
    white-space: normal !important;
    height: auto !important;
    max-height: none !important;
  }
}

/* --- [#contact]  --- */
#contact h3 {
  font-size: var(--font-size-xxl);
  margin-bottom: var(--space-50);
  letter-spacing: 0.18em;
}
@media screen and (max-width: 960px) {
  #contact h3 {
    font-size: var(--font-size-l);
    margin-bottom: var(--space-30);
  }
  #contact p.center {
    text-align: left;
  }
}

/* --- [#contact-thanks / #error]  --- */
#contact-thanks h3,
#error h3 {
  font-size: var(--font-size-ll);
  margin-bottom: var(--space-80);
  line-height: 1.6em;
  letter-spacing: 0.18em;
}
#contact-thanks .button,
#error .button {
  margin-top: var(--space-80);
}
#contact-thanks .button a,
#error .button a {
  min-width: 360px;
  padding: 25px var(--space-50);
}
@media screen and (max-width: 960px) {
  #contact-thanks h3,
  #error h3 {
    font-size: var(--font-size-l);
    margin: var(--space-80) auto var(--space-50);
  }
  #contact-thanks p.center,
  #error p.center {
    text-align: left;
  }
  #contact-thanks .button,
  #error .button {
    margin-top: var(--space-50);
    text-align: center !important;
  }
  #contact-thanks .button a,
  #error .button a {
    min-width: 300px;
    padding: 25px 5px;
  }
}

/* --- [#recruitment]  --- */
#recruitment h3 {
  font-size: 3.2rem;
  line-height: var(--line-height-size);
  padding-bottom: var(--space-50);
  border-bottom: 1px solid #c9caca;
  letter-spacing: 0.14em;
}
#recruitment h3 + p {
  text-align: center;
  margin-top: var(--space-40);
  font-size: var(--font-size-m);
  line-height: 2.33em;
}
@media screen and (max-width: 960px) {
  #recruitment h3 {
    font-size: var(--font-size-m);
    line-height: 2em;
    padding-bottom: var(--space-40);
  }
  #recruitment h3 + p {
    text-align: left;
    margin-top: var(--space-30);
    font-size: var(--font-size);
  }
}

/* --- [#sub-page #about]  --- */
#sub-page #about {
  padding: 0;
}
#sub-page #about img.pc {
  width: 100%;
  height: auto;
  display: block;
}
#sub-page #about .contents {
  max-width: 1100px;
  padding: 0 var(--space-100);
}
@media screen and (max-width: 960px) {
  #sub-page #about {
    padding: 0;
  }
  #sub-page #about img.pc {
    display: none;
  }
  #sub-page #about img.sp {
    width: 100%;
    height: auto;
    display: block;
  }
  #sub-page #about .contents {
    max-width: 100%;
    padding: 0 var(--space-20);
  }
}
#sub-page {
  /* --- [#company-data]  --- */
}
#sub-page #company-data {
  margin-bottom: var(--space-100);
}
#sub-page #company-data h2 {
  margin-bottom: 0;
}
#sub-page #company-data ul {
  margin-top: 60px;
}
#sub-page #company-data ul li {
  width: calc((100% - 60px) / 3);
}
@media screen and (max-width: 960px) {
  #sub-page #company-data {
    margin-bottom: var(--space-50);
  }
  #sub-page #company-data ul {
    margin-top: var(--space-30);
  }
  #sub-page #company-data ul li {
    width: 100%;
    margin-top: 0;
    background-color: #e6e9e9;
  }
  #sub-page #company-data ul li:not(:first-child) {
    margin-top: 10px;
  }
  #sub-page #company-data ul li img {
    max-width: 667px;
    height: auto;
    margin: 0 auto;
  }
}
#sub-page {
  /* --- [.section-style-01]  --- */
}
#sub-page .section-style-01 h3 {
  font-size: var(--font-size-ll);
  letter-spacing: 0.18em;
  padding-bottom: var(--space-20);
  margin-bottom: var(--space-20);
  border-bottom: 1px solid #c9caca;
}
#sub-page .section-style-01 h3 + p {
  letter-spacing: 0.14em;
}
@media screen and (max-width: 960px) {
  #sub-page .section-style-01 section {
    margin-top: var(--space-50);
  }
  #sub-page .section-style-01 h3 {
    font-size: 2rem;
    line-height: var(--line-height-size);
    padding-bottom: 15px;
    margin-bottom: var(--space-30);
  }
}
#sub-page {
  /* --- [#message]  --- */
}
#sub-page #message {
  margin-top: 130px;
  padding: var(--space-100) 0;
}
#sub-page #message h3 {
  font-size: var(--font-size-h1);
  letter-spacing: 0.18em;
  padding-bottom: var(--space-40);
  border-bottom: 1px solid #c9caca;
  margin-top: var(--space-100);
}
#sub-page #message .flex {
  margin-top: var(--space-50);
}
#sub-page #message .flex .box:first-child {
  width: calc(100% - 545px - var(--space-40));
  order: 2;
}
#sub-page #message .flex .box:last-child {
  width: 545px;
  order: 1;
}
#sub-page #message .ceo-name {
  text-align: right;
  margin-top: var(--space-40);
}
@media screen and (max-width: 960px) {
  #sub-page #message {
    margin-top: var(--space-50);
    padding: var(--space-40) 0;
  }
  #sub-page #message h3 {
    font-size: var(--font-size-l);
    line-height: 1.5em;
    padding-bottom: 0;
    border: none;
    margin-top: 0;
    margin-bottom: var(--space-20);
  }
  #sub-page #message .flex {
    margin-top: var(--space-50);
    display: block;
  }
  #sub-page #message .flex .box:first-child {
    width: 100%;
  }
  #sub-page #message .flex .box:first-child figure {
    width: 40%;
    min-width: 145px;
    margin: 0 auto;
    display: block;
  }
  #sub-page #message .flex .box:last-child {
    width: 100%;
  }
  #sub-page #message .flex .box:last-child p {
    line-height: var(--line-height-size);
  }
  #sub-page #message .ceo-name {
    text-align: center;
    margin: var(--space-20) auto var(--space-40);
    line-height: 2em;
  }
}
#sub-page {
  /* #sub-page #about ここより中に記述 */
}

#sub-page #about {
  /* --- [#environment]  --- */
}
#sub-page #about #environment {
  margin: var(--space-100) auto var(--space-150);
}
#sub-page #about #environment section p:first-of-type {
  margin-bottom: var(--space-50);
}
@media screen and (max-width: 960px) {
  #sub-page #about #environment {
    margin: var(--space-40) auto var(--space-50);
  }
  #sub-page #about #environment section p:first-of-type {
    margin: var(--space-30) auto var(--space-40);
  }
}
#sub-page #about #environment .box {
  margin-top: var(--space-80);
}
#sub-page #about #environment .box figure {
  width: 435px;
}
#sub-page #about #environment .box .button {
  width: -moz-fit-content;
  width: fit-content;
  margin: auto 0 var(--space-20) auto;
}
#sub-page #about #environment .box .button a {
  padding: var(--space-30) var(--space-70);
}
@media screen and (max-width: 960px) {
  #sub-page #about #environment .box {
    margin-top: var(--space-40);
  }
  #sub-page #about #environment .box figure {
    width: 100%;
    max-width: 650px;
    margin: 0 auto;
  }
  #sub-page #about #environment .box .button {
    width: 100%;
    max-width: 335px;
    margin: var(--space-50) auto 0;
  }
  #sub-page #about #environment .box .button a {
    padding: var(--space-30) var(--space-50);
  }
}
#sub-page #about {
  /* --- [#otodoke]  --- */
}
#sub-page #about #otodoke .contents {
  padding-top: var(--space-100);
  padding-bottom: var(--space-150);
}
#sub-page #about #otodoke h2 {
  font-size: var(--font-size-ll);
  letter-spacing: 0.14em;
  margin-bottom: var(--space-50);
}
#sub-page #about #otodoke .flex figure {
  width: 245px;
}
#sub-page #about #otodoke .flex .box {
  width: calc(100% - 245px - 60px);
}
@media screen and (max-width: 960px) {
  #sub-page #about #otodoke .contents {
    padding-top: var(--space-50);
    padding-bottom: var(--space-70);
  }
  #sub-page #about #otodoke h2 {
    font-size: 2rem;
    line-height: var(--line-height-size);
    margin: var(--space-20) auto var(--space-40);
  }
  #sub-page #about #otodoke .flex figure {
    display: none;
  }
  #sub-page #about #otodoke .flex .box {
    width: 100%;
  }
  #sub-page #about #otodoke figure {
    width: 45%;
    margin: 0 auto;
  }
}
#sub-page #about {
  /* #sub-page #about ここより中に記述 */
}

#sub-page #corrugated-board {
  max-width: 790px;
}
#sub-page #corrugated-board h2 {
  font-size: var(--font-size-h1);
}
#sub-page #corrugated-board p.center {
  font-size: var(--font-size-m);
  line-height: 2em;
  margin: 60px auto var(--space-100);
}

/* --- [#production-process]  --- */
#sub-page {
  /* --- [#production-process]  --- */
}
#sub-page #production-process section.center {
  margin-top: 175px;
}
#sub-page #production-process section.center .title {
  font-size: 3.4rem;
  margin-bottom: var(--space-70);
  letter-spacing: 0.18em;
}
@media screen and (max-width: 960px) {
  #sub-page #production-process section {
    margin-top: var(--space-100);
  }
  #sub-page #production-process section.center .title {
    font-size: var(--font-size-h3);
    margin-bottom: var(--space-40);
  }
}
#sub-page {
  /* --- [#factory-overview]  --- */
}
#sub-page #factory-overview h3 {
  margin-bottom: var(--space-80);
}
#sub-page #factory-overview section:first-of-type {
  margin-bottom: 130px;
}
#sub-page #factory-overview section:first-of-type h4 {
  margin: var(--space-50) auto;
}
#sub-page #factory-overview section:first-of-type h4 img {
  width: 100%;
  height: auto;
}
#sub-page #factory-overview section:first-of-type h4 + p {
  text-align: left;
}
#sub-page #factory-overview section:first-of-type .box {
  margin-top: var(--space-100);
}
#sub-page #factory-overview section:first-of-type .box h5 {
  font-size: var(--font-size-ll);
  margin-bottom: var(--space-50);
}
#sub-page #factory-overview section:first-of-type .flex {
  align-items: stretch;
  margin-top: var(--space-50);
}
#sub-page #factory-overview section:first-of-type .box-table {
  width: calc((100% - var(--space-70)) / 3);
  padding: var(--space-30) var(--space-50);
  border: 1px solid var(--color-brand-green-500);
}
#sub-page #factory-overview section:first-of-type .box-table p {
  font-size: var(--font-size-m);
  margin-bottom: 15px;
}
#sub-page #factory-overview section:first-of-type table {
  width: 100%;
  text-align: left;
}
#sub-page #factory-overview section:first-of-type table td {
  text-align: right;
}
@media screen and (max-width: 960px) {
  #sub-page #factory-overview {
    padding: 0;
  }
  #sub-page #factory-overview h3 {
    margin-bottom: var(--space-30);
  }
  #sub-page #factory-overview section:first-of-type {
    margin-bottom: var(--space-80);
  }
  #sub-page #factory-overview section:first-of-type h4 {
    margin: var(--space-40) auto var(--space-30);
  }
  #sub-page #factory-overview section:first-of-type .box h5 {
    font-size: 2rem;
    margin-bottom: var(--space-30);
  }
  #sub-page #factory-overview section:first-of-type .flex {
    display: block;
    align-items: normal;
    margin-top: var(--space-30);
  }
  #sub-page #factory-overview section:first-of-type .box-table {
    width: auto;
    min-width: 235px;
    max-width: 70%;
    padding: var(--space-20) var(--space-50);
    display: block;
    margin: var(--space-20) auto 0;
  }
  #sub-page #factory-overview section:first-of-type .box-table * {
    line-height: 1.75em;
  }
}
#sub-page #factory-overview {
  /* --- [#factory-overview] ここより中に記述  --- */
}
#sub-page {
  /* --- [#customer-success]  --- */
}
#sub-page #customer-success h3 {
  margin-bottom: 0;
}
#sub-page #customer-success h3 + .center {
  margin: 10px auto var(--space-80);
}
#sub-page #customer-success .left {
  text-align: left;
}
#sub-page #customer-success .section-style-03 section:first-of-type {
  margin-top: 130px;
}
#sub-page #customer-success .section-style-03 section:not(:first-of-type) {
  margin-top: 180px;
}
#sub-page #customer-success .section-style-03 section .box, #sub-page #customer-success .section-style-03 section figure {
  width: 100%;
}
#sub-page #customer-success .section-style-03 section .title {
  text-align: center;
}
#sub-page #customer-success .section-style-03 section .bold {
  font-size: 2rem;
  margin-bottom: var(--space-40);
}
#sub-page #customer-success .section-style-03 section figure {
  margin: var(--space-70) auto 0;
  max-width: 650px;
}
#sub-page #customer-success .box-kadomaru {
  margin-top: 120px;
  padding: 60px var(--space-80);
}
#sub-page #customer-success .box-kadomaru p {
  font-size: 2rem;
  line-height: 2em;
  letter-spacing: 0.24em;
}
@media screen and (max-width: 960px) {
  #sub-page #customer-success {
    padding: 0;
  }
  #sub-page #customer-success h3 + .center {
    margin: 10px auto var(--space-50);
  }
  #sub-page #customer-success .section-style-03 section:first-of-type, #sub-page #customer-success .section-style-03 section:not(:first-of-type) {
    margin-top: var(--space-70);
  }
  #sub-page #customer-success .section-style-03 section .bold {
    font-size: 2rem;
    margin: 0 auto;
  }
  #sub-page #customer-success .section-style-03 section figure {
    margin: var(--space-30) auto 0;
    max-width: 100%;
    width: 100%;
  }
  #sub-page #customer-success .box-kadomaru {
    margin-top: var(--space-70);
    padding: var(--space-40) var(--space-30);
  }
  #sub-page #customer-success .box-kadomaru p {
    font-size: var(--font-size-m);
    text-align: left;
    letter-spacing: 0.18em;
  }
}
#sub-page {
  /* #sub-page #customer-success ここより中に記述 */
}

/* --- [#sub-page #company]  --- */
#sub-page #company #overview h3 {
  margin-bottom: var(--space-80);
}
@media screen and (max-width: 960px) {
  #sub-page #company #overview h3 {
    margin-bottom: var(--space-40);
  }
}
@media screen and (max-width: 960px) {
  #sub-page #company .tab-content-wrapper {
    padding: 0;
  }
}

/* --- [#sub-page #company]  --- */
#sub-page #company #code-of-conduct h4,
#sub-page #company #code-of-conduct .box-dl {
  text-align: left;
}
#sub-page #company #code-of-conduct h4 {
  font-size: 2rem;
  padding-bottom: var(--space-20);
  margin-bottom: var(--space-30);
  border-bottom: 1px solid #c9caca;
}
#sub-page #company #code-of-conduct dl {
  margin-bottom: var(--space-40);
}
#sub-page #company #code-of-conduct dl:last-child {
  margin-bottom: 0;
}
#sub-page #company #code-of-conduct dl dt {
  font-size: var(--font-size);
  line-height: 2em;
  margin-bottom: 10px;
}
#sub-page #company #code-of-conduct dl dd p {
  font-size: var(--font-size);
  line-height: 2em;
}
#sub-page #company #code-of-conduct .section-style-03 {
  margin-top: var(--space-80);
}
#sub-page #company #code-of-conduct .section-style-03:first-of-type {
  margin-top: 0;
}
@media screen and (max-width: 960px) {
  #sub-page #company #code-of-conduct h4 {
    font-size: var(--font-size-m);
    padding-bottom: var(--space-20);
    margin-bottom: var(--space-20);
  }
  #sub-page #company #code-of-conduct dl {
    margin-bottom: 15px;
  }
  #sub-page #company #code-of-conduct dl dt {
    margin-bottom: 0;
  }
  #sub-page #company #code-of-conduct dl dd {
    padding-left: var(--space-20);
  }
  #sub-page #company #code-of-conduct .section-style-03 {
    margin-top: var(--space-50);
  }
}

/* --- [#sub-page #access]  --- */
#sub-page #access .section-style-map .box:first-of-type {
  width: 435px;
}
#sub-page #access .section-style-map .box:last-of-type {
  width: 450px;
}
#sub-page #access .section-style-map .box:last-of-type .map {
  padding-bottom: 77.77%;
}
#sub-page #access .section-style-map .title {
  font-size: 2rem;
  padding-bottom: var(--space-20);
  padding-left: 2em;
  margin-bottom: 60px;
  position: relative;
}
#sub-page #access .section-style-map .title:before {
  width: 1em;
  height: 1em;
  display: block;
  content: "●";
  position: absolute;
  color: var(--color-brand-green-500);
  z-index: -1;
  left: 0;
  top: 0;
}
#sub-page #access .section-style-map table {
  margin: 0;
}
#sub-page #access .section-style-map tr th, #sub-page #access .section-style-map tr td {
  padding-top: var(--space-20);
}
#sub-page #access .section-style-map tr td {
  line-height: var(--line-height-size);
}
#sub-page #access .section-style-map tr:first-child th, #sub-page #access .section-style-map tr:first-child td {
  padding-top: 0;
}
@media screen and (max-width: 960px) {
  #sub-page #access .section-style-map .box:first-of-type {
    width: 100%;
  }
  #sub-page #access .section-style-map .box:last-of-type {
    width: 100%;
    margin-top: var(--space-20);
  }
  #sub-page #access .section-style-map .box:last-of-type .map {
    padding-bottom: 77.61%;
  }
  #sub-page #access .section-style-map .title {
    font-size: var(--font-size-m);
    padding-left: 2em;
    margin-bottom: var(--space-20);
  }
  #sub-page #access .section-style-map tr th, #sub-page #access .section-style-map tr td {
    padding-top: 0;
  }
}

/* --- [#sub-page #sdgs]  --- */
#sdgs {
  width: 800px;
}
#sdgs figure {
  text-align: center;
}
#sdgs figure img.pc {
  width: auto;
  display: inline-block;
}
#sdgs {
  /* 余白設定 */
}
#sdgs .margin-top-30 {
  margin-top: var(--space-30);
}
#sdgs .margin-top-40 {
  margin-top: var(--space-40);
}
#sdgs .margin-top-50 {
  margin-top: var(--space-50);
}
#sdgs .margin-top-60 {
  margin-top: 60px;
}
#sdgs .margin-top-120 {
  margin-top: 120px;
}
@media screen and (max-width: 960px) {
  #sdgs {
    width: 100%;
  }
  #sdgs figure {
    width: 100%;
    display: block;
  }
  #sdgs figure img.pc {
    width: auto;
    display: none;
  }
  #sdgs figure img.sp {
    width: 100%;
    display: block;
  }
  #sdgs {
    /* 余白設定 */
  }
  #sdgs .margin-top-30 {
    margin-top: var(--space-30);
  }
  #sdgs .margin-top-40 {
    margin-top: var(--space-30);
  }
  #sdgs .margin-top-50 {
    margin-top: var(--space-40);
  }
  #sdgs .margin-top-60 {
    margin-top: var(--space-40);
  }
  #sdgs .margin-top-120 {
    margin-top: var(--space-80);
  }
}

/* --- [#sub-page #sdgs-info]  --- */
#sdgs-info h2 {
  font-size: var(--font-size-ll);
  margin-bottom: var(--space-50);
}
@media screen and (max-width: 960px) {
  #sdgs-info h2 {
    font-size: 2rem;
    line-height: 1.6em;
    margin-bottom: var(--space-30);
    letter-spacing: 0.18em;
    text-align: left;
  }
  #sdgs-info h2 + p {
    text-align: left;
    line-height: 1.6em;
  }
}

/* --- [.section-style-04]  --- */
.section-style-04 * {
  font-family: "Noto Sans JP", sans-serif;
}
.section-style-04 {
  margin-top: var(--space-100);
}
.section-style-04 .title-main {
  font-size: 2rem;
  color: var(--color-brand-green-500);
  position: relative;
  padding-left: 1.5em;
  padding-bottom: var(--space-20);
  border-bottom: 1px solid var(--color-brand-green-500);
  margin-bottom: var(--space-30);
}
.section-style-04 .title-main:before {
  width: 1em;
  height: 1em;
  display: block;
  content: "●";
  position: absolute;
  z-index: -1;
  left: 0;
  top: 0;
}
.section-style-04 .title-main .color-black {
  color: var(--color-black);
  font-size: 0.8em;
  margin-top: 10px;
  line-height: 2.5em;
}
.section-style-04 p {
  line-height: 2em;
}
.section-style-04 .box-dl dt {
  position: relative;
  padding-left: 1em;
  font-size: var(--font-size-m);
}
.section-style-04 .box-dl dt:before {
  width: 1em;
  height: 1em;
  display: block;
  content: "-";
  position: absolute;
  z-index: -1;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
.section-style-04 .box-dl dd {
  padding-left: 0;
}
.section-style-04 #product-examples li:first-child {
  font-size: 1.4rem;
  line-height: 1em;
  width: 170px;
  border: 1px solid var(--color-brand-green-500);
  text-align: center;
  display: block;
  padding: 10px;
}
.section-style-04 #product-examples li:last-child {
  font-size: 2rem;
  margin-left: 2em;
}
.section-style-04 .center.color-brand-green-500 {
  font-size: 2rem;
  line-height: 1.85em;
}
.section-style-04 .width-detail.sdgs-img-20 {
  margin-left: var(--space-150);
}
@media screen and (max-width: 960px) {
  .section-style-04 {
    margin-top: var(--space-70);
  }
  .section-style-04 .title-main {
    line-height: 1.6em;
    margin-bottom: var(--space-20);
  }
  .section-style-04 .title-main .color-black {
    color: var(--color-black);
    margin-top: 0;
    margin-left: -2em;
  }
  .section-style-04 p {
    line-height: 1.75em;
  }
  .section-style-04 .box-dl dt {
    position: relative;
    padding-left: 1em;
    font-size: var(--font-size-m);
  }
  .section-style-04 .box-dl dt:before {
    width: 1em;
    height: 1em;
    display: block;
    content: "-";
    position: absolute;
    z-index: -1;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
  }
  .section-style-04 .box-dl dd {
    padding-left: 0;
  }
  .section-style-04 #product-examples {
    display: block;
    width: 100%;
  }
  .section-style-04 #product-examples li:first-child {
    font-size: 1.4rem;
    line-height: 1em;
    width: auto;
    max-width: 80%;
    min-width: 170px;
    display: block;
    margin: 0 auto var(--space-20);
  }
  .section-style-04 #product-examples li:last-child {
    margin-left: 0;
    line-height: 1.6em;
    text-align: center;
  }
  .section-style-04 .center.color-brand-green-500 {
    font-size: 2rem;
    line-height: 1.85em;
  }
  .section-style-04 .width-detail {
    margin: var(--space-30) auto 0;
  }
  .section-style-04 .width-detail.sdgs-img-22 {
    width: 70% !important;
    min-width: 100px !important;
  }
  .section-style-04 .width-detail.sdgs-img-20 {
    width: 28% !important;
    min-width: 90px !important;
    margin-left: auto;
  }
  .section-style-04 .width-detail.sdgs-img-07 {
    width: 70% !important;
    min-width: 240px !important;
  }
  .section-style-04 .width-detail.sdgs-img-06 {
    width: 68% !important;
    min-width: 230px !important;
  }
}