@charset "UTF-8";

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

*{
    -webkit-box-sizing: border-box;
    -o-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
}
html {
	font-size: 62.5%;
    /* scroll-behavior: smooth; */
}

body {
    line-height:1;
}

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

nav ul,
ul {
    list-style:none;
}

blockquote, q {
    quotes:none;
}

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

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

/* change colours to suit your needs */
ins {
    background-color:#ff9;
    color:#000;
    text-decoration:none;
}

/* change colours to suit your needs */
mark {
    background-color:#ff9;
    color:#000;
    font-style:italic;
    font-weight:bold;
}

del {
    text-decoration: line-through;
}

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

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

/* change border colour to suit your needs */
hr {
    display:block;
    height:1px;
    border:0;
    border-top:1px solid #cccccc;
    margin:1em 0;
    padding:0;
}

input, select {
    vertical-align:middle;
}

.clearfix:after {
  content: ".";  /* 新しい要素を作る */
  display: block;  /* ブロックレベル要素に */
  clear: both;
  height: 0;
  visibility: hidden;
}


/*--------------------------------------
----------------------------------------

  共通設定

----------------------------------------
---------------------------------------*/
img{
    border: none;
    vertical-align: bottom;
    max-width: 100%;
    image-rendering: -webkit-optimize-contrast;
}
.clear{
    clear: both;
    display: block;
}

.center{
    text-align: center;
}
.normal{
    font-weight: normal;
}
.bold{
    font-weight: bold;
}
.mb5{
    margin-bottom: 5px;
}
.mb10{
    margin-bottom: 10px;
}
.mb15{
    margin-bottom: 15px;
}
.mb20{
    margin-bottom: 20px;
}
.mb25{
    margin-bottom: 25px;
}
.mb30{
    margin-bottom: 30px;
}
.mb35{
    margin-bottom: 35px;
}
.mb40{
    margin-bottom: 40px;
}
.mb45{
    margin-bottom: 45px;
}
.mb50{
    margin-bottom: 50px;
}
.mt5{
    margin-top: 5px;
}
.mt10{
    margin-top: 10px;
}
.mt15{
    margin-top: 15px;
}
.mt20{
    margin-top: 20px;
}
.mt25{
    margin-top: 25px;
}
.mt30{
    margin-top: 30px;
}
.mt35{
    margin-top: 35px;
}
.mt40{
    margin-top: 40px;
}
.mt45{
    margin-top: 45px;
}
.mt50{
    margin-top: 50px;
}
.ml5{
    margin-left: 5px;
}
.ml10{
    margin-left: 10px;
}
.ml15{
    margin-left: 15px;
}
.ml20{
    margin-left: 20px;
}
.ml25{
    margin-left: 25px;
}
.ml30{
    margin-left: 30px;
}
.ml35{
    margin-left: 35px;
}
.ml40{
    margin-left: 40px;
}
.ml45{
    margin-left: 45px;
}
.ml50{
    margin-left: 50px;
}
.mr5{
    margin-right: 5px;
}
.mr10{
    margin-right: 10px;
}
.mr15{
    margin-right: 15px;
}
.mr20{
    margin-right: 20px;
}
.mr25{
    margin-right: 25px;
}
.mr30{
    margin-right: 30px;
}
.mr35{
    margin-right: 35px;
}
.mr40{
    margin-right: 40px;
}
.mr45{
    margin-right: 45px;
}
.mr50{
    margin-right: 50px;
}
/* .caution{
    color: #F00;
} */
.black01{
    color: #000;
}
.orange01{
    color: #F90;
}
.orange02{
    color: #F60;
}
.gray01{
    color: #CCC;
}
.gray02{
    color: #999;
}
.gray03{
    color: #666;
}
.gray04{
    color: #333;
}
.red01{
    color: #FF0004;
}

.show_sp{
    display: none !important;
}
.show_sp02{
    display: none !important;
}

.mincho{
    font-family: "Noto Serif JP", serif;
}
.marugo{
    font-family:"ヒラギノ丸ゴ Pro W4","ヒラギノ丸ゴ Pro","Hiragino Maru Gothic Pro","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","HG丸ｺﾞｼｯｸM-PRO","HGMaruGothicMPRO";
}
.zen-kaku {
    font-family: "Zen Kaku Gothic Antique", sans-serif;
    font-weight: 500;
}

.zen-min {
    font-family: "Zen Old Mincho", serif;
}

/*--------------------------------------
----------------------------------------

  ボタン設定

----------------------------------------
---------------------------------------*/
button{
    background-color: transparent;
    border: none;
    cursor: pointer;
    outline: none;
    padding: 0;
    appearance: none;
}


/*--------------------------------------
----------------------------------------

  リンク設定

----------------------------------------
---------------------------------------*/
a:link,
a:visited {
    color: #000;
    text-decoration: none;
    transition: all .3s;
}
a:hover,
a:active {
    color: #000;
    text-decoration: none;
    transition: all .3s;
}
a.hover:hover img {
    filter: alpha(opacity=80);
    -moz-opacity: 0.80;
    opacity: 0.80;
}



/*--------------------------------------
----------------------------------------

  段落設定

----------------------------------------
---------------------------------------*/
h1{
    margin: 0;
    padding: 0;
}
h2{
    margin: 0;
    padding: 0;
}
h3{
    margin: 0;
    padding: 0;
}


/*--------------------------------------
----------------------------------------

  body設定

----------------------------------------
---------------------------------------*/
body{
    font-size: 1.6rem;
    line-height: 1.5;
    color: #000;
    /* font-family: "Noto Sans JP", sans-serif; */
    /* font-family: "Zen Old Mincho", serif; */
    font-family: "Zen Kaku Gothic Antique", sans-serif;
    font-weight: 500;
    overflow-x: hidden;
    background-color: #e2edf3;
}


/*--------------------------------------
----------------------------------------

  header

----------------------------------------
---------------------------------------*/
header{
    margin: 0;
    padding: 0;
}

.header{
    margin: 0;
    padding: 0;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
}
.header-in{
    margin: 0 auto;
    padding: 0;
}

.header-contact {
    max-width: 115px;
    width: 100%;
    /* position: absolute; */
    position: fixed;
    top: 24px;
    right: 125px;
    z-index: 105;
    overflow: hidden;
    border-radius: 999px;
}
.header-contact a {
    display: block;
    padding: 8px 10px;
    border-radius: 999px;
    background-color: rgba(255,255,255,0.5);
    font-family: "Zen Kaku Gothic Antique", sans-serif;
    font-size: 1.2rem;
    font-weight: bold;
    color: #0071e7;
    letter-spacing: 0.1em;
    width: 100%;
    position: relative;
    transition: all .3s;
}
.header-contact a .inner {
    display: flex;
    position: relative;
}
.header-contact a p {
    flex: 1;
    white-space: nowrap;
    margin-right: 10px;
    display: flex;
    align-items: center;
    animation: loop 4s linear infinite;
}
@keyframes loop {
  0% { translate: calc(-100% - 1rem); }
  100% { translate: 0; }
}

.header-contact a .icon {
    display: inline-block;
    width: 12px;
    margin-left: 10px;
}
.header-contact a .icon img {
    display: block;
}
.header-contact a .icon_w {
    display: none;
}
.header-contact.active a,
.header-contact a:hover {
    background-color: #0071e7;
    color: #fff;
}
.header-contact.active a .icon_b,
.header-contact a:hover .icon_b {
    display: none;
}
.header-contact.active a .icon_w,
.header-contact a:hover .icon_w {
    display: block;
}

.header-contact.active {
    position: fixed;
}

@media screen and (max-width: 768px) {
    .header-contact {
        top: 24px;
        right: 85px;
        z-index: 105;
    }
    .header-contact a {
        padding: 8px 10px;
        font-size: 1.2rem;
        background-color: rgba(255, 255, 255, 0.8);
    }
    .header-contact a p {
        margin-right: 10px;
    }

    .header-contact a .icon {
        width: 12px;
        margin-left: 10px;
    }
}


/*------
  ナビ
-------------------------*/
nav{
    margin: 0;
    padding: 0;
}
.gnav{
    margin: 0 auto;
    padding: 0 10px;
    width: 100%;
}

.gnav ul{
    margin: 0;
    padding: 0;
    list-style: none;
}
.gnav ul li{
    margin: 0;
    padding: 0;
}


/*------
  ハンバーガーメニュー
-------------------------*/
.hamburger{
    width: 45px;
    height: 15px;
    position: fixed;
    top: 30px;
    right: 40px;
    z-index: 110;
}
.hamburger.active {
    position: fixed;
}
.menu-trigger,
.menu-trigger span {
    display: inline-block;
    -webkit-transition: all .4s;
    transition: all .4s;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}
.menu-trigger.active span{
    background-color: #231815;
}
.menu-trigger {
    margin-right: 0;
    display: block;
    position: relative;
    left: 0;
    top: 0;
    z-index: 9999999;
    width: 100%;
    height: 100%;
}

.menu-trigger span {
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    width: 100%;
    height: 1px;
    background-color: #231815;
    display: inline-block;
}
.menu-trigger span:nth-of-type(1) {
    top: 0;
}
.menu-trigger span:nth-of-type(2) {
    top: 7px;
}
.menu-trigger span:nth-of-type(3) {
    top: 14px;
}

.menu-trigger.active span:nth-of-type(1) {
    -webkit-transform: translateY(10px) rotate(-20deg);
    transform: translateY(10px) rotate(-20deg);
}
.menu-trigger.active span:nth-of-type(2) {
    opacity: 0;
}
.menu-trigger.active span:nth-of-type(3) {
    -webkit-transform: translateY(-4px) rotate(20deg);
    transform: translateY(-4px) rotate(20deg);
}

@media screen and (max-width: 768px) {
    .hamburger {
        height: 15px;
        top: 35px;
        right: 10px;
    }

}

/*------
  overlay
-------------------------*/
#overlay{
    display: none;
    width: 100%;
    height:100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    background: #fff;
    padding: 85px 15px 0;
}

#overlay .inner {
    max-width: 1130px;
    margin: 0 auto;
    position: relative;
    font-family: "Zen Old Mincho", serif;
}

