/*
Theme Name: Iyashi
Description: 癒したくてグループ用オリジナルテーマ（マルチサイト対応）
Version: 0.46.29
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: iyashi
*/

/* ---------- Tokens ---------- */
:root {
	--bg: #fff8fa;
	--surface: #ffffff;
	--ink: #4a3a44;
	--ink-soft: #6a5862;
	--muted: #8e7c86;
	--line: #f3dfe6;
	--accent: #d42f5f;
	--accent-ink: #ffffff;
	--accent-soft: #fdecf1;
	--accent-light: #e63660;
	--gold: #d58aa3;
	--deep: #5a3b4a;
	--deep-ink: #fff4f7;
	--hero-a: #fde7ee;
	--hero-b: #f4e8fb;

	--font-sans: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Hiragino Sans", sans-serif;
	--font-serif: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;

	--wrap: 1080px;
	--gutter: 16px;
	--radius: 16px;
	--shadow: 0 6px 24px rgba(201, 86, 123, 0.10);
}

/* ---------- Base ---------- */
*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--font-sans);
	font-size: 15px;
	line-height: 1.85;
	letter-spacing: 0.02em;
	padding-bottom: 72px; /* mobile CTA bar */
}

@media (min-width: 900px) {
	body { font-size: 16px; padding-bottom: 0; }
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }

h1, h2, h3, h4 {
	font-family: var(--font-serif);
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: 0.06em;
	margin: 0 0 0.6em;
}

.wrap {
	width: 100%;
	max-width: var(--wrap);
	margin: 0 auto;
	padding: 0 var(--gutter);
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
}

/* ---------- Header ---------- */
.topbar {
	background: #f7d9e3;
	color: #8a4f66;
	font-size: 12px;
}
.topbar .wrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding-top: 6px;
	padding-bottom: 6px;
}
.topbar a { color: #8a4f66; }
.topbar__note { opacity: 0.8; }

.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--line);
}
.site-header .wrap {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 64px;
	gap: 16px;
}
.brand { display: flex; flex-direction: column; color: var(--ink); line-height: 1.3; }
.brand:hover { text-decoration: none; }
.brand__group { font-size: 11px; color: var(--muted); letter-spacing: 0.15em; }
.brand__name { font-family: var(--font-serif); font-size: 20px; font-weight: 700; letter-spacing: 0.06em; color: var(--accent); }

.nav-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px; height: 44px;
	border: 0;
	border-radius: 12px;
	background: var(--accent-soft);
	cursor: pointer;
}
.nav-toggle span,
.nav-toggle span::before,
.nav-toggle span::after {
	display: block;
	width: 18px; height: 2px;
	background: var(--accent);
	position: relative;
	content: "";
}
.nav-toggle span::before { position: absolute; top: -6px; }
.nav-toggle span::after { position: absolute; top: 6px; }

.primary-nav { display: none; }
.primary-nav.is-open {
	display: block;
	position: absolute;
	top: 100%; left: 0; right: 0;
	background: var(--surface);
	border-bottom: 1px solid var(--line);
	box-shadow: var(--shadow);
}
.primary-nav ul { list-style: none; margin: 0; padding: 8px var(--gutter) 16px; }
.primary-nav li a {
	display: block;
	padding: 12px 4px;
	color: var(--ink);
	border-bottom: 1px solid var(--line);
}
.primary-nav .sub-menu { padding: 0 0 0 16px; }
.primary-nav .sub-menu a { font-size: 14px; color: var(--ink-soft); }

.header-cta { display: none; }

@media (min-width: 900px) {
	.nav-toggle { display: none; }
	.primary-nav,
	.primary-nav.is-open {
		display: block;
		position: static;
		background: none;
		border: 0;
		box-shadow: none;
	}
	.primary-nav > ul { display: flex; gap: 4px; padding: 0; }
	.primary-nav li { position: relative; }
	.primary-nav li a { border: 0; padding: 8px 12px; font-size: 14px; border-radius: 8px; }
	.primary-nav li a:hover { background: var(--accent-soft); text-decoration: none; }
	.primary-nav .sub-menu {
		display: none;
		position: absolute;
		top: 100%; left: 0;
		min-width: 200px;
		background: var(--surface);
		border: 1px solid var(--line);
		border-radius: 10px;
		box-shadow: var(--shadow);
		padding: 6px;
		list-style: none;
	}
	.primary-nav li:hover > .sub-menu,
	.primary-nav li:focus-within > .sub-menu { display: block; }
	.header-cta { display: flex; gap: 8px; }
}

/* ---------- Buttons ---------- */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 44px;
	padding: 10px 20px;
	border-radius: 999px;
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.06em;
	border: 1px solid transparent;
	cursor: pointer;
	text-decoration: none !important;
	transition: opacity 0.15s;
}
.btn:hover { opacity: 0.88; }
.btn--primary { background: var(--accent); color: var(--accent-ink); }
.btn--outline { background: transparent; color: var(--accent); border-color: var(--accent); }
.btn--light { background: #fff; color: var(--accent); border-color: #f0c3d2; }
.btn--block { width: 100%; }

/* ---------- Mobile CTA bar ---------- */
.cta-bar {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 60;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	padding: 8px var(--gutter) calc(8px + env(safe-area-inset-bottom));
	background: rgba(255, 255, 255, 0.96);
	border-top: 1px solid var(--line);
}
@media (min-width: 900px) { .cta-bar { display: none; } }

/* ---------- Hero ---------- */
.hero {
	background:
		radial-gradient(600px 300px at 85% 0%, rgba(255, 255, 255, 0.7), transparent 60%),
		linear-gradient(160deg, var(--hero-a) 0%, var(--hero-b) 100%);
	color: var(--ink);
	padding: 56px 0 48px;
	text-align: center;
}
.hero__eyebrow { font-size: 12px; letter-spacing: 0.3em; color: var(--gold); margin-bottom: 12px; }
.hero__title { font-size: clamp(26px, 6vw, 40px); margin-bottom: 12px; color: #b4506f; }
.hero__lead { color: var(--ink-soft); max-width: 36em; margin: 0 auto 24px; }
.hero__meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 20px; font-size: 13px; color: var(--ink-soft); margin-bottom: 24px; }
.hero__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }

/* ---------- Sections ---------- */
.section { padding: 48px 0; }
.section--alt { background: var(--surface); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.section__head { text-align: center; margin-bottom: 28px; }
.section__en { display: block; font-size: 11px; letter-spacing: 0.3em; color: var(--gold); margin-bottom: 4px; }
.section__title { font-size: clamp(20px, 4.5vw, 26px); margin: 0; }

/* Quick links */
.quick {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
}
@media (min-width: 700px) { .quick { grid-template-columns: repeat(3, 1fr); gap: 14px; } }
.quick a {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 18px 16px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	color: var(--ink);
	box-shadow: 0 2px 8px rgba(224, 122, 155, 0.08);
	transition: border-color 0.15s, transform 0.15s;
}
.quick a:hover { text-decoration: none; border-color: var(--accent); transform: translateY(-1px); }
.quick a:last-child:nth-child(odd) { grid-column: 1 / -1; }
@media (min-width: 700px) {
	.quick a:last-child:nth-child(odd) { grid-column: auto; }
	.quick a:last-child:nth-child(3n+1) { grid-column: 1 / -1; }
}
.schedule-request { margin: 24px 0 8px; font-size: 14px; }
.quick__en { font-size: 10px; letter-spacing: 0.25em; color: var(--gold); }
.quick__ja { font-family: var(--font-serif); font-weight: 700; font-size: 16px; }

/* Placeholder (連携待ち) */
.placeholder {
	border: 1px dashed var(--line);
	border-radius: var(--radius);
	background: var(--surface);
	padding: 28px 20px;
	text-align: center;
	color: var(--muted);
	font-size: 14px;
}

/* Store cards (network top) */
.stores {
	display: grid;
	gap: 14px;
	grid-template-columns: 1fr;
}
@media (min-width: 700px) { .stores { grid-template-columns: repeat(2, 1fr); } }
.store-card {
	display: block;
	padding: 22px 20px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	color: var(--ink);
	box-shadow: var(--shadow);
}
.store-card:hover { text-decoration: none; border-color: var(--accent); }
.store-card__name { font-family: var(--font-serif); font-size: 19px; font-weight: 700; color: var(--accent); margin-bottom: 4px; }
.store-card__meta { font-size: 13px; color: var(--muted); }
.store-card__go { margin-top: 12px; font-size: 13px; color: var(--accent); font-weight: 600; }

/* News list */
.news { list-style: none; margin: 0; padding: 0; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.news li + li { border-top: 1px solid var(--line); }
.news a { display: flex; gap: 14px; padding: 14px 18px; color: var(--ink); }
.news time { color: var(--muted); font-size: 13px; white-space: nowrap; }

/* ---------- Page / entry ---------- */
.page-head {
	padding: 40px 0 28px;
	text-align: center;
	border-bottom: 1px solid var(--line);
	background: var(--surface);
}
.page-head__title { font-size: clamp(22px, 5vw, 30px); margin: 0; }
.breadcrumbs { font-size: 12px; color: var(--muted); margin-bottom: 8px; }
.breadcrumbs a { color: var(--muted); }

.entry { padding: 36px 0 56px; }
.entry .wrap { max-width: 820px; }
.entry h2 {
	font-size: 21px;
	margin-top: 2.2em;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--line);
	position: relative;
}
.entry h2::after {
	content: "";
	position: absolute;
	left: 0; bottom: -1px;
	width: 48px; height: 2px;
	background: var(--accent-light);
}
.entry h3 { font-size: 17px; margin-top: 1.8em; }
.entry > .wrap > :first-child { margin-top: 0; }
.entry ul, .entry ol { padding-left: 1.4em; }
.entry li { margin: 0.3em 0; }
.entry img { max-width: 100%; height: auto; }
.entry__eyecatch { margin: 0 0 1.4em; }
.entry__eyecatch img { display: block; width: 100%; border-radius: 8px; }

.entry table {
	width: 100%;
	border-collapse: collapse;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	overflow: hidden;
	margin: 1em 0 1.6em;
	font-size: 14px;
}
.entry th, .entry td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; }
.entry thead th { background: var(--accent-soft); font-weight: 600; }
.entry tbody tr:last-child td, .entry tbody tr:last-child th { border-bottom: 0; }
.entry td.price, .entry .price { font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 600; }

.note {
	background: var(--accent-soft);
	border-left: 3px solid var(--accent-light);
	border-radius: 8px;
	padding: 14px 16px;
	font-size: 14px;
	margin: 1em 0 1.6em;
}
.note > :last-child { margin-bottom: 0; }

