/* ============================================================
   VIP テーマ ページ別スタイル
   元の各HTMLに <style> として埋め込まれていたCSSを統合
   - ダークテーマ共通（CAST 一覧/詳細, INFO 一覧/詳細, 404）
   - body.system-page にスコープ限定したライトテーマ（SYSTEM ページ）
   ============================================================ */


/* ============================================================
   共通: Page Hero / Main / Container（ダークテーマ用）
   archive-cast.php, archive-info.php, single-info.php, 404.php で使用
   ============================================================ */
.page-hero{
  padding:36px 0 24px;
  text-align:center;
  background:
    radial-gradient(900px 400px at 50% 0%,rgba(201,168,106,.1),transparent 60%),
    linear-gradient(180deg,var(--bg),var(--bg2));
}
.page-hero .en{
  font-size:clamp(20px,3.5vw,32px);
  letter-spacing:.3em;
  font-family:'Noto Serif JP',serif;
  font-weight:600;
  color:var(--text);
}
.page-hero .ja{
  margin-top:4px;
  font-size:11px;letter-spacing:.2em;color:var(--muted);
}
.page-hero .divider{
  width:40px;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  margin:12px auto 0;
}

/* archive (cast/info), 404 用 main 背景 */
body.archive main,
body.error404 main{
  padding:56px 0 100px;
  background:linear-gradient(180deg,var(--bg2),var(--bg));
  min-height:60vh;
}

/* ============================================================
   Breadcrumb（cast 詳細 / info 詳細）
   ============================================================ */
.breadcrumb{
  width:min(var(--max),92vw);margin:0 auto;
  padding:16px 0;
  font-size:11px;color:var(--muted);letter-spacing:.1em;
  display:flex;align-items:center;gap:8px;
}
.breadcrumb a:hover{color:var(--gold);}
.breadcrumb .sep{color:var(--line);}


/* ============================================================
   CAST 一覧（archive-cast.php）
   ============================================================ */
.cast-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:2px;
}
.cast-card{
  position:relative;
  background:var(--bg2);
  overflow:hidden;
  cursor:pointer;
  display:block;
}
.cast-card:hover .cast-img img{
  transform:scale(1.06);
}
.cast-img{
  position:relative;
  aspect-ratio:3/4;
  overflow:hidden;
  background:#111;
}
.cast-img img{
  width:100%;height:100%;
  object-fit:cover;object-position:top center;
  transition:transform .6s cubic-bezier(.22,1,.36,1);
}
.cast-img .cast-no{
  position:absolute;top:12px;left:12px;
  font-size:10px;letter-spacing:.2em;
  color:rgba(255,255,255,.4);
  font-family:'Noto Serif JP',serif;
}
.cast-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.82));
  opacity:1;transition:opacity .4s;
  display:flex;align-items:flex-end;padding:20px;
}
.cast-overlay .more-btn{
  width:100%;text-align:center;
  padding:10px;
  border:1px solid rgba(201,168,106,.6);
  color:var(--gold);
  font-size:12px;letter-spacing:.22em;
  font-family:'Noto Serif JP',serif;
  background:rgba(0,0,0,.4);
}
.cast-body{
  padding:16px 18px 20px;
}
.cast-name{
  font-family:'Noto Serif JP',serif;
  font-size:17px;font-weight:600;
  letter-spacing:.1em;
  display:flex;align-items:baseline;gap:10px;
}
.cast-name-en{
  font-size:10px;letter-spacing:.22em;
  color:var(--muted);font-family:Inter,sans-serif;
  text-transform:uppercase;
}
.cast-meta{
  margin-top:10px;
  display:flex;flex-wrap:wrap;gap:6px 16px;
  font-size:11px;color:var(--muted);letter-spacing:.06em;
}
.cast-meta span{display:flex;align-items:center;gap:4px;}
.cast-meta .label{
  color:rgba(201,168,106,.7);
  letter-spacing:.1em;font-size:10px;
}
.cast-tag{
  margin-top:10px;
  display:flex;gap:6px;flex-wrap:wrap;
}
.cast-tag span{
  font-size:10px;
  padding:3px 9px;
  border:1px solid var(--line);
  color:var(--muted);
  letter-spacing:.1em;
}
@media(max-width:900px){
  .cast-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:500px){
  .cast-grid{grid-template-columns:repeat(2,1fr);}
}


