:root {
	--header-offset: 0px;
}

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

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--color-bg);
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--fs-base);
	line-height: var(--lh-relaxed);
	line-break: strict;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

body.is-nav-open {
	overflow: hidden;
}

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

a {
	color: inherit;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

a:hover {
	color: var(--color-primary);
}

h1,
h2,
h3,
h4 {
	font-family: var(--font-heading);
	font-weight: var(--fw-medium);
	line-height: var(--lh-snug);
	letter-spacing: var(--tracking-normal);
	font-feature-settings: "palt";
	text-wrap: balance;
}

p {
	margin: 0 0 0.8em;
	text-wrap: pretty;
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

.skip-link {
	position: absolute;
	left: 12px;
	top: -40px;
	background: var(--color-primary);
	color: var(--color-primary-soft);
	padding: var(--space-2) var(--space-3);
	z-index: var(--z-drawer);
}

.skip-link:focus {
	top: 12px;
}

:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 3px;
}

.announcement {
	background: var(--top-bar-bg, var(--color-primary));
	color: var(--top-bar-color, var(--color-on-primary));
	font-size: var(--fs-sm);
}

.announcement[hidden] {
	display: none;
}

.announcement__inner {
	display: grid;
	min-height: 36px;
	overflow: hidden;
}

/* Messages share one grid cell; theme.js rotates them and scrolls any that overflow. */
.announcement__text {
	grid-area: 1 / 1;
	align-self: center;
	min-width: 0;
	margin: 0;
	overflow: hidden;
	line-height: var(--lh-snug);
	text-align: center;
	text-overflow: ellipsis;
	white-space: nowrap;
	transition: opacity var(--dur-slower) var(--ease-out), transform var(--dur-slower) var(--ease-out);
}

.announcement__text:not(.is-active) {
	visibility: hidden;
	opacity: 0;
	transform: translateY(80%);
}

.announcement__text.is-leaving {
	visibility: visible;
	transform: translateY(-80%);
}

.announcement__text span {
	display: inline-block;
}

.announcement__text.is-marquee {
	text-align: left;
	text-overflow: clip;
}

.announcement__text.is-marquee span {
	animation: persia-marquee var(--marquee-time, 8s) var(--ease-standard) var(--marquee-count, infinite) alternate both;
}

@keyframes persia-marquee {
	0%,
	18% {
		transform: none;
	}

	82%,
	100% {
		transform: translateX(var(--marquee-shift, 0));
	}
}

@media (max-width: 600px) {
	.announcement {
		font-size: var(--fs-xs);
	}

	.announcement__inner {
		min-height: 32px;
	}
}

.site-header {
	position: sticky;
	top: 0;
	z-index: var(--z-sticky);
	background: var(--color-surface);
	border-bottom: 1px solid var(--color-border);
}

body.admin-bar .site-header {
	top: 32px;
}

body.no-sticky-header .site-header {
	position: relative;
	top: 0;
}

@media (max-width: 782px) {
	body.admin-bar .site-header {
		top: 46px;
	}
}

@media (max-width: 600px) {
	body.admin-bar .site-header {
		top: 0;
	}
}

body.is-scrolled .site-header {
	box-shadow: var(--shadow-md);
}

@media (max-width: 959px) {
	body.has-autohide-header .site-header {
		transition: transform var(--dur-slow) var(--ease-out), box-shadow var(--dur-slow) ease;
	}

	body.is-header-hidden .site-header {
		box-shadow: none;
		transform: translateY(-100%);
	}
}

.site-header__bar {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas: "toggle brand tools"
		"search search search";
	gap: var(--space-2-5) var(--space-3);
	align-items: center;
	padding: var(--space-2-5) 0 var(--space-3);
}

.mobile-tools {
	grid-area: toggle;
}

.site-branding {
	grid-area: brand;
	min-width: 0;
}

.header-search {
	grid-area: search;
}

.header-tools {
	grid-area: tools;
}

.site-branding__link,
.custom-logo-link {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2-5);
	max-width: 100%;
	min-width: 0;
	text-decoration: none;
	color: var(--color-text);
}

.custom-logo-link img,
.custom-logo {
	width: auto;
	max-height: 48px;
}

/* SVG logos often carry no width/height, so give them a height to scale from. */
.custom-logo[src$=".svg"] {
	height: 48px;
}

.logo-mark {
	color: var(--color-primary);
	flex: none;
	width: 40px;
	height: 40px;
}

.site-branding__text {
	display: flex;
	flex-direction: column;
	line-height: var(--lh-tight);
	min-width: 0;
}

.site-branding__ja {
	font-family: var(--font-heading);
	font-size: var(--fs-xs);
	color: var(--color-text-muted);
	letter-spacing: var(--tracking-wide);
}

.site-branding__en {
	font-family: var(--font-heading);
	font-size: var(--fs-lg);
	font-weight: var(--fw-medium);
	color: var(--color-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.mobile-search-toggle {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 0;
	border-radius: var(--radius-round);
	background: transparent;
	color: var(--color-primary);
	cursor: pointer;
}

.mobile-search-toggle__icon {
	width: 32px;
	height: 32px;
	display: grid;
	place-items: center;
	border-radius: var(--radius-round);
	background: var(--color-primary-soft);
}

.primary-nav__list,
.legal-menu,
.category-nav__list,
.shop-cats,
.comment-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.primary-nav__list a {
	text-decoration: none;
}

/* Search */
.header-search {
	position: relative;
	min-width: 0;
}

.header-search__form {
	display: flex;
	align-items: stretch;
	height: 46px;
	background: var(--color-surface);
	border: 1px solid var(--color-border-strong);
	border-radius: var(--radius-sm);
	overflow: hidden;
	transition: border-color var(--dur-base) ease, box-shadow var(--dur-base) ease;
}

.header-search__form:focus-within {
	border-color: var(--color-primary);
	box-shadow: var(--shadow-focus);
}

.header-search input[type="search"] {
	flex: 1;
	min-width: 0;
	border: 0;
	background: transparent;
	padding: 0 var(--space-4);
	outline: none;
}

.header-search input[type="search"]::-webkit-search-cancel-button {
	-webkit-appearance: none;
}

.header-search__submit {
	flex: none;
	width: 48px;
	border: 0;
	background: var(--color-primary);
	color: var(--color-on-primary);
	cursor: pointer;
	display: grid;
	place-items: center;
	transition: background var(--dur-base) ease;
}

.header-search__submit:hover {
	background: var(--color-primary-strong);
}

.header-search.is-loading .header-search__submit svg {
	animation: persia-pulse 0.8s ease-in-out infinite alternate;
}

@keyframes persia-pulse {
	to {
		opacity: 0.35;
	}
}

.header-search__results {
	position: absolute;
	z-index: var(--z-dropdown);
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	max-height: min(70vh, 460px);
	overflow-y: auto;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-lg);
	padding: var(--space-1-5);
}

.header-search__results[hidden] {
	display: none;
}

.header-search__item {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	padding: var(--space-2) var(--space-2-5);
	border-radius: var(--radius-sm);
	text-decoration: none;
	color: var(--color-text);
}

.header-search__item:hover,
.header-search__item.is-active {
	background: var(--color-primary-soft);
	color: var(--color-text);
}

.header-search__item img {
	flex: none;
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: var(--radius-sm);
	background: var(--color-primary-soft);
}

.header-search__meta {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.header-search__name {
	font-size: var(--fs-md);
	line-height: var(--lh-snug);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.header-search__price {
	color: var(--color-primary);
	font-size: var(--fs-sm);
	font-weight: var(--fw-bold);
}

.header-search__all {
	display: block;
	margin-top: var(--space-1);
	padding: var(--space-2-5);
	border-top: 1px solid var(--color-border);
	text-align: center;
	color: var(--color-primary);
	font-weight: var(--fw-bold);
	font-size: var(--fs-md);
	text-decoration: none;
}

.header-search__empty {
	margin: 0;
	padding: var(--space-3-5);
	color: var(--color-text-muted);
	font-size: var(--fs-md);
	text-align: center;
}

/* Account and cart */
.header-tools {
	display: flex;
	align-items: center;
	gap: var(--space-2-5);
}

.header-popover {
	position: relative;
}

.header-account__button {
	width: 42px;
	height: 42px;
	display: grid;
	place-items: center;
	border: 2px solid var(--color-primary);
	border-radius: var(--radius-round);
	background: var(--color-surface);
	color: var(--color-primary);
	cursor: pointer;
	transition: background var(--dur-base) ease, color var(--dur-base) ease;
}

.header-account__button:hover,
.header-account.is-open .header-account__button {
	background: var(--color-primary);
	color: var(--color-on-primary);
}

.header-cart__button {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	height: 42px;
	padding: 0 var(--space-3-5) 0 var(--space-1);
	border: 2px solid var(--color-primary);
	border-radius: var(--radius-pill);
	background: var(--color-surface);
	color: var(--color-primary);
	cursor: pointer;
	font-weight: var(--fw-bold);
	text-decoration: none;
	transition: background var(--dur-base) ease, color var(--dur-base) ease;
}

.header-cart__button:hover {
	background: var(--color-primary-soft);
}

.header-cart__icon {
	position: relative;
	width: 32px;
	height: 32px;
	display: grid;
	place-items: center;
	border-radius: var(--radius-round);
	background: var(--color-primary-soft);
}

.header-cart__count {
	position: absolute;
	top: -8px;
	right: -6px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: var(--radius-pill);
	background: var(--color-primary);
	color: var(--color-on-primary);
	font-size: var(--fs-2xs);
	line-height: 18px;
	text-align: center;
}

.header-cart__total {
	font-size: var(--fs-md);
	white-space: nowrap;
}

.header-cart__total .woocommerce-Price-amount {
	color: inherit;
}

.header-popover__panel {
	position: absolute;
	z-index: var(--z-dropdown);
	top: calc(100% + 10px);
	right: 0;
	width: min(340px, calc(100vw - 24px));
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-lg);
	padding: 18px;
}

.header-popover__panel[hidden] {
	display: none;
}

.header-popover__title {
	margin: 0 0 var(--space-3);
	padding-bottom: var(--space-2-5);
	border-bottom: 1px solid var(--color-border);
	font-weight: var(--fw-bold);
	font-size: var(--fs-base);
}

.header-login {
	display: grid;
	gap: var(--space-2-5);
}

.header-login .c-field {
	margin: 0;
}

.header-login .c-label {
	font-size: var(--fs-sm);
}

.header-login__links {
	display: flex;
	justify-content: space-between;
	gap: var(--space-2);
	margin: var(--space-3) 0 0;
	font-size: var(--fs-sm);
}

.header-login__links a {
	color: var(--color-primary);
}

.header-account__hello {
	margin: 0 0 var(--space-2-5);
	font-weight: var(--fw-bold);
}

.header-account__links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.header-account__links a {
	display: block;
	padding: 9px var(--space-1);
	border-bottom: 1px solid var(--color-border);
	text-decoration: none;
}

.header-account__links li:last-child a {
	border-bottom: 0;
	color: var(--color-primary);
}

/* Main menu row */
.site-header__nav {
	border-top: 1px solid var(--color-border);
}

.primary-nav__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2) 18px;
}

.primary-nav__list .menu-item-home > a {
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.primary-nav__list .menu-item-home > a::before {
	content: "";
	width: 20px;
	height: 20px;
	margin-right: var(--space-2);
	background: var(--color-primary);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 2 11.5h3V21h5.5v-6h3v6H19v-9.5h3z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 2 11.5h3V21h5.5v-6h3v6H19v-9.5h3z'/%3E%3C/svg%3E") center / contain no-repeat;
	flex: none;
}

.category-nav__list {
	display: flex;
	gap: var(--space-2);
	overflow-x: auto;
	padding: 0 0 var(--space-3);
	scrollbar-width: none;
}

.category-nav__list::-webkit-scrollbar {
	display: none;
}

.category-nav__link {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 0 var(--space-3);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-pill);
	background: var(--color-surface);
	text-decoration: none;
	white-space: nowrap;
	font-size: var(--fs-sm);
}

.category-nav__link.is-active,
.category-nav__link:hover {
	border-color: transparent;
	background: color-mix(in srgb, var(--color-primary) 14%, var(--color-surface));
	color: var(--color-primary);
}

@media (max-width: 959px) {
	.site-header__nav,
	.site-header__bar > .header-search,
	.header-account {
		display: none;
	}

	.site-header__bar {
		grid-template-columns: 42px minmax(0, 1fr) 42px;
		grid-template-areas: "toggle brand tools";
		padding: var(--space-2) 0;
	}

	.site-branding {
		justify-self: center;
	}

	.header-tools {
		justify-content: flex-end;
	}

	.header-cart__total {
		display: none;
	}

	.header-cart__button {
		height: 42px;
		padding: 0;
		border: 0;
		background: transparent;
	}
}

