/*
Theme Name: generatepress-cafe24
Theme URI: https://generatepress.com
Template: generatepress
Author: Tom Usborne
Author URI: https://tomusborne.com
Description: GeneratePress is a lightweight WordPress theme built with a focus on speed and usability. Performance is important to us, which is why a fresh GeneratePress install adds less than 10kb (gzipped) to your page size. We take full advantage of the block editor (Gutenberg), which gives you more control over creating your content. If you use page builders, GeneratePress is the right theme for you. It is completely compatible with all major page builders, including Beaver Builder and Elementor. Thanks to our emphasis on WordPress coding standards, we can boast full compatibility with all well-coded plugins, including WooCommerce. GeneratePress is fully responsive, uses valid HTML/CSS, and is translated into over 25 languages by our amazing community of users. A few of our many features include 60+ color controls, powerful dynamic typography, 5 navigation locations, 5 sidebar layouts, dropdown menus (click or hover), and 9 widget areas. Learn more and check out our powerful premium version at https://generatepress.com
*/

/*
 * 280rally visual accessibility tokens
 * Verified with Playwright on 2026-05-28.
 * Keep color decisions here instead of one-off selector patches.
 */
:root {
	--r280-bg: #f7f8f9;
	--r280-surface: #ffffff;
	--r280-surface-muted: #f3f5f7;
	--r280-surface-strong: #e8edf0;
	--r280-text: #111827;
	--r280-text-muted: #475569;
	--r280-text-soft: #64748b;
	--r280-border: #d8e0e6;
	--r280-brand: #006b4f;
	--r280-brand-hover: #00563f;
	--r280-brand-contrast: #ffffff;
	--r280-danger: #b91c1c;
	--r280-disabled-bg: #d6dbe1;
	--r280-disabled-text: #4b5563;
	--r280-focus: #1d4ed8;
}

@media (prefers-color-scheme: dark) {
	:root {
		--r280-bg: #111315;
		--r280-surface: #1b1f22;
		--r280-surface-muted: #242a2e;
		--r280-surface-strong: #2f373d;
		--r280-text: #f3f4f6;
		--r280-text-muted: #d1d5db;
		--r280-text-soft: #b7c0cc;
		--r280-border: #3d464d;
		--r280-brand: #15a579;
		--r280-brand-hover: #20bd8e;
		--r280-brand-contrast: #06130f;
		--r280-danger: #f87171;
		--r280-disabled-bg: #31383e;
		--r280-disabled-text: #c8d0d8;
		--r280-focus: #93c5fd;
	}
}

html,
body {
	background: var(--r280-bg);
	color: var(--r280-text);
}

a {
	color: var(--r280-brand);
}

a:hover,
a:focus {
	color: var(--r280-brand-hover);
}

.site-header,
.inside-header,
.inside-article,
.sidebar .widget,
.site-footer,
.site-info,
.comments-area,
.page-header {
	background: var(--r280-surface);
	color: var(--r280-text);
}

.site-branding,
.site-branding a,
.main-navigation,
.main-navigation a,
.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle,
.main-navigation .menu-bar-items,
.mobile-menu-control-wrapper .menu-toggle {
	color: var(--r280-text);
}

.mobile-menu-control-wrapper .menu-toggle,
.mobile-menu-control-wrapper .menu-toggle:hover,
.mobile-menu-control-wrapper .menu-toggle:focus,
.has-inline-mobile-toggle #site-navigation.toggled {
	background: var(--r280-surface-muted);
	color: var(--r280-text);
	border: 1px solid var(--r280-border);
}

button,
html input[type="button"],
input[type="reset"],
input[type="submit"],
a.button,
a.wp-block-button__link:not(.has-background) {
	background: var(--r280-brand);
	color: var(--r280-brand-contrast);
	border-color: var(--r280-brand);
}

button:hover,
html input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover,
a.button:hover,
a.wp-block-button__link:not(.has-background):hover,
button:focus,
html input[type="button"]:focus,
input[type="reset"]:focus,
input[type="submit"]:focus,
a.button:focus,
a.wp-block-button__link:not(.has-background):focus {
	background: var(--r280-brand-hover);
	color: var(--r280-brand-contrast);
	border-color: var(--r280-brand-hover);
}

button:disabled,
button[disabled],
input[type="button"]:disabled,
input[type="submit"]:disabled,
input[type="reset"]:disabled,
.button.disabled,
.button[aria-disabled="true"] {
	background: var(--r280-disabled-bg);
	color: var(--r280-disabled-text);
	border-color: var(--r280-border);
	opacity: 1;
	cursor: not-allowed;
}