/* ============================================================
   CAST 詳細（single-cast.php）
   ============================================================ */
body.single-cast main{
  padding:32px 0 80px;
  background:
    radial-gradient(1000px 600px at 80% 0%,rgba(201,168,106,.08),transparent 55%),
    linear-gradient(180deg,var(--bg),var(--bg2));
}
.detail-wrap{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:start;
}
.photo-slider{
  position:relative;
  background:#0a0a0a;
  border:1px solid rgba(255,255,255,.06);
  overflow:hidden;
}
.slider-track{
  display:flex;
  transition:transform .5s cubic-bezier(.22,1,.36,1);
}
.slide{
  min-width:100%;
  aspect-ratio:3/4;
  overflow:hidden;
  position:relative;
}
.slide img,
.slide video{
  width:100%;height:100%;
  object-fit:cover;object-position:top center;
}
.slide video{ background:#000; }
.slide .video-overlay{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.3);
  cursor:pointer;
  transition:opacity .3s;
  z-index:3;
}
.slide .video-overlay.is-hidden{ opacity:0;pointer-events:none; }
.slide .video-overlay .play-icon{
  width:60px;height:60px;
  border-radius:50%;
  background:rgba(0,0,0,.55);
  border:2px solid rgba(255,255,255,.5);
  display:flex;align-items:center;justify-content:center;
  transition:transform .3s, background .3s;
}
.slide .video-overlay:hover .play-icon{
  transform:scale(1.1);
  background:rgba(201,168,106,.4);
}
.slide .video-overlay .play-icon::after{
  content:'';
  display:block;
  width:0;height:0;
  border-style:solid;
  border-width:10px 0 10px 18px;
  border-color:transparent transparent transparent #fff;
  margin-left:4px;
}
.dot.is-video{
  border:1px solid rgba(201,168,106,.5);
  background:rgba(201,168,106,.15);
}
.dot.is-video.active{ background:var(--gold); }
.slider-btn{
  position:absolute;top:50%;transform:translateY(-50%);
  width:40px;height:40px;
  background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.15);
  color:var(--text);font-size:18px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:.25s;z-index:5;
  backdrop-filter:blur(4px);
}
.slider-btn:hover{background:rgba(201,168,106,.25);border-color:var(--gold);}
.slider-prev{left:12px;}
.slider-next{right:12px;}
.slider-dots{
  position:absolute;bottom:14px;left:50%;transform:translateX(-50%);
  display:flex;gap:7px;
}
.dot{
  width:5px;height:5px;border-radius:99px;
  background:rgba(255,255,255,.3);border:none;cursor:pointer;
  transition:.25s;padding:0;
}
.dot.active{background:var(--gold);width:18px;}

