/*
 * Or-bio — component styles on top of theme.json.
 *
 * Rule of thumb: tokens (colour, type, spacing, radius) come from theme.json presets;
 * this file only maps the design-system components onto WordPress / WooCommerce markup.
 * Class prefix: .orbio-  ·  every colour is a --wp--preset--color--* token.
 */

:root {
	--ob-surface: var(--wp--preset--color--surface);
	--ob-card: var(--wp--preset--color--surface-card);
	--ob-sand: var(--wp--preset--color--surface-sand);
	--ob-sage: var(--wp--preset--color--surface-sage);
	--ob-ink: var(--wp--preset--color--ink);
	--ob-muted: var(--wp--preset--color--ink-muted);
	--ob-cedar: var(--wp--preset--color--cedar);
	--ob-cedar-hover: var(--wp--preset--color--cedar-hover);
	--ob-on-cedar: var(--wp--preset--color--on-cedar);
	--ob-gold: var(--wp--preset--color--gold);
	--ob-gold-ink: var(--wp--preset--color--gold-ink);
	--ob-on-gold: var(--wp--preset--color--on-gold);
	--ob-terracotta: var(--wp--preset--color--terracotta);
	--ob-on-terracotta: var(--wp--preset--color--on-terracotta);
	--ob-line: var(--wp--preset--color--line);
	--ob-line-strong: var(--wp--preset--color--line-strong);
	--ob-success: var(--wp--preset--color--success);
	--ob-error: var(--wp--preset--color--error);
	--ob-r-sm: var(--wp--custom--radius--sm);
	--ob-r-md: var(--wp--custom--radius--md);
	--ob-r-pill: var(--wp--custom--radius--pill);
	--ob-r-arch: var(--wp--custom--radius--arch);
	--ob-s1: var(--wp--preset--spacing--1);
	--ob-s2: var(--wp--preset--spacing--2);
	--ob-s3: var(--wp--preset--spacing--3);
	--ob-s4: var(--wp--preset--spacing--4);
	--ob-s6: var(--wp--preset--spacing--6);
	--ob-s8: var(--wp--preset--spacing--8);
	--ob-s12: var(--wp--preset--spacing--12);
	--ob-s16: var(--wp--preset--spacing--16);
	--ob-sans: var(--wp--preset--font-family--sans);
	--ob-display: var(--wp--preset--font-family--display);
}

/* ---------- Base ---------- */
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--ob-sand); color: var(--ob-ink); }
img { height: auto; }
.price, .woocommerce-Price-amount, .wc-block-components-product-price, .wc-block-formatted-money-amount { font-variant-numeric: tabular-nums; }

/* One focus ring everywhere: 2px cedar, 2px offset (≥ 8:1 on every surface). */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--ob-cedar);
	outline-offset: 2px;
}
.orbio-footer :where(a, button):focus-visible { outline-color: var(--ob-gold); }

@media (min-width: 782px) {
	:root { --wp--style--root--padding-left: var(--ob-s8); --wp--style--root--padding-right: var(--ob-s8); }
}

/* Sections breathe: space-12 mobile, space-16 desktop. */
.orbio-main { padding-bottom: var(--ob-s16); }
.orbio-main > * + * { margin-block-start: var(--ob-s12); }
@media (min-width: 782px) { .orbio-main > * + * { margin-block-start: var(--ob-s16); } }
.orbio-archive > * + *, .orbio-product > * + *, .orbio-page > * + * { margin-block-start: var(--ob-s6); }
.orbio-center { text-align: center; }
.orbio-center .orbio-search { margin-inline: auto; max-width: 480px; }
.orbio-lead { font-size: 18px; line-height: 1.6; color: var(--ob-muted); max-width: var(--wp--custom--measure); }

/* Block style: overline */
.is-style-overline {
	font-family: var(--ob-sans);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 16px;
	text-transform: uppercase;
	color: var(--ob-gold-ink);
	margin-bottom: calc(-1 * var(--ob-s3));
}

/* Block style: arch — the Moroccan doorway. Category tiles and hero imagery only. */
.is-style-arch img,
.is-style-arch.wp-block-cover,
.is-style-arch.wp-block-post-featured-image img {
	border-radius: var(--ob-r-arch) var(--ob-r-arch) 0 0;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	width: 100%;
}

/* Block style: card */
.is-style-card { background: var(--ob-card); border-radius: var(--ob-r-md); padding: var(--ob-s6); }

