@charset "UTF-8";
/*------------------------------
PCファースト　960　｜　768
------------------------------*/
/*---------- リセット・初期設定 ----------*/
/* @font-face でローカルフォントを優先 */
/* Noto Sans JP の定義 */
@font-face {
  font-family: "Noto Sans JP Custom";
  font-style: normal;
  font-weight: 400;
  src: local("Noto Sans JP"), local("Noto Sans CJK JP Regular"), url("WebフォントのURL") format("woff2");
  /* Webフォントをフォールバックとして指定 */
}
:root {
  /*色の一括管理*/
  --main: #0B3C5D;
  /*青*/
  --txt: #1D2731;
  --base: #fff;
  /*白*/
  --acc: #D9B310;
  /*ゴールド*/
  --sub1: #328CC1;
  /*薄い青*/
  --sub2: #E0EDF5;
  /*かなり薄い青*/
  --over: rgba(102, 102, 102, 70%);
  /*写真にかぶせるグレー 濃いめ*/
  --shadow: rgba(0, 0, 0, 0.25);
  /*影*/
  --fontE: adobe-garamond-pro, serif;
  --fontJ: dnp-shuei-ymincho-std, sans-serif;
  --font: 'Noto Sans JP Custom', sans-serif;
}

body,
html,
section,
header,
footer,
div,
h1,
h2,
h3,
h4,
p,
ul,
ol,
li,
dl,
dt,
dd,
img,
a,
table,
caption,
th,
td,
input,
textarea,
label {
  margin: 0;
  padding: 0;
  font-size: 14px;
  font-family: var(--font);
  font-weight: normal;
  color: var(--txt);
  box-sizing: border-box;
  vertical-align: bottom;
  list-style-type: none;
  text-align: inherit;
}

html,
body,
header,
main,
section,
footer,
nav {
  width: 100%;
}

a,
a:active,
a:visited {
  text-decoration: none;
  color: var(--main);
}

h1,
h2,
h3,
h4,
h5 {
  /*タイトルに対して設定しておきたいことがあればここへ*/
}

section {
  padding: 70px 0;
}

.fEn {
  /*英語のフォント*/
  font-family: var(--fontE);
  font-weight: 700;
  font-style: normal;
}

.fJp {
  /*日本語のフォント　*/
  font-family: var(--fontJ);
  font-weight: 600;
  font-style: normal;
}

table {
  border-collapse: collapse;
  margin-top: 40px;
  width: 100%;
}

th,
td {
  padding: 10px;
  vertical-align: middle;
}

th {
  white-space: nowrap;
}

/*---------- 共通 ----------*/
.inner {
  width: 1000px;
  margin: 0 auto;
}

.inner_s {
  width: 730px;
  margin: 0 auto;
}

.w100 {
  width: 100%;
}

.flexBox {
  display: flex;
}

.btn {
  width: 200px;
  margin: 50px 0 0 auto;
}

.btn a {
  display: block;
  color: var(--base);
  background-color: var(--main);
  border-radius: 5px;
  text-align: center;
  padding: 5px;
  line-height: 2em;
  transition: background-color 0.5s, color 0.5s;
}

.btn[class$=btn2] a {
  color: var(--main);
  background-color: var(--base);
}

.btn a:hover {
  color: var(--base);
  background-color: var(--acc);
}

.longTxt p {
  line-height: 2.5em;
  /*text-indent: 1em;*/
}

.sp {
  display: none;
}

.displayNon {
  display: none;
}

.marginBt30 {
  margin-bottom: 30px;
}

.textRight {
  text-align: right;
}

/*----- リストマーク付きの見出し4と文章 -----*/
.listA h4 {
  font-size: 16px;
  padding-left: 16px;
  margin-bottom: 10px;
  position: relative;
  font-weight: 600;
}

.listA h4::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  background-color: var(--acc);
  position: absolute;
  left: 0;
  top: 9px;
}

.listA p,
.listA ul {
  line-height: 1.8em;
  margin-bottom: 30px;
}

/*----- シンプルな下罫線だけの定義リスト -----*/
.listB {
  display: grid;
  grid-template-columns: 1fr 3fr;
}

.listB dt,
.listB dd {
  font-size: 16px;
  padding: 30px 0;
  border-bottom: 1px solid var(--acc);
  padding-left: 20px;
}

.listB dd {
  border-left: 1px solid var(--acc);
}

.listB dt:last-of-type,
.listB dd:last-of-type {
  border-bottom: none;
}

