@charset "UTF-8";

/* カラーバリエーション設定 */
/* デフォルト未選択状態 */
:root {
  /* ---- フォントカラー ---- */
  --color-main: #222222;   /* 見出し：ほぼ黒（強すぎない） */
  --color-sub:  #555555;   /* 本文：標準的なグレー */

  /* ---- アクセント（最小限） ---- */
  --color-accent: #777777; /* 強調・リンク用の中立グレー */

  /* ---- 背景カラー ---- */
  --color-bg1: #ffffff;   /* メイン背景：完全な白 */
  --color-bg2: #f7f7f7;   /* セクション背景 */
  --color-bg3: #eeeeee;   /* サブ背景・区切り */
  --color-bg4: #e0e0e0;   /* カード枠・ボーダー用途 */
  --color-bg5: #cccccc;   /* ボタン・無効状態 */

  --color-white: #ffffff; /* 不変推奨 */
}

/*-------------フォントサイズ変数ここから------ */
:root {
  --fz-base: 16px;              /* 16px *//*投稿エリア_ベースのフォントサイズ*/
  /* ---- 見出し ---- */
  --fz-h1: 2rem;       /* 32px *//* 見出し1 */
  --fz-h2: 1.5rem;     /* 24px */
  --fz-h3: 1.125rem;   /* 18px */

  /* ---- 共通 ---- */
  --fz-header-small: 0.5625rem;  /* 9px *//* ヘッダー地域 */
  --fz-hf-small: 0.5rem;    /* 8px *//* アイキャッチ下地域、フッターコピーライト */
  --fz-nav: 1.125rem;            /* 18px *//* ヘッダーメニュー */
  --fz-top-base: 0.75rem;            /* 12px *//*TOPページ文章　TOPページトピックス（お知らせ・イベント・コンサート）*/
  --fz-logo: 1.5rem;             /* 24px *//*教室ロゴ*/

  /* ---- レスポンシブ @1240px ---- */
  --fz-footer-nav-sp: 1rem;      /* 16px */

  /* ---- レスポンシブ @1025px ---- */
  --fz-header-inner-sp: 0.875rem;/* 14px */
  --fz-header-top-sp: 0.6875rem; /* 11px */

  /* ---- レスポンシブ @768px ---- */
  --fz-h1-sp: 1.5rem;            /* 24px */
  --fz-h2-sp: 1.375rem;          /* 22px */
  --fz-h3-sp: 1.25rem;           /* 20px */
  --fz-footer-bottom-sp: 0.6875rem; /* 11px */
  --fz-common-sp: 1rem;          /* 16px */
}

/*-------------フォントサイズ変数ここまで------ */


/*-------------カラーバリエーション変数ここから------------- */
h1,h2,h3,h4,h5,h6{
  color: var(--color-main);
}

.contents-background-color1 {
  background-color: var(--color-bg1);
}

.contents-background-color2 {
  background-color: var(--color-bg2);
}

.contents-background-color3 {
  background-color: var(--color-bg3);
}
.contents-background-color4 {
  background-color: var(--color-bg4);
}

.contents-background-color5 {
  background-color: var(--color-bg5);
}

.contents-font-color1 {
  color: var(--color-main);
}

.contents-font-color2 {
  color: var(--color-sub);
}

.contents-font-color4 {
  color: var(--color-accent);
}

.btn-default,
.newsblock .arrow::before,
.newsblock .arrow::after {
  background-color: var(--color-accent);
}

.newsblock ul li{
  border-bottom: 2px solid var(--color-bg4);
}

.contact-h2,
#contact-area dt{
  background-color: var(--color-bg1);
}

#contact-area button,
.button a{
  background-color: var(--color-main);
  color: var(--color-white);
}

.inner-sub p,
.inner-sub div,
#contact-area dt,
#contact-area dd,
#contact-area dd select,
#contact-area div,
.infoDate,
.infoTitle{
  color: var(--color-sub);
}

.card-box:hover a,
.topics-block:hover,
.topics-block a{
  text-decoration-color: var(--color-main);
}

.button a{
  color: var(--color-white);
}

.inner-sub a{
  color: var(--color-accent);
}

#navMenu li a::after {
  background-color: var(--color-accent); /* ドットの色 */
}