#overlay .heading {
    font-size: min(7vw,7rem);
    text-align: left;
    letter-spacing: 0.1em;
}

#overlay .contact {
    max-width: 520px;
    width: 100%;
    position: absolute;
    bottom: 0;
    right: 0;
    display: flex;
    align-items: center;
}
#overlay .contact-in {
    flex: 1;
    margin-right: 3%;
}
#overlay .contact .lead {
    margin-bottom: 10px;
    font-size: 2.6rem;
}
#overlay .contact .text01 {
    margin-bottom: 10px;
    font-size: 1.4rem;
    color: #333;
}
#overlay .contact .text02 {
    font-size: 1.6rem;
    color: #333;
    font-weight: bold;
}
#overlay .contact-link {
    max-width: 175px;
    width: 100%;
    position: relative;
}
#overlay .contact-link .circle {
    max-width: 175px;
    width: 100%;
    position: relative;
    margin: 30px auto 0;
    transition: all .3s;
}
#overlay .contact-link .circle::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url(../img/top/link-deco-contact-img-off.svg);
    background-size: contain;
    background-repeat: no-repeat;
}
#overlay .contact-link .circle .img {
    max-width: 22px;
    transition: all .3s;
}
#overlay .contact-link:hover .circle .img {
    max-width: 40px;
}

/* ホバー時 */
#overlay .contact-link:hover .circle {
    transform: scale(0.8);
}
#overlay .contact-link:hover .circle::before {
    background-image: url(../img/top/link-deco-contact-img-on.svg);
    animation: spin 5s linear infinite;
    transform: rotate(0deg);
}

.menu-wrap {
    display: flex;
    padding: 55px 0 0 0;
    gap: 3%;
}
ul.menu{
    width: 25%;
    margin: 0 15px 0 0;
    padding: 55px 0 0 0;
    list-style: none;
}
ul.menu > li{
    margin: 0 0 30px 0;
    padding: 0;
}
ul.menu > li > a{
    width: fit-content;
    margin: 0;
    padding: 10px 0;
    display: block;
    font-size: 3.6rem;
    color: #000;
    text-decoration: none;
    font-weight: bold;
    letter-spacing: 0.1em;
    line-height: 1.3;
}
ul.menu > li > a p span {
    display: block;
    font-size: 1rem;
    letter-spacing: normal;
}
ul.menu > li .btn {
    display: block;
    position: relative;
    max-width: 60px;
    width: 100%;
    height: 30px;
    margin: 15px 0 0;
    padding: 0;
    background-color: rgba(255, 255, 255, 0.5);
    border-radius: 999px;
    box-shadow: 0px 0px 8px -1px rgba(0, 0, 0, 0.15);
    transition: all .3s;
}
ul.menu > li .btn::before {
    content: "";
    display: inline-block;
    width: 20px;
    height: 100%;
    background-image: url(../img/common/arrow_b.svg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center center;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    transition: all .3s;
}
ul.menu > li > a:hover .btn {
    background-color: #0071e7;
}
ul.menu > li > a:hover .btn::before {
    background-image: url(../img/common/arrow_w.svg);
}

ul.menu li > ul.menu-child {
    margin: 10px 0 0;
    padding: 0 0 0 3px;
    width: 100%;
}
ul.menu li > ul.menu-child li a {
    display: block;
    width: fit-content;
    margin: 0 0 10px 0;
    padding: 0 0 10px;
    font-size: 1.4rem;
    font-weight: 500;
    color: #0071e7;
}
ul.menu li > ul.menu-child li a:hover {
    opacity: .7;
}

@media screen and (max-width: 768px) {
    #overlay{
        width: 100%;
        height:100%;
        padding: 85px 13% 40px;
        overflow-y: scroll;
    }

    #overlay .heading {
        font-size: 3.2rem;
        letter-spacing: 0.1em;
    }

    #overlay .contact {
        width: 100%;
        position: static;
        flex-direction: column;
    }
    #overlay .contact-in {
        margin-right: 0
    }
    #overlay .contact .lead {
        margin-bottom: 10px;
        font-size: 2.6rem;
    }
    #overlay .contact .text01 {
        margin-bottom: 10px;
        font-size: 1.4rem;
    }
    #overlay .contact .text02 {
        font-size: 1.6rem;
    }
    #overlay .contact-link {
        max-width: 100%;
        width: 100%;
    }
    #overlay .contact-link .circle {
        max-width: 95px;
        width: 100%;
        margin: 0 0 0 auto;
    }
    #overlay .contact-link .circle::before {
        background-image: url(../img/top/link-deco-contact-img-on.svg);
        background-size: contain;
        background-repeat: no-repeat;
        animation: spin 5s linear infinite;
        transform: rotate(0deg);
    }
    #overlay .contact-link .circle .img {
        max-width: 27px;
    }
    #overlay .contact-link:hover .circle {
        transform: scale(1);
    }

    .menu-wrap {
        flex-direction: column;
        padding: 40px 0 0 0;
        gap: 0;
    }
    ul.menu{
        width: 100%;
        margin: 0 15px 0 0;
        padding: 0 0 0 0;
    }
    ul.menu > li{
        margin: 0 0 25px 0;
    }
    ul.menu > li > a{
        width: fit-content;
        margin: 0;
        padding: 0;
        font-size: 2.2rem;
    }
    ul.menu > li > a p span {
        display: inline-block;
        font-size: 1rem;
        margin-left: 10px;
        vertical-align: 4px;
    }
    ul.menu > li .btn {
        max-width: 58px;
        height: 30px;
        margin: 7px 0 0;
    }
    ul.menu > li .btn::before {
        width: 18px;
        height: 100%;
    }
    ul.menu li > ul.menu-child {
        margin: 15px 0 0;
        padding: 0 0 0 3px;
        width: 100%;
        display: flex;
        flex-wrap: wrap;
    }
    ul.menu li > ul.menu-child li {
        width: 50%;
    }
    ul.menu li > ul.menu-child li a {
        margin: 0 0 10px 0;
        padding: 0 0 10px;
        /* font-size: 1.2rem; */
    }
}


/*--------------------------------------
----------------------------------------

  footer

----------------------------------------
---------------------------------------*/
footer {
    margin: 0;
    padding: 0;
}

.footer {
    margin: 0;
    padding: 0;
}


.footer-contact {
    position: relative;
    z-index: 10;
    padding-bottom: 0;
}
.footer-contact-in {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 10% 0;
    min-height: 740px;
    text-align: center;
    background-image: url(../img/top/sec05-bg-pc.png);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-position: top;
}
.footer-contact-in:hover {
    background-image: url(../img/top/sec05-bg-hover.png);
}
.footer-contact-in .heading {
    margin-bottom: 15px;
    font-family: "Zen Old Mincho", serif;
    font-size: 4.7rem;
    font-weight: normal;
    letter-spacing: 0.1em;
}
.footer-contact-in .desc {
    font-size: 1.4rem;
    color: #333;
    letter-spacing: 0.08em;
    line-height: 2.2;
}
.footer-contact-in .desc span {
    display: block;
    font-size: 1.6rem;
    font-weight: bold;
}
.footer-contact-in .circle {
    max-width: 155px;
    width: 100%;
    position: relative;
    margin: 30px auto 0;
    transition: all .3s;
}
.footer-contact-in .circle .img {
    max-width: 20px;
    transition: all .3s;
}
.footer-contact-in:hover .circle .img {
    max-width: 40px;
}

.footer-contact-in .circle::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url(../img/top/link-deco-contact-img-off.svg);
    background-size: contain;
    background-repeat: no-repeat;
}

/* ホバー時 */
.footer-contact-in:hover .circle {
    transform: scale(0.8);
}
.footer-contact-in:hover .circle::before {
    background-image: url(../img/top/link-deco-contact-img-on.svg);
    animation: spin 5s linear infinite;
    transform: rotate(0deg);
}
/* アニメーション定義 */
@keyframes spin {
  from { transform:  rotate(0deg); }
  to   { transform:  rotate(360deg); }
}

.footer-in {
    margin: 0 auto;
    padding: 30% 0 45vh;
}
.footer-in .address {
    margin-bottom: 15px;
    line-height: 1.7;
}
.footer-in .address .name {
    margin-bottom: 10px;
    font-size: 1.5rem;
}
.footer-in .address .text {
    font-size: 1.4rem;
}
.footer-in .link {
    display: inline-block;
    font-size: 1.3rem;
    color: #0071e7;
}
.footer-in .link span {
    display: inline-block;
    width: 10px;
    height: 10px;
    margin-right: 5px;
    border-radius: 999px;
    background-color: #0071e7;
}
.footer-in .link:hover {
    opacity: 0.7;
}

.logobox {
    height: fit-content;
    position: fixed;
    left: 30px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 999;
}
.logobox h1 {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.logobox .img {
    display: block;
    width: 22px;
    margin: 0 0 10px 0;
}
.logobox p {
    font-size: 1rem;
    font-weight: 500;
    writing-mode: vertical-rl;
    letter-spacing: 0.08em;
    color: #333;
}

#pagetop {
    margin: 0;
    padding: 0;
    position: fixed;
    bottom: 50px;
    right: 30px;
    width: 60px;
    height: auto;
    z-index: 200;
}
#pagetop img {
    width: 100%;
}

@media screen and (max-width: 980px) {
    .logobox {
        left: 15px;
    }
    .logobox .img {
        width: 19px;
    }
}

