/**
 * Styling pass for the e-commerce additions hooked onto the LIVE /shop/ and
 * /product/<slug>/ pages (see product-hooks.php + ui-shell.php). Scoped entirely to
 * our own .jiyyo-* components — the Porto theme itself (header, nav, footer, fonts,
 * page chrome) is left untouched, per design.
 *
 * Colors are pulled from the site's own theme (wp-content/uploads/porto_styles/
 * theme_css_vars.css: --porto-primary-color #2195cd, --porto-secondary-color #f78f22,
 * --porto-dark-color #212529) so this looks like a native part of the site, not a
 * bolted-on design system. Layout/spacing/component language (cards, pills, panels)
 * is adapted from the reference design the user supplied.
 */

:root {
	--jiyyo-accent: var(--porto-primary-color, #2195cd);
	--jiyyo-accent-ink: #ffffff;
	--jiyyo-accent-weak: #e7f4fa;
	--jiyyo-accent-strong: #1a7fb0; /* #2195cd darkened enough for white text (4.6:1) */
	--jiyyo-accent-text: #156e99;   /* blue for text on white */
	--jiyyo-secondary: var(--porto-secondary-color, #f78f22);
	--jiyyo-secondary-weak: #fff0df;
	--jiyyo-secondary-text: #a85200; /* orange for text on white / on the weak tint */
	--jiyyo-on-secondary: #2b1500;   /* dark text on orange — white on #f78f22 fails contrast */
	--jiyyo-rx: #b4361a;
	--jiyyo-rx-weak: #fde9e3;
	--jiyyo-ink: var(--porto-dark-color, #212529);
	--jiyyo-muted: #6a6e76;
	--jiyyo-faint: #9aa0a8;
	--jiyyo-surface: #ffffff;
	--jiyyo-raise: #f6f7f9;
	--jiyyo-line: #e6e7eb;
	--jiyyo-line-strong: #d8dbe1;
	--jiyyo-ok: #1f7a4d;
	--jiyyo-ok-weak: #e6f2ec;
	--jiyyo-bad: #b42318;
	--jiyyo-bad-weak: #fdeaea;
	--jiyyo-radius: 12px;
	--jiyyo-radius-sm: 8px;
	--jiyyo-shadow: 0 1px 2px rgba(15, 50, 70, .06), 0 8px 24px -10px rgba(15, 50, 70, .18);
	--jiyyo-mono: ui-monospace, "SF Mono", "Cascadia Mono", Consolas, "Liberation Mono", monospace;
}

.jiyyo-account-bar *,
.jiyyo-cart-panel *,
.jiyyo-shop-hero *,
.jiyyo-filters *,
.jiyyo-modal *,
.jiyyo-drawer *,
.jiyyo-commerce-box,
.jiyyo-commerce-box *,
.jiyyo-badges,
.jiyyo-badges *,
.jiyyo-single-buybox,
.jiyyo-single-buybox * {
	box-sizing: border-box;
}

/* ==========================================================================
   Page frame — "Counter" layout (design direction A): top bar, compact hero,
   filter sidebar beside a dense product grid. Light only: the Porto site
   around it has no dark mode.
   ========================================================================== */

/* ── Top bar: search · login · cart ─────────────────────────────────────── */

.jiyyo-account-bar {
	background: var(--jiyyo-surface);
	border: 1px solid var(--jiyyo-line);
	border-radius: 16px;
	padding: 12px 14px;
	margin: 8px 0 0;
}
.jiyyo-account-bar__inner.container {
	display: flex;
	align-items: center;
	gap: 12px 16px;
	flex-wrap: wrap;
	padding: 0;
	max-width: none;
	width: 100%;
}
.jiyyo-bar-logo {
	display: flex;
	align-items: center;
	flex: none;
	padding: 0 4px 0 2px;
}
.jiyyo-bar-logo img {
	display: block;
	width: auto;
	height: 38px;
	max-width: none;
	transition: height .15s ease;
}
.jiyyo-search {
	position: relative;
	flex: 1 1 320px;
	display: flex;
	align-items: center;
	gap: 10px;
	height: 46px;
	margin: 0;
	padding: 0 14px;
	background: var(--jiyyo-raise);
	border: 1px solid var(--jiyyo-line);
	border-radius: 12px;
	color: var(--jiyyo-faint);
	transition: border-color .15s ease, box-shadow .15s ease;
}
.jiyyo-search:focus-within {
	border-color: var(--jiyyo-accent);
	box-shadow: 0 0 0 3px var(--jiyyo-accent-weak);
	background: var(--jiyyo-surface);
}
.jiyyo-search svg {
	width: 18px;
	height: 18px;
	flex: none;
}
.jiyyo-search input[type="search"] {
	flex: 1;
	min-width: 0;
	height: 100%;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	padding: 0 !important;
	font-size: 15px;
	color: var(--jiyyo-ink);
	outline: none;
}
.jiyyo-account-bar__actions {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-left: auto;
}
.jiyyo-account-control {
	display: flex;
	align-items: center;
	gap: 10px;
}
.jiyyo-login-trigger,
.jiyyo-cart-toggle {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 46px;
	padding: 0 18px;
	border-radius: 12px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: border-color .15s ease, color .15s ease, filter .15s ease;
}
.jiyyo-login-trigger {
	background: var(--jiyyo-surface);
	color: var(--jiyyo-ink);
	border: 1px solid var(--jiyyo-line-strong);
}
.jiyyo-login-trigger:hover {
	border-color: var(--jiyyo-accent);
	color: var(--jiyyo-accent-text);
}
.jiyyo-cart-toggle {
	background: var(--jiyyo-accent-strong);
	color: #ffffff;
	border: 0;
}
.jiyyo-cart-toggle:hover {
	filter: brightness(1.08);
}
.jiyyo-login-trigger svg,
.jiyyo-cart-toggle svg {
	width: 18px;
	height: 18px;
	flex: none;
}
.jiyyo-cart-count {
	position: absolute;
	top: -7px;
	right: -7px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--jiyyo-secondary);
	color: var(--jiyyo-on-secondary);
	font-size: 11px;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	box-shadow: 0 0 0 2px var(--jiyyo-surface);
}
.jiyyo-cart-count.is-bumped {
	animation: jiyyo-bump .35s ease;
}
@keyframes jiyyo-bump {
	40% { transform: scale(1.3); }
}
/* A long name ends in "…" instead of squeezing the search box; full name on hover. */
.jiyyo-account-name {
	max-width: 180px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Account menu: "Hi, <name>" → My profile · My orders · Log out (ui-shell.php). */
.jiyyo-account-menu {
	position: relative;
	min-width: 0;
}
/* Looks like one control. Clicking the person icon goes to My profile; the rest
   ("Hi, <name> ▾") opens the menu. */
.jiyyo-account-menu__pill {
	display: flex;
	align-items: stretch;
	max-width: 100%;
	height: 46px;
	border: 1px solid var(--jiyyo-line-strong);
	border-radius: 12px;
	background: var(--jiyyo-surface);
	overflow: hidden;
	transition: border-color .15s ease;
}
.jiyyo-account-menu__pill:hover,
.jiyyo-account-menu__pill:has([aria-expanded="true"]) {
	border-color: var(--jiyyo-accent);
}
.jiyyo-account-menu__profile {
	display: flex;
	flex: none;
	align-items: center;
	padding: 0 4px 0 12px;
	color: var(--jiyyo-accent);
}
.jiyyo-account-menu__profile:hover {
	color: var(--jiyyo-accent-text);
}
.jiyyo-account-menu__profile svg {
	width: 15px;
	height: 15px;
}
.jiyyo-account-menu__toggle {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	min-width: 0;
	padding: 0 12px 0 3px;
	border: 0;
	background: transparent;
	color: var(--jiyyo-ink);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}
.jiyyo-account-menu__profile:focus-visible,
.jiyyo-account-menu__toggle:focus-visible {
	outline: 2px solid var(--jiyyo-accent);
	outline-offset: -2px;
}
.jiyyo-account-menu__toggle .jiyyo-account-menu__chevron {
	flex: none;
	width: 14px;
	height: 14px;
	color: var(--jiyyo-muted);
	transition: transform .15s ease;
}
.jiyyo-account-menu__toggle[aria-expanded="true"] .jiyyo-account-menu__chevron {
	transform: rotate(180deg);
}
.jiyyo-account-menu__list {
	position: absolute;
	top: calc(100% + 6px);
	right: 0;
	z-index: 5;
	display: flex;
	flex-direction: column;
	min-width: 200px;
	padding: 6px;
	background: var(--jiyyo-surface);
	border: 1px solid var(--jiyyo-line);
	border-radius: var(--jiyyo-radius);
	box-shadow: var(--jiyyo-shadow);
}
.jiyyo-account-menu__list[hidden] {
	display: none;
}
.jiyyo-account-menu__item {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 0 12px;
	border: 0;
	border-radius: var(--jiyyo-radius-sm);
	background: transparent;
	color: var(--jiyyo-ink);
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
}
.jiyyo-account-menu__item:hover,
.jiyyo-account-menu__item:focus-visible {
	background: var(--jiyyo-raise);
	color: var(--jiyyo-ink);
	text-decoration: none;
}
.jiyyo-account-menu__item[aria-current="page"] {
	background: var(--jiyyo-accent-weak);
	color: var(--jiyyo-accent-text);
}
.jiyyo-account-menu__logout {
	margin-top: 4px;
	color: var(--jiyyo-bad);
	box-shadow: 0 -1px 0 var(--jiyyo-line);
}
.jiyyo-account-menu__logout:hover,
.jiyyo-account-menu__logout:focus-visible {
	background: var(--jiyyo-bad-weak);
	color: var(--jiyyo-bad);
}
@media (prefers-reduced-motion: reduce) {
	.jiyyo-account-menu__toggle .jiyyo-account-menu__chevron {
		transition: none;
	}
}

/* "← Back to medicines" on pharmacy pages outside the catalogue (ui-shell.php). */
.jiyyo-back-link {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 8px;
	min-height: 44px;
	padding: 0 16px 0 12px;
	border: 1px solid var(--jiyyo-line-strong);
	border-radius: 12px;
	background: var(--jiyyo-surface);
	color: var(--jiyyo-ink);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	transition: border-color .15s ease, color .15s ease;
}
.jiyyo-back-link:hover,
.jiyyo-back-link:focus-visible {
	border-color: var(--jiyyo-accent);
	color: var(--jiyyo-accent-text);
	text-decoration: none;
}
.jiyyo-back-link svg {
	flex: none;
	width: 18px;
	height: 18px;
	color: var(--jiyyo-accent);
}

/* ── Hero ───────────────────────────────────────────────────────────────── */

.jiyyo-shop-hero {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: 32px;
	align-items: center;
	padding: 36px 4px 12px;
}
.jiyyo-shop-hero__eyebrow {
	margin: 0;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--jiyyo-accent-text);
}
.jiyyo-shop-hero__title {
	margin: 10px 0 12px;
	font-size: clamp(28px, 3.6vw, 42px);
	line-height: 1.1;
	letter-spacing: -.025em;
	font-weight: 800;
	color: var(--jiyyo-ink);
	text-wrap: balance;
}
.jiyyo-shop-hero__subtitle {
	margin: 0;
	max-width: 50ch;
	font-size: 17px;
	line-height: 1.55;
	color: var(--jiyyo-muted);
}
.jiyyo-shop-hero__trust {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
	font-size: 14px;
	font-weight: 600;
	color: var(--jiyyo-muted);
}
.jiyyo-shop-hero__trust li {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin: 0;
}
.jiyyo-shop-hero__trust svg {
	width: 17px;
	height: 17px;
	color: var(--jiyyo-ok);
}
.jiyyo-shop-hero__catalog {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin-top: 24px;
	height: 46px;
	padding: 0 18px;
	border: 1.5px solid var(--jiyyo-accent-strong);
	border-radius: 12px;
	color: var(--jiyyo-accent-text);
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	transition: background .15s ease, color .15s ease;
}
.jiyyo-shop-hero__catalog:hover,
.jiyyo-shop-hero__catalog:focus-visible {
	background: var(--jiyyo-accent-strong);
	color: #ffffff;
}
.jiyyo-shop-hero__catalog svg {
	width: 18px;
	height: 18px;
}
.jiyyo-shop-hero__catalog-meta {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .06em;
	opacity: .7;
}
.jiyyo-shop-hero__packs {
	position: relative;
	width: 100%;
	max-width: 560px;
	margin-left: auto;
	aspect-ratio: 2 / 1; /* scales as a whole, so the packs keep their place on the disc */
	overflow: hidden; /* last guard: nothing here can ever be drawn outside the art's box */
}
.jiyyo-shop-hero__packs::before {
	content: "";
	position: absolute;
	inset: 5% 4% 0;
	border-radius: 50% 50% 24px 24px;
	background: var(--jiyyo-accent-weak);
}
/* Each pack is drawn inside its own slot, whose corners all lie under the disc's arched top
   (half an ellipse), so no pack, tall bottle or wide box, can poke out of it. The slot is
   the size, not the image: whatever a plugin adds around or after the image (WP Rocket's
   lazy-load <noscript> copies, a <picture> wrapper for WebP) stays inside it. The slots
   were once sized with img:nth-child(), and the <noscript> copies threw that count off. */
.jiyyo-shop-hero__pack {
	position: absolute;
	bottom: 6%;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	/* On the slot, not the image: the slot's z-index makes it a group of its own, and an
	   image blending inside it would only meet the empty slot (a white box on the disc). */
	mix-blend-mode: multiply; /* white packshot backgrounds melt into the disc */
}
.jiyyo-shop-hero__pack--1 { left: 8%; width: 28%; height: 56%; }
.jiyyo-shop-hero__pack--2 { left: 31%; width: 38%; height: 80%; z-index: 1; }
.jiyyo-shop-hero__pack--3 { right: 8%; width: 28%; height: 56%; }
.jiyyo-shop-hero__pack picture {
	display: contents;
}
.jiyyo-shop-hero__pack img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	object-fit: contain;
	object-position: 50% 100%;
}

/* ── Sidebar + toolbar layout ───────────────────────────────────────────── */

body.jiyyo-catalog #content {
	padding-top: 10px;
}
body.jiyyo-has-filters #content {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	column-gap: 30px;
	align-items: start;
}
body.jiyyo-has-filters #content > * {
	grid-column: 2;
	min-width: 0;
}
body.jiyyo-has-filters #content > .jiyyo-filters {
	grid-column: 1;
	grid-row: 1 / span 30;
	position: sticky;
	/* Clear the site's sticky dark header; if the sidebar is still taller than the
	   window, it scrolls on its own so nothing is out of reach. */
	top: var(--jiyyo-stack-top, 170px);
	max-height: calc(100vh - var(--jiyyo-stack-top, 170px) - 16px);
	overflow-y: auto;
	overscroll-behavior: contain;
	padding-right: 6px;
	scrollbar-width: thin;
}
.jiyyo-filters {
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.jiyyo-filters__title {
	margin: 0 0 8px;
	font-size: 12px !important;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--jiyyo-faint) !important;
}
.jiyyo-filters__list {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.jiyyo-filters__list li {
	margin: 0;
}
.jiyyo-filters__list a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
	padding: 6px 10px;
	border-radius: 9px;
	font-size: 14.5px;
	font-weight: 500;
	color: var(--jiyyo-muted);
	text-decoration: none;
}
.jiyyo-filters__list a:hover {
	background: var(--jiyyo-raise);
	color: var(--jiyyo-ink);
}
.jiyyo-filters__list a[aria-current="true"] {
	background: var(--jiyyo-accent-weak);
	color: var(--jiyyo-accent-text);
	font-weight: 700;
}
.jiyyo-filters__n {
	font-size: 12px;
	color: var(--jiyyo-faint);
	font-variant-numeric: tabular-nums;
}
.jiyyo-filters__check {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14.5px;
	color: var(--jiyyo-muted);
	text-decoration: none;
}
.jiyyo-filters__box {
	width: 18px;
	height: 18px;
	flex: none;
	border: 1.5px solid var(--jiyyo-line-strong);
	border-radius: 5px;
	background: var(--jiyyo-surface);
}
.jiyyo-filters__check[aria-checked="true"] .jiyyo-filters__box {
	border-color: var(--jiyyo-accent-strong);
	background: var(--jiyyo-accent-strong) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") center / 13px no-repeat;
}
.jiyyo-filters__help {
	padding: 14px;
	border: 1px solid var(--jiyyo-line);
	border-radius: 14px;
	font-size: 13.5px;
	line-height: 1.45;
}
.jiyyo-filters__help strong {
	display: block;
	margin-bottom: 4px;
	color: var(--jiyyo-ink);
}
.jiyyo-filters__help a {
	color: var(--jiyyo-accent-text);
	font-weight: 600;
}

