@charset "UTF-8";
/* reset */
html,
body,
div,
span,
applet,
object,
iframe,
input,
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,
button {
  border: 0 none;
  font-size: 100%;
  font-weight: normal;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}
ol,
ul {
  list-style: none outside none;
}
blockquote,
q {
  quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
  content: none;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section {
  display: block;
}
audio,
canvas,
video {
  display: inline-block;
}
html {
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
}
*,
:before,
:after {
  box-sizing: border-box;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
img {
  border: none;
  -ms-interpolation-mode: bicubic;
  vertical-align: bottom;
  width: 100%;
  height: auto;
}
button,
input,
textarea,
select {
  background: none;
  border: none;
  border-radius: 0;
}
button {
  cursor: pointer;
  -webkit-appearance: none;
}
input {
  -webkit-appearance: none;
}
input::-moz-focus-inner,
button::-moz-focus-inner {
  border: none;
}
textarea {
  -webkit-appearance: none;
}
a,
a.hover {
  text-decoration: none;
}
br {
  line-height: 1;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: inherit;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
:focus {
  outline: none;
}
:focus:not(:focus-visible) {
  outline: none;
}
:focus-visible {
  outline: none;
}
a[href]:focus,
button:focus,
input:focus,
select:focus,
textarea:focus,
[tabindex]:not([tabindex="-1"]):focus {
  outline: none;
}

/* base settings */
:root {
  /* font-size: 62.5%; */
  font-size: 2.6666666667vw;
  --s-2: calc(var(--s1) / 2);
  --s1: 0.8rem;
  --s2: calc(var(--s1) * 2);
  --s3: calc(var(--s1) * 3);
  --s4: calc(var(--s1) * 4);
  --s5: calc(var(--s1) * 5);
  --s6: calc(var(--s1) * 6);
  --s7: calc(var(--s1) * 7);
  --s8: calc(var(--s1) * 8);
  --s9: calc(var(--s1) * 9);
  --s10: calc(var(--s1) * 10);
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  padding: 0;
  background: #fff;
  color: #000;
  font-family: "Noto Sans JP", "Noto Sans", "游ゴシック体", "YuGothic", "YuGothic M", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "Open Sans", sans-serif;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1.5;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

.pc {
  display: none;
}
.sp {
  display: block;
}

.disabled-link {
  pointer-events: none;
  cursor: default;
  text-decoration: none;
}
.note-text {
  display: block;
  font-size: 1.2rem;
  margin-top: 1rem;
}
.r-bg {
  z-index: -1;
  position: absolute;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100lvh;
  overflow: hidden;
}

.r-bg-ly {
  width: 100%;
  height: 100vh;
  animation: hero-gradient-animation 10s linear infinite alternate;
  background-color: hsla(305, 0%, 0%, 1);
  background-image: radial-gradient(circle at var(--x-0) var(--y-0), var(--c-0) var(--s-start-0), transparent var(--s-end-0)),
    radial-gradient(circle at var(--x-1) var(--y-1), var(--c-1) var(--s-start-1), transparent var(--s-end-1)),
    radial-gradient(circle at var(--x-2) var(--y-2), var(--c-2) var(--s-start-2), transparent var(--s-end-2)),
    radial-gradient(circle at var(--x-3) var(--y-3), var(--c-3) var(--s-start-3), transparent var(--s-end-3)),
    radial-gradient(circle at var(--x-4) var(--y-4), var(--c-4) var(--s-start-4), transparent var(--s-end-4)),
    radial-gradient(circle at var(--x-5) var(--y-5), var(--c-5) var(--s-start-5), transparent var(--s-end-5)),
    radial-gradient(circle at var(--x-6) var(--y-6), var(--c-6) var(--s-start-6), transparent var(--s-end-6)),
    radial-gradient(circle at var(--x-7) var(--y-7), var(--c-7) var(--s-start-7), transparent var(--s-end-7)),
    radial-gradient(circle at var(--x-8) var(--y-8), var(--c-8) var(--s-start-8), transparent var(--s-end-8)),
    radial-gradient(circle at var(--x-9) var(--y-9), var(--c-9) var(--s-start-9), transparent var(--s-end-9));
  background-blend-mode: normal, normal, normal, normal, normal, normal, normal, normal, normal, normal;
}

@keyframes hero-gradient-animation {
  0% {
    --x-0: 93%;
    --s-start-0: 14.489998991212337%;
    --s-end-0: 72%;
    --c-0: hsla(212, 0%, 0%, 1);
    --y-0: 93%;
    --x-1: 26%;
    --y-1: 9%;
    --s-start-1: 0%;
    --s-end-1: 45%;
    --c-1: hsla(212, 0%, 0%, 1);
    --x-2: 15%;
    --c-2: hsla(257.14285714285717, 91%, 27%, 0.35);
    --y-2: 79%;
    --s-start-2: 2.9253667596993065%;
    --s-end-2: 22.388851682060018%;
    --c-3: hsla(212.47058823529412, 100%, 50%, 0.5);
    --s-start-3: 3.985353824694249%;
    --s-end-3: 47.580278608924694%;
    --x-3: 40%;
    --y-3: 104%;
    --s-start-4: 2.391200382592061%;
    --s-end-4: 29.307684556768592%;
    --x-4: 0%;
    --y-4: 60%;
    --c-4: hsla(224.44444444444443, 72%, 36%, 1);
    --y-5: 37%;
    --s-start-5: 2.9253667596993065%;
    --s-end-5: 22.388851682060018%;
    --x-5: 92%;
    --c-5: hsla(248.30769230769235, 52%, 24%, 1);
    --x-6: 101%;
    --y-6: 16%;
    --s-start-6: 13.173642363290591%;
    --s-end-6: 31.747336520355095%;
    --c-6: hsla(212.47058823529412, 100%, 50%, 0.19);
    --s-start-7: 1%;
    --s-end-7: 31%;
    --y-7: 13%;
    --x-7: 90%;
    --c-7: hsla(227.6470588235294, 98%, 53%, 1);
    --c-8: hsla(166.53061224489795, 71%, 60%, 0.32);
    --x-8: 104%;
    --y-8: 56%;
    --s-start-8: 3.985353824694249%;
    --s-end-8: 13.103042116379756%;
    --s-start-9: 18.597054544690312%;
    --s-end-9: 31%;
    --x-9: 97%;
    --c-9: hsla(219.2079207920792, 83%, 23%, 0.18);
    --y-9: 19%;
  }

  100% {
    --x-0: 7%;
    --s-start-0: 2.391200382592061%;
    --s-end-0: 43.902064173373226%;
    --c-0: hsla(306, 0%, 0%, 1);
    --y-0: 9%;
    --x-1: 96%;
    --y-1: 93%;
    --s-start-1: 9%;
    --s-end-1: 54.805582404585024%;
    --c-1: hsla(306, 0%, 0%, 1);
    --x-2: -2%;
    --c-2: hsla(166.53061224489795, 72%, 60%, 1);
    --y-2: 103%;
    --s-start-2: 3%;
    --s-end-2: 26.722813338714598%;
    --c-3: hsla(180, 100%, 50%, 0.26);
    --s-start-3: 2.391200382592061%;
    --s-end-3: 32.0689540200964%;
    --x-3: 33%;
    --y-3: 82%;
    --s-start-4: 4.40642490323111%;
    --s-end-4: 37.23528104246256%;
    --x-4: 37%;
    --y-4: 81%;
    --c-4: hsla(212.43243243243245, 88%, 26%, 0.58);
    --y-5: 99%;
    --s-start-5: 3%;
    --s-end-5: 32.537089799783296%;
    --x-5: 54%;
    --c-5: hsla(271.9148936170212, 98%, 53%, 0.31);
    --x-6: 104%;
    --y-6: 43%;
    --s-start-6: 6%;
    --s-end-6: 42.501105312974815%;
    --c-6: hsla(262.82352941176475, 100%, 50%, 0.15);
    --s-start-7: 5%;
    --s-end-7: 13.10107024898374%;
    --y-7: -16%;
    --x-7: 104%;
    --c-7: hsla(298.60465116279073, 36%, 23%, 1);
    --c-8: hsla(180, 100%, 50%, 0.11);
    --x-8: 97%;
    --y-8: 30%;
    --s-start-8: 2.391200382592061%;
    --s-end-8: 27.141813016850573%;
    --s-start-9: 5%;
    --s-end-9: 21.32164536610654%;
    --x-9: 78%;
    --c-9: hsla(219.2079207920792, 83%, 23%, 0.59);
    --y-9: 4%;
  }
}

@property --x-0 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 93%;
}

@property --s-start-0 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 14.489998991212337%;
}

@property --s-end-0 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 72%;
}

@property --c-0 {
  syntax: "<color>";
  inherits: false;
  initial-value: hsla(212, 0%, 0%, 1);
}

@property --y-0 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 93%;
}