.profile-area{ padding:0; }
.cast-name-block{
  padding-bottom:24px;
  border-bottom:1px solid rgba(255,255,255,.07);
  margin-bottom:28px;
}
.name-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.name-group{ min-width:0; }
.name-ja{
  font-family:'Noto Serif JP',serif;
  font-size:clamp(28px,3.5vw,38px);
  font-weight:600;letter-spacing:.12em;
  line-height:1.1;
}
.name-en{
  margin-top:6px;
  font-size:11px;letter-spacing:.3em;
  color:var(--muted);text-transform:uppercase;
  font-family:Inter,sans-serif;
}
.cast-instagram{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  color:var(--gold);
  flex-shrink:0;
  text-decoration:none;
  transition:color .25s, transform .25s;
}
.cast-instagram svg{ width:26px; height:26px; }
.cast-instagram:hover{
  color:#e8c882;
  transform:translateY(-1px);
}
.name-tag{
  margin-top:12px;
  display:inline-flex;
  align-items:center;gap:6px;
}
.tag{
  display:inline-block;
  padding:3px 10px;
  font-size:10px;letter-spacing:.15em;
  border:1px solid var(--line);
  color:rgba(201,168,106,.75);
}
.profile-table{
  width:100%;border-collapse:collapse;
}
.profile-table tr{ border-bottom:1px solid rgba(255,255,255,.05); }
.profile-table tr:last-child{ border-bottom:none; }
.profile-table th{
  width:35%;
  padding:12px 0;
  font-size:11px;letter-spacing:.18em;
  color:rgba(201,168,106,.8);
  font-weight:400;font-family:'Noto Serif JP',serif;
  text-align:left;vertical-align:top;
}
.profile-table td{
  padding:12px 0;
  font-size:14px;color:var(--text);
  vertical-align:top;
}
.gold-rule{
  height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  margin:28px 0;
}
.shop-card{
  padding:20px;
  border:1px solid var(--line);
  background:linear-gradient(135deg,rgba(201,168,106,.06),rgba(0,0,0,.0));
}
.shop-card-name{
  font-family:'Noto Serif JP',serif;
  font-size:18px;font-weight:600;letter-spacing:.15em;
  margin-bottom:12px;
}
.shop-card-info{
  font-size:12px;color:var(--muted);line-height:1.9;
}
.shop-card-actions{
  margin-top:16px;
  display:flex;gap:10px;flex-wrap:wrap;
}
.reserve-btn{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:12px 14px;
  border:1px solid rgba(201,168,106,.45);
  border-radius:var(--radius);
  background:linear-gradient(180deg,rgba(201,168,106,.14),rgba(201,168,106,.04));
  color:var(--text);
  text-decoration:none;
  transition:background .25s, border-color .25s, transform .25s;
}
.reserve-btn:hover{
  background:linear-gradient(180deg,rgba(201,168,106,.24),rgba(201,168,106,.08));
  border-color:var(--gold);
  transform:translateY(-1px);
}
.reserve-btn-row{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.reserve-btn-icon{
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--gold);
  flex-shrink:0;
}
.reserve-btn .main{
  font-family:'Noto Serif JP',serif;
  font-size:14px;
  font-weight:600;
  letter-spacing:.12em;
}
.reserve-btn .badge{
  font-size:10px;
  letter-spacing:.1em;
  color:var(--gold);
  padding:1px 6px;
  border:1px solid rgba(201,168,106,.4);
  border-radius:2px;
}
@media(max-width:420px){
  .reserve-btn{padding:10px 10px;gap:5px;}
  .reserve-btn .main{font-size:13px;}
  .reserve-btn .badge{font-size:9px;}
}

.others{
  margin-top:80px;
  padding-top:48px;
  border-top:1px solid rgba(255,255,255,.06);
}
body.single-cast .section-head{
  display:block;text-align:center;margin-bottom:32px;
}
body.single-cast .section-head .en{
  font-size:10px;letter-spacing:.28em;color:var(--muted);text-transform:uppercase;
}
body.single-cast .section-head .ja{
  font-family:'Noto Serif JP',serif;
  font-size:18px;font-weight:600;letter-spacing:.14em;margin-top:4px;
}
body.single-cast .section-head .rule{
  width:50px;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  margin:14px auto 0;
}
.others-carousel{
  overflow:hidden;
  position:relative;
}
.others-track{
  display:flex;gap:3px;
  scroll-snap-type:x mandatory;
  overflow-x:auto;
  scrollbar-width:none;
  padding-bottom:2px;
}
.others-track::-webkit-scrollbar{display:none;}
.other-card{
  min-width:220px;max-width:220px;
  scroll-snap-align:start;
  flex-shrink:0;
  display:block;
  background:var(--bg2);
  border:1px solid rgba(255,255,255,.05);
  overflow:hidden;
  transition:.25s;
}
.other-card:hover{border-color:var(--line);transform:translateY(-2px);}
.other-card .photo{
  aspect-ratio:4/4;overflow:hidden;background:#111;
}
.other-card .photo img{
  width:100%;height:100%;object-fit:cover;object-position:top;
  transition:transform .5s;
}
.other-card:hover .photo img{transform:scale(1.05);}
.other-card .info{ padding:12px 14px; }
.other-card .info .oname{
  font-family:'Noto Serif JP',serif;font-size:14px;font-weight:600;
  letter-spacing:.1em;
}
.other-card .info .ometa{
  font-size:10px;color:var(--muted);margin-top:5px;letter-spacing:.06em;line-height:1.8;
}
.carousel-nav{
  display:flex;justify-content:center;gap:10px;margin-top:20px;
}
.carousel-btn{
  padding:8px 22px;
  background:transparent;border:1px solid rgba(255,255,255,.12);
  color:var(--muted);font-size:13px;cursor:pointer;transition:.25s;
}
.carousel-btn:hover{border-color:var(--gold);color:var(--text);}
@media(max-width:900px){
  .detail-wrap{grid-template-columns:1fr;gap:28px;}
  .others{margin-top:48px;}
  .other-card{min-width:170px;max-width:170px;}
}


