/*
 * Product pages: /pms/ in the PMS app's forest green, /pos/ in the POS app's terracotta.
 * Each product's colours are its app's own tokens:
 * PMS restrocompass/docs/UX_DESIGN_SYSTEM.md §3.1, POS restrocompass-pos/lib/design/tokens.dart.
 * The body carries rc-product plus rc-pms or rc-pos (functions.php).
 */

.rc-pms {
	--p-primary: #306A42;
	--p-primary-strong: #15512C;
	--p-soft: #B3F1BF;
	--p-on-soft: #15512C;
	--p-nav: #14301D;
	--p-on-nav-variant: #C3D6C8;
	--p-surface: #F6FBF3;
	--p-container: #F0F5ED;
	--p-text: #181D18;
	--p-text-muted: #414941;
	--p-outline: #717971;
	--p-line: #C1C9BF;
	--p-shadow: 20 48 29;
}

.rc-pos {
	--p-primary: #B4532A;
	--p-primary-strong: #8A3A17;
	--p-soft: #FBEEE7;
	--p-on-soft: #8A3A17;
	--p-nav: #14161A;
	--p-on-nav-variant: #D3D7DE;
	--p-surface: #F7F8FA;
	--p-container: #EEF0F3;
	--p-text: #14161A;
	--p-text-muted: #3B4250;
	--p-outline: #5B6270;
	--p-line: #D3D7DE;
	--p-shadow: 20 22 26;
}

.rc-brand {
	--p-primary: #12727C;
	--p-primary-strong: #0C2B31;
	--p-soft: #DCEEF0;
	--p-on-soft: #0C5A62;
	--p-nav: #0C2B31;
	--p-on-nav-variant: #C9D6D8;
	--p-surface: #F5F6F5;
	--p-container: #E9EEEE;
	--p-text: #0C2B31;
	--p-text-muted: #3D5357;
	--p-outline: #5E7275;
	--p-line: #D3DCDD;
	--p-shadow: 12 43 49;
}

.rc-product {
	--p-on-primary: #FFFFFF;
	--p-card: #FFFFFF;
	--p-check-bg: #FFF3E0;
	--p-check-text: #8A4B00;
	--p-verified-bg: #C8E6C9;
	--p-radius: 16px;
	--p-wrap: 1120px;

	background: var(--p-card);
	color: var(--p-text);
}

/* Let the page's own sections run edge to edge. */
.rc-product .site.grid-container,
.rc-product .site-content {
	max-width: none;
	padding: 0;
}
.rc-product .site-main,
.rc-product .inside-article,
.rc-product .entry-content {
	margin: 0;
	padding: 0;
	background: transparent;
}
.rc-product .entry-content > * {
	margin-top: 0;
	margin-bottom: 0;
}
/* GeneratePress pads every group's inner container (40px, 30px on phones) and caps it
   at 1200px; the sections and cards here set their own spacing. */
.rc-product .site-main .wp-block-group__inner-container {
	padding: 0;
	max-width: none;
}

.rc-product a {
	color: var(--p-primary);
}
.rc-product :focus-visible {
	outline: 3px solid var(--p-primary);
	outline-offset: 2px;
}

/* ---------- Layout ---------- */

.rc-section {
	padding: 72px 16px;
}
.rc-section--tint {
	background: var(--p-surface);
}
.rc-section--dark {
	background: var(--p-nav);
	color: #FFFFFF;
}
.rc-wrap {
	max-width: var(--p-wrap);
	margin: 0 auto;
}
.rc-wrap--narrow {
	max-width: 760px;
}

.rc-product h1,
.rc-product h2,
.rc-product h3 {
	color: inherit;
	font-family: var(--rc-font-heading);
	letter-spacing: -0.01em;
	margin: 0 0 16px;
}
.rc-product h1 {
	font-size: clamp(2rem, 5vw, 3.25rem);
	line-height: 1.1;
}
.rc-product h2 {
	font-size: clamp(1.6rem, 3.4vw, 2.25rem);
	line-height: 1.2;
}
.rc-product h3 {
	font-size: 1.15rem;
	line-height: 1.35;
	margin-bottom: 8px;
}
.rc-product p {
	margin: 0 0 16px;
	line-height: 1.65;
}

.rc-eyebrow {
	color: var(--p-primary);
	font-family: var(--rc-font-body);
	font-size: 0.85rem !important;
	font-weight: 700;
	letter-spacing: 0.08em !important;
	text-transform: uppercase;
	margin-bottom: 12px !important;
}
.rc-lead {
	color: var(--p-text-muted);
	font-size: 1.15rem;
	max-width: 40em;
}
.rc-section--dark .rc-lead,
.rc-section--dark .rc-eyebrow {
	color: var(--p-on-nav-variant);
}
.rc-small {
	color: var(--p-text-muted);
	font-size: 0.9rem;
}

/* ---------- Product bar ---------- */

.rc-product-bar {
	background: var(--p-nav);
	padding: 0 16px;
}
.rc-product-bar__inner {
	max-width: var(--p-wrap);
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 24px;
	min-height: 56px;
}
.rc-product-bar__name {
	color: #FFFFFF !important;
	font-family: var(--rc-font-heading);
	font-weight: 700;
	text-decoration: none;
	margin-right: auto;
}
.rc-product-bar__name span {
	color: var(--p-soft);
}
.rc-product-bar nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 20px;
	padding: 8px 0;
}
.rc-product-bar nav a {
	color: var(--p-on-nav-variant) !important;
	text-decoration: none;
	font-size: 0.95rem;
	padding: 6px 0;
}
.rc-product-bar nav a:hover,
.rc-product-bar nav a[aria-current="page"] {
	color: #FFFFFF !important;
	text-decoration: underline;
	text-underline-offset: 6px;
}
.rc-product-bar nav a.rc-product-bar__button {
	border: 1px solid var(--p-on-nav-variant);
	border-radius: 999px;
	padding: 6px 14px;
	color: #FFFFFF !important;
}

/* ---------- Buttons ---------- */

.rc-product .wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 24px 0 12px;
}
.rc-product .wp-block-button .wp-block-button__link,
.rc-button {
	display: inline-block;
	background: var(--p-primary);
	color: var(--p-on-primary) !important;
	border: 2px solid var(--p-primary);
	border-radius: 999px;
	padding: 12px 26px;
	font-family: var(--rc-font-body);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}
.rc-product .wp-block-button .wp-block-button__link:hover,
.rc-button:hover {
	background: var(--p-primary-strong);
	border-color: var(--p-primary-strong);
}
.rc-product .rc-btn-secondary .wp-block-button__link {
	background: transparent;
	color: var(--p-primary) !important;
}
.rc-product .rc-btn-secondary .wp-block-button__link:hover {
	background: var(--p-container);
}
.rc-product .rc-section--dark .wp-block-button .wp-block-button__link {
	background: var(--p-soft);
	border-color: var(--p-soft);
	color: var(--p-on-soft) !important;
}
.rc-product .rc-section--dark .wp-block-button .wp-block-button__link:hover {
	background: #FFFFFF;
	border-color: #FFFFFF;
}
.rc-product .rc-section--dark .rc-btn-secondary .wp-block-button__link {
	background: transparent;
	color: #FFFFFF !important;
	border-color: var(--p-on-nav-variant);
}
.rc-product .rc-section--dark .rc-btn-secondary .wp-block-button__link:hover {
	background: rgb(255 255 255 / 0.12);
	border-color: #FFFFFF;
}