@media (min-width: 960px) {
	.mobile-tools,
	.mobile-nav,
	.nav-backdrop,
	.app-bar {
		display: none !important;
	}

	.site-header .container {
		width: min(var(--container-header), calc(100% - 2 * var(--space-12)));
	}

	.site-header__bar {
		grid-template-columns: auto minmax(0, 1fr) auto;
		grid-template-areas: "brand search tools";
		gap: var(--space-7);
		padding: var(--space-2-5) 0;
	}

	.custom-logo-link img,
	.custom-logo {
		max-height: 62px;
	}

	.custom-logo[src$=".svg"] {
		height: 62px;
	}

	.logo-mark {
		width: 52px;
		height: 52px;
	}

	.site-branding__en {
		font-size: var(--fs-2xl);
	}

	.header-search__form {
		height: 48px;
	}

	.header-search__submit {
		width: 52px;
	}

	.header-account__button {
		width: 46px;
		height: 46px;
	}

	.header-cart__button {
		height: 46px;
	}

	.primary-nav__list {
		justify-content: center;
		gap: var(--space-1) var(--space-2-5);
		padding: var(--space-2-5) 0;
	}

	.primary-nav__list > li {
		position: relative;
	}

	.primary-nav__list > li > a {
		display: inline-flex;
		align-items: center;
		min-height: 40px;
		padding: 0 var(--space-5);
		border-radius: var(--radius-pill);
		color: var(--color-text);
		font-size: var(--fs-base);
		transition: background var(--dur-base) ease, color var(--dur-base) ease;
	}

	.primary-nav__list > li > a:hover,
	.primary-nav__list > .current-menu-item > a,
	.primary-nav__list > .current_page_item > a,
	.primary-nav__list > .current-menu-ancestor > a {
		background: color-mix(in srgb, var(--color-primary) 14%, var(--color-surface));
		color: var(--color-primary);
	}

	.primary-nav__list > .menu-item-has-children > a::after {
		content: "";
		width: 6px;
		height: 6px;
		margin: -3px 0 0 var(--space-2);
		border-right: 1.5px solid currentColor;
		border-bottom: 1.5px solid currentColor;
		transform: rotate(45deg);
		opacity: 0.6;
	}

	.primary-nav__list .sub-menu {
		position: absolute;
		z-index: var(--z-dropdown);
		top: 100%;
		left: 50%;
		min-width: 220px;
		list-style: none;
		margin: 0;
		padding: var(--space-2);
		background: var(--color-surface);
		border: 1px solid var(--color-border);
		border-radius: var(--radius-md);
		box-shadow: var(--shadow-lg);
		opacity: 0;
		visibility: hidden;
		transform: translate(-50%, 6px);
		transition: opacity var(--dur-fast) ease, transform var(--dur-fast) ease, visibility var(--dur-fast);
	}

	.primary-nav__list li:hover > .sub-menu,
	.primary-nav__list li:focus-within > .sub-menu {
		opacity: 1;
		visibility: visible;
		transform: translate(-50%, 0);
	}

	.primary-nav__list .sub-menu .sub-menu {
		top: -8px;
		left: 100%;
		transform: translate(0, 6px);
	}

	.primary-nav__list .sub-menu li:hover > .sub-menu,
	.primary-nav__list .sub-menu li:focus-within > .sub-menu {
		transform: translate(0, 0);
	}

	.primary-nav__list .sub-menu a {
		display: block;
		padding: 9px var(--space-3-5);
		border-radius: var(--radius-sm);
		font-size: var(--fs-md);
		white-space: nowrap;
	}

	.primary-nav__list .sub-menu a:has(> .menu-icon) {
		display: flex;
		align-items: center;
		gap: var(--space-2-5);
	}

	.primary-nav__list .sub-menu .menu-icon {
		width: 20px;
		height: 20px;
	}

	.primary-nav__list .sub-menu a:hover,
	.primary-nav__list .sub-menu .current-menu-item > a {
		background: var(--color-primary-soft);
		color: var(--color-primary);
	}
}

.home-section {
	padding: var(--space-7) 0;
}

.category-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-3);
	list-style: none;
	margin: 0;
	padding: 0;
}

.category-card {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	text-decoration: none;
	background: var(--color-surface);
	border-radius: var(--radius-lg);
	overflow: hidden;
	border: 1px solid var(--color-border);
}

.category-card__media {
	aspect-ratio: 4 / 3;
	background: var(--color-primary-soft);
	display: grid;
	place-items: center;
	overflow: hidden;
}

.category-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.category-card__fallback {
	font-family: var(--font-heading);
	font-size: var(--fs-2xl);
	color: var(--color-primary);
}

.category-card__name,
.category-card__count {
	padding: 0 var(--space-3);
}

.category-card__name {
	padding-top: var(--space-2-5);
	font-family: var(--font-heading);
}

.category-card__count {
	padding-bottom: var(--space-3);
	color: var(--color-text-muted);
	font-size: var(--fs-sm);
}

.site-footer {
	margin-top: var(--space-12);
	color: var(--gray-600);
}

.site-footer a {
	color: inherit;
	text-decoration: none;
}

.site-footer__main {
	/* Wave scales with the width; the flat fill continues below it. */
	background:
		url("../images/footer-bg.svg") center top / 100% auto no-repeat,
		linear-gradient(var(--color-surface-alt), var(--color-surface-alt)) 0 9.2vw / 100% 100% no-repeat;
	filter: drop-shadow(1px -6px 10px var(--color-shadow-strong));
	padding: calc(9.5vw + 30px) 0 44px;
}

.site-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 540px) minmax(0, 1fr);
	align-items: center;
	gap: var(--space-8) 0;
	max-width: 900px;
}

.site-footer__brand {
	display: grid;
	gap: var(--space-8);
	justify-items: start;
	padding-right: 180px;
}

.site-footer__logo {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2-5);
	color: var(--color-text) !important;
}

.site-footer__logo img {
	width: 63px;
	height: 63px;
}

.site-footer__logo span {
	font-family: "Lora", "Times New Roman", var(--font-heading);
	font-size: var(--fs-2xl);
	line-height: var(--lh-none);
	white-space: nowrap;
}

.site-footer__brand .custom-logo {
	width: auto;
	max-width: 360px;
	max-height: 63px;
}

.site-footer__desc {
	margin: 0;
	font-size: var(--fs-base);
	font-weight: var(--fw-regular);
	line-height: var(--lh-normal);
}

.site-footer__contact {
	list-style: none;
	margin: 0;
	padding: 0;
	color: var(--color-text);
	font-size: var(--fs-base);
	font-weight: var(--fw-regular);
	line-height: var(--lh-normal);
}

.site-footer__contact li,
.site-footer__contact a {
	display: flex;
	align-items: center;
}

.site-footer__contact li + li {
	margin-top: var(--space-2-5);
}

.site-footer__contact a:hover {
	color: var(--color-primary);
}

.site-footer__icon {
	flex: 0 0 18px;
	color: var(--color-primary);
}

.site-footer__contact span {
	padding-left: 5px;
}

.site-footer__bar {
	background: var(--color-primary);
	color: var(--color-on-primary);
}

.site-footer__bar-inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-1-5) var(--space-5);
	padding: var(--space-3) 0;
	font-size: var(--fs-xs);
	text-align: center;
}

.site-footer__bar p {
	margin: 0;
}

.legal-menu {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-1-5) var(--space-4);
}

.site-footer .legal-menu a:hover {
	text-decoration: underline;
}

.scroll-top {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: var(--z-overlay);
	display: grid;
	place-items: center;
	width: 50px;
	height: 50px;
	padding: 0;
	border: 0;
	border-radius: var(--radius-round);
	background: var(--color-surface-glass);
	color: var(--color-text);
	box-shadow: var(--shadow-xs);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity var(--dur-slow) ease, transform var(--dur-slow) ease, visibility var(--dur-slow), bottom var(--dur-slow) ease;
}

.is-past-fold .scroll-top {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.scroll-top:hover {
	color: var(--color-primary);
}

@media (max-width: 767px) {
	.site-footer__main {
		padding: calc(9.5vw + var(--space-7)) 0 var(--space-8);
	}

	.site-footer__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--space-6);
	}

	.site-footer__brand {
		gap: var(--space-5);
		padding-right: 0;
		padding-bottom: var(--space-6);
		border-bottom: 1px solid var(--color-border);
	}

	.site-footer__logo img {
		width: 48px;
		height: 48px;
	}

	.site-footer__logo span {
		font-size: var(--fs-xl);
	}

	.site-footer__desc,
	.site-footer__contact {
		font-size: var(--fs-md);
	}

	.scroll-top {
		right: 14px;
		bottom: 14px;
		width: 44px;
		height: 44px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.scroll-top {
		transition: none;
	}
}

.page-intro {
	padding: var(--space-7) 0 var(--space-2);
}

.page-intro__title {
	margin: 0;
	font-size: var(--fs-3xl);
}

.page-intro__text,
.page-intro .term-description {
	color: var(--color-text-muted);
	max-width: 40rem;
}

.woocommerce .woocommerce-breadcrumb {
	margin: 0 0 var(--space-2-5);
	color: var(--color-text-muted);
	font-size: var(--fs-sm);
}

.woocommerce .woocommerce-breadcrumb a {
	text-decoration: none;
}

.shop-layout {
	display: grid;
	gap: var(--space-7);
	padding-bottom: var(--space-10);
}

.shop-sidebar {
	align-self: start;
}

.shop-filter {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	padding: var(--space-3) var(--space-4) var(--space-4);
}

.shop-filter summary {
	cursor: pointer;
	font-family: var(--font-heading);
	font-size: var(--fs-lg);
}

.shop-cats {
	display: grid;
	gap: var(--space-1-5);
	margin-top: var(--space-2-5);
}

.shop-cats a {
	text-decoration: none;
}

.shop-cats a[aria-current="page"] {
	color: var(--color-primary);
}

.shop-layout__results .woocommerce-result-count,
.shop-layout__results .woocommerce-ordering {
	margin: 0 0 var(--space-3);
}

.woocommerce-ordering select {
	--control-h: var(--control-h-sm);
	width: auto;
	min-width: 200px;
	font-size: var(--fs-md);
}

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-4);
	list-style: none;
	margin: 0;
	padding: 0;
	clear: both;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	content: none;
}

.woocommerce ul.products li.product {
	float: none;
	width: auto;
	margin: 0;
}

.product-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	overflow: hidden;
	height: 100%;
}

.product-card__media {
	position: relative;
	display: block;
	aspect-ratio: var(--ratio-product);
	background: var(--color-primary-soft);
	overflow: hidden;
}

/* WooCommerce's own loop rule (height:auto; margin-bottom) and lazy-load wrappers must not shrink the photo. */
.product-card__media > :not(.sold-ribbon),
.woocommerce ul.products li.product .product-card__media img,
.product-card__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	margin: 0;
	object-fit: cover;
}

.product-card .onsale,
.woocommerce ul.products li.product.product-card .onsale {
	position: absolute;
	top: 10px;
	left: 10px;
	right: auto;
	z-index: 1;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 3px var(--space-2);
	border-radius: var(--radius-pill);
	background: var(--color-sale);
	color: var(--color-on-primary);
	font-size: var(--fs-xs);
	font-weight: var(--fw-bold);
	line-height: var(--lh-snug);
}

.product-card__body {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	padding: var(--space-3) var(--space-3) var(--space-3-5);
	flex: 1;
}

.product-card__cat {
	margin: 0;
	color: var(--color-text-muted);
	font-size: var(--fs-xs);
}

.product-card .woocommerce-loop-product__title {
	margin: 0;
	font-family: var(--font-heading);
	font-size: var(--fs-base);
	font-weight: var(--fw-medium);
}

.product-card .woocommerce-loop-product__title a {
	text-decoration: none;
}

.product-card__price,
.summary > p.price,
.woocommerce-variation-price .price {
	color: var(--color-primary);
	font-weight: var(--fw-bold);
	font-variant-numeric: tabular-nums;
}

.product-card__price .price,
.summary > p.price,
.woocommerce-variation-price .price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--space-1-5);
}

.product-card__price::after,
.summary > p.price::after,
.woocommerce-variation-price .price::after {
	content: "税込";
	font-size: var(--fs-2xs);
	font-weight: var(--fw-medium);
	color: var(--color-text-muted);
}

/* WooCommerce's own price suffix (設定 → 税金 → 価格の接尾辞) already says it. */
.product-card__price:has(.woocommerce-price-suffix)::after,
.summary > p.price:has(.woocommerce-price-suffix)::after,
.woocommerce-variation-price .price:has(.woocommerce-price-suffix)::after,
.persia-carousel .product-card__price:has(.woocommerce-price-suffix)::after {
	content: none;
}

.woocommerce-price-suffix {
	color: var(--color-text-muted);
	font-size: var(--fs-2xs);
	font-weight: var(--fw-medium);
}

.woocommerce del {
	color: var(--color-text-muted);
	font-weight: var(--fw-regular);
}

.woocommerce ins {
	text-decoration: none;
	color: var(--color-sale);
}

