/*
Theme Name: African Rhapsody
Theme URI: https://africanrhapsody.com
Author: African Rhapsody
Description: Block theme for African Rhapsody — African botanical skincare & wellness. Rooted in African botany. Refined by science. WooCommerce ready.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: african-rhapsody
Tags: e-commerce, block-theme, full-site-editing, wide-blocks, custom-colors
*/

/* ---------------------------------------------------------------------------
   Design-system tokens.
   theme.json owns colour/type/spacing presets (see the WP preset vars below);
   this file adds the brand-specific rules blocks can't express.
   Every value here mirrors the design system in ../../styles.css — change it
   there first, then mirror.
--------------------------------------------------------------------------- */

:root {
  /* mirror of tokens/colors.css */
  --ar-navy-900:#131F38; --ar-navy-800:#1B2B4A; --ar-navy-700:#2A3D63;
  --ar-copper-700:#9C5F30; --ar-copper-600:#BE7A42; --ar-copper-300:#E3B88E; --ar-copper-100:#F5E4D3;
  --ar-teal-700:#1F8E7E; --ar-teal-600:#2FB0A0; --ar-teal-200:#B8E8E0; --ar-teal-100:#E1F4F0;
  --ar-green-600:#57B947; --ar-gold-600:#C9A227;
  --ar-cream:#FBF7F0; --ar-sand-100:#F3ECE0; --ar-sand-200:#E7DCC9;
  --ar-stone-300:#CFC4B4; --ar-stone-500:#9C9182;
  --ar-ink-700:#4A4438; --ar-ink-900:#2A261E;

  --ar-radius-sm:8px; --ar-radius-md:14px; --ar-radius-lg:20px; --ar-radius-xl:28px; --ar-radius-pill:999px;
  --ar-shadow-sm:0 2px 8px rgba(42,38,30,.07);
  --ar-shadow-md:0 10px 28px rgba(42,38,30,.09);
  --ar-shadow-lg:0 22px 55px rgba(19,31,56,.14);
  --ar-ease:cubic-bezier(.22,.61,.36,1);
}

body { background: var(--ar-cream); color: var(--ar-ink-900); }

/* Eyebrow / label caps — the brand's letterspaced uppercase treatment.
   Add the class in the block editor: "Advanced → Additional CSS class". */
.ar-eyebrow {
  font-family: var(--wp--preset--font-family--jost);
  text-transform: uppercase; letter-spacing: .22em;
  font-size: .75rem; font-weight: 600; color: var(--ar-copper-600);
}

/* ---------------------------------------------------------------------------
   Template support classes (used by templates/ and parts/)
--------------------------------------------------------------------------- */

