/* ===============================
基本設定
=============================== */

*{
margin:0;
padding:0;
box-sizing:border-box;
}

body{

font-family:
"Helvetica Neue",
"Arial",
"Yu Gothic",
"Hiragino Kaku Gothic ProN",
sans-serif;

/* background:#f6f6f6; */
background:#fff;
color:#222;
line-height:1.8;

}


/* ===============================
ヘッダー
=============================== */

.site-header{

position:fixed;
top:0;
left:0;

width:100%;

background:rgba(255,255,255,0.8);
backdrop-filter:blur(6px);

z-index:999;

}

.header-inner{

max-width:1350px;
margin:auto;

display:flex;
justify-content:space-between;
align-items:center;

padding:16px 20px;

}

.logo img{

height:48px;

}


/* ===============================
ナビ
=============================== */

.nav ul{

display:flex;
gap:30px;
list-style:none;

}

.nav a{

text-decoration:none;
color:#333;
font-size:14px;
letter-spacing:1px;

}

.nav{
  position:relative;
}


/* ===============================
ハンバーガー
=============================== */

.hamburger{

display:none;
flex-direction:column;
gap:5px;

background:none;
border:none;

}

.hamburger span{

width:25px;
height:2px;

background:#000;

}


.close-btn{
  display:none;
  position:absolute;
  top:20px;
  right:20px;
  font-size:28px;
  background:none;
  border:none;
  cursor:pointer;
}


/* ===============================
言語切り替えボタン
=============================== */
.lang-switch{
  display:flex;
  align-items:center;
  margin-left:20px;
}

/* トグル */
.lang-toggle{
  position:relative;
  display:inline-flex;
  width:80px;
  height:32px;
  background:#eee;
  border-radius:999px;
  text-decoration:none;
  font-size:12px;
  overflow:hidden;
  box-shadow:0 2px 6px rgba(0,0,0,0.1);
  cursor:pointer;
}

.lang-toggle span{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:2;
  color:#555;
  font-weight:500;
  transition:0.5s;
}

/* スライド */
.lang-toggle::before{
  content:"";
  position:absolute;
  top:3px;
  left:3px;
  width:calc(50% - 6px);
  height:calc(100% - 6px);
  background:#0b5fa8;
  border-radius:999px;
  transition:0.3s;
  z-index:1;
}

/* JP選択 */
.lang-toggle.active::before{
  left:3px;
}

/* EN選択 */
.lang-toggle:not(.active)::before{
  left:calc(50% + 3px);
}

/* 文字色 */
.lang-toggle.active span:first-child{
  color:#fff;
}

.lang-toggle:not(.active) span:last-child{
  color:#fff;
}




/* ===============================
index トップイメージ
=============================== */

.topimg{
  width: 100%;
  background: #eee;
  margin: 80px auto 0;
}

.topimg picture{
  display: block;
}

.topimg img{
  display: block;
  width: 100%;
  height: auto;
}


/* ===============================
ヒーロー
=============================== */

.hero{
position:relative;
height:90vh;
height:90svh;
margin-top:80px;
overflow:hidden;
}

.hero img{
width:100%;
height:90vh;
object-fit:cover;
object-position:center 30%;
display:block;
}

.hero::after{

content:"";

position:absolute;
top:0;
left:0;

width:100%;
height:100%;
  display:none;
}

.hero-text{
position:absolute;
inset:0;

display:flex;
flex-direction:column;
align-items:center;
justify-content:center;

color:white;
text-align:center;

z-index:2;
text-shadow:0 3px 10px rgba(0,0,0,0.6);

width:90%;
max-width:800px;
margin:auto;
}

.hero-text h1{
font-size:48px;
letter-spacing:3px;
color:white;

text-shadow:
0 4px 12px rgba(0,0,0,0.7),
0 2px 4px rgba(0,0,0,0.8);
}

.hero-text p{
color:white;
font-size:18px;
line-height:1.8;

text-shadow:
0 3px 8px rgba(0,0,0,0.6);
}

.hero-text .english{

font-size:14px;
letter-spacing:2px;

}


/* ===============================
学校タイトル
=============================== */

.school-title{

background:white;
padding:30px 20px 30px 20px;

}

