@charset "UTF-8";

/* =========================
   共通カラー
========================= */
:root{
  --pm-main:#57c3cd;
  --pm-main-dark:#45aeb8;
  --pm-border:#e5e5e5;
}

/* =========================
   Cocoonヘッダー表示制御
========================= */
#header-container{
  display:block !important;
}

.home #header-container,
.front-page #header-container,
.front-top-page #header-container{
  display:none !important;
}

/* スマホCocoonヘッダー削除 */
.mobile-header,
#mobile-header,
.header-mobile,
.slicknav_menu{
  display:none !important;
}

/* 固定ページでは Cocoon ヘッダーを完全非表示 */
.page #header-container,
.page #navi,
.page .mobile-header,
.page #mobile-header,
.page .header-mobile,
.page .slicknav_menu,
.page #slicknav_menu,
.page #navi-mobile,
.page .mobile-menu-buttons,
.page .menu-button,
.page .sidebar-menu-button{
  display:none !important;
}

/* =========================
   ページヘッダー
========================= */
.pm-page-header{
  margin:40px 0 25px;
  text-align:center;
}

.pm-page-title{
  font-size:28px;
  font-weight:700;
  letter-spacing:2px;
  position:relative;
  display:inline-block;
  padding-bottom:10px;
}

.pm-page-title::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  width:60px;
  height:3px;
  background:var(--pm-main);
  transform:translateX(-50%);
}

/* girlsページのWP標準タイトル非表示 */
.page-girls .entry-title,
.page-girls .archive-title,
.page-girls h1.entry-title{
  display:none !important;
}

/* =========================
   キャスト詳細ページ
========================= */
.single-cast h1{
  display:none;
}

.cast-wrap{
  padding:10px;
}

.cast-flex{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:flex-start;
  background:transparent;
  padding:0;
  border-radius:0;
  box-shadow:none;
}

.cast-left{
  flex:0 0 40%;
  text-align:left;
  margin-bottom:0;
}

.cast-left img{
  width:100%;
  height:auto;
  max-width:400px;
  object-fit:cover;
  display:block;
  border-radius:6px;
  margin:0 0 20px 0;
}

.cast-right{
  flex:1 1 55%;
  text-align:left;
  background:transparent;
  padding:0;
}

/* 共通ボックス */
.cast-box-block{
  margin-top:20px;
}

.cast-box-title{
  background:var(--pm-main);
  color:#fff;
  font-weight:bold;
  padding:10px 14px;
  font-size:15px;
  border-radius:8px 8px 0 0;
  line-height:1.4;
}

.cast-box-body{
  background:#fafafa;
  border:1px solid #ddd;
  border-top:none;
  padding:14px;
  color:#373737;
  font-size:14px;
  line-height:1.8;
  border-radius:0 0 8px 8px;
}

.cast-name{
  font-size:22px;
  font-weight:700;
}

.cast-size{
  font-size:17px;
  font-weight:600;
  margin-left:10px;
}

.cast-box-body-comment p{
  margin:0 0 10px;
}

.cast-box-body-comment p:last-child{
  margin-bottom:0;
}

.cast-full{
  width:100%;
  margin-top:25px;
}

/* 出勤スケジュール */
.cast-schedule{
  margin-top:20px;
}

.cast-schedule h3{
  margin:0 0 10px;
  font-size:18px;
  color:#333;
}

.cast-box-body .ch-schedule-wrap{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:0;
}

.cast-box-body .ch-day{
  width:calc(16.666% - 10px);
  display:flex;
  flex-direction:column;
  flex-shrink:0;
  border-radius:8px;
  overflow:hidden;
  background:#f9f9f9;
  min-height:92px;
}

.cast-box-body .ch-date{
  background:var(--pm-main);
  color:#fff;
  font-weight:bold;
  text-align:center;
  padding:10px 6px;
  font-size:14px;
  display:flex;
  justify-content:center;
  align-items:center;
  min-height:40px;
}

.cast-box-body .ch-time{
  background:#e6f1f6;
  color:#000;
  font-size:13px;
  text-align:center;
  padding:10px 6px;
  margin:0;
  border-top:1px solid #d1d9df;
  border-radius:0 0 6px 6px;
  display:flex;
  justify-content:center;
  align-items:center;
  min-height:52px;
  flex:1;
  box-sizing:border-box;
  line-height:1.4;
}

.cast-box-body .ch-time-off{
  background:#f5f5f5;
  color:#777;
  font-style:italic;
  display:flex;
  justify-content:center;
  align-items:center;
  min-height:52px;
  flex:1;
}

/* キャスト詳細 写メ日記 */
.cast-diary{
  margin-top:0;
}

.pm-diary h3{
  margin:0 0 10px;
  font-size:18px;
  color:#333;
}

.pm-diary-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:16px;
}

.pm-diary-card{
  display:block;
  text-decoration:none;
  color:inherit;
  border:1px solid #eee;
  border-radius:8px;
  overflow:hidden;
  background:#fff;
}

.pm-diary-thumb{
  aspect-ratio:1 / 1;
  overflow:hidden;
  background:#f5f5f5;
}

.pm-diary-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.pm-diary-title{
  padding:8px;
  font-size:13px;
  line-height:1.5;
  word-break:break-word;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:3em;
}

/* =========================
   女の子一覧ページ
========================= */
.pm-cast-list{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:20px;
}

.pm-cast-card{
  display:block;
  text-decoration:none;
  color:#333;
  background:#fff;
  border:1px solid var(--pm-border);
  border-radius:10px;
  overflow:hidden;
  transition:.2s ease;
}

.pm-cast-card:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 20px rgba(0,0,0,.08);
}

.pm-cast-card-image{
  aspect-ratio:3 / 4;
  background:#f5f5f5;
  overflow:hidden;
}

.pm-cast-card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.pm-cast-card-noimage{
  width:100%;
  height:100%;
  min-height:280px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#999;
  font-size:13px;
}

.pm-cast-card-body{
  padding:12px;
}

.pm-cast-card-name{
  font-size:18px;
  font-weight:700;
  margin-bottom:8px;
  line-height:1.4;
}

.pm-cast-card-meta{
  font-size:13px;
  line-height:1.7;
  color:#555;
}

/* =========================
   写メ日記一覧ページ
   girlsページ風デザイン
========================= */
.pm-diary-all-grid{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:20px;
}

.pm-diary-all-grid .pm-diary-card{
  display:block;
  text-decoration:none;
  color:#333;
  background:#fff;
  border:1px solid var(--pm-border);
  border-radius:10px;
  overflow:hidden;
  transition:.2s ease;
  height:100%;
}

.pm-diary-all-grid .pm-diary-card:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 20px rgba(0,0,0,.08);
}

.pm-diary-all-grid .pm-diary-thumb{
  aspect-ratio:3 / 4;
  background:#f5f5f5;
  overflow:hidden;
}

.pm-diary-all-grid .pm-diary-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.pm-diary-all-grid .pm-diary-title{
  padding:12px 12px 6px;
  font-size:16px;
  font-weight:700;
  line-height:1.4;
  color:#333;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:2.8em;
}

.pm-diary-cast{
  padding:0 12px 4px;
  font-size:13px;
  line-height:1.7;
  color:#555;
}

.pm-diary-date{
  padding:0 12px 12px;
  font-size:12px;
  line-height:1.6;
  color:#777;
}

/* ページネーション */
.pm-diary-pagination{
  text-align:center;
  margin-top:30px;
}

.pm-diary-pagination a,
.pm-diary-pagination span{
  display:inline-block;
  padding:8px 12px;
  margin:4px;
  border:1px solid #ddd;
  border-radius:6px;
  text-decoration:none;
  color:#333;
}