/* ---------- Hero ---------- */

.rc-hero {
	padding-top: 64px;
}
.rc-hero .wp-block-columns,
.rc-split {
	align-items: center;
	gap: 48px;
}

/* ---------- Cards and grids ---------- */

.rc-product .wp-block-columns {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin: 0;
}
.rc-product .wp-block-column {
	flex: 1 1 0;
	min-width: 0;
}
/* GeneratePress is a classic theme, so WordPress wraps a group's blocks in an
   inner container: the grid goes on that when it is there. */
.rc-grid,
.rc-grid > .wp-block-group__inner-container {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 20px;
}
.rc-grid {
	margin-top: 40px;
}
.rc-plan > .wp-block-group__inner-container {
	display: flex;
	flex-direction: column;
	height: 100%;
}
.rc-card {
	background: var(--p-card);
	border: 1px solid var(--p-line);
	border-radius: var(--p-radius);
	padding: 24px;
}
.rc-section--tint .rc-card {
	border-color: transparent;
	box-shadow: 0 1px 2px rgb(var(--p-shadow) / 0.06), 0 4px 16px rgb(var(--p-shadow) / 0.05);
}
.rc-card p:last-child {
	margin-bottom: 0;
}
.rc-card p {
	color: var(--p-text-muted);
}
.rc-card__icon {
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: var(--p-soft);
	color: var(--p-on-soft);
	margin-bottom: 16px !important;
}
.rc-card__icon svg {
	width: 24px;
	height: 24px;
}

/* Numbered steps */
.rc-steps {
	counter-reset: rc-step;
}
.rc-steps .rc-card {
	position: relative;
	padding-top: 64px;
}
.rc-steps .rc-card::before {
	counter-increment: rc-step;
	content: counter(rc-step);
	position: absolute;
	top: 20px;
	left: 24px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--p-primary);
	color: #FFFFFF;
	font-family: var(--rc-font-heading);
	font-weight: 700;
	display: grid;
	place-items: center;
}

/* Lists with ticks */
.rc-product .rc-ticks {
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
}
.rc-product .rc-ticks li {
	position: relative;
	padding-left: 30px;
	margin: 0 0 10px;
	line-height: 1.55;
}
.rc-product .rc-ticks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.3em;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--p-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315512C' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat;
}

/* ---------- Scan → form illustration ---------- */