@media screen and (max-width: 768px) {
    .footer-contact {
        position: relative;
        z-index: 10;
        padding-bottom: 0;
    }
    .footer-contact-in {
        padding: 10% 7%;
        min-height: 495px;
        background-image: url(../img/top/sec05-bg-sp.png);
        background-repeat: no-repeat;
        background-size: 100% 100%;
        background-position: top;
    }
    .footer-contact-in:hover {
        background-image: inherit;
    }
    .footer-contact-in .heading {
        margin-bottom: 15px;
        font-size: 3.3rem;
        letter-spacing: 0.1em;
        line-height: 1.3;
    }
    .footer-contact-in .desc {
        font-size: 1.4rem;
        letter-spacing: 0.03em;
        line-height: 2.2;
    }
    .footer-contact-in .desc span {
        font-size: 1.6rem;
    }
    .footer-contact-in .circle {
        max-width: 145px;
        margin: 30px auto 0;
        transition: all .3s;
    }
    .footer-contact-in .circle .img {
        max-width: 40px;
    }
    .footer-contact-in .circle::before {
        background-image: url(../img/top/link-deco-contact-img-on.svg);
        background-size: contain;
        background-repeat: no-repeat;
        animation: spin 5s linear infinite;
        transform: rotate(0deg);
    }
    .footer-contact-in:hover .circle {
        transform: scale(1);
    }

    .footer-in {
        margin: 0 auto;
        padding: 40vh 0 40vh;
    }
    .footer-in .address {
        margin-bottom: 15px;
        line-height: 1.7;
    }
    .footer-in .address .name {
        margin-bottom: 10px;
        font-size: 1.4rem;
    }
    .footer-in .address .text {
        font-size: 1.2rem;
        letter-spacing: 0.008em;
    }
    .footer-in .address .text + .text {
        margin-top: 5px;
    }
    .footer-in .link {
        font-size: 1.2rem;
    }
    .footer-in .link span {
        width: 8px;
        height: 8px;
        margin-right: 5px;
    }

    .logobox {
        left: 10px;
    }
    .logobox .img {
        width: 15px;
        margin: 0 0 6px 0;
    }
    .logobox p {
        font-size: 1rem;
    }

    #pagetop {
        right: 8px;
        width: 60px;
        z-index: 100;
    }
}


/*-------------------------
  section
-------------------------*/
section{
    margin: 0;
    padding: 0;
}

article{
    margin: 0;
    padding: 0;
}



/*--------------------------------------
----------------------------------------

  table設定

----------------------------------------
---------------------------------------*/
table.table_style01{
    margin: 0;
    padding: 0;
    width: 100%;
    border-collapse: collapse;
}
table.table_style01 th{
    margin: 0;
    padding: 20px;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px dotted #CCCCCC;
}
table.table_style01 td{
    margin: 0;
    padding: 20px;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px dotted #CCCCCC;
}


/*--------------------------------------
----------------------------------------

  form設定 IE_CSS3

----------------------------------------
---------------------------------------*/
input[type="submit"] {
    -webkit-appearance: none;
    border-radius: 0;
}
input[type="text"],
input[type="email"],
textarea {
    padding: 3px;
    font-size: 16px;
    border: 1px solid #CCC;
    border-radius: 3px;
}
textarea {
    width: 100%;
}
.w100 {
    width: 100%;
}
input[type="submit"] {
    border: none;
    background-color: #0055A7;
    width: 250px;
    padding: 15px 0;
    text-align: center;
    cursor: pointer;
    color: #FFF;
    font-weight: bold;
    font-size: 18px;
    margin: 0 10px 10px;
}
input[type="submit"].back {
    background-color: #666;
}
input[type="submit"]:hover {
    opacity: 0.8;
}
input::-webkit-input-placeholder {
    color: #999;
}
input:-ms-input-placeholder {
    color: #999;
}
input::placeholder {
    color: #999;
}



/*--------------------------------------
----------------------------------------

  sp設定

----------------------------------------
---------------------------------------*/
@media screen and (max-width: 768px) {
    .hamburger {
        display: block;
    }

    .show_pc {
        display: none !important;
    }

    .show_sp {
        display: block !important;
    }

    .show_sp02 {
        display: inline !important;
    }
}


/*--------------------------------------
----------------------------------------

  レイアウト・共通

----------------------------------------
---------------------------------------*/
.bg-blur {
    position: relative;
}
.bg-blur::before {
    content: "";
    display: inline-block;
    width: 100%;
    height: 100%;
    background-image: url(../img/common/body-bg.png);
    background-repeat: repeat;
    background-size: 100px;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 5;
}
.container {
    position: relative;
    z-index: 10;
    max-width: calc(1260px + 30px);
    margin: 0 auto;
    padding: 0 15px;
}

.sec {
    padding-bottom: 170px;
}
.l-column {
    display: flex;
}

/* 輪っか */
.circle {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    max-width: 90px;
    width: 100%;
    height: fit-content;
    aspect-ratio: 1/1;
    transition: all .5s;
}
.circle .img {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    left: 0;
    margin: auto;
    width: 100%;
    height: 100%;
    transition: all .5s;
}
.circle::before {
    content: "";
    display: inline-block;
    width: 100%;
    height: 100%;
    background-image: url(../img/top/link-deco-img00.svg);
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute;
    top: 0;
    left: 0;
    transition: all .5s;
}
.circle-wrap:hover .circle::before {
    transform: scale(1.2);
}

/* ボタン */
.btn-base {
    display: block;
    max-width: 180px;
    width: 100%;
    height: 45px;
    margin: 0 auto;
    padding: 10px;
    font-size: 1.6rem;
    font-family: "Zen Old Mincho", serif;
    font-weight: bold;
    background-color: rgba(255,255,255,.4);
    text-align: center;
    letter-spacing: 0.02em;
    border-radius: 999px;
    transition: all .3s;
}
.btn-base:hover {
    color: #fff;
    background-color: #0071e7;
}

/* 見出し */
.heading-type01 {
    font-family: "Zen Old Mincho", serif;
    font-size: 7rem;
    font-weight: 500;
    text-align: center;
    letter-spacing: 0.1em;
}
.heading-type01 span {
    display: block;
    font-family: "Zen Kaku Gothic Antique";
    font-size: 1.3rem;
    font-weight: bold;
    letter-spacing: 0.28em;
    color: #333;
}
.heading-type02 {
    margin-bottom: 50px;
    font-family: "Zen Old Mincho", serif;
    font-size: 5rem;
    font-weight: normal;
    text-align: center;
    letter-spacing: 0.1em;
}
.heading-type02 span {
    display: block;
    font-size: 3.2rem;
    letter-spacing: 0.28em;
}

@media screen and (max-width: 1400px) {
    .container {
        max-width: 100%;
        padding: 0 10.7%;
    }

}

@media screen and (max-width: 768px) {
    .sec {
        padding-bottom: 100px;
    }

    /* ボタン */
    .btn-base {
        max-width: 155px;
        height: 33px;
        padding: 5px;
        font-size: 1.4rem;
        color: #fff !important;
        background-color: #0071e7;
        letter-spacing: 0.02em;
    }


    /* 見出し */
    .heading-type01 {
        font-size: 4rem;
    }
    .heading-type01 span {
        font-size: 1.3rem;
    }

    .heading-type02 {
        margin-bottom: 40px;
        font-size: 3.2rem;
    }
    .heading-type02 span {
        font-size: 2rem;
        letter-spacing: 0.15em;
    }

    .circle-wrap:hover .circle::before {
        transform: scale(1);
    }

}


/*--------------------------------------
----------------------------------------

  topページ

----------------------------------------
---------------------------------------*/
.mainvisual {
    width: 100%;
    position: relative;
    overflow: visible;
    padding-bottom: 150px;
}
.mainvisual-in {
    width: 100%;
    height: 100vh;
    background: linear-gradient(90deg, #d7ecff 0%, #ededff 50%, #ffe9dc 100%) fixed;
    background-size: 300% 300%;
    animation: GradietionAnimation 10s ease infinite;
    position: relative;
    overflow: visible;
}
@keyframes GradietionAnimation {
    0% {
        background-position: 0% 50%
    }
    50% {
        background-position: 100% 50%
    }
    100% {
        background-position: 0% 100%
    }
}
.mainvisual .content {
    position: relative;
    z-index: 10;
    height: 100vh;
    mix-blend-mode: color-burn;
    padding: 0 0 3%;
}
.mainvisual .img {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    z-index: -1;
    width: 100%;
    min-width: 1300px;
    aspect-ratio: 16/9;
}
.mainvisual .catch {
    max-width: 1120px;
    width: 77%;
    height: 100%;
    margin: 0 auto;
    padding: 0 0 3%;
    position: absolute;
    top: -10%;
    left: 0;
    right: 0;
    display: flex;
    align-items: flex-end;
    z-index: 10;
}
.mainvisual .catch p {
    font-size: 8.1rem;
    font-size: min(7vw,9rem);
    letter-spacing: 0.1em;
    line-height: 1.3;
    font-family: "Zen Old Mincho", serif;
    font-weight: normal;
}
.mainvisual .catch p span {
    font-family: "Zen Kaku Gothic Antique", sans-serif;
    font-weight: normal;
}
.mainvisual-bottom_bg {
    display: block;
    width: 100%;
    height: 250px;
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(240, 246, 249, 0.74) 50%, rgba(226, 237, 243, 1));
    position: absolute;
    left: 0;
    bottom: 50px;
}


/*------
  main
------------------------*/
.main {
    padding: 0;
}

.top-sec01 {
    padding-bottom: 190px;
}
.top-sec01-in {
    max-width: 1120px;
    margin: 0 auto;
    justify-content: space-between;
}
.top-sec01-in .image {
    max-width: 526px;
    width: 47%;
}
.top-sec01-in .content {
    flex: 1;
    padding-left: 11%;
    position: relative;
    letter-spacing: 0.08em;
}
.top-sec01-in .content .lead {
    margin-bottom: 20px;
    font-size: 3rem;
    line-height: 1.7;
}
.top-sec01-in .content .text {
    margin-bottom: 20px;
    font-size: 1.4rem;
    line-height: 2.5;
    color: #333;
}
.top-sec01-in .content .text span {
    font-weight: bold;
}
.top-sec01-in .content a {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: bold;
    color: #0071e7;
    position: relative;
    padding-right: 25px;
}
.top-sec01-in .content a .maru {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    margin: auto 0;
    display: inline-block;
    margin-right: 5px;
    width: 12px;
    height: 12px;
    border-radius: 100%;
    background-color: #0071e7;
    transition: all .3s;
}
.top-sec01-in .content a .hover-img {
    opacity: 0;
    display: block;
    position: absolute;
    top: 3px;
    right: -3px;
    width: 22px;
    transition: all .3s;
}
.top-sec01-in .content a:hover .maru {
    opacity: 0;
}
.top-sec01-in .content a:hover .hover-img {
    opacity: 1;
    transform: scale(1.3);
}