.product-card__actions {
	margin-top: auto;
	padding-top: var(--space-2);
}

.product-card__actions .button {
	--_h: 40px;
	--_px: var(--space-2-5);
	--_fs: var(--fs-sm);
	width: 100%;
	gap: var(--space-1-5);
}

.product-card__actions .add_to_cart_button::before {
	content: "";
	width: 16px;
	height: 16px;
	flex: none;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1 2h3.2l.8 3H22l-2.6 9.5H7.4l.5 2H19v2H6.4L3 4H1z'/%3E%3Ccircle cx='8.5' cy='20.5' r='1.5'/%3E%3Ccircle cx='17.5' cy='20.5' r='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1 2h3.2l.8 3H22l-2.6 9.5H7.4l.5 2H19v2H6.4L3 4H1z'/%3E%3Ccircle cx='8.5' cy='20.5' r='1.5'/%3E%3Ccircle cx='17.5' cy='20.5' r='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.woocommerce div.product {
	display: grid;
	gap: var(--space-7);
	padding-bottom: var(--space-12);
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	float: none;
	width: auto;
	margin: 0;
}

.woocommerce div.product div.images {
	opacity: 1 !important;
}

.woocommerce div.product .woocommerce-product-gallery {
	opacity: 1 !important;
}

.woocommerce div.product div.images img {
	border-radius: var(--radius-lg);
}

.summary .product_title {
	margin: 0 0 var(--space-2);
	font-size: var(--fs-3xl);
}

.summary .price,
.woocommerce div.product .summary .price {
	color: var(--color-primary);
	font-size: var(--fs-xl);
	margin: var(--space-2) 0 var(--space-3);
}

.woocommerce div.product .stock {
	color: var(--color-success);
	font-weight: var(--fw-bold);
}

.woocommerce div.product .out-of-stock {
	color: var(--color-danger);
}

.summary .woocommerce-product-details__short-description {
	color: var(--color-text-muted);
}

.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2-5);
	align-items: flex-end;
	margin: var(--space-4) 0;
}

.woocommerce div.product form.cart .variations {
	width: 100%;
	margin: 0;
}

.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th {
	display: block;
	padding: 0 0 var(--space-2);
	text-align: left;
}

.woocommerce div.product form.cart .quantity .qty,
.woocommerce .quantity .qty {
	width: 4.5rem;
	padding-inline: var(--space-2);
	text-align: center;
	appearance: textfield;
}

.woocommerce div.product .woocommerce-tabs {
	grid-column: 1 / -1;
	padding-top: var(--space-2);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	gap: var(--space-4);
	list-style: none;
	margin: 0 0 var(--space-4);
	padding: 0;
	border-bottom: 1px solid var(--color-border);
	overflow: auto;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	content: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: 0;
	margin: 0;
	padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: var(--space-2) 0;
	text-decoration: none;
	color: var(--color-text-muted);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--color-text);
	box-shadow: inset 0 -2px 0 var(--color-primary);
}

.woocommerce div.product .woocommerce-tabs .panel {
	margin: 0;
}

.prose table,
.woocommerce-Tabs-panel table,
.woocommerce table.shop_table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--fs-md);
}

.prose th,
.prose td,
.woocommerce-Tabs-panel th,
.woocommerce-Tabs-panel td,
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: var(--space-2-5) var(--space-2);
	border-bottom: 1px solid var(--color-border);
	text-align: left;
	vertical-align: top;
}

.prose h2,
.prose h3,
.article h1 {
	font-family: var(--font-heading);
}

.article-main {
	padding: var(--space-8) 0 var(--space-12);
}

.article__header {
	margin-bottom: var(--space-5);
}

.article__header time,
.post-card time {
	color: var(--color-text-muted);
	font-size: var(--fs-sm);
}

.article__header h1 {
	margin: var(--space-1-5) 0 0;
	font-size: var(--fs-3xl);
}

.article__media {
	margin: var(--space-5) 0;
}

.article__media img,
.post-card__media img {
	width: 100%;
	border-radius: var(--radius-lg);
	object-fit: cover;
}

.post-grid {
	display: grid;
	gap: var(--space-4);
	padding-bottom: 36px;
}

.post-card__link {
	display: grid;
	gap: var(--space-3);
	text-decoration: none;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	overflow: hidden;
}

.post-card__body {
	padding: var(--space-1) var(--space-4) var(--space-4);
}

.post-card h2 {
	margin: var(--space-1) 0;
	font-size: var(--fs-xl);
}

.post-nav {
	display: grid;
	gap: var(--space-3);
	margin: var(--space-7) 0;
}

.post-nav a {
	text-decoration: none;
}

.empty-state {
	padding: var(--space-12) 0 var(--space-16);
}

.comments {
	margin-top: var(--space-8);
	padding-top: var(--space-3);
	border-top: 1px solid var(--color-border);
}

.cart-page,
.checkout-page,
.thankyou-page,
.pay-page,
.account-layout {
	padding: var(--space-7) 0 var(--space-12);
}

.checkout-progress {
	display: flex;
	justify-content: center;
	list-style: none;
	margin: 0 0 var(--space-7);
	padding: 0;
	color: var(--color-text-muted);
	font-size: var(--fs-sm);
}

.checkout-progress__step {
	display: flex;
	align-items: center;
	gap: var(--space-2);
}

.checkout-progress__step:not(:last-child)::after {
	content: "";
	width: 48px;
	height: 1px;
	margin-inline: var(--space-2);
	background: var(--color-border-strong);
}

.checkout-progress__num {
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	border: 1px solid var(--color-border-strong);
	border-radius: var(--radius-round);
	font-size: var(--fs-xs);
	line-height: 1;
}

.checkout-progress .is-done {
	color: var(--color-primary);
}

.checkout-progress .is-done .checkout-progress__num {
	border-color: var(--color-primary);
}

.checkout-progress .is-done::after {
	background: var(--color-primary);
}

.checkout-progress .is-current {
	color: var(--color-text);
	font-weight: var(--fw-bold);
}

.checkout-progress .is-current .checkout-progress__num {
	border-color: var(--color-primary);
	background: var(--color-primary);
	color: var(--color-on-primary);
}

.cart-layout,
.checkout-layout,
.account-layout {
	display: grid;
	gap: var(--space-6);
}

.cart_totals,
.checkout-layout__review,
.woocommerce-MyAccount-navigation,
.woocommerce-MyAccount-content,
.pay-form,
.woocommerce form.login,
.woocommerce form.checkout_coupon,
.woocommerce form.register {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	padding: 18px;
}

/* woocommerce-layout.css is dequeued, so the login/register layout bits live here. */
.woocommerce form .password-input {
	position: relative;
	display: flex;
	flex-direction: column;
}

.woocommerce form .password-input input {
	padding-right: var(--space-10);
}

.woocommerce form .show-password-input {
	position: absolute;
	top: 50%;
	right: var(--space-1-5);
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	border-radius: var(--radius-sm);
	background: transparent;
	color: var(--color-text-muted);
	cursor: pointer;
	transform: translateY(-50%);
	--icon-eye: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
	--icon-eye-off: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.94 17.94A10.07 10.07 0 0 1 12 19c-6.5 0-10-7-10-7a18.5 18.5 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c6.5 0 10 7 10 7a18.5 18.5 0 0 1-2.16 3.19M14.12 14.12a3 3 0 1 1-4.24-4.24'/%3E%3Cpath d='M1 1l22 22'/%3E%3C/svg%3E");
}

.woocommerce form .show-password-input:hover {
	color: var(--color-primary);
}

.woocommerce form .show-password-input:focus-visible {
	outline: none;
	box-shadow: var(--shadow-focus);
}

.woocommerce form .show-password-input::after {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: var(--icon-eye) center / contain no-repeat;
	mask: var(--icon-eye) center / contain no-repeat;
}

.woocommerce form .show-password-input.display-password::after {
	-webkit-mask-image: var(--icon-eye-off);
	mask-image: var(--icon-eye-off);
}

.woocommerce form.login .form-row:has(.woocommerce-form-login__submit),
.woocommerce form.register .form-row:has(.woocommerce-form-register__submit) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3) var(--space-5);
}

.woocommerce form .form-row .woocommerce-form-login__rememberme {
	order: 2;
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	margin: 0;
	font-size: var(--fs-sm);
	font-weight: var(--fw-medium);
	cursor: pointer;
}

.woocommerce form .form-row .woocommerce-form-login__rememberme input {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: var(--color-primary);
}

.woocommerce form.login .lost_password {
	margin: var(--space-3) 0 0;
	font-size: var(--fs-sm);
}

.cart_totals h2,
#order_review_heading {
	margin: 0 0 var(--space-3);
	font-size: var(--fs-xl);
}

.cart_totals .shop_table,
.woocommerce-checkout-review-order-table {
	margin: 0;
}

/* WooCommerce sets these with !important. */
.woocommerce a.remove {
	color: var(--color-text-muted) !important;
	transition: background-color var(--dur-fast) var(--ease-standard);
}

.woocommerce a.remove:hover {
	background: var(--color-danger);
	color: var(--color-on-primary) !important;
}

/* Cart page */
.cart-page .cart-layout {
	max-width: 1000px;
	margin-inline: auto;
}

.cart-ship {
	margin-bottom: var(--space-3);
	padding: var(--space-4) var(--space-5);
	border: 2px dashed var(--color-border);
	border-radius: var(--radius-md);
}

.cart-ship__text {
	margin: 0 0 var(--space-2-5);
	color: var(--color-text-muted);
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
}

.cart-ship__text strong,
.cart-ship__text .woocommerce-Price-amount {
	color: var(--color-primary);
}

.cart-ship__bar {
	height: 10px;
	overflow: hidden;
	border-radius: var(--radius-pill);
	background: var(--gray-100);
}

.cart-ship__bar span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: repeating-linear-gradient(135deg, var(--color-primary) 0 8px, color-mix(in srgb, var(--color-primary) 70%, var(--color-surface)) 8px 16px);
	transition: width var(--dur-base) ease;
}

.woocommerce table.shop_table.cart-table {
	margin: 0;
}

.woocommerce table.shop_table.cart-table th {
	padding-block: var(--space-2);
	border-bottom: 1px solid var(--color-border);
	background: none;
	color: var(--color-text-muted);
	font-size: var(--fs-sm);
	font-weight: var(--fw-medium);
}

.woocommerce table.shop_table.cart-table td,
.woocommerce table.shop_table.cart-table th {
	vertical-align: middle;
}

.cart-table td.product-remove {
	width: 1%;
	text-align: center;
}

.woocommerce .cart-table a.remove {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	width: auto;
	height: auto;
	padding: var(--space-1);
	border-radius: var(--radius-sm);
	color: var(--color-text) !important;
	font-size: var(--fs-xs);
	font-weight: var(--fw-regular);
	line-height: 1;
	white-space: nowrap;
}

.woocommerce .cart-table a.remove:hover {
	background: transparent;
	color: var(--color-primary) !important;
}

.cart-table .remove__icon {
	font-size: var(--fs-lg);
}

.cart-table td.product-thumbnail {
	width: 1%;
}

.cart-table td.product-thumbnail img {
	display: block;
	width: 64px;
	max-width: none;
	padding: 2px;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
}

.cart-table td.product-name a {
	color: var(--color-text);
	text-decoration: none;
}

.cart-table td.product-name a:hover {
	color: var(--color-primary);
}

.cart-table td.product-price {
	color: var(--color-text-muted);
	white-space: nowrap;
}

.cart-table td.product-subtotal {
	color: var(--color-primary);
	font-weight: var(--fw-bold);
	text-align: right;
	white-space: nowrap;
}

.cart-table th.product-subtotal {
	text-align: right;
}

.cart-table .cart-table__actions {
	display: none;
}

.qty-stepper {
	display: inline-flex;
	align-items: stretch;
	height: 30px;
	border: 1px solid var(--color-border-strong);
}

.qty-stepper__btn {
	width: 26px;
	padding: 0;
	border: 0;
	background: var(--color-surface);
	color: var(--color-text);
	font-size: var(--fs-md);
	cursor: pointer;
}

.qty-stepper__btn:hover {
	color: var(--color-primary);
}

.qty-stepper .quantity {
	display: flex;
}

.woocommerce .qty-stepper .quantity .qty {
	width: 34px;
	height: 100%;
	min-height: 0;
	padding: 0;
	border: 0;
	border-inline: 1px solid var(--color-border-strong);
	border-radius: 0;
	font-size: var(--fs-sm);
	appearance: textfield;
	-moz-appearance: textfield;
}

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

.cart-page .cart_totals {
	padding: var(--space-5);
	border: 2px solid var(--color-border);
	border-radius: var(--radius-md);
}

.cart-page .cart_totals h2 {
	margin-bottom: var(--space-4);
	font-family: var(--font-heading);
	font-size: var(--fs-xl);
	font-weight: var(--fw-regular);
}