/* Block style: gold check list */
.is-style-checks { list-style: none; padding-left: 0; }
.is-style-checks li { position: relative; padding-left: 28px; margin-block: var(--ob-s2); }
.is-style-checks li::before {
	content: ""; position: absolute; left: 0; top: 0.2em; width: 18px; height: 18px;
	background: var(--ob-gold-ink);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4.5 4.5L19 7'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4.5 4.5L19 7'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- Buttons ---------- */
.wp-element-button, .wp-block-button__link { transition: background-color .15s, border-color .15s, color .15s; }
.is-style-outline > .wp-block-button__link,
.wp-block-button__link.is-style-outline {
	background: transparent;
	color: var(--ob-ink);
	border: 1px solid var(--ob-line-strong);
}
.is-style-outline > .wp-block-button__link:hover { background: transparent; color: var(--ob-ink); border-color: var(--ob-ink); }
.orbio-link-quiet a { color: var(--ob-cedar); font-weight: 500; text-underline-offset: 4px; }

/* ---------- Announcement + header ---------- */
.orbio-announce { position: relative; padding-block: var(--ob-s2); padding-inline: var(--ob-s12) !important; text-align: center; }
.orbio-announce__close {
	position: absolute; top: 50%; right: var(--ob-s2); transform: translateY(-50%);
	display: grid; place-items: center; width: 32px; height: 32px; padding: 0;
	border: 0; border-radius: var(--ob-r-pill); background: none; color: inherit; cursor: pointer;
}
.orbio-announce__close:hover { background: color-mix(in srgb, var(--ob-on-gold) 12%, transparent); }
/* Hidden once the visitor closes it (class set before first paint, see inc/assets.php). */
.orbio-announce-hidden .orbio-announce { display: none !important; }
/* Messages stacked in one grid cell: the bar is as tall as the longest; the active one slides in from below. */
.orbio-announce__list { display: grid; overflow: hidden; margin: 0; padding: 0; list-style: none; font-weight: 500; letter-spacing: .04em; }
.orbio-announce__item {
	grid-area: 1 / 1; opacity: 0; transform: translateY(100%); visibility: hidden;
	transition: transform .5s ease, opacity .5s ease, visibility 0s .5s;
}
.orbio-announce__item.is-active { opacity: 1; transform: none; visibility: visible; transition-delay: 0s; }
.orbio-announce__item.is-leaving { opacity: 0; transform: translateY(-100%); visibility: visible; }
@media (prefers-reduced-motion: reduce) { .orbio-announce__item { transform: none !important; transition: opacity .2s; } }

.orbio-site-header { position: sticky; top: 0; z-index: 50; }
.admin-bar .orbio-site-header { top: var(--wp-admin--admin-bar--height, 32px); }
.orbio-site-header .orbio-announce { display: flex; }
.orbio-header { border-bottom: 1px solid var(--ob-line); transition: box-shadow .2s; }
.orbio-header__bar { margin-block: 0 !important; }
.orbio-header__row { gap: var(--ob-s4); padding-block: var(--ob-s3); }
.orbio-header__actions { gap: var(--ob-s2); flex-shrink: 0; }
/* L’OR BIO logo (charter: lime icon, sand wordmark) — on the brown bar, in the drawer and footer. */
.orbio-logo { display: block; flex-shrink: 0; line-height: 0; border-radius: var(--ob-r-sm); }
.orbio-logo img { display: block; width: auto; height: 76px; }
.orbio-logo--drawer img { height: 56px; }
.orbio-logo--footer img { height: 96px; }
.orbio-header__bar :where(a, button, input):focus-visible { outline-color: var(--ob-gold); }

.orbio-search { flex: 1 1 auto; max-width: 480px; margin: 0 auto !important; }
.orbio-search .wp-block-search__inside-wrapper {
	height: 44px; padding: 0 0 0 var(--ob-s4) !important;
	border: 1px solid var(--ob-line-strong) !important; border-radius: var(--ob-r-sm);
	background: var(--ob-surface);
}
.orbio-search .wp-block-search__inside-wrapper:focus-within { border-color: var(--ob-cedar) !important; box-shadow: 0 0 0 1px var(--ob-cedar); }
.orbio-header__bar .orbio-search .wp-block-search__inside-wrapper { border-color: transparent !important; background: var(--ob-card); }
.orbio-header__bar .orbio-search .wp-block-search__inside-wrapper:focus-within { border-color: var(--ob-gold) !important; box-shadow: 0 0 0 2px var(--ob-gold); }
.orbio-search .wp-block-search__input { border: 0; background: none; font: 400 15px/20px var(--ob-sans); color: var(--ob-ink); padding: 0; }
.orbio-search .wp-block-search__input:focus { outline: none; }
.orbio-search .wp-block-search__input::placeholder { color: var(--ob-muted); }
.orbio-search .wp-block-search__button { background: none; color: var(--ob-ink); border: 0; padding: 0 var(--ob-s3); margin: 0; }
.orbio-search .wp-block-search__button:hover { background: none; color: var(--ob-cedar); }
.orbio-search .wp-block-search__button svg { fill: currentColor; width: 22px; height: 22px; }

/* Nav row: cedar "Menu" pill, then quick links with a gold underline on hover / current. */
/* Centred in the white band: horizontally, and vertically (no block-gap margin from WordPress, equal space above and below).
   On small screens it starts at the left and the links scroll sideways. */
.orbio-nav-row { gap: var(--ob-s6); align-items: center; justify-content: center; margin-block-start: 0 !important; padding-block: var(--ob-s1); }
.orbio-menu-btn {
	display: inline-flex; align-items: center; gap: var(--ob-s2); flex-shrink: 0;
	height: 40px; padding: 0 var(--ob-s4) 0 var(--ob-s3);
	border: 0; border-radius: var(--ob-r-pill); background: var(--ob-cedar); color: var(--ob-on-cedar);
	font: 500 15px/1 var(--ob-sans); letter-spacing: .02em; cursor: pointer;
	transition: background-color .15s;
}
.orbio-menu-btn:hover { background: var(--ob-cedar-hover); }
.orbio-nav { min-width: 0; overflow-x: auto; scrollbar-width: none; }
.orbio-nav::-webkit-scrollbar { display: none; }
.orbio-nav .wp-block-navigation__container { flex-wrap: nowrap; gap: var(--ob-s8); }
.orbio-nav .wp-block-navigation-item__content { padding-block: 14px var(--ob-s3); border-bottom: 2px solid transparent; /* 14 + 12 + 2px underline: text centred on the Menu button */ color: var(--ob-ink); white-space: nowrap; }
.orbio-nav .wp-block-navigation-item__content:hover,
.orbio-nav .current-menu-item > .wp-block-navigation-item__content,
.orbio-nav [aria-current="page"] { border-bottom-color: var(--ob-gold); }

/* Menu drawer: modal <dialog> sliding in from the left. */
.orbio-drawer {
	position: fixed; inset: 0 auto 0 0; margin: 0;
	width: min(380px, 88vw); max-width: none; height: 100dvh; max-height: none;
	padding: 0; border: 0; background: var(--ob-card); color: var(--ob-ink);
	overflow-y: auto; overscroll-behavior: contain;
	transform: translateX(-100%);
	transition: transform .3s ease, overlay .3s allow-discrete, display .3s allow-discrete;
}
.orbio-drawer[open] { transform: none; }
.orbio-drawer::backdrop { background: var(--wp--preset--color--overlay); opacity: 0; transition: opacity .3s, overlay .3s allow-discrete, display .3s allow-discrete; }
.orbio-drawer[open]::backdrop { opacity: 1; }
@starting-style {
	.orbio-drawer[open] { transform: translateX(-100%); }
	.orbio-drawer[open]::backdrop { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { .orbio-drawer, .orbio-drawer::backdrop { transition: none; } }
html:has(.orbio-drawer[open]) { overflow: hidden; }

.orbio-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: var(--ob-s3) var(--ob-s2) var(--ob-s3) var(--ob-s6); }
.orbio-drawer__close {
	display: grid; place-items: center; width: 44px; height: 44px; padding: 0;
	border: 0; border-radius: var(--ob-r-pill); background: none; color: var(--ob-ink); cursor: pointer;
}
.orbio-drawer__close:hover { background: var(--ob-sand); }
.orbio-drawer__list { list-style: none; margin: 0; padding: 0; }
.orbio-drawer__link {
	display: flex; align-items: center; gap: var(--ob-s3); min-height: 48px; padding: var(--ob-s2) var(--ob-s6);
	color: var(--ob-ink); text-decoration: none; font-size: 17px;
}
.orbio-drawer__link:hover { background: var(--ob-surface); }
.orbio-drawer__link--strong { font-weight: 600; }
.orbio-drawer__link--offer {
	background: var(--ob-terracotta); color: var(--ob-on-terracotta);
	font-weight: 600; letter-spacing: .08em; text-transform: uppercase; font-size: 15px;
}
.orbio-drawer__link--offer:hover { background: var(--ob-terracotta); text-decoration: underline; text-underline-offset: 4px; }
.orbio-drawer__label {
	margin: var(--ob-s4) var(--ob-s6) var(--ob-s1); padding-top: var(--ob-s4); border-top: 1px solid var(--ob-line);
	font-size: var(--wp--preset--font-size--caption); font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--ob-gold-ink);
}
.orbio-drawer__cat img { width: 36px; height: 45px; object-fit: cover; border-radius: var(--ob-r-arch) var(--ob-r-arch) 0 0; background: var(--ob-sand); }
.orbio-drawer__cat span { flex: 1; }
.orbio-drawer__chev { color: var(--ob-muted); transition: transform .15s; }
.orbio-drawer__cat:hover .orbio-drawer__chev { transform: translateX(3px); color: var(--ob-ink); }

.orbio-drawer__shortcuts { margin-top: var(--ob-s4); padding: var(--ob-s6) var(--ob-s6) var(--ob-s8); background: var(--ob-sage); }
.orbio-drawer__shortcuts-title { margin: 0 0 var(--ob-s4); font-family: var(--ob-display); font-size: 24px; line-height: 1.2; }
.orbio-drawer__account { display: flex; align-items: center; gap: var(--ob-s3); margin-bottom: var(--ob-s3); color: var(--ob-ink); text-decoration: none; }
.orbio-drawer__avatar { display: grid; place-items: center; width: 52px; height: 52px; border-radius: var(--ob-r-pill); background: var(--ob-card); flex-shrink: 0; }
.orbio-drawer__account small { display: block; font-size: 13px; color: var(--ob-muted); }
.orbio-drawer__account strong { font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.orbio-drawer__short { display: flex; align-items: center; gap: var(--ob-s3); min-height: 44px; color: var(--ob-ink); text-decoration: none; font-size: 15px; }
.orbio-drawer__short svg { color: var(--ob-cedar); flex-shrink: 0; }
.orbio-drawer__short:hover { text-decoration: underline; text-underline-offset: 4px; }

/* Account + mini-cart icons: 44px targets, sand disc on hover. */
.wp-block-woocommerce-customer-account a,
.wc-block-mini-cart__button {
	display: grid; place-items: center; width: 44px; height: 44px; padding: 0 !important;
	border-radius: var(--ob-r-pill); color: var(--ob-ink);
}
.wp-block-woocommerce-customer-account a:hover, .wc-block-mini-cart__button:hover { background: var(--ob-sand); }
.orbio-header__bar .wp-block-woocommerce-customer-account a,
.orbio-header__bar .wc-block-mini-cart__button { color: var(--ob-on-cedar); }
.orbio-header__bar .wp-block-woocommerce-customer-account a:hover,
.orbio-header__bar .wc-block-mini-cart__button:hover { background: color-mix(in srgb, var(--ob-on-cedar) 14%, transparent); }
.wc-block-mini-cart__badge {
	background: var(--ob-gold) !important; color: var(--ob-on-gold) !important;
	font: 500 11px/18px var(--ob-sans); min-width: 18px; height: 18px; border: 0;
}
.wc-block-mini-cart__amount { display: none; }

@media (max-width: 781px) {
	.orbio-header__row { flex-wrap: wrap !important; padding-block: var(--ob-s2); }
	.orbio-logo { margin-right: auto; }
	.orbio-header__row .orbio-logo img { height: 54px; }
	.orbio-search { order: 3; flex-basis: 100%; max-width: none; }
	.orbio-nav-row { gap: var(--ob-s4); justify-content: flex-start; }
	.orbio-nav .wp-block-navigation__container { gap: var(--ob-s6); }
}

/* Language switch (or-bio/language-switch block from the mu-plugin). */
.orbio-lang { display: inline-flex; padding: 2px; border: 1px solid var(--ob-line-strong); border-radius: var(--ob-r-pill); margin: 0; }
.orbio-lang a {
	display: grid; place-items: center; min-width: 36px; height: 28px; padding: 0 var(--ob-s2);
	border-radius: var(--ob-r-pill); color: var(--ob-muted); text-decoration: none;
	font: 500 12px/16px var(--ob-sans); letter-spacing: .12em;
}
.orbio-lang a[aria-current="true"] { background: var(--ob-cedar); color: var(--ob-on-cedar); }
.orbio-lang a:not([aria-current="true"]):hover { color: var(--ob-ink); }
.orbio-header__bar .orbio-lang a:not([aria-current="true"]):hover, .orbio-footer .orbio-lang a:not([aria-current="true"]):hover { color: var(--ob-gold); }
.orbio-header__bar .orbio-lang, .orbio-footer .orbio-lang { border-color: color-mix(in srgb, var(--ob-on-cedar) 50%, transparent); }
.orbio-header__bar .orbio-lang a, .orbio-footer .orbio-lang a { color: var(--ob-on-cedar); }
.orbio-header__bar .orbio-lang a[aria-current="true"], .orbio-footer .orbio-lang a[aria-current="true"] { background: var(--ob-gold); color: var(--ob-on-gold); }

/* ---------- Hero ---------- */
.orbio-hero { padding-block: var(--ob-s8) 0; }
.orbio-hero__cols { gap: var(--ob-s8) var(--ob-s16); }
.orbio-hero h1 { margin-block: var(--ob-s4); max-width: 13ch; }
.orbio-hero .wp-block-buttons { margin-top: var(--ob-s6); }
.orbio-hero .is-style-arch img { max-height: 620px; object-fit: cover; }
@media (max-width: 781px) {
	/* Text (and the buy path) first on phones; the arch follows, shorter. */
	.orbio-hero .is-style-arch img { max-height: 320px; aspect-ratio: 1 / 1; }
}

/* ---------- Section heads ---------- */
.orbio-section__head { margin-bottom: var(--ob-s6); }
.orbio-section__head h2 { margin: 0; }
.orbio-section__head p { margin: 0; }

/* ---------- Category arches ---------- */
.orbio-cat-grid { gap: var(--ob-s6) var(--ob-s4); margin-top: var(--ob-s8); }
.orbio-cat { gap: var(--ob-s3); }
.orbio-cat .wp-block-image { margin: 0; width: 100%; background: var(--ob-sand); border-radius: var(--ob-r-arch) var(--ob-r-arch) 0 0; overflow: hidden; }
.orbio-cat .wp-block-image img { transition: transform .35s ease-out; aspect-ratio: 3 / 4; }
.orbio-cat:hover .wp-block-image img { transform: scale(1.04); }
.orbio-cat__label { margin: 0; text-align: center; }
.orbio-cat__label a { font: 600 22px/28px var(--ob-display); color: var(--ob-ink); text-decoration: none; }
.orbio-cat__label a:hover { color: var(--ob-cedar); }

/* ---------- Product card (Product Collection) ---------- */
.orbio-products .wc-block-product-template { gap: var(--ob-s6) !important; }
@media (max-width: 781px) {
	.orbio-products .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: var(--ob-s4) !important; }
}
.orbio-products .wc-block-product {
	position: relative; display: flex; flex-direction: column;
	background: var(--ob-card); border-radius: var(--ob-r-md); overflow: hidden;
	transition: box-shadow .2s;
}
.orbio-products .wc-block-product:hover { box-shadow: var(--wp--preset--shadow--card); }
.orbio-products .wc-block-components-product-image { margin: 0 !important; background: var(--ob-sand); aspect-ratio: 4 / 5; overflow: hidden; }
.orbio-products .wc-block-components-product-image a { display: block; height: 100%; }
.orbio-products .wc-block-components-product-image img {
	width: 100%; height: 100% !important; object-fit: contain; mix-blend-mode: multiply;
	transition: transform .4s ease-out;
}
.orbio-products .wc-block-product:hover .wc-block-components-product-image img { transform: scale(1.03); }
.orbio-card__body { flex: 1; gap: var(--ob-s1) !important; padding: var(--ob-s4); }
.orbio-card__body > * { margin: 0 !important; }
.orbio-card__eyebrow, .orbio-card__eyebrow a {
	font: 500 12px/16px var(--ob-sans); letter-spacing: .12em; text-transform: uppercase;
	color: var(--ob-gold-ink); text-decoration: none;
}
.orbio-products .wp-block-post-title { font: 500 17px/24px var(--ob-sans); letter-spacing: 0; }
.orbio-products .wp-block-post-title a:hover { text-decoration: underline; text-underline-offset: 3px; }
.orbio-card__foot { margin-top: auto !important; padding-top: var(--ob-s3); gap: var(--ob-s2) !important; }
.orbio-card__foot .wc-block-components-product-price { margin: 0 !important; }
.orbio-card__foot .wp-block-button { margin: 0 !important; }
.orbio-card__foot .wp-block-button__link {
	min-height: 36px; padding: 6px var(--ob-s3) !important; font-size: 14px !important;
	display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
}
.orbio-card__foot .wp-block-button__link.loading { opacity: .7; }
.orbio-card__foot .wp-block-button__link.added { background: var(--ob-success); border-color: var(--ob-success); }
.orbio-empty { gap: var(--ob-s4); padding: var(--ob-s12) var(--ob-s4); background: var(--ob-card); border-radius: var(--ob-r-md); }
.orbio-empty p { max-width: var(--wp--custom--measure); margin: 0; color: var(--ob-muted); }
.orbio-card__foot .added_to_cart { display: none; } /* the mini-cart drawer opens instead */
.orbio-products .outofstock .wp-block-button__link,
.orbio-products .wp-block-button__link[aria-disabled="true"] {
	background: transparent; color: var(--ob-muted); border-color: var(--ob-line-strong);
}

/* Rating: gold stars */
.wc-block-components-product-rating__stars, .star-rating { color: var(--ob-gold); }
.wc-block-components-product-rating__stars::before, .star-rating::before { color: var(--ob-line); }

/* Price + sale */
.price .woocommerce-Price-amount, .wc-block-components-product-price .woocommerce-Price-amount, .price del, .price ins { white-space: nowrap; }
.wc-block-components-product-price, .price { font-weight: 500; color: var(--ob-ink); }
.wc-block-components-product-price del, .price del { color: var(--ob-muted); font-weight: 400; font-size: .8em; opacity: 1; }
.wc-block-components-product-price ins, .price ins,
.wc-block-components-product-price__value.is-discounted { color: var(--ob-terracotta); text-decoration: none; background: none; }
.wc-block-components-product-sale-badge, .onsale, .orbio-sale {
	background: var(--ob-terracotta) !important; color: var(--ob-on-terracotta) !important;
	border: 0 !important; border-radius: var(--ob-r-sm) !important;
	font: 500 12px/16px var(--ob-sans) !important; letter-spacing: .04em; text-transform: none;
	padding: 3px var(--ob-s2) !important; min-height: 0; min-width: 0;
}
.wc-block-components-product-image .wc-block-components-product-sale-badge { top: var(--ob-s3); left: var(--ob-s3); }

/* Unit price appended by the mu-plugin: "CHF 59.80 / 100 ml". */
.orbio-unit-price { display: block; white-space: nowrap; font: 400 13px/18px var(--ob-sans); color: var(--ob-muted); }

/* ---------- Catalog ---------- */
.woocommerce-breadcrumb, .wc-block-breadcrumbs { font-size: 14px; color: var(--ob-muted); }
.woocommerce-breadcrumb a { color: var(--ob-muted); text-decoration: none; }
.woocommerce-breadcrumb a:hover { color: var(--ob-ink); text-decoration: underline; }
.orbio-archive .wp-block-query-title { margin-block: var(--ob-s2) 0; }
.orbio-chips { gap: var(--ob-s2); }
.orbio-chips p { margin: 0; }
.orbio-chips a {
	display: inline-flex; align-items: center; height: 36px; padding: 0 var(--ob-s4);
	border: 1px solid var(--ob-line-strong); border-radius: var(--ob-r-pill);
	color: var(--ob-ink); text-decoration: none; font: 500 14px/1 var(--ob-sans);
}
.orbio-chips a:hover { border-color: var(--ob-ink); }
.orbio-chips a[aria-current="page"] { background: var(--ob-cedar); border-color: var(--ob-cedar); color: var(--ob-on-cedar); }
.orbio-toolbar { font-size: 14px; color: var(--ob-muted); }
.orbio-toolbar p { margin: 0; }
.woocommerce-ordering select, select.orderby {
	height: 40px; padding: 0 36px 0 var(--ob-s3); border: 1px solid var(--ob-line-strong); border-radius: var(--ob-r-sm);
	background-color: var(--ob-card); color: var(--ob-ink); font: 400 14px var(--ob-sans);
}
.wp-block-query-pagination { margin-top: var(--ob-s8); gap: var(--ob-s2); }
.wp-block-query-pagination a, .wp-block-query-pagination .current { padding: 6px 12px; border-radius: var(--ob-r-sm); text-decoration: none; }
.wp-block-query-pagination .current { background: var(--ob-cedar); color: var(--ob-on-cedar); }

/* ---------- Single product ---------- */
.orbio-product__cols { gap: var(--ob-s8) var(--ob-s16); }
.orbio-product__buy > * { margin-block: 0 var(--ob-s4) !important; }
.orbio-product__buy .wp-block-post-title { margin-top: var(--ob-s2) !important; }
.woocommerce-product-gallery { background: var(--ob-sand); border-radius: var(--ob-r-md); overflow: hidden; }
.woocommerce-product-gallery img { mix-blend-mode: multiply; }
.flex-control-thumbs { display: flex; gap: var(--ob-s2); padding: var(--ob-s2) !important; background: var(--ob-surface); }
.flex-control-thumbs li { width: 72px !important; }
.wp-block-add-to-cart-form form.cart { display: flex; flex-wrap: wrap; gap: var(--ob-s3); align-items: stretch; }
.wp-block-add-to-cart-form .quantity input.qty {
	width: 88px; height: 52px; text-align: center; font: 500 16px var(--ob-sans);
	border: 1px solid var(--ob-line-strong); border-radius: var(--ob-r-pill); background: var(--ob-card);
}
.wp-block-add-to-cart-form .single_add_to_cart_button { flex: 1 1 200px; min-height: 52px; font-size: 16px !important; }
.wp-block-add-to-cart-form .stock { font-size: 14px; }
.wp-block-add-to-cart-form .stock.in-stock { color: var(--ob-success); }
.wp-block-add-to-cart-form .stock.out-of-stock { color: var(--ob-error); }
.orbio-product-assure { font-size: 14px; color: var(--ob-muted); border-top: 1px solid var(--ob-line); padding-top: var(--ob-s4) !important; }
@media (max-width: 781px) {
	/* Buy button stays under the thumb on phones. */
	.orbio-product .wp-block-add-to-cart-form form.cart {
		position: sticky; bottom: 0; z-index: 20; background: var(--ob-surface);
		padding: var(--ob-s3) 0; box-shadow: 0 -1px 0 var(--ob-line);
	}
}
.woocommerce-tabs ul.tabs { display: flex; gap: var(--ob-s6); padding: 0; margin: 0 0 var(--ob-s6); border-bottom: 1px solid var(--ob-line); list-style: none; }
.woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 0; background: none; }
.woocommerce-tabs ul.tabs li a { display: block; padding: var(--ob-s3) 0; font: 500 15px var(--ob-sans); color: var(--ob-muted); text-decoration: none; border-bottom: 2px solid transparent; }
.woocommerce-tabs ul.tabs li.active a { color: var(--ob-ink); border-bottom-color: var(--ob-gold); }
.woocommerce-tabs .panel h2 { display: none; }

