/*
Theme Name:     Astra Child
Description:    Resurgant Software Inc. — design system on top of Astra.
Author:         YourTraff
Template:       astra
Version:        2.0.0
Text Domain:    astra-child
*/

/* ==========================================================================
   Design system 2.0 (October 2026): one set of rules for every page.
   - Surfaces: white. Light grey #f3f4f5 only for blocks with a job of their
     own (the contact block, "What you get", side panels). Dark green for one
     accent panel and the footer. Rules are 1px and quiet.
   - Type: Inter everywhere. Source Serif 4 only for the logo and
     "We’re Team You.". Desktop / phone: H1 64 / 38 (500), section titles
     44 / 30 (500), service and product names 28 / 24 (600), item titles
     22 / 20 (600), body 18 / 17 at 1.6, labels 13 / 12.
   - Shapes: 18px for buttons, photos (and the box that crops them), cards
     and panels; 12px for form fields; full-width sections stay square.
   - Space: sections 144 / 80, heading to content 84 / 48, content 1120 wide,
     big columns 96 apart, gutters 24 on phones. All in px: Astra shrinks
     the root font size on phones, so rem would shrink with it. Between 390
     and 1440 the values scale with the window (clamp), outside they stop.
   - Grid: wide content splits 5 : 7 — titles on the left, text on the
     right — so headings, row titles and text line up from page to page.
   - Links: in sentences and "→" action links are underlined; navigation
     (menus, footer, lists of pages) is not. Hover: the line gets heavier
     or appears. Focus: a 2px ring, white on green.
   - Reading layout (articles, Privacy Policy): one 720px column.
   ========================================================================== */

/* ==========================================================================
   1. Fonts (self-hosted, latin subset; SIL Open Font License)
   ========================================================================== */
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/inter-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/inter-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/inter-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Source Serif 4"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/source-serif-4-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Source Serif 4"; font-style: italic; font-weight: 400; font-display: swap; src: url("fonts/source-serif-4-latin-400-italic.woff2") format("woff2"); }
@font-face { font-family: "Source Serif 4"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/source-serif-4-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Source Serif 4"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/source-serif-4-latin-600-normal.woff2") format("woff2"); }

/* ==========================================================================
   2. Tokens
   ========================================================================== */
:root {
	/* Colour */
	--rs-white: #ffffff;
	--rs-bg: #ffffff;
	--rs-bg-alt: #f3f4f5;          /* the light grey */
	--rs-ink: #1b2420;             /* headings and body text */
	--rs-ink-2: #4b5752;           /* secondary text: 7.5:1 on white, 6.9:1 on grey */
	--rs-label: #5d6e66;           /* eyebrows and labels: 5.4:1 on white, 4.9:1 on grey */
	--rs-line: #e0e5e2;            /* 1px rules on white */
	--rs-line-alt: #d5dbd8;        /* 1px rules on grey */
	--rs-line-strong: #b9c0bd;
	--rs-field: #8b9390;           /* form field borders: 3:1 on white (WCAG 1.4.11) */
	--rs-forest: #1e4d3b;          /* brand: buttons, links, accents */
	--rs-forest-dark: #143427;     /* hover, footer */
	--rs-forest-tint: #e8f0ec;
	--rs-on-dark: #ffffff;         /* 9.6:1 on the green panel */
	--rs-on-dark-2: #c5d3cb;       /* 6.2:1 on the green panel, 8.7:1 on the footer */
	--rs-on-dark-label: #a9c7b6;   /* 5.3:1 on the green panel */
	--rs-on-dark-line: rgba(255, 255, 255, 0.2);
	--rs-danger: #b3261e;

	/* Type (px on purpose, see the notes at the top) */
	--rs-font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--rs-font-serif: "Source Serif 4", ui-serif, Georgia, "Times New Roman", serif;
	--rs-fs-h1: clamp(38px, 28.343px + 2.476vw, 64px);
	--rs-fs-h2: clamp(30px, 24.8px + 1.333vw, 44px);
	--rs-fs-name: clamp(24px, 22.514px + 0.381vw, 28px);     /* service and product names */
	--rs-fs-sub: clamp(21px, 19.886px + 0.286vw, 24px);      /* subheads in articles, key facts, article titles in lists */
	--rs-fs-item: clamp(20px, 19.257px + 0.19vw, 22px);      /* item titles: problems, rows, steps */
	--rs-fs-lead: clamp(19px, 17.886px + 0.286vw, 22px);
	--rs-fs-body: clamp(17px, 16.629px + 0.095vw, 18px);
	--rs-fs-read: clamp(17px, 16.257px + 0.19vw, 19px);      /* article and policy text */
	--rs-fs-small: clamp(15px, 14.629px + 0.095vw, 16px);
	--rs-fs-xs: 14px;
	--rs-fs-label: clamp(12px, 11.629px + 0.095vw, 13px);

	/* Space */
	--rs-wide: 1120px;
	--rs-read: 720px;
	--rs-gutter: clamp(24px, 12px + 2.5vw, 40px);
	--rs-s-section: clamp(80px, 56.229px + 6.095vw, 144px);     /* section padding, top and bottom */
	--rs-s-hero-top: clamp(56px, 35.2px + 5.333vw, 112px);
	--rs-s-hero-bottom: clamp(56px, 41.143px + 3.81vw, 96px);
	--rs-s-head: clamp(48px, 34.629px + 3.429vw, 84px);         /* section heading to its content */
	--rs-s-cols: clamp(48px, 30.171px + 4.571vw, 96px);         /* big columns */
	--rs-s-items: clamp(48px, 42.057px + 1.524vw, 64px);        /* independent items */
	--rs-s-row: clamp(24px, 21.029px + 0.762vw, 32px);          /* padding of an open row */
	--rs-s-panel-y: clamp(32px, 14.171px + 4.571vw, 80px);      /* inside panels */
	--rs-s-panel-x: clamp(24px, -2.743px + 6.857vw, 96px);

	/* Shape */
	--rs-radius: 18px;
	--rs-radius-field: 12px;
	--rs-btn-h: 56px;
	--rs-btn-px: 30px;
	--rs-shadow-pop: 0 12px 32px rgba(20, 30, 26, 0.10);       /* dropdown menu only */

	/* Astra's own palette points at ours, so states Astra styles itself (button focus,
	   menu toggles, default links) never fall back to its blue. */
	--ast-global-color-0: #1e4d3b;
	--ast-global-color-1: #143427;
	--ast-global-color-2: #1b2420;
	--ast-global-color-3: #4b5752;
	--ast-global-color-4: #ffffff;
	--ast-global-color-5: #f3f4f5;
	--ast-global-color-6: #1b2420;
	--ast-global-color-7: #e0e5e2;
	--ast-global-color-8: #1b2420;
}

/* ==========================================================================
   3. Base
   ========================================================================== */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: 0.01ms !important; }
}