/* Plain list — footer link columns (register_block_style: ar-plain-list) */
.is-style-ar-plain-list { list-style: none; padding-left: 0; }
.is-style-ar-plain-list li { margin: 0; }
.is-style-ar-plain-list a { color: var(--ar-sand-200); }
.is-style-ar-plain-list a:hover { color: #fff; }

/* Brand card group (register_block_style: ar-card) */
.is-style-ar-card {
  background: #fff; border: 1px solid var(--ar-sand-200);
  border-radius: var(--ar-radius-lg); box-shadow: var(--ar-shadow-sm);
  padding: 1.5rem;
}

/* Trust / secure lines — Lucide icon injected before the text */
.ar-trust, .ar-secure { display: flex; align-items: center; gap: 10px; margin: 0; }
.ar-trust::before, .ar-secure::before {
  content: ""; width: 20px; height: 20px; flex: none;
  background: currentColor; color: var(--ar-teal-600);
  -webkit-mask: var(--ar-icon) center / contain no-repeat;
  mask: var(--ar-icon) center / contain no-repeat;
}
/* Lucide "leaf", "shield-check", "truck", "lock", "rotate-ccw" outlines.
   Swap --ar-icon per element in the block's Additional CSS if a different
   glyph is wanted; default is the leaf. */
.ar-trust::before { --ar-icon: url("data:image/svg+xml;utf8,<svg 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'><path d='M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z'/><path d='M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12'/></svg>"); }
.ar-secure::before { --ar-icon: url("data:image/svg+xml;utf8,<svg 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'><rect width='18' height='11' x='3' y='11' rx='2'/><path d='M7 11V7a5 5 0 0 1 10 0v4'/></svg>"); }

/* Newsletter form — footer */
.ar-newsletter { display: flex; gap: 8px; margin-top: .5rem; }
.ar-newsletter input {
  flex: 1; min-width: 0; font-family: var(--wp--preset--font-family--jost); font-size: 1rem;
  background: #fff; color: var(--ar-ink-900);
  border: 1.5px solid var(--ar-stone-300); border-radius: var(--ar-radius-md); padding: 11px 14px;
}
.ar-newsletter input:focus { outline: none; border-color: var(--ar-teal-600); box-shadow: 0 0 0 3px rgba(47,176,160,.35); }
.ar-newsletter button {
  font-family: var(--wp--preset--font-family--jost); font-weight: 600; letter-spacing: .03em; cursor: pointer;
  background: var(--ar-teal-600); color: #0C3A34; border: 1.5px solid var(--ar-teal-600);
  border-radius: var(--ar-radius-md); padding: 12px 24px;
  transition: background 150ms var(--ar-ease);
}
.ar-newsletter button:hover { background: var(--ar-teal-700); color: #fff; }

/* Shop-by-concern grid — product category tiles on the front page */
.ar-concern-grid ul.wc-block-product-categories-list {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;
}
.ar-concern-grid li { position: relative; aspect-ratio: 4/5; border-radius: var(--ar-radius-lg); overflow: hidden; box-shadow: var(--ar-shadow-sm); }
.ar-concern-grid li a { position: absolute; inset: 0; display: block; text-decoration: none; }
.ar-concern-grid li .wc-block-product-categories-list-item__image { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; float: none !important; }
.ar-concern-grid li .wc-block-product-categories-list-item__image img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; display: block; transition: transform .5s var(--ar-ease); }
.ar-concern-grid li a::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgba(19,31,56,.85), rgba(19,31,56,.08) 60%); }
.ar-concern-grid li .wc-block-product-categories-list-item__name { position: absolute; left: 22px; right: 22px; bottom: 18px; z-index: 2; color: #fff; font-family: var(--wp--preset--font-family--cormorant); font-size: 1.75rem; font-weight: 500; line-height: 1.1; }
.ar-concern-grid li:hover .wc-block-product-categories-list-item__image img { transform: scale(1.05); }
.ar-concern-grid li:hover .wc-block-product-categories-list-item__name { color: var(--ar-copper-300); }

/* Filter pills — shop toolbar */
.ar-filter-pills { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.ar-filter-pills a, .ar-filter-pills button, .ar-filter-pills .wc-block-components-filter-submit-button {
  font-family: var(--wp--preset--font-family--jost); font-size: .875rem; font-weight: 500; line-height: 1.4;
  padding: 8px 18px; border-radius: var(--ar-radius-pill); text-decoration: none;
  border: 1.5px solid var(--ar-stone-300); background: transparent; color: var(--ar-navy-800);
  transition: all 150ms var(--ar-ease);
}
.ar-filter-pills a:hover { border-color: var(--ar-navy-800); color: var(--ar-navy-800); }
.ar-filter-pills a.is-active, .ar-filter-pills button[aria-pressed="true"], .ar-filter-pills .is-active {
  background: var(--ar-navy-800); border-color: var(--ar-navy-800); color: var(--ar-cream);
}

/* Product tile group (archive-product template) */
.ar-product-tile { overflow: hidden; transition: transform 260ms var(--ar-ease), box-shadow 260ms var(--ar-ease); }
.ar-product-tile:hover { transform: translateY(-4px); box-shadow: var(--ar-shadow-lg); }
.ar-product-tile .wc-block-components-product-image img { border-radius: 0; }

/* Product details tabs styled as the PDP accordion */
.ar-accordion .wc-tab, .ar-accordion .wp-block-woocommerce-product-details { border: none; }
.ar-accordion h2 { font-family: var(--wp--preset--font-family--jost); font-size: 1rem; font-weight: 600; color: var(--ar-navy-800); }

/* Checkout — order summary panel matches the kit */
.ar-checkout .wp-block-woocommerce-checkout-totals-block {
  background: #fff; border: 1px solid var(--ar-sand-200);
  border-radius: var(--ar-radius-lg); box-shadow: var(--ar-shadow-sm); padding: 1.5rem;
}
.ar-checkout .wc-block-components-checkout-step__title {
  font-family: var(--wp--preset--font-family--cormorant); font-weight: 500; font-size: 1.75rem; color: var(--ar-navy-800);
}
.ar-checkout .wc-block-components-radio-control__option {
  position: relative;
  border: 1.5px solid var(--ar-stone-300); border-radius: var(--ar-radius-md);
  padding: 1rem 1.25rem 1rem 3rem; margin-bottom: .75rem; background: #fff;
  transition: border-color 150ms var(--ar-ease), box-shadow 150ms var(--ar-ease);
}
/* keep the radio inside the left padding so it never overlaps the label text */
.ar-checkout .wc-block-components-radio-control__input {
  position: absolute; left: 1.05rem; top: 1.15rem; margin: 0;
}
.ar-checkout .wc-block-components-radio-control__option--checked-option-highlighted,
.ar-checkout .wc-block-components-radio-control__option:has(input:checked) {
  border-color: var(--ar-teal-600); background: var(--ar-teal-100); box-shadow: none;
}

/* Checkout form fields — one consistent brand style (border, radius, focus) */
.ar-checkout .wc-block-components-text-input input,
.ar-checkout .wc-block-components-text-input textarea,
.ar-checkout .wc-blocks-components-select__select,
.ar-checkout .wc-block-components-address-form input,
.ar-checkout .wc-block-components-address-form select,
.ar-checkout select {
  border: 1.5px solid var(--ar-stone-300) !important;
  border-radius: var(--ar-radius-md) !important;
  font-family: var(--wp--preset--font-family--jost);
  background: #fff;
}
.ar-checkout .wc-block-components-text-input input:focus,
.ar-checkout .wc-block-components-text-input textarea:focus,
.ar-checkout .wc-blocks-components-select__select:focus,
.ar-checkout .wc-block-components-address-form input:focus,
.ar-checkout select:focus {
  border-color: var(--ar-teal-600) !important;
  box-shadow: 0 0 0 3px rgba(47,176,160,.16) !important;
  outline: none;
}
/* the floating-label wrapper shouldn't draw its own competing border */
.ar-checkout .wc-block-components-text-input.is-active label,
.ar-checkout .wc-block-components-text-input:focus-within label { color: var(--ar-teal-700); }

/* Quantity stepper — the ± wrapper added by assets/js/quantity-stepper.js */
.quantity.ar-stepper {
  display: inline-flex; align-items: center; overflow: hidden;
  border: 1.5px solid var(--ar-stone-300); border-radius: var(--ar-radius-pill); background: #fff;
}
.quantity.ar-stepper .ar-stepper__btn {
  width: 40px; height: 40px; border: none; background: transparent; cursor: pointer;
  font-size: 18px; line-height: 1; color: var(--ar-navy-800);
  transition: background 150ms var(--ar-ease);
}
.quantity.ar-stepper .ar-stepper__btn:hover { background: var(--ar-sand-100); }
.quantity.ar-stepper input.qty {
  border: none; border-radius: 0; padding: 10px 4px; width: 44px; box-shadow: none;
  -moz-appearance: textfield;
}
.quantity.ar-stepper input.qty::-webkit-outer-spin-button,
.quantity.ar-stepper input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Mini-cart drawer — matches CartDrawer.jsx */
.wc-block-mini-cart__drawer .wc-block-components-drawer { background: #fff; }
.wc-block-mini-cart__title { font-family: var(--wp--preset--font-family--cormorant); font-weight: 500; font-size: 1.75rem; color: var(--ar-navy-800); }

@media (max-width: 781px) {
  .ar-concern-grid ul.wc-block-product-categories-list { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------------------
   WooCommerce
--------------------------------------------------------------------------- */

/* Buttons — navy primary, copper for the high-emphasis checkout CTA */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .button.alt {
  font-family: var(--wp--preset--font-family--jost);
  font-weight: 600; font-size: 1rem; letter-spacing: .03em; line-height: 1;
  padding: 12px 24px; border-radius: var(--ar-radius-md);
  background: var(--ar-navy-800); color: var(--ar-cream);
  border: 1.5px solid var(--ar-navy-800);
  transition: background 150ms var(--ar-ease), transform 150ms var(--ar-ease);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce .button.alt:hover { background: var(--ar-navy-700); border-color: var(--ar-navy-700); color: var(--ar-cream); }
.woocommerce a.button:active, .woocommerce button.button:active { transform: translateY(1px); }

.woocommerce #place_order,
.woocommerce .checkout-button {
  background: var(--ar-copper-600); border-color: var(--ar-copper-600); color: #fff;
  border-radius: var(--ar-radius-pill); padding: 16px 32px; font-size: 1.125rem;
}
.woocommerce #place_order:hover,
.woocommerce .checkout-button:hover { background: var(--ar-copper-700); border-color: var(--ar-copper-700); }

/* Product tiles — matches the ProductCard component */
.woocommerce ul.products li.product {
  background: #fff; border: 1px solid var(--ar-sand-200);
  border-radius: var(--ar-radius-lg); overflow: hidden;
  box-shadow: var(--ar-shadow-sm);
  transition: transform 260ms var(--ar-ease), box-shadow 260ms var(--ar-ease);
}
.woocommerce ul.products li.product:hover { transform: translateY(-4px); box-shadow: var(--ar-shadow-lg); }
.woocommerce ul.products li.product img { border-radius: 0; aspect-ratio: 4/5; object-fit: cover; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--wp--preset--font-family--cormorant);
  font-weight: 500; font-size: 1.375rem; line-height: 1.1; color: var(--ar-navy-800); padding: 0 1.5rem;
}
.woocommerce ul.products li.product .price { font-family: var(--wp--preset--font-family--jost); font-weight: 600; color: var(--ar-navy-800); padding: 0 1.5rem; }
.woocommerce ul.products li.product .price del { color: var(--ar-stone-500); font-weight: 400; }
.woocommerce ul.products li.product .price ins { color: var(--ar-copper-600); text-decoration: none; }

/* Sale / new flags — matches the Badge component */
.woocommerce span.onsale {
  background: var(--ar-copper-600); color: #fff;
  font-family: var(--wp--preset--font-family--jost);
  font-size: .75rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  padding: 4px 10px; border-radius: var(--ar-radius-pill); min-height: 0; min-width: 0; line-height: 1.2;
  top: 12px; left: 12px; right: auto;
}

/* Star ratings — copper */
.woocommerce .star-rating span::before,
.woocommerce p.stars a::before { color: var(--ar-copper-600); }

/* Form fields — matches Input/Select */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
  font-family: var(--wp--preset--font-family--jost); font-size: 1rem;
  background: #fff; color: var(--ar-ink-900);
  border: 1.5px solid var(--ar-stone-300); border-radius: var(--ar-radius-md);
  padding: 11px 14px; height: auto;
  transition: border-color 150ms var(--ar-ease), box-shadow 150ms var(--ar-ease);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus {
  outline: none; border-color: var(--ar-teal-600); box-shadow: 0 0 0 3px rgba(47,176,160,.35);
}
.woocommerce form .form-row label { font-family: var(--wp--preset--font-family--jost); font-size: .875rem; font-weight: 500; color: var(--ar-ink-900); }

/* Quantity stepper */
.woocommerce .quantity .qty {
  font-family: var(--wp--preset--font-family--jost); font-weight: 600; text-align: center;
  border: 1.5px solid var(--ar-stone-300); border-radius: var(--ar-radius-pill);
  padding: 10px 8px; background: #fff; color: var(--ar-ink-900);
}

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  font-family: var(--wp--preset--font-family--jost);
  border-radius: var(--ar-radius-md); border-top: none; background: var(--ar-sand-100);
  box-shadow: var(--ar-shadow-sm); color: var(--ar-ink-900);
}
.woocommerce-message::before { color: var(--ar-teal-700); }
.woocommerce-info::before { color: var(--ar-navy-800); }
.woocommerce-error { background: #FBE9E5; }
.woocommerce-error::before { color: #C0442E; }

/* Cart & checkout tables */
.woocommerce table.shop_table {
  border: 1px solid var(--ar-sand-200); border-radius: var(--ar-radius-lg);
  border-collapse: separate; overflow: hidden; background: #fff;
}
.woocommerce table.shop_table th {
  font-family: var(--wp--preset--font-family--jost);
  font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ar-stone-500); font-weight: 600;
}
.woocommerce-checkout #payment { background: var(--ar-sand-100); border-radius: var(--ar-radius-lg); }
.woocommerce-checkout #payment div.payment_box { background: #fff; border-radius: var(--ar-radius-md); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fff; }

/* Single product */
.woocommerce div.product .product_title {
  font-family: var(--wp--preset--font-family--cormorant);
  font-weight: 400; font-size: 3.5rem; line-height: 1; color: var(--ar-navy-800);
}
.woocommerce div.product p.price { font-family: var(--wp--preset--font-family--jost); font-weight: 600; font-size: 1.75rem; color: var(--ar-navy-800); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ar-copper-600); }
.woocommerce div.product div.images img { border-radius: var(--ar-radius-xl); box-shadow: var(--ar-shadow-md); }

/* Links */
a { color: var(--ar-teal-600); text-decoration: none; transition: color 150ms var(--ar-ease); }
a:hover { color: var(--ar-copper-600); }

/* ---------------------------------------------------------------------------
   Full-bleed sections sit flush against each other. WordPress applies a 24px
   root block-gap (:where(.wp-site-blocks) > * { margin-block-start:24px }) which
   showed the cream page colour as a stripe between every coloured section.
   Each section carries its own padding, so we cancel the inter-section margin.
   --------------------------------------------------------------------------- */
.wp-site-blocks > * { margin-block: 0; }

/* ---------------------------------------------------------------------------
   Header actions — even row of thin line icons (search · account · wishlist · cart)
   --------------------------------------------------------------------------- */
.ar-actions { display: flex; align-items: center; gap: 20px; }
.ar-icon-link { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; color: var(--ar-navy-800); }
.ar-icon-link:hover { color: var(--ar-copper-600); }
.ar-icon-link svg { width: 22px; height: 22px; stroke-width: 1.75; }
/* search rendered as a bare icon (button-only variant) */
.ar-actions .wp-block-search { margin: 0; }
.ar-actions .wp-block-search__button { background: transparent; border: 0; padding: 0; min-width: 0; color: var(--ar-navy-800); box-shadow: none; }
.ar-actions .wp-block-search__button:hover { background: transparent; color: var(--ar-copper-600); }
.ar-actions .wp-block-search__button svg { width: 22px; height: 22px; fill: currentColor; }
.ar-actions .wp-block-search__input { border: 1.5px solid var(--ar-stone-300); border-radius: 999px; }
/* mini-cart icon aligns with the set */
.ar-actions .wc-block-mini-cart__button { padding: 0; color: var(--ar-navy-800); }
.ar-actions .wc-block-mini-cart__button:hover { color: var(--ar-copper-600); }
.ar-actions .wc-block-mini-cart__amount { display: none; }
.ar-actions .wc-block-mini-cart__badge { background: var(--ar-copper-600); color: #fff; }
.ar-actions .wc-block-mini-cart__icon { width: 22px; height: 22px; }

/* ---------------------------------------------------------------------------
   Shop toolbar — result count + sort dropdown as a brand pill
   --------------------------------------------------------------------------- */
.woocommerce-result-count { font-family: var(--wp--preset--font-family--jost); font-size: .875rem; color: var(--ar-stone-500); margin: 0; }
.wc-block-catalog-sorting select,
.woocommerce-ordering select.orderby,
.wc-blocks-components-select__select {
  font-family: var(--wp--preset--font-family--jost); font-size: .875rem; font-weight: 500; color: var(--ar-navy-800);
  padding: 9px 42px 9px 18px; line-height: 1.3;
  border: 1.5px solid var(--ar-stone-300); border-radius: var(--ar-radius-pill);
  background-color: #fff;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B2B4A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 15px;
  -webkit-appearance: none; -moz-appearance: none; appearance: none; cursor: pointer;
  transition: border-color 150ms var(--ar-ease);
}
.wc-block-catalog-sorting select:hover,
.woocommerce-ordering select.orderby:hover { border-color: var(--ar-navy-800); }
.wc-block-catalog-sorting select:focus,
.woocommerce-ordering select.orderby:focus { outline: none; border-color: var(--ar-teal-600); box-shadow: 0 0 0 3px rgba(47,176,160,.25); }
.wc-block-catalog-sorting { margin: 0; }

/* Product tile typography — match the design system ProductCard spec
   (name: Cormorant 500 / 1.375rem / navy; not the teal link colour). */
.ar-product-tile .wp-block-post-title { margin: 0; }
.ar-product-tile .wp-block-post-title,
.ar-product-tile .wp-block-post-title a {
  font-family: var(--wp--preset--font-family--cormorant);
  font-weight: 500; font-size: 1.375rem; line-height: 1.15;
  color: var(--ar-navy-800); text-decoration: none;
}
.ar-product-tile .wp-block-post-title a:hover { color: var(--ar-copper-600); }
.ar-product-tile .wp-block-post-terms { color: var(--ar-teal-600); }
.ar-product-tile .woocommerce-Price-amount,
.ar-product-tile .wc-block-components-product-price { font-family: var(--wp--preset--font-family--jost); font-weight: 600; color: var(--ar-navy-800); }

/* Header action row — align search/account/wishlist/cart on one baseline,
   and make the cart count badge visible. */
.ar-actions { align-items: center; }
.ar-actions > * { display: inline-flex; align-items: center; }
.ar-actions .wp-block-search.wp-block-search__button-only { line-height: 0; }
.ar-actions .wp-block-search__inside-wrapper { border: 0; }
.ar-actions .wp-block-search__button { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; margin: 0; }
.ar-actions .wp-block-search__button svg { width: 22px; height: 22px; }
.ar-actions .wc-block-mini-cart { display: inline-flex; align-items: center; }
.ar-actions .wc-block-mini-cart__button { display: inline-flex; align-items: center; height: 24px; position: relative; }
.ar-actions .wc-block-mini-cart__badge {
  background: var(--ar-copper-600); color: #fff;
  min-width: 17px; height: 17px; border-radius: 999px;
  font-size: 10px; font-weight: 700; line-height: 1;
  display: inline-flex; align-items: center; justify-content: center; padding: 0 4px;
}

/* Smaller price so the price + Add-to-cart row fits without the button wrapping */
.ar-product-tile .woocommerce-Price-amount,
.ar-product-tile .wc-block-components-product-price,
.ar-product-tile .wc-block-components-product-price__value { font-size: 0.8125rem; }
.ar-product-tile .wp-block-woocommerce-product-button .wp-block-button__link,
.ar-product-tile .wc-block-components-product-button a,
.ar-product-tile .wc-block-components-product-button__button { white-space: nowrap; padding-left: 16px; padding-right: 16px; }

/* Header icon alignment fixes + hide empty (0-item) cart badge */
.ar-actions { gap: 20px; }
.ar-actions .wp-block-search.wp-block-search__button-only,
.ar-actions .wp-block-search__inside-wrapper { display: inline-flex; align-items: center; height: 24px; margin: 0; padding: 0; }
.ar-actions .wp-block-search__button { height: 24px; width: 24px; min-height: 0; padding: 0; margin: 0; display: inline-flex; align-items: center; justify-content: center; line-height: 0; }
.ar-actions .wc-block-mini-cart, .ar-actions .wc-block-mini-cart__button { display: inline-flex; align-items: center; height: 24px; }
.ar-actions .wc-block-mini-cart__badge:empty { display: none; }
.ar-actions .ar-icon-link { height: 24px; }

/* Accessibility — visible keyboard focus (WCAG 2.4.7 / 2.4.11) */
:focus-visible { outline: 2px solid var(--ar-teal-700); outline-offset: 2px; border-radius: 3px; }
.wp-block-button__link:focus-visible, .wc-block-components-button:focus-visible { outline-color: var(--ar-navy-800); outline-offset: 3px; }
.site-footer :focus-visible, .wp-block-cover :focus-visible, .contact-aside :focus-visible { outline-color: var(--ar-copper-300); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

/* Visually-hidden text for screen readers (labels, etc.) */
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { position: fixed; top: 12px; left: 16px; width: auto; height: auto; padding: 10px 16px; background: #fff; z-index: 100000; clip: auto; }

/* Cart count bubble — copper background, white number (authoritative) */
.ar-actions .wc-block-mini-cart__badge {
  background: var(--ar-copper-600) !important;
  color: #fff !important;
  min-width: 18px; height: 18px; padding: 0 5px;
  border-radius: 999px;
  font-family: var(--wp--preset--font-family--jost);
  font-size: 11px; font-weight: 700; line-height: 1;
  display: inline-flex; align-items: center; justify-content: center;
}
.ar-actions .wc-block-mini-cart__badge:empty { display: none; }

/* ===== Design-audit Phase 1: mobile + chat launcher ===== */
@media (max-width: 600px){
  .ar-trust { flex: 1 1 100% !important; }              /* trust band stacks, no cramped 2-col */
  .wp-block-cover { padding-top: 3.25rem !important; padding-bottom: 3.25rem !important; }
}
.chaty-widget-wrapper, #chaty-widget-0, .chaty-widget, .chaty-single-widget { transform: scale(.85); transform-origin: bottom right; }

/* ============================================================
   Homepage revamp (client copy) — hero slider, why, reviews,
   story, CardioV, research, solutions, FAQ
   ============================================================ */
.ar-center { text-align: center; }
.ar-center-eyebrow { text-align: center; }
/* buttons */
.ar-btn { display: inline-flex; align-items: center; gap: 8px; font-family: var(--wp--preset--font-family--jost); font-weight: 600; font-size: 15px; padding: 14px 30px; border-radius: var(--ar-radius-pill); border: 1.5px solid transparent; text-decoration: none; cursor: pointer; transition: all .2s var(--ar-ease); }
.ar-btn--copper { background: var(--ar-copper-600); color: #fff; }
.ar-btn--copper:hover { background: var(--ar-copper-700); color: #fff; }
.ar-btn--teal { background: var(--ar-teal-600); color: #0C3A34; }
.ar-btn--teal:hover { background: var(--ar-teal-700); color: #fff; }
.ar-btn--navy { background: var(--ar-navy-800); color: #fff; }
.ar-btn--navy:hover { background: var(--ar-navy-900); color: #fff; }
.ar-btn--ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.45); }
.ar-btn--ghost:hover { background: rgba(255,255,255,.12); color: #fff; }
.ar-btn--outline { background: transparent; color: var(--ar-navy-800); border-color: var(--ar-stone-300); }
.ar-btn--outline:hover { border-color: var(--ar-navy-800); }

/* HERO slider — full-bleed image with overlaid copy */
.ar-hero { position: relative; width: 100%; min-height: clamp(560px, 76vh, 760px); display: flex; align-items: center; overflow: hidden; background: var(--ar-navy-800); }
.ar-hero__bg { position: absolute; inset: 0; z-index: 0; }
.ar-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 42%; opacity: 0; transform: scale(1.04); transition: opacity 1.1s var(--ar-ease), transform 6s linear; }
.ar-hero__img.is-active { opacity: 1; transform: scale(1); }
.ar-hero__scrim { position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(13,22,42,.96) 0%, rgba(13,22,42,.88) 28%, rgba(13,22,42,.55) 56%, rgba(13,22,42,.12) 82%, rgba(13,22,42,0) 100%),
    linear-gradient(180deg, rgba(13,22,42,.28) 0%, rgba(13,22,42,0) 32%, rgba(13,22,42,.42) 100%); }
.ar-hero__inner { position: relative; z-index: 2; width: 100%; max-width: 1200px; margin: 0 auto; padding: 72px max(24px, 4vw); }
.ar-hero__copy { max-width: 600px; }
.ar-hero__copy .ar-eyebrow { margin: 0 0 14px; }
.ar-hero__heads { position: relative; min-height: 2.4em; }
.ar-hero__head { position: absolute; inset: 0; margin: 0; font-family: var(--wp--preset--font-family--cormorant); font-weight: 500; font-size: clamp(2.4rem,4.6vw,3.9rem); line-height: 1.04; color: #fff; text-shadow: 0 2px 18px rgba(8,14,28,.35); opacity: 0; transform: translateY(10px); transition: opacity .6s var(--ar-ease), transform .6s var(--ar-ease); pointer-events: none; }
.ar-hero__head em { font-style: italic; color: var(--ar-copper-300); }
.ar-hero__head.is-active { opacity: 1; transform: none; position: relative; pointer-events: auto; }
.ar-hero__sub { color: rgba(255,255,255,.9); font-size: 1.05rem; line-height: 1.6; margin: 20px 0 0; max-width: 46ch; text-shadow: 0 1px 12px rgba(8,14,28,.4); }
.ar-hero__cta { display: flex; gap: 14px; flex-wrap: wrap; margin: 30px 0 0; }
.ar-hero__dots { display: flex; gap: 10px; margin-top: 30px; }
.ar-hero__dots button { width: 10px; height: 10px; border-radius: 50%; border: 0; background: rgba(255,255,255,.4); cursor: pointer; padding: 0; transition: background .2s, width .2s; }
.ar-hero__dots button.is-active { background: var(--ar-teal-600); width: 26px; border-radius: 6px; }
@media (max-width: 820px){
  .ar-hero { min-height: clamp(540px, 84vh, 700px); align-items: flex-end; }
  .ar-hero__img { object-position: 62% center; }
  .ar-hero__scrim { background:
    linear-gradient(180deg, rgba(13,22,42,.55) 0%, rgba(13,22,42,.48) 28%, rgba(13,22,42,.72) 52%, rgba(13,22,42,.9) 78%, rgba(13,22,42,.96) 100%); }
  .ar-hero__inner { padding: 48px 22px 52px; }
  .ar-hero__copy { max-width: 100%; }
  .ar-hero__heads { min-height: 2.5em; }
}

/* WHY */
.ar-why { text-align: center; max-width: 900px; margin: 0 auto; }
.ar-why__title { font-family: var(--wp--preset--font-family--cormorant); font-weight: 500; font-size: clamp(1.9rem,3.4vw,2.75rem); color: var(--ar-navy-800); margin: 6px 0 8px; }
.ar-why__sub { color: var(--ar-copper-600); font-style: italic; font-family: var(--wp--preset--font-family--cormorant); font-size: 1.35rem; margin: 0 0 28px; }
.ar-why__grid { list-style: none; padding: 0; margin: 0 0 28px; display: grid; grid-template-columns: repeat(auto-fit,minmax(170px,1fr)); gap: 20px; }
.ar-why__grid li { display: flex; flex-direction: column; align-items: center; gap: 8px; font-size: 14.5px; color: var(--ar-ink-900); font-weight: 500; line-height: 1.35; }
.ar-why__n { font-family: var(--wp--preset--font-family--cormorant); font-size: 2.5rem; font-weight: 600; color: var(--ar-teal-700); line-height: 1; }
.ar-why__d { color: var(--ar-teal-600); font-size: 1.4rem; }

/* REVIEWS */
.ar-reviews__title { text-align: center; font-family: var(--wp--preset--font-family--cormorant); font-weight: 500; font-size: clamp(1.9rem,3.4vw,2.6rem); color: var(--ar-navy-800); margin: 4px 0 32px; }
.ar-reviews__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.ar-reviews blockquote { background: #fff; border: 1px solid var(--ar-sand-200); border-radius: var(--ar-radius-lg); box-shadow: var(--ar-shadow-sm); padding: 26px; margin: 0; }
.ar-stars { color: var(--ar-gold-600, #C9A227); font-size: 15px; letter-spacing: 2px; }
.ar-reviews blockquote p { font-size: 15.5px; line-height: 1.6; color: var(--ar-ink-900); margin: 12px 0; }
.ar-reviews cite { font-style: normal; font-weight: 600; color: var(--ar-navy-800); font-size: 14px; }
.ar-reviews__note { margin-top: 22px; color: var(--ar-stone-500); font-size: 14px; }
.ar-reviews__note a { color: var(--ar-teal-700); font-weight: 600; }
@media (max-width: 820px){ .ar-reviews__grid { grid-template-columns: 1fr; } }

/* STORY */
.ar-story { display: grid; grid-template-columns: .9fr 1.1fr; gap: 52px; align-items: center; }
.ar-story__art img { width: 100%; aspect-ratio: 5/4; object-fit: cover; border-radius: var(--ar-radius-xl,28px); box-shadow: var(--ar-shadow-lg); }
.ar-story__title { font-family: var(--wp--preset--font-family--cormorant); font-weight: 500; font-size: clamp(1.9rem,3.4vw,2.7rem); color: var(--ar-navy-800); line-height: 1.1; margin: 6px 0 16px; }
.ar-story__copy p { color: var(--ar-ink-900); line-height: 1.7; margin: 0 0 14px; }
.ar-story__cta { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 8px; }
@media (max-width: 820px){ .ar-story { grid-template-columns: 1fr; gap: 28px; } }

/* CARDIO V */
.ar-cardiov { display: grid; grid-template-columns: .9fr 1.1fr; gap: 52px; align-items: center; }
.ar-cardiov__art img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: var(--ar-radius-xl,28px); box-shadow: 0 24px 60px rgba(0,0,0,.4); }
.ar-cardiov__title { font-family: var(--wp--preset--font-family--cormorant); font-weight: 500; font-size: clamp(1.8rem,3.2vw,2.5rem); color: #fff; line-height: 1.12; margin: 6px 0 16px; }
.ar-cardiov__copy p { color: rgba(255,255,255,.85); line-height: 1.7; margin: 0 0 14px; }
.ar-cardiov__stat { font-size: 1.05rem !important; color: #fff !important; border-left: 3px solid var(--ar-teal-600); padding-left: 16px; }
.ar-cardiov__stat b { color: var(--ar-teal-600); font-size: 1.6rem; }
.ar-cardiov__cta { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 20px; }
@media (max-width: 820px){ .ar-cardiov { grid-template-columns: 1fr; gap: 28px; } .ar-cardiov__art { max-width: 360px; } }

/* RESEARCH */
.ar-research { max-width: 780px; margin: 0 auto; text-align: center; }
.ar-research__title { font-family: var(--wp--preset--font-family--cormorant); font-weight: 500; font-size: clamp(1.9rem,3.4vw,2.6rem); color: var(--ar-navy-800); margin: 4px 0 18px; }
.ar-research__body p { color: var(--ar-ink-900); line-height: 1.7; margin: 0 0 14px; }
.ar-research .ar-center { margin-top: 24px; }

/* SOLUTIONS (concern cards) */
.ar-solutions__title { text-align: center; font-family: var(--wp--preset--font-family--cormorant); font-weight: 500; font-size: clamp(1.9rem,3.4vw,2.6rem); color: var(--ar-navy-800); margin: 4px 0 34px; }
.ar-solutions__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; margin-bottom: 34px; }
.ar-sol { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--ar-sand-200); border-radius: var(--ar-radius-lg); box-shadow: var(--ar-shadow-sm); padding: 26px; text-decoration: none; transition: transform .2s var(--ar-ease), box-shadow .2s var(--ar-ease), border-color .2s var(--ar-ease); }
.ar-sol:hover { transform: translateY(-4px); box-shadow: var(--ar-shadow-md); border-color: var(--ar-teal-600); }
.ar-sol h3 { font-family: var(--wp--preset--font-family--cormorant); font-weight: 500; font-size: 1.35rem; color: var(--ar-navy-800); margin: 0 0 8px; }
.ar-sol p { font-size: 14px; color: var(--ar-ink-900); line-height: 1.55; margin: 0 0 16px; flex: 1; }
.ar-sol__link { font-family: var(--wp--preset--font-family--jost); font-weight: 600; font-size: 13.5px; color: var(--ar-teal-700); }
.ar-sol:hover .ar-sol__link { color: var(--ar-copper-600); }
@media (max-width: 900px){ .ar-solutions__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px){ .ar-solutions__grid { grid-template-columns: 1fr; } }

/* FAQ */
.ar-faq__title { text-align: center; font-family: var(--wp--preset--font-family--cormorant); font-weight: 500; font-size: clamp(1.9rem,3.4vw,2.6rem); color: var(--ar-navy-800); margin: 4px 0 32px; }
.ar-faq__list details { background: #fff; border: 1px solid var(--ar-sand-200); border-radius: var(--ar-radius-md); margin-bottom: 12px; overflow: hidden; }
.ar-faq__list summary { cursor: pointer; list-style: none; padding: 18px 22px; font-family: var(--wp--preset--font-family--jost); font-weight: 600; font-size: 15.5px; color: var(--ar-navy-800); display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.ar-faq__list summary::-webkit-details-marker { display: none; }
.ar-faq__list summary span { flex: 0 0 auto; width: 18px; height: 18px; position: relative; }
.ar-faq__list summary span::before, .ar-faq__list summary span::after { content: ""; position: absolute; background: var(--ar-teal-700); transition: transform .25s var(--ar-ease); }
.ar-faq__list summary span::before { top: 8px; left: 2px; width: 14px; height: 2px; }
.ar-faq__list summary span::after { left: 8px; top: 2px; width: 2px; height: 14px; }
.ar-faq__list details[open] summary span::after { transform: scaleY(0); }
.ar-faq__list details[open] summary { border-bottom: 1px solid var(--ar-sand-200); }
.ar-faq__list details p { padding: 16px 22px 20px; margin: 0; color: var(--ar-ink-900); line-height: 1.65; font-size: 14.5px; }

/* ============================================================
   CardioV product description (single-product long content)
   ============================================================ */
.cv { max-width: 900px; }
.cv-lead { font-size: 1.15rem; line-height: 1.6; color: var(--ar-navy-800); border-left: 3px solid var(--ar-teal-600); padding-left: 18px; margin: 0 0 24px; }
.cv-h { font-family: var(--wp--preset--font-family--cormorant); font-weight: 500; font-size: 1.8rem; color: var(--ar-navy-800); margin: 34px 0 12px; line-height: 1.15; }
.cv-h--center { text-align: center; }
.cv p { line-height: 1.7; color: var(--ar-ink-900); }
.cv-checks { list-style: none; padding: 0; margin: 0 0 22px; display: grid; gap: 10px; }
.cv-checks--2col { grid-template-columns: 1fr 1fr; }
.cv-checks li { position: relative; padding-left: 30px; line-height: 1.5; color: var(--ar-ink-900); }
.cv-checks li::before { content: "✓"; position: absolute; left: 0; top: 0; width: 20px; height: 20px; color: var(--ar-teal-700); font-weight: 700; }
.cv-eval { list-style: none; padding: 0; margin: 0 0 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 24px; }
.cv-eval li { position: relative; padding-left: 22px; color: var(--ar-ink-900); }
.cv-eval li::before { content: "◇"; position: absolute; left: 0; color: var(--ar-teal-600); }
.cv-review { background: var(--ar-sand-100); border-radius: var(--ar-radius-lg); padding: 22px 26px; margin: 22px 0; }
.cv-stars { color: var(--ar-gold-600); letter-spacing: 2px; }
.cv-review p { font-size: 1.05rem; font-style: italic; margin: 8px 0; }
.cv-review cite { font-style: normal; font-weight: 600; color: var(--ar-navy-800); }
.cv-cta { display: flex; gap: 14px; flex-wrap: wrap; margin: 22px 0; }
.cv-cta--center { justify-content: center; }
.cv-btn { display: inline-flex; align-items: center; gap: 8px; font-family: var(--wp--preset--font-family--jost); font-weight: 600; font-size: 15px; padding: 14px 30px; border-radius: var(--ar-radius-pill); text-decoration: none; transition: all .2s var(--ar-ease); }
.cv-btn--order { background: var(--ar-copper-600); color: #fff; }
.cv-btn--order:hover { background: var(--ar-copper-700); color: #fff; }
.cv-btn--wa { background: #25D366; color: #05391f; }
.cv-btn--wa::before { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12.04 2C6.58 2 2.13 6.45 2.13 11.91c0 1.75.46 3.45 1.32 4.95L2 22l5.25-1.38c1.45.79 3.08 1.21 4.79 1.21 5.46 0 9.91-4.45 9.91-9.91C21.95 6.45 17.5 2 12.04 2zm5.8 14.03c-.24.68-1.42 1.31-1.95 1.35-.5.05-.98.24-3.32-.69-2.8-1.1-4.6-3.96-4.74-4.15-.14-.19-1.14-1.52-1.14-2.9s.72-2.06.98-2.34c.24-.26.53-.33.71-.33.18 0 .36 0 .51.01.16.01.39-.06.6.46.24.56.82 1.94.89 2.08.07.14.12.31.02.5-.09.19-.14.31-.28.48-.14.16-.29.37-.42.49-.14.14-.28.29-.12.57.16.28.71 1.17 1.53 1.9 1.05.94 1.94 1.23 2.22 1.37.28.14.44.12.6-.07.16-.19.69-.8.87-1.08.18-.28.36-.23.6-.14.24.09 1.55.73 1.81.87.27.14.44.21.51.32.07.12.07.68-.17 1.36z'/></svg>") center/contain no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12.04 2C6.58 2 2.13 6.45 2.13 11.91c0 1.75.46 3.45 1.32 4.95L2 22l5.25-1.38c1.45.79 3.08 1.21 4.79 1.21 5.46 0 9.91-4.45 9.91-9.91C21.95 6.45 17.5 2 12.04 2zm5.8 14.03c-.24.68-1.42 1.31-1.95 1.35-.5.05-.98.24-3.32-.69-2.8-1.1-4.6-3.96-4.74-4.15-.14-.19-1.14-1.52-1.14-2.9s.72-2.06.98-2.34c.24-.26.53-.33.71-.33.18 0 .36 0 .51.01.16.01.39-.06.6.46.24.56.82 1.94.89 2.08.07.14.12.31.02.5-.09.19-.14.31-.28.48-.14.16-.29.37-.42.49-.14.14-.28.29-.12.57.16.28.71 1.17 1.53 1.9 1.05.94 1.94 1.23 2.22 1.37.28.14.44.12.6-.07.16-.19.69-.8.87-1.08.18-.28.36-.23.6-.14.24.09 1.55.73 1.81.87.27.14.44.21.51.32.07.12.07.68-.17 1.36z'/></svg>") center/contain no-repeat; }
.cv-btn--wa:hover { background: #1EBE5A; color: #05391f; }
.cv-stats { display: grid; grid-template-columns: repeat(5,1fr); gap: 14px; margin: 18px 0 8px; }
.cv-stat { text-align: center; background: var(--ar-navy-800); color: #fff; border-radius: var(--ar-radius-md); padding: 22px 12px; }
.cv-stat b { display: block; font-family: var(--wp--preset--font-family--cormorant); font-size: 2.4rem; font-weight: 600; color: var(--ar-teal-600); line-height: 1; }
.cv-stat--tick b { color: var(--ar-teal-600); font-size: 2rem; }
.cv-stat span { display: block; font-size: 12.5px; line-height: 1.35; margin-top: 8px; color: rgba(255,255,255,.85); }
.cv-findings { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 14px 0; }
.cv-find { background: #fff; border: 1px solid var(--ar-sand-200); border-left: 3px solid var(--ar-teal-600); border-radius: var(--ar-radius-md); padding: 18px 20px; }
.cv-find h4 { font-family: var(--wp--preset--font-family--jost); font-weight: 600; font-size: 15px; color: var(--ar-navy-800); margin: 0 0 6px; }
.cv-find p { font-size: 14px; margin: 0; line-height: 1.55; }
.cv-final { background: var(--ar-sand-100); border-radius: var(--ar-radius-xl); padding: 34px; margin: 34px 0 20px; }
.cv-tag { text-align: center; font-family: var(--wp--preset--font-family--cormorant); font-style: italic; font-size: 1.25rem; color: var(--ar-copper-600); margin: 8px 0 18px; }
.cv-disclaimer { font-size: 12px; color: var(--ar-stone-500); line-height: 1.55; margin-top: 24px; border-top: 1px solid var(--ar-sand-200); padding-top: 16px; }
@media (max-width: 640px){ .cv-stats { grid-template-columns: 1fr 1fr; } .cv-findings, .cv-checks--2col, .cv-eval { grid-template-columns: 1fr; } }

/* ============================================================
   About Us page
   ============================================================ */
.ar-about-hero { text-align: center; max-width: 820px; margin: 0 auto; }
.ar-about-hero h1 { font-family: var(--wp--preset--font-family--cormorant); font-weight: 500; font-size: clamp(2.2rem,4.4vw,3.5rem); color: #fff; line-height: 1.08; margin: 12px 0 20px; }
.ar-about-hero h1 em { font-style: italic; color: var(--ar-copper-300); }
.ar-about-hero__lead { color: rgba(255,255,255,.85); font-size: 1.1rem; line-height: 1.65; max-width: 60ch; margin: 0 auto; }
.ar-about__split { display: grid; grid-template-columns: .9fr 1.1fr; gap: 52px; align-items: center; }
.ar-about__art img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: var(--ar-radius-xl); box-shadow: var(--ar-shadow-lg); }
.ar-about h2, .ar-about-center h2, .ar-research-band h2, .ar-pmv h2 { font-family: var(--wp--preset--font-family--cormorant); font-weight: 500; font-size: clamp(1.8rem,3.2vw,2.5rem); line-height: 1.12; margin: 6px 0 16px; color: var(--ar-navy-800); }
.ar-about__copy p { color: var(--ar-ink-900); line-height: 1.7; margin: 0 0 14px; }
.ar-research-band { max-width: 820px; }
.ar-research-band h2 { color: #fff; }
.ar-research-band p { color: rgba(255,255,255,.85); line-height: 1.7; margin: 0 0 16px; }
.ar-inst__label { font-family: var(--wp--preset--font-family--jost); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.6); margin: 30px 0 14px; }
.ar-inst { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 16px; align-items: stretch; }
.ar-inst__chip { background: #fff; border-radius: var(--ar-radius-md); padding: 14px 26px; min-height: 88px; display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 22px rgba(0,0,0,.20); }
.ar-inst__chip img { height: 60px; width: auto; display: block; }
@media (max-width: 600px){ .ar-inst { gap: 12px; } .ar-inst__chip { min-height: 74px; padding: 12px 18px; flex: 1 1 44%; } .ar-inst__chip img { height: 48px; } }
.ar-about-center { text-align: center; }
.ar-about-center p { color: var(--ar-ink-900); line-height: 1.7; font-size: 1.05rem; }
.ar-pmv__intro { text-align: center; max-width: 760px; margin: 0 auto 40px; }
.ar-pmv__intro p { color: var(--ar-ink-900); line-height: 1.7; }
.ar-pmv__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 40px; }
.ar-pmv__card { background: #fff; border: 1px solid var(--ar-sand-200); border-top: 3px solid var(--ar-teal-600); border-radius: var(--ar-radius-lg); box-shadow: var(--ar-shadow-sm); padding: 30px; }
.ar-pmv__card h3 { font-family: var(--wp--preset--font-family--cormorant); font-weight: 500; font-size: 1.5rem; color: var(--ar-navy-800); margin: 0 0 10px; }
.ar-pmv__card p { color: var(--ar-ink-900); line-height: 1.65; margin: 0; }
@media (max-width: 820px){ .ar-about__split { grid-template-columns: 1fr; gap: 28px; } .ar-pmv__grid { grid-template-columns: 1fr; } }

/* Attribution hyphen via CSS (avoids wptexturize converting a text hyphen to en dash) */
.ar-reviews cite::before, .cv-review cite::before { content: "- "; }