input,
textarea,
select {
	background: var(--r280-surface);
	color: var(--r280-text);
	border-color: var(--r280-border);
}

input:focus,
textarea:focus,
select:focus,
button:focus,
a:focus {
	outline: 2px solid var(--r280-focus);
	outline-offset: 2px;
}

.kboard-list,
.kboard-list table,
.kboard-document-wrap,
.kboard-comments,
.kboard-form,
.kboard-control,
.kboard-pagination,
.kboard-search,
.kboard-default-poweredby,
.kboard-document-action {
	background: var(--r280-surface);
	color: var(--r280-text);
	border-color: var(--r280-border);
}

.kboard-list table th,
.kboard-list table td,
.kboard-document-wrap .kboard-title,
.kboard-document-wrap .kboard-detail,
.kboard-comments,
.kboard-comments textarea,
.kboard-form input,
.kboard-form textarea,
.kboard-form select {
	color: var(--r280-text);
	border-color: var(--r280-border);
}

.kboard-list table th,
.kboard-document-wrap .kboard-detail {
	background: var(--r280-surface-muted);
	color: var(--r280-text-muted);
}

.kboard-button-action,
.kboard-button-print,
.kboard-button-like,
.kboard-button-small,
.kboard-control .kboard-button-small,
.kboard-document-action button {
	background: var(--r280-surface-muted);
	color: var(--r280-text);
	border: 1px solid var(--r280-border);
}

.kboard-button-action:hover,
.kboard-button-action:focus,
.kboard-button-small:hover,
.kboard-button-small:focus,
.kboard-control .kboard-button-small:hover,
.kboard-control .kboard-button-small:focus,
.kboard-document-action button:hover,
.kboard-document-action button:focus {
	background: var(--r280-surface-strong);
	color: var(--r280-text);
}

.kboard-button-like {
	color: var(--r280-danger);
}

.kboard-default-poweredby,
.kboard-default-poweredby a,
.kboard-poweredby,
.kboard-poweredby a {
	color: var(--r280-text-soft);
}

/*
 * 280rally color policy v2
 * The policy fixes text roles first, then maps theme, KBoard, and plugin output
 * to those variables. Do not override individual colors outside this block unless
 * a new role token is added here first.
 */
:root {
	color-scheme: light;

	--r280-color-bg: #f7f8f9;
	--r280-color-surface: #ffffff;
	--r280-color-surface-muted: #f3f5f7;
	--r280-color-surface-strong: #e8edf0;
	--r280-color-surface-inverse: #111827;
	--r280-color-border: #d8e0e6;
	--r280-color-border-strong: #aebbc7;

	--r280-color-text-body: #111827;
	--r280-color-text-secondary: #334155;
	--r280-color-text-link: #006b4f;
	--r280-color-text-link-hover: #004c3a;
	--r280-color-text-button: #ffffff;
	--r280-color-text-input: #111827;
	--r280-color-text-placeholder: #6b7280;
	--r280-color-text-disabled: #4b5563;
	--r280-color-text-danger: #b91c1c;

	--r280-color-brand: #006b4f;
	--r280-color-brand-hover: #00563f;
	--r280-color-disabled-bg: #e5e7eb;
	--r280-color-focus: #1d4ed8;

	--r280-bg: var(--r280-color-bg);
	--r280-surface: var(--r280-color-surface);
	--r280-surface-muted: var(--r280-color-surface-muted);
	--r280-surface-strong: var(--r280-color-surface-strong);
	--r280-text: var(--r280-color-text-body);
	--r280-text-muted: var(--r280-color-text-secondary);
	--r280-text-soft: var(--r280-color-text-placeholder);
	--r280-border: var(--r280-color-border);
	--r280-brand: var(--r280-color-brand);
	--r280-brand-hover: var(--r280-color-brand-hover);
	--r280-brand-contrast: var(--r280-color-text-button);
	--r280-danger: var(--r280-color-text-danger);
	--r280-disabled-bg: var(--r280-color-disabled-bg);
	--r280-disabled-text: var(--r280-color-text-disabled);
	--r280-focus: var(--r280-color-focus);

	--contrast: var(--r280-color-text-body);
	--contrast-2: var(--r280-color-text-secondary);
	--contrast-3: var(--r280-color-text-disabled);
	--base: var(--r280-color-surface-muted);
	--base-2: var(--r280-color-bg);
	--base-3: var(--r280-color-surface);
	--accent: var(--r280-color-text-link);
}