/* ---------- Cart, mini-cart drawer, checkout (WooCommerce blocks) ---------- */
.wc-block-components-quantity-selector {
	border: 1px solid var(--ob-line-strong) !important; border-radius: var(--ob-r-pill) !important;
	background: var(--ob-card); overflow: hidden;
}
.wc-block-components-quantity-selector::after { display: none !important; }
.wc-block-components-quantity-selector__button { color: var(--ob-ink) !important; }
.wc-block-components-quantity-selector__button:hover:not(:disabled) { background: var(--ob-sand) !important; color: var(--ob-cedar) !important; }
.wc-block-components-product-name { color: var(--ob-ink); font-weight: 500; text-decoration: none; }
.wc-block-cart-item__remove-link, .wc-block-components-product-details { color: var(--ob-muted) !important; }
.wc-block-components-totals-wrapper { border-color: var(--ob-line) !important; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 20px; }
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button, .wc-block-mini-cart__footer-checkout {
	min-height: 52px; font-size: 16px !important; border-radius: var(--ob-r-sm) !important;
}
.wc-block-mini-cart__footer-cart { border-color: var(--ob-line-strong) !important; color: var(--ob-ink) !important; background: transparent !important; }
.wc-block-mini-cart__drawer .components-modal__content { background: var(--ob-surface); }
.wc-block-mini-cart__title { font-family: var(--ob-display); font-weight: 600; }
.wc-block-components-text-input input, .wc-block-components-combobox .components-combobox-control__input,
.wc-block-components-textarea, .wc-blocks-components-select__select {
	border: 1px solid var(--ob-line-strong) !important; border-radius: var(--ob-r-sm) !important; background: var(--ob-card) !important;
}
.wc-block-components-text-input.is-active input:focus,
.wc-block-components-text-input input:focus { border-color: var(--ob-cedar) !important; box-shadow: 0 0 0 1px var(--ob-cedar) !important; }
.wc-block-components-radio-control__option-checked, .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	box-shadow: inset 0 0 0 2px var(--ob-cedar) !important;
}
.wc-block-components-notice-banner { border-radius: var(--ob-r-sm); }
.wc-block-components-notice-banner.is-success { border-color: var(--ob-success); }
.wc-block-components-notice-banner.is-error { border-color: var(--ob-error); }