/*-----フェードイン-----*/
.fadein {
  opacity: 0;
  transform: translateY(30px);
  transition-property: transform, opacity;
  transition-duration: 1.5s;
  transition-delay: 0s;
}

.fadein.is-active {
  opacity: 1;
  transform: translateY(0);
}

/*--header--*/
header {
  border-top: 10px solid var(--main);
  position: relative;
}

header nav {
  padding-top: 15px;
  padding-bottom: 5px;
  z-index: 999;
}

/*--ロゴの表示--*/
h1.logo {
  width: 400px;
  height: 100px;
  background-image: url("../images/logo.png");
  background-repeat: no-repeat;
  background-size: 100px;
  background-position: left bottom;
}

/*--ロゴ横のサイト名--*/
h1.logo a {
  font-family: dnp-shuei-ymincho-std, sans-serif;
  font-weight: 600;
  font-style: normal;
  font-size: 32px;
  color: var(--main);
  letter-spacing: 5px;
  display: block;
  padding-left: 100px;
  padding-top: 40px;
}

/*--header ナビゲーション--*/
.innerH {
  width: 1270px;
}

header nav > div {
  display: flex;
  justify-content: space-between;
}

header nav #navWrap {
  padding-top: 55px;
}

header nav ul {
  display: flex;
  width: -moz-fit-content;
  width: fit-content;
}

header nav ul a,
header nav ul a:active,
header nav ul a:visited {
  display: block;
  padding: 10px 20px;
  font-size: 16px;
  color: var(--main);
  position: relative;
}

header nav ul a::after {
  position: absolute;
  left: 0;
  content: "";
  width: calc(100% - 20px);
  height: 2px;
  background: var(--acc);
  bottom: 6px;
  left: 10px;
  transform: scale(0, 1);
  transform-origin: center top;
  /*変形（アンダーラインの伸長）の原点がaタグ（各メニュー）の右端*/
  transition: transform 0.3s;
  /*変形の時間*/
}

header nav ul a:hover::after {
  transform: scale(1, 1);
  /*ホバー後、x軸方向に1（相対値）伸長*/
}

header nav li:not(:last-child) a::before {
  content: "|";
  position: absolute;
  right: -2px;
}

#switch {
  display: none;
}

/*------ sectionタイトル ------*/
section h2 {
  font-family: var(--fontE);
  font-weight: 600;
  font-size: 48px;
  padding-left: 30px;
  margin-bottom: 60px;
  background-image: url("../images/listmark.png");
  background-repeat: no-repeat;
  background-position: left center;
}

section h2 span {
  font-family: var(--font);
  font-size: 14px;
  font-weight: 400;
  padding-left: 30px;
}

section h2:first-of-type span::before {
  content: "/";
  padding-right: 27px;
}

/*---- お問い合わせsection ----*/
.fContact {
  position: relative;
}

.fContact::before {
  content: "";
  display: block;
  background-image: url("../images/contact_img.jpg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: -2;
}

.fContact::after {
  content: "";
  display: block;
  background-color: var(--over);
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: -1;
}

.fContact h2,
.fContact h3,
.fContact p {
  color: var(--base);
  z-index: 3;
}

.contactBox > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  z-index: 3;
}

.contactBox > div div {
  border: 1px solid var(--base);
  border-radius: 10px;
  text-align: center;
  padding: 40px 10px;
  line-height: 34px;
  z-index: 3;
}

.contactBox h3 {
  font-size: 24px;
  padding-bottom: 10px;
  z-index: 3;
}

.contactBox > div p {
  font-size: 48px;
  z-index: 3;
}

.contactBox .btn {
  margin: 0 auto;
  width: -moz-fit-content;
  width: fit-content;
}

.contactBox .btn a {
  background-color: var(--base);
  color: var(--txt);
  font-size: 16px;
  padding: 5px 20px;
  transition: background-color 0.5s, color 0.5s;
}

.contactBox .btn a:hover {
  background-color: var(--acc);
  color: var(--base);
}

.contactBox > p {
  text-align: center;
  padding: 15px 0;
  font-size: 16px;
}

.contactBox > p:first-of-type {
  padding-top: 30px;
  border-bottom: 1px solid var(--base);
}

/*---- フッター ----*/
footer {
  padding-top: 60px;
}

footer > div {
  display: flex;
  justify-content: space-between;
}

footer h1 {
  margin-bottom: 30px;
}

.footerAdd li {
  text-indent: -5em;
  padding-left: 5em;
  white-space: nowrap;
}

.footer-nav {
  width: -moz-fit-content;
  width: fit-content;
}

