@charset "UTF-8";
/* ==========================
  Breakpoints
========================== */
/* ==========================
  Fluid sizing helpers
  - 400px: 85%
  - 1200px: 100%
========================== */
/* ==========================
  Anchor offset (fixed header)
========================== */
:root {
  --anchor-offset: 120px;
}
html {
  scroll-padding-top: var(--anchor-offset);
}
[id] {
  scroll-margin-top: var(--anchor-offset);
}
@media (max-width: 768px) {
  :root {
    --anchor-offset: 86px;
  }
}
/* ==========================
  pc/sp
========================== */
.pc {
  display: block;
}
.sp {
  display: none;
}
@media (max-width: 768px) {
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
}
/* =========================================================
   Base (moved from style.css)
   - variables / typography / element reset
   - normalize and shared defaults
========================================================= */
/* ---------- CSS Variables ---------- */
:root {
  --font-serif: "Noto Serif JP", serif;
  --font-sans: "Noto Sans JP", sans-serif;
  --font-en: "Montserrat", sans-serif;
  --text-color: #221815;
  --base-font-size: 15px;
  --base-line-height: 30px;
  --base-font-weight: 300;
  --focus-ring: 2px solid rgba(34, 24, 21, 0.35);
}
/* ---------- Base Typography ---------- */
body, button, input, select, optgroup, textarea {
  color: var(--text-color);
  font-family: var(--font-serif);
  font-size: var(--base-font-size);
  font-weight: var(--base-font-weight);
  line-height: var(--base-line-height);
  letter-spacing: -0.006em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  text-align: justify;
  text-justify: inter-ideograph;
}
/* heading/p reset */
h1, h2, h3, h4, h5, h6 {
  clear: both;
  margin: 0;
  line-height: 1.25;
}
p {
  margin: 0;
}
dfn, cite, em, i {
  font-style: italic;
}
address {
  margin: 0;
}
blockquote {
  margin: 0 1.5em;
}
pre {
  background: #eee;
  font-family: "Courier 10 Pitch", courier, monospace;
  line-height: 1.6;
  margin-bottom: 1.6em;
  max-width: 100%;
  overflow: auto;
  padding: 1.6em;
}
code, kbd, tt, var {
  font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}