/* スクロール後にクラス付与されたとき */
header.scrolled .header-menu-contents{
  border-bottom: 1px solid var(--color-bg1);
  box-shadow: 0 1px 2px var(--color-bg1);
}

header.scrolled #navMenu li:not(:last-child)::after {
  background-color: var(--color-bg1); /* 線の色（背景に合わせて） */
}

#navMenu li:not(:last-child)::after {
  background-color: var(--color-bg2); /* 線の色（背景に合わせて） */
}

@media(max-width:1025px){
  .header-inner{
    background-color: var(--color-bg1);
  }
}

/*-------------カラーバリエーション変数ここまで------ */
/*-------------センタリング変数ここから------ */

.sub-container .left h2{
  text-align: var(--top-mainarea-title);
}
/*--メインエリア_テキスト-- */
.sub-container .left p{
  text-align: var(--top-mainarea-lead);
}
/*-------------センタリング変数ここまで------ */
/*-------------共通------------- */
html {
  font-size: var(--fz-base);
}
h1 {
  font-size: var(--fz-h1);
}

h2 {
  font-size: var(--fz-h2);
}

h3,
.btn {
  font-size: var(--fz-h3);
}

h4 {
  font-size: var(--fz-h4);
}

h5 {
  font-size: var(--fz-h5);
}

h6 {
  font-size: var(--fz-h6);
}
/*-------------共通ここまで------------- */

.footer-bottoms-contents {
  font-size: var(--fz-hf-small);
}
.header-top-contents {
  font-size: var(--fz-header-small);
}
header nav a{
  font-size: var(--fz-nav);
}
.newsblock li {
  font-size: var(--fz-top-base);
}

header ul,
body .inner-sub .button a,
.left p,
#contact-area button {
  font-size: var(--fz-top-base);
}

.logotitle a {
  font-size: var(--fz-logo);
}

.newsblock .link-deco a,
footer nav ul li a {
  font-size: var(--fz-link);
}

#contact-area input[type="text"],
input[type="email"],
input[type="button"],
textarea {
  font-size: var(--fz-top-base);
}

/*校正用プレビュー画面のテキスト*/
#hd-preview {
  font-size: var(--fz-preview);
}
/*ここまで*/

/* ===== レスポンシブ 1025px ===== */
@media(max-width:1025px) {
  header nav a {
    font-size: var(--fz-nav);
  }
  
  footer nav ul li a {
    font-size: var(--fz-footer-nav-sp);
  }
}

/* ===== メニュー（1025px） ===== */
@media(max-width:1025px) {
  .header-inner .h-f-box-inner span {
    font-size: var(--fz-header-inner-sp);
  }
  .header-top-contents span {
    font-size: var(--fz-header-top-sp);
  }
}

/* ===== スマホ対応（768px） ===== */
@media(max-width:768px) {
  .content h1,
  .logotitle a {
    font-size: var(--fz-h1-sp);
  }

  .content h2 {
    font-size: var(--fz-h2-sp);
  }

  .inner-sub h3,
  .btn {
    font-size: var(--fz-h3-sp);
  }


  .footer-bottoms-contents {
    font-size: var(--fz-footer-bottom-sp);
  }

  .card-body h3,
  .left,
  .left p,
  footer ul,
  .inner-sub p,
  .newsblock li,
  .newsblock .newsblock-inner {
    font-size: var(--fz-common-sp);
  }
}
/*-------------フォントサイズ変数ここまで------ */



/*-------------#fff　カラーは不変------------- */
.contents-background-color6 {
  background-color:var(--color-white);
}

.contents-font-color3 {
  color: #fff;
}

/*-------------#fff　カラーは不変------------- */
/*-------------共通------------- */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0
}

html,
body {
  height: 100%
}

html,
body {
  margin: 0;
  font-family: system-ui, sans-serif;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: medium;
  font-style: normal;
}
html {
  scroll-behavior: smooth;
}

/*-------------共通ここまで------------- */

/* スライダー */
.hero-slider {
  position: relative;
  /* ヘッダー分引く */
  width: 100%;
  overflow: hidden;
  background: #fff;
  margin-top: 130px;
  /* ヘッダー固定分の余白 */
}

.carousel {
  position: relative;
  width: 1200px;
  /*aspect-ratio: 1200 / 545;*/
  /*aspect-ratio: 1920 / 900;*/
  aspect-ratio: 1200 / 675;
  overflow: hidden;
  margin: 130px auto 0;
}