/* ============================================================
   INFO 一覧（archive-info.php）
   ============================================================ */
.info-grid{
  display:flex;
  flex-direction:column;
  gap:20px;
}
.info-year-label{
  font-family:'Noto Serif JP',serif;
  font-size:14px;
  letter-spacing:.2em;
  color:var(--gold);
  padding:12px 0 8px;
  border-bottom:1px solid rgba(201,168,106,.2);
  margin-top:24px;
}
.info-year-label:first-child{margin-top:0;}
.info-card{
  display:flex;
  background:rgba(255,255,255,.02);
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius);
  overflow:hidden;
  transition:transform .3s, border-color .3s;
}
.info-card:hover{
  transform:translateY(-3px);
  border-color:rgba(201,168,106,.4);
}
.info-card .thumb{
  width:240px;
  min-height:160px;
  position:relative;
  overflow:hidden;
  flex-shrink:0;
}
.info-card .thumb img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}
.info-card:hover .thumb img{
  transform:scale(1.05);
}
.info-card .thumb.no-img{
  background:linear-gradient(135deg,#1a1610,#251f14);
  display:flex;align-items:center;justify-content:center;
}
.info-card .thumb.no-img::after{
  content:'';position:absolute;inset:0;
  background:url("data:image/svg+xml,%3Csvg width='40' height='40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 40L40 0M0 0l40 40' stroke='%23c9a86a' stroke-opacity='.06' stroke-width='1'/%3E%3C/svg%3E") repeat;
}
.info-card .cat{
  position:absolute;top:0;left:0;
  background:var(--gold);color:#000;
  font-size:10px;padding:4px 10px;
  font-weight:600;letter-spacing:.1em;
  z-index:2;
}
.info-card .body{
  flex:1;
  padding:22px 28px;
  display:flex;flex-direction:column;justify-content:center;
}
.info-card .body time{
  font-size:11px;letter-spacing:.12em;
  color:var(--muted);
  font-family:Inter,sans-serif;
}
.info-card .body h3{
  font-family:'Noto Serif JP',serif;
  font-size:16px;font-weight:600;
  letter-spacing:.08em;
  margin:8px 0 10px;
  line-height:1.6;
}
.info-card .body .excerpt{
  font-size:13px;
  color:var(--muted);
  line-height:1.8;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.info-card .body .read-more{
  margin-top:14px;
  font-size:11px;letter-spacing:.2em;
  color:var(--gold);
  font-family:'Noto Serif JP',serif;
  transition:color .25s;
}
.info-card:hover .body .read-more{
  color:#e8c882;
}
@media(max-width:700px){
  .info-card{flex-direction:column;}
  .info-card .thumb{width:100%;min-height:180px;}
  .info-card .body{padding:18px 20px;}
}


/* ============================================================
   INFO 詳細（single-info.php）
   ============================================================ */
body.single-info main{
  padding:32px 0 100px;
  background:
    radial-gradient(1000px 600px at 80% 0%,rgba(201,168,106,.08),transparent 55%),
    linear-gradient(180deg,var(--bg),var(--bg2));
  min-height:60vh;
}
.article-wrap{
  max-width:780px;
  margin:0 auto;
}
.article-header{
  margin-bottom:40px;
}
.article-meta{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:16px;
}
.article-meta time{
  font-size:12px;
  letter-spacing:.12em;
  color:var(--muted);
  font-family:Inter,sans-serif;
}
.article-meta .cat-tag{
  display:inline-block;
  font-size:10px;
  letter-spacing:.15em;
  font-weight:600;
  background:var(--gold);
  color:#000;
  padding:3px 10px;
}
.article-header h1{
  font-family:'Noto Serif JP',serif;
  font-size:clamp(22px,3.5vw,30px);
  font-weight:600;
  letter-spacing:.08em;
  line-height:1.6;
  margin:0;
  color:var(--text);
}
.article-hero{
  width:100%;
  aspect-ratio:16/9;
  border-radius:var(--radius);
  overflow:hidden;
  margin-bottom:40px;
  border:1px solid rgba(255,255,255,.06);
}
.article-hero img{
  width:100%;height:100%;
  object-fit:cover;
}
.article-body{
  font-size:15px;
  line-height:2;
  color:rgba(255,255,255,.78);
  letter-spacing:.04em;
}
.article-body h2{
  font-family:'Noto Serif JP',serif;
  font-size:20px;
  font-weight:600;
  letter-spacing:.1em;
  margin:48px 0 20px;
  padding-bottom:12px;
  border-bottom:1px solid rgba(201,168,106,.2);
  color:var(--text);
}
.article-body h3{
  font-family:'Noto Serif JP',serif;
  font-size:17px;
  font-weight:600;
  letter-spacing:.08em;
  margin:36px 0 16px;
  color:var(--gold);
}
.article-body p{ margin:0 0 24px; }
.article-body ul,
.article-body ol{
  margin:0 0 24px;
  padding:0 0 0 20px;
}
.article-body li{
  margin-bottom:8px;
  line-height:1.9;
}
.article-body strong{
  color:var(--text);
  font-weight:600;
}
.article-body .note{
  margin:32px 0;
  padding:20px 24px;
  border:1px solid rgba(201,168,106,.15);
  border-radius:var(--radius);
  background:rgba(201,168,106,.04);
  font-size:13px;
  color:var(--muted);
  line-height:2;
}
.article-body .note strong{
  display:block;
  font-size:12px;
  letter-spacing:.15em;
  color:var(--gold);
  margin-bottom:8px;
}
.article-nav{
  display:flex;
  justify-content:space-between;
  gap:20px;
}
.article-nav a{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 20px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius);
  background:rgba(255,255,255,.02);
  flex:1;
  transition:border-color .3s, transform .3s;
}
.article-nav a:hover{
  border-color:rgba(201,168,106,.35);
  transform:translateY(-2px);
}
.article-nav a .label{
  font-size:10px;
  letter-spacing:.2em;
  color:var(--muted);
  font-family:Inter,sans-serif;
}
.article-nav a .title{
  font-family:'Noto Serif JP',serif;
  font-size:13px;
  letter-spacing:.06em;
  color:var(--text);
  line-height:1.6;
}
.article-nav .next{text-align:right;}
.back-to-list{
  text-align:center;
  margin-top:40px;
}
.back-to-list a{
  display:inline-block;
  font-family:'Noto Serif JP',serif;
  font-size:12px;
  letter-spacing:.2em;
  color:var(--muted);
  padding:12px 32px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius);
  transition:border-color .3s, color .3s;
}
.back-to-list a:hover{
  border-color:var(--gold);
  color:var(--gold);
}
@media(max-width:600px){
  .article-nav{flex-direction:column;}
  .article-nav .next{text-align:left;}
}


