/*
Theme Name: LiveGift
Description: LIVE GIFT オリジナルテーマ（Figma ①-1 LP 準拠）
Version: 1.0.0
Author:
Text Domain: livegift
*/

/* -------------------------------------------------------------------------
   Design tokens（Figma LIVE GIFT 指示書）
   ------------------------------------------------------------------------- */
:root {
	--lg-bg: #ffffff;
	--lg-dark: #1a1a1a;
	--lg-text: #000000;
	--lg-muted: #b5b5b5;
	--lg-placeholder: #d9d9d9;
	--lg-noshi-bg: #191815;
	--lg-noshi-gold: #ffeed7;
	--lg-red: #ff0000;
	--lg-max: 1143px;
	--font-sans: "Noto Sans JP", sans-serif;
	--font-display: "Trajan Pro 3", "Times New Roman", "Liberation Serif", serif;
}

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

body {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 16px;
	line-height: 1.6;
	color: var(--lg-text);
	background: var(--lg-dark);
	-webkit-font-smoothing: antialiased;
}

a {
	color: inherit;
	text-decoration: none;
}

a:hover {
	opacity: 0.85;
}

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

main {
	background: var(--lg-bg);
}

/* -------------------------------------------------------------------------
   Layout shell
   ------------------------------------------------------------------------- */
.lg-wrap {
	width: 100%;
	max-width: 1500px;
	margin-left: auto;
	margin-right: auto;
}

/* -------------------------------------------------------------------------
   Site header（Header / 2003:298）
   ------------------------------------------------------------------------- */
.site-header {
	background: var(--lg-dark);
	position: relative;
	z-index: 200;
}

.site-header__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 80px;
	padding: 0 32px;
	width: 100%;
	box-sizing: border-box;
}

.site-header__brand {
	display: flex;
	align-items: center;
	height: 32px;
}

.site-header__logo,
.woocommerce .site-header__logo,
.woocommerce-page .site-header__logo {
	height: 32px;
	width: auto;
	max-width: 200px;
	object-fit: contain;
	object-position: left center;
}

.site-header__nav {
	display: flex;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
	justify-content: flex-end;
}

.site-header__nav a {
	font-weight: 500;
	font-size: 14px;
	line-height: 1.43;
	letter-spacing: 0.025em;
	color: var(--lg-muted);
}

.site-header__dropdown-trigger {
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	font: inherit;
	font-weight: 500;
	font-size: 14px;
	line-height: 1.43;
	letter-spacing: 0.025em;
	color: var(--lg-muted);
	cursor: pointer;
}

.site-header__account-panel {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	width: 100%;
	z-index: 201;
	background: #fff;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12);
	overflow: hidden;
	max-height: 0;
	opacity: 0;
	transform: translateY(-10px);
	pointer-events: none;
	transition:
		max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1),
		opacity 0.28s ease-out,
		transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.site-header__account-panel.site-header__account-panel--open {
	max-height: 280px;
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

.site-header__account-panel[hidden] {
	display: none !important;
}

.site-header__account-panel:not([hidden]) {
	display: block;
}

@media (prefers-reduced-motion: reduce) {
	.site-header__account-panel {
		transition: none;
	}
}

.site-header__account-panel a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	box-sizing: border-box;
	padding: 16px 24px;
	font-weight: 500;
	font-size: 12px;
	line-height: 2.5;
	letter-spacing: 0.025em;
	color: #0a0a0a;
	text-align: center;
}

.site-header__account-panel a:last-child {
	border-bottom: none;
}

.site-header__account-panel a:hover {
	opacity: 1;
	background: rgba(0, 0, 0, 0.04);
}

/* -------------------------------------------------------------------------
   WooCommerce — フォーム枠線（テーマレイアウトと二重にならないよう無効化）
   ------------------------------------------------------------------------- */
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
	border: none;
	padding-left: 0;
	padding-right: 0;
}

.woocommerce form.register {
	margin-bottom: 0;
}

/* WooCommerce — インラインエラー（Stripe 等）が重複表示される場合は非表示 */
#add_payment_method .checkout .checkout-inline-error-message,
.woocommerce-cart .checkout .checkout-inline-error-message,
.woocommerce-checkout .checkout .checkout-inline-error-message {
	display: none;
}

/* WooCommerce — 必須マーク */
.woocommerce form .form-row .required {
	color: #ff0000;
}

/* WooCommerce — form-row の clearfix 疑似要素を無効化 */
.woocommerce form .form-row::after,
.woocommerce form .form-row::before,
.woocommerce-page form .form-row::after,
.woocommerce-page form .form-row::before {
	display: none;
}

/* WooCommerce — カート内訳（小計・送料）を非表示 */
tr.cart-subtotal {
	display: none;
}

tr.woocommerce-shipping-totals.shipping {
	display: none;
}

/* -------------------------------------------------------------------------
   Hero（Section / 49:1864）
   ------------------------------------------------------------------------- */
.lg-hero {
	position: relative;
	min-height: 810px;
	overflow: hidden;
	background: var(--lg-placeholder);
}

.lg-hero__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
}

.lg-hero__overlay {
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.1);
	pointer-events: none;
}

.lg-hero__inner {
	position: relative;
	z-index: 1;
	min-height: 810px;
	padding: 96px 52px 120px;
	display: flex;
	flex-direction: column;
}

@media (max-width: 600px) {

	.lg-hero,
	.lg-hero__inner {
		min-height: 50vh;
	}
}

.lg-hero__title {
	margin: 0;
	font-weight: 700;
	font-size: clamp(2.5rem, 6vw, 5rem);
	line-height: 1.2;
	max-width: 560px;
}

.lg-hero__title-line {
	display: block;
}

.lg-hero__cta {
	margin-top: auto;
	align-self: flex-start;
	margin-left: -20px;
	padding: 32px 0 0;
}

.lg-hero__scroll {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: none;
	background: transparent;
	line-height: 0;
	text-decoration: none;
	cursor: pointer;
	transform: rotate(180deg);
}

.lg-hero__scroll img {
	display: block;
	width: 32px;
	height: auto;
	object-fit: contain;
}

.lg-hero__tagline {
	position: absolute;
	right: 32px;
	bottom: 48px;
	max-width: min(680px, 90vw);
	margin: 0;
	font-weight: 400;
	font-size: clamp(0.875rem, 2vw, 1.25rem);
	line-height: 1.6;
	letter-spacing: 0.2em;
	text-align: right;
	color: #fff;
	text-shadow:
		0 -2px 15px rgba(0, 0, 0, 1),
		0 4px 4px rgba(0, 0, 0, 0.25);
}

@media (max-width: 768px) {
	.lg-hero__inner {
		padding: 64px 24px 100px;
		min-height: min(810px, 100svh);
	}

	.lg-hero__tagline {
		position: static;
		text-align: left;
		margin-top: 32px;
		max-width: none;
	}

	.site-header__row {
		height: auto;
		min-height: 64px;
		padding: 12px 16px;
		flex-wrap: wrap;
		gap: 12px;
	}
}

/* -------------------------------------------------------------------------
   Venues section（49:1875 / more 展開時は 3 列グリッド・最終行は左詰め）
   ------------------------------------------------------------------------- */
.lg-venues {
	padding: 96px 48px 48px;
	background: var(--lg-bg);
}

.lg-venues__title {
	margin: 0 0 48px;
	text-align: center;
	font-weight: 700;
	font-size: 28px;
	line-height: 1.5;
	color: #000;
	scroll-margin-top: 80px;
}

/* more 展開パネル: 開閉アニメーションは front-page.js が max-height 等を実測して制御 */
.lg-venues__expanded[hidden] {
	display: none !important;
}

.lg-venues__expanded:not([hidden]) {
	overflow: hidden;
}

.lg-venues__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	max-width: 1047px;
	margin: 0 auto;
}

.lg-venues__grid--all {
	margin-bottom: 0;
}

/* more 展開: 3 列 × 行数自動。3 の倍数でない最終行もセル先頭から並ぶ（grid 既定で左詰め） */
.lg-venues__grid--expanded {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
	max-width: 1047px;
	margin: 0 auto;
	justify-content: start;
	justify-items: stretch;
}

@media (max-width: 900px) {

	.lg-venues__grid,
	.lg-venues__grid--expanded {
		/* grid-template-columns: 1fr; */
		max-width: 400px;
	}
}

@media (max-width: 900px) {

	.lg-venues__grid,
	.lg-venues__grid--expanded {
		grid-template-columns: repeat(2, 1fr);
		max-width: 940px;
	}
}

/* more 展開かつ Swiper: PC は 1スライド最大9件（3列×3行）／スマホは先頭から8件ずつ（1枚目にプレビュー4件＋続き4件） */
.lg-venues--expanded-slider .lg-venues__carousel {
	position: relative;
	display: flex;
	align-items: center;
	gap: 16px;
	max-width: 1200px;
	margin: 0 auto;
}

.lg-venues__arrow--prev {
	left: 1.5%;
}

.lg-venues__arrow--next {
	right: 1.5%;
}

@media screen and (max-width:1100px) {
	.lg-venues__arrow--prev {
		left: -3.5%;
	}

	.lg-venues__arrow--next {
		right: -3.5%;
	}
}

.lg-venues__arrow {
	position: absolute;
	top: calc(50% - 34px);
	z-index: 2;
	flex-shrink: 0;
	width: 68px;
	height: 68px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: #E5E7EB;
	color: #0a0a0a;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: border-color 0.2s, opacity 0.2s;
}

.lg-venues__arrow svg {
	width: 70px;
	aspect-ratio: 1 / 1;
}

.lg-venues__arrow svg path {
	stroke: #000;
	stroke-width: 2.25;
}

.lg-venues__arrow:hover {
	border-color: #0a0a0a;
}

.lg-venues__arrow:focus-visible {
	outline: 2px solid #0a0a0a;
	outline-offset: 3px;
}

.lg-venues__arrow.swiper-button-disabled {
	cursor: default;
	pointer-events: none;
	opacity: 0.5;
}

.lg-venues__swiper {
	flex: 1;
	min-width: 0;
	overflow: hidden;
}

.lg-venues__slide-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
	max-width: 1047px;
	margin: 0 auto;
	justify-content: start;
}