.carousel img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0;
  transition: opacity 1s ease-in-out;
  pointer-events: none;
  /* マウス操作を無効化 */
  user-drag: none;
  /* Safari対応：画像ドラッグ禁止 */
  -webkit-user-drag: none;
  /* WebKit系対応 */
  margin: 0 auto;
}

.carousel img.active {
  opacity: 1;
  z-index: 1;
}

.dot {
  width: 10px;
  height: 10px;
  border-radius: 9999px;
  background-color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
}

/* ドットナビをカルーセル内の中央下に配置 */
.flex.justify-center.gap-3.mt-4 {
  position: absolute;
  bottom: 6%;
  /* ← 下からの距離を調整 */
  left: 50%;
  /* ← 横中央に寄せる */
  transform: translateX(-50%);
  /* ← 中央揃え */
  z-index: 10;
  /* ← 画像の上に重ねる */
  justify-content: center;
  /* ← 横並びを中央寄せ */
  gap: 10px;
  /* ← ドット間の余白 */
  width: auto;
  /* ← 必要なら 100% にしてもOK */
  display: flex;
}

/* ドットのデザイン */
.dot {
  width: 10px;
  height: 10px;
  border-radius: 9999px;
  background-color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: background-color 0.3s;
}

.dot.active {
  background-color: white;
}

.slide {
  position: absolute;
  inset: 0;
  background-position: center center;
  background-size: cover;
  opacity: 0;
  transition: opacity 1s ease;
}

.slide.visible {
  opacity: 1;
  z-index: 1
}

/* =====  ヘッダー ===== */
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  /*height: 90px;*/
  z-index: 1000;
  transition: box-shadow 0.3s ease, border-bottom 0.3s ease;
}


.header-inner {
  margin: 0 auto;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 1200px;
}

.h-f-box-inner {
  margin: 0 auto;
  width: 1200px;
  word-break: break-all;
}

.h-f-box-inner a {
  margin-right: 16px;
}

.header-menu-contents {
  margin: 0 auto;
  min-height: 90px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  position: relative;
}

.header-top-contents {
  min-height: auto;
  line-height: auto;
}

.header-top-contents {
  display: flex;
  gap: 50px;
  /* 子要素の間に15pxのスペース */
  padding: 0 16px;
}

.header-top-contents.area span {
  display: inline-block;
  margin: 4px auto;
  height: auto;
  line-height: 16px;
  word-break: break-all;
}
.header-top-contents.area {
  height: auto;
}


/* ===== スライドショー ===== */
.slideshow {
  position: relative;
  width: 100vw;
  height: calc(100svh - 130px);
  overflow: hidden;
  padding-top: 130px;
}

.slides {
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  position: relative;
}


header nav a {
  text-decoration: none;
  font-weight: bold;
}

header nav ul {
  display: flex;
  list-style: none;
  /*gap: 54px;*/
}

header ul {
  list-style: none;
}

.logotitle a{
  font-weight: bold;
}

.school-title {
  text-decoration: none;
}

.sub-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  /* 左右50%ずつ */
  gap: 54px;
  justify-content: end;
  margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    place-items: center;
}

.right img {
  border-radius: 30px;
  max-width: 440px;
}

.left {
  align-self: end;
  word-break: break-all;
}

.top-btn-area {
  padding:0;
  text-align: center;
}

.btn {
  display: inline-block;
  padding: 12px 24px;
  font-weight: bold;
  border: none;
  border-radius: 20px;
  /* 丸みのあるボタン */
  text-decoration: none;
  text-align: center;
  transition: all 0.3s ease;
  padding: 20px;
}

.btn:hover {
  transform: translateY(-10px);
  /* 浮き上がる */
}

.btn:active {
  transform: translateY(0);
  /* 押し込む */
}

/* ===== コンテンツ全体 ===== */
.content {
  margin: auto;
  min-height: calc(100vh - 130px);
  /* 画面の高さに合わせる */
  display: flex;
  flex-direction: column;
}

.content h2 {
  padding-top: 30px;
  text-align: center;
  margin-bottom: 30px;
}

.content .section1 {
  width: 100%;
  padding-top: 30px;
  padding-bottom: 48px;
}
.content .section2 {
  width: 100%;
  padding-bottom: 80px;
}