@property --x-1 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 26%;
}

@property --y-1 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 9%;
}

@property --s-start-1 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 0%;
}

@property --s-end-1 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 45%;
}

@property --c-1 {
  syntax: "<color>";
  inherits: false;
  initial-value: hsla(212, 0%, 0%, 1);
}

@property --x-2 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 15%;
}

@property --c-2 {
  syntax: "<color>";
  inherits: false;
  initial-value: hsla(257.14285714285717, 91%, 27%, 0.35);
}

@property --y-2 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 79%;
}

@property --s-start-2 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 2.9253667596993065%;
}

@property --s-end-2 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 22.388851682060018%;
}

@property --c-3 {
  syntax: "<color>";
  inherits: false;
  initial-value: hsla(212.47058823529412, 100%, 50%, 0.5);
}

@property --s-start-3 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 3.985353824694249%;
}

@property --s-end-3 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 47.580278608924694%;
}

@property --x-3 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 40%;
}

@property --y-3 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 104%;
}

@property --s-start-4 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 2.391200382592061%;
}

@property --s-end-4 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 29.307684556768592%;
}

@property --x-4 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 0%;
}

@property --y-4 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 60%;
}

@property --c-4 {
  syntax: "<color>";
  inherits: false;
  initial-value: hsla(224.44444444444443, 72%, 36%, 1);
}

@property --y-5 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 37%;
}

@property --s-start-5 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 2.9253667596993065%;
}

@property --s-end-5 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 22.388851682060018%;
}

@property --x-5 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 92%;
}

@property --c-5 {
  syntax: "<color>";
  inherits: false;
  initial-value: hsla(248.30769230769235, 52%, 24%, 1);
}

@property --x-6 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 101%;
}

@property --y-6 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 16%;
}

@property --s-start-6 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 13.173642363290591%;
}

@property --s-end-6 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 31.747336520355095%;
}

@property --c-6 {
  syntax: "<color>";
  inherits: false;
  initial-value: hsla(212.47058823529412, 100%, 50%, 0.19);
}

@property --s-start-7 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 1%;
}

@property --s-end-7 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 31%;
}

@property --y-7 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 13%;
}

@property --x-7 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 90%;
}

@property --c-7 {
  syntax: "<color>";
  inherits: false;
  initial-value: hsla(227.6470588235294, 98%, 53%, 1);
}

@property --c-8 {
  syntax: "<color>";
  inherits: false;
  initial-value: hsla(166.53061224489795, 71%, 60%, 0.32);
}

@property --x-8 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 104%;
}

@property --y-8 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 56%;
}

@property --s-start-8 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 3.985353824694249%;
}

@property --s-end-8 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 13.103042116379756%;
}

@property --s-start-9 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 18.597054544690312%;
}

@property --s-end-9 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 31%;
}

@property --x-9 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 97%;
}

@property --c-9 {
  syntax: "<color>";
  inherits: false;
  initial-value: hsla(219.2079207920792, 83%, 23%, 0.18);
}

@property --y-9 {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 19%;
}

.your_css_selector_here {
  --x-0: 93%;
  --c-0: hsla(212, 0%, 0%, 1);
  --y-0: 93%;
  --x-1: 26%;
  --y-1: 9%;
  --c-1: hsla(212, 0%, 0%, 1);
  --x-2: 15%;
  --c-2: hsla(257.14285714285717, 91%, 27%, 0.35);
  --y-2: 79%;
  --c-3: hsla(212.47058823529412, 100%, 50%, 0.5);
  --x-3: 40%;
  --y-3: 104%;
  --x-4: 0%;
  --y-4: 60%;
  --c-4: hsla(224.44444444444443, 72%, 36%, 1);
  --y-5: 37%;
  --x-5: 92%;
  --c-5: hsla(248.30769230769235, 52%, 24%, 1);
  --x-6: 101%;
  --y-6: 16%;
  --c-6: hsla(212.47058823529412, 100%, 50%, 0.19);
  --y-7: 13%;
  --x-7: 90%;
  --c-7: hsla(227.6470588235294, 98%, 53%, 1);
  --c-8: hsla(166.53061224489795, 71%, 60%, 0.32);
  --x-8: 104%;
  --y-8: 56%;
  --x-9: 97%;
  --c-9: hsla(219.2079207920792, 83%, 23%, 0.18);
  --y-9: 19%;
  background-color: hsla(305, 0%, 0%, 1);
  background-image: radial-gradient(circle at var(--x-0) var(--y-0), var(--c-0) var(--s-start-0), transparent var(--s-end-0)),
    radial-gradient(circle at var(--x-1) var(--y-1), var(--c-1) var(--s-start-1), transparent var(--s-end-1)),
    radial-gradient(circle at var(--x-2) var(--y-2), var(--c-2) var(--s-start-2), transparent var(--s-end-2)),
    radial-gradient(circle at var(--x-3) var(--y-3), var(--c-3) var(--s-start-3), transparent var(--s-end-3)),
    radial-gradient(circle at var(--x-4) var(--y-4), var(--c-4) var(--s-start-4), transparent var(--s-end-4)),
    radial-gradient(circle at var(--x-5) var(--y-5), var(--c-5) var(--s-start-5), transparent var(--s-end-5)),
    radial-gradient(circle at var(--x-6) var(--y-6), var(--c-6) var(--s-start-6), transparent var(--s-end-6)),
    radial-gradient(circle at var(--x-7) var(--y-7), var(--c-7) var(--s-start-7), transparent var(--s-end-7)),
    radial-gradient(circle at var(--x-8) var(--y-8), var(--c-8) var(--s-start-8), transparent var(--s-end-8)),
    radial-gradient(circle at var(--x-9) var(--y-9), var(--c-9) var(--s-start-9), transparent var(--s-end-9));
  animation: hero-gradient-animation 10s linear infinite alternate;
  background-blend-mode: normal, normal, normal, normal, normal, normal, normal, normal, normal, normal;
}

/* header */
.no-scroll {
  overflow: hidden;
}
#header {
  position: fixed;
  width: 100%;
  height: 80px;
  z-index: 10;
  transition: background-color 0.3s ease, transform 0.3s ease;
}

.hide {
  transform: translateY(-100%);
}

#logo a {
  display: block;
  width: 86px;
  height: 22px;
  background-image: url(../images/logo_retool_wh.png);
  background-size: contain;
  background-repeat: no-repeat;
  text-indent: -9999px;
  overflow: hidden;
  white-space: nowrap;
}

#header.add-bg {
  background-color: rgba(255, 255, 255, 0.4);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
#header.add-bg #logo a {
  background-image: url(../images/logo_retool.png);
}

.drawer {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  padding: 2rem 3rem;
  z-index: 500;
}

/* Toggle */
.Toggle {
  position: relative;
  display: block;
  width: 40px;
  height: 40px;
  cursor: pointer;
  z-index: 1;
  background-color: rgba(0, 0, 0, 0.2);
  border-radius: 1.6rem;
}
.Toggle span {
  display: block;
  position: absolute;
  left: 50%;
  width: 20px;
  border-bottom: solid 2px #fff;
  -webkit-transition: 0.35s ease-in-out; /*変化の速度を指定*/
  -moz-transition: 0.35s ease-in-out; /*変化の速度を指定*/
  transition: 0.35s ease-in-out; /*変化の速度を指定*/
  transform: translateX(-50%);
  border-radius: 1px;
}

.Toggle span:nth-child(1) {
  top: 13px;
}

.Toggle span:nth-child(2) {
  top: 19px;
}

.Toggle span:nth-child(3) {
  top: 25px;
}