.top-sec01-in .content .deco {
    max-width: 102px;
    width: 61%;
    position: absolute;
    bottom: -105px;
    right: -105px;
}

.top-sec02-01 {
    margin-top: 165px;
}
.top-sec02-01 .item {
    display: block;
    width: 100%;
    margin-bottom: 70px;
    padding: 6% 4%;
    position: relative;
    z-index: 1;
}
.top-sec02-01 .item::before {
    content: "";
    display: inline-block;
    width: 100%;
    height: 100%;
    background-image: url(../img/top/sec02-img01-pc.jpg);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    transition: all .5s;
    opacity: 0;
}
.top-sec02-01 .item:hover::before {
    opacity: 1;
}
.top-sec02-01 .item-in {
    max-width: 915px;
    height: 100%;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}
.top-sec02-01 .item-in .content {
    max-width: 345px;
}
.top-sec02-01 .item-in .title {
    margin-bottom: 20px;
    font-size: 3.4rem;
    font-weight: 500;
}
.top-sec02-01 .item-in .lead {
    margin-bottom: 10px;
    font-family: "Zen Old Mincho", serif;
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.8;
}
.top-sec02-01 .item-in .text {
    font-size: 1.4rem;
    color: #333;
    line-height: 2.5;
}
.top-sec02-01 .item02::before {
    background-image: url(../img/top/sec02-img02-pc.jpg);
    background-repeat: no-repeat;
    background-size: 100% 100%;
}
.top-sec02-01 .item-in02 {
    justify-content: flex-end;
}
.top-sec02-01 .circle-wrap:hover .circle::before {
    transform: scale(1.5);
}

.top-sec02-02 {
    justify-content: space-between;
    align-items: flex-start;
    max-width: 1140px;
    width: 100%;
    margin: 0 auto;
}
.top-sec02-02 .item {
    width: 23.5%;
    display: block;
}
.top-sec02-02 .item .title {
    margin-bottom: 25px;
    /* font-size: 2.8rem; */
    font-size: min(2.07vw,2.8rem);
    line-height: 1;
}
.top-sec02-02 .item .text {
    font-family: "Zen Old Mincho", serif;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.75;
}
.top-sec02-02 .item .arrow {
    max-width: 70px;
    margin-top: 20px;
}
.top-sec02-02 .item:nth-of-type(2) {
    margin-top: 53px;
}
.top-sec02-02 .item:nth-of-type(3) {
    margin-top: calc(53px*2);
}
.top-sec02-02 .item:nth-of-type(4) {
    margin-top: calc(53px*3);
}

.top-sec02-02 .item .arrow-wrap {
    max-width: 100px;
    overflow: hidden;
}
.top-sec02-02 .item .arrow {
    display: inline-block;
    transition: none;
    animation: none;
    overflow: hidden;
    transition: all .5s;
}
/* .top-sec02-02 .item:hover .arrow {
    animation: arrow-slide-out-in 1s ease-in-out forwards;
} */
.top-sec02-02 .arrow.animate {
  animation: arrow-slide-out-in 1s ease-in-out forwards;
}
@keyframes arrow-slide-out-in {
  0% {
    transform: translateX(0);
  }
  30% {
    transform: translateX(100%);
  }
  31% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}

.top-sec03 {
    padding-bottom: 100px;
}
.top-sec03-01 {
    max-width: 850px;
    margin: 55px auto 0;
    padding: 10px 10%;
    border: 1px solid #fff;
}
.top-sec03-01 .item {
    display: block;
    padding: 40px 35% 40px 0;
    border-bottom: 1px solid #fff;
    position: relative;
    cursor: pointer;
}
.top-sec03-01 .item:last-of-type {
    border: none;
}
.top-sec03-01 .item-lead {
    font-family: "Zen Old Mincho", serif;
    font-size: 1.8rem;
    letter-spacing: 0.06em;
    margin-bottom: 15px;
}
.top-sec03-01 .item-title {
    font-size: 2.8rem;
    font-weight: 500;
    margin-bottom: 15px;
}
.top-sec03-01 .item-desc {
    font-size: 1.3rem;
    font-weight: normal;
    letter-spacing: 0.04em;
    line-height: 2;
    color: #000;
}
.top-sec03-01 .item .circle {
    left: inherit;
    right: 30px;
    margin: auto 0;
}
.top-sec03-01 .item .circle .img02 {
    opacity: 0;
    width: 36px;
    display: block;
    margin: 0 auto;
}
.top-sec03-01 .item:hover .circle .img01 {
    opacity: 0;
}
.top-sec03-01 .item:hover .circle .img02 {
    opacity: 1;
}
.top-sec03 .btn {
    margin: 55px auto 25px;
}

.top-sec04 {
    padding-bottom: 120px;
}
.top-sec04 .lead {
    margin-top: 35px;
    font-size: 1.4rem;
    line-height: 2.4;
    text-align: center;
    color: #333;
}
.top-sec04 .lead span {
    font-weight: bold;
}
.top-sec04 .container {
    max-width: 100%;
    padding: 0;
}
.top-sec04 .slider01 {
    width: 100%;
    position: relative;
}
.slider01 {
    width: 100%;
    margin: 50px 0 0;
    padding: 0 0 50px;
}
.slider01 .slider-item {
    padding: 15px 18px;
    margin: 0;
}
.slider01 .slider-item a {
    display: block;
    padding: 40px 11% 50px;
    background-color: rgba(255, 255, 255, 0.25);
    transition: background-color 0.5s ease;
}
.slider01 .slider-item.slick-center a {
    background-color: rgba(255, 255, 255, 0.5);
    box-shadow: 0px 0px 6px 5px rgba(0, 0, 0, 0.02);
}
.slider01 .slider-item .item-lead {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.6rem;
    font-size: min(2vw,2.6rem);
    line-height: 1.6;
    min-height: 80px;
    transition: all .3s;
}
.slider01 .slider-item:hover .item-lead,
.slider01 .slider-item.slick-center .item-lead {
    color: #0071e7;
}
.slider01 .slider-item .item-img {
    display: block;
    margin: 25px auto 20px;
}
.slider01 .slider-item .item-desc p {
    font-size: 1.2rem;
    color: #707070;
}
.slider01 .slider-item .item-desc p span {
    color: #333;
}
.slider01 .slide-arrow {
    position: absolute;
    bottom: -45px;
    max-width: 85px;
    width: 100%;
    height: 45px;
    background-color: rgba(255,255,255,.5);
    box-shadow: 0px 0px 8px -2px rgba(0, 0, 0, 0.15);
    border-radius: 999px;
    padding: 10px;
    display: flex;
    align-items: center;
    cursor: pointer;
    transition: all .3s;
}
.slider01 .slide-arrow img {
    display: block;
    max-width: 27px;
    margin: 0 auto;
    transition: all .3s;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
}
.slider01 .slide-arrow .arrow_on {
    opacity: 0;
}
.slider01 .prev-arrow {
    left: 50%;
    transform: translateX(-100%) translateX(-110px);
}
.slider01 .next-arrow {
    left: 50%;
    transform: translateX(110px);
}
.slider01 .slide-arrow:hover {
    background-color: #0071e7;
}
.slider01 .slide-arrow:hover .arrow_off {
    opacity: 0;
}
.slider01 .slide-arrow:hover .arrow_on {
    opacity: 1;
}