.content .section5,
.content .section6 {
  width: 100%;
  padding-bottom: 0px;
}

.content .inner-sub .newsblock {
  min-height: calc(100vh - 397px);
}

.newsblock .link-deco {
  display: block;
  text-align: right;
  padding: 20px 0 10px 0;
  width: calc(100% - 194px);
  margin: 0 auto;
}
.link-deco-top{
  display: block;
  padding:20px 0 10px 0;
}

.newsblock .link-deco a {
  text-decoration: underline;
}
#events-list{
  padding-top: 20px;
}

/* ===== カードレイアウト ===== */
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 100px;
  padding: 40px 0;
  place-items: center;
}

.card-grid a {
  text-decoration: none;
}

.card {
  border-radius: 30px;
  overflow: hidden;
  transition: transform 0.3s, box-shadow 0.3s;
  cursor: pointer;
}

.card:hover {
  transform: translateY(-6px);
}

.card img {
  width: 100%;
  display: block;
}

.card-body {
  padding: 0;
}

.card-body h3 {
  margin: 20px 0 20px 0;
  text-align: center;
}

.card-body p {
  margin: 0;
  line-height: 1.5;
}

/* =====  お知らせ・発表会欄 ===== */
.newsblock,.contentblock {
  padding-bottom: 50px;
}

.newsblock .newsblock-inner {
  border-radius: 30px;
  padding: 40px 10px;
}
.newsblock .event-inner,.contentblock .content-inner {
  border-radius: 30px;
  padding: 50px 50px;
  margin-bottom: 40px;
  position: relative;
  word-break: break-all;
}
.newsblock .event-inner .scroll-target{
  position: absolute;
  top: 0;
}
.newsblock .event-inner .content-title{
 margin-top: 0;
}


.inner-sub .newsblock ul {
  max-height: 1000px;
  overflow: overlay;
  width: 100%;
}

.newsblock ul {
  max-height: 300px;
  overflow: overlay;
  width: 100%;
}

.newsblock li {
  list-style: none;
  width: calc(100% - 194px);
  margin: 0 auto;
  padding: 10px 0;
}

.newsblock .arrow {
  position: absolute;
  display: inline-block;
  width: 7.7px;
  height: 13.3px;
  top: calc(100% - 50% - 13.3px);
  right: -14px;
  padding: 10px 0;
}

.newsblock a {
  display: block;
  text-decoration: none;
}

.newsblock .infoDate {
  padding-right: 10px;
}

.newsblock .arrow::before {
  transform: rotate(45deg);
}

.newsblock .arrow::before,
.newsblock .arrow::after {
  content: "";
  position: absolute;
  top: calc(50% - 0.5px);
  right: 0;
  width: 10px;
  height: 3px;
  border-radius: 9999px;
  transform-origin: calc(100% - 0.5px) 50%;
}

.newsblock .arrow::after {
  transform: rotate(-45deg);
}

.newsblock .arrow::before,
.newsblock .arrow::after {
  content: "";
  position: absolute;
  top: calc(50% - 0.5px);
  right: 0;
  width: 10px;
  height: 3px;
  border-radius: 9999px;
  transform-origin: calc(100% - 0.5px) 50%;
}

.newsblock ul li .topics-block {
  position: relative;
}

.newsblock ul li {
  border-bottom: 1px dotted #ccc;
}
  .topics-block {
    width: calc(100% - 20px);
    display: inline-block;
  }

/* =====  地図ページ ===== */
#map-area p {
  padding: 0 0 10px 0;
  font-size: var(--fz-top-base);
}

#school-map {
  margin-top: 20px;
}

.button {
  padding: 4px;
  border: 1px solid #8a8a8a;
  border-radius: 3px;
  -moz-border-radius: 3px;
  -webkit-border-radius: 3px;
  position: relative;
  padding: 10px 14px;
  border-radius: 4px;
  display: inline-block;

}

.button {
  border: none;
  border-radius: 30px;
  text-decoration: none;
  text-align: center;
  padding: 20px 40px;
  margin: 60px auto;
  display: block;
}

body .inner-sub .button a {
  text-decoration: none;
  display: inline-block;
  font-weight: normal;
  border: none;
  border-radius: 20px;
  text-decoration: none;
  text-align: center;
  padding: 20px 40px;
  cursor: pointer;
  margin: 60px auto;
  color: #ffffff;
}

