@charset "utf-8";

body {
  overflow-x: hidden;
  font-family: K2D, 'Helvetica Neue', Helvetica, Arial, sans-serif;
  margin: 0;
  padding: 0;
  background-color:aliceblue ;
}

#main-aside{
  padding: 20px;
  max-width: 1200px;
  margin: 0 auto;
}

main[role="main"]{
  width: 800px;
  float: left;
}

p {
  line-height: 1.25;
  text-align: left;
}

a {
  color: #066;
}

a.active,
a:active,
a:focus,
a:hover {
  color: #d44;
}

strong.important {
  color: #b33;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  text-align: left;
  font-weight: 700;
}

.session {
  color: #b33;
}

/*ページ分割後に修正*/
section {
  padding: 10px 0;
}


section h2.section-heading {
  font-size: 30px;
  margin-top: 0;
  margin-bottom: 15px;
}

section h3.section-subheading {
  font-size: 20px;
  font-weight: 400;
  margin-top: 30px;
  margin-bottom: 20px;
  text-transform: none;
}


/* NAVIGATION */
/* 全体ナビ */
#mainNav {
  background: #222;
  border-bottom: 1px solid #ddd;
  position: fixed;
  width: 100%;
  top: 0;
  z-index: 999;
}

#mainNav .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 20px;
}

/* ブランドロゴ */
.navbar-brand {
  display: flex;
  align-items: center;
  font-weight: bold;
  text-decoration: none;
  color: #fff;
}

.navbar-brand img {
  margin-right: 10px;
}

/* PCメニュー */
.navbar-nav {
  list-style: none;
  display: flex;
  gap: 20px;
}

.navbar-nav > li {
  position: relative;
}

.nav-link {
  text-decoration: none;
  color: #fff;
  padding: 8px 5px;
  display: block;
}

.nav-link:hover {
  color: #f44;
}

/* ▼ ドロップダウン（PC） */
.navbar-nav li ul {
  display: none;
  position: absolute;
  top: 35px;
  left: 0;
  background: #222;
  padding: 10px 0;
  list-style: none;
  border: 1px solid #ddd;
  min-width: 200px;
}

.navbar-nav li:hover > ul {
  display: block;
}

.navbar-nav li ul li {
  width: 100%;
}

.navbar-nav li ul li .nav-link {
  padding: 8px 15px;
  white-space: nowrap;
}

#navbar-toggler_check {
  display: none;
}
/* ▼ ハンバーガーメニュー（スマホ用） */
#navbar-toggler_check {
  display: none;
}

#navbar-toggler_btn {
  display: none;
  cursor: pointer;
}

#navbar-toggler_btn span,
#navbar-toggler_btn span::before,
#navbar-toggler_btn span::after {
  display: block;
  background: #fff;
  height: 3px;
  width: 25px;
  border-radius: 3px;
  position: relative;
}

#navbar-toggler_btn span::before,
#navbar-toggler_btn span::after {
  content: "";
  position: absolute;
  left: 0;
}

#navbar-toggler_btn span::before {
  top: -8px;
}

#navbar-toggler_btn span::after {
  top: 8px;
}




/* PATH */
#path ol {
	list-style-type: none;
  text-align: center;
}
#path ol li {
	display: inline-block;
 
	margin-right: 5px;
}
#path ol li a {
	padding-right: 5px;
}


/* BACK TO THE PAGE TOP */
#pagetop{
	border-radius: 50%;
	height: 55px;
	width: 55px;
	background-color: #fff;
	border: 2px solid #1a3d7c;
	position: fixed;
	right: 30px;
	bottom: 30px;
	z-index: 100;
	opacity: 0.9;
	display: flex;
	justify-content: center;
	align-items: center;
}
#pagetop:hover{
	background-color: #cde2f0;
}

#pagetop_inner{
	height: 15px;
	width: 15px;
	border-top: 3px solid #1a3d7c;
	border-right: 3px solid #1a3d7c;
	transform: translateY(20%) rotate(-45deg);
}


/*ASIDE*/
aside{
   width: 300px;
   float: right;
}
aside h2{
  border-bottom: 3px solid rgb(0, 102, 102, 0.5);
  padding-bottom: 5px;
}

aside h2, li, p{
  color: #555;
}
aside ul{
  display: inline-block;
  list-style-type: none;
 
}
aside li{
  border-bottom: 1px dotted #1a3d7c ;
  font-size: smaller;
  margin-bottom: 10px;
  padding-bottom: 5px;
}
aside a, p{
  padding-left: 20px;
}

/*FOOTER*/
footer{
  margin-bottom: 0;
  clear: both;
}

#footer_inner {
  display: flex;
  justify-content: space-between; 
  align-items: center;            
  gap: 40px;                      
  padding: 40px 20px;
}

/* 左側（ロゴ＋SNS） */
#logo-sns {
  display: flex;
  flex-direction: column;
  align-items: center; /* ロゴとSNSボタンを中央寄せ */
  gap: 15px;
}
#logo img{
  align-items: center;
  justify-content: center;
}
#sns a{
  display: flex;
  flex-direction: column; /* 縦並びに切り替え */
  align-items: center;
  padding-top: 10px;
  text-decoration: none;
  color: #222;
  font-weight: 800;
}
#sns img{
  width: 30px;
  height: auto;
}

/* 右側（プライバシーポリシー） */
#imprint {
  flex: 1;               /* 残りの幅を使う */
  max-width: 600px;      /* 読みやすい幅に制限 */
   line-height: 1.3; 
  padding:20px 40px 20px 20px;
}

#imprint h1,h2{
  color: #555;
   margin-top: 15px;        /* 見出しの上の余白を控えめに */
  margin-bottom: 6px;     /* 見出しの下の余白も詰める */
  line-height: 1.2;        /* 見出しの行間も調整 */
}

#imprint h1{
  font-size:20px ;
}
#imprint h2{
  font-size:15px ;
  font-weight: lighter;
}
#imprint p {
  font-size:12px ;
  margin-top: 0;
  margin-bottom: 10px;     /* 段落間の余白を統一 */
  line-height: 1.4;        /* 読みやすさを保ちつつ詰める */
}


#copyright{
  text-align: center;
  padding-bottom: 20px;
}