.pm-diary-pagination .current{
  background:var(--pm-main);
  color:#fff;
  border-color:var(--pm-main);
}

/* =========================
   TOP 女の子一覧 自動横流し
========================= */
.pm-home-girls-wrap{
  overflow:hidden;
}

.pm-home-girls-marquee{
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  cursor:grab;
}

.pm-home-girls-marquee::-webkit-scrollbar{
  display:none;
}

.pm-home-girls-marquee.is-dragging{
  cursor:grabbing;
}

.pm-home-girls-track{
  display:flex;
  gap:14px;
  width:max-content;
}

.pm-home-girl-card{
  width:170px;
  min-width:170px;
  flex:0 0 170px;
  background:#fff;
  border:1px solid #e8e8e8;
  border-radius:8px;
  overflow:hidden;
  text-decoration:none;
  color:#333;
  transition:transform .2s ease;
}

.pm-home-girl-card:hover{
  transform:translateY(-3px);
}

.pm-home-girl-image{
  aspect-ratio:3 / 4;
  background:#f5f5f5;
  overflow:hidden;
}

.pm-home-girl-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.pm-home-girl-noimage{
  width:100%;
  height:100%;
  min-height:240px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#999;
  font-size:12px;
}

.pm-home-girl-body{
  padding:10px 8px 12px;
  text-align:center;
}

.pm-home-girl-name{
  font-size:16px;
  font-weight:700;
  margin-bottom:6px;
  line-height:1.4;
}

.pm-home-girl-meta{
  font-size:12px;
  color:#555;
  line-height:1.6;
}

/* =========================
   TOPページ デザイン統一
========================= */
#top .lp-section,
.home .lp-section{
  max-width:1100px;
  margin:60px auto;
  padding:0 20px;
}

.lp-section h2{
  font-size:26px;
  font-weight:700;
  margin-bottom:25px;
  padding-bottom:10px;
  border-bottom:3px solid var(--pm-main);
  display:inline-block;
}

.pm-home-cast-card,
.pm-home-diary-card{
  display:block;
  text-decoration:none;
  color:#333;
  background:#fff;
  border:1px solid var(--pm-border);
  border-radius:10px;
  overflow:hidden;
  transition:.2s ease;
}

.pm-home-cast-card:hover,
.pm-home-diary-card:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 20px rgba(0,0,0,.08);
}

.pm-home-cast-image,
.pm-home-diary-image{
  aspect-ratio:3 / 4;
  overflow:hidden;
  background:#f5f5f5;
  border-radius:8px;
}

.pm-home-cast-image img,
.pm-home-diary-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.pm-home-cast-name{
  font-size:16px;
  font-weight:700;
  margin-top:8px;
  text-align:center;
}

.pm-home-diary-title{
  font-size:14px;
  font-weight:700;
  margin-top:8px;
}

.pm-home-diary-cast{
  font-size:12px;
  color:#777;
}

/* 横スクロール */
.horizontal-scroll{
  display:flex;
  gap:16px;
  overflow-x:auto;
  padding-bottom:10px;
}

.horizontal-scroll a{
  flex:0 0 160px;
  text-decoration:none;
  color:#333;
}

/* もっと見るボタン */
.more-btn{
  display:inline-block;
  margin-top:20px;
  padding:10px 22px;
  border:1px solid var(--pm-main);
  color:var(--pm-main);
  text-decoration:none;
  border-radius:6px;
  font-size:14px;
  transition:.2s;
}

.more-btn:hover{
  background:var(--pm-main);
  color:#fff;
}

/* タイルメニュー */
.tile-card{
  border:1px solid var(--pm-border);
  background:#fff;
  transition:.2s;
}

.tile-card:hover{
  background:var(--pm-main);
  color:#fff;
}

/* =========================
   出勤情報
   PC: 四角タブ
   SP: プルダウン
========================= */
.pm-attendance-tabs-wrap{
  display:flex;
  flex-direction:column;
  gap:20px;
}

/* PCタブ */
.pm-attendance-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:0;
  border-bottom:2px solid #e5e5e5;
  max-width:1100px;
  margin:0 auto 20px;
}

.pm-attendance-tab{
  appearance:none;
  border:none;
  border-bottom:3px solid transparent;
  background:#fff;
  color:#333;
  padding:14px 22px;
  cursor:pointer;
  transition:.2s ease;
  font-size:15px;
  font-weight:700;
  border-radius:0;
  line-height:1;
}

.pm-attendance-tab:hover{
  background:#f7f7f7;
}

.pm-attendance-tab.is-active{
  background:var(--pm-main);
  color:#fff;
  border-bottom-color:var(--pm-main);
}

.pm-attendance-tab-date{
  line-height:1;
}

.pm-attendance-tab-week{
  font-size:12px;
  line-height:1;
}

/* SPプルダウン */
.pm-attendance-select-wrap{
  display:none;
  position:relative;
}

.pm-attendance-select-wrap::after{
  content:"";
  position:absolute;
  right:14px;
  top:50%;
  width:8px;
  height:8px;
  border-right:2px solid var(--pm-main);
  border-bottom:2px solid var(--pm-main);
  transform:translateY(-60%) rotate(45deg);
  pointer-events:none;
}

.pm-attendance-select{
  width:100%;
  height:50px;
  border:1px solid #d8d8d8;
  border-radius:10px;
  background:#fff;
  padding:0 40px 0 14px;
  font-size:14px;
  font-weight:700;
  color:#333;
  box-shadow:0 4px 12px rgba(0,0,0,.04);
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
}

.pm-attendance-select:focus{
  outline:none;
  border-color:var(--pm-main);
  box-shadow:0 0 0 3px rgba(87,195,205,.15);
}

/* パネル */
.pm-attendance-panels{
  width:100%;
}

.pm-attendance-panel{
  display:none;
}

.pm-attendance-panel.is-active{
  display:block;
}

.pm-attendance-panel-head{
  display:none;
}

/* カード一覧 */
.pm-attendance-list{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:20px;
}

.pm-attendance-card{
  display:block;
  text-decoration:none;
  color:#333;
  background:#fff;
  border:1px solid var(--pm-border);
  border-radius:10px;
  overflow:hidden;
  transition:.2s ease;
}

.pm-attendance-card:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 20px rgba(0,0,0,.08);
}

.pm-attendance-image{
  aspect-ratio:3 / 4;
  background:#f5f5f5;
  overflow:hidden;
}

.pm-attendance-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.pm-attendance-noimage{
  width:100%;
  height:100%;
  min-height:240px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#999;
  font-size:12px;
}

.pm-attendance-body{
  padding:12px;
}

.pm-attendance-name{
  font-size:18px;
  font-weight:700;
  margin-bottom:8px;
  line-height:1.4;
}

.pm-attendance-meta{
  font-size:12px;
  color:#666;
  line-height:1.7;
  margin-bottom:8px;
}

.pm-attendance-time{
  font-size:14px;
  font-weight:700;
  color:var(--pm-main);
  line-height:1.6;
}

.pm-attendance-empty{
  padding:20px;
  background:#fafafa;
  border:1px solid var(--pm-border);
  border-radius:10px;
  color:#777;
  text-align:center;
}

/* =========================
   固定ヘッダー
========================= */
.pm-fixed-header{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  background:rgba(87, 195, 205, 0.92);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  z-index:99999;
  box-shadow:0 2px 12px rgba(0,0,0,.08);
}