.inner-sub ol,.inner-sub ul{
  list-style-position: outside;
    margin: 0 0 1em 1rem;
    padding-left: 1rem;
}

.cont-tit-cap-small {
  margin-bottom: 10px;
}

.cont-tit-cap {
  margin-bottom: 10px;
}


.map-area-inner {
  margin-top: 30px;
}

.school-map-zoom {
  text-align: right;
  margin-top: 10px;
  margin-bottom: 30px;
}

/* =====  地図ページここまで ===== */

/* =====  フッター ===== */
.content .section .inner {
  max-width: 980px;
  /* コンテンツ幅を制限 */
  margin: 0 auto;
  /* 中央揃え */
}

footer .section {
  width: 100%;
  padding: 20px 0;
}

footer nav {
  display: flex;
  justify-content: flex-end;

}

footer nav ul {
  display: flex;
  list-style: none;
  gap: 60px;
}

footer nav ul li {
  list-style: none;
  display: inline-block;
}

footer nav ul li a {
  text-decoration: none;
}

footer nav ul li a:hover {
  text-decoration: underline;
}

footer .section .inner {
  max-width: 1200px;
  /* コンテンツ幅を制限 */
  margin: 0 auto;
  /* 中央揃え */
}

.footer-bottoms-contents {
  min-height: 30px;
  line-height: 30px;
}

.footer-bottoms-contents {
  display: flex;
  gap: 50px;
  /* 子要素の間に15pxのスペース */
  padding: 0 16px;
}

#gototop {
  position: fixed;
  right: 0px;
  margin: 20px;
  bottom: 50px;
  z-index: 1000;
}

/* 丸いボタン、矢印は background SVG で表示 */
.btn-gototop {
  display: inline-block;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  text-decoration: none;
  outline: none;
  border: none;
  padding: 0;
  /* 矢印アイコンをSVGで中央表示（白）*/
  background-image: url("../images/arrow.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 50%;
  transition: transform .18s ease, box-shadow .18s ease;
  border: 1px solid #fff;
}

/* ホバー / アクティブ効果 */
.btn-gototop:hover {
  transform: translateY(-3px);
}

.btn-gototop:active {
  transform: translateY(-1px) scale(.98);
}

.inner,
.hero-slider{
  opacity: 0;
  animation: fadeIn 0.5s ease-in-out forwards;
  max-width: 1200px;
  margin: 80px auto 0;
}
.area {
  opacity: 0;
  animation: fadeIn 0.5s ease-in-out forwards;
  max-width: 1200px;
  margin: 0px auto 0;
}
.required{
  color: #ff0000;
}
.event-inner [id] {
  padding-top: 139px;
  margin-top: -139px;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}
#school-key.ct,#free-key.ct{
  text-align: center;
}
.area{
  margin-bottom: 16px;
  font-size: var(--fz-hf-small);
}
.textblocks .ct {text-align: center;}

/* キーボード操作時のフォーカスを明示 */
.btn-gototop:focus {}

/* モバイルで大きめに見せたい場合 */
@media (max-width: 480px) {
  .btn-gototop {
    width: 44px;
    height: 44px;
    right: 14px;
    bottom: 30px;
  }
}
  #events-list{
    scroll-margin-top: 130px; 
  }

/* アニメーションを嫌うユーザー向け */
@media (prefers-reduced-motion: reduce) {
  .btn-gototop {
    transition: none;
  }
}


/* ===== セカンドページ ===== */
.content-title {
  margin-top: 125px;
}

.content-title h1,
.content-title h2 {
  display: block;
  text-align: left;
  padding: 40px 0;
  margin: 0;
  word-break: break-all;
}

.inner-sub {
  padding: 80px 0;
}
.inner-sub img{
  max-width: 100%;
  height: auto !important;
}

.inner-sub h3 {
  padding: 0 0 30px 0;
}

.inner-sub #contact-area .contact-form-err {
  color: #ff0000;
}

.inner-sub .right {
  margin: 0 auto;
}
/*.inner-sub p {
  padding: 20px 0;
}*/



/* ===== セカンドページここまで ===== */




/* ===== お問合せ ===== */
.contact-h2,
#contact-area dt {
  margin: 20px 0;
  padding: 10px;
}

#contact-area dd {
  margin-bottom: 40px;
}