.rc-scan {
	display: grid;
	grid-template-columns: 1fr auto 1.3fr;
	align-items: center;
	gap: 16px;
	margin: 0;
}
.rc-scan__card {
	aspect-ratio: 1.586;
	border-radius: 14px;
	background: linear-gradient(135deg, #E9EEF0, #D6DEE2);
	border: 1px solid #C5CED3;
	padding: 14px;
	display: grid;
	grid-template-columns: 34% 1fr;
	gap: 10px;
	position: relative;
	overflow: hidden;
}
.rc-scan__card::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 3px;
	background: var(--p-primary);
	box-shadow: 0 0 14px 4px rgb(48 106 66 / 0.45);
	animation: rc-scan-line 2.8s ease-in-out infinite alternate;
}
@keyframes rc-scan-line {
	from { top: 4%; }
	to { top: 94%; }
}
@media (prefers-reduced-motion: reduce) {
	.rc-scan__card::after { animation: none; top: 50%; }
}
.rc-scan__photo {
	border-radius: 8px;
	background: #B9C4CA;
}
.rc-scan__lines {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 9px;
}
.rc-scan__lines i {
	display: block;
	height: 8px;
	border-radius: 4px;
	background: #9FAAB1;
}
.rc-scan__lines i:nth-child(2) { width: 70%; }
.rc-scan__lines i:nth-child(3) { width: 85%; }
.rc-scan__lines i:nth-child(4) { width: 50%; }
.rc-scan__qr {
	position: absolute;
	right: 12px;
	bottom: 12px;
	width: 22%;
	aspect-ratio: 1;
	border-radius: 4px;
	background:
		conic-gradient(#5F6B72 25%, transparent 0 50%, #5F6B72 0 75%, transparent 0) 0 0 / 25% 25%,
		#FFFFFF;
}
.rc-scan__arrow {
	color: var(--p-primary);
	display: grid;
	place-items: center;
}
.rc-scan__arrow svg {
	width: 32px;
	height: 32px;
}
.rc-scan__form {
	background: var(--p-card);
	border-radius: var(--p-radius);
	border: 1px solid var(--p-line);
	box-shadow: 0 10px 30px rgb(var(--p-shadow) / 0.10);
	padding: 18px;
	font-size: 0.85rem;
}
.rc-scan__title {
	font-family: var(--rc-font-heading);
	font-weight: 700;
	font-size: 0.95rem;
	margin-bottom: 4px;
}
.rc-scan__source {
	color: var(--p-text-muted);
	font-size: 0.75rem;
	margin-bottom: 12px;
}
.rc-scan__field {
	border: 1px solid var(--p-line);
	border-radius: 8px;
	padding: 6px 10px;
	margin-bottom: 8px;
}
.rc-scan__field b {
	display: block;
	color: var(--p-text-muted);
	font-size: 0.7rem;
	font-weight: 600;
}
.rc-scan__field--check {
	background: var(--p-check-bg);
	border-color: #F5C98A;
}
.rc-chip {
	display: inline-block;
	font-size: 0.7rem;
	font-weight: 700;
	border-radius: 999px;
	padding: 2px 8px;
	margin-left: 6px;
	vertical-align: 1px;
}
.rc-chip--ok {
	background: var(--p-verified-bg);
	color: #1B5E20;
}
.rc-chip--check {
	background: #FFE0B2;
	color: var(--p-check-text);
}
.rc-scan__caption {
	grid-column: 1 / -1;
	text-align: center;
	color: var(--p-text-muted);
	font-size: 0.85rem;
	margin-top: 8px;
}

/* A place for a real screenshot, until there is one. */
.rc-shot-placeholder {
	border: 2px dashed var(--p-line);
	border-radius: var(--p-radius);
	background: var(--p-container);
	color: var(--p-text-muted);
	aspect-ratio: 16 / 10;
	display: grid;
	place-items: center;
	text-align: center;
	padding: 24px;
	font-size: 0.95rem;
}

/* ---------- Pricing ---------- */

.rc-plan {
	display: flex;
	flex-direction: column;
}
.rc-plan--featured {
	border: 2px solid var(--p-primary) !important;
	position: relative;
}
.rc-plans {
	margin-bottom: 24px;
}
.rc-card p.rc-plan__badge {
	position: absolute;
	top: -14px;
	left: 24px;
	background: var(--p-primary);
	color: #FFFFFF;
	font-size: 0.8rem !important;
	font-weight: 700;
	border-radius: 999px;
	padding: 4px 12px;
}
.rc-plan__price {
	font-family: var(--rc-font-heading);
	font-size: 2rem;
	font-weight: 700;
	color: var(--p-text) !important;
	margin-bottom: 4px !important;
	line-height: 1.2;
}
.rc-plan__price span {
	font-family: var(--rc-font-body);
	font-size: 1rem;
	font-weight: 400;
	color: var(--p-text-muted);
}
.rc-plan .rc-ticks {
	margin-top: 16px;
}
.rc-plan .rc-ticks li {
	color: var(--p-text);
	font-size: 0.95rem;
}
.rc-pos .rc-ticks li::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A3A17' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}
.rc-product .rc-ticks li.rc-no::before {
	background: var(--p-container);
	background-image: none;
}
.rc-product .rc-ticks li.rc-no {
	color: var(--p-text-muted);
}

/* ---------- FAQ ---------- */

.rc-product .wp-block-details {
	border-bottom: 1px solid var(--p-line);
	padding: 4px 0;
}
.rc-product .wp-block-details summary {
	cursor: pointer;
	font-family: var(--rc-font-heading);
	font-weight: 600;
	font-size: 1.05rem;
	padding: 16px 32px 16px 0;
	list-style: none;
	position: relative;
}
.rc-product .wp-block-details summary::-webkit-details-marker {
	display: none;
}
.rc-product .wp-block-details summary::after {
	content: "+";
	position: absolute;
	right: 4px;
	top: 12px;
	font-size: 1.5rem;
	color: var(--p-primary);
}
.rc-product .wp-block-details[open] summary::after {
	content: "−";
}
.rc-product .wp-block-details p {
	color: var(--p-text-muted);
}
.rc-faq h2:not(:first-child) {
	margin-top: 56px;
}

/* The full feature list: a card per group that opens with a tap; motion.js opens them on
   wider screens, so phones show nine headings instead of a long scroll. */
.rc-product .wp-block-details.rc-feature-list {
	border: 1px solid var(--p-line);
	padding: 16px 20px;
}
.rc-product .wp-block-details.rc-feature-list summary {
	font-size: 1.1rem;
	padding: 4px 32px 4px 0;
}
.rc-product .wp-block-details.rc-feature-list summary::after {
	top: -2px;
}
.rc-product .wp-block-details.rc-feature-list[open] summary {
	margin-bottom: 12px;
}
.rc-feature-list .rc-ticks {
	margin-bottom: 0;
}
.rc-hero .rc-ticks {
	margin-top: 20px;
}

/* ---------- Demo form ---------- */

.rc-demo-form {
	background: var(--p-card);
	border-radius: var(--p-radius);
	padding: 28px;
	box-shadow: 0 1px 2px rgb(var(--p-shadow) / 0.06), 0 8px 24px rgb(var(--p-shadow) / 0.08);
}
.rc-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 18px !important;
}
.rc-field label {
	font-weight: 600;
}
.rc-field input {
	font: inherit;
	color: var(--p-text);
	background: #FFFFFF;
	border: 1px solid var(--p-outline);
	border-radius: 10px;
	padding: 12px 14px;
	width: 100%;
}
.rc-field input:focus {
	border-color: var(--p-primary);
	outline: 2px solid var(--p-primary);
	outline-offset: 0;
}
.rc-hint {
	color: var(--p-text-muted);
	font-size: 0.85rem;
}
.rc-field--trap {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.rc-form-privacy {
	color: var(--p-text-muted);
	font-size: 0.9rem;
}
.rc-demo-form .rc-button {
	width: 100%;
}
.rc-form-note {
	border-radius: 12px;
	padding: 16px 20px;
	margin-bottom: 20px;
}
.rc-form-note--ok {
	background: var(--p-verified-bg);
	color: #14301D;
}
.rc-form-note--error {
	background: #FFDAD6;
	color: #410002;
}

/* ---------- Visible placeholder for a fact we do not have yet ---------- */

.rc-todo {
	background: #FFF3CD;
	color: #5C4400;
	border-radius: 4px;
	padding: 0 4px;
	font-weight: 600;
}

/* ---------- Phone width ---------- */

@media (max-width: 768px) {
	.rc-section {
		padding: 48px 16px;
	}
	.rc-hero {
		padding-top: 40px;
	}
	.rc-product .wp-block-columns {
		flex-direction: column;
	}
	.rc-product .wp-block-column {
		flex-basis: auto;
	}
	.rc-product-bar__inner {
		padding: 8px 0;
	}
	.rc-product-bar__name {
		width: 100%;
	}
	.rc-product-bar nav {
		gap: 4px 16px;
		padding-top: 0;
	}
	.rc-scan {
		grid-template-columns: 1fr;
	}
	.rc-scan__card {
		max-width: 300px;
		width: 100%;
		margin: 0 auto;
	}
	.rc-scan__arrow svg {
		transform: rotate(90deg);
	}
	.rc-product .wp-block-buttons .wp-block-button {
		flex: 1 1 100%;
	}
	.rc-product .wp-block-button__link {
		width: 100%;
		text-align: center;
	}
	.rc-demo-form {
		padding: 20px;
	}
}

/* ---------- Screenshots of the apps ---------- */

.rc-product .rc-shot {
	margin: 0;
}
.rc-product .rc-shot img {
	display: block;
	width: 100%;
	height: auto;
}
.rc-product .rc-shot--desktop img {
	border-radius: 12px;
	border: 1px solid var(--p-line);
	box-shadow: 0 2px 4px rgb(var(--p-shadow) / 0.06), 0 16px 40px rgb(var(--p-shadow) / 0.12);
}
.rc-product .rc-shot--tablet img {
	border: 12px solid #16181B;
	border-radius: 26px;
	box-shadow: 0 16px 40px rgb(var(--p-shadow) / 0.18);
}
.rc-product .rc-shot--phone {
	max-width: 280px;
	margin-inline: auto;
}
.rc-product .rc-shot--phone img {
	border: 9px solid #16181B;
	border-radius: 34px;
	box-shadow: 0 16px 40px rgb(var(--p-shadow) / 0.18);
}
.rc-product .rc-shot figcaption {
	color: var(--p-text-muted);
	font-size: 0.85rem;
	text-align: center;
	margin-top: 12px;
}
.rc-shots {
	display: grid;
	grid-template-columns: 2fr 1fr;
	align-items: end;
	gap: 32px;
	margin-top: 40px;
}
.rc-shots > .wp-block-group__inner-container {
	display: contents;
}
@media (max-width: 768px) {
	.rc-shots {
		grid-template-columns: 1fr;
	}
	.rc-product .rc-shot--phone {
		max-width: 240px;
	}
}

/* ---------- Comparison table ---------- */

.rc-product .rc-compare {
	margin: 32px 0 0;
	overflow-x: auto;
}
.rc-product .rc-compare table {
	width: 100%;
	border-collapse: collapse;
	background: var(--p-card);
	border-radius: var(--p-radius);
	overflow: hidden;
	box-shadow: 0 1px 2px rgb(var(--p-shadow) / 0.06), 0 4px 16px rgb(var(--p-shadow) / 0.05);
}
.rc-product .rc-compare th,
.rc-product .rc-compare td {
	border: 0;
	border-bottom: 1px solid var(--p-line);
	padding: 14px 20px;
	text-align: left;
}
.rc-product .rc-compare th {
	font-family: var(--rc-font-heading);
	font-size: 0.95rem;
}
.rc-product .rc-compare .has-text-align-center {
	text-align: center;
	width: 22%;
}
.rc-product .rc-compare tbody tr:last-child td {
	border-bottom: 0;
}
.rc-yes {
	color: var(--p-primary);
	font-weight: 700;
	font-size: 1.1rem;
}
.rc-no-mark {
	color: var(--p-outline);
}
@media (max-width: 768px) {
	.rc-product .rc-compare th,
	.rc-product .rc-compare td {
		padding: 12px 10px;
		font-size: 0.9rem;
	}
}

/* ---------- Motion (respects "reduce motion"; assets/js/motion.js) ---------- */

.rc-product-bar {
	position: sticky;
	top: 0;
	z-index: 50;
	transition: box-shadow 0.25s ease, background-color 0.25s ease;
}
@supports (backdrop-filter: blur(8px)) {
	.rc-product-bar {
		background: color-mix(in srgb, var(--p-nav) 88%, transparent);
		backdrop-filter: saturate(1.4) blur(10px);
	}
}
.rc-product-bar.is-scrolled {
	box-shadow: 0 6px 24px rgb(0 0 0 / 0.18);
}
.admin-bar .rc-product-bar {
	top: 32px;
}

.rc-product .wp-block-button__link,
.rc-button {
	transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.rc-product .wp-block-button .wp-block-button__link:hover,
.rc-button:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgb(var(--p-shadow) / 0.18);
}

.rc-card,
.rc-product .rc-shot img {
	transition: transform 0.3s cubic-bezier(.2, .7, .2, 1), box-shadow 0.3s ease;
}
.rc-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 2px 4px rgb(var(--p-shadow) / 0.06), 0 14px 32px rgb(var(--p-shadow) / 0.12);
}
.rc-card__icon {
	transition: transform 0.3s ease;
}
.rc-card:hover .rc-card__icon {
	transform: scale(1.08) rotate(-4deg);
}
.rc-product .rc-shot:hover img {
	transform: translateY(-4px);
}

