* {  box-sizing: border-box;}body {  margin: 0 auto;  width: 100%;  font-family: YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";  /* テキスト選択を禁止 */  -webkit-user-select: none; /* Chrome, Safari */  -moz-user-select: none; /* Firefox */  -ms-user-select: none; /* IE10+ */  user-select: none; /* 標準対応 */}img {  max-width: 100%;  height: auto;  vertical-align: middle;}p.resizeimage img {  width: 100%;}a {  text-decoration: none;}a:hover img {  opacity: 0.7;  filter: alpha(opacity=80);  transition-duration: 0.5s;}.top-icon {  font-size: 1.5em;}.clear {  clear: left;}.container {  max-width: 1170px;  width: 96%;  padding: 0 2% 0 2%;  margin: 0 auto;  color: #023044;}.container h1 {  text-align: left;  width: 100%;  margin: 0;  padding: 1px 0% 0px 0%;  font-family: YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";  font-size: 12px;  color: #fff;}.container h2 {  text-align: left;  width: 100%;  margin: 0;  padding: 1px 0% 0px 0%;  font-family: "丸フォーク M", "メイリオ", Meiryo, "ヒラギノ角ゴPro W3", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", sans-serif;  font-size: 12px;  color: #fff;}.content_news_box {  max-width: 100%;  width: 100%;  margin-bottom: 30px;  padding: 15px;  font-size: 14px;  border-radius: 10px;  /*line-height: 24px;*/  text-align: left;  /*color: #023044;*/  color: #023044;  background-color: #fff;  border: solid #ddd 1px;}.content_news_box ul {}.content_news_box li {  list-style: none;  line-height: 1.6em;  padding-bottom: 10px;  margin-left: -15px;  text-indent: -1.8em;}.btn {  padding: 8px 24px;  color: white;  display: inline-block;  opacity: 0.8;  border-radius: 4px;  text-align: center;  font-weight: bold;}.btn:hover {  opacity: 1;}header {  /*position: absolute;*/  height: 65px;  width: 100%;  background-color: rgba(255, 255, 255, 0.9);  margin-top: 34px;  z-index: 1;}.logo {  width: 208px;  margin-top: 16px;}.header-left {  float: left;}/* トップクレジット */.top_main_menu1 {  position: fixed;  margin: 0;  color: #fff;  height: 34px;  padding: 7px 0% 5px 0%;  font-size: 12px;  text-align: left;  background-color: #023044;  width: 100%;  top: 0px;  z-index: 10;}.top_main_menu3 {  margin: 0;  color: #fff;  height: 65px;  padding: 0px 0% 0px 0%;  font-size: 12px;  text-align: left;  background-color: rgba(255, 255, 255, 0.8);  width: 100%;  position: fixed;  top: 34px;  z-index: 10;}.top-wrapper-jhp {  text-align: center;  margin-top:-25px;  width: 100%;  height: 70px;  background-image: url("img/JHP-students.jpg");  background-position: center;  background-size: cover;  background-repeat: no-repeat;  max-height: 100%;}.top-wrapper-jhp-bne {  text-align: center;  width: 100%;    padding:150px 5% 0 5%;  height: 600px;  border-top: #000000 1px solid;  border-bottom: #000000 1px solid;  /*background-image: url("img/top-jhp-bne.jpg");  background-position: 35% 65%;  background-size: cover;  background-repeat: no-repeat;*/  max-height: 100%;  color: #ffffff;}.top-jhp-bne {     background-image: url("img/top-jhp-bne.jpg");  background-size:cover;   background-repeat: no-repeat; /* 画像を繰り返しません */  background-attachment: fixed; /* スクロールしても背景画像を固定します */  background-position: center center; /* 画像を中央に配置します */    z-index: -1;}.lesson-wrapper {  padding: 50px 2% 50px 2%;  background: linear-gradient(-90deg, #E4F8F9, #E8F1F8);  text-align: center;}.jhp-wrapper {  padding: 30px 2% 50px 2%;  background: linear-gradient(-90deg, rgb(228,248,249,0.8), rgb(231,242,248,0.8));  text-align: center;}.jhp-wrapper2 {  padding: 30px 2% 50px 2%;  background: linear-gradient(-90deg, rgb(15,144,191,0.8), rgb(6,98,146,0.8));  text-align: center;}.content-wrapper {  width: 100%;  background-color: #fff;  margin: 0 auto;  padding-bottom: 5px;  color: #023044;  clear: both;}.content-wrapper-title {  width: 100%;  background-color: #ecf4f7;  margin: 5px 0;  padding: 50px 1%;  color: #023044;  text-align: center;  font-size: 16px;  font-weight: bold;  clear: both;}.content_jhp_box2 {    margin: 0 auto;  max-width: 500px;  padding: 30px 10px;  font-size: 14px;  border-radius: 30px;  /*line-height: 24px;*/  text-align: center;  /*color: #023044;*/  color: #023044;  background:linear-gradient(-90deg, #E4F8F9, #E8F1F8);  box-sizing: border-box;}.heading {  padding-top: 50px;  padding-bottom: 50px;  color: #023044;  text-align: center;}.heading h2 {  text-align: center;  font-weight: bold;  font-family: "新ゴ B";  font-size: 28px;  color: #ffffff;  text-shadow: 1px 1px 2px #333333;  padding: 30px 0 0px 0;}.heading h3 {  text-align: center;  font-weight: bold;  font-family: "新ゴ B";  font-size: 28px;  color: #023044f;  padding: 0;}.heading p {  font-weight: normal;  text-align: center;  margin: 0;  font-size: 14px;}.heading-map {  margin: 0;  padding-top: 40px;  padding-bottom: 40px;  color: #023044;  text-align: center;}.heading-map p {  font-size: 12px;  color: #023044;  text-align: center;}.heading-jhp {  padding-top: 30px;  padding-bottom: 50px;  color: #023044;    font-size: 20px;  text-align: center;}.heading-jhp h2 {  text-align: center;  font-weight: bold;  font-family: "新ゴ B";  font-size: 18px;  color: #023044;  padding: 30px 0 20px 0;}.heading-jhp p {  color: #023044;    font-size: 14px;  text-align: left;}/* 料金計算 */.fee-wrapper {  font-family: "Hiragino Sans", "Helvetica Neue", sans-serif;  background: linear-gradient(to right, #74ebd5, #ACB6E5);  padding: 50px 2% 50px 2%;  text-align: left;}.heading-fee {  margin: 0;  padding: 20px;  padding-top: 50px;  padding-bottom: 50px;  color: #023044;  text-align: left;}.heading-fee h2 {  text-align: left;  font-weight: bold;  font-family: "新ゴ B";  font-size: 16px;  color: #023044;  padding: 10px 0 10px 0;}.heading-fee h3 {  text-align: left;  font-weight: bold;  font-family: "新ゴ B";  font-size: 16px;  color: #023044;  padding: 30px 0 0 0;    margin: 0;}.heading-fee h4 {  text-align: left;    font-weight: normal;  font-size: 12px;  color: #023044;    margin: 0;  padding: 0;}.heading-fee p {  font-weight: normal;  text-align: left;  margin: 0;  font-size: 12px;    text-indent: -1em;  padding-left: 1em;}.card {  background: #fff;  border-radius: 12px;  box-shadow: 0 4px 8px rgba(0,0,0,0.1);  padding: 20px;  margin-bottom: 20px;}.card2 {  background: #fff;  border-radius: 12px;    border:#0055a5 solid 3px;  box-shadow: 0 4px 8px rgba(0,0,0,0.1);  padding: 20px;  margin-bottom: 20px;}label {  display: block;    font-weight: bold;  margin: 10px 0 5px;}input[type=number], select {  width: 80px;}button {    margin: 30px 0;  background-color: #0055a5;  color: #fff;  border: none;  padding: 10px 15px;  border-radius: 8px;  cursor: pointer;  font-size: 1em;}button:hover {  background-color: #003f7f;}#result {  font-size: 16px;  margin-top: 10px;  font-weight: bold;    padding: 20px;}/* 都市別メニューのスタイル */.city_menu_content {  float: left;  width: 100%;  padding: 0px 0% 0px 0%;  margin: 0px 0% 20px 0%;  text-align: left;  font: 14px ;  color: #000000;  line-height: 1.8em;  max-height: 100%;}.content_4jhp {  float: left;  width: -webkit-calc(100%/4);  width: calc(100%/4);  font-size: 14px;    font-weight: bold;  line-height: 40px;  text-align: center;  box-sizing: border-box;  padding: 0 0 10px 0;  max-height: 100%;}.btn-jhp {  padding: 0px 0px;  color: white;  display: inline-block;  opacity: 0.8;  border-radius: 4px;  text-align: center;}.btn-jhp:hover {  opacity: 1;}.jhp-btn1 {  margin-top: 10px;  margin-right: 10px;  width: 97%;  color: black;  border: solid 1.5px #444444;  padding: 0px 0px;  border-radius: 50px;  background-color: #fff;  transition: 0.5s;  box-shadow: 0px 3px 5px #dddddd;}.jhp-btn1:hover {  position: relative;  background-color: #94e0f7;  top: 0px;  box-shadow: none;}.jhp-btn1:active {  position: relative;  top: 0px;  box-shadow: none;}.content-jhp-title1 {    margin:10px 0px 0px 0px;  width: 100%;  font-size: 20px;  font-weight: bold;    text-shadow: 0px 1px 2px #333333;    padding:10px 5px;  color: white;    box-sizing: border-box;}.lesson {  display: grid;  grid-template-columns: repeat(4, 1fr); /* 4列の等幅グリッド */  gap: 20px; /* 要素間の間隔 */  width: 100%;}.lesson-item {  background: none;  padding: 10px;}/* レスポンシブ対応 */@media screen and (max-width: 800px) {  .lesson {    grid-template-columns: repeat(2, 1fr); /* 2列に変更 */      padding: 0 10%;  }}@media screen and (max-width: 500px) {  .lesson {    grid-template-columns: 1fr; /* 1列に変更 */      padding: 0 10%;  }}.text-contents1 {  width: 80%;  display: inline-block;  margin-top: 15px;  font-size: 14px;  color: #023044;  text-align: left;  font-weight: normal;}.message-wrapper {  /*border-bottom: 1px solid #eee;*/  padding: 0 2% 80px 2%;  text-align: center;}.message-wrapper-jhp {  /*border-bottom: 1px solid #eee;*/  padding: 0 2% 80px 2%;  text-align: center;     background:       radial-gradient(80% 60% at 50% 65%, rgba(153,204,255,0.5), rgba(153,204,255,0.5)),      linear-gradient(to top, rgba(153,255,255,0.3), rgba(0,102,153,0.7)); }.message {  padding: 15px 40px;  background-color: #5dca88;  cursor: pointer;  box-shadow: 0 7px #1a7940;}.message:active {  position: relative;  top: 7px;  box-shadow: none;}/* ボックス4個の横並び */.whvisas_4 {  clear: both;  color: #023044;}.whvisas_4 h2 {  font-size: 28px;  padding-top: 0px;  text-align: center;}.whvisas_4 h3 {  font-size: 16px;  font-weight: bold;  text-align: center;  padding: 0px 0;}.whvisas_4 ul {  display: flex;  flex-wrap: wrap;  margin: 0;  padding: 0;}.whvisas_4 li {  list-style: none;  flex: auto;  width: 21%;  background-color: rgba(255, 255, 255, 0.9);  display: block;  font-size: 14px;  margin: 10px 1%;  padding: 30px 30px;  border-radius: 5px;}.whvisas_4 p {  text-align: left;    }/* ボックス1個の横長 */.jhp_1 {  clear: both;  color: #023044;    text-align: left;}.jhp_1 h2 {  padding-top: 0px;  text-align: left;}.jhp_1 h3 {  font-size: 16px;  font-weight: bold;  text-align: left;  padding: 0px 0;}.jhp_1 ul {  display: flex;  flex-wrap: wrap;  margin: 0;  padding: 0;}.jhp_1 li {  list-style: none;  flex: auto;  width: 100%;  background-color: rgba(255, 255, 255, 0.9);  display: block;  font-size: 14px;  margin: 10px 1%;  padding: 30px 30px;  border-radius: 5px;}.jhp_1 li h2{    margin: 0px;    padding: 0px;font-size: 16px;    color: #023044;    text-shadow: none;}.jhp_1 p {  text-align: left;    text-indent: -1em;  padding-left: 1em;}/*footer.css */.footer {  float: left;  width: 100%;  margin: auto 0;  padding: 50px 5% 50px 5%;  font-size: 13px;  text-align: center;  color: #ffffff;  background-color: #023044;}ul.footer {  list-style: none;  margin: 0;  padding: 0;  text-align: left;  line-height: 2.4em;}ul.footer li {  list-style: none;  margin: 0;  padding: 0;  text-align: left;  line-height: 2.4em;}.footer_menu_3 {  float: left;  width: -webkit-calc(82%/3);  width: calc(82%/3);  margin: 0 3% 0 3%;  font-size: 13px;  text-align: left;  line-height: 1.8em;  max-height: 100%;}.footer_menu_title {  float: left;  width: 100%;  padding: 20px 0% 5px 0%;  margin-bottom: 10px;  font-size: 16px;  text-align: left;  color: #ffffff;  border-bottom: solid #FFFFFF 1px;  max-height: 100%;}.footer2_link {  padding: 0.1em 0.3em;  position: relative;  display: inline-block;  transition: .3s;  color: #ffffff;}.footer2_link::after {  position: absolute;  bottom: 0;  left: 0;  content: '';  width: 0;  height: 1px;  background-color: #DC950F;  transition: .3s;}.footer2_link:hover::after {  width: 100%;}.footer3_link {  padding: 0.5em 0.3em 0.2em 0.3em;  background-image: linear-gradient(rgba(0, 0, 0, 0) 50%, rgba(220, 145, 15, 1) 50%);  background-position: 0 0;  background-size: auto 200%;  transition: .3s;  color: #ffffff;}.footer3_link:hover {  background-position: 0 100%;  color: #fff;}.footer_w {  float: left;  width: 100%;  margin-bottom: 40px;  padding: 0px 5% 0px 5%;  font-size: 12px;  text-align: center;  color: #000927;  border-bottom: 1px solid #3C3C41;  background-color: #ffffff;  max-height: 100%;}@media screen and (max-width:1000px) {  .footer_menu_3 {    float: left;    width: -webkit-calc(98%/1);    width: calc(98%/1);    margin: 0 1% 0 1%;    font-size: 13px;    text-align: left;    line-height: 1.8em;    max-height: 100%;  }}/* フッターナビゲーション */.footnav {  width: 100%;  text-align: center;  font-size: 12px;  line-height: 2.0em;}.footnav ul {  list-style: none;}.footnav ul li {  display: inline-block;  margin: 0 15px 0px 0;  padding: 0 0 0 10px;  background: url("img/icon-arrow-blue.png");  background-repeat: no-repeat;  background-position: left 45%;}.footnav a {  color: #535353;}footer img {  width: 210px;  margin: 0;}footer p {  margin-top: 20px;  color: #fff;  font-size: 12px;  line-height: 18px;  font-weight: normal;}footer {  padding-top: 30px;  padding-bottom: 20px;  text-align: center;  background:       radial-gradient(80% 60% at 50% 65%, rgba(153,204,255,0.5), rgba(0,204,255,0.5)),      linear-gradient(to top, rgba(0,102,153,0.6), rgba(0,102,153,0.8));     }/* 矢印のスタイル */#scroll-to-top-btn {  position: fixed;  bottom: 20px;  right: 20px;  height: 50px;  width: 50px;  color: #FFF;  font-size: 20px;  font-weight: bold;  background-color: rgba(34, 49, 52, 0.6);  border: none;  border-radius: 100%;  transform: rotate(-90deg);  opacity: 0;  transition-duration: 0.5s;}/* ビデオスタイル *//*html, body {  margin: 0;  padding: 0;  height: 100%;    overflow-x: hidden;}*//* 背景動画を固定＆全画面 */.video-container {  position: relative;  width: 100vw;  height: 80%;  /* ← ここを変えるときに overlay も同期 */  overflow: hidden;}.bg-video {  position: fixed;       /* ページ全体に固定 */  top: 0;  left: 0;  width: 100vw;  height: 100vh;         /* ← 全画面にする */  object-fit: cover;    object-position: 65% center;  /* ← 右端を基準にしつつ上下は中央 */  z-index: -2;           /* 背景用として一番後ろに */}/* 暗幕（動画の上にかぶせる） */.veil {  position: fixed;       /* 動画と同じく全画面に */  inset: 0;  z-index: -1;           /* 動画より上、コンテンツより下 */  background:    radial-gradient(80% 60% at 50% 65%, rgba(153,204,255,0.5), rgba(153,204,255,0.5)),    linear-gradient(to top, rgba(153,255,255,0.3), rgba(0,102,153,0.7));}/* ページコンテンツ */.overlay {  position: relative;  z-index: 1;            /* ベールより前 */  display: flex;  flex-direction: column;  justify-content: center;  align-items: center;  text-align: center;  min-height: 100vh;     /* 画面いっぱい */  pointer-events: none;  /* 背景クリック透過 */}/* コピー部分 */.copy {  position: relative;  width: 100%;  height: auto;          /* ← 高さは自動にして柔軟に */  margin-top: 50px;      /* 位置調整 */  display: flex;  justify-content: center;  align-items: center;  overflow: hidden;}.copy img {  position: absolute;  top: 50%;  left: 50%;  transform: translate(-50%, -50%);  max-width: 40%;  height: auto;  opacity: 0;  transition: opacity 2s ease; /* フェードを2秒に */}.copy img.show {  opacity: 1;}/* スマホ */@media (max-width: 760px) {  .copy img {    max-width: 70% !important;  }}/* PC */@media (min-width: 761px) {  .copy img {    max-width: 100% !important;  }}/* テキスト装飾 */.copy strong {  font-weight: 700;  color: #f9b7b7;}.copy span.big {  font-size: clamp(38px, 4vw, 50px);  font-weight: 700;  color: #f9c5af;}.copy span.big2 {  font-size: clamp(38px, 4vw, 50px);  font-weight: 900;  letter-spacing: -0.1em;  color: #fcef7a;}.overlay img {  max-width: 100%;  height: auto;    margin-top: 0px;}.visually-hidden{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden;white-space:nowrap;}@media all and (min-width: 1001px) {     .btn-box2 {    float:left;width: -webkit-calc(96%/2);    width: calc(96%/2);padding: 10px 2%;           box-sizing: border-box; }      }@media all and (max-width: 1000px) {      .btn-box2 {    float:left;width: -webkit-calc(98%/2);    width: calc(98%/2);padding: 10px 1%;            box-sizing: border-box; }     }/* スマホ向けレイアウト */@media all and (max-width: 670px) {   .btn-box2 {    float:left;width: -webkit-calc(90%/1);    width: calc(90%/1);padding: 10px 5%;                box-sizing: border-box; }    }