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

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

a:link, a:visited, a:hover, a:active { text-decoration: none; color: #363636; }

html { scroll-behavior:smooth; scrollbar-gutter: stable; }
[id] { scroll-margin-top: var(--fixed-header-height); }
body { line-height: 1; text-align: justify; background: #fff; color: #363636; font-family: "Noto Sans JP", sans-serif; font-weight: 400; }
ol, ul { list-style: none; color: #363636; }
h1, h2, h3, h4, h5, h6 { font-weight: 700; }
table { border-collapse: collapse; border-spacing: 0; }

* { margin: 0; padding: 0; }
img { max-width: 100%; width: 100%; height: auto; vertical-align: bottom; flex-shrink: 0; }
picture { display: block; }

/*-----------------------------------------------------
fade
----------------------------------------------------- */
/*オーバーレイ*/
.overlay { background: #fff; position: fixed; top: 0; left: 0; height: 100%; width: 100%; z-index: 10000; }

.fade { opacity: 0; transition: opacity 1.5s; }
.fade.is_inview { opacity: 1; transition-delay: .8s; }

.fade_early { opacity: 0; transition: opacity 1s; }
.fade_early.is_inview { opacity: 1; transition-delay: .1s; }

.fadeup { opacity: 0; transform: translateY(30px); transition: opacity 2s, transform .8s; }
.fadeup.is_inview { opacity: 1; transform: translateY(0); transition-delay: .1s; }
.fadeup02 { opacity: 0; transform: translateY(30px); transition: opacity 2s, transform .8s; }
.fadeup02.is_inview  { opacity: 1; transform: translateY(0); transition-delay: .2s; }
.fadeup03 { opacity: 0; transform: translateY(30px); transition: opacity 2s, transform 1s; }
.fadeup03.is_inview  { opacity: 1; transform: translateY(0); transition-delay: .3s; }

.fadeleft { opacity: 0; transform: translateX(-30px); transition: opacity .8s ease, transform .8s ease; }
.fadeleft.is_inview { opacity: 1; transform: translateX(0); transition-delay: .3s; }

.blur{ opacity:0; filter:blur(6px); transition:opacity 1s ease, transform 1s ease, filter 1s ease; }
.blur.is_inview{ opacity:1; filter:blur(0); transition-delay:1.1s; }

/*-----------------------------------------------------
contents
----------------------------------------------------- */
h1 , h2 , h3 , h4 , h5 { font-feature-settings: "palt"; font-weight: initial; line-height: 1.5; }
.pc { display: block; }
.tab { display: none; }
.sp { display: none; }
p { font-feature-settings: "palt"; line-height: 1.8; }

[data-size="w600"]{ max-width: 600px; width: 90%; margin: 0 auto; }
[data-size="w750"]{ max-width: 750px; margin: 0 auto; }
[data-size="w800"]{ max-width: 800px; width: 90%; margin: 0 auto; }
[data-size="w900"]{ max-width: 900px; width: 90%; margin: 0 auto; }
[data-size="w1000"]{ max-width: 1000px; width: 90%; margin: 0 auto; }
[data-size="w1200"]{ max-width: 1200px; width: 90%; margin: 0 auto; }
[data-size="w1400"]{ max-width: 1400px; width: 90%; margin: 0 auto; }
[data-size="w1800"]{ max-width: 1800px; margin: 0 auto; }
[data-size="padding_inner"]{ padding-left: 20px; padding-right: 20px; box-sizing: border-box; margin: 0 auto; }

:root {
  --main-color: #363636;
  --blue-color: #4260D9;
  --pink-color: #f757a3;
  --purple-color: #4c3598;
  --fixed-header-height: 130px;
  --font-en: "Montserrat", sans-serif;
  --slide-grad: linear-gradient(103deg, #4260D9 32.45%, #30AEE4 83.11%);
  --spec-term-w:180px;
}
@media screen and (max-width: 600px) {
    :root {
        --fixed-header-height: 60px;
        --spec-term-w:80px;
    }
}

.l-header { position: fixed; background: #fff; top: 0; left: 0; width: 100%; height: var(--fixed-header-height); box-sizing: border-box; z-index: 999; transition: background-color 0.3s; }
.l-header.is-scrolled { background-color: rgba(255,255,255,.4); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
/* iOSで効かない環境のフォールバック */
@supports not ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) {
  .l-header.is-scrolled { background-color: rgba(255,255,255,.9); }
}
.l-header-container { display: flex; align-items: center; justify-content: space-between; height: 100%; padding: 0 5%; }
.l-header-logo { max-width: 430px; width: 100%; margin-right: 5%; }

.l-header-menu { display: flex; align-items: stretch; justify-content: space-between; gap: 0; }
.l-header-nav__list { display: flex; align-items: center; gap: clamp(16px, 8vw, 35px); }
.l-header-nav__list .contact .l-header-nav__link { color: #4e4770;  border: 1px solid #4e4770;  padding: 10px 20px; transition: background-color 0.3s ease, color 0.3s ease; }
.l-header-nav__link { color: inherit; font-size: clamp(16px, 1.2vw, 16px); font-weight: 600; }
.c-cta__arrow_spnav { display: none; }
.l-header-menu-button { display: none; }
.l-header.is-scrolled .l-header-nav__link { color: #252525; }

/*pagetop*/
/* .l-footer-pagetop { position: sticky; bottom: 0; }
.l-footer-pagetop__btn { position: absolute; bottom: 15px; right: 15px; z-index: 9; visibility: hidden; opacity: 0; transition: 0.5s; max-width: 60px; }
.l-footer-pagetop__btn.is-show { visibility: visible; opacity: 1; } */

.cta { background: #4e4770; padding: clamp(50px, 6vw, 70px) 0; }
.cta__inner { width: min(980px, 90%); margin: 0 auto; text-align: center; color: #fff; }
.cta__ttl { margin: 0 0 10px; font-size: clamp(18px, 2.5vw, 26px); font-weight: 500; letter-spacing: .09em; }
.cta__lead { margin: 0 0 30px; font-size: clamp(14px, 2.5vw, 16px); font-weight: 500; letter-spacing: .09em; }
.cta__grid { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid rgba(255,255,255,.55); }
.cta__item { min-height: 78px; display: flex; align-items: center; justify-content: center; gap: 10px; font-weight: 800; letter-spacing: .04em; }
.cta__item + .cta__item { border-left: 1px solid rgba(255,255,255,.55); }
.cta__tel-ico { display: inline-flex; align-items: center; justify-content: center; }
.cta__tel-ico img { width: 22px; height: auto; display: block; }
.cta__tel-num { font-size: clamp(34px, 2.5vw, 28px); color: #fff;}
.cta__form-label { font-size: 20px; font-weight: 400; color: #fff; }

.footer { background: #fff; }
.footer__inner { width: min(950px, 90%); margin: 0 auto; padding: 55px 0; }
.footer__top { display: grid; grid-template-columns: 1fr 1fr; align-items: center; column-gap: 24px; }
.footer__logo img { max-width: 226px; display: block; }
.footer__nav { justify-self: end; }
.footer__list { margin: 0; padding: 0; list-style: none; display: flex; gap: 26px; }
.footer__a { color: #2b2b2b; font-weight: 700; font-size: 16px; letter-spacing: .04em; }
.footer__bottom { background: #363636; padding: 14px 0; }
.footer__copy { display: block; text-align: center; color: #fff; font-size: 11px; letter-spacing: .02em; }

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
  html { scroll-behavior: auto !important; }
  .c-cta::before{transition:none}
  .c-cta>*{transition:none}
}

@media (hover: hover) and (pointer: fine) { 
  .l-header-logo__link { transition: opacity 0.3s; } 
  .l-header-logo__link:hover { opacity: 0.8; }
  .l-header-nav__link { transition: .5s ease; white-space: nowrap; }
  .l-header-nav__link:not(.contact):hover { color: #4e4770; }
  .l-header-nav__list .contact .l-header-nav__link:hover { background-color: #4e4770; color: #fff; opacity: 1; }
  
  .l-header-nav__link { position:relative; overflow:hidden; }
  .l-header-nav__list > li:not(.contact) > .l-header-nav__link::after { background-color: #8e9db2; bottom: -4px; content: ""; height: 1px; left: 0; position: absolute; transform: scale(0, 1); transform-origin: right top; transition: transform .3s; width: 100%; }
  .l-header-nav__list > li:not(.contact) > .l-header-nav__link:hover::after { transform-origin: left top; transform: scale(1, 1);}
  .l-footer-pagetop__btn.is-show:hover { opacity: 0.4; }
  footer .right_blk nav ul a:hover { opacity: .5; }
  .site-footer__link:hover { opacity: .5; }	
}

@media print {
  header , footer { display: none!important; }
}

@media only screen and (max-width: 1024px){
  /* iOSで効かない環境のフォールバック */
  @supports not ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) {
    .l-header.is-scrolled { background-color: rgba(255,255,255,.9); }
  }
  .l-header-nav { margin-bottom: 30px; }
  .l-header-nav__list { display: none; }
  .l-header-menu-button { right: 0; position: absolute; border: 0; display: flex; cursor: pointer; width: 100px; height: 100px; background:none; justify-content: center; align-items: center; }
  .l-header-menu-button__lines { position: absolute; width: 40px; height: 35px; transition: transform .35s ease; will-change: transform; }
  .l-header-menu-button__line { position: absolute; left: 0; width: 100%; height: 2px; background-color: #363636; border-radius: 1px; transition: transform .35s ease, opacity .2s ease, background-color .2s ease; transform-origin: 50% 50%; }
  .l-header-menu-button__line--top { top: 0; }
  .l-header-menu-button__line--center { top: 50%; transform: translateY(-50%); }
  .l-header-menu-button__line--bottom { bottom: 0; }

  .is-menu-opened .l-header-menu-button__lines { transform: rotate(180deg); }
  .is-menu-opened .l-header-menu-button__line--top { transform: translateY(18px) rotate(45deg); }
  .is-menu-opened .l-header-menu-button__line--center { opacity: 0; }
  .is-menu-opened .l-header-menu-button__line--bottom { transform: translateY(-14px) rotate(-45deg); }

  .l-header-menu { position: fixed; top: var(--fixed-header-height); left: 0; right: 0; width: 100%; display: flex; flex-direction: column; align-items: flex-start; gap: 35px; padding: 24px; z-index: 998; /*height: calc(70dvh - var(--fixed-header-height)); max-height: calc(70dvh - var(--fixed-header-height));*/ overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(6px); transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s; box-sizing: border-box; }
  body.is-menu-opened .l-header-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); transition: opacity .2s ease, transform .2s ease, visibility 0s; background: #fff; box-shadow:0px 30px 40px -30px #575d76; padding-bottom: 60px; }
  body.is-menu-opened { overflow: hidden; }
  body.is-menu-opened .l-header-container { background: #fff; }
  body.is-menu-opened::before { opacity: 1; visibility: visible; transition: opacity .2s ease, visibility 0s; }
  .l-header-menu__container { width: 100%; margin-right: 0; display: block; }
  body.is-menu-opened .l-header-nav__list { display: flex; flex-direction: column; gap: 30px; width: 100%; }
  .l-header-nav__item { width: 100%; }
  .l-header-nav__list .l-header-nav__link { border-bottom: 1px solid #d2d2d2; padding-bottom: 30px; width: 100%; box-sizing: border-box; display: block; }
  .l-header-nav__link::after { text-align: left; color: #fff; }
  .c-cta__arrow_spnav{display:inline-block;align-items:center;margin-left:auto}
  .c-cta svg{fill:currentColor}
  .c-cta__arrow_spnav svg{width:18px;height:18px;display:block; position: relative; top: 3px; left: 10px; }
}

@media (prefers-reduced-motion: reduce) {
.l-header-menu-button__lines { transition: none; }
.l-header-menu-button__line { transition: none; }
}

@media (hover: hover) and (pointer: fine) {
.cta__item, .footer__a { transition: opacity .25s ease; }
.cta__item:hover, .footer__a:hover { opacity: .72; }
}

@media only screen and (max-width: 980px){ 
  .l-header-nav__list .contact .l-header-nav__link { display: block; text-align: center; }
  .cta__grid { grid-template-columns: 1fr; }
  .cta__item + .cta__item { border-left: none; border-top: 1px solid rgba(255,255,255,.55); 
  }
  .footer__top { grid-template-columns: 1fr; row-gap: 30px; }
  .footer__nav { justify-self: start; }
  .footer__list { flex-wrap: wrap; gap: 16px 22px; }
}

/*　600pxからレスポンシブ*/
@media only screen and (max-width: 600px){
	.pc { display: none; }
	.sp { display: block; }
  .l-header-logo { max-width: 264px; }
  .l-header-menu-button__lines { width: 30px; height: 25px; }  
  .l-header-menu-button { width: 60px; height: 60px; }
  .is-menu-opened .l-header-menu-button__line--top { transform: translateY(9px) rotate(45deg); }
  .cta__tel-ico img { width: 18px; margin-top: 4px; }
  .footer__inner { padding: 40px 0 30px; }
  .footer__logo { margin: 0 auto; }
  .footer__logo img { max-width: 200px; }
  .footer__list li { width: 45%; border-bottom: 1px solid #363636; padding-bottom: 15px; }
 }