body.jiyyo-catalog .shop-loop-before {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px 16px;
	margin: 0 0 16px !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
}
body.jiyyo-catalog .shop-loop-before .woocommerce-pagination,
body.jiyyo-catalog .shop-loop-before .gridlist-toggle,
body.jiyyo-catalog .woocommerce-viewing {
	display: none !important;
}
.jiyyo-result-count {
	margin: 0 auto 0 0 !important;
	font-size: 14.5px;
	color: var(--jiyyo-muted);
	font-variant-numeric: tabular-nums;
}
.jiyyo-result-count strong {
	color: var(--jiyyo-ink);
}
body.jiyyo-catalog .shop-loop-before .woocommerce-ordering {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 !important;
	float: none !important;
	font-size: 14px;
	color: var(--jiyyo-muted);
}
body.jiyyo-catalog .shop-loop-before .woocommerce-ordering label {
	margin: 0;
	font-weight: 500;
}
body.jiyyo-catalog .shop-loop-before .woocommerce-ordering select {
	height: 38px;
	padding: 0 32px 0 12px;
	border: 1px solid var(--jiyyo-line-strong);
	border-radius: 10px;
	background-color: var(--jiyyo-surface);
	font-size: 14px;
	font-weight: 600;
	color: var(--jiyyo-ink);
}

/* ── Product grid ───────────────────────────────────────────────────────── */

/* Porto locks ul.products to fixed-percentage columns; an auto-fill grid gives
   more, smaller cards per row. !important beats Porto's column classes. */
body.jiyyo-catalog ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(205px, 1fr)) !important;
	gap: 16px !important;
	margin: 0 !important;
}
body.jiyyo-catalog ul.products::before,
body.jiyyo-catalog ul.products::after {
	display: none !important; /* Porto's clearfix pseudo-elements would take grid cells */
}
body.jiyyo-catalog ul.products li.product {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}
body.jiyyo-catalog ul.products li.product .product-inner {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 10px;
	background: var(--jiyyo-surface);
	border: 1px solid var(--jiyyo-line);
	border-radius: 16px;
	box-shadow: none;
	transition: box-shadow .2s ease, border-color .2s ease;
}
body.jiyyo-catalog ul.products li.product:hover .product-inner {
	border-color: transparent;
	box-shadow: var(--jiyyo-shadow);
}

/* Photo tile: square, white, packshot contained (never cropped, so label text
   stays readable). */
body.jiyyo-catalog ul.products li.product .product-image {
	position: relative;
	aspect-ratio: 5 / 4; /* keep in sync with JIYYO_TILE_RATIO in images.php */
	height: auto;
	margin: 0;
	overflow: hidden;
	background: #ffffff;
	border: 1px solid var(--jiyyo-line);
	border-radius: 11px;
}
body.jiyyo-catalog ul.products li.product .product-image > a,
body.jiyyo-catalog ul.products li.product .product-image .inner {
	position: absolute;
	inset: 0;
	display: block;
	height: auto;
	background: none;
}
/* Whole photo, centred, never cropped: capped to the tile (less a 14px margin) and
   left at its own aspect ratio. Doesn't rely on height:100% + object-fit, which Porto's
   .img-effect / hover-zoom image rules were overriding (the image box came out taller
   than the tile and got clipped). !important only on the properties Porto sets. */
body.jiyyo-catalog ul.products li.product .product-image img {
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	right: auto !important;
	bottom: auto !important;
	width: auto !important;
	height: auto !important;
	max-width: calc(100% - 28px) !important;
	max-height: calc(100% - 28px) !important;
	margin: 0 !important;
	padding: 0;
	object-fit: contain;
	transform: translate(-50%, -50%) !important;
}
/* Photos (real background, no white) — card image and hover image: fill the tile
   edge to edge, cropping whatever doesn't fit its 5:4 shape. White-background
   packshots are framed instead (below). */
body.jiyyo-catalog ul.products li.product .product-image img.jiyyo-whole {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: cover;
	transform: translate(-50%, -50%) !important;
}
/* …except very wide or tall photos (see jiyyo_photo_can_fill): shown whole. */
body.jiyyo-catalog ul.products li.product .product-image img.jiyyo-whole.jiyyo-whole--contain {
	object-fit: contain;
}
/* Framed packshots carry their own even white margin — let them fill the tile. */
body.jiyyo-catalog ul.products li.product .product-image img.jiyyo-framed--packshot {
	max-width: 100% !important;
	max-height: 100% !important;
}
body.jiyyo-catalog ul.products li.product .product-image .links-on-image {
	display: none;
}