abbr, acronym {
  border-bottom: 1px dotted #666;
  cursor: help;
}
mark, ins {
  background: #fff9c0;
  text-decoration: none;
}
big {
  font-size: 125%;
}
/* ---------- Elements ---------- */
body {
  background: #fff;
}
ul, ol {
  margin: 0;
}
ul {
  list-style: disc;
}
ol {
  list-style: decimal;
}
li > ul, li > ol {
  margin-bottom: 0;
  margin-left: 0;
}
figure {
  margin: 1em 0;
}
table {
  margin: 0 0 1.5em;
  width: 100%;
}
/* ---------- Links ---------- */
a {
  color: inherit;
  text-decoration: none;
}
a:hover, a:focus, a:active {
  text-decoration: none;
  opacity: 0.7;
}
a:focus {
  outline: var(--focus-ring);
  outline-offset: 2px;
}
a:active {
  outline: 0;
}
/* GTranslate flags off */
.gtranslate_wrapper img, .gt_languages img, .gt_flag, .gt_switcher img, .gt_float_switcher img, .lang_area img, .menu_lang img, footer .f_lang img, footer .lang img {
  display: none !important;
}
/* ---------- Forms (base only) ---------- */
button, input[type="button"], input[type="reset"], input[type="submit"] {
  border: 1px solid;
  border-color: #ccc #ccc #bbb;
  border-radius: 3px;
  background: #e6e6e6;
  color: rgba(0, 0, 0, 0.8);
  line-height: 1;
  padding: 0.6em 1em 0.4em;
  cursor: pointer;
}
button:hover, input[type="button"]:hover, input[type="reset"]:hover, input[type="submit"]:hover {
  border-color: #ccc #bbb #aaa;
}
input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="number"], input[type="tel"], input[type="range"], input[type="date"], input[type="month"], input[type="week"], input[type="time"], input[type="datetime"], input[type="datetime-local"], input[type="color"], textarea {
  color: #111;
  border: 1px solid #ccc;
  border-radius: 3px;
  padding: 0.5em 0.6em;
  background: #fff;
}
input[type="text"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="number"]:focus, input[type="tel"]:focus, input[type="range"]:focus, input[type="date"]:focus, input[type="month"]:focus, input[type="week"]:focus, input[type="time"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="color"]:focus, textarea:focus {
  border-color: #999;
  outline: var(--focus-ring);
  outline-offset: 2px;
}
select {
  border: 1px solid #ccc;
  border-radius: 3px;
  padding: 0.45em 0.6em;
  background: #fff;
}
textarea {
  width: 100%;
}
/* ==========================
  Base / common
========================== */
.w1660 {
  width: 100%;
  max-width: 1740px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 40px;
  padding-right: 40px;
}
.w1330 {
  width: 100%;
  max-width: 1410px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 40px;
  padding-right: 40px;
}
.w1170 {
  width: 100%;
  max-width: 1250px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 40px;
  padding-right: 40px;
}
.w830 {
  width: 100%;
  max-width: 910px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 40px;
  padding-right: 40px;
}
h2 {
  font-size: clamp(21.75px, calc(18.125px + 0.90625vw), 29px);
  font-weight: 500;
  line-height: clamp(45px, calc(37.5px + 1.875vw), 60px);
}
h3 {
  font-size: clamp(15px, calc(12.5px + 0.625vw), 20px);
  font-weight: 500;
  line-height: clamp(30px, calc(25px + 1.25vw), 40px);
}
.green--txt {
  color: #235b2f;
}
.keep-inline {
  white-space: nowrap;
}
.link a {
  font-size: clamp(15px, calc(12.5px + 0.625vw), 20px);
  font-weight: 600;
  border-bottom: 1px solid;
}
.back_txt {
  position: absolute;
  font-size: clamp(112.5px, calc(93.75px + 4.6875vw), 150px);
  color: #f7f7f7;
  writing-mode: vertical-rl;
}
.js-parallax-soft {
  will-change: transform;
}
/* ==========================
  Arrow component
========================== */
.arrow {
  --arrow-pill-w: 64px;
  --arrow-pill-h: 36px;
  --arrow-bg: #1f5b3a;
  --arrow-icon-w: 22px;
  --arrow-icon-h: 14px;
  --arrow-color: #fff;
  --arrow-move: 140%;
  --arrow-dur: 260ms;
  width: var(--arrow-pill-w);
  height: var(--arrow-pill-h);
  border-radius: 999px;
  background: var(--arrow-bg);
  display: grid;
  place-items: center;
  overflow: hidden;
}
.arrow .link__arrow {
  position: relative;
  display: block;
  width: var(--arrow-icon-w);
  height: var(--arrow-icon-h);
  overflow: hidden;
}
.arrow .link__arrow::before, .arrow .link__arrow::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--arrow-color);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 14'%3E%3Cpath fill='black' d='M0 7h18.2l-4.6 4.6L15 13l9-6-9-6-1.4 1.4L18.2 6H0z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 14'%3E%3Cpath fill='black' d='M0 7h18.2l-4.6 4.6L15 13l9-6-9-6-1.4 1.4L18.2 6H0z'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform var(--arrow-dur) ease;
  will-change: transform;
}
.arrow .link__arrow::before {
  transform: translateX(0);
}
.arrow .link__arrow::after {
  transform: translateX(calc(-1 * var(--arrow-move)));
}
a:hover .arrow .link__arrow::before, a:focus-visible .arrow .link__arrow::before {
  transform: translateX(var(--arrow-move));
}
a:hover .arrow .link__arrow::after, a:focus-visible .arrow .link__arrow::after {
  transform: translateX(0);
}
@media (prefers-reduced-motion: reduce) {
  .arrow .link__arrow::before, .arrow .link__arrow::after {
    transition: none;
  }
  a:hover .arrow .link__arrow::before, a:hover .arrow .link__arrow::after, a:focus-visible .arrow .link__arrow::before, a:focus-visible .arrow .link__arrow::after {
    transform: translateX(0);
  }
}
/* ==========================
  Header
========================== */
header {
  position: relative;
  z-index: 99999;
}
header .lang_area {
  position: absolute;
  top: 40px;
  left: 50px;
  display: flex;
  gap: 20px;
}
@media screen and (max-width: 400px) {
  header .lang_area {
    top: 22px;
    left: 30px;
  }
}
header .lang_area p.lang {
  font-family: var(--font-en);
  font-size: clamp(10.5px, calc(8.75px + 0.4375vw), 14px);
}
header .lang_area p.lang.active {
  color: #235b2f;
}
header .menu_area {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  position: fixed;
  top: 40px;
  right: 50px;
}
@media screen and (max-width: 400px) {
  header .menu_area {
    top: 20px;
    right: 30px;
  }
}
header .menu_area .menu_icon {
  width: 18px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
header .menu_area .menu_icon span {
  display: block;
  height: 1px;
  background: #000;
  transition: background 0.3s ease, transform 0.4s ease, opacity 0.3s ease;
}
header .menu_area p {
  font-family: var(--font-en);
  font-size: clamp(10.5px, calc(8.75px + 0.4375vw), 14px);
  transition: color 0.3s ease;
}
/* ==========================
  MV rebuild (stable)
========================== */
#mv {
  height: 100vh;
  /* Mask common settings */
}
#mv .mv_movie {
  position: fixed;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  overflow: hidden;
  visibility: visible;
}
#mv .mv_layer {
  position: absolute;
  inset: 0;
}
#mv .mv_layer img, #mv .mv_layer video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
#mv .mv_hero {
  z-index: 0;
}
#mv .mv_base {
  z-index: 1;
  opacity: 0;
}
#mv .mv_white {
  z-index: 2;
  opacity: 0;
  background: #fff;
}
#mv .mv_mask {
  z-index: 3;
}
#mv .mv_mask_in, #mv .mv_mask_out {
  --mask-x: 30%;
  --mask-y: -30%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 800% 300%;
  mask-size: 800% 300%;
  -webkit-mask-position: var(--mask-x) var(--mask-y);
  mask-position: var(--mask-x) var(--mask-y);
  will-change: -webkit-mask-position, mask-position;
}
#mv .mv_mask_in {
  -webkit-mask-image: url("../images/mask.webp");
  mask-image: url("../images/mask.webp");
}
#mv .mv_mask_in img {
  display: block;
}
#mv .mv_mask_out {
  background: #fff;
  -webkit-mask-image: url("../images/mask.webp");
  mask-image: url("../images/mask.webp");
}
.mv_logo {
  width: 100%;
  max-width: 348px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media screen and (max-width: 400px) {
  .mv_logo {
    max-width: 50%;
  }
}
.mv_logo img {
  width: 100%;
  max-width: 348px;
  height: auto;
  object-fit: cover;
}
.mv_cp {
  position: absolute;
  bottom: 40px;
  left: 50px;
}
.mv_cp p.p1 {
  font-family: var(--font-en);
  font-size: clamp(10.5px, calc(8.75px + 0.4375vw), 14px);
  color: #fff;
  line-height: clamp(7.5px, calc(6.25px + 0.3125vw), 10px);
}
.mv_cp p.p2 {
  font-family: var(--font-sans);
  font-size: clamp(10.5px, calc(8.75px + 0.4375vw), 14px);
  color: #ccc;
  line-height: clamp(26.25px, calc(21.875px + 1.09375vw), 35px);
}
.mv_scroll {
  width: 100%;
  position: absolute;
  bottom: 40px;
  font-family: var(--font-en);
  font-size: clamp(9px, calc(7.5px + 0.375vw), 12px);
  color: #ccc;
  letter-spacing: 10px;
  display: flex;
  justify-content: center;
}
/* ==========================
  Sections / message
========================== */
#message {
  position: relative;
  z-index: 1;
  min-height: 100vh;
}
#message .container {
  min-height: auto;
}
#message {
  z-index: 10;
}
#message .container {
  position: relative;
}
#message .message_content {
  min-height: 60vh;
  color: #fff;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 0 20px;
  pointer-events: auto;
}
@media screen and (max-width: 400px) {
  #message .message_content {
    margin-top: 20px;
    padding: 50px 20px;
    text-align: left;
  }
}
@media screen and (max-width: 400px) {
  #message .message_content p {
    text-align: left;
  }
}
#message .message_content .headline_group {
  position: relative;
  display: inline-block;
}
#message .message_content .h2_sml {
  position: absolute;
  left: 0;
  top: 0;
  transform: translateX(var(--cap-x, 0px)) translateY(calc(-100% + var(--cap-y, 0px)));
  font-size: clamp(9px, calc(7.5px + 0.375vw), 12px);
  white-space: nowrap;
  max-width: 100%;
}
@media screen and (max-width: 400px) {
  #message .message_content .h2_sml {
    transform: unset;
    width: 100%;
  }
}
#message .message_content h2 {
  margin-top: 14px;
  margin-bottom: 26px;
}
@media screen and (max-width: 400px) {
  #message .message_content h2 {
    font-size: 17px;
    line-height: 30px;
    margin-top: 20px;
  }
}
.container--2nd {
  position: relative;
  padding: 90px 0;
}
.container--2nd::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(35, 90, 51, 0.8);
  z-index: 0;
  pointer-events: none;
}
.container--2nd .box {
  width: 560px;
  height: 840px;
  background-color: #fff;
  margin: 0 auto;
  padding: 30px 0 0;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .container--2nd .box {
    width: 90% !important;
  }
}
.container--2nd .box .box_img {
  width: 295px;
  height: 390px;
  overflow: hidden;
  margin: 0 auto;
}
.container--2nd .box .box_img > img {
  width: 100%;
  height: calc(100% + 48px);
  object-fit: cover;
  transform: translateY(-24px);
  will-change: transform;
}
.container--2nd .box h2 {
  text-align: center;
  color: #575757;
  margin: 35px 0 27px;
}
.container--2nd .box p {
  text-align: center;
}
.container--2nd .box .link {
  text-align: center;
  margin: 33px 0 0;
}
/* ==========================
  philosophy
========================== */
#philosophy {
  position: relative;
  isolation: isolate;
  z-index: 5;
  background: transparent;
  padding: 126px 0 0;
  overflow-x: hidden;
}
#philosophy::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(35, 90, 51, 0.8);
  z-index: 0;
  pointer-events: none;
}
#philosophy .philo_bg {
  position: absolute;
  inset: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 95%;
  height: 100%;
  background: #fff;
  z-index: 1;
  pointer-events: none;
}
#philosophy .container {
  position: relative;
  z-index: 2;
}
#philosophy .container .box {
  position: relative;
  display: flex;
  justify-content: space-between;
  gap: 40px;
}
@media screen and (max-width: 1000px) {
  #philosophy .container .box {
    flex-direction: column;
  }
}
@media screen and (max-width: 1000px) {
  #philosophy .container .box .box_l {
    margin: auto;
  }
}
#philosophy .container .box .box_l > img {
  width: 100%;
}
#philosophy .container .box .box_r {
  width: 645px;
}
@media screen and (max-width: 768px) {
  #philosophy .container .box .box_r {
    width: 100%;
  }
}
#philosophy .container .box .box_r p {
  margin: 38px 0 42px;
}
#philosophy .container h2 {
  text-wrap: balance;
  word-break: keep-all;
  overflow-wrap: normal;
}
@media screen and (max-width: 768px) {
  #philosophy .container h2 {
    text-wrap: unset;
    word-break: unset;
    overflow-wrap: unset;
  }
}
#philosophy .container .back_txt {
  bottom: 40px;
  right: 80px;
  will-change: transform;
}
/* ==========================
  Message overlay / parallax bridge
========================== */
#mv .mv_movie {
  position: fixed;
  inset: 0;
  z-index: 5;
}
.message_content {
  background: #245a33;
}
.container--2nd {
  overflow: visible;
}
/* ==========================
  trust
========================== */
#trust {
  min-height: auto;
}
#trust .container {
  min-height: auto;
}
#trust {
  --trust-block-h: clamp(375px, calc(312.5px + 15.625vw), 500px);
  --trust-item-pad-y: clamp(16.5px, calc(13.75px + 0.6875vw), 22px);
  --trust-item-pad-y-tight: clamp(12px, calc(10px + 0.5vw), 16px);
  --trust-item-pad-y-tight2: clamp(7.5px, calc(6.25px + 0.3125vw), 10px);
  --trust-item-min-h: clamp(55.5px, calc(46.25px + 2.3125vw), 74px);
  --trust-item-min-h-tight: clamp(46.5px, calc(38.75px + 1.9375vw), 62px);
  --trust-item-min-h-tight2: clamp(39px, calc(32.5px + 1.625vw), 52px);
  min-height: auto;
  position: relative;
  z-index: 10;
  padding: 120px 0 140px;
  background: #fff;
}
#trust .trust_ui {
  margin-top: 22px;
  display: grid;
  align-items: stretch;
  justify-content: space-between;
  grid-template-columns: minmax(520px, 615px) minmax(0, 1fr);
  gap: 40px;
}
#trust .trust_media {
  min-width: 0;
  display: flex;
  justify-content: flex-end;
}
#trust .trust_media__frame {
  width: auto;
  height: var(--trust-block-h);
  aspect-ratio: 1.69;
  max-width: 100%;
  margin-left: auto;
  overflow: hidden;
  position: relative;
}
#trust .trust_media__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.45s ease, transform 0.55s ease;
}
#trust .trust_media__img.is-show {
  opacity: 1;
  transform: translateY(0);
}
#trust .trust_media__img.is-hide {
  opacity: 0;
  transform: translateY(18px);
}
#trust .trust_list {
  border-top: 1px solid #cfd6dd;
  height: var(--trust-block-h);
  display: flex;
  flex-direction: column;
  background: #fff;
}
#trust .trust_item {
  flex: 1;
  min-height: var(--trust-item-min-h);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--trust-item-pad-y) clamp(51px, calc(42.5px + 2.125vw), 68px) var(--trust-item-pad-y) 0;
  border-bottom: 1px solid #cfd6dd;
  border-left: 0;
  border-right: 0;
  position: relative;
  cursor: pointer;
  background: #fff;
  text-align: left;
  transition: flex 0.45s ease, padding 0.45s ease;
}
#trust .trust_item .trust_item__icon {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 24px;
  display: inline-block;
}
#trust .trust_item .trust_item__head {
  display: block;
  font-size: clamp(15px, calc(12.5px + 0.625vw), 20px);
  font-weight: 600;
  color: #235b2f;
  line-height: 1.4;
}
#trust .trust_item .trust_item__body {
  display: block;
  margin-top: clamp(10.5px, calc(8.75px + 0.4375vw), 14px);
  font-size: clamp(10.5px, calc(8.75px + 0.4375vw), 14px);
  line-height: clamp(21px, calc(17.5px + 0.875vw), 28px);
  color: #333;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(8px);
  transition: max-height 0.45s ease, opacity 0.35s ease, transform 0.35s ease;
  /*
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 3; // 3 lines clamp
      overflow: hidden;
      */
}
#trust .trust_item::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  height: 1px;
  width: 0%;
  background: #235b2f;
  transition: width 0.35s ease;
}
#trust .trust_item.is-active {
  flex: 2.8;
  padding: clamp(19.5px, calc(16.25px + 0.8125vw), 26px) clamp(51px, calc(42.5px + 2.125vw), 68px) clamp(19.5px, calc(16.25px + 0.8125vw), 26px) 0;
}
#trust .trust_item.is-active::after {
  width: 100%;
}
#trust .trust_item.is-active .trust_item__body {
  max-height: none;
  opacity: 1;
  transform: translateY(0);
}
#trust[data-density="1"] .trust_item:not(.is-active) {
  flex: 0.72;
  min-height: var(--trust-item-min-h-tight);
  padding-top: var(--trust-item-pad-y-tight);
  padding-bottom: var(--trust-item-pad-y-tight);
}
#trust[data-density="2"] .trust_item:not(.is-active) {
  flex: 0.56;
  min-height: var(--trust-item-min-h-tight2);
  padding-top: var(--trust-item-pad-y-tight2);
  padding-bottom: var(--trust-item-pad-y-tight2);
}
#trust[data-density="3"] .trust_item:not(.is-active) {
  flex: 0.44;
  min-height: clamp(31.5px, calc(26.25px + 1.3125vw), 42px);
  padding-top: clamp(4.5px, calc(3.75px + 0.1875vw), 6px);
  padding-bottom: clamp(4.5px, calc(3.75px + 0.1875vw), 6px);
}
#trust .trust_item .trust_item__icon {
  background: transparent;
}
#trust .trust_item .trust_item__icon::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #235b2f;
  transform: translate(-50%, -50%);
  transition: opacity 0.25s ease;
}
#trust .trust_item.is-active .trust_item__icon::before {
  opacity: 0;
}
#trust .trust_item.is-active .trust_item__icon {
  border-radius: 999px;
  background-color: #235b2f;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='24' viewBox='0 0 44 24'%3E%3Cpath d='M18 12h12' stroke='%23fff' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M26 8l4 4-4 4' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 44px 24px;
}
@media (max-width: 1000px) {
  #trust .trust_ui {
    grid-template-columns: 1fr;
    gap: 34px;
  }
  #trust .trust_media {
    display: block;
  }
  #trust .trust_media__frame {
    height: 420px;
    max-width: 100%;
  }
  #trust .trust_list {
    height: auto;
  }
  #trust .trust_item {
    min-height: auto;
    padding: 18px 68px 18px 0;
    transition: none;
  }
  #trust .trust_item .trust_item__body {
    max-height: none;
    opacity: 1;
    transform: none;
  }
  #trust .trust_item.is-active {
    flex: initial;
    padding: 18px 68px 18px 0;
  }
}
/* ==========================
  strengths
========================== */
#strengths {
  min-height: auto;
}
#strengths .container {
  min-height: auto;
}
#strengths {
  background-color: #deded7;
  position: relative;
  z-index: 5;
}
#strengths .box {
  padding: 102px 0 94px;
  display: flex;
  gap: 50px;
}
@media screen and (max-width: 1000px) {
  #strengths .box {
    flex-direction: column;
  }
}
#strengths .box .box_ttl {
  width: 370px;
}
@media screen and (max-width: 1000px) {
  #strengths .box .box_ttl {
    width: 100%;
  }
}
#strengths .box .box_ttl h2 {
  margin: 31px 0 0;
  text-wrap: balance;
  word-break: keep-all;
  overflow-wrap: normal;
}
#strengths .box .box_con {
  width: 380px;
}
@media screen and (max-width: 1000px) {
  #strengths .box .box_con {
    width: 100%;
  }
}
#strengths .box .box_con h3 {
  margin: 5px 0 10px;
}
@media screen and (max-width: 1000px) {
  #strengths .box .box_con > img {
    width: 100%;
  }
}
/* ==========================
  JP Onsen slider rebuild
========================== */
#jp-onsen {
  --jp-onsen-slide-height: 600px;
  background: #fff;
  position: relative;
  z-index: 5;
  overflow-x: clip;
  /* タイポグラフィと余白（fluid使用） */
}
#jp-onsen .jp-onsen__stack {
  display: grid;
  grid-template-columns: 1fr;
  width: 100%;
}
#jp-onsen .jp-onsen__sticky, #jp-onsen .jp-onsen__slides {
  grid-row: 1;
  grid-column: 1;
}
#jp-onsen .jp-onsen__slides {
  position: relative;
  z-index: 0;
  width: 100%;
  overflow: clip;
  contain: paint;
}
#jp-onsen .jp-onsen__slide {
  position: relative;
  height: var(--jp-onsen-slide-height, 100vh);
  width: 100%;
  overflow: hidden;
}
#jp-onsen .jp-onsen__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: clip;
  contain: paint;
}
#jp-onsen .jp-onsen__bg img {
  position: absolute;
  inset: 0;
  left: 0 !important;
  right: 0 !important;
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: blur(18px);
  transform: scale(1.08);
}
#jp-onsen .jp-onsen__textSource {
  display: none;
}
#jp-onsen .jp-onsen__sticky {
  position: sticky;
  top: max(0px, calc((100vh - var(--jp-onsen-slide-height, 100vh)) / 2));
  height: var(--jp-onsen-slide-height, 100vh);
  z-index: 2;
  display: flex;
  align-items: center;
  pointer-events: none;
}
#jp-onsen .jp-onsen__frame {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}
#jp-onsen .jp-onsen__text, #jp-onsen .jp-onsen__media {
  height: 450px;
}
#jp-onsen .jp-onsen__text {
  max-width: 540px;
  min-width: 405px;
  width: 100%;
  color: #fff;
  pointer-events: auto;
  position: relative;
  overflow: hidden;
  transition: filter 0.35s ease, opacity 0.35s ease;
  will-change: filter, opacity;
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;
}
#jp-onsen .jp-onsen__text::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  transform: translateY(-100%);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
#jp-onsen .jp-onsen__text.is-text-out {
  filter: blur(12px);
  opacity: 0;
}
#jp-onsen .jp-onsen__text.is-text-out::after {
  opacity: 1;
  animation: onsenTextWipeDown 0.42s steps(8, end) forwards;
}
#jp-onsen .jp-onsen__text.is-text-in {
  filter: blur(0px);
  opacity: 1;
}
#jp-onsen .jp-onsen__text.is-text-in::after {
  opacity: 1;
  animation: onsenTextRevealDown 0.42s steps(8, end) forwards;
}
@keyframes onsenTextWipeDown {
  0% {
    transform: translateY(-100%);
  }
  100% {
    transform: translateY(0%);
  }
}
@keyframes onsenTextRevealDown {
  0% {
    transform: translateY(0%);
  }
  100% {
    transform: translateY(100%);
  }
}
#jp-onsen .jp-onsen__textInner .no {
  display: inline-block;
  transform-origin: 50% 50%;
  backface-visibility: hidden;
  transform: rotateX(0deg);
  transition: transform 0.55s ease;
  will-change: transform;
}
#jp-onsen .jp-onsen__textInner .no.is-spin {
  transform: rotateX(360deg);
}
#jp-onsen .jp-onsen__media {
  margin-left: auto;
  width: min(800px, 100%);
  position: relative;
  overflow: hidden;
  pointer-events: auto;
  background: #000;
}
#jp-onsen .jp-onsen__img {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0;
}
#jp-onsen .jp-onsen__imgOverlay {
  position: absolute;
  inset: 0;
  z-index: 3;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  transform: translateY(var(--enterY, 100%));
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}
#jp-onsen .jp-onsen__imgOverlay.is-in {
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  #jp-onsen .jp-onsen__imgOverlay {
    transition: none;
    transform: translateY(0);
  }
}
#jp-onsen .jp-onsen__imgPrev {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  opacity: 1 !important;
  transition: opacity 180ms ease;
}
#jp-onsen .jp-onsen__imgPrev.is-dim {
  opacity: 0.15;
}
#jp-onsen .jp-onsen__imgPrev.is-boost {
  opacity: 1;
}
@media (max-width: 1000px) {
  #jp-onsen .jp-onsen__frame {
    flex-direction: column;
    gap: 18px;
  }
  #jp-onsen .jp-onsen__text {
    width: 100%;
    min-width: 100%;
    max-width: 100%;
  }
  #jp-onsen .jp-onsen__media {
    width: 100%;
    height: 420px;
  }
}
#jp-onsen .ttl {
  font-size: clamp(12px, calc(10px + 0.5vw), 16px);
  margin: 32px 0 0;
}
#jp-onsen .no {
  font-size: clamp(21.75px, calc(18.125px + 0.90625vw), 29px);
  margin: 4px 47px 0;
}
#jp-onsen p.en {
  margin: 33px 0 0;
}
#jp-onsen h2 {
  margin: -4px 0 0;
}
#jp-onsen p.onsen_name {
  margin: 20px 0 0;
}
#jp-onsen p.sub_txt {
  margin: 49px 0 0;
  padding: 0 20px 0 0;
}
/* ==========================
  Large button component
========================== */
.large-button {
  max-width: 900px;
  margin: 106px auto 0;
  border: 2px solid rgba(30, 60, 40, 0.22);
  border-radius: 26px;
}
.large-button a.box.link {
  width: 100%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 200px;
  padding: 0 25px 0;
  border-radius: 26px;
  background: #fff;
  text-decoration: none;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.large-button a.box.link::before {
  content: "";
  position: absolute;
  left: -2px;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  height: 32px;
  background: #1f6b3a;
  border-radius: 2px;
}
.large-button .box_l {
  font-size: clamp(12px, calc(10px + 0.5vw), 16px);
  letter-spacing: 0.08em;
  color: #111;
  white-space: nowrap;
}
.large-button .box_r {
  display: flex;
  align-items: center;
  gap: 18px;
}
.large-button .box_r .txt {
  font-size: clamp(21.75px, calc(18.125px + 0.90625vw), 29px);
  letter-spacing: 0.12em;
  color: #1f6b3a;
  white-space: nowrap;
  line-height: 1.1;
}
.large-button .arrow {
  width: 58px;
  height: 34px;
  border-radius: 999px;
  background: #1f6b3a;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.large-button .link__arrow {
  position: relative;
  display: block;
  width: 18px;
  height: 18px;
}
.large-button .link__arrow::before, .large-button .link__arrow::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #fff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 14'%3E%3Cpath fill='black' d='M0 7h18.2l-4.6 4.6L15 13l9-6-9-6-1.4 1.4L18.2 6H0z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 14'%3E%3Cpath fill='black' d='M0 7h18.2l-4.6 4.6L15 13l9-6-9-6-1.4 1.4L18.2 6H0z'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform 260ms ease;
  will-change: transform;
}
.large-button .link__arrow::before {
  transform: translateX(0);
}
.large-button .link__arrow::after {
  transform: translateX(-160%);
}
.large-button a.box.link:hover .link__arrow::before {
  transform: translateX(160%);
}
.large-button a.box.link:hover .link__arrow::after {
  transform: translateX(0);
}
@media (max-width: 900px) {
  .large-button a.box.link {
    min-height: 96px;
    padding: 16px 18px 16px 48px;
    border-radius: 22px;
  }
  .large-button a.box.link::before {
    left: 18px;
    width: 8px;
    height: 28px;
  }
  .large-button .box_r .txt {
    font-size: clamp(15px, calc(12.5px + 0.625vw), 20px);
    letter-spacing: 0.08em;
  }
  .large-button .arrow {
    width: 52px;
    height: 32px;
  }
}
@media (max-width: 1000px) {
  #jp-onsen {
    --jp-onsen-slide-height: 100vh;
    /* ===== モバイルアコーディオン ===== */
    /* プラス/マイナス アイコン */
    /* プラス記号の縦線 */
    /* 開いた時は縦線を非表示 */
    /* ===== ヘッダーレイアウト（logo / en / title / onsen）===== */
    /* ===== パネル本文 ===== */
    /* パネル本文: 主なタグに継承色を適用 */
    /* モバイルではデスクトップ用フレームを非表示 */
  }
  #jp-onsen .jp-onsen__sticky {
    position: static;
    height: auto;
    pointer-events: auto;
    align-items: stretch;
  }
  #jp-onsen .jp-onsen__slides {
    position: relative;
    z-index: 1;
    padding-top: 0;
    padding-bottom: 0;
  }
  #jp-onsen .jp-onsen__slide {
    height: auto;
    overflow: visible;
    padding: 0;
  }
  #jp-onsen .jp-onsen__bg {
    display: none;
  }
  #jp-onsen .jp-onsen__acc {
    width: 100%;
    border-top: 1px solid rgba(0, 0, 0, 0.12);
    background: #fff;
  }
  #jp-onsen .jp-onsen__accItem {
    position: relative;
    border-bottom: 1px solid rgba(0, 0, 0, 0.12);
    overflow: hidden;
    color: #fff;
    /* 背景画像: CSS変数 --bg-url を使用 */
    /* 可読性向上: オーバーレイ */
  }
  #jp-onsen .jp-onsen__accItem::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--bg-url);
    background-size: cover;
    background-position: center;
    filter: blur(18px);
    transform: scale(1.12);
    opacity: 1;
    z-index: 0;
  }
  #jp-onsen .jp-onsen__accItem::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    z-index: 0;
  }
  #jp-onsen .jp-onsen__accBtn {
    width: 100%;
    text-align: left;
    appearance: none;
    border: 0;
    background: transparent;
    cursor: pointer;
    position: relative;
    z-index: 1;
    padding: 18px 52px 18px 16px;
    color: #fff;
  }
  #jp-onsen .jp-onsen__accBtn::before, #jp-onsen .jp-onsen__accBtn::after {
    content: "";
    position: absolute;
    right: 14px;
    bottom: 14px;
    width: 14px;
    height: 2px;
    background: #fff;
    transition: opacity 0.18s ease;
  }
  #jp-onsen .jp-onsen__accBtn::after {
    transform: rotate(90deg);
    opacity: 1;
  }
  #jp-onsen .jp-onsen__accItem.is-open .jp-onsen__accBtn::after {
    opacity: 0;
  }
  #jp-onsen .jp-onsen__accHead {
    display: grid;
    grid-template-columns: 92px 1fr;
    column-gap: 12px;
    align-items: start;
  }
  #jp-onsen .jp-onsen__accNo {
    font-size: 28px;
    line-height: 1;
    font-weight: 600;
    opacity: 0.95;
    margin-top: 4px;
    white-space: nowrap;
  }
  #jp-onsen .jp-onsen__accMeta {
    min-width: 0;
  }
  #jp-onsen .jp-onsen__accEn {
    font-size: 12px;
    line-height: 1.6;
    letter-spacing: 0.06em;
    opacity: 0.9;
    margin: 0;
  }
  #jp-onsen .jp-onsen__accTitle {
    display: block;
    font-size: 18px;
    line-height: 1.55;
    font-weight: 600;
    margin-top: 6px;
  }
  #jp-onsen .jp-onsen__accOnsen {
    font-size: 12px;
    line-height: 1.7;
    opacity: 0.9;
    margin-top: 6px;
  }
  #jp-onsen .jp-onsen__accPanel {
    position: relative;
    z-index: 1;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.28s ease;
  }
  #jp-onsen .jp-onsen__accInner {
    padding: 0 16px 18px;
  }
  #jp-onsen .jp-onsen__accText {
    color: #fff;
    /* リッチテキスト内のタグに継承色を適用 */
  }
  #jp-onsen .jp-onsen__accText p, #jp-onsen .jp-onsen__accText h2, #jp-onsen .jp-onsen__accText h3, #jp-onsen .jp-onsen__accText div, #jp-onsen .jp-onsen__accText span {
    color: inherit;
  }
  #jp-onsen .jp-onsen__accMedia {
    width: 100%;
    height: 240px;
    border-radius: 10px;
    overflow: hidden;
    background: #000;
    margin-top: 12px;
  }
  #jp-onsen .jp-onsen__accMedia > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  #jp-onsen .jp-onsen__frame {
    display: none;
  }
}
/* ==========================
  kiji
========================== */
#kiji {
  background: #fff;
  position: relative;
  z-index: 5;
}
#kiji .container {
  min-height: auto;
  padding-bottom: 100px;
}
#kiji .box {
  position: relative;
  display: flex;
  justify-content: space-between;
  padding: 105px 0 0;
  gap: 40px;
}
@media screen and (max-width: 768px) {
  #kiji .box {
    flex-direction: column-reverse;
  }
}
#kiji .box .box_l {
  position: relative;
  width: 255px;
}
#kiji .box .box_l .kiji_list {
  position: sticky;
  top: 75px;
}
#kiji .box .box_l .kiji_list h2 a.link {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
#kiji .box .box_l .kiji_list h2 a.link .arrow {
  --arrow-icon-w: 50px;
  --arrow-icon-h: 30px;
}
#kiji .box .box_l .kiji_list h2 a.link .arrow .link__arrow {
  --arrow-icon-w: 16px;
}
#kiji .box .box_l .kiji_list .list_box {
  margin: 40px 0 0;
}
#kiji .box .box_l .kiji_list .list_box .list {
  padding: 0 0 11px;
  margin: 0 0 8px;
  border-bottom: 1px solid #000;
}
#kiji .box .box_l .kiji_list .list_box .list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
#kiji .box .box_l .kiji_list .list_box .list a .txt p {
  line-height: clamp(16.5px, calc(13.75px + 0.6875vw), 22px);
}
#kiji .box .box_l .kiji_list .list_box .list a .arrow {
  --arrow-bg: none;
  margin: 0 -20px 0 0;
}
#kiji .box .box_l .kiji_list .list_box .list a .arrow .link__arrow {
  --arrow-color: #1f5b3a;
  --arrow-icon-w: 16px;
}
#kiji .box .box_r {
  width: 1055px;
}
@media screen and (max-width: 1000px) {
  #kiji .box .box_r {
    width: 100%;
  }
}
#kiji .box .box_r .blog_box .blog_card {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid #000;
  padding: 67px 0 73px;
  gap: 40px;
}
@media screen and (max-width: 1000px) {
  #kiji .box .box_r .blog_box .blog_card {
    flex-direction: column;
  }
}
#kiji .box .box_r .blog_box .blog_card .blog_card_l .blog_info {
  width: 350px;
}
@media screen and (max-width: 1000px) {
  #kiji .box .box_r .blog_box .blog_card .blog_card_l .blog_info {
    width: 100%;
  }
}
#kiji .box .box_r .blog_box .blog_card .blog_card_l .blog_info h2 {
  line-height: clamp(30px, calc(25px + 1.25vw), 40px);
  margin: 8px 0 0;
}
#kiji .box .box_r .blog_box .blog_card .blog_card_l .blog_info p {
  margin: 20px 0 0;
  line-height: clamp(21px, calc(17.5px + 0.875vw), 28px);
}
#kiji .box .box_r .blog_box .blog_card .blog_card_l .blog_link {
  position: absolute;
  bottom: 73px;
  width: 350px;
  height: 60px;
  background-color: #295b35;
}
@media screen and (max-width: 1000px) {
  #kiji .box .box_r .blog_box .blog_card .blog_card_l .blog_link {
    width: 100%;
    position: relative;
    bottom: 0;
    margin: 30px 0 0;
  }
}
#kiji .box .box_r .blog_box .blog_card .blog_card_l .blog_link a {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
#kiji .box .box_r .blog_box .blog_card .blog_card_l .blog_link a p {
  color: #fff;
}
#kiji .box .box_r .blog_box .blog_card .blog_card_r {
  line-height: 0;
  max-width: 630px;
  max-height: 450px;
  overflow: hidden;
}
@media screen and (max-width: 1000px) {
  #kiji .box .box_r .blog_box .blog_card .blog_card_r {
    width: 100%;
    max-width: 100%;
    min-width: 100%;
  }
}
#kiji .box .box_r .blog_box .blog_card .blog_card_r > img {
  width: 100%;
  height: auto;
  object-fit: cover;
}
/* ==========================
  MENU (glass panel) - CLEAN
========================== */
:root {
  --menu-pad: 34px;
  --menu-radius: 26px;
  --menu-panel-w: min(590px, calc(100vw - 80px));
  --menu-panel-h: calc(100svh - 40px);
}
@supports (height: 100dvh) {
  --menu-panel-h: calc(100dvh - 40px);
}
html.is-menu-open {
  overflow: hidden;
}
/* Header の見た目調整 */
header .lang_area p.lang, header .menu_area {
  color: #000;
}
/* #message 上ではヘッダーテキストを白に */
html.is-on-message header .lang_area p.lang, html.is-on-message header .menu_area {
  color: #fff;
}
html.is-on-message header .lang_area p.lang.active {
  color: #fff;
}
/* メニューオープン時にヘッダーテキストを白に */
html.is-menu-open header .lang_area p.lang, html.is-menu-open header .menu_area {
  color: #fff;
}
html.is-menu-open header .lang_area p.lang.active {
  color: #fff;
}
/* MENU アイコン / ホバーアニメーション */
header .menu_area {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
}
header .menu_area .menu_icon {
  position: relative;
  width: 18px;
  height: 12px;
  display: inline-block;
}
header .menu_area .menu_icon span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background: currentColor;
  transition: transform 0.25s ease, top 0.25s ease, opacity 0.25s ease;
}
header .menu_area .menu_icon span:nth-child(1) {
  top: 0;
}
header .menu_area .menu_icon span:nth-child(2) {
  top: 5.5px;
}
header .menu_area .menu_icon span:nth-child(3) {
  top: 11px;
}
header .menu_area p {
  font-family: var(--font-en);
  font-size: clamp(10.5px, calc(8.75px + 0.4375vw), 14px);
}
html.is-menu-open header .menu_area .menu_icon span:nth-child(1) {
  top: 5.5px;
  transform: rotate(45deg);
}
html.is-menu-open header .menu_area .menu_icon span:nth-child(2) {
  opacity: 0;
}
html.is-menu-open header .menu_area .menu_icon span:nth-child(3) {
  top: 5.5px;
  transform: rotate(-45deg);
}
/* Overlay / Panel */
.menu_overlay {
  position: fixed;
  inset: 0;
  z-index: 9998;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
  background: rgba(0, 0, 0, 0.25);
}
.menu_panel {
  position: fixed;
  top: 20px;
  right: 20px;
  height: var(--menu-panel-h);
  width: var(--menu-panel-w);
  z-index: 9999;
  opacity: 0;
  pointer-events: none;
  transform: translateX(20px);
  transition: opacity 0.28s ease, transform 0.28s ease;
  border-radius: var(--menu-radius);
  overflow: hidden;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  border: 1px solid rgba(255, 255, 255, 0.28);
  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.25);
}
.menu_panel__inner {
  position: relative;
  height: 100%;
  padding: var(--menu-pad);
  color: rgba(255, 255, 255, 0.92);
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.menu_panel__brand {
  width: 100%;
  display: flex;
  justify-content: flex-start;
  margin-bottom: 48px;
}
.memu_area {
  padding: 20px 40px 0;
}
.menu_list {
  width: 100%;
  text-align: left;
  list-style: none;
  margin: 0;
  padding: 0 0 15px;
}
.menu_list li + li {
  margin-top: 22px;
}
.menu_list--sub {
  margin-top: 0;
}
.menu_list--sub li + li {
  margin-top: 24px;
}
.menu_list li + li {
  margin-top: 28px;
}
.menu_hr {
  width: 100%;
  margin: 42px auto 48px;
  height: 1px;
  background: #fff;
}
html.is-menu-open header.kasou {
  z-index: 10001;
  background-color: transparent;
  border-bottom-color: transparent;
}
html.is-menu-open header.kasou .logo_kasou, html.is-menu-open header.kasou .lang_area {
  visibility: hidden;
}
html.is-menu-open header.kasou .menu_area {
  visibility: visible;
}
html.is-menu-open header.kasou .menu_area {
  position: fixed;
  top: 40px;
  right: 60px;
  margin-left: 0;
  z-index: 10001;
}
@media screen and (max-width: 400px) {
  html.is-menu-open header.kasou .menu_area {
    top: 20px;
    right: 30px;
  }
}
html.is-menu-open .menu_overlay {
  opacity: 1;
  pointer-events: auto;
}
html.is-menu-open .menu_panel {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(0);
}
.menu_logo_img {
  width: 143px;
  height: auto;
  display: block;
  margin: 30px 0 34px;
}
/* メニューリンクの下線を除去 */
.menu_panel .menu_link {
  text-decoration: none !important;
  border-bottom: none !important;
}
.menu_panel .menu_link:hover, .menu_panel .menu_link:focus {
  text-decoration: none !important;
  border-bottom: none !important;
}
.menu_link {
  display: inline-block;
  font-size: clamp(12px, calc(10px + 0.5vw), 16px);
  line-height: clamp(24px, calc(20px + 1vw), 32px);
  letter-spacing: 4px;
  color: rgba(255, 255, 255, 0.92);
  text-decoration: none;
  position: relative;
  text-align: left;
}
.menu_link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 1px;
  width: 100%;
  background: rgba(255, 255, 255, 0.85);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.24s ease;
}
.menu_link:hover::after {
  transform: scaleX(1);
}
.menu_lang {
  position: absolute;
  right: var(--menu-pad);
  bottom: var(--menu-pad);
  display: flex;
  flex-direction: column;
  gap: 0;
}
.menu_lang .menu_lang__item {
  font-family: var(--font-en);
  font-size: clamp(9px, calc(7.5px + 0.375vw), 12px);
  letter-spacing: 0.14em;
  color: rgba(255, 255, 255, 0.75);
  text-decoration: none;
  padding: 15px 0;
}
.menu_lang .menu_lang__item:hover {
  color: rgba(255, 255, 255, 0.95);
}
.menu_lang p {
  margin: -12px 0;
}
@media (max-width: 768px) {
  :root {
    --menu-panel-w: calc(100vw - 28px);
    --menu-panel-h: calc(100svh - 28px - env(safe-area-inset-bottom));
    --menu-pad: 26px;
    --menu-radius: 22px;
  }
  @supports (height: 100dvh) {
    --menu-panel-h: calc(100dvh - 28px - env(safe-area-inset-bottom));
  }
  .menu_panel {
    top: 14px;
    right: 14px;
    bottom: calc(14px + env(safe-area-inset-bottom));
    height: auto;
  }
  .menu_link {
    font-size: clamp(11.25px, calc(9.375px + 0.46875vw), 15px);
  }
}
/* ==========================
  footer
========================== */
footer {
  background-color: #235b2f;
  position: relative;
  z-index: 5;
}
.footer_up {
  position: relative;
}
.footer_up .footer_up__bg {
  width: 100%;
  height: 600px;
}
.footer_up .footer_up__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.footer_up .footer_up__con {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(630px, calc(100% - 40px));
  height: 400px;
}
.footer_up .footer_up__con .glass-card {
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.1);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: #fff;
  padding: 34px 50px;
  width: 100%;
}
.footer_up .footer_up__con .glass-card h2 {
  font-size: clamp(27px, calc(22.5px + 1.125vw), 36px);
}
.footer_up .footer_up__con .glass-card p {
  color: var(--text-color);
  line-height: clamp(20.25px, calc(16.875px + 0.84375vw), 27px);
  margin: 5px 0 0;
}
.footer_up .footer_up__con .glass-card .contact {
  margin: 51px 0 0;
}
.footer_up .footer_up__con .glass-card .contact .contact01 {
  border-bottom: 1px solid #fff;
  padding: 0 0 20px;
}
.footer_up .footer_up__con .glass-card .contact .box {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.footer_up .footer_up__con .glass-card .contact .box .box__l p.contact_jp {
  font-size: clamp(15px, calc(12.5px + 0.625vw), 20px);
  color: #fff;
  line-height: clamp(12px, calc(10px + 0.5vw), 16px);
}
.footer_up .footer_up__con .glass-card .contact .box .box__l p.contact_en {
  font-size: clamp(13.5px, calc(11.25px + 0.5625vw), 18px);
  color: #fff;
}
.footer_up .footer_up__con .glass-card .contact .box .box__r .arrow {
  --arrow-pill-w: 50px;
  --arrow-pill-h: 30px;
  --arrow-icon-w: 16px;
  --arrow-icon-h: 11px;
}
.footer_up .footer_up__con .glass-card .contact .contact02 {
  padding: 23px 0 15px;
}
/* padding を計算に含める */
.footer_up .footer_up__con, .footer_up .footer_up__con .glass-card {
  box-sizing: border-box;
}
.footer_info_area {
  margin: 60px 0 60px;
}
.footer_info_area .footer_info {
  display: grid;
  grid-template-columns: 1fr 180px 1fr;
  align-items: center;
}
@media screen and (max-width: 768px) {
  .footer_info_area .footer_info {
    display: flex;
    flex-direction: column;
    gap: 50px;
  }
}
.footer_info_area .footer_info .footer_info__l {
  justify-self: start;
}
.footer_info_area .footer_info .footer_info__l .label {
  font-size: clamp(10.5px, calc(8.75px + 0.4375vw), 14px);
  color: #fff;
  text-align: center;
}
.footer_info_area .footer_info .footer_info__l .footer_sns {
  margin: 23px 0 0;
  display: flex;
  gap: 32px;
}
.footer_info_area .footer_info .footer_info__l .footer_sns a {
  width: 67px;
}
.footer_info_area .footer_info .footer_info__c {
  justify-self: center;
  width: 180px;
}
.footer_info_area .footer_info .footer_info__r {
  justify-self: end;
}
.footer_info_area .footer_info .footer_info__r .link p {
  line-height: clamp(16.5px, calc(13.75px + 0.6875vw), 22px);
}
.footer_info_area .footer_info .footer_info__r .link p a {
  font-size: clamp(9px, calc(7.5px + 0.375vw), 12px);
  font-weight: 300;
  color: #fff;
  border: 0;
}
.footer_info_area .footer_info .footer_info__r .lang {
  margin: 20px 0 0;
  display: flex;
  justify-content: space-between;
}
.footer_info_area .footer_info .footer_info__r .lang p {
  width: calc(100% / 3);
  font-family: var(--font-en);
  font-size: clamp(9px, calc(7.5px + 0.375vw), 12px);
  font-weight: 400;
  color: #fff;
  border: 1px solid #fff;
  display: flex;
  justify-content: center;
  align-items: center;
}
.footer_info_area .footer_info .footer_info__r .lang p:first-child {
  border-radius: 6px 0 0 6px;
}
.footer_info_area .footer_info .footer_info__r .lang p:last-child {
  border-radius: 0 6px 6px 0;
}
.footer_info_area .footer_info .footer_info__r .lang p.active {
  background-color: #fff;
  color: #245b32;
}
.footer_cp {
  background-color: #fff;
  text-align: center;
  padding: 20px 0;
}
.footer_cp small {
  font-size: clamp(9px, calc(7.5px + 0.375vw), 12px);
  color: #235b2f;
}
/* ==========================
  Subpage header (kasou)
========================== */
header.kasou {
  width: 100%;
  height: 90px;
  position: fixed;
  top: 0;
  left: 0;
  background-color: #245a33;
  border-bottom: 1px solid #fff;
  padding: 0 60px;
  display: flex;
  align-items: center;
  gap: 40px;
  z-index: 999;
  /* Header top area: lang + menu alignment */
}
header.kasou .lang_area {
  position: static;
  top: auto;
  left: auto;
  margin-left: auto;
  display: flex;
  gap: 20px;
}
header.kasou .lang_area p.lang {
  color: #fff;
}
header.kasou .lang_area p.lang.active {
  color: #fff;
}
header.kasou .menu_area {
  position: static;
  top: auto;
  right: auto;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  margin-left: clamp(48.75px, calc(40.625px + 2.03125vw), 65px);
  z-index: 2147483647;
}
header.kasou .menu_area .menu_icon span {
  background: #fff;
}
header.kasou .menu_area p {
  color: #fff;
}
header.kasou .logo_kasou {
  width: 242px;
}
header.kasou .logo_kasou img {
  width: 100%;
  margin: 0;
}
@media screen and (max-width: 400px) {
  header.kasou {
    padding: 0 30px;
  }
  header.kasou .lang_area {
    gap: 14px;
  }
  header.kasou .menu_area {
    margin-left: 18px;
  }
}
.smp_img {
  width: 100%;
}
.smp_img img {
  width: 100%;
}
/* ==========================
  page-fr-spa
========================== */
section#page_ttl {
  margin-top: 90px;
  height: 340px;
  background-color: #245a33;
  position: relative;
}
section#page_ttl .page_ttl_box {
  color: #fff;
  position: absolute;
  bottom: 55px;
}
section#page_ttl .page_ttl_box p {
  margin-bottom: clamp(-12.75px, calc(-10.625px + -0.53125vw), -17px);
}
.link_box {
  width: 360px;
  height: 60px;
  background-color: #245a33;
}
.link_box a {
  width: 100%;
  height: 100%;
  font-size: 16px;
  border: 0;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and (max-width: 768px) {
  .link_box {
    width: 100%;
  }
}
/* ==========================
  France spa page styles
========================== */
section#fr-spa_intro {
  margin: 90px 0;
}
section#fr-spa_intro .box {
  display: flex;
  gap: 40px;
  justify-content: space-between;
}
section#fr-spa_intro .box_l {
  position: relative;
}
section#fr-spa_intro .box_l h3 {
  height: 100%;
  position: absolute;
  right: 90px;
  top: 22px;
  display: flex;
  align-items: center;
}
section#fr-spa_intro .box_r {
  margin-top: clamp(-10.5px, calc(-8.75px + -0.4375vw), -14px);
}
section#fr-spa_intro .box_r h2 {
  color: #245a33;
  margin-bottom: clamp(9px, calc(7.5px + 0.375vw), 12px);
}
section#fr-spa_intro .box_r h3 {
  line-height: 36px;
  margin-bottom: clamp(26.25px, calc(21.875px + 1.09375vw), 35px);
}
section#fr-spa_intro .box_r .item {
  display: flex;
  gap: 40px;
  margin-bottom: clamp(37.5px, calc(31.25px + 1.5625vw), 50px);
}
section#fr-spa_intro .box_r .item .item_box {
  width: clamp(129px, calc(107.5px + 5.375vw), 172px);
  text-align: center;
}
section#fr-spa_intro .box_r .item .item_box p {
  font-size: clamp(10.5px, calc(8.75px + 0.4375vw), 14px);
  margin-top: -5px;
}
section#fr-spa_onsen {
  position: relative;
  padding-top: clamp(49.5px, calc(41.25px + 2.0625vw), 66px);
  padding-bottom: clamp(36px, calc(30px + 1.5vw), 48px);
}
section#fr-spa_onsen .fr-spa_onsen_bg {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
section#fr-spa_onsen .fr-spa_onsen_bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
section#fr-spa_onsen .box {
  position: relative;
  color: #fff;
  display: flex;
  gap: 50px;
}
section#fr-spa_onsen .box .box_l h2 {
  margin-bottom: clamp(11.25px, calc(9.375px + 0.46875vw), 15px);
}
section#fr-spa_onsen .box .box_l p {
  margin-bottom: clamp(22.5px, calc(18.75px + 0.9375vw), 30px);
  letter-spacing: 0;
}
section#fr-spa_onsen .box .box_l .item h3 {
  position: relative;
  padding-left: clamp(22.5px, calc(18.75px + 0.9375vw), 30px);
  margin-bottom: clamp(9.75px, calc(8.125px + 0.40625vw), 13px);
}
section#fr-spa_onsen .box .box_l .item h3::before {
  content: "✔";
  position: absolute;
  left: 0;
  top: 10px;
  width: 25px;
  height: 25px;
  font-size: 20px;
  line-height: 20px;
  text-align: center;
}
section#fr-spa_thalasso {
  margin: clamp(53.25px, calc(44.375px + 2.21875vw), 71px) 0 clamp(86.25px, calc(71.875px + 3.59375vw), 115px);
}
section#fr-spa_thalasso .fr-spa_thalasso_ttl {
  text-align: center;
  margin-bottom: clamp(72.75px, calc(60.625px + 3.03125vw), 97px);
}
section#fr-spa_thalasso .fr-spa_thalasso_ttl h2 {
  color: #235b2f;
  margin-bottom: clamp(5.25px, calc(4.375px + 0.21875vw), 7px);
}
section#fr-spa_thalasso .con01 {
  padding-right: clamp(82.5px, calc(68.75px + 3.4375vw), 110px);
  display: flex;
  gap: 70px;
  align-items: center;
}
section#fr-spa_thalasso .con01 .con01_l {
  width: 500px;
  line-height: 0;
}
section#fr-spa_thalasso .con01 .con01_r {
  width: calc(100% - 570px);
}
section#fr-spa_thalasso .con01 .con01_r h2 {
  color: #235b2f;
  margin-bottom: clamp(11.25px, calc(9.375px + 0.46875vw), 15px);
}
section#fr-spa_thalasso .con01 .con01_r p {
  margin-bottom: clamp(20.25px, calc(16.875px + 0.84375vw), 27px);
}
section#fr-spa_thalasso .con01 .con01_r h3 {
  color: #235b2f;
  margin-bottom: clamp(11.25px, calc(9.375px + 0.46875vw), 15px);
}
section#fr-spa_thalasso .con01 .con01_r .item {
  display: flex;
  gap: 30px;
  margin-bottom: clamp(24px, calc(20px + 1vw), 32px);
}
section#fr-spa_thalasso .con01 .con01_r .item .box {
  max-width: 150px;
  width: 100%;
}
section#fr-spa_thalasso .con01 .con01_r .item .box p {
  letter-spacing: -0.006em;
  line-height: clamp(15px, calc(12.5px + 0.625vw), 20px);
  margin: 0;
}
section#fr-spa_thalasso .con02 {
  padding-left: clamp(75px, calc(62.5px + 3.125vw), 100px);
  display: flex;
  gap: 70px;
  align-items: center;
}
section#fr-spa_thalasso .con02 .con02_l {
  width: 370px;
}
section#fr-spa_thalasso .con02 .con02_l h2 {
  color: #235b2f;
  margin-bottom: clamp(12px, calc(10px + 0.5vw), 16px);
}
section#fr-spa_thalasso .con02 .con02_l p.p1 {
  margin-bottom: clamp(24px, calc(20px + 1vw), 32px);
}
section#fr-spa_thalasso .con02 .con02_l p.p2 {
  font-size: clamp(10.5px, calc(8.75px + 0.4375vw), 14px);
  line-height: clamp(18.75px, calc(15.625px + 0.78125vw), 25px);
}
section#fr-spa_thalasso .con02 .con02_r {
  line-height: 0;
}
section#fr-spa_special {
  background-color: #deded7;
  padding: clamp(53.25px, calc(44.375px + 2.21875vw), 71px) 0 clamp(63.75px, calc(53.125px + 2.65625vw), 85px);
}
section#fr-spa_special .ttl {
  text-align: center;
  color: #235b2f;
}
section#fr-spa_special .ttl .mark {
  width: 100%;
  text-align: center;
  display: flex;
  justify-content: center;
  margin: 0 0 10px;
}
section#fr-spa_special .ttl .mark p {
  width: 420px;
  height: 30px;
  background-color: #235b2f;
  color: #fff;
  border-radius: 20px;
}
section#fr-spa_special .ttl h2 {
  margin: clamp(-11.25px, calc(-9.375px + -0.46875vw), -15px) 0 clamp(12px, calc(10px + 0.5vw), 16px);
}
section#fr-spa_special .con {
  display: flex;
  gap: 80px;
  border-top: 1px solid #000;
  margin-top: clamp(19.5px, calc(16.25px + 0.8125vw), 26px);
  padding-top: clamp(39px, calc(32.5px + 1.625vw), 52px);
  padding-bottom: clamp(39px, calc(32.5px + 1.625vw), 52px);
}
section#fr-spa_special .con .con_l {
  width: 686px;
}
section#fr-spa_special .con .con_l .img_box {
  display: flex;
  gap: 20px;
}
section#fr-spa_special .con .con_l .img_sub .item {
  width: 95px;
  line-height: 0;
  margin-bottom: 20px;
}
section#fr-spa_special .con .con_l .img_main {
  width: 570px;
  line-height: 0;
}
section#fr-spa_special .con .con_r h2 {
  color: #235b2f;
  line-height: clamp(36px, calc(30px + 1.5vw), 48px);
  margin-top: clamp(-7.5px, calc(-6.25px + -0.3125vw), -10px);
  margin-bottom: clamp(9px, calc(7.5px + 0.375vw), 12px);
}
section#fr-spa_special .con .con_r p.p1 {
  margin-bottom: clamp(11.25px, calc(9.375px + 0.46875vw), 15px);
}
section#fr-spa_special .con .con_r .tag {
  margin-bottom: clamp(51.75px, calc(43.125px + 2.15625vw), 69px);
  display: flex;
  gap: 10px;
}
section#fr-spa_special .con .con_r .tag .tag_item {
  letter-spacing: 0;
  color: #235b2f;
  background-color: #fff;
  padding: 0 12px;
  border-radius: 18px;
  font-size: clamp(10.5px, calc(8.75px + 0.4375vw), 14px);
}
section#fr-spa_special .con .con_r p.p2 {
  letter-spacing: -0.006em;
  margin-bottom: clamp(41.25px, calc(34.375px + 1.71875vw), 55px);
}
section#fr-spa_special .info_area .info {
  background-color: #fff;
  display: flex;
  align-items: center;
  gap: 50px;
  padding: clamp(20.25px, calc(16.875px + 0.84375vw), 27px) clamp(52.5px, calc(43.75px + 2.1875vw), 70px) clamp(20.25px, calc(16.875px + 0.84375vw), 27px) clamp(37.5px, calc(31.25px + 1.5625vw), 50px);
}
section#fr-spa_special .info_area .info .info_l {
  width: 510px;
  display: flex;
  align-items: center;
  gap: 20px;
}
section#fr-spa_special .info_area .info .info_l .item_img {
  width: 120px;
}
section#fr-spa_special .info_area .info .info_l .info_owner h3 {
  color: #235b2f;
}
section#fr-spa_special .info_area .info .info_l .info_owner p {
  letter-spacing: -0.006em;
}
section#fr-spa_special .info_area .info .info_r {
  width: 490px;
}
section#fr-spa_center {
  margin: clamp(44.25px, calc(36.875px + 1.84375vw), 59px) 0 0;
  padding-bottom: clamp(76.5px, calc(63.75px + 3.1875vw), 102px);
}
section#fr-spa_center .ttl {
  text-align: center;
  margin-bottom: clamp(45px, calc(37.5px + 1.875vw), 60px);
}
section#fr-spa_center .ttl h2 {
  color: #235b2f;
  margin-bottom: 5px;
}
section#fr-spa_center .maps {
  margin-bottom: clamp(66.75px, calc(55.625px + 2.78125vw), 89px);
}
section#fr-spa_center .maps #frSpaMap {
  width: 100%;
  height: min(800px, 56.25vw);
}
@media (min-width: 1170px) {
  section#fr-spa_center .maps #frSpaMap {
    height: 800px;
  }
}
section#fr-spa_center .fr-spa-map__infowindow {
  width: min(370px, calc(100vw - 56px));
  border: 1px solid #235b2f;
  background: #fff;
  padding-bottom: 20px;
}
section#fr-spa_center .fr-spa-map__infowindow .fr-spa-card-head .img {
  margin-bottom: 4px;
}
section#fr-spa_center .fr-spa-map__infowindow .fr-spa-card-head h3 {
  margin-bottom: 4px;
  padding: 0 20px;
  font-size: 20px;
  line-height: 1.35;
}
section#fr-spa_center .fr-spa-map__infowindow .fr-spa-card-head h4 {
  font-size: 14px;
  padding: 0 20px;
  margin-bottom: 18px;
}
section#fr-spa_center .fr-spa-map__infowindow .fr-spa-card-head .tag {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  padding: 0 20px;
  margin-bottom: 22px;
}
section#fr-spa_center .fr-spa-map__infowindow .fr-spa-card-head .tag p {
  font-size: 14px;
  color: #235b2f;
  border: 1px solid #f3f3f3;
  border-radius: 18px;
  padding: 0 20px;
  margin: 0;
}
section#fr-spa_center .fr-spa-map__body {
  font-size: 14px;
  letter-spacing: -0.006em;
  border-top: 1px solid #235b2f;
  padding: 23px 20px 21px;
  margin: 0;
}
section#fr-spa_center .fr-spa-map__link_box {
  width: 300px;
  margin: 0 auto;
}
section#fr-spa_center .fr-spa-map__link {
  display: block;
  text-align: center;
  color: #235b2f;
  text-decoration: none;
}
section#fr-spa_center .list {
  margin: auto;
  padding: 0 clamp(30px, calc(25px + 1.25vw), 40px);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 30px;
}
section#fr-spa_center .list .box {
  width: auto;
  height: 100%;
  display: flex;
  flex-direction: column;
  border: 1px solid #235b2f;
  padding-bottom: clamp(25.5px, calc(21.25px + 1.0625vw), 34px);
}
section#fr-spa_center .list .box .fr-spa-card-head {
  flex: 0 0 auto;
}
section#fr-spa_center .list .box .img {
  margin-bottom: 4px;
}
section#fr-spa_center .list .box .img img {
  width: 100%;
}
section#fr-spa_center .list .box h3 {
  margin-bottom: 4px;
  padding: 0 clamp(15px, calc(12.5px + 0.625vw), 20px);
}
section#fr-spa_center .list .box h4 {
  font-size: clamp(10.5px, calc(8.75px + 0.4375vw), 14px);
  padding: 0 clamp(15px, calc(12.5px + 0.625vw), 20px);
  margin-bottom: clamp(13.5px, calc(11.25px + 0.5625vw), 18px);
}
section#fr-spa_center .list .box .tag {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 7px;
  padding: 0 clamp(15px, calc(12.5px + 0.625vw), 20px);
  margin-bottom: clamp(16.5px, calc(13.75px + 0.6875vw), 22px);
}
section#fr-spa_center .list .box .tag p {
  font-size: clamp(10.5px, calc(8.75px + 0.4375vw), 14px);
  color: #235b2f;
  border: 1px solid #f3f3f3;
  border-radius: 18px;
  padding: 0 clamp(15px, calc(12.5px + 0.625vw), 20px);
  margin: 0;
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
}
section#fr-spa_center .list .box > p {
  font-size: clamp(10.5px, calc(8.75px + 0.4375vw), 14px);
  letter-spacing: -0.006em;
  border-top: 1px solid #235b2f;
  padding: clamp(17.25px, calc(14.375px + 0.71875vw), 23px) clamp(15px, calc(12.5px + 0.625vw), 20px) clamp(15.75px, calc(13.125px + 0.65625vw), 21px);
  margin: 0;
  flex: 1 1 auto;
}
section#fr-spa_center .list .box .link_box {
  width: 300px;
  margin: auto auto 0;
}
@media screen and (max-width: 1200px) {
  section#fr-spa_intro .box {
    gap: 24px;
  }
  section#fr-spa_intro .box_r h3 {
    line-height: 1.8;
  }
  section#fr-spa_thalasso .con01, section#fr-spa_thalasso .con02 {
    padding-left: 40px;
    padding-right: 40px;
    gap: 40px;
  }
  section#fr-spa_special .con {
    gap: 40px;
  }
  section#fr-spa_special .info_area .info {
    padding: 24px 30px;
    gap: 30px;
  }
  section#fr-spa_center .list {
    padding: 0 20px;
    gap: 20px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 1200px) and (max-width: 768px) {
  section#fr-spa_special .link_box {
    width: 100%;
  }
}
@media screen and (max-width: 991px) {
  section#page_ttl {
    height: 260px;
  }
  section#page_ttl .page_ttl_box {
    bottom: 30px;
  }
  section#fr-spa_intro {
    margin: 60px 0;
  }
  section#fr-spa_intro .box {
    flex-direction: column;
  }
  section#fr-spa_intro .box_l h3 {
    right: 30px;
    top: 20px;
  }
  section#fr-spa_intro .box_r {
    margin-top: 0;
  }
  section#fr-spa_intro .box_r .item {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }
  section#fr-spa_onsen .box {
    flex-direction: column;
    gap: 30px;
  }
  section#fr-spa_thalasso {
    margin: 60px 0 80px;
  }
  section#fr-spa_thalasso .fr-spa_thalasso_ttl {
    margin-bottom: 50px;
  }
  section#fr-spa_thalasso .con01, section#fr-spa_thalasso .con02 {
    flex-direction: column;
    padding-left: 20px;
    padding-right: 20px;
    gap: 26px;
  }
  section#fr-spa_thalasso .con01 .con01_l, section#fr-spa_thalasso .con01 .con01_r {
    width: 100%;
  }
  section#fr-spa_thalasso .con02 .con02_l, section#fr-spa_thalasso .con02 .con02_r {
    width: 100%;
  }
  section#fr-spa_special .con {
    flex-direction: column;
    padding-top: 30px;
    padding-bottom: 30px;
  }
  section#fr-spa_special .con .con_l, section#fr-spa_special .con .con_r {
    width: 100%;
  }
  section#fr-spa_special .con .con_l .img_main {
    width: 100%;
  }
  section#fr-spa_special .info_area .info {
    flex-direction: column;
    align-items: flex-start;
  }
  section#fr-spa_special .info_area .info .info_l, section#fr-spa_special .info_area .info .info_r {
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  section#fr-spa_intro .box_l h3 {
    position: static;
    height: auto;
    margin-bottom: 16px;
    display: block;
  }
  section#fr-spa_intro .box_r .item {
    grid-template-columns: 1fr;
  }
  section#fr-spa_special .con .con_l .img_box {
    flex-direction: column-reverse;
    gap: 12px;
  }
  section#fr-spa_special .con .con_l .img_sub {
    display: flex;
    gap: 12px;
  }
  section#fr-spa_special .con .con_l .img_sub .item {
    width: calc((100% - 24px) / 3);
    margin-bottom: 0;
  }
  section#fr-spa_center .maps #frSpaMap {
    height: 420px;
  }
  section#fr-spa_center .list {
    grid-template-columns: 1fr;
  }
  section#fr-spa_center .list .box {
    width: auto;
  }
  section#fr-spa_center .list .box .link_box {
    width: min(100%, 300px);
  }
}
/* ==========================
  fr_spa_facility single
========================== */
.fr-spa-facility-single {
  padding-bottom: 100px;
}
.fr-spa-facility-single .fr-spa-d01 img {
  width: 100%;
  height: auto;
  display: block;
}
.fr-spa-facility-single .logoandtitle {
  text-align: center;
  margin-top: 38px;
  margin-bottom: 24px;
}
.fr-spa-facility-single .logoandtitle figure {
  margin: 0 0 10px;
}
.fr-spa-facility-single .logoandtitle .smalltit {
  color: #00a1e9;
  border-bottom: 1px solid #00a1e9;
  padding-bottom: 10px;
  margin-bottom: 10px;
  line-height: 1.7;
  text-align: left;
}
.fr-spa-facility-single .logoandtitle .bigtit {
  color: #00a1e9;
  font-size: clamp(24px, calc(20px + 1vw), 32px);
  line-height: clamp(36px, calc(30px + 1.5vw), 48px);
  margin-bottom: 8px;
  text-align: left;
}
.fr-spa-facility-single .bluetitle {
  color: #00a1e9;
  font-size: clamp(21px, calc(17.5px + 0.875vw), 28px);
  line-height: clamp(30px, calc(25px + 1.25vw), 40px);
  margin-bottom: 14px;
  text-align: center;
}
.fr-spa-facility-single .graycomment, .fr-spa-facility-single .graycomment2 {
  line-height: 1.9;
  margin-bottom: 20px;
}
.fr-spa-facility-single .graycomment {
  text-align: center;
  font-size: 18px;
  color: #666;
}
.fr-spa-facility-single .graycomment2 {
  text-align: left;
  font-size: 18px;
  color: #666;
  padding: 1% 3%;
}
.fr-spa-facility-single .fr-spa-facility-hotel__images {
  margin-top: 40px;
}
.fr-spa-facility-single .fr-spa_d5 {
  margin: 26px 0 45px;
}
.fr-spa-facility-single .fr-spa-d08 {
  width: 100%;
  padding-top: 2%;
  padding-bottom: 1%;
  background-image: url("../images/fr-spa-d_img08_bg.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  margin: 10px 0 24px;
}
.fr-spa-facility-single .carousel ul {
  display: flex;
  gap: 12px;
  width: max-content;
  list-style: none;
  padding: 0;
  margin: 0;
}
.fr-spa-facility-single .carousel {
  overflow: hidden;
  width: 100%;
}
.fr-spa-facility-single .carousel ul li {
  flex: 0 0 250px;
  box-shadow: 0 0 5px #999;
  background: #fff;
}
.fr-spa-facility-single .carousel ul li a {
  display: block;
  line-height: 0;
}
.fr-spa-facility-single .carousel img {
  width: 100%;
  height: 250px;
  object-fit: cover;
  display: block;
}
.fr-spa-facility-single .fr-spa-facility-course-grid {
  width: 100%;
  border-collapse: separate;
  gap: 12px;
  border-spacing: 16px 16px;
  table-layout: fixed;
}
.fr-spa-facility-single .fr-spa-facility-course-grid td {
  width: auto;
  vertical-align: top;
}
.fr-spa-facility-single .fr-spa-facility-course-grid .m_slide2 {
  max-width: 350px;
  margin: 0 auto;
}
.fr-spa-facility-single .fr-spa-facility-course-grid .m_slide2 img {
  width: 100%;
  aspect-ratio: 1.5350877193;
  object-fit: cover;
  display: block;
}
.fr-spa-facility-single .fr-spa-facility-course-grid--alt .m_slide2 {
  max-width: 100%;
}
.fr-spa-facility-single .fr-spa-facility-course-grid--alt .m_slide2 img {
  aspect-ratio: auto;
  height: auto;
}
.fr-spa-facility-single .fr-spa-course-alt-footer {
  text-align: center;
  margin: 16px 0 0;
}
.fr-spa-facility-single .fr-spa-course-alt-footer img {
  max-width: 100%;
  height: auto;
  display: inline-block;
}
.fr-spa-facility-single .modalWindow {
  display: none;
}
.fr-spa-facility-single .mdw_page {
  border: solid 1px #ccc;
  width: 100%;
  margin: 0 auto;
}
.fr-spa-facility-single .mdw_page dt {
  color: #407611;
  font-weight: 700;
  line-height: 1.5;
  padding: 14px 16px;
  border-bottom: 1px solid #d0cdbc;
}
.fr-spa-facility-single .mdw_page dd {
  margin: 10px 23px;
  line-height: 1.8;
  font-size: 14px;
  padding-bottom: 20px;
}
@media screen and (max-width: 767px) {
  .fr-spa-facility-single .fr-spa-facility-course-grid .m_slide2 {
    max-width: 100%;
  }
  .fr-spa-facility-single .fr-spa-facility-course-grid, .fr-spa-facility-single .fr-spa-facility-course-grid tr, .fr-spa-facility-single .fr-spa-facility-course-grid td {
    display: block;
    width: 100%;
  }
  .fr-spa-facility-single .fr-spa-facility-course-grid td {
    margin-bottom: 12px;
  }
}
.fr-spa-facility-single .m_slide2 a {
  display: block;
}
.fr-spa-facility-single .hotel_box {
  background-color: #ffffff85;
  margin-top: 10px;
  margin-bottom: 30px;
  padding-top: 20px;
  padding-bottom: 10px;
}
.fr-spa-facility-single .hotel3mai {
  max-width: 100%;
  height: auto;
}
.fr-spa-facility-single .gmap iframe {
  width: 100%;
  min-height: 420px;
  border: 0;
  display: block;
}
.fr-spa-facility-single .fr-spa-booking {
  margin-top: 32px;
}
.fr-spa-facility-single .hotel_bg_null {
  width: 100%;
  background-size: 100% auto;
  background-position: top center;
  background-repeat: no-repeat;
}
.fr-spa-facility-single .hotel_bg_null.hotel_bg_with_image {
  padding-top: 28%;
  margin-top: 20px;
}
.fr-spa-facility-single .hotel_bg_null.hotel_bg_with_image .hotel_box {
  margin-top: -36px;
}
.fr-spa-facility-single .bluetitle2 {
  text-align: center;
  font-size: 24px;
  color: #407611;
  padding-top: 0;
  padding-bottom: 5px;
  margin-top: 5px;
}
.fr-spa-lightbox {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: none;
}
.fr-spa-lightbox.is-open {
  display: block;
}
.fr-spa-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.65);
}
.fr-spa-lightbox__dialog {
  position: relative;
  width: min(900px, 92vw);
  max-height: 90vh;
  overflow: auto;
  margin: 5vh auto 0;
  background: #fff;
  padding: 18px;
}
.fr-spa-lightbox__close {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 34px;
  height: 34px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  border-radius: 999px;
  border: 0;
  color: #fff;
  background: #1f1f1f;
  font-size: 22px;
  cursor: pointer;
}
.fr-spa-lightbox__close > span {
  font-family: Arial, sans-serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1;
  transform: translateY(1px);
  display: inline-block;
}
/* ==========================
  single.php (blog detail)
========================== */
.sp-single {
  padding: 56px 0 100px;
}
.sp-single__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 40px;
  align-items: start;
}
.sp-single__main {
  min-width: 0;
}
.sp-single__header {
  text-align: center;
  margin-bottom: 38px;
}
.sp-single__category {
  margin-bottom: 10px;
  font-size: 14px;
  font-weight: 700;
  color: #407611;
  line-height: 1.5;
}
.sp-single__category a {
  color: inherit;
}
.sp-single__title {
  font-size: clamp(31.5px, calc(26.25px + 1.3125vw), 42px);
  line-height: clamp(46.5px, calc(38.75px + 1.9375vw), 62px);
  font-weight: 500;
  margin-bottom: 10px;
  text-align: center;
}
.sp-single__date {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.03em;
  color: #666;
}
.sp-single__mainphoto {
  margin: 0 0 48px;
}
.sp-single__mainphoto img {
  width: 100%;
  height: auto;
  display: block;
}
.sp-single__content {
  margin-bottom: 48px;
  font-size: 16px;
  line-height: 2;
}
.sp-single__content p, .sp-single__content ul, .sp-single__content ol, .sp-single__content table, .sp-single__content figure, .sp-single__content blockquote {
  margin-bottom: 1.2em;
}
.sp-single__subphoto {
  margin-bottom: 48px;
}
.sp-single__subphoto ul {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  list-style: none;
  padding: 0;
}
.sp-single__subphoto li {
  overflow: hidden;
  background: #f7f7f7;
}
.sp-single__subphoto img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  display: block;
}
.sp-single__taglist {
  margin-bottom: 50px;
}
.sp-single__taglist ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.sp-single__taglist li a {
  display: block;
  padding: 7px 16px;
  border: 1px solid #bfbfbf;
  color: #407611;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}
.sp-single__next {
  margin: 0 auto 56px;
  border: 1px solid #bfbfbf;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.sp-single__next-col {
  display: block;
  padding: 20px 18px;
  color: inherit;
}
.sp-single__next-col--prev {
  border-right: 1px solid #bfbfbf;
}
.sp-single__next-link {
  text-align: center;
  color: #407611;
  font-weight: 700;
  font-size: 13px;
  margin-bottom: 16px;
}
.sp-single__next-box {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.sp-single__next-text {
  flex: 1;
  min-width: 0;
  font-size: 13px;
  line-height: 1.6;
  font-weight: 600;
}
.sp-single__next-text span {
  display: inline-block;
  margin-top: 3px;
  font-size: 11px;
  color: #666;
}
.sp-single__next-image {
  width: 82px;
  flex-shrink: 0;
}
.sp-single__next-image img {
  width: 100%;
  height: auto;
  display: block;
}
.sp-single__rec {
  margin-top: 10px;
}
.sp-single__rec-title {
  font-size: 18px;
  line-height: 1.5;
  text-align: center;
  margin-bottom: 26px;
}
.sp-single__rec-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 20px;
}
.sp-single__rec-card {
  border-bottom: 1px solid #bfbfbf;
  padding-bottom: 16px;
}
.sp-single__rec-card > a {
  color: inherit;
  display: block;
}
.sp-single__rec-image {
  margin-bottom: 12px;
  background: #f7f7f7;
  overflow: hidden;
}
.sp-single__rec-image img {
  width: 100%;
  aspect-ratio: 1.4761904762;
  object-fit: cover;
  display: block;
}
.sp-single__rec-content {
  text-align: center;
}
.sp-single__rec-cat {
  font-size: 12px;
  color: #407611;
  font-weight: 700;
  margin-bottom: 6px;
}
.sp-single__rec-card-title {
  font-size: 16px;
  line-height: 1.45;
  margin-bottom: 8px;
}
.sp-single__rec-text {
  font-size: 13px;
  line-height: 1.75;
  margin-bottom: 10px;
}
.sp-single__rec-date {
  font-size: 12px;
  color: #666;
}
@media screen and (max-width: 767px) {
  .sp-single {
    padding: 34px 0 70px;
  }
  .sp-single__layout {
    grid-template-columns: 1fr;
    gap: 34px;
  }
  .sp-single__title {
    font-size: 30px;
    line-height: 1.45;
  }
  .sp-single__subphoto ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  .sp-single__next {
    grid-template-columns: 1fr;
  }
  .sp-single__next-col--prev {
    border-right: 0;
    border-bottom: 1px solid #bfbfbf;
  }
  .sp-single__rec-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }
}
.sp-side {
  min-width: 0;
}
.sp-side__block {
  border: 1px solid #d7d7d7;
  padding: 16px;
  margin-bottom: 18px;
  background: #fff;
}
.sp-side__title {
  font-size: 16px;
  line-height: 1.45;
  font-weight: 600;
  margin-bottom: 12px;
  color: #407611;
  text-align: center;
  border-bottom: 1px solid #e5e5e5;
  padding-bottom: 8px;
}
.sp-side__banners {
  display: grid;
  gap: 10px;
}
.sp-side__banners a {
  display: block;
  border: 1px solid #d7d7d7;
  padding: 10px 12px;
  text-align: center;
  font-size: 13px;
  line-height: 1.5;
  font-weight: 600;
  color: #333;
  background: #fafafa;
}
.sp-side__posts {
  display: grid;
  gap: 10px;
}
.sp-side__post > a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 86px;
  gap: 10px;
  align-items: start;
  color: inherit;
}
.sp-side__post-title {
  font-size: 13px;
  line-height: 1.55;
  margin-bottom: 3px;
  font-weight: 600;
}
.sp-side__post-date {
  font-size: 11px;
  color: #666;
  line-height: 1.4;
}
.sp-side__post-image img {
  width: 100%;
  aspect-ratio: 1.3333333333;
  object-fit: cover;
  display: block;
}
.sp-side__cat-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 6px;
}
.sp-side__cat-list a {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: baseline;
  border-bottom: 1px solid #e8e8e8;
  padding: 6px 0;
  font-size: 13px;
  line-height: 1.45;
}
.sp-side__cat-list a span {
  color: #666;
  font-size: 11px;
}
.sp-side__empty {
  font-size: 12px;
  color: #777;
  line-height: 1.6;
}
/* ==========================
  page-all.php
========================== */
.sp-all {
  padding-top: 110px;
  padding-bottom: 100px;
}
.sp-all__layout {
  display: flex;
  gap: 40px;
  align-items: flex-start;
}
.sp-all__main {
  flex: 1 1 auto;
  min-width: 0;
}
.sp-all #secondary.sp-side {
  flex: 0 0 300px;
  width: 300px;
  max-width: 100%;
}
.sp-all__header {
  margin-bottom: 26px;
}
.sp-all__title {
  font-size: clamp(31.5px, calc(26.25px + 1.3125vw), 42px);
  line-height: clamp(46.5px, calc(38.75px + 1.9375vw), 62px);
  text-align: center;
  font-weight: 500;
}
.sp-all__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px 20px;
}
.sp-all__card {
  border-bottom: 1px solid #bfbfbf;
  padding-bottom: 16px;
}
.sp-all__card > a {
  display: block;
  color: inherit;
}
.sp-all__search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 88px;
  gap: 10px;
  padding: 10px;
  border: 1px solid #dfe6df;
  background: #235b2f;
  color: #fff;
  border-radius: 8px;
}
.sp-all__search input[type="search"] {
  width: 100%;
  height: 42px;
  border: 1px solid #cbd6cb;
  background: #fff;
  padding: 0 12px;
  font-size: 13px;
  line-height: 1.4;
  border-radius: 6px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
  color: #222;
}
.sp-all__search input[type="search"]::placeholder {
  color: #8a8a8a;
}
.sp-all__search button[type="submit"] {
  height: 42px;
  border: 0;
  background: #1b4826;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  border-radius: 6px;
  letter-spacing: 0.04em;
  transition: opacity 0.2s ease;
}
.sp-all__search button[type="submit"]:hover {
  opacity: 0.85;
}
.sp-all__image {
  margin-bottom: 12px;
  overflow: hidden;
  background: #f7f7f7;
}
.sp-all__image img {
  width: 100%;
  aspect-ratio: 1.4761904762;
  object-fit: cover;
  display: block;
}
.sp-all__content {
  text-align: center;
}
.sp-all__cat {
  font-size: 12px;
  font-weight: 700;
  color: #407611;
  margin-bottom: 6px;
}
.sp-all__card-title {
  font-size: 18px;
  line-height: 1.45;
  margin-bottom: 8px;
}
.sp-all__excerpt {
  font-size: 13px;
  line-height: 1.75;
  margin-bottom: 10px;
}
.sp-all__date {
  font-size: 12px;
  color: #666;
}
.sp-all__pagination {
  margin-top: 34px;
  text-align: center;
}
.sp-all__pagination .wp-pagenavi, .sp-all__pagination .wp-pagenavi a, .sp-all__pagination .wp-pagenavi span, .sp-all__pagination .page-numbers {
  font-size: 14px;
  line-height: 1.4;
}
.sp-all__pagination .wp-pagenavi a, .sp-all__pagination .wp-pagenavi span, .sp-all__pagination .page-numbers {
  display: inline-block;
  min-width: 34px;
  margin: 0 3px;
  padding: 7px 10px;
  border: 1px solid #bfbfbf;
  background: #fff;
  color: #333;
}
.sp-all__pagination .wp-pagenavi .current, .sp-all__pagination .page-numbers.current {
  color: #fff;
  border-color: #407611;
  background: #407611;
}
.sp-all__empty {
  text-align: center;
  color: #666;
  padding: 32px 0;
}
@media screen and (max-width: 767px) {
  .sp-all {
    padding-top: 96px;
    padding-bottom: 70px;
  }
  .sp-all__layout {
    display: block;
  }
  .sp-all #secondary.sp-side {
    width: 100%;
    margin-top: 32px;
  }
  .sp-all__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