.Toggle.active span {
  left: 26%;
}
.Toggle.active span:nth-child(1) {
  top: 19px;
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

.Toggle.active span:nth-child(2) {
  opacity: 0;
}
.Toggle.active span:nth-child(3) {
  top: 19px;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  transform: rotate(45deg);
}

.menu {
  position: fixed;
  width: 100%;
  height: 100vh;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  /*出てくる秒数を変えられる*/
  transition: transform 0.5s ease-in-out;
  padding: 8rem 3rem 12rem;
  background-color: rgba(36, 36, 36, 1);
  -webkit-transform: translateX(100%);
  transform: translateX(100%);
  transition: 0.5s ease; /*滑らかに表示*/
  backdrop-filter: blur(6px);
  z-index: 100;
  overflow-y: scroll;
}

.menu ul li {
  border-bottom: 1px solid #ffffff26;
}

.menu ul li a {
  display: block;
  padding: 2.8rem 0;
  color: #fff;
  text-decoration: none;
  transition: all 0.3s;
}
.menu ul li a.btn-type1 {
  padding: 1.4rem 0;
}

.menu ul li.nav_in_menu ul {
  padding: 0 3.4rem;
}

.menu ul li.nav_in_menu ul li a {
  padding: 2.8rem 0;
  color: #fff;
}
.menu ul li.nav_in_menu > a {
  font-size: 1.2rem;
  color: #a2a2a2;
  padding-bottom: 0;
}
.menu ul li.nav_in_menu .sp li:first-of-type {
  border: none;
}
.menu ul li:last-of-type,
.menu ul li.nav_in_menu .sp li:last-of-type {
  border: none;
  border-color: #a2a2a2;
}

/*OPEN時の動き*/
.menu.open {
  -webkit-transform: translateX(0%);
  transform: translateX(0%);
}

/* main */
.mv-top {
  position: relative;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  background-color: rgba(253, 246, 174, 0);
}

.sample-box {
  position: absolute;
  width: 100%;
  height: 42rem;
  /* background-color: rgba(222, 215, 77, 0.2); */
  top: 50%;
  transform: translateY(-50%);
}

h1 {
  position: absolute;
  display: block;
  top: -1rem;
  font-size: 3.4rem;
  font-weight: 800;
  padding: 0 2.4rem;
  line-height: 1.6;
  color: #fff;
  background: linear-gradient(90deg, #ffffff 0%, #abcbf0 40%, #f0d6e6 80%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  z-index: 20;
  filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.6));
}

.mv-slide {
  position: absolute;
  width: 32rem;
  right: 0;
  bottom: 0;

  opacity: 0.7;
}

.swiper {
  width: 100%;
  height: 29rem;
}
.swiper-slide__item {
  height: inherit;
}
.swiper-slide__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* swiper scale */
.swiper-slide-active .swiper-slide__item,
.swiper-slide-duplicate-active .swiper-slide__item,
.swiper-slide-prev .swiper-slide__item {
  animation: zoomanime 8s linear 0s normal both;
}

@keyframes zoomanime {
  0% {
    transform: scale(1.2);
  }
  100% {
    transform: scale(1);
  }
}

.mv-textanimation {
  position: absolute;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  z-index: 10;
  /* top: 50%; */
  bottom: -12rem;
  right: 0;
  width: 100vw;
  /* -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%); */
  white-space: nowrap;
  overflow: hidden;
}

.mv-textanimation span {
  -webkit-box-align: center;
  -ms-flex-align: center;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  align-items: center;
  padding-right: 1rem;
  font-size: 18rem;
  font-family: "Noto Sans";
  font-feature-settings: "palt";
  font-weight: 900;
  color: #fff;
  -webkit-animation: loopAnimation linear infinite;
  animation: loopAnimation linear infinite;
  -webkit-animation-duration: 140s;
  animation-duration: 140s;
  opacity: 0.1;
}

@-webkit-keyframes loopAnimation {
  0% {
    -webkit-transform: translateX(0);
    transform: translate(0);
  }
  to {
    -webkit-transform: translateX(-100%);
    transform: translate(-100%);
  }
}
@keyframes loopAnimation {
  0% {
    -webkit-transform: translateX(0);
    transform: translate(0);
  }
  to {
    -webkit-transform: translateX(-100%);
    transform: translate(-100%);
  }
}

/* scroll */
.scr-bar-text {
  display: inline-block;
  position: absolute;
  bottom: 0;
  padding: 10px 10px 2rem;
  color: #fff;
  font-size: 1rem;
  line-height: 1;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  /* writing-mode: vertical-lr; */
  left: 50%;
  transform: translateX(-50%);
}

.scr-bar {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 40px;
}

.scr-bar::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 1px;
  height: 50px;
  background: #fff;
}

.scr-bar::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: -4px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #fff;
  animation: circlemove 3s ease-in-out infinite, cirlemovehide 3s ease-out infinite;
}

@keyframes circlemove {
  0% {
    bottom: 45px;
  }
  100% {
    bottom: 0px;
  }
}

@keyframes cirlemovehide {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  80% {
    opacity: 0.9;
  }
  100% {
    opacity: 0;
  }
}

.bg-box {
  width: 90%;
  margin: 4rem auto;
  padding: 4.6rem 2rem;
  border-radius: 30px;
  color: #fff;
  max-width: 1240px;
}

.sub-item {
  display: block;
  margin-bottom: 4rem;
}

.sub-text-item {
  color: #fff;
  margin-bottom: 3.8rem;
}
.__wh {
  background-color: rgba(255, 255, 255, 0.9);
  color: #000;
}
.__wh .sub-text-item {
  color: #454545;
}

.__blu {
  width: 100%;
  padding: 4.6rem 4rem;
  border-radius: 0;
  background-color: rgba(28, 48, 64, 0.7);
  color: #fff;
}
.__blu1 {
  background-color: rgba(60, 86, 107, 0.6);
}
.__blu2 {
  background-color: rgba(28, 48, 64, 0.7);
}

.__wh .__t-blu {
  background: linear-gradient(90deg, #7e8ab5 0%, #263392 40%, #7b83c5 80%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

h2 {
  font-family: "Poppins";
  font-size: 5rem;
  font-weight: bold;
  letter-spacing: -0.1rem;
  background: linear-gradient(90deg, #bde0fc 0%, #81c3cd 40%, #d3d9fe 80%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.sub-text-item h3 {
  font-size: 3.7rem;
  font-weight: 900;
  margin-bottom: 2rem;
  line-height: 1.2;
}

.sub-title {
  font-weight: 500;
  margin-bottom: 2rem;
}

.lead-text {
  letter-spacing: 0.02em;
  line-height: 1.8;
  font-weight: 300;
  margin-bottom: 3.6rem;
}

.sub-image {
  width: 100vw;
  margin: 0 calc(50% - 50vw);
}

.bg-box .img-title {
  text-align: center;
  margin-bottom: 1rem;
  color: #1a4895;
  font-weight: 500;
}
.btn-learnmore {
  display: flex;
  justify-content: left;
  margin-bottom: 3rem;
}

.btn-type1 {
  position: relative;
  display: inline-block;
  width: 68%;
  margin: 4rem auto;
  padding: 1rem 3rem;
  text-align: center;
  color: #fff;
  background-image: linear-gradient(45deg, rgb(26, 72, 214), rgb(8, 39, 91));
  border: 1px solid #fff;
  border-radius: 9999px;
  font-weight: 500;
  transition: all 0.3s ease-in;
  overflow: hidden;
  /* background-color: #1a4895; */
  transition: background-color 0.3s;
  z-index: 1;
}

.btn-learnmore a {
  position: relative;
  display: inline-block;
  width: 100%;
  padding: 1.5rem 2.4rem;
  /* background-color: #1a4895; */
  background-image: linear-gradient(45deg, rgb(26, 72, 214), rgb(8, 39, 91));
  color: #fff;
  line-height: 2;
  overflow: hidden;
  /* background-color: #1a4895; */
  transition: background-color 0.3s;
  z-index: 1;
}

.btn-learnmore span {
  position: absolute;
  display: inline-block;
  width: 30px;
  height: 30px;
  right: 2rem;
  /* background-color: #000; */
}
.btn-learnmore span::before {
  position: absolute;
  content: "";
  top: 50%;
  right: 1rem;
  width: 12px;
  height: 1px;
  background-color: #fff;
  margin-top: 0px;
  transform: translateY(-50%);
}

.btn-learnmore span::after {
  position: absolute;
  display: inline-block;
  content: "";
  top: 50%;
  right: 1rem;
  width: 6px;
  height: 6px;
  vertical-align: middle;
  margin-top: -3px;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
}

.btn-list {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  row-gap: 4rem;
}
.btn-type3 {
  width: 100%;
  display: flex;
  justify-content: center;
}

.btn-type-org {
  width: 80%;
  margin: 0 auto;
  max-width: 22rem;
}

.btn-type3 a,
.btn-type-org a {
  position: relative;
  width: 100%;
  display: inline-flex;
  align-items: center;
  /* padding: 5.4rem 2rem; */
  padding: 4rem 2rem;
  /* background-color: #184ea0; */
  background-image: linear-gradient(90deg, rgba(26, 72, 149, 1), rgba(26, 72, 149, 1));
  color: #fff;
  line-height: 1.5;
  gap: 2rem;
  justify-content: space-between;
  z-index: 0;
}

.btn-type-org a {
  padding: 1.4rem;
  background-image: linear-gradient(45deg, rgba(255, 111, 0, 1), rgba(189, 55, 14, 1));
  border-radius: 999px;
  border: 1px solid #fff;
  justify-content: center;
  transition: all 0.5s;
}
#service .btn-type-org {
  width: 86%;
}
#service .btn-type-org a {
  height: 50px;
  font-weight: 600;
}

.btn-type3 a span,
.btn-type-org a span {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 1px solid #fff;
  border-radius: 50%;
}
.btn-type3 a span::before,
.btn-type-org a span::before {
  position: absolute;
  content: "";
  width: 10px;
  height: 1px;
  background-color: #fff;
  left: 9px;
}
.btn-type3 a span::after,
.btn-type-org a span::after {
  content: "";
  width: 6px;
  height: 6px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: rotate(45deg);
  position: absolute;
  left: 13px;
}

.btn-type1:before,
.btn-type3 a::before,
.btn-learnmore a::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background-image: linear-gradient(45deg, rgba(255, 111, 0, 1), rgba(189, 55, 14, 1));
  transform-origin: 100% 50%;
  transform: scaleX(0);
  transition: transform ease 0.3s;
}
.btn-type1:hover:before,
.btn-type3 a:hover::before,
.btn-learnmore a:hover::before {
  transform-origin: 0% 50%;
  transform: scaleX(1);
}
.btn-type-org a:hover {
  opacity: 0.5;
}
.btn-learnmore.__center {
  justify-content: center;
}