@media screen and (max-width: 768px) {
    .mainvisual {
        padding-bottom: 0;
    }
    .mainvisual-in {
        width: 100%;
        height: 60vh;
    }
    .mainvisual .content {
        height: 50vh;
        padding: 0 0 3%;
    }
    .mainvisual .img {
        min-width: 100%;
        aspect-ratio: unset;
        top: 10%;
    }
    .mainvisual .catch {
        width: 80%;
        height: 100%;
        padding: 0 0 15%;
    }
    .mainvisual .catch p {
        font-size: min(12vw, 5rem);
    }
    .mainvisual-bottom_bg {
        height: 80px;
        background-image: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(240, 246, 249, 0.74) 50%, rgba(226, 237, 243, 1));
        bottom: 0;
    }


    /* main */
    .main {
        padding: 0;
    }
    .top-sec01 {
        padding-bottom: 100px;
    }
    .top-sec01-in {
        flex-direction: column;
    }
    .top-sec01-in .image {
        max-width: 526px;
        width: 100%;
        margin: 0 auto 25px;
    }
    .top-sec01-in .content {
        padding-left: 0;
    }
    .top-sec01-in .content .lead {
        margin-bottom: 30px;
        font-size: 2.2rem;
        line-height: 1.7;
    }
    .top-sec01-in .content .text {
        margin-bottom: 20px;
        font-size: 1.4rem;
        line-height: 2.5;
        color: #333;
    }
    .top-sec01-in .content .text span {
        font-weight: bold;
    }
    .top-sec01-in .content a {
        display: inline-block;
        font-size: 1.6rem;
        position: relative;
        padding-right: 25px;
    }
    .top-sec01-in .content a .maru {
        opacity: 0;
    }
    .top-sec01-in .content a .hover-img {
        opacity: 0;
        display: block;
        position: absolute;
        top: 3px;
        right: -5px;
        width: 22px;
        transition: all .3s;
    }
    .top-sec01-in .content a .hover-img {
        opacity: 1;
        transform: scale(1.3);
    }
    .top-sec01-in .content .deco {
        width: 57%;
    }

    .top-sec02-01 {
        margin: 20px auto 30px;
    }
    .top-sec02-01 .item {
        width: 100%;
        margin-bottom: 20px;
        position: relative;
        padding: 40px 0;
    }
    .top-sec02-01 .item::before {
        background-image: url(../img/top/sec02-img01-sp.jpg);
        opacity: 1;
    }
    .top-sec02-01 .item-in {
        height: auto;
        margin: 0 auto;
        display: block;
    }
    .top-sec02-01 .item-in .content {
        max-width: 345px;
    }
    .top-sec02-01 .item-in .title {
        margin-bottom: 20px;
        font-size: 2.2rem;
        text-align: center;
    }
    .top-sec02-01 .item-in .lead {
        margin-bottom: 20px;
        font-size: 1.6rem;
        line-height: 1.8;
        text-align: center;
    }
    .top-sec02-01 .item-in .text {
        display: none;
    }
    .top-sec02-01 .circle {
        position: relative;
    }
    .top-sec02-01 .item02::before {
        background-image: url(../img/top/sec02-img02-sp.jpg);
        background-repeat: no-repeat;
        background-size: 100% 100%;
    }
    .top-sec02-01 .item-in02 {
        justify-content: flex-end;
    }
    .top-sec02-02 {
        flex-direction: column;
        justify-content: space-between;
        max-width: 100%;
    }
    .top-sec02-02 .item {
        width: fit-content;
    }
    .top-sec02-02 .item:nth-of-type(even) {
        margin-left: auto;
    }
    .top-sec02-02 .item .title {
        margin-bottom: 20px;
        font-size: 2.2rem;
    }
    .top-sec02-02 .item .text {
        font-size: 1.6rem;
    }
    .top-sec02-02 .item .arrow {
        max-width: 70px;
        margin-top: 10px;
    }
    .top-sec02-02 .item:nth-of-type(2),
    .top-sec02-02 .item:nth-of-type(3),
    .top-sec02-02 .item:nth-of-type(4) {
        margin-top: 40px;
    }
    .top-sec02-02 .item .arrow-wrap {
        max-width: 100px;
        overflow: hidden;
    }
    .top-sec02-02 .item .arrow {
        display: inline-block;
        transition: none;
        animation: none;
        overflow: hidden;
    }
    .top-sec02-02 .item:hover .arrow {
        animation: none;
    }

    .top-sec03 {
        padding-bottom: 70px;
    }
    .top-sec03-01 {
        max-width: 850px;
        margin: 45px auto 0;
        padding: 10px 7.5%;
    }
    .top-sec03-01 .item {
        display: block;
        padding: 30px 0;
    }
    .top-sec03-01 .item:last-of-type {
        border: none;
    }
    .top-sec03-01 .item-lead {
        font-size: 1.6rem;
        margin-bottom: 10px;
        line-height: 2;
        letter-spacing: 0.02em;
    }
    .top-sec03-01 .item-title {
        font-size: 2.2rem;
        margin-bottom: 13px;
    }
    .top-sec03-01 .item-title span {
        font-size: 1.6rem;
        letter-spacing: -0.1em;
    }
    .top-sec03-01 .item-desc {
        font-size: 1.3rem;
        font-weight: normal;
        color: #000;
    }
    .top-sec03-01 .item .circle {
        left: 0;
        right: 0;
        margin: 15px auto 0;
        position: relative;
    }
    .top-sec03-01 .item .circle .img01 {
        opacity: 0;
    }
    .top-sec03-01 .item .circle .img02 {
        opacity: 1;
        width: 36px;
        display: block;
        margin: 0 auto;
    }
    .top-sec03 .btn {
        margin: 35px auto 0;
    }

    .top-sec04 {
        padding-bottom: 85px;
    }
    .top-sec04 .lead {
        margin-top: 30px;
        padding: 0 10.7%;
        font-size: 1.4rem;
        text-align: left;
    }
    .top-sec04 .lead span {
        font-weight: bold;
    }
    .top-sec04 .container {
        max-width: 100%;
        padding: 0;
    }
    .top-sec04 .slider01 {
        width: 100%;
        position: relative;
    }
    .slider01 {
        width: 100%;
        margin: 30px 0 0;
        padding: 0 0 20px;
    }
    .slider01 .slider-item {
        padding: 20px 5px;
        margin: 0;
    }
    .slider01 .slider-item a {
        display: block;
        padding: 20px 11% 30px;
        background-color: rgba(255, 255, 255, 0.5);
        box-shadow: 0px 0px 6px 5px rgba(0, 0, 0, 0.02);
    }
    .slider01 .slider-item .item-lead {
        font-size: 1.5rem;
        min-height: 50px;
    }
    .slider01 .slider-item .item-img {
        margin: 15px auto;
    }
    .slider01 .slider-item .item-desc p {
        font-size: 1.2rem;
    }
    .slider01 .slide-arrow {
        display: none !important;
    }

}


/*--------------------------------------
----------------------------------------

  下層ページ・共通

----------------------------------------
---------------------------------------*/
.low-page .container {
    max-width: calc(1120px + 8%);
    padding: 0 4%;

}
.low-heading {
    padding: 250px 0 180px;
    position: relative;
}
/* .low-heading .container {
    max-width: calc(1120px + 30px);
    padding: 0;
} */
.low-page p {
    font-size: 1.4rem;
    line-height: 2.5;
    letter-spacing: 0.08em;
}

/*------
  ページタイトル
----------------------*/
.page-title {
    margin-bottom: 30px;
    font-family: "Zen Old Mincho", serif;
    font-size: 6rem;
    font-size: min(7vw,6rem);
    font-weight: normal;
    letter-spacing: 0.1em;
    line-height: 1.3;
    color: #000;
}
.page-title span {
    /* font-size: 4.5rem; */
    font-size: min(4.8vw,4.5rem);
}

/*------
  パンくず
----------------------*/
.breadcrumb ul {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 1.2rem;
}
.breadcrumb li {
  display: flex;
  align-items: center;
  letter-spacing: 0.08em;
}
.breadcrumb li + li::before {
  content: "ー";
  margin: 0 8px;
  color: #333;
}
.breadcrumb a {
  text-decoration: none;
  color: #333;
}
.breadcrumb span {
  color: #939393;
}
.breadcrumb a:hover {
    opacity: .5;
}

.low-page {
    color: #333;
}

.low-sec {
    padding: 0 0 140px 0;
}

@media screen and (max-width: 768px) {
    .low-page .container {
        padding: 0 10.7%;
    }

    .low-heading {
        padding: 150px 0 90px;
    }

    /* ページタイトル */
    .page-title {
        margin-bottom: 20px;
        font-size: 3rem;
        letter-spacing: 0.1em;
        line-height: 1.3;
    }
    .page-title span {
        display: block;
    }
    /* パンくず */
    .breadcrumb ul {
        font-size: 1.1rem;
    }

}

/*--------------------------------------
----------------------------------------

  privacy

----------------------------------------
---------------------------------------*/
.low-sec01 {
    padding: 0 0 200px 0;
    color: #333;
}
.privacy .container {
    /* max-width: calc(1120px + 30px); */
}
.privacy .title {
    margin: 0 0 20px 0;
    font-family: "Zen Kaku Gothic Antique";
    font-weight: 500;
    color: #000;
}
.privacy .title01 {
    position: relative;
    padding: 0 0 20px 0;
    font-size: 3rem;
}
.privacy .title01::before {
    content: "";
    display: inline-block;
    height: 1px;
    width: 80px;
    background-color: #0071e7;
    position: absolute;
    left: 0;
    bottom: 0;
}
.privacy .title02 {
    font-size: 2.6rem;
}
.privacy .desc {
    margin: 0 0 70px 0;
}
.privacy .item {
    padding: 0 0 60px 0;
}
.privacy .item ul li {
    font-size: 1.4rem;
    letter-spacing: 0.08em;
    line-height: 2.5;
}

@media screen and (max-width: 768px) {
    .low-sec01 {
        padding: 0 0 150px 0;
    }

    .privacy .container {
        max-width: 100%;
    }
    .privacy .title {
        margin: 0 0 20px 0;
    }
    .privacy .title01 {
        padding: 0 0 20px 0;
        font-size: 2.4rem;
    }
    .privacy .title01::before {
        width: 60px;
    }
    .privacy .title02 {
        margin: 0 0 10px 0;
        font-size: 2rem;
    }
    .privacy p {
        line-height: 2;
    }
    .privacy .desc {
        margin: 0 0 60px 0;
    }
    .privacy .item {
        padding: 0 0 40px 0;
    }
    .privacy .item ul {
        padding: 10px 0 0 0;
    }
    .privacy .item ul li {
        line-height: 2;
        text-indent: -1.4rem;
        padding-left: 1.4rem;
    }

}


/*--------------------------------------
----------------------------------------

  contact

----------------------------------------
---------------------------------------*/
.low-heading .imgbox {
    position: absolute;
    bottom: 5%;
    left: 50%;
    transform: translateX(180px);
    max-width: 335px;
    width: 24%;
    z-index: 10;
}
.float {
  display: inline-block;
  animation: floatUpDown 4s ease-in-out infinite;
}
@keyframes floatUpDown {
  0% { transform: translateY(0); }
  50% { transform: translateY(-50px); }
  100% { transform: translateY(0); }
}

.contact .caution {
    font-size: 1.4rem;
    font-weight: 500;
    color: #ce2800;
    display: flex;
    align-items: center;
}
.contact .caution span {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 10px;
    border-radius: 999px;
    background-color: #ce2800;
}
.contact .form-area {
    max-width: 910px;
    margin: 40px auto;

    /* 仮 */
    /* height: 1000px;
    background-color: #ff0; */
}

/* フォームができるまで */
.contact .temporarily {
    margin: 40px auto;
}
.contact .temporarily .tel {
    font-size: 2rem;
    line-height: 1.8;
    color: inherit;
}
.contact .temporarily a {
    display: inline-block;
    width: fit-content;
    font-size: 2rem;
    color: inherit;
}
.contact .temporarily .tel a {
    pointer-events: none;
}
.contact .temporarily a.mail:hover {
    color: #0071e7;
    background-color: inherit;
}


@media screen and (max-width: 768px) {
    .low-heading .imgbox {
        bottom: 10%;
        transform: translateX(50px);
        width: 31%
    }
    @keyframes floatUpDown {
    0% { transform: translateY(0); }
    50% { transform: translateY(-20px); }
    100% { transform: translateY(0); }
    }

    .contact .temporarily .tel a {
        pointer-events: auto;
        background-color: inherit;
    }
    .contact .temporarily .tel a:hover {
        background-color: inherit;
    }

}


