/* ==========================================================================
   ROI Craft — direction 2 style layer (Astra child theme)
   Tokens first, then type, controls, header, content sections, footer,
   then the five brand components. Stage 1: styling only. No content changes.
   ========================================================================== */

:root {
  --rc-ground: #F7F4EE;      /* page ground, warm white */
  --rc-paper:  #FFFFFF;      /* the sheet and cards sit on pure white */
  --rc-panel:  #EFEBE3;      /* toned panel (menus, quiet blocks) */
  --rc-ink:    #17160F;      /* text, rules, footer ground */
  --rc-ink-70: rgba(23, 22, 15, 0.72);
  --rc-ink-55: rgba(23, 22, 15, 0.55);
  --rc-rule:   rgba(23, 22, 15, 0.15);
  --rc-blue:   #0079FF;      /* brand blue: line, stamp, one accent per screen */
  --rc-serif:  'Newsreader', Georgia, 'Times New Roman', serif;
  --rc-mono:   'IBM Plex Mono', 'Courier New', monospace;
  --rc-container: 1200px;
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
html { background: var(--rc-ground); }
body,
body.ast-plain-container,
.ast-plain-container .site-content,
#content,
.site-content { background: var(--rc-ground) !important; color: var(--rc-ink); }

body, p, li, td, th, label, input, textarea, select, blockquote {
  font-family: var(--rc-serif);
  color: var(--rc-ink);
  -webkit-font-smoothing: antialiased;
}
body { font-size: 19px; line-height: 1.5; }
h1, h2, h3, h4, h5, h6,
.entry-title, .site-title {
  font-family: var(--rc-serif) !important;
  font-weight: 400 !important;
  letter-spacing: -0.02em;
  color: var(--rc-ink);
  text-wrap: pretty;
}
h1 { font-size: clamp(44px, 5.4vw, 76px); line-height: 1.02 !important; letter-spacing: -0.025em; }
h2 { font-size: clamp(34px, 3.4vw, 48px); line-height: 1.1 !important; }
h3 { font-size: clamp(24px, 2vw, 28px); line-height: 1.15 !important; }
h4, h5, h6 { font-size: 22px; line-height: 1.2; }
h1 em, h2 em, .rc-accent { font-style: italic; color: var(--rc-blue); }
/* The accent is for one phrase inside a heading. A heading that is italic from end to end
   (the How it works title) would read as a link, so it stays plain. */
h1 > em:only-child, h2 > em:only-child, h1 > strong > em:only-child, h2 > strong > em:only-child,
.entry-title > em:only-child { font-style: normal; color: inherit; }

a { color: var(--rc-ink); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--rc-blue); }
.entry-content a:not(.wp-block-button__link):not(.ast-button):not(.gb-button) { text-decoration: underline; }

/* Container width */
.ast-container, .ast-builder-grid-row-container-inner { max-width: calc(var(--rc-container) + 80px); }

/* Small labels: mono, tracked, uppercase */
.rc-label,
.wp-block-paragraph.has-small-font-size,
.entry-content .has-small-font-size {
  font-family: var(--rc-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--rc-ink-55);
}

/* --------------------------------------------------------------------------
   Buttons: square corners, two styles only
   primary = blue fill on white text; secondary = blue outline
   -------------------------------------------------------------------------- */
.wp-block-button__link,
.ast-button, .ast-custom-button, .button, button,
input[type="submit"], input[type="button"],
.gb-button, .gb-block-button .gb-button,
.wp-block-button .wp-block-button__link {
  font-family: var(--rc-serif) !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  border-radius: 0 !important;
  padding: 15px 22px !important;
  min-height: 52px;
  line-height: 1.2 !important;
  background: var(--rc-blue) !important;
  color: #FFFFFF !important;
  border: 1.5px solid var(--rc-blue) !important;
  box-shadow: none !important;
  text-decoration: none !important;
  transition: background 0.15s ease, color 0.15s ease;
}
.wp-block-button__link:hover, .ast-button:hover, .ast-custom-button:hover,
.gb-button:hover, button:hover, input[type="submit"]:hover {
  background: var(--rc-ink) !important;
  border-color: var(--rc-ink) !important;
  color: var(--rc-ground) !important;
}
/* Secondary: WordPress "outline" style, or add class rc-btn-outline */
.is-style-outline .wp-block-button__link,
.rc-btn-outline, .rc-btn-outline .wp-block-button__link,
.wp-block-button.is-style-outline > .wp-block-button__link {
  background: transparent !important;
  color: var(--rc-blue) !important;
  border: 1.5px solid var(--rc-blue) !important;
}
.is-style-outline .wp-block-button__link:hover, .rc-btn-outline:hover {
  background: var(--rc-blue) !important; color: #FFFFFF !important;
}
.wp-block-buttons { gap: 12px; }

/* --------------------------------------------------------------------------
   Header (Astra header builder)
   -------------------------------------------------------------------------- */
.site-header, .main-header-bar, .ast-primary-header-bar, .ast-header-break-point .main-header-bar,
.ast-mobile-header-wrap .ast-mobile-header-content, .ast-above-header-bar, .ast-below-header-bar {
  background: var(--rc-ground) !important;
  border-bottom: 1px solid var(--rc-rule) !important;
  box-shadow: none !important;
}
.ast-primary-header-bar { padding-top: 6px; padding-bottom: 6px; }
.site-logo-img img, .custom-logo { max-height: 30px; width: auto; }
.main-header-menu > .menu-item > .menu-link,
.ast-builder-menu .main-header-menu .menu-link {
  font-family: var(--rc-serif) !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--rc-ink) !important;
  padding: 0 18px;
}
.main-header-menu > .menu-item > .menu-link:hover,
.main-header-menu > .current-menu-item > .menu-link { color: var(--rc-blue) !important; }
.main-header-menu .menu-item-has-children > .menu-link .ast-menu-toggle { color: inherit; }

/* Header button: the one door. Outline ink, square. */
.ast-header-button-1 .ast-custom-button,
.ast-builder-button-wrap .ast-custom-button,
.ast-header-button-1 .ast-button {
  background: transparent !important;
  color: var(--rc-ink) !important;
  border: 1px solid var(--rc-ink) !important;
  font-size: 17px !important;
  padding: 11px 18px !important;
  min-height: 46px;
}
.ast-header-button-1 .ast-custom-button:hover { background: var(--rc-ink) !important; color: var(--rc-ground) !important; }

/* Dropdown / sub-menu panel = the door open */
.main-header-menu .sub-menu, .ast-desktop .main-header-menu .sub-menu {
  background: var(--rc-panel) !important;
  border: 1px solid var(--rc-rule) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  min-width: 320px;
}
.main-header-menu .sub-menu .menu-link {
  font-family: var(--rc-serif) !important; font-size: 18px !important; color: var(--rc-ink) !important;
  border-top: 1px solid rgba(23,22,15,0.08); padding: 13px 20px !important;
}

/* Mobile header + off-canvas */
.ast-mobile-header-content, .ast-mobile-popup-drawer .ast-mobile-popup-inner {
  background: var(--rc-panel) !important;
}
.ast-mobile-popup-drawer .main-header-menu .menu-link { font-family: var(--rc-serif) !important; font-size: 19px !important; color: var(--rc-ink) !important; }
.menu-toggle, .ast-mobile-menu-trigger-outline, .ast-button-wrap .menu-toggle {
  border: 1px solid var(--rc-ink) !important; border-radius: 0 !important; background: transparent !important; color: var(--rc-ink) !important;
}
.menu-toggle .mobile-menu-toggle-icon svg { fill: var(--rc-ink); }