/* contact dl btn */
.btn-item-col {
  width: 100%;
  display: flex;
  flex-direction: column;
  row-gap: 4rem;
  justify-content: space-between;
}

/* ロゴアニメーション */
.logo-slide {
  margin-bottom: 6rem;
}

.logo-slide h4 {
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 3rem;
  text-align: center;
  color: #fff;
}

section:last-of-type {
  margin-bottom: 0;
}

@keyframes infinity-scroll-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}
.loop-scr__wrap,
.loop-scr__list {
  display: flex;
  column-gap: 4rem;
}
.loop-scr__wrap {
  width: 100vw;
  margin: 0 calc(50% - 50vw);
  overflow: hidden;
}
.loop-scr__list {
  padding: 0;
}
.loop-scr--left {
  animation: infinity-scroll-left 40s infinite linear 0.5s both;
}
.loop-scr__item {
  width: calc(100vw / 3);
}
.loop-scr__item > img {
  width: 100%;
}

/* news */
.news-box {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.news-box .sub-text-item {
  margin-bottom: 0;
}

.news-list {
  margin-bottom: 3rem;
}

.article-item {
  position: relative;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  padding: 2rem 0;
}

.article-item a {
  display: flex;
  text-decoration: none;
  color: inherit;
  gap: 2rem;
  align-items: flex-start;
}

.article-item img {
  width: 9.8rem;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
  flex-shrink: 0;
}

.article-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.article-date {
  font-family: "Montserrat", sans-serif;
  font-size: 1.4rem;
  color: #fff;
  margin-bottom: 0.5rem;
  letter-spacing: 0.1em;
}

.article-title {
  font-size: 1.6rem;
  color: #fff;
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 2; /* 2行で省略表示 */
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.box-inner {
  width: 100%;
  margin: 0 auto;
}

/* btn-top */
.btn-top {
  position: fixed;
  width: 42px;
  height: 42px;
  right: 2rem;
  bottom: 2rem;
  background-color: rgba(158, 158, 158, 0.2);
  border-radius: 50%;
  cursor: pointer;
  z-index: 10;
}
.form-page .btn-top {
  right: 8rem;
}
.btn-top span {
  position: absolute;
  display: block;
  top: 18px;
  left: 16px;
  width: 10px;
  height: 10px;
  transform: rotate(45deg);
}
.btn-top span::before,
.btn-top span::after {
  position: absolute;
  content: "";
  width: 10px;
  height: 2px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  border-radius: 1px;
}
.btn-top span::after {
  width: 2px;
  height: 10px;
}

/* footer */
footer,
footer a,
.footer-copy {
  color: #fff;
}

footer {
  width: 100%;
  padding: 4rem 3rem;
  border-top: 1px solid rgba(0, 20, 44, 1);
  background-color: rgba(255, 255, 255, 0.08);
}

.footer-menu {
  display: flex;
  justify-content: space-between;
  margin-bottom: 2rem;
}

footer .nav_in_menu ul {
  margin-top: 3rem;
}

.footer-menu li {
  margin-bottom: 3rem;
}

footer #logo {
  margin-bottom: 6rem;
}
.footer-menu2 {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  font-size: 1.4rem;
  padding-top: 4rem;
}
.footer-menu2 ul li {
  margin-bottom: 3rem;
}
.footer-menu2 ul li:last-of-type {
  margin-bottom: 6rem;
}

footer .inner-menu a {
  position: relative;
  padding-left: 1em;
}
footer .inner-menu a span {
  position: absolute;
  content: "";
  width: 8px;
  height: 1px;
  background-color: #fff;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

/* Sub-page */
.sub-page .bg-box {
  padding: 3rem 2rem;
  margin: 0 auto 4rem;
}
.sub-page .bg-box:nth-last-of-type(2) {
  margin-bottom: 10rem;
}

.sub-page-title {
  width: 100%;
  padding: 8rem 3rem 3rem;
  border-radius: 30px;
  color: #fff;
  max-width: 1240px;
}

.sub-page-title h2 {
  color: #ffffff;
  background: none;
  -webkit-background-clip: initial;
  -webkit-text-fill-color: initial;
  line-height: 1.2;
  margin-bottom: 1rem;
}

.sub-page-title .sub-title {
  margin-bottom: 0;
}
/* BreadCrumbs */
.breadcrumb {
  font-size: 1.4rem;
  padding: 2rem;
  margin-bottom: 2rem;
}

.breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 1.3rem;
  justify-content: flex-end;
  font-weight: 400;
}

.breadcrumb li {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.6;
  margin-bottom: 0.6rem;
}

/* 各 li の後ろに | を表示（最後の li を除く） */
.breadcrumb li:not(:last-child)::after {
  content: "|";
  margin: 0 1.2rem;
  color: #fff;
}

/* 最後の li 内のテキストが長いときは改行して表示 */
.breadcrumb li:last-child span[aria-current="page"] {
  display: block;
  white-space: normal;
  word-break: break-word;
  color: #fff;
  opacity: 0.6;
}

.breadcrumb a {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: all 0.3s;
}

.breadcrumb a:hover {
  opacity: 0.5;
}

/* 年度メニュー */
.year-menu {
  display: flex;
  justify-content: flex-end;
  width: 100%;
  padding: 0 2rem;
}

.year-select-wrapper {
  position: relative;
  display: inline-block;
  margin-left: auto;
}

.year-select-wrapper select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding: 0 3.6rem;
  width: 160px;
  height: 46px;
  border: 1px solid #fff;
  border-radius: 9999px;
  background-color: transparent;
  color: #fff;
  font-size: 1.6rem;
  cursor: pointer;
}

.year-select-wrapper select option {
  background-color: #333; /* ← 背景色 */
  color: #fff; /* ← 文字色 */
}

.sub-page .article-list {
  margin-bottom: 3rem;
}

/* ▼ カスタム */
.year-select-wrapper::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 3.6rem;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 8px solid #fff;
  pointer-events: none;
}

