/* ===== 基本 ===== */
.ysc9a_site { width: 100%; }
.ysc9a_content { width: 100%; }

/* スクロールロック（SPメニュー開時） */
.ysc9a_lock { overflow: hidden !important; }

/* ===== 簡易ユーティリティ（テーマ内一意） ===== */
.ysc9a_fw { display: flex; flex-wrap: wrap; }
.ysc9a_f_jc { display: flex; justify-content: center; }
.ysc9a_f_ac_jc { display: flex; align-items: center; justify-content: center; }
.ysc9a_f_ac_jsb { display: flex; align-items: center; justify-content: space-between; }
.ysc9a_f_as_jsb { display: flex; align-items: flex-start; justify-content: space-between; }
.ysc9a_inner { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.ysc9a_txt_small { font-size: 0.8em; }
.ysc9a_ta_c { text-align: center; }

/* PC/SP出し分け */
.ysc9a_only_pc { display: block; }
.ysc9a_only_sp { display: none; }

@media screen and (max-width: 768px) {
  .ysc9a_only_pc { display: none; }
  .ysc9a_only_sp { display: block; }
}

/* ===== HEADER（あなたの仕様に合わせた固定） ===== */
.ysc9a_header { z-index: 50; }

.ysc9a_header_pc {
  background: #fff;
  position: fixed;
  top: 0;
  left: 0;
  width: 180px;
  height: 100%;
  min-height: 615px;
}

.ysc9a_header_sp {
  display: none;
  background: #1f233e;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 60px;
}

/* 本文をヘッダー分ずらす（PC） */
.ysc9a_content {
  padding-left: 180px;
}

@media screen and (max-width: 768px) {
  .ysc9a_header_pc { display: none; }
  .ysc9a_header_sp { display: block; }
  .ysc9a_content { padding-left: 0; padding-top: 60px; }
}

/* ===== SP MENU ===== */
.ysc9a_spmenu {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 100;
}
.ysc9a_spmenu.ysc9a_is_open { display: block; }

.ysc9a_spmenu__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.6);
}

.ysc9a_spmenu__panel {
  position: absolute;
  top: 0;
  right: 0;
  width: min(88vw, 420px);
  height: 100%;
  background: #fff;
  overflow: auto;
  padding: 16px 16px 24px;
}

.ysc9a_spmenu__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  font-size: 24px;
  background: #eee;
  border: 0;
  cursor: pointer;
}

.ysc9a_spmenu__menuTitle {
  margin: 16px 0 8px;
  font-weight: 700;
  text-align: left;
}