/* Card text */
body.jiyyo-catalog ul.products li.product .product-content {
	display: flex;
	flex-direction: column;
	gap: 3px;
	flex: 1;
	padding: 12px 4px 2px;
	text-align: left;
}
body.jiyyo-catalog ul.products li.product .product-content .category-list,
body.jiyyo-catalog ul.products li.product .product-content .rating-wrap {
	display: none; /* every product is "Uncategorized" and unrated — noise, not information */
}
.jiyyo-card-form {
	order: -1;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--jiyyo-accent-text);
}
body.jiyyo-catalog ul.products li.product .product-loop-title {
	text-decoration: none;
}
body.jiyyo-catalog ul.products li.product .woocommerce-loop-product__title {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.25;
	color: var(--jiyyo-ink);
	text-transform: none;
	letter-spacing: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
body.jiyyo-catalog ul.products li.product .product-loop-title:hover .woocommerce-loop-product__title {
	color: var(--jiyyo-accent-text);
}
.jiyyo-card-comp {
	margin: 0;
	font-size: 13px;
	line-height: 1.45;
	color: var(--jiyyo-muted);
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
a.jiyyo-card-comp {
	text-decoration: none;
}
a.jiyyo-card-comp:hover,
a.jiyyo-card-comp:focus-visible {
	color: var(--jiyyo-ink);
}

/* Photo badges: Rx / demand top-left, discount top-right, stock bottom. */
.jiyyo-card-flags {
	position: absolute;
	top: 8px;
	left: 8px;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 5px;
}
.jiyyo-rx-badge,
.jiyyo-demand-badge,
.jiyyo-margin-badge,
.jiyyo-out-badge,
.jiyyo-stock-badge {
	display: inline-flex;
	align-items: center;
	padding: 2px 7px;
	border-radius: 5px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .03em;
	line-height: 1.5;
	white-space: nowrap;
}
.jiyyo-rx-badge {
	background: var(--jiyyo-rx-weak);
	color: var(--jiyyo-rx);
}
.jiyyo-demand-badge {
	background: var(--jiyyo-secondary-weak);
	color: var(--jiyyo-secondary-text);
}
.jiyyo-demand-badge--card {
	position: absolute;
	left: 8px;
	bottom: 8px;
	z-index: 2;
	box-shadow: 0 1px 2px rgba(0, 0, 0, .12);
}
.jiyyo-margin-badge {
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 2;
	background: var(--jiyyo-ok);
	color: #ffffff;
	font-variant-numeric: tabular-nums;
}
.jiyyo-out-badge {
	position: absolute;
	left: 8px;
	right: 8px;
	bottom: 8px;
	z-index: 2;
	justify-content: center;
	background: rgba(33, 37, 41, .78);
	color: #ffffff;
}

/* Single-product badge row */
.jiyyo-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 10px;
}
.jiyyo-stock-badge.is-in {
	background: var(--jiyyo-ok-weak);
	color: var(--jiyyo-ok);
}
.jiyyo-stock-badge.is-out {
	background: var(--jiyyo-bad-weak);
	color: var(--jiyyo-bad);
}

/* ── Price + Add ────────────────────────────────────────────────────────── */

.jiyyo-commerce-box {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.product-content > .jiyyo-commerce-box {
	gap: 10px;
	margin-top: auto;
	padding-top: 12px;
}
/* Stacked: Sale price | MRP → margin chip → full-width Add / stepper. */
.product-content > .jiyyo-commerce-box .jiyyo-qty-and-cart > * {
	flex: 1;
}
.product-content > .jiyyo-commerce-box .jiyyo-stepper {
	justify-content: space-between;
}
/* Price block, option C: "Sale price | MRP" side by side at the same size and
   weight — the sale price is told apart by colour alone — then a green margin chip.
   Buyers are pharmacies (B2B), so neither price is struck through. */
.jiyyo-price {
	display: flex;
	align-items: flex-end;
	gap: 14px;
	margin: 0;
	font-variant-numeric: tabular-nums;
}
.jiyyo-price__col {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.jiyyo-price__label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--jiyyo-faint);
}
.jiyyo-price__amount {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--jiyyo-ink);
	white-space: nowrap;
}
.jiyyo-price__col--sale .jiyyo-price__label,
.jiyyo-price__col--sale .jiyyo-price__amount {
	color: var(--jiyyo-accent-text);
}
.jiyyo-price__divider {
	width: 1px;
	align-self: stretch;
	background: var(--jiyyo-line);
}
.jiyyo-margin-chip {
	align-self: flex-start;
	padding: 3px 8px;
	border-radius: 6px;
	background: var(--jiyyo-ok-weak);
	color: var(--jiyyo-ok);
	font-size: 12.5px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}
.jiyyo-price-unavailable {
	font-size: 13px;
	font-weight: 500;
	color: var(--jiyyo-faint);
}

.jiyyo-qty-and-cart {
	display: flex;
	align-items: stretch;
	gap: 8px;
}
.jiyyo-add-to-cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	height: 38px;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 14px !important;
	background: var(--jiyyo-secondary) !important;
	color: var(--jiyyo-on-secondary) !important;
	border: 0 !important;
	border-radius: 10px !important;
	box-shadow: none !important;
	font-size: 14px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	cursor: pointer;
	transition: filter .15s ease;
}
.jiyyo-add-to-cart svg {
	width: 16px;
	height: 16px;
	flex: none;
}
.jiyyo-add-to-cart:hover:not(:disabled) {
	filter: brightness(1.06);
}
/* Disabled Add (under heavy demand, or at the stock limit): a muted shade of the
   same orange, so it still reads as "the Add button" — just not available. */
.jiyyo-add-to-cart:disabled {
	background: color-mix(in srgb, var(--jiyyo-secondary) 22%, #ffffff) !important;
	color: color-mix(in srgb, var(--jiyyo-secondary-text) 55%, #ffffff) !important;
	cursor: not-allowed;
	/* Porto's .button[disabled] sets pointer-events: none, which also kills this
	   cursor and the tooltip. A disabled button still can't be clicked. */
	pointer-events: auto !important;
	opacity: 1 !important;
}
.jiyyo-add-to-cart.is-busy {
	opacity: .6;
	pointer-events: none;
}

/* Quantity stepper — replaces Add once the product is in the cart. */
.jiyyo-stepper {
	display: inline-flex;
	align-items: center;
	height: 38px;
	border-radius: 10px;
	background: var(--jiyyo-secondary-weak);
	color: var(--jiyyo-secondary-text);
	font-weight: 800;
	font-variant-numeric: tabular-nums;
}
.jiyyo-stepper button {
	width: 34px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: inherit;
	cursor: pointer;
}
.jiyyo-stepper button:hover:not(:disabled) {
	background: var(--jiyyo-secondary);
	color: var(--jiyyo-on-secondary);
}
.jiyyo-stepper button:disabled {
	opacity: .45;
	cursor: default;
}
.jiyyo-stepper svg {
	width: 16px;
	height: 16px;
}
.jiyyo-stepper output {
	min-width: 22px;
	text-align: center;
	font-size: 15px;
}

.jiyyo-qty-input {
	width: 64px;
	flex: none;
	border: 1px solid var(--jiyyo-line-strong);
	border-radius: 10px;
	background: var(--jiyyo-surface);
	color: var(--jiyyo-ink);
	font-size: 15px;
	font-variant-numeric: tabular-nums;
	text-align: center;
	padding: 0 4px;
}
.jiyyo-qty-input:focus {
	outline: 2px solid var(--jiyyo-accent);
	outline-offset: 1px;
}

/* Focus rings for our own controls */
.jiyyo-account-bar button:focus-visible,
.jiyyo-bar-logo:focus-visible,
.jiyyo-add-to-cart:focus-visible,
.jiyyo-stepper button:focus-visible,
.jiyyo-filters a:focus-visible,
.jiyyo-drawer button:focus-visible,
.jiyyo-modal button:focus-visible {
	outline: 2px solid var(--jiyyo-accent);
	outline-offset: 2px;
}

/* ── Responsive ─────────────────────────────────────────────────────────── */

@media (max-width: 991px) {
	.jiyyo-shop-hero {
		grid-template-columns: 1fr;
		padding-top: 26px;
	}
	.jiyyo-shop-hero__packs {
		display: none;
	}
	body.jiyyo-has-filters #content {
		display: block;
	}
	body.jiyyo-has-filters #content > .jiyyo-filters {
		position: static;
		flex-direction: row;
		gap: 10px;
		margin-bottom: 16px;
		overflow-x: auto;
		padding-bottom: 4px;
	}
	.jiyyo-filters__group {
		flex: none;
	}
	.jiyyo-filters__title,
	.jiyyo-filters__help {
		display: none;
	}
	.jiyyo-filters__list {
		flex-direction: row;
		gap: 6px;
	}
	.jiyyo-filters__list a {
		white-space: nowrap;
		border: 1px solid var(--jiyyo-line);
		border-radius: 999px;
		padding: 6px 12px;
	}
	.jiyyo-filters__check {
		white-space: nowrap;
		height: 100%;
		border: 1px solid var(--jiyyo-line);
		border-radius: 999px;
		padding: 6px 12px;
	}
}
@media (max-width: 575px) {
	.jiyyo-bar-logo img {
		height: 30px;
	}
	.jiyyo-account-bar__actions {
		width: 100%;
		justify-content: flex-end;
	}
	body.jiyyo-catalog ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 10px !important;
	}
	body.jiyyo-catalog ul.products li.product .product-inner {
		padding: 8px;
	}
	.jiyyo-price {
		gap: 10px;
	}
	.jiyyo-price__amount {
		font-size: 15px;
	}
}

/* Single product "buy box" */
.jiyyo-single-buybox {
	background: var(--jiyyo-raise);
	border: 1px solid var(--jiyyo-line);
	border-radius: var(--jiyyo-radius);
	padding: 16px 18px;
	margin: 18px 0;
	max-width: 420px;
}
.jiyyo-single-buybox .jiyyo-badges {
	margin-bottom: 10px;
}

/* ==========================================================================
   Modal (login) + drawer (cart) shell
   ========================================================================== */

.jiyyo-modal,
.jiyyo-drawer {
	position: fixed;
	inset: 0;
	z-index: 99999;
	font-family: inherit;
}
.jiyyo-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(12, 28, 40, .55);
	backdrop-filter: blur(2px);
	animation: jiyyo-fade-in .18s ease both;
}
.jiyyo-modal__panel {
	position: relative;
	width: calc(100% - 32px);
	max-width: 400px;
	margin: 12vh auto 0;
	padding: 30px 28px 28px;
	background: var(--jiyyo-surface);
	border-radius: 20px;
	box-shadow: 0 24px 64px -16px rgba(15, 40, 60, .38);
	animation: jiyyo-pop-in .2s cubic-bezier(.2, .8, .2, 1) both;
}
@media (max-width: 575px) {
	/* Bottom sheet on phones — thumb-reachable, clears the on-screen keyboard. */
	.jiyyo-modal__panel {
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		width: 100%;
		max-width: none;
		margin: 0;
		padding: 26px 20px calc(24px + env(safe-area-inset-bottom, 0px));
		border-radius: 20px 20px 0 0;
		animation-name: jiyyo-sheet-up;
	}
}
@keyframes jiyyo-sheet-up {
	from { transform: translateY(24px); opacity: 0; }
}
.jiyyo-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 380px;
	max-width: 92vw;
	background: var(--jiyyo-surface);
	padding: 26px 22px;
	overflow-y: auto;
	/* A long cart scrolls inside the drawer: a thin grey bar, not the site's 10px blue one
	   (style.css styles every scrollbar), which sat right beside the page's own. */
	scrollbar-width: thin;
	scrollbar-color: var(--jiyyo-line-strong) transparent;
	box-shadow: -20px 0 60px -12px rgba(20, 22, 28, .3);
	animation: jiyyo-slide-in-right .22s cubic-bezier(.2, .8, .2, 1) both;
}
@keyframes jiyyo-fade-in {
	from { opacity: 0; }
}
@keyframes jiyyo-pop-in {
	from { opacity: 0; transform: translateY(10px) scale(.98); }
}
@keyframes jiyyo-slide-in-right {
	from { transform: translateX(24px); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.jiyyo-modal__backdrop,
	.jiyyo-modal__panel,
	.jiyyo-drawer__panel {
		animation: none;
	}
}

.jiyyo-modal__close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 34px;
	height: 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--jiyyo-raise);
	border: none;
	border-radius: 999px;
	color: var(--jiyyo-muted);
	cursor: pointer;
}
.jiyyo-modal__close svg {
	width: 15px;
	height: 15px;
}
.jiyyo-modal__close:hover {
	background: var(--jiyyo-line);
	color: var(--jiyyo-ink);
}