body,
body.ast-plain-container,
body.ast-separate-container,
body.ast-page-builder-template {
	background: var(--rs-bg);
	color: var(--rs-ink);
	font-family: var(--rs-font-sans);
	font-size: var(--rs-fs-body);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
body p, body li, body input, body select, body textarea, body button { font-family: var(--rs-font-sans); }

h1, h2, h3, h4, h5, h6,
.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5, .entry-content h6 {
	font-family: var(--rs-font-sans);
	color: var(--rs-ink);
	text-wrap: balance;
	margin-top: 0;
}
h1, .entry-content h1 { font-size: var(--rs-fs-h1); font-weight: 500; line-height: 1.08; letter-spacing: -0.025em; margin-bottom: 0; }
h2, .entry-content h2 { font-size: var(--rs-fs-h2); font-weight: 500; line-height: 1.12; letter-spacing: -0.02em; margin-bottom: 0; }
h3, .entry-content h3 { font-size: var(--rs-fs-item); font-weight: 600; line-height: 1.3; letter-spacing: -0.012em; margin-bottom: 0; }
h4, h5, h6, .entry-content h4, .entry-content h5, .entry-content h6 { font-size: var(--rs-fs-body); font-weight: 600; line-height: 1.4; letter-spacing: -0.006em; }

strong, b { font-weight: 600; }
::selection { background: var(--rs-forest-tint); color: var(--rs-ink); }
[id] { scroll-margin-top: 32px; }
a[href^="tel:"] { white-space: nowrap; }

/* Links. One underline everywhere: 1px, a little below the text; hover makes it 2px. */
a {
	color: var(--rs-forest);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.22em;
	transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}
a:hover, a:focus { color: var(--rs-forest-dark); }
.entry-content p a, .entry-content li a, .rs-contact p a, .rs-link a, .rs-more li a {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.22em;
}
.entry-content p a:hover, .entry-content li a:hover, .rs-contact p a:hover, .rs-link a:hover, .rs-more li a:hover { text-decoration-thickness: 2px; }

/* Navigation links (menus, footer, lists of pages, in-page nav): no line until hover */
.main-header-menu a, .ast-builder-menu a, .ast-mobile-header-content a,
.rs-footer a, .rs-toc a, .rs-crumbs a, .rs-contact-details a,
.entry-content .rs-products li > a, .rs-products li > a,
.rs-article-list .wp-block-post-title a, .site-title a, .ast-custom-button-link { text-decoration: none !important; }
.rs-footer a:hover, .rs-toc a:hover, .rs-crumbs a:hover, .rs-contact-details a:hover,
.entry-content .rs-products li > a:hover, .rs-products li > a:hover,
.rs-article-list .wp-block-post-title a:hover { text-decoration: underline !important; text-decoration-thickness: 1px !important; }

/* Keyboard focus: a 2px ring outside the element, white on dark green */
:focus-visible { outline: 2px solid var(--rs-forest); outline-offset: 3px; }
a:focus-visible { border-radius: 4px; }
.rs-accent :focus-visible, .rs-bg-forest :focus-visible, .rs-footer :focus-visible { outline-color: var(--rs-on-dark); }

/* ==========================================================================
   4. Astra resets: pages are built from full-width sections
   ========================================================================== */
.rs-page .site-content > .ast-container,
.rs-page .site-content .ast-container { max-width: none; padding-left: 0; padding-right: 0; display: block; }
.rs-page #primary,
.rs-page .site-main,
.rs-page .content-area { margin: 0 !important; padding: 0 !important; width: 100%; float: none; }
.rs-page .entry-header,
.rs-page .ast-single-entry-banner { display: none; }
.rs-page article.ast-article-single,
.rs-page .ast-article-single,
.rs-page .ast-article-post { margin: 0; padding: 0; background: transparent; border: 0; }
.rs-page .entry-content > * { margin-top: 0; margin-bottom: 0; }
.rs-page .post-navigation, .rs-page .comments-area { display: none; }

/* ==========================================================================
   5. Sections, width, the 5 : 7 grid
   ========================================================================== */
.rs-section {
	position: relative;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	padding: var(--rs-s-section) 0;
	background-color: var(--rs-bg);
}
.entry-content > .rs-section,
.rs-section.rs-contact { padding: var(--rs-s-section) 0 !important; }

.rs-wrap {
	box-sizing: border-box;
	width: 100%;
	max-width: calc(var(--rs-wide) + 2 * var(--rs-gutter));
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: var(--rs-gutter);
	padding-right: var(--rs-gutter);
}
.rs-wrap > * { margin-top: 0; margin-bottom: 0; }
.rs-wrap > * + * { margin-top: 24px; }
.rs-section p, .rs-section ul, .rs-section ol, .rs-section figure,
.rs-section h1, .rs-section h2, .rs-section h3, .rs-section h4 { margin-bottom: 0; }
.rs-section ul.wp-block-list { margin-left: 0; }

/* Two white sections in a row: a 1px rule between them, as wide as the content */
.entry-content > .rs-section:not(.rs-bg-alt):not(.rs-bg-forest):not(.rs-contact):not(.rs-panel-section)
	+ .rs-section:not(.rs-bg-alt):not(.rs-bg-forest):not(.rs-contact):not(.rs-panel-section):not(.rs-no-rule) {
	background-image: linear-gradient(var(--rs-line), var(--rs-line));
	background-repeat: no-repeat;
	background-position: center top;
	background-size: min(var(--rs-wide), calc(100vw - 2 * var(--rs-gutter))) 1px;
}

/* A section that holds one panel (grey or green) has no padding of its own:
   the panel is the block, the sections around it give it the usual space. */
.entry-content > .rs-section.rs-panel-section { padding-top: 0 !important; padding-bottom: 0 !important; }

/* Surfaces. Grey and green are for blocks with a job of their own, never just alternation. */
.rs-bg-alt { background-color: var(--rs-bg-alt); --rs-line: var(--rs-line-alt); }
.rs-bg-forest { background-color: var(--rs-forest); color: var(--rs-on-dark); }

/* Section heading: eyebrow, title and intro read as one group */
.rs-head { max-width: 760px; }
.rs-head > * { margin: 0 !important; }
.rs-head > * + * { margin-top: 20px !important; }
.rs-head > .rs-eyebrow + * { margin-top: 16px !important; }
.rs-head > p:not(.rs-eyebrow):not(.rs-link) { font-size: var(--rs-fs-lead); line-height: 1.5; color: var(--rs-ink-2); }
.rs-head > .rs-link { margin-top: 28px !important; }
.rs-wrap > .rs-head + * { margin-top: var(--rs-s-head) !important; }

/* Split: the section title on the left (5), its text on the right (7). Stacked below 900px. */
.rs-split {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr);
	row-gap: 24px;
	column-gap: var(--rs-s-cols);
	align-items: start;
	margin: 0 !important;
}
.rs-split > .wp-block-column { margin: 0 !important; min-width: 0; flex-basis: auto !important; width: auto; }
.rs-split > .wp-block-column > * { margin-top: 0; margin-bottom: 0; }
.rs-split > .wp-block-column > * + * { margin-top: 20px; }
.rs-split > .wp-block-column > .rs-eyebrow + * { margin-top: 16px; }
.rs-split > .wp-block-column > .rs-link,
.rs-split > .wp-block-column > .rs-links { margin-top: 28px; }
.rs-split > .wp-block-column > .rs-cta { margin-top: 40px; }
@media (min-width: 900px) {
	.rs-split { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
}
@media (max-width: 899px) {
	.rs-split:has(> .wp-block-column > .rs-head) { row-gap: var(--rs-s-head); }
	.rs-accent > .rs-split { row-gap: 40px; }
}

/* Grids of open items */
.rs-grid { display: grid !important; grid-template-columns: minmax(0, 1fr); column-gap: var(--rs-s-cols); row-gap: var(--rs-s-items); margin: 0; }
.rs-grid > * { margin: 0 !important; min-width: 0; }
.rs-grid-3 { column-gap: var(--rs-s-items); }
@media (min-width: 700px) { .rs-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 900px) { .rs-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ==========================================================================
   6. Type helpers
   ========================================================================== */
.rs-eyebrow, p.rs-eyebrow,
.rs-card-label, p.rs-card-label {
	font-family: var(--rs-font-sans);
	font-size: var(--rs-fs-label);
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--rs-label);
	line-height: 1.4;
	margin: 0;
}
.rs-lead, p.rs-lead { font-size: var(--rs-fs-lead); line-height: 1.5; color: var(--rs-ink-2); max-width: 680px; }
.rs-lead strong { color: var(--rs-ink); font-weight: 600; }
.rs-muted { color: var(--rs-ink-2); }
.rs-small { font-size: var(--rs-fs-small); }
.rs-note { font-size: var(--rs-fs-small); color: var(--rs-ink-2); }

/* Action links: "More on … →". Underlined like every link in text, with the arrow. */
.rs-link a { font-weight: 600; color: var(--rs-forest); }
.rs-link a::after, .rs-more li a::after, .rs-article-list .wp-block-post-excerpt__more-link::after { content: "\00a0\2192"; }
.rs-links { display: flex; flex-wrap: wrap; gap: 12px 32px; align-items: baseline; }
.rs-links > * { margin: 0 !important; }

/* ==========================================================================
   7. Buttons and the call-to-action row
   Green fill, 56px tall, 30px sides, 18px corners. The header phone button
   is the outline version, 44px.
   ========================================================================== */
.wp-block-button__link,
.wp-element-button,
.ast-custom-button,
.fluentform .ff-btn-submit,
.rs-btn {
	font-family: var(--rs-font-sans) !important;
	font-weight: 600 !important;
	font-size: 16px !important;
	line-height: 1.25 !important;
	letter-spacing: 0 !important;
	border-radius: var(--rs-radius) !important;
}
body .wp-block-button .wp-block-button__link,
.rs-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: var(--rs-btn-h);
	padding: 0 var(--rs-btn-px);
	background: var(--rs-forest);
	color: var(--rs-white);
	border: 1px solid var(--rs-forest);
	text-decoration: none !important;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
body .wp-block-button .wp-block-button__link:hover,
.rs-btn:hover { background: var(--rs-forest-dark); border-color: var(--rs-forest-dark); color: var(--rs-white); }
body .wp-block-button .wp-block-button__link:focus { color: var(--rs-white); background: var(--rs-forest); border-color: var(--rs-forest); }
body .wp-block-button .wp-block-button__link:focus:hover { background: var(--rs-forest-dark); border-color: var(--rs-forest-dark); }
body .wp-block-button .wp-block-button__link:active,
.rs-btn:active { background: #0f281e; }
.wp-block-button .wp-block-button__link:focus-visible,
.rs-btn:focus-visible,
.ast-custom-button-link:focus-visible,
.fluentform .ff-btn-submit:focus-visible { outline: 2px solid var(--rs-forest) !important; outline-offset: 3px !important; } /* plugins reset :focus; keep the ring */

.rs-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.rs-cta > * { margin: 0 !important; }
.rs-cta .wp-block-buttons { margin: 0; }
.rs-cta p { color: var(--rs-ink-2); font-size: var(--rs-fs-small); }
.rs-cta p a { font-weight: 600; }

/* ==========================================================================
   8. Heroes
   ========================================================================== */
.entry-content > .rs-section.rs-hero { padding: var(--rs-s-hero-top) 0 var(--rs-s-hero-bottom) !important; }
.rs-hero h1 { max-width: 15em; }
.rs-hero .rs-wrap > .rs-eyebrow + h1 { margin-top: 20px; }
.rs-hero .rs-wrap > h1 + * { margin-top: 28px; }
.rs-hero .rs-wrap > .rs-cta { margin-top: 40px; }
.rs-hero .rs-wrap > .rs-photo { margin-top: var(--rs-s-head); }

/* Short titles (Services, Insights): the title on the left, the lead and the button on
   the right, both sitting on the title's last line */
@media (min-width: 900px) {
	.rs-hero-row > .rs-wrap { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: var(--rs-s-cols); align-items: end; }
	.rs-hero-row > .rs-wrap > * { margin: 0 !important; }
	.rs-hero-row > .rs-wrap > .rs-eyebrow { grid-column: 1; grid-row: 1; margin-bottom: 20px !important; }
	.rs-hero-row > .rs-wrap > h1 { grid-column: 1; grid-row: 2; }
	.rs-hero-row > .rs-wrap > .rs-lead { grid-column: 2; grid-row: 1; margin-bottom: 32px !important; }
	.rs-hero-row > .rs-wrap > .rs-cta { grid-column: 2; grid-row: 2; }
	.rs-hero-row > .rs-wrap:not(:has(.rs-cta)) > .rs-lead { grid-row: 2; margin-bottom: 0 !important; }
}

/* About: the lead in two sizes, so the person and the experience carry the page */
.rs-statement { font-size: clamp(26px, 22.286px + 0.952vw, 36px); line-height: 1.25; font-weight: 500; letter-spacing: -0.02em; color: var(--rs-ink); max-width: 22em; }
.rs-statement strong { font-weight: 600; color: var(--rs-forest); }
.rs-hero .rs-wrap > h1 + .rs-statement { margin-top: 32px; }
.rs-hero .rs-wrap > .rs-statement + .rs-lead { margin-top: 16px; }

/* A short note right under the title (Financial Controller & Accounting: who the work is billed under) */
.rs-hero .rs-wrap > h1 + .rs-hero-note { margin-top: 16px; }
.rs-hero .rs-wrap > .rs-hero-note + .rs-lead { margin-top: 24px; }

/* A second, smaller paragraph under the lead (Accounting Systems: working alongside the reseller) */
.rs-hero .rs-wrap > .rs-lead + .rs-hero-more { margin-top: 20px; }
.rs-hero-more { max-width: 680px; color: var(--rs-ink-2); }

/* Home: text on the left, the photo beside it (40% of the row). The photo keeps
   its 4:5 shape and may run below the first screen. */
.rs-hero-split h1 { font-size: clamp(38px, 29.829px + 2.095vw, 60px); max-width: none; }
.rs-hero-split .rs-hero-text > * { margin-top: 0; margin-bottom: 0; }
.rs-hero-split .rs-hero-text > .rs-eyebrow + h1 { margin-top: 20px; }
.rs-hero-split .rs-lead { margin-top: 28px; max-width: 34em; }
.rs-hero-split .rs-cta { margin-top: 40px !important; }
.rs-hero-split .rs-hero-foot { margin-top: 56px !important; }
.rs-hero-foot { padding-top: 20px; border-top: 1px solid var(--rs-line); max-width: 560px; display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: baseline; }
.rs-hero-foot > * { margin: 0 !important; }
.rs-hero-foot p:not(.rs-link) { font-size: var(--rs-fs-small); color: var(--rs-ink-2); }
.rs-hero-foot .rs-link { font-size: var(--rs-fs-small); }
.rs-hero-photo { --rs-photo-pos: 40% 50%; }
@media (min-width: 960px) {
	.rs-hero-split > .rs-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 40%); column-gap: var(--rs-s-cols); align-items: center; }
	.rs-hero-split > .rs-wrap > * { margin: 0 !important; }
	.rs-hero-split .rs-hero-text { grid-column: 1; grid-row: 1; }
	.rs-hero-split .rs-hero-photo { grid-column: 2; grid-row: 1; aspect-ratio: 4 / 5; width: 100%; }
}
@media (max-width: 959px) {
	/* Phones and tablets: heading, lead and button first, then the photo, then the note */
	.rs-hero-split > .rs-wrap { display: flex; flex-direction: column; }
	.rs-hero-split > .rs-wrap > * { margin: 0 !important; }
	.rs-hero-split .rs-hero-text { display: contents; }
	.rs-hero-split .rs-hero-text > * { order: 1; }
	.rs-hero-split .rs-hero-photo { order: 2; margin-top: 48px !important; aspect-ratio: 16 / 9; --rs-photo-pos: 40% 38%; }
	.rs-hero-split .rs-hero-text > .rs-hero-foot { order: 3; margin-top: 48px !important; }
}
@media (max-width: 640px) {
	.rs-hero-split .rs-hero-photo { aspect-ratio: 3 / 2; }
}