/* --------------------------------------------------------------------------
   Content sections. Stage 1 rule: the page is one warm-white sheet; dark
   bands go, and sections are separated by hairlines, not colour blocks.
   -------------------------------------------------------------------------- */
.entry-content > .gb-block-container,
.entry-content > .gb-slate-section-hero-with-buttons,
.entry-content > .gb-slate-section-testimonials,
.entry-content > .gb-slate-section-text-with-cta,
.entry-content > .gb-layout-columns-1,
.entry-content > .gb-layout-columns-2,
.entry-content > .gb-layout-service-2,
.entry-content > .wp-block-group,
.entry-content > .wp-block-cover {
  background-color: var(--rc-ground) !important;
  background-image: none !important;
  color: var(--rc-ink) !important;
  border-top: 1px solid var(--rc-rule);
  padding-top: 72px !important;
  padding-bottom: 72px !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.entry-content > *:first-child { border-top: 0; padding-top: 88px !important; }
.gb-has-background-dim::before, .gb-has-background-dim::after,
.wp-block-cover .wp-block-cover__background, .wp-block-cover__gradient-background { display: none !important; }

/* Every heading and paragraph inside a section is ink, whatever inline colour it carried */
.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4,
.entry-content p, .entry-content li, .entry-content .gb-block-container *:not(a):not(.wp-block-button__link):not(.gb-button) {
  color: var(--rc-ink);
}
.entry-content .has-white-color, .entry-content .has-text-color.has-white-color,
.entry-content [style*="color:#fff"], .entry-content [style*="color: #fff"], .entry-content [style*="color:#ffffff"] { color: var(--rc-ink) !important; }
.entry-content p { color: var(--rc-ink); }
.entry-content .gb-block-container p, .entry-content .gb-layout-columns-2 p, .entry-content .gb-layout-service-2 p { color: var(--rc-ink-70); }

/* Hero: left aligned, headline size, body measure */
.entry-content > *:first-child h1,
.entry-content > *:first-child h2:first-of-type { text-align: left; max-width: 14ch; }
.entry-content > *:first-child p { text-align: left; max-width: 58ch; font-size: 22px; }
.entry-content > *:first-child .gb-slate-section-hero-buttons,
.entry-content > *:first-child .wp-block-buttons { justify-content: flex-start; }

/* Cards, columns, testimonials: no radius, hairline or paper */
.gb-block-testimonial, .gb-testimonial, .wp-block-genesis-blocks-gb-testimonial,
.gb-block-columns .gb-block-layout-column-inner, .wp-block-column, .gb-layout-column-wrap,
.gb-block-container .gb-container-inside,
.wp-block-group.has-background {
  border-radius: 0 !important;
  box-shadow: none !important;
}
.gb-block-testimonial, .wp-block-genesis-blocks-gb-testimonial {
  background: var(--rc-paper) !important; border: 1px solid var(--rc-ink) !important;
  box-shadow: 4px 4px 0 var(--rc-ink) !important; padding: 26px !important;
}
.gb-block-testimonial p, .gb-testimonial-text { font-family: var(--rc-serif) !important; font-style: italic; font-size: 19px !important; color: var(--rc-ink) !important; }
.gb-testimonial-name, .gb-testimonial-title { font-family: var(--rc-mono) !important; font-size: 11px !important; letter-spacing: 0.1em; text-transform: uppercase; color: var(--rc-ink-55) !important; }
.gb-testimonial-avatar img, .gb-testimonial-image img { border-radius: 0 !important; filter: grayscale(1); }

/* Logo strips and galleries: quiet */
.wp-block-gallery img, .wp-block-image img { border-radius: 0 !important; }
.wp-block-gallery { opacity: 0.85; }

/* Separators */
hr, .wp-block-separator { border: 0; border-top: 1px solid var(--rc-ink); opacity: 1; max-width: none; }

/* Forms and embeds (GHL iframes untouched; wrapper squared) */
input[type="text"], input[type="email"], input[type="url"], input[type="tel"], textarea, select {
  background: var(--rc-paper); border: 1px solid var(--rc-ink); border-radius: 0 !important; font-family: var(--rc-serif); font-size: 18px; padding: 12px 14px;
}
input:focus, textarea:focus, select:focus { outline: 2px solid var(--rc-blue); outline-offset: 0; }

/* --------------------------------------------------------------------------
   Footer (Astra footer builder): ink ground, cream text, hairlines
   -------------------------------------------------------------------------- */
.site-footer, .site-footer .ast-builder-grid-row-container, .site-above-footer-wrap, .site-primary-footer-wrap, .site-below-footer-wrap {
  background: var(--rc-ink) !important;
  color: var(--rc-ground) !important;
}
.site-footer * { color: var(--rc-ground); }
.site-footer a { color: var(--rc-ground) !important; text-decoration: none; font-family: var(--rc-serif); font-size: 18px; }
.site-footer a:hover { color: var(--rc-blue) !important; }
.site-footer .ast-custom-button, .site-footer .wp-block-button__link {
  background: transparent !important; border: 1px solid var(--rc-ground) !important; color: var(--rc-ground) !important;
}
.site-footer .ast-custom-button:hover { background: var(--rc-ground) !important; color: var(--rc-ink) !important; }
.site-footer .footer-nav-wrap .menu-link { font-family: var(--rc-serif) !important; font-size: 18px !important; text-transform: none !important; }
.site-above-footer-wrap { border-bottom: 1px solid rgba(247,244,238,0.15); }
.site-below-footer-wrap { border-top: 1px solid rgba(247,244,238,0.15); }
.site-below-footer-wrap, .site-below-footer-wrap * , .ast-footer-copyright, .ast-footer-copyright * {
  font-family: var(--rc-mono) !important; font-size: 11px !important; letter-spacing: 0.04em; color: rgba(247,244,238,0.55) !important;
}
.site-footer .widget-title, .site-footer h2, .site-footer h3 { font-family: var(--rc-serif) !important; font-style: italic; font-size: 32px !important; color: var(--rc-ground) !important; }
.site-footer .ast-builder-social-element svg, .site-footer .ahfb-svg-iconset svg { fill: var(--rc-ground) !important; }
.site-footer .ast-builder-social-element:hover svg { fill: var(--rc-blue) !important; }

/* --------------------------------------------------------------------------
   The five brand components (used by block patterns in stage 2; classes
   are safe to add to existing blocks now)
   -------------------------------------------------------------------------- */

/* 1. The sheet: a drawing on paper with a title block */
.rc-sheet { background: var(--rc-paper); border: 1px solid var(--rc-ink); box-shadow: 6px 6px 0 var(--rc-ink); position: relative; }
.rc-sheet__head { display: flex; justify-content: space-between; padding: 10px 16px; border-bottom: 1px solid var(--rc-ink); font-family: var(--rc-mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; }
.rc-sheet svg { display: block; width: 100%; height: auto; }
.rc-sheet svg text { font-family: var(--rc-mono); }
.rc-sheet__caption { font-style: italic; color: var(--rc-ink-70); font-size: 16px; margin-top: 12px; }

/* 2. The title block: drawn by / checked by / rev */
.rc-titleblock { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--rc-ink); font-family: var(--rc-mono); font-size: 10.5px; line-height: 1.5; }
.rc-titleblock > div { padding: 9px 14px; border-right: 1px solid var(--rc-ink); }
.rc-titleblock > div:last-child { border-right: 0; }
.rc-titleblock span { opacity: 0.55; display: block; }
.rc-titleblock--footer { grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid rgba(247,244,238,0.25); padding: 8px 6px; }
.rc-titleblock--footer > div { border-right: 0; }
.rc-titleblock .rc-signed { color: var(--rc-blue); }

/* 3. The stamp */
.rc-stamp { display: inline-block; font-family: var(--rc-mono); font-weight: 500; font-size: 14px; letter-spacing: 0.12em; color: var(--rc-blue); border: 2.5px solid var(--rc-blue); padding: 6px 12px; transform: rotate(-6deg); background: rgba(255,255,255,0.85); }
.rc-sheet .rc-stamp { position: absolute; right: 22px; top: 54px; animation: rc-stamp 0.5s cubic-bezier(.2,1.4,.4,1) 1.2s both; }
@keyframes rc-stamp { from { transform: scale(2.2) rotate(-8deg); opacity: 0; } to { transform: scale(1) rotate(-6deg); opacity: 1; } }
.rc-cross { stroke: var(--rc-blue); stroke-width: 1.4; stroke-dasharray: 120; stroke-dashoffset: 120; animation: rc-cross 0.6s ease-out 0.8s forwards; }
@keyframes rc-cross { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .rc-sheet .rc-stamp, .rc-cross { animation: none; stroke-dashoffset: 0; } }

/* 4. Numbered rows / columns: Plan. Build. Check. */
.rc-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; border-top: 1px solid var(--rc-rule); }
.rc-step { padding: 26px 0; display: flex; flex-direction: column; gap: 12px; }
.rc-step__n { font-family: var(--rc-serif); font-size: 40px; line-height: 1; color: var(--rc-blue); }
.rc-step__t { font-family: var(--rc-serif); font-size: 26px; line-height: 1.1; }
.rc-step__b { font-size: 18px; line-height: 1.45; color: var(--rc-ink-70); }

