:root {
	--ovimes-off-white: #f7f8f8;
	--ovimes-graphite: #20242b;
	--ovimes-steel-gray: #b8bec5;
	--ovimes-deep-navy: #172b48;
	--ovimes-silver: #e4e7ea;
	--ovimes-white: #fff;
	--ovimes-muted: #626b76;
	--ovimes-font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--ovimes-font-sans: "Inter", Arial, Helvetica, sans-serif;
	--ovimes-container-max: 1360px;
	--ovimes-gutter: 48px;
	--ovimes-header-height: 76px;
	--ovimes-section: clamp(64px, 6vw, 88px);
	--ovimes-space-4: 4px;
	--ovimes-space-8: 8px;
	--ovimes-space-12: 12px;
	--ovimes-space-16: 16px;
	--ovimes-space-24: 24px;
	--ovimes-space-32: 32px;
	--ovimes-space-48: 48px;
	--ovimes-space-64: 64px;
	--ovimes-space-80: 80px;
	--ovimes-space-96: 96px;
	--ovimes-type-h1: var(--wp--preset--font-size--h1, clamp(42px, 32px + 2.6vw, 64px));
	--ovimes-type-h2: var(--wp--preset--font-size--h2, clamp(32px, 28px + .9vw, 42px));
	--ovimes-type-h3: var(--wp--preset--font-size--h3, clamp(26px, 23px + .6vw, 30px));
	--ovimes-type-h4: var(--wp--preset--font-size--h4, clamp(22px, 20px + .5vw, 24px));
	--ovimes-type-body: var(--wp--preset--font-size--body, clamp(15px, 14px + .16vw, 16px));
	--ovimes-type-product: var(--wp--preset--font-size--product-name, clamp(15px, 14px + .28vw, 17px));
	--ovimes-type-price: var(--wp--preset--font-size--price, clamp(14px, 13px + .15vw, 15px));
	--ovimes-type-nav: var(--wp--preset--font-size--navigation, 15px);
	--ovimes-type-button: var(--wp--preset--font-size--button, 13px);
	--ovimes-type-eyebrow: var(--wp--preset--font-size--eyebrow, clamp(11px, 10px + .12vw, 12px));
	--wp--custom--edge: var(--ovimes-gutter);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	overflow-x: hidden;
	background: var(--ovimes-off-white);
	color: var(--ovimes-graphite);
	font-family: var(--ovimes-font-sans);
	font-size: var(--ovimes-type-body);
	font-weight: 400;
	line-height: 1.62;
}
::selection { background: var(--ovimes-deep-navy); color: var(--ovimes-white); }

h1, h2, h3, h4 {
	font-family: var(--ovimes-font-display);
	font-weight: 400;
	letter-spacing: -.01em;
}
h1 { font-size: var(--ovimes-type-h1); line-height: 1.05; }
h2 { font-size: var(--ovimes-type-h2); line-height: 1.1; }
h3 { font-size: var(--ovimes-type-h3); line-height: 1.14; }
h4 { font-size: var(--ovimes-type-h4); font-weight: 500; line-height: 1.18; }

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--ovimes-deep-navy);
	outline-offset: 3px;
}
:where(button, input, select, textarea) { font: inherit; }
:where(button, input, select, textarea):disabled { cursor: not-allowed; opacity: .52; }

.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block-start: 0; }
.wp-block-image img { display: block; }

/* Shared button, form and navigation primitives. */
.wp-site-blocks :where(.wp-element-button, .wp-block-button__link) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	border: 1px solid var(--ovimes-deep-navy);
	border-radius: 0;
	background: var(--ovimes-deep-navy);
	color: var(--ovimes-white);
	font-family: var(--ovimes-font-sans);
	font-size: var(--ovimes-type-button);
	font-weight: 500;
	letter-spacing: .04em;
	line-height: 1.2;
	padding: 14px 24px;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.wp-site-blocks :where(.wp-element-button, .wp-block-button__link):hover { background: var(--ovimes-graphite); border-color: var(--ovimes-graphite); color: var(--ovimes-white); }