@media (max-width: 900px) {

	.lg-venues--expanded-slider .lg-venues__carousel {
		gap: 8px;
		padding: 0;
	}

	.lg-venues__slide-grid {
		/* grid-template-columns: 1fr; */
		grid-template-columns: repeat(2, 1fr);
		max-width: 400px;
	}

	.lg-venues__arrow {
		width: 36px;
		height: 36px;
	}

	.lg-venues__arrow svg {
		width: 18px;
		height: 18px;
	}
}

@media (max-width: 600px) {
	.lg-venues__arrow {
		width: 20px;
		height: 20px;
	}

	.lg-venues__arrow svg {
		width: 10px;
		height: 10px;
	}
}

.lg-venue-card {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.lg-venue-card__link {
	display: flex;
	flex-direction: column;
	gap: 12px;
	text-decoration: none;
	color: inherit;
}

.lg-venue-card__link:focus-visible {
	outline: 2px solid var(--lg-muted, #888);
	outline-offset: 4px;
}

.lg-venue-card__thumb {
	position: relative;
	aspect-ratio: 328 / 330;
	background: var(--lg-placeholder);
	border-radius: 0;
	width: 100%;
	overflow: hidden;
}

/* Figma 49:1861 — 画像未設定時のグレーダミー */
.lg-venue-card__thumb--dummy {
	background-color: var(--lg-placeholder);
	background-image: linear-gradient(145deg,
			rgba(255, 255, 255, 0.22) 0%,
			rgba(255, 255, 255, 0) 42%,
			rgba(0, 0, 0, 0.04) 100%);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.06);
}

.lg-venue-card__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.lg-venue-card__title {
	margin: 0;
	font-weight: 700;
	font-size: 16px;
	line-height: 1.5;
}

.lg-venues__more {
	display: flex;
	justify-content: center;
	margin-top: 48px;
}

.lg-venues.is-expanded .lg-venues__more {
	margin-top: 40px;
}

.lg-venues__more-btn {
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	font: inherit;
	font-weight: 700;
	font-size: 20px;
	line-height: 1.5;
	color: var(--lg-muted);
	cursor: pointer;
	text-decoration: none;
}

.lg-venues__more-btn:hover {
	color: #0a0a0a;
}

.lg-venues__more-btn:focus-visible {
	outline: 2px solid #0a0a0a;
	outline-offset: 4px;
}

.lg-venues__about-title {
	text-align: center;
	margin: 24px 0 0;
	font-weight: 700;
	font-size: 28px;
	line-height: 1.5;
}

@media (max-width: 768px) {
	.lg-venues {
		padding: 48px 24px 32px;
	}
}

/* -------------------------------------------------------------------------
   Livehouse taxonomy archive（Figma 27:2 / ①-2 LP）
   ------------------------------------------------------------------------- */
.lg-lh-arch__products {
	padding: 0 48px 80px;
	background: var(--lg-bg);
}

.lg-lh-arch__name-row {
	display: flex;
	justify-content: center;
	margin-top: 24px;
	margin-bottom: 24px;
}

.lg-lh-arch__name-badge {
	margin: 0;
	min-height: 44px;
	min-width: 207px;
	padding: 12px 29px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #d9d9d9;
	font-weight: 700;
	font-size: 14px;
	line-height: 1.2;
	letter-spacing: 0.4em;
	text-align: center;
	color: var(--lg-text, #000);
	box-sizing: border-box;
}

.lg-lh-arch__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	max-width: 1047px;
	margin: 0 auto;
}

@media (max-width: 900px) {
	.lg-lh-arch__grid {
		grid-template-columns: repeat(2, 1fr);
		max-width: 940px;
	}
}

.lg-lh-arch__card {
	margin: 0;
}

.lg-lh-arch__card-link {
	display: flex;
	flex-direction: column;
	gap: 12px;
	text-decoration: none;
	color: inherit;
}

.lg-lh-arch__card-link--disabled {
	cursor: not-allowed;
}

.lg-lh-arch__card-link--disabled .lg-lh-arch__meta {
	opacity: 0.7;
}

.lg-lh-arch__card-link:focus-visible {
	outline: 2px solid var(--lg-muted, #888);
	outline-offset: 4px;
}

.lg-lh-arch__thumb {
	position: relative;
	aspect-ratio: 1 / 1;
	width: 100%;
	overflow: hidden;
	background: var(--lg-placeholder);
}

.lg-lh-arch__soldout {
	position: absolute;
	left: 12px;
	top: 12px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 6px 10px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	font-size: 12px;
	line-height: 1;
	letter-spacing: 0.02em;
	color: #ffffff;
	background: rgba(10, 10, 10, 0.82);
	border: 1px solid #000000;
	box-sizing: border-box;
	pointer-events: none;
}

.lg-lh-arch__thumb--sold-out .lg-lh-arch__thumb-img {
	opacity: 0.45;
	filter: blur(0);
}

.lg-lh-arch__thumb-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	filter: blur(5px);
	transition: filter 0.4s ease;
	will-change: filter;
}

@media (hover: hover) and (pointer: fine) {
	.lg-lh-arch__card-link:hover .lg-lh-arch__thumb-img {
		filter: blur(0);
	}
}

.lg-lh-arch__card-link:focus-within .lg-lh-arch__thumb-img {
	filter: blur(0);
}

@media screen and (max-width:900px) {
	.lg-lh-arch__thumb-img {
		filter: blur(0);
	}
}

.lg-lh-arch__meta {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	min-height: 60px;
}

.lg-lh-arch__title {
	margin: 0;
	flex: 1 1 auto;
	font-weight: 700;
	font-size: 16px;
	line-height: 1.5;
}

.lg-lh-arch__price {
	margin: 0;
	flex: 0 0 auto;
	font-weight: 700;
	font-size: 16px;
	line-height: 1.5;
	text-align: right;
}

.lg-lh-arch__price .woocommerce-Price-amount {
	font-weight: 700;
}

.lg-lh-arch__empty {
	margin: 0 auto;
	max-width: 1047px;
	text-align: center;
	font-size: 16px;
	line-height: 1.6;
}

.lg-lh-arch__pagination {
	max-width: 1047px;
	margin: 48px auto 0;
}

.lg-lh-arch__pagination .navigation.pagination,
.lg-lh-arch__pagination .nav-links {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

.lg-lh-arch__pagination .page-numbers {
	font-weight: 500;
	font-size: 14px;
	color: var(--lg-muted);
	text-decoration: none;
	padding: 4px 8px;
}

.lg-lh-arch__pagination .page-numbers.current {
	color: var(--lg-text, #000);
	font-weight: 700;
}

@media screen and (max-width:900px) {
	.lg-lh-arch__meta {
		flex-direction: column;
	}
}

@media (max-width: 768px) {
	.lg-lh-arch__products {
		padding: 0 24px 64px;
	}

	.lg-lh-arch__name-row {
		justify-content: center;
	}

	.lg-lh-arch__name-badge {
		width: auto;
		justify-content: center;
	}
}

/* -------------------------------------------------------------------------
   Digital のし / supporter（Group 2）
   ------------------------------------------------------------------------- */
.lg-noshi {
	padding: 48px 24px 80px;
	position: relative;
}

/* 上: 見出し・リード・画像 / 下: supporter パネル */
.lg-noshi__head {
	text-align: center;
}

.lg-noshi__lead {
	margin: 0 auto 40px;
	max-width: 56em;
	font-weight: 700;
	font-size: 28px;
	line-height: 1.5;
	color: #000;
}

.lg-noshi__media {
	display: flex;
	justify-content: center;
	width: 100%;
	margin: 0 0 56px;
}

.lg-noshi__img {
	display: block;
	width: 70%;
	max-width: 70%;
	height: auto;
}

.lg-noshi__panel-wrap {
	display: flex;
	justify-content: center;
}

.lg-noshi__panel {
	max-width: 532px;
	width: 100%;
	margin: 0;
	background: var(--lg-noshi-bg);
	border-radius: 4px;
	padding: 40px 24px 48px;
	position: relative;
	min-height: 400px;
}

.lg-noshi__label {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: 12px;
	line-height: 1.2;
	color: var(--lg-noshi-gold);
	text-align: center;
	display: block;
	margin-bottom: 32px;
}

.lg-noshi__names {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px 24px;
	max-width: 280px;
	margin: 0 auto;
	font-family: "Inter", var(--font-sans);
	font-size: 12px;
	line-height: 1.21;
	color: var(--lg-noshi-gold);
}

.lg-noshi__names span {
	display: block;
}

.lg-noshi__section-title {
	margin: 0 0 24px;
	font-weight: 700;
	font-size: 28px;
	line-height: 1.5;
	color: #000;
	text-align: center;
}

@media (max-width: 900px) {
	.lg-noshi__lead {
		font-size: clamp(1.125rem, 4.2vw, 28px);
		margin-bottom: 32px;
	}

	.lg-noshi__media {
		margin-bottom: 40px;
	}

	.lg-noshi__img {
		width: 88%;
		max-width: 88%;
	}
}

/* Decorative arrows（Figma の赤矢印は簡略化） */
.lg-noshi__deco {
	display: none;
}

/* -------------------------------------------------------------------------
   Site footer（Footer / 95:256）
   ------------------------------------------------------------------------- */
.site-footer {
	background: var(--lg-dark);
	color: #fff;
	padding: 24px 32px 32px;
	margin-top: 0;
}

.site-footer__inner {
	max-width: var(--lg-max);
	margin: 0 auto;
}

.site-footer__title {
	margin: 0 0 12px;
	font-weight: 400;
	font-size: 12px;
	line-height: 1.33;
	letter-spacing: 0.05em;
	color: #fff;
}

.site-footer__links {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 48px;
	margin-bottom: 24px;
}

.site-footer__col {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 128px;
}

.site-footer__col a {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 12px;
	line-height: 1.33;
	color: var(--lg-muted);
}

.site-footer__col a::before {
	content: "▶";
	flex-shrink: 0;
}

.site-footer__copy {
	margin: 0;
	font-size: 12px;
	line-height: 1.33;
	color: var(--lg-muted);
}

@media (max-width: 600px) {
	.site-footer__links {
		flex-direction: column;
		gap: 24px;
	}
}

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

/* -------------------------------------------------------------------------
   文書系・狭幅レイアウト（固定ページ等で再利用 / Figma ⑧プラポリ準拠の見た目）
   ------------------------------------------------------------------------- */
.lg-content {
	background: #ffffff;
	padding: 0 24px 80px;
}

.lg-content__inner {
	max-width: 460px;
	margin: 0 auto;
	padding-top: 64px;
}

/**
 * コンテンツ最大幅 1100px（FAQ 等で再利用）
 *
 * 使い方:
 * - 文書系レイアウト（.lg-content）内: class="lg-content__inner lg-content__inner--1100"
 * - .lg-content__inner を使わないブロック: 子要素に .lg-width-cap--1100（幅100%・中央寄せ）
 */
.lg-content__inner.lg-content__inner--1100 {
	max-width: 1100px;
	width: 100%;
	box-sizing: border-box;
}

.lg-width-cap--1100 {
	width: 100%;
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

.lg-content__title {
	margin: 0 0 48px;
	font-weight: 700;
	font-size: 32px;
	line-height: 1.5;
	text-align: center;
	color: #0a0a0a;
}

.lg-content__body {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.lg-content__section {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-bottom: 32px;
}

.lg-content__heading {
	margin: 0;
	font-weight: 700;
	font-size: 20px;
	line-height: 1.5;
	color: #0a0a0a;
}

.page-terms-of-service .lg-content__body>.lg-content__heading:first-child {
	margin-top: 0;
}

.lg-content__text {
	margin: 0;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.625;
	color: #364153;
}

.lg-content__list {
	margin: 0;
	padding: 0;
	list-style: none;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.625;
	color: #364153;
}

.lg-content__list li {
	margin: 0 0 4px;
}

.lg-content__list li:last-child {
	margin-bottom: 0;
}

.lg-content__meta {
	margin: 0 0 32px;
	font-size: 14px;
	line-height: 1.625;
	color: #4a5565;
}

.lg-content__section--panel {
	padding-top: 16px;
	margin-bottom: 0;
}

.lg-content__panel {
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	padding: 25px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.lg-content__panel-title {
	margin: 0;
	font-weight: 500;
	font-size: 14px;
	line-height: 1.625;
	color: #0a0a0a;
}

.lg-content__panel-body {
	margin: 0;
	font-size: 14px;
	line-height: 1.625;
	color: #4a5565;
}

.lg-content__panel-body a {
	color: #4a5565;
	text-decoration: none;
}

@media (max-width: 600px) {
	.lg-content__inner {
		padding-top: 80px;
	}

	.lg-content__title {
		font-size: 26px;
		margin-bottom: 32px;
	}
}

/* -------------------------------------------------------------------------
   Q&A（Figma node 32-864 準拠・accordion）
   ------------------------------------------------------------------------- */

.lg-faq__header {
	margin-bottom: 8px;
}

.lg-faq .lg-content__title {
	margin-bottom: 16px;
}

.lg-faq__section {
	margin: 0 0 48px;
}

.lg-faq__section:last-of-type {
	margin-bottom: 0;
}

.lg-faq__section-title {
	margin: 0 0 20px;
	font-weight: 700;
	font-size: 20px;
	line-height: 1.5;
	color: #0a0a0a;
}

.lg-faq__lead {
	margin: 0 0 40px;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.625;
	text-align: center;
	color: #4a5565;
}

.lg-faq__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.lg-faq__list-item {
	margin: 0;
}

.lg-faq__item {
	border-bottom: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #ffffff;
	overflow: hidden;
}

.lg-faq__question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	padding: 18px 0;
	margin: 0;
	font-weight: 500;
	font-size: 16px;
	line-height: 1.5;
	text-align: left;
	color: #0a0a0a;
	cursor: pointer;
	list-style: none;
	box-sizing: border-box;
}

.lg-faq__question::-webkit-details-marker {
	display: none;
}

.lg-faq__question:focus {
	outline: none;
}

.lg-faq__question:focus-visible {
	outline: 2px solid #0a0a0a;
	outline-offset: 2px;
}

.lg-faq__question-text {
	flex: 1;
	min-width: 0;
}

.lg-faq__icon {
	flex-shrink: 0;
	width: 10px;
	height: 10px;
	border-right: 2px solid #4a5565;
	border-bottom: 2px solid #4a5565;
	transform: rotate(45deg);
	transition: transform 0.2s ease;
	margin-top: -4px;
	margin-right: 8px;
}

.lg-faq__item[open] .lg-faq__icon {
	transform: rotate(225deg);
	margin-top: 4px;
}

/* 回答エリア: max-height でスライド（開閉の数値制御は faq-accordion.js） */
.lg-faq__answer-clip {
	overflow: hidden;
	max-height: 0;
	transition: max-height 0.42s cubic-bezier(0.32, 0.72, 0, 1);
}

.lg-faq__item[open] .lg-faq__answer-clip {
	max-height: 4800px;
}

.lg-faq__answer {
	min-height: 0;
	overflow: hidden;
	padding: 0 0px 20px;
}

.lg-faq__answer-text {
	margin: 0;
	padding-top: 16px;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.625;
	color: #0a0a0a;
}

@media (prefers-reduced-motion: reduce) {
	.lg-faq__answer-clip {
		transition: none;
	}

	.lg-faq__item[open] .lg-faq__answer-clip {
		max-height: none;
	}

	.lg-faq__item:not([open]) .lg-faq__answer-clip {
		max-height: 0;
		overflow: hidden;
	}
}

@media (max-width: 600px) {
	.lg-faq__lead {
		margin-bottom: 32px;
		text-align: left;
	}

	.lg-faq__section {
		margin-bottom: 40px;
	}

	.lg-faq__section-title {
		font-size: 18px;
		margin-bottom: 16px;
	}

	.lg-faq__question {
		padding: 16px 16px;
	}

	.lg-faq__answer {
		padding: 0 16px 16px;
	}
}

/* -------------------------------------------------------------------------
   LIVEGIFT とは（Figma 共有用 node 11-120 修正反映）
   ------------------------------------------------------------------------- */
.lg-about {
	background: #ffffff;
	padding: 0 0 80px;
}

.lg-about__wrap {
	padding: 56px 24px 0;
	box-sizing: border-box;
}

.lg-about__intro {
	text-align: center;
	margin-bottom: 40px;
}

.lg-about__page-title {
	margin: 0;
	font-weight: 700;
	font-size: clamp(2.25rem, 6.5vw, 4.5rem);
	line-height: 1.15;
	letter-spacing: -0.02em;
	text-align: center;
	color: #0a0a0a;
}

.lg-about__pains {
	margin-bottom: 56px;
}

.lg-about__pains-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	max-width: 803px;
	margin: 0 auto;
	padding: 0;
	list-style: none;
}

.lg-about__pain {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 12px;
}

.lg-about__pain-visual {
	width: 100%;
	aspect-ratio: 246 / 280;
	border: 1px solid #e5e7eb;
	box-sizing: border-box;
	overflow: hidden;
	background: #f3f4f6;
}

.lg-about__pain-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.lg-about__pain-text {
	margin: 0;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.625;
	text-align: center;
	color: #364153;
}

.lg-about__message {
	margin-bottom: 64px;
}

.lg-about__message-box {
	max-width: 803px;
	margin: 0 auto;
	padding: 24px 33px;
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.lg-about__message-p {
	margin: 0;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.75;
	color: #364153;
}

.lg-about__message-p--emphasis {
	font-weight: 500;
}

.lg-about__message-list {
	margin: 0;
	padding: 0;
	list-style: none;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.75;
	color: #364153;
}

.lg-about__steps-section {
	margin-bottom: 64px;
}

.lg-about__steps-head {
	text-align: center;
	margin-bottom: 32px;
}

.lg-about__steps-title {
	margin: 0 0 4px;
	font-weight: 700;
	font-size: 24px;
	line-height: 1.5;
	color: #0a0a0a;
}

.lg-about__steps-sub {
	margin: 0;
	font-weight: 700;
	font-size: 24px;
	line-height: 1.5;
	color: #0a0a0a;
}

.lg-about__steps-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	max-width: 803px;
	margin: 0 auto;
	padding: 0;
	list-style: none;
	counter-reset: lg-about-step;
}

.lg-about__step-card {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* ステップカード上のダミー画像（183×104、実画像差し替え時は src のみ変更） */
.lg-about__step-visual {
	display: block;
	width: 100%;
	max-width: 183px;
	height: auto;
	flex-shrink: 0;
	box-sizing: border-box;
}

.lg-about__step-content {
	min-height: 180px;
	padding: 24px 25px;
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	box-sizing: border-box;
}

.lg-about__step-label {
	font-weight: 700;
	font-size: 14px;
	line-height: 1.43;
	color: #4a5565;
}

.lg-about__step-text {
	margin: 0;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.625;
	color: #364153;
}

.lg-about__mechanism {
	max-width: 803px;
	margin: 0 auto 97px;
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.lg-about__mech-heading {
	margin: 0;
	font-weight: 700;
	font-size: 24px;
	line-height: 1.5;
	color: #0a0a0a;
}

.lg-about__mech-block {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.lg-about__mech-p {
	margin: 0;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.75;
	color: #364153;
}

.lg-about__mech-note {
	margin: 0;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.625;
	color: #4a5565;
}

.lg-about__mech-sub {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.lg-about__mech-h3 {
	margin: 0;
	font-weight: 700;
	font-size: 20px;
	line-height: 1.5;
	color: #0a0a0a;
}

.lg-about__cta-wrap {
	text-align: center;
	margin: 0 0 24px;
}

.lg-about__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 192px;
	min-height: 56px;
	padding: 0 24px;
	box-sizing: border-box;
	font-weight: 500;
	font-size: 16px;
	line-height: 1.5;
	color: #ffffff;
	background: #0a0a0a;
	border: 1px solid #0a0a0a;
	border-radius: 0;
	transition: opacity 0.2s ease;
}

.lg-about__cta:hover {
	opacity: 0.88;
	color: #ffffff;
}

@media (max-width: 900px) {
	.lg-about__pains-grid {
		grid-template-columns: 1fr;
		max-width: 400px;
	}

	.lg-about__steps-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.lg-about__step-visual {
		max-width: initial;
	}

	.lg-about__step-content {
		min-height: 130px;
	}
}

@media (max-width: 600px) {
	.lg-about__wrap {
		padding-top: 40px;
	}

	.lg-about__message-box {
		padding: 24px 20px;
	}

	.lg-about__steps-title,
	.lg-about__steps-sub {
		font-size: 20px;
	}

	.lg-about__steps-grid {
		grid-template-columns: repeat(1, 1fr);
	}

	.lg-about__step-content {
		min-height: initial;
	}
}

/* -------------------------------------------------------------------------
   ライブハウス向け（Figma 共有用 node 11-121 修正反映）
   ------------------------------------------------------------------------- */
.lg-livehouse {
	background: #ffffff;
	padding: 0 0 80px;
}

.lg-livehouse__wrap {
	max-width: 1060px;
	margin-left: auto;
	margin-right: auto;
	padding: 56px 24px 0;
	box-sizing: border-box;
}

.lg-livehouse__intro {
	text-align: center;
	margin-bottom: 40px;
}

.lg-livehouse__page-title {
	margin: 0;
	font-weight: 700;
	font-size: clamp(2.25rem, 6.5vw, 4.5rem);
	line-height: 1.15;
	letter-spacing: -0.02em;
	text-align: center;
	color: #0a0a0a;
}

.lg-livehouse__issues {
	margin-bottom: 80px;
}

.lg-livehouse__issues-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.lg-livehouse__issue {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.lg-livehouse__issue-visual {
	display: block;
	width: 100%;
	max-width: 327px;
	height: auto;
	flex-shrink: 0;
	box-sizing: border-box;
	border-radius: 10px;
}

.lg-livehouse__issue-title {
	margin: 0;
	font-weight: 700;
	font-size: 16px;
	line-height: 1.5;
	color: #0a0a0a;
	white-space: pre-line;
}

.lg-livehouse__issue-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.lg-livehouse__issue-item {
	margin: 0;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.5;
	color: #4a5565;
	white-space: pre-line;
}

.lg-livehouse__solution {
	margin-bottom: 80px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 40px;
	text-align: center;
}

.lg-livehouse__solution-lead {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.lg-livehouse__solution-line {
	margin: 0;
	font-weight: 400;
	font-size: 18px;
	line-height: 1.78;
	color: #0a0a0a;
}

.lg-livehouse__solution-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: center;
}

.lg-livehouse__solution-list li {
	font-weight: 400;
	font-size: 16px;
	line-height: 1.5;
	color: #4a5565;
}

.lg-livehouse__merits {
	margin-bottom: 80px;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 60px;
}

.lg-livehouse__merits-title {
	margin: 0;
	font-weight: 700;
	font-size: 32px;
	line-height: 1.5;
	text-align: center;
	color: #0a0a0a;
}

.lg-livehouse__merits-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.lg-livehouse__merit {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	text-align: center;
}

.lg-livehouse__merit-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 120px;
	height: 120px;
	border-radius: 50%;
	background: #f3f4f6;
	font-weight: 400;
	font-size: 48px;
	line-height: 1;
	color: #0a0a0a;
}

.lg-livehouse__merit-label {
	margin: 0;
	font-weight: 700;
	font-size: 18px;
	line-height: 1.5;
	color: #0a0a0a;
}

.lg-livehouse__compare {
	margin-bottom: 80px;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 60px;
}

.lg-livehouse__compare-title {
	margin: 0;
	font-weight: 700;
	font-size: 32px;
	line-height: 1.5;
	text-align: center;
	color: #0a0a0a;
}

.lg-livehouse__compare-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	padding: 41px;
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	box-sizing: border-box;
}

.lg-livehouse__compare-table {
	width: 100%;
	min-width: 520px;
	border-collapse: collapse;
	table-layout: fixed;
}

.lg-livehouse__compare-th,
.lg-livehouse__compare-item,
.lg-livehouse__compare-cell {
	padding: 19px 12px 19px 0;
	font-size: 14px;
	line-height: 1.5;
	vertical-align: middle;
	border-bottom: 1px solid #e5e7eb;
	box-sizing: border-box;
}

.lg-livehouse__compare-th {
	padding-top: 0;
	padding-left: 0;
	font-weight: 700;
	text-align: center;
	color: #0a0a0a;
}

.lg-livehouse__compare-th--item {
	text-align: left;
}

.lg-livehouse__compare-th--classic {
	font-weight: 500;
	font-size: 14px;
	color: #9ca3af;
}

.lg-livehouse__compare-th--livegift {
	font-size: 16px;
	font-weight: 700;
	color: #0a0a0a;
}

.lg-livehouse__compare-item {
	font-weight: 700;
	text-align: left;
	color: #0a0a0a;
}

.lg-livehouse__compare-cell {
	text-align: center;
}

.lg-livehouse__compare-cell--classic {
	font-size: 14px;
	font-weight: 400;
	color: #9ca3af;
}

.lg-livehouse__compare-cell--livegift {
	font-size: 16px;
	font-weight: 700;
	color: #0a0a0a;
}

.lg-livehouse__compare-table tbody tr:last-child .lg-livehouse__compare-item,
.lg-livehouse__compare-table tbody tr:last-child .lg-livehouse__compare-cell {
	border-bottom: none;
}

.lg-livehouse__steps-section {
	margin-bottom: 33px;
	padding: 41px;
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	box-sizing: border-box;
}

.lg-livehouse__steps-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.lg-livehouse__step-row {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 40px;
	margin: 0;
}

.lg-livehouse__step-thumb {
	display: block;
	width: 80px;
	height: 80px;
	flex-shrink: 0;
	object-fit: cover;
	box-sizing: border-box;
}

.lg-livehouse__step-body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 15px 0 0;
	box-sizing: border-box;
}

.lg-livehouse__step-label {
	font-weight: 700;
	font-size: 24px;
	line-height: 1.5;
	color: #0a0a0a;
}

.lg-livehouse__step-text {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.lg-livehouse__step-line {
	margin: 0;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.5;
	color: #4a5565;
}

.lg-livehouse__bottom {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 64px;
}

.lg-livehouse__faq-box {
	padding: 41px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	box-sizing: border-box;
}

.lg-livehouse__faq-text {
	margin: 0;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.5;
	text-align: center;
	color: #4a5565;
}

.lg-livehouse__faq-link {
	color: inherit;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.lg-livehouse__faq-link:hover {
	opacity: 0.85;
}

.lg-livehouse__cta-wrap {
	margin: 0;
	text-align: center;
}

.lg-livehouse__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 264px;
	min-height: 67px;
	padding: 0 32px;
	box-sizing: border-box;
	font-weight: 700;
	font-size: 18px;
	line-height: 1.5;
	color: #ffffff;
	background: #0a0a0a;
	border: 1px solid #000000;
	border-radius: 0;
	transition: opacity 0.2s ease;
}

.lg-livehouse__cta:hover {
	opacity: 0.88;
	color: #ffffff;
}

@media (max-width: 900px) {

	.lg-livehouse__issues-grid,
	.lg-livehouse__merits-grid {
		grid-template-columns: 1fr;
		max-width: 400px;
		margin-left: auto;
		margin-right: auto;
	}

	.lg-livehouse__issue-title {
		text-align: center;
	}

	/* メリットはスマホでも横並び（3カラム） */
	.lg-livehouse__merits-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 16px;
		max-width: none;
	}

	.lg-livehouse__merit-label {
		font-size: 15px;
	}

	.lg-livehouse__merit-icon {
		width: 72px;
		height: 72px;
		font-size: 28px;
	}

	.lg-livehouse__issue-visual {
		max-width: 70%;
		margin-inline: auto;
	}

	.lg-livehouse__step-row {
		gap: 24px;
	}
}

@media (max-width: 600px) {
	.lg-livehouse__wrap {
		padding-top: 40px;
	}

	.lg-livehouse__merits-title,
	.lg-livehouse__compare-title {
		font-size: 24px;
	}

	.lg-livehouse__step-label {
		font-size: 20px;
	}

	.lg-livehouse__compare-table-wrap,
	.lg-livehouse__steps-section,
	.lg-livehouse__faq-box {
		padding: 24px 16px;
	}

	/* 比較表: 横スクロール無しで全体を見せる（折り返し表示） */
	.lg-livehouse__compare-table-wrap {
		overflow-x: visible;
	}

	.lg-livehouse__compare-table {
		min-width: 0;
	}

	.lg-livehouse__compare-item,
	.lg-livehouse__compare-cell,
	.lg-livehouse__compare-th {
		font-size: 12px;
		word-break: break-word;
		overflow-wrap: anywhere;
	}
}

/* --------------------------------------------------------------------------
   WooCommerce（商品ページ・カート周り）
   -------------------------------------------------------------------------- */

.lg-wc {
	padding: 96px 0 80px;
}

.lg-wc__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 24px;
}

.lg-product__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px 64px;
	align-items: start;
}

@media (max-width: 900px) {
	.lg-product__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
}

/* Woo 既定のギャラリー幅（テーマ外セレクタで上書き） */
.woocommerce div.product div.images.woocommerce-product-gallery {
	width: 100% !important;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image a {
	outline-offset: 0 !important;
}

/* 右カラム summary をカラム幅いっぱしに（grid 内で Woo 既定 48% を打ち消し） */
.woocommerce div.product div.summary {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.lg-product .woocommerce-product-gallery {
	margin: 0 0 32px;
	width: 100%;
}

.lg-product .woocommerce-product-gallery__wrapper {
	width: 100% !important;
	max-width: 100%;
}

.lg-product .woocommerce-product-gallery .flex-viewport {
	width: 100% !important;
}

.lg-product .woocommerce-product-gallery__image,
.lg-product .woocommerce-product-gallery .woocommerce-product-gallery__image {
	width: 100%;
}

.lg-product .woocommerce-product-gallery__image img,
.lg-product .woocommerce-product-gallery .flex-active-slide img,
.lg-product .woocommerce-product-gallery .wp-post-image {
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	display: block;
	object-fit: cover;
}

.lg-product__col--left {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.lg-product__description {
	margin: 0 0 28px;
	padding: 0;
	border: none;
}

.lg-product__description-title {
	margin: 0 0 12px;
	font-family: var(--font-sans);
	font-weight: 700;
	font-size: 20px;
	line-height: 1.5;
	color: #0a0a0a;
}

.lg-product__description-body {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 14px;
	line-height: 1.57;
	color: #4a5565;
}

.lg-product__description-body p:last-child {
	margin-bottom: 0;
}

.lg-product__field--noshi-left {
	margin-top: 0;
}

.lg-product__field--noshi {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.lg-product__field--noshi .lg-product__noshi-lead,
.lg-product__field--noshi .lg-product__noshi-example,
.lg-product__field--noshi .lg-product__noshi-note {
	margin: 0;
}

/* Figma ②商品ページ: Heading 2（商品説明と同系・Noto Sans 20px 700） */
.lg-product__noshi-heading {
	margin: 0 0 0;
	padding: 0;
	border: none;
	font-family: var(--font-sans);
	font-weight: 700;
	font-size: 20px;
	line-height: 1.5;
	color: #0a0a0a;
}

.lg-product__livehouse-wrap {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 20px;
	margin: 0 0 20px;
}

.lg-product__livehouse-item {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	max-width: 100%;
	font-weight: 500;
	font-size: 14px;
	line-height: 1.5;
	color: #4a5565;
	letter-spacing: 0.02em;
}

.lg-product__livehouse-img {
	display: block;
	width: 56px;
	height: 56px;
	object-fit: cover;
}

.lg-product__livehouse-name {
	min-width: 0;
}

.lg-product .product_title {
	margin: 0 0 10px;
	font-family: var(--font-sans);
	font-weight: 700;
	font-size: 24px;
	line-height: 1.5;
	letter-spacing: 0;
	color: #0a0a0a;
}

/*
 * 価格行（Figma ②商品ページ & デザイン指示画像）
 * 横一列・縦センター: 「価格」小(灰) + 金額(大・黒・¥も同サイズ) + 「（税込）」小(ラベル同色)
 */
.lg-product__price-block {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-start;
	gap: 12px 16px;
	box-sizing: border-box;
	margin: 0 0 24px;
	padding: 25px 0 57px;
	border-top: 1px solid #e5e7eb;
	border-bottom: 1px solid #e5e7eb;
	background: transparent;
	min-width: 0;
}

.lg-product__price-label {
	flex: 0 0 auto;
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: 14px;
	line-height: 1.4285714285714286;
	color: #4a5565;
}

.lg-product__price-value-wrap {
	flex: 0 1 auto;
	display: flex;
	align-items: center;
	min-width: 0;
}

.lg-product__price-tax-suffix {
	flex: 0 0 auto;
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: 14px;
	line-height: 1.4285714285714286;
	color: #4a5565;
}

.lg-product p.price.lg-product__price,
.lg-product .lg-product__price {
	margin: 0;
	padding: 0;
	display: block;
	font-family: var(--font-sans);
	font-weight: 700;
	font-size: 30px !important;
	line-height: 1.2;
	color: #0a0a0a !important;
}

.lg-product .lg-product__price .woocommerce-Price-currencySymbol,
.lg-product .lg-product__price .woocommerce-Price-amount,
.lg-product .lg-product__price .woocommerce-Price-amount bdi {
	font-weight: 700;
	font-size: 1em;
	line-height: inherit;
	color: inherit;
	font-style: normal;
}

.lg-product .lg-product__price del,
.lg-product .lg-product__price .woocommerce-Price-amount {
	font-style: normal;
}

.lg-product .lg-product__price ins {
	text-decoration: none;
	margin-left: 0.35em;
}

.lg-product .lg-product__price del {
	font-weight: 500;
	font-size: 0.85em;
	color: var(--lg-muted);
	opacity: 1;
}

/* 価格 HTML 内に付くサフィックスをラベルと同トーンに（重複表示を防ぐため PHP 側と併用） */
.lg-product .lg-product__price .woocommerce-price-suffix,
.lg-product .lg-product__price small.woocommerce-price-suffix {
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: 14px !important;
	line-height: 1.4285714285714286 !important;
	color: #4a5565 !important;
	vertical-align: baseline;
}

@media (max-width: 520px) {
	.lg-product__price-block {
		flex-wrap: wrap;
		align-items: center;
		row-gap: 8px;
	}

	.lg-product p.price.lg-product__price,
	.lg-product .lg-product__price {
		font-size: clamp(1.375rem, 6vw, 1.875rem) !important;
	}
}

/* インライン flatpickr（常時表示） */
.lg-product__calendar-inline {
	margin-top: 4px;
	width: 100%;
	max-width: none;
}

.lg-product__calendar-inline .flatpickr-calendar {
	position: relative !important;
	top: auto !important;
	left: auto !important;
	margin: 0;
	width: 100% !important;
	max-width: none;
	box-shadow: none;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
}

.flatpickr-calendar.inline {
	box-shadow: initial !important;
}

.lg-product__order-limit {
	margin: 12px 0 0;
	font-size: 14px;
	line-height: 1.6;
	color: #4a5565;
}

.lg-product__purchase-notes {
	margin-top: 16px;
}

.lg-product__purchase-note {
	margin: 0 0 8px;
	font-size: 12px;
	line-height: 1.8;
	color: #4a5565;
}

.lg-product__purchase-note:last-child {
	margin-bottom: 0;
}

.lg-product__field--delivery {
	margin-bottom: 24px;
	border: 1px solid #E5E7EB;
	padding: 25px 38px 38px 25px;
}

.lg-product__field {
	margin: 0 0 20px;
}

.lg-product__label {
	display: block;
	margin: 0 0 8px;
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 18px;
	line-height: 1.43;
	color: #0a0a0a;
}

.lg-product__label--quantity {
	margin-bottom: 16px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	color: #0a0a0a;
}

.lg-product__input,
.lg-product__textarea {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding: 10px 16px;
	font-family: var(--font-sans);
	font-size: 14px;
	line-height: 1.43;
	color: #0a0a0a;
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	border-radius: 0;
}

.lg-product__textarea {
	min-height: 120px;
	resize: vertical;
}

.lg-product__textarea::placeholder {
	color: var(--lg-placeholder);
}

.lg-product__noshi-example {
	margin: 0 0 12px;
	padding: 17px;
	box-sizing: border-box;
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: 12px;
	line-height: 1.3333333333333333;
	color: #4a5565;
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	border-radius: 0;
}

.lg-product__noshi-lead {
	margin: 16px 0 16px;
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: 14px;
	line-height: 1.625;
	color: #364153;
}

.lg-product__noshi-note {
	margin: 12px 0 0;
	font-family: var(--font-sans);
	font-size: 14px;
	line-height: 1.6;
	color: #364153;
}

.lg-product__input:focus,
.lg-product__textarea:focus {
	outline: none;
	border-color: #0a0a0a;
}

.lg-product form.cart {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.lg-product__quantity-block {
	margin-top: 4px;
	margin-bottom: 20px;
}

.lg-product form.cart .quantity {
	margin: 0;
}

/* Figma ②商品ページ: 数量（± 40px 正方形・#000 1px / 中央数字 20px 500・要素間 16px） */
.lg-product form.cart .quantity.lg-quantity {
	align-self: flex-start;
	display: inline-flex;
	flex-direction: row;
	align-items: center;
	gap: 16px;
	width: auto;
	max-width: none;
	border: none;
	background: transparent;
	box-shadow: none;
}

.lg-product form.cart .lg-quantity__btn {
	width: 40px;
	height: 40px;
	min-width: 40px;
	min-height: 40px;
	box-sizing: border-box;
	border: 1px solid #000;
	background: #fff;
	font-size: 18px;
}

.lg-product form.cart .lg-quantity__btn:hover {
	background: #f9fafb;
}

.lg-product form.cart .lg-quantity input.qty {
	width: 48px;
	min-width: 48px;
	min-height: 28px;
	height: auto;
	border: none;
	font-size: 20px;
	font-weight: 500;
	line-height: 1.4;
	background: transparent;
}

/* 数量: 角ばったコントロール（カートページなど） */
.lg-quantity {
	display: inline-flex;
	align-items: stretch;
	align-self: flex-start;
	width: fit-content;
	max-width: 100%;
	flex: 0 0 auto;
	gap: 0;
	vertical-align: middle;
	border: 1px solid #e5e7eb;
	border-radius: 0;
	overflow: hidden;
	background: #f9fafb;
}

.lg-quantity__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	min-width: 48px;
	min-height: 44px;
	padding: 0;
	margin: 0;
	border: none;
	background: #f3f4f6;
	color: var(--lg-text);
	font-family: var(--font-sans);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.lg-quantity__btn:hover {
	background: #e5e7eb;
}

.lg-quantity__btn:focus-visible {
	outline: 2px solid #0a0a0a;
	outline-offset: 2px;
}

.lg-quantity__btn-text {
	display: block;
	font-weight: 500;
}

.lg-quantity input.qty {
	width: 56px;
	min-width: 56px;
	min-height: 44px;
	margin: 0;
	padding: 0 6px;
	border: none;
	border-left: 1px solid #e5e7eb;
	border-right: 1px solid #e5e7eb;
	border-radius: 0;
	text-align: center;
	font-family: var(--font-sans);
	font-size: 14px;
	font-weight: 500;
	color: #0a0a0a;
	background: #fff;
	-moz-appearance: textfield;
	appearance: textfield;
}

.lg-quantity input.qty::-webkit-outer-spin-button,
.lg-quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.lg-product form.cart .quantity:not(.lg-quantity) input.qty {
	width: 80px;
	padding: 10px 16px;
	border: 1px solid #e5e7eb;
	border-radius: 0;
	font-size: 14px;
	background: #f9fafb;
}

.lg-product form.cart .single_add_to_cart_button,
.lg-product form.cart .single_add_to_cart_button.lg-product__add-to-cart {
	width: 100%;
	margin-top: 0;
	margin-bottom: 0;
	padding: 16px 20px;
	min-height: 56px;
	box-sizing: border-box;
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 16px;
	line-height: 1.5;
	color: #fff !important;
	background: #000 !important;
	border: none !important;
	border-radius: 0;
	cursor: pointer;
	transition: opacity 0.2s ease;
	text-align: center;
	white-space: nowrap;
	word-break: keep-all;
}

.lg-product form.cart .single_add_to_cart_button:hover,
.lg-product form.cart .single_add_to_cart_button.lg-product__add-to-cart:hover {
	opacity: 0.88;
}

@media (max-width: 360px) {

	.lg-product form.cart .single_add_to_cart_button,
	.lg-product form.cart .single_add_to_cart_button.lg-product__add-to-cart {
		white-space: normal;
		font-size: 15px;
		padding-left: 14px;
		padding-right: 14px;
	}
}

/* flatpickr カレンダーがヘッダーに隠れないよう */
.flatpickr-calendar {
	z-index: 1;
}

@media (max-width: 600px) {

	.flatpickr-calendar,
	.lg-product__calendar-inline .flatpickr-calendar {
		width: 100% !important;
		max-width: 100%;
		box-sizing: border-box;
	}

	.lg-product__calendar-inline {
		max-width: 100%;
	}
}

/* --------------------------------------------------------------------------
   新規会員登録 — Figma (14-1) node 49-1271（MCP トークン）
   -------------------------------------------------------------------------- */

.lg-register {
	padding: 66px 24px 80px;
	background: #ffffff;
}

.lg-register__shell {
	max-width: 540px;
	margin: 0 auto;
}

.lg-register__card {
	width: 100%;
	max-width: 540px;
	margin: 0 auto;
	padding: 48px;
	background: #ffffff;
	border-radius: 10px;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
	box-sizing: border-box;
}

.lg-register__title {
	margin: 0 0 48px;
	font-weight: 700;
	font-size: 28px;
	line-height: 1.5;
	letter-spacing: 0.02em;
	text-align: center;
	color: #1a1a1a;
}

.lg-register__notices {
	margin: -24px 0 24px;
}

.lg-register__notices:empty {
	display: none;
	margin: 0;
}

.lg-register .woocommerce-error,
.lg-register .woocommerce-message,
.lg-register .woocommerce-info {
	list-style: none;
	margin: 0 0 12px;
	padding: 14px 16px;
	font-size: 14px;
	line-height: 1.5;
	border-radius: 8px;
}

.lg-register .woocommerce-error {
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #991b1b;
}

.lg-register .woocommerce-message,
.lg-register .woocommerce-info {
	background: #f0fdf4;
	border: 1px solid #bbf7d0;
	color: #166534;
}

.woocommerce-error::before,
.woocommerce-info::before,
.woocommerce-message::before {
	position: initial;
}

.lg-register__form {
	max-width: 444px;
	margin: 0 auto;
}

.lg-register__field {
	margin: 0 0 32px;
}

.lg-register__field--terms {
	margin-top: 12px;
	margin-bottom: 40px;
}

.lg-register__field--submit {
	margin-top: 24px;
	margin-bottom: 0;
}

.lg-register__label,
.lg-register__legend {
	display: block;
	margin: 0;
	padding: 0;
	font-weight: 500;
	font-size: 15px;
	line-height: 1.5;
	color: #2a2a2a;
}

.lg-register__fieldset {
	border: none;
	margin: 0 0 48px;
	padding: 0;
	min-width: 0;
}

.lg-register__legend {
	width: 100%;
	margin-bottom: 12px;
}

.lg-register__label--multiline {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 8px;
	margin-bottom: 12px;
}

.lg-register__label-main {
	font-weight: 500;
	font-size: 15px;
	line-height: 1.5;
	color: #2a2a2a;
}

.lg-register__label-hint {
	font-weight: 400;
	font-size: 13px;
	line-height: 1.5;
	color: #6a7282;
}

.lg-register__required {
	color: #fb2c36;
	margin-left: 2px;
}

.lg-register__input {
	width: 100%;
	box-sizing: border-box;
	height: 48px;
	padding: 0 16px;
	font-family: inherit;
	font-size: 15px;
	line-height: 1.5;
	color: #0a0a0a;
	background: #f3f3f5;
	border: 1px solid #d1d5dc;
	border-radius: 8px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.lg-register__field>.lg-register__label:not(.lg-register__label--multiline)+.lg-register__input,
.lg-register__label--multiline+.lg-register__input {
	margin-top: 12px;
	margin-bottom: 24px;
}

.lg-register__input:focus {
	outline: none;
	border-color: #9ca3af;
	box-shadow: 0 0 0 3px rgba(15, 23, 42, 0.06);
}

.lg-register__password-toggle {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 12px;
}

.lg-register__checkbox-input {
	width: 16px;
	height: 16px;
	min-width: 16px;
	margin: 0;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 4px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	accent-color: #1a1a1a;
	cursor: pointer;
	flex-shrink: 0;
}

.lg-register__password-toggle-label {
	margin: 0;
	font-weight: 500;
	font-size: 15px;
	line-height: 1.5;
	color: #4a4a4a;
	cursor: pointer;
}

.lg-register__radios {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 24px;
}

.lg-register__radio-item {
	display: flex;
	align-items: center;
	gap: 8px;
}

.lg-register__radio {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: #1a1a1a;
	cursor: pointer;
	flex-shrink: 0;
}

.lg-register__radio-label {
	margin: 0;
	font-weight: 500;
	font-size: 15px;
	line-height: 1.5;
	color: #0a0a0a;
	cursor: pointer;
}

.lg-register__terms-row {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.lg-register__terms-label {
	margin: 0;
	font-weight: 500;
	font-size: 15px;
	line-height: 1.625;
	color: #4a4a4a;
	cursor: pointer;
	flex: 1;
}

.lg-register__checkbox-input--terms {
	margin-top: 3px;
}

.lg-register__hint {
	margin: 0 0 12px;
	font-size: 13px;
	line-height: 1.6;
	color: #6a7282;
}

.lg-register .woocommerce-privacy-policy-text {
	margin: 0 0 20px;
	padding: 16px;
	font-size: 13px;
	line-height: 1.6;
	color: #4a5565;
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
}

.lg-register .woocommerce-privacy-policy-text a {
	color: #364153;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.lg-register__submit {
	width: 100%;
	height: 56px;
	padding: 0 24px;
	font-weight: 500;
	font-size: 16px;
	line-height: 1.5;
	letter-spacing: 0.05em;
	color: #ffffff !important;
	background: #1a1a1a !important;
	border: none !important;
	border-radius: 0 !important;
	cursor: pointer;
	transition: opacity 0.2s ease;
}

.lg-register__submit:hover {
	opacity: 0.88;
}

.lg-register__footer-text {
	margin: 0px 0 0;
	text-align: center;
}

.lg-register__link {
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;
	color: #666666;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.lg-register__link:hover {
	color: #1a1a1a;
}

@media (max-width: 600px) {
	.lg-register {
		padding: 48px 16px 64px;
	}

	.lg-register__card {
		padding: 32px 20px;
	}

	.lg-register__title {
		font-size: 24px;
		margin-bottom: 32px;
	}

	.lg-register__radios {
		gap: 16px 20px;
	}
}

/* --------------------------------------------------------------------------
   パスワード再設定（forgot-password）— Figma 99-380（シェルは .lg-register と共用）
   -------------------------------------------------------------------------- */

.lg-lost-password .lg-register__title {
	margin-bottom: 32px;
}

/* 送信完了メッセージのみで使用（フォーム上のリード文はテンプレートから削除済み） */
.lg-lost-password__intro {
	margin: 0 0 32px;
	font-size: 15px;
	line-height: 1.65;
	color: #4a4a4a;
}

.lg-lost-password__footer-actions {
	margin-top: 8px;
}

/* --------------------------------------------------------------------------
   退会手続き — Figma (17) node 2006-1872
   -------------------------------------------------------------------------- */

.lg-withdraw-page {
	padding: 67px 24px 80px;
	background: #ffffff;
	box-sizing: border-box;
}

.lg-withdraw-page__shell {
	max-width: 917px;
	margin: 0 auto;
}

.lg-withdraw-page__card {
	padding: 30px 24px 40px;
	background: #ffffff;
	box-shadow:
		0 1px 2px -1px rgba(0, 0, 0, 0.1),
		0 1px 3px 0 rgba(0, 0, 0, 0.1);
	box-sizing: border-box;
}

.lg-withdraw-page__title {
	margin: 0 0 32px;
	font-weight: 700;
	font-size: 20px;
	line-height: 1.2;
	letter-spacing: 0.08em;
	text-align: center;
	color: #0a0a0a;
}

.lg-withdraw-page__notice-wrap {
	max-width: 520px;
	margin: 0 auto 32px;
}

.lg-withdraw-page__notice {
	margin: 0;
	font-weight: 500;
	font-size: 15px;
	line-height: 1.5;
	color: #2a2a2a;
}

.lg-withdraw-page__notice--muted {
	text-align: center;
	max-width: 520px;
	margin-left: auto;
	margin-right: auto;
}

.lg-withdraw-page__error {
	max-width: 444px;
	margin: 0 auto 24px;
	padding: 14px 16px;
	font-size: 14px;
	line-height: 1.5;
	color: #991b1b;
	text-align: center;
	background: #fef2f2;
	border: 1px solid #fecaca;
	border-radius: 8px;
	box-sizing: border-box;
}

.lg-withdraw-page__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 14px;
}

.lg-withdraw-page__actions--single {
	margin-top: 8px;
}

.lg-withdraw-page__form-withdraw {
	display: inline-block;
	margin: 0;
	padding: 0;
	border: none;
	background: none;
}

.lg-withdraw-page__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 173px;
	min-height: 56px;
	padding: 0 20px;
	box-sizing: border-box;
	font-family: inherit;
	font-weight: 500;
	font-size: 16px;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	border: none;
	transition: opacity 0.2s ease;
}

.lg-withdraw-page__btn:hover {
	opacity: 0.88;
}

.lg-withdraw-page__btn--outline {
	color: #000000;
	background: #ffffff;
	border: 2px solid #000000;
}

.lg-withdraw-page__btn--primary {
	color: #ffffff;
	background: #000000;
}

@media (max-width: 600px) {
	.lg-withdraw-page {
		padding: 48px 16px 64px;
	}

	.lg-withdraw-page__card {
		padding: 28px 20px 36px;
	}

	.lg-withdraw-page__title {
		font-size: 18px;
		margin-bottom: 24px;
	}

	.lg-withdraw-page__notice-wrap {
		margin-bottom: 28px;
	}

	.lg-withdraw-page__actions {
		flex-direction: column;
		width: 100%;
	}

	.lg-withdraw-page__form-withdraw {
		width: 100%;
	}

	.lg-withdraw-page__btn {
		width: 100%;
		min-width: 0;
	}
}

/* --------------------------------------------------------------------------
   パスワード再設定（メールリンク後）— Figma (15-2-2) node 100-477
   -------------------------------------------------------------------------- */

body.livegift-wc-reset-password .woocommerce-MyAccount-navigation {
	display: none;
}

body.livegift-wc-reset-password .woocommerce .woocommerce-MyAccount-content {
	float: none;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

body.livegift-wc-reset-password .woocommerce {
	background: #f5f5f5;
}

.lg-reset-password {
	padding: 61px 24px 80px;
	min-height: calc(100vh - 80px);
	box-sizing: border-box;
}

.lg-reset-password__shell {
	max-width: 520px;
	margin: 0 auto;
}

.lg-reset-password__card {
	padding: 48px 49px;
	background: #ffffff;
	border: 1px solid #e5e7eb;
	border-radius: 0;
	box-sizing: border-box;
}

.lg-reset-password__card .woocommerce-error,
.lg-reset-password__card .woocommerce-message,
.lg-reset-password__card .woocommerce-info {
	list-style: none;
	margin: 0 0 24px;
	padding: 14px 16px;
	font-size: 14px;
	line-height: 1.5;
	border-radius: 8px;
}

.lg-reset-password__card .woocommerce-error {
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #991b1b;
}

.lg-reset-password__heading {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin: 0 0 32px;
}

.lg-reset-password__subline {
	margin: 0;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.6;
	letter-spacing: 0.04em;
	color: #0a0a0a;
}

.lg-reset-password__title {
	margin: 0;
	font-weight: 700;
	font-size: 24px;
	line-height: 1.4;
	letter-spacing: 0.08em;
	color: #0a0a0a;
}

.lg-reset-password__field {
	margin: 0 0 24px;
}

.lg-reset-password__field .lg-register__label {
	font-weight: 400;
	font-size: 14px;
	line-height: 1.6;
	letter-spacing: 0.04em;
	color: #0a0a0a;
}

.lg-reset-password__field>.lg-register__label+.lg-register__input,
.lg-reset-password__field>.lg-register__label+.password-input {
	margin-top: 8px;
}

.lg-reset-password__form .password-input,
.lg-reset-password__form .woocommerce-Input--password {
	width: 100%;
}

.lg-reset-password__form .password-input {
	display: block;
}

.lg-reset-password__form .password-input .lg-register__input {
	width: 100%;
}

.lg-reset-password__form .show-password-input {
	top: 50%;
	transform: translateY(-50%);
}

.lg-reset-password__form input.lg-register__input::placeholder {
	color: rgba(0, 0, 0, 0.15);
}

.lg-reset-password__submit-wrap {
	margin-top: 0;
	margin-bottom: 0;
}

.lg-reset-password__submit {
	width: 100%;
	height: 48px;
	padding: 0 24px;
	font-weight: 700 !important;
	font-size: 18px !important;
	line-height: 1.4 !important;
	letter-spacing: 0.12em !important;
	color: #ffffff !important;
	background: #000000 !important;
	border: none !important;
	border-radius: 0 !important;
}

.lg-reset-password__submit:hover {
	opacity: 0.88;
}

.lg-reset-password__form .woocommerce-password-strength {
	margin-top: 8px;
	font-size: 13px;
}

@media (max-width: 600px) {
	.lg-reset-password {
		padding: 48px 16px 64px;
	}

	.lg-reset-password__card {
		padding: 32px 24px;
	}

	.lg-reset-password__title {
		font-size: 22px;
	}
}

/* --------------------------------------------------------------------------
   仮登録完了（送付確認）— Figma (14-2) node 47-424
   -------------------------------------------------------------------------- */

.lg-register-complete {
	padding: 64px 24px 80px;
	min-height: calc(100vh - 80px);
	background: #ffffff;
	box-sizing: border-box;
}

.lg-register-complete__shell {
	max-width: 1100px;
	margin: 0 auto;
}

.lg-register-complete__card {
	width: 100%;
	padding: 48px;
	background: #ffffff;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	box-sizing: border-box;
}

.lg-register-complete__title {
	margin: 0 0 32px;
	font-weight: 700;
	font-size: 24px;
	line-height: 1.5;
	color: #0a0a0a;
}

.lg-register-complete__intro {
	margin: 0 0 40px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.lg-register-complete__text {
	margin: 0;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.625;
	color: #364153;
}

.lg-register-complete__subheading {
	margin: 0 0 20px;
	font-weight: 700;
	font-size: 19px;
	line-height: 1.5;
	color: #0a0a0a;
}

.lg-register-complete__help {
	margin: 0 0 24px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.lg-register-complete__note {
	padding: 24px;
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	border-radius: 0;
	box-sizing: border-box;
}

.lg-register-complete__note-list {
	margin: 0;
	padding-left: 1.25em;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.625;
	color: #364153;
}

.lg-register-complete__note-list li {
	margin: 0 0 8px;
}

.lg-register-complete__note-list li:last-child {
	margin-bottom: 0;
}

@media (max-width: 600px) {
	.lg-register-complete {
		padding: 48px 16px 64px;
	}

	.lg-register-complete__card {
		padding: 32px 20px;
	}

	.lg-register-complete__title {
		font-size: 20px;
		margin-bottom: 24px;
	}

	.lg-register-complete__subheading {
		font-size: 18px;
	}
}

/* --------------------------------------------------------------------------
   パスワード変更完了 — Figma (15-3) node 100-426
   -------------------------------------------------------------------------- */

.lg-password-change-complete {
	padding: 0;
	min-height: calc(100vh - 80px);
	background: #f9fafb;
	box-sizing: border-box;
}

.lg-password-change-complete__shell {
	max-width: 1011px;
	margin: 0 auto;
	padding: 43px 31px 80px;
	box-sizing: border-box;
}

.lg-password-change-complete__panel {
	max-width: 917px;
	margin: 0 auto;
	padding: 48px 24px 56px;
	background: #ffffff;
	box-sizing: border-box;
	text-align: center;
}

.lg-password-change-complete__title {
	margin: 0 0 16px;
	font-weight: 700;
	font-size: 28px;
	line-height: 1.5;
	color: #0a0a0a;
}

.lg-password-change-complete__lead {
	margin: 0 0 32px;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.5;
	color: #4a5565;
}

.lg-password-change-complete__actions {
	margin: 0;
	display: flex;
	justify-content: center;
}

.lg-password-change-complete__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 500px;
	min-height: 48px;
	padding: 0 24px;
	box-sizing: border-box;
	font-weight: 500;
	font-size: 14px;
	line-height: 1.5;
	color: #ffffff !important;
	text-decoration: none;
	background: #0a0a0a;
	border: none;
	transition: opacity 0.2s ease;
}

.lg-password-change-complete__button:hover {
	opacity: 0.88;
	color: #ffffff !important;
}

@media (max-width: 600px) {
	.lg-password-change-complete__shell {
		padding: 32px 16px 64px;
	}

	.lg-password-change-complete__panel {
		padding: 40px 20px 48px;
	}

	.lg-password-change-complete__title {
		font-size: 24px;
	}
}

/* --------------------------------------------------------------------------
   ログイン — Figma (15-1) node 32-622
   -------------------------------------------------------------------------- */

.lg-login {
	padding: 48px 24px 80px;
	min-height: calc(100vh - 80px);
	background: #f9fafb;
	box-sizing: border-box;
}

.lg-login__shell {
	max-width: 960px;
	margin: 0 auto;
}

.lg-login__card {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	width: 100%;
	margin: 0 auto;
	padding: 0;
	background: #ffffff;
	border-radius: 10px;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
	box-sizing: border-box;
	overflow: hidden;
}

.lg-login__col {
	flex: 1 1 320px;
	min-width: 0;
	padding: 48px 40px 56px;
	box-sizing: border-box;
}

.lg-login__col--member {
	position: relative;
}

/* フルハイトではなく、縦方向センター付近に約 70% の区切り線（Figma 準拠） */
.lg-login__col--member::after {
	content: '';
	position: absolute;
	top: 15%;
	right: 0;
	width: 1px;
	height: 70%;
	background-color: #e5e7eb;
	pointer-events: none;
}

.lg-login__heading {
	margin: 0 0 32px;
	font-weight: 700;
	font-size: 22px;
	line-height: 1.5;
	letter-spacing: 0.02em;
	color: #1a1a1a;
}

.lg-login__notices {
	margin: -8px 0 24px;
}

.lg-login__notices:empty {
	display: none;
	margin: 0;
}

.lg-login .woocommerce-error,
.lg-login .woocommerce-message,
.lg-login .woocommerce-info {
	list-style: none;
	margin: 0 0 12px;
	/* padding: 14px 16px; */
	font-size: 14px;
	line-height: 1.5;
	border-radius: 8px;
}

.lg-login .woocommerce-error {
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #991b1b;
}

.lg-login .woocommerce-message,
.lg-login .woocommerce-info {
	background: #f0fdf4;
	border: 1px solid #bbf7d0;
	color: #166534;
}

.lg-login__form {
	margin: 0;
	max-width: 100%;
}

.lg-login__field {
	margin: 0 0 16px;
}

.lg-login__label {
	display: block;
	margin: 0 0 8px;
	font-weight: 500;
	font-size: 14px;
	line-height: 1.5;
	color: #1a1a1a;
}

.lg-login__input {
	width: 100%;
	min-height: 48px;
	padding: 12px 16px;
	box-sizing: border-box;
	font-size: 16px;
	line-height: 1.5;
	color: #1a1a1a;
	background: #ffffff;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
}

.lg-login__input:focus {
	outline: none;
	border-color: #0a0a0a;
	box-shadow: 0 0 0 1px #0a0a0a;
}

.lg-login__show-password {
	margin: 4px 0 8px;
	display: flex;
	align-items: center;
	gap: 8px;
}

.lg-login__show-password-label {
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
	color: #4a5565;
	cursor: pointer;
}

.lg-login__submit-wrap {
	margin-top: 58px;
}

.lg-login__submit {
	width: 100%;
	min-height: 48px;
	padding: 0 24px;
	box-sizing: border-box;
	font-weight: 500;
	font-size: 14px !important;
	line-height: 1.5;
	color: #ffffff !important;
	background: #0a0a0a !important;
	border: none !important;
	border-radius: 0;
	cursor: pointer;
	transition: opacity 0.2s ease;
}

.lg-login__submit:hover {
	opacity: 0.88;
	color: #ffffff !important;
}

.lg-login__lost {
	text-align: center;
}

.lg-login__lost-link {
	display: inline-block;
	margin: 20px 0 0;
	font-size: 14px;
	line-height: 1.5;
	color: #4A5565;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.lg-login__lost-link:hover {
	color: #4A5565;
}

.lg-login__col--new {
	display: flex;
	flex-direction: column;
	background: #ffffff;
}

.lg-login__new-lead {
	margin: 0 0 48px;
	font-size: 15px;
	line-height: 1.6;
	color: #4a5565;
}

.lg-login__new-action {
	margin: 0;
}

.lg-login__new-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 0 24px;
	box-sizing: border-box;
	font-weight: 500;
	font-size: 14px;
	line-height: 1.5;
	color: #ffffff !important;
	text-decoration: none;
	background: #0a0a0a;
	transition: opacity 0.2s ease;
}

.lg-login__new-button:hover {
	opacity: 0.88;
	color: #ffffff !important;
}

@media (max-width: 767px) {
	.lg-login {
		padding: 32px 16px 64px;
	}

	.lg-login__col {
		padding: 40px 24px 48px;
	}

	.lg-login__col--member::after {
		display: none;
	}

	.lg-login__col--member {
		border-bottom: 1px solid #e5e7eb;
	}

	.lg-login__heading {
		font-size: 20px;
		margin-bottom: 24px;
	}

	.lg-login__new-button {
		max-width: none;
	}
}

/* --------------------------------------------------------------------------
   登録完了（メール認証後）— Figma (14-３) node 32-686
   -------------------------------------------------------------------------- */

.lg-registration-complete {
	padding: 80px 24px 120px;
	background: #ffffff;
	box-sizing: border-box;
}

.lg-registration-complete__shell {
	max-width: 1143px;
	margin: 0 auto;
}

.lg-registration-complete__inner {
	max-width: 600px;
	margin: 0 auto;
	text-align: center;
}

.lg-registration-complete__title {
	margin: 0 0 32px;
	font-weight: 700;
	font-size: 30px;
	line-height: 1.2;
	letter-spacing: 0.08em;
	color: #000000;
}

.lg-registration-complete__lead {
	margin: 0 0 48px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.lg-registration-complete__text {
	margin: 0;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.625;
	text-align: center;
	color: #364153;
}

.lg-registration-complete__actions {
	margin: 0;
	display: flex;
	justify-content: center;
}

.lg-registration-complete__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 400px;
	min-height: 56px;
	padding: 0 24px;
	box-sizing: border-box;
	font-weight: 500;
	font-size: 16px;
	line-height: 1.5;
	color: #ffffff;
	text-decoration: none;
	background: #000000;
	border: 1px solid #000000;
	transition: opacity 0.2s ease;
}

.lg-registration-complete__button:hover {
	opacity: 0.88;
	color: #ffffff;
}

@media (max-width: 600px) {
	.lg-registration-complete {
		padding: 64px 16px 80px;
	}

	.lg-registration-complete__title {
		font-size: 24px;
		margin-bottom: 24px;
	}

	.lg-registration-complete__lead {
		margin-bottom: 40px;
	}
}

/* --------------------------------------------------------------------------
   お問い合わせ（Figma node 11-119）
   -------------------------------------------------------------------------- */

.lg-contact {
	background: #ffffff;
	padding: 0 0 80px;
}

.lg-contact__surface {
	max-width: 800px;
	margin: 0 auto;
	width: 100%;
	background: #ffffff;
	padding: 48px clamp(20px, 3.3vw, 40px) 80px;
	box-sizing: border-box;
	min-height: min(70vh, 1200px);
}

.lg-contact__header {
	max-width: 100%;
	margin: 0 auto 32px;
}

.lg-contact__title {
	margin: 0 0 16px;
	font-weight: 700;
	font-size: 18px;
	line-height: 1.5;
	color: #0a0a0a;
}

.lg-contact__lead {
	margin: 0;
}

.lg-contact__lead p {
	margin: 0;
	font-weight: 400;
	font-size: 12px;
	line-height: 1.8;
	color: #333333;
}

.lg-contact__form-wrap {
	max-width: 100%;
	margin: 0 auto;
}

.lg-contact__plugin-notice {
	margin: 0;
	padding: 16px;
	font-size: 14px;
	line-height: 1.6;
	color: #333333;
	background: #fff;
	border: 1px solid #dddddd;
}

/* Contact Form 7（ラベル・入力は Figma のフォーム欄に合わせる） */
.lg-contact .wpcf7 {
	font-family: inherit;
}

.lg-contact .wpcf7-form {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.lg-contact .wpcf7-form p {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.lg-contact .wpcf7-form p:last-of-type {
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	gap: 8px;
}

.lg-contact .wpcf7-form label {
	font-weight: 500;
	font-size: 14px;
	line-height: 1.5;
	color: #333333;
}

.lg-contact .wpcf7-form .lg-cf7-required {
	color: #ff0000;
}

.lg-contact .wpcf7-acceptance a.lg-cf7-legal-link {
	color: #ff0000;
}

.lg-contact .wpcf7-acceptance a.lg-cf7-legal-link:hover,
.lg-contact .wpcf7-acceptance a.lg-cf7-legal-link:visited,
.lg-contact .wpcf7-acceptance a.lg-cf7-legal-link:focus {
	color: #ff0000;
}

.lg-contact .wpcf7-form .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

.lg-contact .wpcf7 input[type='text'],
.lg-contact .wpcf7 input[type='email'],
.lg-contact .wpcf7 input[type='tel'],
.lg-contact .wpcf7 input[type='url'],
.lg-contact .wpcf7 input[type='number'],
.lg-contact .wpcf7 select {
	width: 100%;
	box-sizing: border-box;
	min-height: 47px;
	padding: 10px 14px;
	font-family: inherit;
	font-size: 14px;
	line-height: 1.5;
	color: #0a0a0a;
	background: #ffffff;
	border: 1px solid #dddddd;
	border-radius: 0;
}

.lg-contact .wpcf7 textarea {
	width: 100%;
	box-sizing: border-box;
	min-height: 160px;
	padding: 12px 14px;
	font-family: inherit;
	font-size: 14px;
	line-height: 1.5;
	color: #0a0a0a;
	background: #ffffff;
	border: 1px solid #dddddd;
	border-radius: 0;
	resize: vertical;
}

.lg-contact .wpcf7 input:focus,
.lg-contact .wpcf7 textarea:focus,
.lg-contact .wpcf7 select:focus {
	outline: none;
	border-color: #999999;
}

.lg-contact .wpcf7 .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 209px;
	min-height: 53px;
	padding: 14px 24px;
	margin: 0;
	box-sizing: border-box;
	font-family: var(--font-sans);
	font-size: 20px;
	font-weight: 500;
	line-height: 1.2;
	color: #ffffff !important;
	background: #0a0a0a !important;
	border: none !important;
	border-radius: 0;
	cursor: pointer;
	transition: opacity 0.2s ease;
}

.lg-contact .wpcf7 .wpcf7-submit:hover {
	opacity: 0.88;
	color: #ffffff !important;
}

.lg-checkout__shipping-note,
.lg-checkout__noshi-field-note {
	margin: 12px 0 0;
	font-size: 12px;
	line-height: 1.8;
	color: #4a5565;
}

.lg-checkout__noshi-notice {
	margin: 12px 0 0;
	font-size: 12px;
	line-height: 1.8;
	color: #4a5565;
}

.lg-checkout__shipping-note p,
.lg-checkout__noshi-field-note p {
	margin: 0 0 8px;
}

.lg-checkout__noshi-notice p {
	margin: 0 0 8px;
}

.lg-checkout__shipping-note p:last-child,
.lg-checkout__noshi-field-note p:last-child {
	margin-bottom: 0;
}

.lg-checkout__noshi-notice p:last-child {
	margin-bottom: 0;
}

/* チェックアウト上部のエラー一覧（JS が挿入する NoticeGroup）を非表示 */
.woocommerce-NoticeGroup.woocommerce-NoticeGroup-checkout {
	display: none !important;
}

/* チェックアウト遷移直後に出る「カートに追加しました」通知（update_order_review の NoticeGroup）を非表示 */
.woocommerce-NoticeGroup.woocommerce-NoticeGroup-updateOrderReview {
	display: none !important;
}

.lg-contact .wpcf7 .wpcf7-spinner {
	margin: 0;
	width: 1px;
	height: 1px;
}

.wpcf7-spinner::before {
	width: 1px;
	height: 1px;
}

.lg-contact .wpcf7-not-valid-tip {
	font-size: 12px;
	margin-top: 4px;
	color: #FF0000;
}

.lg-contact .wpcf7-response-output {
	margin: 16px 0 0 !important;
	padding: 12px 14px !important;
	font-size: 12px;
	font-style: normal;
	font-weight: 500;
	text-align: center;
	line-height: 1.6;
	border: none !important;
	color: #FF0000;
}

.lg-contact .wpcf7-acceptance label,
.lg-contact .wpcf7-checkbox label,
.lg-contact .wpcf7-radio label {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-weight: 400;
	font-size: 12px;
	line-height: 1.6;
}

.lg-contact .wpcf7-acceptance input,
.lg-contact .wpcf7-checkbox input,
.lg-contact .wpcf7-radio input {
	margin-top: 2px;
	flex-shrink: 0;
}

@media (max-width: 600px) {
	.lg-contact__surface {
		padding-top: 32px;
		min-height: 0;
	}

	.lg-contact .wpcf7 .wpcf7-submit {
		width: 100%;
	}
}