.jiyyo-login-step {
	display: flex;
	flex-direction: column;
	margin: 0;
}
.jiyyo-login-icon {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	margin-bottom: 16px;
	border-radius: 14px;
	background: var(--jiyyo-accent-weak);
	color: var(--jiyyo-accent-text);
}
.jiyyo-login-icon svg {
	width: 24px;
	height: 24px;
}
.jiyyo-login-step h3 {
	margin: 0 0 6px;
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -.015em;
	line-height: 1.2;
	color: var(--jiyyo-ink);
}
.jiyyo-login-step > p {
	margin: 0 0 22px;
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--jiyyo-muted);
}
.jiyyo-otp-phone {
	color: var(--jiyyo-ink);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.jiyyo-field-label {
	margin: 0 0 6px;
	font-size: 13px;
	font-weight: 600;
	color: var(--jiyyo-ink);
}

.jiyyo-phone-field {
	display: flex;
	align-items: stretch;
	height: 52px;
	margin: 0 0 14px;
	overflow: hidden;
	background: var(--jiyyo-surface);
	border: 1px solid var(--jiyyo-line-strong);
	border-radius: 12px;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.jiyyo-phone-field:focus-within {
	border-color: var(--jiyyo-accent);
	box-shadow: 0 0 0 3px var(--jiyyo-accent-weak);
}
.jiyyo-phone-prefix {
	display: flex;
	align-items: center;
	padding: 0 14px;
	background: var(--jiyyo-raise);
	border-right: 1px solid var(--jiyyo-line);
	font-size: 16px;
	font-weight: 700;
	color: var(--jiyyo-ink);
}
.jiyyo-login-step .jiyyo-phone-field input {
	flex: 1;
	min-width: 0;
	height: 100%;
	margin: 0;
	padding: 0 14px !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	outline: none;
	font-size: 17px;
	letter-spacing: .03em;
	font-variant-numeric: tabular-nums;
	color: var(--jiyyo-ink);
}
.jiyyo-login-step .jiyyo-otp-input {
	width: 100%;
	height: 58px;
	margin: 0 0 14px;
	padding: 0 12px !important;
	background: var(--jiyyo-surface) !important;
	border: 1px solid var(--jiyyo-line-strong) !important;
	border-radius: 12px !important;
	box-shadow: none;
	outline: none;
	font-size: 26px;
	font-weight: 700;
	letter-spacing: .5em;
	text-indent: .5em; /* balances the trailing letter-spacing so digits sit centred */
	text-align: center;
	font-variant-numeric: tabular-nums;
	color: var(--jiyyo-ink);
	transition: border-color .15s ease, box-shadow .15s ease;
}
.jiyyo-login-step .jiyyo-otp-input::placeholder {
	color: var(--jiyyo-line-strong);
}
.jiyyo-login-step .jiyyo-otp-input:focus {
	border-color: var(--jiyyo-accent) !important;
	box-shadow: 0 0 0 3px var(--jiyyo-accent-weak);
}
.jiyyo-login-step .jiyyo-otp-input.is-invalid {
	border-color: var(--jiyyo-bad) !important;
	box-shadow: 0 0 0 3px var(--jiyyo-bad-weak);
}

.jiyyo-form-error {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: -4px 0 14px;
	padding: 10px 12px;
	border-radius: 10px;
	background: var(--jiyyo-bad-weak);
	color: var(--jiyyo-bad);
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1.4;
}
/* Shown in place of Verify/Resend when only support can fix the login. */
.jiyyo-login-support {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.jiyyo-login-support p {
	margin: 0;
	font-size: 14px;
	color: var(--jiyyo-muted);
}
.jiyyo-login-support a.jiyyo-support-link {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 48px;
	border-radius: 12px;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	transition: filter .15s ease;
}
.jiyyo-login-support a.jiyyo-support-link:hover {
	filter: brightness(1.08);
	text-decoration: none;
}
.jiyyo-login-support .jiyyo-support-link svg {
	width: 18px;
	height: 18px;
	flex: none;
}
.jiyyo-login-support a.jiyyo-support-link--call,
.jiyyo-login-support a.jiyyo-support-link--call:hover {
	background: var(--jiyyo-accent-strong);
	color: #ffffff;
	font-variant-numeric: tabular-nums;
}
.jiyyo-login-support a.jiyyo-support-link--whatsapp,
.jiyyo-login-support a.jiyyo-support-link--whatsapp:hover {
	background: var(--jiyyo-ok-weak);
	color: var(--jiyyo-ok);
}

.jiyyo-form-error a,
.jiyyo-form-error a:hover {
	color: inherit;
	font-weight: 700;
	text-decoration: underline;
	white-space: nowrap;
}
.jiyyo-form-error[hidden],
.jiyyo-modal [hidden],
.jiyyo-drawer [hidden],
.jiyyo-cart-panel [hidden],
.jiyyo-account-bar [hidden] {
	display: none !important; /* our display:flex rules would otherwise beat the hidden attribute */
}

.jiyyo-btn,
.jiyyo-btn-primary {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	height: 50px;
	margin: 0;
	padding: 0 18px;
	border: 0;
	border-radius: 12px;
	background: var(--jiyyo-accent-strong);
	color: #ffffff;
	font-size: 15.5px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
	cursor: pointer;
	transition: filter .15s ease, opacity .15s ease;
}
.jiyyo-btn:hover:not(:disabled),
.jiyyo-btn-primary:hover:not(:disabled) {
	filter: brightness(1.08);
}
.jiyyo-btn:focus-visible {
	outline: 2px solid var(--jiyyo-accent);
	outline-offset: 3px;
}
.jiyyo-btn.is-loading {
	cursor: progress;
	opacity: .92;
}
.jiyyo-spinner {
	display: none;
	width: 18px;
	height: 18px;
	flex: none;
	border: 2.5px solid rgba(255, 255, 255, .35);
	border-top-color: #ffffff;
	border-radius: 50%;
	animation: jiyyo-spin .7s linear infinite;
}
.is-loading > .jiyyo-spinner {
	display: inline-block;
}
@keyframes jiyyo-spin {
	to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
	.jiyyo-spinner {
		animation-duration: 1.6s;
	}
}

.jiyyo-btn-inline {
	display: inline;
	margin: 0 0 0 4px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--jiyyo-accent-text);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
.jiyyo-btn-inline:hover:not(:disabled) {
	text-decoration: underline;
}
.jiyyo-btn-inline:disabled {
	color: var(--jiyyo-muted);
	font-weight: 500;
	cursor: default;
}
.jiyyo-login-step > .jiyyo-otp-resend {
	margin: 18px 0 0; /* must out-rank .jiyyo-login-step > p (top margin 0) */
	text-align: center;
	font-size: 14px;
	color: var(--jiyyo-muted);
}
.jiyyo-btn-link {
	display: block;
	width: 100%;
	margin: 14px auto 0;
	background: none;
	border: none;
	color: var(--jiyyo-accent-text);
	font-size: 13.5px;
	font-weight: 600;
	text-align: center;
	cursor: pointer;
}
.jiyyo-btn-link:hover {
	text-decoration: underline;
}

#jiyyo-recaptcha-container:empty {
	display: none;
}

/* Cart drawer */
.jiyyo-drawer__panel h3 {
	margin: 0 0 18px;
	font-size: 17px;
	font-weight: 600;
	color: var(--jiyyo-ink);
}
.jiyyo-cart-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	color: var(--jiyyo-faint);
	font-size: 13px;
	text-align: center;
	padding: 48px 10px;
	border: 1px dashed var(--jiyyo-line-strong);
	border-radius: var(--jiyyo-radius);
}
.jiyyo-cart-empty svg {
	width: 26px;
	height: 26px;
}
.jiyyo-cart-item {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr) auto auto;
	align-items: center;
	gap: 10px;
	padding: 12px 0;
	border-bottom: 1px solid var(--jiyyo-line);
}
.jiyyo-cart-item-thumb {
	width: 52px;
	height: 52px;
	display: grid;
	place-items: center;
	padding: 0;
	background: #ffffff;
	border: 1px solid var(--jiyyo-line);
	border-radius: 8px;
	overflow: hidden;
	box-sizing: border-box;
}
/* Explicit size, not max-width/max-height: a percentage max-height on a grid item
   doesn't resolve, so tall photos spilled out of the box. Thumbnails are square card
   images (see jiyyo_cart_thumb_map), so cover fills the box edge to edge. */
.jiyyo-cart-item-thumb img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	object-fit: cover;
}
.jiyyo-cart-item-main {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.jiyyo-cart-item-name {
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--jiyyo-ink);
}
a.jiyyo-cart-item-name {
	text-decoration: none;
}
a.jiyyo-cart-item-name:hover,
a.jiyyo-cart-item-name:focus-visible {
	color: var(--jiyyo-ink);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.jiyyo-cart-item-total {
	font-size: 13px;
	color: var(--jiyyo-muted);
	font-variant-numeric: tabular-nums;
}
.jiyyo-cart-item .jiyyo-stepper {
	height: 34px;
}
.jiyyo-cart-item .jiyyo-stepper button {
	width: 30px;
	height: 34px;
}
.jiyyo-cart-item-remove {
	width: 28px;
	height: 28px;
	padding: 0;
	border: 0;
	border-radius: 8px;
	background: none;
	color: var(--jiyyo-faint);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
}
.jiyyo-cart-item-remove:hover {
	background: var(--jiyyo-bad-weak);
	color: var(--jiyyo-bad);
}
.jiyyo-cart-total {
	font-weight: 700;
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid var(--jiyyo-line);
	font-size: 16px;
	font-variant-numeric: tabular-nums;
	color: var(--jiyyo-ink);
	display: flex;
	justify-content: space-between;
}

.jiyyo-stepper.is-busy {
	opacity: .6;
}

/* Toast — short confirmation / error line, bottom centre */
.jiyyo-toast {
	position: fixed;
	left: 50%;
	bottom: calc(20px + env(safe-area-inset-bottom, 0px));
	z-index: 100000;
	transform: translateX(-50%);
	max-width: min(440px, calc(100vw - 32px));
	padding: 12px 18px;
	border-radius: 12px;
	background: var(--jiyyo-ink);
	color: #ffffff;
	font-size: 14px;
	font-weight: 600;
	box-shadow: 0 10px 30px -10px rgba(0, 0, 0, .45);
	animation: jiyyo-pop-in .2s ease both;
}
@media (prefers-reduced-motion: reduce) {
	.jiyyo-toast,
	.jiyyo-cart-count.is-bumped {
		animation: none;
	}
}

/* ── Shop by form / need tiles ──────────────────────────────────────────── */

.jiyyo-shopby {
	padding: 14px 4px 0;
}
.jiyyo-shopby__title {
	margin: 0 0 4px;
	font-size: 20px !important;
	font-weight: 800;
	letter-spacing: -.01em;
	color: var(--jiyyo-ink);
}
.jiyyo-shopby__row {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(104px, 1fr);
	gap: 6px;
	overflow-x: auto;
	padding-bottom: 2px;
	scrollbar-width: thin;
	scroll-snap-type: x proximity;
}
/* Icon row: a line icon on a soft tint, the need's name and its count below. */
.jiyyo-shopby__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding: 6px 6px 4px;
	border-radius: 14px;
	text-align: center;
	color: var(--jiyyo-ink);
	text-decoration: none;
	scroll-snap-align: start;
}
.jiyyo-shopby__item:hover,
.jiyyo-shopby__item:focus-visible {
	color: var(--jiyyo-ink);
}
.jiyyo-shopby__item:focus-visible {
	outline: 2px solid var(--jiyyo-accent);
	outline-offset: 2px;
}
.jiyyo-shopby__disc {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: var(--tint, var(--jiyyo-accent-weak));
	color: var(--jiyyo-ink);
	transition: transform .18s ease, box-shadow .18s ease;
}
.jiyyo-shopby__disc svg {
	width: 26px;
	height: 26px;
}
.jiyyo-shopby__item:hover .jiyyo-shopby__disc {
	transform: translateY(-2px);
	box-shadow: 0 8px 18px -10px rgba(15, 40, 60, .45);
}
.jiyyo-shopby__item[aria-current="true"] .jiyyo-shopby__disc {
	box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px var(--jiyyo-accent-strong);
}
.jiyyo-shopby__item[aria-current="true"] .jiyyo-shopby__name {
	color: var(--jiyyo-accent-text);
}
.jiyyo-shopby__item.is-empty {
	opacity: .4;
	cursor: default;
}
.jiyyo-shopby__item.is-empty .jiyyo-shopby__disc {
	filter: grayscale(1);
	transform: none;
	box-shadow: none;
}
.jiyyo-shopby__name {
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	max-width: 13ch;
}
.jiyyo-shopby__n {
	margin-top: -3px;
	font-size: 12px;
	color: var(--jiyyo-faint);
	font-variant-numeric: tabular-nums;
}