/* Facts under the home hero: one band between two rules. The top rule is the grid's own; the bottom one
   is the rule of the white section that follows, so the band has no bottom padding, its cells keep the
   same space above and below the text, and the dividers between them run from rule to rule. */
.entry-content > .rs-section.rs-facts { padding-top: 0 !important; padding-bottom: 0 !important; }
.rs-facts .wp-block-columns { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0 !important; border-top: 1px solid var(--rs-line); }
.rs-facts .rs-fact { margin: 0 !important; padding: 28px 24px 28px 0; min-width: 0; flex-basis: auto !important; }
.rs-facts .rs-fact + .rs-fact { padding-left: 28px; border-left: 1px solid var(--rs-line); }
.rs-fact p { margin: 0 !important; }
.rs-fact .rs-fact-value { font-size: var(--rs-fs-sub); font-weight: 600; letter-spacing: -0.015em; color: var(--rs-forest); line-height: 1.2; }
.rs-fact .rs-fact-label { margin-top: 8px !important; color: var(--rs-ink-2); font-size: var(--rs-fs-small); line-height: 1.45; }
@media (max-width: 899px) {
	.rs-facts .wp-block-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rs-facts .rs-fact, .rs-facts .rs-fact + .rs-fact { padding: 20px 16px 20px 0; border-left: 0; border-bottom: 1px solid var(--rs-line); }
	.rs-facts .rs-fact:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--rs-line); }
	/* the last row is closed by the section rule below it (one line, not two) */
	.rs-facts .rs-fact:nth-last-child(-n+2) { border-bottom: 0; }
}

/* ==========================================================================
   9. Photos: 18px corners on the photo and on the box that crops it
   ========================================================================== */
.rs-photo,
.wp-block-image.rs-photo {
	margin: 0;
	overflow: hidden;
	border-radius: var(--rs-radius);
	background: linear-gradient(160deg, #f3f5f4 0%, #e4ece7 100%); /* the only gradient: seen while the photo loads */
	isolation: isolate;
}
.rs-photo img,
.wp-block-image.rs-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--rs-photo-pos, 50% 50%);
	border-radius: var(--rs-radius);
}
.rs-photo-wide { aspect-ratio: 21 / 9; --rs-photo-pos: 50% 30%; }
@media (max-width: 899px) { .rs-photo-wide { aspect-ratio: 4 / 3; --rs-photo-pos: 45% 40%; } }

/* ==========================================================================
   10. Open items: problems, rows, definitions, ticks, steps
   ========================================================================== */
/* Problems: a rule above each, no boxes */
.rs-issue { border-top: 1px solid var(--rs-line); padding-top: 28px; }
.rs-issue > * { margin: 0 !important; }
.rs-issue > * + * { margin-top: 12px !important; }
.rs-issue > .rs-link { margin-top: 20px !important; }
.rs-issue p:not(.rs-link) { color: var(--rs-ink-2); }
.rs-issues-stack > * { margin: 0 !important; }
.rs-issues-stack > * + * { margin-top: 48px !important; }