/* Free-shipping meter (or-bio/free-shipping-meter block from the mu-plugin). */
.orbio-meter { margin: 0 0 var(--ob-s6); padding: var(--ob-s4); background: var(--ob-card); border-radius: var(--ob-r-md); }
.orbio-meter__text { display: flex; align-items: center; gap: 6px; margin: 0 0 var(--ob-s2); font-size: 14px; }
.orbio-meter.is-done .orbio-meter__text { color: var(--ob-success); font-weight: 500; }
.orbio-meter__track { height: 4px; background: var(--ob-sand); border-radius: var(--ob-r-pill); overflow: hidden; }
.orbio-meter__bar { display: block; height: 100%; width: 0; background: var(--ob-gold); border-radius: var(--ob-r-pill); transition: width .4s ease-out; }

/* ---------- Provenance, reassurance ---------- */
.orbio-provenance { padding-block: var(--ob-s16); }
.orbio-provenance .wp-block-columns { gap: var(--ob-s8) var(--ob-s16); }
.orbio-provenance .is-style-arch img { max-height: 520px; }
.orbio-provenance h2 { max-width: 20ch; }

.orbio-reassure { gap: var(--ob-s6) !important; padding-block: var(--ob-s8); border-top: 1px solid var(--ob-line); border-bottom: 1px solid var(--ob-line); }
.orbio-reassure__item { position: relative; padding-left: 40px; }
.orbio-reassure__item h3 { margin: 0 0 4px; }
.orbio-reassure__item p { margin: 0; color: var(--ob-muted); }
.orbio-ico::before {
	content: ""; position: absolute; left: 0; top: 0; width: 26px; height: 26px; background: var(--ob-cedar);
	-webkit-mask: var(--ob-icon) center / contain no-repeat; mask: var(--ob-icon) center / contain no-repeat;
}
.orbio-ico--truck { --ob-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7h11v9H3zM14 10h4l3 3v3h-7'/%3E%3Ccircle cx='7' cy='17.5' r='1.5'/%3E%3Ccircle cx='17' cy='17.5' r='1.5'/%3E%3C/svg%3E"); }
.orbio-ico--clock { --ob-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Cpath d='M12 8v4l3 2'/%3E%3C/svg%3E"); }
.orbio-ico--lock { --ob-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Crect x='5' y='11' width='14' height='9' rx='1'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E"); }
.orbio-ico--return { --ob-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 14 4 9l5-5'/%3E%3Cpath d='M4 9h10a6 6 0 0 1 0 12h-3'/%3E%3C/svg%3E"); }

/* ---------- Footer ---------- */
.orbio-footer { padding-block: var(--ob-s12) var(--ob-s6); margin-top: 0; }
.orbio-footer .wp-block-columns { gap: var(--ob-s8); }
.orbio-footer a { color: var(--ob-on-cedar); text-decoration: none; }
.orbio-footer a:hover { text-decoration: underline; text-underline-offset: 3px; }
.orbio-footer h4 { color: var(--ob-on-cedar); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: var(--ob-s3); }
/* Gold only as a decorative rule here: gold on cedar is 3.7:1 — too low for 12px text. */
.orbio-footer h4::after { content: ""; display: block; width: 24px; height: 2px; margin-top: var(--ob-s2); background: var(--ob-gold); }
.orbio-footer__lead { font-size: 15px; opacity: .9; max-width: 36ch; }
.orbio-footer__links { list-style: none; padding: 0; margin: 0; font-size: 15px; line-height: 2; }
.orbio-pay { display: flex; flex-wrap: wrap; gap: var(--ob-s2); list-style: none; padding: 0; margin: 0 0 var(--ob-s3); }
.orbio-pay li { padding: 2px var(--ob-s2); border: 1px solid color-mix(in srgb, var(--ob-on-cedar) 45%, transparent); border-radius: var(--ob-r-sm); font: 500 11px/16px var(--ob-sans); letter-spacing: .04em; }
.orbio-footer__rule { border-color: color-mix(in srgb, var(--ob-on-cedar) 25%, transparent) !important; margin-block: var(--ob-s8) var(--ob-s4); }
.orbio-footer__legal { opacity: .85; margin: 0; }

/* ---------- Motion preference ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0s !important; animation-duration: 0s !important; }
}

/* ======================================================================
   Home page (front-page.html): slider, circles, carousels, offers, tiles, story.
   ====================================================================== */
.orbio-home { padding-top: 0; margin-top: 0 !important; } /* the slider sits right under the navbar */
.orbio-home > .orbio-hero-slider:first-child { margin-top: 0; }

/* Centred section heads with a quiet link underneath. */
.orbio-section__head--center { gap: var(--ob-s2) !important; margin-bottom: var(--ob-s8); }
.orbio-section__head--center h2 { text-align: center; }
.orbio-section__sub { color: var(--ob-muted); }

/* Round arrows shared by the slider and the product rows. */
.orbio-arrow {
	position: absolute; top: 50%; z-index: 2; transform: translateY(-50%);
	display: grid; place-items: center; width: 44px; height: 44px; padding: 0;
	border: 1px solid var(--ob-line); border-radius: var(--ob-r-pill);
	background: var(--ob-card); color: var(--ob-ink); cursor: pointer;
	box-shadow: 0 2px 10px rgba(60, 36, 21, .12); transition: opacity .2s, background-color .15s;
}
.orbio-arrow:hover { background: var(--ob-sand); }
.orbio-arrow:disabled { opacity: 0; pointer-events: none; }
.orbio-arrow--prev { left: var(--ob-s4); }
.orbio-arrow--next { right: var(--ob-s4); }

/* ---- Hero slider: one slide per screen width, text on the left over the photo's empty side. */
.orbio-hero-slider { position: relative; margin-top: 0; }
.orbio-hero-slider__track {
	display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain;
}
.orbio-hero-slider__track::-webkit-scrollbar { display: none; }
.orbio-slide { position: relative; flex: 0 0 100%; scroll-snap-align: start; min-height: clamp(380px, 40vw, 560px); display: flex; align-items: center; overflow: hidden; }
.orbio-slide__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: right center; }
.orbio-slide__content {
	position: relative; width: min(100%, var(--wp--style--global--wide-size, 1280px)); margin-inline: auto;
	padding: var(--ob-s12) calc(var(--wp--style--root--padding-left) + 48px);
}
.orbio-slide__content > * { max-width: 30rem; }
.orbio-slide__title { margin: var(--ob-s3) 0; font: 400 clamp(36px, 4.4vw, 60px)/1.05 var(--ob-display); letter-spacing: -.01em; color: var(--ob-ink); }
.orbio-slide__text { margin: 0 0 var(--ob-s6); font-size: 18px; line-height: 1.55; color: var(--ob-muted); }
.orbio-slide .wp-block-buttons { display: flex; flex-wrap: wrap; gap: var(--ob-s3); }
.orbio-dots { position: absolute; left: 50%; bottom: var(--ob-s4); transform: translateX(-50%); display: flex; gap: var(--ob-s2); }
.orbio-dot { width: 10px; height: 10px; padding: 0; border: 1px solid var(--ob-cedar); border-radius: var(--ob-r-pill); background: transparent; cursor: pointer; }
.orbio-dot[aria-current="true"] { background: var(--ob-cedar); width: 26px; }
.orbio-dot { transition: width .25s, background-color .25s; }
@media (max-width: 781px) {
	/* Phone: products on top (right part of the photo), text below on the photo's ground colour. */
	.orbio-slide { flex-direction: column; align-items: stretch; min-height: 0; }
	.orbio-slide__image { position: relative; inset: auto; height: 240px; object-position: 82% center; }
	.orbio-slide__content { padding: var(--ob-s6) var(--ob-s4) var(--ob-s12); background: var(--ob-surface); }
	.orbio-hero-slider .orbio-arrow { top: 120px; }
}

/* ---- Category circles */
.orbio-circles__list {
	display: flex; justify-content: center; gap: var(--ob-s6); margin: 0; padding: var(--ob-s2) 0; list-style: none;
	overflow-x: auto; scrollbar-width: none;
}
.orbio-circles__list::-webkit-scrollbar { display: none; }
.orbio-circle { display: flex; flex-direction: column; align-items: center; gap: var(--ob-s2); width: 104px; color: var(--ob-ink); text-decoration: none; text-align: center; }
.orbio-circle__img {
	display: grid; place-items: center; width: 96px; height: 96px; border-radius: 50%; overflow: hidden;
	background: var(--ob-sand); box-shadow: 0 0 0 2px var(--ob-surface), 0 0 0 3px var(--ob-gold); transition: box-shadow .2s;
}
.orbio-circle__img img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; mix-blend-mode: multiply; transform: scale(1.35); transition: transform .3s; }
.orbio-circle:hover .orbio-circle__img { box-shadow: 0 0 0 2px var(--ob-surface), 0 0 0 4px var(--ob-cedar); }
.orbio-circle:hover .orbio-circle__img img { transform: scale(1.45); }
.orbio-circle__label { font-size: 14px; font-weight: 500; line-height: 1.25; }
.orbio-circle--offer .orbio-circle__img { background: var(--ob-terracotta); color: var(--ob-on-terracotta); font: 600 34px/1 var(--ob-display); }
@media (max-width: 781px) {
	.orbio-circles__list { justify-content: flex-start; gap: var(--ob-s4); }
	.orbio-circle { width: 84px; }
	.orbio-circle__img { width: 76px; height: 76px; }
}

/* ---- Product carousel: the Product Collection grid becomes one scrolling row. */
.orbio-carousel { position: relative; }
.orbio-carousel .wc-block-product-template {
	display: grid !important; grid-auto-flow: column; grid-template-columns: none !important;
	grid-auto-columns: calc((100% - 3 * var(--ob-s6)) / 4);
	overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: var(--ob-s2) !important;
}
.orbio-carousel .wc-block-product-template::-webkit-scrollbar { display: none; }
.orbio-carousel .wc-block-product { scroll-snap-align: start; }
.orbio-carousel .orbio-arrow { top: 38%; }
.orbio-carousel .orbio-arrow--prev { left: calc(-1 * var(--ob-s4)); }
.orbio-carousel .orbio-arrow--next { right: calc(-1 * var(--ob-s4)); }
.orbio-carousel.is-static .orbio-arrow { display: none; }
@media (max-width: 781px) {
	.orbio-carousel .wc-block-product-template { grid-auto-columns: 46% !important; gap: var(--ob-s3) !important; }
	.orbio-carousel .orbio-arrow { display: none; } /* swipe on touch screens */
}

/* ---- New-in: editorial card + carousel */
.orbio-feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: var(--ob-s6); align-items: stretch; }
.orbio-feature > .orbio-carousel { margin: 0 !important; min-width: 0; }
.orbio-feature .orbio-carousel .wc-block-product-template { grid-auto-columns: calc((100% - 2 * var(--ob-s6)) / 3); }
.orbio-feature__card { position: relative; display: block; min-height: 420px; border-radius: var(--ob-r-md); overflow: hidden; color: var(--ob-on-cedar); text-decoration: none; background: var(--ob-cedar); }
.orbio-feature__card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.orbio-feature__card:hover img { transform: scale(1.04); }
.orbio-feature__text { position: absolute; inset: auto 0 0; display: grid; gap: var(--ob-s1); padding: var(--ob-s8) var(--ob-s6) var(--ob-s6); background: linear-gradient(transparent, rgba(42, 23, 11, .85)); }
.orbio-feature__title { font: 400 28px/1.1 var(--ob-display); }
.orbio-feature__sub { font-size: 15px; color: var(--ob-gold); }
@media (max-width: 781px) {
	.orbio-feature { grid-template-columns: 1fr; }
	.orbio-feature__card { min-height: 300px; }
	.orbio-feature .orbio-carousel .wc-block-product-template { grid-auto-columns: 46% !important; }
}

/* ---- Current offers: two large brown tiles, text on the left */
.orbio-offers { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: var(--ob-s6); }
.orbio-offer { position: relative; display: block; aspect-ratio: 960 / 560; border-radius: var(--ob-r-md); overflow: hidden; background: var(--ob-cedar); color: var(--ob-on-cedar); text-decoration: none; }
.orbio-offer img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.orbio-offer:hover img { transform: scale(1.03); }
.orbio-offer__text { position: absolute; inset: 0 auto 0 0; width: 52%; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: var(--ob-s2); padding: var(--ob-s8); }
.orbio-offer__badge { padding: 4px 10px; border-radius: var(--ob-r-sm); background: var(--ob-terracotta); color: var(--ob-on-terracotta); font: 600 18px/1.2 var(--ob-sans); }
.orbio-offer__title { font: 400 clamp(22px, 2.4vw, 30px)/1.15 var(--ob-display); }
.orbio-offer__price { font: 500 18px/1.3 var(--ob-sans); color: var(--ob-gold); font-variant-numeric: tabular-nums; }
.orbio-offer__price s { margin-left: var(--ob-s2); font-size: 15px; color: color-mix(in srgb, var(--ob-on-cedar) 70%, transparent); }

/* ---- Which care today: four photo tiles with a label chip */
.orbio-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ob-s4); margin: 0; padding: 0; list-style: none; }
.orbio-tile { position: relative; display: block; aspect-ratio: 5 / 6; border-radius: var(--ob-r-md); overflow: hidden; background: var(--ob-sand); }
.orbio-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.orbio-tile:hover img { transform: scale(1.04); }
.orbio-tile__label {
	position: absolute; top: var(--ob-s3); left: var(--ob-s3); padding: 6px 12px; border-radius: var(--ob-r-sm);
	background: var(--ob-card); color: var(--ob-ink); font-weight: 500; font-size: 15px;
}
.orbio-tile:hover .orbio-tile__label { background: var(--ob-cedar); color: var(--ob-on-cedar); }
@media (max-width: 781px) { .orbio-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ob-s3); } }

