/* ===== PRODUCT VARIABLES: 共通デフォルト ===== */
:root {
	--color-products-black: #1a1a1a;
	--font-third: "itc-avant-garde-gothic-pro", sans-serif;
	--font-description: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "Noto Sans JP", sans-serif;
}

/* ===== PRODUCT VARIABLES: lypo-c Vitamin C ===== */
#product-vc {
	--color-products-secondary: #fff6ee;
}

/* ===== PRODUCT VARIABLES: MINERALion ===== */
#product-mineralion {
	--color-orange: #0033ad;
	--color-products-secondary: #e9f2ff;
}

/* ===== PRODUCT PAGE ===== */
.product-page {
	margin-top: 56px;
}

/* ===== BREADCRUMB ===== */
.breadcrumb {
	padding: 14px 0;
	border-bottom: 1px solid var(--border-light);
}
.breadcrumb-inner {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	color: var(--text-tertiary);
	font-family: var(--font-label);
	letter-spacing: 0.05em;
}
.breadcrumb-inner > li + li::before {
	content: '›';
	margin-right: 8px;
	color: var(--text-tertiary);
}
.breadcrumb-inner a {
	color: var(--text-tertiary);
	transition: color 0.2s;
}
.breadcrumb-inner a:hover {
	color: var(--text-primary);
}
.breadcrumb-inner span {
	color: var(--text-secondary);
}

/* ===== PRODUCT DETAIL SECTION ===== */
.product-detail {
	padding: var(--section-margin-large) 0;
	border-bottom: 1px solid var(--border-light);
}
.product-detail:last-child {
	border-bottom: none;
}
.product-detail-inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(40px, 7vw, 96px);
	align-items: start;
}
.product-detail-image {
	position: sticky;
	top: 80px;
	align-self: start;
}
.product-detail-image img {
	width: 100%;
	height: auto;
	display: block;
}

/* 右カラム：商品情報 */
.product-detail-label {
	font-family: var(--font-label);
	font-size: 12px;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--text-tertiary);
	margin-bottom: 8px;
}
.product-detail-name {
	font-size: var(--fz-title-large);
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.03em;
	color: var(--text-primary);
	margin-bottom: 6px;
}
.product-detail-volume {
	font-size: 13px;
	color: var(--text-secondary);
	letter-spacing: 0.05em;
	margin-bottom: 20px;
}
.product-detail-price {
	font-family: var(--font-en);
	font-size: clamp(22px, 3.5vw, 30px);
	font-weight: 500;
	color: var(--text-primary);
	letter-spacing: 0.03em;
	margin-bottom: 28px;
}
.product-detail-price small {
	font-size: 13px;
	font-weight: 500;
	color: var(--text-tertiary);
	margin-left: 1em;
}
.product-detail-divider {
	width: 24px;
	height: 1px;
	background: var(--border-default);
	margin-bottom: 24px;
}
.product-detail-heading {
	font-size: var(--fz-title-small);
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.03em;
	color: var(--text-primary);
	margin-bottom: 16px;
}
.product-detail-text {
	font-size: var(--fz-body-small);
	font-weight: 500;
	line-height: 1.9;
	letter-spacing: 0.05em;
	color: var(--text-secondary);
}