/* Hero: enters once on load. */
@keyframes rc-rise {
	from { opacity: 0; transform: translateY(18px); }
	to { opacity: 1; transform: none; }
}
@keyframes rc-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-8px); }
}
@media (prefers-reduced-motion: no-preference) {
	.rc-hero .wp-block-column:first-child > * {
		animation: rc-rise 0.7s cubic-bezier(.2, .7, .2, 1) both;
	}
	.rc-hero .wp-block-column:first-child > :nth-child(2) { animation-delay: 0.08s; }
	.rc-hero .wp-block-column:first-child > :nth-child(3) { animation-delay: 0.16s; }
	.rc-hero .wp-block-column:first-child > :nth-child(n+4) { animation-delay: 0.24s; }
	.rc-hero .wp-block-column:last-child {
		animation: rc-rise 0.9s 0.2s cubic-bezier(.2, .7, .2, 1) both;
	}
	.rc-hero .rc-scan__form,
	.rc-hero .rc-shot--phone img {
		animation: rc-float 6s ease-in-out 1.2s infinite;
	}
}

/* Scroll reveal: only when motion.js has run. */
.rc-motion .rc-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.7s cubic-bezier(.2, .7, .2, 1) var(--rc-delay, 0ms),
		transform 0.7s cubic-bezier(.2, .7, .2, 1) var(--rc-delay, 0ms);
}
.rc-motion .rc-reveal.is-visible {
	opacity: 1;
	transform: none;
}
.rc-motion .rc-card.rc-reveal.is-visible:hover {
	transform: translateY(-4px);
}

@media (prefers-reduced-motion: reduce) {
	.rc-product *,
	.rc-product *::before,
	.rc-product *::after {
		animation: none !important;
		transition: none !important;
	}
}

.rc-shot-row {
	margin-top: 48px;
}
.rc-section .rc-wrap--narrow .rc-shot-row {
	margin-inline: -120px;
}
@media (max-width: 1100px) {
	.rc-section .rc-wrap--narrow .rc-shot-row {
		margin-inline: 0;
	}
}

/* The hero's picture gets a little more room than its words. */
@media (min-width: 769px) {
	.rc-hero .wp-block-columns > .wp-block-column:last-child {
		flex-grow: 1.3;
	}
}
.rc-product .rc-shot--tablet {
	max-width: 920px;
	margin-inline: auto;
}

/* Hero screenshot: bigger, and on wide screens it runs off the right edge. */
.rc-hero {
	overflow: hidden;
}
@media (min-width: 1024px) {
	.rc-hero .wp-block-columns > .wp-block-column:last-child {
		flex-grow: 1.6;
	}
	.rc-hero .rc-shot--desktop {
		width: 125%;
		max-width: none;
	}
	.rc-hero .rc-shot--desktop img {
		border-top-right-radius: 0;
		border-bottom-right-radius: 0;
	}
}
.rc-hero .rc-shot figcaption {
	text-align: left;
}

/* Two editions side by side. */
.rc-editions {
	gap: 40px !important;
	align-items: start;
}
.rc-editions h3 {
	font-size: 1.35rem;
	margin-bottom: 4px;
}
.rc-editions .rc-shot {
	margin-top: 20px;
}

/* ===================== Home page (parent brand) ===================== */

.rc-brand .rc-ticks li::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230C5A62' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}

/* Hero: Petrol Ink with a soft teal and saffron light. */
.rc-home-hero {
	background:
		radial-gradient(900px 500px at 85% 20%, rgb(78 195 201 / 0.16), transparent 60%),
		radial-gradient(700px 420px at 10% 100%, rgb(240 179 65 / 0.10), transparent 60%),
		#0C2B31;
	color: #F5F6F5;
	padding: 88px 16px 176px;
	overflow: hidden;
}
.rc-home-hero .rc-eyebrow {
	color: #F0B341;
}
.rc-home-hero h1 {
	font-size: clamp(2.4rem, 5.2vw, 4rem);
	line-height: 1.06;
	letter-spacing: -0.025em;
	margin-bottom: 24px;
}
.rc-home-hero .rc-lead {
	color: #C9D6D8;
	font-size: 1.2rem;
}
.rc-product.rc-brand .rc-home-hero .wp-block-button .wp-block-button__link {
	background: #F0B341;
	border-color: #F0B341;
	color: #0C2B31 !important;
}
.rc-product.rc-brand .rc-home-hero .wp-block-button .wp-block-button__link:hover {
	background: #FFFFFF;
	border-color: #FFFFFF;
}
.rc-product.rc-brand .rc-home-hero .rc-btn-secondary .wp-block-button__link {
	background: transparent;
	border-color: #4EC3C9;
	color: #FFFFFF !important;
}
.rc-product.rc-brand .rc-home-hero .rc-btn-secondary .wp-block-button__link:hover {
	background: rgb(78 195 201 / 0.14);
}
.rc-home-hero__cols {
	align-items: center;
	gap: 56px !important;
}

/* Two real screens, overlapping. */
.rc-home-visual {
	position: relative;
	padding-bottom: 8%;
}
.rc-home-visual > .wp-block-group__inner-container {
	display: contents;
}
.rc-product .rc-home-visual .rc-shot img {
	border: 0;
	border-radius: 14px;
	box-shadow: 0 30px 60px rgb(0 0 0 / 0.35), 0 0 0 1px rgb(255 255 255 / 0.08);
}
.rc-home-visual .rc-shot:first-of-type {
	width: 82%;
	margin-left: auto;
	opacity: 0.92;
}
.rc-home-visual .rc-shot:last-of-type {
	width: 82%;
	margin-top: -34%;
	position: relative;
	z-index: 2;
}
@media (prefers-reduced-motion: no-preference) {
	.rc-home-visual .rc-shot:last-of-type img {
		animation: rc-float 7s ease-in-out 1.4s infinite;
	}
}

