@charset 'utf-8';
* {
  margin: 0;
  padding: 0;
}
body {
  background: #fff;
  font-size: 16px;
  font-family: ArialMT, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3",
    "メイリオ", sans-serif;
  color: #333;
}
a {
  text-decoration: none;
}
/* li {
  list-style: none;
} */
ul,
ol {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}
video {
  width: 100%;
  height: auto;
} /* header */
header {
  background: #4d4d4d;
}
header h1 {
  padding: 2px 4px 0;
  line-height: 1;
  color: #fff;
  font-weight: normal;
  font-size: 15px;
  text-shadow: 1px 1px 1px #033;
}

@media (min-width: 1000px) {
  header h1 {
    font-size: 13px; /* PC用に少し小さく */
  }
}
header .banner {
  width: 100%;
  height: 100px;
  position: relative;
  background: url(../image/header.webp) no-repeat right bottom;
  background-size: auto 100px;
}
header .banner h2 {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}
header .banner h2 img,
header .banner .logo-webp {
  max-width: 100%;
  height: auto;
  display: block;
}
header .banner p {
  position: absolute;
  right: 3px;
  bottom: 3px;
  font-weight: bold;
  text-align: right;
  background-color: rgba(255, 255, 255, 0.5);
  border-radius: 0.4em 0.4em 0.4em 0.4em;
}
header .banner p a {
  display: block;
  padding: 5px;
  text-shadow: 1px 1px 0 #fff;
  font-size: 15px;
  color: #333;
}
header .banner p a span {
  text-shadow: 1px 1px 0 #fff;
  font-size: 13px;
  color: #f01884;
}

@media (min-width: 1000px) {
  header .banner p a {
    font-size: 13px; /* PC用に少し小さく */
  }
  header .banner p a span {
    font-size: 11px; /* PC用に少し小さく */
  }
}
.inner {
  padding: 5px; /* overflow: hidden; */
}

/* h3の直後に来る.innerに上マージンを追加 */
h3 + .inner {
  margin-top: 8px;
}

/* ホテル案内 地図 */
.hotel-map {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
}

/* .hotel-mapを含む.innerのパディングと余白を削除 */
.inner:has(.hotel-map) {
  padding: 0;
  line-height: 0;
  font-size: 0;
  min-height: 0;
}
.over18 {
  margin-top: 10px;
  text-align: center;
  font-size: 0.7em;
}
/* ========================= PICKUP：外側（左右2カラム） ========================= */
dl.pickup {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 0;
  padding: 0;
}
/* dl のデフォルト余白消し */
dl.pickup,
dl.pickup dd {
  margin: 0;
}
/* 左：写真カラム */
dl.pickup > dd.photo {
  flex: 0 0 auto;
  width: 36vw;
  max-width: 180px;
}
dl.pickup > dd.photo img {
  width: 100%;
  height: auto;
  display: block;
}
/* 右：情報カラム */
dl.pickup > dd.meta {
  flex: 1;
  min-width: 0; /* 長い文字で横はみ出し防止 */
}
/* ========================= 内側（縦並びに固定） ========================= */
dl.pickup-meta {
  margin: 0;
  padding: 0;
}
/* dt/ddを縦に積む（dlのデフォルトに近い挙動） */
dl.pickup-meta dt,
dl.pickup-meta dd {
  margin: 0;
} /* 見た目 */
dl.pickup-meta dt {
  font-weight: bold;
}
dl.pickup-meta dd.data {
  font-size: 15px;
  padding-bottom: 8px; /* 25pxが重いならここで調整 */
}

