/* RuleKits theme styles (front end and editor).
   Colours, fonts and sizes come from theme.json presets. */

:root {
	--rk-navy: var(--wp--preset--color--navy, #1F3A5F);
	--rk-navy-dark: var(--wp--preset--color--navy-dark, #162B47);
	--rk-teal: var(--wp--preset--color--teal, #2A9D8F);
	--rk-teal-btn: var(--wp--preset--color--teal-button, #238477);
	--rk-teal-dark: var(--wp--preset--color--teal-dark, #1B6F66);
	--rk-teal-light: var(--wp--preset--color--teal-light, #7FD6CB);
	--rk-grey: var(--wp--preset--color--grey, #F4F6F8);
	--rk-border: var(--wp--preset--color--border, #D5DBE1);
	--rk-muted: var(--wp--preset--color--muted, #4A5563);
	--rk-text: var(--wp--preset--color--text, #222222);
	--rk-amber: var(--wp--preset--color--amber, #E9A23B);
	--rk-amber-light: var(--wp--preset--color--amber-light, #FFF8EC);
	--rk-focus: var(--rk-navy);
	--rk-radius: 10px;
	--rk-shadow: 0 1px 2px rgba(31, 58, 95, .06), 0 4px 16px rgba(31, 58, 95, .08);
}

/* ---------- Base ---------- */
html { scroll-padding-top: 1rem; }
body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
img, svg, video, iframe { max-width: 100%; }
h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; text-wrap: balance; }
/* Long file names (e.g. RuleKits_Sole_Trader_MTD_Record_Kit_2027-28.xlsx) must wrap on phones. */
.wp-block-post-content, .woocommerce-Tabs-panel, .wp-block-woocommerce-product-details,
.wp-block-post-excerpt, .wc-block-components-product-name, .rk-footer { overflow-wrap: anywhere; }
p { text-wrap: pretty; }
strong, b { font-weight: 700; }

/* Visible keyboard focus everywhere. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--rk-focus);
	outline-offset: 2px;
	border-radius: 2px;
}
.has-navy-background-color,
.has-navy-dark-background-color { --rk-focus: var(--rk-teal-light); }

.skip-link.screen-reader-text:focus {
	background: #fff;
	color: var(--rk-navy);
	font-weight: 700;
	padding: .75rem 1rem;
	outline: 3px solid var(--rk-teal-dark);
	z-index: 100000;
}

/* Stack header / main / footer with no gaps; main handles its own padding. */
.wp-site-blocks > * + * { margin-block-start: 0; }

/* Text on navy */
.has-navy-background-color :is(h1, h2, h3, h4, h5, h6),
.has-navy-dark-background-color :is(h1, h2, h3, h4, h5, h6) { color: #fff; }
.has-navy-background-color a:not(.wp-element-button):not(.wc-block-components-button),
.has-navy-dark-background-color a:not(.wp-element-button) { color: #fff; }
.has-navy-background-color a:not(.wp-element-button):hover { color: var(--rk-teal-light); }

/* ---------- Buttons ---------- */
.wp-block-button__link { transition: background-color .15s ease, color .15s ease; }
.wp-block-button.is-style-light .wp-block-button__link {
	background: #fff;
	color: var(--rk-navy);
}
.wp-block-button.is-style-light .wp-block-button__link:hover,
.wp-block-button.is-style-light .wp-block-button__link:focus {
	background: #E3F4F1;
	color: var(--rk-navy);
	text-decoration: underline;
}
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--rk-navy);
	border: 2px solid currentColor;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--rk-grey); }

/* ---------- Block styles ---------- */
.is-style-card {
	background: #fff;
	border: 1px solid var(--rk-border);
	border-radius: var(--rk-radius);
	padding: var(--wp--preset--spacing--50);
	box-shadow: var(--rk-shadow);
}
.is-style-notice {
	background: var(--rk-amber-light);
	border: 2px solid var(--rk-amber);
	border-left-width: 8px;
	border-radius: var(--rk-radius);
	padding: 1rem 1.25rem;
	color: var(--rk-text);
}
.is-style-notice > * { margin-block: 0; }
.is-style-notice > * + * { margin-block-start: .5rem; }

/* ---------- Header ---------- */
.rk-header {
	padding-block: .85rem;
	position: relative;
	z-index: 50;
}
.rk-header__inner { gap: .75rem 1.5rem; }
.rk-brand { gap: .6rem; align-items: center; }
.rk-brand .wp-block-site-title { margin: 0; font-size: 1.6rem; letter-spacing: -.01em; }
.rk-brand .wp-block-site-title a { color: #fff; text-decoration: none; }
.rk-logo-mark { display: inline-flex; line-height: 0; flex: 0 0 auto; }
.rk-logo-mark svg { width: 34px; height: 34px; display: block; }
.rk-header__nav { gap: .25rem 1.25rem; align-items: center; }
.rk-header .wp-block-navigation,
.rk-header .wp-block-navigation .wp-block-navigation__container { gap: .25rem 1.4rem; }
.rk-header .wp-block-navigation a,
.rk-header .wp-block-navigation .wp-block-navigation-item__content { color: #fff; text-decoration: none; padding-block: .35rem; }
.rk-header .wp-block-navigation a:hover { text-decoration: underline; text-underline-offset: .3em; text-decoration-thickness: 2px; color: #fff; }
.rk-header .wp-block-navigation .current-menu-item > a,
.rk-header .wp-block-navigation a[aria-current="page"] {
	text-decoration: underline;
	text-decoration-color: var(--rk-teal-light);
	text-decoration-thickness: 3px;
	text-underline-offset: .35em;
}
.rk-header .wp-block-navigation__responsive-container-open,
.rk-header .wp-block-navigation__responsive-container-close { color: #fff; padding: .35rem; }
.rk-header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--rk-navy) !important;
	color: #fff !important;
	padding: 1.5rem;
}
.rk-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.25rem; padding-block: .5rem; }

/* WooCommerce header icons */
.rk-header .wc-block-mini-cart__button,
.rk-header .wc-block-customer-account a,
.rk-header .wp-block-woocommerce-customer-account a { color: #fff; }
.rk-header .wc-block-mini-cart__button:hover,
.rk-header .wc-block-customer-account a:hover { color: var(--rk-teal-light); }
.rk-header .wc-block-mini-cart__icon,
.rk-header .wc-block-customer-account__account-icon { width: 28px; height: 28px; }
.rk-header .wc-block-mini-cart__badge {
	background: #fff !important;
	color: var(--rk-navy) !important;
	font-weight: 700;
}
.rk-header .wc-block-mini-cart__amount { display: none; }
.rk-header .wp-block-woocommerce-customer-account svg { fill: currentColor; }

/* ---------- Main areas ---------- */
.rk-main { padding-block: var(--wp--preset--spacing--70); }
.rk-main.rk-front { padding-block: 0; }
.wp-site-blocks .rk-front > * { margin-block: 0; }

.rk-page-head { margin-block-end: var(--wp--preset--spacing--50); }
.rk-page-title {
	font-size: var(--wp--preset--font-size--x-large) !important;
	margin: 0;
}
.rk-page-title::after {
	content: "";
	display: block;
	width: 56px;
	height: 4px;
	margin-top: .6rem;
	border-radius: 2px;
	background: var(--rk-teal);
}
/* Pages pasted as Custom HTML usually carry their own <h1>. Hide the
   template title then, so there is only one title on the page. */
.rk-main:has(.wp-block-post-content h1) .rk-page-head { display: none; }

/* Legacy Custom HTML pages (.rr wrapper): use the theme fonts and an AA-contrast button. */
.wp-site-blocks .rr { font-family: var(--wp--preset--font-family--body); font-size: var(--wp--preset--font-size--base); }
.wp-site-blocks .rr :is(h1, h2, h3) { font-family: var(--wp--preset--font-family--heading); }
.wp-site-blocks .rr .rk-btn:not(.rk-btn-alt) { background: var(--rk-teal-btn); }
.wp-site-blocks .rr .rk-btn:not(.rk-btn-alt):hover { background: var(--rk-teal-dark); }
.wp-site-blocks .rr .rk-btn:focus-visible { outline: 3px solid var(--rk-navy); outline-offset: 2px; }
.wp-site-blocks .rr .rk-hero .rk-btn:focus-visible { outline-color: #fff; }

/* ---------- Sections (front page) ---------- */
.rk-section { padding-block: var(--wp--preset--spacing--80); }
.rk-section > .wp-block-heading:first-child,
.rk-section > .rk-kicker:first-child { margin-top: 0; }
.rk-kicker {
	color: var(--rk-teal-dark);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .875rem;
	margin-bottom: .25rem !important;
}
.has-navy-background-color .rk-kicker { color: var(--rk-teal-light); }
.rk-lead { font-size: var(--wp--preset--font-size--medium); }
.rk-section > .rk-lead { max-width: 46rem; margin-left: 0 !important; }
.rk-small { font-size: var(--wp--preset--font-size--small); color: var(--rk-muted); }
.has-navy-background-color .rk-small { color: #C9D3DE; }

/* Hero */
.rk-hero { padding-block: var(--wp--preset--spacing--80); overflow: hidden; }
.rk-hero .wp-block-columns { gap: 3rem; align-items: center; margin: 0; }
.rk-hero__title { font-size: var(--wp--preset--font-size--xx-large); margin: .25rem 0 1rem; max-width: 18ch; }
.rk-hero__lead { font-size: var(--wp--preset--font-size--medium); color: #E6ECF3; max-width: 34rem; }
.rk-hero .wp-block-buttons { margin-top: 1.75rem; gap: .75rem; }

.rk-pills { list-style: none; padding: 0 !important; margin: 1.5rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.rk-pills li {
	border: 2px solid rgba(255, 255, 255, .55);
	border-radius: 999px;
	padding: .25rem .8rem;
	font-size: .9375rem;
	font-weight: 600;
	margin: 0;
}
.rk-pills li::before { content: "\2713\00a0"; color: var(--rk-teal-light); font-weight: 700; }

/* Hero illustration (decorative) */
.rk-art {
	background: #fff;
	color: var(--rk-text);
	border-radius: 14px;
	box-shadow: 0 20px 50px rgba(0, 0, 0, .28);
	padding: 1.25rem 1.25rem 1rem;
	transform: rotate(1.25deg);
	max-width: 440px;
	margin-inline: auto;
	font-size: .9375rem;
}
.rk-art__bar { display: flex; align-items: center; gap: .5rem; margin-bottom: .9rem; }
.rk-art__bar span { width: 10px; height: 10px; border-radius: 50%; background: var(--rk-border); }
.rk-art__bar b { margin-left: auto; font-size: .8rem; color: var(--rk-muted); font-weight: 600; }
.rk-art__title { font-family: var(--wp--preset--font-family--heading); color: var(--rk-navy); font-size: 1.15rem; margin: 0 0 .25rem; }
.rk-art__sub { color: var(--rk-muted); font-size: .85rem; margin: 0 0 .75rem; }
.rk-art table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.rk-art th, .rk-art td { padding: .45rem .5rem; text-align: left; border-bottom: 1px solid #E7EBEF; }
.rk-art th { background: var(--rk-navy); color: #fff; font-weight: 600; font-size: .8rem; }
.rk-art th:first-child { border-radius: 6px 0 0 0; }
.rk-art th:last-child { border-radius: 0 6px 0 0; }
.rk-art td:not(:first-child), .rk-art th:not(:first-child) { text-align: right; }
.rk-art tr:nth-child(even) td { background: var(--rk-grey); }
.rk-art__ok { display: flex; align-items: center; gap: .5rem; margin: .9rem 0 0; font-weight: 600; color: var(--rk-teal-dark); font-size: .875rem; }
.rk-art__ok i { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; background: var(--rk-teal); color: #fff; font-style: normal; font-size: .8rem; }

/* Timeline */
.rk-timeline {
	list-style: none;
	padding: 0 !important;
	margin: 2rem 0 0;
	counter-reset: rk-step;
	position: relative;
}
.rk-timeline > li {
	position: relative;
	margin: 0;
	padding: 0 0 1.5rem 2.25rem;
	border-left: 3px solid var(--rk-teal);
	margin-left: 11px;
}
.rk-timeline > li:last-child { border-left-color: transparent; padding-bottom: 0; }
.rk-timeline > li::before {
	content: "";
	position: absolute;
	left: -13px;
	top: 0;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #fff;
	border: 4px solid var(--rk-teal);
}
.rk-timeline > li > strong:first-child {
	display: block;
	color: var(--rk-navy);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.125rem;
	line-height: 1.3;
	margin-bottom: .25rem;
}
.rk-timeline > li > em:last-child {
	display: inline-block;
	margin-top: .5rem;
	font-style: normal;
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
	color: var(--rk-teal-dark);
}
@media (min-width: 900px) {
	.rk-timeline {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 1.25rem;
	}
	.rk-timeline > li,
	.rk-timeline > li:last-child {
		border: 1px solid var(--rk-border);
		border-top: 4px solid var(--rk-teal);
		border-radius: var(--rk-radius);
		background: #fff;
		margin: 0;
		padding: 1.25rem 1.25rem 1.25rem;
		box-shadow: var(--rk-shadow);
	}
	.rk-timeline > li::before { display: none; }
	.rk-timeline > li.rk-later,
	.rk-timeline > li:nth-child(6) { border-top-color: var(--rk-navy); background: var(--rk-grey); box-shadow: none; }
}

/* Products (Product Collection block) */
.rk-products .wc-block-product-template,
.rk-shop .wc-block-product-template {
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: 1.25rem !important;
	padding: 0;
	margin: 1.5rem 0 0;
}
@media (min-width: 600px) {
	.rk-products .wc-block-product-template,
	.rk-shop .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (min-width: 960px) {
	.rk-products .wc-block-product-template,
	.rk-shop .wc-block-product-template { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
.rk-products .wc-block-product,
.rk-shop .wc-block-product {
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	background: #fff;
	border: 1px solid var(--rk-border);
	border-radius: var(--rk-radius);
	padding: 0 0 1.25rem;
	display: flex;
	flex-direction: column;
	box-shadow: var(--rk-shadow);
	overflow: hidden;
	text-align: left;
}
.rk-products .wc-block-product > *,
.rk-shop .wc-block-product > * { margin-inline: 1.25rem; }
.rk-products .wc-block-product > .wc-block-components-product-image,
.rk-shop .wc-block-product > .wc-block-components-product-image { margin: 0 0 1rem !important; }
.rk-products .wc-block-components-product-image img,
.rk-shop .wc-block-components-product-image img { border-radius: 0; aspect-ratio: 5 / 4; object-fit: cover; width: 100%; height: auto; }
.wc-block-product .wp-block-post-title {
	font-size: var(--wp--preset--font-size--medium) !important;
	line-height: 1.3;
	text-align: left !important;
	margin-block: 0 .5rem !important;
}
.wc-block-product .wp-block-post-title a { color: var(--rk-navy); text-decoration: none; }
.wc-block-product .wp-block-post-title a:hover { color: var(--rk-teal-dark); text-decoration: underline; }
.wc-block-product .wc-block-components-product-price,
.wc-block-product .wp-block-woocommerce-product-price {
	text-align: left !important;
	font-size: 1.375rem !important;
	font-weight: 700;
	color: var(--rk-navy);
	margin-block: 0 1rem;
}
.wc-block-product .wp-block-woocommerce-product-button,
.wc-block-product .wc-block-components-product-button { margin-top: auto !important; text-align: left; justify-content: flex-start; }
.wc-block-product .wc-block-components-product-button .wp-block-button__link,
.wc-block-product .wc-block-components-product-button__button { width: 100%; justify-content: center; font-size: 1rem !important; }

/* Tools */
.rk-tool { border-top: 5px solid var(--rk-teal) !important; display: flex; flex-direction: column; }
.rk-tool > .wp-block-buttons { margin-top: auto; padding-top: .5rem; }
.rk-tool h3 { margin-top: 0; }
.rk-tool__icon { line-height: 0; margin: 0 0 .75rem; }
.rk-tool__icon svg { width: 44px; height: 44px; }

.rk-tools-grid { grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr)) !important; margin-top: 1.5rem; }
@media (min-width: 782px) { .rk-tools-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }

/* Trust */
.rk-trust-grid { margin-top: 1.5rem; }
.rk-trust-grid > .is-style-card { box-shadow: none; }
.rk-trust-grid h3 {
	font-size: var(--wp--preset--font-size--medium);
	margin: 0 0 .4rem;
	display: flex;
	gap: .5rem;
	align-items: flex-start;
}
.rk-trust-grid h3::before {
	content: "\2713";
	flex: 0 0 26px;
	height: 26px;
	display: inline-grid;
	place-items: center;
	border-radius: 7px;
	background: var(--rk-teal);
	color: #fff;
	font-size: .9rem;
	font-family: var(--wp--preset--font-family--body);
	margin-top: .05em;
}
.rk-trust-grid p { margin: 0; }
.rk-badges { list-style: none; padding: 0 !important; margin: .75rem 0 0 !important; display: flex; flex-wrap: wrap; gap: .4rem; }
.rk-badges li {
	margin: 0;
	background: var(--rk-teal-btn);
	color: #fff;
	font-size: .8125rem;
	font-weight: 700;
	border-radius: 999px;
	padding: .2rem .7rem;
	line-height: 1.4;
}
.rk-badges li:nth-child(2) { background: var(--rk-navy); }
.rk-notice-wrap { margin-top: 2rem !important; }

/* ---------- Footer ---------- */
.rk-footer { padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--60); font-size: var(--wp--preset--font-size--small); }
.rk-footer__top { gap: 1.5rem 3rem; align-items: flex-start; }
.rk-footer .rk-brand .wp-block-site-title { font-size: 1.4rem; }
.rk-footer__tagline { font-size: var(--wp--preset--font-size--base); color: #E6ECF3; margin: .6rem 0 0; }
.rk-footer-links ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; }
.rk-footer-links a { color: #fff; font-weight: 600; text-decoration: none; display: inline-block; padding-block: .2rem; }
.rk-footer-links a:hover { text-decoration: underline; text-underline-offset: .25em; color: #fff; }
.rk-footer__seller { color: #C9D3DE; border-top: 1px solid rgba(255, 255, 255, .18); padding-top: 1.25rem; margin-top: 2rem !important; }
.rk-footer__seller a { color: #fff !important; }
.rk-footer__copy { color: #C9D3DE; margin-top: .5rem !important; }
@media (min-width: 782px) {
	.rk-footer-links { max-width: 34rem; }
	.rk-footer-links ul { justify-content: flex-end; }
}

/* ---------- Posts, archives, search, 404 ---------- */
.rk-post-list .wp-block-post { padding-block: 1.5rem; border-bottom: 1px solid var(--rk-border); }
.rk-post-list .wp-block-post:first-child { padding-top: 0; }
.rk-post-list .wp-block-post-title { font-size: var(--wp--preset--font-size--large); margin: 0 0 .25rem; }
.wp-block-post-excerpt__more-link { font-weight: 600; }
.wp-block-query-pagination { margin-top: 2rem; gap: .5rem; }
.wp-block-query-pagination-numbers .page-numbers { padding: .35rem .7rem; border-radius: 6px; }
.wp-block-query-pagination-numbers .current { background: var(--rk-navy); color: #fff; }
.wp-block-search__input { border: 2px solid #6B7785; border-radius: 6px; padding: .65rem .8rem; font-size: 1rem; min-width: 0; }
.wp-block-search__button { margin-left: .5rem; }
.rk-404-code { font-family: var(--wp--preset--font-family--heading); color: var(--rk-teal-dark); font-weight: 700; letter-spacing: .1em; }

/* Tables inside content */
.wp-block-post-content table { max-width: 100%; }
.wp-block-table { overflow-x: auto; }
.wp-block-table td, .wp-block-table th { border-color: var(--rk-border); }

/* ---------- WooCommerce: general ---------- */
.woocommerce-breadcrumb,
.wc-block-breadcrumbs,
.wp-block-woocommerce-breadcrumbs { font-size: var(--wp--preset--font-size--small); color: var(--rk-muted); }
.wp-block-woocommerce-breadcrumbs a { color: var(--rk-teal-dark); }

.wc-block-components-product-price,
.woocommerce-Price-amount,
.wc-block-formatted-money-amount { color: inherit; font-variant-numeric: tabular-nums; }
.wp-block-woocommerce-product-price,
.rk-product .wc-block-components-product-price { color: var(--rk-navy); font-weight: 700; }
del .woocommerce-Price-amount { color: var(--rk-muted); font-weight: 400; }

/* All WooCommerce buttons on brand */
.wc-block-components-button:not(.is-link):not(.outlined),
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wc-block-grid__product-add-to-cart .wp-block-button__link,
.single_add_to_cart_button {
	background-color: var(--rk-teal-btn) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 6px !important;
	font-weight: 700 !important;
	font-family: var(--wp--preset--font-family--body);
	text-decoration: none !important;
	box-shadow: none;
	transition: background-color .15s ease;
}
.wc-block-components-button:not(.is-link):not(.outlined):hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.single_add_to_cart_button:hover,
.wc-block-components-button:not(.is-link):not(.outlined):focus-visible,
.single_add_to_cart_button:focus-visible {
	background-color: var(--rk-teal-dark) !important;
	color: #fff !important;
}
.wc-block-components-button:not(.is-link):focus-visible,
.woocommerce .button:focus-visible,
.single_add_to_cart_button:focus-visible {
	outline: 3px solid var(--rk-navy) !important;
	outline-offset: 3px !important;
	box-shadow: none !important;
}
.wc-block-components-button.outlined {
	background: transparent !important;
	color: var(--rk-navy) !important;
	border: 2px solid var(--rk-navy) !important;
	border-radius: 6px !important;
	font-weight: 700 !important;
}
.wc-block-components-button.outlined:hover { background: var(--rk-grey) !important; }
.woocommerce button.button:disabled,
.woocommerce button.button.disabled,
.wc-block-components-button:disabled { opacity: .55; cursor: not-allowed; }

/* Notices: info = teal, success = teal-dark, warning = amber, error left as red */
.wc-block-components-notice-banner { border-radius: 8px; font-size: 1rem; }
.wc-block-components-notice-banner.is-info { border-color: var(--rk-teal); background: #EAF6F4; }
.wc-block-components-notice-banner.is-info > svg { background-color: var(--rk-teal-dark); }
.wc-block-components-notice-banner.is-success { border-color: var(--rk-teal-dark); background: #E8F5F2; }
.wc-block-components-notice-banner.is-success > svg { background-color: var(--rk-teal-dark); }
.wc-block-components-notice-banner.is-warning { border-color: var(--rk-amber); background: var(--rk-amber-light); }
.wc-block-components-notice-banner.is-warning > svg { background-color: #B26F00; }
.woocommerce-message, .woocommerce-info { border-top-color: var(--rk-teal) !important; background: var(--rk-grey); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--rk-teal-dark) !important; }
.woocommerce-error { border-top-color: #B42318 !important; }

/* Form fields (cart, checkout, account) */
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.woocommerce form .form-row .input-text,
.woocommerce form .form-row select,
.quantity .qty {
	border: 1px solid #6B7785 !important;
	border-radius: 6px !important;
	color: var(--rk-text);
	font-size: 1rem;
}
.wc-block-components-text-input input:focus,
.wc-block-components-textarea:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus,
.woocommerce form .form-row .input-text:focus,
.quantity .qty:focus {
	border-color: var(--rk-teal-dark) !important;
	box-shadow: 0 0 0 2px var(--rk-teal-dark) !important;
	outline: none;
}
.wc-block-components-checkbox input[type="checkbox"],
.wc-block-components-radio-control__input,
.woocommerce input[type="checkbox"] { accent-color: var(--rk-teal-dark); }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--rk-teal-dark); border-color: var(--rk-teal-dark); }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: #fff; }
.wc-block-components-checkbox label,
.wc-block-checkout__terms { font-size: 1rem; line-height: 1.5; }

/* Cart and checkout layout */
.wp-block-woocommerce-checkout,
.wp-block-woocommerce-cart { font-size: 1rem; }
.wc-block-components-title.wc-block-components-title,
.wc-block-components-checkout-step__title { color: var(--rk-navy); font-family: var(--wp--preset--font-family--heading); }
.wc-block-components-sidebar .wc-block-components-panel,
.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block {
	background: var(--rk-grey);
	border-radius: var(--rk-radius);
	border: 1px solid var(--rk-border) !important;
}
.wp-block-woocommerce-checkout-order-summary-block { padding: 0 .25rem; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: var(--rk-navy); font-size: 1.25rem; font-weight: 700; }
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button {
	width: 100%;
	min-height: 3.25rem;
	font-size: 1.125rem !important;
}
.wc-block-checkout__actions_row { gap: 1rem; flex-wrap: wrap; }
.wc-block-components-checkout-return-to-cart-button { color: var(--rk-teal-dark); }
.wc-block-cart-item__product .wc-block-components-product-name { color: var(--rk-navy); font-weight: 700; text-decoration: none; }
.wc-block-components-product-name:hover { text-decoration: underline; }
.wc-block-components-express-payment__title { color: var(--rk-navy); }

/* Mini-cart drawer */
.wc-block-mini-cart__drawer .wc-block-mini-cart__title { color: var(--rk-navy); font-family: var(--wp--preset--font-family--heading); }
.wc-block-mini-cart__footer-actions .wc-block-components-button { flex: 1 1 auto; }

/* ---------- Single product ---------- */
.rk-product .wp-block-columns { gap: clamp(1.5rem, 4vw, 3.5rem); }
.rk-product .wp-block-post-title { font-size: var(--wp--preset--font-size--x-large); margin: 0 0 .5rem; }
.rk-product .wp-block-woocommerce-product-price { font-size: 1.75rem !important; margin: .25rem 0 1rem; }
.rk-product .woocommerce-product-gallery__image img,
.rk-product .wp-block-woocommerce-product-image-gallery img { border-radius: var(--rk-radius); border: 1px solid var(--rk-border); }
.rk-product .woocommerce-product-gallery .flex-control-thumbs { display: flex; gap: .5rem; margin-top: .75rem !important; padding: 0; list-style: none; }
.rk-product .woocommerce-product-gallery .flex-control-thumbs li { width: 22% !important; float: none !important; }
.rk-product .woocommerce-product-gallery .flex-control-thumbs img { border-radius: 6px; opacity: .7; }
.rk-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.rk-product .woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; outline: 2px solid var(--rk-teal); }
.rk-product .wp-block-post-excerpt { font-size: var(--wp--preset--font-size--medium); }
.rk-product form.cart { display: flex; flex-wrap: wrap; gap: .75rem; align-items: stretch; margin: 1.25rem 0; }
.rk-product form.cart .quantity .qty { min-height: 3.25rem; width: 4.5rem; text-align: center; }
.rk-product .single_add_to_cart_button { min-height: 3.25rem; padding: .8rem 2rem !important; font-size: 1.125rem !important; flex: 1 1 14rem; }
.rk-product .wp-block-woocommerce-product-meta { font-size: var(--wp--preset--font-size--small); color: var(--rk-muted); border-top: 1px solid var(--rk-border); padding-top: 1rem; }
.rk-buy-points { list-style: none; padding: 0 !important; margin: 1rem 0; display: grid; gap: .5rem; }
.rk-buy-points li { padding-left: 1.9rem; position: relative; margin: 0; }
.rk-buy-points li::before {
	content: "\2713";
	position: absolute;
	left: 0;
	top: .1em;
	width: 1.3rem;
	height: 1.3rem;
	display: grid;
	place-items: center;
	border-radius: 5px;
	background: var(--rk-teal);
	color: #fff;
	font-size: .75rem;
	font-weight: 700;
}

/* Product tabs (Product Details block) */
.rk-product .woocommerce-tabs { margin-top: var(--wp--preset--spacing--60); }
.rk-product .woocommerce-tabs ul.tabs,
.rk-product .wc-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: .25rem;
	list-style: none;
	padding: 0 !important;
	margin: 0 0 1.5rem !important;
	border-bottom: 2px solid var(--rk-border);
}
.rk-product .wc-tabs li { margin: 0 0 -2px; padding: 0; border: 0; background: none; }
.rk-product .wc-tabs li a { display: block; padding: .75rem 1rem; color: var(--rk-muted); font-weight: 700; text-decoration: none; border-bottom: 3px solid transparent; }
.rk-product .wc-tabs li.active a,
.rk-product .wc-tabs li a:hover { color: var(--rk-navy); border-bottom-color: var(--rk-teal); }
.rk-product .woocommerce-Tabs-panel { max-width: 760px; }
.rk-product .woocommerce-Tabs-panel > h2:first-child { font-size: var(--wp--preset--font-size--large); }
.rk-product .woocommerce-Tabs-panel h4 { margin-top: 1.75rem; }
.rk-product .wp-block-accordion-heading__toggle,
.rk-product .wp-block-woocommerce-accordion-header button { color: var(--rk-navy); font-weight: 700; }
.rk-product .rk-advice-note { margin-top: var(--wp--preset--spacing--60) !important; }

/* Shop header */
.rk-shop .wp-block-query-title { margin: .5rem 0 .5rem; }
.rk-shop-tools { gap: .75rem 1.5rem; margin-top: 1rem; }
.rk-shop-tools .woocommerce-ordering select { border: 1px solid #6B7785; border-radius: 6px; padding: .5rem .75rem; font-size: 1rem; }
.rk-shop .woocommerce-result-count { margin: 0; color: var(--rk-muted); }

/* ---------- Small screens ---------- */
@media (max-width: 781px) {
	.rk-hero .rk-hero-art { display: none; }
	.rk-hero__title { max-width: none; }
}
@media (max-width: 600px) {
	.rk-header .rk-brand .wp-block-site-title { font-size: 1.35rem; }
	.rk-logo-mark svg { width: 30px; height: 30px; }
	.rk-hero .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.rk-hero .wp-block-button { width: 100%; }
	.rk-hero .wp-block-button__link { width: 100%; text-align: center; }
	.rk-header__nav { gap: .25rem .9rem; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* The mini-cart drawer can render inside the navy header: reset its colours. */
.rk-header .wc-block-mini-cart__drawer,
.rk-header .wc-block-components-drawer { color: var(--rk-text); }
.rk-header .wc-block-mini-cart__drawer :is(h1, h2, h3, h4) { color: var(--rk-navy); }
.rk-header .wc-block-mini-cart__drawer a:not(.wc-block-components-button):not(.wp-element-button) { color: var(--rk-teal-dark); }
.rk-header .wc-block-components-drawer__close { color: var(--rk-text); }
.rk-header .wc-block-mini-cart__drawer { --rk-focus: var(--rk-navy); }