/* ── Pinned cart ────────────────────────────────────────────────────────── */

.jiyyo-cart-fab {
	position: fixed;
	right: 20px;
	bottom: calc(20px + env(safe-area-inset-bottom, 0px));
	z-index: 9990;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 10px 10px 12px;
	border: 0;
	border-radius: 16px;
	background: var(--jiyyo-ink);
	color: #ffffff;
	box-shadow: 0 14px 34px -10px rgba(10, 30, 45, .5);
	cursor: pointer;
	animation: jiyyo-pop-in .22s cubic-bezier(.2, .8, .2, 1) both;
	transition: transform .15s ease;
}
.jiyyo-cart-fab:hover {
	transform: translateY(-2px);
}
.jiyyo-cart-fab:focus-visible {
	outline: 2px solid var(--jiyyo-accent);
	outline-offset: 3px;
}
.jiyyo-cart-fab__icon {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: var(--jiyyo-secondary);
	color: var(--jiyyo-on-secondary);
}
.jiyyo-cart-fab__icon svg {
	width: 20px;
	height: 20px;
}
.jiyyo-cart-fab__text {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	line-height: 1.2;
	font-variant-numeric: tabular-nums;
}
.jiyyo-cart-fab__count {
	font-size: 12px;
	opacity: .75;
}
.jiyyo-cart-fab__total {
	font-size: 16px;
	font-weight: 800;
}
.jiyyo-cart-fab__cta {
	padding: 9px 14px;
	border-radius: 10px;
	background: rgba(255, 255, 255, .12);
	font-size: 14px;
	font-weight: 700;
}
.jiyyo-cart-fab[hidden] {
	display: none !important;
}
/* The cart takes the corner; Porto's back-to-top button moves up above it. */
body.jiyyo-cart-fab-on #topcontrol {
	bottom: calc(96px + env(safe-area-inset-bottom, 0px)) !important;
	transition: bottom .2s ease;
}
@media (max-width: 575px) {
	.jiyyo-cart-fab {
		left: 12px;
		right: 12px;
		bottom: calc(12px + env(safe-area-inset-bottom, 0px));
	}
	.jiyyo-cart-fab__cta {
		margin-left: auto;
	}
}
@media (prefers-reduced-motion: reduce) {
	.jiyyo-cart-fab,
	.jiyyo-shopby__disc {
		animation: none;
		transition: none;
	}
}

/* ── Docked cart column (catalog pages, ≥1200px, cart has items) ────────── */

.jiyyo-cart-panel {
	display: none;
}
@media (min-width: 1200px) {
	body.jiyyo-cart-docked #content {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 300px;
		column-gap: 28px;
		align-items: start;
	}
	body.jiyyo-cart-docked #content > * {
		grid-column: 1;
		min-width: 0;
	}
	body.jiyyo-cart-docked.jiyyo-has-filters #content {
		grid-template-columns: 220px minmax(0, 1fr) 300px;
	}
	body.jiyyo-cart-docked.jiyyo-has-filters #content > * {
		grid-column: 2;
	}
	body.jiyyo-cart-docked.jiyyo-has-filters #content > .jiyyo-filters {
		grid-column: 1;
	}
	body.jiyyo-cart-docked #content > .jiyyo-cart-panel {
		grid-column: -2 / -1;
		grid-row: 1 / span 30;
		position: sticky;
		top: var(--jiyyo-stack-top, 110px);
		display: flex;
		flex-direction: column;
		/* Always down to the bottom of the window, however few items: the items fill it
		   and the totals and Checkout sit at the bottom, as in the drawer. */
		height: var(--jiyyo-panel-max, calc(100vh - var(--jiyyo-stack-top, 110px) - 16px));
		padding: 16px 16px 14px;
		background: var(--jiyyo-surface);
		border: 1px solid var(--jiyyo-line);
		border-radius: 16px;
		box-shadow: var(--jiyyo-shadow);
		animation: jiyyo-pop-in .22s cubic-bezier(.2, .8, .2, 1) both;
	}
	/* The docked column replaces the pinned button on wide screens. */
	body.jiyyo-cart-docked .jiyyo-cart-fab {
		display: none !important;
	}
	/* Porto's back-to-top button sits in the bottom-right corner — over the docked
	   cart's total. The pinned search bar keeps navigation in reach meanwhile. */
	body.jiyyo-cart-docked #topcontrol {
		display: none !important;
	}
}
.jiyyo-cart-panel__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--jiyyo-line);
}
/* The count sits under the title, so a narrow panel never wraps the heading. */
.jiyyo-cart-panel__heading {
	display: flex;
	flex-direction: column;
	gap: 1px;
	min-width: 0;
}
.jiyyo-cart-panel__title {
	margin: 0;
	font-size: 17px !important;
	font-weight: 800;
	line-height: 1.25;
	color: var(--jiyyo-ink);
	white-space: nowrap;
}
.jiyyo-cart-panel__count {
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--jiyyo-muted);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.jiyyo-cart-panel .jiyyo-cart-items {
	flex: 1;
	min-height: 0;
	overflow-y: auto; /* long carts scroll inside the panel, header and total stay put */
	margin: 0 -4px;
	padding: 0 4px;
}
/* Compact lines so more of the cart fits (the docked panel and the drawer): name, then
   the price working, then the stepper and line total side by side. The main column's children join the line's
   grid (display: contents) so the total can sit beside the stepper. */
:is(.jiyyo-cart-panel, .jiyyo-cart-drawer) .jiyyo-cart-item {
	grid-template-columns: 40px minmax(0, 1fr) auto;
	grid-template-areas:
		"thumb name  remove"
		"thumb calc  calc"
		"thumb qty   total";
	column-gap: 10px;
	row-gap: 3px;
	align-items: center;
	padding: 10px 0;
}
:is(.jiyyo-cart-panel, .jiyyo-cart-drawer) .jiyyo-cart-item-thumb {
	grid-area: thumb;
	width: 40px;
	height: 40px;
	align-self: start;
}
:is(.jiyyo-cart-panel, .jiyyo-cart-drawer) .jiyyo-cart-item-main {
	display: contents;
}
:is(.jiyyo-cart-panel, .jiyyo-cart-drawer) .jiyyo-cart-item-name {
	grid-area: name;
	font-size: 13.5px;
}
:is(.jiyyo-cart-panel, .jiyyo-cart-drawer) .jiyyo-cart-item-calc {
	grid-area: calc;
	font-size: 11.5px;
	line-height: 1.35;
}
:is(.jiyyo-cart-panel, .jiyyo-cart-drawer) .jiyyo-cart-item-total {
	grid-area: total;
	justify-self: end;
	font-size: 14px;
}
:is(.jiyyo-cart-panel, .jiyyo-cart-drawer) .jiyyo-cart-item-limit,
:is(.jiyyo-cart-panel, .jiyyo-cart-drawer) .jiyyo-cart-fix {
	grid-column: 2 / -1;
}
:is(.jiyyo-cart-panel, .jiyyo-cart-drawer) .jiyyo-cart-fix {
	justify-self: start;
}
:is(.jiyyo-cart-panel, .jiyyo-cart-drawer) .jiyyo-cart-item .jiyyo-stepper {
	grid-area: qty;
	justify-self: start;
	height: 30px;
	margin-top: 3px;
}
:is(.jiyyo-cart-panel, .jiyyo-cart-drawer) .jiyyo-cart-item .jiyyo-stepper button {
	width: 28px;
	height: 30px;
}
:is(.jiyyo-cart-panel, .jiyyo-cart-drawer) .jiyyo-cart-item-remove {
	grid-area: remove;
	align-self: start;
	justify-self: end; /* the column is as wide as the line total: keep every × on the edge */
	width: 24px;
	height: 24px;
	margin: -2px -4px 0 0;
	font-size: 18px;
}
.jiyyo-cart-panel .jiyyo-cart-items {
	scrollbar-width: thin;
	scrollbar-color: var(--jiyyo-line-strong) transparent;
}

/* Checkout, under the totals (renderCart): the button, or what stands in its way. */
.jiyyo-cart-checkout {
	margin-top: 12px;
}
.jiyyo-cart-checkout .jiyyo-cart-checkout__btn {
	height: 44px;
	font-size: 15px;
}
a.jiyyo-cart-checkout__btn,
a.jiyyo-cart-checkout__btn:hover,
a.jiyyo-cart-checkout__btn:focus {
	color: #ffffff;
	text-decoration: none;
}
/* Not ready yet: plainly grey, not a faded version of the real button. */
.jiyyo-cart-checkout .jiyyo-cart-checkout__btn:disabled {
	background: var(--jiyyo-raise);
	color: var(--jiyyo-faint);
	box-shadow: inset 0 0 0 1px var(--jiyyo-line-strong);
	cursor: not-allowed;
	filter: none;
}
.jiyyo-cart-checkout__note {
	margin: 0 0 10px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--jiyyo-bad);
}
/* Below the minimum order: how far the cart has come, in the shop's orange. */
.jiyyo-cart-min {
	margin: 0 0 10px;
	padding: 12px 14px;
	border-radius: var(--jiyyo-radius-sm);
	background: var(--jiyyo-secondary-weak);
}
.jiyyo-cart-min__text {
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--jiyyo-ink);
}
.jiyyo-cart-min__text strong {
	color: var(--jiyyo-secondary-text);
	font-weight: 800;
	font-variant-numeric: tabular-nums;
}
.jiyyo-cart-min__bar {
	height: 6px;
	margin: 9px 0 6px;
	border-radius: 999px;
	background: rgba(247, 143, 34, .22);
	overflow: hidden;
}
.jiyyo-cart-min__bar span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--jiyyo-secondary);
	transition: width .35s ease;
}
@media (prefers-reduced-motion: reduce) {
	.jiyyo-cart-min__bar span {
		transition: none;
	}
}
.jiyyo-cart-min__sub {
	margin: 0;
	font-size: 12.5px;
	line-height: 1.4;
	color: var(--jiyyo-muted);
}