.pm-fixed-header-inner{
  max-width:1100px;
  margin:0 auto;
  min-height:64px;
  padding:0 20px;
  display:flex;
  align-items:center;
  gap:24px;
}

.pm-fixed-logo{
  color:#fff;
  text-decoration:none;
  font-size:20px;
  font-weight:700;
  white-space:nowrap;
}

/* PCメニュー */
.pm-fixed-nav{
  display:flex;
  align-items:center;
  gap:0;
  margin-left:auto;
}

.pm-fixed-nav a{
  color:#fff;
  text-decoration:none;
  font-size:14px;
  font-weight:700;
  line-height:64px;
  padding:0 14px;
  white-space:nowrap;
  transition:background .2s ease;
}

.pm-fixed-nav a:hover{
  background:rgba(255,255,255,.12);
}

/* ハンバーガー */
.pm-fixed-hamburger{
  display:none;
  margin-left:auto;
  width:42px;
  height:42px;
  border:none;
  background:transparent;
  padding:0;
  cursor:pointer;
}

.pm-fixed-hamburger span{
  display:block;
  width:24px;
  height:2px;
  background:#fff;
  margin:5px auto;
  transition:.25s ease;
}

.pm-fixed-hamburger.is-open span:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}

.pm-fixed-hamburger.is-open span:nth-child(2){
  opacity:0;
}

.pm-fixed-hamburger.is-open span:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}

/* スマホオーバーレイ */
.pm-fixed-overlay{
  position:fixed;
  top:0;
  right:-100%;
  width:min(82vw, 360px);
  height:100vh;
  background:rgba(87, 195, 205, 0.97);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  z-index:99998;
  transition:right .3s ease;
  box-shadow:-8px 0 24px rgba(0,0,0,.12);
}

.pm-fixed-overlay.is-open{
  right:0;
}

.pm-fixed-overlay-inner{
  padding:84px 24px 24px;
}

.pm-fixed-overlay a{
  display:block;
  color:#fff;
  text-decoration:none;
  font-size:16px;
  font-weight:700;
  padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,.18);
}

/* 固定ページ本文上余白 */
.page .content,
.page #content,
.page .container,
.page #main{
  margin-top:64px !important;
}

/* =========================
   /top/ 配下 固定フッター
========================= */
body.pm-has-fixed-reserve-footer{
  padding-bottom:80px;
}

.pm-fixed-reserve-footer{
  position:fixed;
  left:0;
  bottom:0;
  width:100%;
  z-index:99999;
  background:transparent;
  display:flex;
  justify-content:center;
  pointer-events:none;
}

.pm-fixed-reserve-footer__wrap{
  position:relative;
  width:100%;
  max-width:1920px;
  margin:0 auto;
  line-height:0;
  pointer-events:auto;
}

.pm-fixed-reserve-footer__image{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}

.pm-fixed-reserve-footer__half{
  position:absolute;
  top:0;
  width:50%;
  height:100%;
  z-index:2;
}

.pm-fixed-reserve-footer__half.is-left{
  left:0;
}

.pm-fixed-reserve-footer__half.is-right{
  right:0;
}

/* =========================
   スプリングボード風メニュー
========================= */
.springboard-menu{
  max-width:760px;
  margin:30px auto 40px;
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:14px;
  padding:0 16px;
}

.springboard-menu .tile-card{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:84px;
  padding:16px 12px;
  text-decoration:none;
  text-align:center;
  font-size:16px;
  font-weight:700;
  line-height:1.4;
  color:#333;
  background:#fff;
  border:1px solid rgba(87,195,205,.18);
  border-radius:18px;
  box-shadow:0 10px 24px rgba(0,0,0,.06);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.springboard-menu .tile-card:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 28px rgba(0,0,0,.10);
  border-color:rgba(87,195,205,.45);
}

.springboard-menu .tile-card:active{
  transform:scale(.98);
}

/* =========================
   レスポンシブ
========================= */
@media (max-width: 1024px){
  .pm-cast-list{
    grid-template-columns:repeat(3, 1fr);
  }

  .pm-diary-all-grid{
    grid-template-columns:repeat(4, 1fr);
  }

  .pm-attendance-list{
    grid-template-columns:repeat(3, 1fr);
  }

  .pm-fixed-nav a{
    padding:0 10px;
    font-size:13px;
  }
}

@media (max-width: 900px){
  .pm-diary-grid{
    grid-template-columns:repeat(2, 1fr);
  }

  .cast-box-body .ch-day{
    width:calc(33.333% - 8px);
  }
}

@media (max-width: 768px){
  .cast-flex{
    flex-direction:column;
  }

  .cast-left,
  .cast-right{
    flex:0 0 100%;
  }

  .cast-reserve-btn{
    display:block;
    width:100%;
  }

  .cast-box-body .ch-day{
    width:calc(50% - 6px);
  }

  /* girls 3列 */
  .pm-cast-list{
    grid-template-columns:repeat(3, 1fr) !important;
    gap:10px;
  }

  .pm-cast-card-name{
    font-size:12px;
    line-height:1.4;
  }

  .pm-cast-card-meta{
    font-size:10px;
    line-height:1.4;
  }

  .pm-cast-card-body{
    padding:8px;
  }

  /* キャスト詳細 diary */
  .pm-diary-grid{
    grid-template-columns:repeat(2, 1fr);
  }

  /* TOP girls */
  .pm-home-girl-card{
    width:140px;
    min-width:140px;
    flex:0 0 140px;
  }

  .pm-home-girl-name{
    font-size:14px;
  }

  .pm-home-girl-meta{
    font-size:11px;
  }

  /* diary一覧 3列 */
  .pm-diary-all-grid{
    grid-template-columns:repeat(3, 1fr) !important;
    gap:10px;
  }

  .pm-diary-all-grid .pm-diary-title,
  .pm-diary-title{
    font-size:12px;
    line-height:1.4;
  }

  .pm-diary-cast,
  .pm-diary-date{
    font-size:10px;
    line-height:1.4;
  }

  /* attendance */
  .pm-attendance-tabs{
    display:none;
  }

  .pm-attendance-select-wrap{
    display:block;
  }

  .pm-attendance-list{
    grid-template-columns:repeat(3, 1fr);
    gap:10px;
  }

  .pm-attendance-name{
    font-size:14px;
  }

  .pm-attendance-meta{
    font-size:10px;
  }

  .pm-attendance-time{
    font-size:12px;
  }

  .pm-attendance-body{
    padding:8px;
  }

  /* fixed header */
  .pm-fixed-header{
    background:rgba(87, 195, 205, 0.9);
  }

  .pm-fixed-header-inner{
    min-height:60px;
    padding:0 14px;
  }

  .pm-fixed-logo{
    font-size:18px;
  }

  .pm-fixed-nav{
    display:none;
  }

  .pm-fixed-hamburger{
    display:block;
  }

  .page .content,
  .page #content,
  .page .container,
  .page #main{
    margin-top:60px !important;
  }

  /* fixed footer */
  body.pm-has-fixed-reserve-footer{
    padding-bottom:82px;
  }

  .pm-fixed-reserve-footer__wrap{
    width:100vw;
    max-width:700px;
    margin:0 auto;
  }

  .pm-fixed-reserve-footer__image{
    width:100%;
    height:auto;
  }
}