#contact-area input[type="text"],
input[type="email"],
input[type="button"],
textarea {
  padding: 4px;
  border: 1px solid #8a8a8a;
  font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', MS GOTHIC, sans-serif;
  background-color: #fff;
  border-radius: 3px;
  -moz-border-radius: 3px;
  -webkit-border-radius: 3px;
  position: relative;
  padding: 10px 14px;
  border-radius: 4px;
}

#contact-area input[type="text"] {
  width: 100%;
  max-width: 600px;
}

.content #contact-area .contact-input-name {
  width: 100%;
  max-width: 300px;
}

#contact-area input[type="email"] {
  width: 100%;
  max-width: 600px;
}

#contact-area input[type="button"] {
  width: 100%;
  max-width: 200px;
}

#contact-area textarea {
  width: 100%;
  max-width: 100%;
}

#contact-area label {
  margin-right: 10px;
}

#contact-area select {
  padding: 6px;
}

#contact-area dd label {
  margin-left: 10px;
}

.contact-input-name {
  margin-right: 16px;
}

#contact-area button {
  font-weight: normal;
  border: none;
  border-radius: 20px;
  text-decoration: none;
  text-align: center;
  padding: 20px 40px;
  cursor: pointer;
  display: block;
  /* インライン要素をブロック化 */
  margin: 60px auto;
  /* 左右の余白を自動で均等 */
}

#contact-area .contact-form-att {
  padding: 0;
}

.topics-block:hover {
  text-decoration: underline;
}

.card-box:hover a {
  text-decoration: underline;
}
.card-box {
  max-width: 320px;
}

/* ===== お問合せここまで ===== */

/* ===== スクロールして要素が画面に入ったタイミングで「ふわっ」とコンテンツ出現アニメーション ===== */
.fade-up {
  opacity: 0;
  transform: translateY(40px);
  transition: all 0.8s ease-out;
  transition-delay: 0.2s;
  /* 遅延をつけて順番に出す */
  transition-duration: 1s;
  /* ゆっくりめ */
}

.fade-up.show {
  opacity: 1;
  transform: translateY(0);
}

/*スクロールして要素が画面に入ったタイミングで「ふわっ」とコンテンツ出現アニメーションここまで*/

/*校正用プレビュー画面のテキスト*/
#hd-preview{
  text-align: center;
    background-color: #ffffff;
    font-weight: 700;
    padding: 10px;
    color: #ff0000;
    position: absolute;
    top: 0px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1000;
}
/*校正用プレビュー画面のテキストここまで*/

@media(min-width:1026px) {

  /*ヘッダーアニメーション*/
  /* ▼ 共通スタイル */
  #navMenu li {
    position: relative;
    display: inline-block;
  }

  #navMenu li a {
    text-decoration: none;
    position: relative;
    padding-bottom: 16px;
    /* 円のスペース分ちょっと余白 */
    transition: color 0.1s ease;
  }
  /* ▼ ドット部分 */
  #navMenu li a::after {
    content: "";
    position: absolute;
    bottom: 0;
    /* 下端に配置 */
    left: 50%;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    transform: translateX(-50%) scale(0);
    opacity: 0;
    transition: transform 0.1s ease, opacity 0.1s ease;
  }

  /* ▼ hover時にドットを表示 */
  #navMenu li:hover a::after {
    transform: translateX(-50%) scale(1);
    opacity: 1;
  }

  /* ▼ active（現在ページ）は常に表示 */
  #navMenu li.active a::after {
    transform: translateX(-50%) scale(1);
    opacity: 1;
  }

  /*ヘッダーアニメーションここまで*/
  /*メニューセパレート*/
header.scrolled #navMenu {
  display: flex;
  justify-content: center; /* 中央寄せの場合 */
  align-items: center;
  gap: 0; /* 間隔はborderで調整するので0推奨 */
  list-style: none;
  padding: 0;
  margin: 0;
}

#navMenu li {
  position: relative;
  padding: 0 25px; /* 横の余白 */
  line-height: 1;
}

/* ▼ 区切り線を右側に表示 */
header.scrolled #navMenu li:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 1em; /* 線の高さを調整 */
  width: 1px;
}
#navMenu li:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 1em; /* 線の高さを調整 */
  width: 1px;
}
/*メニューセパレート*/
    .sp-disp{
    display: none;
  }

}
@media(max-width:1200px) {
  .hero-slider {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: #fff;
    margin-top: 0px;
  }
}