/* ── IGST: price note + cart breakdown ─────────────────────────────────── */

.jiyyo-price__tax {
	font-size: 11.5px;
	font-weight: 600;
	color: var(--jiyyo-muted);
	white-space: nowrap;
}
.jiyyo-cart-item-calc {
	font-size: 12px;
	color: var(--jiyyo-muted);
	font-variant-numeric: tabular-nums;
}
.jiyyo-cart-item-total {
	font-weight: 700;
	color: var(--jiyyo-ink);
}
/* Totals: Subtotal and IGST each on a row of their own (label left, amount right), then
   the grand total, as on the checkout page. One hairline above; overrides the older
   .jiyyo-cart-total rule. */
.jiyyo-cart-total {
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin-top: 8px;
	padding-top: 12px;
	border-top: 1px solid var(--jiyyo-line);
	font-size: 12.5px;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
}
.jiyyo-cart-total__row {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	line-height: 1.4; /* Porto's body line-height made each row ~48px tall */
	font-size: 13px;
	font-weight: 500;
	color: var(--jiyyo-muted);
}
.jiyyo-cart-total__row > span:last-child {
	font-weight: 600;
	color: var(--jiyyo-ink);
}
.jiyyo-cart-total__row.is-grand {
	align-items: baseline;
	margin-top: 6px;
	font-size: 15px;
	font-weight: 800;
	color: var(--jiyyo-ink);
}
.jiyyo-cart-total__row.is-grand > span:last-child {
	font-size: 18px;
	font-weight: 800;
	letter-spacing: -.01em;
}
/* Drawer: the items fill the panel and the totals and Checkout sit at its bottom, staying
   there while a long cart scrolls. */
.jiyyo-cart-drawer .jiyyo-drawer__panel {
	display: flex;
	flex-direction: column;
}
.jiyyo-cart-drawer .jiyyo-cart-items {
	flex: 1 0 auto;
}
.jiyyo-cart-foot {
	position: sticky;
	bottom: -26px; /* the panel's bottom padding */
	margin: 0 -22px -26px;
	padding: 0 22px 18px;
	background: var(--jiyyo-surface);
}
.jiyyo-cart-foot:not(:has(> :not([hidden]))) {
	padding-bottom: 0; /* empty cart: nothing to pin */
}
.jiyyo-drawer .jiyyo-cart-item:last-child {
	border-bottom: 0; /* the totals' hairline is the only divider */
}

/* ── Card action row: Add and the −/+ stepper are the same box ────────── */
/* Porto's .button rules were stretching Add past its 38px; pin both controls to
   one height so swapping Add ↔ stepper doesn't shift the card. */
.product-content > .jiyyo-commerce-box .jiyyo-qty-and-cart {
	height: 44px;
}
.product-content > .jiyyo-commerce-box .jiyyo-add-to-cart,
.product-content > .jiyyo-commerce-box .jiyyo-stepper {
	box-sizing: border-box;
	height: 44px !important;
	min-height: 44px !important;
	max-height: 44px !important;
	margin: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	line-height: 1 !important;
	border-radius: 10px !important;
}
.product-content > .jiyyo-commerce-box .jiyyo-stepper button {
	height: 44px;
	width: 44px;
}

/* ── Stock limit reached: muted + and a note in the cart ──────────────── */
.jiyyo-stepper.is-maxed [data-jiyyo-qty-inc] {
	opacity: .35;
	cursor: not-allowed;
	background: transparent !important;
	color: inherit !important;
}
.jiyyo-cart-item-limit {
	font-size: 12px;
	font-weight: 600;
	color: var(--jiyyo-secondary-text);
}

/* ── Cart lines over available stock ─────────────────────────────────── */
.jiyyo-cart-item.is-over .jiyyo-cart-item-limit,
.jiyyo-cart-item.is-unavailable .jiyyo-cart-item-limit {
	color: var(--jiyyo-bad);
}
.jiyyo-cart-item.is-over {
	background: var(--jiyyo-bad-weak);
	border-radius: 10px;
	box-shadow: 0 0 0 6px var(--jiyyo-bad-weak);
}
.jiyyo-cart-item.is-unavailable .jiyyo-cart-item-thumb,
.jiyyo-cart-item.is-unavailable .jiyyo-cart-item-name,
.jiyyo-cart-item.is-unavailable .jiyyo-cart-item-calc,
.jiyyo-cart-item.is-unavailable .jiyyo-cart-item-total {
	opacity: .5;
}
.jiyyo-cart-fix {
	align-self: flex-start;
	margin-top: 4px;
	padding: 4px 10px;
	border: 1px solid var(--jiyyo-bad);
	border-radius: 7px;
	background: var(--jiyyo-surface);
	color: var(--jiyyo-bad);
	font-size: 12.5px;
	font-weight: 700;
	cursor: pointer;
}
.jiyyo-cart-fix:hover:not(:disabled) {
	background: var(--jiyyo-bad);
	color: #ffffff;
}
.jiyyo-cart-fix:disabled {
	opacity: .5;
	cursor: progress;
}
.jiyyo-cart-alert {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 8px;
	padding: 10px 12px;
	border-radius: 10px;
	background: var(--jiyyo-bad-weak);
	color: var(--jiyyo-bad);
	font-size: 13px;
	font-weight: 600;
}
.jiyyo-cart-alert .jiyyo-cart-fix {
	margin-top: 0;
	flex: none;
}

/* ── Search button + instant suggestions ─────────────────────────────── */
.jiyyo-search {
	padding-right: 5px;
}
.jiyyo-search__btn {
	/* Quiet Enter-key icon, not a button that competes with Log in / Cart. Mostly
	   there for phones and mouse users; Enter is the main way to search. */
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	border-radius: 8px;
	background: transparent;
	color: var(--jiyyo-faint);
	cursor: pointer;
	transition: color .15s ease, background .15s ease;
}
.jiyyo-search__btn svg {
	width: 17px;
	height: 17px;
}
.jiyyo-search:focus-within .jiyyo-search__btn,
.jiyyo-search__btn:hover {
	color: var(--jiyyo-accent-text);
	background: var(--jiyyo-accent-weak);
}
.jiyyo-search__btn:focus-visible {
	outline: 2px solid var(--jiyyo-accent);
	outline-offset: 2px;
}
.jiyyo-search__suggest {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	z-index: 9995;
	margin: 0;
	padding: 6px;
	list-style: none;
	background: var(--jiyyo-surface);
	border: 1px solid var(--jiyyo-line);
	border-radius: 12px;
	box-shadow: var(--jiyyo-shadow);
	max-height: 360px;
	overflow-y: auto;
}
.jiyyo-search__suggest[hidden] {
	display: none !important;
}
.jiyyo-search__suggest li {
	margin: 0;
}
.jiyyo-search__suggest a {
	display: flex;
	flex-direction: column;
	gap: 1px;
	padding: 8px 10px;
	border-radius: 8px;
	color: var(--jiyyo-ink);
	text-decoration: none;
}
.jiyyo-search__suggest a:hover,
.jiyyo-search__suggest .is-active a {
	background: var(--jiyyo-accent-weak);
}
.jiyyo-search__name {
	font-size: 14.5px;
	font-weight: 700;
}
.jiyyo-search__meta {
	font-size: 12.5px;
	color: var(--jiyyo-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.jiyyo-search__suggest mark {
	background: none;
	color: var(--jiyyo-accent-text);
	font-weight: 800;
	padding: 0;
}
.jiyyo-search__empty {
	padding: 10px;
	font-size: 13px;
	color: var(--jiyyo-muted);
}

/* ── Sidebar "Show N more" ────────────────────────────────────────────── */
.jiyyo-filters__more summary {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 2px;
	padding: 6px 10px;
	list-style: none;
	font-size: 13.5px;
	font-weight: 700;
	color: var(--jiyyo-accent-text);
	cursor: pointer;
	border-radius: 8px;
}
.jiyyo-filters__more summary::-webkit-details-marker {
	display: none;
}
.jiyyo-filters__more summary::after {
	content: "";
	width: 7px;
	height: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	transition: transform .15s ease;
}
.jiyyo-filters__more[open] summary::after {
	transform: rotate(-135deg) translateY(-1px);
}
.jiyyo-filters__more summary:hover {
	background: var(--jiyyo-accent-weak);
}
.jiyyo-filters__more summary:focus-visible {
	outline: 2px solid var(--jiyyo-accent);
	outline-offset: 2px;
}
.jiyyo-filters__more-open,
.jiyyo-filters__more[open] .jiyyo-filters__more-closed {
	display: none;
}
.jiyyo-filters__more[open] .jiyyo-filters__more-open {
	display: inline;
}
.jiyyo-filters__more[open] summary {
	order: 2;
}
.jiyyo-filters__more[open] {
	display: flex;
	flex-direction: column;
}
.jiyyo-filters__more[open] > .jiyyo-filters__list {
	order: 1;
}
@media (max-width: 991px) {
	/* Phones/tablets: filters are a horizontal chip row — show everything inline. */
	.jiyyo-filters__more {
		display: contents;
	}
	.jiyyo-filters__more summary {
		display: none;
	}
	.jiyyo-filters__more > .jiyyo-filters__list {
		display: flex !important;
	}
}

/* ── Top bar stays put while scrolling ───────────────────────────────── */
/* Sticks right under the site's own fixed header; jiyyo-commerce.js measures that
   header (--jiyyo-sticky-top) and the bar (--jiyyo-stack-top, used by the sidebar and
   the docked cart so they sit below the bar). Compact while stuck. */
.jiyyo-account-bar {
	position: sticky;
	/* 8px below the pinned edge so the whole card, top border included, stays visible */
	top: calc(var(--jiyyo-sticky-top, 0px) + 8px);
	z-index: 90;
	transition: padding .15s ease, box-shadow .15s ease;
}
.jiyyo-account-bar.is-stuck {
	/* No size change when pinned: shrinking the bar here moved the content below it,
	   Chrome's scroll anchoring shifted the page to compensate, which unpinned the bar,
	   which grew it back — a loop that made the bar shake at the pin point. */
	/* second shadow fills the 8px gap above with the page background, so the grid
	   doesn't peek through as it scrolls under the bar */
	box-shadow: 0 8px 20px -12px rgba(15, 40, 60, .35), 0 -9px 0 0 var(--jiyyo-surface);
}
@media (max-width: 767px) {
	/* Phones: the bar wraps to two rows — too tall to pin; the pinned cart button
	   already covers the cart there. */
	.jiyyo-account-bar {
		position: static;
	}
}
@media (prefers-reduced-motion: reduce) {
	.jiyyo-account-bar {
		transition: none;
	}
}

/* Product page: Add to cart at the stock limit */
.jiyyo-add-to-cart.is-maxed {
	background: var(--jiyyo-raise) !important;
	color: var(--jiyyo-faint) !important;
	cursor: not-allowed;
}
.jiyyo-buybox-limit {
	margin: 8px 0 0;
	font-size: 13px;
	font-weight: 600;
	color: var(--jiyyo-secondary-text);
}

/* ── Infinite scroll (jiyyo-commerce.js) ─────────────────────────────── */
/* Page links stay in the HTML for crawlers and no-JS visitors; hidden only while
   infinite scroll is running. */
body.jiyyo-infinite .shop-loop-after .woocommerce-pagination {
	display: none !important;
}
.jiyyo-loadmore {
	display: flex;
	justify-content: center;
	min-height: 56px;
	padding: 18px 0 8px;
}
.jiyyo-loadmore__status {
	display: none;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	color: var(--jiyyo-muted);
}
.jiyyo-loadmore.is-loading .jiyyo-loadmore__status {
	display: inline-flex;
}
.jiyyo-loadmore .jiyyo-spinner {
	display: inline-block;
	border-color: var(--jiyyo-line);
	border-top-color: var(--jiyyo-accent);
}
.jiyyo-loadmore__btn {
	height: 42px;
	padding: 0 20px;
	border: 1px solid var(--jiyyo-line);
	border-radius: 10px;
	background: var(--jiyyo-surface);
	color: var(--jiyyo-accent-text);
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
}
.jiyyo-loadmore__btn[hidden] {
	display: none;
}

/* ── Clear cart: link + confirmation ─────────────────────────────────── */
.jiyyo-cart-panel__meta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}
.jiyyo-cart-clear {
	/* Outlined red pill: red border, icon and text, no fill */
	display: inline-flex;
	align-items: center;
	gap: 5px;
	height: 28px;
	padding: 0 10px 0 8px;
	border: 1.5px solid #dc2626; /* bright error red; still 4.8:1 on white for the text */
	border-radius: 999px;
	background: transparent;
	color: #dc2626;
	font: inherit;
	font-size: 12.5px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	cursor: pointer;
	transition: color .15s ease, border-color .15s ease, background .15s ease;
}
.jiyyo-cart-clear svg {
	width: 14px;
	height: 14px;
	flex: none;
}
.jiyyo-cart-clear:hover {
	background: #fef2f2;
}
.jiyyo-cart-clear:focus-visible {
	outline: 2px solid var(--jiyyo-accent);
	outline-offset: 2px;
}
.jiyyo-cart-clear[hidden] {
	display: none !important;
}
/* Drawer: beside the heading, left of the close button (the panel is already
   absolutely positioned, so it anchors this) */
.jiyyo-cart-clear--drawer {
	position: absolute;
	top: 22px;
	right: 62px;
}

.jiyyo-confirm .jiyyo-modal__panel {
	max-width: 380px;
	margin-top: 18vh;
}
.jiyyo-confirm__icon {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	margin-bottom: 16px;
	border-radius: 14px;
	background: var(--jiyyo-bad-weak);
	color: var(--jiyyo-bad);
}
.jiyyo-confirm__icon svg {
	width: 24px;
	height: 24px;
}
.jiyyo-confirm h3 {
	margin: 0 0 6px;
	font-size: 21px;
	font-weight: 800;
	letter-spacing: -.015em;
	line-height: 1.2;
	color: var(--jiyyo-ink);
}
.jiyyo-confirm .jiyyo-modal__panel > p {
	margin: 0 0 20px;
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--jiyyo-muted);
}
.jiyyo-confirm .jiyyo-form-error {
	margin: -6px 0 16px;
}
.jiyyo-confirm__actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}
.jiyyo-confirm__cancel {
	height: 50px;
	border: 1px solid var(--jiyyo-line);
	border-radius: 12px;
	background: var(--jiyyo-surface);
	color: var(--jiyyo-ink);
	font: inherit;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
}
.jiyyo-confirm__cancel:hover {
	background: var(--jiyyo-raise);
}
.jiyyo-confirm .jiyyo-confirm__ok {
	background: var(--jiyyo-bad);
}
.jiyyo-confirm__cancel:focus-visible,
.jiyyo-confirm .jiyyo-confirm__ok:focus-visible {
	outline: 2px solid var(--jiyyo-accent);
	outline-offset: 3px;
}