/* ---- Story: full-width leaf photo with the brand promise, then three editorial cards */
.orbio-story { position: relative; display: flex; align-items: flex-end; min-height: clamp(320px, 35vw, 500px); overflow: hidden; background: var(--ob-cedar); scroll-margin-top: 180px; }
.orbio-story__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.orbio-story::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(42, 23, 11, .78), rgba(42, 23, 11, .15) 70%); }
.orbio-story__content { position: relative; z-index: 1; width: min(100%, var(--wp--style--global--wide-size, 1280px)); margin-inline: auto; padding: var(--ob-s12) var(--wp--style--root--padding-left) calc(var(--ob-s12) * 2); /* the cards below overlap the bottom 48px */ color: var(--ob-on-cedar); }
.orbio-story__title { margin: 0 0 var(--ob-s3); max-width: 18ch; color: var(--ob-on-cedar); font: 400 clamp(30px, 3.6vw, 46px)/1.1 var(--ob-display); }
.orbio-story__text { margin: 0; max-width: 46ch; font-size: 17px; line-height: 1.6; }

.orbio-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ob-s6); margin-top: calc(-1 * var(--ob-s12)) !important; padding: 0 var(--ob-s4); list-style: none; position: relative; z-index: 1; }
.orbio-card-ed { display: flex; flex-direction: column; height: 100%; border-radius: var(--ob-r-md); overflow: hidden; background: var(--ob-card); color: var(--ob-ink); text-decoration: none; box-shadow: var(--wp--preset--shadow--card); }
.orbio-card-ed__text { display: grid; gap: var(--ob-s1); padding: var(--ob-s6); }
.orbio-card-ed__title { font: 400 22px/1.2 var(--ob-display); color: var(--ob-cedar); }
.orbio-card-ed__sub { font-size: 15px; line-height: 1.5; color: var(--ob-muted); }
.orbio-card-ed img { margin-top: auto; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .5s; }
.orbio-card-ed:hover img { transform: scale(1.03); }
.orbio-card-ed:hover .orbio-card-ed__title { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 781px) {
	.orbio-cards { grid-template-columns: 1fr; margin-top: var(--ob-s6) !important; padding: 0; }
	.orbio-story__content { padding-bottom: var(--ob-s12); }
}

@media (prefers-reduced-motion: reduce) {
	.orbio-home img { transition: none !important; }
}