.title-inner{

max-width:900px;
margin:auto;

text-align:center;

}

.jp-title{

font-size:34px;
letter-spacing:1px;

color:#0b5fa8;

margin-bottom:10px;

white-space:nowrap;
}

.en-title{

font-size:16px;
letter-spacing:3px;

color:#d61f3a;

}


/* ===============================
セクション
=============================== */

.section{

max-width:900px;
margin:auto;
  margin-bottom: 40px;
padding:20px 20px;

}

h2{

font-size:28px;

text-align:center;
letter-spacing:2px;

color:#0b5fa8;

margin-bottom:6px;

}

.en-sub{

text-align:center;

font-size:13px;
letter-spacing:2px;

color:#d61f3a;

padding-top:8px;

border-top:1px solid #ddd;

display:inline-block;

width:100%;

margin-bottom:40px;

}


/* ===============================
文章
=============================== */

.message{

text-align:justify;
text-align-last:left;

}


/* ===============================
表
=============================== */

.lux-table{

width:100%;

border-collapse:collapse;

margin-top:20px;

background:white;

}

.lux-table th{

background:#f3f7fc;

font-weight:500;

}

.lux-table th,
.lux-table td{

border:1px solid #e2e2e2;

padding:14px;

text-align:center;

}

.lux-table td:nth-child(2){

font-weight:500;

}


/* 列幅 */

.lux-table th:nth-child(1),
.lux-table td:nth-child(1){

width:22%;

}

.lux-table th:nth-child(2),
.lux-table td:nth-child(2){

width:48%;

}

.lux-table th:nth-child(3),
.lux-table td:nth-child(3){

width:30%;

}


/* ===============================
NEWS
=============================== */

.news-list{

list-style:none;

}

.news-list li{

display:flex;
gap:20px;

padding:12px 0;

border-bottom:1px solid #eee;

}

.news-date{

width:90px;
color:#777;

}

.news-text{

flex:1;

}


/* ===============================
MAP
=============================== */

.map{

margin-top:30px;

}

.map iframe{

width:100%;
border-radius:4px;

}


/* ===============================
FOOTER
=============================== */

/* フッター */

footer{
background:#12346e;
color:#ffffff;
padding:60px 20px;
margin-top:80px;
border-top:3px solid #D4AF37;
}

footer .footer-inner{
max-width:860px;
margin:0 auto;
text-align:center;
}

footer .school-name{
font-family:"Times New Roman",serif;
font-size:20px;
letter-spacing:2px;
margin-bottom:30px;
}

.group-links h3{
font-size:13px;
letter-spacing:2px;
margin-bottom:15px;
color:#d8d8d8;
}

.group-links ul{
list-style:none;
padding:0;
margin:0;
}

.group-links li{
margin:6px 0;
}

.group-links a{
color:#cfcfcf;
text-decoration:none;
font-size:14px;
}

.group-links a:hover{
color:#b40000;
}

footer .copyright{
margin-top:40px;
font-size:12px;
color:#aaaaaa;
letter-spacing:1px;
}


/* ===============================
スマホ
=============================== */

@media (max-width:768px){

.close-btn{
display:block;
}

.nav{

position:fixed;

top:0;
right:-100%;

width:260px;
height:100vh;

background:white;

padding-top:100px;

transition:0.3s;

}

.nav ul{

flex-direction:column;
gap:30px;

padding-left:30px;

}

.nav.active{

right:0;

}

.hamburger{

display:flex;

}


/* ヒーロー */

.hero{

height:auto;

}

.hero img{

height:auto;
width:100%;

object-position:center top;

}


/* タイトル */

.jp-title{

font-size:24px;

}

.en-title{

font-size:13px;

}


/* 表 */

.lux-table{

font-size:14px;

}

.lux-table th:nth-child(1),
.lux-table td:nth-child(1){

width:26%;

}

.lux-table th:nth-child(2),
.lux-table td:nth-child(2){

width:50%;

}

.lux-table th:nth-child(3),
.lux-table td:nth-child(3){

width:24%;

}

}