@media(max-width:1025px) {


  .content .section .inner {
    max-width: 980px;
    margin: 0 20px;
  }

  .content .section .inner img {
    max-width: 100% !important;
    height: auto !important;
  }

  header nav ul {
    padding-right: 10px;
  }

  footer nav ul {
    padding-right: 10px;
  }

  .topics-block {
    text-decoration: underline;
  }

  .card-body h3 {
    text-decoration: underline;
  }

  .h-f-box-inner {
    margin: 0 auto;
    width: 100%;
  }
/* ===== メニュー ===== */
    header .header-top-contents{
    display: none;
  }
  header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    /*height: 70px;*/
    height: auto;
    z-index: 1000;
  }
  .header-menu-contents{
  display: flex;
  flex-wrap: wrap;         /* 折り返す */
  align-items: flex-start; /* 上に寄せる */
  justify-content: flex-end;
  min-height: 70px;
  height: auto;
  }
  .header-inner .h-f-box-inner{
    margin: 0 20px;
  }
    .header-inner .h-f-box-inner span{
    display: block;
  }

  .header-inner {
    margin: 0 auto;
    /*height: 70px;*/
    min-height: 70px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 1200px;
  }

  header nav a {
    display: block;
  }

  .content-title {
    margin-top: 70px;
  }
 .newsblock .event-inner .content-title {
    margin-top: 0px;
  }
  header nav ul {
    display: none;
    position: absolute;
    top: 70px;
    left: 0;
    width: 100%;
    background: #fff;
    flex-direction: column;
    gap: 0;
    border-top: 1px solid #ddd;
  }

  header nav ul.show {
    display: flex;
  }

  header nav li {
    padding: 1rem;
    border-bottom: 1px solid #eee
  }

  .hamburger {
    display: flex;
  }
  /*ハンバーガーメニューアニメーションここから*/
  /* 基本の3本線 */
/* ハンバーガー初期設定（SPで表示する前提） */
.hamburger {
  width: 24px;
  height: 24px;
  position: relative;
  cursor: pointer;
}

.hamburger span {
  display: block;
  width: 24px;
  height: 3px;
  border-radius: 3px;
  position: absolute;
  left: 0;
  transition: 0.3s;
  transform-origin: center;
}
.hamburger span:nth-child(1) { top: 0; }
.hamburger span:nth-child(2) { top: 50%; transform: translateY(-50%); }
.hamburger span:nth-child(3) { bottom: 0; }

/* activeで× */
.hamburger.active span:nth-child(1) {
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
  bottom: auto;
  top: 50%;
  transform: translateY(-50%) rotate(-45deg);
}
/* active で X 化（24px / 3本線構造に最適化） */


/* メニュー表示切り替え（例） */
nav {
  transition: 0.3s;
}

nav.active .menu {
  /* メニューを開く動作はここに書く */
  /* 例: transform: translateX(0); など */
}
#navMenu {
  display: none;
  list-style: none;
  padding: 0;
  margin: 0;
  flex-direction: column;
}

/* メニュー開閉時 */
#navMenu.show {
  display: flex; /* 好きにスライドアニメーション入れる場合は transform: translateX() などでもOK */
  transition: transform 0.2s ease;
}
  /*ハンバーガーメニューアニメーションここまで*/

  .header-top-contents {
    height: auto;
    line-height: auto;
  }

  .header-top-contents {
    display: block;
    gap: 10px;
    /* 子要素の間に15pxのスペース */
    padding: 0 8px;
    line-height: auto;
  }

  .header-top-contents span {
    display: block;
    line-height: 20px;
  }

  header nav {
    margin-right: 20px;
  }

  .content #contact-area .contact-input-name {
    width: 100%;
    max-width: 30%;
    padding: 1%;
  }

  #contact-area input[type="button"] {
    width: 100%;
    max-width: 35%;
  }

  #contact-area dd label {
    margin-left: 1%;
  }

  #contact-area label {
    margin-right: 1%;
  }

  .infoTitle {
    width: calc(100% - 20px);
    display: block;
  }

  .newsblock .arrow {
    position: absolute;
    display: inline-block;
    width: 7.7px;
    height: 13.3px;
    top: calc(100% - 50% - 10px);
    right: 0px;
    padding: 10px 0;
  }

  .topics-block:hover {
    text-decoration: underline;
  }
  #events-list{
    scroll-margin-top: 70px; 
  }
}