.sub-page .article-title {
  display: block; /* flexを解除 */
  -webkit-line-clamp: unset;
  -webkit-box-orient: unset;
  overflow: visible;
  white-space: normal;
  line-height: 1.8;
  font-size: 1.4rem;
}

.pdf-info {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: 0.6rem; /* タイトルとPDFの間隔を調整 */
}

.pdf-label {
  font-family: "Montserrat", sans-serif;
  padding: 0 0.6rem;
  font-size: 1.2rem;
  color: #ff9500;
  border: 1px solid #ff9500;
  border-radius: 4px;
}

.pdf-size {
  font-size: 1.2rem;
  color: #fff;
}

/* pagination */
.pagination ul {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.2rem;
  padding: 0;
  list-style: none;
  font-family: "Montserrat", sans-serif;
  font-size: 1.6rem;
}

.pagination a,
.pagination .dots {
  color: #fff;
  text-decoration: none;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background-color 0.3s;
}

.pagination a:hover:not(.active) {
  background-color: rgba(255, 255, 255, 0.1);
}

.pagination .active {
  background: linear-gradient(45deg, #435be5, #0a23b0);
  color: #fff;
}

.pagination .dots {
  pointer-events: none;
}

/* ← → arrows */
.pagination .arrow {
  width: 34px;
  height: 34px;
  position: relative;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 横棒（-部分） */
.pagination .arrow::before {
  content: "";
  display: block;
  width: 16px;
  height: 1px;
  background-color: #fff;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* ← 部分（左矢印） */
.pagination .prev::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 10px;
  transform: translateY(-50%) rotate(45deg);
  width: 10px;
  height: 10px;
  border-left: 1px solid #fff;
  border-bottom: 1px solid #fff;
}

/* → 部分（右矢印） */
.pagination .next::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%) rotate(-45deg);
  width: 10px;
  height: 10px;
  border-right: 1px solid #fff;
  border-bottom: 1px solid #fff;
}

/* news-detail */
.sub-page .news-detail {
  padding: 4rem 2rem;
}
.news-detail-title {
  margin-bottom: 3rem;
}
.news-detail .article-date {
  display: block;
  font-size: 1.6rem;
  font-weight: 600;
  margin-bottom: 1.6rem;
  color: #000;
}
.news-detail .article-title {
  font-size: 1.8rem;
  color: #1a4895;
  font-weight: 600;
  line-height: 1.6;
}
.news-detail-content p {
  margin-bottom: 2rem;
  color: #000;
}
.news-detail-content p:last-of-type {
  margin-bottom: 3rem;
}
.news-detail-content img {
  width: 100%;
  margin-bottom: 2rem;
}
.btn-item {
  /* width: 28rem; */
  display: flex;
  margin: 0 auto 4rem;
  justify-content: space-between;
  column-gap: 1.4rem;
}
.btn-item .btn-type1 {
  width: 100%;
  max-width: 28rem;
  padding: 1.6rem 3rem;
  margin: 0 auto;
  box-shadow: 0 4px 14px 0 rgba(0, 0, 0, 0.2);
  z-index: 0;
}
.btn-pre {
  width: 100%;
  padding: 1.6rem 3rem;
  text-align: center;
  color: #fff;
  background-image: #353535;
  border: 1px solid #fff;
  border-radius: 9999px;
  font-weight: 500;
  background-color: #353535;
  box-shadow: 0 4px 14px 0 rgba(0, 0, 0, 0.2);
}

/* company-profile */
.menu-tab {
  width: 100%;
  padding: 0 2rem;
  margin: 0 auto 4rem;
  max-width: 68rem;
}
.menu-tab ul {
  display: flex;
  list-style: none;
  justify-content: center;
  gap: 1rem;
}

.menu-tab li {
  width: 30%;
}

.menu-tab li a {
  display: block;
  padding: 1rem 0 2rem;
  text-align: center;
  color: #fff;
  border-bottom: 4px solid #ffffff20;
  transition: all 0.3s ease;
}

.menu-tab li:hover a,
.menu-tab li.active a {
  border-bottom: 4px solid #ff9607;
  color: #ff9607;
}

.company-profile {
  max-width: 880px;
  margin: auto;
  padding: 0 1rem;
  font-size: 1.6rem;
  line-height: 1.8;
  color: #000;
}

.profile-block {
  margin-top: 3rem;
}

.profile-label {
  font-weight: 500;
  color: #2861ca;
  margin-bottom: 1.6rem;
}

.profile-item {
  border-bottom: 1px solid #9eb7ed;
  padding: 2rem 0;
}

.profile-item:last-of-type {
  border: none;
}

/* ========== 役員：テーブル表示 ========== */

.executives-table {
  width: 100%;
  border-collapse: collapse;
}

.executives-table th,
.executives-table td {
  padding: 1rem 0;
  vertical-align: top;
}

.executives-table th {
  text-align: left;
  width: 200px;
}

.executives-table td {
  text-align: left;
  white-space: nowrap;
}

.executives-table small {
  font-size: 0.85em;
  display: block;
  color: #666;
}

/* ========== グループ会社・リンクリスト ========== */

.group-list,
.business-list,
.certification-list {
  list-style: none;
  padding: 0;
  margin-top: 1rem;
}

.group-list li,
.business-list li,
.certification-list li {
  padding: 0.3rem 0;
  margin-bottom: 1.8rem;
}

.profile-item a {
  display: block;
  color: #0150c1;
  text-decoration: underline;
}

.business-list a:hover {
  text-decoration: underline;
}

.business-list li p {
  margin-left: 1em;
}

/* ========== MAP iframe ========== */
.map-frame {
  margin-top: 1rem;
  border: 1px solid #ccc;
  border-radius: 4px;
  overflow: hidden;
}
/* ========== PCスタイル（768px以上） ========== */

.greeting-box {
  display: flex;
  flex-direction: column;
  gap: 4rem;
  padding: 2rem;
}
.greeting-box h3 {
  font-size: 2.8rem;
  font-weight: 600;
  color: #2861ca;
}

/* 画像サイズ調整（SP時） */
.greeting-box .item-b img {
  width: 100%;
  height: auto;
  display: block;
}

.ceo-en {
  font-family: "Poppins", sans-serif;
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}
.ceo-jp {
  font-weight: 600;
  margin-bottom: 2rem;
}
.ceo-position {
  margin-bottom: 4rem;
}
.greeting-text {
  line-height: 1.8;
  margin-bottom: 1.4rem;
}

/* history */
.history-list {
  width: 100%;
  max-width: 88rem;
  margin: 0 auto;
}
.history-item {
  display: flex;
  justify-content: space-between;
}
.history-meta {
  display: flex;
  width: 30%;
  flex-direction: row;
  column-gap: 0.6rem;
  align-items: center;
  justify-content: right;
  margin-right: 1.4rem;
}
.year,
.month {
  font-size: 1.6rem;
  color: #2861ca;
  font-family: "Poppins", "Noto sans jp", sans-serif;
  text-align: right;
}
.year {
  font-weight: 400;
}
.month {
  width: 38%;
}
.month span {
  font-size: 1.4rem;
  font-weight: 500;
}
.history-text {
  position: relative;
  width: 70%;
  height: auto;
  font-size: 1.4rem;
  padding: 1.4rem;
}
.history-text::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0; /* ← ここが「下半分だけ」にするポイント */
  width: 1px;
  height: 100%;
  background-color: #2a65cc;
  transform: translateX(-50%);
}

.history-text.end-point::before {
  top: 50%;
  height: 50%;
}
.history-text.start-point::before {
  top: auto;
  bottom: 50%;
  height: 50%;
}

.dot-point {
  position: absolute;
  top: 50%;
  left: -5px;
  width: 10px;
  height: 10px;
  background-color: #2a65cc;
  border-radius: 50%;
  transform: translateY(-50%);
}

/* contact */
.contact-form {
  max-width: 56rem;
  margin: 0 auto;
  border-radius: 12px;
}

.form-block {
  display: flex;
  flex-direction: column;
  margin-bottom: 2.6rem;
}

label {
  display: flex;
  flex-direction: row;
  align-items: end;
  font-size: 1.8rem;
  font-weight: 500;
  margin-bottom: 1.6rem;
  color: #000;
}
.form-label {
  display: flex;
  flex-direction: row;
  align-items: end;
  font-size: 1.8rem;
  font-weight: 500;
  margin-bottom: 1.6rem;
  color: #000;
}