.footer-nav ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr 1fr;
  grid-auto-flow: column;
  -moz-column-gap: 20px;
       column-gap: 20px;
  width: 460px;
  margin-top: 70px;
  margin-left: auto;
  margin-right: 0;
}

.footer-nav li {
  padding: 10px 0;
}

.footer-nav a {
  position: relative;
}

.footer-nav a::after {
  position: absolute;
  left: 0;
  content: "";
  width: 100%;
  height: 2px;
  background: var(--acc);
  bottom: -5px;
  transform: scale(0, 1);
  transform-origin: center top;
  /*変形（アンダーラインの伸長）の原点がaタグ（各メニュー）の右端*/
  transition: transform 0.3s;
  /*変形の時間*/
}

.footer-nav a:hover::after {
  transform: scale(1, 1);
  /*ホバー後、x軸方向に1（相対値）伸長*/
}

footer p:last-of-type {
  text-align: center;
  background-color: var(--main);
  border-top: 4px solid var(--acc);
  color: var(--base);
  margin-top: 30px;
  padding: 30px 0;
}

/*---------- 下層ページ　page.php ----------*/
/*---------タイトル画像-----------*/
.headerTitle {
  width: 100%;
  background-image: linear-gradient(90deg, var(--main) 50%, var(--sub2) 80%);
}

.headerTitle > div {
  background-repeat: no-repeat;
  background-size: auto 100%;
  background-position: right center;
  height: 300px;
  width: 1440px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
}

.headerTitle > div::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(90deg, var(--main), var(--main) 30%, rgba(0, 0, 0, 0) 50%);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 3;
}

.about_us .headerTitle > div {
  background-image: url("../images/about_top.jpg");
}

.service .headerTitle > div {
  background-image: url("../images/service_top.jpg");
}

.headerTitle h2 {
  position: relative;
  z-index: 5;
  color: var(--base);
  font-size: 16px;
}

.headerTitle h2 span {
  font-size: 64px;
  font-family: var(--fontE);
  font-weight: 600;
  display: block;
}

.headerTitle h2 span::first-letter {
  text-transform: uppercase;
  /* 最初の文字だけを大文字に */
}

/*---------- About us ページ ----------*/
.aGreeting .longTxt,
.sPolicy .longTxt {
  width: 940px;
  margin: 0 auto;
  border-left: 1px solid var(--acc);
  border-right: 1px solid var(--acc);
}

.aGreeting p,
.sPolicy p {
  font-size: 16px;
  width: 740px;
  margin-left: auto;
  margin-right: auto;
}

.aCounsellor .flexBox {
  justify-content: space-between;
}

.aCounsellor .flexBox > div {
  width: 280px;
}

.aCounsellor h3 {
  font-size: 24px;
  font-family: var(--fontJ);
  text-align: center;
  padding-top: 330px;
  padding-bottom: 40px;
  background-position: center top;
  background-repeat: no-repeat;
}

.aCounsellor h3 span {
  font-size: 20px;
  font-family: var(--fontE);
  font-weight: 400;
  display: block;
}

.aCounsellor .box1 h3 {
  background-image: url("../images/about_img01.jpg");
}

.aCounsellor .box2 h3 {
  background-image: url("../images/about_img02.jpg");
}

.aCounsellor .box3 h3 {
  background-image: url("../images/about_img03.jpg");
}

.aAccess {
  background-color: var(--sub2);
}

.aAccess .inner {
  display: grid;
  grid-template-columns: 2fr 3fr;
  gap: 30px;
}

.aAccess .map {
  width: 100%;
  height: auto;
  aspect-ratio: 1/0.7;
}

.aAccess p {
  padding-bottom: 20px;
  line-height: 1.8em;
}

/*---------- Serviceページ ----------*/
.sPolicy h3 {
  font-size: 22px;
  font-family: var(--fontJ);
  color: var(--main);
  padding-left: 25px;
  margin-left: 50px;
  position: relative;
}

.sPolicy h3::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  position: absolute;
  background-color: var(--acc);
  left: 0;
  top: 17px;
}

.sPolicy h3:not(:first-of-type) {
  margin-top: 40px;
}

.sPolicy p {
  font-size: 14px;
  line-height: 1.8em;
  margin-right: 50px;
}

.sService {
  padding-bottom: 0;
}

.sService nav ul {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 20px;
  margin-bottom: 70px;
}

.sService nav li a {
  display: block;
  border: 1px solid var(--main);
  padding: 15px 0;
  text-align: center;
  font-size: 18px;
  font-family: var(--fontJ);
  transition: background-color 0.5s, color 0.5s, border-color 0.5s;
}