/* ---------- Footer ---------- */
.site-footer {
	background: var(--deep);
	color: var(--deep-ink);
	padding: 44px 0 28px;
	font-size: 14px;
}
.site-footer a { color: var(--deep-ink); }
.footer-grid { display: grid; gap: 28px; }
@media (min-width: 800px) { .footer-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); } }
.footer-menu a { text-decoration: none; }
.footer-menu a::before { content: "›"; margin-right: 6px; opacity: 0.6; }
.footer-menu a:hover { text-decoration: underline; }
.footer-title { font-family: var(--font-serif); font-size: 15px; letter-spacing: 0.15em; color: #f7b8cc; margin-bottom: 10px; }
.footer-groups { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 16px; }
.footer-legal { margin-top: 32px; padding-top: 18px; border-top: 1px solid rgba(255, 244, 247, 0.18); font-size: 12px; color: rgba(255, 244, 247, 0.75); }

/* ---------- Age gate ---------- */
.age-gate {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: none;
	align-items: center;
	justify-content: center;
	padding: var(--gutter);
	background: rgba(90, 59, 74, 0.88);
	backdrop-filter: blur(6px);
}
.age-gate.is-visible { display: flex; }
.age-gate__box {
	width: 100%;
	max-width: 420px;
	background: var(--surface);
	border-radius: 18px;
	padding: 32px 24px;
	text-align: center;
	box-shadow: var(--shadow);
}
.age-gate__title { font-size: 20px; margin-bottom: 8px; }
.age-gate__text { font-size: 13px; color: var(--muted); margin-bottom: 22px; }
.age-gate__actions { display: grid; gap: 10px; }

/* WordPress block table overrides */
.entry .wp-block-table { margin: 1em 0 1.6em; }
.entry .wp-block-table table { margin: 0; }
.entry .wp-block-table thead { border-bottom: 0; }
.entry .wp-block-table td,
.entry .wp-block-table th { border: 0; border-bottom: 1px solid var(--line); }
.entry .wp-block-table thead th { color: #8a4f66; }

/* =================================================================
   v0.3 レイアウト（写真メイン・リボン見出し・下部アイコンメニュー）
   ================================================================= */
:root {
	--ribbon-a: #d8bd84;
	--ribbon-b: #b8975a;
	--header-h: 60px;
}

body { padding-bottom: 76px; }
@media (min-width: 900px) { body { padding-bottom: 0; } }

/* Header */
.site-header { background: #fff; backdrop-filter: none; box-shadow: 0 2px 10px rgba(201, 86, 123, 0.08); }
.site-header__inner {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: stretch;
	min-height: var(--header-h);
	max-width: var(--wrap);
	margin: 0 auto;
	position: relative;
}
.brand { justify-content: center; padding: 6px 12px; }
.brand__logo { max-height: 48px; width: auto; }
.brand__name { font-size: 17px; }
.header-info {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background: var(--accent-soft);
	font-size: 12px;
	line-height: 1.4;
	padding: 4px 8px;
	text-align: center;
}
.header-info__area { font-weight: 700; color: var(--ink); }
.header-info__hours { color: var(--accent); font-weight: 700; font-size: 13px; }
.nav-toggle {
	width: auto;
	height: auto;
	min-width: 72px;
	border-radius: 0;
	background: linear-gradient(160deg, var(--accent-light), var(--accent));
	color: #fff;
	font-family: var(--font-sans);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.08em;
	padding: 0 14px;
}
.primary-nav.is-open { top: 100%; }
.primary-nav__cta { display: grid; gap: 8px; padding: 0 var(--gutter) 16px; }

@media (min-width: 900px) {
	.site-header__inner { grid-template-columns: auto auto 1fr; gap: 16px; padding: 0 var(--gutter); }
	.header-info { border-radius: 12px; margin: 8px 0; padding: 4px 14px; }
	.primary-nav { display: flex !important; align-items: center; justify-content: flex-end; gap: 12px; }
	.primary-nav__cta { display: flex; padding: 0; }
	.primary-nav__cta .btn { width: auto; min-height: 38px; padding: 6px 14px; font-size: 13px; }
}

/* スマホ：エリア・営業時間を2行に収める（癒したくてのみ。ロゴとmenuボタンを少し詰める） */
@media (max-width: 899.98px) {
	.brand-iyashi .brand { padding: 6px 8px; min-width: 0; }
	.brand-iyashi .brand__row { display: flex; align-items: center; min-width: 0; max-width: 100%; }
	.brand-iyashi .brand__row > * { flex-shrink: 0; }
	.brand-iyashi .brand__row .brand__logo { flex: 0 1 auto; min-width: 0; max-height: 40px; object-fit: contain; object-position: left center; }
	.brand-iyashi .header-info { padding: 4px 6px; line-height: 1.35; min-width: 0; }
	.brand-iyashi .header-info__area,
	.brand-iyashi .header-info__hours { white-space: nowrap; letter-spacing: 0; }
	.brand-iyashi .header-info__area { font-size: 13px; }
	.brand-iyashi .header-info__hours { font-size: 14px; }
	.brand-iyashi .nav-toggle { min-width: 56px; padding: 0 10px; font-size: 13px; }
}
/* スマホ：エリア・営業時間の欄の幅を全店舗でそろえる（エリア名が長い店は文字を少し小さく）→ ロゴの大きさが店舗でそろう */
@media (max-width: 899.98px) {
	.site-header__inner { grid-template-columns: minmax(0, 1fr) auto auto; }
	.site-header__inner:has(.header-info) { grid-template-columns: minmax(0, 1fr) 106px auto; }
	.header-info { overflow: hidden; }
	.brand-iyashi .header-info--l .header-info__area, .brand-kairaku .header-info--l .header-info__area { font-size: 11.5px; }
	.brand-iyashi .header-info--xl .header-info__area, .brand-kairaku .header-info--xl .header-info__area { font-size: 10.5px; letter-spacing: -0.02em; }
}
/* 快楽：横長ロゴを残りの幅に合わせて縮め、エリア・営業時間を2行に */
@media (max-width: 899.98px) {
	.brand-kairaku .brand { min-width: 0; padding: 8px 12px; }
	.brand-kairaku .brand__logo { max-height: none; max-width: 86%; height: auto; }
	.brand-kairaku .header-info { padding: 4px 6px; line-height: 1.35; }
	.brand-kairaku .header-info__area,
	.brand-kairaku .header-info__hours { white-space: nowrap; letter-spacing: 0; }
	.brand-kairaku .header-info__area { font-size: 13px; }
	.brand-kairaku .header-info__hours { font-size: 14px; }
	.brand-kairaku .nav-toggle { min-width: 56px; padding: 0 10px; font-size: 13px; }
}
@media (max-width: 359.98px) {
	.brand-iyashi .header-info__area { font-size: 11px; }
	.brand-iyashi .header-info__hours { font-size: 12px; }
}

/* Main visual */
.mv {
	position: relative;
	overflow: hidden;
	background: linear-gradient(160deg, var(--hero-a), var(--hero-b));
	aspect-ratio: 4 / 5;
	max-height: 86vh;
}
@media (min-width: 900px) { .mv { aspect-ratio: 16 / 7; } }
.mv--empty { aspect-ratio: auto; min-height: 340px; display: flex; align-items: center; justify-content: center; }
.mv__slides { position: absolute; inset: 0; }
.mv__slide {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity 1.2s ease;
}
.mv__slide.is-active { opacity: 1; }
.mv__copy {
	position: relative;
	z-index: 2;
	text-align: center;
	padding: 40px 20px;
}
.mv:not(.mv--empty) .mv__copy {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	padding: 60px 20px 28px;
	background: linear-gradient(to top, rgba(255, 248, 250, 0.92), rgba(255, 248, 250, 0));
}
.mv__shop { margin: 0 0 6px; font-size: clamp(24px, 6vw, 40px); font-weight: 700; color: #d42f5f; letter-spacing: 0.06em; }
.mv__catch { margin: 0; font-size: 14px; color: var(--ink-soft); line-height: 1.9; }

/* Ticker */
.ticker {
	overflow: hidden;
	background: #fff;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	white-space: nowrap;
	font-size: 14px;
}
.ticker__track { display: inline-flex; gap: 48px; padding: 10px 0; animation: iyashi-ticker 28s linear infinite; }
.ticker__item { color: var(--ink); }
.ticker__item::before { content: "♥"; color: var(--accent-light); margin-right: 8px; }
.ticker:hover .ticker__track { animation-play-state: paused; }
@keyframes iyashi-ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .ticker__track { animation: none; } }

/* Sections */
.section--tight { padding: 24px 0 8px; }
.section--pink { background: var(--accent-soft); }

/* Ribbon heading */
.ribbon {
	position: relative;
	margin: 0 auto 24px;
	max-width: 420px;
	padding: 10px 24px;
	text-align: center;
	color: #fff;
	background: linear-gradient(180deg, var(--ribbon-a), var(--ribbon-b));
	clip-path: polygon(0 0, 100% 0, 96% 50%, 100% 100%, 0 100%, 4% 50%);
	box-shadow: 0 4px 12px rgba(184, 151, 90, 0.25);
}
.ribbon__en { display: block; font-size: 20px; font-weight: 700; letter-spacing: 0.12em; text-shadow: 0 1px 0 rgba(0, 0, 0, 0.12); }
.ribbon__ja { display: block; font-size: 11px; letter-spacing: 0.15em; opacity: 0.95; }

/* Events */
.events { display: grid; gap: 14px; }
@media (min-width: 700px) { .events { grid-template-columns: repeat(2, 1fr); } }
.event {
	display: block;
	background: #fff;
	border-radius: var(--radius);
	overflow: hidden;
	box-shadow: var(--shadow);
	color: var(--ink);
}
.event:hover { text-decoration: none; }
.event__img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.event__title { display: block; padding: 12px 14px; font-weight: 700; font-size: 14px; }
/* スマホ：イベント・割引は正方形のカードを横スライド（2026-10-27） */
@media (max-width: 699px) {
	.events { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 10px; scrollbar-width: none; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
	.events::-webkit-scrollbar { display: none; }
	.event { flex: 0 0 78%; scroll-snap-align: start; }
	.events > .event:only-child { flex-basis: 100%; }
	.event__img { aspect-ratio: 1 / 1; }
}

/* Casts */
.casts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
@media (min-width: 700px) { .casts { grid-template-columns: repeat(4, 1fr); } }
.cast { background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.cast__photo { aspect-ratio: 3 / 4; background: linear-gradient(160deg, var(--hero-a), var(--hero-b)); }
.cast__body { display: flex; flex-direction: column; padding: 8px 10px 12px; text-align: center; }
.cast__name { font-weight: 700; font-size: 16px; }
.cast__time { font-size: 15px; color: var(--accent); font-weight: 700; }
.cast__next { align-self: center; display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; padding: 3px 10px 3px 4px; border-radius: 999px; background: var(--deep); color: var(--deep-ink); font-size: 14px; font-weight: 700; line-height: 1.4; }
.cast__next b { padding: 1px 6px; border-radius: 999px; background: var(--deep-ink); color: var(--deep); font-size: 12px; }
.cast--empty { opacity: 0.6; }
.casts__note { font-size: 14px; color: var(--muted); text-align: center; margin: 12px 0 0; }

/* Bottom tab bar */
.cta-bar { display: none; }
.tabbar {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 60;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	align-items: end;
	background: rgba(255, 255, 255, 0.97);
	border-top: 1px solid var(--line);
	padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
	box-shadow: 0 -4px 14px rgba(201, 86, 123, 0.08);
}
.tabbar__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	color: var(--ink);
	font-size: 11px;
	font-weight: 700;
	padding: 4px 0;
}
.tabbar__item:hover { text-decoration: none; }
.tabbar__item .icon { color: var(--accent); }
.tabbar__item--main {
	margin-top: -18px;
	background: linear-gradient(160deg, var(--accent-light), var(--accent));
	color: #fff;
	border-radius: 14px;
	padding: 10px 0 8px;
	box-shadow: 0 4px 12px rgba(201, 86, 123, 0.35);
}
.tabbar__item--main .icon { color: #fff; }
@media (min-width: 900px) { .tabbar { display: none; } }

/* Logo */
.brand__row { display: flex; align-items: flex-end; gap: 6px; }
.brand__logo { height: 44px; width: auto; }
.brand__branch { font-weight: 700; color: var(--accent); font-size: 14px; letter-spacing: 0.08em; padding-bottom: 4px; white-space: nowrap; }
@media (min-width: 900px) { .brand__logo { height: 52px; } .brand__branch { font-size: 16px; } }

/* Main visual with images: keep each photo's own shape (no cropping) */
.mv:not(.mv--empty) { aspect-ratio: auto; max-height: none; background: #fff; }
.mv:not(.mv--empty) .mv__slides { position: relative; inset: auto; max-width: 1200px; margin: 0 auto; }
.mv:not(.mv--empty) .mv__slide { position: absolute; top: 0; left: 0; height: auto; object-fit: contain; }
.mv:not(.mv--empty) .mv__slide:first-child { position: relative; }

/* Desktop: keep the main visual within ~70% of the screen height so content below peeks in */
.mv:not(.mv--empty) { background: linear-gradient(160deg, var(--hero-a), var(--hero-b)); }
@media (min-width: 900px) {
	.mv:not(.mv--empty) { padding: 20px 0; }
	.mv:not(.mv--empty) .mv__slides {
		max-width: min(960px, calc(70vh * 1.5));
		border-radius: 18px;
		overflow: hidden;
		box-shadow: 0 10px 30px rgba(212, 47, 95, 0.15);
	}
}

/* Hotel pages: maps and wide tables */
.map-embed { margin: 1em 0 1.6em; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); background: #fff; }
.map-embed iframe { display: block; width: 100%; aspect-ratio: 4 / 3; border: 0; }
@media (min-width: 700px) { .map-embed iframe { aspect-ratio: 16 / 9; } }
.entry .wp-block-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.entry .wp-block-table td a { word-break: break-all; }
.entry .wp-block-table td:first-child { font-weight: 700; }

/* Tables with 4+ columns: keep readable width and scroll sideways on phones */
.entry .wp-block-table table:has(tr > :nth-child(4)) { min-width: 640px; }
.entry .wp-block-table th { white-space: nowrap; }
.entry .wp-block-table:has(table tr > :nth-child(4))::after {
	content: "← 横にスクロールできます →";
	display: block;
	text-align: center;
	font-size: 11px;
	color: var(--muted);
	padding: 6px 0 0;
}
@media (min-width: 760px) {
	.entry .wp-block-table:has(table tr > :nth-child(4))::after { display: none; }
}

/* =================================================================
   v0.4 オリジナル見出し（ロゴのつる＋ハートがモチーフ）
   ================================================================= */
:root { --font-en: "Cormorant Garamond", "Times New Roman", serif; }

.ribbon { display: none; }
.sec-title {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0;
	margin: 0 auto 26px;
	text-align: center;
	color: var(--accent);
}
.sec-title__en {
	font-family: var(--font-en);
	font-style: italic;
	font-weight: 600;
	font-size: clamp(30px, 7vw, 40px);
	line-height: 1.1;
	letter-spacing: 0.04em;
	color: var(--accent);
}
.sec-title__ja {
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.25em;
	color: var(--ink-soft);
	margin-top: 4px;
}
.sec-title__vine { margin-top: 6px; color: var(--accent-light); }

/* English labels elsewhere use the same voice */
.quick__en, .section__en, .hero__eyebrow {
	font-family: var(--font-en);
	font-style: italic;
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.06em;
	color: var(--accent-light);
}

/* Ticker with a fixed NEWS label */
.ticker { display: flex; align-items: stretch; padding: 0; }
.ticker__label {
	flex: none;
	display: flex;
	align-items: center;
	padding: 0 14px;
	background: var(--accent);
	color: #fff;
	font-family: var(--font-en);
	font-style: italic;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 0.08em;
	border-radius: 0 999px 999px 0;
}
.ticker__viewport { flex: 1; overflow: hidden; }
.ticker__item::before { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--accent-light); margin-right: 10px; vertical-align: middle; }

/* Pink band: soft petal-like dots instead of a flat color */
.section--pink {
	background:
		radial-gradient(circle at 12% 20%, rgba(230, 54, 96, 0.06) 0 40px, transparent 41px),
		radial-gradient(circle at 88% 70%, rgba(230, 54, 96, 0.05) 0 60px, transparent 61px),
		var(--accent-soft);
}

/* =================================================================
   Brand: 快楽M性感倶楽部（紺 × コーラルピンク／角ゴシック）
   ================================================================= */
body.brand-kairaku {
	--bg: #f7f8fa;
	--surface: #ffffff;
	--ink: #1b2030;
	--ink-soft: #3f4659;
	--muted: #6b7286;
	--line: #e3e6ee;
	--accent: #d63f60;
	--accent-light: #f0607e;
	--accent-soft: #fdeef1;
	--accent-ink: #ffffff;
	--gold: #f0607e;
	--deep: #14213d;
	--deep-ink: #eef1f7;
	--navy: #14213d;
	--navy-2: #1c2c4f;
	--hero-a: #14213d;
	--hero-b: #1c2c4f;
	--font-sans: "Zen Kaku Gothic New", "Hiragino Sans", "Hiragino Kaku Gothic ProN", sans-serif;
	--font-serif: "Zen Kaku Gothic New", "Hiragino Sans", sans-serif;
	--font-en: "Poppins", "Helvetica Neue", Arial, sans-serif;
	--radius: 12px;
	--shadow: 0 4px 16px rgba(20, 33, 61, 0.10);
	letter-spacing: 0.03em;
}

/* Header: navy bar */
.brand-kairaku .site-header { background: var(--navy); box-shadow: 0 2px 12px rgba(20, 33, 61, 0.25); }
.brand-kairaku .brand { color: #fff; }
.brand-kairaku .logo-k { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.brand-kairaku .logo-k__mark {
	font-family: var(--font-en);
	font-weight: 800;
	font-size: 20px;
	line-height: 1;
	color: #fff;
	background: var(--accent-light);
	border-radius: 8px;
	padding: 5px 8px 4px;
}
.brand-kairaku .logo-k__text { font-weight: 700; font-size: 17px; letter-spacing: 0.06em; color: #fff; }
.brand-kairaku .brand__row--kairaku { align-items: center; gap: 8px; }
.brand-kairaku .brand__branch { color: var(--accent-light); padding-bottom: 0; font-size: 13px; }
.brand-kairaku .header-info { background: var(--navy-2); }
.brand-kairaku .header-info__area { color: #fff; }
.brand-kairaku .header-info__hours { color: var(--accent-light); }
.brand-kairaku .nav-toggle {
	background: transparent;
	border-left: 1px solid rgba(255, 255, 255, 0.18);
	color: #fff;
	font-family: var(--font-en);
}
.brand-kairaku .primary-nav.is-open { background: var(--navy); }
.brand-kairaku .primary-nav li a { color: #fff; border-color: rgba(255, 255, 255, 0.12); }
.brand-kairaku .primary-nav .sub-menu a { color: #c9d1e3; }
@media (min-width: 900px) {
	.brand-kairaku .primary-nav li a:hover { background: rgba(255, 255, 255, 0.08); }
	.brand-kairaku .primary-nav .sub-menu { background: var(--navy); border-color: rgba(255, 255, 255, 0.12); }
	.brand-kairaku .header-info { margin: 10px 0; border-radius: 10px; }
}
@media (max-width: 420px) {
	.brand-kairaku .logo-k__text { font-size: 14px; }
	.brand-kairaku .logo-k__mark { font-size: 17px; padding: 4px 7px 3px; }
}

/* Buttons */
.brand-kairaku .btn--primary { background: var(--accent-light); color: #fff; }
.brand-kairaku .btn--outline { color: var(--accent); border-color: var(--accent-light); }
.brand-kairaku .primary-nav__cta .btn--outline,
.brand-kairaku .mv .btn--outline { color: #fff; border-color: rgba(255, 255, 255, 0.8); }

/* Main visual: navy with a soft coral glow */
.brand-kairaku .mv { background: linear-gradient(170deg, var(--navy) 0%, var(--navy-2) 100%); }
.brand-kairaku .mv--empty { position: relative; }
.brand-kairaku .mv--empty::after {
	content: "";
	position: absolute;
	right: -60px; top: -60px;
	width: 240px; height: 240px;
	border-radius: 50%;
	background: var(--accent-light);
	opacity: 0.14;
}
.brand-kairaku .mv__shop { color: #fff; font-weight: 700; }
.brand-kairaku .mv__catch { color: #c9d1e3; }
.brand-kairaku .mv:not(.mv--empty) .mv__copy { background: linear-gradient(to top, rgba(20, 33, 61, 0.92), rgba(20, 33, 61, 0)); }
.brand-kairaku .mv:not(.mv--empty) .mv__catch { color: #fff; }

/* Ticker */
.brand-kairaku .ticker__label { background: var(--navy); font-family: var(--font-en); font-style: normal; font-weight: 700; font-size: 13px; letter-spacing: 0.12em; }
.brand-kairaku .ticker__item::before { background: var(--accent-light); }

/* Section titles: bold uppercase English + short coral bar (no vine) */
.brand-kairaku .sec-title__vine { display: none; }
.brand-kairaku .sec-title__en {
	font-family: var(--font-en);
	font-style: normal;
	font-weight: 800;
	font-size: clamp(22px, 5.5vw, 30px);
	letter-spacing: 0.12em;
	color: var(--navy);
}
.brand-kairaku .sec-title__ja { color: var(--accent); }
.brand-kairaku .sec-title::after {
	content: "";
	width: 32px; height: 3px;
	border-radius: 2px;
	background: var(--accent-light);
	margin-top: 8px;
}
.brand-kairaku .quick__en,
.brand-kairaku .section__en,
.brand-kairaku .hero__eyebrow { font-family: var(--font-en); font-style: normal; font-weight: 700; font-size: 10px; letter-spacing: 0.18em; color: var(--accent); }
.brand-kairaku .quick a { border-left: 3px solid var(--accent-light); box-shadow: 0 1px 6px rgba(20, 33, 61, 0.08); }
.brand-kairaku .section--pink { background: #eef1f7; }

/* Content */
.brand-kairaku .page-head { background: var(--navy); border-bottom: 0; }
.brand-kairaku .page-head__title { color: #fff; }
.brand-kairaku .page-head .breadcrumbs, .brand-kairaku .page-head .breadcrumbs a { color: #c9d1e3; }
.brand-kairaku .entry h2::after { background: var(--accent-light); }
.brand-kairaku .entry .wp-block-table thead th { color: var(--navy); background: #eef1f7; }
.brand-kairaku .note { border-left-color: var(--accent-light); }
.brand-kairaku .cast__photo { background: linear-gradient(160deg, #dfe4ee, #f3e3e8); }

/* Bottom tab bar & footer */
.brand-kairaku .tabbar { background: var(--navy); border-top: 0; box-shadow: 0 -4px 14px rgba(20, 33, 61, 0.25); }
.brand-kairaku .tabbar__item { color: #fff; }
.brand-kairaku .tabbar__item .icon { color: var(--accent-light); }
.brand-kairaku .tabbar__item--main .icon { color: #fff; } /* 電話するボタンの受話器（ピンク地に白） */
.brand-kairaku .tabbar__item--main { background: var(--accent-light); box-shadow: 0 4px 12px rgba(240, 96, 126, 0.4); }
.brand-kairaku .site-footer { background: #0f1a31; }
.brand-kairaku .footer-title { font-family: var(--font-en); color: var(--accent-light); letter-spacing: 0.2em; }
.brand-kairaku .age-gate { background: rgba(20, 33, 61, 0.9); }

/* ---------- Header: medium widths (900–1359px) use the menu button ---------- */
@media (min-width: 900px) {
	.primary-nav li a,
	.primary-nav__cta .btn { white-space: nowrap; }
}
@media (min-width: 900px) and (max-width: 1359.98px) {
	.site-header__inner { grid-template-columns: auto auto 1fr auto; }
	.header-info { justify-self: start; }
	.nav-toggle { display: inline-flex; grid-column: 4; }
	.primary-nav { display: none !important; }
	.primary-nav.is-open {
		display: block !important;
		position: absolute;
		top: 100%; left: 0; right: 0;
		background: var(--surface);
		border-bottom: 1px solid var(--line);
		box-shadow: var(--shadow);
	}
	.primary-nav.is-open > ul { display: block; padding: 8px var(--gutter) 16px; max-width: var(--wrap); margin: 0 auto; }
	.primary-nav.is-open li a { padding: 12px 4px; font-size: 15px; border-radius: 0; border-bottom: 1px solid var(--line); }
	.primary-nav.is-open .sub-menu {
		display: block;
		position: static;
		min-width: 0;
		border: 0;
		box-shadow: none;
		background: none;
		padding: 0 0 0 16px;
	}
	.primary-nav.is-open .primary-nav__cta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 0 var(--gutter) 16px; max-width: var(--wrap); margin: 0 auto; }
	.primary-nav.is-open .primary-nav__cta .btn { width: 100%; min-height: 44px; font-size: 14px; }
	.brand-kairaku .primary-nav.is-open li a { border-color: rgba(255, 255, 255, 0.12); }
}
@media (min-width: 1360px) {
	.site-header__inner { max-width: none; }
	.primary-nav li a { padding: 8px 10px; font-size: 13.5px; }
}

/* Group stores in the menu */
.primary-nav .menu-item-group > a { font-weight: 700; }
.primary-nav .sub-menu .current-menu-item > a { color: var(--accent); }
.brand-kairaku .primary-nav .sub-menu .current-menu-item > a { color: var(--accent-light); }
@media (min-width: 1360px) {
	.primary-nav .menu-item-group > .sub-menu { left: auto; right: 0; }
}

/* Long menus: scroll inside the open menu */
.primary-nav.is-open {
	max-height: calc(100vh - var(--header-h, 60px));
	max-height: calc(100dvh - var(--header-h, 60px));
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}
@media (min-width: 1360px) {
	.primary-nav.is-open { max-height: none; overflow: visible; }
}

/* ---------- Cast cards / schedule / profile (CS3) ---------- */
a.cast { display: block; color: inherit; text-decoration: none; transition: transform 0.15s; }
a.cast:hover { transform: translateY(-2px); text-decoration: none; }
.cast__photo { position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.cast__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* サムネイルは少し寄せる（上の端を固定して1.25倍＝頭は切れず、左右と下を切る） */
.cast .cast__photo img { object-position: 50% 0; transform: scale(1.25); transform-origin: 50% 0; }
.cast__nophoto { font-family: var(--font-en, sans-serif); font-size: 12px; letter-spacing: 0.2em; color: rgba(255, 255, 255, 0.85); }
.brand-kairaku .cast__nophoto { color: #8a93a8; }
.cast__badge { position: absolute; left: 8px; top: 8px; font-size: 13px; font-weight: 700; padding: 3px 8px; border-radius: 999px; background: #fff; color: var(--accent); }
.cast__badge--new { background: var(--accent); color: #fff; }
.profile__main { position: relative; }
.cast__newicon { position: absolute; left: 6px; top: 6px; width: clamp(44px, 30%, 64px); line-height: 0; color: var(--accent); filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.3)); pointer-events: none; }
.cast__newicon svg { display: block; width: 100%; height: auto; }
/* 「写真NG」用の画像の上に重ねる文字（画像のファイル名が photo-ng…） */
.cast__ng {
	position: absolute;
	left: 50%;
	top: 46%;
	transform: translate(-50%, -50%);
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	padding: 10px 14px;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.72);
	backdrop-filter: blur(2px);
	color: var(--accent);
	text-align: center;
	white-space: nowrap;
	pointer-events: none;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
}
.cast__ng b { font-family: var(--font-serif); font-size: clamp(15px, 4.6vw, 20px); letter-spacing: 0.12em; line-height: 1.2; }
.cast__ng small { font-size: clamp(10px, 3vw, 12px); letter-spacing: 0.2em; color: var(--ink-soft); }
.brand-kairaku .cast__ng { background: rgba(20, 33, 61, 0.72); color: #fff; }
.brand-kairaku .cast__ng small { color: var(--accent-light); }
.profile__main .cast__ng { padding: 16px 26px; }
.profile__main .cast__ng b { font-size: 26px; }
.profile__main .cast__ng small { font-size: 14px; }
@media (min-width: 700px) { .cast__ng b { font-size: 18px; } }

/* 割引コースの帯（スタッフ画面で選ぶ） */
.cast__promo {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	padding: 6px 4px 5px;
	background: linear-gradient(90deg, rgba(232, 77, 96, 0.92), rgba(244, 128, 108, 0.92));
	color: #fff;
	font-size: clamp(11px, 3.2vw, 14px);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-align: center;
	line-height: 1.3;
	pointer-events: none;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.18);
}
.cast__promo::before { content: "★ "; font-size: 0.85em; }
.cast__promo--waribiki { background: linear-gradient(90deg, rgba(230, 120, 40, 0.92), rgba(244, 170, 70, 0.92)); }
.brand-kairaku .cast__promo--gekiwari { background: linear-gradient(90deg, rgba(214, 63, 96, 0.94), rgba(240, 96, 126, 0.94)); }
.has-promo .cast__badge--now, .has-promo .cast__badge--end { bottom: 34px; }
.profile__main { position: relative; }
.profile__main .cast__promo { font-size: 16px; padding: 9px 6px 8px; border-radius: 0 0 var(--radius) var(--radius); }
@media (min-width: 700px) { .cast__promo { font-size: 13px; } }
.profile__main .cast__newicon { left: 12px; top: 12px; width: clamp(64px, 22%, 96px); }
.cast__badge--now { top: auto; bottom: 8px; background: #2fa36b; color: #fff; }
.cast__badge--end { top: auto; bottom: 8px; background: rgba(0, 0, 0, 0.55); color: #fff; }
.sched__tabs { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 6px; margin-bottom: 16px; scrollbar-width: thin; }
.sched__tab { flex: 0 0 auto; border: 1px solid var(--line); background: #fff; color: var(--ink); border-radius: 999px; padding: 8px 14px; font-size: 15px; font-weight: 700; cursor: pointer; }
.sched__tab.is-active { background: var(--accent); border-color: var(--accent); color: #fff; }
.brand-kairaku .sched__tab.is-active { background: var(--navy); border-color: var(--navy); }
.profile { display: grid; gap: 24px; }
@media (min-width: 760px) { .profile { grid-template-columns: 2fr 3fr; align-items: start; } }
.profile__photo img, .profile__photo .cast__photo { width: 100%; height: auto; border-radius: var(--radius); aspect-ratio: 3 / 4; object-fit: cover; }
.profile__catch { margin: 6px 0 0; color: var(--accent); font-weight: 700; }
.profile__table { width: 100%; border-collapse: collapse; margin-bottom: 20px; }
.profile__table th, .profile__table td { border-bottom: 1px solid var(--line); padding: 10px 8px; text-align: left; }
.profile__table th { width: 8em; color: var(--muted); font-weight: 600; }
.profile__h { font-size: 16px; margin: 0 0 10px; }
.profile__shift { list-style: none; margin: 0 0 20px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; }
.profile__shift li { display: flex; justify-content: space-between; gap: 8px; border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; font-size: 15px; }
.profile__shift strong { color: var(--accent); }
.profile__shift li { flex-wrap: wrap; align-items: center; }
.profile__next { flex-basis: 100%; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 3px 8px 3px 4px; border-radius: 999px; background: var(--deep); color: var(--deep-ink); font-style: normal; font-size: 12px; font-weight: 700; }
.profile__next b { padding: 1px 6px; border-radius: 999px; background: var(--deep-ink); color: var(--deep); font-size: 10px; }
.profile__next--now { background: #2fa36b; color: #fff; padding: 3px 8px; }
.profile__next--end { background: rgba(0, 0, 0, 0.55); color: #fff; padding: 3px 8px; }

/* ---------- Reviews ---------- */
.reviews { display: grid; gap: 14px; margin-bottom: 24px; }
.review { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 16px 18px; }
.review__cast { display: flex; align-items: center; gap: 10px; font-weight: 700; margin-bottom: 8px; }
.review__cast img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.review__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; font-size: 13px; color: var(--muted); margin-bottom: 8px; }
.review__stars { color: #f0a500; letter-spacing: 1px; font-size: 15px; }
.review__stars-off { color: #ddd; }
.review__who { color: var(--ink); font-weight: 600; }
.review__body p { margin: 0 0 0.6em; line-height: 1.8; }
.review__body p:last-child { margin-bottom: 0; }
.review-filter { font-weight: 700; }
.review-filter a { font-weight: 400; font-size: 13px; margin-left: 8px; }
.review-pager { display: flex; justify-content: center; align-items: center; gap: 12px; margin: 8px 0 32px; }
.review-links { display: flex; flex-wrap: wrap; gap: 8px; }
.review-form { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 20px; margin-top: 24px; }
.review-form__title { font-size: 18px; margin: 0 0 8px; }
.review-form__lead { font-size: 13px; color: var(--muted); }
.review-form label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 4px; }
.review-form input[type="text"], .review-form input[type="date"], .review-form select, .review-form textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; font: inherit; background: #fff; }
.review-form .req { font-size: 11px; color: #fff; background: var(--accent); border-radius: 4px; padding: 1px 6px; margin-left: 4px; font-weight: 700; }
.review-form__agree label { font-weight: 400; font-size: 13px; }
.review-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.review-form__stars { border: 0; padding: 0; margin: 0 0 14px; display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 2px; }
.review-form__stars legend { width: 100%; font-weight: 600; font-size: 14px; margin-bottom: 4px; }
.review-form__stars input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.review-form__stars label { font-size: 30px; color: #ddd; cursor: pointer; margin: 0; line-height: 1; }
.review-form__stars input:checked ~ label, .review-form__stars label:hover, .review-form__stars label:hover ~ label { color: #f0a500; }
.review-form__stars input:focus-visible + label { outline: 2px solid var(--accent); outline-offset: 2px; }
.review-form__msg { padding: 12px 14px; border-radius: 8px; font-size: 14px; }
.review-form__msg--ok { background: #e8f6ee; color: #1f6e43; }
.review-form__msg--ng { background: #fdecec; color: #a12a2a; }
.brand-kairaku .review-form .req { background: var(--accent-light); }

/* ---------- Photo diary ---------- */
.diaries { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 20px; }
@media (min-width: 700px) { .diaries { grid-template-columns: repeat(4, 1fr); } }
.diary-card { display: block; background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); color: inherit; text-decoration: none !important; }
.diary-card__img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; background: linear-gradient(160deg, var(--hero-a), var(--hero-b)); }
.diary-card__body { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px 12px; }
.diary-card__name { font-size: 12px; color: var(--accent); font-weight: 700; }
.diary-card__title { font-size: 14px; font-weight: 700; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.diary-card time { font-size: 11px; color: var(--muted); }
.diary-meta { display: flex; gap: 12px; justify-content: center; font-size: 14px; color: var(--muted); margin: 6px 0 0; }
.diary-single { max-width: 720px; }
.diary-photos { display: grid; gap: 10px; margin-bottom: 16px; }
.diary-photos img { width: 100%; height: auto; border-radius: var(--radius); }
.diary-text p { line-height: 1.9; }
.brand-kairaku .diary-card__name { color: var(--accent-light); }

/* ---------- Ranking / profile photos (v0.11) ---------- */
.cast__rank { position: absolute; right: 8px; top: 8px; min-width: 40px; padding: 4px 9px; border-radius: 999px; background: rgba(0, 0, 0, 0.6); color: #fff; font-weight: 700; font-size: 13px; text-align: center; line-height: 1.3; }
.cast__rank--1 { background: #c9a227; font-size: 15px; }
.cast__rank--2 { background: #8f9aa6; font-size: 14px; }
.cast__rank--3 { background: #b06a3b; font-size: 14px; }
.ranking__note { margin: 0 0 18px; font-size: 14px; }
.profile__thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin-top: 8px; }
.profile__thumb { padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; background: none; cursor: pointer; }
.profile__thumb img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; border-radius: 6px; }
.profile__thumb.is-active { border-color: var(--accent); }

/* ---------- PC（900px以上）：ヘッダーのメニューは「グループ店舗」だけ ---------- */
@media (min-width: 900px) {
	.site-header__inner { grid-template-columns: auto auto 1fr !important; }
	.nav-toggle { display: none !important; }
	.primary-nav,
	.primary-nav.is-open {
		display: flex !important;
		position: static !important;
		align-items: center;
		justify-content: flex-end;
		gap: 12px;
		background: none !important;
		border: 0 !important;
		box-shadow: none !important;
		max-height: none;
		overflow: visible;
	}
	.primary-nav > ul,
	.primary-nav.is-open > ul { display: flex !important; padding: 0 !important; margin: 0; max-width: none; }
	.primary-nav > ul > li:not(.menu-item-group) { display: none; }
	.primary-nav .menu-item-group > a { padding: 8px 14px; font-size: 14px; border: 0; border-radius: 8px; }
	.primary-nav .menu-item-group > a::after { content: "▾"; margin-left: 6px; font-size: 11px; }
	.primary-nav .menu-item-group > .sub-menu,
	.primary-nav.is-open .menu-item-group > .sub-menu {
		display: none;
		position: absolute;
		top: 100%;
		right: 0;
		left: auto;
		min-width: 240px;
		background: var(--surface);
		border: 1px solid var(--line);
		border-radius: 10px;
		box-shadow: var(--shadow);
		padding: 6px;
		z-index: 50;
	}
	.primary-nav .menu-item-group:hover > .sub-menu,
	.primary-nav .menu-item-group:focus-within > .sub-menu { display: block; }
	.primary-nav .menu-item-group .sub-menu a { padding: 8px 12px; font-size: 14px; border: 0; border-radius: 6px; }
	.brand-kairaku .primary-nav .menu-item-group > .sub-menu { background: var(--navy); border-color: rgba(255, 255, 255, 0.12); }
	.primary-nav__cta,
	.primary-nav.is-open .primary-nav__cta { display: flex !important; gap: 8px; padding: 0 !important; max-width: none; margin: 0; }
	.primary-nav__cta .btn,
	.primary-nav.is-open .primary-nav__cta .btn { width: auto; min-height: 38px; padding: 6px 14px; font-size: 13px; }
}

/* ---------- 癒したくてグループトップ：メインビジュアル＋エリアマップ ---------- */
.gt { padding: 14px 12px 8px; }
.gt__card {
	position: relative;
	max-width: 1100px;
	margin: 0 auto;
	min-height: min(82svh, 760px);
	border-radius: 28px;
	overflow: hidden;
	background: #3a2230 var(--gt-bg, none) center / cover no-repeat;
	background-image: var(--gt-bg, radial-gradient(circle at 80% 15%, rgba(255, 255, 255, 0.35) 0, rgba(255, 255, 255, 0) 32%), radial-gradient(circle at 12% 70%, rgba(255, 210, 225, 0.45) 0, rgba(255, 210, 225, 0) 38%), linear-gradient(160deg, #f0b8cb 0%, #c46f93 48%, #6e3a5f 100%));
	box-shadow: 0 18px 48px rgba(120, 40, 80, 0.25);
	display: flex;
	align-items: flex-end;
	isolation: isolate;
}
.gt__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(60, 20, 45, 0.05) 0%, rgba(60, 20, 45, 0.25) 45%, rgba(50, 15, 38, 0.82) 100%); }
.gt__words { position: absolute; inset: 0; margin: 0; padding: 0; list-style: none; pointer-events: none; }
.gt__word {
	position: absolute;
	writing-mode: vertical-rl;
	color: #fff;
	font-size: clamp(13px, 1.6vw, 17px);
	font-weight: 600;
	letter-spacing: 0.35em;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.45);
	opacity: 0;
	animation: gt-word 1.4s ease forwards;
}
.gt__word--1 { left: 7%; top: 8%; animation-delay: 0.2s; }
.gt__word--2 { left: 15%; top: 18%; animation-delay: 0.5s; }
.gt__word--3 { right: 16%; top: 7%; animation-delay: 0.8s; }
.gt__word--4 { right: 8%; top: 20%; animation-delay: 1.1s; }
.gt__word--5 { right: 24%; top: 26%; animation-delay: 1.4s; }
@keyframes gt-word { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .gt__word { animation: none; opacity: 1; } }
@media (max-width: 599px) { .gt__word--2, .gt__word--5 { display: none; } }
.gt__body { width: 100%; padding: 28px 22px 26px; text-align: center; color: #fff; }
.gt__eyebrow { margin: 0 0 6px; font-family: var(--font-en); font-size: 12px; letter-spacing: 0.4em; opacity: 0.9; }
.gt__logo { margin: 0 auto 10px; display: inline-block; background: rgba(255, 255, 255, 0.92); border-radius: 18px; padding: 10px 22px; }
.gt__logo img { width: min(300px, 62vw); height: auto; }
.gt__lead { max-width: 560px; margin: 0 auto 18px; font-size: 14px; line-height: 1.9; text-shadow: 0 1px 6px rgba(0, 0, 0, 0.4); }
.gt__actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; align-items: stretch; }
.gt__enter {
	display: inline-flex; flex-direction: column; align-items: center; justify-content: center;
	min-width: 230px; padding: 12px 28px; border: 0; border-radius: 999px; cursor: pointer;
	background: linear-gradient(135deg, var(--accent), #e86d93); color: #fff;
	box-shadow: 0 8px 22px rgba(212, 47, 95, 0.45); font: inherit;
	transition: transform 0.15s, box-shadow 0.15s;
}
.gt__enter:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(212, 47, 95, 0.5); }
.gt__enter-en { font-family: var(--font-en); font-size: 20px; letter-spacing: 0.35em; line-height: 1.2; padding-left: 0.35em; }
.gt__enter-ja { font-size: 11px; letter-spacing: 0.1em; opacity: 0.95; }
.gt__sub { display: inline-flex; align-items: center; padding: 10px 22px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.8); color: #fff; font-size: 14px; text-decoration: none !important; backdrop-filter: blur(4px); }
.gt__sub:hover { background: rgba(255, 255, 255, 0.15); }
.gt__note { margin: 14px 0 0; font-size: 11px; opacity: 0.85; }
.gt__note a { color: #fff; text-decoration: underline; margin-left: 4px; }

.areamap { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(40, 15, 32, 0.6); backdrop-filter: blur(3px); }
.areamap[hidden] { display: none; }
.areamap__box { position: relative; width: min(640px, 100%); max-height: calc(100svh - 32px); overflow-y: auto; background: #fff; border-radius: 26px; padding: 26px 18px 18px; box-shadow: 0 24px 60px rgba(0, 0, 0, 0.3); animation: am-in 0.25s ease; }
@keyframes am-in { from { opacity: 0; transform: translateY(12px) scale(0.98); } to { opacity: 1; transform: none; } }
.areamap__close { position: absolute; right: 14px; top: 10px; width: 40px; height: 40px; border: 0; background: none; font-size: 28px; line-height: 1; color: var(--ink); cursor: pointer; }
.areamap__title { margin: 0; text-align: center; font-family: var(--font-en); font-size: 18px; letter-spacing: 0.6em; padding-left: 0.6em; color: var(--accent); }
.areamap__sub { margin: 2px 0 14px; text-align: center; font-size: 13px; color: var(--ink-soft, #8a7a84); }
.areamap__map { position: relative; aspect-ratio: 400 / 260; }
.areamap__svg { display: block; width: 100%; height: 100%; }
.areamap__line { fill: none; stroke: var(--accent); stroke-width: 3; stroke-linecap: round; opacity: 0.55; }
.areamap__bay { font-size: 12px; fill: #7ea3c4; letter-spacing: 0.3em; }
.areamap__pref { font-size: 11px; fill: #c9a9bb; letter-spacing: 0.3em; }
.areamap__pin { position: absolute; transform: translate(-50%, -7px); display: flex; flex-direction: column; align-items: center; gap: 6px; text-decoration: none !important; z-index: 1; }
.admin-bar .areamap { padding-top: 56px; }
.areamap__dot { width: 14px; height: 14px; border-radius: 50%; background: var(--accent); border: 3px solid #fff; box-shadow: 0 0 0 0 rgba(212, 47, 95, 0.5); animation: am-pulse 2s infinite; }
@keyframes am-pulse { 0% { box-shadow: 0 0 0 0 rgba(212, 47, 95, 0.45); } 70% { box-shadow: 0 0 0 12px rgba(212, 47, 95, 0); } 100% { box-shadow: 0 0 0 0 rgba(212, 47, 95, 0); } }
@media (prefers-reduced-motion: reduce) { .areamap__dot { animation: none; } }
.areamap__btn { white-space: nowrap; padding: 6px 14px; border-radius: 999px; background: #fff; border: 1px solid #f0d3de; box-shadow: 0 4px 12px rgba(201, 86, 123, 0.18); color: var(--ink); font-size: 14px; font-weight: 600; letter-spacing: 0.1em; transition: background 0.15s, color 0.15s; }
.areamap__btn span { color: var(--accent); font-size: 11px; }
.areamap__pin:hover .areamap__btn { background: var(--accent); color: #fff; border-color: var(--accent); }
.areamap__pin:hover .areamap__btn span { color: #fff; }
.areamap__pin--up { flex-direction: column-reverse; transform: translate(-50%, calc(-100% + 7px)); }
@media (max-width: 480px) {
	.areamap__btn { padding: 5px 11px; font-size: 13px; letter-spacing: 0.06em; }
	.areamap__pin { gap: 4px; }
}
.areamap__list { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 8px; }
@media (min-width: 560px) { .areamap__list { grid-template-columns: 1fr 1fr; } }
.areamap__list a { display: flex; flex-direction: column; padding: 10px 14px; border-radius: 14px; background: var(--accent-soft); color: var(--ink); text-decoration: none !important; }
.areamap__list b { font-size: 14px; }
.areamap__list span { font-size: 12px; color: var(--ink-soft, #8a7a84); }
.areamap__list a:hover { outline: 2px solid var(--accent); }

/* グループトップ：写真を使うとき */
.gt__card--photo { background-color: #f7e6ec; }
.gt__card--photo .gt__word { text-shadow: 0 0 2px rgba(110, 30, 70, 0.95), 0 0 10px rgba(110, 30, 70, 0.8), 0 2px 14px rgba(80, 20, 50, 0.6); }
.gt__card--photo .gt__shade { background: linear-gradient(180deg, rgba(90, 30, 60, 0) 0%, rgba(90, 30, 60, 0) 42%, rgba(86, 28, 58, 0.55) 70%, rgba(62, 18, 44, 0.88) 100%); }
@media (min-width: 900px) {
	/* PC：写真は16:9でそのまま全部見せ、ロゴ・ボタンは写真の下の帯に並べる */
	.gt__card--photo { display: block; min-height: 0; background-size: 100% auto; background-position: center top; background-color: #5a2342; }
	.gt__card--photo::before { content: ""; display: block; aspect-ratio: 16 / 9; }
	.gt__card--photo .gt__shade { display: none; }
	.gt__card--photo .gt__body {
		display: grid;
		grid-template-columns: auto 1fr auto;
		grid-template-areas: "logo lead actions" "note note note";
		align-items: center;
		gap: 10px 28px;
		padding: 22px 34px 18px;
		text-align: left;
		background: linear-gradient(120deg, #8a3a62 0%, #5a2342 100%);
	}
	.gt__card--photo .gt__eyebrow { display: none; }
	.gt__card--photo .gt__logo { grid-area: logo; margin: 0; padding: 8px 16px; }
	.gt__card--photo .gt__logo img { width: 210px; }
	.gt__card--photo .gt__lead { grid-area: lead; margin: 0; text-shadow: none; }
	.gt__card--photo .gt__actions { grid-area: actions; flex-wrap: nowrap; }
	.gt__card--photo .gt__note { grid-area: note; margin: 4px 0 0; text-align: center; }
}
@media (max-width: 899.98px) {
	.gt__card--photo { background-image: var(--gt-bg-sp, var(--gt-bg)); background-position: center top; min-height: min(92svh, 820px); }
}
@media (min-width: 900px) {
	/* PC：顔と写真の中のキャッチコピーに重ならないよう、言葉は写真の左右の端に寄せる */
	.gt__card--photo .gt__word--1 { left: 2.5%; top: 6%; }
	.gt__card--photo .gt__word--2 { left: 5.5%; top: 12%; }
	.gt__card--photo .gt__word--3 { left: auto; right: 9.5%; top: 4%; }
	.gt__card--photo .gt__word--4 { left: auto; right: 6%; top: 9%; }
	.gt__card--photo .gt__word--5 { left: auto; right: 2.5%; top: 5%; }
}

/* ---------- 写メ日記：カテゴリランキング・動画・タグ ---------- */
.dtag-rank {
	position: relative;
	margin: 28px 0 8px;
	padding: 26px 18px 22px;
	border-radius: var(--radius);
	color: #fff;
	background:
		repeating-linear-gradient(-58deg, rgba(255, 255, 255, 0.035) 0 34px, transparent 34px 90px),
		radial-gradient(circle at 85% 0%, color-mix(in srgb, var(--accent) 45%, transparent), transparent 55%),
		linear-gradient(160deg, color-mix(in srgb, var(--deep) 88%, #000), #1a0f15);
	overflow: hidden;
}
.brand-kairaku .dtag-rank { background: repeating-linear-gradient(-58deg, rgba(255, 255, 255, 0.035) 0 34px, transparent 34px 90px), radial-gradient(circle at 85% 0%, rgba(214, 63, 96, 0.35), transparent 55%), linear-gradient(160deg, #14213d, #0a1124); }
.dtag-rank__head { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; margin-bottom: 18px; text-align: right; }
.dtag-rank__en { font-family: var(--font-en); font-style: italic; font-size: 26px; line-height: 1.1; color: #f3d9a4; letter-spacing: 0.02em; }
.dtag-rank__en em { font-size: 1.25em; margin-left: 4px; }
.dtag-rank__ja { font-size: 12px; letter-spacing: 0.2em; color: rgba(255, 255, 255, 0.75); }
.dtag-rank__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 16px 12px; }
@media (min-width: 700px) { .dtag-rank__list { grid-template-columns: repeat(5, 1fr); gap: 22px 14px; } }
.dtag-rank__list a { display: flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; }
.dtag-rank__ph { position: relative; flex: 0 0 56px; width: 56px; height: 56px; }
.dtag-rank__ph img, .dtag-rank__ph::before { display: block; width: 56px; height: 56px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.85); }
.dtag-rank__ph::before { content: ""; position: absolute; background: linear-gradient(160deg, var(--accent-light), var(--deep)); z-index: 0; }
.dtag-rank__ph img { position: relative; z-index: 1; }
.dtag-rank__ph b { position: absolute; z-index: 2; top: -8px; right: -6px; font-family: var(--font-en); font-style: italic; font-size: 22px; line-height: 1; color: #fff; text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6); }
.dtag-rank__list li:nth-child(-n+3) .dtag-rank__ph b { color: #f3d9a4; }
.dtag-rank__txt { display: flex; flex-direction: column; min-width: 0; }
.dtag-rank__name { font-weight: 700; font-size: 15px; color: #ffb3c8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.brand-kairaku .dtag-rank__name { color: var(--accent-light); }
.dtag-rank__n { font-size: 12px; letter-spacing: 0.08em; color: rgba(255, 255, 255, 0.9); }
.dtag-rank__list a:hover .dtag-rank__name { text-decoration: underline; }
.diary-card--video { position: relative; }
.diary-card--video::after { content: "▶"; position: absolute; top: 8px; left: 8px; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; padding-left: 2px; border-radius: 50%; background: rgba(0, 0, 0, 0.55); color: #fff; font-size: 12px; }
.diary-video { display: block; width: 100%; max-height: 80vh; margin: 0 auto 12px; background: #000; border-radius: var(--radius); }
.dtag-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 0; }
.dtag-chips a { padding: 4px 12px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); font-size: 13px; font-weight: 700; text-decoration: none; }

/* ---------- 下層ページの見出しの帯：後ろに英語を大きく薄く・ふんわりした背景・飾り ---------- */
body { --pg-en: "Information"; }
.brand-kairaku { --pg-en: "Information"; }
.pg-system { --pg-en: "Price"; }
.pg-cast, .single-cast { --pg-en: "Therapist"; }
.brand-kairaku.pg-cast, .brand-kairaku.single-cast { --pg-en: "Cast"; }
.pg-schedule { --pg-en: "Schedule"; }
.pg-blog, .pg-diarylist, .single-diary { --pg-en: "Diary"; }
.pg-ranking { --pg-en: "Ranking"; }
.pg-usercomment, .single-review { --pg-en: "Review"; }
.pg-first, .pg-efirst { --pg-en: "Guide"; }
.pg-reserve { --pg-en: "Reserve"; }
.single-post, .blog, .archive { --pg-en: "News"; }
.page-head {
	position: relative;
	overflow: hidden;
	padding: 48px 0 34px;
	border-bottom: 0;
	background:
		radial-gradient(circle at 8% 15%, var(--accent-soft), rgba(255, 255, 255, 0) 42%),
		radial-gradient(circle at 92% 85%, var(--hero-b), rgba(255, 255, 255, 0) 48%),
		var(--surface);
}
.page-head::before {
	content: var(--pg-en);
	position: absolute;
	left: 50%;
	top: 52%;
	transform: translate(-50%, -50%);
	font-family: var(--font-en);
	font-style: italic;
	font-weight: 500;
	font-size: clamp(72px, 19vw, 150px);
	line-height: 1;
	white-space: nowrap;
	color: var(--accent);
	opacity: 0.09;
	pointer-events: none;
}
.page-head::after {
	content: "";
	position: absolute;
	right: -10px;
	bottom: -6px;
	width: 120px;
	height: 80px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 80'%3E%3Cpath d='M8 76 C 40 60, 70 40, 116 6' fill='none' stroke='%23e7a0b7' stroke-width='1.4'/%3E%3Cpath d='M44 56c-10-8-22-6-24 2c9 4 18 4 24-2zM70 36c-4-12-15-15-21-9c5 8 13 11 21 9zM92 22c-10-6-20-3-21 5c8 3 16 1 21-5z' fill='%23e7a0b7' opacity='.7'/%3E%3C/svg%3E") right bottom / contain no-repeat;
	opacity: 0.6;
	pointer-events: none;
}
.page-head .wrap { position: relative; z-index: 1; }
.page-head__title::after {
	content: "";
	display: block;
	width: 120px;
	height: 14px;
	margin: 10px auto 0;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 14'%3E%3Cpath d='M2 7h44M74 7h44' stroke='%23e7b3c4' stroke-width='1'/%3E%3Cpath d='M60 2c-4 3-4 7 0 10c4-3 4-7 0-10z' fill='%23d42f5f' opacity='.7'/%3E%3Cpath d='M52 7c3-3 6-3 8 0c-2 3-5 3-8 0zM68 7c-3-3-6-3-8 0c2 3 5 3 8 0z' fill='%23e7a0b7'/%3E%3C/svg%3E") center / contain no-repeat;
}
.brand-kairaku .page-head {
	background:
		repeating-linear-gradient(-58deg, rgba(255, 255, 255, 0.035) 0 30px, transparent 30px 80px),
		radial-gradient(circle at 90% 10%, rgba(214, 63, 96, 0.35), transparent 50%),
		linear-gradient(160deg, var(--navy), #0d1730);
}
.brand-kairaku .page-head::before { font-style: normal; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; font-size: clamp(56px, 16vw, 130px); color: #fff; opacity: 0.07; }
.brand-kairaku .page-head::after { display: none; }
.brand-kairaku .page-head__title::after { width: 36px; height: 3px; margin-top: 12px; border-radius: 3px; background: var(--accent-light); }
.single-cast .page-head::before, .single-diary .page-head::before { top: 60%; }

/* ---------- 料金システムページ（inc/price-page.php が表に class を付ける） ---------- */
.price-page { --pp-a: var(--accent); --pp-b: #f58fae; --pp-line: #f3b9cb; --pp-soft: var(--accent-soft); }
.brand-kairaku.price-page { --pp-a: #14213d; --pp-b: #3a5a96; --pp-line: #b9c4dc; --pp-soft: #eef1f7; }
.price-page .entry .wrap { max-width: 760px; }
.price-page .pp-head {
	position: relative;
	margin: 40px 0 16px;
	padding: 10px 16px 10px 54px;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--pp-soft), rgba(255, 255, 255, 0));
	font-size: 17px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--ink);
}
.price-page .pp-head::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 42px;
	height: 42px;
	margin-top: -21px;
	border-radius: 50%;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7' fill='none' stroke='%23d42f5f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 22px no-repeat;
	box-shadow: 0 2px 10px rgba(201, 86, 123, 0.18);
}
.brand-kairaku.price-page .pp-head::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7' fill='none' stroke='%23d63f60' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); box-shadow: 0 2px 10px rgba(20, 33, 61, 0.15); }
.price-page .pp-head::after { display: none; }
.price-page .pt-wrap { margin: 0 0 14px; overflow: visible; }
.price-page table.pt, .price-page table.pt tbody, .price-page table.pt thead { border: 0; background: none; }
.price-page table.pt td, .price-page table.pt th { border: 0; background: none; padding: 0; }
.price-page .pt-num { font-family: var(--font-en); font-size: 1.55em; font-weight: 600; letter-spacing: 0.03em; line-height: 1; }
.brand-iyashi.price-page .pt-num { font-style: italic; font-size: 1.75em; }
.price-page .pt-yen { font-size: 0.8em; margin-left: 2px; }

/* コースの表：左にコースの丸ボタン、右に大きな料金 */
.price-page table.pt-course { display: block; width: 100%; }
.price-page table.pt-course thead, .price-page table.pt-course .pt-head { display: none; }
.price-page table.pt-course tbody { display: grid; gap: 12px; }
.price-page table.pt-course tr {
	display: grid;
	grid-template-columns: minmax(92px, 32%) 1fr;
	align-items: stretch;
	min-height: 64px;
	border: 1.5px solid var(--pp-line);
	border-radius: 999px;
	background: #fff;
	overflow: hidden;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
}
.price-page table.pt-course.pt-cols-3 tr { grid-template-columns: minmax(84px, 28%) 1fr 1fr; }
.price-page table.pt-course.pt-cols-4 tr { grid-template-columns: minmax(80px, 25%) 1fr 1fr 1fr; }
.price-page table.pt-course .pt-key {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 6px 10px;
	border-radius: 999px;
	background: linear-gradient(100deg, var(--pp-a), var(--pp-b));
	color: #fff;
	font-family: var(--font-en);
	font-size: 20px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-align: center;
	line-height: 1.25;
}
.brand-iyashi.price-page table.pt-course .pt-key { font-style: italic; font-size: 22px; }
.price-page table.pt-course .pt-val {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	align-content: center;
	justify-content: flex-end;
	padding: 8px 18px 8px 8px;
	color: var(--ink);
	font-size: 15px;
	text-align: right;
	white-space: nowrap;
}
.price-page table.pt-course .pt-val[data-label]::before { content: attr(data-label); flex: 0 0 100%; font-size: 11px; color: var(--muted); letter-spacing: 0.06em; margin-bottom: 4px; white-space: normal; text-align: right; }
.price-page table.pt-course.pt-cols-3 .pt-val + .pt-val { border-left: 1px dashed var(--pp-line); }
.price-page table.pt-course.pt-cols-3 .pt-val, .price-page table.pt-course.pt-cols-4 .pt-val { justify-content: center; padding: 8px 6px; text-align: center; font-size: 13px; }
.price-page table.pt-course.pt-cols-3 .pt-val[data-label]::before, .price-page table.pt-course.pt-cols-4 .pt-val[data-label]::before { text-align: center; }
.price-page table.pt-course.pt-cols-2 .pt-num { font-size: 1.9em; }
.brand-iyashi.price-page table.pt-course.pt-cols-2 .pt-num { font-size: 2.1em; }
@media (max-width: 600px) {
	.price-page table.pt-course tbody { gap: 10px; }
	.price-page table.pt-course tr { min-height: 58px; grid-template-columns: minmax(76px, 27%) 1fr; }
	.price-page table.pt-course.pt-cols-3 tr { grid-template-columns: minmax(70px, 24%) 1fr 1fr; }
	.price-page table.pt-course.pt-cols-4 tr { grid-template-columns: minmax(64px, 22%) 1fr 1fr 1fr; }
	.price-page table.pt-course .pt-key { font-size: 16px; padding: 4px 6px; }
	.brand-iyashi.price-page table.pt-course .pt-key { font-size: 18px; }
	.price-page table.pt-course .pt-val { padding: 6px 12px 6px 4px; }
	.price-page table.pt-course.pt-cols-3 .pt-val, .price-page table.pt-course.pt-cols-4 .pt-val { padding: 6px 2px; font-size: 12px; }
	.price-page table.pt-course .pt-val[data-label]::before { font-size: 10px; letter-spacing: 0.02em; margin-bottom: 2px; }
	.price-page table.pt-list tr { padding: 12px 18px; }
	.price-page .pp-head { font-size: 16px; padding-left: 50px; }
}

/* 2列の表（項目｜料金）：角丸の行 */
.price-page table.pt-list { display: block; width: 100%; }
.price-page table.pt-list thead, .price-page table.pt-list .pt-head { display: none; }
.price-page table.pt-list tbody { display: grid; gap: 10px; }
.price-page table.pt-list tr {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 22px;
	border: 1px solid var(--line);
	border-radius: 999px;
	background: #fff;
}
.price-page table.pt-list .pt-key { font-weight: 700; letter-spacing: 0.1em; }
.price-page table.pt-list .pt-val { text-align: right; white-space: nowrap; }

/* そのほかの表：角丸のマス */
.price-page table.pt-grid { width: 100%; border-collapse: separate; border-spacing: 6px; margin: -6px; width: calc(100% + 12px); }
.price-page table.pt-grid td, .price-page table.pt-grid th { padding: 12px 10px; border: 1px solid var(--line); border-radius: 10px; background: #fff; text-align: center; font-size: 14px; }
.price-page table.pt-grid .pt-head td, .price-page table.pt-grid th { background: var(--pp-soft); font-weight: 700; }

/* 注意書き・案内 */
.price-page ul.pp-notes { list-style: none; margin: 10px 0 0; padding: 0; font-size: inherit; color: inherit; line-height: inherit; }
.price-page ul.pp-notes li { position: relative; padding-left: 1.3em; margin: 4px 0; }
.price-page ul.pp-notes li::before { content: "※"; position: absolute; left: 0; color: var(--accent); }
.price-page .entry .wp-block-group.note { border-radius: var(--radius); }

/* ===================================================================
 * カード型デザイン（見本）：body.style-card のときだけ
 *   背景に写真を敷き、ヘッダー・本文・フッターを角の丸いカードに入れる
 * =================================================================== */
body.style-card { background: #3b1d2e; }
body.style-card::before {
	content: "";
	position: fixed;
	inset: -20px;
	z-index: -1;
	background: url("assets/group-mv.jpg") center / cover no-repeat;
	filter: blur(14px) brightness(0.55) saturate(1.1);
}
body.style-card::after {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	background: radial-gradient(circle at 20% 10%, rgba(255, 190, 215, 0.25), rgba(255, 190, 215, 0) 45%), linear-gradient(180deg, rgba(70, 20, 48, 0.35), rgba(40, 12, 30, 0.6));
}
body.style-card .site-header {
	max-width: 1080px;
	margin: 10px auto 0;
	top: 10px;
	border: 0;
	border-radius: 22px;
	background: rgba(255, 255, 255, 0.9);
	box-shadow: 0 10px 30px rgba(30, 5, 20, 0.25);
}
/* 快楽はロゴ・文字が白なので、ヘッダーのカードは紺のまま */
body.brand-kairaku.style-card .site-header { background: rgba(20, 33, 61, 0.94); }
body.style-card #main {
	max-width: 1080px;
	margin: 14px auto 0;
	background: var(--bg);
	border-radius: 28px;
	overflow: hidden;
	box-shadow: 0 18px 50px rgba(30, 5, 20, 0.35);
}
body.style-card .site-footer {
	max-width: 1080px;
	margin: 14px auto 16px;
	border-radius: 28px;
	background: rgba(35, 10, 26, 0.82);
	backdrop-filter: blur(6px);
}
@media (max-width: 1100px) {
	body.style-card .site-header,
	body.style-card #main,
	body.style-card .site-footer { margin-left: 10px; margin-right: 10px; }
}
@media (max-width: 899.98px) {
	body.style-card .site-header { border-radius: 18px; margin-top: 8px; top: 8px; }
	body.style-card #main { border-radius: 22px; margin-top: 10px; }
	body.style-card .site-footer { border-radius: 22px; margin-bottom: 84px; }
	body.style-card .tabbar { left: 8px; right: 8px; bottom: 8px; border: 0; border-radius: 20px; box-shadow: 0 8px 24px rgba(30, 5, 20, 0.35); padding-bottom: 6px; }
}

/* 中身：セクションを白いカードで区切り、見出しは「英字の小さな帯＋日本語」 */
body.style-card .section { padding: 34px 0; }
body.style-card .section + .section { border-top: 1px solid var(--line); }
body.style-card .section:nth-of-type(even) { background: #fff; }
body.style-card .section__head { margin-bottom: 22px; }
body.style-card .section__en {
	display: inline-block;
	padding: 3px 14px;
	border-radius: 999px;
	background: var(--accent-soft);
	color: var(--accent);
	font-size: 11px;
	letter-spacing: 0.35em;
	margin-bottom: 8px;
}
body.style-card .section__title { font-family: var(--font-sans); letter-spacing: 0.12em; }
body.style-card .section__title::after {
	content: "";
	display: block;
	width: 36px;
	height: 3px;
	margin: 10px auto 0;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--accent), #f3a1bd);
}
body.style-card .mv { border-radius: 0 0 24px 24px; }
body.style-card .quick a,
body.style-card .cast,
body.style-card .diary-card,
body.style-card .store-card { border-radius: 18px; }
body.style-card .cast { background: #fff; box-shadow: 0 6px 18px rgba(201, 86, 123, 0.12); overflow: hidden; }

/* ---------- 店舗トップのメニュー：小さなアイコンのボタン（スマホ4列×2段／PCは横一列） ---------- */
.quick { grid-template-columns: repeat(4, 1fr); gap: 8px; }
.quick a {
	align-items: center;
	justify-content: center;
	gap: 4px;
	padding: 10px 4px 9px;
	border-radius: 14px;
	text-align: center;
	min-height: 0;
}
.quick a:last-child:nth-child(odd),
.quick a:last-child:nth-child(3n+1) { grid-column: auto; }
.quick__en { display: none; }
.quick__ic { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: var(--accent-soft); color: var(--accent); }
.quick__ic .icon { width: 20px; height: 20px; }
.quick__ja { font-family: var(--font-sans); font-size: 11.5px; font-weight: 700; line-height: 1.3; letter-spacing: 0.02em; }
@media (min-width: 700px) {
	.quick { grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: 10px; }
	.quick__ja { font-size: 13px; }
}
.brand-kairaku .quick a { border-left: 1px solid var(--line); }
.brand-kairaku .quick__ic { background: rgba(214, 63, 96, 0.12); color: var(--accent-light); }

/* 本日の出勤（メイン画像のすぐ下） */
.section--today { padding-top: 28px; }

/* ---------- 本日の出勤：スマホだけ横スライド（PCは今までどおり4列で8人まで） ---------- */
.slider__count { text-align: center; margin: -6px 0 12px; font-size: 16px; color: var(--muted); }
.slider__count b { color: var(--accent); font-size: 22px; margin: 0 2px; }
.slider { position: relative; }
.slider__nav { display: none; }
@media (max-width: 699.98px) {
	.casts.casts--slider {
		display: flex;
		gap: 12px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding: 0 16px;
		padding: 4px 16px 14px;
		margin: 0 -16px;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.casts--slider::-webkit-scrollbar { display: none; }
	.casts--slider > .cast { flex: 0 0 42%; scroll-snap-align: start; }
}
@media (min-width: 700px) {
	.casts--slider > .cast:nth-child(n+9) { display: none; }
}
/* スライドできることを知らせる（スマホだけ）：指のアイコンが右から左へスッと動く（スライドしたら消える）・位置のバー */
.slider__finger, .slider__bar { display: none; }
@media (max-width: 699.98px) {
	.slider__finger {
		display: block; position: absolute; z-index: 3; left: 50%; top: 30%; width: 68px; margin-left: -34px;
		color: var(--accent); pointer-events: none;
		filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.22));
		opacity: 0; animation: slider-finger 2s linear 0.8s infinite;
	}
	.slider__finger svg { display: block; width: 100%; height: auto; }
	/* 快楽のクマ：その場で左右にゆらゆら＋両側の ← → が外向きに点滅（スライドしたら消える） */
	.slider__finger--bear { width: 100px; margin-left: -50px; top: 12%; opacity: 1; animation: none; filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.28)); }
	.slider__finger--bear img { display: block; width: 100%; height: auto; animation: slider-bear 1.6s ease-in-out infinite; transform-origin: 50% 100%; }
	.slider__finger--bear.is-done { animation: slider-finger-out 0.5s ease forwards; }
	.slider__lr {
		position: absolute; top: 46%; margin-top: -18px;
		color: var(--accent); font-size: 32px; font-weight: 900; line-height: 1;
		text-shadow: 0 0 3px #fff, 0 0 6px #fff, 0 2px 8px rgba(0, 0, 0, 0.35);
	}
	.slider__lr--l { left: -36px; animation: slider-lr-l 1.6s ease-in-out infinite; }
	.slider__lr--r { right: -36px; animation: slider-lr-r 1.6s ease-in-out infinite; }
	/* 癒したくての手：ふわっと現れて左右に少し動き、ボワっとぼやけて消える（両側の ← → はクマと同じ） */
	.slider__finger--hand { width: 58px; margin-left: -29px; top: 16%; opacity: 1; animation: none; filter: drop-shadow(0 6px 12px rgba(90, 40, 60, 0.28)); }
	.slider__finger--hand img { display: block; width: 100%; height: auto; animation: slider-hand 2.4s ease-in-out infinite; }
	.slider__finger--hand .slider__lr { top: 30%; }
	.slider__finger--hand .slider__lr--l { left: -40px; }
	.slider__finger--hand .slider__lr--r { right: -40px; }
	.slider__finger--hand.is-done { animation: slider-finger-out 0.5s ease forwards; }
	.slider__ring { stroke: var(--accent-light); opacity: 0.6; }
	.slider__spark { stroke: var(--accent-light); }
	.slider__finger.is-done { animation: slider-finger-out 0.5s ease forwards; }
	.slider--many::after {
		content: ""; position: absolute; right: -16px; top: 4px; bottom: 14px; width: 36px; pointer-events: none;
		background: linear-gradient(90deg, transparent, var(--bg, #fff));
	}
	.slider__bar { display: block; height: 4px; margin: 0 auto; width: 46%; border-radius: 4px; background: var(--line); overflow: hidden; }
	.slider__bar span { display: block; height: 100%; width: 30%; border-radius: 4px; background: var(--accent); transform: translateX(0); transition: transform 0.15s linear; }
}
@keyframes slider-finger {
	0% { opacity: 0; transform: translateX(60%); }
	40% { opacity: 1; }
	80% { opacity: 0; transform: translateX(-140%); }
	100% { opacity: 0; transform: translateX(-140%); }
}
@keyframes slider-finger-out { to { opacity: 0; visibility: hidden; } }
@keyframes slider-hand {
	0% { opacity: 0; filter: blur(6px); transform: translateX(10px) scale(0.92); }
	22% { opacity: 1; filter: blur(0); transform: translateX(6px) scale(1); }
	50% { opacity: 1; filter: blur(0); transform: translateX(-8px) scale(1); }
	70% { opacity: 1; filter: blur(0); transform: translateX(6px) scale(1); }
	100% { opacity: 0; filter: blur(10px); transform: translateX(0) scale(1.15); }
}
@keyframes slider-bear { 0%, 100% { transform: rotate(-5deg) translateX(-4px); } 50% { transform: rotate(5deg) translateX(4px); } }
@keyframes slider-lr-l { 0%, 100% { transform: translateX(0); opacity: 1; } 50% { transform: translateX(-8px); opacity: 0.55; } }
@keyframes slider-lr-r { 0%, 100% { transform: translateX(0); opacity: 1; } 50% { transform: translateX(8px); opacity: 0.55; } }
@media (prefers-reduced-motion: reduce) { .slider__finger, .slider__finger--bear img, .slider__finger--hand img, .slider__lr { animation: none; opacity: 0.9; } }

/* グループトップ：快楽（紺 × コーラル。写真が無いときは紺の斜めストライプ＋大きな M） */
.gt--kairaku .gt__card {
	background-color: #14213d;
	background-image: var(--gt-bg, repeating-linear-gradient(-58deg, rgba(255, 255, 255, 0.04) 0 34px, transparent 34px 90px), radial-gradient(circle at 82% 12%, rgba(214, 63, 96, 0.55) 0, rgba(214, 63, 96, 0) 45%), radial-gradient(circle at 8% 88%, rgba(240, 96, 126, 0.28) 0, rgba(240, 96, 126, 0) 42%), linear-gradient(160deg, #22355c 0%, #14213d 55%, #0a1124 100%));
	box-shadow: 0 18px 48px rgba(10, 17, 36, 0.35);
	border-radius: 18px;
}
.gt--kairaku .gt__card:not(.gt__card--photo)::after {
	content: "M"; position: absolute; z-index: -1; right: -3%; top: -8%;
	font: 800 min(78vw, 620px) / 1 var(--font-en); color: rgba(255, 255, 255, 0.045); pointer-events: none;
}
.gt--kairaku .gt__shade { background: linear-gradient(180deg, rgba(10, 17, 36, 0) 0%, rgba(10, 17, 36, 0.15) 45%, rgba(10, 17, 36, 0.85) 100%); }
.gt--kairaku .gt__word { text-orientation: upright; text-shadow: 0 0 2px rgba(10, 17, 36, 0.9), 0 2px 12px rgba(10, 17, 36, 0.7); }
.gt--kairaku .gt__word::before { content: ""; display: block; width: 2px; height: 18px; margin: 0 auto 10px; background: var(--accent-light); }
.gt--kairaku .gt__eyebrow { color: var(--accent-light); opacity: 1; }
.gt--kairaku .gt__logo { background: rgba(10, 17, 36, 0.5); border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 12px; padding: 12px 20px; }
.gt--kairaku .gt__logo img { width: min(380px, 74vw); }
.gt--kairaku .gt__logo .logo-k__text { color: #fff; font-size: 22px; }
.gt--kairaku .gt__enter { border-radius: 10px; background: linear-gradient(135deg, #d63f60, #f0607e); box-shadow: 0 8px 22px rgba(214, 63, 96, 0.45); }
.gt--kairaku .gt__enter:hover { box-shadow: 0 12px 26px rgba(214, 63, 96, 0.55); }
.gt--kairaku .gt__sub { border-radius: 10px; }
.gt--kairaku .gt__card--photo { background-color: #14213d; }
@media (min-width: 900px) {
	.gt--kairaku .gt__card--photo .gt__body { background: linear-gradient(120deg, #22355c 0%, #14213d 100%); }
	.gt--kairaku .gt__card--photo .gt__logo img { width: 240px; }
}
@media (max-width: 899.98px) { .gt--kairaku .gt__card--photo { background-color: #14213d; } }
.areamap--kairaku { background: rgba(10, 17, 36, 0.62); }
.areamap--kairaku .areamap__box { border-radius: 16px; }
.areamap--kairaku .areamap__pref { fill: #9aa3b8; }
.areamap--kairaku .areamap__btn { border-color: #d9dde8; box-shadow: 0 4px 12px rgba(20, 33, 61, 0.18); border-radius: 8px; }
.areamap--kairaku .areamap__dot { box-shadow: 0 0 0 0 rgba(214, 63, 96, 0.5); }
.areamap--kairaku .areamap__list a { border-radius: 10px; }

/* メイン動画（店舗トップ）：横幅いっぱい・縦横比はそのまま */
.mv--video { aspect-ratio: auto; max-height: none; }
.mv--video .mv__slides { position: relative; inset: auto; max-width: 1200px; margin: 0 auto; }
.mv--video .mv__video { position: relative; display: block; width: 100%; height: auto; opacity: 1; object-fit: contain; background: #000; }
@media (min-width: 900px) { .mv--video { padding: 20px 0; } .mv--video .mv__video { border-radius: 16px; } }

/* 快楽グループトップ：写真の上の吹き出し（順番にぼやっと現れる） */
.gt__words--off { display: none; }
.gt__bubbles { position: absolute; left: 0; right: 0; top: 0; height: 58%; z-index: 0; pointer-events: none; container-type: inline-size; }
.gt__body { position: relative; z-index: 1; }
.gt__bubble {
	position: absolute; display: flex; align-items: center; justify-content: center; text-align: center;
	aspect-ratio: 1.55 / 1; padding: 0 0.9em; border-radius: 50%; white-space: nowrap;
	background: #fff; color: #1b1b1b; font-weight: 600; line-height: 1.45; letter-spacing: 0.02em;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
	opacity: 0; filter: blur(10px); transform: scale(0.82);
	animation: gt-bubble 1.1s cubic-bezier(0.2, 0.8, 0.2, 1) forwards; animation-delay: var(--d, 0.6s);
}
.gt__bubble::after {
	content: ""; position: absolute; bottom: -12%; width: 20%; height: 26%; background: #fff;
}
.gt__bubble--tail-r::after { right: 14%; clip-path: polygon(0 0, 70% 0, 100% 100%); }
.gt__bubble--tail-l::after { left: 14%; clip-path: polygon(30% 0, 100% 0, 0 100%); }
@keyframes gt-bubble {
	60% { opacity: 1; filter: blur(1px); transform: scale(1.04); }
	100% { opacity: 1; filter: blur(0); transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) { .gt__bubble { animation: none; opacity: 1; filter: none; transform: none; } }
/* PC：写真（16:9）の上の元の位置に */
@media (min-width: 900px) {
	.gt__bubbles { height: auto; aspect-ratio: 16 / 9; }
	.gt__bubble { left: var(--l); top: var(--t); width: calc(var(--w) * 0.85); font-size: 1.12cqw; }
}
/* スマホ：縦に切り出した写真の上のほうに、左右交互に */
@media (max-width: 899.98px) {
	.gt__bubble { font-size: 2.6cqw; padding: 0 0.7em; }
	.gt__bubble--1 { left: 2%; top: 3%; width: 31%; }
	.gt__bubble--2 { right: 2%; top: 13%; width: 30%; }
	.gt__bubble--3 { left: 2%; top: 26%; width: 25%; }
	.gt__bubble--4 { right: 2%; top: 35%; width: 25%; }
}

/* 他店舗からのご案内（例：癒し西船橋に錦糸町の子） */
.guest { margin-top: 28px; }
.guest__title { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; font-size: 16px; font-weight: 700; color: var(--ink); }
.guest__title::before, .guest__title::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.guest__title span { padding: 4px 14px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); white-space: nowrap; }
.guest__title small { order: 3; font-size: 13px; color: var(--muted); white-space: nowrap; }
.guest__title::after { order: 4; }


/* プロフィールの Q&A */
.qa { margin: 24px 0; }
.qa__g { margin: 18px 0 8px; padding: 6px 12px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); font-size: 14px; font-weight: 700; letter-spacing: 0.04em; }
.qa__list { margin: 0; display: grid; gap: 8px; }
.qa__item { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: #fff; }
.qa__item dt { font-weight: 700; font-size: 14px; color: var(--ink); }
.qa__item dd { margin: 6px 0 0; font-size: 14px; line-height: 1.8; color: var(--ink-soft); }
.qa__q, .qa__a { display: inline-block; min-width: 2.4em; font-family: var(--font-en); font-weight: 700; color: var(--accent); }
.qa__a { color: var(--accent-light); }

/* プロフィールの各セクション：スマホだけアコーディオン（出勤予定・メッセージは最初から開く）。PCは全部開いたまま（main.js） */
.acc { margin: 0 0 12px; border-bottom: 1px solid var(--line); }
.acc__head.profile__h { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0; padding: 14px 4px; cursor: pointer; list-style: none; }
.acc__head::-webkit-details-marker { display: none; }
.acc__head::after {
	content: ""; flex: 0 0 auto; width: 10px; height: 10px; margin-right: 6px;
	border-right: 2px solid var(--accent); border-bottom: 2px solid var(--accent);
	transform: rotate(45deg) translateY(-3px); transition: transform 0.4s cubic-bezier(.22,.8,.3,1);
}
.acc[open]:not(.is-closing) > .acc__head::after { transform: rotate(-135deg) translateY(-3px); }
.acc[open] > .acc__head { padding-bottom: 10px; }
.acc.is-opening > :not(summary) { animation: acc-in 0.45s ease both; }
.acc.is-closing > :not(summary) { transition: opacity 0.3s; opacity: 0; }
.acc > :last-child { margin-bottom: 16px; }
@keyframes acc-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
.qa.acc { margin: 0 0 12px; }
@media (min-width: 900px) {
	.acc { border-bottom: 0; }
	.acc__head.profile__h { cursor: default; padding: 0; margin: 0 0 10px; }
	.acc__head::after { display: none; }
	.acc > :not(summary) { animation: none; }
	.acc > :last-child { margin-bottom: 20px; }
}
/* メッセージ（紹介文）も Q&A と同じ枠に */
.acc .profile__body { border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; background: #fff; font-size: 14px; line-height: 1.9; color: var(--ink-soft); }
.acc .profile__body > :first-child { margin-top: 0; }
.acc .profile__body > :last-child { margin-bottom: 0; }
/* メッセージ：女性メッセージ／店長コメント（スマホはタブ、PCは両方並べる） */
.msg__h { margin: 0 0 6px; font-size: 13px; font-weight: 700; color: var(--accent); letter-spacing: 0.06em; }
.msg__panel + .msg__panel { margin-top: 14px; }
.msg__tabs { display: none; }
@media (max-width: 899.98px) {
	.msg--tabs .msg__tabs { display: flex; gap: 6px; margin: 0 0 10px; }
	.msg__tab { flex: 1; padding: 9px 8px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink-soft); font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; transition: background 0.2s, color 0.2s, border-color 0.2s; }
	.msg__tab.is-active { background: var(--accent); border-color: var(--accent); color: #fff; }
	.msg--tabs .msg__h { display: none; }
	.msg--tabs .msg__panel { display: none; margin-top: 0; }
	.msg--tabs .msg__panel.is-active { display: block; animation: acc-in 0.35s ease; }
}
/* PC：プロフィールの下半分（メッセージ・Q&A・写メ日記・口コミ）は横幅いっぱいに使って、縦に長くなりすぎないように */
.profile__more { min-width: 0; }
@media (min-width: 760px) { .profile__more { grid-column: 1 / -1; } }
@media (min-width: 900px) {
	.msg--tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
	.msg--tabs .msg__panel + .msg__panel { margin-top: 0; }
	.msg--tabs .msg__panel { display: flex; flex-direction: column; }
	.msg--tabs .msg__panel .profile__body { flex: 1; }
	.qa__groups { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; align-items: start; }
	.qa__groups .qa__g { margin-top: 0; }
}
/* プロフィールのオプション（○△×） */
.opts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.opts__i { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; font-size: 13px; }
.opts__i b { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; font-size: 15px; }
.opts__i--ok b { background: var(--accent); color: #fff; }
.opts__i--ask b { background: #f3e2b8; color: #8a6418; }
.opts__i--ng { color: var(--muted); }
.opts__i--ng b { background: #ececf0; color: #9a9aa5; }
.opts__note { margin: 6px 0 0; font-size: 12px; color: var(--muted); text-align: right; }

/* 解説ページの質問と答え（旧サイトから取り込んだ吹き出し） */
.entry .chat { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 10px; }
.entry .chat--a { flex-direction: row-reverse; margin-bottom: 22px; }
.entry .chat__icon { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; flex: none; background: var(--accent-soft); margin: 0; }
.entry .chat__text { min-width: 0; max-width: 86%; padding: 12px 16px; line-height: 1.75; border-radius: 0 12px 12px 12px; background: var(--bg, #f5f5f5); border: 1px solid var(--line); }
.entry .chat--a .chat__text { border-radius: 12px 0 12px 12px; background: var(--accent-soft); border-color: transparent; }
.entry .chat__text > :first-child { margin-top: 0; }
.entry .chat__text > :last-child { margin-bottom: 0; }
.entry img { height: auto; }

/* プレイ・用語解説（/play/ の目次カードと、各解説の最後のタグ） */
.entry .play-guide { margin: 0 0 40px; }
.entry .play-guide__lead { color: var(--muted); margin: 0 0 16px; }
.entry .play-cards { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.entry .play-card { margin: 0; }
.entry .play-card a { display: flex; gap: 12px; align-items: center; height: 100%; padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: inherit; text-decoration: none; transition: border-color .2s, transform .2s; }
.entry .play-card a:hover, .entry .play-card a:focus-visible { border-color: var(--accent-light, var(--accent)); transform: translateY(-1px); }
.entry .play-card__img { flex: none; width: 76px; height: 76px; border-radius: 8px; overflow: hidden; background: var(--accent-soft); }
.entry .play-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; margin: 0; }
.entry .play-card__body { display: grid; gap: 2px; min-width: 0; }
.entry .play-card__name { font-weight: 700; color: var(--accent); }
.entry .play-card__desc { font-size: 12px; line-height: 1.6; color: var(--muted); }
.entry .play-guide__more { margin: 14px 0 0; text-align: right; font-size: 14px; }
.entry .play-more { margin: 48px 0 0; padding: 20px; border-radius: 12px; background: var(--accent-soft); }
.entry .play-more__title { margin: 0 0 10px; font-weight: 700; }
.entry .play-more__tags { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.entry .play-more__tags li { margin: 0; }
.entry .play-more__tags a { display: inline-block; padding: 6px 14px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); font-size: 14px; color: inherit; text-decoration: none; }
.entry .play-more__tags a:hover, .entry .play-more__tags a:focus-visible { border-color: var(--accent); color: var(--accent); }
.entry .play-more__hub { margin: 12px 0 0; font-size: 14px; text-align: right; }
@media (max-width: 600px) { .entry .play-cards { grid-template-columns: 1fr; } }
.entry .play-card a { padding: 14px 16px; align-items: flex-start; }
.entry .play-card__name::after { content: " →"; font-weight: 400; }
/* 癒したくての解説ページの Q / A（文字のアイコン） */
.entry .chat__icon--txt { display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-en); font-weight: 700; font-size: 18px; color: var(--accent); background: var(--accent-soft); }
.entry .chat--a .chat__icon--txt { color: #fff; background: var(--accent); }

/* 快楽：カードのスリーサイズ、次枠は赤、プロフィールの 出勤リクエスト／WEB予約 */
.cast__size { display: block; font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.brand-kairaku .cast__next { background: #d7263d; color: #fff; }
.brand-kairaku .cast__next b { background: #fff; color: #d7263d; }
.brand-kairaku .profile__next:not(.profile__next--now):not(.profile__next--end) { background: #d7263d; color: #fff; }
.brand-kairaku .profile__next:not(.profile__next--now):not(.profile__next--end) b { background: #fff; color: #d7263d; }
.profile__cta { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.profile__cta .btn { flex: 1 1 180px; max-width: 280px; }

/* 快楽の料金システム：開閉できる枠（PCでも開閉）とご利用案内 */
.price-page .pacc { margin: 28px 0 0; border: 0; }
.price-page .pacc > .pacc__head { display: block; padding: 0; margin: 0; cursor: pointer; list-style: none; position: relative; }
.price-page .pacc > .pacc__head .pp-head { margin: 0; padding-right: 48px; }
.price-page .pacc > .pacc__head::after { display: block; position: absolute; right: 18px; top: 50%; margin: -8px 0 0; }
.price-page .pacc[open]:not(.is-closing) > .pacc__head::after { transform: rotate(-135deg) translateY(-3px); }
.price-page .pacc__body { padding: 14px 0 4px; }
.price-page .pp-sub { margin: 18px 0 10px; padding: 0 0 6px 4px; font-size: 16px; border-bottom: 2px solid var(--accent-light); display: inline-block; }
.price-page .pacc__body > .pp-sub:first-child { margin-top: 4px; }
.price-page .pguide { display: grid; gap: 10px; margin: 6px 0 24px; }
.price-page .pguide__item { margin: 0; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.price-page .pguide__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px; font-weight: 700; cursor: pointer; list-style: none; }
.price-page .pguide__head::before { content: "✅"; margin-right: 2px; }
.price-page .pguide__head::after { margin-left: auto; }
.price-page .pguide__body { padding: 0 16px 14px; }
.price-page .pguide__body > :first-child { margin-top: 0; }
@media (min-width: 900px) {
	.price-page .acc[data-acc-always] > .acc__head::after { display: block; }
	.price-page .acc[data-acc-always] > .acc__head { cursor: pointer; }
}
/* カード：名前／身長・年齢／スリーサイズ */
.cast__spec { display: block; font-size: 13px; color: var(--ink-soft); font-variant-numeric: tabular-nums; }
.cast__spec + .cast__size, .cast__name + .cast__size { margin-top: 0; }

/* 快楽のトロフィー（写真の右下） */
.cast__trophy { position: absolute; right: 4px; bottom: 4px; z-index: 2; width: clamp(30px, 20%, 52px); height: auto; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.45)); pointer-events: none; }
.cast.has-promo .cast__trophy { bottom: 30px; }
.profile__main .cast__trophy { right: 10px; bottom: 10px; width: clamp(52px, 16%, 84px); }
.profile__main:has(.cast__promo) .cast__trophy { bottom: 44px; }
/* トロフィーは写真用の指定（全面・切り抜き・拡大）を受けないようにする */
.cast .cast__photo img.cast__trophy,
.profile__photo img.cast__trophy { width: clamp(30px, 20%, 52px); height: auto; aspect-ratio: auto; object-fit: contain; object-position: center; transform: none; border-radius: 0; display: block; }
.profile__photo .profile__main img.cast__trophy { width: clamp(52px, 16%, 84px); }
/* トロフィーは右上に（ランキングの「◯位」がある所はその下） */
.cast__trophy, .cast.has-promo .cast__trophy { top: 6px; right: 6px; bottom: auto; }
.cast__photo:has(.cast__rank) .cast__trophy { top: 40px; }
.profile__main .cast__trophy, .profile__main:has(.cast__promo) .cast__trophy { top: 12px; right: 12px; bottom: auto; }
/* カードの年齢・身長とスリーサイズを少し大きく */
.cast__spec { font-size: 15px; }
.cast__size { font-size: 14.5px; }
@media (max-width: 600px) { .cast__spec { font-size: 14px; } .cast__size { font-size: 13.5px; } }
/* ご利用案内の中は、箇条書きも本文と同じ大きさ・色に */
.price-page .pguide__body ul.pp-notes, .price-page .pguide__body ul { font-size: inherit; color: inherit; line-height: inherit; margin-top: 0; }
.price-page .pguide__body ul.pp-notes li { margin: 0 0 6px; }
/* 基本料金（基本システム）：スマホでは2列のマスに */
@media (max-width: 700px) {
	.price-page table.pt-list.pt-basic tbody { grid-template-columns: 1fr 1fr; gap: 8px; }
	.price-page table.pt-list.pt-basic tr { flex-direction: column; justify-content: center; gap: 2px; padding: 10px 8px; border-radius: 14px; text-align: center; }
	.price-page table.pt-list.pt-basic .pt-key { font-size: 13px; letter-spacing: 0.04em; line-height: 1.4; }
	.price-page table.pt-list.pt-basic .pt-val { text-align: center; font-size: 13px; }
	.price-page table.pt-list.pt-basic .pt-num { font-size: 1.4em; }
	.brand-iyashi.price-page table.pt-list.pt-basic .pt-num { font-size: 1.55em; }
}
/* 癒したくて：料金の数字を読みやすく（細い斜体 → 太めの丸ゴシック） */
.brand-iyashi.price-page .pt-num { font-family: var(--font-sans); font-style: normal; font-weight: 700; font-size: 1.35em; letter-spacing: 0.02em; font-variant-numeric: tabular-nums; }
.brand-iyashi.price-page table.pt-course.pt-cols-2 .pt-num { font-size: 1.6em; }
/* コース時間（60分など）も同じフォントに */
.brand-iyashi.price-page table.pt-course .pt-key { font-family: var(--font-sans); font-style: normal; font-weight: 700; font-size: 18px; letter-spacing: 0.04em; font-variant-numeric: tabular-nums; }
@media (max-width: 700px) {
	.brand-iyashi.price-page table.pt-list.pt-basic .pt-num { font-size: 1.25em; }
	.brand-iyashi.price-page table.pt-course .pt-key { font-size: 15px; }
}
/* 「写真準備中」の画像は寄せない（文字が切れないように） */
.cast .cast__photo img[src*="/nophoto-"] { transform: none; object-position: 50% 50%; }
/* 快楽：ヘッダーの店舗ロゴを大きく（2026-10-23） */
@media (max-width: 899.98px) {
	.brand-kairaku .brand { padding: 6px 6px 6px 10px; }
	.brand-kairaku .brand__logo { max-width: 100%; }
}
@media (min-width: 900px) {
	.brand-kairaku .brand__logo { height: 60px; }
}
/* 快楽のイベント（HEY!OSHIRI! のいいね・受賞発表のギャラリー） */
.likes { list-style: none; margin: 16px 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
@media (max-width: 600px) { .likes { grid-template-columns: repeat(2, 1fr); gap: 8px; } }
.likes__item { background: #fff; border: 1px solid var(--line, #e5e5e5); border-radius: 12px; overflow: hidden; }
.likes__photo img { display: block; width: 100%; aspect-ratio: 2 / 3; object-fit: cover; }
.likes__foot { display: flex; align-items: center; justify-content: space-between; gap: 6px; padding: 8px; }
.likes__no { font-family: var(--font-en, sans-serif); font-weight: 700; font-size: 14px; color: var(--muted, #777); }
.likes__btn { display: inline-flex; align-items: center; gap: 4px; padding: 6px 12px; border: 1px solid #f0c3cf; border-radius: 999px; background: #fff; color: #d7263d; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.likes__btn.is-on { background: #d7263d; border-color: #d7263d; color: #fff; }
.likes__n { font-family: var(--font-en, sans-serif); margin-left: 2px; }
.entry .wp-block-gallery { list-style: none; margin: 12px 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.entry .wp-block-gallery.columns-1 { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.entry .wp-block-gallery figure { margin: 0; }
.entry .wp-block-gallery img, .entry .wp-block-image img { display: block; max-width: 100%; height: auto; border-radius: 10px; }
.entry .wp-block-image { margin: 20px 0 8px; text-align: center; }
.menu-event__tag { display: inline-block; margin-right: 6px; padding: 1px 7px; border-radius: 999px; background: #d7263d; color: #fff; font-size: 11px; font-weight: 700; vertical-align: 1px; }
.likes-past { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; }
.likes-past a { display: block; padding: 14px 18px; border: 1px solid var(--line, #e5e5e5); border-radius: 12px; background: #fff; font-weight: 700; text-decoration: none; }
.likes-past a::after { content: " ▸"; color: #d7263d; }
.likes__count { color: #d7263d; font-weight: 700; font-size: 13px; white-space: nowrap; }
.likes--closed .likes__no { font-family: inherit; font-size: 12px; font-weight: 500; line-height: 1.4; }
.likes + h2, .likes-past + h2 { margin-top: 32px; }
/* 画像の保存・持ち出しをしにくくする（長押しのメニュー・選択・ドラッグを止める） */
img, video { -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; -webkit-user-drag: none; user-drag: none; }
/* 快楽のグループトップ（スマホ）：吹き出し入りの縦長写真（9:16）を切らずに全部見せ、ロゴ・ボタンは写真の下に */
@media (max-width: 899.98px) {
	.gt--kairaku .gt__card--photo { display: block; min-height: 0; background-image: var(--gt-bg-sp, var(--gt-bg)); background-size: 100% auto; background-position: center top; }
	.gt--kairaku .gt__card--photo::before { content: ""; display: block; aspect-ratio: 9 / 16; }
	.gt--kairaku .gt__card--photo .gt__shade { display: none; }
	.gt--kairaku .gt__card--photo .gt__body { position: static; padding: 20px 16px 22px; background: linear-gradient(120deg, #22355c 0%, #14213d 100%); }
}
/* グループトップ：開催中のイベント（一時的）。写真と下の帯のあいだの細い帯にして、ENTER などのボタンには触れない */
.gt__event { position: relative; z-index: 2; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 16px; background: #d7263d; color: #fff !important; font-size: 14px; font-weight: 700; letter-spacing: 0.04em; text-decoration: none !important; }
.gt__event:hover { background: #c01f34; }
.gt__event span { padding: 1px 8px; border-radius: 999px; background: #fff; color: #d7263d; font-size: 11px; }
/* 快楽グループトップ：吹き出し（写真から切り抜いた画像）を順番にぼやっと出す。PC は横長の写真、スマホは縦長の写真の上の同じ位置 */
.gt__bubimgs { position: absolute; left: 0; right: 0; top: 0; z-index: 1; pointer-events: none; }
.gt__bubimgs--pc { aspect-ratio: 16 / 9; }
.gt__bubimgs--sp { aspect-ratio: 9 / 16; display: none; }
.gt__bubimg { position: absolute; left: var(--l); top: var(--t); width: var(--w); height: auto; opacity: 0; filter: blur(10px); transform: scale(0.82); animation: gt-bubble 1.1s cubic-bezier(0.2, 0.8, 0.2, 1) forwards; animation-delay: var(--d, 0.6s); }
@media (prefers-reduced-motion: reduce) { .gt__bubimg { animation: none; opacity: 1; filter: none; transform: none; } }
@media (max-width: 899.98px) {
	.gt__bubimgs--pc { display: none; }
	.gt__bubimgs--sp { display: block; }
}
/* 快楽グループトップ：店舗ロゴはヘッダーにあるので、写真の下の帯には出さない */
.gt--kairaku .gt__card--photo .gt__logo { display: none; }
@media (min-width: 900px) {
	.gt--kairaku .gt__card--photo .gt__body { grid-template-columns: 1fr auto; grid-template-areas: "lead actions" "note note"; }
}
/* スマホ：ENTER と女性求人は写真の足もとに重ねる（画面が低いスマホでは、スクロールしなくても見える高さまで上げる） */
@media (max-width: 899.98px) {
	.gt--kairaku .gt__card--photo { container-type: inline-size; }
	.gt--kairaku .gt__card--photo .gt__actions { position: absolute; z-index: 3; left: 12px; right: 12px; top: min(calc(100cqw * 16 / 9 * 0.86), calc(100cqw * 16 / 9 - 80px), calc(100svh - var(--gt-ct, 156px) - 80px)); }
	.gt--kairaku .gt__card--photo .gt__actions::before { content: ""; position: absolute; z-index: -1; left: -12px; right: -12px; top: -36px; bottom: -10px; background: linear-gradient(180deg, rgba(10, 17, 36, 0) 0%, rgba(10, 17, 36, 0.7) 55%); pointer-events: none; }
	/* 4つ目の吹き出し（気持ちいいでしょ？）は、右の女性（支配してあげる）の顔の横に。左の「いい声だね♥」と対になる位置 */
	.gt--kairaku .gt__bubimgs--sp .gt__bubimg:nth-child(4) { top: 30%; }
}
/* スマホのときだけ改行する（PCでは1行に続ける） */
@media (min-width: 900px) { br.sp-only { display: none; } }

/* オリジナルアイテム・個人コスプレ（快楽のプロフィール。PCはカード並び、スマホは横スライド） */
.citems { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.citem { min-width: 0; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; box-shadow: var(--shadow); }
.citem__ph { margin: 0; aspect-ratio: 3 / 4; background: var(--bg); }
.citem__ph img { display: block; width: 100%; height: 100%; object-fit: cover; }
.citem__b { padding: 8px 10px 10px; }
.citem__name { margin: 0; font-weight: 700; font-size: 14px; line-height: 1.4; }
.citem__note { margin: 4px 0 0; font-size: 12.5px; line-height: 1.6; color: var(--ink-soft); }
@media (max-width: 759px) {
	.citems { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 10px; padding-bottom: 8px; scrollbar-width: none; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
	.citems::-webkit-scrollbar { display: none; }
	.citem { flex: 0 0 62%; scroll-snap-align: start; }
}

/* もも狩りグランプリの投票（inc/event-vote.php） */
.vote-banner { margin: 12px 0; }
.vote-banner a { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 12px; padding: 12px 16px; border-radius: 12px; background: #d7263d; color: #fff; font-weight: 700; text-decoration: none; }
.vote-banner span { font-size: 13px; padding: 4px 12px; border-radius: 999px; background: #fff; color: #d7263d; }
.vote { margin: 28px 0; padding: 20px 18px; border: 2px solid #f0c3cf; border-radius: 16px; background: #fff7f9; scroll-margin-top: 80px; }
.vote__title { margin: 0 0 6px; font-size: 20px; color: #d7263d; }
.vote__lead { margin: 0 0 14px; }
.vote__form { display: grid; gap: 12px; max-width: 480px; }
.vote__f { display: grid; gap: 4px; font-weight: 700; font-size: 14px; }
.vote__f select, .vote__f input { width: 100%; padding: 11px 12px; border: 1px solid #e3c6cf; border-radius: 10px; background: #fff; font: inherit; font-size: 16px; }
.vote__hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.vote__btn { padding: 13px; border: 0; border-radius: 999px; background: #d7263d; color: #fff; font: inherit; font-size: 16px; font-weight: 700; cursor: pointer; }
.vote__btn:disabled { opacity: .6; }
.vote__msg { margin: 0; min-height: 1.4em; font-weight: 700; }
.vote__msg.is-ok { color: #1f8a55; }
.vote__msg.is-ng { color: #c0392b; }
.vote__note { margin: 0; font-size: 12px; color: var(--muted, #777); line-height: 1.6; }

/* ===== コスプレページ（inc/cosplay-page.php が本文を組み替える） ===== */
.cos { --cos-ink: #1b2030; margin: 0 auto; }
.cos-hero {
	position: relative; overflow: hidden; text-align: center; color: #fff;
	padding: 30px 20px 26px; border-radius: 20px;
	background: radial-gradient(120% 90% at 100% 0%, rgba(240,96,126,.55), transparent 60%), linear-gradient(150deg, #2a1830 0%, #1b2030 100%);
	box-shadow: 0 14px 34px -18px rgba(27,32,48,.6);
}
.cos-hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(135deg, rgba(255,255,255,.04) 0 14px, transparent 14px 28px); }
.cos-hero > * { position: relative; z-index: 1; margin: 0; }
.cos-hero__en { font-family: var(--font-en); font-size: 11px; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: #f7a3b6; }
.cos-hero__title { margin-top: 6px !important; font-size: 21px; font-weight: 700; letter-spacing: .08em; }
.cos-hero__price { display: inline-flex; align-items: center; gap: 12px; margin-top: 16px !important; padding: 8px 8px 8px 18px; border-radius: 999px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.22); }
.cos-hero__price span { font-size: 12px; letter-spacing: .06em; opacity: .9; }
.cos-hero__price strong { display: inline-block; padding: 4px 16px; border-radius: 999px; background: var(--accent); font-family: var(--font-en); font-size: 24px; line-height: 1.25; letter-spacing: .02em; }
.cos-hero__price small { margin-left: 2px; font-size: 13px; font-family: inherit; }
.cos-hero__sub { margin-top: 14px !important; font-size: 12.5px; opacity: .78; }
.cos-extra { margin-top: 20px; }
.cos-h { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; margin: 34px 0 14px; padding: 0 0 10px; border-bottom: 1px solid var(--line); font-size: 18px; letter-spacing: .06em; color: var(--cos-ink); }
.cos-h__en { flex-basis: 100%; font-family: var(--font-en); font-size: 11px; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; color: var(--accent); }
.cos-h__n { margin-left: auto; font-size: 12px; font-weight: 500; color: var(--muted); }
.cos-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.cos-chips a { padding: 6px 14px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font-size: 13px; color: var(--cos-ink); text-decoration: none; white-space: nowrap; }
.cos-chips a:hover { border-color: var(--accent); color: var(--accent); }
.cos-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.cos-card { margin: 0; scroll-margin-top: 90px; }
.cos-card__img { position: relative; overflow: hidden; aspect-ratio: 3 / 4; border-radius: 14px; background: #eceef3; box-shadow: 0 8px 20px -12px rgba(27,32,48,.45); }
.cos-card__img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.cos-card:hover .cos-card__img img { transform: scale(1.04); }
.cos-card__cap { display: flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 14px; font-weight: 700; color: var(--cos-ink); }
.cos-card__no { font-family: var(--font-en); font-size: 11px; font-weight: 600; color: var(--accent); letter-spacing: .05em; }
.cos-own { margin-top: 8px; }
.cos-own p { margin: 0; padding: 16px 18px; border-radius: 14px; background: #fff; border: 1px solid var(--line); font-size: 14px; line-height: 1.9; }
.cos-own__btn { display: flex; align-items: center; justify-content: center; margin: 14px auto 0; max-width: 340px; padding: 13px 20px; border-radius: 999px; background: var(--accent); color: #fff !important; font-weight: 700; font-size: 14.5px; letter-spacing: .06em; text-decoration: none; box-shadow: 0 10px 22px -12px var(--accent); }
.cos-own__btn::after { content: "→"; margin-left: 10px; }
.cos-note { margin-top: 26px; padding: 16px 18px; border-radius: 14px; background: #fff5f7; border: 1px dashed rgba(214,63,96,.4); }
.cos-note__h { margin: 0 0 8px; font-size: 14px; font-weight: 700; color: var(--accent); letter-spacing: .08em; }
.cos-note ul { margin: 0; padding: 0; list-style: none; }
.cos-note li { position: relative; padding-left: 1.2em; font-size: 13px; line-height: 1.8; color: #4a4f60; }
.cos-note li + li { margin-top: 4px; }
.cos-note li::before { content: "※"; position: absolute; left: 0; color: var(--accent); }
@media (max-width: 699px) {
	.pg-cosplay .entry .wrap { padding-left: 14px; padding-right: 14px; }
	.cos-hero { margin: 0 -2px; padding: 26px 16px 22px; border-radius: 18px; }
	.cos-hero__title { font-size: 19px; }
	.cos-hero__price strong { font-size: 22px; }
	.cos-h { margin-top: 28px; font-size: 17px; }
	/* 衣装名のボタン：横にスクロール */
	.cos-chips { flex-wrap: nowrap; overflow-x: auto; margin: 0 -14px 14px; padding: 0 14px 4px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.cos-chips::-webkit-scrollbar { display: none; }
	.cos-chips a { padding: 7px 14px; font-size: 12.5px; }
	.cos-grid { grid-template-columns: repeat(2, 1fr); gap: 14px 10px; }
	.cos-card__img { border-radius: 12px; }
	.cos-card__cap { margin-top: 6px; font-size: 13.5px; }
	.cos-own p { padding: 14px 15px; font-size: 13.5px; }
}
/* 料金システムの中のコスプレオプション（段の中なので帯は料金だけ） */
.cos--embed .cos-hero { padding: 20px 16px 18px; }
.cos--embed .cos-hero__price { margin-top: 0 !important; }
.cos--embed .cos-h { margin-top: 26px; }

/* 写メ日記：本文の途中の写真（2026-10-28） */
.diary-inline { margin: 14px 0; }
.diary-inline img { display: block; width: 100%; max-width: 560px; height: auto; margin: 0 auto; border-radius: 12px; }

/* 写メ日記：月別（2026-10-28） */
.diary-months { display: flex; gap: 8px; overflow-x: auto; margin: 0 0 18px; padding: 2px 0 6px; scrollbar-width: thin; }
.diary-months a { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--line); background: #fff; color: var(--ink); font-size: 13px; text-decoration: none; white-space: nowrap; }
.diary-months a small { font-size: 11px; color: var(--muted); }
.diary-months a.on { background: var(--accent); border-color: var(--accent); color: #fff; }
.diary-months a.on small { color: rgba(255,255,255,.85); }