@media (max-width: 480px){
  .cast-box-body .ch-day{
    width:100%;
  }

  .ch-date,
  .ch-time{
    font-size:12px;
  }

  .cast-box-title{
    font-size:14px;
  }

  .cast-box-body{
    font-size:13px;
  }

  .pm-diary-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 420px){
  .pm-cast-list{
    grid-template-columns:repeat(2, 1fr) !important;
  }

  .pm-diary-all-grid{
    grid-template-columns:repeat(2, 1fr) !important;
  }

  .pm-attendance-list{
    grid-template-columns:repeat(2, 1fr);
  }

  .springboard-menu{
    gap:10px;
    padding:0 12px;
  }

  .springboard-menu .tile-card{
    min-height:74px;
    font-size:14px;
    border-radius:14px;
    padding:12px 8px;
  }
}

@media (min-width: 769px){
  body.pm-has-fixed-reserve-footer{
    padding-bottom:88px;
  }

  .pm-fixed-reserve-footer__wrap{
    width:min(100vw, 1920px);
  }

  .pm-fixed-reserve-footer__image{
    width:100%;
    height:auto;
  }

  .springboard-menu{
    max-width:1100px;
    grid-template-columns:repeat(4, 1fr);
    gap:16px;
    padding:0;
  }

  .springboard-menu .tile-card{
    min-height:92px;
    font-size:15px;
    border-radius:16px;
  }
}
/* =========================
   スプリングボード風メニュー
========================= */

.tile-menu.springboard-menu{
  max-width: 760px;
  margin: 30px auto 40px;
  padding: 0 16px;
  display: grid !important;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

.tile-menu.springboard-menu .tile-card{
  display: flex !important;
  align-items: center;
  justify-content: center;
  min-height: 84px;
  padding: 16px 12px;
  text-decoration: none;
  text-align: center;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  color: #333 !important;
  background: #fff !important;
  border: 1px solid rgba(87,195,205,0.18) !important;
  border-radius: 18px !important;
  box-shadow: 0 10px 24px rgba(0,0,0,0.06);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.tile-menu.springboard-menu .tile-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 14px 28px rgba(0,0,0,0.10);
  border-color: rgba(87,195,205,0.45) !important;
  background: #fff !important;
  color: #333 !important;
}

.tile-menu.springboard-menu .tile-card:active{
  transform: scale(0.98);
}

@media (min-width: 769px){
  .tile-menu.springboard-menu{
    max-width: 1100px;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    padding: 0;
  }

  .tile-menu.springboard-menu .tile-card{
    min-height: 92px;
    font-size: 15px;
    border-radius: 16px !important;
  }
}

@media (max-width: 420px){
  .tile-menu.springboard-menu{
    gap: 10px;
    padding: 0 12px;
  }

  .tile-menu.springboard-menu .tile-card{
    min-height: 74px;
    font-size: 14px;
    border-radius: 14px !important;
    padding: 12px 8px;
  }
}
/* =========================
   スプリングボード（白背景＋メインカラー）
========================= */

.tile-menu.springboard-menu{
  max-width: 760px;
  margin: 30px auto 40px;
  padding: 20px 16px;
  background:#fff; /* 背景白 */
  border-radius:14px;
  display:grid !important;
  grid-template-columns:repeat(2,1fr);
  gap:14px;
}

/* ボタン */

.tile-menu.springboard-menu .tile-card{
  display:flex !important;
  align-items:center;
  justify-content:center;
  min-height:84px;
  padding:16px 12px;
  text-decoration:none;
  text-align:center;

  font-size:16px;
  font-weight:700;

  color:#fff !important; /* テキスト白 */
  background:#57c3cd !important; /* メインカラー */
  border:none !important;

  border-radius:16px !important;

  box-shadow:0 6px 18px rgba(0,0,0,0.12);

  transition:transform .2s ease,
             box-shadow .2s ease,
             background .2s ease;
}

.tile-menu.springboard-menu .tile-card:hover{
  background:#45aeb8 !important;
  transform:translateY(-3px);
  box-shadow:0 10px 22px rgba(0,0,0,0.18);
}

.tile-menu.springboard-menu .tile-card:active{
  transform:scale(.97);
}

/* ===== ホバー ===== */

.tile-menu.springboard-menu .tile-card:hover,
#girls .more-btn:hover{
  background:#45aeb8 !important;
  transform:translateY(-3px);
  box-shadow:0 10px 22px rgba(0,0,0,0.18);
}


/* ===== 押した時 ===== */

.tile-menu.springboard-menu .tile-card:active,
#girls .more-btn:active{
  transform:scale(.97);
}
/* PCは4列 */

@media (min-width:769px){

  .tile-menu.springboard-menu{
    max-width:1100px;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
    padding:24px;
  }

  .tile-menu.springboard-menu .tile-card{
    min-height:92px;
    font-size:15px;
  }

}

/* 小さいスマホ */

@media (max-width:420px){

  .tile-menu.springboard-menu{
    gap:10px;
    padding:16px 12px;
  }

  .tile-menu.springboard-menu .tile-card{
    min-height:74px;
    font-size:14px;
    border-radius:14px;
    padding:12px 8px;
  }

}
/* =========================
   スプリングボード修正
========================= */

.tile-menu.springboard-menu{
  background:#ffffff !important;
  max-width:760px;
  margin:30px auto 40px;
  padding:20px 16px;
  border-radius:16px;
  display:grid !important;
  grid-template-columns:repeat(2,1fr);
  gap:14px;
}

/* ボタン */

.tile-menu.springboard-menu .tile-card{
  background:#57c3cd !important;
  color:#ffffff !important;
  border:none !important;

  display:flex;
  align-items:center;
  justify-content:center;

  font-size:16px;
  font-weight:700;

  min-height:84px;
  padding:16px 12px;

  border-radius:16px;

  box-shadow:0 8px 18px rgba(0,0,0,0.15);

  transition:0.2s;
}

.tile-menu.springboard-menu .tile-card:hover{
  background:#45aeb8 !important;
  color:#fff !important;
}

/* PC */

@media (min-width:769px){

  .tile-menu.springboard-menu{
    max-width:1100px;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
  }

}
/* =========================
   TOP 女の子一覧
   スプリングボード風セクション
========================= */

#girls.lp-section{
  max-width: 1100px;
  margin: 30px auto 40px;
  padding: 24px 20px 28px;
  background: #fff !important;
  border-radius: 18px;
  box-shadow: 0 10px 24px rgba(0,0,0,0.06);
}

/* 見出し */
#girls.lp-section h2{
  margin: 0 0 20px;
  font-size: 26px;
  font-weight: 700;
  color: #333;
}

/* 横スクロール全体 */
#girls .pm-home-girls-wrap{
  margin-top: 4px;
}

/* カード */
#girls .pm-home-girl-card{
  background: #fff;
  border: 1px solid rgba(87,195,205,0.18);
  border-radius: 16px;
  box-shadow: 0 8px 18px rgba(0,0,0,0.08);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

#girls .pm-home-girl-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 12px 24px rgba(0,0,0,0.12);
  border-color: rgba(87,195,205,0.45);
}

/* 画像 */
#girls .pm-home-girl-image{
  border-radius: 0;
  background: #f5f5f5;
}

/* 名前 */
#girls .pm-home-girl-name{
  font-size: 16px;
  font-weight: 700;
  color: #333;
}

/* メタ */
#girls .pm-home-girl-meta{
  font-size: 12px;
  color: #666;
}

/* もっと見るボタン */
#girls .more-btn{
  display: inline-block;
  margin-top: 22px;
  padding: 10px 22px;
  border: none;
  border-radius: 12px;
  background: #57c3cd;
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  font-weight: 700;
  box-shadow: 0 6px 16px rgba(87,195,205,0.28);
  transition: .2s ease;
}

#girls .more-btn:hover{
  background: #45aeb8;
  color: #fff;
  transform: translateY(-2px);
}

