/* O02 — component colors only. Keep Softro geometry and semantic notices intact. */

/* Primary actions, including the existing WordPress contact component. */
.lc-login,
.lc-hero__actions a.lc-hero__button--primary,
.lc-offers .is-featured a,
.lc-contact-form button,
.lc-backtop,
.lc-support-drawer__tab,
.lc-skip-link {
  color: var(--lc-on-action);
  background: var(--lc-button-primary);
  border-color: var(--lc-button-primary);
}
:is(.lc-login, .lc-hero__actions a.lc-hero__button--primary,
    .lc-offers .is-featured a, .lc-contact-form button,
    .lc-backtop, .lc-support-drawer__tab):is(:hover, :active) {
  color: var(--lc-on-action);
  background: var(--lc-button-hover);
  border-color: var(--lc-button-hover);
}
.lc-support-drawer__tab span { color: var(--lc-on-action); }

/* Secondary actions; white variant remains legible on the dark CTA section. */
.lc-hero__actions a.lc-hero__button--secondary,
.lc-outline-button, .lc-light-button, .lc-offers a {
  color: var(--lc-button-primary);
  background: var(--lc-surface);
  border-color: var(--lc-button-primary);
}
:is(.lc-hero__actions a.lc-hero__button--secondary,
    .lc-outline-button, .lc-light-button, .lc-offers a):is(:hover, :active) {
  color: var(--lc-button-hover);
  background: var(--lc-button-soft-strong);
  border-color: var(--lc-button-hover);
}
.lc-ghost-button:is(:hover, :active) {
  color: var(--lc-action-hover);
  background: var(--lc-surface-peach);
  border-color: var(--lc-surface);
}
/* The featured offer stays a primary action on hover. */
.lc-offers .is-featured a:is(:hover, :active) {
  color: var(--lc-on-action);
  background: var(--lc-button-hover);
  border-color: var(--lc-button-hover);
}

/* Text links: underline is independent of color perception. */
.lc-feature-card a, .lc-gallery-caption a, .lc-contact-section__intro a,
.lc-news-grid h3 a, .lc-contact-form a {
  color: var(--lc-action-primary);
  text-decoration: underline;
  text-underline-offset: .2em;
}
:is(.lc-feature-card a, .lc-gallery-caption a, .lc-contact-section__intro a,
    .lc-news-grid h3 a, .lc-contact-form a):is(:hover, :active) {
  color: var(--lc-action-hover);
  text-decoration-thickness: 2px;
}
.lc-footer a:hover { text-decoration: underline; text-underline-offset: .2em; }

/* Navigation, menus and tabs use the same selected/expanded treatment. */
.lc-primary-nav a::after { background: var(--lc-action-primary); }
.lc-primary-nav a[aria-current="page"],
.lc-mobile-menu nav a[aria-current="page"],
.lc-language-menu button[aria-checked="true"],
.lc-square-action[aria-expanded="true"],
.lc-language-toggle[aria-expanded="true"] {
  color: var(--lc-action-hover);
  background: var(--lc-surface-peach-strong);
}
.lc-primary-nav a:hover, .lc-mobile-menu nav a:hover,
.lc-language-menu button:hover, .lc-apps-menu a:hover,
.lc-square-action:hover, .lc-language-toggle:hover,
.lc-support-drawer__close:hover {
  color: var(--lc-action-hover);
  background: var(--lc-surface-peach);
}
.lc-globe, .lc-language-menu button span { color: var(--lc-action-primary); }
.lc-square-action, .lc-support-drawer__close {
  border-color: var(--lc-border-control);
}
.lc-square-action > span { background: var(--lc-action-primary); }
.lc-gallery-tabs button {
  color: var(--lc-text);
  background: var(--lc-surface);
  border-color: var(--lc-border-control);
}
.lc-gallery-tabs button:hover {
  color: var(--lc-button-hover);
  background: var(--lc-button-soft);
}
.lc-gallery-tabs button[aria-selected="true"] {
  color: var(--lc-on-action);
  background: var(--lc-button-primary);
  border-color: var(--lc-button-primary);
}
.lc-gallery-stage:focus-visible { border-color: var(--lc-focus-ring); }