@media (prefers-color-scheme: dark) {
	:root {
		color-scheme: dark;

		--r280-color-bg: #121417;
		--r280-color-surface: #1f2328;
		--r280-color-surface-muted: #2a3036;
		--r280-color-surface-strong: #343b43;
		--r280-color-surface-inverse: #f9fafb;
		--r280-color-border: #4b5563;
		--r280-color-border-strong: #64748b;

		--r280-color-text-body: #f3f4f6;
		--r280-color-text-secondary: #d1d5db;
		--r280-color-text-link: #6ee7b7;
		--r280-color-text-link-hover: #a7f3d0;
		--r280-color-text-button: #ffffff;
		--r280-color-text-input: #f9fafb;
		--r280-color-text-placeholder: #aab4c0;
		--r280-color-text-disabled: #c8d0d8;
		--r280-color-text-danger: #fca5a5;

		--r280-color-brand: #047857;
		--r280-color-brand-hover: #03684a;
		--r280-color-disabled-bg: #3a424a;
		--r280-color-focus: #93c5fd;

		--contrast: var(--r280-color-text-body);
		--contrast-2: var(--r280-color-text-secondary);
		--contrast-3: var(--r280-color-text-disabled);
		--base: var(--r280-color-surface-muted);
		--base-2: var(--r280-color-bg);
		--base-3: var(--r280-color-surface);
		--accent: var(--r280-color-text-link);
	}
}

html,
body,
.site,
.site-content,
.container,
.inside-article,
.comments-area,
.page-header,
.sidebar .widget,
.footer-widgets,
.site-footer,
.site-info {
	background-color: var(--r280-color-bg);
	color: var(--r280-color-text-body);
}

.inside-article,
.comments-area,
.page-header,
.sidebar .widget,
.footer-widgets,
.site-info,
.site-header,
.inside-header,
.main-navigation,
.main-navigation ul ul {
	background-color: var(--r280-color-surface);
	color: var(--r280-color-text-body);
	border-color: var(--r280-color-border);
}

body,
p,
li,
td,
th,
dt,
dd,
figcaption,
.entry-content,
.entry-summary,
.entry-title,
.page-title,
.main-title,
.main-title a,
.site-branding,
.site-branding a {
	color: var(--r280-color-text-body);
}

small,
.entry-meta,
.site-description,
.widget .post-date,
.comment-meta,
.wp-caption-text,
.kboard-date,
.kboard-list-date,
.kboard-list-user,
.kboard-list-view,
.kboard-list-vote {
	color: var(--r280-color-text-secondary);
}

a,
.entry-content a,
.widget a,
.kboard a {
	color: var(--r280-color-text-link);
}

a:hover,
a:focus,
.entry-content a:hover,
.entry-content a:focus,
.widget a:hover,
.widget a:focus,
.kboard a:hover,
.kboard a:focus {
	color: var(--r280-color-text-link-hover);
}

input,
textarea,
select,
.kboard-search input,
.kboard-search select,
.kboard-form input,
.kboard-form textarea,
.kboard-form select,
.kboard-comments textarea {
	background-color: var(--r280-color-surface);
	color: var(--r280-color-text-input);
	border-color: var(--r280-color-border);
}

input::placeholder,
textarea::placeholder,
.kboard-form input::placeholder,
.kboard-form textarea::placeholder,
.kboard-comments textarea::placeholder {
	color: var(--r280-color-text-placeholder);
	opacity: 1;
}

button,
html input[type="button"],
input[type="reset"],
input[type="submit"],
a.button,
a.wp-block-button__link:not(.has-background),
.button,
.kboard-control a,
.kboard-button-small,
.kboard-button-action,
.kboard-button-print,
.kboard-document-action button,
.kboard-comments button {
	background-color: var(--r280-color-brand);
	color: var(--r280-color-text-button);
	border-color: var(--r280-color-brand);
}

button:hover,
button:focus,
html input[type="button"]:hover,
html input[type="button"]:focus,
input[type="reset"]:hover,
input[type="reset"]:focus,
input[type="submit"]:hover,
input[type="submit"]:focus,
a.button:hover,
a.button:focus,
a.wp-block-button__link:not(.has-background):hover,
a.wp-block-button__link:not(.has-background):focus,
.button:hover,
.button:focus,
.kboard-control a:hover,
.kboard-control a:focus,
.kboard-button-small:hover,
.kboard-button-small:focus,
.kboard-button-action:hover,
.kboard-button-action:focus,
.kboard-button-print:hover,
.kboard-button-print:focus,
.kboard-document-action button:hover,
.kboard-document-action button:focus,
.kboard-comments button:hover,
.kboard-comments button:focus {
	background-color: var(--r280-color-brand-hover);
	color: var(--r280-color-text-button);
	border-color: var(--r280-color-brand-hover);
}