.woocommerce .cart-page .cart_totals table.shop_table th,
.woocommerce .cart-page .cart_totals table.shop_table td {
	padding: var(--space-1-5) 0;
	border: 0;
	background: none;
	vertical-align: middle;
}

.cart-page .cart_totals th {
	font-size: var(--fs-sm);
	font-weight: var(--fw-regular);
}

.cart-page .cart_totals .order-total td {
	text-align: right;
}

.cart-page .cart_totals .order-total strong {
	color: var(--color-primary);
	font-size: var(--fs-lg);
}

.cart-total__tax {
	font-size: var(--fs-xs);
}

.woocommerce-cart .cart-page .wc-proceed-to-checkout a.checkout-button {
	--_h: 40px;
	--_fs: var(--fs-sm);
	border-radius: var(--radius-xs);
}

.cart-continue {
	margin: var(--space-6) 0 0;
	text-align: center;
}

.cart-continue__link {
	display: inline-block;
	padding: var(--space-2) var(--space-6);
	border: 1px dashed var(--color-primary);
	border-radius: var(--radius-xs);
	color: var(--color-primary);
	font-size: var(--fs-sm);
	text-decoration: none;
	transition: background var(--dur-base) ease;
}

.cart-continue__link:hover {
	background: var(--color-primary-soft);
}

/* Checkout page */
.checkout-page {
	max-width: 1080px;
	margin-inline: auto;
}

.checkout-page .woocommerce-form-coupon-toggle .woocommerce-info {
	--_alert: var(--color-primary);
	margin-bottom: var(--space-4);
	padding: var(--space-3) var(--space-4);
	border: 1px dashed var(--color-border-strong);
	background: none;
	color: var(--color-text-muted);
	font-size: var(--fs-sm);
}

.checkout-page form.checkout_coupon {
	margin: 0 0 var(--space-4);
	border-radius: var(--radius-md);
}

.checkout-layout__details {
	display: grid;
	gap: var(--space-4);
	align-content: start;
}

.checkout-card {
	padding: var(--space-6);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	background: var(--color-surface);
}

.checkout-page .woocommerce-billing-fields > h3,
.checkout-page .wmc-payment-heading,
.checkout-page .custom-checkout-fields-container .wmc-df-title {
	display: flex;
	align-items: center;
	gap: var(--space-2-5);
	margin: 0 0 var(--space-5);
	color: var(--color-text);
	font-family: var(--font-heading);
	font-size: var(--fs-xl);
	font-weight: var(--fw-regular);
	letter-spacing: 0;
	line-height: var(--lh-snug);
}

.checkout-page .woocommerce-billing-fields > h3::before,
.checkout-page .wmc-payment-heading::before,
.checkout-page .custom-checkout-fields-container .wmc-df-title::before {
	content: "1";
	display: grid;
	flex: none;
	place-items: center;
	width: 26px;
	height: 26px;
	border-radius: var(--radius-round);
	background: var(--color-primary-soft);
	color: var(--color-primary);
	font-family: var(--font-body);
	font-size: var(--fs-xs);
	font-weight: var(--fw-bold);
}

.checkout-page .custom-checkout-fields-container .wmc-df-title::before {
	content: "2";
}

.checkout-page .wmc-payment-heading::before {
	content: "3";
}

.checkout-page .woocommerce-billing-fields__field-wrapper,
.checkout-page .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-4);
}

.checkout-page .woocommerce-billing-fields__field-wrapper .form-row,
.checkout-page .woocommerce-shipping-fields__field-wrapper .form-row {
	grid-column: 1 / -1;
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
}

.checkout-page .woocommerce-billing-fields__field-wrapper .form-row-first,
.checkout-page .woocommerce-billing-fields__field-wrapper .form-row-last,
.checkout-page .woocommerce-shipping-fields__field-wrapper .form-row-first,
.checkout-page .woocommerce-shipping-fields__field-wrapper .form-row-last,
.checkout-page #billing_postcode_field,
.checkout-page #billing_state_field,
.checkout-page #billing_phone_field,
.checkout-page #billing_email_field,
.checkout-page #shipping_postcode_field,
.checkout-page #shipping_state_field {
	grid-column: auto;
}

/* WooCommerce's address script sets an inline display on the country row. */
.checkout-page .form-row:has(select.country_to_state--single) {
	display: none !important;
}

.woocommerce .checkout-page form .form-row label:not(.checkbox),
.checkout-page .custom-checkout-fields-container .form-row label {
	margin: 0 0 var(--space-1-5);
	color: var(--color-text);
	font-size: var(--fs-sm);
	font-weight: var(--fw-medium);
}

.checkout-page .form-row .required {
	color: var(--color-primary);
	text-decoration: none;
}

.checkout-page .checkout .col-2 h3#ship-to-different-address {
	float: none;
	margin: var(--space-6) 0 0;
	padding-top: var(--space-5);
	border-top: 1px solid var(--color-border);
	font-family: var(--font-body);
	font-size: var(--fs-md);
	font-weight: var(--fw-regular);
}

.checkout-page #ship-to-different-address label {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2-5);
	cursor: pointer;
}

.checkout-page #ship-to-different-address input,
.checkout-page .wc_payment_methods input.input-radio {
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: var(--color-primary);
	vertical-align: middle;
}

.checkout-page .shipping_address {
	margin-top: var(--space-5);
}

.checkout-page .woocommerce-additional-fields:has(.wmc-checkout-points) {
	margin-top: var(--space-6);
}

.checkout-page .wmc-checkout-points {
	margin: 0;
	border: 1px solid var(--color-border);
	box-shadow: none;
}

.checkout-page .wmc-cp-header {
	padding: var(--space-3) var(--space-4);
	border-bottom: 1px solid var(--color-border);
	background: var(--color-surface-alt);
}

.checkout-page .wmc-cp-title {
	color: var(--color-text);
}

.checkout-page .wmc-cp-balance-pill {
	border-color: var(--color-border);
	background: var(--color-surface);
	color: var(--color-primary);
}

.checkout-page .wmc-cp-earn-note {
	border-left: 0;
}

.checkout-card--payment {
	display: flex;
	flex-direction: column;
}

.checkout-page .custom-checkout-fields-container {
	order: -1;
	margin: 0 0 var(--space-6);
	padding-bottom: var(--space-6);
	overflow: visible;
	border: 0;
	border-bottom: 1px solid var(--color-border);
	border-radius: 0;
	background: none;
	box-shadow: none;
}

.checkout-page .custom-checkout-fields-container .wmc-df-header {
	flex-wrap: wrap;
	gap: 0 var(--space-3);
	margin-bottom: var(--space-5);
	padding: 0;
	background: none;
}

.checkout-page .custom-checkout-fields-container .wmc-df-title {
	margin: 0;
}

.checkout-page .custom-checkout-fields-container .wmc-df-subtitle {
	padding: 0;
	border: 0;
	background: none;
	color: var(--color-text-muted);
	font-size: var(--fs-xs);
	font-weight: var(--fw-regular);
}

.checkout-page .custom-checkout-fields-container .wmc-df-body {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-4);
	padding: 0;
	background: none;
}

.checkout-page .custom-checkout-fields-container .form-row {
	margin: 0;
}

.checkout-page .custom-checkout-fields-container #order_note_field {
	grid-column: 1 / -1;
}

.checkout-page .custom-checkout-fields-container select,
.checkout-page .custom-checkout-fields-container textarea {
	border: 1px solid var(--color-border-strong);
	border-radius: var(--radius-sm);
	background-color: var(--color-surface);
	font-size: var(--fs-md);
}

.checkout-page .custom-checkout-fields-container select:focus,
.checkout-page .custom-checkout-fields-container textarea:focus {
	border-color: var(--color-primary);
	box-shadow: var(--shadow-focus);
	background-color: var(--color-surface);
}

.checkout-page .wmc-payment-heading {
	margin-bottom: var(--space-4);
}

.checkout-page .wc_payment_methods > li {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 0 var(--space-2-5);
	margin: 0 0 var(--space-2-5);
	padding: var(--space-4);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	transition: border-color var(--dur-fast) ease, background-color var(--dur-fast) ease;
}

.woocommerce-checkout .checkout-page #payment ul.payment_methods li::before,
.woocommerce-checkout .checkout-page #payment ul.payment_methods li::after {
	content: none;
}

.checkout-page .wc_payment_methods > li:has(input:checked) {
	border-color: var(--color-primary);
	background: color-mix(in srgb, var(--color-primary) 4%, var(--color-surface));
}

.checkout-page .wc_payment_methods > li > label {
	margin: 0;
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
	cursor: pointer;
}

.woocommerce-checkout .checkout-page #payment div.payment_box {
	grid-column: 2;
	margin: var(--space-2) 0 0;
	padding: 0;
	background: none;
	font-size: var(--fs-sm);
}

.woocommerce-checkout .checkout-page #payment div.payment_box p {
	margin: 0;
}

.woocommerce-checkout .checkout-page #payment .place-order {
	margin-top: var(--space-4);
	padding-top: var(--space-5);
	border-top: 1px solid var(--color-border);
}

.checkout-page .woocommerce-privacy-policy-text {
	color: var(--color-text-muted);
	font-size: var(--fs-xs);
	line-height: var(--lh-relaxed);
}

.woocommerce .checkout-page #payment #place_order {
	--_h: 52px;
	--_fs: var(--fs-base);
	margin-top: var(--space-4);
	border-radius: var(--radius-xs);
	letter-spacing: 0.08em;
}

.checkout-page .checkout-layout__review {
	padding: var(--space-5);
	border: 2px solid var(--color-border);
	border-radius: var(--radius-md);
}

.checkout-page #order_review_heading {
	margin: 0 0 var(--space-4);
	font-family: var(--font-heading);
	font-size: var(--fs-xl);
	font-weight: var(--fw-regular);
}

.checkout-page .wmc-checkout-order-notice {
	margin: 0 0 var(--space-4);
	padding: var(--space-2-5) var(--space-3);
	border: 0;
	border-radius: var(--radius-sm);
	font-size: var(--fs-xs);
	font-weight: var(--fw-medium);
}

.woocommerce .checkout-page table.woocommerce-checkout-review-order-table th,
.woocommerce .checkout-page table.woocommerce-checkout-review-order-table td {
	padding: var(--space-2) 0;
	border: 0;
	background: none;
	font-size: var(--fs-sm);
	font-weight: var(--fw-regular);
	vertical-align: top;
}

.checkout-page .woocommerce-checkout-review-order-table thead {
	display: none;
}

.checkout-page .woocommerce-checkout-review-order-table td.product-name {
	padding-right: var(--space-3);
	line-height: var(--lh-relaxed);
}

.checkout-page .woocommerce-checkout-review-order-table .product-quantity {
	color: var(--color-text-muted);
	font-weight: var(--fw-regular);
}

.checkout-page .woocommerce-checkout-review-order-table td.product-name > .amount {
	margin-left: var(--space-1);
	color: var(--color-text-muted);
}

.checkout-page #shipping_method label {
	font-weight: var(--fw-regular);
}

.woocommerce .checkout-page .woocommerce-checkout-review-order-table td:last-child {
	text-align: right;
	white-space: nowrap;
}

.woocommerce .checkout-page .woocommerce-checkout-review-order-table tbody tr:last-child td {
	padding-bottom: var(--space-3);
	border-bottom: 1px solid var(--color-border);
}

.woocommerce .checkout-page .woocommerce-checkout-review-order-table tfoot tr:first-child > * {
	padding-top: var(--space-3);
}

.checkout-page #shipping_method {
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce .checkout-page .woocommerce-checkout-review-order-table .order-total > * {
	padding-top: var(--space-3);
	border-top: 1px solid var(--color-border);
	vertical-align: middle;
}

.checkout-page .woocommerce-checkout-review-order-table .order-total strong {
	color: var(--color-primary);
	font-size: var(--fs-xl);
}

.checkout-page .woocommerce-checkout-review-order-table .wmc-earn-preview > * {
	font-size: var(--fs-xs);
}

.checkout-back {
	margin: var(--space-4) 0 0;
	text-align: center;
	font-size: var(--fs-sm);
}

.checkout-back a {
	color: var(--color-text-muted);
}

@media (max-width: 959px) {
	.checkout-page .checkout-layout__review {
		order: -1;
	}
}

@media (max-width: 599px) {
	.checkout-card {
		padding: var(--space-5) var(--space-4);
	}

	.checkout-page #billing_phone_field,
	.checkout-page #billing_email_field,
	.checkout-page .custom-checkout-fields-container .form-row {
		grid-column: 1 / -1;
	}

	.checkout-page .custom-checkout-fields-container .wmc-df-body {
		grid-template-columns: minmax(0, 1fr);
	}

	.checkout-page .custom-checkout-fields-container .wmc-df-subtitle {
		flex-basis: 100%;
		margin: var(--space-1) 0 0;
		text-align: left;
	}

	.checkout-progress__step:not(:last-child)::after {
		width: 24px;
	}
}