body.translated-ltr #message .message_content .h2_sml, body.translated-rtl #message .message_content .h2_sml {
  display: block;
  width: min(92vw, 820px);
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.45;
}
body.translated-ltr #message .message_content .h2_sml *, body.translated-rtl #message .message_content .h2_sml *, body.translated-ltr #message .message_content .h2_sml .VIpgJd-yAWNEb-VIpgJd-fmcmS-sn54Q, body.translated-rtl #message .message_content .h2_sml .VIpgJd-yAWNEb-VIpgJd-fmcmS-sn54Q {
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: break-word;
}
html.is-lang-en #message .message_content .h2_sml, html.is-lang-fr #message .message_content .h2_sml {
  display: block;
  width: min(92vw, 820px);
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.45;
}
html.is-lang-en #message .message_content .h2_sml *, html.is-lang-fr #message .message_content .h2_sml *, html.is-lang-en #message .message_content .h2_sml .VIpgJd-yAWNEb-VIpgJd-fmcmS-sn54Q, html.is-lang-fr #message .message_content .h2_sml .VIpgJd-yAWNEb-VIpgJd-fmcmS-sn54Q {
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: break-word;
}
/* ==========================
  Translation overflow guard
========================== */
body.translated-ltr #primary h1, body.translated-ltr #primary h2, body.translated-ltr #primary h3, body.translated-ltr #primary h4, body.translated-ltr #primary h5, body.translated-ltr #primary h6, body.translated-ltr #primary p, body.translated-ltr #primary li, body.translated-ltr #primary a, body.translated-ltr #primary td, body.translated-ltr #primary th, body.translated-ltr #primary figcaption, body.translated-ltr #secondary h1, body.translated-ltr #secondary h2, body.translated-ltr #secondary h3, body.translated-ltr #secondary h4, body.translated-ltr #secondary h5, body.translated-ltr #secondary h6, body.translated-ltr #secondary p, body.translated-ltr #secondary li, body.translated-ltr #secondary a, body.translated-ltr #secondary td, body.translated-ltr #secondary th, body.translated-ltr #secondary figcaption, body.translated-ltr .sp-single h1, body.translated-ltr .sp-single h2, body.translated-ltr .sp-single h3, body.translated-ltr .sp-single h4, body.translated-ltr .sp-single h5, body.translated-ltr .sp-single h6, body.translated-ltr .sp-single p, body.translated-ltr .sp-single li, body.translated-ltr .sp-single a, body.translated-ltr .sp-single td, body.translated-ltr .sp-single th, body.translated-ltr .sp-single figcaption, body.translated-ltr .sp-all h1, body.translated-ltr .sp-all h2, body.translated-ltr .sp-all h3, body.translated-ltr .sp-all h4, body.translated-ltr .sp-all h5, body.translated-ltr .sp-all h6, body.translated-ltr .sp-all p, body.translated-ltr .sp-all li, body.translated-ltr .sp-all a, body.translated-ltr .sp-all td, body.translated-ltr .sp-all th, body.translated-ltr .sp-all figcaption, body.translated-ltr .sp-side h1, body.translated-ltr .sp-side h2, body.translated-ltr .sp-side h3, body.translated-ltr .sp-side h4, body.translated-ltr .sp-side h5, body.translated-ltr .sp-side h6, body.translated-ltr .sp-side p, body.translated-ltr .sp-side li, body.translated-ltr .sp-side a, body.translated-ltr .sp-side td, body.translated-ltr .sp-side th, body.translated-ltr .sp-side figcaption, body.translated-rtl #primary h1, body.translated-rtl #primary h2, body.translated-rtl #primary h3, body.translated-rtl #primary h4, body.translated-rtl #primary h5, body.translated-rtl #primary h6, body.translated-rtl #primary p, body.translated-rtl #primary li, body.translated-rtl #primary a, body.translated-rtl #primary td, body.translated-rtl #primary th, body.translated-rtl #primary figcaption, body.translated-rtl #secondary h1, body.translated-rtl #secondary h2, body.translated-rtl #secondary h3, body.translated-rtl #secondary h4, body.translated-rtl #secondary h5, body.translated-rtl #secondary h6, body.translated-rtl #secondary p, body.translated-rtl #secondary li, body.translated-rtl #secondary a, body.translated-rtl #secondary td, body.translated-rtl #secondary th, body.translated-rtl #secondary figcaption, body.translated-rtl .sp-single h1, body.translated-rtl .sp-single h2, body.translated-rtl .sp-single h3, body.translated-rtl .sp-single h4, body.translated-rtl .sp-single h5, body.translated-rtl .sp-single h6, body.translated-rtl .sp-single p, body.translated-rtl .sp-single li, body.translated-rtl .sp-single a, body.translated-rtl .sp-single td, body.translated-rtl .sp-single th, body.translated-rtl .sp-single figcaption, body.translated-rtl .sp-all h1, body.translated-rtl .sp-all h2, body.translated-rtl .sp-all h3, body.translated-rtl .sp-all h4, body.translated-rtl .sp-all h5, body.translated-rtl .sp-all h6, body.translated-rtl .sp-all p, body.translated-rtl .sp-all li, body.translated-rtl .sp-all a, body.translated-rtl .sp-all td, body.translated-rtl .sp-all th, body.translated-rtl .sp-all figcaption, body.translated-rtl .sp-side h1, body.translated-rtl .sp-side h2, body.translated-rtl .sp-side h3, body.translated-rtl .sp-side h4, body.translated-rtl .sp-side h5, body.translated-rtl .sp-side h6, body.translated-rtl .sp-side p, body.translated-rtl .sp-side li, body.translated-rtl .sp-side a, body.translated-rtl .sp-side td, body.translated-rtl .sp-side th, body.translated-rtl .sp-side figcaption {
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;
}
/* ==========================
  test.php contact form
========================== */
.sp_contact {
  width: 100%;
  max-width: 1250px;
  margin: 90px auto 110px;
  padding-left: 40px;
  padding-right: 40px;
}
.sp_contact .form_b {
  width: 100%;
}
.sp_contact #contact.containerwrap {
  width: 100%;
  margin: 0 auto;
}
.sp_contact .form_b table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}
.sp_contact .form_b tr {
  background: #daebeb;
}
.sp_contact .form_b tr.fff {
  background: #fff !important;
}
.sp_contact .form_b th {
  width: 25%;
  line-height: 1.5;
  padding: 20px !important;
  color: #407611;
  font-weight: 400;
  vertical-align: middle;
}
.sp_contact .form_b th.thtx {
  vertical-align: top;
}
.sp_contact .form_b td {
  width: 75%;
  padding: 20px;
  color: #727171;
  line-height: 30px;
}
.sp_contact .aop {
  color: #407611 !important;
  padding-top: 60px;
  margin-bottom: 30px;
  font-weight: 700;
  font-size: 20px;
}
.sp_contact .aop2 {
  color: #407611 !important;
  margin-top: 20px;
  font-weight: 700;
  font-size: 14px;
}
.sp_contact .form_b ul {
  padding: 0;
  width: 100%;
  list-style: none;
}
.sp_contact .form_b li {
  width: 48%;
  display: inline-block;
  vertical-align: top;
}
.sp_contact .wpcf7-form-control.wpcf7-radio .wpcf7-list-item, .sp_contact .wpcf7-radio .wpcf7-list-item, .sp_contact .mfp_element_radio .mfp_element_radio_item {
  display: block;
  width: 100%;
  margin: 0 0 8px;
}
.sp_contact .form_b input, .sp_contact .form_b select, .sp_contact .form_b textarea {
  width: 100%;
  max-width: 100%;
  font-size: 16px;
  line-height: 1.5;
  border: 1px solid #cfcfcf;
  background: #fff;
}
.sp_contact .form_b input, .sp_contact .form_b select {
  padding: 6px 10px;
}
.sp_contact .form_b textarea {
  min-height: 160px;
  padding: 10px;
  resize: vertical;
}
.sp_contact [type="checkbox"], .sp_contact [type="radio"] {
  width: auto !important;
}
.sp_contact .wpcf7-submit, .sp_contact .mfp_element_submit, .sp_contact .mfp_element_reset {
  display: inline-block;
  min-width: 180px;
  height: 48px;
  padding: 0 20px;
  border: 0;
  color: #fff;
  background: #407611 !important;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .sp_contact {
    max-width: none;
    width: 100% !important;
    margin: 90px auto 70px;
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  .sp_contact .form_b th, .sp_contact .form_b td {
    width: 100%;
    display: block;
    margin: 0 auto;
    padding-bottom: 20px !important;
  }
  .sp_contact .form_b input, .sp_contact .form_b select {
    height: 48px;
    font-size: 16px;
  }
  .sp_contact .form_b textarea {
    width: 100% !important;
    height: 240px !important;
    font-size: 16px;
  }
  .sp_contact .form_b li {
    width: 100%;
  }
}
body.is-fr-spa-lightbox-open {
  overflow: hidden;
}
/* ==========================
  SPALOHAS CLUB
========================== */
section#club_intro_hero h2, section#club_intro_hero h3, section#club_intro_hero h4, section#club_concept h2, section#club_concept h3, section#club_concept h4, section#club_wellness h2, section#club_wellness h3, section#club_wellness h4, section#club_four_images h2, section#club_four_images h3, section#club_four_images h4, section#club_compare h2, section#club_compare h3, section#club_compare h4, section#club_capability h2, section#club_capability h3, section#club_capability h4, section#club_program_links h2, section#club_program_links h3, section#club_program_links h4, section#club_timeline h2, section#club_timeline h3, section#club_timeline h4, section#club_members h2, section#club_members h3, section#club_members h4 {
  color: #235b2f;
}
section#club_intro_hero {
  position: relative;
}
section#club_intro_hero .hero_bg {
  position: absolute;
  width: 100%;
  height: 100%;
}
section#club_intro_hero .hero_bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
section#club_intro_hero .con {
  position: relative;
  padding: clamp(57.75px, calc(48.125px + 2.40625vw), 77px) 0 0;
}
section#club_intro_hero .con .hero_ttl {
  text-align: center;
  max-width: 760px;
  margin: 0 auto clamp(37.5px, calc(31.25px + 1.5625vw), 50px);
  min-height: 130px;
}
section#club_intro_hero .con .hero_ttl p.kicker {
  font-size: clamp(15px, calc(12.5px + 0.625vw), 20px);
}
section#club_intro_hero .con .hero_ttl h2 {
  margin-bottom: clamp(7.5px, calc(6.25px + 0.3125vw), 10px);
}
section#club_intro_hero .con .hero_cards {
  display: grid;
  grid-template-columns: 1fr 180px 1fr;
  align-items: end;
}
section#club_intro_hero .con .hero_card {
  min-height: 220px;
  background: #235b2f;
  color: #fff;
  padding: 0 clamp(33.75px, calc(28.125px + 1.40625vw), 45px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
section#club_intro_hero .con .hero_card h3 {
  font-size: clamp(22.5px, calc(18.75px + 0.9375vw), 30px);
  color: #fff;
  margin-bottom: clamp(16.5px, calc(13.75px + 0.6875vw), 22px);
}
section#club_intro_hero .con .hero_center_img {
  min-height: 220px;
  font-size: clamp(54px, calc(45px + 2.25vw), 72px);
  color: #235b2f;
  display: flex;
  justify-content: center;
  align-items: center;
}
section#club_intro_hero .con .hero_txt {
  text-align: center;
  margin-top: clamp(35.25px, calc(29.375px + 1.46875vw), 47px);
}
section#club_intro_hero .con .hero_txt h3 {
  color: var(--text-color);
}
section#club_mission {
  position: relative;
}
section#club_mission .box {
  border-top: 1px solid #235b2f;
  border-bottom: 1px solid #235b2f;
  margin-top: clamp(28.5px, calc(23.75px + 1.1875vw), 38px);
  padding: clamp(21.75px, calc(18.125px + 0.90625vw), 29px) clamp(60px, calc(50px + 2.5vw), 80px) clamp(21px, calc(17.5px + 0.875vw), 28px);
  display: flex;
  justify-content: space-between;
  gap: 40px;
}
section#club_mission .box .box_r img {
  width: 305px;
}
section#club_mission .box h2 {
  color: #235b2f;
  margin-top: clamp(-3px, calc(-2.5px + -0.125vw), -4px);
  margin-bottom: clamp(26.25px, calc(21.875px + 1.09375vw), 35px) px;
  line-height: clamp(38.25px, calc(31.875px + 1.59375vw), 51px);
}
section#club_mission .box .box_l {
  width: 600px;
}
section#club_mission .back_txt {
  height: 180%;
  top: -70px;
  left: max(0px, calc((100vw - 1660px) / 2 - 30px));
  line-height: clamp(112.5px, calc(93.75px + 4.6875vw), 150px);
  z-index: -1;
}
section#club_concept {
  margin: clamp(33.75px, calc(28.125px + 1.40625vw), 45px) 0 clamp(54.75px, calc(45.625px + 2.28125vw), 73px);
  position: relative;
}
section#club_concept .ttl {
  text-align: center;
  margin-bottom: clamp(66px, calc(55px + 2.75vw), 88px);
}
section#club_concept .ttl h3 {
  margin-bottom: clamp(-7.5px, calc(-6.25px + -0.3125vw), -10px);
  color: var(--text-color);
}
section#club_concept .ttl h2 {
  margin-bottom: clamp(11.25px, calc(9.375px + 0.46875vw), 15px);
}
section#club_concept .box {
  display: flex;
  justify-content: space-between;
  gap: 40px;
}
section#club_concept .box .box_l {
  max-width: 844px;
}
section#club_concept .box .box_l .img {
  position: relative;
}
section#club_concept .box .box_l .img .txt {
  color: #fff;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}