/* Product cards lifted over the hero's lower edge. */
.rc-home-products {
	padding-top: 0;
	padding-bottom: 32px;
}
.rc-home-cards {
	margin-top: -128px !important;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
	gap: 28px !important;
	position: relative;
	z-index: 3;
}
.rc-home-card {
	--card: #12727C;
	--card-ink: #0C5A62;
	background: #FFFFFF;
	border-radius: 20px;
	padding: 36px 36px 32px;
	box-shadow: 0 2px 4px rgb(12 43 49 / 0.06), 0 24px 48px rgb(12 43 49 / 0.14);
	position: relative;
	overflow: hidden;
	transition: transform 0.3s cubic-bezier(.2, .7, .2, 1), box-shadow 0.3s ease;
}
.rc-home-card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 6px;
	background: var(--card);
}
.rc-home-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 2px 4px rgb(12 43 49 / 0.06), 0 32px 60px rgb(12 43 49 / 0.18);
}
.rc-home-card--pos {
	--card: #B4532A;
	--card-ink: #8A3A17;
}
.rc-home-card--pms {
	--card: #306A42;
	--card-ink: #15512C;
}
.rc-home-card .rc-eyebrow {
	color: var(--card-ink);
}
.rc-home-card h3 {
	font-size: 1.9rem !important;
	margin-bottom: 10px !important;
}
.rc-home-card p {
	color: var(--p-text-muted);
}
.rc-product .rc-home-card .rc-ticks li::before {
	background: var(--card);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 18px no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 18px no-repeat;
	border-radius: 0;
}
.rc-product .rc-home-card .wp-block-button .wp-block-button__link {
	background: var(--card);
	border-color: var(--card);
}
.rc-product .rc-home-card .wp-block-button .wp-block-button__link:hover {
	background: var(--card-ink);
	border-color: var(--card-ink);
}