/* 5. The price card */
.rc-card { background: var(--rc-paper); border: 1.5px solid var(--rc-blue); padding: 28px; display: flex; flex-direction: column; gap: 16px; }
.rc-card__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.rc-card__title { font-family: var(--rc-serif); font-size: 30px; line-height: 1; }
.rc-card__price { font-family: var(--rc-mono); font-size: 13px; color: var(--rc-blue); white-space: nowrap; }
.rc-card__rows { display: flex; flex-direction: column; padding-top: 6px; }
.rc-card__row { display: flex; justify-content: space-between; padding: 12px 0; border-top: 1px solid rgba(23,22,15,0.2); font-family: var(--rc-mono); font-size: 13px; }

/* Pull quote between hairlines */
.rc-quote { border-top: 1px solid var(--rc-ink); border-bottom: 1px solid var(--rc-ink); padding: 44px 0; text-align: center; }
.rc-quote p { font-style: italic; font-size: clamp(27px, 2.8vw, 40px); line-height: 1.15; max-width: 900px; margin: 0 auto; }

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 921px) {
  body { font-size: 18px; }
  .entry-content > .gb-block-container, .entry-content > .gb-slate-section-hero-with-buttons, .entry-content > .gb-slate-section-testimonials,
  .entry-content > .gb-slate-section-text-with-cta, .entry-content > .gb-layout-columns-1, .entry-content > .gb-layout-columns-2,
  .entry-content > .gb-layout-service-2, .entry-content > .wp-block-group, .entry-content > .wp-block-cover { padding-top: 52px !important; padding-bottom: 52px !important; }
  .entry-content > .gb-block-container:first-child, .entry-content > .gb-slate-section-hero-with-buttons:first-child, .entry-content > .gb-layout-columns-1:first-child,
  .entry-content > .wp-block-group:first-child, .entry-content > .wp-block-cover:first-child { padding-top: 40px !important; }
  .entry-content > *:first-child p { font-size: 19px; }
  .rc-steps { grid-template-columns: 1fr; gap: 0; }
  .rc-step { padding: 18px 0; border-top: 1px solid var(--rc-rule); }
  .rc-steps .rc-step:first-child { border-top: 0; }
  .rc-sheet { box-shadow: 4px 4px 0 var(--rc-ink); }
  .rc-sheet .rc-stamp { right: 14px; top: 44px; font-size: 11px; border-width: 2px; padding: 4px 8px; }
  .wp-block-button__link, .ast-button { width: 100%; text-align: center; }
  .wp-block-buttons > .wp-block-button { width: 100%; }
}

/* --------------------------------------------------------------------------
   Overrides found while previewing the live pages (Astra palette + Genesis
   inline colours). Keep these until stage 2 replaces the blocks.
   -------------------------------------------------------------------------- */
