@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Kanit:wght@500&display=swap');
html,
body,
a,
p,
ul,
li,
h1,
.sec-ttl,
h3,
h4,
h5,
h6,
figure,
dl,
dt,
dd {
    margin: 0;
    padding: 0;
}
* {
    box-sizing: border-box;
    font-family: YakuHanJP, "Zen Kaku Gothic New", serif;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    tap-highlight-color: rgba(0, 0, 0, 0);
    outline: none;
    font-weight: 700;
}


body {
    overflow-x: clip;
}
p {
    hyphens: auto;
    text-align: justify;
    word-break: normal;
}
img {
    width: 100%;
    height: auto;
    pointer-events: none;
    user-select: none;
    display: block;
    font-size: 0;
}
a {
    color: inherit;
    text-decoration: none;
    transition-duration: 0.2s;
}
li {
    list-style-type: none;
}
.youtube {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
}
.youtube iframe {
    position: absolute;
    top: 0;
    right: 0;
    width: 100% !important;
    height: 100% !important;
}
.sp {
    display: none;
}
@media screen and (max-width: 896px) {
    .pc {
        display: none;
    }
    .sp {
        display: block;
    }
}
.loading {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100dvh;
    z-index: 9999999;
}
.loading:after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #fff;
}
.loading p {
    width: 200px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition-duration: 0.3s;
    transition-timing-function: ease-in;
    z-index: 999;
}
.loading.load {
    pointer-events: none;
}
.loading.load:after {
    transition-duration: 0.6s;
    opacity: 0;
}
.loading.load p {
    filter: blur(10px);
    transform: translate(-50%, -50%) scale(1.6);
    opacity: 0;
}
header {
    position: fixed;
    top: 0px;
    left: 40px;
    z-index: 999;
    width: calc(100% - 80px);
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0px 40px;
    transition-duration: 0.4s;
    height: 200px;
}
.header-back {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.header-back:after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    clip-path: polygon(0 0%, 100% 0%, 100% 0px, 100% calc(100% - 24px), calc(100% - 24px) 100%, 24px 100%, 0% calc(100% - 24px), 0 0);
    z-index: -1;
    transition-duration: 0.4s;
}
body:not(.pagetop) header {
    height: 100px;
}
body:not(.pagetop) .header-back {
    filter: drop-shadow(0px 5px 10px rgba(0, 0, 0, 0.2));
}
body:not(.pagetop) .header-back:after {
    background: rgba(255, 255, 255, 0.9);
    box-shadow: inset 0px 0px 50px rgba(255, 255, 255, 1), inset 0px 0px 50px rgba(255, 255, 255, 1);
}
nav * {
    font-family: "Kanit", sans-serif;
    font-weight: 500;
    letter-spacing: 0.04em;
}
.header-right {
    display: flex;
    align-items: center;
    position: relative;
    z-index: 2;
}
nav {
    font-size: 20px;
}
nav ul {
    display: flex;
    align-items: center;
    margin-right: 20px;
}
nav ul li:not(:last-child) {
    margin-right: 28px;
}
header .logo {
    width: 200px;
    position: relative;
    z-index: 3;
    opacity: 0;
    transition-duration: 0.4s;
}
.logo a{
    transition-duration: 0.2s;
}
.logo a.hover{
    opacity: 0.5;
}
body:not(.pagetop) header .logo {
    opacity: 1;
}
nav ul li:not(:last-child) a {
    position: relative;
}
nav ul li:not(:last-child) a:after {
    width: 100%;
    height: 2px;
    position: absolute;
    bottom: -1px;
    left: 0;
    content: '';
    background: #000000;
    transition: transform 0.3s;
    /* 変形の時間 */
    transform: scale(0, 1);
    transform-origin: right top;
    /* 変形（アンダーラインの伸長）の原点がaタグ（各メニュー）の右端 */
}
nav ul li:not(:last-child) a.hover::after {
    transform: scale(1, 1);
    /* ホバー後、x軸方向に1（相対値）伸長 */
    transform-origin: left top;
    /* 左から右に向かう */
}
nav ul li:last-child a {
    width: 120px;
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    background: #000;
    border: solid 2px #000;
    border-radius: 100px;
}
nav ul li:last-child a.hover {
    color: #000;
    background: #fff;
}
.lang ul {
    width: 90px;
    height: 32px;
    position: relative;
    display: flex;
    justify-content: space-between;
    flex-direction: row-reverse;
    align-items: center;
    font-size: 16px;
    border: solid 1px #000;
    border-radius: 100px;
    padding: 0 16px;
}
.lang ul::before {
    position: absolute;
    content: '';
    top: 50%;
    left: 49%;
    transform: translate(-50%, -50%);
    width: 5px;
    height: 5px;
    background: #000;
    border-radius: 100px;
}
.lang ul li a {
    opacity: 1;
}