.required {
  background-color: #f44336;
  color: white;
  font-size: 1.4rem;
  padding: 0.2rem 1rem 0.3rem;
  margin-left: 0.4em;
  border-radius: 999px;
}

select {
  -webkit-appearance: none;
  appearance: none;
  position: relative;
}
.select-box {
  position: relative;
}
.select-box::after {
  position: absolute;
  content: "";
  width: 10px;
  height: 10px;
  top: 38%;
  right: 1.6rem;
  transform: rotate(-135deg);
  border-top: 2px solid #000;
  border-left: 2px solid #000;
  pointer-events: none;
}

input,
select,
textarea {
  width: 100%;
  font-size: 1.6rem;
  padding: 1.6rem;
  border: 1px solid #ccc;
  border-radius: 10px;
  background-color: white;
  transition: border 0.2s ease;
  resize: vertical;
}

input:focus,
/* select:focus, */
textarea:focus {
  border-color: #2a65cc;
  outline: none;
}

::placeholder {
  color: #aaa;
}

/* チェックボックス */
.checkbox-block {
  text-align: center;
}
.checkbox-block > .checkbox-text {
  display: block;
  margin-bottom: 1.6rem;
}
.checkbox-label {
  display: flex;
  align-items: center;
  cursor: pointer;
  justify-content: center;
}
.checkbox-label.haserror .checkbox-text {
  color: inherit;
}
.checkbox-text a {
  color: #0000ee;
  text-decoration: underline;
}
.checkbox-input {
  position: relative;
  width: 2rem;
  height: 2rem;
  margin-right: 1rem;
  cursor: pointer;
  appearance: none;
  border: 1px solid #adadad;
  border-radius: 0.4rem;
  background-color: #fff;
  transition: all 0.3s ease;
}
.checkbox-input:checked {
  background-color: #333;
  border-color: #333;
}
.checkbox-input:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 1rem;
  height: 0.6rem;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: translate(-50%, -60%) rotate(-45deg);
}
.checkbox-input:focus {
  outline: none;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
}
.checkbox-text {
  font-size: 1.6rem;
  color: #333;
}
.mwform-checkbox-field label,
.mwform-radio-field label {
  justify-content: center;
  align-items: center;
  column-gap: 0.3rem;
}
.mwform-checkbox-field-text {
  margin-top: -3px;
}

.title-area h3 {
  text-align: center;
  font-size: 2.4rem;
  font-weight: 600;
  margin-bottom: 2rem;
  padding-top: 2rem;
}

.title-area p {
  text-align: center;
  margin-bottom: 4rem;
}

.confirm-value {
  font-size: 1.6rem;
}

.inq_read {
  line-height: 1.8;
}

.mw_wp_form_preview .select-box::after,
.mw_wp_form_preview .checkbox-block {
  display: none;
}

/* service */
.service-mv {
  padding: 10rem 3rem 0;
  margin-bottom: 4rem;
}
.sub-word {
  display: inline-block;
  font-family: "Noto sans jp";
  font-size: 4rem;
  font-weight: 600;
  margin-left: 0.4rem;
}

.service-mv .sub-page-title {
  padding: 0;
  margin-bottom: 4rem;
}
.service-mv .sub-title {
  font-size: 1.8rem;
  margin-bottom: 4rem;
}
.sub-lead {
  font-size: 1.6rem;
  line-height: 2;
}
#service h1 {
  line-height: 1;
  margin-bottom: 2rem;
}
#service h3,
.list-type1 h4 {
  color: #1a4895;
  text-align: center;
}

.list-type1 li {
  margin-bottom: 5rem;
}
.list-type1 li:last-of-type {
  margin-bottom: 0;
}
.list-type1 img {
  padding: 0 2rem;
  margin-bottom: 2rem;
}
.list-type1 h4 {
  color: #1a4895;
  text-align: center;
  font-weight: bold;
  font-size: 2rem;
  margin-bottom: 2rem;
}
.list-type1 h4 span {
  display: block;
  font-family: "Antonio", sans-serif;
  font-size: 2.6rem;
  font-weight: 800;
  margin-bottom: 1rem;
}
.list-type1 .list-item p {
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.8;
}
#service h2,
#career h2 {
  line-height: 1.5;
  /* margin-bottom: 1rem; */
}
#service h2 span {
  font-size: 4rem;
  font-weight: 800;
}

.point-list .list-type1 img {
  display: block;
  width: 11rem;
  height: 11rem;
  margin: 0 auto;
  padding: 0;
}
#service .point-title {
  color: #8dc9e1;
}

#service .sec-box {
  /* display: block; */
  height: 7.8rem;
  margin: 4rem auto;
}
.btn-fix {
  display: flex;
  justify-content: center;
  width: 64%;
  height: 7.8rem;
  margin: 0 auto;
  background-color: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-radius: 14px;
  padding: 1.4rem 0;

  position: fixed;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
  transition: position 0.3s;
}
.btn-fix.static {
  position: static;
  transform: none;
}

.btn-fix .btn-type3 a {
  width: 86%;
  max-width: 22rem;
  height: auto;
  padding: 0 1.4rem;
  background-image: linear-gradient(45deg, rgba(255, 111, 0, 1), rgba(189, 55, 14, 1));
  border: 1px solid #fff;
  border-radius: 9999px;
  font-weight: 800;
  transition: all 0.3s ease-in;
  overflow: hidden;
  transition: background-color 0.3s;
  z-index: 1;
  gap: 0;
}

#service .video-box {
  padding: 2rem 0;
}

#service .video-box .sub-text-item {
  text-align: center;
}

#service .video-box h2 {
  font-size: 4rem;
  margin-bottom: 2rem;
}

.video-container {
  width: 100%;
  box-sizing: border-box;
}

.video-wrapper {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 アスペクト比 */
  overflow: hidden;
}

.video-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

#career .sub-lead {
  margin-bottom: 4rem;
}
.career-list li {
  margin-bottom: 6rem;
}
.career-list li:last-of-type {
  margin-bottom: 0;
}

.career-list .list-item {
  margin-bottom: 4rem;
}
.career-list .list-text h4 {
  font-size: 2rem;
  font-weight: 800;
  color: #8dc9e1;
  margin-bottom: 2rem;
}
#career.sub-page .bg-box:nth-last-of-type(2) {
  margin-bottom: 4rem;
}

/* policy */
/* 表 */
.policy-title {
  font-size: 2.4rem;
  margin-bottom: 3rem;
  text-align: center;
  font-weight: 500;
}
.list-lead {
  margin-bottom: 3rem;
}
.list-section {
  margin-bottom: 4rem;
}
.enact-info > p {
  text-align: right;
  font-size: 1.4rem;
  margin-bottom: 3rem;
  line-height: 1.8;
}

.table-wrapper > p {
  margin-bottom: 2rem;
}
.numbered-list {
  counter-reset: section;
  padding-left: 0;
}
.numbered-list > li {
  margin-bottom: 4rem;
  padding-left: 2.5rem;
  position: relative;
  line-height: 1.6;
}

.numbered-list > li > * {
  margin-bottom: 2rem;
}

.numbered-list li h4 {
  font-size: 1.8rem;
  font-weight: 600;
}
.numbered-list > li .list-number {
  counter-increment: section;
  content: counter(section) ".";
  position: absolute;
  left: 0;
  top: 0;
  font-weight: bold;
  color: #2861ca;
  font-size: 1.8rem;
}

.num-list2 > li .list-number {
  color: #000;
  font-size: 1.6rem;
  font-weight: 400;
}

/* ドットリスト（子） */
.sub-list {
  margin-top: 1rem;
  margin-left: 2.4rem;
  list-style: disc;
}
.sub-list li {
  line-height: 1.6;
  margin-bottom: 0;
}

/* デフォルト：スマホ（縦並び） */
.data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.4rem;
  border: 1px solid #ccc;
}

.data-table tr {
  display: block;
  border: none;
}

.data-table td {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 0.8em;
  border-top: 1px solid #ccc;
  border-left: none;
  border-right: none;
  border-bottom: none;
  text-align: left;
}

/* ラベル側のセルスタイル */
.data-table td:first-child {
  background-color: #d6d6d6;
  font-weight: bold;
}