button:disabled,
button[disabled],
input:disabled,
textarea:disabled,
select:disabled,
input[type="button"]:disabled,
input[type="submit"]:disabled,
input[type="reset"]:disabled,
.button.disabled,
.button[aria-disabled="true"],
[aria-disabled="true"] {
	background-color: var(--r280-color-disabled-bg);
	color: var(--r280-color-text-disabled);
	border-color: var(--r280-color-border);
	opacity: 1;
	cursor: not-allowed;
}

input:focus,
textarea:focus,
select:focus,
button:focus,
a:focus {
	outline: 2px solid var(--r280-color-focus);
	outline-offset: 2px;
}

.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle,
.main-navigation .menu-bar-items,
.mobile-menu-control-wrapper .menu-toggle {
	color: var(--r280-color-text-body);
}

.main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a,
.main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a,
.main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"]) > a,
.main-navigation .menu-bar-item:hover > a,
.main-navigation .menu-bar-item.sfHover > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
	color: var(--r280-color-text-link);
}

.mobile-menu-control-wrapper .menu-toggle,
.mobile-menu-control-wrapper .menu-toggle:hover,
.mobile-menu-control-wrapper .menu-toggle:focus,
.has-inline-mobile-toggle #site-navigation.toggled {
	background-color: var(--r280-color-surface-muted);
	color: var(--r280-color-text-body);
	border: 1px solid var(--r280-color-border);
}

#kboard-default-list,
#kboard-default-list .kboard-list,
#kboard-default-list .kboard-list table,
#kboard-default-document,
#kboard-default-document .kboard-document-wrap,
#kboard-default-document .kboard-document-content,
#kboard-default-document .kboard-content,
#kboard-default-editor,
.kboard,
.kboard-list,
.kboard-list table,
.kboard-document-wrap,
.kboard-document-content,
.kboard-content,
.kboard-comments,
.kboard-comments-form,
.kboard-form,
.kboard-control,
.kboard-pagination,
.kboard-search,
.kboard-default-poweredby,
.kboard-poweredby,
.kboard-document-action {
	background-color: var(--r280-color-surface) !important;
	color: var(--r280-color-text-body) !important;
	border-color: var(--r280-color-border) !important;
}

#kboard-default-list .kboard-list table th,
#kboard-default-list .kboard-list table td,
#kboard-default-document .kboard-title,
#kboard-default-document .kboard-detail,
#kboard-default-document .kboard-document-action,
#kboard-default-document .kboard-content,
#kboard-default-document .kboard-content p,
#kboard-default-document .kboard-content div,
#kboard-default-document .kboard-content span,
#kboard-default-document .kboard-content strong,
#kboard-default-document .kboard-content em,
.kboard-list table th,
.kboard-list table td,
.kboard-list-title,
.kboard-list-title a,
.kboard-document-wrap .kboard-title,
.kboard-document-wrap .kboard-title h1,
.kboard-document-wrap .kboard-detail,
.kboard-document-wrap .kboard-detail span,
.kboard-comments,
.kboard-comments p,
.kboard-comments span,
.kboard-comments textarea,
.kboard-form input,
.kboard-form textarea,
.kboard-form select {
	color: var(--r280-color-text-body) !important;
	border-color: var(--r280-color-border) !important;
}

#kboard-default-list .kboard-list-header,
#kboard-default-list .kboard-list table th,
#kboard-default-document .kboard-detail,
.kboard-list-header,
.kboard-list table th,
.kboard-document-wrap .kboard-detail,
.kboard-comments .comments-list .comments-item,
.kboard-comments-form,
.kboard-search {
	background-color: var(--r280-color-surface-muted) !important;
	color: var(--r280-color-text-secondary) !important;
	border-color: var(--r280-color-border) !important;
}

.kboard-list-user,
.kboard-list-date,
.kboard-list-view,
.kboard-list-vote,
.kboard-list-category,
.kboard-list-summary,
.kboard-document-wrap .kboard-detail,
.kboard-document-wrap .kboard-detail span,
.kboard-comments .comments-list .comments-date,
.kboard-comments .comments-list .comments-vote,
.kboard-poweredby,
.kboard-poweredby a,
.kboard-default-poweredby,
.kboard-default-poweredby a {
	color: var(--r280-color-text-secondary) !important;
}

