@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; }

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: #252525; font-family: "Noto Sans JP", sans-serif; font-weight: 400; }
ol, ul { list-style: none; color: #252525; }
h1, h2, h3, h4, h5, h6 { font-family: "Zen Kaku Gothic New", sans-serif; 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; }

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

/*-----------------------------------------------------
fade
----------------------------------------------------- */
.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; }


.sec { position: relative; z-index: 1; }
.sec_txt { font-size: clamp(14px, 3vw, 16px); }

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-overDirection="full"] { width: 100vw; margin: 0 calc(50% - 50vw); }*/
[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: #252525;
  --blue-color: #4260D9;
  --pink-color: #f757a3;
  --purple-color: #4c3598;
  --fixed-header-height: 100px;
  --font-mincho: "Shippori Mincho B1", 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; 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: flex-end; height: 100%; }
/*
.l-header-logo { max-width: none; padding: 0 2% 0 3%; }
.l-header-logo__link img { width: clamp(220px, 20vw, 320px); height: auto; }
*/
.l-header-menu { display: flex; align-items: stretch; justify-content: space-between; gap: 0; }
.l-header-menu__container { margin-right: 100px; }
.l-header-nav__list { display: flex; align-items: center; gap: clamp(16px, 8vw, 35px); }
.l-header-nav__link { color: inherit; font-size: clamp(16px, 1.2vw, 16px); font-weight: 600; }
/* .l-header-nav__link::after { content: attr(data-en); font-family: var(--font-en); color: var(--blue-color); display: block; text-align: center; font-size: 12px; margin-top: 7px; } */
.c-cta__arrow_spnav { display: none; }

/*ボタン*/
.l-header-menu-button { display: none; }

/* スクロール前：白文字 */
.l-header:not(.is-scrolled) .l-header-nav__link { color: #fff; }

/* スクロール後：デフォルトの黒文字に戻す */
.l-header.is-scrolled .l-header-nav__link { color: #252525; }

/* footer */
.site-footer{ position:relative; background:#262626; color:#e9e9e9; padding-block:35px; overflow:hidden; }
.site-footer__inner{ position:relative; }
.site-footer__info{ margin:0 auto 10px; font-style:normal; display:grid; gap:.2em; justify-items:end; text-align:right; padding: 0 5%; box-sizing: border-box;}
.site-footer__name{ margin:0; font-weight:700; letter-spacing:.02em; font-size: clamp(13px,1.7vw,14px); }
.site-footer__addr{ margin:0; font-size: clamp(12px,1.7vw,14px); }
.site-footer__tel{ margin:0; font-size: clamp(12px,1.7vw,14px); }
.site-footer__copy{ padding: 0 5%; color:#bdbdbd; font-size: 10px; text-align: right; display: block; }
.site-footer__link { font-size: 12px; color: #fff; margin: 5px 0  clamp(2px,1.7vw,5px); transition: .5s; } 
.site-footer__link svg { margin-left: 5px; } 
.site-footer::before{ content:""; position:absolute; right:20%; top:50%; translate:0 -50%; width:min(56vw,270px); aspect-ratio:1/1; background:url("../img/top/logo_mark.png") center/contain no-repeat; opacity:.03; pointer-events:none; filter:grayscale(1) contrast(.8); }

/*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; }

/*CVボタン*/
/* .contact_blk { background: url("../img/common/contact_bg.png")no-repeat; background-size: cover; padding: 90px 0; border-radius: 50px 50px 0 0; z-index: 1; position: relative; }
.contact_blk h3 { margin-bottom: 15px; }
.contact_blk h3 img { width: clamp(190px, 50vw, 390px); }
.contact_blk .sec_ttl span { font-weight: 700; }
.contact_innerflex { display: flex;justify-content: space-between;padding: 0 5%; gap: 5%; }
.contact_innerflex .left_blk { display: flex; flex-direction: column; justify-content: space-between; gap: 15px; }
.c-cta-list{display:flex;flex-direction:column;gap:20px}
.c-cta{position:relative;display:flex;align-items:center;gap:16px;justify-content:flex-start;width:min(100%,425px);height:80px;padding:0 24px;border:2px solid var(--blue-color);color:var(--blue-color);box-sizing: border-box;font-weight:700;font-size:clamp(16px, 3vw, 22px);line-height:1;letter-spacing:.02em;overflow:hidden;outline:none}
.c-cta.tel { font-size: clamp(20px, 3vw, 26px); }
.c-cta__icon,.c-cta__arrow{display:inline-flex;align-items:center}
.c-cta__arrow{margin-left:auto}
.c-cta svg{fill:currentColor}
.c-cta__icon svg,.c-cta__arrow svg{width:26px;height:26px;display:block}
.c-cta::before{content:"";position:absolute;inset:0;background:var(--blue-color);transform:translateX(-100%);transition:transform .45s cubic-bezier(.22,.61,.36,1)}
.c-cta>*{position:relative;z-index:1;transition:color .45s}
.c-cta:hover::before,.c-cta:focus-visible::before{transform:translateX(0)}
.c-cta:hover,.c-cta:focus-visible{color:#fff}
.c-cta:focus-visible{box-shadow:0 0 0 3px color-mix(in oklab,var(color) 30%,#fff)} */

@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:hover { opacity: 0.6; }
  
  .l-header-nav__link { position:relative; overflow:hidden; }
  .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__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){
  .l-header-nav__link { color: #fff!important; }
  body.is-menu-opened .l-header-logo { display: none; }
  body.is-menu-opened .l-header.is-scrolled { background-color: var(--blue-color); }
  /* iOSで効かない環境のフォールバック */
  @supports not ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) {
    .l-header.is-scrolled { background-color: rgba(255,255,255,.9); }
  }
/*  .l-header { background: #fff; }*/
/*  .l-header-logo { max-width: 237px; }*/
  .l-header-nav { margin-bottom: 30px; }
  .l-header-nav__list { display: none; }
  .l-header-menu-button { right: 0; position: absolute; padding: 15px; border: 0; display: flex; cursor: pointer; width: 100px; height: 100px; background: #252525; 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: #fff; 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%); width: 80%; }
  .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); }

  .is-menu-opened .l-header-menu-button__line { background-color: #fff; }
  .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: #333; box-shadow:0px 30px 40px -30px #575d76; padding-bottom: 60px; }
  body.is-menu-opened { overflow: hidden; }
  body.is-menu-opened .l-header-container { background: #333; }
  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: 40px; width: 100%; }
  .l-header-nav__item { width: 100%; }
  .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 only screen and (max-width: 980px){
}

/*　600pxからレスポンシブ*/
@media only screen and (max-width: 600px){
/*  main { margin-bottom: 65px; }*/
	.pc { display: none; }
	.sp { display: block; }
  .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); }
  
  .site-footer__info{ justify-items:start; text-align:left; gap:0; } 
  .site-footer::before{ right:-20%; width:min(80vw,520px); }
 }