/*
Theme Name: The Ready Acre
Theme URI: https://thereadyacre.com
Description: Lightweight Kadence child theme for The Ready Acre. Global palette and typography are set in the Kadence Customizer; this stylesheet adds self-hosted fonts and the styles for the theme's block patterns.
Author: The Ready Acre
Template: kadence
Version: 1.4.3
Requires at least: 6.3
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ready-acre
*/

/* ------------------------------------------------------------------
   1. Self-hosted fonts (Wix Madefor, SIL Open Font License)
   Weights 400, 500, 700 only. Latin and Latin Extended subsets.
   ------------------------------------------------------------------ */
@font-face {
  font-family: "Wix Madefor Text";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/wix-madefor-text-latin-ext-400-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Wix Madefor Text";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/wix-madefor-text-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Wix Madefor Text";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/wix-madefor-text-latin-ext-500-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Wix Madefor Text";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/wix-madefor-text-latin-500-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Wix Madefor Text";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/fonts/wix-madefor-text-latin-ext-700-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Wix Madefor Text";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/fonts/wix-madefor-text-latin-700-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Wix Madefor Display";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/wix-madefor-display-latin-ext-400-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Wix Madefor Display";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/wix-madefor-display-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Wix Madefor Display";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/wix-madefor-display-latin-ext-500-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Wix Madefor Display";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/wix-madefor-display-latin-500-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Wix Madefor Display";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/fonts/wix-madefor-display-latin-ext-700-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Wix Madefor Display";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/fonts/wix-madefor-display-latin-700-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ------------------------------------------------------------------
   2. Theme tokens
   Colours come from the Kadence global palette (set on activation):
   1 amber #F5A623  2 forest #1F5F3F  3 charcoal #2B2B2B  4 muted #5A5A5A
   5 leaf #4CAF50   6 border #E6E0D2  7 green tint #E8F3EC
   8 cream #FAF7F0  9 white #FFFFFF
   The few extra tints below are not part of the 9-slot palette.
   ------------------------------------------------------------------ */
:root {
  --ra-amber-tint: #FEF3DC;
  --ra-amber-dark: #D98E12;
  --ra-warn-bg: #FBEDEA;
  --ra-warn-border: #D9534F;
  --ra-warn-ink: #9B2C1F;
  --ra-radius: 12px;
  --ra-radius-sm: 8px;
  --ra-container: 1120px;
  --ra-line: #E6E0D2;
  --ra-card: var(--global-palette9, #FFFFFF);
  --ra-tint: var(--global-palette7, #E8F3EC);
  --ra-forest: var(--global-palette2, #1F5F3F);
  --ra-amber: var(--global-palette1, #F5A623);
  --ra-ink: var(--global-palette3, #2B2B2B);
  --ra-muted: var(--global-palette5, #5A5A5A);
  --ra-leaf: var(--global-palette11, #4CAF50);
}

/* Safety net: if the Customizer defaults have not been applied yet,
   the brand still holds. Kadence's own output takes over once set. */
body { font-family: "Wix Madefor Text", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
h1, h2, h3, h4, h5, h6 { font-family: "Wix Madefor Display", "Wix Madefor Text", system-ui, sans-serif; font-weight: 700; letter-spacing: -0.01em; }
.wp-block-button__link, .button, button, input[type="submit"], .kb-button { font-family: inherit; }

/* Buttons: amber, charcoal text, 8px radius, 44px tap target. */
.wp-block-button__link, .button, .wp-block-search__button, button.kb-button {
  border-radius: var(--ra-radius-sm);
  font-weight: 500;
  min-height: 44px;
}
.wp-block-button__link:not(.has-background):not(.has-text-color) {
  background: var(--ra-amber);
  color: var(--ra-ink);
}
.wp-block-button__link:not(.has-background):not(.has-text-color):hover,
.wp-block-button__link:not(.has-background):not(.has-text-color):focus {
  background: var(--ra-amber-dark);
  color: var(--ra-ink);
}
.wp-block-button.is-style-outline .wp-block-button__link:not(.has-text-color) {
  color: var(--ra-forest);
  border: 2px solid var(--ra-forest);
  background: transparent;
}
.wp-block-button.is-style-outline .wp-block-button__link:not(.has-text-color):hover {
  background: var(--ra-tint);
}

/* Footer: forest green with light text. Columns are Kadence footer widgets. */
#colophon { background: var(--ra-forest); color: #FFFFFF; }
#colophon a,
#colophon .footer-navigation .footer-menu-container > ul > li > a,
#colophon .footer-navigation .footer-menu-container > ul > li > a:hover,
#colophon .footer-navigation .menu > li > a,
#colophon .footer-navigation .menu > li > a:hover { color: #FFFFFF; }
#colophon .widget-title { color: #CDE5D6; font-size: 0.9rem; letter-spacing: 0.06em; text-transform: uppercase; }
#colophon .site-footer-bottom-section { border-top: 1px solid #3C7A5A; font-size: 0.85rem; color: #CDE5D6; }
#colophon .ra-footer-title { color: #CDE5D6; font-size: 0.85rem; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 0.6em; }
#colophon .ra-footer-links { list-style: none; padding: 0; margin: 0; }
#colophon .ra-footer-links li { margin: 0 0 0.55em; }
#colophon .ra-footer-links a { text-decoration: none; }
#colophon .ra-footer-links a:hover, #colophon .ra-footer-links a:focus-visible { text-decoration: underline; }
#colophon .footer-html p { margin: 0 0 0.5em; max-width: 60em; }

/* ------------------------------------------------------------------
   3. Shared layout helpers used by the patterns
   ------------------------------------------------------------------ */
.ra-section { padding: 3.5rem 0; }
.ra-section.has-background { padding: 3.5rem 1.5rem; }
.ra-section > .ra-container,
.ra-container { max-width: var(--ra-container); margin-left: auto; margin-right: auto; }
.ra-section + .ra-section { padding-top: 0; }
.ra-section.has-background + .ra-section { padding-top: 3.5rem; }
.ra-eyebrow { font-size: 0.8rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ra-forest); margin-bottom: 0.5rem; }
.ra-muted { color: var(--ra-muted); }
.ra-small { font-size: 0.875rem; line-height: 1.5; color: var(--ra-muted); }
.ra-lead { font-size: 1.15rem; color: var(--ra-muted); }
.ra-section-head { margin-bottom: 1.75rem; }
.ra-section-head h2 { margin-bottom: 0.4rem; }
.ra-section-head .ra-more { font-weight: 700; text-decoration: none; white-space: nowrap; }

/* Cards */
.ra-card {
  background: var(--ra-card);
  border: 1px solid var(--ra-line);
  border-radius: var(--ra-radius);
  padding: 1.5rem;
  height: 100%;
}
.ra-card h3 { font-size: 1.2rem; margin: 0.25rem 0 0.5rem; }
.ra-card p { margin-bottom: 0.75rem; }
.ra-card > :last-child { margin-bottom: 0; }
.ra-card .wp-block-image { margin: -1.5rem -1.5rem 1rem; }
.ra-card .wp-block-image img { border-radius: var(--ra-radius) var(--ra-radius) 0 0; width: 100%; height: 180px; object-fit: cover; }
.ra-card.ra-tint { background: var(--ra-tint); border-color: #B9D6C3; }
.ra-card.ra-cream { background: var(--global-palette8, #FAF7F0); }
.ra-icon { margin: 0 0 1rem; }
.ra-icon img,
.wp-block-image.ra-icon img { width: 48px !important; max-width: 48px; height: 48px; padding: 11px; background: var(--ra-tint); border-radius: 12px; object-fit: contain; }
.ra-card .ra-icon { margin: 0 0 1rem; }
.ra-card .ra-icon img { border-radius: 12px; height: 48px; }
.ra-badge { display: inline-block; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.25rem 0.65rem; border-radius: 999px; background: var(--ra-tint); color: var(--ra-forest); margin-bottom: 0.5rem; }
.ra-badge.ra-badge-amber { background: var(--ra-amber-tint); color: #7A4B00; }
.ra-step-number { font-family: "Wix Madefor Display", sans-serif; font-size: 2.5rem; font-weight: 700; line-height: 1; color: var(--ra-forest); margin-bottom: 0.5rem; }

/* Columns: keep card heights equal and stack cleanly on phones */
.ra-grid.wp-block-columns { gap: 1.5rem; }
.ra-grid.wp-block-columns .wp-block-column { display: flex; flex-direction: column; }
.ra-grid.wp-block-columns .wp-block-column > .ra-card { flex: 1; }

/* Hero */
.ra-hero { text-align: center; padding: 4.5rem 1.5rem; }
.ra-hero h1 { font-size: clamp(2rem, 4.5vw, 3.25rem); max-width: 16em; margin: 0 auto 1rem; line-height: 1.15; }
.ra-hero .ra-lead { max-width: 36em; margin: 0 auto 1.5rem; }
.ra-hero .wp-block-search { max-width: 640px; margin: 0 auto 1rem; }
.ra-hero .wp-block-search__input { height: 52px; font-size: 1.05rem; border-radius: 10px; border: 1px solid var(--ra-line); background: var(--global-palette8, #FAF7F0); padding: 0 1rem; }
.ra-hero .wp-block-search .wp-block-search__button,
.ra-hero .wp-block-search__button { background: var(--ra-amber); color: var(--ra-ink); border: 0; height: 52px; padding: 0 1.5rem; font-weight: 500; margin-left: 0.6rem; }
.ra-hero .ra-popular { font-size: 0.875rem; color: var(--ra-muted); }

/* Product cards */
.ra-product .wp-block-image img { height: 170px; object-fit: cover; }
.ra-product .ra-price { font-weight: 700; margin-bottom: 0.75rem; }
.ra-product .ra-rating { color: var(--ra-muted); font-size: 0.9rem; }
.ra-product .wp-block-buttons { margin-top: auto; }
.ra-product .wp-block-button, .ra-product .wp-block-button__link { width: 100%; text-align: center; }

/* Post grids (Query Loop) */
.ra-post-grid .wp-block-post { background: var(--ra-card); border: 1px solid var(--ra-line); border-radius: var(--ra-radius); overflow: hidden; display: flex; flex-direction: column; }
.ra-post-grid .wp-block-post-featured-image { margin: 0; }
.ra-post-grid .wp-block-post-featured-image img { width: 100%; height: 180px; object-fit: cover; }
.ra-post-grid .wp-block-post-terms, .ra-post-grid .wp-block-post-title, .ra-post-grid .wp-block-post-excerpt, .ra-post-grid .wp-block-post-date { margin: 0 1.25rem; }
.ra-post-grid .wp-block-post-terms { margin-top: 1.1rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.ra-post-grid .wp-block-post-terms a { text-decoration: none; background: var(--ra-tint); color: var(--ra-forest); padding: 0.2rem 0.6rem; border-radius: 999px; }
.ra-post-grid .wp-block-post-title { font-size: 1.15rem; margin-top: 0.6rem; }
.ra-post-grid .wp-block-post-title a { color: var(--ra-ink); text-decoration: none; }
.ra-post-grid .wp-block-post-excerpt { font-size: 0.95rem; color: var(--ra-muted); }
.ra-post-grid .wp-block-post-date { font-size: 0.85rem; color: var(--ra-muted); margin-top: auto; padding-bottom: 1.25rem; }
.ra-post-grid .wp-block-post-template { gap: 1.5rem; }

/* Disclosure line */
.ra-disclosure { font-size: 0.875rem; color: var(--ra-muted); background: var(--ra-card); border: 1px solid var(--ra-line); border-left: 4px solid var(--ra-amber); border-radius: var(--ra-radius-sm); padding: 0.65rem 0.9rem; }

/* Review summary box */
.ra-summary { background: var(--ra-card); border: 1px solid var(--ra-line); border-top: 4px solid var(--ra-leaf); border-radius: var(--ra-radius); padding: 1.75rem; }
.ra-summary h2 { font-size: 1.5rem; line-height: 1.3; margin: 0 0 0.75rem; }
.ra-summary .ra-rating { font-size: 1.1rem; font-weight: 700; }
.ra-summary .ra-facts p { margin: 0 0 0.6rem; font-size: 0.95rem; }
.ra-summary .ra-facts strong { display: block; font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ra-muted); }
.ra-summary .wp-block-columns { margin-bottom: 1rem; }
.ra-pros, .ra-cons { list-style: none; padding: 0; margin: 0; }
.ra-pros li, .ra-cons li { padding-left: 1.75rem; position: relative; margin-bottom: 0.5rem; font-size: 0.95rem; }
.ra-pros li::before, .ra-cons li::before { content: ""; position: absolute; left: 0; top: 0.2em; width: 18px; height: 18px; background: no-repeat center / contain; }
.ra-pros li::before { background-image: url("assets/icons/check.svg"); }
.ra-cons li::before { background-image: url("assets/icons/x.svg"); }
.ra-summary .wp-block-buttons { margin-top: 1.25rem; }

/* Spec list ("What's inside") */
.ra-specs { list-style: none; padding: 0.25rem 1.1rem; margin: 0; background: var(--ra-card); border: 1px solid var(--ra-line); border-radius: var(--ra-radius-sm); }
.ra-specs li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.6rem 0; border-bottom: 1px solid var(--ra-line); font-size: 0.95rem; }
.ra-specs li:last-child { border-bottom: 0; }
.ra-specs li span:first-child { color: var(--ra-muted); }

/* Comparison table */
.ra-compare { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--ra-line); border-radius: var(--ra-radius-sm); background: var(--ra-card); }
.ra-compare table { border-collapse: collapse; width: 100%; font-size: 0.95rem; min-width: 640px; border: 0; }
.ra-compare th { background: var(--ra-tint); font-weight: 700; text-align: left; padding: 0.75rem 0.9rem; border: 0; border-bottom: 2px solid #B9D6C3; white-space: nowrap; }
.ra-compare td { padding: 0.75rem 0.9rem; border: 0; border-bottom: 1px solid var(--ra-line); vertical-align: top; }
.ra-compare tr:last-child td { border-bottom: 0; }
.ra-compare tbody tr:first-child td { background: var(--ra-amber-tint); }
.ra-compare figcaption { text-align: left; padding: 0.75rem 0.9rem; font-size: 0.85rem; color: var(--ra-muted); }

/* FAQ (core Details block) */
.ra-faq .wp-block-details { background: var(--ra-card); border: 1px solid var(--ra-line); border-radius: 10px; padding: 0; margin-bottom: 0.6rem; }
.ra-faq .wp-block-details summary { padding: 1rem 1.1rem; font-weight: 700; font-size: 1.05rem; cursor: pointer; list-style: none; position: relative; padding-right: 2.5rem; min-height: 44px; }
.ra-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.ra-faq .wp-block-details summary::after { content: "+"; position: absolute; right: 1.1rem; top: 0.85rem; font-size: 1.4rem; color: var(--ra-forest); line-height: 1; }
.ra-faq .wp-block-details[open] summary::after { content: "\2212"; }
.ra-faq .wp-block-details > :not(summary) { padding: 0 1.1rem; }
.ra-faq .wp-block-details > :last-child { padding-bottom: 1rem; margin-bottom: 0; }

/* Final verdict */
.ra-verdict { background: var(--ra-forest); color: #FFFFFF; border-radius: var(--ra-radius); padding: 2rem; }
.ra-verdict h2, .ra-verdict h3, .ra-verdict p, .ra-verdict .ra-eyebrow { color: #FFFFFF; }
.ra-verdict .ra-eyebrow { color: #CDE5D6; }
.ra-verdict p { color: #DCEBE2; }
.ra-verdict a:not(.wp-block-button__link) { color: #FFFFFF; }

/* Author box */
.ra-author { background: var(--ra-card); border: 1px solid var(--ra-line); border-radius: var(--ra-radius); padding: 1.5rem; }
.ra-author .wp-block-image img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; border: 2px solid var(--ra-leaf); }
.ra-author h2, .ra-author h3 { font-size: 1.1rem; margin: 0 0 0.4rem; }
.ra-author-profile .wp-block-image img { width: 160px; height: 160px; border-radius: 50%; object-fit: cover; border: 4px solid var(--ra-leaf); }
.ra-author-profile .ra-role { color: var(--ra-forest); font-weight: 500; font-size: 1.1rem; }
.ra-credentials { list-style: none; padding: 0; margin: 0.5rem 0 1rem; display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; font-size: 0.95rem; }
.ra-credentials li { padding-left: 1.6rem; background: url("assets/icons/check.svg") no-repeat 0 0.15em / 18px; }

/* Key facts */
.ra-keyfacts { background: var(--ra-tint); border: 1px solid #B9D6C3; border-left: 6px solid var(--ra-leaf); border-radius: var(--ra-radius); padding: 1.5rem 1.75rem; }
.ra-keyfacts h2 { font-size: 1.1rem; color: var(--ra-forest); margin: 0 0 0.75rem; }
.ra-keyfacts ul { margin: 0; padding-left: 1.3rem; }
.ra-keyfacts li { margin-bottom: 0.4rem; }

/* Table of contents */
.ra-toc { background: var(--ra-card); border: 1px solid var(--ra-line); border-radius: var(--ra-radius); padding: 1.25rem 1.5rem; }
.ra-toc h2 { font-size: 1rem; margin: 0 0 0.6rem; }
.ra-toc ol { margin: 0; padding-left: 1.3rem; font-size: 0.95rem; }
.ra-toc li { margin-bottom: 0.35rem; }
.ra-toc a { text-decoration: none; }

/* Numbered steps */
.ra-steps { counter-reset: ra-step; }
.ra-steps > .ra-step { counter-increment: ra-step; position: relative; padding-left: 4rem; margin-bottom: 2rem; }
.ra-steps > .ra-step::before { content: counter(ra-step); position: absolute; left: 0; top: 0; width: 44px; height: 44px; border-radius: 50%; background: var(--ra-forest); color: #FFFFFF; font-family: "Wix Madefor Display", sans-serif; font-weight: 700; font-size: 1.1rem; display: flex; align-items: center; justify-content: center; }
.ra-steps > .ra-step h3 { margin: 0.35rem 0 0.6rem; font-size: 1.3rem; }
.ra-steps > .ra-step .wp-block-image img { border-radius: var(--ra-radius); }
@media (max-width: 600px) {
  .ra-steps > .ra-step { padding-left: 0; padding-top: 3.25rem; }
}

/* Callouts */
.ra-callout { display: flex; gap: 0.9rem; border-radius: 10px; padding: 1rem 1.1rem; margin: 1.5rem 0; }
.ra-callout::before { content: ""; flex-shrink: 0; width: 22px; height: 22px; margin-top: 0.1rem; background: no-repeat center / contain; }
.ra-callout p { margin: 0; }
.ra-callout p + p { margin-top: 0.25rem; }
.ra-callout strong:first-child { display: block; margin-bottom: 0.15rem; }
.ra-callout-tip { background: var(--ra-tint); border: 1px solid var(--ra-leaf); }
.ra-callout-tip::before { background-image: url("assets/icons/info.svg"); }
.ra-callout-tip strong { color: var(--ra-forest); }
.ra-callout-warning { background: var(--ra-warn-bg); border: 1px solid var(--ra-warn-border); }
.ra-callout-warning::before { background-image: url("assets/icons/alert.svg"); }
.ra-callout-warning strong { color: var(--ra-warn-ink); }

/* Related products block */
.ra-related { background: var(--ra-card); border: 1px solid var(--ra-line); border-radius: var(--ra-radius); padding: 1.75rem; }
.ra-related > h2 { font-size: 1.5rem; margin: 0 0 0.25rem; }

/* Hub intro side nav */
.ra-subnav { background: var(--global-palette8, #FAF7F0); border: 1px solid var(--ra-line); border-radius: var(--ra-radius); padding: 1.25rem 1.4rem; }
.ra-subnav h2 { font-size: 0.85rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ra-forest); margin: 0 0 0.5rem; }
.ra-subnav ul { list-style: none; margin: 0; padding: 0; }
.ra-subnav li { border-bottom: 1px solid var(--ra-line); }
.ra-subnav li:last-child { border-bottom: 0; }
.ra-subnav a { display: block; padding: 0.55rem 0; text-decoration: none; color: var(--ra-ink); }

/* Contact strip */
.ra-contact { background: var(--ra-card); border: 1px solid var(--ra-line); border-radius: var(--ra-radius); padding: 1.75rem; }

/* Kadence single post: byline avatar and updated date are theme settings;
   this only tidies the spacing. */
.entry-meta .posted-by .author-avatar img { border: 2px solid var(--ra-leaf); }

/* Reduce motion: no animations anywhere in this theme. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ------------------------------------------------------------------
   Products (v1.2): buttons, cards, grid + filter tabs, product page
   ------------------------------------------------------------------ */
.ra-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0.6rem 1.1rem; border-radius: 8px; font-family: "Wix Madefor Text", sans-serif; font-weight: 500; font-size: 0.95rem; line-height: 1.2; text-decoration: none; text-align: center; border: 2px solid transparent; transition: background-color .15s ease, color .15s ease; }
.ra-btn--buy, .ra-btn--buy:visited { background: var(--ra-amber); color: var(--ra-ink); }
.ra-btn--buy:hover, .ra-btn--buy:focus { background: var(--ra-amber-dark); color: var(--ra-ink); }
.ra-btn--outline, .ra-btn--outline:visited { background: transparent; color: var(--ra-forest); border-color: var(--ra-forest); }
.ra-btn--outline:hover, .ra-btn--outline:focus { background: var(--ra-forest); color: #FFFFFF; }
.ra-btn:focus-visible, .ra-tab:focus-visible, .ra-pcard__title a:focus-visible { outline: 3px solid var(--ra-forest); outline-offset: 2px; }
.ra-btn--buy:focus-visible { outline-color: var(--ra-ink); }

.ra-pgrid__tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.5rem; }
.ra-tab { display: inline-flex; align-items: center; min-height: 44px; padding: 0.45rem 1rem; border: 1px solid var(--ra-line); border-radius: 999px; background: var(--ra-card); color: var(--ra-ink); font-weight: 500; font-size: 0.95rem; text-decoration: none; cursor: pointer; }
.ra-tab:hover { border-color: var(--ra-forest); color: var(--ra-forest); }
.ra-tab.is-active, .ra-tab[aria-pressed="true"] { background: var(--ra-forest); border-color: var(--ra-forest); color: #FFFFFF; }
.ra-pgrid__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; list-style: none; margin: 0; padding: 0; }
.ra-pgrid__item { display: flex; min-width: 0; }
.ra-pgrid__item[hidden] { display: none !important; }
.ra-pgrid__none, .ra-pgrid__empty { color: var(--ra-muted); padding: 1rem 0; }
.ra-pgrid__more { margin: 1.75rem 0 0; text-align: center; font-weight: 700; }
@media (max-width: 1024px) { .ra-pgrid__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .ra-pgrid__grid { grid-template-columns: 1fr; } }

.ra-pcard { display: flex; flex-direction: column; width: 100%; background: var(--ra-card); border: 1px solid var(--ra-line); border-radius: var(--ra-radius); overflow: hidden; }
.ra-pcard__media { display: block; aspect-ratio: 4 / 3; background: var(--ra-tint); overflow: hidden; }
.ra-pcard__img, .ra-pcard__media img { width: 100%; height: 100%; object-fit: contain; display: block; }
.ra-pcard__noimg { display: block; width: 100%; height: 100%; background: var(--ra-tint) url("assets/img/placeholder.svg") no-repeat center / 64px; }
.ra-pcard__body { display: flex; flex-direction: column; flex: 1; padding: 1.25rem; }
.ra-pcard__cat { align-self: flex-start; margin: 0 0 0.6rem; padding: 0.15rem 0.6rem; border-radius: 999px; background: var(--ra-tint); color: var(--ra-forest); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.ra-pcard__title { font-size: 1.2rem; line-height: 1.3; margin: 0 0 0.5rem; }
.ra-pcard__title a { color: var(--ra-ink); text-decoration: none; }
.ra-pcard__title a:hover { color: var(--ra-forest); text-decoration: underline; }
.ra-pcard__desc { font-size: 0.95rem; color: var(--ra-muted); margin: 0 0 0.9rem; }
.ra-pcard__meta { display: flex; flex-wrap: wrap; gap: 0.25rem 0.9rem; align-items: baseline; margin: auto 0 1rem; }
.ra-pcard__price { font-weight: 700; font-size: 1.05rem; color: var(--ra-ink); }
.ra-stars { font-size: 0.9rem; color: var(--ra-muted); }
.ra-stars span[aria-hidden] { color: var(--ra-amber-dark); }
.ra-pcard__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; margin-top: auto; }
.ra-pcard__meta + .ra-pcard__actions { margin-top: 0; }

/* Products archive and category pages: Kadence's list becomes our grid. */
.post-type-archive-ra_product #archive-container,
#archive-container:has(> .ra-pgrid__item) { gap: 1.5rem; }
#archive-container > .ra-pgrid__item { margin: 0; }

/* Single product */
.ra-psummary { margin: 0 0 2rem; }
.ra-psummary__top { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 1.5rem; margin-bottom: 1.25rem; }
.ra-psummary__facts { margin: 0; }
.ra-psummary__facts > div { margin: 0 0 0.75rem; }
.ra-psummary__facts dt { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ra-muted); }
.ra-psummary__facts dd { margin: 0; font-size: 0.95rem; }
.ra-psummary__pc { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-bottom: 1.25rem; }
.ra-psummary__pc h3 { font-size: 1.05rem; margin: 0 0 0.6rem; }
.ra-psummary__cta .ra-btn, .ra-pfinal .ra-btn { min-width: 12rem; font-size: 1.05rem; }
.ra-pfinal { margin: 2.5rem 0; padding: 1.75rem; border-radius: var(--ra-radius); background: var(--ra-forest); color: #FFFFFF; text-align: center; }
.ra-pfinal__title { font-family: "Wix Madefor Display", sans-serif; font-weight: 700; font-size: 1.35rem; line-height: 1.3; margin: 0 0 0.35rem; color: #FFFFFF; }
.ra-pfinal__price { margin: 0 0 1rem; color: #CDE5D6; }
.ra-related { margin-top: 3rem; }
.ra-related h2 { margin-bottom: 1.25rem; }
.single-ra_product .ra-related .ra-pgrid__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 860px) { .single-ra_product .ra-related .ra-pgrid__grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
  .ra-psummary__top, .ra-psummary__pc { grid-template-columns: 1fr; }
  .ra-pcard__actions { grid-template-columns: 1fr; }
}
.ra-related .ra-pcard__actions { grid-template-columns: 1fr; }

/* Spec tables ("What's inside"): two columns, no "our pick" tint, no forced scroll. */
.ra-specs table { min-width: 0; }
.ra-specs tbody tr:first-child td { background: transparent; }
.ra-specs td:first-child { font-weight: 700; width: 34%; }

/* Product image under the title: keep it a sensible size. */
.single-ra_product .article-post-thumbnail { padding-bottom: 0; height: auto; }
.single-ra_product .article-post-thumbnail .post-thumbnail-inner { position: static; text-align: center; background: var(--ra-card); border: 1px solid var(--ra-line); border-radius: var(--ra-radius); padding: 1rem; }
.single-ra_product .article-post-thumbnail img { position: static; width: auto; max-width: 100%; height: auto; max-height: 420px; margin: 0 auto; object-fit: contain; }

/* Cards sit inside .entry-content, whose heading/paragraph margins must not leak in. */
.ra-pcard .ra-pcard__title { margin: 0 0 0.5rem; }
.ra-pcard p { margin-top: 0; }
.ra-pcard .ra-pcard__cat { margin-bottom: 0.6rem; }

/* Price and buttons always sit on the same line across a row: the body
   stretches to the card height and the meta line takes the free space above it. */
.ra-pgrid__item > .ra-pcard { height: 100%; }
.ra-pcard .ra-pcard__body { flex: 1 1 auto; }
.ra-pcard .ra-pcard__meta { margin: auto 0 1rem; }
.ra-pcard .ra-pcard__actions { margin-top: auto; }
.ra-pcard .ra-pcard__meta + .ra-pcard__actions { margin-top: 0; }
.ra-pgrid { margin-bottom: 1.5rem; }

/* Affiliate disclosure line (synced pattern "Affiliate disclosure line"). */
.ra-disclosure-line,
p.ra-disclosure-line { font-size: 14px; line-height: 1.5; color: rgba(43, 43, 43, 0.7); margin: 0 0 0.75rem; padding: 0; background: none; border: 0; }
.ra-psummary__cta .ra-disclosure-line { margin-bottom: 0.6rem; }

/* ------------------------------------------------------------------
   v1.3.1 layout audit fixes
   ------------------------------------------------------------------ */
/* 1. Every full-width section keeps a side gutter on phones, tablets and laptops. */
:root { --ra-gutter: clamp(16px, 4vw, 32px); }
.ra-section,
.ra-section.has-background,
.entry-content .ra-section.alignfull { padding-left: var(--ra-gutter); padding-right: var(--ra-gutter); box-sizing: border-box; }
/* Full-width pages are already edge to edge: no 100vw maths (it overshoots by the scrollbar width). */
.content-width-fullwidth .entry-content > .ra-section.alignfull { margin-left: 0; margin-right: 0; width: auto; max-width: none; }

/* 2. Product page related row: a plain section, not a white box around more white boxes. */
.single-ra_product .ra-related { background: none; border: 0; border-radius: 0; padding: 0; }
.single-ra_product .ra-related > h2 { font-size: 1.5rem; margin: 0 0 1.25rem; }

/* 3. Tables fill their frame; no inner padding or trailing gap. */
.wp-block-table.ra-compare { padding: 0; }
.wp-block-table.ra-compare table { margin: 0; }

/* 4. Card category labels: 13px minimum for legibility. */
.ra-pcard .ra-pcard__cat { font-size: 0.8125rem; }

/* 5. Footer bottom links line up with the text above them. */
#colophon .footer-navigation .menu { margin: 0; padding: 0; }
#colophon .footer-navigation .menu > li:first-child > a { padding-left: 0; }
@media (max-width: 1024px) {
  #colophon .site-bottom-footer-inner-wrap { row-gap: 0.75rem; }
}

/* A page that opens with a white full-width band (e.g. Contact) needs air below the white header. */
.content-width-fullwidth .entry-content > .ra-section.has-background:first-child:not(.ra-hero),
.entry-content > .ra-contact:first-child { margin-top: clamp(1.5rem, 4vw, 3rem); }
.entry-content > .ra-contact:last-child { margin-bottom: clamp(1.5rem, 4vw, 3rem); }
.content-width-fullwidth .entry-content > .ra-section.has-background:last-child { margin-bottom: clamp(1.5rem, 4vw, 3rem); }

/* ------------------------------------------------------------------
   v1.4: reveal animation and header gradient
   ------------------------------------------------------------------ */
/* Bottom-up reveal (classes added by assets/js/reveal.js; nothing is hidden without JS). */
.ra-reveal { opacity: 0; transform: translate3d(0, 28px, 0); transition: opacity 0.6s ease-out, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1); }
.ra-reveal.ra-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .ra-reveal { opacity: 1; transform: none; transition: none; } }

/* Hero: soft off-white to green to amber wash (header stays plain white). */
.ra-hero,
.ra-hero.has-background {
  background-image:
    radial-gradient(ellipse 60% 70% at 12% 20%, rgba(76, 175, 80, 0.16) 0%, rgba(76, 175, 80, 0) 70%),
    radial-gradient(ellipse 55% 65% at 90% 85%, rgba(245, 166, 35, 0.18) 0%, rgba(245, 166, 35, 0) 70%),
    linear-gradient(135deg, #FAF7F0 0%, #EEF6F0 50%, #FBF3E2 100%);
}

/* v1.4.3: coloured bands keep their vertical breathing room
   (core's `.entry-content .wp-block-group.has-background { padding: 20px }` was winning). */
.entry-content .wp-block-group.ra-section.has-background {
  padding-top: clamp(2.75rem, 6vw, 4.5rem);
  padding-bottom: clamp(2.75rem, 6vw, 4.5rem);
  padding-left: var(--ra-gutter);
  padding-right: var(--ra-gutter);
}
.entry-content .wp-block-group.ra-section.ra-hero.has-background {
  padding-top: clamp(3.5rem, 8vw, 6.5rem);
  padding-bottom: clamp(3.5rem, 8vw, 6.5rem);
}
.ra-hero .ra-container > :last-child { margin-bottom: 0; }