/*--------------------------------------
----------------------------------------

  service

----------------------------------------
---------------------------------------*/
.service .low-heading {
    padding-bottom: 100px;
}
.low-page01 .intro {
    position: relative;
    padding: 0 0 100px 0;
    width: 100%;
    height: auto;
    padding: 85px 0;
    text-align: center;
    overflow: hidden;
}
.low-page01 .intro .container {
    z-index: 15;
}
.low-page01 .intro::before {
    content: "";
    display: block;
    width: 100%;
    max-width: calc(8% + 1260px);
    aspect-ratio: 1 / 1;
    background: rgba(80, 102, 102, 0.1);
    border-radius: 100% 100% 0 0;
    margin: 0 auto;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: -1;
}
.low-page01 .intro .icon {
    display: block;
    max-width: 60px;
    margin: 0 auto 20px;
}
.low-page01 .intro .lead {
    margin: 0 0 30px 0;
    font-size: 3rem;
    line-height: 1.6;
    color: #000;
}
.low-page01 .intro .desc {
    width: fit-content;
    max-width: 720px;
    margin: 0 auto 75px;
    text-align: left;
}
.low-page01 .intro .text {
    font-weight: bold;
    line-height: 2.5;
}

.low-sec02 {
    position: relative;
    padding-bottom: 50px;
}
.low-sec02::before,
.low-sec02::after {
    content: "";
    display: inline-block;
    width: 100%;
    position: absolute;
    left: 0;
    z-index: 10;
}
.low-sec02::before {
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.27) 20%, rgba(255, 255, 255, 1));
    height: 330px;
    top: -330px;
}
.low-sec02::after {
    background-image: linear-gradient(360deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.27) 30%, rgba(255, 255, 255, 1));
    height: 180px;
    bottom: -180px;
}

.low-sec02-bg {
    display: inline-block;
    width: 100%;
    height: 100%;
    background-color: #fff;
    position: absolute;
    top: 0;
    left: 0;
    mix-blend-mode: normal;
    z-index: 6;
}

.low-sec02 .container {
    max-width: calc(1260px + 10%);
    padding: 0 5%;
}
.low-sec02 .items {
    flex-wrap: wrap;
    gap: 3%;
}
.low-sec02 .items .item {
    display: block;
    width: 48.5%;
    margin-bottom: 35px;
    padding: 6% 5% 7%;
    background-color: #fff;
    box-shadow: 0px 0px 6px 5px rgba(0, 0, 0, 0.03);
    position: relative;
    z-index: 1;
}
.low-sec02 .items .item-title {
    margin-bottom: 20px;
    font-size: 2.6rem;
    font-weight: 500;
}
.low-sec02 .items .item-lead {
    margin-bottom: 20px;
    font-family: "Zen Old Mincho", serif;
    font-size: 2rem;
    line-height: 2;
}
.low-sec02 .items .item-text {
    padding: 0 28.5% 0 0;
    font-size: 1.4rem;
    line-height: 2.5;
}
.low-sec02 .items .item .circle {
    top: inherit;
    left: inherit;
    bottom: 15%;
    right: 7%;
    margin: auto;
}
.low-sec02 .items .item::before {
    content: "";
    display: inline-block;
    width: 100%;
    height: 100%;
    background-image: url(../img/service/bg-img01.jpg);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    transition: all .5s;
    opacity: 0;
}
.low-sec02 .items .item:hover::before {
    opacity: 1;
}
.low-sec02 .items .item02::before {
    background-image: url(../img/service/bg-img02.jpg);
}
.low-sec02 .items .item03::before {
    background-image: url(../img/service/bg-img03.jpg);
}
.low-sec02 .items .item04::before {
    background-image: url(../img/service/bg-img04.jpg);
}
.low-sec02 .items .item05::before {
    background-image: url(../img/service/bg-img05.jpg);
}
.low-sec02 .items .item06::before {
    background-image: url(../img/service/bg-img06.jpg);
}

.low-bottom {
    position: relative;
    z-index: 10;
    padding: 200px 0 0;
}
.low-bottom .cont-in {
    max-width: 860px;
    margin: 0 auto;
}
.low-bottom-title {
    margin-bottom: 40px;
    font-size: 2.6rem;
    font-weight: 500;
    color: #000;
}
.low-bottom a {
    display: block;
    padding: 1.8% 0;
    border-bottom: 1px solid #fff;
}
.low-bottom a .cont-in {
    display: flex;
    align-items: center;
}
.low-bottom a p {
    font-family: "Zen Old Mincho", serif;
    font-size: 5rem;
    font-weight: normal;
}
.low-bottom a span {
    margin-left: 35px;
    font-size: 1.3rem;
    color: #333;
    font-weight: bold;
}
.low-bottom a:first-of-type {
    border-top: 1px solid #fff;
}
.low-bottom a .btn,
.low-sec a .btn {
    display: block;
    position: relative;
    width: 85px;
    /* width: 100%; */
    height: 45px;
    margin: 0 0 0 auto;
    padding: 0;
    background-color: rgba(255, 255, 255, 0.5);
    border-radius: 999px;
    box-shadow: 0px 0px 8px -1px rgba(0, 0, 0, 0.15);
    transition: all .3s;
}
.low-bottom a .btn::before,
.low-sec a .btn::before {
    content: "";
    display: inline-block;
    width: 26px;
    height: 100%;
    background-image: url(../img/common/arrow_b.svg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center center;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    transition: all .3s;
}
.low-bottom a:hover,
.low-sec a:hover {
    /* background-color: #fff; */
}
.low-bottom a:hover .btn,
.low-sec a:hover .btn {
    background-color: #0071e7;
}
.low-bottom a:hover .btn::before,
.low-sec a:hover .btn::before {
    background-image: url(../img/common/arrow_w.svg);
}

@media screen and (max-width: 768px) {
    .service .low-heading {
        padding-bottom: 50px;
    }
    .low-page01 .intro {
        padding: 0 0 100px 0;
        width: 100%;
        height: auto;
        padding: 65px 0 50px;
        text-align: center;
        overflow: hidden;
    }
    .low-page01 .intro .container {
        z-index: 15;
    }
    .low-page01 .intro::before {
        width: 95%;
    }
    .low-page01 .intro::after {
        content: "";
        display: block;
        width: 95%;
        height: 50%;
        max-width: calc(8% + 1260px);
        background: rgba(80, 102, 102, 0.1);
        margin: 0 auto;
        position: absolute;
        top: 95vw;
        left: 0;
        right: 0;
        z-index: -1;
    }
    .low-page01 .intro .icon {
        max-width: 50px;
        margin: 0 auto 20px;
    }
    .low-page01 .intro .lead {
        margin: 0 0 25px 0;
        font-size: 2rem;
        letter-spacing: 0.05em;
    }
    .low-page01 .intro .desc {
        width: fit-content;
        margin: 0 auto 35px;
        text-align: left;
    }
    .low-page01 .intro .text {
        line-height: 2.5;
    }

    .low-sec02 {
        padding-bottom: 40px;
    }
    .low-sec02::before,
    .low-sec02::after {
        content: "";
        display: inline-block;
        width: 100%;
        position: absolute;
        left: 0;
        z-index: 10;
    }
    .low-sec02::before {
        background-image: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.27) 20%, rgba(255, 255, 255, 1));
        height: 330px;
        top: -330px;
    }
    .low-sec02::after {
        background-image: linear-gradient(360deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.27) 30%, rgba(255, 255, 255, 1));
        height: 130px;
        bottom: -130px;
    }

    .low-sec02 .container {
        max-width: calc(1260px + 8%);
        padding: 0 10%;
    }
    .low-sec02 .items {
        flex-direction: column;
        gap: 0;
    }
    .low-sec02 .items .item {
        width: 100%;
        margin: 0 auto 20px;
        padding: 8% 5%;
    }
    .low-sec02 .items .item-title {
        margin-bottom: 15px;
        font-size: 2.2rem;
    }
    .low-sec02 .items .item-lead {
        margin-bottom: 15px;
        font-size: 1.6rem;
        line-height: 2;
    }
    .low-sec02 .items .item-text {
        /* padding: 0;
        font-size: 1.3rem;
        line-height: 2.2; */
        display: none;
    }
    .low-sec02 .items .item .circle {
        position: relative;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0;
        margin: 20px auto 0;
    }
    .low-sec02 .items .item::before {
        opacity: 1;
    }

    .low-bottom {
        z-index: 10;
        padding: 80px 0 60px;
    }
    .low-bottom .cont-in {
        padding: 0 10.7%;
    }
    .low-bottom-title {
        margin-bottom: 30px;
        font-size: 2.2rem;
    }
    .low-bottom a {
        padding: 15px 0;
    }
    .low-bottom a .cont-in {
        flex-wrap: wrap;
        justify-content: flex-start;
    }
    .low-bottom a p {
        font-size: 2.6rem;
        width: 100%;
        line-height: 1.5;
    }
    .low-bottom a span {
        margin-left: 0;
        font-size: 1.3rem;
    }
    .low-bottom a .btn {
        max-width: 60px;
        height: 35px;
        margin: 0 0 0 auto;
    }
    .low-bottom a .btn::before {
        width: 18px;
        height: 100%;
    }
}

/*------
  サービス 詳細ページ
----------------------*/
.low-page02 .low-sec02::before {
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.27) 20%, rgba(255, 255, 255, 1));
    height: 130px;
    top: -130px;
}
.low-page02-intro {
    position: relative;
    width: 100%;
    height: auto;
    padding: 35px 0 200px;
    text-align: center;
    overflow: hidden;
}
.low-page02-intro .image {
    max-width: 360px;
    width: 100%;
}
.low-page02-intro .content {
    flex: 1;
    text-align: left;
    padding: 0 0 0 8%;
}
.low-page02-intro .content-title {
    margin-bottom: 20px;
    font-size: 3rem;
    font-weight: 500;
    line-height: 1.65;
    letter-spacing: 0.06em;
    color: #000;
}
.low-page02-intro .content-text {
    font-size: 1.4rem;
}

