/*
 * Yatta redesign. Light manga look: ink frames, hard shadows, paper background.
 * Sizes: borders 2 / 3 / 4px, shadows 3 / 5 / 8px, buttons 52 (mobile) / 56px.
 */

/* ---------- tokens ---------- */
:root:root {
	--yr-ink: #0F0615;
	--yr-paper: #FAF6EE;
	--yr-panel: #F3EDE1;
	--yr-line: #E6DFD2;
	--yr-orange: #E87402;
	--yr-orange-text: #A3510A;
	--yr-sun: #FBAE31;
	--yr-purple: #9C65FF;
	--yr-blue: #68A7FF;
	--yr-pink: #FF8FB1;
	--yr-muted: #4A4450;
	--yr-green: #357240;
	--yr-sh-sm: 3px 3px 0 var(--yr-ink);
	--yr-sh-md: 5px 5px 0 var(--yr-ink);
	--yr-sh-lg: 8px 8px 0 var(--yr-ink);
	/* For now the live site's original fonts (loaded in inc/setup.php). Redesign pair: 'Fira Sans Condensed' / 'Commissioner'. */
	--yr-display: 'Play', 'Arial Narrow', sans-serif;
	--yr-text: 'Geologica', 'Segoe UI', Arial, sans-serif;

	/* Blocksy palette and controls */
	--theme-palette-color-1: #E87402;
	--theme-palette-color-2: #A3510A;
	--theme-palette-color-3: #4A4450;
	--theme-palette-color-4: #0F0615;
	--theme-palette-color-5: #E6DFD2;
	--theme-palette-color-6: #F3EDE1;
	--theme-palette-color-7: #FAF6EE;
	--theme-palette-color-8: #FFFFFF;
	--theme-text-color: #0F0615;
	--theme-headings-color: #0F0615;
	--theme-link-initial-color: #0F0615;
	--theme-link-hover-color: #A3510A;
	--theme-font-family: var(--yr-text);
	--theme-font-weight: 400;
	--theme-button-text-initial-color: #0F0615;
	--theme-button-text-hover-color: #0F0615;
	--theme-button-background-initial-color: #E87402;
	--theme-button-background-hover-color: #FBAE31;
	--theme-button-border-radius: 0px;
	--theme-form-field-border-initial-color: #0F0615;
	--theme-form-field-border-focus-color: #0F0615;
	--theme-form-field-border-width: 2px;
	--theme-form-field-border-radius: 0px;
	--theme-form-field-height: 50px;
	--theme-border-color: #E6DFD2;
}

html body.yr {
	background: var(--yr-paper);
	color: var(--yr-ink);
	font-family: var(--yr-text);
	font-weight: 400;
}

.yr-locked { overflow: hidden; }

/* Blocksy's own header and footer are replaced. */
body.yr #header,
body.yr #footer,
body.yr .ct-header,
body.yr .ct-footer { display: none !important; }

/* ---------- base ---------- */
body.yr :focus-visible {
	outline: 3px solid var(--yr-ink);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px var(--yr-sun);
}
body.yr .yr-nav :focus-visible,
body.yr .yr-foot :focus-visible { outline-color: var(--yr-sun); box-shadow: none; }
body.yr .yr-util :focus-visible { outline: 2px solid var(--yr-ink); outline-offset: 2px; box-shadow: none; }

.yr-skip {
	position: absolute; left: -9999px; top: 8px; z-index: 100000;
	background: var(--yr-sun); color: var(--yr-ink); border: 3px solid var(--yr-ink);
	padding: 12px 18px; font-weight: 800; text-decoration: none;
}
.yr-skip:focus { left: 8px; }

.yr-wrap { max-width: 1440px; margin: 0 auto; padding-left: 32px; padding-right: 32px; box-sizing: border-box; }
.yr .yr-i { flex: none; display: block; }

html body.yr h1,
html body.yr .page-title,
html body.yr .product_title,
html body.yr .woocommerce-products-header__title,
html body.yr h2.yr-h2 {
	--theme-font-family: var(--yr-display);
	font-family: var(--yr-display);
	font-weight: 800;
	letter-spacing: 0;
	color: var(--yr-ink);
}
html body.yr h2, html body.yr h3, html body.yr h4 { font-family: var(--yr-text); font-weight: 800; letter-spacing: 0; }

body.yr a { color: var(--yr-ink); }
body.yr a:not(.button):not(.yr-btn):not(.wp-element-button):hover { color: var(--yr-orange-text); }

/* Buttons */
.yr-btn,
html body.yr .button,
html body.yr .wp-element-button,
html body.yr button.button,
html body.yr .single_add_to_cart_button,
html body.yr #place_order,
html body.yr .checkout-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 52px; padding: 0 24px; box-sizing: border-box;
	background: var(--yr-orange); color: var(--yr-ink);
	border: 3px solid var(--yr-ink); border-radius: 0; box-shadow: var(--yr-sh-md);
	font-family: var(--yr-text); font-weight: 800; font-size: 16px; letter-spacing: .01em; line-height: 1.2;
	text-decoration: none; text-transform: none; cursor: pointer;
	transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease;
}
.yr-btn:hover,
html body.yr .button:hover,
html body.yr .wp-element-button:hover,
html body.yr .single_add_to_cart_button:hover,
html body.yr #place_order:hover,
html body.yr .checkout-button:hover {
	background: var(--yr-sun); color: var(--yr-ink);
	transform: translate(-2px, -2px); box-shadow: 7px 7px 0 var(--yr-ink);
}
.yr-btn:active,
html body.yr .button:active,
html body.yr .single_add_to_cart_button:active,
html body.yr #place_order:active { transform: translate(3px, 3px); box-shadow: 1px 1px 0 var(--yr-ink); }