section#club_concept .box .box_l .img .zoom {
  position: absolute;
  top: clamp(22.5px, calc(18.75px + 0.9375vw), 30px);
  right: clamp(22.5px, calc(18.75px + 0.9375vw), 30px);
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
  line-height: 0;
}
section#club_concept .box .box_r {
  max-width: 646px;
  margin-top: clamp(-15.75px, calc(-13.125px + -0.65625vw), -21px);
}
section#club_concept .box .box_r h2 {
  color: var(--text-color);
  margin-bottom: clamp(12px, calc(10px + 0.5vw), 16px);
}
section#club_concept .box .box_r p.p1 {
  margin-bottom: clamp(52.5px, calc(43.75px + 2.1875vw), 70px);
}
section#club_concept .box .box_r h3 {
  margin-bottom: clamp(8.25px, calc(6.875px + 0.34375vw), 11px);
}
section#club_concept .back_txt {
  height: 180%;
  top: -128px;
  right: max(34px, calc((100vw - 1660px) / 2 - 30px));
  line-height: clamp(112.5px, calc(93.75px + 4.6875vw), 150px);
  z-index: -1;
}
body.is-club-lightbox-open {
  overflow: hidden;
}
.club-lightbox {
  position: fixed;
  inset: 0;
  z-index: 10000;
  animation: clubLbFadeIn 0.22s ease-out both;
}
.club-lightbox.is-closing {
  animation: clubLbFadeOut 0.2s ease-in both;
}
.club-lightbox__backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(0, 0, 0, 0.75);
  cursor: pointer;
}
.club-lightbox__dialog {
  position: relative;
  z-index: 1;
  width: min(94vw, 1200px);
  margin: 4vh auto 0;
  max-height: 92vh;
  animation: clubLbZoomIn 0.26s cubic-bezier(0.2, 0.75, 0.25, 1) both;
}
.club-lightbox.is-closing .club-lightbox__dialog {
  animation: clubLbZoomOut 0.2s ease-in both;
}
.club-lightbox__image {
  width: 100%;
  max-height: 92vh;
  object-fit: contain;
  display: block;
}
.club-lightbox__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 40px;
  height: 40px;
  aspect-ratio: 1;
  box-sizing: border-box;
  display: grid;
  place-items: center;
  padding: 0;
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
}
@keyframes clubLbFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes clubLbFadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes clubLbZoomIn {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@keyframes clubLbZoomOut {
  from {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  to {
    opacity: 0;
    transform: translateY(8px) scale(0.98);
  }
}
section#club_four_images {
  padding: clamp(47.25px, calc(39.375px + 1.96875vw), 63px) 0 clamp(45.75px, calc(38.125px + 1.90625vw), 61px);
  position: relative;
}
section#club_four_images .section_bg {
  position: absolute;
  inset: 0 0 auto 0;
  min-height: 200px;
  z-index: -1;
  display: flex;
  width: 100%;
  height: 100%;
}
section#club_four_images .section_bg .bg_item {
  line-height: 0;
  width: calc(100% / 4);
}
section#club_four_images .section_bg .bg_item > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
section#club_four_images .ttl {
  text-align: center;
  margin-bottom: clamp(45px, calc(37.5px + 1.875vw), 60px);
  min-height: 80px;
}
section#club_four_images .ttl h2 {
  line-height: clamp(36px, calc(30px + 1.5vw), 48px);
  color: var(--text-color);
  margin-bottom: clamp(3px, calc(2.5px + 0.125vw), 4px);
}
section#club_four_images .ttl h2 span {
  color: #235b2f;
}
section#club_four_images .ttl h3 {
  color: var(--text-color);
}
section#club_four_images .item_row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin-bottom: clamp(43.5px, calc(36.25px + 1.8125vw), 58px);
  margin-left: 5px;
  margin-right: -5px;
}
section#club_four_images .item .img {
  aspect-ratio: 1;
  margin-bottom: clamp(-15px, calc(-12.5px + -0.625vw), -20px);
  line-height: 0;
}
section#club_four_images .item h3 {
  text-align: center;
  margin-bottom: clamp(-5.25px, calc(-4.375px + -0.21875vw), -7px);
}
section#club_four_images .item p {
  text-align: center;
  margin: 0;
}
section#club_four_images .link_box {
  width: clamp(262.5px, calc(218.75px + 10.9375vw), 350px);
  margin: 0 auto;
}
section#club_compare {
  margin: clamp(45px, calc(37.5px + 1.875vw), 60px) 0 clamp(62.25px, calc(51.875px + 2.59375vw), 83px);
}
section#club_compare .ttl {
  text-align: center;
  margin: 0 auto clamp(35.25px, calc(29.375px + 1.46875vw), 47px);
}
section#club_compare .ttl h3 {
  margin-bottom: clamp(-7.5px, calc(-6.25px + -0.3125vw), -10px);
}
section#club_compare .ttl h2 {
  margin-bottom: clamp(9px, calc(7.5px + 0.375vw), 12px);
}
section#club_compare .ttl p {
  color: #235b2f;
}
section#club_compare .compare_wrap {
  position: relative;
}
section#club_compare .compare_box {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  position: relative;
  z-index: 2;
}
section#club_compare .panel {
  height: clamp(622.5px, calc(518.75px + 25.9375vw), 830px);
  color: #fff;
  position: relative;
}
section#club_compare .panel .con {
  position: absolute;
  inset: clamp(15px, calc(12.5px + 0.625vw), 20px) clamp(16.875px, calc(14.0625px + 0.703125vw), 22.5px);
  padding: clamp(48px, calc(40px + 2vw), 64px) clamp(45px, calc(37.5px + 1.875vw), 60px);
  border: 1px solid #fff;
  box-sizing: border-box;
}
section#club_compare .panel .con h2 {
  color: #fff;
  margin-bottom: clamp(-3px, calc(-2.5px + -0.125vw), -4px);
}
section#club_compare .panel .con h3 {
  color: #fff;
  margin-bottom: clamp(45px, calc(37.5px + 1.875vw), 60px);
}
section#club_compare .panel .con ol {
  counter-reset: compare-step;
  list-style: none;
  padding-left: 0;
  margin: 0;
}
section#club_compare .panel .con ol li {
  counter-increment: compare-step;
  display: flex;
  align-items: center;
  gap: clamp(9px, calc(7.5px + 0.375vw), 12px);
  margin-bottom: clamp(23.25px, calc(19.375px + 0.96875vw), 31px);
  font-size: clamp(15px, calc(12.5px + 0.625vw), 20px);
}
section#club_compare .panel .con ol li::before {
  content: counter(compare-step, decimal-leading-zero);
  width: clamp(40.5px, calc(33.75px + 1.6875vw), 54px);
  height: clamp(40.5px, calc(33.75px + 1.6875vw), 54px);
  border-radius: 50%;
  background-color: #235b2f;
  color: #fff;
  font-family: var(--font-en);
  font-weight: 600;
  font-size: clamp(13.5px, calc(11.25px + 0.5625vw), 18px);
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
section#club_compare .panel .bg {
  position: absolute;
  top: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