.wp-site-blocks .is-style-outline > :where(.wp-element-button, .wp-block-button__link) { background: transparent; color: var(--ovimes-deep-navy); }
.wp-site-blocks .is-style-outline > :where(.wp-element-button, .wp-block-button__link):hover { background: var(--ovimes-deep-navy); color: var(--ovimes-white); }

.wp-site-blocks :where(input:not([type="checkbox"]):not([type="radio"]), textarea, select) {
	min-height: 48px;
	border: 1px solid var(--ovimes-steel-gray);
	border-radius: 0;
	background: var(--ovimes-white);
	color: var(--ovimes-graphite);
	font-family: var(--ovimes-font-sans);
	font-size: var(--ovimes-type-body);
	line-height: 1.5;
	padding: 11px 14px;
}
.wp-site-blocks :where(input, textarea, select)[aria-invalid="true"],
.wp-site-blocks :where(input, textarea, select).has-error { border-color: var(--ovimes-deep-navy); box-shadow: 0 0 0 1px var(--ovimes-deep-navy); }
.wp-site-blocks :where(input[type="checkbox"], input[type="radio"]) { accent-color: var(--ovimes-deep-navy); inline-size: 18px; block-size: 18px; }

.ovimes-header {
	position: relative;
	z-index: 20;
	border-bottom: 1px solid var(--ovimes-silver);
	background: rgba(247, 248, 248, .96);
	backdrop-filter: blur(14px);
}
.ovimes-header__inner { min-height: var(--ovimes-header-height); }
.ovimes-wordmark,
.ovimes-header .wp-block-site-title {
	font-family: Arial, Helvetica, sans-serif;
	font-size: clamp(17px, 16px + .25vw, 20px);
	font-weight: 400;
	letter-spacing: .32em;
	line-height: 1;
}
.ovimes-header .wp-block-site-title a { color: inherit; }
.ovimes-header__nav { font-family: var(--ovimes-font-sans); font-size: var(--ovimes-type-nav); font-weight: 450; }
.ovimes-header__nav .wp-block-navigation__container { column-gap: 30px; row-gap: 12px; }
.ovimes-header__tools { gap: 12px; }
.ovimes-header__tool { display: inline-grid; place-items: center; width: 36px; height: 36px; color: var(--ovimes-graphite); }
.ovimes-header__tool svg { width: 21px; height: 21px; stroke: currentColor; fill: none; stroke-width: 1.5; }

.ovimes-hero { background: var(--ovimes-off-white); }
.ovimes-hero__grid { display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); min-height: clamp(560px, calc(100vh - 76px), 760px); }
.ovimes-hero__content { display: flex; flex-direction: column; justify-content: center; max-width: 544px; padding: clamp(56px, 7vw, 96px) clamp(32px, 5vw, 80px) clamp(48px, 5vw, 72px) 0; }
.ovimes-kicker { font-family: var(--ovimes-font-sans); font-size: var(--ovimes-type-eyebrow); font-weight: 500; line-height: 1.4; letter-spacing: .1em; text-transform: uppercase; }
.ovimes-hero h1 { max-width: 11ch; margin: 16px 0 18px; font-size: var(--ovimes-type-h1); line-height: 1.05; letter-spacing: -.015em; }
.ovimes-hero__lead { max-width: 432px; font-size: var(--ovimes-type-body); line-height: 1.62; }
.ovimes-hero .wp-block-buttons { margin-top: 24px; }
.ovimes-hero__note { margin-top: auto; padding-top: 40px; color: var(--ovimes-muted); font-size: var(--ovimes-type-eyebrow); font-weight: 500; line-height: 1.4; letter-spacing: .08em; }
.ovimes-hero__media { display: block; min-width: 0; height: 100%; margin: 0; overflow: hidden; background: var(--ovimes-silver); }
.ovimes-hero__media img { display: block; width: 100%; height: 100%; min-height: inherit; object-fit: cover; object-position: 64% center; }