.yr-btn--ghost { background: #FFFFFF; box-shadow: none; }
.yr-btn--ghost:hover { background: var(--yr-panel); }
.yr-btn--ink { background: var(--yr-ink); color: var(--yr-paper) !important; }
.yr-btn--ink:hover { background: var(--yr-ink); color: var(--yr-paper) !important; }
.yr-btn--line { background: transparent; color: var(--yr-paper) !important; border-color: var(--yr-paper); box-shadow: none; }
.yr-btn--line:hover { background: var(--yr-paper); color: var(--yr-ink) !important; }
.yr-btn--line-ink { background: #FFFFFF; box-shadow: none; flex: 1; }
.yr-btn--line-ink:hover { background: var(--yr-sun); box-shadow: none; }

/* Pre-order buttons in purple */
html body.yr .product.on_preorder .single_add_to_cart_button,
html body.yr :is([data-products], .flexy-item) > .product.on_preorder .button { background: var(--yr-purple); }

/* Form fields */
html body.yr input.input-text,
html body.yr input[type="text"],
html body.yr input[type="email"],
html body.yr input[type="tel"],
html body.yr input[type="password"],
html body.yr input[type="search"],
html body.yr input[type="number"],
html body.yr textarea,
html body.yr select,
html body.yr .select2-container .select2-selection {
	border-radius: 0; background-color: #FFFFFF; color: var(--yr-ink); font-size: 16px;
}
html body.yr .select2-container .select2-selection { border: 2px solid var(--yr-ink); min-height: 50px; }
html body.yr ::placeholder { color: #6E6873; opacity: 1; }

.yr-tag {
	align-self: flex-start; display: inline-block; padding: 6px 10px;
	font-weight: 800; font-size: 13px; letter-spacing: .12em; line-height: 1.2;
}
.yr-tag--ink { background: var(--yr-ink); color: var(--yr-paper); }
.yr-tag--sun { background: var(--yr-sun); color: var(--yr-ink); border: 2px solid var(--yr-ink); transform: rotate(-3deg); }
.yr-tag--orange { background: var(--yr-orange); color: var(--yr-ink); }

.yr-pill {
	display: inline-flex; align-items: center; height: 36px; padding: 0 12px;
	color: var(--yr-ink) !important; border: 2px solid var(--yr-paper);
	font-family: var(--yr-display); font-weight: 700; font-size: 14px; text-decoration: none; white-space: nowrap;
}
.yr-pill--pre { background: var(--yr-purple); }
.yr-pill--sale { background: var(--yr-sun); }

.yr-iconbtn {
	width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center;
	background: transparent; border: 0; padding: 0; color: var(--yr-ink); cursor: pointer;
}

.yr-only-m { display: none !important; }
@media (max-width: 999px) {
	.yr-only-m { display: flex !important; }
	.yr-only-d { display: none !important; }
	.yr-wrap { padding-left: 16px; padding-right: 16px; }
}

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

/* ---------- header ---------- */
.yr-header { position: relative; z-index: 50; background: var(--yr-paper); }
.yr-util { background: var(--yr-orange); color: var(--yr-ink); font-size: 13px; font-weight: 700; }
.yr-util__in { min-height: 40px; display: flex; align-items: center; justify-content: space-between; gap: 6px 24px; padding-top: 6px; padding-bottom: 6px; }
.yr-util .yr-i { flex: none; }
.yr-util__item, .yr-util__contact { display: inline-flex; align-items: center; gap: 8px; }
.yr-util__end { display: flex; align-items: center; gap: 18px; flex: none; }
.yr-util a { color: var(--yr-ink) !important; text-decoration: none; }
.yr-util a:hover { text-decoration: underline; text-underline-offset: 3px; }
.yr-util a[aria-current] { font-weight: 900; text-decoration: underline; text-underline-offset: 3px; }
.yr-util__sep { width: 1px; height: 16px; background: rgba(15, 6, 21, .45); }
/* Shipping, address and opening hours share the middle: without JS (or with reduced motion) they sit side by side. With JS
   (header.php switches it on before first paint, redesign.js drives it) one is shown at a time: the next slides in from the right
   while the old one fades out to the left. Hidden items stay in the accessibility tree and focusing one brings it forward. */
.yr-util__rot { flex: 1 1 auto; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 28px; }
.yr-util__rot.is-rotating { display: grid; justify-items: center; overflow-x: clip; padding: 3px 4px; }
.is-rotating > .yr-util__item { grid-area: 1 / 1; opacity: 0; pointer-events: none; transform: translateX(48px); transition: opacity .5s ease, transform .5s ease; }
.is-rotating > .yr-util__item.is-active { opacity: 1; pointer-events: auto; transform: none; }
.is-rotating > .yr-util__item.is-leaving { transform: translateX(-48px); }

.yr-bar { display: flex; align-items: center; gap: 32px; padding-top: 18px; padding-bottom: 18px; }
.yr-bar__logo { display: block; flex: none; }
.yr-logo { display: block; height: auto; }
.yr-bar__secure { display: flex; align-items: center; gap: 8px; font-weight: 800; margin-left: auto; }
.yr-bar__help { text-decoration: none; }

.yr-search { flex: 1 1 auto; display: flex; min-width: 0; box-shadow: var(--yr-sh-md); margin: 0; position: relative; }
html body.yr .yr-search input[type="search"] {
	flex: 1; min-width: 0; height: 52px; padding: 0 18px; margin: 0;
	border: 3px solid var(--yr-ink); border-right: 0; background: #FFFFFF; box-sizing: border-box;
}
.yr-search button {
	width: 58px; height: 52px; flex: none; margin: 0; padding: 0;
	display: flex; align-items: center; justify-content: center;
	background: var(--yr-orange); color: var(--yr-ink); border: 3px solid var(--yr-ink); border-radius: 0; cursor: pointer;
}
.yr-search button:hover { background: var(--yr-sun); }

.yr-bar__actions { display: flex; align-items: center; gap: 6px; flex: none; }
.yr-account { display: flex; align-items: center; justify-content: center; min-width: 48px; min-height: 48px; padding: 0 10px; text-decoration: none; }

.yr-cartbtn {
	margin-left: 6px; display: flex; align-items: center; gap: 10px; height: 52px; padding: 0 16px 0 12px; box-sizing: border-box;
	background: var(--yr-orange); border: 3px solid var(--yr-ink); box-shadow: var(--yr-sh-md);
	color: var(--yr-ink) !important; text-decoration: none; font-weight: 800; font-size: 16px;
}
.yr-cartbtn:hover { background: var(--yr-sun); }
.yr-cartbtn__icon { position: relative; display: flex; }
.yr-cart-count {
	position: absolute; top: -9px; right: -10px; min-width: 20px; height: 20px; padding: 0 4px; box-sizing: border-box;
	display: flex; align-items: center; justify-content: center;
	background: var(--yr-paper); border: 2px solid var(--yr-ink); font-weight: 800; font-size: 11px;
}
.yr-cart-count[hidden] { display: none; }

.yr-nav { background: var(--yr-ink); }
.yr-nav__in { display: flex; flex-wrap: wrap; align-items: stretch; padding-left: 20px; padding-right: 20px; }
.yr-nav__item { position: relative; display: flex; align-items: stretch; }
.yr-nav__link {
	display: flex; align-items: center; min-height: 52px; padding: 0 6px 0 16px;
	color: var(--yr-paper) !important; text-decoration: none; font-family: var(--yr-display); font-weight: 700; font-size: 15px; cursor: default;
}
a.yr-nav__link { cursor: pointer; }
.yr-nav__item:not(.has-sub) .yr-nav__link { padding-right: 16px; }
.yr-nav__link:hover { color: var(--yr-sun) !important; }
.yr-nav__toggle {
	display: flex; align-items: center; padding: 0 12px 0 4px; margin: 0; background: transparent; border: 0;
	color: var(--yr-orange); cursor: pointer; min-height: 52px;
}
.yr-nav__item.is-open { box-shadow: inset 0 -4px 0 var(--yr-orange); }
.yr-nav__item.is-open .yr-nav__toggle .yr-i { transform: rotate(180deg); }
.yr-nav__fill { flex: 1 1 auto; }
.yr-nav .yr-pill { align-self: center; margin: 8px; }
.yr-sub {
	display: none; position: absolute; top: 100%; left: 0; min-width: 280px; z-index: 60;
	background: #FFFFFF; border: 3px solid var(--yr-ink); box-shadow: var(--yr-sh-lg); padding: 18px 22px;
}
.yr-nav__item.is-open .yr-sub { display: block; }
.yr-sub ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.yr-sub--cols { min-width: 520px; }
.yr-sub--cols ul { grid-template-columns: 1fr 1fr; column-gap: 24px; }
.yr-sub li a { display: block; padding: 8px 0; font-weight: 600; font-size: 15px; text-decoration: none; }
.yr-sub__all { display: inline-block; margin-top: 10px; padding-top: 10px; border-top: 2px solid var(--yr-line); font-weight: 800; font-size: 14px; color: var(--yr-orange-text) !important; text-decoration: none; }

@media (max-width: 999px) {
	.yr-util__end { display: none; }
	.yr-util__in { justify-content: center; min-height: 34px; font-size: 12px; }
	.yr-bar { gap: 4px; padding: 8px 12px 8px 4px; border-bottom: 3px solid var(--yr-ink); }
	.yr-bar > .yr-search { display: none; }
	.yr-bar__logo { margin-right: auto; }
	.yr-bar__logo .yr-logo { width: 112px; }
	.yr-account { padding: 0; width: 44px; justify-content: center; }
	.yr-cartbtn { height: 46px; width: 50px; padding: 0; justify-content: center; box-shadow: var(--yr-sh-sm); margin-left: 4px; }
	.yr-msearch { padding: 12px 16px; background: var(--yr-paper); border-bottom: 3px solid var(--yr-ink); }
	.yr-msearch .yr-search { max-width: none; box-shadow: none; }
	html body.yr .yr-msearch .yr-search input[type="search"] { height: 46px; }
	.yr-msearch .yr-search button { height: 46px; width: 50px; }
	.yr-header--focus .yr-bar__secure { display: none; }
}

/* ---------- drawers ---------- */
.yr-drawer { position: fixed; inset: 0; z-index: 100000; background: rgba(15, 6, 21, .55); opacity: 0; transition: opacity .2s ease; }
.yr-drawer.is-open { opacity: 1; }
.yr-drawer[hidden] { display: none; }
.yr-drawer__panel {
	position: absolute; top: 0; bottom: 0; width: min(420px, 92vw); background: var(--yr-paper);
	display: flex; flex-direction: column; overflow-y: auto; transition: transform .2s ease;
}
.yr-drawer--left .yr-drawer__panel { left: 0; border-right: 4px solid var(--yr-ink); transform: translateX(-100%); }
.yr-drawer--right .yr-drawer__panel { right: 0; border-left: 4px solid var(--yr-ink); transform: translateX(100%); }
.yr-drawer.is-open .yr-drawer__panel { transform: none; }
.yr-drawer__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 12px 12px 16px; border-bottom: 3px solid var(--yr-ink); background: #FFFFFF; }
html body.yr .yr-drawer__title { margin: 0; font-family: var(--yr-display); font-weight: 800; font-size: 22px; }
.yr-drawer__foot { margin-top: auto; padding: 16px; border-top: 3px solid var(--yr-ink); display: flex; flex-direction: column; gap: 10px; font-weight: 800; }
.yr-drawer__foot > a { display: flex; align-items: center; gap: 8px; min-height: 44px; text-decoration: none; }
.yr-drawer__lang a { display: inline-block; padding: 10px 6px; text-decoration: none; }

.yr-mmenu { padding: 8px 16px; }
.yr-mmenu details { border-bottom: 2px solid var(--yr-line); }
.yr-mmenu summary,
.yr-mmenu__link {
	display: flex; align-items: center; justify-content: space-between; min-height: 56px;
	font-family: var(--yr-display); font-weight: 700; font-size: 18px; list-style: none; cursor: pointer; text-decoration: none;
}
.yr-mmenu__link { border-bottom: 2px solid var(--yr-line); }
.yr-mmenu summary::-webkit-details-marker { display: none; }
.yr-mmenu details[open] summary .yr-i { transform: rotate(180deg); }
.yr-mmenu ul { list-style: none; margin: 0 0 12px; padding: 0 0 0 4px; }
.yr-mmenu ul a { display: flex; align-items: center; min-height: 44px; font-weight: 600; text-decoration: none; }
.yr-mmenu__all { color: var(--yr-orange-text) !important; font-weight: 800 !important; }
.yr-mmenu__pills { display: flex; gap: 10px; padding: 18px 0 8px; }
.yr-mmenu__pills .yr-pill { border-color: var(--yr-ink); height: 44px; }

/* Blocksy cart panel */
html body.yr #woo-cart-panel .ct-panel-inner { background: var(--yr-paper); border-left: 4px solid var(--yr-ink); }
html body.yr #woo-cart-panel .ct-panel-actions { border-bottom: 3px solid var(--yr-ink); background: #FFFFFF; }
html body.yr #woo-cart-panel .ct-panel-heading { font-family: var(--yr-display); font-weight: 800; font-size: 22px; text-transform: none; }
html body.yr #woo-cart-panel .woocommerce-mini-cart-item { border-bottom: 2px solid var(--yr-line); }
html body.yr #woo-cart-panel .woocommerce-mini-cart-item img { background: #FFFFFF; border: 2px solid var(--yr-ink); border-radius: 0; }
html body.yr #woo-cart-panel .woocommerce-mini-cart__total { font-size: 17px; font-weight: 800; }
html body.yr #woo-cart-panel .woocommerce-mini-cart__buttons .button:not(.checkout) { background: #FFFFFF; box-shadow: none; }
html body.yr .ct-shipping-progress-bar,
html body.yr [class*="shipping-progress"] progress { accent-color: var(--yr-orange); }

/* ---------- footer ---------- */
.yr-news { background: var(--yr-orange); border-top: 4px solid var(--yr-ink); border-bottom: 4px solid var(--yr-ink); }
.yr-news__in { display: flex; flex-wrap: wrap; gap: 24px 48px; align-items: center; padding-top: 44px; padding-bottom: 44px; }
.yr-news__copy { flex: 1 1 420px; }
html body.yr .yr-news h2 { margin: 0 0 8px; font-family: var(--yr-display); font-weight: 800; font-size: 32px; line-height: 1.1; }
.yr-news p { margin: 0; font-size: 16px; line-height: 1.5; }
.yr-news__form { flex: 1 1 420px; }
.yr-news .ct-newsletter-subscribe-form-elements { display: flex !important; gap: 12px !important; box-shadow: none !important; }
html body.yr .yr-news input[type="email"] { flex: 1; min-width: 0; height: 56px; border: 3px solid var(--yr-ink) !important; border-radius: 0 !important; padding: 0 16px; margin: 0; background: #FFFFFF; box-shadow: var(--yr-sh-md); }
html body.yr .yr-news .ct-newsletter-subscribe-form button { height: 56px; min-height: 56px; margin: 0; padding: 0 22px; background: var(--yr-ink); color: var(--yr-paper); border: 3px solid var(--yr-ink); border-radius: 0; box-shadow: var(--yr-sh-md); white-space: nowrap; }
html body.yr .yr-news .ct-newsletter-subscribe-form button:hover { background: var(--yr-ink); color: var(--yr-sun); transform: none; box-shadow: var(--yr-sh-md); }
.yr-news .ct-newsletter-subscribe-message { margin-top: 8px; font-weight: 800; }
.yr-news__legal { margin-top: 12px !important; font-size: 13px !important; }
.yr-news__legal a { text-decoration: underline; }

.yr-foot { position: relative; overflow: hidden; background: var(--yr-ink); color: var(--yr-paper); }
.yr-foot a { color: var(--yr-paper) !important; text-decoration: none; }
.yr-foot a:hover { color: var(--yr-sun) !important; }
.yr-foot__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.5fr 1fr 1.2fr; gap: 48px; padding-top: 56px; padding-bottom: 40px; }
.yr-foot__brand p { margin: 16px 0; color: #C9C2B6; font-size: 15px; line-height: 1.6; max-width: 400px; }
.yr-foot__social { display: flex; gap: 10px; }
.yr-foot__social a { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border: 2px solid var(--yr-paper); }
html body.yr .yr-foot h2 { margin: 0 0 14px; font-family: var(--yr-display); font-weight: 800; font-size: 17px; color: var(--yr-sun); }
.yr-foot ul { list-style: none; margin: 0; padding: 0; }
.yr-foot li a { display: inline-flex; align-items: center; min-height: 36px; font-size: 15px; }
.yr-foot__contact { display: flex; flex-direction: column; gap: 14px; }
.yr-foot__contact li { display: flex; align-items: center; gap: 14px; font-size: 15px; line-height: 1.5; }
.yr-foot__ic { flex: none; width: 40px; height: 40px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid #4E4652; border-radius: 0; color: #C9C2B6; }
.yr-foot__dir { display: inline-block; margin-top: 14px; font-weight: 800; color: var(--yr-sun) !important; }
.yr-foot__bottom { position: relative; z-index: 1; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding-top: 20px; padding-bottom: 28px; border-top: 2px solid #2E2533; }
.yr-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.yr-chips li { padding: 6px 10px; background: var(--yr-paper); color: var(--yr-ink); font-weight: 800; font-size: 12px; }
.yr-chips--ship li { background: transparent; color: var(--yr-paper); border: 2px solid #4E4652; }
.yr-foot__copy { margin: 0 0 0 auto; color: #C9C2B6; font-size: 13px; }
.yr-foot__mark { position: absolute; right: 69px; bottom: 30px; font-family: var(--yr-display); font-size: 180px; font-weight: bold; rotate: -6deg; line-height: 1; color: #1E1424; white-space: nowrap; pointer-events: none; }
@media (max-width: 999px) {
	.yr-foot__grid { grid-template-columns: 1fr 1fr; gap: 32px 20px; padding-top: 40px; }
	.yr-foot__brand { grid-column: 1 / -1; }
	.yr-foot__copy { margin: 0; }
	.yr-foot__mark { font-size: 64px; right: 16px; bottom: 24px; }
	html body.yr .yr-news h2 { font-size: 24px; }
}
@media (max-width: 640px) {
	.yr-foot__grid { grid-template-columns: 1fr; }
}

/* ---------- home ---------- */
.yr-home { padding-bottom: 96px; }
.yr-hero { display: flex; flex-wrap: wrap; gap: 16px; padding-top: 32px; }
.yr-hero__main {
	flex: 1.3 1 560px; min-width: 0; position: relative; overflow: hidden; box-sizing: border-box;
	background: #FFFFFF; border: 4px solid var(--yr-ink); box-shadow: var(--yr-sh-lg);
	padding: 52px 52px 44px; display: flex; flex-direction: column; gap: 22px; min-height: 560px;
}
.yr-hero__kana { position: absolute; right: 26px; top: 34px; writing-mode: vertical-rl; font-family: var(--yr-display); font-size: 66px; line-height: 1; color: transparent; -webkit-text-stroke: 2px var(--yr-orange); }
html body.yr .yr-hero__title { margin: 0; font-size: 80px; line-height: 1; padding-right: 90px; }
.yr-hero__title span { color: var(--yr-orange); -webkit-text-stroke: 4px var(--yr-ink); paint-order: stroke fill; }
.yr-hero__lead { margin: 0; font-size: 19px; line-height: 1.55; max-width: 500px; }
.yr-hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-top: auto; }
.yr-hero__ctas .yr-btn { min-height: 56px; font-size: 17px; }
.yr-hero__ctas .yr-btn:first-child { font-family: var(--yr-display); font-weight: 800; }
.yr-hero__side { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.yr-hero__panel {
	flex: 1 1 320px; position: relative; overflow: hidden; display: block; min-height: 320px; isolation: isolate;
	border: 4px solid var(--yr-ink); box-shadow: var(--yr-sh-lg); text-decoration: none; background: var(--yr-paper);
}
/* Speed lines: a large square centred on the burst point turns slowly behind the figures.
   36 vector wedges (crisp edges at any size) around an empty centre that sits behind the front figure. */
.yr-hero__panel::before {
	content: ""; position: absolute; z-index: -1; left: 50%; top: 50%; width: 260%; aspect-ratio: 1 / 1; translate: -50% -50%;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-100 -100 200 200'%3E%3Cpath fill='%230F0615' d='M0 0L-4.5 -99.9L4.5 -99.9ZM0 0L12.9 -99.2L21.8 -97.6ZM0 0L29.9 -95.4L38.4 -92.3ZM0 0L46.0 -88.8L53.9 -84.2ZM0 0L60.7 -79.4L67.7 -73.6ZM0 0L73.6 -67.7L79.4 -60.7ZM0 0L84.2 -53.9L88.8 -46.0ZM0 0L92.3 -38.4L95.4 -29.9ZM0 0L97.6 -21.8L99.2 -12.9ZM0 0L99.9 -4.5L99.9 4.5ZM0 0L99.2 12.9L97.6 21.8ZM0 0L95.4 29.9L92.3 38.4ZM0 0L88.8 46.0L84.2 53.9ZM0 0L79.4 60.7L73.6 67.7ZM0 0L67.7 73.6L60.7 79.4ZM0 0L53.9 84.2L46.0 88.8ZM0 0L38.4 92.3L29.9 95.4ZM0 0L21.8 97.6L12.9 99.2ZM0 0L4.5 99.9L-4.5 99.9ZM0 0L-12.9 99.2L-21.8 97.6ZM0 0L-29.9 95.4L-38.4 92.3ZM0 0L-46.0 88.8L-53.9 84.2ZM0 0L-60.7 79.4L-67.7 73.6ZM0 0L-73.6 67.7L-79.4 60.7ZM0 0L-84.2 53.9L-88.8 46.0ZM0 0L-92.3 38.4L-95.4 29.9ZM0 0L-97.6 21.8L-99.2 12.9ZM0 0L-99.9 4.5L-99.9 -4.5ZM0 0L-99.2 -12.9L-97.6 -21.8ZM0 0L-95.4 -29.9L-92.3 -38.4ZM0 0L-88.8 -46.0L-84.2 -53.9ZM0 0L-79.4 -60.7L-73.6 -67.7ZM0 0L-67.7 -73.6L-60.7 -79.4ZM0 0L-53.9 -84.2L-46.0 -88.8ZM0 0L-38.4 -92.3L-29.9 -95.4ZM0 0L-21.8 -97.6L-12.9 -99.2Z'/%3E%3Ccircle r='9' fill='%23FAF6EE'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
	animation: yr-spin 60s linear infinite; will-change: transform;
}
@keyframes yr-spin { to { transform: rotate(360deg); } }
/* Three figures: the newest one large in front, centred on the burst; two smaller ones behind it */
.yr-hero__shot { position: absolute; width: 32%; aspect-ratio: 1 / 1; background: #FFFFFF; border: 4px solid var(--yr-ink); box-shadow: var(--yr-sh-md); animation: yr-float 5s ease-in-out infinite; }
.yr-hero__shot--left { left: 3%; top: 7%; rotate: -5deg; animation-duration: 6s; animation-delay: -2s; }
.yr-hero__shot--right { right: 3%; top: 12%; rotate: 4deg; animation-duration: 5.5s; animation-delay: -3.5s; }
/* centred: top 50% minus half its height (margin % is measured on the panel width, like the shot's own width) */
.yr-hero__shot--front { width: 40%; left: 30%; top: 50%; margin-top: -20%; rotate: -1deg; }
/* Figures bob up and down; the hard shadow grows as they rise */
@keyframes yr-float {
	0%, 100% { translate: 0 0; box-shadow: var(--yr-sh-md); }
	50% { translate: 0 -12px; box-shadow: 9px 15px 0 var(--yr-ink); }
}
.yr-hero__shot img { width: 100%; height: 100%; object-fit: contain; display: block; }
.yr-hero__label { position: absolute; left: 0; bottom: 0; background: var(--yr-ink); color: var(--yr-paper); padding: 12px 18px; display: flex; align-items: center; gap: 12px; }
.yr-hero__label strong { font-family: var(--yr-display); font-weight: 800; font-size: 20px; }
.yr-hero__label span { color: var(--yr-sun); font-weight: 800; }
.yr-hero__tiles { display: flex; flex-wrap: wrap; gap: 16px; }
.yr-tile {
	flex: 1 1 200px; min-height: 200px; box-sizing: border-box; padding: 24px;
	border: 4px solid var(--yr-ink); box-shadow: var(--yr-sh-lg); text-decoration: none;
	display: flex; flex-direction: column; gap: 8px; color: var(--yr-ink) !important;
}
.yr-tile strong { font-family: var(--yr-display); font-weight: 800; font-size: 32px; line-height: 1.05; }
.yr-tile span { font-size: 16px; line-height: 1.45; }
.yr-tile em { margin-top: auto; font-style: normal; font-weight: 800; }
.yr-tile--pre { background: var(--yr-purple); }
.yr-tile--sale { background: var(--yr-sun); }
.yr-tile:hover { transform: translate(-2px, -2px); box-shadow: 10px 10px 0 var(--yr-ink); }

.yr-trust { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 48px; padding-left: 0; padding-right: 0; width: calc(100% - 64px); max-width: 1376px; background: var(--yr-ink); gap: 3px; border: 3px solid var(--yr-ink); }
.yr-trust__item { display: flex; gap: 14px; align-items: flex-start; padding: 20px 24px; background: #FFFFFF; }
.yr-trust__item strong { display: block; font-size: 16px; font-weight: 800; }
.yr-trust__item small { display: block; margin-top: 3px; font-size: 14px; line-height: 1.45; color: var(--yr-muted); }
.yr-trust__ic { width: 44px; height: 44px; flex: none; display: flex; align-items: center; justify-content: center; background: var(--yr-orange); border: 2px solid var(--yr-ink); }
.yr-trust__ic--sun { background: var(--yr-sun); }

.yr-sec { padding-top: 80px; }
.yr-sec__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; margin-bottom: 28px; }
html body.yr h2.yr-h2 { margin: 0; font-size: 40px; line-height: 1.1; display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
html body.yr h2.yr-h2::after { content: ""; flex-basis: 100%; height: 0; }
.yr-h2::before { content: ""; order: 2; display: block; width: 72px; height: 9px; background: var(--yr-orange); transform: skewX(-14deg); }
.yr-sticker { background: var(--yr-sun); border: 3px solid var(--yr-ink); font-size: 20px; padding: 6px 12px; transform: rotate(-4deg); }
.yr-link, .yr-more { font-weight: 800; font-size: 16px; text-decoration: none; padding: 10px 0; display: inline-block; }
.yr-more { margin-top: 18px; }
.yr-seg { display: flex; border: 3px solid var(--yr-ink); }
.yr-seg button { height: 44px; padding: 0 18px; margin: 0; background: #FFFFFF; color: var(--yr-ink); border: 0; border-radius: 0; font-family: var(--yr-text); font-weight: 800; font-size: 15px; white-space: nowrap; cursor: pointer; }
@media (max-width: 689px) {
	.yr-seg button { padding: 0 10px; font-size: 14px; }
}
.yr-seg button + button { border-left: 3px solid var(--yr-ink); }
.yr-seg button[aria-pressed="true"] { background: var(--yr-ink); color: var(--yr-paper); }

.yr-preband { margin-top: 88px; background: var(--yr-purple); border-top: 4px solid var(--yr-ink); border-bottom: 4px solid var(--yr-ink); }
.yr-preband__in { display: flex; flex-wrap: wrap; gap: 40px 48px; align-items: flex-start; padding-top: 64px; padding-bottom: 64px; }
.yr-preband__copy { flex: 1 1 340px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
html body.yr .yr-preband h2 { margin: 0; font-family: var(--yr-display); font-weight: 800; font-size: 52px; line-height: 1.02; }
.yr-preband__copy > p { margin: 0; font-size: 18px; line-height: 1.55; }
.yr-preband__grid { flex: 2 1 640px; min-width: 0; }
.yr-steps { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.yr-steps li { display: flex; gap: 14px; align-items: flex-start; }
.yr-steps li > span { width: 36px; height: 36px; flex: none; box-sizing: border-box; display: flex; align-items: center; justify-content: center; background: var(--yr-paper); border: 3px solid var(--yr-ink); font-family: var(--yr-display); font-weight: 700; }
.yr-steps p { margin: 0; font-size: 16px; line-height: 1.45; }
.yr-preband .yr-btn--ink { align-self: flex-start; box-shadow: 5px 5px 0 var(--yr-paper); }

.yr-series { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; }
.yr-series a {
	display: flex; flex-direction: column; overflow: hidden; box-sizing: border-box;
	background: #FFFFFF; border: 3px solid var(--yr-ink); text-decoration: none; font-family: var(--yr-display); font-weight: 700; font-size: 17px; line-height: 1.15;
	transition: transform .12s ease, box-shadow .12s ease;
}
/* Series banner: the characters sit between about 30% and 85% of the banner width, so the crop keeps that band */
.yr-series__img { display: block; aspect-ratio: 5 / 2; overflow: hidden; background: var(--yr-ink); border-bottom: 3px solid var(--yr-ink); }
.yr-series__img img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; transition: transform .3s ease; }
.yr-series__name { flex: 1; min-height: 60px; padding: 10px 14px 10px 16px; box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.yr-series a:hover { transform: translate(-2px, -2px); box-shadow: var(--yr-sh-md); color: var(--yr-ink) !important; }
.yr-series a:hover .yr-series__name { background: var(--yr-orange); }
.yr-series a:hover .yr-series__img img { transform: scale(1.06); }
@media (max-width: 689px) {
	.yr-series { grid-template-columns: 1fr 1fr; gap: 12px; }
	.yr-series a { font-size: 15px; }
	.yr-series__name { min-height: 52px; padding: 8px 10px 8px 12px; }
}

.yr-cats { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.yr-cat {
	position: relative; overflow: hidden; min-height: 280px; padding: 26px; box-sizing: border-box;
	border: 4px solid var(--yr-ink); box-shadow: var(--yr-sh-md); color: var(--yr-ink) !important; text-decoration: none;
	display: flex; flex-direction: column; gap: 10px;
}
.yr-cat > * { position: relative; }
.yr-cat__kana { position: absolute !important; right: -8px; bottom: -14px; font-family: var(--yr-display); font-size: 96px; line-height: 1; opacity: .18; white-space: nowrap; }
.yr-cat small { font-size: 13px; font-weight: 800; letter-spacing: .12em; }
.yr-cat strong { font-family: var(--yr-display); font-weight: 800; font-size: 32px; line-height: 1.05; }
.yr-cat span { font-size: 15px; line-height: 1.6; }
.yr-cat em { margin-top: auto; align-self: flex-start; background: var(--yr-ink); color: var(--yr-paper); font-style: normal; font-weight: 800; padding: 10px 14px; }
.yr-cat--orange { background: var(--yr-orange); }
.yr-cat--sun { background: var(--yr-sun); }
.yr-cat--blue { background: var(--yr-blue); }
.yr-cat--pink { background: var(--yr-pink); }
.yr-cat:hover { transform: translate(-2px, -2px); box-shadow: var(--yr-sh-lg); }

.yr-duo { display: flex; flex-wrap: wrap; gap: 24px; }
.yr-points, .yr-visit { flex: 1 1 480px; min-width: 0; box-sizing: border-box; padding: 40px; border: 4px solid var(--yr-ink); display: flex; flex-direction: column; gap: 16px; position: relative; overflow: hidden; }
.yr-points { background: var(--yr-sun); box-shadow: var(--yr-sh-lg); }
.yr-points__badge { position: absolute; right: 32px; top: 50%; transform: translateY(-50%) rotate(8deg); width: 140px; height: 140px; border: 4px solid var(--yr-ink); border-radius: 50%; background: var(--yr-paper); display: flex; align-items: center; justify-content: center; font-family: var(--yr-display); font-weight: 700; font-size: 56px; box-shadow: var(--yr-sh-md); }
html body.yr .yr-points h2, html body.yr .yr-visit h2 { margin: 0; font-family: var(--yr-display); font-weight: 800; font-size: 30px; line-height: 1.15; max-width: 420px; }
.yr-points p { margin: 0; font-size: 17px; line-height: 1.55; max-width: 400px; }
.yr-points__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 17px; line-height: 1.4; max-width: 400px; }
.yr-points__list li { display: flex; align-items: center; gap: 12px; }
.yr-points__list li::before { content: ""; flex: none; width: 9px; height: 9px; background: var(--yr-ink); transform: rotate(45deg); }
.yr-points .yr-btn, .yr-visit .yr-btn { align-self: flex-start; box-shadow: none; }
.yr-visit { background: var(--yr-ink); color: var(--yr-paper); box-shadow: 8px 8px 0 var(--yr-orange); }
html body.yr .yr-visit h2 { color: var(--yr-paper); }
/* Address and hours above the two buttons, in the same two columns: the hours start where the phone button starts */
.yr-visit__grid { display: grid; grid-template-columns: max-content max-content; gap: 20px 12px; justify-content: start; align-items: start; }
.yr-visit__grid p { margin: 0; font-size: 16px; line-height: 1.55; }
.yr-visit__grid strong { display: block; color: var(--yr-sun); }
.yr-visit__grid .yr-btn { align-self: stretch; }
.yr-visit .yr-btn:not(.yr-btn--line) { border-color: var(--yr-paper); }
@media (max-width: 689px) {
	.yr-visit__grid { grid-template-columns: 1fr; gap: 16px; }
	.yr-visit__grid .yr-btn { justify-self: stretch; }
}

@media (max-width: 999px) {
	.yr-hero { padding-top: 16px; }
	.yr-hero__main { padding: 28px 20px; min-height: 0; flex-basis: 100%; }
	.yr-hero__kana { font-size: 40px; right: 12px; top: 18px; }
	html body.yr .yr-hero__title { font-size: 44px; padding-right: 48px; }
	.yr-hero__lead { font-size: 16px; }
	.yr-hero__ctas .yr-btn { flex: 1 1 100%; }
	.yr-hero__side { flex-basis: 100%; }
	.yr-hero__panel { min-height: 240px; }
	.yr-tile { min-height: 150px; padding: 18px; flex-basis: 140px; }
	.yr-tile strong { font-size: 24px; }
	.yr-trust { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; margin: 28px 16px 0; max-width: none; width: auto; }
	.yr-trust__item { flex: 0 0 78%; scroll-snap-align: start; padding: 14px 16px; }
	.yr-sec { padding-top: 56px; }
	html body.yr h2.yr-h2 { font-size: 28px; }
	.yr-preband { margin-top: 56px; }
	.yr-preband__in { padding-top: 40px; padding-bottom: 40px; }
	html body.yr .yr-preband h2 { font-size: 38px; }
	.yr-points, .yr-visit { padding: 28px 20px; }
	.yr-points__badge { display: none; }
	.yr-cat { min-height: 200px; }
}

/* Home page product rows are sliders: one scrolling row of cards, square arrow buttons on the sides */
.yr-slider { --yr-cols: 5; --yr-gap: 20px; position: relative; }
.yr-slider--4 { --yr-cols: 4; }
html body.yr .yr-slider [data-products] {
	display: flex !important; gap: var(--yr-gap) !important;
	overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none;
	/* Room for the cards' hard shadows and hover lift, which the scrolling row would otherwise cut off */
	padding: 6px 12px 14px 6px; margin: -6px -12px -14px -6px; scroll-padding-inline: 6px;
}
html body.yr .yr-slider [data-products]::-webkit-scrollbar { display: none; }
html body.yr .yr-slider [data-products] > .product {
	flex: 0 0 calc((100% - (var(--yr-cols) - 1) * var(--yr-gap)) / var(--yr-cols));
	width: auto; max-width: none; min-width: 0; margin: 0; scroll-snap-align: start;
}
.yr-slider__btn {
	position: absolute; z-index: 5; top: 50%; translate: 0 -50%;
	width: 52px; height: 52px; margin: 0; padding: 0; box-sizing: border-box;
	display: flex; align-items: center; justify-content: center;
	background: #FFFFFF; color: var(--yr-ink); border: 3px solid var(--yr-ink); border-radius: 0; box-shadow: var(--yr-sh-sm);
	cursor: pointer; transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease, opacity .15s ease;
}
.yr-slider__btn--prev { left: -26px; }
.yr-slider__btn--next { right: -26px; }
.yr-slider__btn:hover { background: var(--yr-sun); transform: translate(-2px, -2px); box-shadow: var(--yr-sh-md); }
.yr-slider__btn:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--yr-ink); }
.yr-slider__btn:disabled { opacity: 0; pointer-events: none; }
.yr-slider.is-static .yr-slider__btn { display: none; }
.yr-preband .yr-slider__btn { box-shadow: 3px 3px 0 var(--yr-ink); }
@media (max-width: 1199px) {
	.yr-slider { --yr-cols: 4; }
	.yr-slider--4 { --yr-cols: 3; }
}
@media (max-width: 999px) {
	.yr-slider, .yr-slider--4 { --yr-cols: 3; }
	.yr-slider__btn { width: 44px; height: 44px; }
	.yr-slider__btn--prev { left: -10px; }
	.yr-slider__btn--next { right: -10px; }
}
/* Phones: swipe, with the next card peeking in; the row runs to the screen edges */
@media (max-width: 689px) {
	.yr-slider, .yr-slider--4 { --yr-cols: 1.6; --yr-gap: 14px; }
	html body.yr .yr-slider [data-products] { padding: 6px 16px 14px; margin: -6px -16px -14px; scroll-padding-inline: 16px; }
	.yr-slider__btn { display: none; }
}

/* New arrivals: no stock line on the cards */
html body.yr #yr-new [data-products] > .product > .ct-woo-card-stock { display: none; }

/* Phones: new arrivals right after the hero */
@media (max-width: 689px) {
	.yr-home { display: flex; flex-direction: column; }
	.yr-home > .yr-hero { order: 1; }
	.yr-home > #yr-new { order: 2; padding-top: 32px; }
	.yr-home > .yr-trust { order: 3; }
	.yr-home > * { order: 4; width: 100%; min-width: 0; box-sizing: border-box; }
	.yr-home > .yr-trust { width: auto; }
}

/* ---------- product cards (Blocksy) ---------- */
html body.yr :is([data-products], .flexy-item) > .product {
	position: relative; background: #FFFFFF; border: 3px solid var(--yr-ink); border-radius: 0; box-shadow: var(--yr-sh-md);
	padding: 0 0 14px; transition: transform .15s ease, box-shadow .15s ease;
}
html body.yr :is([data-products], .flexy-item) > .product:hover { transform: translate(-2px, -2px); box-shadow: var(--yr-sh-lg); }
html body.yr :is([data-products], .flexy-item) > .product > *:not(figure):not(.ct-media-container) { padding-left: 14px; padding-right: 14px; }
html body.yr :is([data-products], .flexy-item) > .product figure,
html body.yr :is([data-products], .flexy-item) > .product .ct-media-container { border-radius: 0; margin: 0; background: #FFFFFF; border-bottom: 3px solid var(--yr-ink); }
html body.yr :is([data-products], .flexy-item) > .product img { border-radius: 0; }
html body.yr :is([data-products], .flexy-item) .woocommerce-loop-product__title,
html body.yr :is([data-products], .flexy-item) h2.woocommerce-loop-product__title {
	font-family: var(--yr-text); font-weight: 600; font-size: 15px; line-height: 1.35; margin-top: 4px;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
html body.yr :is([data-products], .flexy-item) .woocommerce-loop-product__title a { text-decoration: none; }
html body.yr :is([data-products], .flexy-item) .price { font-size: 18px; }
html body.yr :is([data-products], .flexy-item) > .product .button { min-height: 44px; padding: 0 14px; font-size: 14px; box-shadow: var(--yr-sh-sm); }
html body.yr .onsale,
html body.yr .ct-woo-badge-sale,
html body.yr .ct-woo-badges .onsale { background: var(--yr-sun); color: var(--yr-ink); border: 2px solid var(--yr-ink); border-radius: 0; font-family: var(--yr-text); font-weight: 800; transform: rotate(-4deg); }
html body.yr .out-of-stock-badge,
html body.yr .ct-woo-badge-out-of-stock { background: var(--yr-ink); color: var(--yr-paper); border-radius: 0; font-weight: 800; }

/* ---------- prices ---------- */
html body.yr .price,
html body.yr .price ins,
html body.yr .entry-summary .price { color: var(--yr-ink); font-family: var(--yr-text); font-weight: 800; }
html body.yr .price del { color: #5E5862; font-weight: 400; }

/* ---------- shop / archive ---------- */
html body.yr .hero-section[data-type="type-2"],
html body.yr .hero-section { background: transparent; }
html body.yr .woocommerce-products-header__title,
html body.yr .hero-section .page-title { font-size: clamp(32px, 4vw, 52px); }
html body.yr .ct-breadcrumbs { font-size: 13px; color: var(--yr-muted); }
html body.yr .ct-breadcrumbs a { color: var(--yr-muted); }
.yr-viewnote { margin: 0 0 24px; padding: 14px 18px; background: #FFFFFF; border: 3px solid var(--yr-ink); border-left: 10px solid var(--yr-purple); font-size: 15px; line-height: 1.5; }
html body.yr .woocommerce-result-count { font-size: 14px; color: var(--yr-muted); }
html body.yr .woocommerce-ordering select { min-height: 48px; border: 2px solid var(--yr-ink); font-weight: 800; }
html body.yr .ct-pagination .page-numbers,
html body.yr .woocommerce-pagination .page-numbers { border-radius: 0; border: 2px solid var(--yr-ink); min-width: 44px; height: 44px; font-weight: 800; }
html body.yr .ct-pagination .page-numbers.current,
html body.yr .woocommerce-pagination .page-numbers.current { background: var(--yr-ink); color: var(--yr-paper); }
html body.yr .ct-filter-widget-wrapper,
html body.yr .ct-sidebar .ct-widget { border-radius: 0; }
html body.yr .ct-sidebar .widget-title { font-family: var(--yr-display); font-weight: 800; }
html body.yr .ct-active-filters a,
html body.yr .ct-filter-reset { border-radius: 0; background: var(--yr-sun); color: var(--yr-ink); border: 2px solid var(--yr-ink); font-weight: 800; }

/* ---------- single product ---------- */
html body.yr .single-product .product_title,
html body.yr.single-product .product_title { font-size: clamp(26px, 2.6vw, 38px); line-height: 1.15; }
.yr-pdp-eyebrow { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: baseline; margin-bottom: 8px; font-size: 13px; }
.yr-pdp-eyebrow > :first-child { font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--yr-orange-text) !important; text-decoration: none; }
.yr-pdp-eyebrow__all { color: var(--yr-muted) !important; }
/* Product page on white */
html body.yr.single-product { background: #FFFFFF; }
html body.yr.single-product .entry-summary .price { font-family: var(--yr-display); font-weight: 800; font-size: 38px; }
html body.yr.single-product .entry-summary .price,
html body.yr.single-product .entry-summary .price ins,
html body.yr.single-product .ct-floating-bar .price,
html body.yr.single-product .ct-floating-bar .price ins { color: var(--yr-green); }
html body.yr.single-product .entry-summary .price del { font-family: var(--yr-text); font-size: 18px; color: #5E5862; }
.yr-saving { margin: 4px 0 0; font-weight: 800; color: var(--yr-orange-text); }
/* Stock status: a framed tag; green for in stock, purple for pre-order, yellow for "available in X days", white when sold out */
html body.yr.single-product .entry-summary p.stock {
	display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 14px; margin-bottom: 14px; box-sizing: border-box;
	background: #FFFFFF; color: var(--yr-ink); border: 2px solid var(--yr-ink); box-shadow: var(--yr-sh-sm);
	font-weight: 800; font-size: 14px; line-height: 1.2;
}
html body.yr.single-product .entry-summary p.stock.in-stock { background: var(--yr-green); color: #FFFFFF; }
html body.yr.single-product .entry-summary p.stock.on-preorder { background: var(--yr-purple); color: var(--yr-ink); }
html body.yr.single-product .entry-summary p.stock.available-on-backorder { background: var(--yr-sun); color: var(--yr-ink); }
html body.yr.single-product .entry-summary p.stock.out-of-stock { background: #FFFFFF; color: var(--yr-ink); }
html body.yr .loyalty-product-points { display: none; }
html body.yr.single-product .single_add_to_cart_button { min-height: 60px; font-size: 18px; font-family: var(--yr-display); font-weight: 800; padding: 0 32px; }
html body.yr.single-product .ct-product-gallery-container,
html body.yr.single-product .woocommerce-product-gallery .ct-media-container { border-radius: 0; }
html body.yr.single-product .woocommerce-product-gallery .flexy-view { background: #FFFFFF; border: 3px solid var(--yr-ink); box-shadow: var(--yr-sh-md); }
/* Thumbnails: the frame goes on the picture. The list item also holds Blocksy's spacing between thumbnails, so a frame there showed an empty band. */
html body.yr.single-product .flexy-pills li { border: 0 !important; }
html body.yr.single-product .flexy-pills li .ct-media-container { box-sizing: border-box; border: 2px solid var(--yr-line); border-radius: 0; background: #FFFFFF; cursor: pointer; transition: border-color .12s ease; }
html body.yr.single-product .flexy-pills li:hover .ct-media-container { border-color: var(--yr-ink); }
html body.yr.single-product .flexy-pills li.active .ct-media-container { border: 3px solid var(--yr-ink); }
/* Gallery arrows and zoom button: square ink-framed buttons like the rest of the site */
html body.yr.single-product .woocommerce-product-gallery :is(.flexy-arrow-prev, .flexy-arrow-next),
html body.yr.single-product .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
	width: 48px; height: 48px; box-sizing: border-box; border-radius: 0;
	background: #FFFFFF; color: var(--yr-ink); border: 3px solid var(--yr-ink); box-shadow: var(--yr-sh-sm);
	transition: opacity .15s ease, background-color .12s ease, box-shadow .12s ease, translate .12s ease;
}
html body.yr.single-product .woocommerce-product-gallery :is(.flexy-arrow-prev, .flexy-arrow-next) svg { width: 20px; height: auto; }
html body.yr.single-product .woocommerce-product-gallery :is(.flexy-arrow-prev, .flexy-arrow-next):hover,
html body.yr.single-product .woocommerce-product-gallery .woocommerce-product-gallery__trigger:hover {
	background: var(--yr-sun); color: var(--yr-ink); translate: -2px -2px; box-shadow: var(--yr-sh-md);
}
/* The thumbnail strip's own up/down arrows: the same button, smaller, centred on the strip */
html body.yr.single-product .woocommerce-product-gallery .flexy-pills > :is(.flexy-arrow-prev, .flexy-arrow-next) { width: 32px; height: 32px; left: calc(50% - 16px); border-width: 2px; box-shadow: none; }
html body.yr.single-product .woocommerce-product-gallery .flexy-pills > :is(.flexy-arrow-prev, .flexy-arrow-next) svg { width: 14px; }
html body.yr.single-product .woocommerce-product-gallery .flexy-pills > :is(.flexy-arrow-prev, .flexy-arrow-next):hover { translate: none; box-shadow: none; }
/* Wishlist: square framed button next to the stock tag; pink once the product is in the wishlist */
html body.yr.single-product .ct-product-additional-actions .ct-wishlist-button-single {
	width: 48px; height: 48px; min-height: 48px; padding: 0; box-sizing: border-box;
	display: inline-flex; align-items: center; justify-content: center;
	background: #FFFFFF; color: var(--yr-ink); border: 3px solid var(--yr-ink); border-radius: 0; box-shadow: var(--yr-sh-sm);
	transition: translate .12s ease, box-shadow .12s ease, background-color .12s ease;
}
html body.yr.single-product .ct-product-additional-actions .ct-wishlist-button-single:hover { background: var(--yr-sun); color: var(--yr-ink); translate: -2px -2px; box-shadow: var(--yr-sh-md); }
html body.yr.single-product .ct-product-additional-actions .ct-wishlist-button-single[data-button-state="active"] { background: var(--yr-pink); }
html body.yr.single-product .ct-product-additional-actions .ct-wishlist-button-single .ct-icon-container { color: var(--yr-ink); }
/* The old Stackable trust row under the product is replaced by .yr-perks */
html body.yr.single-product article.post-3580 { display: none; }

.yr-perks { list-style: none; margin: 18px 0 18px; padding: 0; background: #FFFFFF; border: 3px solid var(--yr-ink); box-shadow: var(--yr-sh-md); }
/* Blocksy spaces the summary's parts 10px apart; this box keeps 18px below it */
html body.yr.single-product .entry-summary .yr-perks { margin-bottom: 18px; }
.yr-perks li { display: flex; gap: 12px; align-items: flex-start; padding: 12px 16px; font-size: 15px; line-height: 1.45; }
.yr-perks li + li { border-top: 2px solid var(--yr-line); }
.yr-perks .yr-i { margin-top: 1px; color: var(--yr-orange-text); }
.yr-perks strong { font-weight: 800; }
.yr-prebox { margin: 18px 0 0; padding: 18px 20px; background: #FFFFFF; border: 3px solid var(--yr-ink); border-left: 10px solid var(--yr-purple); }
html body.yr .yr-prebox h2 { margin: 0 0 10px; font-family: var(--yr-display); font-weight: 800; font-size: 18px; }
.yr-prebox ul { margin: 0 0 10px; padding-left: 18px; font-size: 15px; line-height: 1.55; }
.yr-prebox a { font-weight: 800; font-size: 14px; }

html body.yr .woocommerce-tabs .tabs li a,
html body.yr .woocommerce-tabs .ct-accordion-heading { font-family: var(--yr-display); font-weight: 800; }
html body.yr .related > h2,
html body.yr .upsells > h2 { font-family: var(--yr-display); font-weight: 800; font-size: 30px; }
/* Related products slider (Blocksy flexy): the same framed cards as everywhere. Slides keep Blocksy's 10px side padding
   and get room above and below for the cards' hard shadow and hover lift; the window paints 10px past its edges so the
   outer cards' frames and shadows are not cut (the next card starts 20px out, so it stays hidden). */
html body.yr :is(.related, .upsells) .flexy-item { padding-top: 6px; padding-bottom: 14px; box-sizing: border-box; }
html body.yr :is(.related, .upsells) .flexy-view { overflow: clip; overflow-clip-margin: 10px; }
html body.yr :is(.related, .upsells) > h2 { text-transform: none; }
html body.yr :is(.related, .upsells) .flexy-item > .product { height: 100%; }
html body.yr :is(.related, .upsells) :is(.flexy-arrow-prev, .flexy-arrow-next) {
	width: 48px; height: 48px; box-sizing: border-box; border-radius: 0;
	background: #FFFFFF; color: var(--yr-ink); border: 3px solid var(--yr-ink); box-shadow: var(--yr-sh-sm);
	transition: opacity .15s ease, background-color .12s ease, box-shadow .12s ease, translate .12s ease;
}
html body.yr :is(.related, .upsells) :is(.flexy-arrow-prev, .flexy-arrow-next):hover { background: var(--yr-sun); color: var(--yr-ink); translate: -2px -2px; box-shadow: var(--yr-sh-md); }

/* Blocksy floating add-to-cart bar on phones */
html body.yr .ct-floating-bar { background: var(--yr-paper); border-top: 3px solid var(--yr-ink); box-shadow: none; padding-bottom: env(safe-area-inset-bottom); }
html body.yr .ct-floating-bar .single_add_to_cart_button { min-height: 52px; font-size: 16px; }

/* ---------- cart ---------- */
html body.yr .woocommerce-cart-form,
html body.yr .cart-collaterals .cart_totals,
html body.yr .ct-cart-totals { border-radius: 0; }
html body.yr.woocommerce-cart table.shop_table { background: #FFFFFF; border: 3px solid var(--yr-ink); border-radius: 0; }
html body.yr.woocommerce-cart table.shop_table th { font-weight: 800; }
html body.yr .cart_totals { background: #FFFFFF; border: 3px solid var(--yr-ink); box-shadow: var(--yr-sh-lg); padding: 24px; }
html body.yr .cart_totals > h2 { font-family: var(--yr-display); font-weight: 800; font-size: 24px; }

/* ---------- checkout ---------- */
html body.yr .ct-order-review,
html body.yr #order_review { background: #FFFFFF; border: 3px solid var(--yr-ink); border-radius: 0; box-shadow: var(--yr-sh-lg); }
html body.yr.woocommerce-checkout h3,
html body.yr #order_review_heading { font-family: var(--yr-display); font-weight: 800; font-size: 22px; }
html body.yr.woocommerce-checkout #payment .payment_methods > li,
html body.yr.woocommerce-checkout #payment div.payment_box { border-radius: 0; }
html body.yr.woocommerce-checkout #payment .payment_methods > li { border: 2px solid var(--yr-ink); background: #FFFFFF; margin-bottom: 8px; }
html body.yr #place_order { width: 100%; min-height: 60px; font-family: var(--yr-display); font-weight: 800; font-size: 18px; }
html body.yr .woocommerce-shipping-methods li { padding: 10px 0; }
html body.yr .woocommerce-checkout-review-order-table .order-total .amount { font-family: var(--yr-display); font-weight: 800; font-size: 24px; }

/* ---------- account, notices ---------- */
html body.yr .woocommerce-MyAccount-navigation ul { border: 3px solid var(--yr-ink); background: #FFFFFF; border-radius: 0; }
html body.yr .woocommerce-MyAccount-navigation li a { font-weight: 800; }
html body.yr .woocommerce-MyAccount-navigation li.is-active a { background: var(--yr-ink); color: var(--yr-paper); }
html body.yr .woocommerce-message,
html body.yr .woocommerce-info,
html body.yr .woocommerce-error { border-radius: 0; border: 3px solid var(--yr-ink); background: #FFFFFF; color: var(--yr-ink); }
html body.yr .woocommerce-error { border-left: 10px solid #C4251C; }
html body.yr .woocommerce-message { border-left: 10px solid var(--yr-orange); }

/* ---------- cookie banner (yatta-cookies mu-plugin): equal buttons ---------- */
html body.yr .yc-banner { border: 3px solid var(--yr-ink); border-radius: 0; box-shadow: var(--yr-sh-md); background: #FFFFFF; color: var(--yr-ink); font-family: var(--yr-text); font-size: 15px; }
html body.yr .yc-text a { color: var(--yr-ink); font-weight: 800; }
html body.yr .yc-btn,
html body.yr .yc-accept,
html body.yr .yc-reject { min-height: 48px; border: 3px solid var(--yr-ink); border-radius: 0; background: #FFFFFF; color: var(--yr-ink); font-weight: 800; }
html body.yr .yc-btn:hover { background: var(--yr-sun); }
@media (max-width: 689px) {
	html body.yr .yc-banner { left: 0; right: 0; bottom: 0; width: 100%; border-width: 3px 0 0; box-shadow: none; padding-bottom: calc(16px + env(safe-area-inset-bottom)); }
}

/* ---------- 18+ popup (Blocksy popup 5093) ---------- */
html body.yr #ct-popup-5093 .ct-popup-inner > article { background: var(--yr-paper); border: 4px solid var(--yr-ink); border-radius: 0; box-shadow: var(--yr-sh-lg); }
html body.yr #ct-popup-5093 h4 { font-family: var(--yr-display); font-weight: 800; }
html body.yr #ct-popup-5093 .stk-button { min-height: 52px; background: #FFFFFF !important; color: var(--yr-ink) !important; border: 3px solid var(--yr-ink) !important; border-radius: 0 !important; font-weight: 800; }
html body.yr #ct-popup-5093 .stk-button * { color: var(--yr-ink) !important; }
html body.yr #ct-popup-5093 .stk-button:hover { background: var(--yr-sun) !important; }

@media (prefers-reduced-motion: reduce) {
	.yr * , .yr *::before, .yr *::after { transition: none !important; scroll-behavior: auto !important; }
	.yr-hero__panel::before, .yr-hero__shot { animation: none; }
}

/* ---------- fixes after first staging pass ---------- */
/* Small labels used the "Play" font, which is not loaded: use the body font everywhere. */
html body.yr .stock,
html body.yr .ct-woo-card-stock,
html body.yr .height-label,
html body.yr .has-play-font-family { font-family: var(--yr-text) !important; }
html body.yr .height-label { background: #FFFFFF !important; color: var(--yr-ink) !important; opacity: 1 !important; border: 2px solid var(--yr-ink); border-radius: 0 !important; font-weight: 800 !important; font-size: 12px !important; }
html body.yr .ct-woo-card-stock { font-weight: 800; font-size: 13px; }

/* Trust strip under the header on product archives (inc/shop.php, replaces content block 97). Phones skip it, as before:
   their header already carries the free-shipping line. */
.yr-strip { background: #FFFFFF; border-bottom: 3px solid var(--yr-ink); }
.yr-strip__in { list-style: none; margin: 0 auto; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 24px; padding-top: 11px; padding-bottom: 11px; }
.yr-strip__in li { display: flex; align-items: center; gap: 9px; font-size: 14px; font-weight: 600; line-height: 1.3; }
.yr-strip__in .yr-i { color: var(--yr-orange-text); }
@media (max-width: 999px) {
	.yr-strip__in { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; }
}
@media (max-width: 689px) {
	.yr-strip { display: none; }
}

/* Category and series hero: paper panel with the title; when the term has a banner, a framed banner with the title on it */
html body.yr .hero-section[data-type="type-2"] { min-height: 0 !important; padding: 40px 0 8px; background: var(--yr-paper); }
html body.yr .hero-section[data-type="type-2"] .entry-header { max-width: 1440px; padding: 0 32px; box-sizing: border-box; text-align: left; align-items: flex-start; }
html body.yr .hero-section .page-title { color: var(--yr-ink) !important; margin: 0; }
html body.yr .hero-section .page-title::after { content: ""; display: block; width: 72px; height: 9px; margin-top: 12px; background: var(--yr-orange); transform: skewX(-14deg); }
html body.yr .hero-section .entry-header p { color: var(--yr-muted) !important; font-size: 16px; margin-top: 14px; }

html body.yr .hero-section[data-type="type-2"]:has(> figure) {
	position: relative; overflow: hidden; isolation: isolate; box-sizing: border-box;
	/* same width as the product grid below (Blocksy container) */
	width: var(--theme-container-width, calc(100% - 64px)); max-width: var(--theme-normal-container-max-width, 1440px); min-height: 240px !important; margin: 32px auto 8px; padding: 0;
	display: flex; align-items: center;
	background: var(--yr-ink); border: 4px solid var(--yr-ink); box-shadow: var(--yr-sh-lg);
}
html body.yr .hero-section[data-type="type-2"] > figure { position: absolute; inset: 0; z-index: -1; margin: 0; }
html body.yr .hero-section[data-type="type-2"] > figure .ct-media-container { position: absolute; inset: 0; height: 100%; border-radius: 0; }
html body.yr .hero-section[data-type="type-2"] > figure img { width: 100%; height: 100%; object-fit: cover; object-position: right center; }
/* Blocksy's flat dark overlay is replaced by an ink fade from the left, so the art stays bright and the title still reads on any banner */
html body.yr .hero-section[data-type="type-2"] > figure .ct-media-container::after { display: none; }
html body.yr .hero-section[data-type="type-2"] > figure::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(15, 6, 21, .88) 0%, rgba(15, 6, 21, .6) 38%, rgba(15, 6, 21, 0) 70%);
}
html body.yr .hero-section[data-type="type-2"]:has(> figure) .entry-header { position: relative; width: 100%; max-width: none; margin: 0; padding: 36px 40px; }
html body.yr .hero-section[data-type="type-2"]:has(> figure) .page-title { color: var(--yr-paper) !important; max-width: 60%; text-shadow: 0 2px 0 var(--yr-ink); }
html body.yr .hero-section[data-type="type-2"]:has(> figure) .entry-header p { color: var(--yr-paper) !important; max-width: 520px; }
@media (max-width: 999px) {
	html body.yr .hero-section[data-type="type-2"] { padding-top: 24px; }
	html body.yr .hero-section[data-type="type-2"] .entry-header { padding: 0 16px; }
	html body.yr .hero-section[data-type="type-2"]:has(> figure) { min-height: 160px !important; margin-top: 16px; padding: 0; box-shadow: var(--yr-sh-md); }
	html body.yr .hero-section[data-type="type-2"]:has(> figure) .entry-header { padding: 24px 20px; }
	html body.yr .hero-section[data-type="type-2"]:has(> figure) .page-title { max-width: 70%; }
}
html body.yr .woo-listing-top .ct-toggle-filter-panel { min-height: 44px; padding: 0 16px; border: 2px solid var(--yr-ink); background: #FFFFFF; font-weight: 800; border-radius: 0; }
html body.yr ul.products li.product .button,
html body.yr button.ct-wishlist-button-archive.ct-button { border-radius: 0; }

/* Checkout: one frame for the order box */
html body.yr .ct-order-review #order_review,
html body.yr .ct-order-review .woocommerce-checkout-review-order-table { border: 0; box-shadow: none; background: transparent; }
html body.yr .woocommerce-shipping-methods label { font-weight: 800; }

/* ======================================================================
   Polish pass: tables, form controls, scrollbars, filters, content pages
   ====================================================================== */

/* Scrollbars */
html { scrollbar-color: var(--yr-ink) var(--yr-panel); }
body.yr * { scrollbar-width: thin; scrollbar-color: var(--yr-ink) transparent; }
body.yr ::-webkit-scrollbar { width: 10px; height: 10px; }
body.yr ::-webkit-scrollbar-track { background: var(--yr-panel); }
body.yr ::-webkit-scrollbar-thumb { background: var(--yr-ink); border: 2px solid var(--yr-panel); }
body.yr ::-webkit-scrollbar-thumb:hover { background: var(--yr-orange); }

/* Checkboxes and radios */
html body.yr input[type="checkbox"],
html body.yr input[type="radio"] {
	-webkit-appearance: none; appearance: none; flex: none;
	width: 20px; height: 20px; margin: 0 8px 0 0; padding: 0; vertical-align: -4px;
	background: #FFFFFF; border: 2px solid var(--yr-ink); border-radius: 0; box-shadow: none;
	display: inline-grid; place-content: center; cursor: pointer; position: relative; top: 0;
}
html body.yr input[type="radio"] { border-radius: 50%; }
html body.yr input[type="checkbox"]::before {
	content: ""; width: 11px; height: 6px; margin-top: -3px;
	border-left: 3px solid var(--yr-ink); border-bottom: 3px solid var(--yr-ink);
	transform: rotate(-45deg) scale(0); transition: transform .1s ease;
}
html body.yr input[type="radio"]::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--yr-ink); transform: scale(0); transition: transform .1s ease; }
html body.yr input[type="checkbox"]:checked,
html body.yr input[type="radio"]:checked { background: var(--yr-orange); }
html body.yr input[type="checkbox"]:checked::before { transform: rotate(-45deg) scale(1); }
html body.yr input[type="radio"]:checked::before { transform: scale(1); }
html body.yr input[type="checkbox"]::after,
html body.yr input[type="radio"]::after { display: none !important; }

/* Quantity steppers */
html body.yr .quantity,
html body.yr .quantity[data-type] { border-radius: 0; }
html body.yr .quantity input.qty,
html body.yr .quantity[data-type] input { border: 2px solid var(--yr-ink) !important; border-radius: 0 !important; font-weight: 800; background: #FFFFFF; }
html body.yr .quantity .ct-increase,
html body.yr .quantity .ct-decrease { color: var(--yr-ink); border-color: var(--yr-ink) !important; border-radius: 0 !important; }
html body.yr .quantity .ct-increase:hover,
html body.yr .quantity .ct-decrease:hover { background: var(--yr-sun); }

/* Price range slider (Blocksy filters) */
html body.yr .ct-price-filter { --theme-palette-color-1: var(--yr-orange); --theme-border-color: var(--yr-line); }
html body.yr .ct-price-filter-range-handle-min,
html body.yr .ct-price-filter-range-handle-max { background: var(--yr-sun) !important; border: 2px solid var(--yr-ink) !important; border-radius: 0 !important; }
html body.yr .ct-price-filter-values { font-weight: 600; }

/* Filter panel */
html body.yr .ct-panel[data-behaviour="left-side"] .ct-panel-inner { background: var(--yr-paper); border-right: 4px solid var(--yr-ink); }
html body.yr .ct-panel .ct-panel-heading { font-family: var(--yr-display); font-weight: 800; font-size: 20px; text-transform: none; }
html body.yr .ct-panel .ct-widget .widget-title,
html body.yr .ct-panel .ct-widget h2,
html body.yr .ct-panel .ct-widget h3 { font-family: var(--yr-display); font-weight: 800; font-size: 18px; }
html body.yr .ct-filter-item label,
html body.yr .ct-filter-widget label { display: flex; align-items: center; min-height: 36px; font-size: 15px; cursor: pointer; }
html body.yr .ct-filter-count { color: var(--yr-muted); font-size: 13px; }
html body.yr .ct-panel input[type="search"] { border: 2px solid var(--yr-ink); }
/* Filters button: a framed button like the rest. Blocksy's hover used the link-hover brown for the background while
   the text also turned brown, so the label disappeared; hover is now sun yellow with ink text. */
html body.yr main .woo-listing-top .ct-toggle-filter-panel {
	--toggle-button-background: #FFFFFF; --toggle-button-border-color: var(--yr-ink);
	display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 18px; box-sizing: border-box;
	background: #FFFFFF; color: var(--yr-ink) !important; border: 3px solid var(--yr-ink) !important; border-radius: 0; box-shadow: var(--yr-sh-sm);
	font-family: var(--yr-text); font-weight: 800; font-size: 14px; letter-spacing: .06em; text-decoration: none;
	transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease;
}
html body.yr main .woo-listing-top .ct-toggle-filter-panel:hover,
html body.yr main .woo-listing-top .ct-toggle-filter-panel:focus-visible {
	--toggle-button-background: var(--yr-sun); --toggle-button-border-color: var(--yr-ink);
	background: var(--yr-sun); color: var(--yr-ink) !important; transform: translate(-2px, -2px); box-shadow: var(--yr-sh-md);
}
html body.yr main .woo-listing-top .ct-toggle-filter-panel:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--yr-ink); }
html body.yr main .woo-listing-top .ct-toggle-filter-panel .ct-icon-container { color: var(--yr-ink); }

/* Tables: the border sits on the panel, with padding inside */
html body.yr table,
html body.yr .shop_table { border-radius: 0; }
html body.yr.woocommerce-cart table.shop_table,
html body.yr .cart_totals table.shop_table,
html body.yr.woocommerce-checkout table.shop_table,
html body.yr .woocommerce-checkout-review-order-table { border: 0 !important; box-shadow: none !important; background: transparent; }
html body.yr .woocommerce-cart-form { background: #FFFFFF; border: 3px solid var(--yr-ink); box-shadow: var(--yr-sh-md); padding: 8px 24px 20px; }
html body.yr .woocommerce-cart-form table.shop_table th,
html body.yr .woocommerce-cart-form table.shop_table td { padding: 16px 10px; border-color: var(--yr-line); }
html body.yr .woocommerce-cart-form table.shop_table thead th { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; border-bottom: 3px solid var(--yr-ink); }
html body.yr .woocommerce-cart-form table.shop_table th:first-child,
html body.yr .woocommerce-cart-form table.shop_table td:first-child { padding-left: 0; }
html body.yr .woocommerce-cart-form table.shop_table img { border: 2px solid var(--yr-ink); background: #FFFFFF; border-radius: 0; }
html body.yr .woocommerce-cart-form .product-name a { font-weight: 600; text-decoration: none; }
html body.yr .woocommerce-cart-form .remove { color: var(--yr-ink) !important; }
html body.yr .cart_totals { padding: 24px 28px; }
html body.yr .cart_totals table.shop_table th,
html body.yr .cart_totals table.shop_table td,
html body.yr .woocommerce-checkout-review-order-table th,
html body.yr .woocommerce-checkout-review-order-table td { padding: 14px 0; border-bottom: 2px solid var(--yr-line) !important; border-top: 0 !important; }
html body.yr .cart_totals table.shop_table td,
html body.yr .woocommerce-checkout-review-order-table td { text-align: right; }
html body.yr .cart_totals .order-total th,
html body.yr .cart_totals .order-total td { border-bottom: 0 !important; font-size: 18px; }
html body.yr .cart_totals .order-total .amount { font-family: var(--yr-display); font-weight: 800; font-size: 26px; }
html body.yr .cart_totals .checkout-button { width: 100%; min-height: 60px; font-family: var(--yr-display); font-weight: 800; font-size: 18px; }
html body.yr .woocommerce-shipping-calculator .shipping-calculator-button { font-weight: 800; color: var(--yr-orange-text); }
html body.yr .ct-order-review { padding: 24px 28px !important; }
html body.yr .woocommerce-checkout-review-order-table thead th { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; border-bottom: 3px solid var(--yr-ink) !important; }
html body.yr .woocommerce-checkout-review-order-table img { border: 2px solid var(--yr-ink); border-radius: 0; background: #FFFFFF; }
html body.yr .woocommerce-checkout #payment { background: transparent; border-radius: 0; }
html body.yr .woocommerce-checkout #payment .payment_methods { border: 0; padding: 0; }
html body.yr .woocommerce-checkout #payment div.payment_box { background: var(--yr-panel); margin: 0; }
html body.yr .woocommerce-checkout #payment div.payment_box::before { display: none; }
html body.yr .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { font-size: 14px; line-height: 1.5; }
@media (max-width: 689px) {
	html body.yr .woocommerce-cart-form { padding: 4px 14px 14px; box-shadow: var(--yr-sh-sm); }
	html body.yr .cart_totals,
	html body.yr .ct-order-review { padding: 18px 16px !important; box-shadow: var(--yr-sh-md); }
}

/* Content tables (About page) */
html body.yr .entry-content table { border-collapse: collapse; background: #FFFFFF; border: 3px solid var(--yr-ink); }
html body.yr .entry-content table td,
html body.yr .entry-content table th { border: 0; border-bottom: 2px solid var(--yr-line); padding: 10px 14px; }

/* Stackable content pages (Info tabs, contact, about): brand fonts */
html body.yr .entry-content .stk-block-heading__text,
html body.yr .entry-content .stk-block-accordion__heading *,
html body.yr .entry-content .stk-block-tabs__tab,
html body.yr .entry-content .stk-block-tabs__tab *,
html body.yr .entry-content .stk-block-text__text,
html body.yr .entry-content .stk-block-icon-label * { font-family: var(--yr-text) !important; }
html body.yr .entry-content .stk-block-accordion__heading { font-weight: 800; }
html body.yr .entry-content .stk-block-tabs__tab { border-radius: 0 !important; font-weight: 800; }
html body.yr .entry-content [class*="stk-block"][class*="background"]:not(.alignfull) { border-radius: 0 !important; }

/* Notices with a button (empty wishlist, empty cart) */
html body.yr .woocommerce-info .button,
html body.yr .woocommerce-message .button { min-height: 44px; box-shadow: var(--yr-sh-sm); }

/* Newsletter on phones: field above the button */
@media (max-width: 689px) {
	.yr-news .ct-newsletter-subscribe-form-elements { flex-direction: column; box-shadow: none !important; gap: 10px !important; }
	html body.yr .yr-news input[type="email"] { border-right: 3px solid var(--yr-ink) !important; width: 100%; }
	html body.yr .yr-news .ct-newsletter-subscribe-form button { width: 100%; box-shadow: var(--yr-sh-md); }
}

/* Card stock line: plain text, no grey pill */
html body.yr .ct-woo-card-stock { background: transparent !important; border-radius: 0 !important; padding: 0 !important; }

/* Second polish pass */
html body.yr .woocommerce-cart-form { align-self: start; }
html body.yr .woocommerce-cart-form td.actions,
html body.yr .woocommerce-cart-form tr:last-child td { border-bottom: 0 !important; }
html body.yr .woocommerce-cart-form td.actions:empty,
html body.yr .woocommerce-cart-form tr:has(> td.actions:only-child) td.actions:not(:has(*:not(input[type="hidden"]))) { display: none; }
@media (max-width: 689px) {
	html body.yr .yr-news input[type="email"] { flex: none !important; height: 56px !important; }
}
html body.yr #ship-to-different-address-checkbox,
html body.yr .woocommerce-form__input-checkbox { opacity: 1 !important; }

/* Product cards: content stacks from the top, price and stock sit at the bottom */
html body.yr :is([data-products], .flexy-item) > .product { display: flex; flex-direction: column; }
html body.yr :is([data-products], .flexy-item) > .product > .price { margin-top: auto; padding-top: 8px; }
/* Series and maker logos under the image */
html body.yr :is([data-products], .flexy-item) > .product > .ct-product-brands { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px 14px; margin: 14px 0; }
html body.yr :is([data-products], .flexy-item) > .product > .ct-product-brands .ct-media-container { border: 0; background: transparent; }
html body.yr :is([data-products], .flexy-item) > .product > .ct-product-content-block:empty { display: none; }
/* Height label (e.g. "25 cm"): a small chip at the top right of the image */
html body.yr :is([data-products], .flexy-item) > .product > .ct-product-content-block { margin: 0; padding: 0; }
html body.yr :is([data-products], .flexy-item) > .product .height-label { position: absolute !important; z-index: 2; top: 10px; right: 10px; left: auto; display: inline-block; padding: 2px 7px; white-space: nowrap; }
/* Katakana decorations keep a Japanese display face (the heading font has no Japanese letters) */
.yr-hero__kana, .yr-cat__kana { font-family: 'Dela Gothic One', var(--yr-display); font-weight: 400; }

/* Search box focus: no coloured ring, the box lifts with a deeper ink shadow instead */
html body.yr .yr-search input[type="search"]:focus,
html body.yr .yr-search input[type="search"]:focus-visible { outline: 0; box-shadow: none; border-color: var(--yr-ink); }
.yr-search { transition: transform .12s ease, box-shadow .12s ease; }
.yr-search:focus-within { transform: translate(-2px, -2px); box-shadow: var(--yr-sh-lg); }
.yr-msearch .yr-search:focus-within { transform: none; box-shadow: var(--yr-sh-sm); }

/* Live search results */
.yr-sresults { position: absolute; z-index: 60; top: calc(100% + 8px); left: 0; right: 0; background: #FFFFFF; border: 3px solid var(--yr-ink); box-shadow: var(--yr-sh-lg); max-height: min(70vh, 520px); overflow-y: auto; }
.yr-sresults a { display: flex; gap: 12px; align-items: center; padding: 10px 14px; color: var(--yr-ink); text-decoration: none; border-bottom: 2px solid var(--yr-line, #EAE3D6); }
.yr-sresults a:hover, .yr-sresults a[aria-selected="true"] { background: var(--yr-panel); }
.yr-sresults img { width: 52px; height: 52px; flex: none; object-fit: contain; background: #FFFFFF; border: 2px solid var(--yr-ink); }
.yr-sresults__t { display: block; font-weight: 600; font-size: 15px; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.yr-sresults__m { display: block; margin-top: 2px; font-weight: 800; font-size: 14px; }
.yr-sresults__m em { font-style: normal; font-weight: 600; color: var(--yr-muted); margin-left: 6px; }
.yr-sresults__empty { margin: 0; padding: 14px; font-size: 15px; }
html body.yr .yr-sresults a.yr-sresults__all { justify-content: center; border-bottom: 0; background: var(--yr-ink); color: var(--yr-paper); font-weight: 800; padding: 12px 14px; }
html body.yr .yr-sresults a.yr-sresults__all:hover, html body.yr .yr-sresults a.yr-sresults__all[aria-selected="true"] { background: var(--yr-ink); color: var(--yr-sun); }
.yr-sresults__m del { margin-left: 6px; font-weight: 600; color: var(--yr-muted); }
/* The lifted search box makes its own layer; keep it (and its results) above the category menu */
.yr-search { z-index: 61; }

/* Product cards, round 2 */
/* Photo runs to the card frame; one ink line under the photo, not two */
html body.yr :is([data-products], .flexy-item) > .product > figure { padding: 0; box-sizing: border-box; }
html body.yr :is([data-products], .flexy-item) > .product > figure .ct-media-container { border-bottom: 0; }
/* Stock line: brand text, no grey box. Pre-orders show their arrival date here, in the pre-order purple. */
html body.yr :is([data-products], .flexy-item) .ct-woo-card-stock .stock { background: transparent !important; padding: 0 !important; border-radius: 0 !important; margin: 0; gap: 6px; font-weight: 800; font-size: 13px; color: #1D6B35; }
html body.yr :is([data-products], .flexy-item) .ct-woo-card-stock .stock.out-of-stock { color: var(--yr-muted); }
html body.yr :is([data-products], .flexy-item) .ct-woo-card-stock .stock.on-preorder { color: #5B33C4; }
html body.yr :is([data-products], .flexy-item) > .product > .ct-woo-card-stock { padding-top: 8px; }
/* Hover buttons: two matching 44px squares with a clear gap; the icons have labels, so no tooltips */
html body.yr :is([data-products], .flexy-item) .ct-woo-card-extra { gap: 10px; }
html body.yr :is([data-products], .flexy-item) .ct-woo-card-extra .ct-tooltip { display: none !important; }
html body.yr :is([data-products], .flexy-item) .ct-woo-card-extra > .button,
html body.yr :is([data-products], .flexy-item) .ct-woo-card-extra > .ct-wishlist-button-archive {
	width: 44px; height: 44px; min-height: 44px; padding: 0; display: flex; align-items: center; justify-content: center;
	border: 3px solid var(--yr-ink); border-radius: 0; box-shadow: var(--yr-sh-sm); box-sizing: border-box;
}
html body.yr :is([data-products], .flexy-item) .ct-woo-card-extra > .button { background: var(--yr-orange); color: var(--yr-ink); }
html body.yr :is([data-products], .flexy-item) .ct-woo-card-extra > .ct-wishlist-button-archive { background: #FFFFFF; color: var(--yr-ink); }
html body.yr :is([data-products], .flexy-item) .ct-woo-card-extra > .button:hover,
html body.yr :is([data-products], .flexy-item) .ct-woo-card-extra > .ct-wishlist-button-archive:hover { background: var(--yr-sun); color: var(--yr-ink); }
/* Card text never runs past the frame: every line stays inside 16px side padding */
html body.yr :is([data-products], .flexy-item) > .product > *:not(figure):not(.ct-media-container) { align-self: stretch; max-width: 100%; min-width: 0; box-sizing: border-box; padding-left: 16px; padding-right: 16px; }
html body.yr :is([data-products], .flexy-item) > .product > .price { align-self: center; }