/* ===== ACCORDION ===== */
.product-accordion {
	margin-top: 32px;
	border-top: 1px solid var(--border-light);
}
.product-accordion-trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	background: none;
	border: none;
	border-bottom: 1px solid var(--border-light);
	padding: 16px 0;
	font-size: 13px;
	font-weight: 500;
	color: var(--color-black);
	letter-spacing: 0.05em;
	cursor: pointer;
	text-align: left;
}
.product-accordion-trigger::after {
	content: '';
	display: inline-block;
	width: 8px;
	height: 8px;
	border-bottom: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: rotate(45deg);
	flex-shrink: 0;
	transition: transform 0.2s;
}
.product-accordion-trigger[aria-expanded="true"]::after {
	transform: rotate(-135deg);
}
.product-accordion-body {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.3s ease;
}
.product-accordion-body > * {
	overflow: hidden;
	padding: 0 0 0;
	transition: padding 0.3s ease;
}
.product-accordion-trigger[aria-expanded="true"] + .product-accordion-body {
	grid-template-rows: 1fr;
}
.product-accordion-trigger[aria-expanded="true"] + .product-accordion-body > * {
	padding: 24px 0;
}
.product-spec {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.product-spec-row {
	display: grid;
	grid-template-columns: 10em 1fr;
	gap: 16px;
	font-size: 14px;
	line-height: 1.8;
}
.product-spec-row dt {
	font-weight: 500;
}
.product-spec-row dd {
	color: var(--text-secondary);
}

/* ===== DETAIL SECTIONS ===== */
.product_main_wrap {
	display: flex;
	flex-direction: column;
	gap: 50px;
	margin-block-start: 40px;
}
.product_outer {
	border-radius: 5px;
	background: var(--color-products-secondary);
	padding: 22px;
}
.product_inner_white {
	margin-block-start: 24px;
	padding: 24px;
	background-color: var(--color-white);
	border-radius: 16px;
}
.product_inner_white_concept {
	position: relative;
	z-index: 0;
}
.product_inner_recom {
	margin-block-start: 32px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 32px;
}
.product_paragraph {
	margin-block-end: 64px;
}
.product_paragraph:last-child {
	margin-block-end: 0;
}
.product_check_list + .product_check_list {
	margin-block-start: 24px;
}
.product_description + .product_notes {
	margin-block-start: 1em;
}
.product_notes {
	margin-block-start: 4px;
	display: block;
	color: var(--text-secondary);
	font-family: var(--font-third);
	font-size: 12px;
	letter-spacing: 0.1em;
	line-height: 1.4em;
}
.product_heading3 {
	margin: 0;
	color: var(--text-secondary);
	font-family: var(--font-third);
	font-size: 14px;
	font-style: normal;
	font-weight: 300;
	line-height: normal;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.product_heading3::after {
	content: '';
	display: block;
	width: 16px;
	height: 1px;
	background-color: var(--text-tertiary);
}
.product_heading2 {
	margin: 0;
	margin-block-start: 16px;
	color: var(--color-products-black);
	font-family: var(--font-ja);
	font-size: 12px;
	font-style: normal;
	font-weight: 400;
	line-height: 140%;
	text-transform: capitalize;
}
.product_title {
	color: var(--color-orange);
	font-family: var(--font-ja);
	font-size: 18px;
	font-style: normal;
	font-weight: 700;
	line-height: 160%;
	letter-spacing: 0.9px;
	display: flex;
	align-items: center;
	gap: 6px;
}
.product_title_check {
	position: relative;
	padding-left: 2.1em;
}
.product_title_check::before {
	content: '';
	position: absolute;
	height: 1.5em;
	width: 1.5em;
	display: inline-block;
	background: url(../img/products/parts/check_vc.svg) no-repeat top center / contain;
	top: 0.05em;
	left: 0;
}
.product_description {
	margin-block-start: 24px;
	color: var(--color-products-black);
	font-family: var(--font-description);
	font-size: 15px;
	font-style: normal;
	font-weight: 400;
	line-height: 180%;
	letter-spacing: 0.7px;
}
.product_description em {
	font-weight: 700;
	font-style: normal;
}
.product_description strong {
	font-size: 15px;
	font-weight: 700;
	color: var(--color-orange);
}
.product_description_check {
	position: relative;
	padding-left: 2.1em;
}
.product_description_check::before {
	content: '';
	position: absolute;
	height: 1.5em;
	width: 1.5em;
	display: inline-block;
	background: url(../img/products/parts/check_vc.svg) no-repeat top center / contain;
	top: 0.05em;
	left: 0;
}
.product_description sup {
	font-size: 9px;
}
.product_list_dot {
	margin-block-start: 16px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.product_list_dot li {
	position: relative;
	padding-left: 1.4em;
	color: var(--color-products-black);
	font-family: var(--font-description);
	font-size: 15px;
	font-weight: 400;
	line-height: 180%;
	letter-spacing: 0.7px;
}
.product_list_dot li::before {
	content: '';
	position: absolute;
	left: 0.2em;
	top: 0.85em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--color-orange);
}
.product_image img,
.product_image video {
	width: 100%;
	display: block;
}
.product_description + .product_image {
	margin-top: 1em;
}
.product_image + .product_title {
	margin-top: 1em;
}
.product_link {
	margin-block-start: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.product_link a {
	background-color: var(--color-orange);
	border-radius: 9999px;
	color: var(--color-white);
	font-family: var(--font-ja);
	font-size: 12px;
	font-style: normal;
	font-weight: 500;
	line-height: 300%;
	text-transform: uppercase;
	padding: 6px 46px;
	display: inline-block;
	transition: all 0.7s;
	text-align: center;
}
.product_link a:hover {
	opacity: 0.5;
}
.product_recommend {
	display: flex;
	width: min(450px, 100%);
	gap: 16px;
	align-items: flex-start;
	flex-direction: column;
	justify-content: center;
}
.product_recommend_time {
	display: flex;
	width: min(450px, 100%);
	gap: 46px;
	align-items: center;
	padding-block: 12px;
	justify-content: center;
}
.product_recommend_reverse {
	display: flex;
	gap: 16px;
	justify-content: center;
	align-items: flex-end;
	flex-direction: column;
}
.product_recommend_time_reverse {
	display: flex;
	gap: 16px;
	justify-content: center;
	flex-direction: row-reverse;
	align-items: center;
}
.product_recommend_image {
	width: 80%;
	flex-shrink: 0;
}
.product_recommend_image img {
	width: 100%;
}
.product_recommend_time_image {
	width: 60%;
	flex-shrink: 0;
}
.product_recommend_text_block {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* ===== MINERALion: product_inner / product_features ===== */
.product_inner {
	margin-block-start: 24px;
}
.product_inner + .product_inner {
	margin-block-start: 2.5em;
}
.product_features {
	display: flex;
	flex-direction: column;
	/*gap: 16px;*/
}

/* ===== MINERALion: product_recommend_for ===== */
.product_recommend_for {
	display: flex;
	gap: 32px;
	padding-block: 16px;
	align-items: center;
}
.product_recommend_for_reverse {
	flex-direction: row-reverse;
}
.product_title_number {
	font-size: 46px;
	flex-shrink: 0;
}
.product_title_text {
	font-size: 13px;
	line-height: 140%;
	padding-inline-start: 8px;
	border-inline-start: solid 1px var(--color-orange);
}
.product_recommend_text_block .description {
	font-size: 12px;
}

/* ===== UTILITY ===== */
.sp-only { display: none; }

@media (max-width: 48em) {
.product_outer { padding: 16px; }
.product_inner_white { padding: 16px; }
.product_heading3 { gap: 10px; }
.product_title { font-size: 16px; letter-spacing: 0.8px; display: flex; gap: 10px; }
.product_description { font-size: 12px; letter-spacing: 0.6px; }
.product_link { margin-block-start: 24px; }
.product_link a { line-height: 160%; }
.product_recommend { width: 100%; align-items: center; flex-direction: row; padding-block: 0; gap: 16px; }
.product_recommend_time { width: 100%; align-items: center; }
.product_recommend_reverse { align-items: center; flex-direction: row-reverse; }
.product_recommend_image { width: 130px; }
.product_recommend_time_image { width: 130px; }
.sp-only { display: inline; }
}

/* ===== RESPONSIVE ===== */
@media (max-width: 860px) {
.product-detail-inner {
	grid-template-columns: 1fr;
	gap: clamp(24px, 5vw, 40px);
}
.product-detail-image {
	position: static;
}
}