/* Rows: a title or term on the left (5), what it means on the right (7) */
.rs-rows { border-top: 1px solid var(--rs-line); }
.rs-rows > * { margin: 0 !important; }
.rs-row { padding: var(--rs-s-row) 0; border-bottom: 1px solid var(--rs-line); }
.rs-row > * { margin: 0 !important; }
.rs-row > * + * { margin-top: 8px !important; }
/* A ruled list that closes a section right before a section rule: that rule is its closing line (one line, not two) */
.entry-content > .rs-section:not(.rs-bg-alt):not(.rs-bg-forest):not(.rs-contact):not(.rs-panel-section):has(+ .rs-section:not(.rs-bg-alt):not(.rs-bg-forest):not(.rs-contact):not(.rs-panel-section):not(.rs-no-rule):not(.rs-feed)) > .rs-wrap > .rs-rows:last-child > .rs-row:last-child { border-bottom: 0; padding-bottom: 0; }
.rs-row > h3, .rs-row > .rs-term { font-size: var(--rs-fs-item); font-weight: 600; line-height: 1.3; letter-spacing: -0.012em; color: var(--rs-ink); }
.rs-row > .rs-term strong { font-weight: 600; }
.rs-row > p:not(.rs-term) { color: var(--rs-ink-2); }
@media (min-width: 900px) {
	.rs-row { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: var(--rs-s-cols); align-items: baseline; }
	.rs-row > * + * { margin-top: 0 !important; }
}

/* Tick list: what the client gets */
.rs-ticks { list-style: none; padding: 0 !important; margin: 0 !important; border-top: 1px solid var(--rs-line); }
.rs-ticks li { position: relative; margin: 0 !important; padding: 18px 0 18px 40px; border-bottom: 1px solid var(--rs-line); }
.rs-ticks li::before { content: ""; position: absolute; left: 3px; top: calc(18px + 0.5em); width: 14px; height: 7px; border-left: 2px solid var(--rs-forest); border-bottom: 2px solid var(--rs-forest); transform: rotate(-45deg); }

/* Steps (home): plain green numbers */
.rs-steps { counter-reset: rs-step; }
.rs-step { counter-increment: rs-step; }
.rs-step > * { margin: 0 !important; }
.rs-step > * + * { margin-top: 12px !important; }
.rs-step::before { content: counter(rs-step, decimal-leading-zero); display: block; margin-bottom: 16px; color: var(--rs-forest); font-size: 14px; font-weight: 600; letter-spacing: 0.06em; line-height: 1; font-variant-numeric: tabular-nums; }
.rs-step p { color: var(--rs-ink-2); }

/* Contact page: what to expect, three columns */
.rs-explain-item > * { margin: 0 !important; }
.rs-explain-item > * + * { margin-top: 12px !important; }
.rs-explain-item .rs-term { font-size: var(--rs-fs-item); font-weight: 600; line-height: 1.3; letter-spacing: -0.012em; }
.rs-explain-item p:not(.rs-term) { color: var(--rs-ink-2); }
.rs-explain .rs-explain-item { border-top: 1px solid var(--rs-line); padding-top: 28px; }

/* Diagnostic list (Construction Accounting, "Where it usually goes wrong"): the heading in a narrow
   column, the problems stacked beside it, each title over its explanation. No rules: the catalogue
   of work right after it keeps its rows, so the two sections read differently. The heading column
   is 336 px: at 320 the heading broke into three lines ("Where it / usually / goes wrong"). */
.rs-diag > * { margin: 0 !important; }
.rs-diag-list { margin-top: var(--rs-s-head) !important; }
.rs-diag-list > * { margin: 0 !important; }
.rs-diag-list > * + * { margin-top: clamp(40px, 35.543px + 1.143vw, 52px) !important; }
.rs-diag-item > * { margin: 0 !important; }
.rs-diag-item > h3 { font-size: var(--rs-fs-item); font-weight: 600; line-height: 1.3; letter-spacing: -0.012em; color: var(--rs-ink); }
.rs-diag-item > p { margin-top: 16px !important; color: var(--rs-ink-2); max-width: 40em; }
@media (min-width: 900px) {
	.rs-diag { display: grid; grid-template-columns: 336px minmax(0, 1fr); column-gap: var(--rs-s-cols); align-items: start; }
	.rs-diag-list { margin-top: 0 !important; }
}

/* Process (Accounting Systems, "Implementation and migration"): the five steps in order, a thin line
   with small green marks (decoration only, no numbers). One under the other along a line on the left;
   across the page once each of the five columns gets at least 185 px: 5 x 185 + 4 x 32 = 1053 px of
   content, which a window of 1133 px or wider gives (1133 - 2 x 40 gutters). */
.rs-process { margin-top: var(--rs-s-head) !important; }
.rs-process > * { margin: 0 !important; }
.rs-process > .rs-stage + .rs-stage { margin-top: 32px !important; }
.rs-stage { position: relative; padding-left: 36px; }
.rs-stage > * { margin: 0 !important; }
.rs-stage > .rs-term { font-size: var(--rs-fs-item); font-weight: 600; line-height: 1.3; letter-spacing: -0.012em; color: var(--rs-ink); }
.rs-stage > .rs-term strong { font-weight: 600; }
.rs-stage > p + p { margin-top: 10px !important; color: var(--rs-ink-2); }
.rs-stage::before { content: ""; position: absolute; left: 4px; top: calc(var(--rs-fs-item) * 0.65); bottom: calc(-32px - var(--rs-fs-item) * 0.65); width: 1px; background: var(--rs-line-strong); }
.rs-stage:last-child::before { display: none; }
.rs-stage::after { content: ""; position: absolute; left: 0; top: calc(var(--rs-fs-item) * 0.65 - 4.5px); width: 9px; height: 9px; border-radius: 50%; background: var(--rs-forest); }
@media (min-width: 1133px) {
	.rs-process { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); column-gap: 32px; }
	.rs-process > .rs-stage + .rs-stage { margin-top: 0 !important; }
	.rs-stage { padding-left: 0; padding-top: 32px; }
	.rs-stage::before { left: 0; right: -32px; top: 4px; bottom: auto; width: auto; height: 1px; }
	.rs-stage::after { top: 0; }
}
/* Articles on choosing a vendor, requirements and running the project, under the five steps. */
.rs-process + .rs-links { margin-top: 48px !important; }

/* Paired explanation (Services, "How accounting and systems work together"): two sentences side by
   side, the third under both as what follows from them. */
.rs-pair { margin-top: var(--rs-s-head) !important; }
.rs-pair > * { margin: 0 !important; }
.rs-pair > p { font-size: clamp(17px, 15.886px + 0.286vw, 20px); line-height: 1.6; color: var(--rs-ink); }
.rs-pair > p + p { margin-top: 20px !important; }
.rs-wrap > .rs-pair-sum { margin-top: clamp(28px, 17.6px + 2.667vw, 56px) !important; max-width: 800px; font-size: var(--rs-fs-sub); font-weight: 500; line-height: 1.4; letter-spacing: -0.01em; color: var(--rs-ink); }
@media (min-width: 700px) {
	.rs-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(80px, 64.865px + 2.162vw, 96px); }
	.rs-pair > p + p { margin-top: 0 !important; }
}

/* Editorial column (About, "What we know"): the heading above one 720 px column on the common left line */
.rs-story-section .rs-wrap > h2 + .rs-story { margin-top: clamp(30px, 24.8px + 1.333vw, 44px) !important; }
.rs-story { max-width: var(--rs-read); }
.rs-story > * { margin: 0 !important; }
.rs-story > p + p { margin-top: clamp(24px, 21.771px + 0.571vw, 30px) !important; }

/* Line breaks in the blocks above and in the results panel: no single word left on the last line
   of a paragraph, and the two wide statements broken into lines of similar length */
.rs-diag-item > p, .rs-stage > p, .rs-pair > p, .rs-story > p, .rs-results li, .rs-results-panel .rs-callout p { text-wrap: pretty; }
.rs-wrap > .rs-pair-sum, .rs-results-panel .rs-wrap > .rs-result-lead { text-wrap: balance; }

/* ==========================================================================
   11. Panels: callout (grey or white), panel (grey), accent (green)
   ========================================================================== */
.rs-callout { background: var(--rs-bg-alt); border-radius: var(--rs-radius); padding: clamp(28px, 22.057px + 1.524vw, 44px) clamp(24px, 16.571px + 1.905vw, 44px); }
.rs-bg-alt .rs-callout { background: var(--rs-white); }
.rs-callout > * { margin: 0 !important; }
.rs-callout > * + * { margin-top: 12px !important; }
.rs-wrap > .rs-callout { margin-top: var(--rs-s-items) !important; }
@media (min-width: 900px) {
	/* Under the split, the callout lines up with the right-hand column */
	.rs-wrap > .rs-split + .rs-callout { margin-left: calc((100% - var(--rs-s-cols)) * 5 / 12 + var(--rs-s-cols)) !important; }
}