/* スマホ */
@media (max-width: 768px){
  #girls.lp-section{
    padding: 18px 14px 22px;
    border-radius: 16px;
  }

  #girls.lp-section h2{
    font-size: 22px;
    margin-bottom: 16px;
  }

  #girls .pm-home-girl-card{
    border-radius: 14px;
  }

  #girls .pm-home-girl-name{
    font-size: 14px;
  }

  #girls .pm-home-girl-meta{
    font-size: 11px;
  }

  #girls .more-btn{
    width: 100%;
    text-align: center;
    border-radius: 14px;
  }
}
/* =========================
   セクション見出し
   左カラー / 右白
========================= */

.lp-section h2{
  display:flex;
  align-items:center;
  font-size:22px;
  font-weight:700;
  margin-bottom:24px;
  padding:0;
  border:none;
}

/* 左タイトル */
.lp-section h2::before{
  content:attr(data-title);
  background:#57c3cd;
  color:#fff;
  padding:10px 18px;
  border-radius:6px 0 0 6px;
  font-size:18px;
}

/* 右の白ライン */
.lp-section h2::after{
  content:"";
  flex:1;
  height:3px;
  background:#57c3cd;
}
/* =========================
   TOP セクション統一デザイン
========================= */

#girls.lp-section,
#blog.lp-section,
#schedule.lp-section,
#movie.lp-section,
#price.banner-section{

  max-width:1100px;
  margin:40px auto;
  padding:26px 24px;

  background:#fff;
  border-radius:18px;

  box-shadow:0 10px 24px rgba(0,0,0,0.06);
}

/* =========================
   セクションタイトル
========================= */

#girls h2,
#blog h2,
#schedule h2,
#movie h2{

  display:flex;
  align-items:center;
  font-size:22px;
  font-weight:700;
  margin-bottom:22px;
}

#girls h2::before,
#blog h2::before,
#schedule h2::before,
#movie h2::before{

  content:attr(data-title);
  background:#57c3cd;
  color:#fff;

  padding:8px 18px;
  border-radius:8px;

  font-size:16px;
}

#girls h2::after,
#blog h2::after,
#schedule h2::after,
#movie h2::after{

  content:"";
  flex:1;
  height:3px;
  background:#57c3cd;
  margin-left:12px;
}

/* =========================
   横スクロールカード
========================= */

.horizontal-scroll{
  display:flex;
  gap:16px;
  overflow-x:auto;
  padding-bottom:8px;
}

/* =========================
   もっと見るボタン
========================= */

.more-btn{

  display:inline-block;
  margin-top:18px;

  padding:10px 22px;

  border-radius:12px;

  background:#57c3cd;
  color:#fff;

  text-decoration:none;
  font-size:14px;
  font-weight:700;

  box-shadow:0 6px 16px rgba(87,195,205,0.3);

  transition:0.2s;
}

.more-btn:hover{

  background:#45aeb8;
  transform:translateY(-2px);

}

/* =========================
   料金バナー
========================= */

#price.banner-section{

  padding:0;
  overflow:hidden;
}

#price.banner-section img{

  width:100%;
  height:auto;
  display:block;

  border-radius:18px;
}

/* =========================
   スマホ
========================= */

@media (max-width:768px){

#girls.lp-section,
#blog.lp-section,
#schedule.lp-section,
#movie.lp-section,
#price.banner-section{

  padding:20px 16px;
  border-radius:16px;
}

#girls h2,
#blog h2,
#schedule h2,
#movie h2{

  font-size:20px;
}

.more-btn{

  width:100%;
  text-align:center;
}

}
/* =========================
   TOP セクション見出し統一
========================= */

.lp-section h2{
  display:flex;
  align-items:center;
  font-size:0; /* テキストを消す */
  margin-bottom:22px;
}

/* 左のタイトルボックス */

.lp-section h2::before{
  content:attr(data-title);
  background:#57c3cd;
  color:#fff;

  padding:10px 18px;

  font-size:18px;
  font-weight:700;

  border-radius:8px;

  white-space:nowrap;
}

/* 右のライン */

.lp-section h2::after{
  content:"";
  flex:1;
  height:3px;
  background:#57c3cd;
  margin-left:12px;
}
/* =========================
   料金システム
========================= */

.price-section{
  max-width:1100px;
  margin:40px auto;
  padding:0 16px;
}

.price-note-box,
.price-box{
  background:#fff;
  border:1px solid #e5e5e5;
  border-radius:14px;
  box-shadow:0 8px 20px rgba(0,0,0,0.05);
  overflow:hidden;
  margin-bottom:24px;
}

.price-note-title,
.price-box-title{
  background:#57c3cd;
  color:#fff;
  font-size:18px;
  font-weight:700;
  padding:14px 18px;
  margin:0;
}

.price-note-text{
  padding:18px;
  line-height:1.9;
  font-size:14px;
  color:#333;
}

.price-fixed-table{
  width:100%;
  border-collapse:collapse;
}

.price-fixed-table th,
.price-fixed-table td{
  border:1px solid #e5e5e5;
  padding:14px 16px;
  font-size:14px;
  line-height:1.7;
  text-align:left;
  vertical-align:top;
}

.price-fixed-table th{
  width:28%;
  background:#f8fcfc;
  font-weight:700;
}

.price-fixed-table th[colspan="2"]{
  width:auto;
  background:#f1fbfc;
  color:#333;
}

.price-accordion{
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.price-accordion details{
  border:1px solid #dfeeee;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
}

.price-accordion summary{
  list-style:none;
  cursor:pointer;
  background:#f8fcfc;
  padding:14px 18px;
  font-size:15px;
  font-weight:700;
  color:#333;
  position:relative;
}

.price-accordion summary::-webkit-details-marker{
  display:none;
}

.price-accordion summary::after{
  content:"+";
  position:absolute;
  right:16px;
  top:50%;
  transform:translateY(-50%);
  font-size:22px;
  color:#57c3cd;
}

.price-accordion details[open] summary::after{
  content:"−";
}

.price-accordion table{
  width:100%;
  border-collapse:collapse;
}

.price-accordion th,
.price-accordion td{
  border-top:1px solid #e5e5e5;
  padding:12px 16px;
  font-size:14px;
  line-height:1.7;
  text-align:left;
}

.price-accordion th{
  width:35%;
  background:#fcfefe;
  font-weight:700;
}

.option-table{
  margin-top:18px;
}

@media (max-width:768px){
  .price-note-title,
  .price-box-title{
    font-size:16px;
    padding:12px 14px;
  }

  .price-note-text,
  .price-fixed-table th,
  .price-fixed-table td,
  .price-accordion th,
  .price-accordion td{
    font-size:13px;
    padding:10px 12px;
  }

  .price-accordion{
    padding:12px;
  }

  .price-accordion summary{
    font-size:14px;
    padding:12px 14px;
  }
}
/* =========================
   料金表 td 背景を白にする
========================= */

.price-fixed-table td{
  background:#ffffff !important;
}

.price-accordion td{
  background:#ffffff !important;
}
/* =========================
   動画一覧
========================= */

.pm-movie-list{
display:grid;
grid-template-columns:repeat(5,1fr);
gap:20px;
}

.pm-movie-card{
display:block;
background:#fff;
border-radius:10px;
overflow:hidden;
border:1px solid #e5e5e5;
transition:0.2s;
}

.pm-movie-card:hover{
transform:translateY(-3px);
box-shadow:0 8px 20px rgba(0,0,0,0.08);
}

.pm-movie-thumb{
aspect-ratio:3/4;
background:#f3f3f3;
overflow:hidden;
}

.pm-movie-thumb img{
width:100%;
height:100%;
object-fit:cover;
display:block;
}

@media (max-width:1024px){
.pm-movie-list{
grid-template-columns:repeat(3,1fr);
}
}

@media (max-width:768px){
.pm-movie-list{
grid-template-columns:repeat(3,1fr);
gap:10px;
}
}

@media (max-width:420px){
.pm-movie-list{
grid-template-columns:repeat(2,1fr);
}
}
/* =========================
   動画一覧
========================= */
.pm-movie-list{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:20px;
}

.pm-movie-card{
  display:block;
  text-decoration:none;
  color:#333;
  background:#fff;
  border:1px solid #e5e5e5;
  border-radius:10px;
  overflow:hidden;
  transition:.2s ease;
}

.pm-movie-card:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 20px rgba(0,0,0,.08);
}