.sService nav li a:hover {
  color: var(--base);
  background-color: var(--acc);
  border-color: var(--acc);
}

.sService h3 {
  font-family: var(--fontJ);
  font-size: 32px;
  width: -moz-fit-content;
  width: fit-content;
  text-align: center;
  margin: 0 auto;
  padding: 0 15px;
  color: var(--main);
  text-shadow: var(--sub2) 2px 2px 4px;
  position: relative;
}

.sService h3 span {
  font-family: var(--fontE);
  font-size: 20px;
  font-weight: 600;
  display: block;
}

.sService h3::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: var(--acc);
  position: absolute;
  top: 60px;
  left: 0;
}

.sService div[id] {
  background-image: linear-gradient(0deg, var(--main), #115380);
  padding: 80px 0;
  position: relative;
}

.sService div[id]::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 64%;
  height: 380px;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}

.sService div[id$="01"]::after {
  background-image: url("../images/service_01.jpg");
}

.sService div[id$="02"]::after {
  background-image: url("../images/service_02.jpg");
}

.sService div[id$="03"]::after {
  background-image: url("../images/service_03.jpg");
}

.sService div[id$="04"]::after {
  background-image: url("../images/service_04.jpg");
}

.sService div[id] > div {
  background-image: linear-gradient(90deg, rgba(255, 255, 255, 0.75), #fff);
  padding: 60px 40px 60px 0;
  border-radius: 5px;
  display: grid;
  grid-template-columns: 36% calc(64% - 30px);
  -moz-column-gap: 30px;
       column-gap: 30px;
  align-items: start;
  min-height: 600px;
  position: relative;
  z-index: 10;
}

.sService div[id] p {
  line-height: 1.8em;
  padding-top: 10px;
}

.sService div[id] p:first-of-type {
  font-family: var(--fontJ);
  font-size: 24px;
  color: var(--main);
  padding-bottom: 20px;
}

.sService div[id] ul {
  position: absolute;
  left: calc(18% - 70px);
  top: 170px;
}

.sService div[id] li {
  width: 140px;
  height: 100px;
  margin-top: 15px;
  display: flex;
  align-items: center;
  text-align: center;
  justify-content: center;
  font-size: 13px;
  position: relative;
  z-index: 1;
  letter-spacing: -0.05em;
}

.sService div[id] li span {
  font-size: 15px;
  font-weight: 600;
  color: var(--main);
}

.sService div[id] li::before {
  content: "";
  display: block;
  width: 100px;
  height: 100px;
  border-radius: 50px;
  background-color: var(--base);
  box-shadow: #ccc 2px 2px 5px;
  position: absolute;
  top: 0;
  z-index: -1;
}

/*--- Contact snowmonkey ---*/
.contact .innerS {
  width: 700px;
  padding-bottom: 100px;
}
.contact .innerS ol.smf-progress-tracker {
  margin: 40px 0;
}
.contact .innerS ol.smf-progress-tracker .smf-progress-tracker__item[aria-current=true] .smf-progress-tracker__item__text {
  color: var(--main);
}
.contact .innerS ol.smf-progress-tracker .smf-progress-tracker__item[aria-current=true] .smf-progress-tracker__item__number {
  background-color: var(--main);
}
.contact .innerS .smf-item {
  padding-bottom: 40px;
}
.contact .innerS .smf-item .smf-item__label span {
  display: block;
  font-size: 16px;
  color: var(--main);
  padding-bottom: 5px;
  border-bottom: 1px solid var(--main);
  margin-bottom: 10px;
}
.contact .innerS .smf-item .smf-radio-button-control span {
  font-size: 16px;
}
.contact .innerS .smf-item.required .smf-item__label span::after {
  content: "※必須";
  display: inline-block;
  color: red;
  padding-left: 10px;
  font-size: 75%;
}
.contact .innerS .smf-item .smf-radio-buttons-control__control {
  display: flex;
}
.contact .innerS .smf-item .smf-radio-buttons-control__control > div {
  padding-right: 30px;
}
.contact .innerS .smf-item textarea,
.contact .innerS .smf-item input[type=text],
.contact .innerS .smf-item input[type=number],
.contact .innerS .smf-item input[type=tel],
.contact .innerS .smf-item input[type=email] {
  border: 1px solid #ccc;
  padding: 10px;
  width: 100%;
  font-size: 16px;
}
.contact .innerS .smf-item textarea:focus,
.contact .innerS .smf-item input[type=text]:focus,
.contact .innerS .smf-item input[type=number]:focus,
.contact .innerS .smf-item input[type=tel]:focus,
.contact .innerS .smf-item input[type=email]:focus {
  outline: 2px solid var(--sub2);
  background-color: #F0F9FF;
}
.contact .innerS .smf-item input:not([type=radio]):not([type=checkbox]),
.contact .innerS .smf-item textarea,
.contact .innerS .smf-item select {
  width: 100%;
  box-sizing: border-box;
  /* パディングを含めて幅を計算させるために重要 */
}
.contact .innerS .smf-form .smf-placeholder {
  font-size: 16px;
}
.contact .innerS .smf-form .smf-complete-content > div {
  padding-top: 20px;
}
.contact .innerS .smf-form .smf-complete-content div p {
  font-size: 16px;
  line-height: 2em;
}
.contact .innerS .smf-form .smf-complete-content > p {
  width: -moz-fit-content;
  width: fit-content;
  margin: 40px auto;
}
.contact .innerS .smf-form .smf-complete-content > p a {
  padding: 5px 20px;
  margin: 40px auto;
  font-size: 16px;
  background-color: var(--main);
  border-radius: 20px;
  background-image: none;
  color: var(--base);
  transition: background-color 0.5s;
}
.contact .innerS .smf-form .smf-complete-content > p a:hover {
  background-color: var(--acc);
}
.contact .innerS .smf-action {
  text-align: center;
}
.contact .innerS .smf-action .smf-button-control__control {
  padding-left: 20px;
  padding-right: 20px;
  font-size: 16px;
  background-color: var(--main);
  border-radius: 20px;
  background-image: none;
  color: var(--base);
  transition: background-color 0.5s;
}
.contact .innerS .smf-action .smf-button-control__control:hover {
  background-color: var(--acc);
}

.centerText {
  text-align: center;
}

/* プライバシーポリシー */
.pp {
  padding-bottom: 60px;
}
.pp h3 {
  padding: 50px 0 20px;
  font-size: 24px;
  font-family: var(--fontJ);
}
.pp p {
  font-size: 16px;
  line-height: 2em;
}
.pp ol {
  list-style-type: decimal;
  padding-top: 20px;
}
.pp ol li {
  list-style-type: decimal;
  margin-left: 20px;
  padding-left: 10px;
  line-height: 2em;
}
.pp ol li ol {
  padding-bottom: 20px;
}
.pp .ppBox {
  width: -moz-fit-content;
  width: fit-content;
  padding: 30px;
  margin-top: 30px;
  border: 1px solid #ccc;
}

/*---------- TOPページ ----------*/
/*---------slick slider-----------*/
.mainVisual {
  max-width: 1440px;
  width: 100%;
  overflow: hidden;
  margin: 0 auto;
}

.slick01 li {
  position: relative;
  text-align: center;
}

.slick01 li img {
  max-width: 1440px;
  width: 100%;
}

.slick01 li .mvText {
  position: absolute;
  left: 135px;
  top: 200px;
  text-shadow: var(--shadow) 0 4px 4px;
}

.slick01 li .mvText h2 {
  font-size: 48px;
  font-family: var(--fontJ);
  color: var(--base);
  position: relative;
}

.slick01 li .mvText h2::after {
  content: "";
  display: block;
  width: 660px;
  height: 2px;
  background-color: var(--acc);
  position: absolute;
  top: 97px;
  left: 25px;
}

.slick01 li .mvText p {
  font-size: 20px;
  font-weight: bold;
  padding-top: 20px;
  padding-left: 25px;
  color: var(--base);
}

/*---------slick sliderここまで-----------*/
/*------ TOPページのセクションレイアウト ------*/
.tMessage p {
  line-height: 2em;
}

.tMessage .catch {
  font-size: 40px;
  font-family: var(--fontJ);
  white-space: nowrap;
  color: var(--main);
  padding-right: 70px;
  padding-top: 30px;
  line-height: 1.7em;
  position: relative;
}

.tMessage .catch::before {
  content: "";
  display: block;
  width: 355px;
  height: 1px;
  background-color: var(--acc);
  position: absolute;
  top: 98px;
}

.tService {
  background-color: var(--main);
}

.tService h2 {
  color: var(--base);
  background-image: url("../images/listmark02.png");
}

.tService h3 {
  color: var(--base);
  font-family: var(--fontJ);
  font-size: 32px;
  padding-top: 30px;
}

.tService h3 span {
  color: rgba(255, 255, 255, 0.5);
  font-family: var(--fontE);
  font-weight: 600;
  font-size: 20px;
  display: block;
  border-top: 1px solid var(--acc);
  padding-top: 15px;
}

.tServiceBox {
  display: grid;
  grid-template-columns: 30% 70%;
  gap: 30px 15px;
}

.tServiceBox > div {
  background-color: var(--base);
  width: 700px;
  border-radius: 5px;
  padding: 35px;
}

.tServiceBox > div p:first-of-type {
  font-family: var(--fontJ);
  font-size: 24px;
  color: var(--main);
  padding-bottom: 15px;
}

.tServiceBox .flow {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 30px;
}

.tServiceBox .flow ul {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-right: 100px;
  background-image: url("../images/arrow.png");
  background-repeat: no-repeat;
  background-position: right 15px center;
}

.tServiceBox .flow li {
  width: 140px;
  height: 100px;
  text-align: center;
  display: flex;
  align-items: center;
  position: relative;
  z-index: 1;
}

.tServiceBox .flow li div {
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  font-size: 13px;
}

.tServiceBox .flow li span {
  color: var(--main);
  font-size: 15px;
  font-weight: bold;
}

.tServiceBox .flow li::before {
  content: "";
  display: block;
  width: 100px;
  height: 100px;
  border-radius: 50px;
  background-color: var(--sub2);
  position: absolute;
  top: 0;
  left: 15px;
  z-index: -1;
}

.tServiceBox .flow .btn {
  width: 150px;
  margin: 0;
  padding: 0;
}

.tServiceBox .flow .btn a {
  padding: 15px 10px;
  line-height: 1.3em;
}

/*-- TOPページ下部　お知らせ --*/
.tNews {
  background-color: var(--sub1);
}

.tNews .tNewsBox {
  display: grid;
  grid-template-columns: 340px auto;
}

.tNewsBox h2 {
  padding-right: 60px;
  color: var(--base);
}

.tNewsBox ul {
  padding-top: 15px;
}

.tNewsBox ul li {
  border-bottom: 1px dashed var(--base);
  position: relative;
}

.tNewsBox ul li::before {
  content: "";
  display: block;
  background-color: var(--acc);
  width: 6px;
  height: 6px;
  border-radius: 3px;
  position: absolute;
  left: 5px;
  top: 20px;
}

.tNewsBox ul a {
  display: flex;
  align-items: flex-start;
  position: relative;
  transition: background-color 0.5s, color 0.5s;
}

.tNewsBox ul a:hover {
  background-color: rgba(255, 255, 255, 0.3);
}

.tNewsBox ul h3,
.tNews ul p {
  font-size: 16px;
  padding: 10px;
  color: var(--base);
}

.tNewsBox ul h3 {
  padding-left: 150px;
}

.tNewsBox ul p {
  position: absolute;
  left: 15px;
}

/*-- ブログ共通 --*/
.post-date {
  padding-right: 20px;
}

.tax-label {
  background-color: var(--sub1);
  color: var(--base);
  border-radius: 5px;
  padding: 2px 10px;
}

.post-title {
  padding-top: 10px;
  font-weight: bold;
}

/*-- TOPページ下部　ブログ --*/
.tBlog {
  background-color: var(--sub2);
}

.tBlogBox {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
}

.tBlogBox > li a {
  display: grid;
  grid-template-columns: 190px auto;
  gap: 30px;
  align-items: center;
  border-radius: 95px 10px 10px 95px;
  transition: background-color 0.5s, color 0.5s;
}

.tBlogBox > li a:hover {
  background-color: rgba(255, 255, 255, 0.3);
}

.tBlogBox a > div {
  display: flex;
  flex-wrap: wrap;
}

.tBlogBox a > div ul {
  width: 100%;
  order: -1;
  display: flex;
}

.tBlogBox a .post-thumb {
  order: -1;
  flex-shrink: 0;
  /* 画像が文字に押されて潰れるのを防ぐ */
  width: 190px;
  /* 円の直径を決める */
  height: 190px;
  /* 幅と同じにする */
}

.tBlogBox .post-thumb img {
  width: 100%;
  height: 100%;
  aspect-ratio: 1/1;
  /* 1:1の正方形を維持 */
  -o-object-fit: cover;
     object-fit: cover;
  /* ★重要：画像の比率を保ったまま枠いっぱいに広げ、はみ出しをカット */
  border-radius: 50%;
  /* 正円にする */
  display: block;
}

/*--------- about ---------*/
#about #sec01 {
  background-image: url("../images/about_bg01.png");
  background-repeat: no-repeat;
  background-size: cover;
}