/* Results panel (Controller & Accounting, "What you get"): the heading on top, the first result as a
   wide statement, the other four in two open columns, then the note on the same left line. */
.rs-results-panel .rs-wrap > .rs-result-lead { margin-top: var(--rs-s-head); max-width: 720px; font-size: var(--rs-fs-sub); font-weight: 500; line-height: 1.4; letter-spacing: -0.01em; color: var(--rs-ink); }
.rs-results-panel .rs-wrap > .rs-results { margin-top: clamp(32px, 26.057px + 1.524vw, 48px) !important; border-top: 0; display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 28px; }
.rs-results li { padding: 0 0 0 40px; border-bottom: 0; }
.rs-results li::before { top: 0.5em; }
@media (min-width: 700px) {
	.rs-results-panel .rs-wrap > .rs-results { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(64px, 48.865px + 2.162vw, 80px); row-gap: clamp(40px, 37.029px + 0.762vw, 48px); }
}
.rs-results-panel .rs-wrap > .rs-callout { max-width: 720px; }

.rs-panel,
.rs-accent { border-radius: var(--rs-radius); padding: var(--rs-s-panel-y) var(--rs-s-panel-x); }
.rs-panel { background: var(--rs-bg-alt); --rs-line: var(--rs-line-alt); }
.rs-accent {
	background: var(--rs-forest);
	color: var(--rs-on-dark);
	--rs-line: var(--rs-on-dark-line);
	--rs-label: var(--rs-on-dark-label);
}
.rs-accent h2, .rs-accent h3 { color: var(--rs-on-dark) !important; }
.rs-accent p, .rs-accent li { color: var(--rs-on-dark-2); }
.rs-accent a, .rs-accent a:hover { color: var(--rs-on-dark) !important; }
.rs-accent .wp-block-button .wp-block-button__link { background: var(--rs-white); color: var(--rs-forest-dark); border-color: var(--rs-white); }
.rs-panel > .rs-split, .rs-accent > .rs-split { margin: 0 !important; }
.rs-panel-section .rs-panel > *, .rs-panel-section .rs-accent > * { margin-top: 0; margin-bottom: 0; }

/* ==========================================================================
   12. Services as wide rows (Home, Services)
   ========================================================================== */
.rs-service-rows > * { margin: 0 !important; }
.rs-service { padding: clamp(56px, 47.086px + 2.286vw, 80px) 0; border-top: 1px solid var(--rs-line); }
.rs-service:first-child { padding-top: 0; border-top: 0; }
.rs-service:last-child { padding-bottom: 0; }
.rs-service > * { margin: 0 !important; min-width: 0; }
.rs-service-name > * { margin: 0 !important; }
.rs-service-name h3 { margin-top: 12px !important; font-size: var(--rs-fs-name); line-height: 1.2; letter-spacing: -0.015em; }
.rs-service-body { max-width: 640px; }
.rs-service-body > * { margin: 0 !important; }
.rs-service-body > p:first-child { font-size: var(--rs-fs-lead); line-height: 1.5; color: var(--rs-ink); }
.rs-service-body ul { list-style: none; padding: 0 !important; margin: 32px 0 0 !important; }
.rs-service-body li { position: relative; margin: 0 !important; padding-left: 22px; color: var(--rs-ink-2); line-height: 1.55; }
.rs-service-body li + li { margin-top: 14px !important; }
.rs-service-body li::before { content: ""; position: absolute; left: 2px; top: 0.66em; width: 6px; height: 6px; border-radius: 50%; background: var(--rs-forest); }
.rs-service-body .rs-link { margin-top: 32px !important; }
.rs-service-photo { --rs-photo-pos: 50% 55%; }
.rs-home-services .rs-after-grid { margin-top: var(--rs-s-items) !important; padding-top: 28px; border-top: 1px solid var(--rs-line); color: var(--rs-ink-2); }
@media (min-width: 900px) {
	.rs-service { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-areas: "name body"; column-gap: var(--rs-s-cols); align-items: start; }
	.rs-service-name { grid-area: name; }
	.rs-service-body { grid-area: body; }
	.rs-service.rs-service-media { grid-template-areas: "name body" "photo body"; grid-template-rows: auto 1fr; }
	.rs-service-photo { grid-area: photo; margin-top: 40px !important; aspect-ratio: 4 / 3; }
}
@media (max-width: 899px) {
	/* Phones: name, photo, description, list, link */
	.rs-service { display: flex; flex-direction: column; }
	.rs-service-photo { margin-top: 28px !important; aspect-ratio: 3 / 2; }
	.rs-service-body { margin-top: 24px !important; }
}

/* ==========================================================================
   13. Sage: chips, lists of pages, the Accounting Systems products and nav
   ========================================================================== */
.rs-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0 !important; margin: 32px 0 0 !important; }
.rs-chips li { margin: 0 !important; display: inline-flex; align-items: center; min-height: 36px; box-sizing: border-box; padding: 0 14px; border: 1px solid var(--rs-line); border-radius: var(--rs-radius); font-size: var(--rs-fs-small); font-weight: 500; line-height: 1.2; color: var(--rs-ink); }
.rs-accent .rs-chips li { color: var(--rs-on-dark); border-color: rgba(255, 255, 255, 0.32); }