/* Who it is for: a tile per kind of business, in the colour of the product that serves it. */
.rc-home-fit {
	padding-top: 40px;
}
.rc-fit {
	--fit: #B4532A;
	--fit-soft: #FBEEE7;
}
.rc-fit--pms {
	--fit: #306A42;
	--fit-soft: #E3F2E6;
}
.rc-fit + .rc-fit {
	margin-top: 28px;
}
.rc-fit__group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 12px;
	margin-bottom: 14px !important;
	color: var(--p-text-muted);
}
.rc-fit__group::before {
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--fit);
}
.rc-fit__group strong {
	color: var(--p-text);
}
.rc-fit__tiles {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}
.rc-product .rc-fit__tile {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 64px;
	padding: 12px 16px;
	border: 1px solid var(--p-line);
	border-radius: 14px;
	background: var(--p-card);
	color: var(--p-text);
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}
.rc-product .rc-fit__tile:hover {
	border-color: var(--fit);
	background: var(--fit-soft);
	transform: translateY(-2px);
}
.rc-product .rc-fit__tile:focus-visible {
	outline: 3px solid var(--fit);
	outline-offset: 2px;
}
.rc-fit__tile svg {
	width: 26px;
	height: 26px;
	flex: none;
	color: var(--fit);
}
.rc-fit__tile .rc-arrow {
	margin-left: auto;
	color: var(--p-text-muted);
}
@media (max-width: 900px) {
	.rc-fit__tiles {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
/* Phones: two to a row, the whole tile is the link, so no arrow. */
@media (max-width: 600px) {
	.rc-fit__tiles {
		gap: 10px;
	}
	.rc-product .rc-fit__tile {
		gap: 10px;
		min-height: 56px;
		padding: 10px 12px;
	}
	.rc-fit__tile .rc-arrow {
		display: none;
	}
}
@media (max-width: 340px) {
	.rc-fit__tiles {
		grid-template-columns: minmax(0, 1fr);
	}
}
@media (prefers-reduced-motion: reduce) {
	.rc-product .rc-fit__tile:hover {
		transform: none;
	}
}

/* What both share: open, not boxed. */
.rc-home-benefits .rc-card {
	border: 0;
	background: transparent;
	padding: 0;
	box-shadow: none !important;
}
.rc-home-benefits .rc-card:hover {
	transform: none;
}
.rc-home-benefits .rc-card__icon {
	width: 52px;
	height: 52px;
	border-radius: 14px;
}

/* Pricing in short. */
.rc-home-prices {
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
}
.rc-home-price {
	padding: 32px !important;
}
.rc-home-price__name {
	font-weight: 700;
	margin-bottom: 6px !important;
}
.rc-home-price--pos .rc-home-price__name {
	color: #8A3A17;
}
.rc-home-price--pms .rc-home-price__name {
	color: #15512C;
}
.rc-card p.rc-home-price__amount {
	font-family: var(--rc-font-heading);
	font-size: 2.2rem;
	font-weight: 700;
	color: var(--p-text);
	line-height: 1.2;
	margin-bottom: 10px;
}
.rc-home-price__amount span {
	font-family: var(--rc-font-body);
	font-size: 1rem;
	font-weight: 400;
	color: var(--p-text-muted);
}
.rc-home-price__link a {
	font-weight: 700;
	text-decoration: none;
}
.rc-home-price__link a::after {
	content: " →";
}
.rc-home-price--pos .rc-home-price__link a {
	color: #8A3A17;
}
.rc-home-price--pms .rc-home-price__link a {
	color: #15512C;
}

/* Demo band in Signal Teal. */
.rc-home-cta {
	background: #12727C;
	color: #FFFFFF;
	text-align: center;
}
.rc-home-cta .rc-lead {
	color: #E1F2F3;
	margin-inline: auto;
}
.rc-home-cta .wp-block-buttons {
	justify-content: center;
}
.rc-product.rc-brand .rc-home-cta .wp-block-button .wp-block-button__link {
	background: #F0B341;
	border-color: #F0B341;
	color: #0C2B31 !important;
}
.rc-product.rc-brand .rc-home-cta .rc-btn-secondary .wp-block-button__link {
	background: transparent;
	border-color: #FFFFFF;
	color: #FFFFFF !important;
}

@media (max-width: 768px) {
	.rc-home-hero {
		padding: 56px 16px 140px;
	}
	.rc-home-cards {
		margin-top: -96px !important;
	}
	.rc-home-card {
		padding: 28px 24px 24px;
	}
}

/* When WordPress adds the inner container, only it is the grid: a grid inside a grid
   squeezed every card into the first column. */
.rc-grid:has(> .wp-block-group__inner-container) {
	display: block !important;
}

/* PMS plans: four in a row on wide screens, lined up card to card. */
.rc-plans,
.rc-plans > .wp-block-group__inner-container {
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	align-items: stretch;
}
.rc-plan h3 + .rc-small {
	min-height: 3.3em;
}
.rc-card .rc-plan__price + .rc-small {
	min-height: 3.3em;
}
@media (max-width: 1080px) {
	.rc-plans,
	.rc-plans > .wp-block-group__inner-container {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}
@media (max-width: 640px) {
	.rc-plans,
	.rc-plans > .wp-block-group__inner-container {
		grid-template-columns: 1fr !important;
	}
	.rc-plan h3 + .rc-small,
	.rc-card .rc-plan__price + .rc-small {
		min-height: 0;
	}
}

/* ===================== RestroCompass Digital (Saffron & Petrol) ===================== */

.rc-digital {
	--p-primary: #9A5B00;
	--p-primary-strong: #0C2B31;
	--p-soft: #FCEFD6;
	--p-on-soft: #7A4800;
	--p-nav: #0C2B31;
	--p-on-nav-variant: #C9D6D8;
	--p-surface: #FBF7F0;
	--p-container: #F3ECDF;
	--p-text: #0C2B31;
	--p-text-muted: #3D5357;
	--p-outline: #6B6255;
	--p-line: #E3D9C8;
	--p-shadow: 60 40 0;
}
.rc-digital .rc-product-bar__name span {
	color: #F0B341;
}
.rc-digital .rc-ticks li::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237A4800' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}
.rc-product.rc-digital .rc-section--dark .wp-block-button .wp-block-button__link {
	background: #F0B341;
	border-color: #F0B341;
	color: #0C2B31 !important;
}

/* Two packages side by side. */
.rc-dg-packages,
.rc-dg-packages > .wp-block-group__inner-container {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
.rc-dg-packages .wp-block-buttons {
	margin-top: auto;
}
@media (max-width: 700px) {
	.rc-dg-packages,
	.rc-dg-packages > .wp-block-group__inner-container {
		grid-template-columns: 1fr !important;
	}
}

/* Illustration: the outlet's site on a phone, and a search listing. */
.rc-dg {
	position: relative;
	margin: 0;
	min-height: 440px;
	font-family: var(--rc-font-body);
}
.rc-dg__listing {
	position: absolute;
	left: 0;
	top: 30px;
	width: 62%;
	background: #FFFFFF;
	border-radius: 18px;
	box-shadow: 0 20px 50px rgb(60 40 0 / 0.14), 0 0 0 1px #EDE4D3;
	padding: 18px;
}
.rc-dg__search {
	border: 1px solid #DADCE0;
	border-radius: 999px;
	padding: 8px 16px;
	font-size: 0.85rem;
	color: #3D5357;
	margin-bottom: 14px;
}
.rc-dg__search::before {
	content: "";
	display: inline-block;
	width: 10px;
	height: 10px;
	border: 2px solid #6B6255;
	border-radius: 50%;
	margin-right: 8px;
	vertical-align: -1px;
}
.rc-dg__photo {
	height: 92px;
	border-radius: 12px;
	background:
		linear-gradient(135deg, rgb(240 179 65 / 0.55), rgb(180 83 42 / 0.55)),
		repeating-linear-gradient(45deg, #F3ECDF 0 10px, #EADFCB 10px 20px);
	margin-bottom: 12px;
}
.rc-dg__name {
	font-family: var(--rc-font-heading);
	font-weight: 700;
	font-size: 1.15rem;
	color: #0C2B31;
}
.rc-dg__meta,
.rc-dg__open {
	font-size: 0.82rem;
	color: #3D5357;
	margin-top: 2px;
}
.rc-dg__open b {
	color: #1E6B3A;
}
.rc-dg__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 12px;
}
.rc-dg__actions span {
	font-size: 0.75rem;
	font-weight: 600;
	color: #0C5A62;
	border: 1px solid #C9D6D8;
	border-radius: 999px;
	padding: 5px 10px;
}
.rc-dg__phone {
	position: absolute;
	right: 4%;
	top: 0;
	width: 44%;
	max-width: 230px;
	aspect-ratio: 9 / 18.5;
	background: #16181B;
	border-radius: 34px;
	padding: 9px;
	box-shadow: 0 30px 60px rgb(12 43 49 / 0.28);
	z-index: 2;
}
.rc-dg__screen {
	background: #FFFFFF;
	border-radius: 26px;
	height: 100%;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.rc-dg__hero {
	background: linear-gradient(160deg, #0C2B31, #12727C);
	color: #FFFFFF;
	padding: 26px 14px 16px;
}
.rc-dg__brand {
	font-family: var(--rc-font-heading);
	font-weight: 700;
	font-size: 0.98rem;
}
.rc-dg__tag {
	font-size: 0.68rem;
	opacity: 0.85;
	margin-top: 2px;
}
.rc-dg__tabs {
	display: flex;
	gap: 12px;
	padding: 10px 14px;
	font-size: 0.7rem;
	color: #3D5357;
	border-bottom: 1px solid #EEE;
}
.rc-dg__tabs .is-on {
	color: #9A5B00;
	font-weight: 700;
	border-bottom: 2px solid #E39A1F;
}
.rc-dg__menu {
	padding: 8px 14px;
	flex: 1;
}
.rc-dg__menu div {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	font-size: 0.7rem;
	padding: 7px 0;
	border-bottom: 1px dashed #E3D9C8;
	color: #0C2B31;
}
.rc-dg__call {
	margin: 10px 14px 16px;
	background: #9A5B00;
	color: #FFFFFF;
	text-align: center;
	font-size: 0.72rem;
	font-weight: 700;
	border-radius: 999px;
	padding: 9px;
}
.rc-dg__caption {
	position: absolute;
	left: 0;
	bottom: 0;
	font-size: 0.85rem;
	color: var(--p-text-muted);
}
@media (prefers-reduced-motion: no-preference) {
	.rc-dg__phone {
		animation: rc-float 6s ease-in-out 1.2s infinite;
	}
}
@media (max-width: 768px) {
	.rc-dg {
		min-height: 470px;
	}
	.rc-dg__listing {
		width: 78%;
	}
	.rc-dg__phone {
		top: 150px;
		width: 52%;
	}
}

/* Home page: the RestroCompass Digital card and price. */
.rc-home-card--digital {
	--card: #E39A1F;
	--card-ink: #7A4800;
}
.rc-product .rc-home-card--digital .wp-block-button .wp-block-button__link {
	background: #0C2B31;
	border-color: #0C2B31;
}
.rc-home-price--digital .rc-home-price__name,
.rc-home-price--digital .rc-home-price__link a {
	color: #7A4800;
}

.rc-dg {
	width: 100%;
}
.rc-hero .wp-block-column:has(> .rc-dg) {
	width: 100%;
	align-self: stretch;
}
.rc-product.rc-digital .rc-section--dark .rc-btn-secondary .wp-block-button__link {
	background: transparent;
	border-color: #FFFFFF;
	color: #FFFFFF !important;
}
@media (max-width: 768px) {
	.rc-dg {
		min-height: 600px;
	}
}

/* Basic vs Premium: a table of words, not just ticks. */
.rc-product .rc-compare--text td,
.rc-product .rc-compare--text th {
	vertical-align: top;
	text-align: left !important;
	width: auto;
}
.rc-product .rc-compare--text td:first-child {
	font-weight: 600;
	width: 38%;
}
.rc-product .rc-compare--text td:not(:first-child),
.rc-product .rc-compare--text th:not(:first-child) {
	width: 31%;
}
.rc-product .rc-compare--text td .rc-yes,
.rc-product .rc-compare--text td .rc-no-mark {
	display: inline-block;
	padding-left: 4px;
}
.rc-dg-note {
	margin-top: 24px;
	max-width: 560px;
}
@media (max-width: 640px) {
	.rc-product .rc-compare--text table {
		font-size: 0.85rem;
	}
	.rc-product .rc-compare--text td:first-child {
		width: 34%;
	}
}

.rc-grid + .rc-small,
.rc-compare + .rc-small {
	margin-top: 20px !important;
}

/* "Everything included": three tick lists side by side. */
.rc-dg-all {
	margin-top: 32px !important;
	gap: 32px !important;
}
.rc-dg-all h3 {
	font-size: 1.1rem !important;
	margin-bottom: 14px !important;
}
.rc-dg-all .wp-block-column:last-child {
	background: var(--p-soft);
	border-radius: var(--p-radius);
	padding: 20px 24px;
}

/* RestroCompass Digital's closing band in Saffron, so it stands apart from the Petrol footer. */
.rc-digital .rc-section--dark {
	background:
		radial-gradient(700px 300px at 85% 0%, rgb(255 255 255 / 0.28), transparent 60%),
		#F0B341;
	color: #0C2B31;
}
.rc-digital .rc-section--dark .rc-lead {
	color: #3A2A00;
}
.rc-product.rc-digital .rc-section--dark .wp-block-button .wp-block-button__link {
	background: #0C2B31;
	border-color: #0C2B31;
	color: #FFFFFF !important;
}
.rc-product.rc-digital .rc-section--dark .wp-block-button .wp-block-button__link:hover {
	background: #12727C;
	border-color: #12727C;
}
.rc-product.rc-digital .rc-section--dark .rc-btn-secondary .wp-block-button__link {
	background: transparent;
	border-color: #0C2B31;
	color: #0C2B31 !important;
}
.rc-product.rc-digital .rc-section--dark .rc-btn-secondary .wp-block-button__link:hover {
	background: rgb(12 43 49 / 0.08);
	color: #0C2B31 !important;
}

/* RestroCompass Digital: three packages; Signature dark and premium. */
.rc-dg-packages,
.rc-dg-packages > .wp-block-group__inner-container {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
.rc-plan--signature {
	background: #0C2B31 !important;
	border-color: #0C2B31 !important;
	color: #E1EBEC;
	position: relative;
}
.rc-plan--signature h3,
.rc-card.rc-plan--signature p.rc-plan__price {
	color: #FFFFFF !important;
}
.rc-card.rc-plan--signature p,
.rc-plan--signature .rc-ticks li {
	color: #C9D6D8 !important;
}
.rc-plan--signature .rc-ticks li strong {
	color: #FFFFFF;
}
.rc-digital .rc-plan--signature .rc-ticks li::before {
	background-color: #F0B341;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230C2B31' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}
.rc-card.rc-plan--signature p.rc-plan__badge {
	background: #F0B341;
	color: #0C2B31 !important;
}
.rc-product.rc-digital .rc-plan--signature .wp-block-button .wp-block-button__link {
	background: #F0B341;
	border-color: #F0B341;
	color: #0C2B31 !important;
}
.rc-product .rc-compare--3 td:first-child {
	width: 31%;
}
.rc-product .rc-compare--3 .has-text-align-center {
	width: 23%;
}
@media (max-width: 960px) {
	.rc-dg-packages,
	.rc-dg-packages > .wp-block-group__inner-container {
		grid-template-columns: 1fr !important;
	}
}

/* Overview: the Signature banner. */
.rc-dg-signature {
	background: #0C2B31;
	color: #E1EBEC;
	border-radius: 24px;
	padding: 40px 44px;
	display: grid !important;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 24px;
}
.rc-dg-signature > .wp-block-group__inner-container {
	display: contents;
}
.rc-dg-signature .rc-eyebrow {
	color: #F0B341 !important;
}
.rc-dg-signature h2 {
	color: #FFFFFF !important;
	margin-bottom: 8px !important;
}
.rc-card .rc-dg-signature p,
.rc-dg-signature p {
	color: #C9D6D8;
	margin-bottom: 0;
}
.rc-product.rc-digital .rc-dg-signature .wp-block-button .wp-block-button__link {
	background: #F0B341;
	border-color: #F0B341;
	color: #0C2B31 !important;
}
@media (max-width: 760px) {
	.rc-dg-signature {
		grid-template-columns: 1fr;
		padding: 28px 24px;
	}
}

/* Home: three even product cards, buttons on one line at the bottom. */
.rc-home-cards {
	align-items: stretch;
}
.rc-home-card {
	display: flex !important;
	flex-direction: column;
	padding: 32px 32px 28px !important;
}
.rc-home-card > .wp-block-group__inner-container {
	display: flex;
	flex-direction: column;
	flex: 1;
}
.rc-home-card h3 {
	font-size: 1.55rem !important;
	white-space: nowrap;
}
.rc-home-card .rc-eyebrow {
	font-size: 0.78rem !important;
}
.rc-home-card .wp-block-buttons {
	margin-top: auto !important;
	padding-top: 8px;
}
@media (max-width: 1100px) and (min-width: 769px) {
	.rc-home-card h3 {
		font-size: 1.35rem !important;
	}
}

/* Home hero: the three buttons on one line on wide screens. */
@media (min-width: 900px) {
	.rc-home-hero .wp-block-buttons {
		flex-wrap: nowrap;
	}
	.rc-home-hero .wp-block-button__link {
		white-space: nowrap;
		padding-left: 22px;
		padding-right: 22px;
	}
}

/* Home: cards start a little lower, overlapping the hero less. */
.rc-home-cards {
	margin-top: -64px !important;
}
.rc-home-hero {
	padding-bottom: 136px;
}
@media (max-width: 768px) {
	.rc-home-cards {
		margin-top: -48px !important;
	}
	.rc-home-hero {
		padding-bottom: 104px;
	}
}

/* POS overview: the eight kinds of outlet, in two rows of four on wide screens. */
.rc-outlets,
.rc-outlets > .wp-block-group__inner-container {
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 16px;
}
.rc-outlets .rc-card {
	display: flex !important;
	flex-direction: column;
	padding: 22px 20px;
}
.rc-outlets .rc-card > .wp-block-group__inner-container {
	display: flex;
	flex-direction: column;
	flex: 1;
}
.rc-outlets .rc-card p:last-child {
	margin-top: auto !important;
	padding-top: 12px;
	font-size: 0.9rem;
	color: var(--p-text);
}
.rc-outlets + .wp-block-buttons {
	margin-top: 28px;
}
@media (max-width: 1080px) {
	.rc-outlets,
	.rc-outlets > .wp-block-group__inner-container {
		grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
	}
}

/* Each outlet card opens its page: the whole card is the link. */
.rc-outlets .rc-card {
	position: relative;
}
.rc-outlets .rc-card h3 a {
	color: inherit !important;
	text-decoration: none;
}
.rc-outlets .rc-card h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}
.rc-outlets .rc-card h3 a:focus-visible {
	outline: none;
}
.rc-outlets .rc-card:has(h3 a:focus-visible) {
	outline: 3px solid var(--p-primary);
	outline-offset: 2px;
}
.rc-arrow {
	display: inline-block;
	color: var(--p-primary);
	transition: transform 0.2s ease;
}
.rc-outlets .rc-card:hover .rc-arrow {
	transform: translateX(4px);
}

/* ---------- Outlet pages (/pos/restaurants/ …) ---------- */

/* Three steps, or six cards, in rows of three. */
.rc-grid--3,
.rc-grid--3 > .wp-block-group__inner-container {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
@media (max-width: 960px) {
	.rc-grid--3:not(.rc-steps),
	.rc-grid--3:not(.rc-steps) > .wp-block-group__inner-container {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}
@media (max-width: 768px) {
	.rc-steps.rc-grid--3,
	.rc-steps.rc-grid--3 > .wp-block-group__inner-container {
		grid-template-columns: 1fr !important;
	}
}
@media (max-width: 560px) {
	.rc-grid--3:not(.rc-steps),
	.rc-grid--3:not(.rc-steps) > .wp-block-group__inner-container {
		grid-template-columns: 1fr !important;
	}
}

/* A TV: a dark bezel on a small stand. */
.rc-product .rc-shot--tv {
	position: relative;
	max-width: 760px;
	margin-inline: auto;
	padding-bottom: 26px;
}
.rc-product .rc-shot--tv img {
	border: 10px solid #16181B;
	border-bottom-width: 14px;
	border-radius: 14px;
	box-shadow: 0 16px 40px rgb(var(--p-shadow) / 0.18);
}
.rc-product .rc-shot--tv::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 30%;
	height: 26px;
	transform: translateX(-50%);
	background: #26292E;
	clip-path: polygon(38% 0, 62% 0, 62% 55%, 100% 80%, 100% 100%, 0 100%, 0 80%, 38% 55%);
}

/* The plan that fits: its price under its name. */
.rc-wrap--narrow > .rc-plan__price,
.rc-wrap--narrow > .wp-block-group__inner-container > .rc-plan__price {
	margin-bottom: 16px !important;
}

/* "Also made for": the other outlet pages. */
.rc-also-for {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
.rc-product .rc-also-for a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 10px 18px 10px 12px;
	border: 1px solid var(--p-line);
	border-radius: 999px;
	background: var(--p-card);
	color: var(--p-text);
	font-weight: 600;
	text-decoration: none;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}
.rc-product .rc-also-for a:hover {
	border-color: var(--p-primary);
	background: var(--p-soft);
	color: var(--p-on-soft);
}
.rc-also-for svg {
	width: 22px;
	height: 22px;
	flex: none;
	color: var(--p-primary);
}

/* ---------- "For your outlet": a menu in the product bar that opens with a tap ---------- */

.rc-product-bar__inner,
.rc-product-bar__menu {
	position: relative;
}
.rc-product-bar__menu summary {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	list-style: none;
	cursor: pointer;
	color: var(--p-on-nav-variant);
	font-size: 0.95rem;
	padding: 6px 0;
}
.rc-product-bar__menu summary::-webkit-details-marker {
	display: none;
}
.rc-product-bar__menu summary::after {
	content: "";
	width: 7px;
	height: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform 0.2s ease;
}
.rc-product-bar__menu[open] summary::after {
	transform: translateY(2px) rotate(-135deg);
}
.rc-product-bar__menu summary:hover,
.rc-product-bar__menu[open] summary,
.rc-product-bar__menu.is-current summary {
	color: #FFFFFF;
}
.rc-product-bar__menu.is-current summary {
	text-decoration: underline;
	text-underline-offset: 6px;
}
.rc-product-bar__panel {
	position: absolute;
	top: calc(100% + 10px);
	left: -12px;
	z-index: 60;
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 270px;
	padding: 8px;
	background: var(--p-card);
	border-radius: 14px;
	box-shadow: 0 2px 6px rgb(0 0 0 / 0.08), 0 18px 40px rgb(0 0 0 / 0.22);
}
.rc-product-bar nav .rc-product-bar__panel a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 12px;
	border-radius: 10px;
	color: var(--p-text) !important;
	font-weight: 600;
	text-decoration: none;
}
.rc-product-bar nav .rc-product-bar__panel a:hover,
.rc-product-bar nav .rc-product-bar__panel a[aria-current="page"] {
	background: var(--p-soft);
	color: var(--p-on-soft) !important;
	text-decoration: none;
}
.rc-product-bar__panel svg {
	width: 20px;
	height: 20px;
	flex: none;
	color: var(--p-primary);
}
/* Phones: the list runs the width of the bar, under it. */
@media (max-width: 768px) {
	.rc-product-bar__menu {
		position: static;
	}
	.rc-product-bar__panel {
		top: 100%;
		left: 0;
		right: 0;
		min-width: 0;
	}
}

/* ---------- RestroCompass Digital: four packages (Starter, Pro, Premium, Signature) ---------- */

.rc-dg-packages,
.rc-dg-packages > .wp-block-group__inner-container {
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 20px;
}
.rc-dg-packages .rc-plan {
	position: relative;
}
.rc-dg-packages .rc-plan h3 + .rc-small {
	min-height: 4.6em;
}
.rc-card p.rc-plan__price--quote {
	font-size: 1.6rem;
}
@media (max-width: 1180px) {
	.rc-dg-packages,
	.rc-dg-packages > .wp-block-group__inner-container {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		row-gap: 32px;
	}
}
@media (max-width: 640px) {
	.rc-dg-packages,
	.rc-dg-packages > .wp-block-group__inner-container {
		grid-template-columns: 1fr !important;
	}
	.rc-dg-packages .rc-plan h3 + .rc-small {
		min-height: 0;
	}
}
#packages .rc-dg-packages + .wp-block-buttons {
	margin-top: 32px;
}

/* The comparison with four packages: narrower columns, scrolls sideways on phones. */
.rc-product .rc-compare--4 td:first-child {
	width: 28%;
}
.rc-product .rc-compare--4 .has-text-align-center {
	width: 18%;
}
@media (max-width: 760px) {
	.rc-product .rc-compare--4 table {
		min-width: 640px;
	}
}

/* The comparison in groups: a heading row per group, what each feature means under its
   name, Premium's column tinted, and a button under each package. */
.rc-product .rc-compare--groups tr.rc-compare__group th {
	background: var(--p-container);
	color: var(--p-on-soft);
	font-family: var(--rc-font-body);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-align: left;
	padding: 10px 20px;
}
.rc-compare__hint {
	display: block;
	margin-top: 2px;
	color: var(--p-text-muted);
	font-size: 0.82rem;
	line-height: 1.4;
}
.rc-product .rc-compare--groups .rc-compare__hot {
	background: var(--p-soft);
}
.rc-product .rc-compare--groups thead th.rc-compare__hot {
	color: var(--p-on-soft);
}
.rc-product .rc-compare--groups tr.rc-compare__cta td {
	padding-top: 18px;
	padding-bottom: 18px;
	border-bottom: 0;
}
.rc-product .rc-compare .rc-compare__button {
	display: inline-block;
	padding: 8px 16px;
	border-radius: 999px;
	background: var(--p-primary);
	color: var(--p-on-primary) !important;
	font-size: 0.88rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
}
.rc-product .rc-compare .rc-compare__button:hover {
	background: var(--p-primary-strong);
}

/* "All we need from you" and "No surprises": two cards side by side. */
.rc-dg-deal {
	gap: 24px !important;
	align-items: stretch !important;
}
.rc-dg-deal > .wp-block-column {
	background: var(--p-card);
	border-radius: var(--p-radius);
	padding: 32px;
	box-shadow: 0 1px 2px rgb(var(--p-shadow) / 0.06), 0 4px 16px rgb(var(--p-shadow) / 0.05);
}
.rc-dg-deal .rc-ticks {
	margin-bottom: 0;
}
@media (max-width: 768px) {
	.rc-dg-deal > .wp-block-column {
		padding: 24px 20px;
	}
}

/* Questions in groups on one page. */
.rc-product h3.rc-faq__group {
	color: var(--p-primary);
	font-size: 0.85rem;
	font-family: var(--rc-font-body);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 40px 0 4px;
}