.ovimes-section { padding-block: var(--ovimes-section); }
.ovimes-section--compact { padding-block: clamp(48px, 5vw, 72px); }
.ovimes-section__header { margin-bottom: clamp(24px, 2.5vw, 32px); }
.ovimes-section__header h2 { margin: 0; }
.ovimes-text-link { display: inline-flex; align-items: center; min-height: 40px; color: var(--ovimes-deep-navy); font-size: var(--ovimes-type-button); font-weight: 500; line-height: 1.3; }
.ovimes-text-link:hover { color: var(--ovimes-graphite); }

.ovimes-category-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(20px, 1.7vw, 24px); }
.ovimes-category-card { position: relative; min-width: 0; color: var(--ovimes-graphite); }
.ovimes-category-card__media { aspect-ratio: 4 / 5; margin: 0; overflow: hidden; background: var(--ovimes-silver); }
.ovimes-category-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.ovimes-category-card:hover .ovimes-category-card__media img { transform: scale(1.02); }
.ovimes-category-card__body { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 0 0; }
.ovimes-category-card__body h3 { margin: 0; font-size: var(--ovimes-type-h4); line-height: 1.18; }
.ovimes-category-card__body span { font-size: 16px; }

.ovimes-home-products .woocommerce ul.products,
.ovimes-home-products .wc-block-grid__products { margin: 0; }
.ovimes-home-products .woocommerce-info,
.ovimes-home-products .woocommerce-no-products-found,
.ovimes-empty-state { margin: 0; background: var(--ovimes-silver); padding: 32px; color: var(--ovimes-muted); text-align: center; }

.ovimes-story__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(384px, .8fr); align-items: center; gap: clamp(40px, 5vw, 80px); }
.ovimes-story__media { aspect-ratio: 16 / 10; margin: 0; overflow: hidden; background: var(--ovimes-silver); }
.ovimes-story__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 67% center; }
.ovimes-story__copy { max-width: 576px; padding-block: 16px; }
.ovimes-story__copy h2 { max-width: 19ch; margin: 12px 0 18px; font-size: var(--ovimes-type-h2); line-height: 1.1; }

.ovimes-principles { padding-block: clamp(64px, 6vw, 88px); background: var(--ovimes-deep-navy); color: var(--ovimes-white); }
.ovimes-principles h2, .ovimes-principles h3 { color: var(--ovimes-white); }
.ovimes-principles h2 { max-width: 24ch; margin: 12px 0 40px; font-size: var(--ovimes-type-h2); line-height: 1.1; }
.ovimes-principles__grid { gap: clamp(24px, 3vw, 48px); margin: 0; }
.ovimes-principle { min-width: 0; padding: 0; }
.ovimes-principle__number { color: var(--ovimes-steel-gray); font-size: var(--ovimes-type-eyebrow); font-weight: 500; line-height: 1.4; }
.ovimes-principle h3 { margin-block: 16px 12px; font-size: var(--ovimes-type-h3); line-height: 1.14; }
.ovimes-principle p:last-child { max-width: 416px; color: #d9dde2; }

.ovimes-home-journal { background: var(--ovimes-off-white); }
.ovimes-home-journal__query .wp-block-post-template { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 2.4vw, 40px); margin: 0; padding: 0; }
.ovimes-home-journal__card { min-width: 0; }
.ovimes-home-journal__card .wp-block-post-featured-image { margin: 0 0 20px; overflow: hidden; background: var(--ovimes-silver); }
.ovimes-home-journal__card .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.ovimes-home-journal__card:hover .wp-block-post-featured-image img { transform: scale(1.02); }
.ovimes-home-journal__category { margin: 0 0 8px; font-size: var(--ovimes-type-eyebrow); font-weight: 500; line-height: 1.4; letter-spacing: .08em; text-transform: uppercase; }
.ovimes-home-journal__card .wp-block-post-title { margin: 0 0 8px; font-size: var(--ovimes-type-h3); line-height: 1.14; }
.ovimes-home-journal__card .wp-block-post-date { color: var(--ovimes-muted); font-size: var(--ovimes-type-eyebrow); font-weight: 500; line-height: 1.4; }
.ovimes-home-journal__empty { max-width: 760px; padding: 32px; background: var(--ovimes-silver); text-align: center; }
.ovimes-home-journal__empty h3 { margin-top: 0; }