/* A list of pages: the name (link, with the arrow), then one line on what it covers */
.rs-products { list-style: none; padding: 0 !important; margin: 0 !important; border-top: 1px solid var(--rs-line); }
.rs-products li { margin: 0 !important; padding: 20px 0; border-bottom: 1px solid var(--rs-line); color: var(--rs-ink-2); font-size: var(--rs-fs-small); line-height: 1.5; }
.entry-content .rs-products li > a,
.rs-products li > a { display: block; width: fit-content; margin-bottom: 6px; font-size: var(--rs-fs-item); font-weight: 600; line-height: 1.3; letter-spacing: -0.012em; color: var(--rs-ink); }
.rs-products li > a::after { content: "\00a0\2192"; color: var(--rs-forest); }
.entry-content .rs-products li > a:hover { color: var(--rs-forest); }
.rs-accent .rs-products li { color: var(--rs-on-dark-2); }
.rs-accent .rs-products li > a::after { color: var(--rs-on-dark-label); }
@media (min-width: 900px) { .rs-accent > .rs-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.rs-accent .rs-small { margin-top: 28px !important; }
.rs-accent .rs-small a { font-weight: 600; }

/* Accounting Systems: the in-page nav beside the products (above them on phones) */
.rs-products-cols { display: grid !important; grid-template-columns: minmax(0, 1fr); row-gap: 56px; column-gap: var(--rs-s-cols); margin: 0 !important; }
.rs-products-cols > .wp-block-column { margin: 0 !important; min-width: 0; flex-basis: auto !important; }
.rs-products-cols > .wp-block-column > * { margin-top: 0; margin-bottom: 0; }
@media (min-width: 900px) { .rs-products-cols { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.rs-toc > * { margin: 0 !important; }
.rs-toc ul { list-style: none; padding: 0 !important; margin: 16px 0 0 !important; border-top: 1px solid var(--rs-line); }
.rs-toc li { margin: 0 !important; border-bottom: 1px solid var(--rs-line); }
.rs-toc li a { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 14px 0; font-size: var(--rs-fs-body); font-weight: 500; line-height: 1.35; color: var(--rs-ink); }
.rs-toc li a::after { content: "\2193"; color: var(--rs-forest); }   /* ↓ = further down this page */
.rs-toc li a:hover { color: var(--rs-forest); }
@media (min-width: 900px) {
	.rs-toc { position: sticky; top: 32px; max-width: 360px; }
	.admin-bar .rs-toc { top: 64px; }
}
.rs-product { padding-top: var(--rs-s-items); margin-top: var(--rs-s-items) !important; border-top: 1px solid var(--rs-line); }
.rs-product:first-child { padding-top: 0; margin-top: 0 !important; border-top: 0; }
.rs-product > * { margin: 0 !important; }
.rs-product > * + * { margin-top: 20px !important; }
.entry-content .rs-product h2 { font-size: var(--rs-fs-name); font-weight: 600; line-height: 1.2; letter-spacing: -0.015em; }
.rs-product p { color: var(--rs-ink-2); }

/* ==========================================================================
   14. Team: home section, "We’re Team You." (the one serif besides the logo)
   ========================================================================== */
.rs-team-points > * { margin: 0 !important; }
.rs-team-point { max-width: 560px; }
.rs-team-point > * { margin: 0 !important; }
.rs-team-point::before { content: ""; display: block; width: 40px; height: 2px; margin-bottom: 20px; background: var(--rs-forest); }
.rs-team-point p { margin-top: 12px !important; color: var(--rs-ink-2); }
.rs-signature { display: block; }
.rs-signature > * { margin: 0 !important; }
.rs-signature > * + * { margin-top: 16px !important; }
.rs-signature .rs-signature-line { font-family: var(--rs-font-serif); font-style: italic; font-weight: 400; font-size: clamp(36px, 20px + 5vw, 48px); line-height: 1.05; letter-spacing: -0.01em; color: var(--rs-forest); white-space: nowrap; }
.rs-signature p:not(.rs-signature-line) { max-width: 24em; color: var(--rs-ink-2); font-size: var(--rs-fs-small); }
@media (min-width: 900px) {
	.rs-team > .rs-wrap { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-areas: "head points" "sign points"; grid-template-rows: auto 1fr; column-gap: var(--rs-s-cols); }
	.rs-team > .rs-wrap > * { margin: 0 !important; }
	.rs-team .rs-head { grid-area: head; }
	.rs-team .rs-team-points { grid-area: points; display: flex; flex-direction: column; gap: 56px; padding-top: 6px; }
	.rs-team .rs-signature { grid-area: sign; align-self: end; padding-top: 56px; }
	.rs-team .rs-signature .rs-signature-line { font-size: clamp(44px, 18.667px + 2.815vw, 60px); } /* stays inside the left column */
}
@media (max-width: 899px) {
	.rs-team .rs-team-points { display: grid; gap: var(--rs-s-items); }
	.rs-team .rs-signature { margin-top: 64px !important; }
}
@media (min-width: 640px) and (max-width: 899px) {
	.rs-team .rs-team-points { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; }
}

.rs-team-you > * { margin: 0 !important; }
.rs-team-you h2 { font-family: var(--rs-font-serif); font-style: italic; font-weight: 400; font-size: clamp(36px, 25.714px + 3.214vw, 72px); line-height: 1.05; letter-spacing: -0.01em; }
.rs-team-you > h2 + p { margin-top: 28px !important; max-width: 720px; }
.rs-team-you .rs-lead { color: var(--rs-on-dark-2); }


/* ==========================================================================
   15. Contact block (on every page) and the form
   ========================================================================== */
.rs-contact { background-color: var(--rs-bg-alt) !important; --rs-line: var(--rs-line-alt); }
.rs-contact h2 { max-width: 14em; }
.rs-contact .rs-split > .wp-block-column > p:not(.rs-eyebrow) { color: var(--rs-ink-2); }
.rs-contact-details { list-style: none; padding: 0 !important; margin: 36px 0 0 !important; border-top: 1px solid var(--rs-line); }
.rs-contact-details li { margin: 0 !important; padding: 16px 0; border-bottom: 1px solid var(--rs-line); color: var(--rs-ink-2); font-size: var(--rs-fs-small); }
.rs-contact-details li a { color: var(--rs-ink); font-weight: 600; font-size: var(--rs-fs-item); letter-spacing: -0.01em; }
.rs-contact-details li a:hover { color: var(--rs-forest); }
@media (min-width: 900px) {
	.rs-contact .rs-split > .wp-block-column:first-child { position: sticky; top: 32px; }
}
@media (max-width: 899px) {
	.rs-contact .rs-split { row-gap: 48px; }
	/* Contact page: the form comes first on phones */
	.rs-page-contact .rs-contact .rs-split > .wp-block-column:last-child { order: -1; }
}
/* Contact page: the block starts closer to the heading, 64 px on computers and 48 px on phones
   (on every other page it keeps the section spacing) */
.rs-page-contact .entry-content .rs-section.rs-contact { padding-top: clamp(48px, 42.057px + 1.524vw, 64px) !important; }
.rs-form-card { background: var(--rs-white); border: 1px solid var(--rs-line); border-radius: var(--rs-radius); padding: clamp(24px, 13.6px + 2.667vw, 52px); }
.rs-form-card > * { margin-top: 0; }
.rs-form-card > p:empty { display: none; }
.rs-form-card > .fluentform, .rs-form-card .fluentform form { margin-top: 0 !important; }
.rs-form-note { font-size: var(--rs-fs-xs); color: var(--rs-ink-2); margin-top: 20px !important; }

/* Fluent Forms: white fields, neutral 1px border, 12px corners */
.fluentform {
	--fluentform-primary: var(--rs-forest);
	--fluentform-secondary: var(--rs-ink-2);
	--fluentform-danger: var(--rs-danger);
	--fluentform-border-color: var(--rs-field);
	--fluentform-border-radius: var(--rs-radius-field);
}
.fluentform .ff-el-group { margin-bottom: 20px; }
.fluentform .ff-el-input--label { margin-bottom: 8px; }
.fluentform .ff-el-input--label label { font-family: var(--rs-font-sans); font-weight: 500; font-size: 15px; color: var(--rs-ink); line-height: 1.4; }
.fluentform .ff-el-input--label.ff-el-is-required.asterisk-right label::after { color: var(--rs-danger); }
.fluentform .ff-el-form-control {
	box-sizing: border-box;
	width: 100%;
	min-height: 52px;
	padding: 12px 16px;
	font-family: var(--rs-font-sans);
	font-size: 16px;
	line-height: 1.4;
	color: var(--rs-ink);
	background-color: var(--rs-white);
	border: 1px solid var(--rs-field);
	border-radius: var(--rs-radius-field);
	box-shadow: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.fluentform .ff-el-form-control::placeholder { color: #6b7571; }
.fluentform .ff-el-form-control:hover { border-color: var(--rs-ink-2); }
.fluentform .ff-el-form-control:focus { border-color: var(--rs-forest); box-shadow: 0 0 0 3px rgba(30, 77, 59, 0.2); outline: none; }
.fluentform select.ff-el-form-control {
	-webkit-appearance: none;
	appearance: none;
	padding-right: 44px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%234b5752' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	background-size: 12px 8px;
}
.fluentform textarea.ff-el-form-control { min-height: 132px; resize: vertical; }
.fluentform .ff-el-is-error .ff-el-form-control { border-color: var(--rs-danger); }
.fluentform .ff-el-is-error .ff-el-form-control:focus { box-shadow: 0 0 0 3px rgba(179, 38, 30, 0.18); }
.fluentform .error, .fluentform .text-danger { color: var(--rs-danger); font-size: var(--rs-fs-xs); margin-top: 6px; }
.fluentform .ff-btn-submit,
.fluentform .ff_submit_btn_wrapper .ff-btn-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: var(--rs-btn-h);
	padding: 0 var(--rs-btn-px) !important;
	background-color: var(--rs-forest) !important;
	border: 1px solid var(--rs-forest) !important;
	color: var(--rs-white) !important;
	box-shadow: none !important;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}
.fluentform .ff-btn-submit:hover { background-color: var(--rs-forest-dark) !important; border-color: var(--rs-forest-dark) !important; opacity: 1 !important; }
.fluentform .ff-btn-submit:focus, .fluentform .ff-btn-submit:focus-visible { opacity: 1 !important; }
.fluentform .ff-btn-submit:disabled, .fluentform .ff-btn-submit.disabled { opacity: 0.6 !important; cursor: progress; }
.ff-message-success { border: 0 !important; box-shadow: none !important; background: var(--rs-forest-tint) !important; color: var(--rs-ink) !important; border-radius: var(--rs-radius); padding: 24px 28px !important; }
.rs-form-failed { margin: 16px 0 0; padding: 14px 18px; border-radius: var(--rs-radius-field); background: #fbeaea; color: #7a1f1a; font-size: var(--rs-fs-small); }

/* Contact page */
.rs-page-contact .entry-content > .rs-contact-hero { padding-bottom: var(--rs-s-hero-bottom) !important; }

/* ==========================================================================
   16. Header (Astra builder) and menus — same width as the content
   ========================================================================== */
.site-header, .ast-primary-header-bar, .main-header-bar { background: var(--rs-white) !important; }
.ast-primary-header-bar, .main-header-bar { border-bottom: 1px solid var(--rs-line) !important; }
#ast-desktop-header .site-primary-header-wrap { max-width: calc(var(--rs-wide) + 2 * var(--rs-gutter)) !important; padding-left: var(--rs-gutter) !important; padding-right: var(--rs-gutter) !important; }
#ast-mobile-header .ast-primary-header-bar { padding-left: var(--rs-gutter) !important; padding-right: var(--rs-gutter) !important; }
.site-title, .site-title a, .ast-site-identity .site-title a {
	font-family: var(--rs-font-serif) !important;
	font-weight: 600 !important;
	font-size: clamp(1.125rem, 1.05rem + 0.35vw, 1.3125rem) !important;
	letter-spacing: -0.005em;
	color: var(--rs-forest) !important;
}
.site-description { display: none; }
.main-header-menu .menu-item > .menu-link,
.ast-builder-menu .menu-item > .menu-link,
.main-header-menu > .menu-item > a {
	font-family: var(--rs-font-sans);
	font-weight: 500;
	font-size: 16px;
	color: var(--rs-ink) !important;
}
.main-header-menu .menu-item:hover > .menu-link,
.main-header-menu .menu-item > .menu-link:focus-visible,
.main-header-menu .current-menu-item > .menu-link,
.main-header-menu .current-menu-ancestor > .menu-link { color: var(--rs-forest) !important; }
#ast-desktop-header .main-header-menu > .current-menu-item > .menu-link,
#ast-desktop-header .main-header-menu > .current-menu-ancestor > .menu-link { text-decoration: underline !important; text-decoration-thickness: 1px !important; text-underline-offset: 0.45em; }
.ast-desktop .main-header-menu .sub-menu,
.main-header-menu .sub-menu { border: 1px solid var(--rs-line) !important; border-radius: var(--rs-radius); box-shadow: var(--rs-shadow-pop); background: var(--rs-white) !important; padding: 8px 0; }
.main-header-menu .sub-menu .menu-link { font-size: 15px; padding-top: 10px; padding-bottom: 10px; }
/* Wide enough for "Financial Controller & Accounting" on one line (Astra's default is 240px) */
.ast-desktop .main-header-menu .sub-menu { width: 288px; }
.main-header-menu .sub-menu .menu-item:hover > .menu-link { text-decoration: underline !important; }

/* Header phone button: the outline version of the button, 44px */
.ast-header-button-1 .ast-custom-button,
.ast-builder-button-wrap .ast-custom-button {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	min-height: 44px;
	background: var(--rs-white) !important;
	color: var(--rs-forest) !important;
	border: 1px solid var(--rs-forest) !important;
	padding: 0 18px !important;
	font-size: 15px !important;
	white-space: nowrap;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.ast-header-button-1 .ast-custom-button:hover,
.ast-builder-button-wrap .ast-custom-button:hover { background: var(--rs-forest-tint) !important; color: var(--rs-forest-dark) !important; border-color: var(--rs-forest-dark) !important; }
.ast-header-button-1 .ast-custom-button::before { content: "Call"; margin-right: 0.3em; font-weight: 500; }
.ast-custom-button-link { display: inline-block; border-radius: var(--rs-radius); } /* so the focus ring follows the button */

.ast-mobile-menu-trigger-minimal, .ast-mobile-menu-trigger-fill, .menu-toggle.main-header-menu-toggle { color: var(--rs-forest) !important; }
.ast-mobile-svg, .ast-menu-svg { fill: var(--rs-forest) !important; }

@media (max-width: 921px) {
	.ast-header-button-1 .ast-custom-button { min-height: 40px; padding: 0 14px !important; font-size: 14px !important; }
	.ast-header-button-1 .ast-custom-button::before { content: none; }
	.ast-mobile-popup-drawer .ast-mobile-popup-inner, .ast-mobile-header-content { background: var(--rs-white) !important; }
}
/* Narrow phones: the company name fits one line from 360 px (15 px; the old
   1rem rule lost to the more specific header selector above). */
@media (max-width: 389px) {
	.site-title a, .ast-site-identity .site-title a { font-size: 15px !important; }
}
/* Phones: the call button becomes a 44 px phone icon, so the company name keeps
   its words whole (with the full number it was squeezed to 64 px at 320). The
   number stays in the link text for screen readers; the icon is CSS only. */
@media (max-width: 479px) {
	#ast-mobile-header .ast-header-button-1 .ast-custom-button {
		justify-content: center;
		width: 44px;
		height: 44px;
		min-height: 44px;
		padding: 0 !important;
		font-size: 0 !important;
		line-height: 0;
	}
	#ast-mobile-header .ast-header-button-1 .ast-custom-button::before {
		content: "" !important;
		display: block;
		width: 20px;
		height: 20px;
		margin: 0;
		background-color: currentColor;
		-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E") center / contain no-repeat;
		mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E") center / contain no-repeat;
	}
}

/* Mobile menu (Astra dropdown) */
.ast-mobile-header-content { box-shadow: 0 16px 24px -8px rgba(20, 30, 26, 0.12); border-bottom: 1px solid var(--rs-line); }
.ast-mobile-header-content .main-header-menu { background: var(--rs-white) !important; padding: 8px 0 16px; }
.ast-mobile-header-content .main-header-menu .menu-item > .menu-link {
	padding: 14px var(--rs-gutter) !important;
	background: transparent !important;
	font-size: 18px;
	line-height: 1.35;
}
.ast-mobile-header-content .main-header-menu .menu-item { border-color: var(--rs-line) !important; background: transparent !important; }
.ast-mobile-header-content .ast-menu-toggle { background: transparent !important; color: var(--rs-forest) !important; box-shadow: none !important; border: 0 !important; }
.ast-mobile-header-content .main-header-menu .current-menu-item > .menu-link { box-shadow: inset 3px 0 0 var(--rs-forest); font-weight: 600; }
.ast-mobile-header-content .main-header-menu .sub-menu { border: 0 !important; border-radius: 0; box-shadow: none; background: var(--rs-bg-alt) !important; padding: 4px 0; }
.ast-mobile-header-content .main-header-menu .sub-menu .menu-link { padding-left: calc(var(--rs-gutter) + 16px) !important; font-size: 16px; }

#ast-scroll-top { background-color: var(--rs-forest) !important; color: var(--rs-white) !important; border-radius: var(--rs-radius) !important; }

/* ==========================================================================
   17. Footer (synced pattern rendered by the child theme)
   ========================================================================== */
.rs-footer { background: var(--rs-forest-dark); color: var(--rs-on-dark-2); padding: clamp(64px, 51.486px + 3.048vw, 96px) 0 40px; font-size: var(--rs-fs-small); }
.rs-footer a { color: var(--rs-on-dark); }
.rs-footer a:hover, .rs-footer a:focus { color: var(--rs-on-dark); }
.rs-footer p, .rs-footer ul { margin: 0; margin-left: 0; color: var(--rs-on-dark-2); }
.rs-footer .rs-footer-name { font-family: var(--rs-font-serif); font-size: 22px; font-weight: 600; color: var(--rs-on-dark); }  /* the logo */
.rs-footer .rs-footer-top { display: grid; gap: 40px; padding-bottom: 48px; border-bottom: 1px solid var(--rs-on-dark-line); }
@media (min-width: 900px) { .rs-footer .rs-footer-top { grid-template-columns: minmax(0, 5fr) minmax(0, 4fr) minmax(0, 3fr); column-gap: var(--rs-s-cols); } }
/* Tablets: the name across the top, contact and pages side by side */
@media (min-width: 640px) and (max-width: 899px) {
	.rs-footer .rs-footer-top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 48px; }
	.rs-footer .rs-footer-top > :first-child { grid-column: 1 / -1; }
}
.rs-footer .rs-footer-top > div > * + * { margin-top: 10px; }
.rs-footer ul { list-style: none; padding: 0; }
.rs-footer li + li { margin-top: 10px; }
.rs-footer .rs-footer-label { font-size: var(--rs-fs-label); font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rs-on-dark-label); }
.rs-footer .rs-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 32px; padding-top: 28px; font-size: var(--rs-fs-xs); }

/* ==========================================================================
   18. Reading layout: articles and the Privacy Policy (one 720px column)
   ========================================================================== */
.single-post .site-content { background: var(--rs-bg); }
.single-post .site-content > .ast-container { max-width: none !important; padding: 0 var(--rs-gutter) !important; display: block; }
.single-post #primary { margin: 0 !important; padding: var(--rs-s-hero-top) 0 var(--rs-s-section) !important; width: 100%; float: none; }
.ast-separate-container.single-post .ast-article-single,
.single-post .ast-article-single { background: transparent; padding: 0; margin: 0; border: 0; }
.single-post .entry-header, .single-post .ast-single-entry-banner, .single-post .entry-meta, .single-post .post-thumb { display: none !important; }
.single-post .post-navigation, .single-post .comments-area, .single-post .ast-author-meta { display: none; }

.single-post .entry-content { max-width: var(--rs-read); margin-left: auto; margin-right: auto; }
.single-post .entry-content > * { margin-top: 0; margin-bottom: 0; }
.single-post .entry-content > * + * { margin-top: 24px; }

/* Article header: breadcrumbs, title, subtitle, byline */
.rs-post-head { margin: 0 0 48px !important; padding-bottom: 32px; border-bottom: 1px solid var(--rs-line); }
.rs-post-head > * { margin: 0 !important; }
.rs-crumbs { font-size: var(--rs-fs-small); color: var(--rs-ink-2); }
.rs-crumbs a { font-weight: 500; }
.rs-crumbs span[aria-hidden] { margin: 0 8px; color: var(--rs-label); }
.rs-post-head h1,
.rs-read-head h1 { font-size: clamp(34px, 26.571px + 1.905vw, 54px); line-height: 1.1; letter-spacing: -0.025em; }
.rs-post-head h1.rs-title-long { font-size: clamp(30px, 24.429px + 1.429vw, 45px); line-height: 1.12; }
.rs-post-head .rs-crumbs + h1 { margin-top: 24px !important; }
/* (prefixed so the article-text rule below doesn't flatten them to body size) */
.rs-post-sub, .single-post .entry-content p.rs-post-sub { font-size: var(--rs-fs-lead); line-height: 1.5; color: var(--rs-ink-2); margin-top: 20px !important; }
.rs-byline, .single-post .entry-content p.rs-byline { font-size: var(--rs-fs-small); line-height: 1.6; color: var(--rs-ink-2); margin-top: 24px !important; }

/* Article and policy text */
.single-post .entry-content p, .single-post .entry-content li,
.rs-prose p, .rs-prose li { font-size: var(--rs-fs-read); line-height: 1.65; }
.single-post .entry-content > h2,
.rs-prose > h2 { margin-top: 56px !important; font-size: var(--rs-fs-sub); font-weight: 600; line-height: 1.25; letter-spacing: -0.015em; }
.single-post .entry-content > h3,
.rs-prose > h3 { margin-top: 40px !important; font-size: var(--rs-fs-item); }
.single-post .entry-content > h2 + *, .single-post .entry-content > h3 + *,
.rs-prose > h2 + *, .rs-prose > h3 + * { margin-top: 16px !important; }
.single-post .entry-content > ul, .single-post .entry-content > ol,
.rs-prose ul, .rs-prose ol { padding-left: 1.4em !important; margin-left: 0 !important; }
.single-post .entry-content li + li, .rs-prose li + li { margin-top: 8px; }
.single-post .entry-content li::marker, .rs-prose li::marker { color: var(--rs-forest); }
.single-post .entry-content blockquote, .rs-prose blockquote { margin: 40px 0 !important; padding: 0 0 0 24px; border-left: 2px solid var(--rs-forest); color: var(--rs-ink); font-size: var(--rs-fs-lead); line-height: 1.5; font-style: normal; }

/* After the text: the related service, then two more articles, then the contact block.
   Astra pads every top-level group in post content; these set their own. */
.single-post .entry-content > .wp-block-group { padding: 0; }
.single-post .entry-content > .rs-callout { padding: clamp(24px, 20.286px + 0.952vw, 34px) clamp(24px, 20.286px + 0.952vw, 34px); }
.single-post .entry-content > .rs-related { margin-top: 56px !important; }
.single-post .rs-related p { font-size: var(--rs-fs-body); }
.single-post .rs-related > .rs-links { margin-top: 12px !important; }
.single-post .rs-related > .rs-links + p { margin-top: 24px !important; }
.single-post .entry-content > .rs-more { margin-top: 56px !important; padding: 32px 0 0; border-top: 1px solid var(--rs-line); }
.single-post .rs-more > * { margin: 0 !important; }
.single-post .rs-more > * + * { margin-top: 16px !important; }
.single-post .rs-more ul { list-style: none; padding: 0 !important; }
.single-post .rs-more li + li { margin-top: 12px; }
.single-post .rs-more li a { font-weight: 600; }

/* Privacy Policy: the same column inside page sections */
.rs-read > .rs-wrap { max-width: calc(var(--rs-read) + 2 * var(--rs-gutter)); }
.entry-content > .rs-section.rs-read-head { padding-bottom: 48px !important; }
.rs-read-head .rs-wrap > h1 + p { margin-top: 24px; padding-bottom: 32px; border-bottom: 1px solid var(--rs-line); font-size: var(--rs-fs-small); }
.entry-content > .rs-section.rs-read:not(.rs-read-head) { padding-top: 0 !important; }
.rs-prose > * { margin: 0 !important; }
.rs-prose > * + * { margin-top: 24px !important; }
.rs-prose > h2:first-child { margin-top: 0 !important; }
.rs-privacy-contact { margin-top: 56px !important; padding-top: 24px; border-top: 1px solid var(--rs-line); }

/* ==========================================================================
   19. Article lists: home "Recent articles" (compact rows), Insights (feed)
   ========================================================================== */
.rs-teasers { border-top: 1px solid var(--rs-line); }
.rs-teaser { margin: 0 !important; padding: 28px 0; border-bottom: 1px solid var(--rs-line); }
.rs-teaser > * { margin: 0 !important; }
.rs-teaser > * + * { margin-top: 8px !important; }
.rs-teaser h3 { font-size: var(--rs-fs-item); }
.rs-teaser .rs-teaser-text { color: var(--rs-ink-2); font-size: var(--rs-fs-small); line-height: 1.55; }
.rs-teaser .rs-link { font-size: var(--rs-fs-small); white-space: nowrap; }
.rs-wrap > .rs-teasers + .rs-link { margin-top: 48px; }
@media (min-width: 900px) {
	.rs-teaser { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 4fr) minmax(0, 4fr) auto; column-gap: 40px; align-items: baseline; }
	.rs-teaser > * + * { margin-top: 0 !important; }
}

