@charset "UTF-8";
:root {
  --color-def: #1b2f68;
  --color-title: #e87db4;
  --color-nav: #fff;
  --color-sub: #c4c4c4;
  --color-arrow: #23211e;
  --accent: #6666cc;
  --primary: #1b2f68;
  --color-link: #b1aadc;
  --red: #c2153e;
  --green: #17ccaa;
  --blue: #3bd4ed;
  --pink: #f7007c;
  --yellow: #f7c800;
  --white: #ffffff;
  --navy: #001a33;
  --purple: #808cbf;
  --ls-wide: 0.05em;
  --title-sub-size: 2.4rem;
  --header-h: calc(50em / 14);
  --header-bg:#1b2f68;
  --gnav-btn-w:calc(22.75em / 14);
  --gnav-trans: translateX(-10%);
  --gnav-op: 0;
  --footer-bg:#1b2f68;
  --section-space: clamp(calc(100em / 64 / 1.2),calc(100% / 11.2),80px);
  --container: 1230px;
  --container-pad: calc(62% / 15);
  --container-inner: 1000px;
  --container-full: 1920px;
  --btn-bg:var(--primary);
  --btn-w:calc(230em / 16);
  --btn-h:calc(35em / 16);
  --btn-color:#fff;
  --btn-color-h:#fff;
  --block-spacer:clamp(3em, calc(60vw / 3.9), 120px);
  --size-def: clamp(12px, calc(14vw / 3.9), 16px);
  --size-10: clamp(10px, calc(10vw / 3.9), 10px);
  --size-11: clamp(10px, calc(10vw / 3.9), 11px);
  --size-12: clamp(10px, calc(10vw / 3.9), 12px);
  --size-13: clamp(10px, calc(10vw / 3.9), 13px);
  --size-14: clamp(12px, calc(10vw / 3.9), 14px);
  --size-15: clamp(14px, calc(10vw / 3.9), 15px);
  --size-16: clamp(14px, calc(10vw / 3.9), 16px);
  --size-17: clamp(14px, calc(12vw / 3.9), 17px);
  --size-18: clamp(14px, calc(12vw / 3.9), 18px);
  --size-19: clamp(14px, calc(12vw / 3.9), 19px);
  --size-20: clamp(14px, calc(14vw / 3.9), 20px);
  --size-21: clamp(16px, calc(16vw / 3.9), 21px);
  --size-22: clamp(16px, calc(16vw / 3.9), 22px);
  --size-23: clamp(18px, calc(16vw / 3.9), 23px);
  --size-24: clamp(18px, calc(16vw / 3.9), 24px);
  --size-25: clamp(18px, calc(16vw / 3.9), 25px);
  --size-26: clamp(18px, calc(18vw / 3.9), 26px);
  --size-27: clamp(18px, calc(18vw / 3.9), 27px);
  --size-28: clamp(18px, calc(18vw / 3.9), 28px);
  --size-29: clamp(18px, calc(18vw / 3.9), 29px);
  --size-30: clamp(18px, calc(18vw / 3.9), 30px);
  --size-31: clamp(18px, calc(18vw / 3.9), 31px);
  --size-32: clamp(18px, calc(18vw / 3.9), 32px);
  --size-33: clamp(18px, calc(18vw / 3.9), 33px);
  --size-34: clamp(18px, calc(18vw / 3.9), 34px);
  --size-35: clamp(18px, calc(18vw / 3.9), 35px);
  --size-36: clamp(20px, calc(20vw / 3.9), 36px);
  --size-38: clamp(22px, calc(20vw / 3.9), 38px);
  --size-40: clamp(26px, calc(24vw / 3.9), 40px);
  --size-42: clamp(26px, calc(24vw / 3.9), 42px);
  --size-44: clamp(26px, calc(24vw / 3.9), 44px);
  --size-48: clamp(28px, calc(26vw / 3.9), 48px);
  --size-50: clamp(28px, calc(26vw / 3.9), 50px);
  --size-56: clamp(28px, calc(28vw / 3.9), 56px);
  --size-58: clamp(28px, calc(28vw / 3.9), 58px);
  --size-70: clamp(30px, calc(30vw / 3.9), 70px);
  --size-72: clamp(30px, calc(30vw / 3.9), 72px);
  --size-80: clamp(40px, calc(40vw / 3.9), 80px);
  --size-84: clamp(40px, calc(40vw / 3.9), 84px);
  --size-94: clamp(40px, calc(40vw / 3.9), 94px);
  --size-120: clamp(40px, calc(50vw / 3.9), 120px);
  --size-150: clamp(45px, calc(150vw / 16.8), 150px);
  --easing: cubic-bezier(0.37, 0, 0.63, 1);
  --easing-def: cubic-bezier(0.42, 0, 0.58, 1);
  --ff-gothic: hiragino-kaku-gothic-pron,"游ゴシック Medium", yu-gothic-pr6n, "Yu Gothic", "ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN",sans-serif;
  --ff-mincho: "游明朝", yu-mincho-pr6n, "YuMincho", "Yu Mincho", "Hiragino Mincho ProN", "MS PMincho", serif;
  --ff-en: gotham, sans-serif;
  --delay-anime: 0.3s;
  --arrow-w:calc(40em / 18);
  --arrow-h:calc(14em / 18);
  --arrow-color: #908574;
  --power2-out:cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --power4-out:cubic-bezier(0.165, 0.84, 0.44, 1);
}

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

.ff-mincho {
  font-family: var(--ff-mincho);
}

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

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

.size-10 {
  font-size: var(--size-10);
}
.size-11 {
  font-size: var(--size-11);
}
.size-12 {
  font-size: var(--size-12);
}
.size-13 {
  font-size: var(--size-13);
}
.size-14 {
  font-size: var(--size-14);
}
.size-15 {
  font-size: var(--size-15);
}
.size-16 {
  font-size: var(--size-16);
}
.size-17 {
  font-size: var(--size-17);
}
.size-18 {
  font-size: var(--size-18);
}
.size-20 {
  font-size: var(--size-20);
}
.size-21 {
  font-size: var(--size-21);
}
.size-22 {
  font-size: var(--size-22);
}
.size-24 {
  font-size: var(--size-24);
}
.size-25 {
  font-size: var(--size-25);
}
.size-26 {
  font-size: var(--size-26);
}
.size-28 {
  font-size: var(--size-28);
}
.size-30 {
  font-size: var(--size-30);
}
.size-32 {
  font-size: var(--size-32);
}
.size-34 {
  font-size: var(--size-34);
}
.size-35 {
  font-size: var(--size-35);
}
.size-36 {
  font-size: var(--size-36);
}
.size-38 {
  font-size: var(--size-38);
}
.size-40 {
  font-size: var(--size-40);
}
.size-42 {
  font-size: var(--size-42);
}
.size-44 {
  font-size: var(--size-44);
}
.size-48 {
  font-size: var(--size-48);
}
.size-50 {
  font-size: var(--size-50);
}
.size-56 {
  font-size: var(--size-56);
}
.size-58 {
  font-size: var(--size-58);
}
.size-70 {
  font-size: var(--size-70);
}
.size-72 {
  font-size: var(--size-72);
}
.size-80 {
  font-size: var(--size-80);
}
.size-84 {
  font-size: var(--size-84);
}
.size-94 {
  font-size: var(--size-94);
}
.size-120 {
  font-size: var(--size-120);
}
.size-150 {
  font-size: var(--size-150);
}

.color-def {
  color: var(--color-def);
}
.color-primary {
  color: var(--primary);
}
.color-accent {
  color: var(--accent);
}
.color-red {
  color: var(--red);
}
.color-pink {
  color: var(--pink);
}
.color-green {
  color: var(--green);
}
.color-blue {
  color: var(--blue);
}
.color-yellow {
  color: var(--yellow);
}
.color-navy {
  color: var(--navy);
}
.color-purple {
  color: var(--purple);
}
.color-black {
  color: var(--black);
}
.color-white {
  color: var(--white);
}

/* ===========================================================================

/assets/sass/common/_reset.scss
Reset

=========================================================================== */
body {
  /* webkit系のスマホで文字が拡大されるのを防ぐ */
  -webkit-text-size-adjust: 100%;
}

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video, hr {
  margin: 0;
  padding: 0;
  border: 0;
  font-style: normal;
  font-weight: inherit;
  font-size: 100%;
  vertical-align: baseline;
  text-decoration: none;
}

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

html {
  overflow-y: scroll;
}

blockquote, q {
  quotes: none;
}

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

input, button, textarea, select {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  /* 必要に応じて下記はコメントアウト */
  /*
   -webkit-appearance: none;
   -moz-appearance: none;
   appearance: none;
  */
}

ol, ul {
  list-style: none;
}

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

a:focus {
  outline: none;
}

img {
  vertical-align: bottom;
}

a, span, small, strong {
  color: inherit;
  font-weight: inherit;
}

html {
  font-size: 0.625em;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

img {
  max-width: 100%;
  vertical-align: bottom;
  height: auto;
}

*, *::before, *::after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit;
}

a {
  color: inherit;
  text-decoration: none;
}
a:visited {
  text-decoration: none;
}

a:hover, a:active {
  color: inherit;
  text-decoration: none;
}

.mt0 {
  margin-top: 0;
}

.mt05 {
  margin-top: 0.5em;
}

.mt1 {
  margin-top: 1em;
}

.mt15 {
  margin-top: 1.5em;
}

.mt2 {
  margin-top: 2em;
}

.mt25 {
  margin-top: 2.5em;
}

.mt3 {
  margin-top: 3em;
}

.mb0 {
  margin-bottom: 0;
}

.mb05 {
  margin-bottom: 0.5em;
}

.mb1 {
  margin-bottom: 1em;
}

.mb15 {
  margin-bottom: 1.5em;
}

.mb2 {
  margin-bottom: 2em;
}

.mb25 {
  margin-bottom: 2.5em;
}

.mb3 {
  margin-bottom: 3em;
}

.mr1 {
  margin-right: 1em;
}

.mr15 {
  margin-right: 1.5em;
}

.mr2 {
  margin-right: 2em;
}

.pt0 {
  padding-top: 0;
}

.pt05 {
  padding-top: 0.5em;
}

.pl1 {
  padding-left: 1em;
}

.pl2 {
  padding-left: 2em;
}

.pl3 {
  padding-left: 3em;
}

.pl4 {
  padding-left: 4em;
}

.pb0 {
  padding-bottom: 0;
}

.pb2 {
  padding-bottom: 2em;
}

.indent1 {
  text-indent: -1em;
  padding-left: 1em;
}

.ta_l {
  text-align: left;
}
.ta_r {
  text-align: right;
}
.ta_c {
  text-align: center;
}

@media print, screen and (max-width: 768px) {
  .hide-sp {
    display: none;
  }
}
@media print, screen and (min-width: 769px) and (max-width: 960px) {
  .hide-tablet {
    display: none;
  }
}
@media print, screen and (min-width: 961px) {
  .hide-pc {
    display: none;
  }
}

.fv-bottom-link.is-hidden {
  display: none;
}

.cookie-banner {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: center;
  padding: 8px 12px;
  background: rgba(0,0,0,0.5); /* スマホでの可読性を少し強める */
  color: #fff;
  font-size: 13px;
  z-index: 99999;
  box-sizing: border-box;
  /* iPhoneのホームバーを避ける（セーフエリア） */
  padding-bottom: calc(10px + env(safe-area-inset-bottom));
}

.cookie-banner .cookie-link { color: #9fd3ff; text-decoration: underline; }
.cookie-banner .cookie-btn {
  font-size: 12px;
  padding: 6px 12px;        /* タッチ向けに拡大 */
  line-height: 1.2;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,0.6);
  background: rgba(255,255,255,0.12);
  color: #fff;
  cursor: pointer;
}

/* 任意：見分けやすくする */
.cookie-banner .cookie-btn.accept {
  background: #FF922C;
  border-color: #FF922C;
  color: #fff;
  font-weight: bold;
  margin-right: 10px;
}
.cookie-banner .cookie-btn.reject {
  background: rgba(255,255,255,0.16);
  border-color: rgba(255,255,255,0.6);
  color: #fff;
}

.cookie-banner .cookie-btn:hover { filter: brightness(1.08); }
.cookie-banner .cookie-btn:focus-visible { outline: 2px solid #9fd3ff; outline-offset: 2px; }

/* 非表示制御（既存） */
.cookie-banner.is-hidden { display: none; }

/* スマホ：縦積み＋ボタンは横並びで等幅 */
@media print, screen and (max-width: 960px) {
  .cookie-banner {
    flex-direction: column;
    gap: 10px;
    padding: 12px 14px;
    text-align: center;
  }
  .cookie-banner .cookie-text {
    font-size: 13px;
    line-height: 1.4;
    word-break: break-word;  /* 長文の折り返し */
  }
  .cookie-banner .cookie-actions {
    display: flex;
    gap: 8px;
    width: 100%;
    justify-content: center;
  }
  .cookie-banner .cookie-btn {
    flex: 1 1 auto;          /* ボタンを均等幅に */
    min-height: 40px;        /* タッチしやすい高さ */
    padding: 10px 12px;
  }
}

/* さらに狭い端末向け微調整（任意）
@media (max-width: 360px) {
  .cookie-banner .cookie-text { font-size: 12px; }
}

/* -----------------------------
 clearfix
----------------------------- */
.clearfix:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}

.clearfix {
  display: inline-block;
  min-height: 1%;
}

/* for IE-mac */
* html .clearfix {
  height: 1%;
}

.clearfix {
  display: block;
}

body {
  font-family: var(--ff-gothic);
  color: var(--color-def);
  line-height: 1.875;
  -webkit-font-feature-settings: "pkna";
          font-feature-settings: "pkna";
  -webkit-font-smoothing: antialiased;
  font-size: var(--size-def);
  position: relative;
}
@media print, screen and (max-width: 960px) {
  body {
    font-size: 3.5897435897vw;
  }
}
@media print, screen and (min-width: 961px) {
  body {
    --header-h:55px;
    --container-pad:15px;
  }
}

ul,
ol {
  list-style: none;
  padding: 0;
  margin: 0;
}

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

.mincho {
  font-family: var(--ff-mincho);
}

.gothic {
  font-family: var(--ff-gothic);
}

.century {
  font-family: var(--ff-century);
}

.helvetica {
  font-family: "Helvetica Neue";
}

b, strong, .bold {
  font-weight: 700;
}

.light {
  font-weight: 300;
}

.italic {
  font-style: italic;
}

p {
  margin-bottom: 1.5em;
}
p:last-of-type {
  margin-bottom: 0;
}

.medium {
  font-weight: 500;
}

.container {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--container-pad);
  padding-right: var(--container-pad);
  max-width: var(--container);
}
.container-inner {
  width: 100%;
  max-width: var(--container-inner);
  margin-left: auto;
  margin-right: auto;
}
.container-full {
  width: 100%;
  max-width: var(--container-full);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--container-pad);
  padding-right: var(--container-pad);
}

h1, h2, h3, h4 {
  line-height: 1.5555555556;
}

.t-vtl {
  -ms-writing-mode: tb-rl;
  -webkit-writing-mode: vertical-rl;
          writing-mode: vertical-rl;
  -webkit-font-feature-settings: "pkna";
          font-feature-settings: "pkna";
  white-space: nowrap;
}

video, img {
  max-width: 100%;
  height: auto;
}

a:hover {
  opacity: 0.9;
}