/* 最初の行の1列目だけ border-top を消す */
.data-table tr:first-child td:first-child {
  border-top: none;
}

.num-list li span {
  display: block;
  margin-bottom: 1rem;
}

.info-box {
  background-color: #cbd3d7;
  padding: 2rem;
  text-align: center;
  line-height: 1.6;
  margin-bottom: 4rem;
}

.info-label {
  position: relative;
  display: inline-block;
  font-weight: bold;
  padding: 0 3rem;
  margin-bottom: 1rem;
}

/* 両側の横線風 */
.info-label::before,
.info-label::after {
  position: absolute;
  content: "";
  display: inline-block;
  top: 50%;
  left: 0;
  width: 1.5rem;
  height: 1px;
  background-color: #000;
  transform: translateY(-50%);
}
.info-label::after {
  left: auto;
  right: 0;
}

.info-address {
  font-size: 1.4rem;
  margin-bottom: 1rem;
  font-style: normal;
}

.info-title {
  font-weight: bold;
  font-size: 1.5rem;
}

a.info-mail {
  font-weight: bold;
  color: #2563eb;
  text-decoration: underline;
  word-break: break-all;
}

/* 404 */
.notice-text {
  text-align: center;
}
.big-text {
  font-family: "Poppins", sans-serif;
  font-size: 10rem;
  font-weight: 600;
  color: rgba(129, 129, 129, 1);
  line-height: 1;
}
.small-text {
  color: #e90000;
  font-weight: 500;
  margin-bottom: 2rem;
}
.notice-detail {
  margin: 2rem auto;
}
form .btn-item,
.notice-item .btn-item {
  margin-bottom: 0;
}

/* PC：横並び表示に戻す */
@media screen and (min-width: 765px) {
  #policy .bg-box {
    padding-left: 12rem;
    padding-right: 12rem;
  }
  .data-table tr {
    display: table-row;
    margin-bottom: 0;
    border: none;
  }
  .data-table td {
    display: table-cell;
    width: auto;
    border: 1px solid #ccc;
    padding: 0.8em;
    vertical-align: top;
  }
  .data-table td:first-child {
    width: 28rem;
    font-weight: normal;
  }
  a.info-mail {
    margin-left: 1.4rem;
  }
}