/* ===== スマホ対応 ===== */
@media(max-width:768px) {
.logotitle a {
    font-weight: bold;
    display: inline-block;
    line-height: 1.2;
}

    .container {
      width: 80%;
      margin: 40px auto;
      border: 1px solid #ccc;
      resize: horizontal;
      overflow: hidden;
    }

  .content {
    padding: 0;
    min-height: auto;
  }

  .content h1 {
    padding: 40px 0 20px 0;
    margin-bottom: 0px;
  }

  .content h2 {
    padding: 20px 0 20px 0;
    margin-bottom: 0px;
  }

  h2.sub-title {
    padding: 20px 0;
  }
.content .section1 {
    width: 100%;
    padding-top: 10px;
    padding-bottom: 28px;
}
  .card {
    border-radius: 30px;
    overflow: hidden;
    transition: transform 0.3s, box-shadow 0.3s;
    cursor: pointer;
  }

  .card-body h3 {
    margin: 16px 0;
    text-decoration: underline;
  }


  .card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 30px;
    padding: 40px 0;
  }

  .slideshow {
    position: relative;
    width: 100vw;
    height: 100svh;
    overflow: hidden;
    max-height: 600px;
  }

  .sub-container {
    flex-direction: column;
    /* Flexboxの場合 */
    grid-template-columns: 1fr;
    /* Gridの場合 */
    gap: 42px;
    margin: 0 auto;
  }

  .left {
    text-align: center;
    word-break: break-all;
  }

  .right {
    margin: 0 auto;
    text-align: center;
  }

  .right img {
    border-radius: 30px;
    max-width: 100%;
    width: 70%;
  }

     .newsblock .newsblock-inner,.newsblock .event-inner,.contentblock .content-inner {
    border-radius: 30px;
    padding: 20px 10px;
    margin-bottom: 20px;
    word-break: break-all;
  }

  .newsblock li {
    width: calc(100% - 60px);
    margin: 0 auto;
    padding: 10px 0;
  }

  .newsblock .link-deco {
    display: block;
    text-align: right;
    padding: 10px 0 10px 0;
    width: calc(100% - 60px);
    margin: 0 auto;
  }

  .content .newsblock {
    min-height: auto;
  }

  .btn {
    display: inline-block;
    padding: 6px 12px;
    font-weight: bold;
    border: none;
    border-radius: 20px;
    text-decoration: none;
    text-align: center;
    transition: all 0.3s ease;
    padding: 16px;
    max-width: 90%;
  }

  .top-btn-area {
    padding: 0;
    text-align: center;
  }

  footer .section .inner {
    max-width: 100%;
    margin: 0 auto;
  }

  .footer-bottoms-contents {
    display: block;
    ;
    gap: 20px;
    padding: 0 8px;
  }

  footer .footer-bottoms-contents {
    height: auto;
    line-height: 20px;
    padding-top: 10px;
    padding-bottom: 10px;
  }

  .footer-bottoms-contents span {
    display: block;
    margin-bottom: 30px;
    width: calc(100% - 50px);
  }

  footer ul {
    list-style: none;
  }

  footer nav {
    display: flex;
    justify-content: flex-start;
    margin: 0 20px;
  }

  footer nav ul {
    display: block;
  }

  footer nav ul li {
    list-style: none;
    display: block;
  }

  footer nav ul li a {
    text-decoration: underline;
  }

  #gototop {
    position: fixed;
    right: 0px;
    margin: 10px;
    bottom: 0px;
    z-index: 1000;
  }


  .inner-sub {
    padding: 30px 0;
  }

  .inner-sub h3 {
    padding: 0 0 20px 0;
  }

  .inner-sub p {
    padding: 16px 0;
  }

  iframe {
    max-width: 100% !important;
    height: auto !important;
  }
  .inner-sub .area {
    margin-bottom: 16px;
    font-size: var(--fz-hf-small);
    padding: 0;
    word-break: break-all;
}
.event-inner [id]{
  padding-top: 80px;
  margin-top: -80px;
}
  .content .section .inner {
    max-width: 1200px;
    margin: 0 10px;
  }
}