.txtWithImg {
  display: flex;
}

.txtWithImg .inTxt {
  padding-right: 65px;
}

.txtWithImg .inImg p {
  text-align: center;
  font-weight: bold;
  font-family: toppan-bunkyu-midashi-min-st, serif;
}

.tableA tr {
  border-bottom: 2px solid var(--sub1);
}

.tableA th {
  background-color: var(--sub2);
  width: 150px;
  text-align: center;
  padding: 10px 20px;
  color: var(--sub1);
  border-right: 2px solid var(--sub1);
}

.tableA td {
  background-color: var(--sub4);
  padding: 10px 20px;
  width: calc(100% - 250px);
  /*100%からthの合計の幅を引く*/
}

.tableA tbody > tr:first-child th:first-child {
  background-color: var(--main);
  border-radius: 15px 0 0 15px;
  width: 100px;
}

/* ブログ・お知らせ　一覧 */
.blog .headerTitle,
.news .headerTitle,
.contact .headerTitle,
.privacy_policy .headerTitle {
  background-image: linear-gradient(90deg, var(--main) 50%, #061d2c 100%);
}
.blog .headerTitle > div,
.news .headerTitle > div,
.contact .headerTitle > div,
.privacy_policy .headerTitle > div {
  height: 150px;
}
.blog .headerTitle > div::after,
.news .headerTitle > div::after,
.contact .headerTitle > div::after,
.privacy_policy .headerTitle > div::after {
  display: none;
}

.categoryList .mainList > li {
  padding-bottom: 20px;
  border-bottom: 1px solid #ccc;
  transition: background-image 0.5s;
}
.categoryList .mainList > li:hover {
  background-image: linear-gradient(90deg, var(--base) 20%, var(--sub2) 80%);
}
.categoryList .mainList > li:not(:first-of-type) {
  padding-top: 20px;
}
.categoryList .mainList > li > a .box00 {
  padding-bottom: 20px;
  display: flex;
}
.categoryList h3 {
  font-size: 22px;
  font-family: var(--fontJ);
  color: var(--main);
  padding-left: 25px;
  padding-bottom: 20px;
  padding-right: 30px;
  background-image: url(../images/listmark.png);
  background-repeat: no-repeat;
  background-position: left top 25px;
  width: -moz-fit-content;
  width: fit-content;
}
.categoryList .post-thumb {
  margin-right: 20px;
  width: 310px;
}
.categoryList .post-thumb img {
  width: 300px;
  height: 300px;
  -o-object-fit: cover;
     object-fit: cover;
  border: 1px solid #ccc;
}
.categoryList .boxIn > ul {
  display: flex;
  margin-bottom: 20px;
}
.categoryList .boxIn > ul > li {
  margin-right: 20px;
}
.categoryList .dateBox {
  font-size: 16px;
  padding: 5px 20px;
  margin-bottom: 0;
}
.categoryList .tax-label {
  padding: 5px 20px;
  height: auto;
  border-radius: 20px;
}
.categoryList .post-contents {
  padding-right: 20px;
}
.categoryList .post-contents p {
  font-size: 16px;
  line-height: 2em;
}
.categoryList .post-contents .x {
  display: inline-block;
  margin-left: 20px;
  background-color: #ccc;
  padding: 0 10px;
  border-radius: 5px;
}

.box01 {
  display: flex;
}

.box01 > ul {
  display: flex;
  align-items: center;
}

.box02 {
  display: flex;
}

.pagination a {
  padding: 0 20px;
}

.pagination .nav-links {
  text-align: center;
}

.pagination .current {
  color: var(--sub1);
}

/*--------- shedule ---------*/
.tableBTitle {
  font-size: 150%;
  color: var(--main);
  font-weight: 600;
  margin-top: 40px;
}

.tableB {
  border-collapse: separate;
  border-spacing: 0;
  margin-top: 20px;
}

.tableB tr:first-child {
  background-color: var(--main);
}

.tableB th {
  font-size: 88%;
  text-align: center;
  padding: 15px 20px;
  color: var(--sub1);
  margin-top: 10px;
  position: relative;
}

.tableB th:not(:last-child):after {
  content: "";
  display: block;
  width: 1px;
  height: 25px;
  background-color: var(--sub1);
  position: absolute;
  top: 15px;
  right: 0;
}

.tableB th:first-of-type {
  border-radius: 15px 0 0 0;
}

.tableB th:last-of-type {
  border-radius: 0 15px 0 0;
}

.tableB td {
  font-size: 88%;
  border-top: 2px solid var(--sub1);
  border-left: 2px solid var(--sub1);
  background-color: var(--sub4);
  padding: 10px;
}

.tableB tr:not(:first-of-type) td:first-of-type {
  background-color: var(--sub2);
  color: var(--sub1);
  border-left: none;
}

.tableB td:has(> a):hover {
  background-color: pink;
}

.tableB a {
  font-size: 100%;
}

.tableB tr td:nth-of-type(2) {
  white-space: nowrap;
}

.tableB .yearTh {
  background-color: var(--sub2);
  text-align: left;
  padding: 10px;
  border-top: 2px solid var(--sub1);
  border-top-right-radius: 0 !important;
}

/*--------- schedule 詳細ページ ---------*/
.tableC tr {
  border-bottom: 4px solid var(--sub1);
  width: calc(100% - 250px);
  /*100%からthの合計の幅を引く*/
}

.tableC th {
  background-color: var(--main);
  width: 150px;
  text-align: center;
  padding: 10px 20px;
  color: var(--sub1);
  border-right: 2px solid var(--sub1);
  border-radius: 15px 0 0 15px;
}

.tableC td {
  background-color: var(--sub4);
  padding: 10px 20px;
  border-right: 2px solid var(--sub1);
}

.listImg {
  padding-top: 40px;
}

.listImg ul {
  display: flex;
  flex-wrap: wrap;
}

.listImg li {
  width: calc((100% - 30px) / 4);
  margin-right: 10px;
}

.listImg li:nth-child(4n) {
  margin-right: 0;
}

.listImg img {
  width: 100%;
  padding: 5px;
  background-color: var(--sub4);
  border: 1px solid var(--sub2);
}

.listImg p {
  margin-top: 20px;
}

/*--------- information ---------*/
.list1 li {
  position: relative;
  padding-left: 28px;
  margin-left: 20px;
  margin-top: 20px;
}

.list1 li:before {
  content: "";
  display: block;
  background-color: var(--main);
  width: 10px;
  height: 10px;
  position: absolute;
  top: 8px;
  left: 10px;
}

.txtHalf p {
  padding-right: 50%;
}

#information #sec01 {
  position: relative;
}