.low-layout01 {
    padding-bottom: 100px;
}
.low-layout01::after {
    background-image: linear-gradient(360deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.27) 30%, rgba(255, 255, 255, 1));
    height: 200px;
    bottom: -200px;
}
.low-layout01 .item {
    max-width: 900px;
    margin: 0 auto;
    padding: 6% 7.5%;
    background-color: rgba(225,236,242,0.5);
}
.low-layout01 .item + .item {
    margin-top: 65px;
}
.low-layout01 .item-title {
    display: flex;
    margin-bottom: 30px;
    line-height: 1.76;
    font-size: 2.6rem;
    font-weight: 500;
    letter-spacing: 0.06em;
}
.low-layout01 .item-title p {
    font-size: 2.6rem;
    line-height: inherit;
}
.low-layout01 .item-title span {
    display: block;
    padding-right: 10px;
    color: #0071e7;
}
.low-layout01 .item-in {
    display: flex;
    align-items: center;
}
.low-layout01 .item-in .icon {
    max-width: 162px;
    width: 100%;
    aspect-ratio: 1/1;
    display: flex;
    align-items: center;
}
.low-layout01 .item-in .desc {
    flex: 1;
    padding-left: 3%;
}

.low-link {
    padding: 200px 0 100px;
}
.low-link .container {
    position: relative;
    z-index: 10;
    max-width: calc(1260px + 30px);
    margin: 0 auto;
    padding: 0 15px;
}
.low-link .desc {
    margin-bottom: 60px;
    text-align: center;
}
.low-link .items {
    display: flex;
    justify-content: space-between;
}
.low-link .items .item {
    display: block;
    width: 49%;
    padding: 6.5% 5%;
    background-color: #fff;
    position: relative;
    box-shadow: 0px 0px 6px 5px rgba(0, 0, 0, 0.03);
    position: relative;
}
.low-link .items .item p {
    font-size: 2.6rem;
    font-size: min(2.5vw,2.6rem);
    line-height: 1;
}
.low-link .items .item .circle {
    left: inherit;
    top: 0;
    bottom: 0;
    right: 7%;
    margin: auto;
}

.low-layout01  .back-btn {
    max-width: 900px;
    margin: 60px auto;
    /* position: relative;
    display: flex;
    justify-content: flex-end;
    align-items: center; */
}
.low-layout01 .back-btn a {
    width: fit-content;
    position: relative;
    display: flex;
    /* justify-content: flex-end; */
    align-items: center;
    margin: 0 0 0 auto;
}
.low-layout01 .back-btn p {
    margin: 0 20px 0 0;
}
.low-layout01 .back-btn .btn {
    margin: 0;
}

@media screen and (max-width: 768px) {
    .low-page02 .low-sec02::before {
        background-image: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.27) 20%, rgba(255, 255, 255, 1));
        height: 130px;
        top: -130px;
    }
    .low-page02-intro {
        height: auto;
        padding: 0 0 100px;
    }
    .low-page02-intro .container {
        flex-direction: column;
    }
    .low-page02-intro .image {
        max-width: 100%;
        width: 100%;
    }
    .low-page02-intro .content {
        padding: 0;
    }
    .low-page02-intro .content-title {
        margin: 20px auto 10px;
        font-size: 2rem;
    }
    .low-page02-intro .content-text {
        font-size: 1.4rem;
    }

    .low-layout01 {
        padding-bottom: 50px;
    }
    .low-layout01::after {
        height: 100px;
        bottom: -100px;
        background-image: linear-gradient(360deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.27) 40%, rgba(255, 255, 255, 1));
    }
    .low-layout01 .item {
        padding: 7.5% 7% 10%;
    }
    .low-layout01 .item + .item {
        margin-top: 30px;
    }
    .low-layout01 .item-title {
        margin-bottom: 20px;
        line-height: 1.7;
        font-size: 2.2rem;
        letter-spacing: 0.06em;
    }
    .low-layout01 .item-title p {
        font-size: 2rem;
        line-height: inherit;
        letter-spacing: 0.02em;
    }
    .low-layout01 .item-title span {
        padding-right: 8px;
        line-height: 1.5;
    }
    .low-layout01 .item-in {
        flex-direction: column;
    }
    .low-layout01 .item-in .icon {
        margin: 0 auto 20px;
    }
    .low-layout01 .item-in .desc {
        padding: 0 0 0 0;
    }

    .low-link {
        padding: 70px 0 40px;
    }
    .low-link .container {
        padding: 0 10.7%;
    }
    .low-link .desc {
        margin-bottom: 60px;
        text-align: left;
    }
    .low-link .items {
        flex-direction: column;
    }
    .low-link .items .item {
        display: block;
        width: 100%;
        margin-bottom: 15px;
        padding: 6vh 5%;
    }
    .low-link .items .item p {
        font-size: 1.8rem;
    }
    .low-link .items .item .circle {
        right: 2%;
        width: 60px;
    }

    .low-layout01 .back-btn {
        margin: 30px auto;
    }
    .low-layout01 .back-btn p {
        margin: 0 20px 0 0;
    }
    .low-layout01 .back-btn .btn {
        margin: 0;
        max-width: 60px;
        height: 35px;
    }
    .low-layout01 .back-btn .btn::before {
        width: 18px;
        height: 100%;
    }
}

/*--------------------------------------
----------------------------------------

  products

----------------------------------------
---------------------------------------*/
.products .low-heading {
    padding-bottom: 100px;
}
.low-page01.products .intro .icon {
    max-width: 72px;
}
.products-sec .item {
    display: block;
    max-width: 900px;
    margin: 0 auto 35px;
    padding: 5%;
    background-color: #fff;
    box-shadow: 0px 0px 6px 5px rgba(0, 0, 0, 0.03);
    position: relative;
    z-index: 1;
}
.products-sec .item-lead {
    margin-bottom: 10px;
    font-family: "Zen Old Mincho", serif;
    font-size: 2rem;
    line-height: 2;
}
.products-sec .item-title {
    margin-bottom: 20px;
    font-size: 2.6rem;
    font-weight: 500;
}
.products-sec .item-text {
    padding: 0 36% 0 0;
    font-size: 1.3rem;
    line-height: 1.8;
    font-weight: normal;
}
.products-sec .item .circle {
    left: inherit;
    right: 7%;
    margin: auto 0;
}
.products-sec .item .circle .img02 {
    opacity: 0;
    width: 36px;
    display: block;
    margin: 0 auto;
}
.products-sec .item:hover .circle .img01 {
    opacity: 0;
}
.products-sec .item:hover .circle .img02 {
    opacity: 1;
}

@media screen and (max-width: 768px) {
    .products .low-heading {
        padding-bottom: 50px;
    }
    .low-page01.products .intro .icon {
        max-width: 65px;
    }
    .products-sec .container {
        padding: 0 10%;
    }
    .products-sec .item {
        display: block;
        padding: 30px 20px;
    }
    .products-sec .item-lead {
        font-size: 1.6rem;
        margin-bottom: 10px;
        line-height: 2;
        letter-spacing: 0.02em;
    }
    .products-sec .item-title {
        font-size: 2.2rem;
        margin-bottom: 13px;
    }
    .products-sec .item-title span {
        font-size: 1.6rem;
    }
    .products-sec .item-text {
        padding: 0;
        font-size: 1.3rem;
        line-height: 1.8;
    }
    .products-sec .item .circle {
        left: 0;
        right: 0;
        margin: 15px auto 0;
        position: relative;
    }
    .products-sec .item .circle .img02 {
        opacity: 1;
        width: 36px;
    }
    .products-sec .item .circle .img01 {
        opacity: 0;
    }
    .products-sec .item .circle .img02 {
        opacity: 1;
    }
}

/*------
  自社開発 詳細ページ
----------------------*/
.low-products .container {
    max-width: calc(1000px + 8%);
    padding: 0 4%;
}
.low-products .low-page02-intro {
    padding-bottom: 100px;
}
.low-products .low-page02-intro .content {
    padding: 0 6% 0 0;
}
.low-products .low-page02-intro .image {
    max-width: 465px;
}

.low-products .box {
    margin: 0 0 90px 0;
}
.low-products .box-title {
    margin: 0 0 20px 0;
    padding: 0 0 20px 0;
    font-size: 3rem;
    font-weight: 500;
    color: #000;
    position: relative;
}
.low-products .box-title::before {
    content: "";
    display: inline-block;
    height: 1px;
    width: 80px;
    background-color: #0071e7;
    position: absolute;
    left: 0;
    bottom: 0;
}
.low-products .box p {
    letter-spacing: 0.04em;
}
.low-products .box p a {
    display: inline;
    line-height: 1;
    color: #0071e7;
    border-bottom: 1px solid #0071e7;
}
.low-products .box p a:hover {
    border-color: transparent;
}
.low-products  .back-btn {
    max-width: none;
}

.low-link.type02 .container {
    max-width: calc(1260px + 6%);
    padding: 0 3%;
}
.low-link.type02 .heading {
    margin: 0 0 80px 0;
    font-size: 2.6rem;
    font-weight: 500;
    text-align: center;
    letter-spacing: 0.06em;
}
.low-link.type02 .items .item {
    width: 48.5%;
    padding: 4%;
}
.low-link.type02 .items .item p {
    line-height: 2;
    padding-right: 15%;
}
.low-link.type02 .items .item span {
    display: block;
    font-family: "Zen Old Mincho", serif;
    font-size: 2rem;
    font-weight: normal;
}

@media screen and (max-width: 900px) {
    .low-products .low-page02-intro .container {
        flex-direction: column;
    }
    .low-products .low-page02-intro .content {
        padding: 0 0 20px 0;
    }
    .low-products .low-page02-intro .image {
        margin: 0 auto;
    }
}
@media screen and (max-width: 768px) {
    .low-products .low-sec02::before {
        background-image: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.27) 25%, rgba(255, 255, 255, 1));
        height: 60px;
        top: -60px;
    }
    .low-products .container {
        padding: 0 10.7%;
    }
    .low-products .low-page02-intro {
        position: relative;
        z-index: 10;
        padding-bottom: 100px;
        padding-top: 30px;
    }
    .low-products .low-page02-intro .content {
        padding: 0 0 20px 0;
    }
    .low-products .low-page02-intro .content-title {
        margin: 0 auto 10px;
        letter-spacing: 0.03em;
    }
    .low-products .low-page02-intro .image {
        max-width: 465px;
    }

    .low-products .box {
        margin: 0 0 70px 0;
    }
    .low-products .box:last-of-type {
        margin: 0 0 40px 0;
    }
    .low-products .box-title {
        margin: 0 0 20px 0;
        padding: 0 0 20px 0;
        font-size: 2rem;
    }
    .low-link.type02 {
        padding: 100px 0 40px;
    }
    .low-link.type02 .container {
        padding: 0 10.7%;
    }
    .low-link.type02 .heading {
        margin: 0 0 40px 0;
        font-size: 2rem;
    }
    .low-link.type02 .items .item {
        width: 100%;
        padding: 3vh 5%;
    }
    .low-link.type02 .items .item p {
        padding-right: 0;
        font-size: 1.6rem;
    }
    .low-link.type02 .items .item span {
        font-size: 1.4rem;
    }
}