.ovimes-page-hero { padding-block: clamp(64px, 7vw, 96px) clamp(40px, 5vw, 64px); }
.ovimes-page-hero h1 { margin: 0; font-size: var(--ovimes-type-h1); line-height: 1.05; }
.ovimes-content { padding-block: clamp(56px, 6vw, 88px); }
.ovimes-content > * + * { margin-block-start: 24px; }
.ovimes-content h2 { margin-block-start: 48px; }

.ovimes-journal-grid .wp-block-post-template { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 3vw, 48px); }
.ovimes-journal-card { padding-top: 0; }
.ovimes-journal-card .wp-block-post-featured-image { aspect-ratio: 4 / 3; overflow: hidden; background: var(--ovimes-silver); }
.ovimes-journal-card .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; }
.ovimes-journal-card .wp-block-post-title { margin: 18px 0 8px; font-size: var(--ovimes-type-h3); line-height: 1.14; }
.ovimes-journal-card .wp-block-post-date { color: var(--ovimes-muted); font-size: var(--ovimes-type-eyebrow); font-weight: 500; line-height: 1.4; }

.ovimes-search-form .wp-block-search__inside-wrapper { border: 1px solid var(--ovimes-steel-gray); padding: 4px; background: var(--ovimes-white); }
.ovimes-search-form .wp-block-search__input { border: 0; background: transparent; font-family: var(--ovimes-font-sans); font-size: var(--ovimes-type-body); }
.ovimes-search-results > li + li { margin-top: 32px; }

.ovimes-tabs, .wp-block-query-pagination { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 24px; }
.wp-block-query-pagination a, .wp-block-query-pagination .current { display: inline-grid; min-width: 40px; min-height: 40px; place-items: center; font-size: var(--ovimes-type-nav); }
.wp-block-query-pagination .current { background: var(--ovimes-deep-navy); color: var(--ovimes-white); }

.ovimes-footer { background: var(--ovimes-off-white); }
.ovimes-footer__newsletter { padding-block: clamp(48px, 6vw, 80px); }
.ovimes-footer__newsletter h2 { margin: 0; }
.ovimes-form-placeholder { padding: 16px; background: rgba(255, 255, 255, .58); color: var(--ovimes-muted); font-size: 14px; line-height: 1.6; }
.ovimes-footer__main { padding-block: 56px 32px; background: var(--ovimes-graphite); color: var(--ovimes-white); }
.ovimes-footer__main a, .ovimes-footer__main h3, .ovimes-footer__main .wp-block-site-title { color: var(--ovimes-white); }
.ovimes-footer__main h3 { font-family: var(--ovimes-font-sans); font-size: 14px; font-weight: 500; line-height: 1.4; letter-spacing: 0; }
.ovimes-footer__main p, .ovimes-footer__main li { color: #d4d8dc; font-size: 14px; line-height: 1.65; }
.ovimes-footer__main .wp-block-navigation { gap: 8px; }
.ovimes-footer__main .wp-block-navigation-item__content:hover { color: var(--ovimes-white); text-decoration: underline; text-underline-offset: 4px; }
.ovimes-footer__legal { margin-top: 40px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.14); }

