/* =========================================================
   LOVE CLOVER フロント共通CSS
   デザインマスター第3〜5章準拠（白基調×エメラルド×ピンク）
   ========================================================= */

/* ---------- ベース ---------- */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.lc-body, body.lc-body--gate {
	margin: 0;
	font-family: var(--font);
	font-size: 16px;
	line-height: 1.8;
	color: var(--ink);
	background: #fff;
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: var(--emerald-dark); text-decoration: none; }
a:hover { opacity: .88; }
.lc-container { max-width: var(--maxw); margin: 0 auto; padding: 0 16px; }
.lc-main { display: block; min-height: 50vh; padding-bottom: 48px; }
svg { width: 1.2em; height: 1.2em; vertical-align: -0.22em; }

/* ---------- ボタン ---------- */
.lc-btn {
	display: inline-flex; flex-direction: column; align-items: center; justify-content: center;
	gap: 0; padding: 10px 20px; border-radius: var(--radius-btn);
	font-weight: 700; font-size: 15px; line-height: 1.3; text-align: center;
	border: 2px solid transparent; cursor: pointer; transition: .18s;
}
.lc-btn small { font-size: 10.5px; font-weight: 500; opacity: .85; }
.lc-btn--pink { background: var(--pink); color: #fff !important; }
.lc-btn--pink:hover { background: var(--pink-dark); opacity: 1; }
.lc-btn--outline-pink { background: #fff; color: var(--pink) !important; border-color: var(--pink); }
.lc-btn--outline-pink:hover { background: var(--pink-light); opacity: 1; }
.lc-btn--emerald { background: var(--emerald); color: #fff !important; }
.lc-btn--emerald:hover { background: var(--emerald-dark); opacity: 1; }
.lc-btn--outline-emerald { background: #fff; color: var(--emerald-dark) !important; border-color: var(--emerald); }
.lc-btn--line { background: var(--line-green); color: #fff !important; }
.lc-btn--line:hover { filter: brightness(.92); opacity: 1; }
.lc-btn--sm { padding: 7px 10px; font-size: 13px; border-radius: 8px; width: 100%; }
.lc-btn--lg { padding: 16px 40px; font-size: 18px; border-radius: 999px; }

/* ---------- ヘッダー ---------- */
.lc-header { background: #fff; border-bottom: 1px solid var(--line); position: relative; z-index: 50; }
.lc-header__top { display: flex; align-items: center; gap: 20px; padding-top: 12px; padding-bottom: 12px; }
.lc-logo { display: flex; align-items: center; gap: 8px; color: var(--ink); }
.lc-logo__clover svg { width: 38px; height: 38px; color: var(--emerald); }
.lc-logo__text { display: flex; flex-direction: column; line-height: 1.25; }
.lc-logo__en { font-family: Georgia, "Times New Roman", serif; font-size: 24px; font-weight: 700; letter-spacing: .06em; color: var(--emerald-dark); }
.lc-logo__ja { font-size: 10.5px; color: var(--muted); }
.lc-header__tel { margin-left: auto; text-align: right; }
.lc-header__tel-number { font-size: 26px; font-weight: 800; color: var(--pink) !important; letter-spacing: .02em; }
.lc-header__tel-number svg { color: var(--pink); }
.lc-header__hours { margin: 2px 0 0; font-size: 11.5px; color: var(--muted); }
.lc-header__ctas { display: flex; gap: 10px; }
.lc-btn--reserve { min-width: 128px; padding: 8px 14px; }
.lc-hamburger { display: none; }

/* ---------- グローバルナビ ---------- */
.lc-gnav { background: #fff; border-top: 1px solid var(--line); }
.lc-gnav__list { display: flex; list-style: none; margin: 0; padding: 8px 0; gap: 4px; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.lc-gnav__list::-webkit-scrollbar { display: none; }
.lc-gnav__item { flex: 1 0 auto; }
.lc-gnav__item a {
	display: flex; flex-direction: column; align-items: center; gap: 3px;
	padding: 8px 10px; border-radius: 10px; border: 2px solid transparent;
	color: var(--ink); font-size: 12px; font-weight: 600; white-space: nowrap;
}
.lc-gnav__icon svg { width: 22px; height: 22px; color: var(--emerald); }
.lc-gnav__item a:hover { background: var(--emerald-light); opacity: 1; }
.lc-gnav__item.is-active a { background: #fff; border-color: var(--pink); color: var(--pink); box-shadow: var(--shadow); }
.lc-gnav__item.is-active .lc-gnav__icon svg { color: var(--pink); }

/* ---------- ドロワー（スマホメニュー） ---------- */
.lc-drawer { position: fixed; inset: 0; z-index: 200; background: rgba(36,50,71,.55); }
.lc-drawer__inner { position: absolute; top: 0; right: 0; bottom: 0; width: min(84vw, 360px); background: #fff; padding: 20px; overflow-y: auto; }
.lc-drawer__close { position: absolute; top: 10px; right: 14px; font-size: 26px; border: 0; background: none; color: var(--muted); cursor: pointer; }
.lc-drawer__title { font-family: Georgia, serif; letter-spacing: .2em; color: var(--emerald-dark); font-weight: 700; }
.lc-drawer__list { list-style: none; margin: 0 0 18px; padding: 0; }
.lc-drawer__list li { border-bottom: 1px solid var(--line); }
.lc-drawer__list a { display: flex; align-items: center; gap: 10px; padding: 12px 4px; color: var(--ink); font-weight: 600; }
.lc-drawer__ctas { display: grid; gap: 10px; }

/* ---------- ページタイトル帯 ---------- */
.lc-page-header { padding: 34px 0 26px; background: linear-gradient(120deg, #ffd9e6 0%, #ffeef4 45%, #d8f3f0 100%); position: relative; overflow: hidden; }
.lc-page-header::before, .lc-page-header::after {
	content: "❀"; position: absolute; font-size: 90px; color: rgba(255,79,136,.14); top: -12px; left: 3%;
}
.lc-page-header::after { content: "🍀"; left: auto; right: 3%; top: auto; bottom: -22px; color: rgba(20,184,173,.16); }
.lc-page-header__title { margin: 0; font-size: 32px; color: var(--pink); letter-spacing: .04em; }
.lc-page-header__en { font-family: Georgia, serif; font-size: 15px; color: var(--emerald-dark); letter-spacing: .18em; margin-left: 10px; }
.lc-page-header__desc { margin: 6px 0 0; font-size: 14px; color: var(--muted); }
.lc-page-header--emerald { background: linear-gradient(120deg, #b8ece7 0%, #e2f6f4 55%, #ffeef4 100%); }
.lc-page-header--emerald .lc-page-header__title { color: var(--emerald-dark); }
.lc-page-header--deep { background: var(--deep-green); }
.lc-page-header--deep .lc-page-header__title { color: #fff; }
.lc-page-header--deep .lc-page-header__en { color: var(--gold); }
.lc-page-header--deep .lc-page-header__desc { color: rgba(255,255,255,.75); }

/* ---------- パンくず ---------- */
.lc-breadcrumb { font-size: 12.5px; color: var(--muted); margin-top: 12px; }
.lc-breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 0; }
.lc-breadcrumb li + li::before { content: "›"; margin: 0 6px; color: var(--line); }
.lc-breadcrumb a { color: var(--muted); }

/* ---------- セクション見出し ---------- */
.lc-section-title { display: flex; align-items: baseline; gap: 12px; margin: 40px 0 18px; }
.lc-section-title h2 { display: flex; align-items: baseline; gap: 8px; margin: 0; font-size: 24px; color: var(--pink); }
.lc-section-title__icon svg { width: 22px; height: 22px; color: var(--emerald); }
.lc-section-title small { font-family: Georgia, serif; font-size: 12px; letter-spacing: .18em; color: var(--emerald-dark); font-weight: 500; }
.lc-section-title__more { margin-left: auto; color: var(--pink); font-size: 13.5px; font-weight: 700; }

/* ---------- 女の子カード ---------- */
.lc-cast-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.lc-cast-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-card); overflow: hidden; box-shadow: var(--shadow); transition: .18s; }
.lc-cast-card:hover { box-shadow: var(--shadow-hover); transform: translateY(-2px); }
.lc-cast-card__photo { display: block; position: relative; aspect-ratio: 3 / 4; background: var(--bg); overflow: hidden; }
.lc-cast-card__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lc-noimg { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.lc-noimg svg { width: 44px; height: 44px; color: var(--line); }
.lc-ribbon {
	position: absolute; top: 14px; left: -34px; transform: rotate(-40deg);
	width: 128px; text-align: center; padding: 3px 0;
	font-size: 11px; font-weight: 700; color: #fff; background: var(--pink);
	box-shadow: 0 2px 6px rgba(0,0,0,.15);
}
.lc-ribbon--new { background: var(--yellow); color: var(--ink); top: 12px; }
.lc-ribbon--today + .lc-ribbon--new { top: 34px; left: -26px; }
.lc-fav {
	position: absolute; top: 8px; right: 8px; width: 34px; height: 34px;
	display: flex; align-items: center; justify-content: center;
	background: rgba(255,255,255,.9); border: 1px solid var(--line); border-radius: 50%;
	color: var(--muted); cursor: pointer; transition: .15s;
}
.lc-fav:hover, .lc-fav.is-fav { color: var(--pink); border-color: var(--pink); }
.lc-fav.is-fav svg { fill: var(--pink); }
.lc-cast-card__body { padding: 10px 12px 14px; }
.lc-cast-card__name { margin: 0; font-size: 16px; font-weight: 800; }
.lc-cast-card__name a { color: var(--pink); }
.lc-cast-card__age { font-size: 13px; color: var(--muted); font-weight: 500; }
.lc-cast-card__tags { margin: 6px 0 0; display: flex; gap: 6px; flex-wrap: wrap; }
.lc-tag { font-size: 11px; padding: 2px 9px; border-radius: 999px; background: #f2edfb; color: #7c5cbf; font-weight: 600; }
.lc-tag:nth-child(2n) { background: var(--pink-light); color: var(--pink-dark); }
.lc-cast-card__shift { margin: 8px 0 0; font-size: 13px; color: var(--ink); display: flex; align-items: center; gap: 5px; }
.lc-cast-card__shift svg { color: var(--yellow); }
.lc-cast-card__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 10px; }

/* ---------- 時間帯チップ ---------- */
.lc-chip { display: inline-flex; align-items: center; gap: 5px; padding: 5px 12px; border-radius: 999px; font-size: 13px; font-weight: 700; }
.lc-chip--day { background: var(--pink-light); color: var(--pink-dark); }
.lc-chip--day svg { color: var(--yellow); }
.lc-chip--night { background: var(--emerald-light); color: var(--emerald-dark); }

/* ---------- ページネーション ---------- */
.lc-pagination { display: flex; justify-content: center; gap: 8px; margin: 34px 0 8px; }
.lc-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 40px; height: 40px; padding: 0 6px; border-radius: 50%;
	border: 1px solid var(--line); color: var(--ink); font-weight: 700; font-size: 14px; background: #fff;
}
.lc-pagination .page-numbers.current { background: var(--pink); border-color: var(--pink); color: #fff; }
.lc-pagination .page-numbers:hover { border-color: var(--pink); color: var(--pink); opacity: 1; }

/* ---------- フッターCTA ---------- */
.lc-footer-cta { background: linear-gradient(120deg, var(--pink-light), var(--emerald-light)); padding: 36px 0; margin-top: 56px; }
.lc-footer-cta__lead { text-align: center; margin: 0 0 18px; font-size: 18px; font-weight: 800; color: var(--ink); }
.lc-footer-cta__btns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.lc-cta-btn {
	display: flex; flex-direction: column; align-items: center; gap: 2px;
	padding: 18px 12px; border-radius: var(--radius-card); color: #fff !important;
	box-shadow: var(--shadow); transition: .18s; text-align: center;
}
.lc-cta-btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-hover); opacity: 1; }
.lc-cta-btn--tel { background: var(--pink); }
.lc-cta-btn--web { background: var(--pink-dark); }
.lc-cta-btn--line { background: var(--line-green); }
.lc-cta-btn svg { width: 26px; height: 26px; }
.lc-cta-btn__label { font-size: 13px; font-weight: 700; }
.lc-cta-btn__big { font-size: 24px; font-weight: 800; letter-spacing: .02em; }
.lc-cta-btn__note { font-size: 11px; opacity: .85; }

/* ---------- フッター ---------- */
.lc-footer { background: var(--ink); color: #cfd6e0; font-size: 13.5px; }
.lc-footer a { color: #cfd6e0; }
.lc-footer__inner { display: flex; gap: 48px; padding-top: 36px; padding-bottom: 28px; flex-wrap: wrap; }
.lc-footer__logo { display: flex; align-items: center; gap: 8px; font-family: Georgia, serif; font-size: 20px; color: #fff; margin: 0 0 10px; }
.lc-footer__logo svg { color: var(--emerald); width: 26px; height: 26px; }
.lc-footer__shop p { margin: 3px 0; }
.lc-footer__sitemap ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(130px, 1fr)); gap: 6px 24px; }
.lc-footer__sitemap a::before { content: "▸ "; color: var(--emerald); }
.lc-footer__bottom { border-top: 1px solid rgba(255,255,255,.12); text-align: center; padding: 14px 16px 18px; }
.lc-footer__notice { margin: 0 0 4px; font-size: 12px; color: var(--yellow); }
.lc-footer__copy { margin: 0; font-size: 12px; color: #8b95a5; }

/* ---------- スマホ固定バー ---------- */
.lc-sp-fixed-bar { display: none; }

/* =========================================================
   レスポンシブ（BP 768 / 1024）
   ========================================================= */
@media (max-width: 1024px) {
	.lc-cast-grid { grid-template-columns: repeat(3, 1fr); }
	.lc-header__ctas .lc-btn--reserve { min-width: 104px; font-size: 13px; }
	.lc-header__tel-number { font-size: 21px; }
}

@media (max-width: 768px) {
	body.lc-body { padding-bottom: 62px; } /* 固定バー分 */
	.lc-header__top { flex-wrap: wrap; gap: 8px 12px; padding-top: 8px; padding-bottom: 8px; }
	.lc-logo__en { font-size: 18px; }
	.lc-logo__ja { font-size: 9px; }
	.lc-logo__clover svg { width: 28px; height: 28px; }
	.lc-header__tel { margin-left: auto; }
	.lc-header__tel-number { font-size: 17px; color: var(--emerald-dark) !important; }
	.lc-header__tel-number svg { color: var(--emerald-dark); }
	.lc-header__hours { display: inline-block; background: var(--emerald-light); color: var(--emerald-dark); border-radius: 999px; padding: 1px 8px; font-size: 10px; }
	.lc-header__ctas { order: 4; flex: 1; }
	.lc-header__ctas .lc-btn--reserve { flex: 1; min-width: 0; font-size: 12.5px; padding: 7px 6px; }
	.lc-hamburger {
		display: flex; flex-direction: column; align-items: center; gap: 1px;
		background: none; border: 0; color: var(--emerald-dark); font-size: 10px; font-weight: 700; cursor: pointer;
	}
	.lc-hamburger svg { width: 26px; height: 26px; color: var(--emerald); }
	.lc-gnav__item a { font-size: 11px; padding: 7px 9px; }
	.lc-cast-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	.lc-page-header__title { font-size: 24px; }
	.lc-section-title h2 { font-size: 20px; }
	.lc-footer-cta__btns { grid-template-columns: 1fr; }
	.lc-footer__inner { flex-direction: column; gap: 22px; }
	.lc-footer__sitemap ul { grid-template-columns: repeat(2, 1fr); }
	.lc-sp-fixed-bar {
		display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1px;
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 150;
		background: var(--line); box-shadow: 0 -4px 14px rgba(28,44,66,.12);
	}
	.lc-sp-fixed-bar__item {
		display: flex; align-items: center; justify-content: center; gap: 6px;
		padding: 13px 4px; font-size: 13.5px; font-weight: 800; color: #fff !important;
	}
	.lc-sp-fixed-bar__item--tel { background: var(--pink); }
	.lc-sp-fixed-bar__item--web { background: var(--pink-dark); }
	.lc-sp-fixed-bar__item--line { background: var(--line-green); }
}

/* =========================================================
   ページ固有スタイル
   ========================================================= */

/* ---------- 年齢認証（age_gate_pc_confirmed 準拠：白×ミント×金細枠） ---------- */
body.lc-body--gate { background: linear-gradient(160deg, #eafaf8 0%, #ffffff 45%, #ffeef4 100%); min-height: 100vh; }
.lc-gate { display: flex; justify-content: center; padding: 28px 14px 48px; }
.lc-gate__frame {
	width: min(720px, 100%); background: rgba(255,255,255,.92);
	border: 1px solid var(--gold); outline: 4px solid rgba(201,156,66,.18); outline-offset: 4px;
	border-radius: 18px; padding: 34px 28px; text-align: center; box-shadow: var(--shadow);
}
.lc-gate__area-pill { display: inline-block; margin: 0 0 16px; padding: 5px 18px; border-radius: 999px; background: var(--emerald-light); color: var(--emerald-dark); font-size: 12.5px; font-weight: 700; }
.lc-gate__clover svg { width: 54px; height: 54px; color: var(--emerald); }
.lc-gate__brand { margin: 6px 0 0; font-family: Georgia, serif; font-size: 34px; font-weight: 700; letter-spacing: .08em; color: var(--emerald-dark); }
.lc-gate__brand-ja { margin: 2px 0 0; font-size: 13px; color: var(--muted); }
.lc-gate__brand-ja span { color: var(--pink); font-weight: 700; }
.lc-gate__catch { margin-top: 18px; }
.lc-gate__catch-main { margin: 0; font-size: 21px; font-weight: 800; color: var(--ink); }
.lc-gate__catch-main em { font-style: normal; color: var(--pink); }
.lc-gate__catch-sub { margin: 4px 0 0; font-size: 13.5px; color: var(--muted); }
.lc-gate__photo { margin-top: 14px; border-radius: var(--radius-photo); }
.lc-gate__panel { margin-top: 22px; padding: 22px 18px; border-radius: 14px; background: #fff; border: 1px solid var(--line); }
.lc-gate__question { margin: 0 0 8px; font-size: 24px; font-weight: 800; color: var(--ink); }
.lc-gate__note { margin: 2px 0; font-size: 13px; color: var(--muted); }
.lc-gate__note--red { color: var(--red); font-weight: 700; }
.lc-gate__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 18px; }
.lc-gate__enter, .lc-gate__exit {
	display: flex; flex-direction: column; align-items: center; gap: 2px;
	padding: 16px 10px; border-radius: 12px; font-weight: 800; transition: .18s;
}
.lc-gate__enter { background: linear-gradient(135deg, var(--pink), var(--pink-dark)); color: #fff !important; box-shadow: 0 8px 20px rgba(255,79,136,.35); }
.lc-gate__enter:hover { transform: translateY(-2px); opacity: 1; }
.lc-gate__exit { background: #fff; border: 2px solid var(--line); color: var(--muted) !important; }
.lc-gate__enter-main { font-size: 15.5px; }
.lc-gate__enter-sub { font-family: Georgia, serif; font-size: 12px; letter-spacing: .22em; opacity: .85; }
.lc-gate__banners { margin-top: 26px; }
.lc-gate__banners-title { font-size: 13px; color: var(--muted); margin: 0 0 10px; position: relative; }
.lc-gate__banner-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.lc-gate__banner { display: block; border-radius: 8px; overflow: hidden; border: 1px solid var(--line); }
.lc-gate__banner-ph { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 62px; background: var(--bg); color: var(--muted); font-size: 12px; font-weight: 700; }
.lc-gate__banner-ph small { font-size: 10px; font-weight: 400; }
.lc-gate__terms { margin: 20px 0 0; font-size: 11.5px; color: var(--muted); }
@media (max-width: 768px) {
	.lc-gate__frame { padding: 24px 16px; }
	.lc-gate__brand { font-size: 26px; }
	.lc-gate__question { font-size: 20px; }
	.lc-gate__btns { grid-template-columns: 1fr; }
	.lc-gate__banner-grid { grid-template-columns: 1fr; }
}

/* ---------- TOP：ヒーロー ---------- */
.lc-top-hero { display: grid; grid-template-columns: 1fr 300px; gap: 16px; margin-top: 18px; }
.lc-slider { position: relative; border-radius: var(--radius-card); overflow: hidden; box-shadow: var(--shadow); }
.lc-slider__track { display: flex; transition: transform .5s ease; }
.lc-slider__slide { flex: 0 0 100%; }
.lc-slider__slide img { width: 100%; height: 100%; object-fit: cover; display: block; aspect-ratio: 2 / 1; }
.lc-slider__ph {
	aspect-ratio: 2 / 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
	background: linear-gradient(135deg, var(--emerald-light), #fff 55%, var(--pink-light));
	color: var(--emerald-dark);
}
.lc-slider__ph strong { font-family: Georgia, serif; font-size: 30px; letter-spacing: .08em; }
.lc-slider__ph span { font-size: 12.5px; color: var(--muted); }
.lc-slider__ph--pink { background: linear-gradient(135deg, var(--pink-light), #fff 55%, var(--emerald-light)); color: var(--pink-dark); }
.lc-slider__prev, .lc-slider__next {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
	width: 38px; height: 38px; border-radius: 50%; border: 0; cursor: pointer;
	background: rgba(255,255,255,.85); color: var(--ink); font-size: 22px; line-height: 1;
	display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow);
}
.lc-slider__prev { left: 10px; }
.lc-slider__next { right: 10px; }
.lc-slider__dots { position: absolute; bottom: 10px; left: 0; right: 0; display: flex; justify-content: center; gap: 7px; }
.lc-slider__dot { width: 9px; height: 9px; border-radius: 50%; border: 0; padding: 0; background: rgba(255,255,255,.6); cursor: pointer; }
.lc-slider__dot.is-active { background: var(--pink); }
.lc-top-side { display: grid; grid-template-rows: repeat(4, 1fr); gap: 10px; }
.lc-top-side__banner {
	display: flex; align-items: center; justify-content: center;
	border-radius: 12px; overflow: hidden; font-weight: 800; font-size: 16px; color: #fff !important;
	box-shadow: var(--shadow); transition: .18s; min-height: 58px;
}
.lc-top-side__banner:hover { transform: translateY(-2px); opacity: 1; }
.lc-top-side__banner img { width: 100%; height: 100%; object-fit: cover; }
.lc-top-side__banner--pink { background: linear-gradient(135deg, var(--pink), var(--pink-dark)); }
.lc-top-side__banner--emerald { background: linear-gradient(135deg, var(--emerald), var(--emerald-dark)); }
.lc-top-side__banner--purple { background: linear-gradient(135deg, #9f7aea, #7c5cbf); }
.lc-top-side__banner--gold { background: linear-gradient(135deg, var(--gold), #a87f2e); }
.lc-more-band { text-align: center; margin: 22px 0 0; }
.lc-more-band a {
	display: inline-block; padding: 12px 48px; border-radius: 999px;
	background: var(--emerald-light); color: var(--emerald-dark); font-weight: 800; font-size: 14.5px;
}
.lc-empty { padding: 40px 16px; text-align: center; color: var(--muted); background: var(--bg); border-radius: var(--radius-card); }
.lc-empty--sm { padding: 16px 10px; font-size: 13px; }
@media (max-width: 1024px) { .lc-top-hero { grid-template-columns: 1fr; } .lc-top-side { grid-template-rows: none; grid-template-columns: repeat(2, 1fr); } }

/* ---------- TOP：写メ日記 ---------- */
.lc-diary-scroll { display: grid; grid-auto-flow: column; grid-auto-columns: 240px; gap: 14px; overflow-x: auto; padding-bottom: 10px; -webkit-overflow-scrolling: touch; }
.lc-diary-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-card); overflow: hidden; box-shadow: var(--shadow); }
.lc-diary-card a { display: block; color: var(--ink); }
.lc-diary-card__photo { display: block; position: relative; aspect-ratio: 16 / 9; background: var(--bg); }
.lc-diary-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.lc-diary-card__date { display: block; padding: 8px 12px 0; font-size: 11.5px; color: var(--muted); }
.lc-diary-card__title { display: block; padding: 2px 12px 4px; font-size: 14px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lc-diary-card__cast { display: block; padding: 0 12px 12px; font-size: 12px; color: var(--pink); font-weight: 700; }

/* ---------- TOP：ランキング ---------- */
.lc-rank-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.lc-rank-card { position: relative; text-align: center; background: #fff; border-radius: var(--radius-card); border: 2px solid var(--gold); padding: 16px 14px 18px; box-shadow: var(--shadow); }
.lc-rank-card--silver { border-color: #b7c0cc; }
.lc-rank-card--bronze { border-color: #c98d5f; }
.lc-rank-card__badge {
	position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
	padding: 3px 18px; border-radius: 999px; background: var(--gold); color: #fff; font-size: 13px; font-weight: 800;
}
.lc-rank-card--silver .lc-rank-card__badge { background: #8d99a8; }
.lc-rank-card--bronze .lc-rank-card__badge { background: #c98d5f; }
.lc-rank-card__photo { display: block; aspect-ratio: 3 / 4; border-radius: var(--radius-photo); overflow: hidden; background: var(--bg); margin-bottom: 10px; }
.lc-rank-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.lc-rank-card__name { margin: 0 0 10px; font-weight: 800; color: var(--pink); }
.lc-rank-card__name span { font-size: 13px; color: var(--muted); font-weight: 500; }
@media (max-width: 768px) { .lc-rank-grid { grid-template-columns: 1fr; } }

/* ---------- 絞り込みフォーム ---------- */
.lc-filter {
	display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px;
	background: var(--emerald-light); border-radius: var(--radius-card); padding: 16px; margin-top: 18px;
}
.lc-filter label { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; font-weight: 700; color: var(--emerald-dark); }
.lc-filter select, .lc-filter input[type="text"] {
	padding: 9px 12px; border: 1px solid var(--line); border-radius: 8px; font-size: 14px; background: #fff; min-width: 150px;
}
.lc-filter__check { flex-direction: row !important; align-items: center; gap: 6px !important; padding-bottom: 10px; }
.lc-filter .lc-btn { padding: 10px 22px; }
.lc-filter__reset { font-size: 12.5px; color: var(--muted); text-decoration: underline; padding-bottom: 12px; }
.lc-result-count { font-size: 13px; color: var(--muted); margin: 14px 0; }

/* ---------- プロフィール3カラム ---------- */
.lc-profile { display: grid; grid-template-columns: 340px 1fr 300px; gap: 22px; margin-top: 20px; }
.lc-profile__main-photo { position: relative; aspect-ratio: 3 / 4; border-radius: var(--radius-card); overflow: hidden; background: var(--bg); box-shadow: var(--shadow); }
.lc-profile__main-photo img { width: 100%; height: 100%; object-fit: cover; }
.lc-profile__thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin-top: 8px; }
.lc-profile__thumb { padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; cursor: pointer; background: var(--bg); aspect-ratio: 3 / 4; }
.lc-profile__thumb.is-active { border-color: var(--pink); }
.lc-profile__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lc-profile__actions { display: grid; gap: 10px; margin-top: 14px; }
.lc-fav--wide { flex-direction: row; gap: 6px; position: static; width: auto; height: auto; border-radius: var(--radius-btn); }
.lc-profile__badges { margin: 0 0 6px; display: flex; gap: 8px; }
.lc-badge-red { background: var(--red); color: #fff; font-size: 12px; font-weight: 800; padding: 3px 12px; border-radius: 999px; }
.lc-badge-new { background: var(--yellow); color: var(--ink); font-size: 12px; font-weight: 800; padding: 3px 12px; border-radius: 999px; }
.lc-profile__name { margin: 0; font-size: 30px; color: var(--pink); }
.lc-profile__name span { font-size: 17px; color: var(--muted); font-weight: 500; }
.lc-profile__size { margin: 4px 0 0; font-size: 15px; font-weight: 700; color: var(--ink); letter-spacing: .04em; }
.lc-profile__tags { margin: 8px 0 0; display: flex; gap: 6px; flex-wrap: wrap; }
.lc-profile__catch { margin: 14px 0 0; font-size: 17px; font-weight: 800; color: var(--emerald-dark); background: var(--emerald-light); border-radius: 10px; padding: 10px 16px; }
.lc-profile__intro { margin-top: 12px; font-size: 14.5px; }
.lc-profile__table { width: 100%; border-collapse: collapse; margin-top: 16px; font-size: 13.5px; }
.lc-profile__table th, .lc-profile__table td { border: 1px solid var(--line); padding: 8px 12px; text-align: left; }
.lc-profile__table th { background: var(--pink-light); color: var(--pink-dark); font-weight: 700; width: 17%; white-space: nowrap; }
.lc-profile__table td { width: 33%; }
.lc-profile__note { font-size: 11.5px; color: var(--muted); margin: 8px 0 0; }
.lc-side-panel { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-card); padding: 16px; margin-bottom: 14px; box-shadow: var(--shadow); }
.lc-side-panel__title { margin: 0 0 10px; font-size: 15.5px; color: var(--emerald-dark); display: flex; align-items: center; gap: 6px; }
.lc-side-panel__title svg { color: var(--emerald); }
.lc-side-panel__link { display: block; margin-top: 10px; font-size: 13px; font-weight: 700; color: var(--pink); text-align: right; }
.lc-side-panel--message { background: var(--pink-light); border-color: #ffd3e2; }
.lc-side-panel--message .lc-side-panel__title { color: var(--pink-dark); }
.lc-side-panel__body { font-size: 13.5px; }
.lc-week-list { list-style: none; margin: 0; padding: 0; }
.lc-week-list__item { display: flex; align-items: center; justify-content: space-between; padding: 7px 2px; border-bottom: 1px dashed var(--line); font-size: 13px; }
.lc-week-list__date { font-weight: 700; }
.lc-week-list__item.is-sat .lc-week-list__date { color: var(--blue); }
.lc-week-list__item.is-sun .lc-week-list__date { color: var(--red); }
.lc-week-list__off { color: var(--muted); font-size: 12.5px; }
.lc-option-list { list-style: none; margin: 0; padding: 0; font-size: 13.5px; }
.lc-option-list li { display: flex; justify-content: space-between; padding: 7px 2px; border-bottom: 1px dashed var(--line); }
.lc-option-list strong { color: var(--pink-dark); }
.lc-btn--block { width: 100%; }
@media (max-width: 1024px) { .lc-profile { grid-template-columns: 1fr 1fr; } .lc-profile__right { grid-column: 1 / -1; } }
@media (max-width: 768px) { .lc-profile { grid-template-columns: 1fr; } }

/* ---------- 出勤予定 ---------- */
.lc-sched-tabs { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; margin-top: 20px; }
.lc-sched-tab {
	display: flex; flex-direction: column; align-items: center; gap: 1px;
	padding: 10px 4px; border-radius: 12px; border: 2px solid var(--line); background: #fff;
	cursor: pointer; font-family: inherit; transition: .15s;
}
.lc-sched-tab__date { font-size: 16px; font-weight: 800; color: var(--ink); }
.lc-sched-tab__wd { font-size: 12px; color: var(--muted); font-weight: 700; }
.lc-sched-tab.is-sat .lc-sched-tab__wd { color: var(--blue); }
.lc-sched-tab.is-sun .lc-sched-tab__wd { color: var(--red); }
.lc-sched-tab:hover { border-color: var(--pink); }
.lc-sched-tab.is-active { background: var(--pink); border-color: var(--pink); }
.lc-sched-tab.is-active .lc-sched-tab__date, .lc-sched-tab.is-active .lc-sched-tab__wd { color: #fff; }
.lc-sched-table-wrap { overflow-x: auto; margin-top: 18px; border-radius: var(--radius-card); border: 1px solid var(--line); box-shadow: var(--shadow); }
.lc-sched-table { width: 100%; min-width: 760px; border-collapse: collapse; background: #fff; font-size: 13.5px; }
.lc-sched-table th { background: var(--emerald-light); color: var(--emerald-dark); padding: 10px 8px; font-size: 13px; border-bottom: 2px solid var(--emerald); }
.lc-sched-table td { border-bottom: 1px solid var(--line); padding: 10px 8px; text-align: center; vertical-align: middle; }
.lc-sched-table__cast-col { width: 260px; }
.lc-sched-table__cast { text-align: left !important; }
.lc-sched-cast { display: flex; gap: 10px; align-items: center; color: var(--ink); }
.lc-sched-cast__photo { flex: 0 0 56px; width: 56px; height: 74px; border-radius: 8px; overflow: hidden; background: var(--bg); }
.lc-sched-cast__photo img { width: 100%; height: 100%; object-fit: cover; }
.lc-sched-cast__info { display: flex; flex-direction: column; gap: 3px; font-size: 12.5px; }
.lc-sched-cast__info strong { color: var(--pink); font-size: 14px; }
.lc-sched-cast__tags { display: flex; gap: 4px; }
.lc-sched-cast__info .lc-btn--sm { width: auto; padding: 4px 10px; font-size: 11px; }
.lc-sched-table__off { color: var(--line); }
.lc-sched-legend { display: flex; gap: 12px; justify-content: flex-end; margin-top: 12px; }

/* ---------- 料金システム（deep緑） ---------- */
.lc-price { display: grid; grid-template-columns: 1fr 300px; gap: 24px; margin-top: 24px; }
.lc-price__heading {
	font-size: 20px; color: var(--deep-green); margin: 0 0 14px; padding-left: 12px;
	border-left: 5px solid var(--gold);
}
.lc-price__main section { margin-bottom: 36px; }
.lc-price-table-wrap { overflow-x: auto; border-radius: var(--radius-card); border: 1px solid var(--line); box-shadow: var(--shadow); }
.lc-price-table { width: 100%; min-width: 680px; border-collapse: collapse; background: #fff; font-size: 14px; }
.lc-price-table thead th { background: var(--deep-green); color: #fff; padding: 12px 10px; font-size: 13.5px; }
.lc-price-table tbody th, .lc-price-table tbody td { border-bottom: 1px solid var(--line); padding: 12px 10px; text-align: center; }
.lc-price-table__course { text-align: left !important; min-width: 190px; }
.lc-price-table__course-name { display: block; font-size: 15px; font-weight: 800; color: var(--ink); }
.lc-price-table__course-desc { display: block; font-size: 11px; color: var(--muted); font-weight: 400; }
.lc-price-table td { font-weight: 800; color: var(--deep-green); font-size: 15px; }
.lc-price-table td small { font-size: 11px; font-weight: 500; color: var(--muted); }
.lc-badge-osusume, .lc-badge-ninki { display: inline-block; margin: 2px 4px 2px 0; padding: 1px 10px; border-radius: 999px; font-size: 10.5px; font-weight: 800; }
.lc-badge-osusume { background: var(--gold); color: #fff; }
.lc-badge-ninki { background: var(--pink); color: #fff; }
.lc-price-table__row--pink th { border-left: 4px solid var(--pink); }
.lc-price-table__row--emerald th { border-left: 4px solid var(--emerald); }
.lc-price-table__row--gold th { border-left: 4px solid var(--gold); }
.lc-price-table__row--purple th { border-left: 4px solid #9f7aea; }
.lc-price-table__row--blue th { border-left: 4px solid var(--blue); }
.lc-price-table__row--deep th { border-left: 4px solid var(--deep-green); }
.lc-option-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.lc-option-card { display: flex; justify-content: space-between; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; font-size: 13.5px; box-shadow: var(--shadow); }
.lc-option-card__name { font-weight: 700; }
.lc-option-card__price { font-weight: 800; color: var(--deep-green); }
.lc-side-panel--deep .lc-side-panel__title { color: var(--deep-green); }
.lc-sim { background: var(--emerald-light); border-radius: var(--radius-card); padding: 20px; }
.lc-sim__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.lc-sim__grid label { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; font-weight: 700; color: var(--emerald-dark); }
.lc-sim__grid select { padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; font-size: 14px; background: #fff; }
.lc-sim__options { margin-top: 12px; font-size: 13.5px; }
.lc-sim__options summary { cursor: pointer; font-weight: 700; color: var(--emerald-dark); }
.lc-sim__option-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; margin-top: 10px; }
.lc-sim__option-list label { display: flex; align-items: center; gap: 6px; background: #fff; border-radius: 8px; padding: 8px 10px; }
.lc-sim__result { margin: 18px 0 0; text-align: center; font-size: 17px; font-weight: 800; color: var(--ink); }
.lc-sim__total { display: inline-block; margin-left: 10px; font-size: 30px; color: var(--pink); }
.lc-sim__note { text-align: center; font-size: 11.5px; color: var(--muted); margin: 6px 0 0; }
.lc-sp-note { font-size: 11.5px; color: var(--muted); margin-top: 26px; }
@media (max-width: 1024px) { .lc-price { grid-template-columns: 1fr; } .lc-option-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) { .lc-sim__grid, .lc-sim__option-list, .lc-option-grid { grid-template-columns: 1fr; } }

/* ---------- ホテル一覧 ---------- */
.lc-hotel-note { display: flex; align-items: center; gap: 14px; background: var(--emerald-light); border-radius: var(--radius-card); padding: 14px 18px; margin-top: 20px; font-size: 13.5px; }
.lc-hotel-note__badge { flex: 0 0 auto; background: var(--emerald); color: #fff; padding: 6px 14px; border-radius: 999px; font-size: 12.5px; font-weight: 800; }
.lc-hotel-note p { margin: 0; }
.lc-hotel-block { margin-top: 28px; }
.lc-hotel-block__title { display: flex; align-items: center; gap: 10px; font-size: 19px; margin: 0 0 12px; color: var(--ink); }
.lc-hotel-block__num { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; color: #fff; font-size: 14px; font-weight: 800; background: var(--pink); }
.lc-hotel-table-wrap { overflow-x: auto; border-radius: var(--radius-card); border: 1px solid var(--line); box-shadow: var(--shadow); }
.lc-hotel-table { width: 100%; min-width: 640px; border-collapse: collapse; background: #fff; font-size: 13.5px; }
.lc-hotel-table th { padding: 10px 12px; font-size: 12.5px; text-align: left; }
.lc-hotel-table td { padding: 10px 12px; border-bottom: 1px solid var(--line); }
.lc-hotel-table__name { font-weight: 800; }
.lc-hotel-table__fee { font-weight: 800; color: var(--pink-dark); white-space: nowrap; }
.lc-hotel-block--pink .lc-hotel-block__num { background: var(--pink); } .lc-hotel-block--pink th { background: var(--pink-light); color: var(--pink-dark); }
.lc-hotel-block--rose .lc-hotel-block__num { background: #e0507a; } .lc-hotel-block--rose th { background: #fde8ef; color: #c23a63; }
.lc-hotel-block--orange .lc-hotel-block__num { background: #f08c3c; } .lc-hotel-block--orange th { background: #fdeedd; color: #c96a1e; }
.lc-hotel-block--yellow .lc-hotel-block__num { background: #d9a713; } .lc-hotel-block--yellow th { background: #faf3d3; color: #9c7a0c; }
.lc-hotel-block--green .lc-hotel-block__num { background: var(--emerald); } .lc-hotel-block--green th { background: var(--emerald-light); color: var(--emerald-dark); }
.lc-hotel-block--blue .lc-hotel-block__num { background: var(--blue); } .lc-hotel-block--blue th { background: #e3edfd; color: #2361c4; }
.lc-hotel-block--lavender .lc-hotel-block__num { background: #8f7ae0; } .lc-hotel-block--lavender th { background: #ece7fb; color: #6a55c0; }
.lc-hotel-block--purple .lc-hotel-block__num { background: #b060c8; } .lc-hotel-block--purple th { background: #f5e6f9; color: #8d3fa5; }
.lc-travel-panel { margin-top: 36px; background: var(--bg); border-radius: var(--radius-card); padding: 20px; }
.lc-travel-panel__chips { display: flex; gap: 10px; margin-top: 8px; }

/* ---------- コスプレ一覧 ---------- */
.lc-cos-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.lc-cos-tab { padding: 8px 18px; border-radius: 999px; border: 2px solid var(--emerald); color: var(--emerald-dark); font-size: 13.5px; font-weight: 700; background: #fff; }
.lc-cos-tab.is-active { background: var(--emerald); color: #fff; }
.lc-cos-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.lc-cos-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-card); overflow: hidden; box-shadow: var(--shadow); }
.lc-cos-card__photo { display: block; position: relative; aspect-ratio: 3 / 4; background: var(--bg); }
.lc-cos-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.lc-cos-card__crown { position: absolute; top: 8px; left: 8px; background: var(--gold); color: #fff; font-size: 11px; font-weight: 800; padding: 3px 10px; border-radius: 999px; }
.lc-cos-card__body { padding: 10px 12px 14px; }
.lc-cos-card__name { margin: 0; font-size: 15px; font-weight: 800; color: var(--ink); }
.lc-cos-card__stars { margin: 3px 0 0; color: var(--gold); font-size: 13px; letter-spacing: 1px; }
.lc-cos-card__casts { margin: 6px 0 0; font-size: 11.5px; color: var(--muted); }
.lc-cos-card__casts a { color: var(--pink); font-weight: 700; margin-right: 4px; }
@media (max-width: 1024px) { .lc-cos-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px) { .lc-cos-grid { grid-template-columns: repeat(2, 1fr); } }

/* ---------- ポイント ---------- */
.lc-point-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 24px; }
.lc-point-feature { text-align: center; background: #fff; border: 2px solid var(--deep-green); border-radius: var(--radius-card); padding: 22px 16px; box-shadow: var(--shadow); }
.lc-point-feature__icon svg { width: 38px; height: 38px; color: var(--gold); }
.lc-point-feature h2 { font-size: 15.5px; margin: 10px 0 4px; color: var(--ink); }
.lc-point-feature h2 strong { color: var(--pink); font-size: 19px; }
.lc-point-feature p { margin: 0; font-size: 12.5px; color: var(--muted); }
.lc-point-panel { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-card); padding: 22px; margin-top: 22px; box-shadow: var(--shadow); }
.lc-point-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.lc-point-steps li { display: flex; gap: 14px; align-items: flex-start; }
.lc-point-steps__num { flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%; background: var(--deep-green); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; }
.lc-point-steps p { margin: 2px 0 0; font-size: 13.5px; color: var(--muted); }
.lc-point-red { color: var(--red); font-weight: 700; }
.lc-point-check { text-align: center; margin: 16px 0 6px; }
.lc-point-url { text-align: center; font-size: 13px; color: var(--emerald-dark); font-weight: 700; margin: 0; }
.lc-point-banner { display: flex; align-items: center; justify-content: center; gap: 18px; flex-wrap: wrap; margin-top: 26px; background: linear-gradient(120deg, var(--pink-light), var(--gold-light)); border-radius: var(--radius-card); padding: 22px; }
.lc-point-banner p { margin: 0; font-size: 17px; font-weight: 800; }
.lc-point-banner strong { color: var(--pink); font-size: 21px; }
@media (max-width: 768px) { .lc-point-features { grid-template-columns: 1fr; } }

/* ---------- ステップ/注意/理由（beginner・card・recruit共通） ---------- */
.lc-step-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.lc-step-grid--4 { grid-template-columns: repeat(4, 1fr); }
.lc-step-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-card); padding: 18px 14px; box-shadow: var(--shadow); position: relative; }
.lc-step-card__num { font-family: Georgia, serif; font-size: 22px; font-weight: 700; color: var(--pink); }
.lc-step-card h3 { margin: 6px 0 6px; font-size: 14.5px; }
.lc-step-card p { margin: 0; font-size: 12.5px; color: var(--muted); }
.lc-step-card--mint { border-top: 4px solid var(--emerald); }
.lc-step-card--pink { border-top: 4px solid var(--pink); }
.lc-step-card--yellow { border-top: 4px solid var(--yellow); }
.lc-caution-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.lc-caution-list li { display: flex; gap: 8px; align-items: flex-start; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; font-size: 13.5px; }
.lc-caution-list__icon { color: var(--emerald); font-weight: 800; }
.lc-caution-list--pink .lc-caution-list__icon { color: var(--pink); }
.lc-reason-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.lc-reason-grid--6 { grid-template-columns: repeat(3, 1fr); }
.lc-reason-card { text-align: center; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-card); padding: 20px 14px; box-shadow: var(--shadow); }
.lc-reason-card__icon svg { width: 30px; height: 30px; color: var(--emerald); }
.lc-reason-card h3 { margin: 8px 0 6px; font-size: 14.5px; color: var(--pink-dark); }
.lc-reason-card p { margin: 0; font-size: 12.5px; color: var(--muted); }
@media (max-width: 1024px) { .lc-step-grid, .lc-step-grid--4 { grid-template-columns: repeat(2, 1fr); } .lc-reason-grid, .lc-reason-grid--6 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) { .lc-caution-list { grid-template-columns: 1fr; } .lc-step-grid, .lc-step-grid--4, .lc-reason-grid, .lc-reason-grid--6 { grid-template-columns: 1fr; } }

/* ---------- カード決済 ---------- */
.lc-card-page { margin-top: 20px; }
.lc-card-safe { background: linear-gradient(120deg, var(--emerald-light), var(--pink-light)); border-radius: var(--radius-card); padding: 18px 22px; font-size: 14px; }
.lc-card-safe p { margin: 0; }
.lc-card-caution { margin-top: 30px; }
.lc-card-brands { display: flex; gap: 12px; flex-wrap: wrap; }
.lc-card-brands span { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 12px 22px; font-weight: 800; color: var(--ink); box-shadow: var(--shadow); }
.lc-card-brands__note { font-size: 12px; color: var(--muted); margin-top: 8px; }
.lc-ssl-band { margin-top: 28px; text-align: center; background: var(--bg); border-radius: 10px; padding: 12px; font-size: 13px; color: var(--muted); }
.lc-ssl-band p { margin: 0; }

/* ---------- 求人 ---------- */
.lc-recruit-hero { background: linear-gradient(120deg, #ffd9e6, #ffeef4 55%, #d8f3f0); padding: 52px 0 46px; }
.lc-recruit-hero--dekasegi { background: linear-gradient(120deg, #ffe3c4, #ffeef4 55%, #ffd9e6); }
.lc-recruit-hero--local { background: linear-gradient(120deg, #d8f3f0, #e2f6f4 55%, #ffeef4); }
.lc-recruit-hero--staff { background: linear-gradient(120deg, #1f2c44, #2c3d5c); }
.lc-recruit-hero--staff .lc-recruit-hero__title { color: #fff; }
.lc-recruit-hero--staff .lc-recruit-hero__sub { color: rgba(255,255,255,.8); }
.lc-recruit-hero--staff .lc-recruit-hero__pill { background: var(--gold); color: #fff; }
.lc-recruit-hero__pill { display: inline-block; background: var(--pink); color: #fff; padding: 5px 18px; border-radius: 999px; font-size: 13px; font-weight: 800; margin: 0 0 14px; }
.lc-recruit-hero__title { margin: 0; font-size: 32px; line-height: 1.45; color: var(--ink); }
.lc-recruit-hero__sub { margin: 12px 0 0; font-size: 15px; color: var(--muted); }
.lc-recruit-hero__ctas { display: flex; gap: 14px; margin-top: 22px; flex-wrap: wrap; }
.lc-recruit-gates { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 26px; }
.lc-recruit-gate { display: flex; flex-direction: column; gap: 4px; border-radius: var(--radius-card); padding: 26px 24px; color: #fff !important; box-shadow: var(--shadow); transition: .18s; }
.lc-recruit-gate:hover { transform: translateY(-2px); opacity: 1; box-shadow: var(--shadow-hover); }
.lc-recruit-gate--dekasegi { background: linear-gradient(135deg, var(--pink), var(--pink-dark)); }
.lc-recruit-gate--local { background: linear-gradient(135deg, var(--emerald), var(--emerald-dark)); }
.lc-recruit-gate__label { font-size: 22px; font-weight: 800; }
.lc-recruit-gate__desc { font-size: 13px; opacity: .9; }
.lc-recruit-gate__arrow { margin-top: 6px; font-size: 13.5px; font-weight: 700; }
.lc-voice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.lc-voice-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-card); padding: 20px; box-shadow: var(--shadow); }
.lc-voice-card__stars { color: var(--gold); margin: 0 0 6px; letter-spacing: 2px; }
.lc-voice-card h3 { margin: 0 0 8px; font-size: 15.5px; color: var(--pink-dark); }
.lc-voice-card__body { font-size: 13px; color: var(--muted); }
.lc-voice-card__meta { margin: 10px 0 0; font-size: 12px; font-weight: 700; color: var(--emerald-dark); }
.lc-faq { display: grid; gap: 10px; }
.lc-faq__item { background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; box-shadow: var(--shadow); }
.lc-faq__q { display: flex; align-items: center; gap: 12px; width: 100%; padding: 15px 18px; border: 0; background: none; font-family: inherit; font-size: 14.5px; font-weight: 700; color: var(--ink); text-align: left; cursor: pointer; }
.lc-faq__q span { flex: 0 0 28px; width: 28px; height: 28px; border-radius: 50%; background: var(--pink); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; }
.lc-faq__a { display: none; padding: 0 18px 15px 58px; font-size: 13.5px; color: var(--muted); position: relative; }
.lc-faq__a span { position: absolute; left: 18px; top: -2px; width: 28px; height: 28px; border-radius: 50%; background: var(--emerald); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 14px; }
.lc-faq__item.is-open .lc-faq__a { display: block; }
.lc-apply { margin-top: 36px; }
@media (max-width: 768px) {
	.lc-recruit-hero__title { font-size: 23px; }
	.lc-recruit-gates { grid-template-columns: 1fr; }
	.lc-voice-grid { grid-template-columns: 1fr; }
}

/* ---------- スタッフ求人 ---------- */
.lc-job-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.lc-job-card { background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--gold); border-radius: var(--radius-card); padding: 20px; box-shadow: var(--shadow); }
.lc-job-card h3 { margin: 0 0 6px; font-size: 17px; color: var(--ink); }
.lc-job-card p { margin: 0; font-size: 13px; color: var(--muted); }
.lc-job-card__salary { margin-top: 10px !important; font-size: 17px !important; font-weight: 800; color: var(--pink) !important; }
.lc-benefit-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.lc-benefit-list li { display: flex; gap: 6px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; font-size: 13px; font-weight: 600; }
.lc-req-table { width: 100%; border-collapse: collapse; font-size: 14px; background: #fff; border-radius: var(--radius-card); overflow: hidden; box-shadow: var(--shadow); }
.lc-req-table th { width: 160px; background: var(--gold-light); color: #8a6a24; padding: 12px 16px; text-align: left; border-bottom: 1px solid var(--line); }
.lc-req-table td { padding: 12px 16px; border-bottom: 1px solid var(--line); }
@media (max-width: 1024px) { .lc-benefit-list { grid-template-columns: repeat(2, 1fr); } .lc-job-grid { grid-template-columns: 1fr; } }
@media (max-width: 768px) { .lc-benefit-list { grid-template-columns: 1fr; } .lc-req-table th { width: 110px; } }

/* ---------- 記事詳細（日記・ブログ） ---------- */
.lc-diary-single { max-width: 760px; margin-top: 24px; }
.lc-diary-article { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-card); padding: 26px; box-shadow: var(--shadow); }
.lc-diary-article__date { margin: 0; font-size: 12.5px; color: var(--muted); }
.lc-diary-article__title { margin: 6px 0 16px; font-size: 24px; color: var(--ink); }
.lc-diary-article__photo { margin-bottom: 16px; }
.lc-diary-article__photo img { border-radius: var(--radius-photo); }
.lc-diary-article__body { font-size: 15px; }
.lc-diary-author { display: flex; gap: 14px; align-items: center; background: var(--pink-light); border-radius: var(--radius-card); padding: 16px; margin-top: 18px; }
.lc-diary-author__photo { flex: 0 0 72px; width: 72px; height: 96px; border-radius: 10px; overflow: hidden; background: #fff; }
.lc-diary-author__photo img { width: 100%; height: 100%; object-fit: cover; }
.lc-diary-author__name { margin: 0 0 8px; font-weight: 800; color: var(--pink-dark); }
.lc-diary-author__btns { display: flex; gap: 8px; }
.lc-diary-author__btns .lc-btn--sm { width: auto; }
.lc-back-link { text-align: center; margin-top: 26px; }

/* ---------- スタッフブログ一覧 ---------- */
.lc-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 22px; }
.lc-blog-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-card); overflow: hidden; box-shadow: var(--shadow); transition: .18s; }
.lc-blog-card:hover { box-shadow: var(--shadow-hover); transform: translateY(-2px); }
.lc-blog-card a { display: block; color: var(--ink); }
.lc-blog-card__photo { display: block; aspect-ratio: 16 / 9; background: var(--bg); }
.lc-blog-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.lc-blog-card__date { display: block; padding: 12px 16px 0; font-size: 12px; color: var(--emerald-dark); font-weight: 700; }
.lc-blog-card__title { display: block; padding: 2px 16px 6px; font-size: 15.5px; font-weight: 800; }
.lc-blog-card__excerpt { display: block; padding: 0 16px 16px; font-size: 12.5px; color: var(--muted); }
@media (max-width: 768px) { .lc-blog-grid { grid-template-columns: 1fr; } }

/* ---------- 404 ---------- */
.lc-404 { text-align: center; padding: 70px 16px; }
.lc-404__clover svg { width: 60px; height: 60px; color: var(--emerald); }
.lc-404 h1 { font-family: Georgia, serif; color: var(--emerald-dark); margin: 12px 0; }
.lc-404 p { color: var(--muted); }

/* ---------- 応募フォーム（プラグインショートコード用） ---------- */
.lc-apply-form { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-card); padding: 26px; box-shadow: var(--shadow); }
.lc-apply-form .form-row { display: grid; gap: 4px; margin-bottom: 16px; }
.lc-apply-form label { font-size: 13.5px; font-weight: 700; color: var(--ink); }
.lc-apply-form label .required { color: var(--red); font-size: 11px; margin-left: 6px; }
.lc-apply-form input[type="text"], .lc-apply-form input[type="tel"], .lc-apply-form input[type="email"], .lc-apply-form select, .lc-apply-form textarea {
	padding: 11px 14px; border: 1px solid var(--line); border-radius: 8px; font-size: 15px; font-family: inherit;
}
.lc-apply-form textarea { min-height: 120px; }
.lc-apply-form .submit-row { text-align: center; margin-top: 20px; }
.lc-apply-form button[type="submit"] {
	padding: 15px 60px; border: 0; border-radius: 999px; background: var(--pink); color: #fff;
	font-size: 16.5px; font-weight: 800; cursor: pointer; font-family: inherit; box-shadow: 0 8px 20px rgba(255,79,136,.35);
}
.lc-apply-form button[type="submit"]:hover { background: var(--pink-dark); }
.lc-apply-form .form-note { font-size: 12px; color: var(--muted); }
.lc-form-success { background: var(--emerald-light); color: var(--emerald-dark); border-radius: 10px; padding: 16px; font-weight: 700; text-align: center; }
.lc-form-error { background: #fdecec; color: var(--red); border-radius: 10px; padding: 12px 16px; font-size: 13.5px; }