/* ==========================================================================
   Product page (product-page.php)
   Selectors start with body.jiyyo-catalog.single-product #main > .container where
   they must out-rank the older product-page rules in porto-child/style.css.
   ========================================================================== */

body.jiyyo-catalog.single-product #main > .container {
	padding-top: 0; /* style.css adds 80px above the bar */
}
body.jiyyo-catalog.single-product .product-summary-wrap {
	margin-top: 22px;
}
body.jiyyo-catalog.single-product .product-summary-wrap > .row {
	align-items: flex-start;
}

/* Gallery: capped so name, prices, Add and facts share one laptop screen; pinned
   while the buy column scrolls. */
body.jiyyo-catalog.single-product .product-summary-wrap .summary-before {
	position: sticky;
	top: var(--jiyyo-stack-top, 110px);
	max-width: 560px;
}
body.jiyyo-catalog.single-product #main > .container .product-summary-wrap .summary-before .woocommerce-product-gallery .product-images {
	height: auto;
	aspect-ratio: 1;
	background: #ffffff;
	border: 1px solid var(--jiyyo-line);
	border-radius: 16px;
	overflow: hidden;
}
body.jiyyo-catalog.single-product #main > .container .product-summary-wrap .summary-before .woocommerce-product-gallery .product-images .product-image-slider .owl-item {
	padding: 12px;
}
/* Photos with a real background (marked jiyyo-fill in images.php) fill the frame
   edge to edge, cropping what doesn't fit the square; white packshots keep the padding. */
body.jiyyo-catalog.single-product #main > .container .product-summary-wrap .summary-before .woocommerce-product-gallery .product-images .product-image-slider .owl-item:has(> .jiyyo-fill) {
	padding: 0;
}
body.jiyyo-catalog.single-product .product-image-slider .img-thumbnail.jiyyo-fill {
	aspect-ratio: 1;
	padding: 0;
	border: 0;
}
body.jiyyo-catalog.single-product .product-image-slider .img-thumbnail.jiyyo-fill .inner {
	height: 100%;
}
body.jiyyo-catalog.single-product .product-image-slider .img-thumbnail.jiyyo-fill img {
	width: 100%;
	height: 100% !important;
	max-width: none;
	object-fit: cover;
}
body.jiyyo-catalog.single-product .product-thumbs-slider .img-thumbnail {
	border: 1px solid var(--jiyyo-line);
	border-radius: 10px;
	overflow: hidden;
}
body.jiyyo-catalog.single-product .product-thumbs-slider .owl-item.selected .img-thumbnail,
body.jiyyo-catalog.single-product .product-thumbs-slider .img-thumbnail.selected {
	border: 2px solid var(--jiyyo-accent);
}

/* Name block */
body.jiyyo-catalog.single-product .summary.entry-summary {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
body.jiyyo-catalog.single-product .summary.entry-summary > * {
	margin: 0;
}
.jiyyo-pp-eyebrow {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}
.jiyyo-pp-form {
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--jiyyo-accent-text);
}
.jiyyo-pp-cat {
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--jiyyo-raise);
	color: var(--jiyyo-muted) !important;
	font-size: 12.5px;
	font-weight: 600;
	text-decoration: none !important;
}
.jiyyo-pp-cat:hover {
	background: var(--jiyyo-accent-weak);
	color: var(--jiyyo-accent-text) !important;
}
body.jiyyo-catalog.single-product #main > .container .product-summary-wrap .summary.entry-summary .product_title {
	width: auto; /* Porto narrows it for the ‹ › product arrows, which are gone */
	margin: -6px 0 0;
	font-size: clamp(30px, 3.2vw, 42px);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -.02em;
	color: var(--jiyyo-ink);
	text-wrap: balance;
}
.jiyyo-pp-comp {
	margin-top: -8px !important;
	font-size: 17px;
	font-weight: 600;
	color: var(--jiyyo-ink);
}

/* Buy box */
.jiyyo-single-buybox.jiyyo-pp-buy {
	display: grid;
	gap: 16px;
	max-width: none;
	margin: 0;
	padding: 20px;
	border-radius: 16px;
}
.jiyyo-pp-buy__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}
/* Out of stock: a clear notice in place of quantity + Add to cart. */
.jiyyo-pp-demand {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 18px;
	border: 1px solid color-mix(in srgb, var(--jiyyo-secondary) 45%, transparent);
	border-radius: 12px;
	background: var(--jiyyo-secondary-weak);
	color: var(--jiyyo-secondary-text);
}
.jiyyo-pp-demand svg {
	width: 28px;
	height: 28px;
	flex: none;
}
.jiyyo-pp-demand div {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.jiyyo-pp-demand strong {
	font-size: 17px;
	font-weight: 800;
	line-height: 1.3;
}
.jiyyo-pp-demand span {
	font-size: 14px;
	line-height: 1.45;
	color: var(--jiyyo-ink);
}
.jiyyo-pp-stock {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--jiyyo-ok-weak);
	color: var(--jiyyo-ok);
	font-size: 12.5px;
	font-weight: 700;
}
.jiyyo-pp-stock::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: currentColor;
}
.jiyyo-pp-stock.is-high {
	background: var(--jiyyo-secondary-weak);
	color: var(--jiyyo-secondary-text);
}
.jiyyo-pp-buy__note {
	font-size: 12.5px;
	color: var(--jiyyo-muted);
}
.jiyyo-pp-prices {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 12px 22px;
	font-variant-numeric: tabular-nums;
}
.jiyyo-pp-price {
	display: grid;
	gap: 2px;
	justify-items: start;
}
.jiyyo-pp-price + .jiyyo-pp-price {
	padding-left: 22px;
	border-left: 1px solid var(--jiyyo-line);
}
.jiyyo-pp-price__label {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--jiyyo-muted);
}
.jiyyo-pp-price__amount {
	font-size: 30px;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -.01em;
	color: var(--jiyyo-ink); /* MRP at full weight: it's what the buyer resells at */
}
.jiyyo-pp-price.is-sale .jiyyo-pp-price__label,
.jiyyo-pp-price.is-sale .jiyyo-pp-price__amount {
	color: var(--jiyyo-accent-text);
}
.jiyyo-pp-price__sub {
	font-size: 12.5px;
	color: var(--jiyyo-muted);
}
.jiyyo-pp-margin {
	margin-top: 2px;
	padding: 2px 9px;
	border-radius: 7px;
	background: var(--jiyyo-ok-weak);
	color: var(--jiyyo-ok);
	font-size: 12.5px;
	font-weight: 700;
	white-space: nowrap;
}
.jiyyo-pp-act.jiyyo-qty-and-cart {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 10px;
	width: auto;
	height: auto;
}
.jiyyo-pp-qty {
	display: inline-flex;
	align-items: center;
	height: 50px;
	border: 1px solid var(--jiyyo-line-strong);
	border-radius: 12px;
	background: var(--jiyyo-surface);
	overflow: hidden;
}
.jiyyo-pp-qty button {
	width: 42px;
	height: 100%;
	padding: 0;
	border: 0;
	background: none;
	color: var(--jiyyo-accent-text);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
}
.jiyyo-pp-qty button:hover:not(:disabled) {
	background: var(--jiyyo-accent-weak);
}
.jiyyo-pp-qty button:disabled {
	color: var(--jiyyo-faint);
	cursor: not-allowed;
}
.jiyyo-pp-qty .jiyyo-qty-input {
	width: 46px;
	height: 100%;
	border: 0;
	border-radius: 0;
	font-weight: 700;
	-moz-appearance: textfield;
}
.jiyyo-pp-qty .jiyyo-qty-input::-webkit-outer-spin-button,
.jiyyo-pp-qty .jiyyo-qty-input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.jiyyo-pp-act .jiyyo-add-to-cart {
	height: 50px !important;
	margin: 0 !important;
	border-radius: 12px !important;
	font-size: 16px !important;
	font-weight: 800 !important;
}
/* Already in the cart: the cart's own − N + stepper, then "In your cart · View cart" */
.jiyyo-pp-act .jiyyo-stepper {
	height: 50px;
	border-radius: 12px;
}
.jiyyo-pp-act .jiyyo-stepper button {
	width: 46px;
	height: 50px;
	border-radius: 12px;
}
.jiyyo-pp-act .jiyyo-stepper output {
	min-width: 40px;
	font-size: 17px;
}
.jiyyo-pp-viewcart {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1px;
	height: 50px;
	padding: 0 16px;
	border: 1.5px solid var(--jiyyo-accent);
	border-radius: 12px;
	background: var(--jiyyo-surface);
	color: var(--jiyyo-accent-text);
	font: inherit;
	font-size: 15px;
	font-weight: 800;
	line-height: 1.15;
	cursor: pointer;
}
.jiyyo-pp-viewcart:hover {
	background: var(--jiyyo-accent-weak);
}
.jiyyo-pp-viewcart:focus-visible {
	outline: 2px solid var(--jiyyo-accent);
	outline-offset: 2px;
}
.jiyyo-pp-viewcart__state {
	font-size: 11.5px;
	font-weight: 700;
	color: var(--jiyyo-ok);
}
.jiyyo-pp-viewcart__state::before {
	content: "✓ ";
}
.jiyyo-pp-mini__add.is-in-cart {
	background: var(--jiyyo-surface);
	border: 1.5px solid var(--jiyyo-accent);
	color: var(--jiyyo-accent-text);
}
.jiyyo-pp-buy .jiyyo-buybox-limit {
	margin: -6px 0 0;
}