.ovimes-empty { min-height: 36vh; display: grid; place-items: center; padding-block: 64px; text-align: center; }
.ovimes-empty h1 { margin: 0; font-size: var(--ovimes-type-h1); line-height: 1.05; }

@media (max-width: 1100px) {
	:root { --ovimes-gutter: 32px; }
	.ovimes-header__nav .wp-block-navigation__container { column-gap: 22px; }
}

@media (max-width: 900px) {
	.ovimes-hero__grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); min-height: 580px; }
	.ovimes-hero__content { padding-right: clamp(28px, 5vw, 56px); }
	.ovimes-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ovimes-story__grid { grid-template-columns: 1fr; gap: 40px; }
	.ovimes-story__copy { padding: 0; }
	.ovimes-story__media { aspect-ratio: 16 / 9; }
	.ovimes-journal-grid .wp-block-post-template { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 781px) {
	.ovimes-principles__grid { display: grid; grid-template-columns: 1fr; gap: 32px; }
	.ovimes-footer__main .wp-block-columns { flex-wrap: wrap; row-gap: 32px; }
	.ovimes-footer__main .wp-block-column { flex-basis: calc(50% - 16px); }
}

@media (max-width: 700px) {
	:root { --ovimes-gutter: 20px; --ovimes-header-height: 64px; --ovimes-section: clamp(40px, 12vw, 56px); }
	.ovimes-header__inner { min-height: var(--ovimes-header-height); }
	.ovimes-header__tools { gap: 4px; }
	.ovimes-header__tools .ovimes-account { display: none; }
	.ovimes-header__tool { width: 32px; height: 36px; }
	.ovimes-header__tool svg { width: 20px; height: 20px; }
	.ovimes-header__nav { order: -1; }
	.ovimes-header__nav .wp-block-navigation__responsive-container-open { display: flex; }
	.ovimes-hero__grid { display: grid; grid-template-columns: 1fr; min-height: 0; }
	.ovimes-hero__media { grid-row: 1; height: clamp(368px, 112vw, 496px); }
	.ovimes-hero__media img { object-position: center 42%; }
	.ovimes-hero__content { grid-row: 2; max-width: none; padding: 40px 0 44px; }
	.ovimes-hero h1 { max-width: 11ch; margin: 12px 0 16px; }
	.ovimes-hero__lead { margin-top: 0; }
	.ovimes-hero .wp-block-buttons { margin-top: 20px; }
	.ovimes-hero__note { margin-top: 40px; padding-top: 0; }
	.ovimes-section__header { align-items: flex-end; gap: 16px; margin-bottom: 24px; }
	.ovimes-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; }
	.ovimes-category-card__body { padding: 12px 0 0; }
	.ovimes-category-card__body span { font-size: 14px; }
	.ovimes-story__grid { gap: 32px; }
	.ovimes-story__media { aspect-ratio: 4 / 3; }
	.ovimes-story__copy h2 { max-width: 20ch; }
	.ovimes-principles { padding-block: 48px; }
	.ovimes-principles h2 { margin-bottom: 32px; }
	.ovimes-principles__grid { gap: 28px; }
	.ovimes-home-journal__query .wp-block-post-template, .ovimes-journal-grid .wp-block-post-template { grid-template-columns: 1fr; gap: 40px; }
	.ovimes-home-journal__empty, .ovimes-empty-state { padding: 24px 20px; }
	.ovimes-footer__newsletter { padding-block: 48px; }
	.ovimes-form-placeholder { overflow-wrap: anywhere; }
	.ovimes-footer__main { padding-block: 48px 24px; }
	.ovimes-footer__main .wp-block-column { flex-basis: 100%; }
	.ovimes-footer__legal { gap: 4px 16px; margin-top: 32px; }
}

@media (max-width: 390px) {
	.ovimes-hero__media { height: 400px; }
	.ovimes-category-grid { gap: 16px 10px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