@media (min-width: 960px) {
	.cart-page .cart-layout {
		grid-template-columns: minmax(0, 1fr) 320px;
		gap: 26px;
	}
}

@media (max-width: 719px) {
	.cart-table thead {
		display: none;
	}

	.cart-table tbody tr.cart_item {
		display: grid;
		grid-template-columns: 28% minmax(0, 1fr) auto;
		column-gap: var(--space-4);
		padding: var(--space-4) 0;
		border-bottom: 1px solid var(--color-border);
	}

	.woocommerce table.shop_table.cart-table tr.cart_item td {
		display: block;
		width: auto;
		padding: var(--space-2-5) 0;
		border-bottom: 1px dashed var(--color-border);
		line-height: 34px;
		text-align: right;
	}

	.woocommerce table.shop_table.cart-table tr.cart_item td.product-thumbnail {
		grid-column: 1;
		grid-row: 1 / span 4;
		align-self: start;
		padding: 0;
		border: 0;
		line-height: 1;
	}

	.cart-table td.product-thumbnail img {
		width: 100%;
	}

	.woocommerce table.shop_table.cart-table tr.cart_item td.product-name {
		grid-column: 2;
		grid-row: 1;
		padding-top: 0;
		border: 0;
		font-size: var(--fs-lg);
		line-height: 1.5;
		text-align: left;
	}

	.woocommerce table.shop_table.cart-table tr.cart_item td.product-remove {
		grid-column: 3;
		grid-row: 1;
		padding-top: 0;
		border: 0;
		line-height: 1.5;
	}

	.woocommerce .cart-table a.remove {
		flex-direction: row;
		gap: var(--space-3);
		padding: 0;
		font-size: var(--fs-md);
	}

	.woocommerce table.shop_table.cart-table tr.cart_item td.product-price,
	.woocommerce table.shop_table.cart-table tr.cart_item td.product-quantity,
	.woocommerce table.shop_table.cart-table tr.cart_item td.product-subtotal {
		grid-column: 2 / 4;
	}

	.woocommerce table.shop_table.cart-table tr.cart_item td.product-subtotal {
		border-bottom: 0;
	}

	.woocommerce table.shop_table.cart-table tr.cart_item td[data-title]::before {
		content: attr(data-title);
		float: left;
		color: var(--color-text-muted);
		font-weight: var(--fw-regular);
	}

	.qty-stepper {
		height: 34px;
		vertical-align: top;
	}

	.qty-stepper__btn {
		width: 30px;
	}

	.woocommerce .qty-stepper .quantity .qty {
		width: 46px;
	}
}

.woocommerce table.shop_table {
	margin: 0 0 var(--space-6);
	border: 0;
	border-radius: 0;
}

.woocommerce table.shop_table td,
.woocommerce table.shop_table tbody th,
.woocommerce table.shop_table tfoot td,
.woocommerce table.shop_table tfoot th {
	border-top: 0;
}

.wc-proceed-to-checkout,
.woocommerce #payment #place_order {
	margin-top: var(--space-3);
}

.wc-proceed-to-checkout .button,
#place_order {
	--_h: var(--control-h-lg);
	--_px: var(--space-8);
	--_fs: var(--fs-base);
	width: 100%;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	margin-bottom: 0;
	padding: 0 var(--_px);
	font-size: var(--_fs);
}

.wc_payment_methods {
	list-style: none;
	margin: 0 0 var(--space-3);
	padding: 0;
}

.wc_payment_methods > li {
	margin: 0 0 var(--space-2);
	padding: var(--space-3);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
}

.wc_payment_methods .payment_box {
	margin: var(--space-2) 0 0;
	color: var(--color-text-muted);
	font-size: var(--fs-md);
}

.woocommerce-checkout #payment {
	background: transparent;
	border-radius: 0;
}

.woocommerce-checkout #payment ul.payment_methods {
	padding: 0;
	border-bottom: 0;
}

.woocommerce-checkout #payment div.form-row {
	padding: 0;
}

.woocommerce-checkout #payment div.payment_box {
	margin: var(--space-2) 0 0;
	padding: var(--space-3);
	border-radius: var(--radius-sm);
	background: var(--color-surface-alt);
	color: var(--color-text-muted);
	font-size: var(--fs-md);
}

.woocommerce-checkout #payment div.payment_box::before {
	content: none;
}

.commerce-content > .woocommerce > .woocommerce-form-coupon-toggle,
.commerce-content > .woocommerce > .woocommerce-notices-wrapper:not(:empty) {
	margin-top: var(--space-6);
}

.woocommerce-order-overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: var(--space-3) var(--space-5);
	width: 100%;
	box-sizing: border-box;
	list-style: none;
	margin: var(--space-4) 0;
	padding: var(--space-4);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
}

.woocommerce-order-overview strong {
	display: block;
}

.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--space-1-5);
}

.woocommerce-MyAccount-navigation a {
	display: block;
	padding: var(--space-2) var(--space-2-5);
	border-radius: var(--radius-md);
	text-decoration: none;
}

.woocommerce-MyAccount-navigation .is-active a {
	background: var(--color-primary-soft);
}

.mobile-buybar {
	display: none;
}

.wc-block-cart,
.wc-block-checkout {
	padding: var(--space-7) 0 var(--space-12);
}

.wc-block-components-sidebar {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	padding: var(--space-4);
}

@media (min-width: 720px) {
	.category-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.woocommerce ul.products,
	.post-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.hero__grid {
		grid-template-columns: 1.4fr 0.8fr;
		align-items: end;
	}
}

@media (min-width: 960px) {
	.category-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.category-grid {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}

	.woocommerce ul.products,
	.post-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.post-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.shop-layout {
		grid-template-columns: 220px minmax(0, 1fr);
	}

	.shop-layout--search {
		grid-template-columns: 1fr;
	}

	.shop-layout__results {
		display: grid;
		grid-template-columns: 1fr auto;
		align-items: center;
	}

	.woocommerce .shop-layout__results ul.products {
		grid-template-columns: repeat(var(--shop-cols, 4), minmax(0, 1fr));
	}

	.shop-layout__results .woocommerce-notices-wrapper,
	.shop-layout__results ul.products,
	.shop-layout__results .woocommerce-pagination,
	.shop-layout__results .woocommerce-info {
		grid-column: 1 / -1;
	}

	.woocommerce div.product {
		grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
		column-gap: var(--space-12);
	}

	.woocommerce div.product .woocommerce-tabs,
	.woocommerce div.product .related,
	.woocommerce div.product .upsells,
	.woocommerce div.product > .woocommerce-message,
	.woocommerce div.product > .woocommerce-error,
	.woocommerce div.product > .woocommerce-info {
		grid-column: 1 / -1;
	}

	.cart-layout,
	.checkout-layout,
	.account-layout {
		grid-template-columns: minmax(0, 1fr) 320px;
		align-items: start;
	}

	.checkout-layout {
		grid-template-columns: minmax(0, 1fr) 360px;
	}

	.account-layout {
		grid-template-columns: 240px minmax(0, 1fr);
	}

	.cart-layout__totals,
	.checkout-layout__review {
		position: sticky;
		top: 108px;
	}

	#customer_details.col2-set,
	#customer_details .col-1,
	#customer_details .col-2 {
		float: none;
		width: auto;
	}
}

@media (max-width: 719px) {
	.woocommerce table.shop_table_responsive thead {
		display: none;
	}

	.woocommerce table.shop_table_responsive tr {
		display: block;
		margin-bottom: var(--space-3);
		padding: var(--space-2) var(--space-3);
		border: 1px solid var(--color-border);
		border-radius: var(--radius-lg);
		background: var(--color-surface);
	}

	.woocommerce table.shop_table_responsive td {
		display: flex;
		justify-content: space-between;
		gap: var(--space-3);
		border: 0;
		padding: var(--space-1-5) 0;
	}

	.woocommerce table.shop_table_responsive td::before {
		content: attr(data-title);
		color: var(--color-text-muted);
	}

	.woocommerce table.shop_table_responsive td.product-remove::before,
	.woocommerce table.shop_table_responsive td.product-thumbnail::before,
	.woocommerce table.shop_table_responsive td.actions::before {
		content: none;
	}

	.woocommerce table.shop_table_responsive td.actions {
		display: block;
	}

	.mobile-buybar {
		position: fixed;
		z-index: 20;
		left: 0;
		right: 0;
		bottom: 0;
		display: none;
		grid-template-columns: 1fr auto;
		gap: var(--space-3);
		align-items: center;
		padding: var(--space-2-5) var(--space-4) calc(10px + env(safe-area-inset-bottom));
		background: var(--color-surface);
		border-top: 1px solid var(--color-border);
	}

	.mobile-buybar.is-visible {
		display: grid;
	}

	.mobile-buybar__price .price::after {
		content: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		transition: none !important;
	}
}

/* Product labels, SOLD OUT ribbon, free-shipping banner (inc/product-labels.php). */
.product-chips {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-1-5);
	margin: 0 0 var(--space-1);
}

.product-chip {
	display: inline-flex;
	align-items: center;
	padding: var(--space-1) 11px;
	border-radius: var(--radius-pill);
	font-size: var(--fs-xs);
	font-weight: var(--fw-bold);
	line-height: var(--lh-snug);
	letter-spacing: 0.2px;
	white-space: nowrap;
	background: var(--chip-bg, var(--color-primary));
	color: var(--chip-fg, var(--color-on-primary));
	box-shadow: var(--shadow-sm);
}

.sold-ribbon {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	width: 120px;
	height: 120px;
	overflow: hidden;
	pointer-events: none;
}

.sold-ribbon span,
.woocommerce-product-gallery.is-sold-out::after {
	position: absolute;
	top: 26px;
	left: -44px;
	width: 170px;
	padding: 7px 0;
	transform: rotate(-45deg);
	background: var(--color-sold);
	box-shadow: var(--shadow-sm);
	color: var(--color-on-primary);
	font-size: var(--fs-xs);
	font-weight: var(--fw-bold);
	letter-spacing: 0.55px;
	line-height: 1.1;
	text-align: center;
}

.woocommerce-product-gallery.is-sold-out {
	position: relative;
	overflow: hidden;
}

.woocommerce-product-gallery.is-sold-out::after {
	content: "SOLD OUT";
	z-index: 5;
	top: 34px;
	left: -50px;
	width: 200px;
	padding: 9px 0;
	font-size: var(--fs-md);
	pointer-events: none;
}

.ship-banner {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-2) var(--space-3);
	margin: 0 0 18px;
}

.product-chips--single {
	min-width: 0;
	max-width: 50%;
	margin: 0;
}

.product-chips--single .product-chip {
	padding: 5px var(--space-3);
	border-radius: var(--radius-sm);
	font-size: var(--fs-sm);
	box-shadow: var(--shadow-xs);
}

.ship-banner__ship {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: var(--space-1);
	margin-left: auto;
	min-width: 0;
}

.ship-banner__box {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: var(--space-1-5) 13px;
	border-radius: var(--radius-sm);
	background: var(--color-promo);
	box-shadow: var(--shadow-promo);
	color: var(--color-on-primary);
	line-height: 1.05;
}

.ship-banner__truck {
	flex: none;
}

.ship-banner__copy {
	display: flex;
	flex-direction: column;
	gap: 1px;
}

.ship-banner__main {
	display: flex;
	align-items: baseline;
	gap: 1px;
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
	white-space: nowrap;
}

.ship-banner__main b {
	font-size: var(--fs-lg);
}

.ship-banner__main small {
	font-size: var(--fs-3xs);
	font-weight: var(--fw-bold);
}

.ship-banner__main em {
	margin: 0 var(--space-0-5);
	font-size: var(--fs-2xs);
	font-style: normal;
	font-weight: var(--fw-bold);
}

.ship-banner__note {
	color: var(--color-promo-ink);
	font-size: var(--fs-3xs);
	font-weight: var(--fw-bold);
	letter-spacing: 0.4px;
	white-space: nowrap;
}

.ship-banner__okinawa {
	margin: 0;
	color: var(--color-text);
	font-size: var(--fs-sm);
	font-weight: var(--fw-bold);
	text-align: right;
	white-space: nowrap;
}

@media (max-width: 600px) {
	.product-chips {
		gap: 5px;
	}

	.product-chip {
		padding: 3px 9px;
		font-size: var(--fs-2xs);
	}

	.sold-ribbon span {
		top: 20px;
		left: -48px;
		font-size: var(--fs-3xs);
		padding: 5px 0;
	}

	.product-chips--single {
		gap: var(--space-1);
		max-width: 46%;
	}

	.product-chips--single .product-chip {
		padding: 3px 7px;
		border-radius: var(--radius-xs);
		font-size: var(--fs-3xs);
	}

	.ship-banner__box {
		gap: var(--space-1);
		padding: var(--space-1) 7px;
	}

	.ship-banner__truck {
		width: 14px;
		height: 14px;
	}

	.ship-banner__main {
		font-size: var(--fs-3xs);
	}

	.ship-banner__main b {
		font-size: var(--fs-2xs);
	}

	.ship-banner__main small,
	.ship-banner__main em,
	.ship-banner__note {
		font-size: var(--fs-3xs);
		letter-spacing: 0;
	}

	.ship-banner__okinawa {
		font-size: var(--fs-3xs);
	}
}