.ysc9a_spmenu__nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ysc9a_spmenu__nav li { border-bottom: 1px solid #eee; }
.ysc9a_spmenu__nav a {
  display: block;
  padding: 12px 8px;
  text-decoration: none;
  color: #111;
  text-align: left;
}

.ysc9a_spmenu__cta {
  margin-top: 16px;
  display: grid;
  gap: 10px;
}
.ysc9a_btn {
  display: block;
  padding: 12px 14px;
  text-decoration: none;
  text-align: center;
  border-radius: 6px;
  color: #fff;
}
.ysc9a_btn_counseling { background: #1f233e; }
.ysc9a_btn_reservation { background: #04384c; }
.ysc9a_btn_online { background: #333; }

/* ===== FOOTER（あなたのpadding仕様） ===== */
.ysc9a_footer {
  background: #1f233e;
  color: #fff;
  position: relative;
  width: 100%;
  padding: 100px 0 0 180px;
}

@media screen and (max-width: 1024px) {
  .ysc9a_footer { padding: 70px 0 0 130px; }
}

@media screen and (max-width: 768px) {
  .ysc9a_footer { padding: 60px 0 0 0; margin-top: 30px; }
}

.ysc9a_footer__copyright {
  padding: 18px 0;
  text-align: center;
  background: rgba(0,0,0,.15);
}

/* 画像が読めない場合のテキスト代替 */
.ysc9a_img_fallback_text {
  display: none;
  font-weight: 700;
  color: currentColor;
}
.ysc9a_img_fallback_hidden { display: none !important; }
.ysc9a_img_fallback_show { display: inline-block; }

/* layout base */
.ysc9a_lock { overflow:hidden !important; }
.ysc9a_site { width:100%; }
.ysc9a_content { padding-left: 180px; }

@media (max-width: 768px){
  .ysc9a_content { padding-left:0; padding-top:60px; }
}

/* header common */
.ysc9a_header { z-index: 50; }
.ysc9a_logo img { display:block; max-width:100%; height:auto; }
.ysc9a_cta { display:block; text-decoration:none; text-align:center; font-weight:600; }
.ysc9a_cta--gold { background:#b0914e; color:#fff; }
.ysc9a_cta--navy { background:#1f233e; color:#fff; }
.ysc9a_cta--white { background:#fff; color:#1f233e; border:1px solid #ddd; }

/* PC left header */
.ysc9a_header_pc{
  position:fixed; top:0; left:0;
  width:180px; height:100%;
  background:#fff;
  display:block;
}
.ysc9a_header_pc__inner{
  height:100%;
  display:flex;
  flex-direction:column;
}
.ysc9a_logo{ padding:20px 18px 12px; background-color: #1f233e; }
.ysc9a_nav_pc{ flex:1; overflow:auto; padding:10px 0; }
.ysc9a_nav_pc ul{ list-style:none; margin:0; padding:0; }
.ysc9a_nav_pc a, .ysc9a_nav_pc span{
  display:block; padding:14px 18px;
  color:#1f233e; text-decoration:none;
  border-top:1px solid #eee;
}
.ysc9a_nav_pc__sub{ display:none; }
.ysc9a_nav_pc__parent:hover .ysc9a_nav_pc__sub{ display:block; }
.ysc9a_nav_pc__sub a{ padding-left:28px; font-size:14px; }

.ysc9a_cta_pc{ padding:0; }
.ysc9a_cta_pc .ysc9a_cta{ padding:16px 10px; }

/* SP header */
.ysc9a_header_sp{
  display:none;
  position:fixed; top:0; left:0;
  height:60px; width:100%;
  background:#1f233e;
}
@media (max-width:768px){
  .ysc9a_header_pc{ display:none; }
  .ysc9a_header_sp{ display:block; }
}

.ysc9a_header_sp__inner{
  height:60px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 14px;
}
.ysc9a_logo_sp img{ height:22px; width:auto; display:block; }
.ysc9a_sp_icons{ display:flex; align-items:center; gap:10px; }

.ysc9a_sp_icon{
  width:34px; height:34px;
  display:inline-flex; align-items:center; justify-content:center;
  text-decoration:none;
}
.ysc9a_sp_icon svg{ width:18px; height:18px; fill:#fff; opacity:.9; }

.ysc9a_sp_menu_btn{
  width:42px; height:42px;
  border:0;
  background:#b0914e;
  display:flex; flex-direction:column; justify-content:center;
  gap:5px; padding:0 10px;
  cursor:pointer;
}
.ysc9a_sp_menu_btn span{
  height:2px; background:#fff; display:block;
}

/* SP menu overlay (スクショ寄せ) */
.ysc9a_spmenu{ position:fixed; inset:0; display:none; z-index:100; }
.ysc9a_spmenu.ysc9a_is_open{ display:block; }
.ysc9a_spmenu__overlay{ position:absolute; inset:0; background:rgba(0,0,0,.55); }

.ysc9a_spmenu__panel{
  position:absolute; inset:0;
  background:#1f233e;
  color:#fff;
  overflow:auto;
  padding:18px 16px 22px;
}
.ysc9a_spmenu__close{
  position:absolute; top:0; right:0;
  width:56px; height:56px;
  border:0;
  background:#b0914e;
  color:#fff;
  font-size:28px;
  cursor:pointer;
}
.ysc9a_spmenu__nav{ padding-top:56px; }
.ysc9a_spmenu__list{ list-style:none; margin:0; padding:0; text-align:center; }
.ysc9a_spmenu__list a{
  display:block;
  padding:16px 10px;
  color:#fff;
  text-decoration:none;
  border-top:1px solid rgba(255,255,255,.12);
  letter-spacing:.08em;
}
.ysc9a_spmenu__title{
  padding:18px 10px;
  opacity:.7;
  border-top:1px solid rgba(255,255,255,.12);
}

.ysc9a_spmenu__cta{
  margin-top:18px;
  display:grid;
  gap:12px;
}
.ysc9a_btn{
  padding:14px 12px;
  border-radius:4px;
  text-decoration:none;
  text-align:center;
  color:#fff;
  font-weight:700;
}
.ysc9a_btn_counseling{ background:#b0914e; }
.ysc9a_btn_reservation{ background:#1f233e; border:1px solid rgba(255,255,255,.25); }
.ysc9a_btn_online{ background:#fff; color:#1f233e; }

/* footer */
.ysc9a_footer{
  background:#1f233e;
  color:#fff;
  padding:100px 0 0 180px;
  position:relative;
}
@media (max-width:768px){
  .ysc9a_footer{ padding:60px 0 0 0; }
}
.ysc9a_footer__topline{
  height:6px;
  background:rgba(255,255,255,.18);
  position:absolute;
  top:0; left:0; right:0;
}
.ysc9a_footer__pagetop{
  position:absolute;
  top:20px; right:16px;
  display:block;
  width:30px;
}
.ysc9a_footer__inner{
  max-width:1200px;
  margin:0 auto;
  padding:0 20px 30px;
}
.ysc9a_footer__logo img{ height:auto; max-width:320px; width:100%; display:block; margin:0 auto 24px; }

.ysc9a_footer__cols{
  display:grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap:18px;
}
@media (max-width:768px){
  .ysc9a_footer__cols{ grid-template-columns:1fr; }
}
.ysc9a_footer__cols ul{ list-style:none; padding:0; margin:0; }
.ysc9a_footer__cols a{ color:#fff; text-decoration:none; display:block; padding:8px 0; opacity:.92; }
.ysc9a_footer__parent{ font-weight:700; padding:8px 0; }

.ysc9a_footer__cta{
  margin-top:18px;
  display:grid;
  gap:10px;
}
.ysc9a_footer__cta .ysc9a_cta{ padding:14px 10px; }

.ysc9a_line{
  margin-top:28px;
  border-top:1px solid rgba(255,255,255,.15);
  padding-top:18px;
}
.ysc9a_line__title{ font-weight:700; margin:0 0 12px; text-align:center; }
.ysc9a_line__body{ display:flex; gap:16px; align-items:center; justify-content:center; flex-wrap:wrap; }
.ysc9a_line__qr{ width:120px; height:auto; background:#fff; padding:6px; }
.ysc9a_line__text a{ color:#fff; }

.ysc9a_footer__copyright{
  text-align:center;
  padding:18px 0;
  background:rgba(0,0,0,.18);
}