section#club_compare .panel .bg > img {
  position: absolute;
  top: -6%;
  left: 0;
  width: 100%;
  height: 112%;
  object-fit: cover;
  object-position: center center;
  will-change: transform;
}
section#club_compare .panel .bg .mask {
  position: absolute;
  bottom: 0;
  line-height: 0;
  width: 100%;
}
section#club_compare .panel .bg .mask img {
  position: static;
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  transform: none;
}
section#club_compare .badge_box {
  width: clamp(622.5px, calc(518.75px + 25.9375vw), 830px);
  height: clamp(225px, calc(187.5px + 9.375vw), 300px);
  margin: -200px auto 0;
  background: #235b2f;
  color: #fff;
  padding: 0 clamp(75px, calc(62.5px + 3.125vw), 100px);
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
}
section#club_compare .badge_box h2 {
  color: #fff;
  margin-bottom: clamp(27.75px, calc(23.125px + 1.15625vw), 37px);
}
section#club_compare .badge_box h3 {
  color: #fff;
}
section#club_capability {
  margin: 0 0 clamp(70.5px, calc(58.75px + 2.9375vw), 94px);
}
section#club_capability .ttl {
  text-align: center;
  max-width: 680px;
  margin: 0 auto clamp(70.5px, calc(58.75px + 2.9375vw), 94px);
}
section#club_capability .ttl h3 {
  color: var(--text-color);
  margin-bottom: clamp(-7.5px, calc(-6.25px + -0.3125vw), -10px);
}
section#club_capability .ttl h2 {
  margin-bottom: clamp(11.25px, calc(9.375px + 0.46875vw), 15px);
}
section#club_capability .cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 30px;
}
section#club_capability .card {
  min-height: 270px;
  border: 1px solid #235b2f;
  background: #fff;
  position: relative;
}
section#club_capability .card .icon {
  width: clamp(60px, calc(50px + 2.5vw), 80px);
  height: clamp(60px, calc(50px + 2.5vw), 80px);
  border-radius: 50%;
  background: #235b2f;
  margin: 0 auto;
  position: absolute;
  top: -40px;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
