@charset "utf-8";
/*-----------------------------------------------------

  BASE

----------------------------------------------------- */
html {
	scroll-behavior: smooth;
	scroll-padding-top: 60px;
}

body {
	width: 100%;
	text-align: left;
	font-size: 14px;
	line-height: 1.9;
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
	-webkit-font-feature-settings: "palt";
	font-feature-settings: "palt";
	letter-spacing: 0.08em;
}


img {
	vertical-align: bottom;
	max-width: 100%;
	height: auto;
	width: auto;
}

a {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	transition: .15s;
}

.inner {
	width: 85%;
	max-width: 970px;
	margin-left: auto;
	margin-right: auto;
}

.inner02 {
	width: 85%;
	max-width: 960px;
	margin-left: auto;
	margin-right: auto;
}


.clearfix:after {
  content: "";
  display: block;
  clear: both;
}

.eng {
	font-family: "Montserrat", sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
}

.wrapper {
	display: flex;
}

.wrapper .side-area {
	width: 60px;
	position: relative;
}

.wrapper .side-area-inner {
	position: fixed;
	width: 60px;
	padding: 20px 0;
	background: #183763;
	height: 100vh;
	display: flex;
    align-items: center;
    justify-content: space-between;
    flex-direction: column;
	transition: .15s;
}

.wrapper .gray-area-in .side-area-inner {
	background: #ABACA5;
}

.wrapper .content-area {
	width: calc(100% - 60px);
}

.wrapper .side-area h1 {
	color: #C9B56C;
	font-size: 14px;
	writing-mode: vertical-rl;
	
}

.blue-bg {
	background: #183763;
	padding-left: 50px;
}

.gray-bg {
	background: #ABACA5;
	padding-left: 50px;
}

.gray-bg02 {
	background: url(../images/index/bg.svg) left bottom #ABACA5 repeat-x;
	background-size: auto 300px;
	padding-left: 50px;
}

.white-bg {
	background: #fff;
	border-radius: 50px 0 0 50px;
	padding: 70px 0 100px 0;
	position: relative;
	z-index: 10;
}

.h-style01 {
	font-size: 34px;
	font-weight: 600;
	position: relative;
	margin-bottom: 50px;
	line-height: 1;
}

.h-style01::before {
  content: "";
  position: absolute;
  width: 70px;        /* 線の長さ */
  height: 2px;         /* 線の太さ */
  background: #000;
  top: 50%;
  left: -70px;
  transform: translate(-50%, -50%) rotate(-45deg);
}

.bt-2column {
	display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.bt-style01 {
	width: 100%;
}

.bt-style01 a {
	display: block;
	color: #fff;
	background: #000;
	border-radius: 10px;
	padding: 5px 6px;
	font-size: 14px;
	text-align: center;
	border: 1px solid #000;
}

.bt-style01 a:hover {
	color: #000;
	background: #fff;
}



.bt-style02 {
	max-width: 200px;
	width: 100%;
}

.bt-style02 a {
	display: block;
	color: #C9B56C;
	border-radius: 10px;
	padding: 5px 6px;
	font-size: 14px;
	text-align: center;
	border: 1px solid #C9B56C;
	font-weight: 600;
}

.bt-style02 a:hover {
	color: #183763;
	background: #C9B56C;
}

.footer {
	padding-top: 100px;
	padding-bottom: 100px;
	color: #C9B56C;
}

.footer .inner {
	position: relative;
}

.pagetop {
	position: absolute;
	right: 0;
	bottom: 0;
	text-align: center;
	line-height: 1;
}

.pagetop div {
	margin-bottom: 5px;
}

.footer h3 {
	font-size: 34px;
	line-height: 1;
	font-weight: 600;
	margin-bottom: 50px;
}

.footer p {
	margin-bottom: 30px;
}

.footer .copyright {
	margin-top: 150px;
	font-size: 10px;
	letter-spacing: 0;
}








    /* ====== overlay ====== */
    .nav-overlay{
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,.35);
      backdrop-filter: blur(2px);
      z-index: 2000;
    }

    /* ====== side nav ====== */
    .side-nav{
	position: fixed;
	top: 0;
	left: 0;
	
	width: 85%;
	max-width: 520px;
	background: #183763;
	color: var(--nav-text);
	z-index: 2002;
	transform: translateX(-102%);
	transition: transform .35s ease;

	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	overflow: auto;
		
    }
    .side-nav.is-open{
      transform: translateX(0);
    }

    .side-nav__list{
      list-style: none;
      padding: 0;
      display: grid;
      gap: 40px;
    }
    .side-nav__list a{
      color: #C9B56C;
      text-decoration: none;
      font-size: 18px;
		font-weight: 600;
    }

.side-nav-inner{
	display: flex;
    flex-direction: column;
    justify-content: space-between;
	height: 100dvh;
	padding: 140px 0;
}


    .side-nav__list a:hover{
      opacity: .85;
    }

    .side-nav__cta{
      display: inline-flex;
      justify-content: center;
      align-items: center;
      width: 220px;
      height: 48px;
      border-radius: 12px;
      border: 1px solid #C9B56C;
      color: #C9B56C;
      text-decoration: none;
    }

    /* ===== hamburger trigger (3 spans) ===== */
    .hamburger{
      position: fixed;
      top: 20px;
      left: 18px;
      width: 26px;
      height: 26px;
      z-index: 2100;
      border: none;
      cursor: pointer;
      padding: 0;
    }

    .hamburger span{
      position: absolute;
      left: 0;
      width: 26px;
      height: 2px;
      background: #C9B56C;
      transition: transform .35s ease, opacity .25s ease;
    }
    .hamburger span:nth-child(1){ top: 0px; }
    .hamburger span:nth-child(2){ top: 8px; }
    .hamburger span:nth-child(3){ top: 16px; }

    /* OPEN -> X */
    .hamburger.is-open span:nth-child(1){
      transform: translateY(7px) rotate(45deg);
    }
    .hamburger.is-open span:nth-child(2){
      opacity: 0;
    }
    .hamburger.is-open span:nth-child(3){
      transform: translateY(-7px) rotate(-45deg);
		top: 14px;
    }

    @media (max-width: 640px){
      :root{ --nav-w: 86vw; }
      .side-nav{ padding: 0 20px; width: 100%; }
      .side-nav__list a{ font-size: 17px; }
		
		.side-nav__list {
    gap: 25px;     margin-bottom: 50px;
}
		
		
    }

.mt1em {
	margin-top: 1em;
}