@media screen and (max-width: 1080px){
    header{
        padding: 0 20px;
    }
    header .logo{
        width: 180px;
    }
    nav {
    font-size: 18px;
    }
    nav ul li:not(:last-child){
        margin-right: 20px;
    }
}
@media screen and (max-width: 896px) {
    header {
        width: calc(100% - 20px);
        height: 120px;
        left: 10px;
        z-index: 99999;
        padding: 0 20px;
    }
    body:not(.pagetop) header {
        height: 72px;
    }
    header .logo {
        width: 140px;
        position: relative;
        z-index: 2;
    }
    header nav {
        width: 100%;
        height: 100%;
        position: fixed;
        top: 0;
        left: 0;
        background: #fff;
        opacity: 0;
        transform: translateX(101%);
        transition-duration: 0.8s;
    }
    header nav.open {
        display: block;
        opacity: 1;
        transform: translateX(0%);
    }
    header nav ul {
        width: 100%;
        height: 100%;
        justify-content: center;
        align-items: center;
        flex-flow: column;
    }
    nav ul li:not(:last-child) {
        margin-right: 0;
        margin-bottom: 20px;
    }
    .nav-btn {
        width: 42px;
        height: 42px;
        position: relative;
        display: block;
        background: linear-gradient(0deg, #004b11 0%, #1ea64e 50%);
        border-radius: 100px;
    }
    .nav-btn span {
        width: 20px;
        height: 2px;
        position: absolute;
        left: 50%;
        background: #fff;
        overflow: hidden;
        transform: translateX(-50%);
        transition-duration: 0.2s;
    }
    .nav-btn span:nth-of-type(1) {
        top: calc(50% - 8px);
    }
    .nav-btn.close span:nth-of-type(1) {
        top: calc(50% - 1px);
        transform: rotate(45deg) translate(-50%);
        transform-origin: left;
    }
    .nav-btn span:nth-of-type(2) {
        top: 50%;
        margin-top: -1px;
    }
    .nav-btn.close span:nth-of-type(2) {
        opacity: 0;
        transform: translateX(-20%);
    }
    .nav-btn span:nth-of-type(3) {
        bottom: calc(50% - 8px);
    }
    .nav-btn.close span:nth-of-type(3) {
        bottom: calc(50% - 1px);
        transform: rotate(-45deg) translateX(-50%);
        transform-origin: left;
    }
    .lang ul {
        width: 78px;
        height: 32px;
        position: relative;
        display: flex;
        justify-content: space-between;
        align-items: center;
        font-size: 14px;
        border: solid 1px #000;
        border-radius: 100px;
        margin-right: 16px;
        padding: 0 12px;
    }
    .lang ul::before {
        width: 5px;
        height: 5px;
        background: #000;
        border-radius: 100px;
    }
}
main {
    display: block;
    position: relative;
}
.wrap.load {
    height: 100dvh;
    overflow: hidden;
    opacity: 0;
}
.wrap {
    position: relative;
    z-index: 2;
    width: 100vw;
    overflow-x: clip;
}
.back-grd {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100lvh;
    opacity: 1;
    z-index: 2;
    opacity: 1;
}
.back-wave {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100lvh;
    opacity: 1;
    z-index: 2;
    mix-blend-mode: hard-light;
    /* opacity: */
}
.inner {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
}
section {
    margin-bottom: 200px;
    position: relative;
    z-index: 3;
}
::selection {
    background-color: #000;
    color: #fff;
}
.cursor {
    pointer-events: none;
    display: none;
    opacity: 0;
}
.cursor__ball {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2;
}
.cursor__ball {
    width: 100px;
    height: 100px;
    background: #fff;
    border-radius: 100px;
    box-shadow: 0 0 100px #1ea64e;
    transform: translate(calc(50vw - 10px), calc(50vh - 10px));
    opacity: 0.7;
    filter: blur(10px);
}
@media screen and (max-width: 896px) {
    .cursor {
        display: none !important;
    }
}
.hero {
    width: 100%;
    height: 100dvh;
    min-height: 780px;
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-flow: column;
    transition-duration: 0.4s;
    transition-timing-function: ease;
    margin-bottom: 20px;
}
.hero.on .hero-center {
    width: 100%;
    position: relative;
    transform: translateY(-15%);
}
.hero .hero-logo {
    width: 90%;
    max-width: 800px;
    opacity: 0;
    margin: 0 auto;
    transition-duration: 1s;
}
.hero.on .hero-logo {
    opacity: 1;
    transition-delay: 1.7s;
}
[lang="en"] .hero.on .hero-logo {
    transition-delay: 2.55s;
}
.hero-center h1 {
    font-size: 60px;
    font-weight: 900;
    line-height: 1.6;
    text-align: center;
    margin-bottom: 0.8em;
    letter-spacing: 0.02em;
}
.hero-center h1 span {
    display: inline-block;
    font-weight: 900;
}
@media screen and (max-width: 896px) {
    .hero{
        min-height: 100vw;
    }
    .hero .hero-logo{
        max-width: 600px;
    }
    .hero-center h1 {
        font-size: min(8vw,48px);
    }
}
.trigger {
    position: absolute;
    top: -160px;
}
.sec-ttl {
    flex-shrink: 0;
}
.common-btn {
    width: 240px;
    height: 52px;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 16px;
    font-weight: 900;
    color: #fff;
    background: #000;
    border: solid 2px #000;
    border-radius: 100px;
    margin-top: 40px;
    margin-left: auto;
    text-align: center;
    transition-duration: 0.2s;
}
.common-btn.hover {
    color: #000;
    background: #fff;
}
.common-btn span,
.common-btn-wrap span {
    width: 20px;
    position: absolute;
    top: 50%;
    right: 12px;
    display: block;
    transform: translateY(-50%);
    transition-duration: 0.2s;
    z-index: 1;
}
@media screen and (max-width: 896px) {
    .common-btn-wrap span {
        right: 22px;
    }
}
.common-btn.hover span,
input.common-btn.hover + span {
    filter: brightness(0);
}
.common-btn-wrap {
    position: relative;
    width: 240px;
    margin: auto;
}
input.common-btn {
    padding-top: 15px;
}
.wpcf7-spinner,
.wpcf7-response-output {
    display: none !important;
}
.sec-ttl {
    width: fit-content;
    font-size: 56px;
    transform-origin: center;
    margin-bottom: 60px;
    transition-duration: 0.8s;
    letter-spacing: 0.04em;
}
.sec-ttl strong {
    position: relative;
    display: block;
    line-height: 0.4;
    margin-bottom: 0.6em;
    padding-left: 28px;
}
.sec-ttl strong:after {
    width: 14px;
    height: 14px;
    position: absolute;
    top: calc(50% - 7px);
    left: 0;
    content: "";
    display: block;
    background: #1ea64e;
    transform: scale(0);
    clip-path: polygon(4px 0%, calc(100% - 4px) 0%, 100% 4px, 100% calc(100% - 4px), calc(100% - 4px) 100%, 4px 100%, 0% calc(100% - 4px), 0 4px);
    transition-duration: 0.4s;
}
.span-animation span {
    display: inline-block;
    color: #fff;
    opacity: 0;
    transform: rotateX(90deg);
    transform-origin: bottom;
    transition-duration: 0.4s;
}
.span-animation.on span:nth-child(2) {
    transition-delay: 0.05s !important;
}
.span-animation.on span:nth-child(3) {
    transition-delay: 0.1s !important;
}
.span-animation.on span:nth-child(4) {
    transition-delay: 0.15s !important;
}
.span-animation.on span:nth-child(5) {
    transition-delay: 0.2s !important;
}
.span-animation.on span:nth-child(6) {
    transition-delay: 0.25s !important;
}
.span-animation.on span:nth-child(7) {
    transition-delay: 0.3s !important;
}
.span-animation.on span:nth-child(8) {
    transition-delay: 0.35s !important;
}
.span-animation.on span:nth-child(9) {
    transition-delay: 0.4s !important;
}
.span-animation.on span:nth-child(10) {
    transition-delay: 0.45s !important;
}
.span-animation.on span:nth-child(11) {
    transition-delay: 0.5s !important;
}
.span-animation.on span:nth-child(12) {
    transition-delay: 0.55s !important;
}
.span-animation.on span:nth-child(13) {
    transition-delay: 0.6s !important;
}
.span-animation.on span:nth-child(14) {
    transition-delay: 0.65s !important;
}
.span-animation.on span:nth-child(15) {
    transition-delay: 0.7s !important;
}
.span-animation.on span:nth-child(16) {
    transition-delay: 0.75s !important;
}
.span-animation.on span:nth-child(17) {
    transition-delay: 0.8s !important;
}
.span-animation.on span:nth-child(18) {
    transition-delay: 0.85s !important;
}
.span-animation.on span:nth-child(19) {
    transition-delay: 0.9s !important;
}
.span-animation.on span:nth-child(20) {
    transition-delay: 0.95s !important;
}
.span-animation.on span:nth-child(21) {
    transition-delay: 1s !important;
}
.span-animation.on span:nth-child(22) {
    transition-delay: 1.05s !important;
}
.span-animation.on span:nth-child(23) {
    transition-delay: 1.1s !important;
}
.span-animation.on span:nth-child(24) {
    transition-delay: 1.15s !important;
}
.span-animation.on span:nth-child(25) {
    transition-delay: 1.2s !important;
}
.span-animation.on span:nth-child(26) {
    transition-delay: 1.25s !important;
}
.span-animation.on span:nth-child(27) {
    transition-delay: 1.3s !important;
}
.span-animation.on span:nth-child(28) {
    transition-delay: 1.35s !important;
}
.span-animation.on span:nth-child(29) {
    transition-delay: 1.4s !important;
}
.span-animation.on span:nth-child(30) {
    transition-delay: 1.45s !important;
}
.span-animation.on span:nth-child(31) {
    transition-delay: 1.5s !important;
}
.span-animation.on span:nth-child(32) {
    transition-delay: 1.55s !important;
}
.span-animation.on span:nth-child(33) {
    transition-delay: 1.6s !important;
}
.span-animation.on span:nth-child(34) {
    transition-delay: 1.65s !important;
}
.span-animation.on span:nth-child(35) {
    transition-delay: 1.7s !important;
}
.span-animation.on span:nth-child(36) {
    transition-delay: 1.75s !important;
}
.span-animation.on span:nth-child(37) {
    transition-delay: 1.8s !important;
}
.span-animation.on span:nth-child(38) {
    transition-delay: 1.85s !important;
}
.sec-ttl strong span {
    font-family: "Kanit", sans-serif;
    font-weight: 500;
    transform-origin: bottom;
}
.sec-ttl small {
    display: block;
    font-size: 40%;
    padding-left: 28px;
}
.span-animation.on span {
    color: #000;
    opacity: 1;
    transform: rotateX(0deg) translateX(0px);
}
.sec-ttl.fade.on strong:after {
    transform: scale(1);
}
@media screen and (max-width: 896px) {
    .sec-ttl {
        font-size: 32px;
        margin-bottom: 40px;
    }
}
.fade:not(.sec-ttl) {
    opacity: 0;
    transition-duration: 0.8s;
}
.fade:not(.sec-ttl).on {
    opacity: 1;
}
@media screen and (max-width: 896px) {
    .inner {
        display: block;
    }
    section {
        position: relative;
        margin-bottom: 100px;
    }
    .trigger {
        position: absolute;
        top: -160px;
    }
    .sec-ttl {
        width: 100%;
        flex-shrink: 0;
    }
    .common-btn {
        width: 220px;
        height: 52px;
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: 16px;
        font-weight: 900;
        color: #fff;
        background: #000;
        transition-duration: 0.2s;
        border-radius: 100px;
        margin: 0 auto;
        margin-top: 40px;
    }
    .common-btn span {
        width: 20px;
        position: absolute;
        right: 12px;
        display: block;
    }
}
.about h3 {
    font-size: min(3.4vw, 40px);
    font-weight: 900;
    line-height: 2.2;
    letter-spacing: -0.4em;
    text-align: center;
    overflow: hidden;
    transition-duration: 1s;
    transition-timing-function: cubic-bezier(0, .9, .0, 1);
    margin-bottom: 40px;
}
.about h3.on {
    letter-spacing: 0;
}
.about h3 span {
    display: inline-block;
    font-weight: 900;
}
.about-figure figure {
    max-width: 600px;
    aspect-ratio: 1 / 1;
    position: relative;
    display: flex;
    border-radius: 100%;
    margin: 0 auto;
}
.circle {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    animation: 30s linear infinite rotation;
    border: solid 1px #000;
    border-radius: 10000px;
}
@keyframes rotation {
    0% {
        transform: rotate(0);
    }
    100% {
        transform: rotate(360deg);
    }
}
.circle:after {
    width: 20px;
    height: 20px;
    position: absolute;
    top: calc(50% - 10px);
    left: -10px;
    content: "";
    background: #fff;
    border-radius: 100px;
    box-shadow: 0 0 20px #1ea64e, 0 0 20px #1ea64e;
}
.jadecomix {
    width: 70%;
    position: absolute;
    top: 24%;
    left: 15%;
}
.segasammy {
    width: 40%;
    aspect-ratio: 1 / 1;
    position: absolute;
    top: 40%;
    left: 12%;
    display: flex;
    justify-content: center;
    align-items: center;
    background: rgba(255, 255, 255, 0.6);
    transform: translateX(-20%);
    transition-duration: 1s;
    border-radius: 1000px;
    box-shadow: 0 10px 20px rgba(0, 0, 0, .2);
    padding: 6%;
}
.fade.on .segasammy {
    transform: translateX(0%);
}
.papy {
    width: 40%;
    aspect-ratio: 1 / 1;
    position: absolute;
    top: 40%;
    right: 12%;
    display: flex;
    justify-content: center;
    align-items: center;
    background: rgba(255, 255, 255, 0.5);
    transform: translateX(20%);
    transition-duration: 1s;
    border-radius: 1000px;
    box-shadow: 0 10px 20px rgba(0, 0, 0, .2);
    padding: 6%;
}
.fade.on .papy {
    transform: translateX(0%);
}
.about-figure p {
    font-size: 20px;
    line-height: 1.8;
    text-align: center;
    margin-top: 20px;
}
.mission-vision {
    display: flex;
    justify-content: space-between;
    filter: drop-shadow(0px 5px 10px rgba(0, 0, 0, 0.2));
}
.mission-vision li {
    width: calc(50% - 20px);
    position: relative;
    margin-top: 60px;
    padding: 60px 40px;
    padding-top: 60px;
}
.mission-vision li:after {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    content: "";
    display: block;
    background: rgba(255, 255, 255, 0.3);
    box-shadow: inset 0px 0px 100px rgba(255, 255, 255, 1), inset 0px 0px 100px rgba(255, 255, 255, 1);
    clip-path: polygon(32px 0%, calc(100% - 32px) 0%, 100% 32px, 100% calc(100% - 32px), calc(100% - 32px) 100%, 32px 100%, 0% calc(100% - 32px), 0 32px);
}
.mission-vision li h4 {
    position: absolute;
    top: 20px;
    left: -20px;
    font-family: "Kanit", sans-serif;
    font-weight: 500;
    letter-spacing: 0.1em;
    padding-left: 3em;
}
.mission-vision li h4:after {
    width: 2.4em;
    height: 1.1px;
    position: absolute;
    top: 50%;
    left: 0;
    content: "";
    display: block;
    background: #000;
}
.mission-vision li h5 {
    display: block;
    font-size: 32px;
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: -0.8em;
    text-align: center;
    transition-duration: 0.7s;
    transition-timing-function: cubic-bezier(0, .9, .0, 1);
    margin-bottom: 28px;
}
.mission-vision li.on h5 {
    letter-spacing: 0;
}
.mission-vision li h5 strong {
    font-size: 120%;
}
.mission-vision li p {
    position: relative;
    font-size: 18px;
    line-height: 1.8;
}

@media screen and (max-width: 1080px){
    .mission-vision li.on h5{
        font-size: min(6vw,28px);
    }
    .mission-vision li p{
        font-size: 16px;
    }
}
@media screen and (max-width: 896px) {
    .about h3 {
        font-size: min(5vw, 32px);
        margin-bottom: 40px;
    }
    .about-figure p {
        font-size: 14px;
    }
    .mission-vision {
        flex-flow: column;
    }
    .mission-vision li {
        width: 100%;
        position: relative;
        margin-top: 60px;
        padding: 60px 28px 40px;
        padding-top: 60px;
    }
    .mission-vision li h4 {
        top: 20px;
        left: -10px;
    }
    .mission-vision li h5 {
        font-size: 20px;
        margin-bottom: 20px;
    }
    .mission-vision li p {
        font-size: 14px;
    }
}
.service-inner {
    position: relative;
    display: flex;
    align-items: flex-start;
}
.zetoon-logo {
    width: 50%;
    position: sticky;
    top: 50%;
    flex-shrink: 0;
    justify-content: flex-start;
    padding-right: 40px;
}
.zetoon-content .zetoon-logo-sp {
    width: 80%;
    max-width: 400px;
    margin: 40px auto;
}
.works-list {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 28px;
    margin-top: 60px;
}
.works-list a {
    overflow: hidden;
}
.works-list a.hover {
    opacity: 1;
}
.works-list a img {
    transition-duration: 0.2s;
}
.works-list a.hover img {
    transform: scale(1.1);
}
.service .sec-cnt {
    display: flex;
}
.service figure {
    width: 520px;
    flex-shrink: 0;
    margin-right: 40px;
    margin-bottom: 60px;
}
.service p {
    font-size: 18px;
    line-height: 2.2;
}
@media screen and (max-width: 896px) {
    .service-inner {
        position: relative;
        flex-flow: column;
    }
    .zetoon-logo {
        width: 70%;
        position: static;
        flex-shrink: 0;
        justify-content: flex-start;
        margin: 0 auto 20px;
        padding-right: 0px;
    }
    .works-list {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 16px;
        margin-top: 60px;
    }
    .service figure {
        width: 70%;
        margin: 0 auto 60px;
    }
    .service h3 {
        display: block;
        font-size: 5.4vw;
        font-weight: 900;
        line-height: 1.8;
        letter-spacing: -0.8em;
        margin-bottom: 12px;
    }
    .service h3.on {
        letter-spacing: 0;
        transition-duration: 1s;
        transition-timing-function: cubic-bezier(0, .7, .4, 1);
    }
    .service p {
        font-size: 14px;
        line-height: 2;
    }
}
.news-list ul {
    border-top: solid 1px #666;
}
.news-list li {
    border-bottom: solid 1px #666;
}
.top-news .news-list li:nth-child(2) {
    transition-delay: 0.2s;
}
.top-news .news-list.on li:nth-child(3) {
    transition-delay: 0.4s;
}
.news-list li.is-hidden {
    display: none;
    opacity: 0;
}
.news-list li.is-show {
    animation: fadeIn 1.8s ease;
}
@keyframes fadeIn {
    0% {
        transform: translateY(10px);
        opacity: 0;
    }
    100% {
        transform: translateY(0);
        opacity: 1;
    }
}
.news-list a {
    display: flex;
    align-items: center;
    padding: 40px 20px;
}
.news-list a.hover {
    transform: translateX(20px);
}
.news-list li a .date {
    width: 8em;
    display: block;
    flex-shrink: 0;
    font-family: "Kanit", sans-serif;
    font-size: 14px;
    line-height: 1.6;
    letter-spacing: 0.08em;
}
.news-list li a .title {
    font-size: 16px;
    line-height: 1.6;
}
@media screen and (max-width: 896px) {
    .news-list a {
        display: block;
        align-items: center;
        padding: 40px 20px;
    }
    .news-list li a .date {
        font-size: 12px;
    }
    .news-list li a .title {
        font-size: 14px;
    }
}
.company table {
    width: 100%;
}
.company tr {
    display: flex;
}
.company table.on tr:nth-child(2) {
    transition-delay: 0.2s;
}
.company table.on tr:nth-child(3) {
    transition-delay: 0.4s;
}
.company table.on tr:nth-child(4) {
    transition-delay: 0.6s;
}
.company table.on tr:nth-child(5) {
    transition-delay: 0.8s;
}
.company table.on tr:nth-child(6) {
    transition-delay: 1s;
}
.company table.on tr:nth-child(7) {
    transition-delay: 1.2s;
}
.company table.on tr:nth-child(8) {
    transition-delay: 1.4s;
}
.company th {
    width: 200px;
    display: block;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.6;
    border-top: solid 1px #000;
    padding: 20px;
}
.company td {
    width: calc(100% - 200px);
    display: block;
    font-size: 16px;
    line-height: 1.6;
    border-top: solid 1px rgba(0, 0, 0, .2);
    padding: 20px;
}
.company tr:last-child th {
    border-bottom: solid 1px #000;
}
.company tr:last-child td {
    border-bottom: solid 1px rgba(0, 0, 0, .2);
}
.company td iframe {
    width: 100%;
    height: 100%;
}
.google-map {
    height: 400px;
}
@media screen and (max-width: 896px) {
    .company tr {
        display: block;
    }
    .company th {
        width: 100%;
        font-size: 14px;
        line-height: 1.6;
        border-top: solid 1px #666;
        margin-bottom: 12px;
        padding: 20px 20px 0;
    }
    .company td {
        width: 100%;
        font-size: 14px;
        line-height: 1.6;
        border-top: none;
        padding: 0 20px 20px;
    }
    .company tr:last-child th{
        border-bottom: none;
    }
    .company tr:last-child td {
        border-bottom: solid 1px #666;
    }
    .google-map {
        height: 240px;
    }
}
footer {
    position: relative;
    z-index: 3;
    background: rgba(255, 255, 255, 1);
    padding: 40px 0;
}
footer .logo {
    width: 200px;
}
footer nav ul {
    margin-right: 0;
}
.footer-head {
    width: 90%;
    max-width: 1000px;
    display: flex;
    justify-content: space-between;
    margin: 0 auto 40px;
}
.footer-bottom {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
}
.footer-bottom a {
    color: inherit !important;
    border-right: solid 1px rgba(0, 0, 0, .2);
    padding: 0 20px;
    text-decoration: none;
    transition-duration: 0.2s;
}
.footer-bottom a.hover{
    opacity: 0.5;
}
.footer-bottom a:nth-child(1) {
    border-left: solid 1px rgba(0, 0, 0, .2);
}
footer small {
    display: block;
    font-family: "Kanit", sans-serif;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-align: center;
}
@media screen and (max-width: 896px) {
    footer {
        padding: 80px 0 80px;
    }
    footer .logo {
        width: 200px;
    }
    footer nav {
        flex-flow: column;
        justify-content: center;
    }
    footer nav ul {
        margin-right: 0;
    }
    .footer-head {
        max-width: 1000px;
        display: block;
        justify-content: space-between;
        margin: 0 auto 40px;
    }
    .footer-head .logo {
        margin: 0 auto 20px;
    }
    .footer-head nav ul {
        flex-flow: column;
        justify-content: center;
        align-items: center;
    }
    .footer-head nav ul li:not(:last-child) {
        margin-right: 0;
        margin-bottom: 20px;
    }
    .footer-bottom {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 10px 0;
        margin-bottom: 40px;
    }
    .footer-bottom a {
        display: block;
        font-size: 12px;
        border-right: solid 1px rgba(0, 0, 0, .2);
        padding: 0 20px;
    }
    .footer-bottom a:nth-child(1) {
        border-left: solid 1px rgba(0, 0, 0, .2);
    }
    footer small {
        font-size: 10px;
    }
}
.totop-btn {
    width: 120px;
    height: 120px;
    position: fixed;
    right: 40px;
    bottom: 40px;
    z-index: 9999;
    display: flex;
    flex-flow: column;
    justify-content: center;
    align-items: center;
    opacity: 1;
    transition-duration: 0.2s;
    pointer-events: none;
    border-radius: 100px;
    padding: 40px;
}
.totop-btn.active {
    pointer-events: auto;
}
.totop-btn.active.hover{
    opacity: 0.5;
}
.totop-btn img {
    transform: rotate(180deg);
    transition-duration: 0.2s;
}
.totop-btn.active img {
    transform: rotate(0deg);
}
.totop-btn:before {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    content: "";
    display: block;
    background: url(../img/pagetop.svg);
    opacity: 0;
    animation: 10s linear infinite rotation2;
    transition-duration: 0.2s;
}
.totop-btn:after {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    content: "";
    display: block;
    background: url(../img/scrolldown.svg);
    animation: 10s linear infinite rotation2;
    transition-duration: 0.2s;
}
.totop-btn.active:before {
    opacity: 1;
}
.totop-btn.active:after {
    opacity: 0;
}
@keyframes rotation2 {
    0% {
        transform: rotate(0);
    }
    100% {
        transform: rotate(360deg);
    }
}
.totop-btn {
    opacity: 1;
}
@media screen and (max-width: 896px) {
    .totop-btn {
        width: 60px;
        height: 60px;
        right: 5%;
        bottom: 20px;
        z-index: 9999;
        padding: 20px;
    }
}
.lower {
    padding-top: 160px;
}
.breadcrumb {
    width: 100%;
    max-width: calc(1200px + 10%);
    word-break: keep-all;
    white-space: nowrap;
    margin: 0 auto 40px;
    padding: 10px 5%;
    overflow-x: scroll;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: none;
    scrollbar-width: none;
}
.breadcrumb::-webkit-scrollbar {
    display: none;
}
.breadcrumb ul {
    width: fit-content;
    display: flex;
    align-items: center;
    background: #fff;
    border-radius: 100px;
    box-shadow: 0 0 10px rgba(0, 0, 0, .2);
    padding: 4px 20px;
}
.breadcrumb li {
    display: flex;
    align-items: center;
    margin: 4px 0;
}
.breadcrumb li:not(:last-child):after {
    width: 48px;
    height: 10px;
    content: "";
    display: block;
    background: url(../img/arrow-black.svg) no-repeat;
    background-size: contain;
    background-position: center;
}
.breadcrumb-home {
    width: 14px;
    display: block;
}
.breadcrumb li:last-child a {
    pointer-events: none;
}
.breadcrumb li a{
    font-size: 11px;
    transition-duration: 0.2s;
}
.breadcrumb li a.hover{
    opacity: 0.5;
}
@media screen and (max-width: 896px) {
    .lower {
        padding-top: 100px;
    }
}

.news .common-btn{
    margin: 40px auto 0;
}
.news-detail {
    max-width: 800px;
    margin: 0 auto 0;
}
.news-detail-ttl {
    border-bottom: solid 1px #666;
    margin-bottom: 40px;
    padding-bottom: 40px;
}
.news-detail-ttl .date {
    display: block;
    font-family: "Kanit", sans-serif;
    font-size: 20px;
    font-weight: 500;
    margin-top: 20px;
}
.news-detail-ttl h1 {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.4;
}
.news-detail-txt {
    line-height: 1.8;
    hyphens: auto;
    text-align: justify;
    word-break: normal;
    margin-bottom: 100px;
}
.news-detail-txt h2 {
    font-size: 20px;
    font-weight: 900;
    margin-bottom: 1em;
}
.news-detail-txt a {
    color: #0383cb;
    text-decoration: underline;
    transition-duration: 0.2s;
    position: relative;
    display: inline-block;
}
.news-detail-txt a.external-link{
    padding-right: 12px;
}
.news-detail-txt a.external-link:after{
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    background: url(../img/external.svg) no-repeat;
    position: absolute;
    top:4px;
    right:2px;
}
.news-detail-txt a.hover{
    opacity: 0.5;
}
.news-detail-txt img.eyecatch {
    width: 100%;
}
.news-detail-txt img {
    width: auto;
    margin: 30px 0;
}
.news-detail-txt > * {
    margin-bottom: 20px;
}
.news-detail-txt > *:last-child {
    margin-bottom: 0;
}
.news-detail-txt .aligncenter {
    margin: auto;
}
.news-detail .common-btn {
    margin: 0 auto;
}
@media screen and (max-width: 896px) {
    .news-detail-ttl {
        margin-bottom: 20px;
        padding-bottom: 20px;
    }
    .news-detail-ttl .date {
        font-size: 18px;
    }
    .news-detail-ttl h1 {
        font-size: 20px;
    }
    .news-detail-txt h2 {
        font-size: 16px;
    }
    .news-detail-txt {
        font-size: 14px;
        margin-bottom: 80px;
    }
    .news-detail-txt figure {
        margin: 20px 0;
    }
}
.contact .common-btn {
    margin: 40px auto 0;
}
.contact-lead {
    max-width: 620px;
    font-size: 16px;
    line-height: 1.8;
    margin: 0 auto 40px;
}
.contact-lead a {
    text-decoration: underline;
}
.contact-step {
    max-width: 620px;
    display: flex;
    justify-content: space-between;
    margin: 0 auto;
    margin-bottom: 100px;
}
.contact-step li {
    width: calc(33.33% - 8px);
    height: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    background: #fff;
    border: solid 1px #666;
    border-radius: 8px;
}
.contact-step li.active {
    color: #fff;
    background: #666;
}
form dl {
    display: flex;
    margin-bottom: 40px;
}
form dt {
    width: 240px;
    display: flex;
    align-items: center;
}
form dt span {
    /* width: 3em; */
    display: inline-block;
    font-size: 12px;
    font-weight: bold;
    color: #fff;
    text-align: center;
    background: #ff0048;
    border-radius: 100px;
    margin-left: 0.5em;
    padding: 0.2em 0.5em;
}
form dd {
    width: calc(100% - 240px);
}
form dd p {
    line-height: 2;
}
form select,
form input,
form textarea {
    width: 100%;
    background: #fff;
    border: solid 1px #666;
    border-radius: 8px;
    padding: 20px;
}
textarea {
    line-height: 2;
}
form input:focus,
form textarea:focus {
    border: solid 1px #000;
    box-shadow: 0 0 0 1px #000;
}
select:invalid,
input:invalid,
textarea:invalid,
select.error,
input.error,
textarea.error {
    background: #ffedef;
    border: solid 1px rgba(255, 100, 100, 1);
}
.select-box {
    position: relative;
    cursor: pointer;
}
.select-box:after {
    width: 0;
    height: 0;
    position: absolute;
    top: 50%;
    right: 20px;
    content: "";
    transform: translateY(-50%);
    pointer-events: none;
    border-top: 12px solid #000;
    border-right: 8px solid transparent;
    border-bottom: 0;
    border-left: 8px solid transparent;
    border-style: solid;
}
select option {
    color: #000;
}
select:has(option:checked[value=""]) {
    color: gray;
}
form textarea {
    height: 240px;
    resize: none;
}
form input[type=checkbox] {
    display: none;
}
form input[type=checkbox]+label,
form input[type=checkbox]+span {
    position: relative;
    display: inline-block;
    font-size: 16px;
    padding-left: 24px;
    transition-duration: 0.2s;
    cursor: pointer;
}
form input[type=checkbox]+label:hover,
form input[type=checkbox]+span:hover{
    opacity:0.5;
}
form input[type=checkbox]+label:before,
form input[type=checkbox]+span:before {
    width: 18px;
    height: 18px;
    position: absolute;
    top: 50%;
    left: 0px;
    z-index: 0;
    content: "";
    display: block;
    transform: translateY(-50%);
    border: 1px solid #000;
    border-radius: 5px;
    box-sizing: border-box;
}
form input[type=checkbox]:checked+label:before,
form input[type=checkbox]:checked+span:before {
    background: #000;
}
form input[type=checkbox]:checked+label:after,
form input[type=checkbox]:checked+span:after {
    width: 18px;
    height: 18px;
    position: absolute;
    top: 50%;
    left: 0px;
    z-index: 0;
    content: "";
    display: block;
    background: url(../img/check.svg) no-repeat;
    background-size: 90% 90%;
    background-position: center;
    transform: translateY(-50%);
    box-sizing: border-box;
}
.pp-notice {
    font-size: 16px;
    line-height: 1.8;
    text-align: center;
    margin-bottom: 20px;
}
.pp-notice a,
.recaptcha-note a {
    text-decoration: underline;
    transition-duration: 0.2s;
}
.pp-notice a.hover,
.recaptcha-note a.hover{
    opacity: 0.5;
}
.recaptcha-note {
    text-align: center;
    font-size: 12px;
    line-height: 1.8;
    margin-top: 50px;
}
.pp-checkbox {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}
.pp-checkbox label {
    font-weight: bold;
}
.error-massage {
    width: 100%;
    font-size: 14px;
    font-weight: bold;
    color: #ff0048;
    margin-top: 10px;
    display: none;
}
.pp-checkbox .error-massage {
    text-align: center;
}
dd .wpcf7-not-valid-tip {
    display: none;
}
/* dd:has(.wpcf7-not-valid-tip) .error-massage.is-show {
    display: block;
} */
.error-massage.is-show {
    display: block;
}
.contact-back {
    width: 180px;
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 14px;
    color: #fff;
    background: #888;
    transition-duration: 0.2s;
    border: solid 2px #888;
    border-radius: 100px;
    margin: 40px auto 0;
}
.contact-back.hover {
    color: #888;
    background: #fff;
}
.complete-txt .contact-thanks {
    font-size: 20px;
    line-height: 1.8;
    text-align: center;
    margin-bottom: 40px;
}
.complete-txt .contact-notice {
    max-width: 620px;
    display: flex;
    justify-content: center;
    font-size: 16px;
    line-height: 2;
    margin: 0 auto;
    margin-bottom: 40px;
}
.complete-txt .contact-notice li {
    position: relative;
    padding-left: 1em;
}
.complete-txt .contact-notice li:before {
    width: 1em;
    position: absolute;
    top: 0;
    left: 0;
    content: "・";
    display: inline-block;
}
form .common-btn {
    margin-top: 40px;
}
.confirm_area {
    display: none;
}
.wpcf7-response-output{
    display: none;
}
@media screen and (max-width: 896px) {
    .contact-lead {
        font-size: 13px;
    }
    .contact-step {
        margin-bottom: 40px;
    }
    form dl {
        display: block;
        margin-bottom: 40px;
    }
    form dt {
        width: 100%;
        margin-bottom: 12px;
    }
    form dd {
        width: 100%;
    }
    .contact-notice {
        font-size: 12px;
        margin-bottom: 40px;
    }
    .pp-notice {
        font-size: 13px;
        hyphens: auto;
        text-align: justify;
        word-break: normal;
    }
    form input[type=checkbox]+label {
        font-size: 14px;
    }
    .contact-back {
        font-size: 16px;
        width: auto;
        padding: 0 1em;
    }
    .complete-txt .contact-thanks {
        font-size: 18px;
        margin-bottom: 40px;
    }
    .complete-txt .contact-notice{
        font-size: 12px;
    }
}
.pp-terms {
    padding-top: 200px;
}
.pp-terms-txt {
    font-size: 14px;
    line-height: 1.8;
    hyphens: auto;
    text-align: justify;
    word-break: normal;
    margin-bottom: 40px;
}
.pp-terms-txt h2 {
    font-size: 18px;
    font-weight: bold;
    text-align: left;
}
.pp-terms-txt a {
    text-decoration: underline;
    transition-duration: 0.2s;
}
.pp-terms-txt a.hover{
    opacity: 0.5;
}
.pp-terms-txt li {
    position: relative;
    text-align: left;
}
.pp-terms-txt ol.list-1 li {
    padding-left: 1.8em;
}
.pp-terms-txt ol.list-2 li {
    padding-left: 1em;
}
.pp-terms-txt ul.list-3 li {
    padding-left: 1em;
}
.pp-terms-txt ol li span {
    position: absolute;
    left: 0;
}
.pp-terms-txt ul.list-3 li:before {
    position: absolute;
    left: 0;
    content: "・";
}
.pp-terms-txt table,
.pp-terms-txt td,
.pp-terms-txt th {
    border-collapse: collapse;
    border: 1px solid #000;
}
.pp-terms-txt table {
    width: 100%;
    background: rgba(255, 255, 255, .5);
}
.pp-terms-txt tr:nth-child(1) {
    color: #fff;
    background: #000;
}
.pp-terms-txt tr:nth-child(1) th {
    border-right: solid 1px #fff;
}
.pp-terms-txt td {
    width: 68%;
    padding: 20px;
    text-align: left;
}
.pp-terms-txt th {
    width: 32%;
    padding: 20px;
}
@media screen and (max-width: 896px) {
    .pp-terms {
        padding-top: 140px;
    }
    .pp-terms-txt {
        font-size: 12px;
    }
    .pp-terms-txt h2 {
        font-size: 16px;
    }
}
.notfound h1 {
    display: block;
    font-family: "Kanit", sans-serif;
    font-size: 100px;
    font-weight: 500;
    margin-bottom: 40px;
}
.notfound h1 span {
    display: block;
    font-family: "Kanit", sans-serif;
    font-size: 50%;
    font-weight: 500;
}
.notfound {
    text-align: center;
    margin-bottom: 40px;
}
.notfound p {
    line-height: 2;
    text-align: center;
}
@media screen and (max-width: 896px) {
    .notfound h1 {
        font-size: 60px;
        margin-bottom: 40px;
    }
    .notfound {
        font-size: 14px;
        margin-bottom: 40px;
    }
}