#information #sec01:before {
  content: "";
  display: block;
  position: absolute;
  width: 45%;
  height: 620px;
  background-image: url("../images/info_img01.png");
  background-size: cover;
  background-position: left center;
  background-repeat: no-repeat;
  right: 0;
}

/*----------お知らせ・ブログ　single----------*/
.newsContent .secTitle {
  margin-bottom: 30px;
  font-size: 24px;
}
.newsContent p {
  font-size: 16px;
}
.newsContent img {
  width: 300px !important;
  padding-top: 20px;
}
.newsContent .boxIn ul {
  display: flex;
  padding-bottom: 40px;
}
.newsContent .boxIn ul li {
  margin-right: 20px;
}
.newsContent .boxIn ul .dateBox {
  font-size: 16px;
  padding: 5px 20px;
  margin-bottom: 0;
}
.newsContent .boxIn ul .tax-label {
  padding: 0;
  border-radius: 20px;
}
.newsContent .boxIn ul .tax-label a {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 16px;
  padding: 5px 20px;
  border-radius: 20px;
  color: var(--base);
  transition: background-color 0.5s;
}
.newsContent .boxIn ul .tax-label a:hover {
  background-color: #D9B310;
}
.newsContent .navigation {
  display: flex;
  justify-content: center;
  padding: 80px 0 30px;
}
.newsContent .navigation .post-links {
  display: flex;
}
.newsContent .navigation div {
  padding-right: 30px;
}
.newsContent .navigation a {
  font-size: 16px;
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  padding: 5px 20px;
  border-radius: 20px;
  background-color: var(--main);
  color: var(--base);
  transition: background-color 0.5s;
}
.newsContent .navigation a:hover {
  background-color: var(--sub1);
}

.dateBox {
  background-color: var(--sub2);
  padding: 0 20px;
  width: -moz-fit-content;
  width: fit-content;
  border-radius: 20px;
  color: var(--sub1);
  font-size: 90%;
  margin-bottom: 30px;
}

.blog .newsContent .contBox h2 {
  background-image: none;
  font-size: 24px;
  padding-left: 0;
  margin-bottom: 30px;
  margin-top: 50px;
}/*# sourceMappingURL=smile.css.map */