.pm-movie-thumb{
  aspect-ratio:3 / 4;
  background:#f5f5f5;
  overflow:hidden;
}

.pm-movie-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.pm-movie-name{
  padding:10px;
  font-size:14px;
  font-weight:700;
  line-height:1.4;
  text-align:center;
}

@media (max-width:1024px){
  .pm-movie-list{
    grid-template-columns:repeat(3,1fr);
  }
}

@media (max-width:768px){
  .pm-movie-list{
    grid-template-columns:repeat(3,1fr);
    gap:10px;
  }

  .pm-movie-name{
    font-size:12px;
    padding:8px;
  }
}

@media (max-width:420px){
  .pm-movie-list{
    grid-template-columns:repeat(2,1fr);
  }
}
/* =========================
   求人バナー
   画像全体を表示
========================= */

.banner-section{
  width: 100%;
  max-width: 1100px;
  margin: 40px auto;
  padding: 0 20px;
  box-sizing: border-box;
}

.banner-section a{
  display: block;
  width: 100%;
}

.banner-section img{
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto !important;
  object-fit: contain !important;
  border-radius: 8px;
}

/* =========================
   求人バナー 余白調整
========================= */

.banner-section{
  width:100%;
  max-width:1100px;
  margin:10px auto;   /* ←余白を縮める */
  padding:0 20px;
  box-sizing:border-box;
}

.banner-section a{
  display:block;
  line-height:0;  /* 画像下の余白防止 */
}

.banner-section img{
  width:100%;
  height:auto;
  display:block;
  border-radius:8px;
}
margin:0 auto;

/* =========================
   /top/diary/ SPを3列固定
========================= */
@media (max-width: 768px){
  .pm-diary-grid{
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .pm-diary-card{
    min-width: 0;
  }

  .pm-diary-img img{
    width: 100% !important;
    height: 110px !important;
    object-fit: cover !important;
    display: block;
  }

  .pm-diary-body{
    padding: 6px !important;
  }

  .pm-diary-cast{
    font-size: 11px !important;
    margin-bottom: 3px !important;
  }

  .pm-diary-title{
    font-size: 12px !important;
    line-height: 1.35 !important;
    word-break: break-word;
  }

  .pm-diary-date{
    font-size: 10px !important;
  }
}
/* /top/girls/ カード情報レイアウト */
.pm-cast-card-body{
  padding:12px;
}

.pm-cast-card-name-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
}

.pm-cast-card-name-main{
  font-size:16px;
  font-weight:700;
  line-height:1.4;
  color:#333;
}

.pm-cast-card-age{
  font-size:13px;
  font-weight:700;
  color:#333;
  white-space:nowrap;
}

.pm-cast-card-divider{
  border-top:1px solid #e5e5e5;
  margin:8px 0;
}

.pm-cast-card-meta-row{
  font-size:13px;
  line-height:1.7;
  color:#555;
}

.pm-cast-card-height{
  margin-right:8px;
}

.pm-cast-pagination{
  margin-top:30px;
  text-align:center;
}

.pm-cast-pagination .page-numbers{
  display:inline-block;
  min-width:40px;
  padding:8px 12px;
  margin:4px;
  border:1px solid #ddd;
  border-radius:6px;
  text-decoration:none;
  color:#333;
  background:#fff;
}

.pm-cast-pagination .current{
  background:#57c3cd;
  color:#fff;
  border-color:#57c3cd;
}

@media (max-width:768px){
  .pm-cast-card-body{
    padding:8px;
  }

  .pm-cast-card-name-main{
    font-size:13px;
  }

  .pm-cast-card-age{
    font-size:11px;
  }

  .pm-cast-card-meta-row{
    font-size:10px;
    line-height:1.5;
  }

  .pm-cast-pagination .page-numbers{
    min-width:34px;
    padding:6px 9px;
    font-size:12px;
  }
}

/* ==========================================
   /top/girls/ 最終固定
   ・横幅を1196px以内にする
   ・ページタイトルを消す
   ・PC 5列 / SP 2列
========================================== */

/* ページタイトル非表示 */
.page-id-644 h1.entry-title,
.page-id-644 .entry-title,
.page-id-644 .entry-header,
.page-id-644 header.entry-header{
  display:none !important;
}

/* 本文エリア横幅固定 */
.page-id-644 .content-in,
.page-id-644 .container,
.page-id-644 #content,
.page-id-644 #main,
.page-id-644 .main,
.page-id-644 .article,
.page-id-644 .entry-content{
  max-width:1196px !important;
  width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}

/* 女の子一覧本体 */
.page-id-644 .pm-cast-list{
  display:grid !important;
  grid-template-columns:repeat(5, minmax(0, 1fr)) !important;
  gap:20px !important;
  max-width:1196px !important;
  width:100% !important;
  margin:0 auto !important;
  box-sizing:border-box !important;
}

/* カード */
.page-id-644 .pm-cast-card{
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
}

/* 画像 */
.page-id-644 .pm-cast-card-image,
.page-id-644 .pm-cast-card-image img{
  width:100% !important;
  display:block !important;
}

/* SP */
@media (max-width:768px){
  .page-id-644 .content-in,
  .page-id-644 .container,
  .page-id-644 #content,
  .page-id-644 #main,
  .page-id-644 .main,
  .page-id-644 .article,
  .page-id-644 .entry-content{
    max-width:100% !important;
    padding-left:12px !important;
    padding-right:12px !important;
  }

  .page-id-644 .pm-cast-list{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:10px !important;
    max-width:100% !important;
  }
}
/* /top/girls/ スマホの左右余白をなくす */
@media (max-width:768px){
  .page-id-644 .content-in,
  .page-id-644 .container,
  .page-id-644 #content,
  .page-id-644 #main,
  .page-id-644 .main,
  .page-id-644 .article,
  .page-id-644 .entry-content{
    max-width:100% !important;
    padding-left:0 !important;
    padding-right:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  .page-id-644 .pm-cast-list{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:8px !important;
    width:100% !important;
    max-width:100% !important;
    padding:0 8px !important;
    box-sizing:border-box !important;
  }

  .page-id-644 .pm-cast-card{
    width:100% !important;
  }

  .page-id-644 .pm-cast-card-image{
    aspect-ratio:3 / 4 !important;
  }
}
/* /top/girls/ フッター非表示 */
.page-id-644 #footer,
.page-id-644 .footer,
.page-id-644 .footer-container,
.page-id-644 #footer-in{
  display:none !important;
}
/* 固定フッター：左右余白を半透明黒で埋める */
.pm-fixed-reserve-footer{
  background:rgba(0,0,0,0.5); /* ←黒50% */
}

/* 中央の画像は元のまま */
.pm-fixed-reserve-footer__wrap{
  position:relative;
  max-width:1920px;
  margin:0 auto;
  background:transparent;
}