section#club_capability .card .icon > img {
  width: 60%;
  height: 60%;
  object-fit: contain;
}
section#club_capability .card h3 {
  line-height: clamp(22.5px, calc(18.75px + 0.9375vw), 30px);
  text-align: center;
  color: var(--text-color);
  margin: clamp(44.25px, calc(36.875px + 1.84375vw), 59px) 0 clamp(24px, calc(20px + 1vw), 32px);
}
section#club_capability .card ul {
  border-top: 1px solid #235b2f;
  padding: clamp(12.75px, calc(10.625px + 0.53125vw), 17px) 0 clamp(10.5px, calc(8.75px + 0.4375vw), 14px);
  list-style: none;
}
section#club_capability .card ul li {
  margin-bottom: 6px;
  position: relative;
  padding-left: 30px;
  letter-spacing: 0;
}
section#club_capability .card ul li::before {
  content: "✔";
  position: absolute;
  left: 12px;
  top: 5px;
  width: 15px;
  font-size: 12px;
  line-height: 20px;
  text-align: center;
  color: #235b2f;
}
section#club_capability .cards .card:nth-child(2) .icon img {
  transform: translateX(clamp(3px, calc(2.5px + 0.125vw), 4px));
}
section#club_program_links {
  margin: 0 0 clamp(102px, calc(85px + 4.25vw), 136px);
}
section#club_program_links .ttl {
  text-align: center;
  margin-bottom: clamp(40.5px, calc(33.75px + 1.6875vw), 54px);
}
section#club_program_links .ttl h3 {
  margin-bottom: clamp(-7.5px, calc(-6.25px + -0.3125vw), -10px);
  color: var(--text-color);
}
section#club_program_links .ttl h2 {
  margin-bottom: clamp(10.5px, calc(8.75px + 0.4375vw), 14px);
}
section#club_program_links .program_boxes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: clamp(35.25px, calc(29.375px + 1.46875vw), 47px);
}
section#club_program_links .program_box {
  min-height: clamp(165px, calc(137.5px + 6.875vw), 220px);
  padding: clamp(26.25px, calc(21.875px + 1.09375vw), 35px) clamp(37.5px, calc(31.25px + 1.5625vw), 50px) clamp(33px, calc(27.5px + 1.375vw), 44px);
  color: #fff;
}
section#club_program_links .program_box h2 {
  color: #fff;
  margin-bottom: clamp(6.75px, calc(5.625px + 0.28125vw), 9px);
}
section#club_program_links .program_box p {
  margin-bottom: clamp(7.5px, calc(6.25px + 0.3125vw), 10px);
  min-height: clamp(67.5px, calc(56.25px + 2.8125vw), 90px);
  line-height: clamp(20.25px, calc(16.875px + 0.84375vw), 27px);
}
section#club_program_links .program_box h3 {
  color: #fff;
  border-top: 1px solid #fff;
  padding-top: clamp(7.5px, calc(6.25px + 0.3125vw), 10px);
}
section#club_program_links .box_l {
  background: #235b2f;
}
section#club_program_links .box_r {
  background: #b8a378;
}
section#club_program_links .link_box {
  width: 350px;
  margin: 0 auto;
}
section#club_timeline {
  background: #deded7;
  padding: clamp(46.5px, calc(38.75px + 1.9375vw), 62px) 0 clamp(87.75px, calc(73.125px + 3.65625vw), 117px);
}
section#club_timeline .ttl_info {
  display: flex;
  justify-content: space-between;
  gap: 40px;
}
section#club_timeline .ttl_info .ttl {
  margin-bottom: clamp(13.5px, calc(11.25px + 0.5625vw), 18px);
}
section#club_timeline .ttl_info .ttl h3 {
  color: var(--text-color);
  margin-bottom: clamp(-6.75px, calc(-5.625px + -0.28125vw), -9px);
}
section#club_timeline .ttl_info .ttl h2 {
  margin-bottom: clamp(10.5px, calc(8.75px + 0.4375vw), 14px);
}
section#club_timeline .ttl_info .dl .item {
  width: 250px;
  border-bottom: 1px solid #000;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: clamp(2.25px, calc(1.875px + 0.09375vw), 3px) 0 0;
}
section#club_timeline .ttl_info .dl .item .item_l {
  width: 200px;
}
section#club_timeline .ttl_info .dl .item .item_l p.p1 {
  letter-spacing: 0;
}
section#club_timeline .ttl_info .dl .item .item_l p.p2 {
  letter-spacing: 1.4px;
  line-height: 14px;
  color: #235b2f;
  margin-bottom: 14px;
}
section#club_timeline .ttl_info .dl .item_r {
  width: 26px;
  margin-top: clamp(3px, calc(2.5px + 0.125vw), 4px);
}
section#club_timeline .con {
  margin-top: clamp(30.75px, calc(25.625px + 1.28125vw), 41px);
}
section#club_timeline .con .timeline .tl-item {
  display: grid;
  grid-template-columns: 100px 30px minmax(0, 470px) minmax(0, 50px) minmax(0, 180px);
  align-items: start;
  position: relative;
  padding: 22px 0;
}
section#club_timeline .con .timeline .tl-year {
  grid-column: 1;
  white-space: nowrap;
  color: var(--text-color);
}
section#club_timeline .con .timeline .tl-body {
  grid-column: 3;
  letter-spacing: 0;
  color: var(--text-color);
}
section#club_timeline .con .timeline .tl-media {
  grid-column: 5;
}
section#club_timeline .con .timeline .tl-media > img {
  width: 100%;
  height: auto;
  display: block;
}
section#club_timeline .con .timeline .tl-item::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 100px;
  width: 1px;
  background: #2f4b3e;
}
section#club_timeline .con .timeline .tl-item::after {
  content: "";
  position: absolute;
  left: calc(100px - (12px / 2));
  top: 34px;
  width: 12px;
  height: 12px;
  background: #2f4b3e;
  transform: rotate(45deg);
}
section#club_timeline .con .timeline .tl-item:first-child::before {
  top: 34px;
}
section#club_timeline .con .timeline .tl-title {
  margin: 0 0 10px;
  color: var(--text-color);
}
section#club_timeline .con .timeline .tl-text {
  margin: 0;
}
@media (max-width: 768px) {
  section#club_timeline .con .timeline .tl-item {
    grid-template-columns: 1fr;
    row-gap: 14px;
    padding: 22px 0 22px 30px;
  }
  section#club_timeline .con .timeline .tl-year, section#club_timeline .con .timeline .tl-body, section#club_timeline .con .timeline .tl-media {
    grid-column: auto;
  }
  section#club_timeline .con .timeline .tl-item::before {
    left: 8px;
  }
  section#club_timeline .con .timeline .tl-item::after {
    left: 2px;
    top: 28px;
  }
  section#club_timeline .con .timeline .tl-year {
    text-align: left;
    margin-bottom: 2px;
  }
  section#club_timeline .con .timeline .tl-title {
    font-size: 18px;
  }
  section#club_timeline .con .timeline .tl-media > img {
    width: 100%;
  }
}
section#club_members {
  margin: clamp(74.25px, calc(61.875px + 3.09375vw), 99px) 0 clamp(172.5px, calc(143.75px + 7.1875vw), 230px);
}
section#club_members .ttl {
  text-align: center;
  margin-bottom: clamp(75.75px, calc(63.125px + 3.15625vw), 101px);
}
section#club_members .ttl h3 {
  color: var(--text-color);
  margin-bottom: clamp(-7.5px, calc(-6.25px + -0.3125vw), -10px);
}
section#club_members .ttl h2 {
  margin-bottom: clamp(9.75px, calc(8.125px + 0.40625vw), 13px);
}
section#club_members .group {
  margin-bottom: clamp(54px, calc(45px + 2.25vw), 72px);
}
section#club_members .group .group_ttl {
  position: relative;
  margin-bottom: clamp(58.5px, calc(48.75px + 2.4375vw), 78px);
}
section#club_members .group .group_ttl h2.group_top {
  position: absolute;
  top: -27px;
  width: 260px;
  background-color: #fff;
}
section#club_members .group .group_ttl hr {
  background-color: #141414;
}
section#club_members .group .group_ttl h3 {
  margin-top: 13px;
  color: var(--text-color);
}
section#club_members .group .outer {
  display: flex;
  justify-content: center;
}
section#club_members .group .outer .group_flex {
  display: grid;
  grid-template-columns: repeat(3, 380px);
  gap: clamp(40px, 5vw, 90px);
  width: fit-content;
}
section#club_members .group .outer .group_flex .member_card {
  width: 380px;
}
section#club_members .group .outer .group_flex .member_card .prof {
  display: flex;
  align-items: center;
  gap: 23px;
  margin-bottom: 12px;
}
section#club_members .group .outer .group_flex .member_card .prof .name p.role {
  color: #235b2f;
  margin-bottom: -7px;
}
section#club_members .group .outer .group_flex .member_card .prof .name .name h3 {
  margin-bottom: -6px;
}
section#club_members .group .outer .group_flex .member_card .prof .name p.role2 {
  font-size: 14px;
  color: #235b2f;
}
@media screen and (max-width: 1330px) {
  section#club_members .group .outer .group_flex {
    display: grid;
    grid-template-columns: repeat(2, 380px);
    justify-content: center;
    gap: clamp(40px, 4.5vw, 90px);
  }
}
@media screen and (max-width: 1100px) {
  section#club_intro_hero .con .hero_cards {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  section#club_mission .box {
    padding: 28px 30px;
    flex-direction: column;
    gap: 20px;
  }
  section#club_mission .box .box_l {
    width: 100%;
  }
  section#club_mission .box .box_r {
    text-align: center;
  }
  section#club_mission .box .box_r img {
    width: 100%;
    max-width: 305px;
  }
  section#club_concept .box {
    flex-direction: column;
    gap: 28px;
  }
  section#club_concept .box .box_l, section#club_concept .box .box_r {
    max-width: 100%;
  }
  section#club_concept .box .box_r {
    margin-top: 0;
  }
  section#club_four_images .section_bg {
    flex-wrap: wrap;
  }
  section#club_four_images .section_bg .bg_item {
    width: calc(100% / 2);
    height: calc(100% / 2);
  }
  section#club_four_images .item_row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  section#club_compare .compare_box {
    grid-template-columns: 1fr;
  }
  section#club_compare .panel {
    height: 720px;
  }
  section#club_compare .badge_box {
    width: min(100%, 830px);
    margin-top: -120px;
    padding: 0 30px;
  }
  section#club_capability .cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 44px 24px;
  }
  section#club_program_links .program_boxes {
    grid-template-columns: 1fr;
  }
  section#club_timeline .ttl_info {
    flex-direction: column;
    gap: 20px;
  }
}
@media screen and (max-width: 1100px) and (min-width: 768px) {
  section#club_four_images .item_row {
    row-gap: 40px;
  }
  section#club_four_images .item {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
}
@media screen and (max-width: 767px) {
  section#club_intro_hero .con .hero_ttl {
    margin-bottom: 28px;
  }
  section#club_intro_hero .con .hero_card {
    padding: 20px;
  }
  section#club_four_images .item {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  section#club_four_images .section_bg .bg_item {
    width: 100%;
    height: calc(100% / 4);
  }
  section#club_four_images .item_row {
    grid-template-columns: 1fr;
    margin-left: 0;
    margin-right: 0;
    gap: 20px;
  }
  section#club_compare .panel {
    height: auto;
    min-height: 540px;
  }
  section#club_compare .panel .con {
    position: relative;
    inset: auto;
    margin: 16px;
    padding: 30px 20px;
  }
  section#club_compare .badge_box {
    height: auto;
    min-height: 220px;
    margin-top: 24px;
    padding: 24px 20px;
  }
  section#club_capability .cards {
    grid-template-columns: 1fr;
    gap: 54px;
  }
  section#club_program_links .link_box {
    width: min(100%, 350px);
  }
  section#club_members .group .outer .group_flex {
    grid-template-columns: minmax(0, 380px);
    justify-content: center;
  }
}
.bn_spa {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 99;
  width: 20%;
  min-width: 210px;
}
@media screen and (max-width: 768px) {
  .bn_spa {
    width: 50%;
  }
}
.bn_spa > a {
  display: block;
}
.bn_spa img {
  width: 100%;
  height: auto;
  display: block;
}
.bn_spa__close {
  position: absolute;
  top: -14px;
  right: -14px;
  width: 32px;
  height: 32px;
  border: 1px solid #fff;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.82);
  color: #fff;
  font-size: 22px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 0 2px;
  cursor: pointer;
  z-index: 2;
}