.wmc-payment-heading {
	margin: 0 0 var(--space-2-5);
	font-family: var(--font-heading);
	font-size: var(--fs-xl);
}

.wmc-checkout-order-notice {
	margin: 0 0 var(--space-3-5);
	text-align: center;
	white-space: pre-line;
	font-weight: var(--fw-bold);
}

.wmc-checkout-points {
	margin: 0 0 var(--space-4);
	padding: var(--space-3-5);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	background: var(--color-surface);
}

/* ---------- Block builder pages ---------- */
.builder-main {
	padding: var(--space-6) 0 var(--space-14);
}

.builder-content > * {
	width: min(var(--container), calc(100% - var(--container-pad)));
	margin-inline: auto;
	margin-block: 0 var(--space-8);
}

.builder-content > .alignwide {
	width: min(var(--container-wide), calc(100% - var(--container-pad)));
}

.builder-content > .alignfull {
	width: 100%;
}

.builder-content > :last-child {
	margin-bottom: 0;
}

/* The page container already provides the side gutter, so boxed sections don't add a second one. */
.builder-content .pb-section--boxed > .pb-section__inner {
	width: min(var(--pb-width, 1120px), 100%);
}

@media (max-width: 767px) {
	.builder-main {
		padding-top: var(--space-2);
	}
}

.post-head {
	display: grid;
	gap: var(--space-4);
	justify-items: center;
	width: min(var(--container), calc(100% - var(--container-pad)));
	margin: 0 auto var(--space-6);
	text-align: center;
}

.post-head__banner {
	width: 100%;
	border-radius: var(--radius-md);
}

.post-head__note {
	margin: 0;
	color: var(--color-primary);
	font-size: var(--fs-sm);
}

.post-head__title {
	margin: 0;
	font-size: var(--fs-3xl);
}

.post-head__media {
	max-width: 480px;
	margin: 0;
}

.post-head__media img {
	width: 100%;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-md);
}

.post-head .c-section-title {
	width: 100%;
}

.post-head .c-section-title__title {
	font-size: var(--fs-xl);
}

.builder-content > h2,
.builder-content .wp-block-column > h2 {
	font-size: var(--fs-2xl);
	margin: 0 0 0.6em;
}

.builder-content .wp-block-columns {
	gap: var(--space-6);
}

.builder-content .wp-block-column > .persia-news:only-child {
	height: 100%;
}

/* Core blocks: image, text, link, button */
.wp-block-image img {
	border-radius: var(--radius-md);
}

.wp-block-image.is-style-rounded img {
	border-radius: var(--radius-pill);
}

.wp-block-image figcaption {
	color: var(--color-text-muted);
	font-size: var(--fs-sm);
	text-align: center;
}

.builder-content p a,
.prose p a {
	color: var(--color-primary);
	font-weight: var(--fw-medium);
}

/* ---------- Slider block ---------- */
.persia-slider {
	position: relative;
	padding-bottom: 34px;
}

.persia-slider__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.persia-slider__track::-webkit-scrollbar {
	display: none;
}

.persia-slider__track > .wp-block-image {
	flex: 0 0 100%;
	margin: 0;
	scroll-snap-align: start;
}

.persia-slider__track > .wp-block-image img {
	width: 100%;
	border-radius: 0;
	object-fit: cover;
}

.persia-slider[data-fit] .persia-slider__track img {
	aspect-ratio: var(--persia-slide-ratio);
}

@media (max-width: 767px) {
	.persia-slider[data-fit] .persia-slider__track img {
		aspect-ratio: var(--persia-slide-ratio-m);
	}
}

.persia-slider__track > .wp-block-image a {
	display: block;
}

.persia-slider__dots {
	position: absolute;
	inset-inline: 0;
	bottom: 6px;
	display: flex;
	justify-content: center;
	gap: var(--space-2-5);
}

.persia-slider__dots button {
	position: relative;
	width: 10px;
	height: 10px;
	padding: 0;
	border: 0;
	border-radius: var(--radius-round);
	background: var(--color-border-strong);
	cursor: pointer;
	transition: background-color var(--dur-base) ease, transform var(--dur-base) ease;
}

.persia-slider__dots button::after {
	content: "";
	position: absolute;
	inset: -7px;
}

.persia-slider__dots button:hover {
	background: var(--color-text-subtle);
}

.persia-slider__dots button.is-active {
	background: var(--color-primary);
}

.persia-slider__arrow {
	position: absolute;
	top: calc(50% - 17px);
	transform: translateY(-50%);
	width: 36px;
	height: 56px;
	display: grid;
	place-items: center;
	padding: 0;
	border: 0;
	background: none;
	color: var(--color-on-primary);
	filter: drop-shadow(0 1px 3px var(--color-overlay));
	cursor: pointer;
	transition: opacity var(--dur-base) ease;
}

.persia-slider__arrow:hover {
	opacity: 0.8;
}

.persia-slider__arrow svg {
	width: 26px;
	height: 26px;
}

.persia-slider__arrow--prev {
	left: 4px;
}

.persia-slider__arrow--next {
	right: 4px;
}

@media (max-width: 600px) {
	.persia-slider__arrow svg {
		width: 20px;
		height: 20px;
	}
}

/* ---------- Intro / description block ---------- */
.persia-intro {
	background: var(--color-surface);
	border: 1px solid var(--color-primary-border);
	border-radius: var(--radius-md);
	padding: 22px var(--space-6);
	box-shadow: var(--shadow-md);
}

.persia-intro > h1,
.persia-intro > h2,
.persia-intro > h3 {
	border-left: 4px solid var(--color-primary);
	padding-left: 13px;
	margin: 0 0 var(--space-4);
	font-family: var(--font-body);
	font-weight: var(--fw-bold);
	font-size: var(--fs-lg);
	line-height: var(--lh-normal);
	color: var(--color-primary);
	word-break: break-word;
}

.persia-intro > p {
	color: var(--gray-600);
	font-size: var(--fs-md);
	line-height: var(--lh-relaxed);
}

.persia-intro > p:last-child {
	margin-bottom: 0;
}

/* ---------- Intro + news section ---------- */
.persia-split {
	display: grid;
	grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
	align-items: center;
	gap: var(--space-5);
	margin-block: var(--space-6);
}

.persia-split > .persia-news {
	--persia-news-height: 260px;
}

.persia-split.is-layout-flow > * {
	margin-block: 0;
}

@media (max-width: 767px) {
	.persia-split {
		grid-template-columns: 1fr;
	}

	.persia-split > .persia-news {
		display: none;
	}
}

/* ---------- News / RSS block ---------- */
.persia-news {
	display: flex;
	flex-direction: column;
	max-height: var(--persia-news-height, none);
	background: var(--color-surface);
	border: 1px solid var(--color-primary-border);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-md);
	overflow: hidden;
}

.persia-news__header {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 13px 18px;
	background: var(--color-primary);
	color: var(--color-on-primary);
	flex: 0 0 auto;
}

.persia-news__icon {
	width: 15px;
	height: 15px;
	opacity: 0.9;
}

.persia-news .persia-news__title {
	margin: 0;
	font-family: var(--font-body);
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
	letter-spacing: var(--tracking-normal);
	color: var(--color-on-primary);
}

.persia-news__items {
	list-style: none;
	margin: 0;
	padding: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: var(--color-primary-border) var(--color-primary-soft);
}

.persia-news__item {
	position: relative;
	border-bottom: 1px solid var(--color-primary-border);
}

.persia-news__item:last-child {
	border-bottom: 0;
}

.persia-news__item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 3px;
	background: var(--color-primary);
	opacity: 0;
	transition: opacity var(--dur-fast) ease;
}

.persia-news__item:hover::before,
.persia-news__item.is-open::before {
	opacity: 1;
}

.persia-news__head {
	width: 100%;
	display: flex;
	align-items: center;
	gap: var(--space-2-5);
	padding: var(--space-3) 18px;
	background: transparent;
	border: 0;
	text-align: left;
}

button.persia-news__head {
	cursor: pointer;
}

button.persia-news__head:hover {
	background: var(--color-primary-soft);
}

.persia-news__text {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: var(--space-0-5);
	min-width: 0;
}

.persia-news__date {
	color: var(--color-text-subtle);
	font-size: var(--fs-xs);
	font-weight: var(--fw-bold);
}

.persia-news__subject {
	color: var(--color-text);
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
	line-height: var(--lh-normal);
	word-break: break-word;
}

.persia-news__chevron {
	flex: 0 0 16px;
	width: 16px;
	height: 16px;
	color: var(--color-primary);
	transition: transform var(--dur-slow) ease;
}

.persia-news__item.is-open .persia-news__chevron {
	transform: rotate(180deg);
}

.persia-news__panel {
	padding: 0 var(--space-6) var(--space-3-5);
}

.persia-news__panel[hidden] {
	display: none;
}

.persia-news__panel p {
	margin: 0 0 var(--space-2-5);
	font-size: var(--fs-md);
	color: var(--gray-700);
	line-height: var(--lh-relaxed);
}

.persia-news__link {
	display: inline-flex;
	align-items: center;
	gap: var(--space-1-5);
	padding: var(--space-1-5) var(--space-4);
	border-radius: var(--radius-pill);
	background: var(--color-primary);
	color: var(--color-on-primary);
	font-size: var(--fs-sm);
	font-weight: var(--fw-bold);
	text-decoration: none;
}

.persia-news__link:hover {
	background: var(--color-primary-strong);
	color: var(--color-on-primary);
}

.persia-news__empty {
	margin: 0;
	padding: 18px;
	color: var(--color-text-muted);
}

/* ---------- Product category carousel ---------- */
.persia-cats {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 25px;
	margin-block: var(--space-8);
}

.persia-cats .persia-cats__title {
	margin: 15px 0 0;
}

.persia-cats__badge {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	margin: 0;
	padding: 9px 18px 9px 13px;
	border-radius: var(--radius-sm);
	background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary) 100%);
	box-shadow: var(--shadow-primary);
	color: var(--color-on-primary);
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
	letter-spacing: var(--tracking-normal);
}

.persia-cats__badge svg {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	opacity: 0.92;
}

.persia-cats__track {
	--gap: 20px;
	align-self: stretch;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - var(--gap) * (var(--persia-cat-cols, 4) - 1)) / var(--persia-cat-cols, 4));
	gap: var(--gap);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}

.persia-cats__track::-webkit-scrollbar {
	display: none;
}

.persia-cat {
	position: relative;
	display: block;
	aspect-ratio: 6 / 5;
	overflow: hidden;
	border-radius: var(--radius-sm);
	background: var(--color-primary-soft);
	scroll-snap-align: start;
	text-decoration: none;
	isolation: isolate;
}

.persia-cat__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--dur-slower) var(--ease-out);
}

.persia-cat::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: var(--black);
	opacity: 0.1;
	transition: opacity var(--dur-slower) ease;
}

.persia-cat__name,
.persia-cat__count {
	position: absolute;
	top: 50%;
	left: 15px;
	right: 15px;
	z-index: 2;
	width: fit-content;
	margin-inline: auto;
	transform: translateY(-50%);
	text-align: center;
}

.persia-cat__name {
	padding: var(--space-3) 25px;
	border-radius: var(--radius-sm);
	background: var(--color-primary);
	box-shadow: var(--shadow-xs);
	color: var(--color-on-primary);
	font-size: var(--fs-md);
	line-height: var(--lh-snug);
	transition: opacity var(--dur-slow) ease var(--dur-slow);
}

.persia-cat__count {
	color: var(--color-on-primary);
	font-size: var(--fs-base);
	font-weight: var(--fw-bold);
	text-transform: uppercase;
	white-space: nowrap;
	opacity: 0;
	transition: opacity var(--dur-slow) ease;
}

@media (hover: hover) and (pointer: fine) {
	.persia-cat:hover::before {
		opacity: 0.4;
	}

	.persia-cat:hover .persia-cat__img {
		transform: scale(1.04);
	}

	.persia-cat:hover .persia-cat__name:has(+ .persia-cat__count) {
		opacity: 0;
		transition: opacity var(--dur-slow) ease;
	}

	.persia-cat:hover .persia-cat__count {
		opacity: 1;
		transition: opacity var(--dur-slow) ease var(--dur-slow);
	}
}

.persia-cat:focus-visible {
	outline: 3px solid var(--color-primary);
	outline-offset: 3px;
}

.persia-cats__dots,
.persia-carousel__dots {
	display: flex;
	justify-content: center;
	gap: var(--space-2-5);
	margin-top: -10px;
}

.persia-cats__dots[hidden],
.persia-carousel__dots[hidden] {
	display: none;
}