/* 画像 */
.pm-fixed-reserve-footer__image{
  display:block;
  width:100%;
  height:auto;
}

/* キャスト詳細 プロフィール整形 */
.cast-profile-head{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.cast-name{
  font-size:22px;
  font-weight:700;
}

.cast-age{
  font-size:17px;
  font-weight:600;
}

.cast-profile-size{
  margin-top:6px;
  font-size:17px;
  font-weight:600;
}

/* スマホ */
@media (max-width:768px){
  .cast-profile-head{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
  }

  .cast-name{
    font-size:20px;
  }

  .cast-age{
    font-size:16px;
    font-weight:600;
  }

  .cast-profile-size{
    margin-top:6px;
    font-size:14px;
    font-weight:600;
    line-height:1.6;
  }
}
/* ==========================================
   各女の子ページ：通常フッターのみ非表示
   固定フッターは表示
========================================== */

.single-cast #footer,
.single-cast .footer,
.single-cast .footer-container,
.single-cast #footer-in{
  display:none !important;
}

/* 固定フッターは表示 */
.single-cast .pm-fixed-reserve-footer{
  display:flex !important;
}

/* /top/system/ 項目欄を少し広げる */

.page-id-XXX .price-accordion table,
.page-id-XXX .price-fixed-table{
  table-layout: auto !important;
}

.page-id-XXX .price-accordion th,
.page-id-XXX .price-fixed-table th{
  width: 42% !important;
  white-space: nowrap;
}

@media (max-width:768px){

  .page-id-XXX .price-accordion th,
  .page-id-XXX .price-fixed-table th{
    width: 50% !important;
  }

}
/* ==========================================
   /top/system/ 項目欄
========================================== */
/* /top/system/ 項目欄はスマホだけ広げる */
@media (max-width: 768px){
  .price-fixed-table,
  .price-accordion table{
    width: 100% !important;
    table-layout: fixed !important;
  }

  .price-fixed-table th,
  .price-accordion th{
    width: 48% !important;
    min-width: 48% !important;
    max-width: 48% !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
  }

  .price-fixed-table td,
  .price-accordion td{
    width: 52% !important;
    box-sizing: border-box !important;
  }
}
/* /top/system/ プラン内テーブル */

.price-accordion details table th{
  background:#f8fcfc !important;
  font-weight:700 !important;
}

/* ==========================================
   キャスト詳細 写メ日記
   PC: 4列 / ボタン4件分
   SP: 2列2段 / ボタン2件分
========================================== */

.pm-diary-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:16px;
}

.pm-diary-card{
  display:block;
  text-decoration:none;
  color:inherit;
  border:1px solid #eee;
  border-radius:8px;
  overflow:hidden;
  background:#fff;
}

.pm-diary-thumb{
  aspect-ratio:1 / 1;
  overflow:hidden;
  background:#f5f5f5;
}

.pm-diary-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.pm-diary-title{
  padding:8px;
  font-size:13px;
  line-height:1.5;
  word-break:break-word;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:3em;
}

.pm-diary-more-wrap{
  margin-top:16px;
}

.pm-diary-more-btn{
  display:block;
  width:100%;
  box-sizing:border-box;
  padding:12px 16px;
  border-radius:8px;
  background:#57c3cd;
  color:#fff;
  font-weight:700;
  text-align:center;
  text-decoration:none;
  box-shadow:0 6px 16px rgba(87,195,205,.3);
  transition:.2s;
}

.pm-diary-more-btn:hover{
  background:#45aeb8;
  transform:translateY(-2px);
}

@media (max-width:768px){
  .pm-diary-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:10px !important;
  }

  .pm-diary-more-wrap{
    margin-top:10px;
  }

  .pm-diary-more-btn{
    width:100%;
    padding:10px 12px;
    font-size:14px;
  }
}
/* =========================
   recruitment 用追加
========================= */

.recruit-fixed-table th{
  width: 32%;
  background:#f8fcfc !important;
}

.recruit-fixed-table td{
  background:#fff !important;
}

.recruit-apply-wrap{
  padding:20px 18px 10px;
  text-align:center;
}

.recruit-apply-btn{
  display:inline-block;
  min-width:320px;
  padding:14px 24px;
  border-radius:10px;
  background:#57c3cd;
  color:#fff;
  text-decoration:none;
  font-size:16px;
  font-weight:700;
  box-shadow:0 6px 16px rgba(87,195,205,.28);
  transition:.2s;
}

.recruit-apply-btn:hover{
  background:#45aeb8;
  color:#fff;
  transform:translateY(-2px);
}


/* 画像1列 */

.recruit-gallery-row{
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:18px;
}

.recruit-gallery-row img{
  width:100%;
  height:auto;
  border-radius:10px;
  display:block;
}

/* スマホ */

@media (max-width:768px){

  .recruit-fixed-table th,
  .recruit-fixed-table td{
    padding:10px 12px;
    font-size:13px;
  }

  .recruit-fixed-table th{
    width:40%;
  }

  .recruit-apply-btn,
  .recruit-line-btn{
    width:100%;
    min-width:0;
    box-sizing:border-box;
    font-size:15px;
  }

}
/* ==========================================
   /top/recruitment/ 固定フッター
========================================== */

.page-recruitment .pm-fixed-reserve-footer{
  background: rgba(0,0,0,0.3) !important;
}

/* 画像は中央固定 */
.page-recruitment .pm-fixed-reserve-footer__wrap{
  max-width: 1100px;
  margin: 0 auto;
}
/* ==========================================
   WEB応募ボタン 下余白を広げる
========================================== */

.price-section a[href*="application"]{
  display: inline-block;
  margin-bottom: 40px; /* ← 好きな数値に変更OK */
}
/* ==========================================
   求人ギャラリー
========================================== */

.price-section img{
  border-radius: 0 !important;
}
/* ==========================================
   TOP 求人バナー（専用）
========================================== */

.pm-recruit-banners{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0;
}

.pm-recruit-banners a{
  display: block;
  margin: 0;
  padding: 0;
  line-height: 0;
}

.pm-recruit-banners img{
  width: 100%;
  height: auto;
  display: block;
}
/* /top/ 求人バナーの上下余白を消す */
.page-id-54 #recruit-female,
.page-id-54 #recruit-male{
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}

/* バナーを囲うブロックの余白も消す */
.page-id-54 #recruit-female,
.page-id-54 #recruit-male,
.page-id-54 #recruit-female,
.page-id-54 #recruit-male{
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.page-id-54 #recruit-female,
.page-id-54 #recruit-male{
  display: block !important;
}

/* 親の wp-block-group の余白を消す */
.page-id-54 .wp-block-group:has(#recruit-female),
.page-id-54 .wp-block-group:has(#recruit-male){
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* リンクと画像の隙間を消す */
.page-id-54 #recruit-female a,
.page-id-54 #recruit-male a{
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}

.page-id-54 #recruit-female img,
.page-id-54 #recruit-male img{
  display: block !important;
  margin: 0 !important;
  width: 100% !important;
  height: auto !important;
}
/* TOP 求人バナー専用 */
.page-id-54 .pm-recruit-banners{
  width: 100%;
  max-width: 1100px;
  margin: 0 auto !important;
  padding: 0 !important;
  line-height: 0;
}

.page-id-54 .pm-recruit-banners a{
  display: block;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0;
}