/* PC screen */
/* PC screen */
/* PC screen */
/* PC screen */
/* PC screen */
/* PC screen */
/* PC screen */
/* PC screen */
/* PC screen */
/* PC screen */
/* PC screen */
@media screen and (min-width: 768px) {
  /* base settings */
  :root {
    font-size: clamp(10px, 0.6944vw, 10px);
  }

  body {
    font-size: 1.6rem;
  }

  .sp {
    display: none;
  }
  .pc {
    display: block;
  }

  /* header */
  #logo {
    width: 108px;
  }
  header::after {
    display: none;
  }
  nav {
    display: flex;
    height: 100px;
    font-size: 1.4rem;
  }
  .Toggle {
    display: none;
  }

  .drawer {
    padding-left: 10rem;
  }
  .menu {
    width: 100%;
    height: 100px;
    background-color: transparent;
    margin-top: 0;
    -webkit-transform: translateX(0);
    transform: translateX(0);
    backdrop-filter: unset;
    padding: 0 10rem;
    overflow: unset;
  }
  .menu ul {
    height: 100px;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
  }
  .menu ul li {
    border: none;
  }
  .menu .btn-type1 {
    margin-left: 40px;
  }
  .menu ul li a:hover {
    background-color: transparent;
  }

  .menu ul li.nav_in_menu > a {
    display: block;
    font-size: 1.4rem;
    color: #fff;
    text-decoration: none;
    transition: all 0.3s;
  }
  .menu ul li a,
  .menu ul li.nav_in_menu > a {
    padding: 1rem 2rem;
  }

  .nav_in_menu {
    position: relative;
  }
  .menu ul .fade-menu {
    position: absolute;
    display: none;
    width: 240px;
    height: auto;
    left: 50%;
    background-color: #0a2e58;
    justify-content: space-between;
    transform: translateX(-50%);
    border-radius: 10px;
    margin-top: 4px;
    opacity: 0;
  }
  .menu ul .fade-menu:before {
    position: absolute;
    content: "";
    top: -10px;
    left: 50%;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-bottom: 10px solid #0a2e58;
    transform: translateX(-50%);
  }

  .fade-menu li {
    width: 40%;
    text-align: center;
  }

  .btn-type1 {
    width: 100%;
    margin: 0;
    padding: 1.4rem 3rem !important;
  }

  #header.add-bg {
    height: 100px;
  }

  .add-bg .menu ul li a {
    color: #000;
  }
  .add-bg .menu ul li a.btn-type1 {
    color: #fff;
  }
  .menu ul li a:hover,
  .footer-menu ul li a:hover,
  .footer-menu2 ul li a:hover {
    opacity: 0.6;
  }
  .menu ul li a:hover.btn-type1 {
    opacity: 1;
  }
  /* top mv */
  .sample-box {
    height: 48rem;
    padding-left: 10rem;
  }
  h1 {
    /* font-size: 6.4rem; */
    font-size: clamp(6.4rem, 5.4vw, 11rem);
  }
  .sample-box h1 {
    top: 50%;
    transform: translateY(-50%);
  }
  .mv-slide {
    width: 82rem;
    height: 48rem;
  }

  .swiper {
    height: auto;
  }
  .mv-textanimation {
    bottom: -26rem;
  }
  .mv-textanimation span {
    font-size: 46rem;
    letter-spacing: -1rem;
  }

  .bg-box {
    padding: 8rem;
  }

  .__blu {
    padding: 8rem 0;
  }

  /* contact */
  .contents-box {
    width: 90%;
    max-width: 1240px;
    /* background-color: #224d34; */
    margin: 0 auto 4rem;
    padding: 0 8rem;
    display: flex;
    justify-content: space-between;
  }

  .__wh .contents-box {
    width: 100%;
    padding: 0;
    margin: 0 auto 6rem;
  }

  .sub-item {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10rem;
  }

  .sub-text-item h2 {
    font-size: 8.4rem;
    line-height: 1.2;
  }
  .lead-text {
    width: 44.445%;
  }

  .sub-item .sub-text-item {
    width: 38.89%;
    margin-bottom: 0;
  }
  .sub-item .lead-text {
    width: 100%;
  }
  .sub-item .sub-image {
    width: 54.63%;
    margin: 0;
  }
  .row-reverse {
    display: flex;
    flex-direction: row-reverse;
  }

  .bg-box.__blu {
    max-width: none;
  }

  .logo-slide {
    margin-bottom: 6rem;
  }

  .logo-slide h4 {
    font-size: 3.2rem;
  }

  .loop-scr__item {
    width: calc(100vw / 12);
  }
  .btn-learnmore {
    width: 24rem;
    margin-bottom: 0;
  }
  /* news */
  .news-box {
    position: relative;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    /* background-color: rgba(255, 255, 255, 0.2); */
    border-radius: 0;
  }
  .news-box .btn-learnmore {
    position: absolute;
    display: block;
    top: 40%;
  }

  .news-list {
    width: 64rem;
  }

  .article-item::before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    background-image: linear-gradient(45deg, rgba(70, 116, 206, 1), rgba(28, 50, 92, 1));
    transform-origin: 100% 50%;
    transform: scaleX(0);
    transition: transform ease 0.3s;
  }
  .article-item:hover::before {
    transform-origin: 0% 50%;
    transform: scaleX(1);
  }

  .article-item img {
    width: 18rem;
  }

  .btn-list {
    width: 60%;
    flex-direction: row;
    gap: 4rem;
  }

  /* footer */
  footer {
    padding: 6rem 0 2rem;
  }
  footer .contents-box {
    flex-direction: column;
  }
  .footer-item {
    display: flex;
    justify-content: space-between;
  }
  .footer-menu ul a,
  .footer-menu2 ul a {
    /* width: 60%; */
    transition: all 0.2s;
  }
  .footer-menu ul:first-of-type {
    margin-right: 6rem;
  }
  .grid-menu {
    display: grid;
    grid-template-columns: 1fr 1fr; /* 2列構成 */
    gap: 0 6rem;
    list-style: none;
    padding: 0;
    margin-bottom: 12rem;
  }

  .grid-menu li:nth-child(1) {
    grid-column: 1;
    grid-row: 1;
  }
  .grid-menu li:nth-child(2) {
    grid-column: 1;
    grid-row: 2;
  }
  .grid-menu li:nth-child(3) {
    grid-column: 1;
    grid-row: 3;
  }
  .grid-menu li:nth-child(4) {
    grid-column: 2;
    grid-row: 1;
  }
  .grid-menu li:nth-child(5) {
    grid-column: 2;
    grid-row: 2;
  }

  .footer-menu2 {
    display: flex;
    justify-content: space-between;
    flex-direction: row-reverse;
  }

  .footer-menu2 ul {
    display: flex;
    column-gap: 6rem;
  }
  .footer-menu2 ul li,
  .footer-menu2 ul li:last-of-type {
    margin-bottom: 0;
  }

  /* Sub-page */
  .sub-page-title h2 {
    font-size: 9.8rem;
    line-height: 1.2;
  }
  .sub-page-title .sub-title {
    font-size: 2rem;
    padding-left: 4px;
  }
  .sub-page-title {
    padding-top: 14rem;
  }
  .sub-page-title,
  .breadcrumb {
    width: 90%;
    margin: 0 auto;
    max-width: 1120px;
  }
  .breadcrumb {
    justify-content: right;
  }

  .sub-page .bg-box {
    padding: 6rem;
    border-radius: 50px;
    margin-bottom: 8rem;
    max-width: 1120px;
  }
  .sub-page .bg-box.year-menu {
    padding: 0 2rem;
    margin-bottom: 6rem;
  }
  .sub-page .news-list {
    width: 100%;
    margin-bottom: 0;
  }
  .sub-page .article-item {
    padding: 2rem;
  }
  .sub-page .article-title {
    font-size: 1.6rem;
  }

  /* pagination */
  .pagination {
    justify-content: right;
  }
  .pagination ul {
    font-size: 2.2rem;
  }
  .pagination .arrow,
  .pagination a,
  .pagination .dots {
    width: 60px;
    height: 60px;
  }
  .pagination .prev::after,
  .pagination .next::after {
    width: 12px;
    height: 12px;
    left: 22px;
  }
  .pagination .next::after {
    left: unset;
    right: 22px;
  }

  /* PC表示：A左・B/C右縦並び */
  .menu-tab {
    margin-bottom: 6rem;
  }
  .greeting-box {
    /* display: grid; */
    width: 88rem;
    grid-template-columns: 0.8fr 1fr; /* 左右50% */
    column-gap: 6rem;
    align-items: start;
    margin: 0 auto;
    padding: 0;
  }

  .item-b {
    grid-row: 1 / 3; /* 画像を縦2行分に */
  }
  .greeting-box h3 {
    margin-top: 2rem;
  }
  .item-a {
    grid-column: 2;
    grid-row: 1;
  }

  .item-c {
    grid-column: 2;
    grid-row: 2;
  }

  .company-profile {
    padding: 0;
  }
  .profile-item {
    display: flex;
    align-items: start;
    gap: 2rem;
  }
  .group-list,
  .business-list,
  .certification-list {
    margin-top: 0;
  }

  .profile-item .profile-label {
    width: 24rem;
    padding-left: 2rem;
    margin-bottom: 0;
    flex-shrink: 0;
  }

  .profile-item .profile-value {
    flex: 1;
  }

  .executives-table th {
    width: 260px;
  }
  .executives-table small {
    display: inline-block;
  }
  .map-frame {
    width: 100%;
  }

  /* history */
  .history-meta {
    column-gap: 5rem;
    margin-right: 2rem;
  }
  .year,
  .month {
    font-size: 2.2rem;
  }
  .month {
    width: 16%;
  }
  .month span {
    font-size: 1.6rem;
  }
  .history-text {
    padding: 3rem 2rem;
  }

  /* contact */
  .form-block {
    margin-bottom: 4rem;
  }
  .title-area h3 {
    font-size: 3.4rem;
  }
  .title-area p {
    font-size: 1.8rem;
    margin-bottom: 6rem;
  }

  /* service */
  .service-mv {
    display: flex;
    flex-direction: row;
    align-items: end;
    padding-top: 16rem;
    justify-content: center;
    column-gap: 4rem;
  }
  #service .sub-page-title {
    max-width: 51rem;
    margin: 0;
  }
  .sub-mv-image {
    max-width: 56rem;
  }
  .sub-page-title h2 {
    font-size: 8.2rem;
  }

  #service h2 span {
    font-size: 7rem;
  }
  #service .list-type1 {
    display: flex;
    justify-content: space-between;
  }

  #service .sub-text-item h2 {
    font-size: 4.8rem;
    line-height: 1;
    margin-bottom: 4rem;
  }
  #service .sub-text-item h2 span {
    font-size: 5.4rem;
  }
  #service .__blu2 .sub-text-item {
    text-align: center;
    margin-bottom: 6rem;
  }

  #service h3 {
    padding-top: 0;
  }
  #service .list-type1 li {
    width: 30.3577%;
    max-width: 34rem;
    margin-bottom: 0;
  }

  .service-point {
    display: flex;
    justify-content: space-between;
  }

  #service .service-point .list-type1 {
    display: block;
  }
  #service .service-point .list-type1 li {
    width: 100%;
    max-width: 64rem;
    display: flex;
    margin-bottom: 4rem;
  }
  #service .service-point .list-type1 h4 {
    text-align: left;
  }

  .point-list .list-type1 img {
    width: 12rem;
    height: 12rem;
    padding: 0;
    margin-right: 4rem;
  }

  .sec-box {
    position: relative;
  }
  .btn-fix {
    width: 28rem;
    left: auto;
    right: 8rem;
    transform: none;
  }
  .btn-fix.static {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
  }

  .video-container {
    max-width: 900px;
    margin: 0 auto; /* 中央寄せ */
  }

  /* career */
  #career .service-mv {
    align-items: center;
    padding-right: 0;
  }
  #career .sub-page-title {
    width: 28.403%;
    max-width: 48rem;
    margin: inherit;
  }
  #career .sub-mv-image {
    max-width: 73rem;
  }
  .bg-box.career-list {
    margin-bottom: 0;
  }
  .career-list li {
    display: flex;
    flex-direction: row;
    align-items: end;
    column-gap: 8rem;
    justify-content: center;
    margin-bottom: 10rem;
  }
  .career-list .list-item {
    position: relative;
    width: 45.536%;
    height: 530px;
    max-width: 51rem;
    margin-bottom: 0;
  }
  .ca-title {
    position: absolute;
    z-index: 1;
  }
  .ca-img {
    position: absolute;
    width: 70.59%;
    max-width: 36rem;
    bottom: 0;
    right: 0;
  }
  .ca-title h2 {
    font-size: 8.4rem;
    filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.4));
  }
  .career-list .list-text h4 {
    font-size: 3.2rem;
  }
  .list-text p {
    line-height: 1.8;
  }

  #career .btn-type-org {
    margin: 0 auto 0 0;
  }
  #career .bg-box .btn-type-org {
    margin: 0 auto;
  }

  /* top ipa */
  .__wh.top_ipa .contents-box {
    margin-bottom: 3rem;
  }
  .top_ipa .sub-text-item h2 {
    font-size: 8rem;
  }
  .top_ipa .sub-text-item .lead-text {
    margin-bottom: 2rem;
  }

  /* contact dl btn */
  .btn-list > * {
    width: 48%;
    height: 18rem;
  }
  .btn-item-col {
    row-gap: unset;
  }
  .btn-item-col .btn-type3 a {
    padding: 2.4rem 1.4rem;
  }

  /* 404 */
  .notice-detail {
    margin: 2rem auto 4rem;
  }
}

.fadein {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: opacity, transform;
}
.fadein.show {
  opacity: 1;
  transform: translateY(0);
}

.scroll-infinity {
  overflow: hidden;
  /* width: 100%; */
  width: 100vw;
  margin: 0 calc(50% - 50vw);
}

.scroll-infinity__wrap {
  display: flex;
  width: max-content;
  will-change: transform;
}

.scroll-infinity__list {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
}

.scroll-infinity__item {
  flex-shrink: 0;
  margin-inline: 2rem;
}

.scroll-infinity__item img {
  height: 12rem;
  width: auto;
  object-fit: contain;
  display: block;
}