@media (max-width:768px){

.hero-text{

top:55%;
left:50%;

transform:translate(-50%,-50%);

width:90%;

padding:0 10px;

}

.hero-text h1{

font-size:28px;
letter-spacing:3px;

}

.hero-text p{

font-size:15px;
line-height:1.6;

}

.jp-title{

font-size:20px;
white-space:nowrap;

}

}



.photo-divider{
  max-width:870px;
  width:100%;
  margin:10px auto 20px;
}

.photo-divider img{
  width:100%;
  height:auto;
  display:block;
}


@media (max-width:768px){

.photo-divider{
width:100%;
margin:20px auto;
}


.quick-info{
flex-direction:column;
gap:18px;
}

}




/* ボタン */

.cta-area{
  text-align:center;
  margin:40px 0;
}

.cta-button{
  background:#0b5fa8;
  color:#fff;
  padding:16px 32px;
  border-radius:999px;
  font-size:16px;
  font-weight:600;
  box-shadow:0 8px 20px rgba(0,0,0,0.15);
  transition:0.3s;
}

.cta-button:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 24px rgba(0,0,0,0.2);
}


/* クイックインフォ */

.quick-info{
  max-width:862px;
  margin:40px auto 10px;
  display:flex;
  justify-content:space-between;
  text-align:center;
  border-top:1px solid #ddd;
  border-bottom:1px solid #ddd;
  padding:20px 0;
}

.info-item{
  flex:1;
}

.info-title{
  font-size:16px;
  letter-spacing:10px;
  color:#0b5fa5;   /* ロゴの青 */
  font-weight:bold;
  margin-bottom:6px;
}

.info-text{
  font-size:16px;
  color:#333;
}


/* 川越市を強調 */

.kawagoe-message{
margin-top:25px;
font-size:20px;
font-weight:600;
letter-spacing:1px;
color:white;
text-shadow:0 4px 12px rgba(0,0,0,0.6);
}

.kawagoe-message strong{
font-size:22px;
}




/* 山手学院グループ　リンク */

.group-links{
margin-top:40px;
text-align:center;
}

.group-links h3{
font-size:14px;
letter-spacing:2px;
color:#777;
margin-bottom:10px;
}

.group-links ul{
list-style:none;
padding:0;
}

.group-links li{
margin:6px 0;
}

.group-links a{
color:#e5e5e5;
text-decoration:none;
font-size:14px;
transition:0.3s;
}

.group-links a:hover{
color:#ffffff;
}


/* 英語版のフォント */
html:lang(en){
  font-family: "Helvetica Neue", Arial, sans-serif;
  letter-spacing:0.5px;

}



.center{
  text-align:center;
}




.hero-message{
  background:#fff;
  text-align:center;
  padding:60px 20px 0px;
  border-bottom:1px solid #eee;
}

.hero-message .open{
  color:#d61f3a;
  font-weight:bold;
  font-size:16px;
  letter-spacing:1px;
}

.hero-message h1{
  font-size:42px;
  line-height:1.4;
  font-weight:700;
  max-width:800px;
  margin:0px auto 0;
}

/* ヒーロー画像 */
.hero img{
  width:100%;
  height:60vh;
  object-fit:cover;
  display:block;
}



/* CTA強化 */
.cta-area{
  text-align:center;
  margin:40px 0;
}

.cta-button{
  background:#0b5fa8;
  color:#fff;
  padding:16px 32px;
  border-radius:999px;
  font-size:16px;
  font-weight:600;
  text-decoration:none;
  box-shadow:0 8px 20px rgba(0,0,0,0.15);
  transition:0.3s;
}

.cta-button:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 24px rgba(0,0,0,0.2);
}

/* サブメッセージ */
.sub-message{
  text-align:center;
  padding:50px 20px;
  background:#f8f8f8;
}

.sub-message p{
  font-size:18px;
  line-height:1.8;
}

.sub-message .keywords{
  margin-top:20px;
  font-size:14px;
  color:#666;
  letter-spacing:1px;
}

/* スマホ対応 */
@media (max-width:768px){
  .hero img{
    height:40vh;
  }

  .hero-message h1{
    font-size:26px;
  }

  .sub-message p{
    font-size:16px;
  }
}




/* ===============================
ヒーローメッセージ（追加）
=============================== */