@media (min-width: 1000px) {
  dl.pickup-meta dd.data {
    font-size: 13px; /* PC用に少し小さく */
  }
}
dl.pickup-meta dd.drink {
  padding: 2px 0;
}
dl.pickup-meta .liked {
  margin: 0; /* ← margin-left禁止 */
}
dl.pickup-meta dd.comment {
  padding: 6px 8px;
  background: #fff;
  border-radius: 6px; /* corner-all があるなら不要 */
}
/* ========================= 過去CSSの“ズレ原因”を強制無効化 ========================= */
dl.pickup dt,
dl.pickup dd.data,
dl.pickup .liked {
  margin-left: 0 !important;
}
/* =============================== * girl-box（共通カード外枠） * =============================== */
.girl-box-fg {
  padding: 3px;
  width: 100%;
  box-sizing: border-box;
}
h3 {
  display: block;
  margin: 0;
  padding: 6px 10px;
  background: linear-gradient(155deg, #ff81a6 25%, #ffe364 76%);
  color: #ffffff;
  font-weight: bold;
  font-size: 16px;
  text-shadow: 1px 1px 1px #666;
  line-height: 1.3;
  box-sizing: border-box;
}

h4 {
  display: block;
  margin: 0;
  padding: 2px 8px;
  background: #e0e0e0;
  color: #f78288;
  font-weight: bold;
  font-size: 14px;
  text-shadow: 1px 1px 1px #fff;
  box-sizing: border-box;
}

@media (min-width: 1000px) {
  h3 {
    font-size: 14px; /* PC用に少し小さく */
    padding: 5px 8px; /* パディングも少し小さく */
  }
  h4 {
    font-size: 12px; /* PC用に少し小さく */
    padding: 2px 6px; /* パディングも少し小さく */
  }
}
.course-tabs-vertical {
  width: 100%;
  margin: 6px 0 10px;
}
.course-tabs-vertical span {
  display: block; /* ← これが超重要 */
  width: 100%;
  box-sizing: border-box;
  text-align: center;
  font-weight: bold;
  padding: 1px 0;
  border: 2px solid #fbd171; /* ← 枠色これ */
}
/* 上下の間隔 */
.course-tabs-vertical span + span {
  margin-top: 6px;
}
/* nav */
/* MENU（global-nav） */
.global-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.global-nav li {
  border: 1px dashed #ff81a6;
  border-radius: 3px;
  background: #fff;
  color: #333;
  font-weight: bold;
  overflow: hidden; /* 角丸で中の背景がはみ出さない用 */
  margin: 6px 8px; /* お好み。不要なら消してOK */
}

.global-nav li a {
  display: block;
  padding: 15px 10px 15px 30px;
  font-weight: bold;
  color: #333;
  text-decoration: none;

  background-image: url(../image/marquee.png);
  background-repeat: no-repeat;
  background-position: 5px 10px;
}
/* nav li {
  border: 1px dashed #ff81a6;
  border-radius: 3px;
  background: #fff;
  color: #333;
  font-weight: bold;
} 
nav li a {
  display: block;
  padding: 15px 10px 15px 30px;
  font-weight: bold;
  color: #333;
  background: url(../image/marquee.png) no-repeat 5px 10px;
}  */

/* footer */
footer {
  padding: 4px;
  background: #4d4d4d;
  text-align: center;
  color: #fff;
  font-size: 13px;
  text-shadow: 1px 1px 1px #033;
} /* misc */
.l {
  text-align: left;
}
.r {
  text-align: right;
}
.b {
  font-weight: bold;
}
.i {
  font-style: italic;
}
.n {
  font-weight: normal;
}
.corner-all {
  border-radius: 0.4em 0.4em 0.4em 0.4em;
}

/* btn */
a.btn {
  display: block;
  padding: 10px 15px;
  text-align: center;
  border-radius: 0.4em 0.4em 0.4em 0.4em;
  font-size: 16px;
  border: 1px solid #ccc;
  background: #eee;
  color: #333;
  font-weight: bold;
  text-shadow: 0 1px 1px #ffffff;
}

@media (min-width: 1000px) {
  a.btn {
    font-size: 14px; /* PC用に少し小さく */
    padding: 8px 12px; /* パディングも少し小さく */
  }
}
a.btn.enter {
  border: 1px solid #ff006b;
  background: #ff006b;
  color: #ffffff;
  font-weight: bold;
  text-shadow: 0 1px 1px #999999;
}
a.leave {
  margin-top: 10px;
} /* color */
.red {
  color: #d00;
}
.green {
  color: #096;
}
.blue {
  color: #039;
}
.pink {
  color: #ff99cc;
}
.yellow {
  color: #fc0;
} /* bg */
.health_bg {
  background: #ffeeff;
}
.hand_bg {
  background: #ffffee;
} /* trans */
.trans {
  opacity: 0.4;
} /* border */
.health_border {
  border: 1px solid #ff006b;
}
.hand_border {
  border: 1px solid #fc0;
}

/* header marquee */
.site-header__marquee {
  background-image: url(../image/marquee.png), url(../image/marquee.png);
  background-position: left 5px, right 5px;
  background-repeat: no-repeat, no-repeat;
  overflow: hidden;
  padding: 6px 26px;
}

.site-header__marquee p {
  margin: 0;
  font-size: 1.1em;
  color: #fff;
  white-space: nowrap;
  display: inline-block;
  will-change: transform;
  animation: flowing 12s linear infinite;
  transform: translateX(30%);
}

@keyframes flowing {
  100% {
    transform: translateX(-100%);
  }
}

.alert {
  padding: 5px;
  border: 1px solid #f7c942;
  background: #fadb4e;
}

.inner_girl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
}
@media (min-width: 768px) {
  .inner_girl {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.inner_girl > * {
  min-width: 0; /* 長いテキストで横にはみ出すのを防ぐ */
  box-sizing: border-box;
}
.inner_girl img {
  width: 100%;
  height: auto;
  display: block; /* img下の謎余白防止 */
}

@media (min-width: 1000px) {
  /* PC表示：画像を拡大しすぎないように制限 */
  img {
    max-width: 100%;
    height: auto;
  }

  .inner_girl img {
    width: 100%; /* グリッドセルに収まるように100%を維持 */
    max-width: 100%;
  }

  dl.pickup > dd.photo {
    width: auto;
    max-width: 180px; /* 写真カラム自体も制限 */
  }

  dl.pickup > dd.photo img {
    width: auto;
    max-width: 100%;
  }

  dl.girl-box dd.photo img {
    width: auto;
    max-width: 100%;
  }

  /* ヘッダーロゴも拡大防止 */
  header .banner h2 img,
  header .banner .logo-webp {
    width: auto;
    max-width: 200px; /* ロゴの最大サイズを制限 */
  }
}

/* schedule：出勤一覧 */
/* gal：在籍一覧 */
.inner_girl--schedule,
.inner_girl--gal {
  gap: 1px;
}

dl.girl-box {
  padding: 10px;
  border-radius: 0.4em;
  border: solid 1px #fbd171;
  overflow: hidden; /* 角丸＋画像はみ出し防止 */
}
dl.girl-box dd.photo {
  width: 100%;
  margin-top: 10px;
  text-align: center;
  overflow: hidden;
}
dl.girl-box dt {
  margin-top: 5px;
  font-weight: bold;
  text-align: center;
}
dl.girl-box dd.data {
  line-height: 15px;
  text-align: center;
  font-size: 15px;
}
dl.girl-box dd.data span {
  font-size: 14px;
  color: #f30a98;
}

@media (min-width: 1000px) {
  dl.girl-box dd.data {
    font-size: 13px; /* PC用に少し小さく */
    line-height: 13px; /* 行間も調整 */
  }
  dl.girl-box dd.data span {
    font-size: 12px; /* PC用に少し小さく */
  }
}

.page-wrapper {
  max-width: 375px;
  margin: 0 auto;
}

/* =========================
   グローバルナビ（スマホ用・デフォルト）
   ========================= */

.global-nav {
  position: static;
  background: #fff;
  border-top: 1px solid #ddd;
}

/* nav 内の基本 */
.global-nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.global-nav a {
  display: block;
  padding: 12px 10px;
  color: #333;
  text-decoration: none;
  background: #fff;
}
@media (min-width: 641px) and (max-width: 999px) {
  :root {
    --tablet-header-h: 156px;
    --tablet-footer-h: 60px;
    --tablet-nav-w: 250px; /* タブレット用に少し狭めに */
  }

  html,
  body {
    overflow-x: hidden;
  }

  header .banner {
    background-size: 100% auto;
    background-position: center center;
    min-height: 100px;
  }

  /* ヘッダーを上部に固定 */
  header {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: #4d4d4d;
  }

  /* フッターを下部に固定 */
  footer {
    position: fixed !important;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 900;
    background: #4d4d4d;
    border-top: 1px solid #ddd;
    font-size: 12px;
  }

  /* NAVを左側に固定（ヘッダーとフッターの間） */
  .global-nav {
    position: fixed !important;
    top: var(--tablet-header-h);
    bottom: var(--tablet-footer-h);
    left: 0;
    width: var(--tablet-nav-w);
    overflow-y: auto;
    overflow-x: hidden;
    background: #fff !important;
    z-index: 950;
    border-top: 1px solid #ddd;
    border-right: 1px solid #ddd;
  }

  /* タブレット用：ナビゲーションリンクを少し小さく */
  .global-nav li a {
    padding: 10px 8px 10px 26px; /* タブレット用にパディングを小さく */
    font-size: 14px; /* タブレット用にフォントサイズを小さく */
  }

  /* body直下の要素で、NAVの左側に表示されないようにする */
  body > *:not(header):not(footer):not(.global-nav) {
    position: relative;
  }

  /* メインコンテンツエリアをNAVの右側に配置 */
  /* top.html用（main#content） */
  main#content {
    margin-left: var(--tablet-nav-w) !important;
    padding-top: var(--tablet-header-h) !important;
    padding-bottom: var(--tablet-footer-h) !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box;
  }

  /* div[data-role="page"]にmargin-leftを設定 */
  div[data-role="page"] {
    margin-left: var(--tablet-nav-w) !important;
  }

  /* .page-wrapperにもmargin-leftを設定（hotel.html等で使用） */
  .page-wrapper {
    margin-left: var(--tablet-nav-w) !important;
    padding-top: var(--tablet-header-h) !important;
    padding-bottom: var(--tablet-footer-h) !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box;
  }

  /* その他のページ用（div[data-role="content"]） */
  div[data-role="content"] {
    margin-left: 0;
    margin-right: auto;
    padding-top: var(--tablet-header-h) !important;
    padding-bottom: var(--tablet-footer-h) !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box;
    max-width: 720px;
  }

  /* ページ全体にパディング（header/footer/nav/main/content以外） */
  body
    > header
    ~ *:not(.global-nav):not(footer):not(main):not(
      div[data-role="content"]
    ):not(div[data-role="page"]) {
    margin-left: var(--tablet-nav-w);
    padding-top: var(--tablet-header-h);
    padding-bottom: var(--tablet-footer-h);
    padding-left: 16px;
    padding-right: 16px;
    box-sizing: border-box;
  }

  /* navの後、footerの前のコンテンツ（mainやcontent以外） */
  .global-nav ~ *:not(footer):not(main):not(div[data-role="content"]) {
    margin-left: var(--tablet-nav-w);
  }

  /* main.html専用：NAVがないページでheader直後のコンテンツ */
  body > div > header ~ .inner,
  body > div > header ~ .vanilla {
    padding-top: var(--tablet-header-h) !important;
    padding-bottom: var(--tablet-footer-h) !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box;
  }

  /* タブレット表示：girl-boxの拡大を制限 */
  .girl-box-fg {
    max-width: 100%;
  }

  dl.girl-box {
    max-width: 100%;
  }

  /* タブレット表示：.hotel-mapを含む.innerの余白を削除 */
  .inner:has(.hotel-map) {
    padding: 0 !important;
    line-height: 0;
    font-size: 0;
    min-height: 0;
  }

  .hotel-map {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
  }

  dl.girl-box dd.photo img {
    width: 100%;
    max-width: 100%;
    height: auto;
  }

  /* タブレット表示：inner_girl内の画像も制限 */
  .inner_girl img {
    width: 100%;
    max-width: 100%;
    height: auto;
  }
}
/* =========================
   全ページ共通：PC表示レイアウト
   ヘッダーとフッターに挟まれるように左にNAVを表示
   ========================= */
@media (min-width: 1000px) {
  :root {
    --pc-header-h: 156px;
    --pc-footer-h: 60px;
    --pc-nav-w: 300px;
  }

  html {
    font-size: 14px; /* ベースフォントサイズを16px→14pxに縮小 */
  }

  html,
  body {
    overflow-x: hidden;
  }

  body {
    font-size: 14px; /* PC用にフォントサイズを小さく */
  }

  /* ヘッダーを上部に固定 */
  header {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: #4d4d4d;
  }

  /* PC表示用：ヘッダーバナー画像が641px以上でも切れないように */
  header .banner {
    background-size: 100% auto;
    background-position: center center;
    min-height: 100px;
  }

  /* フッターを下部に固定 */
  footer {
    position: fixed !important;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 900;
    background: #4d4d4d;
    border-top: 1px solid #ddd;
    font-size: 12px; /* PC用に少し小さく */
  }

  /* NAVを左側に固定（ヘッダーとフッターの間） */
  .global-nav {
    position: fixed !important;
    top: var(--pc-header-h);
    bottom: var(--pc-footer-h);
    left: 0;
    width: var(--pc-nav-w);
    overflow-y: auto;
    overflow-x: hidden;
    background: #fff !important;
    z-index: 950;
    border-top: 1px solid #ddd;
    border-right: 1px solid #ddd;
  }

  /* PC用：ナビゲーションリンクを少し小さく */
  .global-nav li a {
    padding: 10px 8px 10px 26px; /* PC用にパディングを少し小さく */
    font-size: 14px; /* PC用に少し小さく */
  }

  /* body直下の要素で、NAVの左側に表示されないようにする */
  body > *:not(header):not(footer):not(.global-nav) {
    position: relative;
  }

  /* メインコンテンツエリアをNAVの右側に配置 */
  /* top.html用（main#content） */
  main#content {
    margin-left: var(--pc-nav-w) !important;
    padding-top: var(--pc-header-h) !important;
    padding-bottom: var(--pc-footer-h) !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box;
  }

  /* div[data-role="page"]にmargin-leftを設定 */
  div[data-role="page"] {
    margin-left: var(--pc-nav-w) !important;
  }

  /* .page-wrapperにもmargin-leftを設定（hotel.html等で使用） */
  .page-wrapper {
    margin-left: var(--pc-nav-w) !important;
    padding-bottom: var(--pc-footer-h) !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box;
  }

  /* .page-wrapper内のheaderの後の要素にpadding-topを設定（.innerは除外） */
  .page-wrapper > header ~ *:not(.inner) {
    padding-top: var(--pc-header-h);
  }

  /* .page-wrapper内のheader直後のh3にpadding-topを設定 */
  .page-wrapper > header ~ h3 {
    padding-top: var(--pc-header-h);
    margin-top: 0;
  }

  /* .innerのpadding-topを削除 */
  .page-wrapper > header ~ .inner {
    padding-top: 0;
  }

  /* その他のページ用（div[data-role="content"]） */
  div[data-role="content"] {
    margin-left: 0;
    margin-right: auto;
    padding-top: var(--pc-header-h) !important;
    padding-bottom: var(--pc-footer-h) !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box;
    max-width: 720px;
  }

  /* ページ全体にパディング（header/footer/nav/main/content以外） */
  body
    > header
    ~ *:not(.global-nav):not(footer):not(main):not(
      div[data-role="content"]
    ):not(div[data-role="page"]) {
    margin-left: var(--pc-nav-w);
    padding-top: var(--pc-header-h);
    padding-bottom: var(--pc-footer-h);
    padding-left: 16px;
    padding-right: 16px;
    box-sizing: border-box;
  }
  /* navの後、footerの前のコンテンツ（mainやcontent以外） */
  .global-nav ~ *:not(footer):not(main):not(div[data-role="content"]) {
    margin-left: var(--pc-nav-w);
  }
  /* main.html専用：NAVがないページでheader直後のコンテンツ */
  body > div > header ~ .inner,
  body > div > header ~ .vanilla {
    padding-top: var(--pc-header-h) !important;
    padding-bottom: var(--pc-footer-h) !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box;
  }

  /* PC表示：.hotel-mapを含む.innerの余白を削除 */
  .inner:has(.hotel-map) {
    padding: 0 !important;
    line-height: 0;
    font-size: 0;
    min-height: 0;
  }

  .hotel-map {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
  }
}