.rs-article-list .wp-block-post-template { list-style: none; padding: 0 !important; margin: 0 !important; border-top: 1px solid var(--rs-line); }
.rs-article-list .wp-block-post { margin: 0 !important; padding: 40px 0; border-bottom: 1px solid var(--rs-line); }
.rs-article-list .wp-block-post > * { margin: 0 !important; }
.rs-article-list .wp-block-post > * + * { margin-top: 12px !important; }
.rs-article-list .rs-card-label:empty { display: none; }
.rs-article-list .wp-block-post-title { font-size: var(--rs-fs-sub); font-weight: 600; line-height: 1.3; letter-spacing: -0.015em; max-width: 30em; }
.rs-article-list .wp-block-post-title a { color: var(--rs-ink); }
.rs-article-list .wp-block-post-title a:hover { color: var(--rs-forest); }
.rs-article-list .wp-block-post-excerpt { margin: 0; }
.rs-article-list .wp-block-post-excerpt__excerpt { margin: 0 !important; color: var(--rs-ink-2); max-width: 36em; }
.rs-article-list .wp-block-post-excerpt__more-text { margin: 16px 0 0 !important; font-size: var(--rs-fs-small); }
.rs-article-list .wp-block-post-excerpt__more-link { font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.22em; }
.rs-article-list .wp-block-post-excerpt__more-link:hover { text-decoration-thickness: 2px; }
@media (min-width: 900px) {
	.rs-article-list .wp-block-post { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: var(--rs-s-cols); align-items: start; }
	.rs-article-list .wp-block-post > * + * { margin-top: 0 !important; }
	.rs-article-list .rs-card-label { grid-column: 1; grid-row: 1; padding-top: calc(var(--rs-fs-sub) * 1.013 - var(--rs-fs-label) * 1.063); } /* Inter: first baselines meet */
	.rs-article-list .wp-block-post-title { grid-column: 2; grid-row: 1; }
	.rs-article-list .wp-block-post-excerpt { grid-column: 2; grid-row: 2; margin-top: 12px !important; }
}
.rs-feed-foot { margin-top: var(--rs-s-head) !important; display: flex; flex-wrap: wrap; gap: 12px 32px; align-items: baseline; }
.rs-feed-foot > * { margin: 0 !important; }
/* Insights: the hero heads the list, so the list's own top line follows it directly (no section rule, no extra gap) */
.entry-content > .rs-section.rs-feed { padding-top: 0 !important; background-image: none !important; }

/* ==========================================================================
   20. 404 and the preview password screen
   ========================================================================== */
.rs-404 .rs-links { margin-top: 32px !important; max-width: 680px; }
.rs-404 .rs-cta { margin-top: 40px !important; }
body.login.password-protected-login { background: var(--rs-bg-alt); }

/* ==========================================================================
   21. Small screens
   ========================================================================== */
@media (max-width: 781px) {
	#ast-scroll-top { display: none !important; }
}
@media (max-width: 640px) {
	.rs-cta { flex-direction: column; align-items: stretch; }
	.rs-cta .wp-block-buttons, .rs-cta .wp-block-button, body .rs-cta .wp-block-button__link { width: 100%; }
	.fluentform .ff-btn-submit { width: 100%; }
}