.page-id-54 .pm-recruit-banners img{
  display: block;
  width: 100%;
  height: auto;
  margin: 0 !important;
  border-radius: 0 !important;
}
/* TOP 求人バナー 少しだけ余白 */
.page-id-54 .pm-recruit-banners{
  margin: 24px auto !important; /* ← 上下だけ余白 */
}
/* キャスト画像ボタンは1個だけ残す */
#krc_cast_screens .button:nth-of-type(n+2),
#krc_cast_screens button:nth-of-type(n+2),
#krc_cast_screens input[type="button"]:nth-of-type(n+2),
#krc_cast_screens input[type="submit"]:nth-of-type(n+2){
    display:none !important;
}
.pm-cast-card-image{
    position:relative;
    overflow:hidden;
}

.pm-cast-card-image-badges{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    display:flex;
    z-index:2;
}

.pm-cast-card-image-badges.is-single .pm-cast-image-badge{
    width:100%;
}

.pm-cast-card-image-badges.is-double .pm-cast-image-badge{
    width:50%;
}

.pm-cast-image-badge{
    display:flex;
    align-items:center;
    justify-content:center;
	height:32px;
    color:#fff;
    font-size:13px;
    font-weight:700;
    line-height:1;
    background:rgba(252,73,103,.8);
    box-sizing:border-box;
}

.pm-cast-image-badge.is-today{
    background:rgba(252,73,103,.7);
}

.pm-cast-image-badge.is-new{
    background:rgba(87,195,205,.7);
}
.pm-home-girl-card{
    display:flex;
    gap:14px;
    text-decoration:none;
    color:#111;
    background:#fff;
    border:1px solid #eee;
    border-radius:10px;
    overflow:hidden;
    transition:.2s ease;
}

.pm-home-girl-card:hover{
    transform:translateY(-2px);
    box-shadow:0 8px 20px rgba(0,0,0,.08);
}

.pm-home-girl-image{
    width:42%;
    min-width:42%;
    background:#f7f7f7;
    position:relative;
    overflow:hidden;
}

.pm-home-girl-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.pm-home-girl-noimage{
    display:flex;
    align-items:center;
    justify-content:center;
    height:100%;
    min-height:220px;
    color:#999;
    font-size:12px;
}

.pm-home-girl-body{
    flex:1;
    padding:14px 14px 14px 0;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.pm-home-girl-name-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-bottom:8px;
}

.pm-home-girl-name{
    font-size:22px;
    font-weight:700;
    line-height:1.2;
}

.pm-home-girl-age{
    white-space:nowrap;
    font-size:18px;
}

.pm-home-girl-divider{
    width:100%;
    height:1px;
    background:#e8e8e8;
    margin:8px 0 10px;
}

.pm-home-girl-meta{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:6px;
    text-align:left;
    width:fit-content;
    margin:0 auto;
    font-size:18px;
    line-height:1.6;
    color:#222;
}

.pm-home-girl-height,
.pm-home-girl-size{
    display:block;
    text-align:left;
}

@media screen and (max-width: 767px){
    .pm-home-girl-card{
        gap:10px;
    }

    .pm-home-girl-image{
        width:38%;
        min-width:38%;
    }

    .pm-home-girl-body{
        padding:10px 10px 10px 0;
    }

    .pm-home-girl-name{
        font-size:20px;
    }

    .pm-home-girl-age{
        font-size:16px;
    }

    .pm-home-girl-meta{
        font-size:16px;
        gap:2px;
    }
}
/* ==========================================
   女の子カード本文 共通統一
   /top/ ・ /top/girls/
========================================== */

/* girls 一覧カード */
.pm-cast-card-body{
  padding:12px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}

.pm-cast-card-info-wrap{
  width:100%;
  max-width:100%;
  margin:0 auto;
  text-align:center;
}

.pm-cast-card-name-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:100%;
  margin:0;
  text-align:center;
  flex-wrap:nowrap;
}

.pm-cast-card-name-main{
  font-size:16px;
  font-weight:700;
  line-height:1.4;
  color:#333;
}

.pm-cast-card-age{
  font-size:13px;
  font-weight:700;
  color:#333;
  white-space:nowrap;
  margin:0;
  display:inline-block;
}

.pm-cast-card-divider{
  display:block;
  width:100%;
  max-width:220px;
  height:1px;
  background:#e5e5e5;
  margin:8px auto;
}

.pm-cast-card-meta-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  width:100%;
  text-align:center;
  white-space:nowrap;
  flex-wrap:nowrap;
}

.pm-cast-card-height,
.pm-cast-card-size{
  display:inline-block;
  font-size:13px;
  line-height:1.7;
  color:#555;
}

/* TOP 用カード */
.pm-home-girl-body{
  padding:12px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}

.pm-home-girl-info-wrap{
  width:100%;
  max-width:100%;
  margin:0 auto;
  text-align:center;
}

.pm-home-girl-name-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:100%;
  margin:0;
  text-align:center;
  flex-wrap:nowrap;
}

.pm-home-girl-name{
  font-size:16px;
  font-weight:700;
  line-height:1.4;
  color:#333;
  margin:0;
}

.pm-home-girl-age{
  font-size:13px;
  font-weight:700;
  color:#333;
  white-space:nowrap;
  margin:0;
  display:inline-block;
}

.pm-home-girl-divider{
  display:block;
  width:100%;
  max-width:220px;
  height:1px;
  background:#e5e5e5;
  margin:8px auto;
}

.pm-home-girl-meta{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  width:100%;
  text-align:center;
  white-space:nowrap;
  flex-wrap:nowrap;
  color:#555;
  font-size:13px;
  line-height:1.7;
}

.pm-home-girl-height,
.pm-home-girl-size{
  display:inline-block;
}

/* SP */
@media (max-width:768px){

  .pm-cast-card-body,
  .pm-home-girl-body{
    padding:8px;
  }

  .pm-cast-card-name-main,
  .pm-home-girl-name{
    font-size:13px;
  }

  .pm-cast-card-age,
  .pm-home-girl-age{
    font-size:11px;
  }

  .pm-cast-card-divider,
  .pm-home-girl-divider{
    max-width:160px;
    margin:6px auto;
  }

  .pm-cast-card-meta-row,
  .pm-home-girl-meta{
    font-size:10px;
    line-height:1.5;
    gap:4px;
    white-space:normal;
    flex-wrap:wrap;
  }

  .pm-cast-card-height,
  .pm-cast-card-size,
  .pm-home-girl-height,
  .pm-home-girl-size{
    font-size:10px;
  }
}
#girls .pm-home-girl-image{
  width:32% !important;
  min-width:32% !important;
}

#girls .pm-home-girl-body{
  padding:8px 10px 8px 0 !important;
}

#girls .pm-home-girl-meta{
  font-size:15px;
}
/* =================================
   TOP 女の子一覧 横1列固定
================================= */

#girls .pm-home-girls-slider-track{
  display:flex !important;
  flex-wrap:nowrap !important;
}

#girls .pm-home-girls-slide{
  flex:0 0 220px !important;
  max-width:220px !important;
}
/* 身長＋スリーサイズを1行にする */

#girls .pm-cast-card-meta-row{
  display:flex !important;
  flex-direction:row !important;
  align-items:center;
  justify-content:center;
  gap:8px;

  white-space:nowrap;
  flex-wrap:nowrap;
}

#girls .pm-cast-card-height,
#girls .pm-cast-card-size{
  display:inline !important;
}
#girls .pm-cast-card-meta-row{
  font-size:8px;
}
#schedule .pm-home-cast-divider{
  height: 1px;
  background: #e5e5e5;
  margin: 6px 10px 8px;
}

#schedule .pm-attendance-time{
  text-align: center;
  font-weight: 700;
  color: #57c3cd;
  font-size: 14px;
  line-height: 1.6;
  padding: 0 10px 10px;
}
