/**
 * Color Variables Application
 * Maps theme colors via CSS custom properties set dynamically by the Customizer.
 * All colors reference --scheme-N-* canonical variables.
 *
 * @package Mestariteema
 */

/* ============================================
   Header Colors
   ============================================ */
.site-header {
    background-color: rgba(var(--header-bg-rgb, 255, 255, 255), var(--header-bg-alpha, 1));
    transition: background-color 0.3s ease;
}

.site-title a {
    color: var(--header-text, #000000);
}

.main-navigation a {
    color: var(--nav-link-color);
}

.site-title a:hover {
    color: var(--nav-hover-color, #333333);
}

.main-navigation a:hover {
    color: var(--nav-hover-color);
}

/* Mobile menu panel — link colors follow panel color scheme, not header nav */
@media screen and (max-width: 768px) {
    body:not(.nav-hamburger) .main-navigation.toggled a:not(.mobile-header-cta),
    body:not(.nav-hamburger) .main-navigation.is-mobile-drilldown .mobile-nav-panel-link,
    body:not(.nav-hamburger) .main-navigation.is-mobile-drilldown .mobile-nav-chevron,
    body:not(.nav-hamburger) .main-navigation.is-mobile-drilldown .mobile-nav-back {
        color: var(--mobile-overlay-text, var(--nav-link-color));
    }

    body:not(.nav-hamburger) .main-navigation.toggled a:not(.mobile-header-cta):hover,
    body:not(.nav-hamburger) .main-navigation.toggled a:not(.mobile-header-cta):focus,
    body:not(.nav-hamburger) .main-navigation.is-mobile-drilldown .mobile-nav-panel-link:hover,
    body:not(.nav-hamburger) .main-navigation.is-mobile-drilldown .mobile-nav-panel-link:focus {
        color: var(--mobile-overlay-hover-text, var(--nav-hover-color));
    }

    body:not(.nav-hamburger) .main-navigation.toggled .current-menu-item > a,
    body:not(.nav-hamburger) .main-navigation.toggled .current-menu-parent > a {
        color: var(--mobile-overlay-text, var(--nav-active-color));
    }
}

.nav-hamburger .main-navigation.toggled a:not(.mobile-header-cta),
.nav-hamburger .main-navigation.toggled .mobile-nav-panel-link,
.nav-hamburger .main-navigation.toggled .mobile-nav-chevron,
.nav-hamburger .main-navigation.toggled .mobile-nav-back {
    color: var(--mobile-overlay-text, var(--nav-link-color));
}

.nav-hamburger .main-navigation.toggled a:not(.mobile-header-cta):hover,
.nav-hamburger .main-navigation.toggled a:not(.mobile-header-cta):focus,
.nav-hamburger .main-navigation.toggled .mobile-nav-panel-link:hover,
.nav-hamburger .main-navigation.toggled .mobile-nav-panel-link:focus {
    color: var(--mobile-overlay-hover-text, var(--nav-hover-color));
}

.header-social .social-icon {
    color: var(--header-text);
}

.header-social .social-icon:hover {
    color: var(--nav-hover-color);
}

.header-cta {
    background: var(--header-cta-bg);
    color: var(--header-cta-color);
    border-color: var(--header-cta-border-color);
}

.header-cta:hover {
    background: var(--header-cta-hover-bg);
    border-color: var(--header-cta-hover-bg);
    color: var(--header-cta-hover-color);
}

.mobile-menu-toggle .line {
    background-color: var(--header-text);
}

/* ============================================
   Split Content Block Colors
   ============================================ */
.site-content .split-column h1,
.site-content .split-column h2,
.site-content .split-column h3,
.site-content .split-column h4,
.site-content .split-column h5,
.site-content .split-column h6 {
    color: inherit;
}

/* :where() keeps the old specificity; consent placeholders set their own white text */
.site-content .split-column p:not(:where(.kncc-iframe-placeholder p)),
.site-content .split-column .split-content-area {
    color: inherit;
}

/* ============================================
   Footer Colors
   ============================================ */
.site-footer {
    background-color: var(--footer-bg);
    color: var(--footer-text);
}

.footer-navigation a {
    color: var(--footer-link);
}

.footer-navigation a:hover {
    color: var(--footer-link-hover);
}

.site-footer .footer-cta-heading,
.site-footer .footer-column .widget-title,
.site .site-footer .footer-column h1,
.site .site-footer .footer-column h2,
.site .site-footer .footer-column h3,
.site .site-footer .footer-column h4,
.site .site-footer .footer-column h5,
.site .site-footer .footer-column h6 {
    color: var(--footer-heading);
}

/* ============================================
   Single Post Colors
   ============================================ */
.single .entry-title {
    color: var(--scheme-heading, var(--scheme-1-heading));
}

.single .entry-meta {
    color: var(--scheme-text, var(--scheme-1-text));
}

.single .entry-meta span::before {
    background: var(--scheme-accent, var(--scheme-1-accent));
}

.single:not(.mestari-single-layout--full-width) .entry-content {
    color: var(--scheme-text, var(--scheme-1-text));
}

.single:not(.mestari-single-layout--full-width) .entry-content h2:not(.has-text-color),
.single:not(.mestari-single-layout--full-width) .entry-content h3:not(.has-text-color),
.single:not(.mestari-single-layout--full-width) .entry-content h4:not(.has-text-color) {
    color: var(--scheme-heading, var(--scheme-1-heading));
}

.single:not(.mestari-single-layout--full-width) .entry-content a:not(.has-text-color) {
    color: var(--scheme-accent, var(--scheme-1-accent));
}

.single:not(.mestari-single-layout--full-width) .entry-content a:not(.has-text-color):hover {
    color: var(--scheme-accent-hover, var(--scheme-1-accent-hover));
}

.single:not(.mestari-single-layout--full-width) .entry-content blockquote,
.single:not(.mestari-single-layout--full-width) .entry-content .wp-block-quote {
    background: none;
    color: var(--scheme-text, var(--scheme-1-text));
}

.single .entry-footer a {
    color: var(--scheme-text, var(--scheme-1-text));
}

.single .entry-footer a:hover {
    color: var(--scheme-accent-hover, var(--scheme-1-accent-hover));
}

.single .entry-footer .edit-link a {
    color: var(--scheme-accent, var(--scheme-1-accent));
}

.single .entry-footer .tags-links a {
    color: var(--scheme-text, var(--scheme-1-text));
}

.single .entry-footer .tags-links a:hover,
.single .entry-footer .tags-links a:focus-visible {
    color: var(--scheme-accent, var(--scheme-1-accent));
}

/* Share Buttons */
.mestari-share-label {
    color: var(--scheme-text, var(--scheme-1-text));
}

/* Author Box */
.mestari-author-label {
    color: var(--scheme-text, var(--scheme-1-text));
}

.mestari-author-name {
    color: var(--scheme-heading, var(--scheme-1-heading));
}

.mestari-author-bio {
    color: var(--scheme-text, var(--scheme-1-text));
}

.mestari-author-profile__label,
.mestari-author-profile__count,
.mestari-author-profile__bio {
    color: var(--scheme-text, var(--scheme-1-text));
}

.mestari-author-profile__name {
    color: var(--scheme-heading, var(--scheme-1-heading));
}

.mestari-author-links__website {
    color: var(--scheme-accent, var(--scheme-1-accent));
}

.mestari-author-links__website:hover {
    color: var(--scheme-accent-hover, var(--scheme-1-accent-hover));
}

.mestari-author-links__icon {
    color: var(--scheme-text, var(--scheme-1-text));
    background: transparent;
}

.mestari-author-links__icon:hover {
    color: var(--scheme-accent, var(--scheme-1-accent));
    background: transparent;
}

.mestari-author-posts-link {
    color: var(--scheme-accent, var(--scheme-1-accent));
}

.mestari-author-posts-link:hover {
    color: var(--scheme-accent-hover, var(--scheme-1-accent-hover));
}

/* Post Navigation */
.post-navigation {
    color: var(--scheme-text, var(--scheme-1-text));
}

.post-navigation a {
    color: var(--scheme-heading, var(--scheme-1-heading));
    text-decoration: none;
}

.post-navigation .nav-direction {
    color: var(--scheme-text, var(--scheme-1-text));
}

.post-navigation .nav-title {
    color: var(--scheme-heading, var(--scheme-1-heading));
}

/* Comments */
.single .comments-title,
.single .comment-reply-title {
    color: var(--scheme-heading, var(--scheme-1-heading));
}

.single .comments-area .comment-body,
.single .comments-area .comment-list .children .comment-body {
    color: var(--scheme-text, var(--scheme-1-text));
}

.single .comment-author-name,
.single .comment-author-name a,
.single .comment-author-handle,
.single .comment-date,
.single .comment-content,
.single .comment-replies-label,
.single .comment-actions a,
.single .comment-badge {
    color: var(--scheme-text, var(--scheme-1-text));
}

.single .comment-author-name a:hover,
.single .comment-date:hover,
.single .comment-actions a:hover {
    color: var(--scheme-text, var(--scheme-1-text));
    opacity: 0.85;
}

.single .mestari-comment-form .logged-in-as a {
    color: var(--scheme-accent, var(--scheme-1-accent));
}

.single .mestari-comment-form .logged-in-as a:hover {
    color: var(--scheme-accent-hover, var(--scheme-1-accent-hover));
}

/* ============================================
   Archive & Blog Colors
   ============================================ */
.blog-archive .page-title {
    color: var(--scheme-1-heading);
}

.blog-archive .archive-description {
    color: var(--scheme-1-text);
}

.blog-archive .mestari-card{
    background: var(--mestari-blog-card-bg, var(--scheme-bg, var(--mestari-blog-area-bg, var(--scheme-1-bg))));
}

.blog-archive .mestari-card .mestari-card-thumb{
    background: var(--mestari-blog-card-bg, var(--scheme-bg, var(--mestari-blog-area-bg, var(--scheme-1-bg))));
}

.blog-archive .mestari-card .mestari-card-meta{
    color: var(--scheme-text, var(--scheme-1-text));
}

.blog-archive .mestari-card .mestari-card-title a{
    color: var(--scheme-heading, var(--scheme-1-heading));
}

.blog-archive .mestari-card .mestari-card-title a:hover {
    color: var(--scheme-accent-hover, var(--scheme-1-accent-hover));
}

.blog-archive .mestari-card .mestari-card-excerpt{
    color: var(--scheme-text, var(--scheme-1-text));
}

.blog-archive .mestari-card .mestari-card-link{
    color: var(--scheme-accent, var(--scheme-1-accent));
}

.blog-archive .mestari-card .mestari-card-link:hover {
    color: var(--scheme-accent-hover, var(--scheme-1-accent-hover));
}

/* Blog Sidebar */
.mestari-blog-sidebar .widget {
    background: transparent;
}

.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget-title,
.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget > h2,
.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget .wp-block-heading {
    color: var(--scheme-heading, var(--scheme-1-heading));
}

.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget .wp-block-search__label,
.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget .search-form label {
    color: var(--scheme-heading, var(--scheme-1-heading));
}

.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget .wp-block-search__input,
.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget .search-field {
    color: var(--scheme-text, var(--scheme-1-text));
    background: var(--scheme-bg, var(--scheme-1-bg));
    border-color: color-mix(in srgb, var(--scheme-text, var(--scheme-1-text)) 18%, transparent);
}

.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget .wp-block-search__input:focus,
.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget .search-field:focus {
    border-color: var(--scheme-accent, var(--scheme-1-accent));
}

.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget .wp-block-search__button,
.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget .wp-block-search__button.wp-element-button,
.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget .search-submit {
    background: var(--scheme-accent, var(--scheme-1-accent));
    color: var(--scheme-accent-text, var(--scheme-1-accent-text));
    border-color: var(--scheme-accent, var(--scheme-1-accent));
}

.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget ul li a,
.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget ol li a,
.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget p {
    color: var(--scheme-text, var(--scheme-1-text));
}

.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget ul li,
.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget ol li {
    color: var(--scheme-text, var(--scheme-1-text));
}

.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget ul li a:hover,
.single-post .mestari-post-sidebar.mestari-blog-sidebar .widget ol li a:hover {
    color: var(--scheme-accent, var(--scheme-1-accent));
}

.mestari-blog-sidebar .widget-title,
.mestari-blog-sidebar .widget > h2,
.mestari-blog-sidebar .widget .wp-block-heading {
    color: var(--scheme-heading, var(--scheme-1-heading));
}

.mestari-blog-sidebar .widget .wp-block-search__label,
.mestari-blog-sidebar .widget .search-form label {
    color: var(--scheme-heading, var(--scheme-1-heading));
}

.mestari-blog-sidebar .widget .wp-block-search__input,
.mestari-blog-sidebar .widget .search-field {
    color: var(--scheme-text, var(--scheme-1-text));
    background: var(--scheme-bg, var(--scheme-1-bg));
    border-color: var(--scheme-border, var(--scheme-1-border));
}

.mestari-blog-sidebar .widget .wp-block-search__input:focus,
.mestari-blog-sidebar .widget .search-field:focus {
    border-color: var(--scheme-accent, var(--scheme-1-accent));
}

.mestari-blog-sidebar .widget .wp-block-search__button,
.mestari-blog-sidebar .widget .wp-block-search__button.wp-element-button,
.mestari-blog-sidebar .widget .search-submit {
    background: var(--scheme-accent, var(--scheme-1-accent));
    color: var(--scheme-accent-text, var(--scheme-1-accent-text));
    border-color: var(--scheme-accent, var(--scheme-1-accent));
}

.mestari-blog-sidebar .widget .wp-block-search__button:hover,
.mestari-blog-sidebar .widget .wp-block-search__button.wp-element-button:hover,
.mestari-blog-sidebar .widget .search-submit:hover {
    background: var(--scheme-accent-hover, var(--scheme-1-accent-hover));
    border-color: var(--scheme-accent-hover, var(--scheme-1-accent-hover));
    color: var(--scheme-accent-text, var(--scheme-1-accent-text));
}

.mestari-blog-sidebar .widget ul li,
.mestari-blog-sidebar .widget ol li {
    color: var(--scheme-text, var(--scheme-1-text));
}

.mestari-blog-sidebar .widget ul li a {
    color: var(--scheme-text, var(--scheme-1-text));
}

.mestari-blog-sidebar .widget ul li a:hover {
    color: var(--scheme-accent, var(--scheme-1-accent));
}

.mestari-blog-sidebar .widget p {
    color: var(--scheme-text, var(--scheme-1-text));
}

.mestari-blog-sidebar .widget ol li a {
    color: var(--scheme-text, var(--scheme-1-text));
}

.mestari-blog-sidebar .widget ol li a:hover {
    color: var(--scheme-accent, var(--scheme-1-accent));
}

.mestari-blog-sidebar .widget .tagcloud a,
.mestari-blog-sidebar .widget .wp-block-tag-cloud a {
    color: var(--scheme-text, var(--scheme-1-text));
}

.mestari-blog-sidebar .widget .tagcloud a:hover,
.mestari-blog-sidebar .widget .wp-block-tag-cloud a:hover {
    background: var(--scheme-accent, var(--scheme-1-accent));
    color: var(--scheme-accent-text, var(--scheme-1-accent-text));
}

.mestari-blog-sidebar .widget select {
    color: var(--scheme-text, var(--scheme-1-text));
}

/* Blog Card Categories */
.blog-archive .mestari-card .mestari-card-cats{
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 8px;
}

.blog-archive .mestari-card .mestari-card-cat{
    display: inline-block;
    padding: 2px 8px;
    font-size: 0.7em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    text-decoration: none;
    border-radius: 3px;
    background: var(--scheme-accent, var(--scheme-1-accent));
    color: var(--scheme-accent-text, var(--scheme-1-accent-text));
    transition: all 0.3s ease;
}

.blog-archive .mestari-card .mestari-card-cat:hover {
    background: var(--scheme-accent-hover, var(--scheme-1-accent-hover));
    color: var(--scheme-accent-text, var(--scheme-1-accent-text));
}

/* Blog grid area color scheme */
.blog-archive[data-color-scheme] .mestari-blog-category-filter__button {
    background: var(--scheme-bg);
    color: var(--scheme-text);
    border-color: color-mix(in srgb, var(--scheme-text) 18%, transparent);
}

.blog-archive[data-color-scheme] .mestari-blog-category-filter__button:hover,
.blog-archive[data-color-scheme] .mestari-blog-category-filter__button.is-active {
    background: var(--scheme-accent);
    border-color: var(--scheme-accent);
    color: var(--scheme-accent-text);
}

/* Pagination */
.pagination a.page-numbers,
.pagination span.page-numbers {
    background: var(--scheme-1-bg);
    color: var(--scheme-1-heading);
}

.pagination a.page-numbers:hover,
.pagination span.page-numbers.current {
    background: var(--scheme-1-accent);
    color: var(--scheme-1-accent-text);
    border-color: var(--scheme-1-accent);
}

.blog-archive[data-color-scheme] .pagination a.page-numbers,
.blog-archive[data-color-scheme] .pagination span.page-numbers {
    background: var(--scheme-bg);
    color: var(--scheme-heading);
    border-color: var(--scheme-bg);
}

.blog-archive[data-color-scheme] .pagination a.page-numbers:hover,
.blog-archive[data-color-scheme] .pagination span.page-numbers.current {
    background: var(--scheme-accent);
    color: var(--scheme-accent-text);
    border-color: var(--scheme-accent);
}

/* ============================================
   General Elements
   ============================================ */
body {
    color: var(--scheme-1-text);
    background-color: var(--scheme-1-bg);
}

.site h1:not(.has-text-color),
.site h2:not(.has-text-color),
.site h3:not(.has-text-color),
.site h4:not(.has-text-color),
.site h5:not(.has-text-color),
.site h6:not(.has-text-color) {
    color: var(--scheme-1-heading);
}

.site-content {
    color: var(--scheme-1-text);
}

.site-content h1:not(.has-text-color),
.site-content h2:not(.has-text-color),
.site-content h3:not(.has-text-color),
.site-content h4:not(.has-text-color),
.site-content h5:not(.has-text-color),
.site-content h6:not(.has-text-color) {
    color: var(--scheme-1-heading);
}

.editor-styles-wrapper h1:not(.has-text-color),
.editor-styles-wrapper h2:not(.has-text-color),
.editor-styles-wrapper h3:not(.has-text-color),
.editor-styles-wrapper h4:not(.has-text-color),
.editor-styles-wrapper h5:not(.has-text-color),
.editor-styles-wrapper h6:not(.has-text-color) {
    color: var(--scheme-1-heading);
}

.editor-styles-wrapper .editor-post-title__input,
.editor-styles-wrapper .editor-post-title__input:focus {
    color: inherit;
}

a {
    color: var(--scheme-1-accent);
    text-underline-offset: 3px;
    text-decoration-thickness: 2px;
    transition: all 0.18s cubic-bezier(0.19, 1, 0.22, 1);
}

a:hover {
    color: var(--scheme-1-accent-hover);
}

svg.external-link-icon {
    display: inline-block;
    width: 12px;
    height: 12px;
    margin-right: 8px;
    margin-left: 0;
    vertical-align: -0.1em;
    flex-shrink: 0;
}

/* Buttons — shape/type from Customizer; colors only when block has no custom colors. */
.button,
.wp-block-button .wp-block-button__link,
.wp-block-button .wp-element-button,
.hero-cta-button,
.content-block-button,
.posts-block-load-more,
.posts-block-show-all {
    padding: var(--btn-padding, 15px 35px);
    font-size: var(--btn-font-size, 15px); /* always px from Customizer */
    font-weight: var(--btn-font-weight, 600);
    text-transform: var(--btn-text-transform, uppercase);
    letter-spacing: var(--btn-letter-spacing, 0.5px);
    border-width: var(--btn-border-width, 2px);
    border-style: solid;
    border-radius: var(--btn-radius, 0);
    max-width: 100%;
    box-sizing: border-box;
    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease,
        box-shadow 0.25s ease,
        transform 0.25s cubic-bezier(0.2, 0.8, 0.2, 1);
    text-decoration: none;
    display: inline-block;
    cursor: pointer;
}

/* Beat WP preset / classic-themes em sizes unless the block sets its own font size. */
.wp-block-button:not([class*="-font-size"]) .wp-block-button__link:not([class*="-font-size"]),
.wp-block-button:not([class*="-font-size"]) .wp-element-button:not([class*="-font-size"]),
.hero-cta-button {
    font-size: var(--btn-font-size, 15px) !important;
}

.button,
.wp-block-button:not(.has-background) .wp-block-button__link:not(.has-background),
.hero-cta-button,
.content-block-button,
.posts-block-load-more,
.posts-block-show-all {
    background: var(--btn-primary-bg);
    border-color: var(--btn-primary-border);
}

.button,
.wp-block-button:not(.has-text-color) .wp-block-button__link:not(.has-text-color),
.hero-cta-button,
.content-block-button,
.posts-block-load-more,
.posts-block-show-all {
    color: var(--btn-primary-text);
}

.button:hover,
.wp-block-button .wp-block-button__link:hover,
.hero-cta-button:hover,
.content-block-button:hover,
.posts-block-load-more:hover,
.posts-block-show-all:hover {
    transform: translateY(-2px);
    /* A soft shadow in the button's own hover color lifts it off the section. */
    box-shadow: 0 10px 22px -10px color-mix(in srgb, var(--btn-primary-hover-bg) 70%, transparent);
    text-decoration: none;
}

.button-secondary:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.hero-cta-secondary:hover,
.content-block-button.secondary:hover {
    box-shadow: 0 10px 22px -10px color-mix(in srgb, var(--btn-secondary-hover-bg) 70%, transparent);
}

/* Pressed: settles back down. */
.button:active,
.wp-block-button .wp-block-button__link:active,
.hero-cta-button:active,
.content-block-button:active,
.posts-block-load-more:active,
.posts-block-show-all:active {
    transform: translateY(0);
    box-shadow: none;
    transition-duration: 0.08s;
}

/* Keyboard focus: a ring outside the button in its own color. */
.button:focus-visible,
.wp-block-button .wp-block-button__link:focus-visible,
.hero-cta-button:focus-visible,
.content-block-button:focus-visible,
.posts-block-load-more:focus-visible,
.posts-block-show-all:focus-visible {
    outline: 2px solid var(--btn-primary-bg);
    outline-offset: 3px;
}

.button-secondary:focus-visible,
.wp-block-button.is-style-outline .wp-block-button__link:focus-visible,
.hero-cta-secondary:focus-visible,
.content-block-button.secondary:focus-visible {
    outline-color: var(--btn-secondary-border);
}

@media (prefers-reduced-motion: reduce) {
    .button,
    .wp-block-button .wp-block-button__link,
    .hero-cta-button,
    .content-block-button,
    .posts-block-load-more,
    .posts-block-show-all {
        transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
    }

    .button:hover,
    .wp-block-button .wp-block-button__link:hover,
    .hero-cta-button:hover,
    .content-block-button:hover,
    .posts-block-load-more:hover,
    .posts-block-show-all:hover {
        transform: none;
    }
}

.button:hover,
.wp-block-button:not(.has-background):not(.has-text-color) .wp-block-button__link:not(.has-background):not(.has-text-color):hover,
.hero-cta-button:hover,
.content-block-button:hover,
.posts-block-load-more:hover,
.posts-block-show-all:hover {
    background: var(--btn-primary-hover-bg);
    border-color: var(--btn-primary-hover-border);
    color: var(--btn-primary-hover-text);
}

.button-secondary,
.wp-block-button.is-style-outline:not(.has-background) .wp-block-button__link:not(.has-background),
.hero-cta-secondary,
.content-block-button.secondary {
    background: var(--btn-secondary-bg, transparent);
    border-color: var(--btn-secondary-border);
}

.button-secondary,
.wp-block-button.is-style-outline:not(.has-text-color) .wp-block-button__link:not(.has-text-color),
.hero-cta-secondary,
.content-block-button.secondary {
    color: var(--btn-secondary-text);
}

.button-secondary:hover,
.wp-block-button.is-style-outline:not(.has-background):not(.has-text-color) .wp-block-button__link:not(.has-background):not(.has-text-color):hover,
.hero-cta-secondary:hover,
.content-block-button.secondary:hover {
    background: var(--btn-secondary-hover-bg);
    color: var(--btn-secondary-hover-text);
    border-color: var(--btn-secondary-hover-border);
}

/* WP block library uses extra padding on filled buttons and less on outline — unify both. */
.wp-block-button:not(.is-style-outline) > .wp-block-button__link,
.wp-block-button.is-style-outline > .wp-block-button__link {
    padding: var(--btn-padding, 15px 35px);
    border-width: var(--btn-border-width, 2px);
    border-style: solid;
    border-radius: var(--btn-radius, 0);
    line-height: 1.2;
    height: auto;
    align-content: normal;
    box-sizing: border-box;
}

.button-dark,
.content-block-button.dark {
    background: var(--btn-dark-bg);
    color: var(--btn-dark-text);
    border-color: var(--btn-dark-border);
}

.button-dark:hover,
.content-block-button.dark:hover {
    background: var(--btn-dark-hover-bg);
    color: var(--btn-dark-hover-text);
    border-color: var(--btn-dark-hover-border);
}

/* Mobile button responsiveness */
@media screen and (max-width: 768px) {
    .button,
    .wp-block-button__link,
    .hero-cta-button,
    .content-block-button,
    .posts-block-load-more,
    .posts-block-show-all {
        padding: 12px 20px;
        width: 100%;
        display: block;
        text-align: center;
    }
}

/* Forms */
input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
textarea:focus {
    border-color: var(--scheme-1-accent);
}

.search-form .search-submit {
    background: var(--scheme-1-accent);
    color: var(--scheme-1-accent-text);
    border-color: var(--scheme-1-accent);
}

.search-form .search-submit:hover {
    background: var(--scheme-1-accent-hover);
    border-color: var(--scheme-1-accent-hover);
}

/* ===================================
   VERTICAL PADDING CLASSES
   =================================== */

.padding-default {
    padding-top: var(--padding-default-top, var(--padding-default));
    padding-bottom: var(--padding-default-bottom, var(--padding-default));
}