/* ============================================================
   SYSTEM ページ（page-system.php）— body.system-page にスコープ限定
   ライトテーマ: 背景 #f5f0e6 / 文字 #1a1a1a
   ============================================================ */
body.system-page{
  background:#f5f0e6;
  color:#1a1a1a;
}
body.system-page .page-hero{
  padding:36px 0 24px;
  text-align:center;
  background:
    radial-gradient(900px 400px at 50% 0%,rgba(154,120,58,.12),transparent 60%),
    linear-gradient(180deg,#ede8dc,#f5f0e6);
}
body.system-page .page-hero .en{
  font-size:clamp(20px,3.5vw,32px);
  letter-spacing:.3em;
  font-family:'Noto Serif JP',serif;
  font-weight:600;
  color:#1a1a1a;
}
body.system-page .page-hero .ja{
  margin-top:4px;
  font-size:11px;letter-spacing:.2em;color:rgba(26,26,26,.5);
}
body.system-page .page-hero .divider{
  width:40px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(154,120,58,.5),transparent);
  margin:12px auto 0;
}
body.system-page main{
  padding:56px 0 100px;
  background:linear-gradient(180deg,#f5f0e6,#ede8dc);
  min-height:60vh;
}
body.system-page .price-table-wrap{
  max-width:600px;
  margin:0 auto;
}
body.system-page .price-table{
  width:100%;
  border-collapse:collapse;
  margin-bottom:24px;
}
body.system-page .price-table .table-head{
  font-family:'Noto Serif JP',serif;
  font-size:12px;
  letter-spacing:.2em;
  color:#9a783a;
  font-weight:600;
  text-align:left;
  padding:0 0 8px;
  border-bottom:1px solid rgba(154,120,58,.25);
}
body.system-page .price-table th{
  font-family:'Noto Serif JP',serif;
  font-size:15px;
  font-weight:600;
  letter-spacing:.1em;
  color:#1a1a1a;
  text-align:left;
  padding:14px 0;
  width:40%;
}
body.system-page .price-table td{
  font-size:14px;
  color:rgba(26,26,26,.55);
  padding:14px 0;
  letter-spacing:.06em;
}
body.system-page .price-table td.price{
  text-align:right;
  font-family:'Noto Serif JP',serif;
  font-size:clamp(18px,3vw,24px);
  font-weight:600;
  color:#2a2a2a;
  letter-spacing:.04em;
}
body.system-page .price-table tbody tr{
  border-bottom:1px solid rgba(154,120,58,.1);
}
body.system-page .price-table tbody tr:last-child{
  border-bottom:none;
}
body.system-page .tax-note{
  text-align:center;
  font-family:'Noto Serif JP',serif;
  font-size:16px;
  font-weight:600;
  letter-spacing:.2em;
  color:#9a783a;
  margin-top:8px;
  padding:16px 0;
  border-top:1px solid rgba(154,120,58,.2);
  border-bottom:1px solid rgba(154,120,58,.2);
}
body.system-page .free-drink{
  max-width:600px;
  margin:0 auto;
  text-align:center;
}
body.system-page .free-drink ul{
  list-style:none;
  margin:0;padding:0;
  font-size:15px;
  color:#1a1a1a;
  line-height:2.4;
  letter-spacing:.08em;
}
body.system-page .gold-rule{
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(154,120,58,.4),transparent);
  margin:56px 0;
}
body.system-page .sub-section-head{
  text-align:center;
  margin-bottom:36px;
}
body.system-page .sub-section-head .en{
  font-size:10px;letter-spacing:.28em;
  color:rgba(26,26,26,.45);text-transform:uppercase;
}
body.system-page .sub-section-head h3{
  font-family:'Noto Serif JP',serif;
  font-size:20px;font-weight:600;
  letter-spacing:.14em;
  margin:6px 0 0;
  color:#1a1a1a;
}
body.system-page .sub-section-head .rule{
  width:50px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(154,120,58,.5),transparent);
  margin:14px auto 0;
}
body.system-page .system-notes{
  margin-top:56px;
  padding:24px 28px;
}
body.system-page .system-notes h4{
  font-family:'Noto Serif JP',serif;
  font-size:13px;font-weight:600;
  letter-spacing:.12em;
  color:#9a783a;
  margin:0 0 12px;
}
body.system-page .system-notes ul{
  margin:0;padding:0 0 0 18px;
  font-size:12px;
  color:rgba(26,26,26,.55);
  line-height:2;
}
body.system-page .system-cta{
  margin-top:56px;
  text-align:center;
}
body.system-page .system-cta p{
  font-size:14px;
  color:rgba(26,26,26,.55);
  margin-bottom:20px;
  letter-spacing:.06em;
}
body.system-page .system-cta .actions{
  display:flex;justify-content:center;
  gap:12px;flex-wrap:wrap;
}
body.system-page .system-cta .btn{
  border-color:rgba(154,120,58,.35);
  color:#1a1a1a;
}
body.system-page .system-cta .btn:hover{
  border-color:#9a783a;
}
body.system-page .system-cta .btn.primary{
  background:linear-gradient(135deg,#9a783a,#c9a86a);
  border-color:transparent;
  color:#fff;
}
body.system-page .system-cta .btn.primary:hover{
  background:linear-gradient(135deg,#886a30,#b8975c);
}
@media(max-width:500px){
  body.system-page .price-table th{font-size:14px;}
  body.system-page .price-table td.price{font-size:18px;}
}
/* ============================================================
   Contact Form 7 出力の整形
   - CF7 が自動挿入する <p> マージン抑制
   - <span class="wpcf7-form-control-wrap"> ラッパーをブロック化
   - ラジオ/チェックボックスを横並びに整形
   - バリデーションメッセージのカラー
   ============================================================ */

/* CF7 が自動挿入する <p> のマージンを詰める（ラベル⇔入力欄の余白を統一） */
#reserve .wpcf7-form p,
.wpcf7-form p {
  margin: 0 0 14px;
}
#reserve .wpcf7-form br,
.wpcf7-form br { display: none; }

/* CF7 のラッパー span を block 化（input/textarea 幅100%が効くように） */
.wpcf7-form-control-wrap {
  display: block;
  width: 100%;
  margin-top: 6px;
}

/* 入力欄（CF7出力）— 既存スタイルを補強 */
.wpcf7-form input[type=text],
.wpcf7-form input[type=tel],
.wpcf7-form input[type=email],
.wpcf7-form input[type=date],
.wpcf7-form input[type=number],
.wpcf7-form textarea,
.wpcf7-form select {
  width: 100%;
  display: block;
}

/* ===== ラジオ・チェックボックス整形 ===== */
.cf7-radio,
.wpcf7-form-control.wpcf7-radio,
.wpcf7-form-control.wpcf7-checkbox {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 6px;
  width: 100%;
}
.wpcf7-list-item {
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center;
}
.wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 14px;
  margin: 0;
  white-space: nowrap;     /* テキストを縦書き化させない */
}
.wpcf7-list-item-label {
  white-space: nowrap;
  word-break: keep-all;
}
.wpcf7-list-item input[type=radio],
.wpcf7-list-item input[type=checkbox] {
  accent-color: var(--gold);
  width: auto;
  margin: 0;
  flex-shrink: 0;
}

/* ===== バリデーション・送信状態 ===== */
.wpcf7-not-valid-tip {
  color: #ff8888 !important;
  font-size: 12px;
  margin-top: 4px;
  display: block;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  border-color: #ff8888 !important;
  color: #ff8888;
}
.wpcf7 form.sent .wpcf7-response-output {
  border-color: var(--gold) !important;
  color: var(--gold);
}
.wpcf7-spinner {
  background-color: var(--gold) !important;
}

/* 送信ボタン下の form-actions が CF7 では <p> でラップされる場合の対策 */
#reserve .wpcf7-form .form-actions {
  margin-top: 18px;
}
#reserve .wpcf7-form .form-actions p {
  margin: 0;
}