:root {
  --ast-global-color-0: var(--rc-ink-70); --ast-global-color-1: var(--rc-ink-70);
  --ast-global-color-2: var(--rc-ink);    --ast-global-color-3: var(--rc-ink);
  --ast-global-color-4: var(--rc-ink);    --ast-global-color-5: var(--rc-ink-70);
  --ast-global-color-6: var(--rc-ink);    --ast-global-color-7: var(--rc-ink-70);
  --ast-global-color-8: var(--rc-ink);
}
.entry-content [style*="color:#f5f5f5"], .entry-content [style*="color:#F5F5F5"],
.entry-content [style*="color:#fff"], .entry-content [style*="color:#FFF"], .entry-content [style*="color:#ffffff"],
.entry-content [class*="has-ast-global-color-4"]:not(.wp-block-button__link):not(.gb-button):not(.ast-button),
.entry-content [class*="has-ast-global-color-5"]:not(.wp-block-button__link):not(.gb-button):not(.ast-button),
.entry-content [class*="has-ast-global-color-7"]:not(.wp-block-button__link):not(.gb-button):not(.ast-button) { color: var(--rc-ink) !important; }
/* Buttons always keep their own text colour, whatever palette class the editor added */
.entry-content .wp-block-button__link[class*="has-"], .entry-content .gb-button[class*="has-"] { color: #FFFFFF !important; }
.entry-content .is-style-outline .wp-block-button__link[class*="has-"] { color: var(--rc-blue) !important; }
.entry-content h1, .entry-content h2, .entry-content h3 { color: var(--rc-ink) !important; }
h1 strong, h2 strong, h3 strong, h1 b, h2 b, h3 b, .entry-title strong { font-weight: 400 !important; }
.entry-content > .alignfull { padding-left: 24px !important; padding-right: 24px !important; }
.entry-content > .alignfull > .gb-layout-column-wrap { max-width: var(--rc-container) !important; margin-left: auto !important; margin-right: auto !important; }
.entry-content > *:first-child h1 { max-width: 16ch; font-size: clamp(44px, 5.4vw, 76px) !important; }
/* Any inner block that carried its own background becomes a paper card with a hairline */
.entry-content > * [style*="background-color"]:not(.wp-block-button__link):not(.gb-button):not(.ast-button):not(mark):not(span),
.entry-content > * [class*="-background-color"]:not(.wp-block-button__link):not(.gb-button):not(mark):not(span) { background-color: var(--rc-paper) !important; background-image: none !important; border: 1px solid var(--rc-ink); border-radius: 0 !important; }
.entry-content > * [style*="background-color"]:not(mark):not(span) *:not(.wp-block-button__link):not(.gb-button):not(a) { color: var(--rc-ink) !important; }
.entry-content .gb-block-layout-column-inner { padding: 32px !important; }
.entry-content .gb-block-layout-column-inner p { color: var(--rc-ink-70) !important; }
.entry-content .gb-block-layout-column-inner h2, .entry-content .gb-block-layout-column-inner h3 { color: var(--rc-ink) !important; }
.gb-testimonial-avatar-wrap img, .gb-testimonial-avatar img { border-radius: 0 !important; }
#ast-scroll-top { background: var(--rc-ink) !important; border-radius: 0 !important; }
@media (max-width: 921px) {
  .entry-content > .alignfull { padding-left: 20px !important; padding-right: 20px !important; }
  .entry-content > *:first-child .gb-block-layout-column-inner { padding: 0 !important; }
  .entry-content .gb-block-layout-column-inner { padding: 22px !important; }
  .entry-content > *:first-child h1 { font-size: 44px !important; max-width: none; }
  .entry-content > *:first-child p { font-size: 18px; }
}

/* --------------------------------------------------------------------------
   The two hand-coded pages (/ecommerce-seo-audit/, /ecommerce-seo-guide/)
   carry their own wrapper (.rc-diag) and their own stylesheet in
   assets/pages/. The section padding and hero rules above must not touch them.
   -------------------------------------------------------------------------- */
.entry-content > .rc-diag,
.entry-content > .rc-diag:first-child {
  padding: 0 !important;
  margin: 40px auto 64px !important;
  max-width: 860px !important;
  border-top: 0 !important;
  background: transparent !important;
}
@media (max-width: 921px) {
  .entry-content > .rc-diag, .entry-content > .rc-diag:first-child { padding: 0 !important; margin: 24px auto 48px !important; }
}
/* Stray link/preload tags inside page content take no space */
.entry-content > link, .entry-content > noscript { display: none !important; padding: 0 !important; }

/* --------------------------------------------------------------------------
   Moved here from Customizer → Additional CSS (16 Sep 2026), so that box can
   be emptied. Only the two blocks that matched anything on the site were
   kept; the "logo carousel" block targeted classes that do not exist here.
   -------------------------------------------------------------------------- */
.ast-fullscreen-menu .main-header-menu,
.ast-fullscreen-menu .main-header-menu ul { text-align: center; }
.ast-fullscreen-menu .menu-item { justify-content: center; }

/* Client logos stack and centre on phones */
@media (max-width: 768px) {
  .gb-layout-columns-6 .gb-layout-column-wrap {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 40px !important;
  }
  .gb-layout-columns-6 .wp-block-genesis-blocks-gb-column {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    margin: 0 !important;
  }
  .gb-layout-columns-6 img {
    margin: 0 auto !important;
    display: block !important;
    max-width: 180px !important;
    height: auto !important;
  }
}

/* Page title from Astra's entry header (Reviews, Privacy, About): same scale as an h1 */
.entry-header { margin: 44px 0 0 !important; padding: 0 !important; }
.entry-header .entry-title { font-size: clamp(38px, 4.2vw, 56px) !important; line-height: 1.05 !important; letter-spacing: -0.025em; margin: 0 0 8px !important; }
@media (max-width: 921px) {
  .entry-header { margin: 28px 0 0 !important; }
  .entry-header .entry-title { font-size: 38px !important; }
}

/* Long-form pages built from plain blocks (Services, About, Privacy): cap the reading measure.
   Sections, columns and groups are untouched; only top-level text blocks are limited. */
.entry-content > p, .entry-content > h2, .entry-content > h3, .entry-content > h4,
.entry-content > ul, .entry-content > ol, .entry-content > blockquote, .entry-content > figure.wp-block-image:not(.alignfull):not(.alignwide) {
  max-width: 860px;
}
.entry-content > h2 { margin-top: 1.4em; }
.entry-content > p.has-text-align-center, .entry-content > h2.has-text-align-center, .entry-content > h3.has-text-align-center { margin-left: auto; margin-right: auto; }

/* --------------------------------------------------------------------------
   Round 2 fixes from the staging review (16 Sep 2026)
   -------------------------------------------------------------------------- */

/* Logo: the theme's own SVG (transparent, ink), larger */
.site-logo-img img, .custom-logo, .site-logo-img .rc-logo { max-height: 44px; height: 44px; width: auto; }
.site-logo-img { line-height: 0; }

/* Header button: centre the label vertically */
.ast-header-button-1 .ast-custom-button, .ast-builder-button-wrap .ast-custom-button {
  display: inline-flex !important; align-items: center !important; justify-content: center;
  line-height: 1 !important; padding: 13px 18px 12px !important; min-height: 0;
}

/* Editor highlights (<mark>) inside text are plain text, not chips */
.entry-content mark, .entry-content > * mark {
  background: transparent !important; border: 0 !important; padding: 0 !important; color: inherit !important; border-radius: 0 !important;
}

/* No synthesised bold anywhere: strong maps to the 500 face; bold inside headings stays regular */
strong, b { font-weight: 500 !important; }
h1 strong, h2 strong, h3 strong, h4 strong, h5 strong, h6 strong,
h1 b, h2 b, h3 b, h4 b, h5 b, h6 b, .entry-title strong { font-weight: 400 !important; }

/* Core cover hero (How it works): same measure as the alignwide blocks below it */
.entry-content > .wp-block-cover.alignfull .wp-block-cover__inner-container,
.entry-content > .alignwide { max-width: var(--rc-container) !important; margin-left: auto !important; margin-right: auto !important; width: 100%; }
.entry-content > .wp-block-cover.alignfull { padding-left: 24px !important; padding-right: 24px !important; }

/* Footer: everything centred */
.site-footer .site-footer-section, .site-footer .ast-footer-copyright, .site-footer .ast-builder-html-element { text-align: center !important; justify-content: center !important; }
.site-footer .footer-nav-wrap ul, .site-footer .ast-builder-social-element-wrap, .site-footer .ast-builder-social-element { justify-content: center; }
.site-footer .footer-nav-wrap { margin-left: auto; margin-right: auto; }

/* Testimonial: avatar left, name and title stacked beside it, never under it */
.gb-testimonial-info { display: grid !important; grid-template-columns: 56px 1fr; column-gap: 14px; align-items: center; text-align: left; margin-top: 22px; }
.gb-testimonial-info .gb-testimonial-avatar-wrap { grid-row: 1 / 3; width: 56px; height: 56px; margin: 0 !important; float: none !important; position: static !important; }
.gb-testimonial-info .gb-testimonial-image-wrap, .gb-testimonial-info .gb-testimonial-avatar-wrap img { width: 56px !important; height: 56px !important; object-fit: cover; display: block; }
.gb-testimonial-info .gb-testimonial-name { grid-column: 2; margin: 0 !important; line-height: 1.3; font-size: 11px !important; }
.gb-testimonial-info .gb-testimonial-title { grid-column: 2; margin: 0 !important; line-height: 1.3; }

/* Mobile menu: panel ground, ink links, whichever menu type Astra uses */
.ast-header-break-point .main-header-bar-navigation,
.ast-header-break-point .ast-mobile-header-content,
.ast-header-break-point .main-header-bar-navigation .main-header-menu,
.ast-header-break-point .main-header-bar-navigation .sub-menu,
.ast-mobile-popup-drawer .ast-mobile-popup-inner,
.ast-mobile-popup-drawer .ast-mobile-popup-content,
.ast-mobile-popup-drawer .main-header-menu { background: var(--rc-panel) !important; background-color: var(--rc-panel) !important; }
.ast-header-break-point .main-header-bar-navigation .menu-link,
.ast-header-break-point .main-header-bar-navigation .menu-item > .menu-link,
.ast-mobile-popup-drawer .menu-link, .ast-mobile-popup-drawer .menu-item > .menu-link,
.ast-header-break-point .main-header-bar-navigation .ast-menu-toggle,
.ast-mobile-popup-drawer .ast-mobile-popup-header .menu-toggle-close {
  color: var(--rc-ink) !important; font-family: var(--rc-serif) !important; font-size: 19px !important;
  border-top: 1px solid var(--rc-rule) !important; padding: 14px 20px !important;
}
.ast-header-break-point .main-header-bar-navigation .menu-item:first-child > .menu-link { border-top: 0 !important; }
.ast-header-break-point .main-header-bar-navigation .menu-link:hover,
.ast-header-break-point .main-header-bar-navigation .current-menu-item > .menu-link { color: var(--rc-blue) !important; background: transparent !important; }
.ast-header-break-point .ast-builder-menu-mobile .main-header-menu { border-top: 1px solid var(--rc-ink) !important; }

@media (max-width: 921px) {
  /* One 20px gutter, no stacked padding inside sections */
  .site-logo-img img, .custom-logo, .site-logo-img .rc-logo { max-height: 36px; height: 36px; }
  .entry-content > .alignfull, .entry-content > .wp-block-cover.alignfull { padding-left: 20px !important; padding-right: 20px !important; }
  .entry-content .gb-block-layout-column-inner { padding: 0 !important; }
  .entry-content .gb-block-layout-column-inner[style*="background-color"],
  .entry-content > * [class*="-background-color"] .gb-block-layout-column-inner { padding: 20px !important; }
  .entry-content > *:first-child { padding-top: 24px !important; }
  .entry-content > .wp-block-cover.alignfull:first-child { padding-top: 24px !important; padding-bottom: 32px !important; min-height: 0 !important; }
  .gb-block-testimonial, .wp-block-genesis-blocks-gb-testimonial { padding: 22px 20px !important; margin-left: 0 !important; margin-right: 0 !important; }
  .gb-block-testimonial p, .gb-testimonial-text { font-size: 18px !important; }
  .site-below-footer-wrap, .site-primary-footer-wrap, .site-above-footer-wrap { padding-left: 20px !important; padding-right: 20px !important; }
  .site-below-footer-wrap .ast-footer-copyright { padding: 0 !important; }
  .site-footer .ast-builder-grid-row { padding-left: 0; padding-right: 0; }
}

/* Mobile menu links: no dark fill behind each link (Astra's mobile link background setting) */
.ast-header-break-point .main-header-menu .menu-link,
.ast-header-break-point .main-header-menu .menu-item,
.ast-header-break-point .main-header-menu > .menu-item > .menu-link,
.ast-mobile-popup-drawer .main-header-menu .menu-link { background: transparent !important; background-color: transparent !important; }
.ast-header-break-point .main-header-bar-navigation .main-header-menu,
.ast-header-break-point .main-navigation .main-header-menu { background: var(--rc-panel) !important; box-shadow: none !important; padding: 8px 0 !important; }

@media (max-width: 921px) {
  /* Cover hero and alignwide blocks use the full 20px-gutter width on phones */
  .entry-content > .wp-block-cover.alignfull .wp-block-cover__inner-container,
  .entry-content > .alignwide { width: 100% !important; max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
  .entry-content > .wp-block-cover.alignfull .wp-block-cover__inner-container > * { max-width: 100% !important; }
}
@media (max-width: 921px) {
  /* Core columns (How it works) stack with no inner padding on phones */
  .entry-content > .wp-block-columns, .entry-content .wp-block-columns.alignwide { padding-left: 0 !important; padding-right: 0 !important; }
  .entry-content .wp-block-columns > .wp-block-column { padding-left: 0 !important; padding-right: 0 !important; }
  .entry-content .wp-block-group.alignwide { padding-left: 0 !important; padding-right: 0 !important; }
}

/* Cover hero content sits on the left edge of the measure, like the columns beneath it */
.entry-content > .wp-block-cover.alignfull .wp-block-cover__inner-container > *,
.entry-content > .wp-block-cover.alignfull .wp-block-cover__inner-container .wp-block-group > * { margin-left: 0 !important; margin-right: auto !important; text-align: left; }
.entry-content > .wp-block-cover.alignfull { min-height: 0 !important; padding-top: 72px !important; padding-bottom: 56px !important; }
.entry-content > .wp-block-cover.alignfull .wp-block-cover__inner-container { width: 100% !important; flex: 0 0 100% !important; max-width: var(--rc-container) !important; margin: 0 auto !important; }
.entry-content > .wp-block-cover.alignfull { justify-content: center !important; }

/* --------------------------------------------------------------------------
   Round 3 fixes from the staging review (16 Sep 2026)
   -------------------------------------------------------------------------- */

/* Page title band: one size and one rhythm on every page.
   44px from the header rule to the title, 32px from the title to the first text. */
.entry-header .entry-title,
.entry-content > .wp-block-cover.alignfull:first-child h1 { font-size: clamp(38px, 4.6vw, 64px) !important; line-height: 1.02 !important; }
.entry-header { margin: 0 20px !important; }
#primary { margin-top: 44px !important; }
.entry-header .entry-title { margin: 0 0 32px !important; }
.entry-header + .entry-content > :first-child { padding-top: 0 !important; margin-top: 0 !important; }
.entry-content > .wp-block-cover.alignfull:first-child { padding-top: 0 !important; padding-bottom: 32px !important; }
.entry-content > .wp-block-cover.alignfull:first-child + .wp-block-columns { margin-top: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }
.entry-content > .wp-block-cover.alignfull:first-child + .wp-block-columns > .wp-block-column { padding-top: 0 !important; }
.entry-content > .wp-block-cover.alignfull:first-child + .wp-block-columns > .wp-block-column:first-child { padding-left: 0 !important; }
.entry-content > .wp-block-cover.alignfull:first-child + .wp-block-columns > .wp-block-column:last-child { padding-right: 0 !important; }

/* Home hero: less air above the headline (was 196px from the header rule, now 84px) */
.entry-content > .wp-block-genesis-blocks-gb-columns:first-child { padding-top: 40px !important; }
.entry-content > .wp-block-genesis-blocks-gb-columns:first-child .gb-block-layout-column-inner { padding-top: 0 !important; }

@media (max-width: 921px) {
  .entry-header .entry-title, .entry-content > .wp-block-cover.alignfull:first-child h1 { font-size: 38px !important; }
  .entry-header .entry-title { margin-bottom: 24px !important; }
  #primary { margin-top: 28px !important; }
  .entry-header { margin: 0 !important; }
  .entry-content > .wp-block-cover.alignfull:first-child { padding-top: 24px !important; padding-bottom: 24px !important; }
  .entry-content > .wp-block-genesis-blocks-gb-columns:first-child { padding-top: 24px !important; }
}

/* Mobile menu: the button spans the panel width, label centred */
.ast-mobile-header-content .ast-header-button-1, .ast-mobile-popup-drawer .ast-header-button-1 { padding: 16px 20px !important; justify-content: center !important; }
.ast-mobile-header-content .ast-builder-button-wrap, .ast-mobile-popup-drawer .ast-builder-button-wrap { width: 100%; }
.ast-mobile-header-content .ast-custom-button-link, .ast-mobile-popup-drawer .ast-custom-button-link { display: block; width: 100%; }
.ast-mobile-header-content .ast-custom-button, .ast-mobile-popup-drawer .ast-custom-button { display: flex !important; width: 100%; margin: 0 !important; justify-content: center !important; padding: 14px 18px 13px !important; }

/* Page title sits left on phones too (Astra centres it below 921px) */
.entry-header, .entry-header .entry-title { text-align: left !important; }

/* Client logo strips: every logo sized by height, centred, one visual weight.
   Interim sizing for the current PNGs; retune when the SVG logos arrive. */
.gb-layout-columns-6 .gb-block-layout-column-inner { display: flex; align-items: center; justify-content: center; padding: 0 !important; min-height: 48px; }
.gb-layout-columns-6 .wp-block-gallery, .gb-layout-columns-6 .wp-block-image, .gb-layout-columns-6 figure { margin: 0 !important; padding: 0 !important; width: auto !important; display: flex; align-items: center; justify-content: center; }
.gb-layout-columns-6 img { height: 34px !important; width: auto !important; max-width: 100% !important; object-fit: contain; margin: 0 !important; display: block; }
@media (max-width: 768px) {
  .gb-layout-columns-6 .gb-layout-column-wrap { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; flex-direction: row !important; gap: 24px 20px !important; align-items: center !important; }
  .gb-layout-columns-6 .wp-block-genesis-blocks-gb-column { width: auto !important; margin: 0 !important; grid-column: auto !important; grid-row: auto !important; }
  .gb-layout-columns-6 .gb-block-layout-column-inner { min-height: 40px; }
  .gb-layout-columns-6 img { height: 30px !important; max-width: 150px !important; }
}

/* --------------------------------------------------------------------------
   Client logo strip (17 Sep 2026): seven SVG wordmarks shipped in the theme
   (assets/img/clients/). Each logo gets its own height so the seven read as
   one visual weight; widths follow from the artwork.
   -------------------------------------------------------------------------- */
.rc-logo-strip { display: flex !important; flex-wrap: wrap; justify-content: center; align-items: center; gap: 24px 28px; margin: 8px auto 0; max-width: var(--rc-container); }
.rc-logo-strip .rc-logo, .rc-logo-strip figure { margin: 0 !important; padding: 0 !important; line-height: 0; flex: 0 0 auto; }
.rc-logo-strip img { width: auto !important; max-width: none !important; height: 30px; display: block; border-radius: 0 !important; }
.rc-logo-strip .rc-logo-nodiee img { height: 31px; }
.rc-logo-strip .rc-logo-natty img { height: 36px; }
.rc-logo-strip .rc-logo-boardcave img { height: 24px; }
.rc-logo-strip .rc-logo-mick_tighe img { height: 54px; }
.rc-logo-strip .rc-logo-timberdog img { height: 27px; }
.rc-logo-strip .rc-logo-italia_moto img { height: 50px; }
.rc-logo-strip .rc-logo-explore_life img { height: 44px; }
@media (max-width: 768px) {
  .rc-logo-strip { gap: 24px 28px; }
  .rc-logo-strip img { height: 26px; }
  .rc-logo-strip .rc-logo-nodiee img { height: 28px; }
  .rc-logo-strip .rc-logo-natty img { height: 32px; }
  .rc-logo-strip .rc-logo-boardcave img { height: 21px; }
  .rc-logo-strip .rc-logo-mick_tighe img { height: 48px; }
  .rc-logo-strip .rc-logo-timberdog img { height: 24px; }
  .rc-logo-strip .rc-logo-italia_moto img { height: 46px; }
  .rc-logo-strip .rc-logo-explore_life img { height: 40px; }
}

/* ==========================================================================
   Stage 2 (v1.5.0, 2 Oct 2026): the launch pages, built from NATIVE blocks.
   Every card, step, quote and list is a Group / Paragraph / Heading / Buttons /
   Details block carrying one of the class names below (Advanced > Additional
   CSS class), so all wording stays editable in the visual editor. Only the
   Blueprint drawing and the logo strip are Custom HTML.
   Pages using these carry the template "ROI Craft page" or
   "ROI Craft landing (logo only)" (body classes rc-tpl / rc-landing).
   ========================================================================== */

/* Templates: the page's own H1 replaces Astra's title */
.rc-tpl .entry-header { display: none !important; }
.rc-tpl .entry-content > *:first-child { padding-top: 44px !important; }
.rc-tpl .entry-content > .rc-flush { border-top: 0 !important; padding-top: 0 !important; }
.rc-tpl .entry-content > *:first-child h1 { max-width: 18ch; }
.rc-tpl .entry-content > *:first-child h1.rc-title { font-size: clamp(38px, 4.4vw, 64px) !important; max-width: 22ch; }
.rc-tpl .entry-content > *:first-child p { font-size: inherit; max-width: none; }
.rc-tpl .entry-content p.rc-lede, .rc-tpl .entry-content > *:first-child p.rc-lede { font-size: 22px; max-width: 58ch; }
.rc-tpl .entry-content strong { font-weight: 500; }

/* Landing template: logo only in the header, no footer menus */
.rc-landing .ast-builder-menu-1, .rc-landing .ast-builder-menu,
.rc-landing .ast-header-button-1, .rc-landing .ast-builder-button-wrap,
.rc-landing .ast-mobile-menu-trigger-minimal, .rc-landing .ast-mobile-menu-trigger-outline,
.rc-landing .ast-mobile-menu-trigger-fill, .rc-landing .ast-button-wrap .menu-toggle,
.rc-landing .ast-mobile-header-content, .rc-landing .ast-mobile-popup-drawer,
.rc-landing .site-above-footer-wrap, .rc-landing .site-primary-footer-wrap { display: none !important; }
.rc-landing .entry-content p.rc-legal { font-size: 16px; text-align: center; }

/* Inside the components, the block editor's flow spacing is switched off;
   each component sets its own gaps */
.rc-card > *, .rc-card__head > *, .rc-card__rows > *, .rc-card__row > *,
.rc-steps > *, .rc-step > *, .rc-grid2 > *, .rc-grid3 > *, .rc-grid4 > *,
.rc-lines > *, .rc-quote > *, .rc-box > *, .rc-faq > *, .rc-stack > *, .rc-embed > * {
  margin-block-start: 0 !important; margin-block-end: 0 !important;
}
.rc-card p, .rc-step p, .rc-lines p, .rc-quote p, .rc-box p, .rc-embed p { margin: 0 !important; }

/* Text roles (Paragraph > Additional CSS class) */
.entry-content p.rc-label, .entry-content .rc-label { color: var(--rc-ink-55); }
.entry-content p.rc-soft, .entry-content .rc-soft { color: var(--rc-ink-70); }
.entry-content p.rc-small { font-size: 16px; }
.entry-content p.rc-sig { font-family: var(--rc-mono) !important; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--rc-ink-55); }
.entry-content p.rc-sig strong { color: var(--rc-ink); font-weight: 500; }

/* Grids of cards (Group with class rc-grid2 / rc-grid3 / rc-grid4) */
.rc-grid2, .rc-grid3, .rc-grid4 { display: grid !important; gap: 24px; align-items: stretch; }
.rc-grid2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rc-grid3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rc-grid4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { .rc-grid4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* The card, native version: Group rc-card > [Paragraph rc-label] > Group rc-card__head
   (Paragraph rc-card__title + Paragraph rc-card__price) > Paragraph > [Group rc-card__rows
   of Group rc-card__row] > Buttons */
.rc-card { box-sizing: border-box; }
.entry-content .rc-card__price { color: var(--rc-blue); }
.rc-card > p:not(.rc-label) { font-size: 17px; line-height: 1.45; flex-grow: 1; }
.entry-content .rc-card > p:not(.rc-label) { color: rgba(23, 22, 15, 0.8); }
.rc-card__head .rc-card__title { flex: 1 1 auto; }
.rc-card__row { line-height: 1.45; gap: 16px; }
.rc-card__row > p:last-child { text-align: right; }
.rc-card .wp-block-buttons { margin-top: auto !important; }
.rc-card .wp-block-button { width: 100%; }
.rc-card .wp-block-button__link { width: 100%; text-align: center; display: flex; align-items: center; justify-content: center; }

/* Steps, native version: Group rc-steps > Group rc-step > Paragraphs rc-step__n / __t / __b */
.entry-content .rc-step__n { color: var(--rc-blue); }
.entry-content .rc-step__b { color: var(--rc-ink-70); }
.rc-steps + .rc-steps { margin-top: 0 !important; }

/* Lines between hairlines (Group rc-lines > Paragraphs) */
.rc-lines { display: flex; flex-direction: column; }
.rc-lines > p { padding: 14px 0 !important; border-top: 1px solid var(--rc-ink); }
.rc-lines > p:last-child { border-bottom: 1px solid var(--rc-ink); }

/* Heading left, text right (Columns rc-cols) and the hero (Columns rc-hero) */
.wp-block-columns.rc-cols { gap: 64px; align-items: flex-start; }
.wp-block-columns.rc-cols > .wp-block-column > h2:first-child { margin-top: 0; }
.wp-block-columns.rc-hero { gap: 72px; align-items: center; }
.rc-stack { display: flex; flex-direction: column; gap: 20px; }

/* Pull quote, native version (Group rc-quote > Paragraph + Paragraph rc-label) */
.rc-quote { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.rc-quote p.rc-label { font-style: normal; font-size: 11px !important; }

/* Boxed panel (Group rc-box), e.g. the refund position */
.rc-box { background: var(--rc-paper); border: 1px solid var(--rc-ink); padding: 32px; display: flex; flex-direction: column; gap: 12px; }

/* Placeholder for an embed that is not built yet (Group rc-embed) */
.rc-embed { background: #E3E1DC; border: 1px dashed rgba(23, 22, 15, 0.45); padding: 24px; min-height: 200px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; text-align: center; }
.entry-content .rc-embed p { font-family: var(--rc-mono); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(23, 22, 15, 0.62); }

/* GHL embeds (survey, calendar): full width, no frame */
.rc-ghl iframe { width: 100% !important; border: 0 !important; display: block; }
.rc-ghl--survey { min-height: 600px; }
.rc-ghl--calendar { min-height: 640px; }

/* Text link styled button (Button with class rc-btn-link), sits beside a primary button */
.wp-block-button.rc-btn-link .wp-block-button__link,
.entry-content .wp-block-button.rc-btn-link .wp-block-button__link {
  background: transparent !important; border: 0 !important; color: var(--rc-ink) !important;
  text-decoration: underline !important; text-underline-offset: 3px; font-weight: 400 !important;
  padding: 6px 0 !important; min-height: 0; 
}
.wp-block-button.rc-btn-link .wp-block-button__link:hover { color: var(--rc-blue) !important; background: transparent !important; }
.wp-block-buttons:has(.rc-btn-link) { align-items: center; gap: 24px; }

/* FAQ (Group rc-faq > Details blocks) */
.rc-faq { display: flex; flex-direction: column; gap: 6px; }
.entry-content .wp-block-details { padding: 6px 0; margin: 0; }
.entry-content .wp-block-details summary { cursor: pointer; }
.entry-content .wp-block-details > p { padding: 8px 0 4px 18px; margin: 0; color: var(--rc-ink-70); }

@media (max-width: 921px) {
  .rc-tpl .entry-content > *:first-child { padding-top: 28px !important; }
  .rc-tpl .entry-content > *:first-child h1 { font-size: 44px !important; }
  .rc-tpl .entry-content > *:first-child h1.rc-title { font-size: 38px !important; }
  .rc-tpl .entry-content p.rc-lede, .rc-tpl .entry-content > *:first-child p.rc-lede { font-size: 18px; }
  .rc-grid2, .rc-grid3, .rc-grid4 { grid-template-columns: 1fr; gap: 14px; }
  .wp-block-columns.rc-cols, .wp-block-columns.rc-hero { gap: 22px; }
  .rc-box { padding: 22px 20px; }
  .rc-card { padding: 22px; }
  .wp-block-buttons:has(.rc-btn-link) { flex-direction: column; align-items: stretch; gap: 8px; }
  .wp-block-button.rc-btn-link .wp-block-button__link { text-align: center; justify-content: center; }
}

/* v1.5.0 review fixes (same day, after the first staging check) */
.rc-tpl .entry-content h2.wp-block-heading { font-size: clamp(34px, 3.4vw, 48px) !important; line-height: 1.1 !important; }
.rc-grid4 .rc-card__head { flex-direction: column; align-items: flex-start; gap: 6px; }
.rc-card:has(.rc-card__rows) > p:not(.rc-label) { flex-grow: 0; }
.rc-card > .rc-card__rows { flex-grow: 1; }
.rc-tpl .entry-content .rc-embed p { font-family: var(--rc-mono); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(23, 22, 15, 0.62); max-width: 60ch; }
.rc-tpl .entry-content .rc-card p.rc-label { font-size: 11px !important; }
@media (max-width: 921px) {
  .rc-grid3:has(> .rc-lines) { gap: 0; }
  .rc-grid3 > .rc-lines:not(:last-child) > p:last-child { border-bottom: 0; }
}

/* v1.5.3: the "Grow your store" door lives in the main menu (menu item with CSS class rc-door,
   four doors as its sub-menu). When that item exists, Astra's separate header button is hidden,
   so a site whose menu has no door (e.g. live before its menu is updated) keeps its button. */
.main-header-menu > .menu-item.rc-door > .menu-link {
  border: 1px solid var(--rc-ink); padding: 11px 18px !important; margin-left: 18px; min-height: 46px;
  display: inline-flex; align-items: center; font-weight: 500 !important;
}
.main-header-menu > .menu-item.rc-door:hover > .menu-link,
.main-header-menu > .menu-item.rc-door.focus > .menu-link { background: var(--rc-ink); color: var(--rc-ground) !important; }
.main-header-menu > .menu-item.rc-door > .sub-menu { right: 0; left: auto; }
.site-header:has(.rc-door) .ast-header-button-1,
.site-header:has(.rc-door) .ast-builder-button-wrap { display: none !important; }
@media (max-width: 921px) {
  .ast-mobile-popup-drawer .menu-item.rc-door > .menu-link,
  .ast-mobile-header-content .menu-item.rc-door > .menu-link { margin-left: 0; border: 0; padding: inherit; font-weight: 500 !important; }
}

/* v1.5.4: the header/footer row container is capped at 1280px (rule near the top) but had no
   auto margins, so on screens wider than 1280px the footer sat left of centre. */
.ast-builder-grid-row-container-inner { margin-left: auto; margin-right: auto; }
.main-header-menu > .menu-item.rc-door { display: flex; align-items: center; }
.main-header-menu > .menu-item.rc-door > .menu-link { height: 46px; line-height: 1 !important; }
/* v1.5.7: in the phone menu the door is an ordinary row, same as its siblings */
.ast-mobile-header-content .main-header-menu > .menu-item.rc-door > .menu-link,
.ast-mobile-popup-drawer .main-header-menu > .menu-item.rc-door > .menu-link {
  height: auto; line-height: 57px !important; padding: 14px 20px !important; margin-left: 0; border: 0; display: block; min-height: 0;
}

/* --------------------------------------------------------------------------
   Footer v1.5.8: rendered by functions.php (roicraft_render_footer), replaces
   Astra's footer builder rows. Blue only as line, underline and stamp.
   Design: Cowork canvas "ROI Craft Footer", draft 2.
   -------------------------------------------------------------------------- */
.rc-own-footer #colophon.site-footer { display: none !important; } /* safety net, see functions.php */
.rc-footer { background: var(--rc-ink); color: var(--rc-ground); border-top: 3px solid var(--rc-blue); font-family: var(--rc-serif); }
.rc-footer__inner { max-width: 1360px; margin: 0 auto; padding: 96px 40px 48px; box-sizing: border-box; }
.rc-footer p { margin: 0; }
.rc-footer__top { display: grid; grid-template-columns: minmax(0, 1fr) repeat(5, auto); column-gap: 48px; row-gap: 48px; align-items: start; }
.rc-footer__brand { display: flex; flex-direction: column; gap: 22px; max-width: 280px; }
.rc-footer__logo { display: block; width: 150px; height: 51px; background-color: var(--rc-ground);
  -webkit-mask: url(img/roicraft-logo.svg) no-repeat left center / contain; mask: url(img/roicraft-logo.svg) no-repeat left center / contain; }
.rc-footer__line { font-size: 16px; line-height: 1.5; color: rgba(247,244,238,0.72); }
.rc-footer__label { font-family: var(--rc-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(247,244,238,0.6); margin-bottom: 22px !important; }
.rc-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.rc-footer__col li { margin: 0; }
.rc-footer__col a, .rc-footer__min-nav a {
  color: var(--rc-ground); text-decoration: none; font-family: var(--rc-serif); font-size: 17px; line-height: 1.35; white-space: nowrap;
  padding-bottom: 3px; background-image: linear-gradient(var(--rc-blue), var(--rc-blue)); background-repeat: no-repeat;
  background-position: 0 100%; background-size: 0% 1.5px; transition: background-size .28s cubic-bezier(.2,.7,.2,1);
}
.rc-footer__col a:hover, .rc-footer__col a:focus-visible, .rc-footer__min-nav a:hover, .rc-footer__min-nav a:focus-visible { color: var(--rc-ground); background-size: 100% 1.5px; }
.rc-footer a:focus-visible { outline: 2px solid var(--rc-blue); outline-offset: 4px; }
.rc-footer__bottom { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-top: 112px; padding-top: 28px; border-top: 1px solid rgba(247,244,238,0.15); }
.rc-footer__legal { font-family: var(--rc-mono); font-size: 11px; letter-spacing: 0.04em; color: rgba(247,244,238,0.6); }
.rc-footer__tb { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 340px; border: 1px solid rgba(247,244,238,0.25); font-family: var(--rc-mono); font-size: 11px; line-height: 1.5; }
.rc-footer__tb > div { padding: 9px 14px; }
.rc-footer__tb > div:first-child { border-right: 1px solid rgba(247,244,238,0.25); }
.rc-footer__tb > div > span { display: block; color: rgba(247,244,238,0.6); }
.rc-footer__tb b { color: var(--rc-blue); font-weight: 500; }
.rc-footer__stamp { position: absolute; right: -18px; top: -30px; font-family: var(--rc-mono); font-weight: 500; font-size: 13px; letter-spacing: 0.14em;
  color: var(--rc-blue); border: 2px solid var(--rc-blue); padding: 5px 10px; background: var(--rc-ink); transform: rotate(-6deg); }
.rc-footer__tb.js-stamp .rc-footer__stamp { opacity: 0; }
.rc-footer__tb.is-in .rc-footer__stamp { animation: rc-stamp .5s cubic-bezier(.2,1.4,.4,1) .15s both; }
/* Reduced footer on landing pages */
.rc-footer--min .rc-footer__inner { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-top: 40px; padding-bottom: 40px; }
.rc-footer__min-left { display: flex; align-items: center; gap: 28px; }
.rc-footer--min .rc-footer__logo { width: 110px; height: 38px; }
.rc-footer__min-nav { display: flex; gap: 28px; }
.rc-footer__min-nav a { display: inline-block; padding-top: 12px; padding-bottom: 12px; background-position: 0 calc(100% - 9px); }
@media (max-width: 1180px) {
  .rc-footer__top { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rc-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .rc-footer__inner { padding: 56px 20px 32px; }
  .rc-footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; row-gap: 36px; }
  .rc-footer__brand { gap: 18px; }
  .rc-footer__logo { width: 136px; height: 47px; }
  .rc-footer__label { margin-bottom: 6px !important; }
  .rc-footer__col ul { gap: 0; }
  .rc-footer__col a { display: inline-block; white-space: normal; padding-top: 10px; padding-bottom: 10px; background-position: 0 calc(100% - 8px); }
  .rc-footer__bottom { flex-direction: column-reverse; align-items: stretch; gap: 20px; margin-top: 44px; padding-top: 24px; }
  .rc-footer__tb { width: auto; }
  .rc-footer__tb > div { padding: 9px 12px; }
  .rc-footer__stamp { right: 10px; }
  .rc-footer--min .rc-footer__inner { flex-direction: column; align-items: flex-start; padding-top: 32px; padding-bottom: 32px; }
  .rc-footer__min-left { flex-direction: column; align-items: flex-start; gap: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .rc-footer__col a, .rc-footer__min-nav a { transition: none; }
  .rc-footer__tb.is-in .rc-footer__stamp { animation: none; }
}