.hero-message{
  background:#fff;
  text-align:center;
  padding:30px 20px 0px 20px;
}

.hero-message .open{
  color:#d61f3a;
  font-weight:bold;
  font-size:36px;
  margin-bottom:10px;
}

.hero-message h1{
  font-size:40px;
  line-height:1.4;
  font-weight:700;
  max-width:800px;
  margin:0 auto;
  text-align:center;
}

/* サブメッセージ */
.sub-message{
  text-align:center;
  padding:50px 20px;
  background:#f8f8f8;
}

.sub-message p{
  font-size:18px;
  line-height:1.8;
  text-align:center;
}

.sub-message .keywords{
  margin-top:20px;
  font-size:14px;
  color:#666;
  letter-spacing:1px;
  text-align:center;
}


.hero-message,
.sub-message{
  text-align:center !important;
}



/* ===============================
info-list
=============================== */

.info-list {
  list-style: none;
  padding: 0;
  margin: 30px 0;
}

.info-list li {
  margin-bottom: 20px;
  line-height: 1.8;
}

.info-list strong {
  color:#0b5fa8;
  display: block;
  font-size: 1.05em;
  margin-bottom: 5px;
}

.note {
  display: block;
  font-size: 0.9em;
  color: #666;
  margin-top: 5px;
}

.lead {
  font-size: 1.05em;
  margin-bottom: 25px;
}




/* ===============================
黄色いマーカー
=============================== */

.highlight {
  background: linear-gradient(transparent 30%, #fff59d 60%);
}


/* ===============================
日本語サポート
=============================== */

.japanese-support {
  margin:0px auto 40px;
  text-align:center;
}




@media (max-width: 768px) {
  .topimg {
    width: 100vw;
    margin-left: calc(50% - 50vw);
  }

  .topimg img {
    width: 100%;
    height: auto;
  }
}






/* =========================
   CONTACTボタン（共通）
========================= */
.contact-btn {
  position: fixed;
  right: 30px;
  bottom: 30px;
  display: inline-block;
  padding: 14px 30px;
  background: linear-gradient(135deg, #e53935, #c62828); /* 落ち着いた赤 */
  color: #fff;
  font-weight: 600;
  border-radius: 30px;
  text-decoration: none;
  letter-spacing: 0.05em;
  box-shadow: 0 6px 18px rgba(0,0,0,0.25);
  transition: all 0.3s ease;
  z-index: 999;
}

/* ホバーで少し浮く */
.contact-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 22px rgba(0,0,0,0.3);
}

/* クリック時 */
.contact-btn:active {
  transform: translateY(0);
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

/* =========================
   スマホ：中央下に配置
========================= */
@media screen and (max-width: 768px) {
  .contact-btn {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    bottom: 20px;
    padding: 12px 36px;
    font-size: 14px;
  }

  .contact-btn:hover {
    transform: translateX(-50%) translateY(-3px);
  }

  .contact-btn:active {
    transform: translateX(-50%) translateY(0);
  }
}


/* =========================
   きらりエフェクト
========================= */

.contact-btn {
  overflow: hidden;
  position: fixed; /* すでに指定済みでもOK */
}

/* 光の帯 */
.contact-btn::after {
  content: "";
  position: absolute;
  top: 0;
  left: -75%;
  width: 40%;
  height: 100%;
  background: linear-gradient(
    120deg,
    transparent,
    rgba(255,255,255,0.7),
    transparent
  );
  transform: skewX(-20deg);
  opacity: 0;
}

/* 5秒に1回発動 */
.contact-btn {
  animation: shineLoop 5s infinite;
}

/* アニメーション本体 */
@keyframes shineLoop {
  0% {
    /* 待機 */
  }
  80% {
    /* 待機 */
  }
  100% {
    /* 発動 */
  }
}

/* 実際の光の動き */
.contact-btn:hover::after {
  animation: shineMove 0.8s;
}

/* 自動発動用 */
.contact-btn::after {
  animation: shineMove 5s infinite;
}

/* 光が流れる */
@keyframes shineMove {
  0% {
    left: -75%;
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  50% {
    left: 125%;
    opacity: 0;
  }
  100% {
    left: 125%;
    opacity: 0;
  }
}