/* OCI VNext. Component styles shared by the frontend and native block editor. */
:root {
  --oci-forest: var(--wp--preset--color--forest, #183d32);
  --oci-ink: var(--wp--preset--color--ink, #202d27);
  --oci-muted: var(--wp--preset--color--muted, #62675f);
  --oci-cream: var(--wp--preset--color--cream, #faf9f5);
  --oci-sage: var(--wp--preset--color--sage, #e9eee5);
  --oci-line: var(--wp--preset--color--line, #d8dcd2);
  --oci-serif: 'Inria Serif', Georgia, serif;
  --oci-sans: 'DM Sans', Arial, sans-serif;
  --oci-gutter: max(32px, calc((100% - 1200px) / 2));
}
body, .editor-styles-wrapper { font-family:var(--oci-sans); color:var(--oci-ink); background:var(--oci-cream); }
a { text-underline-offset:4px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline:3px solid #947438; outline-offset:4px; }
/* Astra's legacy outer-group padding does not belong to an OCI composition. */
.entry-content > .oci-page, .editor-styles-wrapper .oci-page { width:100%; max-width:none; padding:0; margin:0; }
.oci-page, .oci-page * { box-sizing:border-box; }
.oci-page .wp-block-group { margin-block-start:0; margin-block-end:0; }
.oci-page .wp-block-group > * { margin-block-start:0; }
.oci-page p { margin:0 0 16px; font-size:16px; line-height:1.6; }
.oci-page h1, .oci-page h2, .oci-page h3 { font-family:var(--oci-serif); font-weight:400; color:var(--oci-forest); letter-spacing:-.035em; line-height:1.08; margin:0 0 16px; }
.oci-page h1 { font-size:clamp(42px,4.1vw,60px); }
.oci-page h2 { font-size:clamp(34px,3.05vw,44px); }
.oci-page h3 { font-size:24px; }
.oci-page figure { margin:0; }
.oci-page img { display:block; }
.oci-page .oci-eyebrow { font:700 11px/1.5 var(--oci-sans); letter-spacing:.15em; text-transform:uppercase; color:var(--oci-forest); margin-bottom:12px; }
.oci-page .oci-lead { max-width:390px; font-size:17px; line-height:1.6; color:var(--oci-muted); }
.oci-page .oci-section { padding:48px var(--oci-gutter); }
.oci-page .oci-actions { display:flex; flex-wrap:wrap; gap:12px; margin:24px 0 0; }
.oci-page .wp-block-button { margin:0; }
.oci-page .wp-block-button .wp-block-button__link {
  display:inline-flex; align-items:center; justify-content:center; gap:16px;
  border:1px solid var(--oci-forest); border-radius:2px; min-height:44px;
  padding:12px 22px; font:600 13px/1.4 var(--oci-sans); letter-spacing:0;
  background:var(--oci-forest); color:#fff; box-shadow:none; text-decoration:none;
  transition:background .18s ease, color .18s ease, border-color .18s ease;
}
.oci-page .wp-block-button .wp-block-button__link:hover { background:#2e5445; border-color:#2e5445; }
.oci-page .oci-actions .wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button { background:transparent; color:var(--oci-forest); border:1px solid #86978b; font:600 13px/1.4 var(--oci-sans); padding:12px 22px; }
.oci-page .oci-actions .wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:hover { background:var(--oci-sage); }
.oci-page .oci-text-link { font-size:13px; margin:0; }
.oci-page .oci-text-link a { font-weight:600; text-decoration:none; border-bottom:1px solid #9ba79a; padding-bottom:4px; color:var(--oci-forest); }
/* A compact photographic introduction, with the same editable building blocks. */
.oci-reference .oci-reference-intro { display:grid; grid-template-columns:1fr 1.15fr; gap:48px; align-items:center; padding-top:32px; padding-bottom:32px; background:#f2f1e9; }
.oci-reference .oci-reference-copy { padding:16px 0; }
.oci-reference .oci-reference-copy h1 { max-width:430px; }
.oci-reference .oci-reference-photo { width:100%; height:340px; }
.oci-reference .oci-reference-photo img { width:100%; height:100%; object-fit:cover; object-position:center; }
/* Category images have a complete figure/link/image sizing chain. */
.oci-page .oci-categories { display:grid; grid-template-columns:1.05fr 2fr; align-items:center; gap:48px; padding-top:32px; padding-bottom:32px; background:var(--oci-cream); }
.oci-page .oci-category-intro h2 { max-width:300px; }
.oci-page .oci-category-intro .oci-text-link { margin-top:24px; }
.oci-page .oci-category-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; min-width:0; }
.oci-page .oci-category { min-width:0; text-align:center; }
.oci-page .oci-category .wp-block-image { width:100%; aspect-ratio:1; border-radius:50%; overflow:hidden; background:#f0eee7; margin:0 0 12px; }
.oci-page .oci-category .wp-block-image a { display:block; width:100%; height:100%; }
.oci-page .oci-category img { width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.oci-page .oci-category:hover img { transform:scale(1.03); }
.oci-page .oci-category h3 { font:500 14px/1.4 var(--oci-sans); letter-spacing:0; margin:0; }
.oci-page .oci-category a { color:var(--oci-forest); text-decoration:none; }
/* Native WooCommerce collection: prices, titles and option links are dynamic. */
.oci-page .oci-featured { background:#fff; padding-top:40px; padding-bottom:48px; }
.oci-page .oci-intro-row { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin:0 0 24px; }
.oci-page .oci-intro-row h2 { margin:0; }
.oci-page .oci-intro-row > .oci-text-link { flex-shrink:0; margin-bottom:5px; }
.oci-page .wp-block-woocommerce-product-collection { margin:0; }
.oci-page .oci-featured .wc-block-product-template { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin:0; padding:0; }
.oci-page .wc-block-product { min-width:0; display:flex; flex-direction:column; padding:0; background:transparent; border:0; }
.oci-page .wc-block-components-product-image { width:100%; aspect-ratio:1; background:#f7f7f3; margin:0 0 16px; }
.oci-page .wc-block-components-product-image a { display:block; width:100%; height:100%; }
.oci-page .wc-block-components-product-image img { display:block; width:100%; height:100%; object-fit:contain; transition:opacity .18s ease; }
.oci-page .wc-block-components-product-image:hover img { opacity:.92; }
.oci-page .wc-block-product .wp-block-post-title { font:500 14px/1.45 var(--oci-sans); color:var(--oci-ink); letter-spacing:0; margin:0 0 12px; }
.oci-page .wc-block-product .wp-block-post-title a { color:inherit; text-decoration:none; }
.oci-page .wp-block-woocommerce-product-price { margin: auto 0 0; }
.oci-page .wc-block-components-product-price { font:600 15px/1.5 var(--oci-sans); color:var(--oci-forest); margin:0; }
.oci-page .wc-block-product .wc-block-components-product-button { margin:14px 0 0; width:100%; }
.oci-page .wc-block-product .wc-block-components-product-button .wp-block-button__link { width:100%; background:transparent; border:1px solid var(--oci-line); color:var(--oci-forest); padding:10px 16px; font-size:12px; min-height:42px; }
.oci-page .wc-block-product .wc-block-components-product-button .wp-block-button__link:hover { color:white; background:var(--oci-forest); border-color:var(--oci-forest); }
/* The value number and copy each own a column; headings are never grid items. */
.oci-page .oci-values { padding-top:0; padding-bottom:0; background:var(--oci-sage); }
.oci-page .oci-values-layout { display:grid; grid-template-columns:1fr .85fr 1.15fr; gap:32px; align-items:center; }
.oci-page .oci-values-copy { padding:32px 0; }
.oci-page .oci-values-copy h2 { font-size:40px; max-width:310px; margin:0; }
.oci-page .oci-values-photo { height:360px; width:100%; }
.oci-page .oci-values-photo img { width:100%; height:100%; object-fit:cover; object-position:65% center; }
.oci-page .oci-values-items { padding:24px 0; }
.oci-page .oci-value { display:grid; grid-template-columns:28px minmax(0,1fr); align-content:start; gap:16px; border-bottom:1px solid #cdd5c6; padding:16px 0; }
.oci-page .oci-value:first-child { padding-top:0; }
.oci-page .oci-value:last-child { border:0; padding-bottom:0; }
.oci-page .oci-value .oci-number { grid-column:1; font:500 11px/1.5 var(--oci-sans); color:#637047; margin:4px 0 0; }
.oci-page .oci-value-copy { grid-column:2; min-width:0; }
.oci-page .oci-value h3 { font-size:23px; letter-spacing:-.025em; margin:0 0 6px; }
.oci-page .oci-value-copy p { font-size:13px; line-height:1.5; color:#505a50; margin:0; }
.oci-page .oci-story { display:grid; grid-template-columns:1fr 1.15fr; gap:64px; align-items:center; background:var(--oci-cream); }
.oci-page .oci-story-copy { max-width:425px; padding:8px 0; }
.oci-page .oci-story-copy > p:not(.oci-eyebrow) { font-size:15px; color:var(--oci-muted); }
.oci-page .oci-story-photo { width:100%; height:300px; }
.oci-page .oci-story-photo img { width:100%; height:100%; object-fit:cover; }
/* Astra builder owns the logo, navigation, controls and footer widgets. */
.ast-container { max-width:1280px; }
.ast-page-builder-template .site-content > .ast-container { max-width:none; padding:0; }
.ast-page-builder-template #primary { margin:0; }
.site-header .ast-builder-grid-row-container-inner { max-width:1264px; margin:auto; padding:0 32px; }
.site-header .ast-primary-header-bar { border-bottom:1px solid #e0e3d9; background:var(--oci-cream); }
.site-header .site-primary-header-wrap { max-width:1264px; padding:0 32px; }
.site-header .ast-primary-header-bar .ast-builder-grid-row { min-height:88px; }
.site-header .site-branding { padding:4px 0; line-height:1; }
.site-header .custom-logo { width:120px; max-width:none; height:auto; }
.site-header .ast-above-header-bar { background:var(--oci-forest); border:0; }
.site-header .ast-above-header .ast-builder-grid-row { min-height:28px; }
.site-header .ast-header-html-1 { font:400 11px/1.5 var(--oci-sans); letter-spacing:.06em; }
.site-header .ast-header-html-1 p { margin:0; font:inherit; }
.site-header .ast-header-html-1 a { color:#f4f4eb; text-decoration:none; }
.site-header .main-header-menu .menu-link { font:500 14px/1.4 var(--oci-sans); color:var(--oci-forest); padding:18px; }
.site-header .main-header-menu .menu-link:hover { color:#6a7554; }
.site-header .site-header-primary-section-right { gap:8px; }
.site-header .ast-header-search .ast-icon svg, .site-header .ast-header-account .ast-icon svg { width:20px; height:20px; color:var(--oci-forest); }
.site-header .ast-header-account-wrap { color:var(--oci-forest); }
.site-header .ast-site-header-cart .ast-woo-header-cart-info-wrap { display:none; }
.site-header .ast-header-woo-cart a { color:var(--oci-forest); }
.site-header .ast-header-woo-cart { min-height:0; align-self:center; }
.site-header .ast-header-woo-cart .ast-site-header-cart,
.site-header .ast-header-woo-cart .ast-site-header-cart-li,
.site-header .ast-header-woo-cart .ast-addon-cart-wrap { line-height:1.4; }
.site-header .ast-site-header-cart .ast-cart-menu-wrap .count { border:0; }
.site-header .ast-header-woo-cart .ast-cart-menu-wrap { line-height:1; }
.site-header .ast-builder-menu-mobile .menu-item > .menu-link { font:500 15px/1.4 var(--oci-sans); padding:14px 24px; }
.site-header #ast-mobile-site-navigation .menu-link { display:flex; align-items:center; min-height:44px; padding:12px 24px; font:500 15px/1.4 var(--oci-sans); }
.site-footer, .site-footer .site-primary-footer-wrap, .site-footer .site-below-footer-wrap { background:var(--oci-forest); color:#edf1e8; }
.site-footer .site-primary-footer-wrap { padding:32px 32px 28px; border:0; }
.site-footer .site-primary-footer-wrap .ast-builder-grid-row-container-inner { width:100%; max-width:1200px; margin:auto; }
.site-footer .site-primary-footer-wrap .ast-builder-grid-row { grid-template-columns:1.7fr 1fr 1fr; gap:64px; }
.site-footer .widget { margin:0; }
.site-footer .ast-builder-layout-element { text-align:left; justify-content:flex-start; }
.site-footer a { color:#edf1e8; text-decoration:none; }
.site-footer a:hover { color:#fff; text-decoration:underline; }
.site-footer h3 { font:600 13px/1.4 var(--oci-sans); color:#fff; text-align:left; letter-spacing:.03em; margin:0 0 16px; }
.site-footer p { font:400 13px/1.75 var(--oci-sans); color:#d0dacd; text-align:left; margin:0 0 8px; }
.site-footer .oci-footer-brand { display:flex; align-items:center; gap:20px; }
.site-footer .wp-block-image { margin:0; flex:0 0 112px; }
.site-footer .wp-block-image img { width:112px; height:auto; background:var(--oci-cream); padding:8px; }
.site-footer .oci-footer-links a { display:inline-block; padding:3px 0; }
.site-footer .site-below-footer-wrap { min-height:48px; padding:14px 32px; border-top:1px solid #3a584a; }
.site-footer .site-below-footer-wrap p { font-size:11px; margin:0; color:#c8d4c5; }
/* Existing representative WooCommerce shop and detail styles. */
.woocommerce .site-content > .ast-container { padding-top:36px; padding-bottom:64px; }
.woocommerce .woocommerce-breadcrumb { font-size:12px; margin-bottom:28px; }
.woocommerce .woocommerce-products-header__title { font:400 48px/1.1 var(--oci-serif); }
.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering select { font-size:13px; color:var(--oci-muted); }
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap { background:#f7f7f3; margin-bottom:16px; }
.woocommerce ul.products li.product img { aspect-ratio:4/5; object-fit:contain; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font:500 14px/1.45 var(--oci-sans); }
.woocommerce ul.products li.product .price { font-size:15px; font-weight:600; color:var(--oci-forest); }
.woocommerce ul.products li.product .button { background:transparent; color:var(--oci-forest); border:1px solid var(--oci-line); border-radius:2px; font-size:12px; }
.woocommerce div.product .product_title { font:400 38px/1.15 var(--oci-serif); margin-bottom:20px; }
.woocommerce div.product p.price { font-size:22px; color:var(--oci-forest); }
.woocommerce div.product .woocommerce-product-details__short-description { font-size:15px; color:var(--oci-muted); }
.woocommerce div.product form.cart .variations select { min-height:46px; border:1px solid var(--oci-line); background:#fff; }
.woocommerce div.product .product_meta { font-size:12px; border-top:1px solid var(--oci-line); padding-top:18px; }
@media (max-width:1100px) {
  .oci-reference .oci-reference-intro { gap:32px; }
  .oci-page .oci-categories { gap:32px; grid-template-columns:1fr 1.8fr; }
  .oci-page .oci-category-grid { gap:16px; }
  .oci-page .oci-values-layout { gap:24px; grid-template-columns:1fr .8fr 1.2fr; }
  .oci-page .oci-values-copy h2 { font-size:34px; }
  .oci-page .oci-story { gap:40px; }
  .site-header .main-header-menu .menu-link { padding:12px; font-size:13px; }
  .site-footer .site-primary-footer-wrap .ast-builder-grid-row { gap:32px; }
  .site-footer .oci-footer-brand { align-items:flex-start; flex-direction:column; gap:16px; }
}
@media (max-width:921px) {
  :root { --oci-gutter:32px; }
  .site-header #ast-mobile-header .site-header-primary-section-right { gap:4px; }
  .site-header #ast-mobile-header .site-header-primary-section-right > .ast-builder-layout-element { padding:0; }
  .site-header #ast-mobile-header .ast-header-search .ast-search-menu-icon .slide-search,
  .site-header #ast-mobile-header .ast-header-account a,
  .site-header #ast-mobile-header .ast-header-woo-cart .cart-container { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; }
  .site-header .ast-primary-header-bar .ast-builder-grid-row { min-height:80px; }
  .site-header .custom-logo { width:108px; }
  .oci-reference .oci-reference-intro { grid-template-columns:1fr 1fr; gap:24px; }
  .oci-reference .oci-reference-photo { height:350px; }
  .oci-page h1 { font-size:46px; }
  .oci-page .oci-lead { font-size:15px; }
  .oci-page .oci-categories { gap:24px; grid-template-columns:.85fr 1.4fr; }
  .oci-page .oci-category-grid { gap:16px; }
  .oci-page .oci-category h3 { font-size:12px; }
  .oci-page .oci-category-intro h2 { font-size:34px; }
  .oci-page .oci-featured .wc-block-product-template { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 24px; }
  .oci-page .wc-block-components-product-image { aspect-ratio:1; }
  .oci-page .wc-block-components-product-image img { aspect-ratio:1; }
  .oci-page .oci-values-layout { grid-template-columns:1fr 1fr; gap:0 32px; }
  .oci-page .oci-values-copy h2 { max-width:290px; font-size:38px; }
  .oci-page .oci-values-photo { height:250px; }
  .oci-page .oci-values-items { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding:24px 0 32px; }
  .oci-page .oci-value { grid-template-columns:1fr; gap:8px; padding:0; border:0; }
  .oci-page .oci-value-copy { grid-column:1; }
  .oci-page .oci-value h3 { font-size:22px; }
  .oci-page .oci-story { gap:32px; grid-template-columns:1fr 1fr; }
  .oci-page .oci-story-photo { height:340px; }
}
@media (max-width:600px) {
  :root { --oci-gutter:24px; }
  .oci-page .oci-section { padding:32px var(--oci-gutter); }
  .oci-page h1 { font-size:44px; }
  .oci-page h2 { font-size:34px; }
  .oci-page .oci-eyebrow { font-size:10px; letter-spacing:.13em; }
  .oci-page .oci-actions { gap:10px; margin-top:20px; }
  .oci-page .wp-block-button .wp-block-button__link { padding:11px 18px; }
  .oci-reference .oci-reference-intro { grid-template-columns:1fr; gap:24px; padding-top:24px; padding-bottom:24px; }
  .oci-reference .oci-reference-copy { padding:0; }
  .oci-reference .oci-reference-copy h1 { max-width:300px; }
  .oci-reference .oci-reference-copy .oci-lead { margin:0; }
  .oci-reference .oci-reference-photo { height:210px; }
  .oci-page .oci-categories { grid-template-columns:1fr; gap:24px; }
  .oci-page .oci-category-intro h2 { font-size:32px; max-width:none; margin:0 0 12px; }
  .oci-page .oci-category-intro .oci-text-link { margin-top:0; }
  .oci-page .oci-category-grid { gap:14px; }
  .oci-page .oci-category .wp-block-image { margin-bottom:10px; }
  .oci-page .oci-category h3 { font-size:12px; }
  .oci-page .oci-intro-row { display:block; margin-bottom:24px; }
  .oci-page .oci-intro-row > .oci-text-link { margin-top:16px; }
  .oci-page .oci-featured .wc-block-product-template { gap:28px 14px; }
  .oci-page .wc-block-components-product-image { margin-bottom:12px; }
  .oci-page .wc-block-product .wp-block-post-title { font-size:13px; line-height:1.45; margin-bottom:10px; }
  .oci-page .wc-block-components-product-price { font-size:14px; }
  .oci-page .wc-block-product .wp-block-button__link { padding:10px; font-size:12px; }
  .oci-page .oci-values { padding:0 var(--oci-gutter) 32px; }
  .oci-page .oci-values-layout { grid-template-columns:1fr; }
  .oci-page .oci-values-copy { padding:32px 0 24px; }
  .oci-page .oci-values-copy h2 { max-width:310px; font-size:36px; }
  .oci-page .oci-values-photo { height:220px; }
  .oci-page .oci-values-items { grid-template-columns:1fr; gap:0; padding:24px 0 0; }
  .oci-page .oci-value { grid-template-columns:28px minmax(0,1fr); gap:16px; padding:16px 0; border-bottom:1px solid #cdd5c6; }
  .oci-page .oci-value-copy { grid-column:2; }
  .oci-page .oci-value h3 { font-size:24px; }
  .oci-page .oci-value-copy p { font-size:14px; }
  .oci-page .oci-story { display:flex; flex-direction:column; gap:24px; }
  .oci-page .oci-story-copy { padding:0; }
  .oci-page .oci-story-photo { height:230px; }
  .site-header .ast-builder-grid-row-container-inner { padding:0 24px; }
  .site-header .ast-primary-header-bar .ast-builder-grid-row { min-height:76px; }
  .site-header .custom-logo { width:100px; }
  .site-header .ast-header-html-1 { font-size:10px; letter-spacing:.035em; }
  .site-footer .site-primary-footer-wrap { padding:32px 24px; }
  .site-footer .site-primary-footer-wrap .ast-builder-grid-row { grid-template-columns:1fr 1fr; gap:32px 24px; }
  .site-footer .site-footer-primary-section-1 { grid-column:1/-1; }
  .site-footer .oci-footer-brand { flex-direction:row; align-items:center; gap:20px; }
  .site-footer .wp-block-image { flex-basis:104px; }
  .site-footer .wp-block-image img { width:104px; padding:8px; }
  .site-footer .site-below-footer-wrap { padding:16px 24px; }
}
@media (prefers-reduced-motion:reduce) { .oci-page *, .oci-page *::before, .oci-page *::after { transition:none; animation:none; scroll-behavior:auto; } }