a img {
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
a img:hover {
  opacity: 0.9;
}
a img.js-img-on:hover {
  opacity: 1;
}

.h-alpha {
  display: inline-block;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
.h-alpha:hover {
  opacity: 0.75;
}

.bg-gray {
  background-color: var(--bg-gray);
}

@media print, screen and (min-width: 961px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}
.wrapper {
  position: relative;
}

.ilblk {
  display: inline-block;
}

.d-flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.justify-content-center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.justify-content-space-between {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.flex-wrap {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.align-items-center {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

@media print, screen and (min-width: 769px) {
  .row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  .col {
    width: 45%;
  }
  .col-3 {
    width: 31.3235294118%;
  }
}
.js-animate.fade-in {
  opacity: 0;
}
.js-animate.fade-in.inView {
  -webkit-animation: 0.5s var(--anim-delay, 0.1s) cubic-bezier(0.215, 0.61, 0.355, 1) both;
          animation: 0.5s var(--anim-delay, 0.1s) cubic-bezier(0.215, 0.61, 0.355, 1) both;
  -webkit-animation-name: fade_in, slide_in_y;
          animation-name: fade_in, slide_in_y;
}
.js-animate.fade-in2 {
  opacity: 0;
}
.js-animate.fade-in2.inView {
  -webkit-animation: 0.5s var(--anim-delay, 0.1s) cubic-bezier(0.215, 0.61, 0.355, 1) both;
          animation: 0.5s var(--anim-delay, 0.1s) cubic-bezier(0.215, 0.61, 0.355, 1) both;
  -webkit-animation-name: fade_in;
          animation-name: fade_in;
}
.js-animate.mask-in {
  position: relative;
  overflow: hidden;
}
.js-animate.mask-in .mask-blk {
  opacity: 0;
}
.js-animate.mask-in.inView {
  -webkit-animation: maskIn 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;
          animation: maskIn 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;
  opacity: 1;
}
.js-animate.mask-in.inView::before {
  -webkit-animation: maskOut 0.5s 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;
          animation: maskOut 0.5s 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  background-color: var(--accent);
}
.js-animate.mask-in.inView .mask-blk {
  -webkit-animation: fade_in 0.5s 0.7s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;
          animation: fade_in 0.5s 0.7s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;
}

@-webkit-keyframes fade_in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fade_in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes fade_out {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes fade_out {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@-webkit-keyframes zoom {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
@keyframes zoom {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
@-webkit-keyframes zoom_in {
  0% {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
@keyframes zoom_in {
  0% {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
@-webkit-keyframes blur_in {
  0% {
    -webkit-filter: blur(20px);
            filter: blur(20px);
  }
  100% {
    -webkit-filter: blur(0);
            filter: blur(0);
  }
}
@keyframes blur_in {
  0% {
    -webkit-filter: blur(20px);
            filter: blur(20px);
  }
  100% {
    -webkit-filter: blur(0);
            filter: blur(0);
  }
}
@-webkit-keyframes slide_in_y {
  0% {
    -webkit-transform: translateY(1.4vw);
            transform: translateY(1.4vw);
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes slide_in_y {
  0% {
    -webkit-transform: translateY(1.4vw);
            transform: translateY(1.4vw);
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@-webkit-keyframes slide_in_x_left {
  0% {
    -webkit-transform: translateX(-25vw);
            transform: translateX(-25vw);
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@keyframes slide_in_x_left {
  0% {
    -webkit-transform: translateX(-25vw);
            transform: translateX(-25vw);
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@-webkit-keyframes slice_x {
  0% {
    -webkit-transform: translateX(10%);
            transform: translateX(10%);
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@keyframes slice_x {
  0% {
    -webkit-transform: translateX(10%);
            transform: translateX(10%);
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@-webkit-keyframes slice_x_left {
  0% {
    -webkit-transform: translateX(-10%);
            transform: translateX(-10%);
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@keyframes slice_x_left {
  0% {
    -webkit-transform: translateX(-10%);
            transform: translateX(-10%);
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@-webkit-keyframes slide_in_x {
  0% {
    -webkit-transform: translateX(25vw);
            transform: translateX(25vw);
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@keyframes slide_in_x {
  0% {
    -webkit-transform: translateX(25vw);
            transform: translateX(25vw);
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@-webkit-keyframes slide_in_x_left2 {
  0% {
    -webkit-transform: translateX(-50vw);
            transform: translateX(-50vw);
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@keyframes slide_in_x_left2 {
  0% {
    -webkit-transform: translateX(-50vw);
            transform: translateX(-50vw);
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@-webkit-keyframes skillin {
  0% {
    -webkit-transform: translateX(-25%);
            transform: translateX(-25%);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
}
@keyframes skillin {
  0% {
    -webkit-transform: translateX(-25%);
            transform: translateX(-25%);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
}
@-webkit-keyframes bg_slide_x {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: 0 0;
  }
}
@keyframes bg_slide_x {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: 0 0;
  }
}
@-webkit-keyframes reveal_x {
  0% {
    clip-path: polygon(0 0, 0 0, 0 100%, 0% 100%);
  }
  100% {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
  }
}
@keyframes reveal_x {
  0% {
    clip-path: polygon(0 0, 0 0, 0 100%, 0% 100%);
  }
  100% {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
  }
}
@-webkit-keyframes graAnime {
  0% {
    background-position: 0% 14%;
  }
  50% {
    background-position: 100% 87%;
  }
  100% {
    background-position: 0% 14%;
  }
}
@keyframes graAnime {
  0% {
    background-position: 0% 14%;
  }
  50% {
    background-position: 100% 87%;
  }
  100% {
    background-position: 0% 14%;
  }
}
.title-border {
  border-bottom: var(--title-border, 1px var(--purple) solid);
}
.block-text .title-border {
  padding-bottom: 0.2em;
}
.section {
  padding: var(--section-top, var(--section-space)) 0 var(--section-bottom, var(--section-space));
}

.btn {
  display: inline-block;
  padding: 1.02em 1em;
  position: relative;
  background-color: var(--btn-bg);
  background-size: 100% 100%;
  border-radius: var(--btn-round, 40px);
  color: #fff;
  text-align: center;
  line-height: 1;
  -webkit-transition: all 0.3s ease-in;
  transition: all 0.3s ease-in;
}
.btn:hover {
  color: #fff;
  opacity: 1;
  -webkit-filter: brightness(1.05);
          filter: brightness(1.05);
}
.btn-arrow {
  position: absolute;
  right: 1.2em;
  top: calc(50% - 1px);
  height: 2px;
  width: 1em;
  background-color: #fff;
}
.btn-arrow::before {
  content: "";
  display: block;
  width: 0.5em;
  height: 0.5em;
  border-top: 2px #fff solid;
  border-right: 2px #fff solid;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  -webkit-transform-origin: right;
          transform-origin: right;
  position: absolute;
  right: 0.1em;
  top: 0;
}
@media print, screen and (min-width: 769px) {
  .btn-arrow::before {
    right: 3px;
    top: -1px;
  }
}
.btn-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: var(--btn-wrap-gap, 1em);
}
.btn-wrap-right {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.btn-wrap-center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.pos-relattive {
  position: relative;
}

.animate-btn {
  position: relative;
  display: block;
  -ms-flex-preferred-size: var(--btn-w);
      flex-basis: var(--btn-w);
  max-width: var(--btn-w);
  color: var(--btn-color);
}
.animate-btn:hover {
  opacity: 1;
  color: var(--btn-color-h);
}
.animate-btn-text {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  padding: 0 1.5em;
  line-height: 1.2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-weight: bold;
}
.animate-btn-file svg {
  vertical-align: bottom;
}
.animate-btn-right {
  color: #ffffff;
  text-align: right; /* text-alignで右寄せを補強 */
  position: relative;
  margin-left: auto; /* flex内で右寄せ */
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.animate-btn-right:hover {
  color: #ffffff;
}
@media print, screen and (max-width: 960px) {
  .animate-btn-file {
    width: 100%;
  }
  .animate-btn-right {
    font-size: 4.1025641026vw;
  }
}
@media print, screen and (min-width: 961px) {
  .animate-btn-text {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
  .animate-btn-text.center {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}

.marker {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(60%, transparent), color-stop(60%, var(--marker, #fbe2ec)));
  background: linear-gradient(transparent 60%, var(--marker, #fbe2ec) 60%);
}

.td_u {
  text-decoration: underline;
}

.link-arrow {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.75em;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.img-circle img {
  border-radius: 50%;
  aspect-ratio: 1/1;
  -o-object-fit: cover;
     object-fit: cover;
}

.gap-30 {
  gap: 3rem;
}

.map-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1100/420;
}
.map-wrap iframe {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}

.accordion-inner {
  overflow: hidden;
  pointer-events: none;
  height: 0;
}
.accordionBtn {
  cursor: pointer;
  position: relative;
}
.accordion-icon {
  width: 1.2727272727em;
  height: 0.5454545455em;
  position: absolute;
  right: 0.6em;
  top: 50%;
}
.accordion-icon::before {
  content: "";
  background: url(../images/theme/accordion-arrow.svg) no-repeat;
  background-size: contain;
  background-position: center;
  width: 100%;
  height: 100%;
  display: block;
  -webkit-transition: -webkit-transform 0.3s ease-in-out;
  transition: -webkit-transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
  -webkit-transform-origin: center;
          transform-origin: center;
}
.accordion-wrap .active .accordion-inner {
  pointer-events: initial;
}
.accordion-wrap .active .accordion-icon::before {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
@media print, screen and (min-width: 769px) {
  .accordion-icon {
    width: 1.2727272727em;
  }
}

.arrow {
  width: var(--arrow-w);
  height: var(--arrow-h);
  -ms-flex-negative: 0;
      flex-shrink: 0;
  border-bottom: 1px var(--arrow-color) solid;
  position: relative;
  display: inline-block;
}
.arrow::before {
  content: "";
  width: 1px;
  height: 100%;
  background-color: var(--arrow-color);
  bottom: 0;
  right: 0;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
  -webkit-transform-origin: bottom right;
          transform-origin: bottom right;
  position: absolute;
}

.u_line {
  border-bottom: 1px var(--line-color, var(--color-def)) solid;
}

.w4 {
  font-weight: 400;
}

.w5 {
  font-weight: 500;
}

.w6 {
  font-weight: 600;
}

.w7 {
  font-weight: 700;
}

.w8 {
  font-weight: 800;
}

.label-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.8571428571em;
}
.label-list .label {
  background-color: var(--label-bg, var(--primary));
  color: var(--label-color, #fff);
  line-height: 1;
  padding: 0.5em;
  text-align: center;
  border-radius: 5px;
  font-weight: 600;
}
.label-list.white-tag .label {
  background-color: var(--label-color, #fff);
  color: var(--label-bg, var(--primary));
}
@media print, screen and (max-width: 960px) {
  .label-list {
    --size-14:calc(13vw / 3.9);
  }
}

.js-marker {
  --underline-scale: 0%;
  position: relative;
  background: -webkit-gradient(linear, left top, left bottom, color-stop(90%, transparent), color-stop(90%, var(--marker-color, var(--primary))));
  background: linear-gradient(transparent 90%, var(--marker-color, var(--primary)) 90%);
  padding: 0 0 0.4em;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone; /* Safari対応 */
  background-repeat: no-repeat;
  background-size: var(--underline-scale) 100%;
  -webkit-transition: background-size 0.6s ease;
  transition: background-size 0.6s ease;
}
.js-marker.-active {
  --underline-scale: 100%;
}
.js-marker.marker-green {
  --marker-color:var(--green);
}
.js-marker.marker-blue {
  --marker-color:var(--blue);
}
.js-marker.marker-pink {
  --marker-color:var(--pink);
}
.js-marker.marker-yellow {
  --marker-color:var(--yellow);
}

.js-flickity {
  --dot-size:clamp(10px,calc(23vw / 3.9), 35px);
}
.js-flickity .flickity-page-dots {
  bottom: calc(var(--dot-size) * -1.5);
  text-align: right;
}
.js-flickity .flickity-page-dots .dot {
  width: var(--dot-size);
  height: var(--dot-size);
  background-color: var(--dot-color, var(--primary));
}
.js-flickity.has-gap .slider-item {
  margin-right: 10px;
}
@media print, screen and (max-width: 960px) {
  .js-flickity {
    margin-bottom: 12.3076923077vw;
  }
  .js-flickity.has-gap .slider-item {
    margin-right: 5px;
  }
}

.grid-table {
  --grid-table-space:calc(28% / 10);
  --cell-head: calc(160em / 14);
  --table-border-w: 2px;
  display: grid;
  grid-template-columns: var(--cell-head) auto;
  gap: 0 var(--grid-table-space);
}
.grid-table .cell-head, .grid-table .cell-body {
  border-bottom: var(--table-border-w) var(--purple) solid;
  padding: 1.5em;
  line-height: 1.5;
  display: flex;
  align-items: center;
}
.grid-table .cell-head:nth-of-type(1), .grid-table .cell-body:nth-of-type(1) {
  border-top: var(--table-border-w) var(--purple) solid;
}
.grid-table .cell-head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-align: center;
}
.grid-table .cell-head:first-of-type {
  border-top: var(--table-border-w) var(--purple) solid;
}
.grid-table .cell-head:first-of-type + .cell-body {
  border-top: var(--table-border-w) var(--purple) solid;
}
@media print, screen and (max-width: 960px) {
  .grid-table {
    grid-template-columns: 1fr;
    font-size: 3.5897435897vw;
    --table-border-w:1px;
  }
  .grid-table .cell-head {
    font-size: 4.1025641026vw;
    padding: 0.5em;
	text-align: center;
  }
  .grid-table .cell-head:first-of-type {
    border-top: var(--table-border-w) var(--purple) solid;
  }
  .grid-table .cell-head:first-of-type + .cell-body {
    border-top: none;
  }
  .grid-table .cell-body {
    padding: 1.5em 0.5em;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: center;
  }
}
@media print, screen and (min-width: 961px) {
  .grid-table .cell-body {
    padding-left: 6.1349693252%;
  }
}
.cell-body.nonflex {
  display: block;
}

.list-icon {
  --list-icon-w:calc(120em / 22 );
  --list-icon-gap:calc(52% / 9.08);
  --list-icon-line: 2px;
  max-width: 908px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}
.list-icon-item {
  display: grid;
  grid-template-columns: var(--list-icon-w) auto;
  gap: 0 var(--list-icon-gap);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: 1.7272727273em;
}
.list-icon-text {
  padding: 1em 0;
  border-top: var(--list-icon-line) var(--purple) solid;
  border-bottom: var(--list-icon-line) var(--purple) solid;
  line-height: 1.3636363636;
}
@media print, screen and (max-width: 960px) {
  .list-icon {
    --list-icon-line: 1px;
    --list-icon-w:calc(52vw / 3.9 );
    --list-icon-gap:calc(14vw / 3.9);
  }
  .list-icon-item {
    font-size: 3.8461538462vw;
    padding: 1em 1em;
    border-bottom: var(--list-icon-line) var(--purple) solid;
    margin-bottom: 0;
  }
  .list-icon-text {
    border: none;
    padding: 0;
    font-weight: bold;
  }
}

.faq-list {
  --faq-icon-w:calc(120em / 22 );
  --faq-icon-gap:calc(52% / 9.08);
  --faq-line-w:2px;
  max-width: 908px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}
.faq-list .faq-item {
  margin-bottom: 1.7272727273em;
}
.faq-list .faq-item-q {
  display: grid;
  grid-template-columns: var(--faq-icon-w) auto;
  gap: 0 var(--faq-icon-gap);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.faq-list .faq-item-q > * {
  pointer-events: none;
}
.faq-list .faq-item-text {
  padding: 1em 0;
  border-top: var(--faq-line-w) var(--purple) solid;
  border-bottom: var(--faq-line-w) var(--purple) solid;
  line-height: 1.3636363636;
}
.faq-list .faq-item-a {
  position: relative;
}
.faq-list .faq-item.active .faq-item-a {
  overflow: visible;
}
@media print, screen and (max-width: 960px) {
  .faq-list {
    --faq-icon-line: 1px;
    --faq-icon-w:calc(52vw / 3.9 );
    --faq-icon-gap:calc(14vw / 3.9);
    --acc-bg:var(--primary);
    --acc-color:#fff;
    --acc-text:"Open";
    --acc-arrow-filter:brightness(10);
    --acc-arrow: rotate(0deg);
  }
  .faq-list .faq-item {
    font-size: 3.8461538462vw;
    padding: 1em 1em;
    border-bottom: var(--faq-icon-line) var(--purple) solid;
    margin-bottom: 0;
  }
  .faq-list .faq-item.active {
    --acc-bg:#fff;
    --acc-color:var(--primary);
    --acc-text:"Close";
    --acc-arrow-filter:brightness(1);
    --acc-arrow: rotate(180deg);
  }
  .faq-list .faq-item-q {
    position: relative;
    padding-bottom: 10.2564102564vw;
  }
  .faq-list .faq-item-text {
    border: none;
    padding: 0;
    font-weight: bold;
  }
  .faq-list .faq-item-text .accordion-icon {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    top: auto;
    background-color: var(--acc-bg);
    color: var(--acc-color);
    height: 2em;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 1.5em;
    border-radius: 5px;
    width: 100%;
    border: 1px var(--primary) solid;
  }
  .faq-list .faq-item-text .accordion-icon::before {
    content: none;
  }
  .faq-list .faq-item-text .accordion-icon-text::before {
    content: var(--acc-text);
    font-size: 3.5897435897vw;
    font-family: var(--ff-en);
    font-weight: 400;
  }
  .faq-list .faq-item-text .accordion-icon-arrow {
    -webkit-filter: var(--acc-arrow-filter);
            filter: var(--acc-arrow-filter);
    -ms-flex-preferred-size: 4.358974359vw;
        flex-basis: 4.358974359vw;
    height: 1em;
    -webkit-transform: var(--acc-arrow);
            transform: var(--acc-arrow);
    -webkit-transition: 0.3s ease-in-out;
    transition: 0.3s ease-in-out;
  }
  .faq-list .faq-item-text .accordion-icon-arrow::before {
    content: "";
    background: url(../images/theme/accordion-arrow.svg) no-repeat;
    background-size: contain;
    background-position: center;
    width: 100%;
    height: 100%;
    display: block;
    -webkit-transition: -webkit-transform 0.3s ease-in-out;
    transition: -webkit-transform 0.3s ease-in-out;
    transition: transform 0.3s ease-in-out;
    transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
    -webkit-transform-origin: center;
            transform-origin: center;
  }
  .faq-list .faq-item-detail {
    padding: 1em 0.5em 0;
  }
}
@media print, screen and (min-width: 961px) {
  .faq-list .faq-item-text {
    padding: 1em 0;
    border-top: var(--faq-line-w) var(--purple) solid;
    border-bottom: var(--faq-line-w) var(--purple) solid;
    line-height: 1.3636363636;
  }
  .faq-list .faq-item-a {
    position: relative;
  }
  .faq-list .faq-item-a::before {
    content: "・・・";
    display: block;
    width: 0.5em;
    height: 2em;
    margin: 0 auto;
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
    -webkit-transform-origin: center top;
            transform-origin: center top;
    letter-spacing: -0.65em;
    font-size: 150%;
    position: absolute;
    left: 50%;
    top: -1.5em;
  }
  .faq-list .faq-item-detail {
    padding: 1.5em 1em;
    margin-top: 1.5em;
    border-top: var(--faq-line-w) var(--purple) solid;
    border-bottom: var(--faq-line-w) var(--purple) solid;
  }
  .faq-list .faq-item.active .faq-item-a {
    overflow: visible;
  }
}

.header {
  width: 100%;
  --container: 1670px;
  z-index: 100;
  background-color: var(--header-bg, #fff);
  -webkit-transition: background-color 0.5s;
  transition: background-color 0.5s;
  pointer-events: auto;
  position: sticky;
  left: 0;
  top: 0;
}
.header-logo {
  pointer-events: initial;
  position: relative;
  z-index: 101;
  -webkit-transition: opacity 0.3s var(--easing-def);
  transition: opacity 0.3s var(--easing-def);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1em;
  color: #fff;
}
.header-logo img {
  -webkit-transition: width 0.3s var(--easing-def);
  transition: width 0.3s var(--easing-def);
}
.header-logo a:hover img {
  opacity: 1;
}
.header-logo .-text {
  display: none;
}
.header-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  position: relative;
  height: var(--header-h);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media print, screen and (max-width: 960px) {
  .header {
    font-size: 3.5897435897vmin;
  }
  .header-row {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .header-logo img {
    height: 1.6428571429em;
    width: auto;
  }
}
@media print, screen and (min-width: 961px) {
  .header {
    --header-h:55px;
  }
}
@media print, screen and (min-width: 1201px) {
  .header-logo .-text {
    display: initial;
  }
  .header-nav {
    position: relative;
    pointer-events: initial;
  }
}
.catchloaded .header {
  -webkit-animation: fade_in 1s 1.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
          animation: fade_in 1s 1.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@media print, screen and (max-width: 960px) {
  .gnav {
    position: fixed;
    z-index: 99;
    left: 0;
    top: var(--header-h);
    width: 100%;
    max-height: calc(100% - var(--header-h));
    height: auto;
    min-height: 33em;
    color: #fff;
    --container: 1472px;
    background-color: var(--header-bg);
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    -webkit-transition: opacity 0.3s, visibility 0.3s;
    transition: opacity 0.3s, visibility 0.3s;
  }
  .navopen .gnav {
    pointer-events: initial;
    opacity: 1;
    visibility: visible;
  }
  .gnav-menu-container {
    position: relative;
    width: 100%;
    height: auto;
    overflow: visible;
  }
  .gnav-menu {
    -webkit-transition: -webkit-transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    transition: -webkit-transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  }
  .gnav-menu-parent {
    padding: 1em;
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  .gnav-menu-parent.slide-out {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
  .gnav-menu-child {
    padding: 1em 1em 0.7em;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    min-height: 33em;
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
    background-color: var(--header-bg);
    overflow-y: visible;
  }
  .gnav-menu-child.slide-in {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  .gnav-btn {
    pointer-events: initial;
    position: absolute;
    right: 1em;
    width: var(--gnav-btn-w);
    height: var(--gnav-btn-w);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    --gnav-btn-center:#fff;
    --gnav-btn-line:rotate(0deg);
    --gnav-btn-line2:rotate(0deg);
    --gnav-btn-top:-0.65em;
    --gnav-btn-bottom:-0.65em;
    z-index: 10;
  }
  .gnav-btn .-line {
    width: 100%;
    height: 2px;
    background-color: var(--gnav-btn-center);
    display: block;
    position: relative;
  }
  .gnav-btn .-line::before, .gnav-btn .-line::after {
    content: "";
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #fff;
    left: 0;
    -webkit-transition: -webkit-transform 0.3s var(--easing-def);
    transition: -webkit-transform 0.3s var(--easing-def);
    transition: transform 0.3s var(--easing-def);
    transition: transform 0.3s var(--easing-def), -webkit-transform 0.3s var(--easing-def);
  }
  .gnav-btn .-line::before {
    top: var(--gnav-btn-top);
    -webkit-transform: var(--gnav-btn-line);
            transform: var(--gnav-btn-line);
  }
  .gnav-btn .-line::after {
    bottom: var(--gnav-btn-bottom);
    -webkit-transform: var(--gnav-btn-line2);
            transform: var(--gnav-btn-line2);
  }
  .navopen .gnav-btn {
    --gnav-btn-line:rotate(45deg);
    --gnav-btn-line2:rotate(315deg);
    --gnav-btn-top:0;
    --gnav-btn-bottom:0;
    --gnav-btn-center:transparent;
  }
  .gnav-list {
    font-size: 4.1025641026vmin;
  }
  .gnav-link {
    gap: 0.4em;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: 0.5em;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: relative;
  }
  .gnav-link::after {
    content: "";
    width: 0.6em;
    height: 0.6em;
    display: block;
    border-top: 1px #fff solid;
    border-right: 1px #fff solid;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    margin-left: auto;
  }
  .gnav-other {
    gap: 0.4em;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: 0.8em 0.5em 0;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: relative;
  }
  .gnav-item {
    border-bottom: 1px var(--navy) solid;
  }
  .gnav-parent {
    cursor: pointer;
  }
  .gnav-child-header {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 0.5em;
    padding-bottom: 0.5em;
    border-bottom: 1px #fff solid;
	margin-bottom: 1em;
  }
  .gnav-child-back {
    background: none;
    border: none;
    color: #fff;
    cursor: pointer;
    padding: 0.25em;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 2em;
    height: 2em;
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
  .gnav-child-back::before {
    content: "";
    width: 0.6em;
    height: 0.6em;
    display: block;
    border-bottom: 1px #fff solid;
    border-left: 1px #fff solid;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  .gnav-child-title {
    margin: 0;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    font-size: 4.1025641026vmin;
    font-weight: bold;
  }
  .gnav-child-content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 0;
  }
  .gnav-child-content img {
    padding-top: 2.5em;
  }
  .gnav-children-col {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 100%;
            flex: 1 1 100%;
    border-bottom: 1px var(--navy) solid;
    padding: 0.5em 1em 1em;
  }
  .gnav-children-col:last-child {
    border-bottom: none;
  }
  .gnav-children-list {
    font-size: 3.3333333333vmin;
    padding-left: 1em;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .gnav-children-parent {
    font-weight: bold;
    display: block;
    margin-bottom: 0.5em;
  }
  .gnav-children-item:nth-of-type(n+1)::after {
    content: "｜";
    margin: 0 0.25em;
  }
  .gnav-children-item:last-child::after {
    content: none;
    margin: 0;
  }
}
@media print, screen and (min-width: 961px) {
  .gnav {
    position: relative;
    z-index: 100;
    pointer-events: initial !important;
    background-color: transparent;
    padding: 0;
    max-height: none;
    height: auto;
    top: auto;
    width: auto;
  }
  .gnav-menu-container {
    display: none !important;
  }
  .gnav-menu-parent {
    display: none !important;
  }
  .gnav-menu-child {
    display: none !important;
  }
  .gnav > .gnav-list {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
  }
  .gnav a {
    color: var(--color-nav);
  }
  .gnav-list {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
    gap: 1em 0.5em;
  }
  .gnav-item {
    padding: 0.5em 1em;
    height: var(--header-h);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: relative;
  }
  .gnav-btn {
    display: none;
  }
  .gnav-child-header, .gnav-child-back, .gnav-child-content {
    display: none;
  }
  .gnav-parent {
    --gnav-parent-circle:scale(0) translateX(-0);
    position: relative;
  }
  .gnav-parent.contact-us {
    border-radius: 2em;
	border: 1px solid #ffffff;
    background-color: transparent;
	padding-left: 0.8em;
	padding-right: 0.8em;
	font-weight: bold;
	
  }
  .gnav-parent.contact-us:hover {
    background-color: #ffffff;
  	color: var(--primary);
  }
  .gnav-parent::before {
    content: "";
    position: absolute;
    width: 1em;
    height: 1em;
    border-radius: 50%;
    background-color: #ffffff;
    -webkit-transform: var(--gnav-parent-circle);
            transform: var(--gnav-parent-circle);
    -webkit-transition: 0.3s var(--power4-out);
    transition: 0.3s var(--power4-out);
    left: -0.9em;
    top: 0em;
  }
  .gnav-parent.before-green::before {
	background-color: var(--green);
  }
  .gnav-parent.before-blue::before {
	background-color: var(--blue);
  }
  .gnav-parent.before-pink::before {
	background-color: var(--pink);
  }
  .gnav-parent.before-yellow::before {
	background-color: var(--yellow);
  }
  .gnav-parent:hover {
    --gnav-child-op:1;
    --gnav-child-y:translateY(0);
    --gnav-child-pointer:auto;
    --gnav-parent-circle:scale(1) translateX(-0.25em);
  }
  .gnav-solo {
    --gnav-parent-circle:scale(0) translateX(-0);
    position: relative;
  }
  .gnav-solo.contact-us {
    border-radius: 2em;
	border: 1px solid #ffffff;
    background-color: transparent;
	padding-left: 0.8em;
	padding-right: 0.8em;
	font-weight: bold;
	
  }
  .gnav-solo.contact-us:hover {
    background-color: #ffffff;
  	color: var(--primary);
  }
  .gnav-solo::before {
    content: "";
    position: absolute;
    width: 1em;
    height: 1em;
    border-radius: 50%;
    background-color: #ffffff;
    -webkit-transform: var(--gnav-parent-circle);
            transform: var(--gnav-parent-circle);
    -webkit-transition: 0.3s var(--power4-out);
    transition: 0.3s var(--power4-out);
    left: -0.9em;
    top: 0em;
  }
  .gnav-solo.before-green::before {
	background-color: var(--green);
  }
  .gnav-solo.before-blue::before {
	background-color: var(--blue);
  }
  .gnav-solo.before-pink::before {
	background-color: var(--pink);
  }
  .gnav-solo.before-yellow::before {
	background-color: var(--yellow);
  }
  .gnav-solo:hover {
    --gnav-child-op:1;
    --gnav-child-y:translateY(0);
    --gnav-child-pointer:auto;
    --gnav-parent-circle:scale(1) translateX(-0.25em);
  }
  .gnav-children {
    position: fixed;
    top: 55px;
    left: 0;
    width: 100%;
    background-color: transparent;
    padding: 1em;
    opacity: var(--gnav-child-op, 0);
    pointer-events: var(--gnav-child-pointer, none);
    -webkit-transform: var(--gnav-child-y, translateY(10%));
            transform: var(--gnav-child-y, translateY(10%));
    -webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
    transition: opacity 0.3s, -webkit-transform 0.3s;
    transition: opacity 0.3s, transform 0.3s;
    transition: opacity 0.3s, transform 0.3s, -webkit-transform 0.3s;
  }
  .-header-active .gnav-children {
    background-color: #001a33;
  }
  .gnav-children-row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    max-width: var(--container);
    gap: 0 2em;
    margin-left: auto;
    margin-right: auto;
  }
  .gnav-children-col {
    -ms-flex-preferred-size: calc(33% - 2em);
        flex-basis: calc(33% - 2em);
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    padding: 0 2em;
  }
  .gnav-children-col:nth-of-type(n+2) {
    border-left: 1px #fff solid;
  }
  .gnav-children-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 0.5em;
    font-size: var(--size-13);
    font-weight: normal;
	padding-left: 0.5em;
	padding-top: 0.5em;
  }
  .gnav-children-list.centering {
    justify-content: center;
  }
  .gnav-children-item:nth-of-type(n+1)::after {
    content: " ｜";
    margin: 0 0.25em;
	color: #ffffff;
  }
  .gnav-children-item:last-child::after {
    content: none;
    margin: 0;
  }
  .gnav .gnav-item:has(.gnav-parent) .gnav-children {
    --gnav-child-op:0;
    --gnav-child-y:translateX(-1%);
    --gnav-child-pointer:none;
  }
  .gnav .gnav-item:has(.gnav-parent):hover .gnav-children {
    --gnav-child-op:1;
    --gnav-child-y:translateX(0);
    --gnav-child-pointer:auto;
  }
  .gnav-children-parent {
    font-weight: bold;
  }
  .gnav-children .gnav-children-col .gnav-children-item > a {
    position: relative;
    display: inline-block; /* これで擬似要素の100%がテキスト幅になる */
    text-decoration: none;
  }
  .gnav-children .gnav-children-col .gnav-children-item > a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 100%;
    height: 2px;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 200ms ease;
  }
  .gnav-children .hover-bl .gnav-children-item > a::after {
    background: var(--blue);
  }
  .gnav-children .hover-gr .gnav-children-item > a::after {
	background: var(--green);
  }
  .gnav-children .hover-pi .gnav-children-item > a::after {
	background: var(--pink);
  }
  .gnav-children .hover-ye .gnav-children-item > a::after {
	background: var(--yellow);
  }
  .gnav-children .hover-wh .gnav-children-item > a::after {
	background: var(--white);
  }
  .gnav-children .gnav-children-col .gnav-children-item > a:hover::after,
  .gnav-children .gnav-children-col .gnav-children-item > a:focus-visible::after {
    transform: scaleX(1);
  }
  .gnav-children .gnav-children-col .gnav-children-item > a:hover {
    border-bottom: none;
  }
}
.catchloaded .gnav {
  -webkit-animation: fade_in 1s 2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
          animation: fade_in 1s 2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.footer {
  color: var(--primary);
}
.footer-icons {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1em;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.footer-nav {
  background-color: var(--footer-bg);
  color: #fff;
  padding: 1.5em 0;
  --fnav-icon:45px;
}
.footer-nav-menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1em;
  -ms-flex-pack: distribute;
      justify-content: space-around;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  overflow: hidden;
}
.footer-nav-menu .-item {
  display: grid;
  grid-template-columns: var(--fnav-icon) auto;
  grid-template-rows: auto 1fr;
  gap: 10px 4px;
}
.footer-nav-menu .-item-list {
  grid-column: 2/3;
  font-size: var(--size-12);
}
.footer-nav-menu .-item-icon {
  text-align: right;
}
.footer-nav-menu .-item-head {
  line-height: 1;
}
.footer-nav-menu .-item-head span {
  display: block;
}
.footer-nav-menu .-item-head .gotham {
  margin-bottom: 0.3em;
}
.footer-links {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.footer-links li:nth-of-type(n+2)::before {
  content: "／";
  margin: 0 0.5em;
}
@media print, screen and (max-width: 960px) {
  .footer {
    font-size: 3.5897435897vw;
  }
  .footer-nav-menu {
    position: relative;
    --fnav-icon: calc(26vw / 3.9);
  }
  .footer-nav-menu .hide-pc {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
  }
  .footer-nav-menu .-item {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    gap: 2.5em 5px;
  }
  .footer-nav-menu .-item-icon img {
    width: 100%;
  }
  .footer-nav-menu .-item-head {
    position: relative;
    -ms-flex-item-align: end;
        align-self: flex-end;
    font-size: 3.8461538462vw;
    --size-28: calc(30vw / 3.9);
  }
  .footer-nav-menu .-item-head .gotham {
    margin-bottom: -0.1em;
  }
  .footer-nav-menu .-item-head .w7 {
    position: absolute;
    top: calc(100% + 0.5em);
    left: calc(var(--fnav-icon) * -1 - 5px);
  }
  .footer-nav-menu .-item-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    color: #ffffff;
    font-size: 3.5897435897vw;
  }
  .footer-nav-menu .-item-list li:nth-of-type(n+2)::before {
    content: "／";
    margin: 0 0.5em;
	color: var(--purple);
  }
  .footer-nav-btn {
    --btn-w: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    text-align: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin: 1em auto;
  }
  .footer-row {
    padding: 1.5em 0.5em 1em;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 1em;
  }
  .footer-logo {
    -ms-flex-preferred-size: 29.7435897436vw;
        flex-basis: 29.7435897436vw;
  }
  .footer-logo img {
    width: 100%;
  }
  .footer-icons {
    -ms-flex-preferred-size: 46.1538461538vw;
        flex-basis: 46.1538461538vw;
    margin-left: auto;
	transform: translateX(1em);
  }
  .footer-icons span:nth-of-type(1) {
    -ms-flex-preferred-size: 10.5128205128vw;
        flex-basis: 10.5128205128vw;
  }
  .footer-icons span:nth-of-type(2) {
    -ms-flex-preferred-size: 14.6153846154vw;
        flex-basis: 14.6153846154vw;
  }
  .footer-icons span:nth-of-type(3) {
    -ms-flex-preferred-size: 10.2564102564vw;
        flex-basis: 10.2564102564vw;
  }
  .footer-icons span img {
    width: 100%;
  }
  .footer-info {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    --size-11: calc(14vw / 3.9);
    --size-13: calc(16vw / 3.9);
  }
  .footer-copy {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    text-align: right;
    --size-10: calc(13vw / 3.9);
    --size-12: calc(14vw / 3.9);
  }
}
@media print, screen and (min-width: 961px) {
  .footer {
    --container:1160px;
  }
  .footer-row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 1em 2em;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    margin: 0.7em auto 1em;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-pack: distribute;
        justify-content: space-around;
  }
  .footer-nav {
    --container:1230px;
  }
  .footer-nav-menu {
    position: relative;
  }
  .footer-nav .hide-sp {
    position: absolute;
    right: 0;
    bottom: 0;
  }
  .footer-nav-btn {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 230px;
    text-align: center;
	margin-right: 2em;
  }
  .footer-info {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .footer-icons {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .footer-copy {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    -ms-flex-item-align: end;
        align-self: flex-end;
  }
  .footer-nav-menu .-item-icon img {
    transform: translate(-2px,2px);
  }
}

#page-transition {
  position: fixed;
  inset: 0;
  background: var(--primary); /* マスク色（背景に合うように変更可） */
  clip-path: circle(0% at center);
  z-index: 9999;
}
#page-transition + .wrapper-trans {
  opacity: 0; /* 最初は非表示 */
}

.page {
  position: relative;
  --page-title-mb: 180px;
  --block-title-border:1px var(--purple) solid;
  --block-title-margin: 1em;
  --block-layout:grid;
  --block-gap:1em calc(47% / 10);
  --block-column:1fr;
  --block-area:"blocktitle"
  "blockimg"
  "blocktext";
}
.page-bg {
  background: url(../images/theme/page-bg.svg) no-repeat;
  background-position: center 0;
  background-size: 2022px auto;
}
.page-title {
  margin-bottom: var(--page-title-mb);
}
.page-title h1 {
  padding-left: 0.8em;
}
.page-title + .section {
  --section-top:0;
}
.page .section {
  overflow-x: hidden;
}
@media print, screen and (max-width: 960px) {
  .page {
    --page-title-mb: calc(50vw / 3.9);
  }
  .page-bg {
    background: url(../images/theme/page-bg-sp.svg) no-repeat;
    background-position: center 3vw;
    background-size: 100% auto;
  }
  .page-title h1 {
    padding-left: 0;
  }
}

.block {
  margin-top: var(--block-spacer-top, var(--block-spacer));
  margin-bottom: var(--block-spacer-bottom, var(--block-spacer));
  display: var(--block-layout);
  grid-template-columns: var(--block-column);
  gap: var(--block-gap);
  grid-template-areas: var(--block-area);
}
.block-title {
  margin-bottom: var(--block-title-margin);
}
.block-title h1, .block-title h2, .block-title h3, .block-title h4, .block-title h5, .block-title h6 {
  border-bottom: var(--block-title-border);
}
.block-title-sub {
  display: block;
  line-height: 1.5em;
  padding-top: 0.4em;
}
.block-text p {
  margin-bottom: 1.5em;
}
.block-text .btn-wrap {
  margin-top: 2.5em;
}
.block-timeline {
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
  --timeline-space:20px;
  --timeline-icon:calc(30em / 16);
  --timeline-line: "";
  --timeline-head: calc(190em / 16);
}
.block-timeline .timeline-history {
  --timeline-head: calc(78em / 16);
}
.block-timeline-list {
  position: relative;
}
.block-timeline-item {
  position: relative;
  display: grid;
  grid-template-columns: var(--timeline-icon) var(--timeline-head) auto;
  gap: 0 5.2173913043%;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: var(--timeline-space);
}
.block-timeline-item:last-of-type {
  --timeline-line: none;
}
.block-timeline-icon {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 100%;
}
.block-timeline-icon::before {
  content: "";
  display: inline-block;
  width: var(--timeline-icon);
  height: var(--timeline-icon);
  border-radius: 50%;
  background-color: var(--primary);
}
.block-timeline-icon::after {
  content: var(--timeline-line);
  width: 1px;
  height: calc(100% + var(--timeline-space));
  background-color: var(--primary);
  position: absolute;
  left: 50%;
  display: block;
  top: 50%;
}
.block-timeline-head {
  line-height: 1.5555555556;
}
.block-gallery {
  --gallery-wrap:2em calc(50% / 10);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: var(--gallery-wrap);
  --gallery-w:clamp(220px,calc(30%), 300px);
}
.block-gallery-item {
  -ms-flex-preferred-size: var(--gallery-w);
      flex-basis: var(--gallery-w);
  text-align: center;
  background-color: var(--primary);
  color: #fff;
  border-radius: 20px;
  overflow: hidden;
}
.block-gallery-item figcaption {
  line-height: 1.5;
  padding: 0.75em;
}
.figcaption-delete .block-gallery-img figcaption {
  display: none;
}

@media print, screen and (max-width: 960px) {
  .block {
    font-size: 3.5897435897vw;
  }
  .block-title h1, .block-title h2, .block-title h3, .block-title h4, .block-title h5, .block-title h6 {
    padding-bottom: 0.25em;
  }
  .block-text {
    --btn-w:100%;
    --btn-size: calc(16vw / 3.9);
  }
  .block-text .animate-btn {
    font-size: 4.1025641026vw;
  }
  .block-timeline {
    --tlheade-border:1px var(--purple) solid;
    --tlhead-pad: 0.5em 0.5em 0;
    --tltext-pad: 0 0.5em 0.5em;
    --timeline-space:1px;
    padding-top: 0.5em;
    --size-18:calc(18vw / 3.9);
  }
  .block-timeline-item {
    --timeline-icon: calc(18vw / 3.9);
    grid-template-columns: var(--timeline-icon) auto;
    grid-template-rows: 1fr auto;
    gap: 0 2.3076923077vw;
  }
  .block-timeline-item:first-of-type {
    --tlheade-border:none;
  }
  .block-timeline-icon {
    grid-row: 1/3;
    grid-column: 1/2;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    padding-top: 0.95em;
    font-size: 4.6153846154vw;
  }
  .block-timeline-icon::after {
    top: 1em;
  }
  .block-timeline-head {
    grid-column: 2/3;
    grid-row: 1/2;
    border-top: var(--tlheade-border);
    padding: var(--tlhead-pad);
  }
  .block-timeline-text {
    grid-column: 2/3;
    grid-row: 2/3;
    padding: var(--tltext-pad);
  }
  .block-gallery {
    --size-15:calc(17vw / 3.9);
    --size-13:calc(16vw / 3.9);
  }
  .block-gallery-item {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
  }
  .block-gallery-img img {
    width: 100%;
    max-width: none;
  }
}
@media print, screen and (min-width: 961px) {
  .block-title {
    grid-area: blocktitle;
  }
  .block-img {
    grid-area: blockimg;
  }
  .block-text {
    grid-area: blocktext;
  }
}

.tpl-1a .flickity-viewport {
  border-radius: 20px;
  overflow: hidden;
}
.tpl-1a .slider-item-img {
  width: 100%;
  background-color: var(--praimry);
  aspect-ratio: 1/1;
}
.tpl-1a .slider-item-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 20px;
}
.tpl-2a .flickity-viewport {
  border-radius: 50%;
  overflow: hidden;
}
.tpl-2a .slider-item-img {
  width: 100%;
  background-color: var(--praimry);
  aspect-ratio: 1/1;
}
.tpl-2a .slider-item-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 50%;
}
.tpl-1a.circle .slider-item-img img {
  border-radius: 50%;
}
.tpl-4a .flickity-viewport {
  border-radius: 20px;
  overflow: hidden;
}
.tpl-4a .slider-item-img {
  width: 100%;
  background-color: var(--praimry);
  aspect-ratio: 1/1;
}
.tpl-4a .slider-item-img img {
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 20px;
}
.tpl-5 .block {
  overflow: hidden;
}
.tpl-5 .block-text .btn-wrap {
  gap: 1em;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.tpl-6-img {
  aspect-ratio: 760/492.8;
}
.tpl-6-img img {
  -o-object-fit: cover;
     object-fit: cover;
  height: 100%;
  width: 100%;
}
.tpl-7-img {
  aspect-ratio: 391/628;
}
.tpl-7-img img {
  -o-object-fit: cover;
     object-fit: cover;
  height: 100%;
  width: 100%;
}
.tpl-11 {
  border-bottom: 1px var(--purple) solid;
  padding-bottom: 1em;
}
.tpl-12 {
  border-bottom: 1px var(--purple) solid;
  padding-bottom: 1em;
}
.tpl-14-imgs {
  gap: 1em;
}

.bg-circle {
  overflow: hidden;
  position: relative;
  margin-top: var(--section-space);
  margin-bottom: var(--section-space);
  --bg-circle-w:clamp(30px, calc(44vw / 3.9), 55px);
}
.bg-circle-trans {
  background-image: url(../images/theme/circle_after-sp.svg);
  background-size: auto 100%;
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  clip-path: circle(var(--bg-circle-w) at 50% 50%);
}
.bg-circle-front {
  color: #fff;
  --title-border:1px #fff solid;
  --block-title-border:1px #fff solid;
  --dot-color:#fff;
  position: relative;
}
@media print, screen and (min-width: 769px) {
  .bg-circle-trans {
    background-image: url(../images/theme/circle_after.svg);
  }
}

.gsap-title {
  min-height: 153px;
}

.animate-title {
  min-height: 100px;
  transform: translateY(2em);
}

.section-title {
  margin-bottom: -5em;
}

@media print, screen and (max-width: 960px) {
  .tpl-1a {
    --block-spacer-top: 0;
  }
  .tpl-5 .block-img {
    -webkit-transform: translateX(15%) scale(1.3828571429);
            transform: translateX(15%) scale(1.3828571429);
    -webkit-transform-origin: left top;
            transform-origin: left top;
  }
  .tpl-5 .block-img::after {
    content: "";
    display: block;
    width: 100%;
    padding-top: 42.7777777778%;
  }
  .tpl-5 .block-img img {
    width: 100%;
  }
  .tpl-6-img {
    margin-left: -4.5058139535%;
  }
  .tpl-7-img {
    width: 64.1025641026vw;
    margin-left: auto;
  }
  .tpl-9 {
    --block-column:auto calc(176vw / 3.9);
    --block-gap:1em;
    grid-template-rows: 1fr 98.4615384615vw auto;
  }
  .tpl-9 .block-title {
    grid-row: 1/2;
    grid-column: 1/3;
  }
  .tpl-9 .block-img {
    grid-column: 2/3;
    grid-row: 2/3;
  }
  .tpl-9 .block-text {
    grid-column: 1/3;
    grid-row: 2/4;
  }
  .tpl-9 .block-text::before {
    content: "";
    display: block;
    float: right;
    width: 45.1282051282vw;
    height: 98.4615384615vw;
    margin-left: 1em;
    margin-bottom: 1em;
  }
  .tpl-9-img {
    width: 45.1282051282vw;
  }
  .tpl-10 {
    --block-column: calc(176vw / 3.9) auto;
    --block-gap:1em;
    grid-template-rows: 1fr 98.4615384615vw auto;
  }
  .tpl-10 .block-title {
    grid-row: 1/2;
    grid-column: 1/3;
  }
  .tpl-10 .block-img {
    grid-column: 1/2;
    grid-row: 2/3;
  }
  .tpl-10 .block-text {
    grid-column: 1/3;
    grid-row: 2/4;
  }
  .tpl-10 .block-text::before {
    content: "";
    display: block;
    float: left;
    width: 45.1282051282vw;
    height: 98.4615384615vw;
    margin-right: 1em;
    margin-bottom: 1em;
  }
  .tpl-10-img {
    width: 45.1282051282vw;
  }
  .tpl-11 {
    padding-bottom: 0;
  }
  .tpl-11 .block-timeline {
    border-top: 1px var(--purple) solid;
  }
  .tpl-12 {
    --block-gap:0;
    --block-title-margin:0;
  }
  .tpl-14-imgs {
    display: grid;
    grid-template-areas: "img1 img2" "img3 img2" "img4 img2";
    grid-template-rows: auto 40.5128205128vw;
    padding-left: 6.6666666667vw;
    gap: 1em 6.6666666667vw;
  }
  .tpl-14-imgs .img {
    text-align: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .tpl-14-imgs .-img1 {
    grid-area: img1;
  }
  .tpl-14-imgs .-img1 .img-circle {
    width: 25.8974358974vw;
  }
  .tpl-14-imgs .-img2 {
    grid-area: img2;
  }
  .tpl-14-imgs .-img3 {
    grid-area: img3;
  }
  .tpl-14-imgs .-img3 .img-circle {
    width: 40.5128205128vw;
  }
  .tpl-14-imgs .-img4 {
    grid-area: img4;
  }
  .tpl-14-imgs .-img4 .img-circle {
    width: 15.8974358974vw;
  }
  .tpl-17a {
    --block-gap:0;
    --block-title-margin:0;
  }
  .tpl-18a {
    --block-gap:0;
    --block-title-margin:0;
  }
  .animate-title {
    transform: translateY(0);
  }
  .section-title {
    margin-bottom: -5em;
	transform: translateX(-0.5em);
  }
}
@media print, screen and (min-width: 961px) {
  .tpl-1a {
    --block-column:calc(553% / 10) calc(400% / 10);
    --block-area:"blocktitle blockimg"
    "blocktext blockimg";
    --block-gap:0 calc(47% / 10);
    grid-template-rows: auto 1fr;
  }
  .tpl-1a .block-text {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .tpl-1a .block-text .btn-wrap {
    margin-top: auto;
  }
  .tpl-2a {
    --block-column:calc(400% / 10) calc(553% / 10);
    --block-area:"blockimg blocktitle"
    "blockimg blocktext";
    --block-gap:0 calc(47% / 10);
    grid-template-rows: auto 1fr;
  }
  .tpl-2a .block-text {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .tpl-2a .block-text .btn-wrap {
    margin-top: auto;
  }
  .tpl-4a .block-text .btn-wrap {
    margin-top: 0.5em;
  }
  .tpl-5 {
    --block-column:calc(520% / 12) calc(637% / 12);
    --block-area:"blocktitle blockimg"
    "blocktext blockimg";
    --block-gap:0 calc(43% / 10);
    grid-template-rows: 1fr auto;
    position: relative;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    -webkit-transform: translateX(clamp(0px, (100vw - 1000px) / 200 * 100, 100px));
            transform: translateX(clamp(0px, (100vw - 1000px) / 200 * 100, 100px));
  }
  .tpl-5 .block-text {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
  .tpl-6 {
    --block-column:auto calc(673% / 10);
    --block-area:"blockimg blocktitle"
    "blockimg blocktext";
    --block-gap:0 0;
    grid-template-rows: auto 1fr;
  }
  .tpl-6-wrap {
    max-width: 1920px;
    position: relative;
    margin-left: auto;
    margin-right: auto;
    overflow: hidden;
  }
  .tpl-6-img {
    position: absolute;
    right: 0;
    height: 100%;
    width: auto;
  }
  .tpl-6 .block-img {
    position: relative;
    height: 492px;
  }
  .tpl-6 .block-title-sub {
    padding-left: 1em;
  }
  .tpl-6 .block-text {
    padding-left: 3em;
  }
  .tpl-7 {
    --block-column:calc(655% / 11) calc(391% / 11);
    --block-area:"blocktitle blockimg"
    "blocktext blockimg";
    --block-gap:0 calc(54% / 11);
    grid-template-rows: auto 1fr;
    max-width: 1100px;
    margin-left: auto;
  }
  .tpl-7 .block-text .label-list {
    max-width: 700px;
  }
  .tpl-8 {
    --block-column:calc(420% / 11) calc(680% / 11);
    --block-area:"blockimg blocktitle"
    "blockimg blocktext";
    --block-gap:0;
    grid-template-rows: auto 1fr;
    max-width: 1100px;
    position: relative;
  }
  .tpl-8-img {
    position: absolute;
    left: 0;
    width: 54.5454545455%;
    aspect-ratio: 600/895;
  }
  .tpl-8 .block-title-sub {
    padding-left: 1em;
  }
  .tpl-8 .block-text {
    padding-left: 14.7058823529%;
  }
  .tpl-8 .block-text-inner {
    padding-left: 27.5862068966%;
  }
  .tpl-9 {
    --block-column:calc(712% / 11) calc(388% / 11);
    --block-area:"blocktitle blockimg"
    "blocktext blockimg";
    --block-gap:0 ;
    grid-template-rows: auto 1fr;
    max-width: 1100px;
    margin-left: auto;
  }
  .tpl-9 .block-text {
    padding-right: 10.9550561798%;
  }
  .tpl-10 {
    --block-column: calc(388% / 11) calc(712% / 11);
    --block-area:"blockimg blocktitle"
    "blockimg blocktext";
    --block-gap:0;
    grid-template-rows: auto 1fr;
    max-width: 1100px;
  }
  .tpl-10 .block-title-sub {
    padding-left: 1em;
  }
  .tpl-10 .block-text {
    padding-left: 10.9550561798%;
  }
}
.page-home {
  --mv-pos:sticky;
  --mv-pos-h: clamp(0, var(--mv-pos-val),7%);
  --mv-pos-val: 7%;
  --section-h:1200%;
  --mvscale_val:scale(1);
  --scroll-sp-op:1;
}
.page-home.noscroll {
  overflow: hidden;
  height: 100vh; /* 必要に応じて */
  position: fixed; /* iOS対応用 */
  width: 100%;
  --scroll-sp-op:0;
}
.page-home .section-container {
  position: relative;
}
.page-home .section-box {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  overflow: hidden;
}
.page-home .section-box::before {
  content: "";
  display: block;
  padding-top: var(--section-h);
}
.page-home .section-contents {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  --container:1200px;
}
@media print, screen and (max-width: 960px) {
  .page-home .section-contents {
    overflow: hidden;
	top: -1.5em;
  }
}
.page-home .top-pin {
  position: absolute;
  top: 50px;
  height: 1px;
  width: 1px;
}
@media print, screen and (min-width: 961px) {
  .page-home {
    --header-bg:transparent;
    --header-bg-scale:scaleX(0);
    --header-bg-w:1200px;
    --header-bg-op:0;
    --mv-pos-h:clamp(0,var(--mv-pos-val),3%);
    --mv-pos-val: 3%;
    --header-h:calc(45% / 12.0);
  }
  .page-home .header {
    position: fixed;
    background: var(--header-bg);
    overflow: visible;
  }
  .page-home .header::before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    background-color: var(--primary);
    z-index: 0;
    max-width: var(--header-bg-w);
    -webkit-transform: var(--header-bg-scale);
            transform: var(--header-bg-scale);
    -webkit-transition: -webkit-transform 0.3s linear;
    transition: -webkit-transform 0.3s linear;
    transition: transform 0.3s linear;
    transition: transform 0.3s linear, -webkit-transform 0.3s linear;
    opacity: var(--header-bg-op);
  }
  .page-home .-header-active {
    --header-bg-scale:scaleX(1);
    --header-bg-w:100%;
    --header-bg-op:1;
    --header-h:55px;
  }
  .page-home .scrolled {
    --header-bg-scale:scaleX(1);
    --header-bg-w:100%;
    --header-bg-op:1;
    --header-h:55px;
  }
}
.page-home .top-mv {
  --container:1120px;
  --mv-h:calc(765vw / 3.9);
  --mv-clip: polygon(0 0, 100% 0, 100% 79%, 0 79%);
}
.page-home .top-mv-movie {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  pointer-events: none;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  max-width: 100%;
  -webkit-transition: 0.5s ease-in-out;
  transition: 0.5s ease-in-out;
  margin-left: auto;
  margin-right: auto;
}
.page-home .top-mv-movie video {
  width: 100%;
  height: 100%;
  max-height: 100vh;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-transition: 0.5s ease-in-out;
  transition: 0.5s ease-in-out;
}
@media print, screen and (max-width: 960px) {
  .page-home .top-mv {
    --sectionmv-h:120%;
    --sectionmv-mb:-4.5;
    --section-h: calc(975vw / 3.8);
    margin-bottom: -45vw;
    position: relative;
    z-index: 2;
    clip-path: polygon(0 0, 100% 0, 100% var(--sectionmv-h), 0 var(--sectionmv-h));
  }
  .page-home .top-mv-movie {
    position: sticky;
    top: 0;
    z-index: 1;
    left: 0;
    height: 100vh;
    max-height: 100vh;
  }
  .page-home .top-mv-scroll {
    position: absolute;
    top: 80vh;
    left: 0;
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    z-index: 1;
  }
  .page-home .top-mv-scroll .scroll-svg {
    width: 20.5128205128vw;
    opacity: var(--scroll-sp-op);
    -webkit-transition: opacity 0.3s var(--easing);
    transition: opacity 0.3s var(--easing);
  }
  .fv-bottom-link {
    position: fixed;
    left: 0; right: 0; bottom: 0;
    height: 13vh;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0);
    color: #fff;
    text-decoration: none;
    padding: 1rem;
  }
}
@media print, screen and (min-width: 961px) {
  .page-home .top-mv {
    --section-h:calc(1150% / 12);
  }
  .page-home .top-mv-movie {
    position: sticky;
    top: 0;
    height: 100%;
    max-height: 100vh;
  }
  .page-home .top-mv-movie video {
    -webkit-transform-origin: 10% 100%;
            transform-origin: 10% 100%;
    -webkit-transform: var(--mvscale_val);
            transform: var(--mvscale_val);
  }
  .page-home .top-mv-scroll {
    display: none;
  }
}
.page-home .lottie-wrap {
  position: relative;
}
.page-home .lottie-wrap .business-marker {
  position: absolute;
  top: 36.5%;
  width: 100%;
}
.page-home .lottie-wrap .business-marker::before {
  content: "";
  display: block;
  width: 100%;
  padding-top: 39.8333333333%;
}
.page-home .lottie-wrap .promotion-marker {
  position: absolute;
  top: 65.4%;
  width: 100%;
}
.page-home .lottie-wrap .promotion-marker::before {
  content: "";
  display: block;
  width: 100%;
  padding-top: 43.8333333333%;
}
.page-home .lottie-wrap .lifestyle-marker {
  position: absolute;
  top: 94.85%;
  width: 100%;
}
.page-home .lottie-wrap .lifestyle-marker::before {
  content: "";
  display: block;
  width: 100%;
  padding-top: 39.8333333333%;
}
.page-home .lottie-section {
  position: relative;
  z-index: 10;
  overflow: hidden;
  width: 100%;
}
.page-home .lottie-section .lottie-content {
  pointer-events: none;
  position: relative;
  -webkit-transition: top 0.5s var(--power4-out);
  transition: top 0.5s var(--power4-out);
}
@media print, screen and (min-width: 961px) {
  .page-home .lottie-section {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .page-home .lottie-section .lottie-content {
    overflow: hidden;
  }
  .page-home .lottie-section .lottie-content svg {
    display: block;
    width: 100% !important;
    min-width: 1000px !important;
  }
}
.page-home .top-main {
  position: relative;
}
.page-home .top-main .top-firstview {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  z-index: 0;
  width: 100%;
}
.page-home .top-main .top-bg {
  min-height: 923.0769230769vw;
  z-index: 2;
  position: relative;
  pointer-events: none;
}
.page-home .top-main .top-bg a {
  pointer-events: initial;
}
.page-home .top-main .top-front {
  --container:1200px;
  --container-pad:0;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  z-index: 1;
}
.page-home .top-main .top-front a {
  pointer-events: initial;
}
.page-home .top-main .top-front .container {
  height: 100%;
  overflow: hidden;
}
.page-home .top-main .top-front .container::before {
  content: "";
  display: block;
  width: 100%;
}
@media print, screen and (max-width: 960px) {
  .page-home .top-main .top-front {
    --container-pad:0;
  }
  .page-home .top-main .top-front .container::before {
    padding-top: 30%;
  }
}
@media print, screen and (min-width: 961px) {
  .page-home .top-main .top-bg {
    min-height: 5000px;
  }
  .page-home .top-main .top-front .container::before {
    padding-top: 10%;
  }
}
.page-home .vision {
  position: relative;
  --container:1200px;
}
.page-home .vision-text {
  color: var(--primary);
}
.page-home .vision-title {
  margin-bottom: 0.6em;
  letter-spacing: 0;
  -webkit-font-feature-settings: "palt" 1;
          font-feature-settings: "palt" 1;
}
.page-home .vision-col {
  overflow: hidden;
}
@media print, screen and (max-width: 960px) {
  .page-home .vision {
    position: relative;
    z-index: 1;
    --section-h:calc(770vw / 3.9);
    --size-30: calc(20vw / 3.9);
  }
  .page-home .vision-title {
    margin-bottom: 1.2em;
  }
  .page-home .vision-text {
    padding-top: 5.1vw;
    font-size: 3.5897435897vw;
    margin-bottom: 12.4vw;
  }
  .page-home .vision-text p {
    line-height: 1.75;
  }
  .page-home .vision-text p:nth-of-type(2) {
    margin-top: 5em;
  }
  .page-home .vision-btns {
    font-size: 4.1025641026vw;
    --btn-w:calc(353em / 16);
    --btn-size: calc(16vw / 3.9);
    text-align: center;
    display: grid;
    gap: 1.3em;
    padding: 0 0;
    --btn-h:calc(39.3em / 15);
  }
  .page-home .vision-btns .animate-btn {
    width: 100%;
    display: block;
  }
  .page-home .vision-btns .animate-btn:nth-of-type(n+2) {
    margin: 0;
  }
  .page-home .vision-btns .animate-btn-file {
    top: 0;
    left: 0;
    right: 0;
    -webkit-transform: none;
            transform: none;
  }
  .page-home .vision-btns .animate-btn-file svg {
    min-width: 0;
    max-width: none;
  }
  .page-home .vision-btns .animate-btn-text {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .page-home .vision-btn1, .page-home .vision-btn2 {
    opacity: 0;
  }
}
@media print, screen and (min-width: 961px) {
  .page-home .vision {
    --section-h:calc(550% / 12);
    --size-30:clamp(10px,calc(28vw / 12), 30px);
    font-size: clamp(10px, 1.25vw, 15px);
    --container-pad: calc(50% / 12);
  }
  .page-home .vision-row {
    padding-top: 4.4%;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 2em;
  }
  .page-home .vision-col {
    -ms-flex-preferred-size: 14.375em;
        flex-basis: 14.375em;
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    position: relative;
    bottom: -1.2em;
  }
  .page-home .vision-text {
    line-height: 1.910625;
  }
  .page-home .vision-btns {
    width: 14.375em;
  }
  .page-home .vision-btns .animate-btn {
    margin-bottom: 1.5em;
  }
}
.page-home .business {
  color: var(--primary);
  position: relative;
  --line-x:scaleX(0);
  --line-y:scaleY(0);
  --size-18:clamp(10px,calc(17vw / 12), 17px);
  --size-20:clamp(10px,calc(18vw / 12), 18px);
  --size-30:clamp(10px,calc(28vw / 12), 28px);
  --size-40:clamp(10px,calc(38vw / 12), 38px);
  --size-50:clamp(10px,calc(48vw / 12), 48px);
  font-size: clamp(10px, 1.25vw, 15px);
}
.page-home .business.is-solution {
  --line-x:scaleX(1);
  --line-y:scaleY(1);
}
.page-home .business .container {
  height: 100%;
}
.page-home .business-dx-title {
  opacity: 0;
  -webkit-transform: translateY(50%);
          transform: translateY(50%);
  position: absolute;
  top: 0;
}
.page-home .business-dx-sub {
  opacity: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 0.5em;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.page-home .business-dx-sub::after {
  content: "";
  display: block;
  width: 2.1818181818em;
  aspect-ratio: 1/1;
  background-color: var(--blue);
  border-radius: 50%;
}
.page-home .business-detail {
  position: relative;
}
.page-home .business-list {
  position: relative;
}
.page-home .business-list-item {
  margin-bottom: 1.8em;
}
.page-home .business-list-item:last-of-type {
  margin-bottom: 0;
}
.page-home .business-list-item a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  line-height: 1.2;
}
.page-home .business-list-item a .-jp {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5em;
  margin-bottom: 0.25em;
}
.page-home .business-list-item a .-en {
  color: #808cbf;
  margin-right: 0.5em;
  font-weight: 700;
}
.page-home .business-list-item .-btn {
  position: relative;
  background-color: var(--list-btn, var(--primary));
  width: 1.4117647059em;
  aspect-ratio: 1/1;
  border-radius: 50%;
  -webkit-transition: background-color 0.3s var(--power4-out);
  transition: background-color 0.3s var(--power4-out);
}
.page-home .business-list-1 .business-list-item a:hover .-btn {
  background-color: var(--green);
}
.page-home .business-list-2 .business-list-item a:hover .-btn {
  background-color: var(--blue);
}
@media print, screen and (max-width: 960px) {
  .page-home .business {
    --section-h:calc(574vw / 3.9);
    font-size: 3.5897435897vw;
    --size-30: calc(20vw / 3.9);
  }
  .page-home .business-head {
    background-color: var(--primary);
    --size-20:calc(14vw / 3.9);
    color: #fff;
    padding: 1em;
    font-size: 3.5897435897vw;
    border-radius: 3.6428571429em 0 0 3.6428571429em;
    position: absolute;
    right: 0;
    top: 0;
    --size-50:calc(20vw / 3.9);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding-left: 2.5em;
    font-weight: 700;
    opacity: 0;
  }
  .page-home .business-head .gotham {
    font-weight: 400;
  }
  .page-home .business-dx-sub {
    position: absolute;
  }
  .page-home .business-solution-sub {
    opacity: 1;
    text-align: right;
  }
  .page-home .business-achieve {
    position: absolute;
    left: 0;
    top: 21.5em;
    line-height: 1.2;
    --achieve-line:0;
    --size-18:calc(13vw / 3.9);
    --size-40: calc(22vw / 3.9);
  }
  .page-home .business-achieve-1, .page-home .business-achieve-2 {
    display: grid;
    opacity: 0;
    -webkit-transform: translateX(-50px);
            transform: translateX(-50px);
    margin-bottom: 0.9em;
    padding-left: 1.5em;
    position: relative;
    padding-bottom: 0.5em;
  }
  .page-home .business-achieve .size-40 {
    margin-left: 0.1em;
    margin-right: 0.1em;
  }
  .page-home .business-achieve-1 > span:last-of-type, .page-home .business-achieve-2 > span:last-of-type {
    padding-left: 2em;
  }
  .page-home .business-achieve-1::before, .page-home .business-achieve-2::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #12235f;
    bottom: 0;
    -webkit-transform: scale(var(--achieve-line));
            transform: scale(var(--achieve-line));
    -webkit-transition: -webkit-transform 0.3s;
    transition: -webkit-transform 0.3s;
    transition: transform 0.3s;
    transition: transform 0.3s, -webkit-transform 0.3s;
    -webkit-transform-origin: left;
            transform-origin: left;
  }
  .page-home .business-detail {
    position: absolute;
    right: 0;
    top: 10em;
  }
  .page-home .business-list {
    font-size: 3.5897435897vw;
    --size-17: calc(14vw / 3.9);
  }
  .page-home .business-list-item {
    opacity: 0;
    -webkit-transform: translateY(50px);
            transform: translateY(50px);
    margin-bottom: 1.5em;
  }
  .page-home .business-list-item a {
    position: relative;
    padding-right: 1.5em;
  }
  .page-home .business-list-item a .-btn {
    position: absolute;
    right: 0;
    top: 50%;
    -webkit-transform: translate(50%, -50%);
            transform: translate(50%, -50%);
  }
  .page-home .business-list-item a .-en {
    margin-right: 0;
  }
  .page-home .business-list-2 {
    margin-top: 2.8em;
  }
  .page-home .business .btn-achieve {
    position: absolute;
    left: 1em;
    top: 27.7em;
    width: 11em;
    --btn-bg:var(--primary);
    font-size: 4.1025641026vw;
    --btn-w:calc(176em / 16);
    --btn-h:calc(42em / 16);
    --btn-size:calc(16vw / 3.9);
  }
  .page-home .business .btn-achieve .btn {
    width: var(--btn-w);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 0.5em;
    width: 100%;
    min-height: var(--btn-h);
    font-weight: 500;
  }
}
@media print, screen and (min-width: 961px) {
  .page-home .business {
    --section-h:calc(1242% / 12);
    --size-17:clamp(10px, calc(16vw / 12), 16px);
    font-size: clamp(10px, 1.25vw, 15px);
    --container-pad: calc(50% / 12);
  }
  .page-home .business-text-pin {
    position: absolute;
    top: 42.3%;
    left: 44.6%;
  }
  .page-home .business .container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
  .page-home .business-wrap {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
  }
  .page-home .business-row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    width: 100%;
  }
  .page-home .business-sub {
    display: grid;
  }
  .page-home .business-sub > h3 {
    grid-column: 1/2;
    grid-row: 1/2;
  }
  .page-home .business-solution-title {
    opacity: 0;
  }
  .page-home .business-solution-sub {
    opacity: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    gap: 0.5em;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .page-home .business-solution-sub::after {
    content: "";
    display: block;
    width: 2.1818181818em;
    aspect-ratio: 1/1;
    background-color: var(--green);
    border-radius: 50%;
  }
  .page-home .business-head {
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: 12.4em;
  }
  .page-home .business-head .hide-sp {
    margin-top: auto;
  }
  .page-home .business-sticky {
    position: sticky;
    width: 100%;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    top: clamp(330px, 42.6vw, 510px);
    z-index: 5;
  }
  .page-home .business-achieve {
    line-height: 1.2;
    position: relative;
    display: grid;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    margin-top: auto;
  }
  .page-home .business-achieve .-line {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: var(--color-def);
    -webkit-transform: translateX(0);
            transform: translateX(0);
    -webkit-transform-origin: left;
            transform-origin: left;
  }
  .page-home .business-achieve .size-40 {
    margin-left: 0.1em;
    margin-right: 0.1em;
  }
  .page-home .business-achieve-1, .page-home .business-achieve-2 {
    grid-column: 1/2;
    grid-row: 1/2;
    opacity: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 0.5em;
    -webkit-box-align: baseline;
        -ms-flex-align: baseline;
            align-items: baseline;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .page-home .business-achieve .-link {
    margin-left: 2em;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 0.2em;
    font-size: clamp(10px, 1.4166666667vw, 17px);
    -webkit-box-align: baseline;
        -ms-flex-align: baseline;
            align-items: baseline;
  }
  .page-home .business-achieve .-link-arrow {
    display: none;
    width: 2em;
    height: 1px;
    background-color: var(--primary);
    position: relative;
  }
  .page-home .business-achieve .-link-arrow::before {
    content: "";
    width: 0.6em;
    position: absolute;
    right: 0;
    bottom: 0;
    height: 1px;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    -webkit-transform-origin: right bottom;
            transform-origin: right bottom;
    background-color: var(--primary);
  }
  .page-home .business-line {
    opacity: 0;
  }
  .page-home .business .btn-achieve {
    position: absolute;
    display: none;
  }
  .page-home .business-detail {
    padding-left: 1em;
    position: relative;
    -ms-flex-preferred-size: 33.5384615385%;
        flex-basis: 33.5384615385%;
  }
  .page-home .business-list {
    padding-right: 0.3em;
  }
  .page-home .business-list-item {
    margin-bottom: 1.8em;
  }
  .page-home .business-list-item a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
  .page-home .business-list-item a .-jp {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 0.5em;
    margin-bottom: 0.25em;
  }
  .page-home .business-list-item .-btn {
    position: relative;
    background-color: var(--primary);
    width: 1.4117647059em;
    aspect-ratio: 1/1;
    border-radius: 50%;
  }
  .page-home .business-list-item .-btn svg {
    opacity: 0;
  }
  .page-home .business-list-2 {
    margin-top: 6.4em;
  }
}
.page-home .promotion {
  color: var(--primary);
  position: relative;
  --line-x:scaleX(0);
  --line-y:scaleY(0);
  --size-18:clamp(10px,calc(17vw / 12), 17px);
  --size-20:clamp(10px,calc(18vw / 12), 18px);
  --size-30:clamp(10px,calc(28vw / 12), 28px);
  --size-40:clamp(10px,calc(38vw / 12), 38px);
  --size-50:clamp(10px,calc(48vw / 12), 48px);
  font-size: clamp(10px, 1.25vw, 15px);
}
.page-home .promotion.is-active {
  --line-x:scaleX(1);
  --line-y:scaleY(1);
}
.page-home .promotion .container {
  height: 100%;
}
.page-home .promotion-detail {
  position: relative;
  overflow: hidden;
}
.page-home .promotion-achieve .size-40 {
  margin-left: 0.1em;
  margin-right: 0.1em;
}
.page-home .promotion-list-item {
  margin-bottom: 1.8em;
}
.page-home .promotion-list-item:last-of-type {
  margin-bottom: 0;
}
.page-home .promotion-list-item a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  line-height: 1.2;
}
.page-home .promotion-list-item a .-jp {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5em;
  margin-bottom: 0.25em;
}
.page-home .promotion-list-item a .-en {
  color: #808cbf;
  margin-right: 0.5em;
  font-weight: 400;
}
.page-home .promotion-list-item a:hover .-btn {
  background-color: var(--pink);
}
.page-home .promotion-list-item .-btn {
  position: relative;
  background-color: var(--primary);
  width: 1.4117647059em;
  aspect-ratio: 1/1;
  border-radius: 50%;
  -webkit-transition: background-color 0.3s var(--power4-out);
  transition: background-color 0.3s var(--power4-out);
}
.page-home .promotion-list-item .-btn svg {
  opacity: 0;
}
.page-home .promotion-list-2 {
  position: absolute;
  opacity: 0;
  top: 0;
}
@media print, screen and (max-width: 960px) {
  .page-home .promotion {
    --section-h: calc(591vw / 3.9);
    font-size: 3.5897435897vw;
  }
  .page-home .promotion-head {
    background-color: var(--primary);
    --size-20:calc(14vw / 3.9);
    color: #fff;
    padding: 1em;
    font-size: 3.5897435897vw;
    border-radius: 3.6428571429em 0 0 3.6428571429em;
    position: absolute;
    right: 0;
    top: 0;
    --size-50:calc(20vw / 3.9);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding-left: 2.8em;
    font-weight: 700;
    opacity: 0;
  }
  .page-home .promotion-head .gotham {
    font-weight: 400;
  }
  .page-home .promotion-sub {
    opacity: 1;
    text-align: right;
  }
  .page-home .promotion-achieve {
    position: absolute;
    left: 0;
    top: 20.1em;
    line-height: 1.2;
    --achieve-line:0;
    --size-18:calc(13vw / 3.9);
    --size-40: calc(22vw / 3.9);
  }
  .page-home .promotion-achieve-1, .page-home .promotion-achieve-2 {
    display: grid;
    opacity: 0;
    -webkit-transform: translateX(-50px);
            transform: translateX(-50px);
    margin-bottom: 1.5em;
    padding-left: 1.5em;
    position: relative;
    padding-bottom: 0.5em;
  }
  .page-home .promotion-achieve-1 > span:last-of-type, .page-home .promotion-achieve-2 > span:last-of-type {
    padding-left: 2em;
  }
  .page-home .promotion-achieve-1::before, .page-home .promotion-achieve-2::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #12235f;
    bottom: 0;
    -webkit-transform: scale(var(--achieve-line));
            transform: scale(var(--achieve-line));
    -webkit-transition: -webkit-transform 0.3s;
    transition: -webkit-transform 0.3s;
    transition: transform 0.3s;
    transition: transform 0.3s, -webkit-transform 0.3s;
    -webkit-transform-origin: left;
            transform-origin: left;
  }
  .page-home .promotion-detail {
    position: absolute;
    right: 0;
    top: 10em;
  }
  .page-home .promotion-list {
    font-size: 3.5897435897vw;
    --size-17: calc(14vw / 3.9);
  }
  .page-home .promotion-list-item {
    opacity: 0;
    -webkit-transform: translateY(50px);
            transform: translateY(50px);
    margin-bottom: 1.5em;
    text-align: right;
  }
  .page-home .promotion-list-item a {
    position: relative;
    padding-right: 1.5em;
  }
  .page-home .promotion-list-item a .-jp {
    line-height: 1.3;
  }
  .page-home .promotion-list-item a .-btn {
    position: absolute;
    right: 0;
    top: 50%;
    -webkit-transform: translate(50%, -50%);
            transform: translate(50%, -50%);
  }
  .page-home .promotion-list-item a .-en {
    margin-right: 0;
  }
  .page-home .promotion .btn-achieve {
    position: absolute;
    left: 1em;
    top: 26.2em;
    width: 11em;
    --btn-bg:var(--primary);
    font-size: 4.1025641026vw;
    --btn-w:calc(176em / 16);
    --btn-h:calc(42em / 16);
    --btn-size:calc(16vw / 3.9);
  }
  .page-home .promotion .btn-achieve .btn {
    width: var(--btn-w);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 0.5em;
    width: 100%;
    min-height: var(--btn-h);
  }
}
@media print, screen and (min-width: 961px) {
  .page-home .promotion {
    --section-h: calc(1359% / 12);
    --size-17:clamp(10px, calc(16vw / 12), 16px);
    font-size: clamp(10px, 1.25vw, 15px);
    --container-pad: calc(50% / 12);
  }
  .page-home .promotion-text-pin {
    position: absolute;
    top: 56.6%;
    left: 42.6%;
  }
  .page-home .promotion .container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
  .page-home .promotion-wrap {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
  }
  .page-home .promotion-row {
    width: 54.1666666667%;
    margin-left: auto;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    padding-bottom: 2.5%;
  }
  .page-home .promotion-row #promotionCont {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
  }
  .page-home .promotion-sticky {
    position: sticky;
    width: 100%;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    top: clamp(342px, 45.7%, 402px);
    z-index: 5;
    height: clamp(214px, 21%, 274px);
  }
  .page-home .promotion-head {
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: 16.4em;
  }
  .page-home .promotion-head .hide-sp {
    margin-top: auto;
  }
  .page-home .promotion-title {
    opacity: 0;
    -webkit-transform: translateY(50%);
            transform: translateY(50%);
  }
  .page-home .promotion-sub {
    opacity: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    gap: 0.5em;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding-right: 1em;
  }
  .page-home .promotion-sub::after {
    content: "";
    display: block;
    width: 2.1818181818em;
    aspect-ratio: 1/1;
    background-color: var(--pink);
    border-radius: 50%;
  }
  .page-home .promotion-achieve {
    line-height: 1.2;
    position: relative;
    display: grid;
    margin-top: auto;
  }
  .page-home .promotion-achieve .-line {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: var(--color-def);
    -webkit-transform: translateX(0);
            transform: translateX(0);
    -webkit-transform-origin: left;
            transform-origin: left;
  }
  .page-home .promotion-achieve-1, .page-home .promotion-achieve-2 {
    grid-column: 1/2;
    grid-row: 1/2;
    opacity: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 0.5em;
    -webkit-box-align: baseline;
        -ms-flex-align: baseline;
            align-items: baseline;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .page-home .promotion-achieve .-link {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 0.2em;
    font-size: clamp(10px, 1.5vw, 18px);
    -webkit-box-align: baseline;
        -ms-flex-align: baseline;
            align-items: baseline;
  }
  .page-home .promotion-achieve .-link-arrow {
    display: none;
    width: 2em;
    height: 1px;
    background-color: var(--primary);
    position: relative;
  }
  .page-home .promotion-achieve .-link-arrow::before {
    content: "";
    width: 0.6em;
    position: absolute;
    right: 0;
    bottom: 0;
    height: 1px;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    -webkit-transform-origin: right bottom;
            transform-origin: right bottom;
    background-color: var(--primary);
  }
  .page-home .promotion .btn-achieve {
    position: absolute;
    display: none;
  }
  .page-home .promotion-detail {
    padding-left: 1em;
    position: relative;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    margin-left: auto;
    -ms-flex-preferred-size: 41.2307692308%;
        flex-basis: 41.2307692308%;
  }
}
.page-home .lifestyle {
  color: var(--primary);
  --size-18:clamp(10px,calc(17vw / 12), 17px);
  --size-20:clamp(10px,calc(18vw / 12), 18px);
  --size-30:clamp(10px,calc(28vw / 12), 28px);
  --size-40:clamp(10px,calc(38vw / 12), 38px);
  --size-50:clamp(10px,calc(48vw / 12), 48px);
  font-size: clamp(10px, 1.25vw, 15px);
  position: relative;
  --line-x:scaleX(0);
  --line-y:scaleY(0);
}
.page-home .lifestyle.is-active {
  --line-x:scaleX(1);
  --line-y:scaleY(1);
}
.page-home .lifestyle .container {
  height: 100%;
}
.page-home .lifestyle-detail {
  position: relative;
  overflow: hidden;
}
.page-home .lifestyle-list-item {
  margin-bottom: 1em;
}
.page-home .lifestyle-list-item a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  line-height: 1.2;
}
.page-home .lifestyle-list-item a .-jp {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5em;
  margin-bottom: 0.25em;
}
.page-home .lifestyle-list-item a .-en {
  color: #808cbf;
  font-style: italic;
  margin-right: 0.5em;
  font-weight: 400;
}
.page-home .lifestyle-list-item a:hover .-btn {
  background-color: var(--yellow);
}
.page-home .lifestyle-list-item .-btn {
  position: relative;
  background-color: var(--primary);
  width: 1.4117647059em;
  aspect-ratio: 1/1;
  border-radius: 50%;
  -webkit-transition: background-color 0.3s var(--power4-out);
  transition: background-color 0.3s var(--power4-out);
}
.page-home .lifestyle-list-item .-btn svg {
  opacity: 0;
}
.page-home .lifestyle-list-2 {
  position: absolute;
  opacity: 0;
  top: 0;
}
@media print, screen and (max-width: 960px) {
  .page-home .lifestyle {
    --section-h: calc(730vw / 3.9);
    font-size: 3.5897435897vw;
  }
  .page-home .lifestyle-head {
    background-color: var(--primary);
    --size-20:calc(14vw / 3.9);
    color: #fff;
    padding: 1em;
    font-size: 3.5897435897vw;
    border-radius: 3.6428571429em 0 0 3.6428571429em;
    position: absolute;
    right: 0;
    top: 0;
    --size-50:calc(20vw / 3.9);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding-left: 2.8em;
    font-weight: 700;
    opacity: 0;
  }
  .page-home .lifestyle-head .gotham {
    font-weight: 400;
  }
  .page-home .lifestyle-sub {
    opacity: 1;
    text-align: right;
  }
  .page-home .lifestyle-detail {
    position: absolute;
    right: 0;
    top: 35vw;
  }
  .page-home .lifestyle-list {
    font-size: 3.5897435897vw;
    --size-17: calc(14vw / 3.9);
  }
  .page-home .lifestyle-list-item {
    opacity: 0;
    -webkit-transform: translateY(50px);
            transform: translateY(50px);
    margin-bottom: 1.5em;
    text-align: right;
  }
  .page-home .lifestyle-list-item:last-of-type {
    margin-top: 2.9em;
  }
  .page-home .lifestyle-list-item a {
    position: relative;
    padding-right: 1.5em;
  }
  .page-home .lifestyle-list-item a .-jp {
    line-height: 1.3;
  }
  .page-home .lifestyle-list-item a .-btn {
    position: absolute;
    right: 0;
    top: 50%;
    -webkit-transform: translate(50%, -50%);
            transform: translate(50%, -50%);
  }
  .page-home .lifestyle-list-item a .-en {
    margin-right: 0;
  }
  .page-home .lifestyle .btn-achieve {
    position: absolute;
    left: 1em;
    top: 30.5em;
    width: 11em;
    --btn-bg:var(--primary);
    font-size: 4.1025641026vw;
    --btn-w:calc(176em / 16);
    --btn-h:calc(42em / 16);
    --btn-size:calc(16vw / 3.9);
  }
  .page-home .lifestyle .btn-achieve .btn {
    width: var(--btn-w);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 0.5em;
    width: 100%;
    min-height: var(--btn-h);
  }
}
@media print, screen and (min-width: 961px) {
  .page-home .lifestyle {
    --section-h: calc(1482% / 12);
    --size-17:clamp(10px, calc(16vw / 12), 16px);
    --container-pad: calc(50% / 12);
  }
  .page-home .lifestyle-text-pin {
    position: absolute;
    top: 75.8%;
    left: 35.6%;
  }
  .page-home .lifestyle .container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
  .page-home .lifestyle-wrap {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
  }
  .page-home .lifestyle-row {
    width: 54.1666666667%;
    margin-left: auto;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .page-home .lifestyle-row #lifestyleCont {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
  }
  .page-home .lifestyle-sticky {
    position: sticky;
    width: 100%;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    top: clamp(440px, 58.1%, 511px);
    z-index: 5;
  }
  .page-home .lifestyle-head {
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .page-home .lifestyle-title {
    opacity: 0;
    -webkit-transform: translateY(50%);
            transform: translateY(50%);
  }
  .page-home .lifestyle-sub {
    opacity: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    gap: 0.5em;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding-right: 1em;
  }
  .page-home .lifestyle-sub::after {
    content: "";
    display: block;
    width: 2.1818181818em;
    aspect-ratio: 1/1;
    background-color: var(--yellow);
    border-radius: 50%;
  }
  .page-home .lifestyle .btn-achieve {
    position: absolute;
    display: none;
  }
  .page-home .lifestyle-detail {
    padding-left: 1em;
    position: relative;
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
  .page-home .lifestyle-list-item:last-of-type {
    margin-top: 2.9em;
  }
}
.page-home .about {
  position: relative;
  --aboutlogo-op:0;
  --aboutlogo-scale:scale(0);
}
.page-home .about.is-active {
  --aboutlogo-op:1;
  --aboutlogo-scale:scale(1);
}
.page-home .about-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.page-home .about-text {
  -ms-flex-preferred-size: 590px;
      flex-basis: 590px;
}
.page-home .about-head {
  margin-bottom: 2em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 2em 1em;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.page-home .about-logo {
  opacity: var(--aboutlogo-op);
  -webkit-transform: var(--aboutlogo-scale);
          transform: var(--aboutlogo-scale);
  -webkit-transition: 0.5s var(--power4-out);
  transition: 0.5s var(--power4-out);
}
.page-home .about-btns {
  -ms-flex-preferred-size: 14.375em;
      flex-basis: 14.375em;
  position: relative;
  margin-left: auto;
}
.page-home .about-btns-wrap .animate-btn:nth-of-type(n + 2) {
  margin-top: 1.5em;
}
.page-home .about-btn1, .page-home .about-btn2 {
  opacity: 0;
}
.page-home .about-title {
  margin: 0.05em 0 0.5em;
}
.page-home .about-desc {
  color: var(--primary);
}
@media print, screen and (max-width: 960px) {
  .page-home .about {
    font-size: 3.5897435897vw;
    --section-h: calc(700vw / 3.9);
  }
  .page-home .about-logo {
    width: 40%;
    margin-bottom: 1em;
  }
  .page-home .about-desc {
    margin: 1.5em 0;
  }
  .page-home .about-text {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
  }
  .page-home .about-btns {
    font-size: 4.1025641026vw;
    --btn-w:calc(353em / 16);
    --btn-size: calc(16vw / 3.9);
    text-align: center;
    display: grid;
    gap: 1.3em;
    padding: 1em 0;
    --btn-h:calc(39.3em / 15);
  }
  .page-home .about-btns .animate-btn {
    width: 100%;
    display: block;
  }
  .page-home .about-btns .animate-btn:nth-of-type(n+2) {
    margin: 0;
  }
  .page-home .about-btns .animate-btn-file {
    top: 0;
    left: 0;
    right: 0;
    -webkit-transform: none;
            transform: none;
  }
  .page-home .about-btns .animate-btn-file svg {
    min-width: 0;
    max-width: none;
  }
  .page-home .about-btns .animate-btn-text {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}
@media print, screen and (min-width: 961px) {
  .page-home .about {
    --section-h:calc(750% / 12);
    --size-18:clamp(10px,calc(17vw / 12), 17px);
    --size-20:clamp(10px,calc(18vw / 12), 18px);
    --size-30:clamp(10px,calc(28vw / 12), 28px);
    --size-40:clamp(10px,calc(38vw / 12), 38px);
    --size-50:clamp(10px,calc(48vw / 12), 48px);
    font-size: clamp(10px, 1.25vw, 15px);
    --container-pad: calc(50% / 12);
  }
  .page-home .about-wrap {
    top: 0;
    width: 100%;
    left: 0;
  }
  .page-home .about-logo {
    margin-bottom: 1.25em;
  }
  .page-home .about-row {
    padding-top: 25%;
    padding-bottom: 8.3333333333%;
  }
  .page-home .about-btns {
    width: 230px;
  }
  .page-home .about-head {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}

.animesection {
  position: relative;
  z-index: 10;
  width: 100%;
  height: 150vh;
  opacity: 0;
  display: none;
}

.column {
  position: relative;
  --column-title-mb: 0;
}
.column-head {
  margin-bottom: 1.875em;
}
.column-wrap {
  margin-bottom: clamp(2em, 17.4358974359vw, 96px);
}
.column-title {
  margin-bottom: var(--column-title-mb);
  border-bottom: 1px var(--purple) solid;
  padding-bottom: 0.25em;
  margin-bottom: 0.25em;
}
.column-meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.column-section {
  overflow-x: hidden;
  margin-bottom: clamp(2em, 7.1794871795vw, 40px);
}
.column-image {
  margin-bottom: 2.5em;
}
.column-image img {
  border-radius: 20px;
}
.column-list-item {
  line-height: 1.7333333333;
}
.column-list-item .thumb img {
  aspect-ratio: 1/1;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 5px;
}
.column-list-link {
  display: grid;
  grid-template-columns: 65px auto;
  gap: 1em;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.column-note {
  text-align: right;
  margin: 1em 0;
}
.column-pager {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1em;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  line-height: 1;
}
.column-pager-prev {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.5em;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.column-pager-next {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.5em;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-left: auto;
}
.column-pager-text {
  background-color: var(--primary);
  color: #fff;
  border-radius: 5px;
  padding: 0.25em 0.5em;
}
@media print, screen and (max-width: 960px) {
  .column {
    --page-title-mb: calc(50vw / 3.9);
    --acc-bg:var(--primary);
    --acc-color:#fff;
    --acc-text:"Open";
    --acc-arrow-filter:brightness(10);
    --acc-arrow: rotate(0deg);
  }
  .column.page-bg {
    background-position: center -6vw;
  }
  .column .page-title {
    height: 41.0256410256vw;
  }
  .column-wrap {
    padding-left: 3.8461538462vw;
    padding-right: 3.8461538462vw;
  }
  .column-aside {
    margin-bottom: 14.1025641026vw;
  }
  .column-aside-head {
    border-bottom: 1px var(--purple) solid;
    padding-bottom: 0.25em;
  }
  .column-aside-block {
    border-bottom: 1px var(--purple) solid;
    padding-bottom: 1.5em;
	padding-top: 4em;
  }
  .column-list {
    padding-left: 2.8205128205vw;
    padding-right: 2.8205128205vw;
  }
  .column-list-item {
    margin-top: 4.6153846154vw;
  }
  .column-list-link {
    grid-template-columns: auto 16.6666666667vw;
  }
  .column-list-link .thumb {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .column-list-text {
    -webkit-box-ordinal-group: 1;
        -ms-flex-order: 0;
            order: 0;
  }
  .column-list-more.active {
    --acc-bg:#fff;
    --acc-color:var(--primary);
    --acc-text:"Close";
    --acc-arrow-filter:brightness(1);
    --acc-arrow: rotate(180deg);
  }
  .column-list-toggle {
    height: 7.9487179487vw;
    margin-top: 1em;
  }
  .column-list-toggle .accordion-icon {
    pointer-events: none;
    background-color: var(--acc-bg);
    color: var(--acc-color);
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 1.5em;
    border-radius: 5px;
    width: 100%;
    border: 1px var(--primary) solid;
    top: initial;
    left: 0;
  }
  .column-list-toggle .accordion-icon::before {
    content: none;
  }
  .column-list-toggle .accordion-icon-text::before {
    content: var(--acc-text);
    font-size: 3.5897435897vw;
    font-family: var(--ff-en);
    font-weight: 400;
  }
  .column-list-toggle .accordion-icon-arrow {
    -webkit-filter: var(--acc-arrow-filter);
            filter: var(--acc-arrow-filter);
    -ms-flex-preferred-size: 4.358974359vw;
        flex-basis: 4.358974359vw;
    height: 1em;
    -webkit-transform: var(--acc-arrow);
            transform: var(--acc-arrow);
    -webkit-transition: 0.3s ease-in-out;
    transition: 0.3s ease-in-out;
  }
  .column-list-toggle .accordion-icon-arrow::before {
    content: "";
    background: url(../images/theme/accordion-arrow.svg) no-repeat;
    background-size: contain;
    background-position: center;
    width: 100%;
    height: 100%;
    display: block;
    -webkit-transition: -webkit-transform 0.3s ease-in-out;
    transition: -webkit-transform 0.3s ease-in-out;
    transition: transform 0.3s ease-in-out;
    transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
    -webkit-transform-origin: center;
            transform-origin: center;
  }
  .column-contents {
    font-size: 3.5897435897vw;
    --size-35:calc(20vw / 3.9);
    --size-28: calc(18vw / 3.9);
    --size-17: calc(16vw / 3.9);
    --size-14: calc(13vw / 3.9);
  }
}
@media print, screen and (min-width: 961px) {
  .column {
    --page-title-mb:250px;
  }
  .column-title {
    border-bottom-width: 2px;
  }
  .column-wrap {
    display: grid;
    grid-template-columns: clamp(240px, 33.3333333333%, 400px) clamp(300px, 50.3333333333%, 604px);
    gap: 0 8%;
    max-width: 1200px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .column-aside-head {
    background-color: var(--primary);
    color: #fff;
    display: inline-block;
    padding: 0 1em;
    border-radius: 5px;
  }
  .column-aside-block {
    position: sticky;
    top: calc(var(--header-h) + 1em);
    left: 0;
    border-bottom: 2px var(--purple) solid;
	margin-top: 10%;
    padding: 10% 3.75% 10% 3.75%;
    max-height: 100%;
    overflow-y: scroll;
  }
  .column-list-item {
    margin-top: 1.25em;
  }
  .column-list-toggle {
    display: none;
  }
  .column-list-hide {
    display: block;
    height: auto;
    pointer-events: initial;
  }
  .column-pager-prev {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 0.5em;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .column-pager-prev::before {
    content: "";
    width: 2.1875em;
    height: 2.1875em;
    background-color: var(--primary);
    border-radius: 50%;
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
  .column-pager-next {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 0.5em;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin-left: auto;
  }
  .column-pager-next::after {
    content: "";
    width: 2.1875em;
    height: 2.1875em;
    background-color: var(--primary);
    border-radius: 50%;
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
}

.fv-bottom-link.is-hidden {
  display: none !important;
}

/* ===== ローディング画面 ===== */
#loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: #1b2f68; /* 背景色 */
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 98; /* 最前面（ナビゲーションより上） */
  opacity: 1;
  transition: opacity 0.8s ease;
}

#loader.fade-out {
  opacity: 0;
  pointer-events: none;
}

#lottie-loader {
  width: 200px;  /* サイズはお好みで */
  height: 200px;
  transform: translateY(-1em);
}

@media print, screen and (max-width: 960px) {
  #lottie-loader {
    transform: translateY(-3em);
  }
}

@media print, screen and (min-width: 961px) {
/* ================================
   Y方向移動（translateY）
   ================================ */

/* 0.1〜2.0em（0.1刻み） */
.try-p01 { transform: translateY(-0.1em); }
.try-p02 { transform: translateY(-0.2em); }
.try-p03 { transform: translateY(-0.3em); }
.try-p04 { transform: translateY(-0.4em); }
.try-p05 { transform: translateY(-0.5em); }
.try-p06 { transform: translateY(-0.6em); }
.try-p07 { transform: translateY(-0.7em); }
.try-p08 { transform: translateY(-0.8em); }
.try-p09 { transform: translateY(-0.9em); }
.try-p10 { transform: translateY(-1.0em); }
.try-p11 { transform: translateY(-1.1em); }
.try-p12 { transform: translateY(-1.2em); }
.try-p13 { transform: translateY(-1.3em); }
.try-p14 { transform: translateY(-1.4em); }
.try-p15 { transform: translateY(-1.5em); }
.try-p16 { transform: translateY(-1.6em); }
.try-p17 { transform: translateY(-1.7em); }
.try-p18 { transform: translateY(-1.8em); }
.try-p19 { transform: translateY(-1.9em); }
.try-p20 { transform: translateY(-2.0em); }

.tryp01 { transform: translateY(0.1em); }
.tryp02 { transform: translateY(0.2em); }
.tryp03 { transform: translateY(0.3em); }
.tryp04 { transform: translateY(0.4em); }
.tryp05 { transform: translateY(0.5em); }
.tryp06 { transform: translateY(0.6em); }
.tryp07 { transform: translateY(0.7em); }
.tryp08 { transform: translateY(0.8em); }
.tryp09 { transform: translateY(0.9em); }
.tryp10 { transform: translateY(1.0em); }
.tryp11 { transform: translateY(1.1em); }
.tryp12 { transform: translateY(1.2em); }
.tryp13 { transform: translateY(1.3em); }
.tryp14 { transform: translateY(1.4em); }
.tryp15 { transform: translateY(1.5em); }
.tryp16 { transform: translateY(1.6em); }
.tryp17 { transform: translateY(1.7em); }
.tryp18 { transform: translateY(1.8em); }
.tryp19 { transform: translateY(1.9em); }
.tryp20 { transform: translateY(2.0em); }

/* 整数（3〜100em） */
.try-3 { transform: translateY(-3em); }
.try-4 { transform: translateY(-4em); }
.try-5 { transform: translateY(-5em); }
.try-6 { transform: translateY(-6em); }
.try-7 { transform: translateY(-7em); }
.try-8 { transform: translateY(-8em); }
.try-9 { transform: translateY(-9em); }
.try-10 { transform: translateY(-10em); }
.try-11 { transform: translateY(-11em); }
.try-12 { transform: translateY(-12em); }
.try-13 { transform: translateY(-13em); }
.try-14 { transform: translateY(-14em); }
.try-15 { transform: translateY(-15em); }
.try-16 { transform: translateY(-16em); }
.try-17 { transform: translateY(-17em); }
.try-18 { transform: translateY(-18em); }
.try-19 { transform: translateY(-19em); }
.try-20 { transform: translateY(-20em); }
.try-21 { transform: translateY(-21em); }
.try-22 { transform: translateY(-22em); }
.try-23 { transform: translateY(-23em); }
.try-24 { transform: translateY(-24em); }
.try-25 { transform: translateY(-25em); }
.try-26 { transform: translateY(-26em); }
.try-27 { transform: translateY(-27em); }
.try-28 { transform: translateY(-28em); }
.try-29 { transform: translateY(-29em); }
.try-30 { transform: translateY(-30em); }
.try-31 { transform: translateY(-31em); }
.try-32 { transform: translateY(-32em); }
.try-33 { transform: translateY(-33em); }
.try-34 { transform: translateY(-34em); }
.try-35 { transform: translateY(-35em); }
.try-36 { transform: translateY(-36em); }
.try-37 { transform: translateY(-37em); }
.try-38 { transform: translateY(-38em); }
.try-39 { transform: translateY(-39em); }
.try-40 { transform: translateY(-40em); }
.try-41 { transform: translateY(-41em); }
.try-42 { transform: translateY(-42em); }
.try-43 { transform: translateY(-43em); }
.try-44 { transform: translateY(-44em); }
.try-45 { transform: translateY(-45em); }
.try-46 { transform: translateY(-46em); }
.try-47 { transform: translateY(-47em); }
.try-48 { transform: translateY(-48em); }
.try-49 { transform: translateY(-49em); }
.try-50 { transform: translateY(-50em); }
.try-51 { transform: translateY(-51em); }
.try-52 { transform: translateY(-52em); }
.try-53 { transform: translateY(-53em); }
.try-54 { transform: translateY(-54em); }
.try-55 { transform: translateY(-55em); }
.try-56 { transform: translateY(-56em); }
.try-57 { transform: translateY(-57em); }
.try-58 { transform: translateY(-58em); }
.try-59 { transform: translateY(-59em); }
.try-60 { transform: translateY(-60em); }
.try-61 { transform: translateY(-61em); }
.try-62 { transform: translateY(-62em); }
.try-63 { transform: translateY(-63em); }
.try-64 { transform: translateY(-64em); }
.try-65 { transform: translateY(-65em); }
.try-66 { transform: translateY(-66em); }
.try-67 { transform: translateY(-67em); }
.try-68 { transform: translateY(-68em); }
.try-69 { transform: translateY(-69em); }
.try-70 { transform: translateY(-70em); }
.try-71 { transform: translateY(-71em); }
.try-72 { transform: translateY(-72em); }
.try-73 { transform: translateY(-73em); }
.try-74 { transform: translateY(-74em); }
.try-75 { transform: translateY(-75em); }
.try-76 { transform: translateY(-76em); }
.try-77 { transform: translateY(-77em); }
.try-78 { transform: translateY(-78em); }
.try-79 { transform: translateY(-79em); }
.try-80 { transform: translateY(-80em); }
.try-81 { transform: translateY(-81em); }
.try-82 { transform: translateY(-82em); }
.try-83 { transform: translateY(-83em); }
.try-84 { transform: translateY(-84em); }
.try-85 { transform: translateY(-85em); }
.try-86 { transform: translateY(-86em); }
.try-87 { transform: translateY(-87em); }
.try-88 { transform: translateY(-88em); }
.try-89 { transform: translateY(-89em); }
.try-90 { transform: translateY(-90em); }
.try-91 { transform: translateY(-91em); }
.try-92 { transform: translateY(-92em); }
.try-93 { transform: translateY(-93em); }
.try-94 { transform: translateY(-94em); }
.try-95 { transform: translateY(-95em); }
.try-96 { transform: translateY(-96em); }
.try-97 { transform: translateY(-97em); }
.try-98 { transform: translateY(-98em); }
.try-99 { transform: translateY(-99em); }
.try-100 { transform: translateY(-100em); }

.try3 { transform: translateY(3em); }
.try4 { transform: translateY(4em); }
.try5 { transform: translateY(5em); }
.try6 { transform: translateY(6em); }
.try7 { transform: translateY(7em); }
.try8 { transform: translateY(8em); }
.try9 { transform: translateY(9em); }
.try10 { transform: translateY(10em); }
.try11 { transform: translateY(11em); }
.try12 { transform: translateY(12em); }
.try13 { transform: translateY(13em); }
.try14 { transform: translateY(14em); }
.try15 { transform: translateY(15em); }
.try16 { transform: translateY(16em); }
.try17 { transform: translateY(17em); }
.try18 { transform: translateY(18em); }
.try19 { transform: translateY(19em); }
.try20 { transform: translateY(20em); }
.try21 { transform: translateY(21em); }
.try22 { transform: translateY(22em); }
.try23 { transform: translateY(23em); }
.try24 { transform: translateY(24em); }
.try25 { transform: translateY(25em); }
.try26 { transform: translateY(26em); }
.try27 { transform: translateY(27em); }
.try28 { transform: translateY(28em); }
.try29 { transform: translateY(29em); }
.try30 { transform: translateY(30em); }
.try31 { transform: translateY(31em); }
.try32 { transform: translateY(32em); }
.try33 { transform: translateY(33em); }
.try34 { transform: translateY(34em); }
.try35 { transform: translateY(35em); }
.try36 { transform: translateY(36em); }
.try37 { transform: translateY(37em); }
.try38 { transform: translateY(38em); }
.try39 { transform: translateY(39em); }
.try40 { transform: translateY(40em); }
.try41 { transform: translateY(41em); }
.try42 { transform: translateY(42em); }
.try43 { transform: translateY(43em); }
.try44 { transform: translateY(44em); }
.try45 { transform: translateY(45em); }
.try46 { transform: translateY(46em); }
.try47 { transform: translateY(47em); }
.try48 { transform: translateY(48em); }
.try49 { transform: translateY(49em); }
.try50 { transform: translateY(50em); }
.try51 { transform: translateY(51em); }
.try52 { transform: translateY(52em); }
.try53 { transform: translateY(53em); }
.try54 { transform: translateY(54em); }
.try55 { transform: translateY(55em); }
.try56 { transform: translateY(56em); }
.try57 { transform: translateY(57em); }
.try58 { transform: translateY(58em); }
.try59 { transform: translateY(59em); }
.try60 { transform: translateY(60em); }
.try61 { transform: translateY(61em); }
.try62 { transform: translateY(62em); }
.try63 { transform: translateY(63em); }
.try64 { transform: translateY(64em); }
.try65 { transform: translateY(65em); }
.try66 { transform: translateY(66em); }
.try67 { transform: translateY(67em); }
.try68 { transform: translateY(68em); }
.try69 { transform: translateY(69em); }
.try70 { transform: translateY(70em); }
.try71 { transform: translateY(71em); }
.try72 { transform: translateY(72em); }
.try73 { transform: translateY(73em); }
.try74 { transform: translateY(74em); }
.try75 { transform: translateY(75em); }
.try76 { transform: translateY(76em); }
.try77 { transform: translateY(77em); }
.try78 { transform: translateY(78em); }
.try79 { transform: translateY(79em); }
.try80 { transform: translateY(80em); }
.try81 { transform: translateY(81em); }
.try82 { transform: translateY(82em); }
.try83 { transform: translateY(83em); }
.try84 { transform: translateY(84em); }
.try85 { transform: translateY(85em); }
.try86 { transform: translateY(86em); }
.try87 { transform: translateY(87em); }
.try88 { transform: translateY(88em); }
.try89 { transform: translateY(89em); }
.try90 { transform: translateY(90em); }
.try91 { transform: translateY(91em); }
.try92 { transform: translateY(92em); }
.try93 { transform: translateY(93em); }
.try94 { transform: translateY(94em); }
.try95 { transform: translateY(95em); }
.try96 { transform: translateY(96em); }
.try97 { transform: translateY(97em); }
.try98 { transform: translateY(98em); }
.try99 { transform: translateY(99em); }
.try100 { transform: translateY(100em); }

/* ================================
   X方向移動（translateX）
   ================================ */

/* 0.1〜2.0em（0.1刻み） */
.trx-p01 { transform: translateX(-0.1em); }
.trx-p02 { transform: translateX(-0.2em); }
.trx-p03 { transform: translateX(-0.3em); }
.trx-p04 { transform: translateX(-0.4em); }
.trx-p05 { transform: translateX(-0.5em); }
.trx-p06 { transform: translateX(-0.6em); }
.trx-p07 { transform: translateX(-0.7em); }
.trx-p08 { transform: translateX(-0.8em); }
.trx-p09 { transform: translateX(-0.9em); }
.trx-p10 { transform: translateX(-1.0em); }
.trx-p11 { transform: translateX(-1.1em); }
.trx-p12 { transform: translateX(-1.2em); }
.trx-p13 { transform: translateX(-1.3em); }
.trx-p14 { transform: translateX(-1.4em); }
.trx-p15 { transform: translateX(-1.5em); }
.trx-p16 { transform: translateX(-1.6em); }
.trx-p17 { transform: translateX(-1.7em); }
.trx-p18 { transform: translateX(-1.8em); }
.trx-p19 { transform: translateX(-1.9em); }
.trx-p20 { transform: translateX(-2.0em); }

.trxp01 { transform: translateX(0.1em); }
.trxp02 { transform: translateX(0.2em); }
.trxp03 { transform: translateX(0.3em); }
.trxp04 { transform: translateX(0.4em); }
.trxp05 { transform: translateX(0.5em); }
.trxp06 { transform: translateX(0.6em); }
.trxp07 { transform: translateX(0.7em); }
.trxp08 { transform: translateX(0.8em); }
.trxp09 { transform: translateX(0.9em); }
.trxp10 { transform: translateX(1.0em); }
.trxp11 { transform: translateX(1.1em); }
.trxp12 { transform: translateX(1.2em); }
.trxp13 { transform: translateX(1.3em); }
.trxp14 { transform: translateX(1.4em); }
.trxp15 { transform: translateX(1.5em); }
.trxp16 { transform: translateX(1.6em); }
.trxp17 { transform: translateX(1.7em); }
.trxp18 { transform: translateX(1.8em); }
.trxp19 { transform: translateX(1.9em); }
.trxp20 { transform: translateX(2.0em); }

/* 整数（3〜20em） */
.trx-3 { transform: translateX(-3em); }
.trx-4 { transform: translateX(-4em); }
.trx-5 { transform: translateX(-5em); }
.trx-6 { transform: translateX(-6em); }
.trx-7 { transform: translateX(-7em); }
.trx-8 { transform: translateX(-8em); }
.trx-9 { transform: translateX(-9em); }
.trx-10 { transform: translateX(-10em); }
.trx-11 { transform: translateX(-11em); }
.trx-12 { transform: translateX(-12em); }
.trx-13 { transform: translateX(-13em); }
.trx-14 { transform: translateX(-14em); }
.trx-15 { transform: translateX(-15em); }
.trx-16 { transform: translateX(-16em); }
.trx-17 { transform: translateX(-17em); }
.trx-18 { transform: translateX(-18em); }
.trx-19 { transform: translateX(-19em); }
.trx-20 { transform: translateX(-20em); }

.trx3 { transform: translateX(3em); }
.trx4 { transform: translateX(4em); }
.trx5 { transform: translateX(5em); }
.trx6 { transform: translateX(6em); }
.trx7 { transform: translateX(7em); }
.trx8 { transform: translateX(8em); }
.trx9 { transform: translateX(9em); }
.trx10 { transform: translateX(10em); }
.trx11 { transform: translateX(11em); }
.trx12 { transform: translateX(12em); }
.trx13 { transform: translateX(13em); }
.trx14 { transform: translateX(14em); }
.trx15 { transform: translateX(15em); }
.trx16 { transform: translateX(16em); }
.trx17 { transform: translateX(17em); }
.trx18 { transform: translateX(18em); }
.trx19 { transform: translateX(19em); }
.trx20 { transform: translateX(20em); }

}

@media print, screen and (max-width: 960px) {
/* ================================
   Y方向移動（translateY）
   ================================ */

/* 0.1〜2.0em（0.1刻み） */
.try-p01s { transform: translateY(-0.1em); }
.try-p02s { transform: translateY(-0.2em); }
.try-p03s { transform: translateY(-0.3em); }
.try-p04s { transform: translateY(-0.4em); }
.try-p05s { transform: translateY(-0.5em); }
.try-p06s { transform: translateY(-0.6em); }
.try-p07s { transform: translateY(-0.7em); }
.try-p08s { transform: translateY(-0.8em); }
.try-p09s { transform: translateY(-0.9em); }
.try-p10s { transform: translateY(-1.0em); }
.try-p11s { transform: translateY(-1.1em); }
.try-p12s { transform: translateY(-1.2em); }
.try-p13s { transform: translateY(-1.3em); }
.try-p14s { transform: translateY(-1.4em); }
.try-p15s { transform: translateY(-1.5em); }
.try-p16s { transform: translateY(-1.6em); }
.try-p17s { transform: translateY(-1.7em); }
.try-p18s { transform: translateY(-1.8em); }
.try-p19s { transform: translateY(-1.9em); }
.try-p20s { transform: translateY(-2.0em); }

.tryp01s { transform: translateY(0.1em); }
.tryp02s { transform: translateY(0.2em); }
.tryp03s { transform: translateY(0.3em); }
.tryp04s { transform: translateY(0.4em); }
.tryp05s { transform: translateY(0.5em); }
.tryp06s { transform: translateY(0.6em); }
.tryp07s { transform: translateY(0.7em); }
.tryp08s { transform: translateY(0.8em); }
.tryp09s { transform: translateY(0.9em); }
.tryp10s { transform: translateY(1.0em); }
.tryp11s { transform: translateY(1.1em); }
.tryp12s { transform: translateY(1.2em); }
.tryp13s { transform: translateY(1.3em); }
.tryp14s { transform: translateY(1.4em); }
.tryp15s { transform: translateY(1.5em); }
.tryp16s { transform: translateY(1.6em); }
.tryp17s { transform: translateY(1.7em); }
.tryp18s { transform: translateY(1.8em); }
.tryp19s { transform: translateY(1.9em); }
.tryp20s { transform: translateY(2.0em); }

/* 整数（3〜20em） */
.try-3s { transform: translateY(-3em); }
.try-4s { transform: translateY(-4em); }
.try-5s { transform: translateY(-5em); }
.try-6s { transform: translateY(-6em); }
.try-7s { transform: translateY(-7em); }
.try-8s { transform: translateY(-8em); }
.try-9s { transform: translateY(-9em); }
.try-10s { transform: translateY(-10em); }
.try-11s { transform: translateY(-11em); }
.try-12s { transform: translateY(-12em); }
.try-13s { transform: translateY(-13em); }
.try-14s { transform: translateY(-14em); }
.try-15s { transform: translateY(-15em); }
.try-16s { transform: translateY(-16em); }
.try-17s { transform: translateY(-17em); }
.try-18s { transform: translateY(-18em); }
.try-19s { transform: translateY(-19em); }
.try-20s { transform: translateY(-20em); }
.try-21s { transform: translateY(-21em); }
.try-22s { transform: translateY(-22em); }
.try-23s { transform: translateY(-23em); }
.try-24s { transform: translateY(-24em); }
.try-25s { transform: translateY(-25em); }
.try-26s { transform: translateY(-26em); }
.try-27s { transform: translateY(-27em); }
.try-28s { transform: translateY(-28em); }
.try-29s { transform: translateY(-29em); }
.try-30s { transform: translateY(-30em); }
.try-31s { transform: translateY(-31em); }
.try-32s { transform: translateY(-32em); }
.try-33s { transform: translateY(-33em); }
.try-34s { transform: translateY(-34em); }
.try-35s { transform: translateY(-35em); }
.try-36s { transform: translateY(-36em); }
.try-37s { transform: translateY(-37em); }
.try-38s { transform: translateY(-38em); }
.try-39s { transform: translateY(-39em); }
.try-40s { transform: translateY(-40em); }
.try-41s { transform: translateY(-41em); }
.try-42s { transform: translateY(-42em); }
.try-43s { transform: translateY(-43em); }
.try-44s { transform: translateY(-44em); }
.try-45s { transform: translateY(-45em); }
.try-46s { transform: translateY(-46em); }
.try-47s { transform: translateY(-47em); }
.try-48s { transform: translateY(-48em); }
.try-49s { transform: translateY(-49em); }
.try-50s { transform: translateY(-50em); }
.try-51s { transform: translateY(-51em); }
.try-52s { transform: translateY(-52em); }
.try-53s { transform: translateY(-53em); }
.try-54s { transform: translateY(-54em); }
.try-55s { transform: translateY(-55em); }
.try-56s { transform: translateY(-56em); }
.try-57s { transform: translateY(-57em); }
.try-58s { transform: translateY(-58em); }
.try-59s { transform: translateY(-59em); }
.try-60s { transform: translateY(-60em); }
.try-61s { transform: translateY(-61em); }
.try-62s { transform: translateY(-62em); }
.try-63s { transform: translateY(-63em); }
.try-64s { transform: translateY(-64em); }
.try-65s { transform: translateY(-65em); }
.try-66s { transform: translateY(-66em); }
.try-67s { transform: translateY(-67em); }
.try-68s { transform: translateY(-68em); }
.try-69s { transform: translateY(-69em); }
.try-70s { transform: translateY(-70em); }
.try-71s { transform: translateY(-71em); }
.try-72s { transform: translateY(-72em); }
.try-73s { transform: translateY(-73em); }
.try-74s { transform: translateY(-74em); }
.try-75s { transform: translateY(-75em); }
.try-76s { transform: translateY(-76em); }
.try-77s { transform: translateY(-77em); }
.try-78s { transform: translateY(-78em); }
.try-79s { transform: translateY(-79em); }
.try-80s { transform: translateY(-80em); }
.try-81s { transform: translateY(-81em); }
.try-82s { transform: translateY(-82em); }
.try-83s { transform: translateY(-83em); }
.try-84s { transform: translateY(-84em); }
.try-85s { transform: translateY(-85em); }
.try-86s { transform: translateY(-86em); }
.try-87s { transform: translateY(-87em); }
.try-88s { transform: translateY(-88em); }
.try-89s { transform: translateY(-89em); }
.try-90s { transform: translateY(-90em); }
.try-91s { transform: translateY(-91em); }
.try-92s { transform: translateY(-92em); }
.try-93s { transform: translateY(-93em); }
.try-94s { transform: translateY(-94em); }
.try-95s { transform: translateY(-95em); }
.try-96s { transform: translateY(-96em); }
.try-97s { transform: translateY(-97em); }
.try-98s { transform: translateY(-98em); }
.try-99s { transform: translateY(-99em); }
.try-100s { transform: translateY(-100em); }

.try3s { transform: translateY(3em); }
.try4s { transform: translateY(4em); }
.try5s { transform: translateY(5em); }
.try6s { transform: translateY(6em); }
.try7s { transform: translateY(7em); }
.try8s { transform: translateY(8em); }
.try9s { transform: translateY(9em); }
.try10s { transform: translateY(10em); }
.try11s { transform: translateY(11em); }
.try12s { transform: translateY(12em); }
.try13s { transform: translateY(13em); }
.try14s { transform: translateY(14em); }
.try15s { transform: translateY(15em); }
.try16s { transform: translateY(16em); }
.try17s { transform: translateY(17em); }
.try18s { transform: translateY(18em); }
.try19s { transform: translateY(19em); }
.try20s { transform: translateY(20em); }
.try21s { transform: translateY(21em); }
.try22s { transform: translateY(22em); }
.try23s { transform: translateY(23em); }
.try24s { transform: translateY(24em); }
.try25s { transform: translateY(25em); }
.try26s { transform: translateY(26em); }
.try27s { transform: translateY(27em); }
.try28s { transform: translateY(28em); }
.try29s { transform: translateY(29em); }
.try30s { transform: translateY(30em); }
.try31s { transform: translateY(31em); }
.try32s { transform: translateY(32em); }
.try33s { transform: translateY(33em); }
.try34s { transform: translateY(34em); }
.try35s { transform: translateY(35em); }
.try36s { transform: translateY(36em); }
.try37s { transform: translateY(37em); }
.try38s { transform: translateY(38em); }
.try39s { transform: translateY(39em); }
.try40s { transform: translateY(40em); }
.try41s { transform: translateY(41em); }
.try42s { transform: translateY(42em); }
.try43s { transform: translateY(43em); }
.try44s { transform: translateY(44em); }
.try45s { transform: translateY(45em); }
.try46s { transform: translateY(46em); }
.try47s { transform: translateY(47em); }
.try48s { transform: translateY(48em); }
.try49s { transform: translateY(49em); }
.try50s { transform: translateY(50em); }
.try51s { transform: translateY(51em); }
.try52s { transform: translateY(52em); }
.try53s { transform: translateY(53em); }
.try54s { transform: translateY(54em); }
.try55s { transform: translateY(55em); }
.try56s { transform: translateY(56em); }
.try57s { transform: translateY(57em); }
.try58s { transform: translateY(58em); }
.try59s { transform: translateY(59em); }
.try60s { transform: translateY(60em); }
.try61s { transform: translateY(61em); }
.try62s { transform: translateY(62em); }
.try63s { transform: translateY(63em); }
.try64s { transform: translateY(64em); }
.try65s { transform: translateY(65em); }
.try66s { transform: translateY(66em); }
.try67s { transform: translateY(67em); }
.try68s { transform: translateY(68em); }
.try69s { transform: translateY(69em); }
.try70s { transform: translateY(70em); }
.try71s { transform: translateY(71em); }
.try72s { transform: translateY(72em); }
.try73s { transform: translateY(73em); }
.try74s { transform: translateY(74em); }
.try75s { transform: translateY(75em); }
.try76s { transform: translateY(76em); }
.try77s { transform: translateY(77em); }
.try78s { transform: translateY(78em); }
.try79s { transform: translateY(79em); }
.try80s { transform: translateY(80em); }
.try81s { transform: translateY(81em); }
.try82s { transform: translateY(82em); }
.try83s { transform: translateY(83em); }
.try84s { transform: translateY(84em); }
.try85s { transform: translateY(85em); }
.try86s { transform: translateY(86em); }
.try87s { transform: translateY(87em); }
.try88s { transform: translateY(88em); }
.try89s { transform: translateY(89em); }
.try90s { transform: translateY(90em); }
.try91s { transform: translateY(91em); }
.try92s { transform: translateY(92em); }
.try93s { transform: translateY(93em); }
.try94s { transform: translateY(94em); }
.try95s { transform: translateY(95em); }
.try96s { transform: translateY(96em); }
.try97s { transform: translateY(97em); }
.try98s { transform: translateY(98em); }
.try99s { transform: translateY(99em); }
.try100s { transform: translateY(100em); }

/* ================================
   X方向移動（translateX）
   ================================ */

/* 0.1〜2.0em（0.1刻み） */
.trx-p01s { transform: translateX(-0.1em); }
.trx-p02s { transform: translateX(-0.2em); }
.trx-p03s { transform: translateX(-0.3em); }
.trx-p04s { transform: translateX(-0.4em); }
.trx-p05s { transform: translateX(-0.5em); }
.trx-p06s { transform: translateX(-0.6em); }
.trx-p07s { transform: translateX(-0.7em); }
.trx-p08s { transform: translateX(-0.8em); }
.trx-p09s { transform: translateX(-0.9em); }
.trx-p10s { transform: translateX(-1.0em); }
.trx-p11s { transform: translateX(-1.1em); }
.trx-p12s { transform: translateX(-1.2em); }
.trx-p13s { transform: translateX(-1.3em); }
.trx-p14s { transform: translateX(-1.4em); }
.trx-p15s { transform: translateX(-1.5em); }
.trx-p16s { transform: translateX(-1.6em); }
.trx-p17s { transform: translateX(-1.7em); }
.trx-p18s { transform: translateX(-1.8em); }
.trx-p19s { transform: translateX(-1.9em); }
.trx-p20s { transform: translateX(-2.0em); }

.trxp01s { transform: translateX(0.1em); }
.trxp02s { transform: translateX(0.2em); }
.trxp03s { transform: translateX(0.3em); }
.trxp04s { transform: translateX(0.4em); }
.trxp05s { transform: translateX(0.5em); }
.trxp06s { transform: translateX(0.6em); }
.trxp07s { transform: translateX(0.7em); }
.trxp08s { transform: translateX(0.8em); }
.trxp09s { transform: translateX(0.9em); }
.trxp10s { transform: translateX(1.0em); }
.trxp11s { transform: translateX(1.1em); }
.trxp12s { transform: translateX(1.2em); }
.trxp13s { transform: translateX(1.3em); }
.trxp14s { transform: translateX(1.4em); }
.trxp15s { transform: translateX(1.5em); }
.trxp16s { transform: translateX(1.6em); }
.trxp17s { transform: translateX(1.7em); }
.trxp18s { transform: translateX(1.8em); }
.trxp19s { transform: translateX(1.9em); }
.trxp20s { transform: translateX(2.0em); }

/* 整数（3〜20em） */
.trx-3s { transform: translateX(-3em); }
.trx-4s { transform: translateX(-4em); }
.trx-5s { transform: translateX(-5em); }
.trx-6s { transform: translateX(-6em); }
.trx-7s { transform: translateX(-7em); }
.trx-8s { transform: translateX(-8em); }
.trx-9s { transform: translateX(-9em); }
.trx-10s { transform: translateX(-10em); }
.trx-11s { transform: translateX(-11em); }
.trx-12s { transform: translateX(-12em); }
.trx-13s { transform: translateX(-13em); }
.trx-14s { transform: translateX(-14em); }
.trx-15s { transform: translateX(-15em); }
.trx-16s { transform: translateX(-16em); }
.trx-17s { transform: translateX(-17em); }
.trx-18s { transform: translateX(-18em); }
.trx-19s { transform: translateX(-19em); }
.trx-20s { transform: translateX(-20em); }

.trx3s { transform: translateX(3em); }
.trx4s { transform: translateX(4em); }
.trx5s { transform: translateX(5em); }
.trx6s { transform: translateX(6em); }
.trx7s { transform: translateX(7em); }
.trx8s { transform: translateX(8em); }
.trx9s { transform: translateX(9em); }
.trx10s { transform: translateX(10em); }
.trx11s { transform: translateX(11em); }
.trx12s { transform: translateX(12em); }
.trx13s { transform: translateX(13em); }
.trx14s { transform: translateX(14em); }
.trx15s { transform: translateX(15em); }
.trx16s { transform: translateX(16em); }
.trx17s { transform: translateX(17em); }
.trx18s { transform: translateX(18em); }
.trx19s { transform: translateX(19em); }
.trx20s { transform: translateX(20em); }

.mt0s {
  margin-top: 0;
}

.mt05s {
  margin-top: 0.5em;
}

.mt1s {
  margin-top: 1em;
}

.mt15s {
  margin-top: 1.5em;
}

.mt2s {
  margin-top: 2em;
}

.mt25s {
  margin-top: 2.5em;
}

.mt3s {
  margin-top: 3em;
}

.mb0s {
  margin-bottom: 0;
}

.mb05s {
  margin-bottom: 0.5em;
}

.mb1s {
  margin-bottom: 1em;
}

.mb15s {
  margin-bottom: 1.5em;
}

.mb2s {
  margin-bottom: 2em;
}

.mb25s {
  margin-bottom: 2.5em;
}

.mb3s {
  margin-bottom: 3em;
}

.mr1s {
  margin-right: 1em;
}

.mr15s {
  margin-right: 1.5em;
}

.mr2s {
  margin-right: 2em;
}

.pt0s {
  padding-top: 0;
}

.pt05s {
  padding-top: 0.5em;
}

.pl1s {
  padding-left: 1em;
}

.pl2s {
  padding-left: 2em;
}

.pl3s {
  padding-left: 3em;
}

.pl4s {
  padding-left: 4em;
}

.pb0s {
  padding-bottom: 0;
}

.pb2s {
  padding-bottom: 2em;
}
	
}

@media print, screen and (min-width: 961px) {
  .mb-rt-1 {
    margin-bottom: -48em;
  }
  .mb-rt-2 {
    margin-bottom: -85em;
  }
  .mb-ds-1 {
    margin-bottom: -38em;
  }
  .mb-ds-2 {
    margin-bottom: -28em;
  }
  .mb-ds-3 {
    margin-bottom: -82em;
  }
  .mb-ls-1 {
    margin-bottom: -56em;
  }
  .mb-cp-1 {
    margin-bottom: -75em;
  }
  .mb-ta-1 {
    margin-bottom: -33em;
  }
  .mb-rc-1 {
    margin-bottom: -42em;
  }
  .signage-flow h4 {
    min-width: 50vw;
    transform: translateX(-8vw);
  }
  .signage-flow p {
    min-width: 50vw;
    transform: translateX(-8vw);
  }
  .signage-flow span {
	width: 2em;
  }
}

@media print, screen and (max-width: 960px) {
  .mt15s {
	margin-top: 1.5em;
  }
  .mb-rt-1 {
    margin-bottom: -8em;
  }
  .mb-rt-2 {
    margin-bottom: -16em;
  }
  .mb-ds-1 {
    margin-bottom: -8em;
  }
  .mb-ds-2 {
    margin-bottom: -6em;
  }
  .mb-ds-3 {
    margin-bottom: -17em;
  }
  .mb-ls-1 {
    margin-bottom: -28em;
  }
  .mb-cp-1 {
    margin-bottom: -62em;
  }
  .mb-rc-1 {
    margin-bottom: -15em;
  }
  .mb-ta-1 {
    margin-bottom: -5em;
  }
  .signage-flow span {
	width: auto;
	border-top: none;
  }
}

.dots-delete .flickity-page-dots {
  display: none;
}

.section.movisc {
  margin-top: 15em;
}

.tpl-4a.block.movisc {
  margin-bottom: 8em;
}

.tpl-6.block .movisc {
  padding-left: 3em;
}

@media print, screen and (max-width: 960px) {
  .section.movisc {
    margin-top: 5em;
  }
  .section.movisc .section-title {
    padding: 0 1em;
  }
  .block-title h3.movisc {
	margin-top: 4em;
  }
  .block-img .movisc {
	margin-bottom: 1em;
  }
  .tpl-4a.block.movisc {
	margin-bottom: 1em;
  }
  .tpl-6.block .movisc {
	padding-left: 0;
  }
}

/* お問い合わせフォームスタイル - Safariなどに最適化 */
.contact-form-container {
  max-width: 800px;
  margin: 0 auto;
  padding: 0;
}

.contact-form-intro {
  margin-bottom: 2em;
  text-align: center;
}

.form-group {
  margin-bottom: 1.5em;
}

.form-label {
  display: block;
  margin-bottom: 0.5em;
  font-weight: bold;
}

.required-mark {
  color: #e74c3c;
  margin-left: 0.3em;
}

.form-input,
.form-textarea {
  width: 100%;
  padding: 0.8em;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 16px;
  transition: border-color 0.3s;
  -webkit-appearance: none; /* Safari向け */
  appearance: none;
}

.form-input:focus,
.form-textarea:focus {
  border-color: #3498db;
  outline: none;
}

/* セレクト要素のスタイル改善 */
.select-wrapper {
  position: relative;
  display: block;
}

.form-select {
  width: 100%;
  padding: 0.8em;
  padding-right: 2.5em; /* 矢印アイコン用のスペース */
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 16px;
  transition: border-color 0.3s;
  -webkit-appearance: none; /* Safari向け */
  -moz-appearance: none;
  appearance: none;
  background-color: #fff; /* 背景色を明示 */
  cursor: pointer;
}

/* iOS向けの特別なパディング調整 */
@supports (-webkit-touch-callout: none) {
  .form-select {
    padding-left: 0.5em;
  }
}

.form-select:focus {
  border-color: #3498db;
  outline: none;
}

/* 矢印アイコンをCSSで実装 - より安定したクロスブラウザ対応 */
.select-wrapper::after {
  content: '';
  position: absolute;
  right: 12px;
  top: 50%;
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 6px solid #555;
  pointer-events: none;
  transform: translateY(-50%);
}

/* タップ時のハイライトを無効化 */
.form-select, .submit-button {
  -webkit-tap-highlight-color: rgba(0,0,0,0);
}

.submit-button {
  background-color: var(--green);
  color: white;
  border: none;
  padding: 1em 3em;
  font-size: 1em;
  border-radius: 50px;
  cursor: pointer;
  transition: background-color 0.3s;
  font-weight: bold;
  display: block;
  margin: 2em auto 0;
  -webkit-appearance: none; /* Safari向け */
  appearance: none;
}

.submit-button:hover {
  background-color: var(--pink);
}

@media screen and (max-width: 960px) {
  .contact-form-container {
    padding: 3em 0;
  }
  
  .submit-button {
    width: 100%;
    padding: 1em 1em;
	font-size: 1.2em;
  }
}

/* プライバシーポリシー同意セクションのスタイル */
.privacy-policy-section {
  margin: 2em 0;
  padding: 1.5em;
  background-color: #f8f8f8;
  border-radius: 4px;
  text-align: center;
}

.privacy-notice {
  margin-bottom: 1.5em;
  font-size: 14px;
  line-height: 1.6;
}

.privacy-notice a {
  color: #00a0e9;
  text-decoration: underline;
}

.privacy-checkbox-container {
  display: flex;
  justify-content: center;
  align-items: center; /* 垂直方向の中央揃え */
  margin-bottom: 0;
}

.privacy-checkbox {
  display: inline-flex;
  align-items: center;
  position: relative;
  padding: 4px 0; /* 上下のパディングを追加 */
}

/* 標準のチェックボックススタイル */
.privacy-checkbox input[type="checkbox"] {
  opacity: 0;
  position: absolute;
  width: 20px;
  height: 20px;
  z-index: 2;
  cursor: pointer;
  margin: 0;
}

/* カスタムチェックボックスのスタイル */
.privacy-checkbox label {
  cursor: pointer;
  font-weight: bold;
  padding-left: 30px;
  position: relative;
  display: flex; /* フレックスボックスを使用 */
  align-items: center; /* 垂直中央揃え */
  min-height: 24px; /* 最小の高さを設定 */
  margin: 0; /* マージンをリセット */
}

/* カスタムチェックボックスの見た目 */
.privacy-checkbox label:before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%; /* 上端ではなく中央に配置 */
  transform: translateY(-50%); /* 中央揃えのための調整 */
  width: 20px;
  height: 20px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: white;
  transition: all 0.2s ease;
}

/* チェック時のスタイル */
.privacy-checkbox input[type="checkbox"]:checked + label:before {
  background-color: #00a0e9;
  border-color: #00a0e9;
}

/* チェックマーク */
.privacy-checkbox input[type="checkbox"]:checked + label:after {
  content: '';
  position: absolute;
  left: 7px;
  top: 50%; /* 上端ではなく中央に配置 */
  transform: translateY(-70%) rotate(45deg); /* チェックマークの位置調整 */
  width: 6px;
  height: 12px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transition: all 0.2s ease;
}

/* Safari/Mac/iOS向けの特別なスタイル調整 */
@media screen and (-webkit-min-device-pixel-ratio: 0) {
  .privacy-checkbox input[type="checkbox"] {
    width: 22px;
    height: 22px;
  }
  
  .privacy-checkbox label:before {
    width: 22px;
    height: 22px;
  }
  
  .privacy-checkbox input[type="checkbox"]:checked + label:after {
    left: 8px;
    transform: translateY(-65%) rotate(45deg); /* チェックマークの位置微調整 */
    width: 7px;
    height: 13px;
  }
}

/* エラー表示用 */
.privacy-checkbox.error label {
  color: #e74c3c;
}

.privacy-checkbox.error label:before {
  border-color: #e74c3c;
  box-shadow: 0 0 0 1px #e74c3c;
}

/* モバイル向けの追加調整 */
@media screen and (max-width: 768px) {
  .privacy-policy-section {
    padding: 1.2em;
  }
  
  .privacy-checkbox input[type="checkbox"] {
    width: 24px;
    height: 24px;
  }
  
  .privacy-checkbox label {
    font-size: 14px;
    padding-left: 32px;
    min-height: 26px; /* モバイル向け高さ調整 */
  }
  
  .privacy-checkbox label:before {
    width: 24px;
    height: 24px;
  }
  
  .privacy-checkbox input[type="checkbox"]:checked + label:after {
    width: 7px;
    height: 14px;
  }
}

/* タップ領域を広げる */
@media (pointer: coarse) {
  .privacy-checkbox {
    padding: 8px 0;
  }
  
  .privacy-checkbox label {
    min-height: 30px; /* タッチデバイス向け高さ調整 */
  }
}

/* iOSデバイス向けの調整 */
@supports (-webkit-touch-callout: none) {
  .privacy-checkbox input[type="checkbox"] {
    /* iOSでのタップ領域を広げる */
    width: 30px;
    height: 30px;
    left: -5px;
    top: 50%;
    transform: translateY(-50%); /* 位置を中央に調整 */
  }
}

.link-border {
  text-decoration: underline;
  padding: 0 0.1em;
  color: var(--purple);
}