/* Key facts */
.jiyyo-pp-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0;
	border-top: 1px solid var(--jiyyo-line);
}
.jiyyo-pp-facts > div {
	display: grid;
	gap: 1px;
	padding: 11px 16px 11px 0;
	border-bottom: 1px solid var(--jiyyo-line);
}
.jiyyo-pp-facts dt {
	font-size: 12px;
	font-weight: 600;
	color: var(--jiyyo-muted);
}
.jiyyo-pp-facts dd {
	margin: 0;
	font-size: 14.5px;
	font-weight: 600;
	color: var(--jiyyo-ink);
}
.jiyyo-pp-facts a {
	color: var(--jiyyo-accent-text);
}

/* Section tabs, pinned under the top bar */
.jiyyo-pp-details {
	margin-top: 44px;
	max-width: 100%;
}
.jiyyo-pp-tabs {
	position: sticky;
	top: calc(var(--jiyyo-stack-top, 110px) - 12px);
	z-index: 40;
	display: flex;
	align-items: center;
	gap: 12px;
	background: var(--jiyyo-surface);
	border-bottom: 1px solid var(--jiyyo-line);
}
.jiyyo-pp-tabs__nav {
	flex: 1;
	min-width: 0;
	display: flex;
	gap: 2px;
	overflow-x: auto;
	scrollbar-width: none;
}
.jiyyo-pp-tabs__nav::-webkit-scrollbar {
	display: none;
}
.jiyyo-pp-tabs__nav a {
	flex: none;
	padding: 14px 12px 12px;
	border-bottom: 2px solid transparent;
	color: var(--jiyyo-muted) !important;
	font-size: 14.5px;
	font-weight: 600;
	text-decoration: none !important;
	white-space: nowrap;
}
.jiyyo-pp-tabs__nav a:hover {
	color: var(--jiyyo-ink) !important;
}
.jiyyo-pp-tabs__nav a[aria-current="true"] {
	color: var(--jiyyo-accent-text) !important;
	border-bottom-color: var(--jiyyo-accent);
}
.jiyyo-pp-mini {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: none;
	padding-left: 8px;
}
.jiyyo-pp-mini[hidden] {
	display: none !important;
}
.jiyyo-pp-mini__name {
	font-size: 14px;
	font-weight: 700;
	color: var(--jiyyo-ink);
}
.jiyyo-pp-mini__price {
	font-weight: 800;
	color: var(--jiyyo-accent-text);
	font-variant-numeric: tabular-nums;
}
.jiyyo-pp-mini__add {
	height: 38px;
	padding: 0 16px;
	border: 0;
	border-radius: 10px;
	background: var(--jiyyo-secondary);
	color: var(--jiyyo-on-secondary);
	font: inherit;
	font-size: 14px;
	font-weight: 800;
	cursor: pointer;
}

/* Sections */
.jiyyo-pp-sec {
	max-width: 820px;
	padding: 32px 0 28px;
	border-bottom: 1px solid var(--jiyyo-line);
	scroll-margin-top: calc(var(--jiyyo-stack-top, 110px) + 56px);
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--jiyyo-ink);
}
.jiyyo-pp-sec > h2 {
	margin: 0 0 12px;
	font-size: 22px !important;
	font-weight: 800;
	letter-spacing: -.01em;
	color: var(--jiyyo-ink);
}
.jiyyo-pp-sec h3 {
	margin: 16px 0 6px;
	padding: 0;
	border: 0;
	font-size: 16px !important;
	font-weight: 700;
	line-height: 1.35;
	color: var(--jiyyo-ink);
}
.jiyyo-pp-sec p,
.jiyyo-pp-sec div {
	max-width: 70ch;
}
.jiyyo-pp-sec p {
	margin: 0 0 10px;
	color: var(--jiyyo-ink);
}
.jiyyo-pp-sec ul {
	margin: 6px 0 10px;
	padding-left: 20px;
}
.jiyyo-pp-sec li {
	margin: 0 0 6px;
}
.jiyyo-pp-lead,
.jiyyo-pp-lead p {
	font-size: 16.5px;
}
.jiyyo-pp-more summary {
	display: inline-block;
	margin-top: 4px;
	color: var(--jiyyo-accent-text);
	font-weight: 700;
	cursor: pointer;
}
.jiyyo-pp-more[open] summary {
	margin-bottom: 10px;
}
.jiyyo-pp-callout {
	padding: 14px 16px;
	border-radius: 12px;
	background: var(--jiyyo-accent-weak);
}
.jiyyo-pp-callout p:last-child {
	margin-bottom: 0;
}
.jiyyo-pp-storage {
	display: inline-block;
	padding: 10px 14px;
	border: 1px solid var(--jiyyo-line);
	border-radius: 12px;
	font-weight: 700;
}

.jiyyo-pp-safety {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	max-width: 820px !important;
}
.jiyyo-pp-safety__item {
	padding: 14px 16px;
	border: 1px solid var(--jiyyo-line);
	border-radius: 12px;
}
.jiyyo-pp-sec .jiyyo-pp-safety__item h3 {
	margin: 0 0 4px;
	font-size: 15.5px !important;
}
.jiyyo-pp-safety__item p,
.jiyyo-pp-safety__item div {
	margin: 0;
	font-size: 14px;
	color: var(--jiyyo-muted);
}

.jiyyo-pp-faq {
	display: grid;
	gap: 8px;
}
.jiyyo-pp-faq details {
	border: 1px solid var(--jiyyo-line);
	border-radius: 12px;
	background: var(--jiyyo-surface);
}
.jiyyo-pp-faq summary {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 16px;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}
.jiyyo-pp-faq summary::-webkit-details-marker {
	display: none;
}
.jiyyo-pp-faq summary::after {
	content: "+";
	flex: none;
	font-size: 20px;
	line-height: 1;
	color: var(--jiyyo-accent-text);
}
.jiyyo-pp-faq details[open] summary::after {
	content: "–";
}
.jiyyo-pp-faq__a {
	padding: 0 16px 14px;
	color: var(--jiyyo-muted);
}
.jiyyo-pp-faq__a p,
.jiyyo-pp-faq__a div {
	color: var(--jiyyo-muted);
}

.jiyyo-pp-disclaimer {
	max-width: 820px;
	margin: 26px 0 0;
	padding: 14px 16px;
	border-radius: 12px;
	background: var(--jiyyo-raise);
	font-size: 13px;
	color: var(--jiyyo-muted);
}
.jiyyo-pp-disclaimer h3 {
	display: none;
}
.jiyyo-pp-disclaimer p {
	margin: 0 0 6px;
	font-size: 13px;
	color: var(--jiyyo-muted);
}

/* Related */
.jiyyo-pp-related {
	margin: 48px 0 20px;
}
.jiyyo-pp-related__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	margin-bottom: 16px;
}
.jiyyo-pp-related__head h2 {
	margin: 0;
	font-size: 22px !important;
	font-weight: 800;
	color: var(--jiyyo-ink);
}
.jiyyo-pp-related__head a {
	color: var(--jiyyo-accent-text);
	font-weight: 600;
	font-size: 14.5px;
}
body.jiyyo-catalog .jiyyo-pp-related ul.products {
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

@media (max-width: 991px) {
	body.jiyyo-catalog.single-product .product-summary-wrap .summary-before {
		position: static;
		margin: 0 auto 20px;
	}
	.jiyyo-pp-mini {
		display: none !important;
	}
	body.jiyyo-catalog .jiyyo-pp-related ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}
@media (max-width: 575px) {
	.jiyyo-pp-price__amount {
		font-size: 24px;
	}
	.jiyyo-pp-price + .jiyyo-pp-price {
		padding-left: 16px;
	}
	.jiyyo-pp-facts,
	.jiyyo-pp-safety {
		grid-template-columns: 1fr;
	}
}

/* ── The pharmacy's footer line (ui-shell.php) ──────────────────────────── */
/* In place of the site's big footer on pharmacy pages: the copyright and the policies. */
.jiyyo-legal {
	margin-top: 32px;
	border-top: 1px solid var(--jiyyo-line);
	background: var(--jiyyo-surface);
}
.jiyyo-legal__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 24px;
	padding-top: 18px;
	padding-bottom: 22px;
	color: var(--jiyyo-muted);
	font-size: 13px;
}
.jiyyo-legal__links {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 20px;
}
.jiyyo-legal__links a {
	color: var(--jiyyo-muted);
	text-decoration: none;
}
.jiyyo-legal__links a:hover,
.jiyyo-legal__links a:focus-visible {
	color: var(--jiyyo-accent-text);
	text-decoration: underline;
}