#kboard-default-list .kboard-list table tr.kboard-list-notice,
#kboard-default-list .kboard-list table tr.kboard-list-selected,
#kboard-default-list .kboard-list table thead,
#kboard-default-list .kboard-list table thead tr,
#kboard-default-list .kboard-list table thead th,
#kboard-default-list .kboard-list table tbody tr,
#kboard-default-list .kboard-list table tr,
#kboard-default-list .kboard-list table th,
#kboard-default-list .kboard-list table td,
#kboard-default-list .kboard-list table tr.kboard-list-notice td,
#kboard-default-list .kboard-list table tr.kboard-list-selected td,
.kboard-list-notice,
.kboard-list-selected {
	background-color: var(--r280-color-surface-muted) !important;
	color: var(--r280-color-text-body) !important;
}

#kboard-default-list .kboard-list table tr.kboard-list-notice *,
#kboard-default-list .kboard-list table tr.kboard-list-selected *,
.kboard-list-notice *,
.kboard-list-selected * {
	color: var(--r280-color-text-body) !important;
}

#kboard-default-list .kboard-list table thead,
#kboard-default-list .kboard-list table thead tr,
#kboard-default-list .kboard-list table thead th,
.kboard-list table thead,
.kboard-list table thead tr,
.kboard-list table thead th {
	background-color: var(--r280-color-surface-muted) !important;
	color: var(--r280-color-text-body) !important;
	border-color: var(--r280-color-border) !important;
}

#kboard-default-list .kboard-list .kboard-comments-count,
.kboard-list .kboard-comments-count,
.kboard-comments-count {
	color: var(--r280-color-text-link) !important;
}

#kboard-default-list .kboard-total-count,
#kboard-default-list .kboard-mobile-contents,
#kboard-default-list .contents-separator,
.kboard-total-count,
.kboard-mobile-contents,
.contents-separator {
	color: var(--r280-color-text-secondary) !important;
}

#kboard-default-list .kboard-list table tr.kboard-list-notice .kboard-mobile-contents,
#kboard-default-list .kboard-list table tr.kboard-list-selected .kboard-mobile-contents,
.kboard-list-notice .kboard-mobile-contents,
.kboard-list-selected .kboard-mobile-contents {
	color: var(--r280-color-text-secondary) !important;
}

#kboard-default-document .detail-name,
#kboard-default-document .detail-value,
.kboard-document-wrap .detail-name,
.kboard-document-wrap .detail-value,
.kboard-detail .detail-name,
.kboard-detail .detail-value {
	color: var(--r280-color-text-secondary) !important;
}

#kboard-default-document .detail-value,
.kboard-document-wrap .detail-value,
.kboard-detail .detail-value {
	color: var(--r280-color-text-body) !important;
}

#kboard-default-document .kboard-document-navi,
#kboard-default-document .kboard-document-navi a,
#kboard-default-document .kboard-prev-document,
#kboard-default-document .kboard-next-document,
.kboard-document-navi,
.kboard-document-navi a,
.kboard-prev-document,
.kboard-next-document {
	background-color: var(--r280-color-surface-muted) !important;
	color: var(--r280-color-text-body) !important;
	border-color: var(--r280-color-border) !important;
}

#kboard-default-document .kboard-document-navi *,
.kboard-document-navi *,
.kboard-prev-document *,
.kboard-next-document * {
	color: var(--r280-color-text-body) !important;
}

.kboard-button-action,
.kboard-button-print,
.kboard-button-like,
.kboard-button-unlike,
.kboard-button-small,
.kboard-control .kboard-button-small,
.kboard-control a.kboard-button-small,
.kboard-document-action button {
	background-color: var(--r280-color-surface-muted) !important;
	color: var(--r280-color-text-body) !important;
	border: 1px solid var(--r280-color-border) !important;
}

.kboard-button-action:hover,
.kboard-button-action:focus,
.kboard-button-print:hover,
.kboard-button-print:focus,
.kboard-button-like:hover,
.kboard-button-like:focus,
.kboard-button-unlike:hover,
.kboard-button-unlike:focus,
.kboard-button-small:hover,
.kboard-button-small:focus,
.kboard-control .kboard-button-small:hover,
.kboard-control .kboard-button-small:focus,
.kboard-document-action button:hover,
.kboard-document-action button:focus {
	background-color: var(--r280-color-surface-strong) !important;
	color: var(--r280-color-text-body) !important;
	border-color: var(--r280-color-border-strong) !important;
}

.kboard-button-like .kboard-button-count,
.kboard-button-unlike .kboard-button-count,
.kboard-button-like,
.kboard-button-unlike {
	color: var(--r280-color-text-body) !important;
}