.persia-cats__dots button,
.persia-carousel__dots button {
	position: relative;
	width: 9px;
	height: 9px;
	padding: 0;
	border: 1.5px solid var(--color-text-subtle);
	border-radius: var(--radius-round);
	background: transparent;
	cursor: pointer;
	transition: background-color var(--dur-base) ease, border-color var(--dur-base) ease;
}

.persia-cats__dots button::after,
.persia-carousel__dots button::after {
	content: "";
	position: absolute;
	inset: -7px;
}

.persia-cats__dots button.is-active,
.persia-carousel__dots button.is-active {
	border-color: var(--color-text);
	background: var(--color-surface-inverse);
}

@media (max-width: 767px) {
	.persia-cats {
		--persia-cat-cols: 2 !important;
	}

	.persia-cats__track {
		--gap: 10px;
	}

	.persia-cat__name {
		padding: var(--space-2) var(--space-3-5);
		font-size: var(--fs-sm);
	}
}

@media (prefers-reduced-motion: reduce) {
	.persia-cat__img,
	.persia-cat::before,
	.persia-cat__name,
	.persia-cat__count {
		transition: none;
	}
}

/* ---------- Product carousel block ---------- */
.persia-carousel {
	--gap: 20px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.persia-carousel__head {
	margin-bottom: var(--space-3);
}

.persia-carousel__stage {
	position: relative;
}

.persia-carousel__arrow {
	position: absolute;
	top: calc(var(--persia-media-h, 50%) / 2);
	z-index: 2;
	width: 50px;
	height: 50px;
	display: grid;
	place-items: center;
	padding: 0;
	border: 0;
	background: none;
	color: var(--color-text-subtle);
	cursor: pointer;
	opacity: 0;
	transform: translateY(-50%);
	transition: opacity var(--dur-slow) ease, color var(--dur-base) ease, transform var(--dur-slow) ease;
}

.persia-carousel__arrow--prev {
	right: 100%;
	transform: translate(12px, -50%);
}

.persia-carousel__arrow--next {
	left: 100%;
	transform: translate(-12px, -50%);
}

.persia-carousel:hover .persia-carousel__arrow:not(:disabled),
.persia-carousel__arrow:focus-visible {
	opacity: 1;
	transform: translate(0, -50%);
}

.persia-carousel:hover .persia-carousel__arrow:disabled {
	opacity: 0.35;
	transform: translate(0, -50%);
	cursor: default;
}

.persia-carousel__arrow:hover:not(:disabled) {
	color: var(--color-text);
}

.persia-carousel__arrow[hidden] {
	display: none;
}

.persia-carousel__arrow svg {
	width: 26px;
	height: 26px;
}

.persia-carousel .woocommerce ul.products {
	grid-template-columns: none;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - (var(--persia-cols) - 1) * var(--gap)) / var(--persia-cols));
	gap: var(--gap);
	margin: 0;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}

.persia-carousel .woocommerce ul.products::-webkit-scrollbar {
	display: none;
}

.persia-carousel .woocommerce ul.products li.product {
	scroll-snap-align: start;
}

.persia-carousel .product-card {
	border: 0;
	border-radius: 0;
	background: transparent;
	overflow: visible;
}

.persia-carousel .product-card__media {
	aspect-ratio: var(--ratio-product);
	border-radius: var(--radius-sm);
}

.persia-carousel .product-card__media img {
	transition: transform var(--dur-slower) ease;
}

.persia-carousel .product-card:hover .product-card__media img {
	transform: scale(1.04);
}

.persia-carousel .product-card__body {
	gap: 3px;
	padding: var(--space-2) 0 0;
	text-align: center;
}

.persia-carousel .product-card .woocommerce-loop-product__title {
	font-size: var(--fs-md);
	font-weight: var(--fw-regular);
	line-height: var(--lh-snug);
}

.persia-carousel .product-card .woocommerce-loop-product__title a {
	color: var(--color-text);
}

.persia-carousel .product-card .woocommerce-loop-product__title a:hover {
	color: var(--color-primary);
}

.persia-carousel .product-card__cat {
	order: 1;
	color: var(--color-text-subtle);
	font-size: var(--fs-sm);
}

.persia-carousel .product-card__price {
	order: 2;
	color: var(--color-primary);
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
}

.persia-carousel .product-card__price::after {
	content: "(税込)";
	margin-left: var(--space-1);
	color: var(--color-text-muted);
	font-size: var(--fs-2xs);
	font-weight: var(--fw-regular);
}

.persia-carousel .product-card__actions {
	display: none;
}

.persia-carousel .product-chips {
	justify-content: flex-start;
	margin: 0 0 var(--space-1);
}

.persia-carousel__empty {
	color: var(--color-text-muted);
	text-align: center;
}

@media (max-width: 1240px) {
	.persia-carousel__arrow--prev {
		right: auto;
		left: 0;
	}

	.persia-carousel__arrow--next {
		left: auto;
		right: 0;
	}

	.persia-carousel__arrow {
		color: var(--color-on-primary);
		filter: drop-shadow(0 1px 3px var(--color-overlay));
	}

	.persia-carousel__arrow:hover:not(:disabled) {
		color: var(--color-on-primary);
	}
}

@media (max-width: 767px) {
	.persia-carousel {
		--persia-cols: 2 !important;
		--gap: 10px;
	}

	.persia-carousel__arrow {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.persia-carousel__arrow,
	.persia-carousel .product-card__media img {
		transition: none;
	}
}

/* ---------- Promo blocks: restaurant card, banner, image boxes ---------- */
.home-promo .container {
	display: flex;
	flex-direction: column;
	gap: var(--space-7);
}

.persia-rest {
	width: 100%;
	max-width: 774px;
	margin-inline: auto;
}

.persia-rest__heading {
	margin-bottom: var(--space-4);
}

.persia-rest__card {
	display: flex;
	min-height: 155px;
	overflow: hidden;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	background: var(--color-surface);
	box-shadow: var(--shadow-sm);
	transition: transform var(--dur-slow) ease, box-shadow var(--dur-slow) ease;
}

.persia-rest__card:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-md);
}

.persia-rest__media {
	position: relative;
	flex: 0 0 200px;
	overflow: hidden;
}

.persia-rest__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.persia-rest__logo {
	position: absolute;
	top: 8px;
	left: 8px;
	display: inline-flex;
	align-items: center;
	gap: var(--space-1);
	padding: var(--space-1) var(--space-2);
	border-radius: var(--radius-xs);
	background: var(--color-surface-glass);
	color: var(--color-primary);
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
	line-height: var(--lh-snug);
}

.persia-rest__logo svg {
	width: 16px;
	height: 16px;
	fill: currentColor;
}

.persia-rest__body {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-5);
	padding: var(--space-5) var(--space-6);
}

.persia-rest__badge {
	display: inline-block;
	margin-bottom: var(--space-2);
	padding: var(--space-1) var(--space-2);
	border: 1px solid color-mix(in srgb, var(--color-primary) 18%, var(--color-surface));
	border-radius: var(--radius-md);
	background: var(--crimson-100);
	color: var(--color-primary);
	font-size: var(--fs-xs);
	font-weight: var(--fw-medium);
	line-height: var(--lh-tight);
}

.persia-rest__name {
	margin: 0 0 var(--space-1-5);
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--fs-xl);
	font-weight: var(--fw-bold);
	line-height: var(--lh-snug);
}

.persia-rest__address {
	margin: 0;
	color: var(--gray-600);
	font-size: var(--fs-sm);
	line-height: var(--lh-snug);
}

.persia-rest__cta {
	flex-shrink: 0;
	padding: var(--space-2-5) var(--space-5);
	border-radius: var(--radius-xl);
	background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary) 100%);
	box-shadow: var(--shadow-primary);
	color: var(--color-on-primary);
	font-size: var(--fs-sm);
	font-weight: var(--fw-bold);
	text-decoration: none;
	white-space: nowrap;
	transition: transform var(--dur-base) ease, box-shadow var(--dur-base) ease;
}

.persia-rest__cta:hover {
	color: var(--color-on-primary);
	transform: translateY(-1px);
	box-shadow: var(--shadow-primary);
}

.persia-banner {
	display: flex;
	justify-content: center;
}

.persia-banner__link {
	display: block;
	width: min(100%, var(--persia-banner-w, 300px));
}

.persia-banner__img {
	display: block;
	width: 100%;
	height: auto;
}

.persia-banner.is-hang a.persia-banner__link:hover,
.persia-banner.is-hang a.persia-banner__link:focus-visible {
	animation-name: persia-hang-sink, persia-hang;
	animation-duration: 0.3s, 1.5s;
	animation-delay: 0s, 0.3s;
	animation-timing-function: ease-out, ease-in-out;
	animation-iteration-count: 1, infinite;
	animation-direction: normal, alternate;
	animation-fill-mode: forwards;
}

@keyframes persia-hang-sink {
	100% {
		transform: translateY(8px);
	}
}

@keyframes persia-hang {
	0% {
		transform: translateY(8px);
	}

	100% {
		transform: translateY(4px);
	}
}

.persia-boxes {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	gap: var(--space-6);
}

.persia-boxes__item {
	display: flex;
	flex: 0 1 max(var(--persia-box-img, 168px), 160px);
	flex-direction: column;
	align-items: center;
	gap: var(--space-2);
	min-width: 0;
	margin: 0;
	text-align: center;
}

.persia-boxes__media {
	width: 100%;
	max-width: var(--persia-box-img, 168px);
}

.persia-boxes__item--sized .persia-boxes__img {
	width: 100%;
}

.persia-boxes__item--border .persia-boxes__img,
.persia-boxes__item--both .persia-boxes__img {
	border: var(--persia-box-border-width, 1px) solid var(--persia-box-border-color, var(--color-border));
}

.persia-boxes__item--shadow .persia-boxes__img,
.persia-boxes__item--both .persia-boxes__img {
	box-shadow: var(--shadow-md);
}

.persia-boxes__item:is(.persia-boxes__item--border, .persia-boxes__item--shadow, .persia-boxes__item--both) .persia-boxes__img {
	box-sizing: border-box;
	padding: var(--persia-box-pad, 0);
	border-radius: var(--persia-box-radius, var(--radius-xs));
	background: var(--persia-box-bg, var(--color-surface));
}

.persia-boxes__media a {
	display: block;
}

.persia-boxes__img {
	display: block;
	max-width: 100%;
	height: auto;
	margin-inline: auto;
}

.persia-boxes__text {
	color: var(--gray-600);
	font-size: var(--fs-xs);
	font-weight: var(--fw-bold);
	line-height: var(--lh-normal);
}

.persia-boxes__text a {
	color: var(--color-link);
	text-decoration: none;
}

.persia-boxes__text a:hover {
	text-decoration: underline;
}

@media (max-width: 768px) {
	.persia-rest__card {
		flex-direction: column;
	}

	.persia-rest__media {
		flex-basis: auto;
		aspect-ratio: 16 / 9;
	}

	.persia-rest__body {
		flex-direction: column;
		align-items: stretch;
		gap: var(--space-3);
		padding: var(--space-4);
	}

	.persia-rest__name {
		font-size: var(--fs-lg);
	}

	.persia-rest__cta {
		text-align: center;
		padding: var(--space-3) var(--space-5);
	}

	.persia-boxes {
		gap: var(--space-4);
	}

	.persia-boxes__item {
		flex-basis: min(max(var(--persia-box-img, 168px), 140px), 100% / 2 - var(--space-4));
	}
}

@media (prefers-reduced-motion: reduce) {
	.persia-rest__card,
	.persia-rest__cta {
		transition: none;
	}

	.persia-rest__card:hover {
		transform: none;
	}

	.persia-banner.is-hang a.persia-banner__link:hover,
	.persia-banner.is-hang a.persia-banner__link:focus-visible {
		animation: none;
	}
}

/* Mobile: bottom sheet menu and app bar */
:root {
	--app-bar-h: 60px;
}

.nav-backdrop {
	position: fixed;
	inset: 0;
	z-index: 55;
	background: var(--color-overlay);
	animation: persia-fade var(--dur-slow) ease;
}

@keyframes persia-fade {
	from {
		opacity: 0;
	}
}

.mobile-nav {
	position: fixed;
	z-index: var(--z-app-bar);
	left: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	height: 88vh;
	height: 88dvh;
	padding-bottom: env(safe-area-inset-bottom);
	background: var(--color-surface);
	border-radius: var(--radius-lg) var(--radius-lg) 0 0;
	box-shadow: var(--shadow-xl);
	transform: translateY(100%);
	visibility: hidden;
	transition: transform var(--dur-slower) var(--ease-drawer), visibility 0s linear var(--dur-slower);
}

body.is-nav-open .mobile-nav {
	transform: none;
	visibility: visible;
	transition: transform var(--dur-slower) var(--ease-drawer);
}

.mobile-nav.is-dragging {
	transition: none;
}