/* Brand badges/icons only; success, error, planned and warning states are preserved. */
.lc-eyebrow, .lc-kicker, .lc-status:not(.lc-status--planned) {
  color: var(--lc-action-hover);
  background: var(--lc-surface-peach);
  border-color: var(--lc-border-control);
}
.lc-eyebrow::before { background: var(--lc-brand-primary); }
.lc-offers article > em { color: var(--lc-on-action); background: var(--lc-action-primary); }
.lc-offers article > span, .lc-gallery-caption > span,
.lc-guarantee-grid i { color: var(--lc-action-primary); }
.lc-feature-icon, .lc-apps-menu a i, .lc-support-drawer__panel > a i {
  color: var(--lc-on-action);
  background: var(--lc-action-primary);
}
.lc-support-drawer__panel > a:hover {
  border-color: var(--lc-border-control);
  background: var(--lc-surface-peach);
}

/* FAQ expandable state is indicated both by the existing +/- and by color. */
.lc-accordion button { color: var(--lc-text); }
.lc-accordion button:is(:hover, [aria-expanded="true"]) { color: var(--lc-action-primary); }
.lc-accordion button span { border-color: var(--lc-border-control); }
.lc-accordion button[aria-expanded="true"] span {
  color: var(--lc-on-action);
  background: var(--lc-button-primary);
  border-color: var(--lc-button-primary);
}

/* Fields, placeholders and consent. Do not style the hidden anti-spam field. */
.lc-contact-form label { color: var(--lc-text); }
.lc-contact-form input[type="text"], .lc-contact-form input[type="email"],
.lc-contact-form textarea {
  color: var(--lc-text);
  background: var(--lc-surface);
  border-color: var(--lc-border-control);
}
.lc-contact-form :is(input, textarea)::placeholder { color: var(--lc-text-muted); opacity: 1; }
.lc-contact-form > small { color: var(--lc-text-muted); }
.lc-contact-form input[type="checkbox"] { accent-color: var(--lc-action-primary); }
.lc-contact-form :is(input, textarea):focus { border-color: var(--lc-focus-ring); }

/* Public legacy pages: beat existing !important accessibility patches narrowly. */
body.logesco-alpha-theme :is(.logesco-button-primary, .logesco-header-actions .logesco-button-primary,
    .elementor-widget-button .elementor-button, .la-btn-primary) {
  color: var(--lc-on-action) !important;
  background: var(--lc-button-primary) !important;
  border-color: var(--lc-button-primary) !important;
}
body.logesco-alpha-theme :is(.logesco-button-primary, .logesco-header-actions .logesco-button-primary,
    .elementor-widget-button .elementor-button, .la-btn-primary):is(:hover, :active) {
  background: var(--lc-button-hover) !important;
  border-color: var(--lc-button-hover) !important;
}
.logesco-button-secondary, .logesco-button-light, .logesco-login-link {
  color: var(--lc-button-primary);
  border-color: var(--lc-button-primary);
}
.logesco-nav a:hover { color: var(--lc-action-hover); }
.logesco-login-link:hover { color: var(--lc-button-hover); }

/* Visible keyboard focus on light and dark surfaces, without moving layout. */
body :is(a, button, input, select, textarea, [tabindex]):focus-visible,
.lc-contact-form :is(input, textarea):focus-visible {
  outline: 3px solid var(--lc-on-action);
  outline-offset: 2px;
  box-shadow: 0 0 0 6px var(--lc-focus-ring);
}
body :is(button, input, select, textarea):disabled {
  color: var(--lc-text-muted);
  background: var(--lc-surface-peach);
  border-color: var(--lc-border-control);
  box-shadow: none;
  cursor: not-allowed;
}
@media (forced-colors: active) {
  body :is(a, button, input, select, textarea, [tabindex]):focus-visible,
  .lc-contact-form :is(input, textarea):focus-visible {
    outline: 3px solid CanvasText;
    box-shadow: none;
  }
}