/*--------------------------------------
----------------------------------------

  recruit

----------------------------------------
---------------------------------------*/
.recruit .imgbox {
    max-width: 203px;
}
.recruit .low-heading .imgbox {
    left: inherit;
    right: 0;
    transform: translateX(-19vw);
    max-width: 203px;
    width: 20%;
}
@media screen and (max-width: 768px) {
    .recruit .low-heading .imgbox {
        left: inherit;
        right: 0;
        transform: translateX(-10vw);
        width: 28%;
        max-width: 140px;
    }
}


/*--------------------------------------
----------------------------------------

  about

----------------------------------------
---------------------------------------*/
.about {
    overflow-x: hidden;
}
.about .low-page02-intro {
    position: relative;
    z-index: auto;
    overflow: visible;
    padding: 35px 0 280px;
}
.about .low-page02-intro .content {
    padding: 0 5% 0 0;
}
.about .low-page02-intro .image {
    position: absolute;
    bottom: -70px;
    right: 0;
    max-width: 465px;
    width: 37%;
    z-index: -1;
}
.about .item{
    position: relative;
}
.about .img-circle {
    position: absolute;
    top: 0;
    right: 0;
    width: clamp(120px, 23vw, 310px);
    height: auto;
    pointer-events: none;
    user-select: none;
    z-index: -1;
    animation: spin2 8s linear infinite;
}
/* アニメーション定義 */
@keyframes spin2 {
  from { transform: translate(50%, -50%) rotate(0deg); }
  to   { transform: translate(50%, -50%) rotate(360deg); }
}
.about .low-sec02::before {
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.27) 20%, rgba(255, 255, 255, 1));
    height: 180px;
    top: -180px;
}

@media (max-width: 1150px) {
  .about .img-circle  {
    right: 0;
  }
}


@media screen and (max-width: 768px) {
    .about .low-heading .container {
        padding: 0 10%;
    }
    .about .low-page02-intro {
        padding: 0 0 200px;
    }
    .about .img-circle {
        width: 30vw;
        top: 0px;
        right: 5vw;
    }
    .about .low-page02-intro .content {
        padding: 0 0 0 0;
    }
    .about .low-page02-intro .content-title {
        letter-spacing: -0.02em;
    }
    .about .low-page02-intro .image {
        bottom: -100px;
        right: 8%;
        width: 50%;
        max-width: 300px;
    }
    .about .low-sec02::before {
        height: 130px;
        top: -130px;
    }
}


/*--------------------------------------
----------------------------------------

  works

----------------------------------------
---------------------------------------*/
.works-sec {
    padding: 0;
}
.works-sec .desc span {
    font-weight: bold;
}
.works-sec .anchors {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 40px 0;
    font-family: "Zen Old Mincho", serif;
    font-size: 1.6rem;
    font-weight: bold;
}
.works-sec .anchors p {
    font-size: 1.6rem;
}
.works-sec .anchors a.anchor {
    display: block;
    width: 105px;
    padding: 7px 20px;
    text-align: center;
    background-color: rgba(255,255,255,0.4);
    border-radius: 999px;
}
.works-sec .anchors a.anchor:hover {
    background-color: #0071e7;
    color: #fff;
}
.works-sec .block {
    margin: 0 0 100px;
}
.works-sec .block-title {
    position: relative;
    display: flex;
    align-items: center;
    margin-bottom: 40px;
    font-family: "Zen Old Mincho", serif;
    font-size: 3.2rem;
    font-weight: normal;
    letter-spacing: 0.1em;
}
.works-sec .block-title::before {
    content: "";
    display: inline-block;
    width: 27px;
    height: 1px;
    margin: 5px 10px 0 0;
    background-color: #000;
}
.works-item-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 7%;
}
.works-item {
    display: block;
    max-width: 510px;
    width: 46.5%;
    margin-bottom: 120px;
}
.works-item .img {
    margin-bottom: 20px;
    transition: all .3s;
}
.works-item .content p {
    font-size: 1.2rem;
    color: #707070;
    line-height: 1.5;
}
.works-item .content p span {
    color: #333;
}
a.works-item:hover {
    background-color: unset;
}
.works-item:hover .img {
    box-shadow: 0px 1px 10px 2px rgba(0, 61, 117, 0.3);
}
.works-sec .block02 .works-item:last-of-type {
    margin-bottom: 0;
}
.works-item.no-link {
    pointer-events: none;
}


@media screen and (max-width: 768px) {
    .works-sec {
        padding: 0;
    }
    .works-sec .anchors {
        padding: 20px 0;
        font-size: 1.4rem;
    }
    .works-sec .anchors p {
        font-size: 1.4rem;
    }
    .works-sec .anchors a.anchor {
        width: 105px;
        padding: 7px 20px;
    }
    .works-sec .block {
        margin: 0 0 60px;
    }
    .works-sec .block-title {
        margin-bottom: 30px;
        font-size: 2.2rem;
    }
    .works-sec .block-title::before {
        content: "";
        display: inline-block;
        width: 20px;
        height: 1px;
        margin: 5px 10px 0 0;
        background-color: #000;
    }
    .works-item-wrap {
        gap: 0;
    }
    .works-item {
        max-width: 100%;
        width: 100%;
        margin-bottom: 35px;
    }
    .works-item .img {
        margin-bottom: 15px;
    }
    .works-item .content p {
        font-size: 1.2rem;
    }

}

/*------
  制作実績 詳細ページ
----------------------*/
.low-works .low-layout01 {
    padding-bottom: 50px;

}
.low-works .container {
    max-width: calc(1000px + 8%);
    padding: 0 4%;
    align-items: center;
}
.low-works .low-page02-intro .content {
    padding: 0 0 0 8%;
}
.low-works .low-page02-intro .works-name {
   font-size: 2rem;
   margin: 0 0 10px 0;
}
.low-works .low-page02-intro dl {
    display: flex;
    flex-wrap: wrap;
    font-size: 1.4rem;
}
.low-works .low-page02-intro dl dt,
.low-works .low-page02-intro dl dd {
    margin: 0 0 20px 0;
}
.low-works .low-page02-intro dl dt {
    width: 20%;
    color: #707070;
}
.low-works .low-page02-intro dl dd {
    width: 80%;
}
.low-works .low-page02-intro dl dd a {
    display: block;
}
.low-works .low-page02-intro dl dd a:hover {
    color: #0071e7;
}
.works-detail .back-btn {
    margin: 130px auto 0;
}

.works-detail .low-link {
    padding-bottom: 0;
}
.works-detail .low-link .container {
    max-width: calc(1000px + 8%);
}

.works-detail .works-item-wrap .works-item {
    max-width: 100%;
    width: 45.5%;
}
.works-detail .works-item-wrap .works-item:nth-last-child(-n + 2) {
    margin-bottom: 0;
}

.works-detail .box a.link {
    display: block;
    width: fit-content;
    margin: 20px 0 0 0;
    font-size: 1.4rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    color: #0071e7;
}
.works-detail .box a.link:hover {
    opacity: .7;
}


@media screen and (max-width: 768px) {
    .low-works .container {
        padding: 0 10.7%;
    }
    .low-works .low-page02-intro {
        padding-bottom: 60px;
    }
    .low-works .low-page02-intro .content {
        padding: 20px 0 0 0;
    }
    .low-works .low-page02-intro dl dt {
        width: 100%;
        margin-bottom: 8px;
    }
    .low-works .low-page02-intro dl dd {
        width: 100%;
         margin-bottom: 20px;
    }

    .works-detail .back-btn {
        margin: 50px auto 0;
    }

    .works-detail .works-item-wrap .works-item {
        max-width: 100%;
        width: 100%;
    }
    .works-detail .works-item-wrap .works-item:nth-last-child(-n + 2) {
        margin-bottom: 35px;
    }
}

/* 会社概要 */
.about .container02 {
    padding-top: 150px;
}
.about .container02 .heading-type02 {
    font-size: 3.5rem;
}
.about .container02 .table_block {
    max-width: 800px;
    width: 100%;
    margin: 40px auto;
}
.about .container02 .table_block table th,
.about .container02 .table_block table td {
    padding: 20px 10px;
    font-size: 1.5rem;
    letter-spacing: 0.08em;
}
.about .container02 .table_block table th {
    text-align: left;
    font-weight: bold;
    width: 30%;
}
.about .container02 .table_block table td {
    text-align: left;
    width: 70%;
}
.about .container02 .table_block table td a:hover {
    color: #0071e7;
}
@media screen and (max-width: 768px) {
    .about .container02 {
        padding-top: 50px;
    }
    .about .container02 .heading-type02 {
        font-size: 2.5rem;
    }
    .about .container02 .table_block {
        max-width: 800px;
        width: 100%;
        margin: 30px auto 0;
    }
    .about .container02 .table_block table th,
    .about .container02 .table_block table td {
        display: block;
        width: 100% !important;
        padding: 10px;
        font-size: 1.4rem;
    }
    .about .container02 .table_block table th {
        padding-bottom: 0px;
    }
    .about .container02 .table_block table td {
        padding-bottom: 15px;
    }



    .low-link .items .item {
        align-items: center;
        display: flex;
        width: 100%;
        margin-bottom: 15px;
        padding: 3vh 5%;
    }
    .low-link .items .item .circle {
        right: -2%;
        width: 60px;
        position: relative;
        margin: 0 0 0 auto;
        top: 0;
        bottom: inherit;
    }
}