.mobile-nav__head {
	position: relative;
	flex: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 58px;
	padding: var(--space-2) var(--space-5) 0;
	touch-action: none;
}

.mobile-nav__title {
	font-size: var(--fs-lg);
	font-weight: var(--fw-bold);
}

.mobile-nav__grip {
	position: absolute;
	top: 8px;
	left: 50%;
	width: 40px;
	height: 4px;
	margin-left: -20px;
	border-radius: var(--radius-xs);
	background: var(--color-border-strong);
}

.mobile-nav__close {
	display: inline-flex;
	align-items: center;
	gap: var(--space-1-5);
	min-height: 36px;
	padding: 0 var(--space-3-5);
	border: 0;
	border-radius: var(--radius-pill);
	background: var(--color-surface-sunken);
	color: var(--color-text);
	font-size: var(--fs-sm);
	font-weight: var(--fw-medium);
	cursor: pointer;
}

.mobile-nav__body {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}

.mobile-nav__search {
	padding: 15px var(--space-5);
}

.header-search--drawer .header-search__form {
	height: 54px;
	padding: var(--space-1);
	border: 2px solid var(--color-border);
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow-xs);
}

.header-search--drawer input[type="search"] {
	font-size: var(--fs-base);
	padding: 0 var(--space-3);
}

.header-search--drawer .header-search__submit {
	width: 46px;
	border-radius: var(--radius-sm);
}

.header-search--drawer .header-search__results {
	position: static;
	max-height: none;
	margin-top: var(--space-2);
	box-shadow: none;
}

.mobile-nav__tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-1);
	margin: 0 var(--space-5) var(--space-3);
	padding: var(--space-1);
	border-radius: var(--radius-md);
	background: var(--color-surface-sunken);
}

.mobile-nav__tabs button {
	height: 40px;
	padding: 0 var(--space-3);
	border: 0;
	border-radius: calc(var(--radius-md) - 4px);
	background: none;
	color: var(--color-text-muted);
	font-size: var(--fs-md);
	font-weight: var(--fw-medium);
	cursor: pointer;
	transition: background var(--dur-base) ease, color var(--dur-base) ease, box-shadow var(--dur-base) ease;
}

.mobile-nav__tabs button[aria-selected="true"] {
	background: var(--color-surface);
	color: var(--color-primary);
	font-weight: var(--fw-bold);
	box-shadow: var(--shadow-xs);
}

.mobile-nav__cats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-2-5);
	margin: 0;
	padding: var(--space-1) var(--space-5) var(--space-6);
	list-style: none;
}

.mobile-nav__cat {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-2);
	height: 100%;
	padding: var(--space-3) var(--space-1) var(--space-2-5);
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-md);
	background: var(--color-surface-alt);
	color: var(--color-text);
	font-size: var(--fs-xs);
	line-height: var(--lh-snug);
	text-align: center;
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
	transition: background var(--dur-base) ease, border-color var(--dur-base) ease, color var(--dur-base) ease;
}

.mobile-nav__cat:active,
.mobile-nav__cat.is-current {
	border-color: var(--color-primary-border);
	background: var(--color-primary-soft);
	color: var(--color-primary);
}

.mobile-nav__cat-icon {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	overflow: hidden;
	border-radius: var(--radius-round);
	background: var(--color-surface);
	color: var(--color-primary);
	box-shadow: var(--shadow-xs);
}

.mobile-nav__cat-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mobile-nav__cat-img.is-icon {
	width: 34px;
	height: 34px;
	object-fit: contain;
}

.mobile-nav__cat-initial {
	font-family: var(--font-heading);
	font-size: var(--fs-xl);
}

.mobile-nav__cat-name {
	overflow-wrap: anywhere;
}

.mobile-nav__list,
.mobile-nav__list .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.mobile-nav__list li {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	border-bottom: 1px solid var(--color-border);
}

.mobile-nav__list a {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	min-height: 52px;
	padding: 5px var(--space-5);
	color: var(--color-text);
	font-size: var(--fs-md);
	font-weight: var(--fw-medium);
	line-height: var(--lh-snug);
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
}

.mobile-nav__list a:active {
	background: var(--color-border-subtle);
}

.mobile-nav__list .current-menu-item > a,
.mobile-nav__list .current_page_item > a,
.mobile-nav__list .menu-item-home > a {
	color: var(--color-primary);
}

.mobile-nav__list .menu-item-home > a::before {
	content: "";
	flex: none;
	width: 20px;
	height: 20px;
	margin-left: var(--space-1-5);
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 2 11.5h3V21h5.5v-6h3v6H19v-9.5h3z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 2 11.5h3V21h5.5v-6h3v6H19v-9.5h3z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.mobile-nav__opener {
	display: grid;
	place-items: center;
	width: 50px;
	padding: 0;
	border: 0;
	border-left: 1px solid var(--color-border);
	background: none;
	color: var(--color-text);
	cursor: pointer;
}

.mobile-nav__opener svg {
	transition: transform var(--dur-slow) ease;
}

.is-expanded > .mobile-nav__opener svg {
	transform: rotate(90deg);
}

.mobile-nav__list .sub-menu {
	grid-column: 1 / -1;
	display: none;
	border-top: 1px solid var(--color-border);
	background: var(--color-surface-alt);
}

.mobile-nav__list .is-expanded > .sub-menu {
	display: block;
}

.mobile-nav__list .sub-menu li:last-child {
	border-bottom: 0;
}

.mobile-nav__list .sub-menu a {
	min-height: 46px;
	padding-left: 34px;
	font-weight: var(--fw-regular);
	text-transform: none;
}

.mobile-nav__list .sub-menu .sub-menu a {
	padding-left: var(--space-12);
}

.mobile-nav__thumb {
	flex: none;
	width: 26px;
	height: 26px;
	border-radius: var(--radius-round);
	object-fit: cover;
}

.mobile-nav__thumb.is-icon {
	border-radius: 0;
	object-fit: contain;
}

.app-bar {
	position: fixed;
	z-index: var(--z-header);
	left: 0;
	right: 0;
	bottom: 0;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(0, 1fr);
	height: calc(var(--app-bar-h) + env(safe-area-inset-bottom));
	padding-bottom: env(safe-area-inset-bottom);
	border-top: 1px solid var(--color-border);
	background: var(--color-surface-glass);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	box-shadow: var(--shadow-up);
}

.app-bar__item {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--space-0-5);
	min-width: 0;
	padding: 0;
	border: 0;
	background: none;
	color: var(--color-text-muted);
	font-family: var(--font-body);
	font-size: var(--fs-2xs);
	font-weight: var(--fw-medium);
	line-height: var(--lh-none);
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition: color var(--dur-base) ease;
}

.app-bar__item svg {
	transition: transform var(--dur-fast) ease;
}

.app-bar__item:active svg {
	transform: scale(0.88);
}

.app-bar__item::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 50%;
	width: 32px;
	height: 3px;
	border-radius: 0 0 var(--radius-xs) var(--radius-xs);
	background: var(--color-primary);
	transform: translateX(-50%) scaleX(0);
	transition: transform var(--dur-base) ease;
}

.app-bar__item.is-current,
.app-bar__item[aria-expanded="true"] {
	color: var(--color-primary);
	font-weight: var(--fw-bold);
}

.app-bar__item.is-current::before,
.app-bar__item[aria-expanded="true"]::before {
	transform: translateX(-50%) scaleX(1);
}

.app-bar__icon {
	position: relative;
	display: grid;
	place-items: center;
	width: 52px;
	height: 30px;
	border-radius: var(--radius-pill);
	transition: background var(--dur-base) ease, color var(--dur-base) ease;
}

.app-bar__item.is-current .app-bar__icon,
.app-bar__item[aria-expanded="true"] .app-bar__icon {
	background: var(--color-primary);
	color: var(--color-on-primary);
}

@media (hover: hover) {
	.app-bar__item:hover {
		color: var(--color-primary);
	}
}

.app-bar .header-cart__count,
.app-bar .wishlist-count {
	top: -3px;
	right: 4px;
	box-shadow: 0 0 0 2px var(--color-surface);
}

.mobile-nav__extra .header-cart__count,
.mobile-nav__extra .wishlist-count {
	position: static;
	margin-left: auto;
	margin-right: var(--space-1);
}

.mobile-nav__menu > .mobile-nav__list:first-child {
	border-top: 1px solid var(--color-border);
}

@media (max-width: 959px) {
	body.has-app-bar {
		padding-bottom: calc(var(--app-bar-h) + env(safe-area-inset-bottom));
	}

	body.has-app-bar .scroll-top {
		bottom: calc(var(--app-bar-h) + env(safe-area-inset-bottom) + 14px);
	}

	body.has-app-bar .mobile-buybar {
		bottom: calc(var(--app-bar-h) + env(safe-area-inset-bottom));
		padding-bottom: var(--space-2-5);
	}

	body.has-app-bar:has(.mobile-buybar.is-visible) .scroll-top {
		bottom: calc(var(--app-bar-h) + env(safe-area-inset-bottom) + 84px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.mobile-nav,
	body.is-nav-open .mobile-nav,
	.announcement__text,
	body.has-autohide-header .site-header {
		transition: none;
	}

	.announcement__text.is-marquee span {
		animation: none;
	}

	.nav-backdrop {
		animation: none;
	}
}

/* Wishlist */
.wishlist-btn {
	position: absolute;
	z-index: 3;
	top: 10px;
	right: 10px;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: var(--radius-round);
	background: var(--color-surface-glass);
	color: var(--color-text);
	box-shadow: var(--shadow-sm);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition: color var(--dur-base) ease, transform var(--dur-fast) ease;
}

.wishlist-btn:hover,
.wishlist-btn[aria-pressed="true"] {
	color: var(--color-primary);
}

.wishlist-btn:active {
	transform: scale(0.92);
}

.wishlist-btn[aria-pressed="true"] .wishlist-heart {
	fill: currentColor;
}

.wishlist-btn.is-popping .wishlist-heart {
	animation: persia-heart-pop var(--dur-slower) cubic-bezier(0.2, 1.6, 0.4, 1);
}

@keyframes persia-heart-pop {
	from {
		transform: scale(0.55);
	}
}

.wishlist-btn--single {
	position: static;
	display: inline-flex;
	gap: var(--space-2);
	width: auto;
	height: auto;
	margin: var(--space-1) 0 18px;
	padding: var(--space-1-5) 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	font-size: var(--fs-md);
	font-weight: var(--fw-bold);
}

.wishlist-btn--single:active {
	transform: none;
}

.wishlist-btn__added,
.wishlist-btn[aria-pressed="true"] .wishlist-btn__add {
	display: none;
}

.wishlist-btn[aria-pressed="true"] .wishlist-btn__added {
	display: inline;
}

.wishlist-count {
	position: absolute;
	top: -6px;
	right: -10px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: var(--radius-pill);
	background: var(--color-primary);
	color: var(--color-on-primary);
	font-size: var(--fs-2xs);
	font-weight: var(--fw-bold);
	line-height: 18px;
	text-align: center;
}

.wishlist-count[hidden] {
	display: none;
}

.header-wishlist {
	position: relative;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 2px solid var(--color-primary);
	border-radius: var(--radius-round);
	background: var(--color-surface);
	color: var(--color-primary);
	transition: background var(--dur-base) ease, color var(--dur-base) ease;
}

.header-wishlist:hover {
	background: var(--color-primary);
	color: var(--color-on-primary);
}

.header-wishlist .wishlist-count {
	top: -7px;
	right: -7px;
}

@media (min-width: 960px) {
	.header-wishlist {
		width: 46px;
		height: 46px;
	}
}

@media (max-width: 959px) {
	.header-wishlist {
		display: none;
	}
}

.wishlist-page__loading {
	padding: var(--space-10) 0;
	color: var(--color-text-muted);
	text-align: center;
}

.wishlist-page li.product {
	transition: opacity var(--dur-slow) ease, transform var(--dur-slow) ease;
}

.wishlist-page li.is-removing {
	opacity: 0;
	transform: scale(0.96);
}

.wishlist-empty {
	display: grid;
	justify-items: center;
	gap: var(--space-1-5);
	padding: var(--space-12) 0 var(--space-16);
	text-align: center;
}

.wishlist-empty[hidden] {
	display: none;
}

.wishlist-empty .wishlist-heart {
	color: var(--color-primary-border);
	margin-bottom: var(--space-1-5);
}

.wishlist-empty p {
	margin: 0;
}

.wishlist-empty__hint {
	color: var(--color-text-muted);
	font-size: var(--fs-md);
}

.wishlist-empty .button {
	margin-top: var(--space-3-5);
}

/* ---------- Footer SNS ---------- */
.site-footer__sns {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2-5);
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
}

.site-footer__sns a {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-round);
	background: var(--color-surface);
	color: var(--color-primary);
	transition: background var(--dur-fast), color var(--dur-fast);
}

.site-footer__sns a:hover {
	background: var(--color-primary);
	color: var(--color-on-primary);
}
