/*
Theme Name: Found & Felt Canvas
Theme URI: https://foundandfeltmusic.com/
Author: SingleBuck Technologies
Author URI: https://singlebuck.ca/
Description: A lightweight full-screen WordPress canvas theme tailored exclusively for Found & Felt Music. It provides a clean responsive page canvas, compact site header, flexible custom HTML layouts, and a polished music-first presentation.
Version: 1.3.2
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: classicore-canvas
Tags: custom-logo, custom-menu, full-width-template, theme-options, e-commerce, accessibility-ready
Update URI: false
*/

:root {
  --classicore-canvas-vh: 100vh;
  --classicore-canvas-logo-size: 38px;
  --classicore-canvas-logo-max-width: 260px;
  --classicore-canvas-mobile-logo-size: 30px;
  --classicore-canvas-mobile-logo-max-width: 145px;
  --classicore-canvas-reading-width: 980px;
  --classicore-canvas-wide-width: 1480px;
  --classicore-canvas-page-gutter: 28px;
}

@supports (height: 100dvh) {
  :root {
    --classicore-canvas-vh: 100dvh;
  }
}

html,
body {
  margin: 0;
  padding: 0;
  width: 100%;
  min-width: 320px;
  min-height: var(--classicore-canvas-vh);
  background: #f6f8fb;
}

html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

body {
  overflow-x: hidden;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: #111827;
}

a {
  color: inherit;
}

img,
svg,
video,
canvas {
  max-width: 100%;
}

.classicore-canvas-site,
.classicore-canvas-app,
.classicore-canvas-content {
  width: 100%;
  min-height: var(--classicore-canvas-vh);
  margin: 0;
  padding: 0;
}

body.admin-bar .classicore-canvas-site,
body.admin-bar .classicore-canvas-app,
body.admin-bar .classicore-canvas-content {
  min-height: calc(var(--classicore-canvas-vh) - 32px);
}

@media (max-width: 782px) {
  body.admin-bar .classicore-canvas-site,
  body.admin-bar .classicore-canvas-app,
  body.admin-bar .classicore-canvas-content {
    min-height: calc(var(--classicore-canvas-vh) - 46px);
  }
}

.classicore-canvas-empty {
  max-width: 760px;
  margin: 0 auto;
  padding: 48px 20px;
}


/* --------------------------------------------------------------------------
   Responsive WordPress content pages

   Reading pages use a comfortable centered card. Designed/custom HTML pages
   use a much wider responsive canvas and keep their own visual styling.
   ClassiCore shortcode/app pages remain fully edge-to-edge.
   -------------------------------------------------------------------------- */
body.classicore-canvas-standard-page .classicore-canvas-standard-page-main {
  min-height: calc(var(--classicore-canvas-vh) - var(--classicore-canvas-topbar-h));
  padding: clamp(22px, 3.5vw, 54px) 0 clamp(58px, 7vw, 92px);
  background:
    radial-gradient(circle at 10% 0%, color-mix(in srgb, var(--cc-accent, #2563eb) 8%, transparent) 0, transparent 34rem),
    var(--cc-app-bg, #f6f8fb);
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-content--reading,
body.classicore-canvas-page-layout-wide .classicore-canvas-page-content--wide {
  min-height: 0;
  margin: 0 auto;
  padding: 0 0 30px;
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-content--reading {
  width: min(
    var(--classicore-canvas-reading-width, 980px),
    calc(100% - var(--classicore-canvas-page-gutter, 28px) - var(--classicore-canvas-page-gutter, 28px))
  );
}

body.classicore-canvas-page-layout-wide .classicore-canvas-page-content--wide {
  width: min(
    var(--classicore-canvas-wide-width, 1480px),
    calc(100% - var(--classicore-canvas-page-gutter, 28px) - var(--classicore-canvas-page-gutter, 28px))
  );
}

/* Text-focused reading surface. */
body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading {
  width: 100%;
  padding: clamp(26px, 5vw, 64px);
  overflow-wrap: anywhere;
  border: 1px solid var(--cc-border, rgba(15, 23, 42, 0.10));
  border-radius: 26px;
  background: var(--cc-surface, #ffffff);
  color: var(--cc-text, #111827);
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.09);
}

/* Designed HTML pages keep their own cards, backgrounds, and spacing. */
body.classicore-canvas-page-layout-wide .classicore-canvas-page-panel--wide {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  box-shadow: none;
}

body.classicore-canvas-page-layout-wide .classicore-canvas-page-panel--wide > :where(div, section, main, article) {
  width: 100% !important;
  max-width: none !important;
}

body.classicore-canvas-page-layout-wide .classicore-canvas-page-panel--wide :where(img, svg, video, canvas, iframe, table) {
  max-width: 100%;
}

body.classicore-canvas-page-layout-wide .classicore-canvas-page-panel--wide :where(.alignwide, .alignfull) {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading > :first-child,
body.classicore-canvas-page-layout-wide .classicore-canvas-page-panel--wide > :first-child {
  margin-top: 0;
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading > :last-child,
body.classicore-canvas-page-layout-wide .classicore-canvas-page-panel--wide > :last-child {
  margin-bottom: 0;
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading h1,
body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading h2,
body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading h3,
body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading h4,
body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading h5,
body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading h6 {
  color: var(--cc-text, #0f172a);
  line-height: 1.2;
  letter-spacing: -0.025em;
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading h1 {
  margin: 0 0 14px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--cc-border, #e2e8f0);
  font-size: clamp(2rem, 4vw, 3.15rem);
  font-weight: 850;
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading h2 {
  margin: 2.25em 0 0.65em;
  font-size: clamp(1.4rem, 2.5vw, 1.9rem);
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading h3 {
  margin: 1.8em 0 0.55em;
  font-size: clamp(1.12rem, 2vw, 1.35rem);
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading p,
body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading li {
  color: var(--cc-text, #334155);
  font-size: clamp(1rem, 0.35vw + 0.92rem, 1.08rem);
  line-height: 1.78;
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading p {
  margin: 0 0 1.15em;
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading ul,
body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading ol {
  margin: 0 0 1.35em;
  padding-left: 1.45em;
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading li + li {
  margin-top: 0.38em;
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading a {
  color: var(--cc-accent, #2563eb);
  font-weight: 700;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 0.16em;
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading a:hover,
body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading a:focus-visible {
  text-decoration-thickness: 2px;
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading hr {
  height: 1px;
  margin: 2.25rem 0;
  border: 0;
  background: var(--cc-border, #e2e8f0);
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading blockquote {
  margin: 1.75rem 0;
  padding: 1rem 1.25rem;
  border-left: 4px solid var(--cc-accent, #2563eb);
  border-radius: 0 14px 14px 0;
  background: var(--cc-surface-alt, #f8fafc);
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading table {
  width: 100%;
  margin: 1.5rem 0;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  border: 1px solid var(--cc-border, #e2e8f0);
  border-radius: 14px;
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading th,
body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading td {
  padding: 12px 14px;
  border-right: 1px solid var(--cc-border, #e2e8f0);
  border-bottom: 1px solid var(--cc-border, #e2e8f0);
  text-align: left;
  vertical-align: top;
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading th {
  background: var(--cc-surface-alt, #f8fafc);
  font-weight: 800;
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading tr:last-child > * {
  border-bottom: 0;
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading tr > *:last-child {
  border-right: 0;
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading input:not([type="checkbox"]):not([type="radio"]),
body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading select,
body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading textarea {
  width: 100%;
  min-height: 46px;
  padding: 11px 13px;
  border: 1px solid var(--cc-border, #cbd5e1);
  border-radius: 12px;
  background: var(--cc-input-bg, #ffffff);
  color: var(--cc-text, #0f172a);
  font: inherit;
}

body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading button,
body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading input[type="submit"],
body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading .wp-element-button {
  min-height: 44px;
  padding: 10px 18px;
  border: 1px solid var(--cc-button, var(--cc-accent, #2563eb));
  border-radius: 12px;
  background: var(--cc-button, var(--cc-accent, #2563eb));
  color: var(--cc-button-text, #ffffff);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

@media (max-width: 640px) {
  body.classicore-canvas-standard-page .classicore-canvas-standard-page-main {
    padding: 16px 0 58px;
  }

  body.classicore-canvas-page-layout-reading .classicore-canvas-page-content--reading,
  body.classicore-canvas-page-layout-wide .classicore-canvas-page-content--wide {
    width: calc(100% - 24px);
  }

  body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading {
    padding: 24px 20px;
    border-radius: 20px;
    box-shadow: 0 14px 38px rgba(15, 23, 42, 0.08);
  }

  body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading h1 {
    padding-bottom: 16px;
  }

  body.classicore-canvas-page-layout-reading .classicore-canvas-page-panel--reading table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
  }
}

/* ClassiCore app pages should not inherit Elementor/theme boxed page widths. */
body.classicore-canvas-theme.classicore-app-page .entry-content,
body.classicore-canvas-theme.classicore-app-page .page-content,
body.classicore-canvas-theme.classicore-app-page .wp-block-post-content,
body.classicore-canvas-theme.classicore-app-page .classicore-canvas-app,
body.classicore-canvas-theme.classicore-app-page .classicore-canvas-content,
body.classicore-canvas-theme.classicore-app-page .elementor,
body.classicore-canvas-theme.classicore-app-page .elementor-section,
body.classicore-canvas-theme.classicore-app-page .elementor-container,
body.classicore-canvas-theme.classicore-app-page .elementor-column,
body.classicore-canvas-theme.classicore-app-page .elementor-widget-wrap,
body.classicore-canvas-theme.classicore-app-page .elementor-widget,
body.classicore-canvas-theme.classicore-app-page .elementor-widget-container,
body.classicore-canvas-theme.classicore-app-page .e-con,
body.classicore-canvas-theme.classicore-app-page .e-con-inner {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.classicore-canvas-theme.classicore-app-page .elementor-section.elementor-section-boxed > .elementor-container,
body.classicore-canvas-theme.classicore-app-page .e-con > .e-con-inner {
  max-width: none !important;
}

/* Rentals map pages should behave like an app canvas, not a centered WP page. */
@media (min-width: 769px) {
  body:has(.kh-wrapper.kh-index-rentals.kh-rentals-map-view),
  body:has(.kh-wrapper.kh-index-rentals.kh-rentals-map-view) .classicore-canvas-site,
  body:has(.kh-wrapper.kh-index-rentals.kh-rentals-map-view) .classicore-canvas-app,
  body:has(.kh-wrapper.kh-index-rentals.kh-rentals-map-view) .classicore-canvas-content,
  body:has(.kh-wrapper.kh-index-rentals.kh-rentals-map-view) .kh-layout,
  body:has(.kh-wrapper.kh-index-rentals.kh-rentals-map-view) .kh-main {
    width: 100vw !important;
    max-width: none !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow: hidden !important;
  }

  .kh-wrapper.kh-index-rentals.kh-rentals-map-view {
    width: 100vw !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
  }
}


/* --------------------------------------------------------------------------
   ClassiCore Canvas top application bar
   -------------------------------------------------------------------------- */
:root {
  --classicore-canvas-topbar-h: 56px;
}

.classicore-canvas-topbar {
  position: sticky;
  top: 0;
  z-index: 9990;
  width: 100%;
  height: var(--classicore-canvas-topbar-h);
  min-height: var(--classicore-canvas-topbar-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 0 18px;
  overflow: visible;
  border-bottom: 1px solid rgba(207, 217, 234, 0.14);
  background: rgba(5, 7, 11, 0.96);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: none;
}

body.admin-bar .classicore-canvas-topbar {
  top: 32px;
}

.classicore-canvas-brand-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  color: #f3f5f8;
  text-decoration: none;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: -0.01em;
  white-space: nowrap;
}

.classicore-canvas-brand-logo {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  width: auto !important;
  height: var(--classicore-canvas-logo-size, 30px) !important;
  max-width: var(--classicore-canvas-logo-max-width, 190px) !important;
  flex: 0 1 auto !important;
  overflow: visible;
}

.classicore-canvas-brand-logo-img {
  display: block;
  width: auto !important;
  height: var(--classicore-canvas-logo-size, 30px) !important;
  max-width: var(--classicore-canvas-logo-max-width, 190px) !important;
  max-height: var(--classicore-canvas-logo-size, 30px) !important;
  object-fit: contain;
}

.classicore-canvas-brand-logo .custom-logo,
.classicore-canvas-brand-link img.custom-logo,
.classicore-canvas-brand-link .classicore-canvas-brand-logo-img {
  width: auto !important;
  height: var(--classicore-canvas-logo-size, 30px) !important;
  max-width: var(--classicore-canvas-logo-max-width, 190px) !important;
  max-height: var(--classicore-canvas-logo-size, 30px) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  object-fit: contain !important;
}

.classicore-canvas-brand-text--with-logo {
  display: none !important;
}

.classicore-canvas-brand-text {
  display: inline-flex;
  align-items: center;
}

.classicore-canvas-nav {
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: none;
}
.classicore-canvas-nav::-webkit-scrollbar { display: none; }

.classicore-canvas-menu {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
  white-space: nowrap;
}

.classicore-canvas-menu li { margin: 0; padding: 0; }

.classicore-canvas-menu a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0;
  border-radius: 0;
  color: #9ca7b9;
  text-decoration: none;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.classicore-canvas-menu a:hover,
.classicore-canvas-menu .current-menu-item > a {
  background: transparent;
  color: #ffffff;
  box-shadow: inset 0 -1px 0 #aebfe0;
}

.classicore-canvas-site,
.classicore-canvas-app,
.classicore-canvas-content {
  min-height: calc(var(--classicore-canvas-vh) - var(--classicore-canvas-topbar-h));
}

body.admin-bar .classicore-canvas-site,
body.admin-bar .classicore-canvas-app,
body.admin-bar .classicore-canvas-content {
  min-height: calc(var(--classicore-canvas-vh) - var(--classicore-canvas-topbar-h) - 32px);
}

body.classicore-canvas-theme.classicore-app-page .kh-wrapper.kh-index-rentals.kh-rentals-map-view,
body.classicore-canvas-theme:has(.kh-wrapper.kh-index-rentals.kh-rentals-map-view) .kh-wrapper.kh-index-rentals.kh-rentals-map-view {
  height: calc(var(--classicore-canvas-vh) - var(--classicore-canvas-topbar-h)) !important;
  min-height: calc(var(--classicore-canvas-vh) - var(--classicore-canvas-topbar-h)) !important;
}

body.admin-bar.classicore-canvas-theme.classicore-app-page .kh-wrapper.kh-index-rentals.kh-rentals-map-view,
body.admin-bar.classicore-canvas-theme:has(.kh-wrapper.kh-index-rentals.kh-rentals-map-view) .kh-wrapper.kh-index-rentals.kh-rentals-map-view {
  height: calc(var(--classicore-canvas-vh) - var(--classicore-canvas-topbar-h) - 32px) !important;
  min-height: calc(var(--classicore-canvas-vh) - var(--classicore-canvas-topbar-h) - 32px) !important;
}

@media (max-width: 782px) {
  body.admin-bar .classicore-canvas-topbar { top: 46px; }
  body.admin-bar .classicore-canvas-site,
  body.admin-bar .classicore-canvas-app,
  body.admin-bar .classicore-canvas-content {
    min-height: calc(var(--classicore-canvas-vh) - var(--classicore-canvas-topbar-h) - 46px);
  }
  body.admin-bar.classicore-canvas-theme.classicore-app-page .kh-wrapper.kh-index-rentals.kh-rentals-map-view,
  body.admin-bar.classicore-canvas-theme:has(.kh-wrapper.kh-index-rentals.kh-rentals-map-view) .kh-wrapper.kh-index-rentals.kh-rentals-map-view {
    height: calc(var(--classicore-canvas-vh) - var(--classicore-canvas-topbar-h) - 46px) !important;
    min-height: calc(var(--classicore-canvas-vh) - var(--classicore-canvas-topbar-h) - 46px) !important;
  }
}

@media (max-width: 640px) {
  .classicore-canvas-topbar {
    padding: 0 10px;
    gap: 10px;
  }
  .classicore-canvas-brand-link { font-size: 12px; gap: 6px; }
  .classicore-canvas-brand-logo,
  .classicore-canvas-brand-logo-img {
    width: auto !important;
    height: var(--classicore-canvas-mobile-logo-size, 30px) !important;
    max-width: var(--classicore-canvas-mobile-logo-max-width, 145px) !important;
    max-height: var(--classicore-canvas-mobile-logo-size, 30px) !important;
    flex-basis: auto !important;
  }
  .classicore-canvas-menu a { padding: 0 8px; font-size: 12px; }
}


/* Internal ClassiCore menu can hold more app links, so keep it compact and scrollable. */
.classicore-canvas-menu--internal a {
  padding-left: 9px;
  padding-right: 9px;
}

@media (max-width: 900px) {
  .classicore-canvas-menu--internal a {
    padding-left: 7px;
    padding-right: 7px;
    font-size: 11.5px;
  }
}


/* --------------------------------------------------------------------------
   Mobile top menu behavior

   Logged-in users already have the ClassiCore mobile bottom navigation, so the
   desktop-style account links should not consume vertical space at the top.
   Logged-out users do not have that bottom app nav, so keep Home / Log in /
   Register visible.
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
  body.logged-in .classicore-canvas-topbar {
    height: 46px;
    min-height: 46px;
    padding-left: 14px;
    padding-right: 14px;
  }

  body.logged-in .classicore-canvas-nav {
    display: none !important;
  }

  body:not(.logged-in) .classicore-canvas-topbar {
    height: 46px;
    min-height: 46px;
    padding-left: 14px;
    padding-right: 10px;
    gap: 10px;
  }

  body:not(.logged-in) .classicore-canvas-brand-link {
    font-size: 12px;
    gap: 6px;
  }

  body:not(.logged-in) .classicore-canvas-nav {
    display: block;
    flex: 1 1 auto;
  }

  body:not(.logged-in) .classicore-canvas-menu {
    justify-content: flex-end;
    gap: 2px;
  }

  body:not(.logged-in) .classicore-canvas-menu a {
    min-height: 28px;
    padding-left: 8px;
    padding-right: 8px;
    font-size: 11.5px;
  }
}

/* Mobile logged-in app pages: leave room for the ClassiCore bottom nav and
   never viewport-lock rentals split view on phones. */
@media (max-width: 768px) {
  body.classicore-canvas-theme.kh-rentals-map-view,
  body.classicore-canvas-theme.kh-rentals-map-view .classicore-canvas-site,
  body.classicore-canvas-theme.kh-rentals-map-view .classicore-canvas-app,
  body.classicore-canvas-theme.kh-rentals-map-view .classicore-canvas-content {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
  }

  body.classicore-canvas-theme.kh-bottom-actions-active .classicore-canvas-site {
    padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px));
  }
}


/* Reserve room for the fixed ClassiCore footer strip so it never appears
   inside account/listing content on the Canvas theme. */
.classicore-canvas-content {
  padding-bottom: 30px;
}

@media (max-width: 768px) {
  .classicore-canvas-content {
    padding-bottom: 34px;
  }
  body.kh-bottom-actions-active .classicore-canvas-content {
    padding-bottom: 82px;
  }
}

/* --------------------------------------------------------------------------
   Mobile account menu / confirmed logout
   -------------------------------------------------------------------------- */
.classicore-canvas-account-toggle,
.classicore-canvas-account-modal {
  display: none;
}

@media (max-width: 768px) {
  body.logged-in .classicore-canvas-account-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-width: 34px;
    min-height: 32px;
    padding: 0 4px 0 8px;
    border: 0;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.06);
    color: #0f172a;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
  }

  body.logged-in .classicore-canvas-account-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: #2563eb;
    color: #fff;
    font-size: 12px;
    line-height: 1;
  }

  body.logged-in .classicore-canvas-account-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
  }

  body.logged-in .classicore-canvas-account-modal.is-open {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 100000;
  }

  .classicore-canvas-account-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.38);
    backdrop-filter: blur(3px);
  }

  .classicore-canvas-account-panel {
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    border: 1px solid rgba(15, 23, 42, 0.1);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.25);
    padding: 16px;
  }

  .classicore-canvas-account-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  }

  .classicore-canvas-account-kicker {
    color: #64748b;
    font-size: 12px;
    font-weight: 750;
  }

  .classicore-canvas-account-name {
    color: #0f172a;
    font-size: 17px;
    font-weight: 850;
  }

  .classicore-canvas-account-close {
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.06);
    color: #0f172a;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
  }

  .classicore-canvas-account-links {
    display: grid;
    gap: 8px;
    padding: 12px 0;
  }

  .classicore-canvas-account-links a,
  .classicore-canvas-logout-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 44px;
    padding: 0 13px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 14px;
    background: #f8fafc;
    color: #0f172a;
    text-decoration: none;
    font: inherit;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
  }

  .classicore-canvas-logout-trigger {
    justify-content: center;
    background: #fff1f2;
    color: #be123c;
  }

  .classicore-canvas-logout-confirm {
    margin-top: 12px;
    padding: 12px;
    border-radius: 18px;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, 0.08);
  }

  .classicore-canvas-logout-title {
    margin-bottom: 10px;
    text-align: center;
    color: #0f172a;
    font-size: 15px;
    font-weight: 850;
  }

  .classicore-canvas-logout-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .classicore-canvas-cancel-logout,
  .classicore-canvas-confirm-logout {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border-radius: 999px;
    border: 1px solid rgba(15, 23, 42, 0.1);
    text-decoration: none;
    font: inherit;
    font-size: 14px;
    font-weight: 850;
    cursor: pointer;
  }

  .classicore-canvas-cancel-logout {
    background: #fff;
    color: #0f172a;
  }

  .classicore-canvas-confirm-logout {
    background: #dc2626;
    color: #fff;
    border-color: #dc2626;
  }
}


/* --------------------------------------------------------------------------
   Per-page menu modes
   -------------------------------------------------------------------------- */
.classicore-canvas-marketing-menu .classicore-canvas-menu a {
  padding-left: 12px;
  padding-right: 12px;
}

@media (max-width: 768px) {
  /* On app/vertical pages, logged-in users use ClassiCore's bottom app nav. */
  body.logged-in.classicore-canvas-app-menu .classicore-canvas-nav {
    display: none !important;
  }

  /* On marketing/showcase pages, keep the header menu visible even when logged in. */
  body.logged-in.classicore-canvas-marketing-menu .classicore-canvas-nav {
    display: block !important;
    flex: 1 1 auto;
  }

  body.logged-in.classicore-canvas-marketing-menu .classicore-canvas-menu {
    justify-content: flex-end;
    gap: 2px;
  }

  body.logged-in.classicore-canvas-marketing-menu .classicore-canvas-menu a {
    min-height: 28px;
    padding-left: 8px;
    padding-right: 8px;
    font-size: 11.5px;
  }

  body.logged-in.classicore-canvas-marketing-menu .classicore-canvas-account-toggle {
    display: none !important;
  }
}

/* --------------------------------------------------------------------------
   Logged-in account dropdown
   -------------------------------------------------------------------------- */
body.logged-in .classicore-canvas-account-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-width: 34px;
  min-height: 32px;
  flex: 0 0 auto;
  padding: 0 9px 0 5px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.04);
  color: #0f172a;
  font: inherit;
  font-size: 12px;
  font-weight: 850;
  cursor: pointer;
  transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

body.logged-in .classicore-canvas-account-toggle:hover,
body.logged-in .classicore-canvas-account-toggle[aria-expanded="true"] {
  background: #fff;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.10);
}

body.logged-in .classicore-canvas-account-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  overflow: hidden;
  background: #2563eb;
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
}

body.logged-in .classicore-canvas-account-avatar img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.classicore-canvas-account-caret {
  color: #64748b;
  font-size: 10px;
  line-height: 1;
}

.classicore-canvas-account-modal {
  display: none;
}

body.logged-in .classicore-canvas-account-modal.is-open {
  display: block;
  position: fixed;
  inset: 0;
  z-index: 100000;
  pointer-events: none;
}

.classicore-canvas-account-backdrop {
  position: absolute;
  inset: 0;
  background: transparent;
  pointer-events: auto;
}

.classicore-canvas-account-panel {
  position: absolute;
  top: calc(var(--classicore-canvas-topbar-h) + 8px);
  right: 14px;
  width: min(320px, calc(100vw - 24px));
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 22px 55px rgba(15, 23, 42, 0.18);
  padding: 12px;
  pointer-events: auto;
}

body.admin-bar .classicore-canvas-account-panel {
  top: calc(var(--classicore-canvas-topbar-h) + 40px);
}

.classicore-canvas-account-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.classicore-canvas-account-kicker {
  color: #64748b;
  font-size: 11px;
  font-weight: 750;
}

.classicore-canvas-account-name {
  color: #0f172a;
  font-size: 15px;
  font-weight: 850;
  word-break: break-word;
}

.classicore-canvas-account-close {
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.06);
  color: #0f172a;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

.classicore-canvas-account-links,
.classicore-canvas-account-menu {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 10px 0;
  list-style: none;
}

.classicore-canvas-account-menu li {
  margin: 0;
  padding: 0;
}

.classicore-canvas-account-links a,
.classicore-canvas-account-menu a,
.classicore-canvas-logout-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 13px;
  background: #f8fafc;
  color: #0f172a;
  text-decoration: none;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.classicore-canvas-account-links a:hover,
.classicore-canvas-account-menu a:hover {
  background: rgba(37, 99, 235, 0.08);
}

.classicore-canvas-logout-trigger {
  justify-content: center;
  background: #fff1f2;
  color: #be123c;
}

.classicore-canvas-logout-confirm {
  margin-top: 10px;
  padding: 12px;
  border-radius: 16px;
  background: #f8fafc;
  border: 1px solid rgba(15, 23, 42, 0.08);
}

.classicore-canvas-logout-title {
  margin-bottom: 10px;
  text-align: center;
  color: #0f172a;
  font-size: 14px;
  font-weight: 850;
}

.classicore-canvas-logout-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.classicore-canvas-cancel-logout,
.classicore-canvas-confirm-logout {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  text-decoration: none;
  font: inherit;
  font-size: 13px;
  font-weight: 850;
  cursor: pointer;
}

.classicore-canvas-cancel-logout {
  background: #fff;
  color: #0f172a;
}

.classicore-canvas-confirm-logout {
  background: #dc2626;
  color: #fff;
  border-color: #dc2626;
}

@media (max-width: 768px) {
  body.logged-in .classicore-canvas-account-toggle,
  body.logged-in.classicore-canvas-marketing-menu .classicore-canvas-account-toggle {
    display: inline-flex !important;
    padding: 0 4px 0 8px;
  }

  body.logged-in .classicore-canvas-account-label,
  body.logged-in .classicore-canvas-account-caret {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
  }

  body.logged-in .classicore-canvas-account-modal.is-open {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 100000;
    pointer-events: auto;
  }

  .classicore-canvas-account-backdrop {
    background: rgba(15, 23, 42, 0.38);
    backdrop-filter: blur(3px);
  }

  .classicore-canvas-account-panel,
  body.admin-bar .classicore-canvas-account-panel {
    top: auto;
    left: 12px;
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    width: auto;
    border-radius: 24px;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.25);
    padding: 16px;
  }

  .classicore-canvas-account-links a,
  .classicore-canvas-account-menu a,
  .classicore-canvas-logout-trigger {
    min-height: 44px;
    font-size: 14px;
  }
}


/* -------------------------------------------------------------------------- */
/* WooCommerce polish for ClassiCore Canvas                                   */
/* Keeps product, cart, checkout, and account pages inside the app language.   */
/* -------------------------------------------------------------------------- */
body.woocommerce,
body.woocommerce-page {
  background: #f6f8fb;
}

body.woocommerce .classicore-canvas-app,
body.woocommerce-page .classicore-canvas-app {
  min-height: calc(var(--classicore-canvas-vh) - var(--classicore-canvas-topbar-h));
  padding: clamp(18px, 3vw, 42px);
}

body.woocommerce .classicore-canvas-content,
body.woocommerce-page .classicore-canvas-content {
  width: min(1180px, calc(100vw - 32px));
  margin: 0 auto;
}

body.woocommerce .classicore-canvas-content > .product,
body.woocommerce div.product,
body.woocommerce-page .woocommerce,
body.woocommerce-cart .classicore-canvas-content,
body.woocommerce-checkout .classicore-canvas-content,
body.woocommerce-account .classicore-canvas-content {
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 18px 55px rgba(15, 23, 42, 0.08);
}

body.woocommerce div.product {
  display: grid;
  grid-template-columns: minmax(260px, 420px) minmax(0, 1fr);
  gap: clamp(24px, 5vw, 64px);
  align-items: start;
  padding: clamp(22px, 4vw, 52px);
}

body.woocommerce div.product div.images,
body.woocommerce div.product div.summary {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}

body.woocommerce div.product div.images {
  display: flex;
  justify-content: center;
  align-items: center;
}

body.woocommerce div.product div.images img,
body.woocommerce div.product .woocommerce-product-gallery__image img {
  width: 100%;
  max-width: 360px;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 28px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: linear-gradient(135deg, #f8fafc 0%, #eef2f7 100%);
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
}

body.woocommerce div.product .product_title,
body.woocommerce-page .entry-title,
body.woocommerce-cart .entry-title,
body.woocommerce-checkout .entry-title,
body.woocommerce-account .entry-title {
  margin: 0 0 12px;
  color: #0f172a;
  font-size: clamp(28px, 4vw, 48px);
  line-height: 1.05;
  letter-spacing: -0.045em;
  font-weight: 900;
}

body.woocommerce div.product p.price,
body.woocommerce div.product span.price,
body.woocommerce ul.products li.product .price {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 6px 0 18px;
  color: #0f172a;
  font-size: clamp(24px, 3vw, 36px);
  font-weight: 900;
  letter-spacing: -0.035em;
}

body.woocommerce div.product .woocommerce-product-details__short-description,
body.woocommerce div.product .summary > p,
body.woocommerce-page .woocommerce p {
  color: #475569;
  line-height: 1.65;
}

body.woocommerce div.product form.cart {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin: 24px 0 20px;
}

body.woocommerce .quantity .qty {
  width: 72px;
  min-height: 44px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 14px;
  background: #fff;
  color: #0f172a;
  text-align: center;
  font: inherit;
  font-weight: 800;
}

body.woocommerce a.button,
body.woocommerce button.button,
body.woocommerce input.button,
body.woocommerce #respond input#submit,
body.woocommerce-page a.button,
body.woocommerce-page button.button,
body.woocommerce-page input.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 18px;
  border: 0;
  border-radius: 14px;
  background: #0077a8;
  color: #fff;
  text-decoration: none;
  font: inherit;
  font-size: 14px;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 12px 28px rgba(0, 119, 168, 0.20);
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

body.woocommerce a.button:hover,
body.woocommerce button.button:hover,
body.woocommerce input.button:hover,
body.woocommerce #respond input#submit:hover,
body.woocommerce-page a.button:hover,
body.woocommerce-page button.button:hover,
body.woocommerce-page input.button:hover {
  background: #005f8a;
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 16px 34px rgba(0, 119, 168, 0.25);
}

body.woocommerce div.product .product_meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  color: #64748b;
  font-size: 13px;
}

body.woocommerce div.product .product_meta a {
  color: #005f8a;
  font-weight: 800;
  text-decoration: none;
}

body.woocommerce div.product .related,
body.woocommerce div.product .upsells {
  grid-column: 1 / -1;
  margin-top: 16px;
  padding-top: 24px;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

body.woocommerce div.product .related > h2,
body.woocommerce div.product .upsells > h2,
body.woocommerce-cart .cart_totals h2,
body.woocommerce-checkout h3,
body.woocommerce-account h2,
body.woocommerce-account h3 {
  color: #0f172a;
  font-size: clamp(20px, 2vw, 28px);
  line-height: 1.15;
  letter-spacing: -0.03em;
  font-weight: 900;
}

body.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 18px;
  margin: 18px 0 0;
  padding: 0;
}

body.woocommerce ul.products li.product,
body.woocommerce-page ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 16px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.05);
}

body.woocommerce ul.products li.product img {
  border-radius: 16px;
  background: #f8fafc;
}

body.woocommerce ul.products li.product .woocommerce-loop-product__title {
  color: #0f172a;
  font-size: 17px;
  font-weight: 900;
}

body.woocommerce-notices-wrapper,
body.woocommerce .woocommerce-notices-wrapper {
  margin-bottom: 16px;
}

body.woocommerce .woocommerce-message,
body.woocommerce .woocommerce-info,
body.woocommerce .woocommerce-error,
body.woocommerce-page .woocommerce-message,
body.woocommerce-page .woocommerce-info,
body.woocommerce-page .woocommerce-error {
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 18px;
  background: #fff;
  color: #0f172a;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.06);
}

body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce,
body.woocommerce-account .woocommerce,
body.woocommerce-page .classicore-canvas-content > .woocommerce {
  padding: clamp(18px, 3vw, 34px);
}

body.woocommerce table.shop_table,
body.woocommerce-page table.shop_table {
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 18px;
  background: #fff;
  border-collapse: separate;
  border-spacing: 0;
}

body.woocommerce table.shop_table th,
body.woocommerce table.shop_table td,
body.woocommerce-page table.shop_table th,
body.woocommerce-page table.shop_table td {
  padding: 14px 16px;
  border-color: rgba(15, 23, 42, 0.06);
}

body.woocommerce table.shop_table th,
body.woocommerce-page table.shop_table th {
  color: #0f172a;
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}

body.woocommerce-cart .cart-collaterals .cart_totals {
  float: none;
  width: min(480px, 100%);
  margin-left: auto;
  padding: 20px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06);
}

body.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
  gap: 22px;
  align-items: start;
}

body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #order_review,
body.woocommerce-checkout .woocommerce-checkout-review-order,
body.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-MyAccount-content {
  padding: 20px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05);
}

body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #order_review_heading {
  grid-column: auto;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
body.woocommerce form .form-row {
  display: block;
}

body.woocommerce form .form-row label {
  color: #0f172a;
  font-size: 13px;
  font-weight: 850;
}

body.woocommerce form .form-row input.input-text,
body.woocommerce form .form-row textarea,
body.woocommerce form .form-row select,
body.woocommerce .select2-container .select2-selection--single {
  min-height: 44px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 14px;
  background: #fff;
  color: #0f172a;
  padding: 9px 12px;
  font: inherit;
}

body.woocommerce-account .woocommerce {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 20px;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.woocommerce-account .woocommerce-MyAccount-navigation a {
  display: flex;
  min-height: 42px;
  align-items: center;
  padding: 0 12px;
  border-radius: 13px;
  background: #f8fafc;
  color: #0f172a;
  font-size: 13px;
  font-weight: 850;
  text-decoration: none;
}

body.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
body.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
  background: rgba(37, 99, 235, 0.10);
  color: #1d4ed8;
}

body.woocommerce-page a {
  color: #005f8a;
}

@media (max-width: 900px) {
  body.woocommerce .classicore-canvas-app,
  body.woocommerce-page .classicore-canvas-app {
    padding: 14px;
  }

  body.woocommerce div.product,
  body.woocommerce-checkout form.checkout,
  body.woocommerce-account .woocommerce {
    grid-template-columns: 1fr;
  }

  body.woocommerce div.product {
    gap: 22px;
    padding: 18px;
    border-radius: 20px;
  }

  body.woocommerce div.product div.images img,
  body.woocommerce div.product .woocommerce-product-gallery__image img {
    max-width: 280px;
  }

  body.woocommerce-cart .cart-collaterals .cart_totals {
    width: auto;
    margin-left: 0;
  }
}

@media (max-width: 640px) {
  body.woocommerce div.product form.cart {
    flex-direction: column;
    align-items: stretch;
  }

  body.woocommerce .quantity .qty,
  body.woocommerce div.product form.cart .button {
    width: 100%;
  }

  body.woocommerce table.shop_table_responsive tr,
  body.woocommerce-page table.shop_table_responsive tr {
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
  }
}


/* -------------------------------------------------------------------------- */
/* ClassiCore WooCommerce Blocks cart button fix                              */
/* WooCommerce's block cart uses different button classes than classic forms.  */
/* -------------------------------------------------------------------------- */
body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-cart .wc-block-components-button,
body.woocommerce-cart .wc-block-components-button:not(.is-link),
body.woocommerce-checkout .wc-block-components-button,
body.woocommerce-checkout .wc-block-components-button:not(.is-link),
body.woocommerce-page .wc-block-components-button,
body.woocommerce-page .wc-block-components-button:not(.is-link),
body.woocommerce-page .wp-block-button__link,
body.woocommerce-page .wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 46px !important;
  padding: 0 20px !important;
  border: 0 !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, #0087bd 0%, #006fa3 100%) !important;
  color: #fff !important;
  text-decoration: none !important;
  font: inherit !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  box-shadow: 0 12px 28px rgba(0, 119, 168, 0.22) !important;
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease !important;
}

body.woocommerce-cart .wc-block-cart__submit-button:hover,
body.woocommerce-cart .wc-block-components-button:hover,
body.woocommerce-cart .wc-block-components-button:not(.is-link):hover,
body.woocommerce-checkout .wc-block-components-button:hover,
body.woocommerce-checkout .wc-block-components-button:not(.is-link):hover,
body.woocommerce-page .wc-block-components-button:hover,
body.woocommerce-page .wc-block-components-button:not(.is-link):hover,
body.woocommerce-page .wp-block-button__link:hover,
body.woocommerce-page .wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link:hover {
  color: #fff !important;
  filter: brightness(.96) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 16px 34px rgba(0, 119, 168, 0.28) !important;
}

body.woocommerce-cart .wc-block-components-button .wc-block-components-button__text,
body.woocommerce-checkout .wc-block-components-button .wc-block-components-button__text,
body.woocommerce-page .wc-block-components-button .wc-block-components-button__text {
  color: inherit !important;
}

body.woocommerce-cart .wc-block-components-button.is-link,
body.woocommerce-checkout .wc-block-components-button.is-link,
body.woocommerce-page .wc-block-components-button.is-link {
  min-height: auto !important;
  padding: 0 !important;
  background: transparent !important;
  color: #0077a8 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

body.woocommerce-cart .wc-block-components-button.is-link:hover,
body.woocommerce-checkout .wc-block-components-button.is-link:hover,
body.woocommerce-page .wc-block-components-button.is-link:hover {
  color: #005f8a !important;
  transform: none !important;
  box-shadow: none !important;
}

body.woocommerce-cart .wc-block-cart,
body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-checkout .wp-block-woocommerce-checkout {
  color: #0f172a;
}

body.woocommerce-cart .wc-block-cart-items,
body.woocommerce-cart .wc-block-cart__totals-title,
body.woocommerce-cart .wc-block-components-totals-wrapper,
body.woocommerce-checkout .wc-block-components-order-summary,
body.woocommerce-checkout .wc-block-checkout__order-notes,
body.woocommerce-checkout .wc-block-components-checkout-step {
  border-color: rgba(15, 23, 42, 0.10) !important;
}

body.woocommerce-cart .wc-block-cart__submit-container {
  margin-top: 18px !important;
}


/* Header logo polish: support horizontal transparent logos without forcing them into a tiny square. */
.classicore-canvas-has-logo .classicore-canvas-brand-link {
  min-height: 34px;
  gap: 0;
}

.classicore-canvas-has-logo .classicore-canvas-brand-logo {
  width: auto !important;
  height: var(--classicore-canvas-logo-size, 30px) !important;
  max-width: var(--classicore-canvas-logo-max-width, 190px) !important;
  flex: 0 1 auto !important;
  overflow: visible !important;
}

.classicore-canvas-has-logo .classicore-canvas-brand-logo img,
.classicore-canvas-has-logo .classicore-canvas-brand-link img.custom-logo {
  width: auto !important;
  height: var(--classicore-canvas-logo-size, 30px) !important;
  max-width: var(--classicore-canvas-logo-max-width, 190px) !important;
  max-height: var(--classicore-canvas-logo-size, 30px) !important;
  object-fit: contain !important;
}

.classicore-canvas-has-logo .classicore-canvas-brand-text--with-logo {
  display: none !important;
}

@media (max-width: 768px) {
  body.logged-in .classicore-canvas-topbar,
  body:not(.logged-in) .classicore-canvas-topbar {
    min-height: 40px;
  }
}


/* Header/logo density controls: keep the app bar compact while allowing wide logos. */
.classicore-canvas-topbar {
  flex: 0 0 var(--classicore-canvas-topbar-h);
}

.classicore-canvas-brand,
.classicore-canvas-brand-link {
  min-height: 0;
}

.classicore-canvas-brand-link {
  height: 100%;
}

.classicore-canvas-brand-logo,
.classicore-canvas-brand-logo-img,
.classicore-canvas-brand-logo .custom-logo,
.classicore-canvas-brand-link img.custom-logo {
  display: block !important;
}

@media (max-width: 768px) {
  body.logged-in .classicore-canvas-topbar,
  body:not(.logged-in) .classicore-canvas-topbar {
    height: min(var(--classicore-canvas-topbar-h), 46px);
    min-height: min(var(--classicore-canvas-topbar-h), 46px);
  }
}


/* Mobile logo alignment refinement: use independent Customizer dimensions and
   keep the logo inside its flex lane so it cannot cover navigation links. */
@media (max-width: 768px) {
  .classicore-canvas-topbar {
    height: max(46px, calc(var(--classicore-canvas-mobile-logo-size, 30px) + 14px)) !important;
    min-height: max(46px, calc(var(--classicore-canvas-mobile-logo-size, 30px) + 14px)) !important;
    align-items: center !important;
    overflow: hidden !important;
  }

  .classicore-canvas-brand {
    flex: 0 1 var(--classicore-canvas-mobile-logo-max-width, 145px) !important;
    width: auto !important;
    max-width: var(--classicore-canvas-mobile-logo-max-width, 145px) !important;
    min-width: 0 !important;
  }

  .classicore-canvas-brand,
  .classicore-canvas-brand-link {
    height: 100% !important;
    display: inline-flex !important;
    align-items: center !important;
  }

  .classicore-canvas-brand-link,
  .classicore-canvas-brand-logo {
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .classicore-canvas-brand-logo {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    height: var(--classicore-canvas-mobile-logo-size, 30px) !important;
    max-height: calc(100% - 12px) !important;
    line-height: 0 !important;
  }

  .classicore-canvas-brand-logo-img,
  .classicore-canvas-brand-logo .custom-logo,
  .classicore-canvas-brand-link img.custom-logo {
    display: block !important;
    width: auto !important;
    height: var(--classicore-canvas-mobile-logo-size, 30px) !important;
    max-height: calc(var(--classicore-canvas-topbar-h, 56px) - 12px) !important;
    max-width: 100% !important;
    object-fit: contain !important;
    object-position: left center !important;
  }

  .classicore-canvas-nav {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }

  .classicore-canvas-account-toggle {
    align-self: center !important;
  }
}


/* Legacy footer strip styles retained for compatibility; Found & Felt Canvas does not render the strip. */
body.classicore-canvas-theme .classicore-canvas-site {
  padding-bottom: 0;
}

body.classicore-canvas-theme .classicore-footer-wrapper {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 99990 !important;
  margin: 0 !important;
  padding: 5px 20px !important;
  min-height: 24px !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  background: rgba(255, 255, 255, 0.94) !important;
  border-top: 1px solid rgba(15, 23, 42, 0.10) !important;
  box-shadow: 0 -8px 24px rgba(15, 23, 42, 0.05) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #1f2937 !important;
  pointer-events: auto;
}

body.classicore-canvas-theme .classicore-footer-wrapper *,
body.classicore-canvas-theme .classicore-footer-wrapper a {
  font-size: 11px !important;
  line-height: 1.2 !important;
}

body.classicore-canvas-theme .classicore-footer-left,
body.classicore-canvas-theme .classicore-footer-right {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

body.classicore-canvas-theme .classicore-footer-branding a {
  font-weight: 700;
  color: #2563eb;
  text-decoration: none;
}

body.classicore-canvas-theme .classicore-footer-branding a:hover,
body.classicore-canvas-theme .classicore-footer-branding a:focus {
  text-decoration: underline;
}

body.classicore-canvas-theme .classicore-footer-license,
body.classicore-canvas-theme .classicore-footer-version {
  opacity: 0.78;
}

@media (max-width: 768px) {
  body.classicore-canvas-theme .classicore-canvas-site {
    padding-bottom: 0;
  }

  body.classicore-canvas-theme .classicore-footer-wrapper {
    padding: 4px 14px !important;
    min-height: 22px !important;
  }

  body.classicore-canvas-theme .classicore-footer-wrapper *,
  body.classicore-canvas-theme .classicore-footer-wrapper a {
    font-size: 10.5px !important;
  }

  body.kh-bottom-actions-active .classicore-footer-wrapper {
    display: none !important;
  }
}


/* --------------------------------------------------------------------------
   ClassiCore Canvas theme-controlled appearance bridge
   -------------------------------------------------------------------------- */
body.classicore-canvas-uses-theme-appearance,
body.classicore-canvas-uses-theme-appearance .classicore-canvas-site,
body.classicore-canvas-uses-theme-appearance .classicore-canvas-app,
body.classicore-canvas-uses-theme-appearance .classicore-canvas-content {
  background: var(--cc-app-bg) !important;
  color: var(--cc-text) !important;
}

body.classicore-canvas-uses-theme-appearance .classicore-canvas-topbar,
body.classicore-canvas-uses-theme-appearance .classicore-canvas-account-menu,
body.classicore-canvas-uses-theme-appearance .classicore-footer-wrapper {
  background: color-mix(in srgb, var(--cc-nav-bg) 94%, transparent) !important;
  border-color: var(--cc-border) !important;
  color: var(--cc-text) !important;
  box-shadow: 0 1px 0 color-mix(in srgb, var(--cc-border) 70%, transparent) !important;
}

body.classicore-canvas-uses-theme-appearance .classicore-canvas-brand-link,
body.classicore-canvas-uses-theme-appearance .classicore-canvas-account-toggle,
body.classicore-canvas-uses-theme-appearance .classicore-canvas-account-menu a,
body.classicore-canvas-uses-theme-appearance .classicore-footer-wrapper,
body.classicore-canvas-uses-theme-appearance .classicore-footer-wrapper a {
  color: var(--cc-text) !important;
}

body.classicore-canvas-uses-theme-appearance .classicore-footer-branding a,
body.classicore-canvas-uses-theme-appearance a {
  color: var(--cc-accent);
}

body.classicore-canvas-uses-theme-appearance .kh-wrapper,
body.classicore-canvas-uses-theme-appearance .kh-index,
body.classicore-canvas-uses-theme-appearance .kh-index-rentals,
body.classicore-canvas-uses-theme-appearance .kh-account,
body.classicore-canvas-uses-theme-appearance .kh-new-listing,
body.classicore-canvas-uses-theme-appearance .kh-single-view,
body.classicore-canvas-uses-theme-appearance .kh-rentals-map-view {
  background: var(--cc-app-bg) !important;
  color: var(--cc-text) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-card,
body.classicore-canvas-uses-theme-appearance .kh-listing-row,
body.classicore-canvas-uses-theme-appearance .kh-listing-line,
body.classicore-canvas-uses-theme-appearance .kh-listing-list,
body.classicore-canvas-uses-theme-appearance .kh-sidebar,
body.classicore-canvas-uses-theme-appearance .kh-filter-box,
body.classicore-canvas-uses-theme-appearance .kh-main,
body.classicore-canvas-uses-theme-appearance .kh-layout,
body.classicore-canvas-uses-theme-appearance .kh-single-section,
body.classicore-canvas-uses-theme-appearance .kh-account-summary-card,
body.classicore-canvas-uses-theme-appearance .kh-account-main-card,
body.classicore-canvas-uses-theme-appearance .kh-account-card,
body.classicore-canvas-uses-theme-appearance .kh-contact-filters-card,
body.classicore-canvas-uses-theme-appearance .kh-modal-dialog,
body.classicore-canvas-uses-theme-appearance .kh-classifieds-listing-form,
body.classicore-canvas-uses-theme-appearance .kh-new-listing-form,
body.classicore-canvas-uses-theme-appearance .kh-inbox,
body.classicore-canvas-uses-theme-appearance .kh-rental-card,
body.classicore-canvas-uses-theme-appearance .kh-card-rental,
body.classicore-canvas-uses-theme-appearance .kh-search-form,
body.classicore-canvas-uses-theme-appearance .kh-search-shell,
body.classicore-canvas-uses-theme-appearance .kh-toolbar,
body.classicore-canvas-uses-theme-appearance .kh-filter-panel,
body.classicore-canvas-uses-theme-appearance .kh-filter-card {
  background: var(--cc-surface) !important;
  color: var(--cc-text) !important;
  border-color: var(--cc-border) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-menu,
body.classicore-canvas-uses-theme-appearance .kh-account-tabs,
body.classicore-canvas-uses-theme-appearance .kh-account-mobile-tabs,
body.classicore-canvas-uses-theme-appearance .kh-bottom-actions-bar,
body.classicore-canvas-uses-theme-appearance .kh-rentals-mobile-focusbar {
  background: var(--cc-nav-bg) !important;
  border-color: var(--cc-border) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-wrapper h1,
body.classicore-canvas-uses-theme-appearance .kh-wrapper h2,
body.classicore-canvas-uses-theme-appearance .kh-wrapper h3,
body.classicore-canvas-uses-theme-appearance .kh-wrapper h4,
body.classicore-canvas-uses-theme-appearance .kh-listing-line-title,
body.classicore-canvas-uses-theme-appearance .kh-listing-line-title a {
  color: var(--cc-text) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-muted,
body.classicore-canvas-uses-theme-appearance .kh-card-meta,
body.classicore-canvas-uses-theme-appearance .kh-listing-line-meta,
body.classicore-canvas-uses-theme-appearance .kh-account-muted,
body.classicore-canvas-uses-theme-appearance .kh-single-meta,
body.classicore-canvas-uses-theme-appearance .kh-help-text,
body.classicore-canvas-uses-theme-appearance .kh-card-excerpt,
body.classicore-canvas-uses-theme-appearance .kh-card-location,
body.classicore-canvas-uses-theme-appearance .kh-card-age,
body.classicore-canvas-uses-theme-appearance .description {
  color: var(--cc-muted) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-wrapper input[type="text"],
body.classicore-canvas-uses-theme-appearance .kh-wrapper input[type="email"],
body.classicore-canvas-uses-theme-appearance .kh-wrapper input[type="url"],
body.classicore-canvas-uses-theme-appearance .kh-wrapper input[type="number"],
body.classicore-canvas-uses-theme-appearance .kh-wrapper input[type="date"],
body.classicore-canvas-uses-theme-appearance .kh-wrapper input[type="password"],
body.classicore-canvas-uses-theme-appearance .kh-wrapper select,
body.classicore-canvas-uses-theme-appearance .kh-wrapper textarea,
body.classicore-canvas-uses-theme-appearance .kh-search-input {
  background: var(--cc-input-bg) !important;
  color: var(--cc-text) !important;
  border-color: var(--cc-border) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-wrapper input::placeholder,
body.classicore-canvas-uses-theme-appearance .kh-wrapper textarea::placeholder,
body.classicore-canvas-uses-theme-appearance .kh-search-input::placeholder {
  color: var(--cc-muted) !important;
  opacity: .82;
}

body.classicore-canvas-uses-theme-appearance .kh-button,
body.classicore-canvas-uses-theme-appearance .kh-btn,
body.classicore-canvas-uses-theme-appearance .kh-btn-primary,
body.classicore-canvas-uses-theme-appearance .kh-button-primary,
body.classicore-canvas-uses-theme-appearance .kh-search-button,
body.classicore-canvas-uses-theme-appearance .kh-save-listing-btn,
body.classicore-canvas-uses-theme-appearance .kh-filter-toggle,
body.classicore-canvas-uses-theme-appearance .kh-wrapper button[type="submit"],
body.classicore-canvas-uses-theme-appearance .kh-wrapper input[type="submit"] {
  background: var(--cc-button) !important;
  color: var(--cc-button-text) !important;
  border-color: var(--cc-button) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-button-secondary,
body.classicore-canvas-uses-theme-appearance .kh-btn-secondary,
body.classicore-canvas-uses-theme-appearance .kh-button-light,
body.classicore-canvas-uses-theme-appearance .kh-button-ghost,
body.classicore-canvas-uses-theme-appearance .kh-wrapper .button:not(.button-primary),
body.classicore-canvas-uses-theme-appearance .kh-wrapper a.button:not(.button-primary) {
  background: var(--cc-surface) !important;
  color: var(--cc-accent) !important;
  border-color: var(--cc-border) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-badge,
body.classicore-canvas-uses-theme-appearance .kh-pill,
body.classicore-canvas-uses-theme-appearance .kh-verified-badge,
body.classicore-canvas-uses-theme-appearance .kh-real-badge,
body.classicore-canvas-uses-theme-appearance .kh-date-divider,
body.classicore-canvas-uses-theme-appearance .kh-location-chip,
body.classicore-canvas-uses-theme-appearance .kh-plan-badge,
body.classicore-canvas-uses-theme-appearance .kh-status-badge {
  background: var(--cc-badge-bg) !important;
  color: var(--cc-badge-text) !important;
  border-color: color-mix(in srgb, var(--cc-accent) 35%, var(--cc-border)) !important;
}


/* --------------------------------------------------------------------------
   ClassiCore Canvas theme appearance: remaining pills / oval surfaces
   --------------------------------------------------------------------------
   These cover the smaller rounded elements that live inside the ClassiCore app:
   date labels, search/header shells, meta chips, presence chips, action strips,
   and verification badges. Without this layer, dark/custom presets can leave
   bright white oval shapes inside an otherwise themed page.
*/
body.classicore-canvas-uses-theme-appearance .kh-classifieds-header,
body.classicore-canvas-uses-theme-appearance .kh-classifieds-header-rentals,
body.classicore-canvas-uses-theme-appearance .kh-search-bar,
body.classicore-canvas-uses-theme-appearance .kh-search-bar form,
body.classicore-canvas-uses-theme-appearance .kh-search-bar-inner,
body.classicore-canvas-uses-theme-appearance .kh-actions,
body.classicore-canvas-uses-theme-appearance .kh-index-actions,
body.classicore-canvas-uses-theme-appearance .kh-listing-actions,
body.classicore-canvas-uses-theme-appearance .kh-footer-actions,
body.classicore-canvas-uses-theme-appearance .kh-admin-footer,
body.classicore-canvas-uses-theme-appearance .kh-bottom-actions,
body.classicore-canvas-uses-theme-appearance .kh-bottom-actions-active {
  background: var(--cc-surface) !important;
  color: var(--cc-text) !important;
  border-color: var(--cc-border) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-search-bar-inner,
body.classicore-canvas-uses-theme-appearance .kh-classifieds-header {
  box-shadow: 0 10px 30px color-mix(in srgb, #000 18%, transparent) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-search-bar-inner .kh-icon,
body.classicore-canvas-uses-theme-appearance .kh-classifieds-subtitle,
body.classicore-canvas-uses-theme-appearance .kh-classifieds-header small {
  color: var(--cc-muted) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-listing-date-header span,
body.classicore-canvas-uses-theme-appearance .kh-listing-date-label,
body.classicore-canvas-uses-theme-appearance .kh-date-label,
body.classicore-canvas-uses-theme-appearance .kh-date-divider,
body.classicore-canvas-uses-theme-appearance .kh-meta-chip,
body.classicore-canvas-uses-theme-appearance .kh-listing-line-meta .kh-meta-chip,
body.classicore-canvas-uses-theme-appearance .kh-last-seen-pill,
body.classicore-canvas-uses-theme-appearance .kh-online-pill,
body.classicore-canvas-uses-theme-appearance .kh-presence-pill,
body.classicore-canvas-uses-theme-appearance .kh-listing-line-presence,
body.classicore-canvas-uses-theme-appearance .kh-listing-line-status,
body.classicore-canvas-uses-theme-appearance .kh-listing-line-status .kh-verified-badge,
body.classicore-canvas-uses-theme-appearance .kh-verified-badge,
body.classicore-canvas-uses-theme-appearance .kh-profile-verified-badge,
body.classicore-canvas-uses-theme-appearance .kh-listing-line-avatar-badge .kh-profile-verified-badge,
body.classicore-canvas-uses-theme-appearance .kh-profile-verification-owner-badge,
body.classicore-canvas-uses-theme-appearance .kh-app-badge,
body.classicore-canvas-uses-theme-appearance .kh-card-badge,
body.classicore-canvas-uses-theme-appearance .kh-badge,
body.classicore-canvas-uses-theme-appearance .kh-pill,
body.classicore-canvas-uses-theme-appearance .kh-location-chip,
body.classicore-canvas-uses-theme-appearance .kh-plan-badge,
body.classicore-canvas-uses-theme-appearance .kh-status-badge {
  background: var(--cc-badge-bg) !important;
  color: var(--cc-badge-text) !important;
  border-color: color-mix(in srgb, var(--cc-accent) 35%, var(--cc-border)) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-filter-toggle,
body.classicore-canvas-uses-theme-appearance .kh-search-submit,
body.classicore-canvas-uses-theme-appearance .kh-button.kh-search-submit {
  background: var(--cc-button) !important;
  color: var(--cc-button-text) !important;
  border-color: var(--cc-button) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-search-input,
body.classicore-canvas-uses-theme-appearance .kh-search-bar-inner input[type="text"] {
  background: var(--cc-input-bg) !important;
  color: var(--cc-text) !important;
  border-color: transparent !important;
}

body.classicore-canvas-uses-theme-appearance .kh-search-bar-inner input[type="text"]::placeholder {
  color: var(--cc-muted) !important;
  opacity: .86 !important;
}

body.classicore-canvas-uses-theme-appearance .kh-sidebar,
body.classicore-canvas-uses-theme-appearance .kh-sidebar-title,
body.classicore-canvas-uses-theme-appearance .kh-menu,
body.classicore-canvas-uses-theme-appearance .kh-menu li,
body.classicore-canvas-uses-theme-appearance .kh-menu a {
  color: var(--cc-text) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-menu a:hover,
body.classicore-canvas-uses-theme-appearance .kh-menu a.is-active {
  background: var(--cc-badge-bg) !important;
  color: var(--cc-badge-text) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-wrapper > div:last-child:not(.kh-listing-list):not(.kh-search-bar),
body.classicore-canvas-uses-theme-appearance .kh-wrapper .kh-footer-links,
body.classicore-canvas-uses-theme-appearance .kh-wrapper .kh-bottom-links {
  background: var(--cc-surface) !important;
  color: var(--cc-text) !important;
  border-color: var(--cc-border) !important;
}

/* --------------------------------------------------------------------------
   ClassiCore Canvas theme appearance: deep coverage pass
   --------------------------------------------------------------------------
   This layer covers the smaller app surfaces that the core plugin paints with
   fixed light colors: notices, tables, inbox rows, account cards, modals,
   uploads, contact filters, rentals panels, WooCommerce account screens, and
   secondary chips. It only activates when ClassiCore is set to let Canvas
   control appearance.
*/
body.classicore-canvas-uses-theme-appearance {
  --cc-surface-soft: color-mix(in srgb, var(--cc-surface-alt) 82%, var(--cc-surface));
  --cc-border-soft: color-mix(in srgb, var(--cc-border) 72%, transparent);
  --cc-hover: color-mix(in srgb, var(--cc-accent) 13%, var(--cc-surface));
  --cc-focus-ring: color-mix(in srgb, var(--cc-accent) 38%, transparent);
}

body.classicore-canvas-uses-theme-appearance .kh-wrapper,
body.classicore-canvas-uses-theme-appearance .kh-wrapper *,
body.classicore-canvas-uses-theme-appearance .classicore-footer-wrapper,
body.classicore-canvas-uses-theme-appearance .classicore-footer-wrapper * {
  scrollbar-color: var(--cc-border) var(--cc-app-bg);
}

body.classicore-canvas-uses-theme-appearance .kh-wrapper hr,
body.classicore-canvas-uses-theme-appearance .kh-separator,
body.classicore-canvas-uses-theme-appearance .kh-divider,
body.classicore-canvas-uses-theme-appearance .kh-card-divider {
  border-color: var(--cc-border) !important;
  background: var(--cc-border) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-wrapper a:not(.kh-button):not(.kh-btn):not(.button):not(.kh-search-submit),
body.classicore-canvas-uses-theme-appearance .kh-link,
body.classicore-canvas-uses-theme-appearance .kh-meta-link,
body.classicore-canvas-uses-theme-appearance .kh-filter-clear,
body.classicore-canvas-uses-theme-appearance .kh-link-reset,
body.classicore-canvas-uses-theme-appearance .kh-rentals-action-link,
body.classicore-canvas-uses-theme-appearance .kh-rentals-focusbar-link {
  color: var(--cc-accent) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-wrapper a:hover,
body.classicore-canvas-uses-theme-appearance .kh-link:hover,
body.classicore-canvas-uses-theme-appearance .kh-meta-link:hover {
  color: color-mix(in srgb, var(--cc-accent) 78%, var(--cc-text)) !important;
}

/* Secondary app surfaces and strips */
body.classicore-canvas-uses-theme-appearance .kh-settings-card,
body.classicore-canvas-uses-theme-appearance .kh-settings-helper,
body.classicore-canvas-uses-theme-appearance .kh-banner,
body.classicore-canvas-uses-theme-appearance .kh-auth-required,
body.classicore-canvas-uses-theme-appearance .kh-plan-card,
body.classicore-canvas-uses-theme-appearance .kh-plan-features,
body.classicore-canvas-uses-theme-appearance .kh-viewers-manager-col,
body.classicore-canvas-uses-theme-appearance .kh-profile-avatar-mode-option,
body.classicore-canvas-uses-theme-appearance .kh-verification-placeholder,
body.classicore-canvas-uses-theme-appearance .kh-alert-criteria-card,
body.classicore-canvas-uses-theme-appearance .kh-rentals-alert,
body.classicore-canvas-uses-theme-appearance .kh-unit-field,
body.classicore-canvas-uses-theme-appearance .kh-current-media,
body.classicore-canvas-uses-theme-appearance .kh-card-body,
body.classicore-canvas-uses-theme-appearance .kh-single-body-column,
body.classicore-canvas-uses-theme-appearance .kh-single-header,
body.classicore-canvas-uses-theme-appearance .kh-single-photos-block,
body.classicore-canvas-uses-theme-appearance .kh-single-video-locked,
body.classicore-canvas-uses-theme-appearance .kh-airbnb-gallery,
body.classicore-canvas-uses-theme-appearance .kh-airbnb-grid,
body.classicore-canvas-uses-theme-appearance .kh-airbnb-hero,
body.classicore-canvas-uses-theme-appearance .kh-airbnb-tile,
body.classicore-canvas-uses-theme-appearance .kh-airbnb-side,
body.classicore-canvas-uses-theme-appearance .kh-video-slot,
body.classicore-canvas-uses-theme-appearance .kh-video-field,
body.classicore-canvas-uses-theme-appearance .kh-slot,
body.classicore-canvas-uses-theme-appearance .kh-field-selected,
body.classicore-canvas-uses-theme-appearance .kh-attachment-choice-grid,
body.classicore-canvas-uses-theme-appearance .kh-field-attachment--rich,
body.classicore-canvas-uses-theme-appearance .kh-attachment-dropzone,
body.classicore-canvas-uses-theme-appearance .kh-message-media-section,
body.classicore-canvas-uses-theme-appearance .kh-message-media-grid,
body.classicore-canvas-uses-theme-appearance .kh-report-field,
body.classicore-canvas-uses-theme-appearance .kh-contact-filter-field,
body.classicore-canvas-uses-theme-appearance .kh-contact-checkbox-list,
body.classicore-canvas-uses-theme-appearance .kh-filter-section,
body.classicore-canvas-uses-theme-appearance .kh-filter-layout-col,
body.classicore-canvas-uses-theme-appearance .kh-age-slider,
body.classicore-canvas-uses-theme-appearance .kh-toolbar-group,
body.classicore-canvas-uses-theme-appearance .kh-toolbar-range,
body.classicore-canvas-uses-theme-appearance .kh-rentals-view-toggle,
body.classicore-canvas-uses-theme-appearance .kh-rentals-header-form,
body.classicore-canvas-uses-theme-appearance .kh-rentals-header-toolbar,
body.classicore-canvas-uses-theme-appearance .kh-rentals-header-row,
body.classicore-canvas-uses-theme-appearance .kh-rentals-mobile-modal-card,
body.classicore-canvas-uses-theme-appearance .kh-rentals-mobile-modal-row,
body.classicore-canvas-uses-theme-appearance .kh-rentals-map-shell,
body.classicore-canvas-uses-theme-appearance .kh-rentals-map-list,
body.classicore-canvas-uses-theme-appearance .leaflet-popup-content-wrapper,
body.classicore-canvas-uses-theme-appearance .leaflet-popup-tip {
  background: var(--cc-surface) !important;
  color: var(--cc-text) !important;
  border-color: var(--cc-border) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-wrapper .kh-surface-alt,
body.classicore-canvas-uses-theme-appearance .kh-table thead,
body.classicore-canvas-uses-theme-appearance .kh-table-mylistings thead,
body.classicore-canvas-uses-theme-appearance .kh-inbox-table thead,
body.classicore-canvas-uses-theme-appearance .kh-account-summary-header,
body.classicore-canvas-uses-theme-appearance .kh-modal-header,
body.classicore-canvas-uses-theme-appearance .kh-modal-actions,
body.classicore-canvas-uses-theme-appearance .kh-rentals-mobile-modal-head,
body.classicore-canvas-uses-theme-appearance .kh-filter-label-row,
body.classicore-canvas-uses-theme-appearance .kh-airbnb-lock-overlay,
body.classicore-canvas-uses-theme-appearance .kh-listing-line:hover,
body.classicore-canvas-uses-theme-appearance .kh-card-rental:hover,
body.classicore-canvas-uses-theme-appearance .kh-inbox-table tr:hover {
  background: var(--cc-surface-soft) !important;
  color: var(--cc-text) !important;
  border-color: var(--cc-border) !important;
}

/* Tables and inbox screens */
body.classicore-canvas-uses-theme-appearance .kh-table,
body.classicore-canvas-uses-theme-appearance .kh-table-mylistings,
body.classicore-canvas-uses-theme-appearance .kh-inbox-table,
body.classicore-canvas-uses-theme-appearance .kh-table table,
body.classicore-canvas-uses-theme-appearance .kh-inbox table,
body.classicore-canvas-uses-theme-appearance .kh-account table {
  background: var(--cc-surface) !important;
  color: var(--cc-text) !important;
  border-color: var(--cc-border) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-table th,
body.classicore-canvas-uses-theme-appearance .kh-table td,
body.classicore-canvas-uses-theme-appearance .kh-table-mylistings th,
body.classicore-canvas-uses-theme-appearance .kh-table-mylistings td,
body.classicore-canvas-uses-theme-appearance .kh-inbox-table th,
body.classicore-canvas-uses-theme-appearance .kh-inbox-table td,
body.classicore-canvas-uses-theme-appearance .kh-inbox-row,
body.classicore-canvas-uses-theme-appearance .kh-inbox-actions,
body.classicore-canvas-uses-theme-appearance .kh-reply-view,
body.classicore-canvas-uses-theme-appearance .kh-message-form,
body.classicore-canvas-uses-theme-appearance .kh-chat-lastseen,
body.classicore-canvas-uses-theme-appearance .kh-conversation-status-pill {
  background: transparent !important;
  color: var(--cc-text) !important;
  border-color: var(--cc-border) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-inbox-action-btn,
body.classicore-canvas-uses-theme-appearance .kh-action-button,
body.classicore-canvas-uses-theme-appearance .kh-rentals-toggle-btn,
body.classicore-canvas-uses-theme-appearance .kh-rentals-focusbar-btn,
body.classicore-canvas-uses-theme-appearance .kh-bottom-actions-button,
body.classicore-canvas-uses-theme-appearance .kh-tap-button,
body.classicore-canvas-uses-theme-appearance .kh-block-user-btn--single,
body.classicore-canvas-uses-theme-appearance .kh-block-user-btn--inbox,
body.classicore-canvas-uses-theme-appearance .kh-block-user-btn--conversation,
body.classicore-canvas-uses-theme-appearance .kh-slot-remove,
body.classicore-canvas-uses-theme-appearance .kh-unit-remove,
body.classicore-canvas-uses-theme-appearance .kh-video-remove-flag,
body.classicore-canvas-uses-theme-appearance .kh-modal-close,
body.classicore-canvas-uses-theme-appearance .kh-rentals-mobile-modal-close {
  background: var(--cc-surface-alt) !important;
  color: var(--cc-accent) !important;
  border-color: var(--cc-border) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-inbox-action-btn:hover,
body.classicore-canvas-uses-theme-appearance .kh-action-button:hover,
body.classicore-canvas-uses-theme-appearance .kh-rentals-toggle-btn:hover,
body.classicore-canvas-uses-theme-appearance .kh-bottom-actions-button:hover,
body.classicore-canvas-uses-theme-appearance .kh-tap-button:hover,
body.classicore-canvas-uses-theme-appearance .kh-modal-close:hover {
  background: var(--cc-hover) !important;
  color: var(--cc-text) !important;
}

/* Forms, controls, checkbox pills, selects, upload zones */
body.classicore-canvas-uses-theme-appearance .kh-wrapper input[type="checkbox"],
body.classicore-canvas-uses-theme-appearance .kh-wrapper input[type="radio"] {
  accent-color: var(--cc-accent) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-checkbox-label,
body.classicore-canvas-uses-theme-appearance .kh-contact-checkbox-pill,
body.classicore-canvas-uses-theme-appearance .kh-filter-lock,
body.classicore-canvas-uses-theme-appearance .kh-mode-badge,
body.classicore-canvas-uses-theme-appearance .classicore-license-fact,
body.classicore-canvas-uses-theme-appearance .classicore-field,
body.classicore-canvas-uses-theme-appearance .classicore-form,
body.classicore-canvas-uses-theme-appearance .classicore-auth {
  background: var(--cc-surface) !important;
  color: var(--cc-text) !important;
  border-color: var(--cc-border) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-contact-checkbox-pill:hover,
body.classicore-canvas-uses-theme-appearance .kh-checkbox-label:hover,
body.classicore-canvas-uses-theme-appearance .kh-profile-avatar-mode-option:hover,
body.classicore-canvas-uses-theme-appearance .kh-field-attachment--rich:hover,
body.classicore-canvas-uses-theme-appearance .kh-attachment-dropzone:hover,
body.classicore-canvas-uses-theme-appearance .kh-slot:hover {
  background: var(--cc-hover) !important;
  border-color: color-mix(in srgb, var(--cc-accent) 50%, var(--cc-border)) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-wrapper input:focus,
body.classicore-canvas-uses-theme-appearance .kh-wrapper select:focus,
body.classicore-canvas-uses-theme-appearance .kh-wrapper textarea:focus,
body.classicore-canvas-uses-theme-appearance .kh-search-input:focus {
  outline: 2px solid var(--cc-focus-ring) !important;
  border-color: var(--cc-accent) !important;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--cc-accent) 14%, transparent) !important;
}

/* Text details and helper copy */
body.classicore-canvas-uses-theme-appearance .kh-field-help,
body.classicore-canvas-uses-theme-appearance .kh-location-help,
body.classicore-canvas-uses-theme-appearance .kh-attachment-counter,
body.classicore-canvas-uses-theme-appearance .kh-attachment-text,
body.classicore-canvas-uses-theme-appearance .kh-plan-copy,
body.classicore-canvas-uses-theme-appearance .kh-account-summary-subtitle,
body.classicore-canvas-uses-theme-appearance .kh-account-summary-text,
body.classicore-canvas-uses-theme-appearance .kh-filter-label,
body.classicore-canvas-uses-theme-appearance .kh-rentals-filter-label,
body.classicore-canvas-uses-theme-appearance .kh-toolbar-label,
body.classicore-canvas-uses-theme-appearance .kh-age-label,
body.classicore-canvas-uses-theme-appearance .kh-airbnb-lock-text,
body.classicore-canvas-uses-theme-appearance .kh-video-label,
body.classicore-canvas-uses-theme-appearance .kh-card-location,
body.classicore-canvas-uses-theme-appearance .kh-card-age,
body.classicore-canvas-uses-theme-appearance .kh-renew-count,
body.classicore-canvas-uses-theme-appearance .kh-viewers-col-last,
body.classicore-canvas-uses-theme-appearance .kh-viewers-col-count,
body.classicore-canvas-uses-theme-appearance .kh-viewers-col-status {
  color: var(--cc-muted) !important;
}

/* Chips, badges, avatars, and status indicators */
body.classicore-canvas-uses-theme-appearance .kh-meta-chip,
body.classicore-canvas-uses-theme-appearance .kh-location-chip,
body.classicore-canvas-uses-theme-appearance .kh-date-label,
body.classicore-canvas-uses-theme-appearance .kh-listing-date-header span,
body.classicore-canvas-uses-theme-appearance .kh-last-seen,
body.classicore-canvas-uses-theme-appearance .kh-last-seen-pill,
body.classicore-canvas-uses-theme-appearance .kh-presence-pill,
body.classicore-canvas-uses-theme-appearance .kh-conversation-status-pill,
body.classicore-canvas-uses-theme-appearance .kh-app-badge,
body.classicore-canvas-uses-theme-appearance .kh-card-badge,
body.classicore-canvas-uses-theme-appearance .kh-profile-verification-owner-badge,
body.classicore-canvas-uses-theme-appearance .kh-renew-count--ok {
  background: var(--cc-chip-bg) !important;
  color: var(--cc-chip-text) !important;
  border-color: color-mix(in srgb, var(--cc-accent) 35%, var(--cc-border)) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-online,
body.classicore-canvas-uses-theme-appearance .kh-online-pill,
body.classicore-canvas-uses-theme-appearance .kh-online-dot,
body.classicore-canvas-uses-theme-appearance .kh-toast--success,
body.classicore-canvas-uses-theme-appearance .kh-success {
  color: var(--cc-success) !important;
  border-color: color-mix(in srgb, var(--cc-success) 45%, var(--cc-border)) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-online-pill,
body.classicore-canvas-uses-theme-appearance .kh-toast--success,
body.classicore-canvas-uses-theme-appearance .kh-success {
  background: color-mix(in srgb, var(--cc-success) 16%, var(--cc-surface)) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-warning,
body.classicore-canvas-uses-theme-appearance .kh-toast--warning,
body.classicore-canvas-uses-theme-appearance .kh-fire-badge,
body.classicore-canvas-uses-theme-appearance .kh-featured-badge {
  background: color-mix(in srgb, var(--cc-warning) 18%, var(--cc-surface)) !important;
  color: var(--cc-warning) !important;
  border-color: color-mix(in srgb, var(--cc-warning) 45%, var(--cc-border)) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-error,
body.classicore-canvas-uses-theme-appearance .kh-toast--error,
body.classicore-canvas-uses-theme-appearance .kh-button--danger,
body.classicore-canvas-uses-theme-appearance .kh-delete,
body.classicore-canvas-uses-theme-appearance .kh-danger {
  background: color-mix(in srgb, var(--cc-danger) 16%, var(--cc-surface)) !important;
  color: var(--cc-danger) !important;
  border-color: color-mix(in srgb, var(--cc-danger) 45%, var(--cc-border)) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-info,
body.classicore-canvas-uses-theme-appearance .kh-toast--info,
body.classicore-canvas-uses-theme-appearance .kh-notice,
body.classicore-canvas-uses-theme-appearance .kh-upload-status {
  background: color-mix(in srgb, var(--cc-accent) 12%, var(--cc-surface)) !important;
  color: var(--cc-text) !important;
  border-color: color-mix(in srgb, var(--cc-accent) 35%, var(--cc-border)) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-user-card-avatar-media,
body.classicore-canvas-uses-theme-appearance .kh-card-thumb,
body.classicore-canvas-uses-theme-appearance .kh-single-thumb,
body.classicore-canvas-uses-theme-appearance .kh-insights-viewer-avatar-wrap,
body.classicore-canvas-uses-theme-appearance .classicore-canvas-account-avatar {
  border-color: color-mix(in srgb, var(--cc-accent) 55%, var(--cc-border)) !important;
  background: var(--cc-surface-alt) !important;
}

/* Modals and overlays */
body.classicore-canvas-uses-theme-appearance .kh-modal,
body.classicore-canvas-uses-theme-appearance .kh-rentals-mobile-modal {
  color: var(--cc-text) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-modal-backdrop,
body.classicore-canvas-uses-theme-appearance .kh-open-modal::before {
  background: color-mix(in srgb, var(--cc-overlay) 72%, transparent) !important;
}

body.classicore-canvas-uses-theme-appearance .kh-modal-dialog,
body.classicore-canvas-uses-theme-appearance .kh-modal-dialog--sm {
  box-shadow: 0 24px 80px color-mix(in srgb, var(--cc-overlay) 45%, transparent) !important;
}

/* Rentals map and Leaflet UI */
body.classicore-canvas-uses-theme-appearance .kh-rentals-map,
body.classicore-canvas-uses-theme-appearance .kh-map,
body.classicore-canvas-uses-theme-appearance .leaflet-container {
  background: var(--cc-surface-alt) !important;
  color: var(--cc-text) !important;
}

body.classicore-canvas-uses-theme-appearance .leaflet-control,
body.classicore-canvas-uses-theme-appearance .leaflet-bar a,
body.classicore-canvas-uses-theme-appearance .leaflet-control-layers,
body.classicore-canvas-uses-theme-appearance .leaflet-control-attribution {
  background: var(--cc-surface) !important;
  color: var(--cc-text) !important;
  border-color: var(--cc-border) !important;
}

body.classicore-canvas-uses-theme-appearance .leaflet-popup-content a {
  color: var(--cc-accent) !important;
}

/* WooCommerce account/shop screens inside Canvas */
body.classicore-canvas-uses-theme-appearance.woocommerce-page .woocommerce,
body.classicore-canvas-uses-theme-appearance .woocommerce-account .woocommerce,
body.classicore-canvas-uses-theme-appearance .woocommerce-MyAccount-content,
body.classicore-canvas-uses-theme-appearance .woocommerce-MyAccount-navigation,
body.classicore-canvas-uses-theme-appearance .woocommerce-MyAccount-navigation ul,
body.classicore-canvas-uses-theme-appearance .woocommerce .products .product,
body.classicore-canvas-uses-theme-appearance .woocommerce div.product,
body.classicore-canvas-uses-theme-appearance .woocommerce-cart-form,
body.classicore-canvas-uses-theme-appearance .woocommerce-checkout-review-order,
body.classicore-canvas-uses-theme-appearance .woocommerce-message,
body.classicore-canvas-uses-theme-appearance .woocommerce-info,
body.classicore-canvas-uses-theme-appearance .woocommerce-error {
  background: var(--cc-surface) !important;
  color: var(--cc-text) !important;
  border-color: var(--cc-border) !important;
}

body.classicore-canvas-uses-theme-appearance .woocommerce-MyAccount-navigation a,
body.classicore-canvas-uses-theme-appearance .woocommerce a,
body.classicore-canvas-uses-theme-appearance .kh-woo-loop-summary a {
  color: var(--cc-accent) !important;
}

body.classicore-canvas-uses-theme-appearance .woocommerce button.button,
body.classicore-canvas-uses-theme-appearance .woocommerce a.button,
body.classicore-canvas-uses-theme-appearance .woocommerce input.button,
body.classicore-canvas-uses-theme-appearance .woocommerce #respond input#submit {
  background: var(--cc-button) !important;
  color: var(--cc-button-text) !important;
  border-color: var(--cc-button) !important;
}

body.classicore-canvas-uses-theme-appearance .woocommerce input.input-text,
body.classicore-canvas-uses-theme-appearance .woocommerce textarea,
body.classicore-canvas-uses-theme-appearance .woocommerce select {
  background: var(--cc-input-bg) !important;
  color: var(--cc-text) !important;
  border-color: var(--cc-border) !important;
}

/* Auth screens and generated pages */
body.classicore-canvas-uses-theme-appearance .classicore-auth,
body.classicore-canvas-uses-theme-appearance .classicore-auth-card,
body.classicore-canvas-uses-theme-appearance .classicore-actions,
body.classicore-canvas-uses-theme-appearance .classicore-appearance-section {
  background: var(--cc-surface) !important;
  color: var(--cc-text) !important;
  border-color: var(--cc-border) !important;
}

body.classicore-canvas-uses-theme-appearance .classicore-button,
body.classicore-canvas-uses-theme-appearance .classicore-button-primary {
  background: var(--cc-button) !important;
  color: var(--cc-button-text) !important;
  border-color: var(--cc-button) !important;
}

/* Keep media visual, but theme their empty/locked states */
body.classicore-canvas-uses-theme-appearance .kh-card-thumb--empty,
body.classicore-canvas-uses-theme-appearance .kh-slot-placeholder,
body.classicore-canvas-uses-theme-appearance .kh-airbnb-lock-icon,
body.classicore-canvas-uses-theme-appearance .kh-video-placeholder {
  background: var(--cc-surface-alt) !important;
  color: var(--cc-muted) !important;
  border-color: var(--cc-border) !important;
}


/* --------------------------------------------------------------------------
   Rentals mobile navigation drawer
   -------------------------------------------------------------------------- */
.classicore-canvas-mobile-menu-toggle,
.classicore-canvas-mobile-menu {
  display: none;
}

@media (max-width: 768px) {
  body.classicore-canvas-rentals-menu .classicore-canvas-mobile-menu-toggle {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    width: 36px;
    height: 34px;
    flex: 0 0 auto;
    padding: 0;
    border: 1px solid rgba(15,23,42,.09);
    border-radius: 12px;
    background: rgba(15,23,42,.05);
    cursor: pointer;
  }

  body.classicore-canvas-rentals-menu .classicore-canvas-mobile-menu-toggle span {
    display: block;
    width: 16px;
    height: 2px;
    border-radius: 999px;
    background: #0f172a;
  }

  body.classicore-canvas-rentals-menu .classicore-canvas-mobile-menu.is-open {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 100001;
  }

  .classicore-canvas-mobile-menu-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15,23,42,.42);
    backdrop-filter: blur(3px);
  }

  .classicore-canvas-mobile-menu-panel {
    position: absolute;
    top: 0;
    right: 0;
    width: min(86vw, 340px);
    height: 100%;
    padding: calc(18px + env(safe-area-inset-top, 0px)) 16px calc(18px + env(safe-area-inset-bottom, 0px));
    overflow-y: auto;
    background: #fff;
    box-shadow: -20px 0 55px rgba(15,23,42,.22);
  }

  body.admin-bar .classicore-canvas-mobile-menu-panel {
    padding-top: calc(64px + env(safe-area-inset-top, 0px));
  }

  .classicore-canvas-mobile-menu-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 14px;
    margin-bottom: 12px;
    border-bottom: 1px solid rgba(15,23,42,.08);
    color: #0f172a;
    font-size: 18px;
  }

  .classicore-canvas-mobile-menu-close {
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 999px;
    background: rgba(15,23,42,.06);
    color: #0f172a;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
  }

  .classicore-canvas-mobile-menu-list {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .classicore-canvas-mobile-menu-list li {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .classicore-canvas-mobile-menu-list a {
    display: flex;
    align-items: center;
    min-height: 46px;
    padding: 0 14px;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 14px;
    background: #f8fafc;
    color: #0f172a;
    text-decoration: none;
    font-size: 14px;
    font-weight: 800;
  }

  .classicore-canvas-mobile-menu-list .current-menu-item > a {
    border-color: rgba(37,99,235,.22);
    background: rgba(37,99,235,.08);
    color: #1d4ed8;
  }

  html.classicore-canvas-mobile-menu-open,
  html.classicore-canvas-mobile-menu-open body {
    overflow: hidden !important;
  }
}

/* Rentals mobile header: the drawer replaces the desktop navigation. */
@media (max-width: 768px) {
  body.logged-in.classicore-canvas-rentals-menu .classicore-canvas-nav,
  body.classicore-canvas-rentals-menu .classicore-canvas-topbar > .classicore-canvas-nav {
    display: none !important;
  }
}

/* Rentals mobile toolbar: keep location, filters and view controls on one row. */
@media (max-width: 520px) {
  body.classicore-canvas-theme .kh-wrapper.kh-index-rentals.kh-rentals-map-view .kh-rentals-header-actions-right {
    display: grid !important;
    grid-template-columns: 42px auto minmax(0, 1fr) !important;
    gap: 8px !important;
    align-items: center !important;
    width: 100% !important;
  }

  body.classicore-canvas-theme .kh-wrapper.kh-index-rentals.kh-rentals-map-view .kh-rentals-location-btn {
    grid-column: 1;
    width: 42px !important;
    min-width: 42px !important;
    margin: 0 !important;
  }

  body.classicore-canvas-theme .kh-wrapper.kh-index-rentals.kh-rentals-map-view .kh-rentals-mobile-filters-btn {
    grid-column: 2;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    white-space: nowrap;
  }

  body.classicore-canvas-theme .kh-wrapper.kh-index-rentals.kh-rentals-map-view .kh-rentals-view-toggle {
    grid-column: 3;
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  body.classicore-canvas-theme .kh-wrapper.kh-index-rentals.kh-rentals-map-view .kh-rentals-view-toggle .kh-rentals-toggle-btn {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
    justify-content: center !important;
    text-align: center !important;
  }

  body.classicore-canvas-theme .kh-wrapper.kh-index-rentals.kh-rentals-map-view .kh-rentals-action-create-alert {
    grid-column: 1 / -1;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    justify-content: center !important;
  }
}


/* Rentals mobile map-only view: aggressively occupy the remaining viewport. */
@media (max-width: 768px) {
  html.cc-rentals-mobile-map-active,
  body.classicore-canvas-theme.cc-rentals-mobile-map-active {
    overflow: hidden !important;
    overscroll-behavior: none;
  }

  body.classicore-canvas-theme.cc-rentals-mobile-map-active .classicore-canvas-site,
  body.classicore-canvas-theme.cc-rentals-mobile-map-active .classicore-canvas-app,
  body.classicore-canvas-theme.cc-rentals-mobile-map-active .classicore-canvas-content,
  body.classicore-canvas-theme.cc-rentals-mobile-map-active .kh-layout,
  body.classicore-canvas-theme.cc-rentals-mobile-map-active .kh-main {
    min-height: 0 !important;
    height: auto !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    overflow: visible !important;
  }

  body.classicore-canvas-theme.cc-rentals-mobile-map-active .kh-wrapper.kh-index-rentals.kh-rentals-map-view.kh-rentals-map-layout-map {
    min-height: 0 !important;
    height: auto !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  body.classicore-canvas-theme.cc-rentals-mobile-map-active .kh-wrapper.kh-index-rentals.kh-rentals-map-view.kh-rentals-map-layout-map .kh-rentals-map-shell {
    position: fixed !important;
    top: var(--cc-mobile-map-top, 360px) !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    z-index: 30 !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 14px !important;
    overflow: hidden !important;
    background: var(--cc-app-bg, #f8fafc) !important;
  }

  body.classicore-canvas-theme.cc-rentals-mobile-map-active .kh-wrapper.kh-index-rentals.kh-rentals-map-view.kh-rentals-map-layout-map #kh-rentals-map {
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 100% !important;
    margin: 0 !important;
    border-radius: 14px 14px 0 0 !important;
  }

  body.classicore-canvas-theme.cc-rentals-mobile-map-active .kh-wrapper.kh-index-rentals.kh-rentals-map-view.kh-rentals-map-layout-map .kh-rentals-map-list,
  body.classicore-canvas-theme.cc-rentals-mobile-map-active .kh-wrapper.kh-index-rentals.kh-rentals-map-view.kh-rentals-map-layout-map #kh-rentals-map-list,
  body.classicore-canvas-theme.cc-rentals-mobile-map-active .classicore-footer-wrapper {
    display: none !important;
  }

  body.classicore-canvas-theme.cc-rentals-mobile-map-active .kh-mobile-bottom-nav,
  body.classicore-canvas-theme.cc-rentals-mobile-map-active .kh-mobile-nav,
  body.classicore-canvas-theme.cc-rentals-mobile-map-active [class*="mobile-bottom"] {
    z-index: 100 !important;
  }
}

/* --------------------------------------------------------------------------
   WooCommerce storefront 2.0
   Uses the Canvas appearance palette so store, cart, checkout, and account
   automatically follow each site's selected colors.
   -------------------------------------------------------------------------- */
body.classicore-canvas-theme.woocommerce,
body.classicore-canvas-theme.woocommerce-page {
  background: var(--cc-app-bg) !important;
  color: var(--cc-text);
}

/* Shared store navigation shown beneath the Canvas header. */
.classicore-canvas-storebar {
  position: sticky;
  top: var(--classicore-canvas-topbar-h);
  z-index: 9985;
  width: 100%;
  border-bottom: 1px solid var(--cc-border);
  background: color-mix(in srgb, var(--cc-surface) 94%, transparent);
  backdrop-filter: blur(16px);
  box-shadow: 0 8px 26px rgba(15, 23, 42, 0.05);
}

body.admin-bar .classicore-canvas-storebar {
  top: calc(var(--classicore-canvas-topbar-h) + 32px);
}

.classicore-canvas-storebar-inner {
  width: min(1180px, calc(100vw - 32px));
  min-height: 52px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
}

.classicore-canvas-storebar-inner::-webkit-scrollbar {
  display: none;
}

.classicore-canvas-storebar-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: 12px;
  color: var(--cc-muted);
  text-decoration: none;
  font-size: 13px;
  font-weight: 850;
  line-height: 1;
  white-space: nowrap;
  transition: background .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}

.classicore-canvas-storebar-link:hover,
.classicore-canvas-storebar-link.is-active {
  border-color: color-mix(in srgb, var(--cc-accent) 32%, var(--cc-border));
  background: color-mix(in srgb, var(--cc-accent) 11%, var(--cc-surface));
  color: var(--cc-accent);
  transform: translateY(-1px);
}

.classicore-canvas-storebar-count {
  display: inline-grid;
  place-items: center;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--cc-button);
  color: var(--cc-button-text);
  font-size: 11px;
  font-weight: 900;
}

.classicore-canvas-storebar-back {
  margin-left: auto;
  border-color: var(--cc-border);
  background: var(--cc-surface-alt);
  color: var(--cc-text);
}

/* Main WooCommerce surfaces. */
body.classicore-canvas-theme.woocommerce .classicore-canvas-content > .product,
body.classicore-canvas-theme.woocommerce div.product,
body.classicore-canvas-theme.woocommerce-page .woocommerce,
body.classicore-canvas-theme.woocommerce-cart .classicore-canvas-content,
body.classicore-canvas-theme.woocommerce-checkout .classicore-canvas-content,
body.classicore-canvas-theme.woocommerce-account .classicore-canvas-content {
  border-color: var(--cc-border) !important;
  background: var(--cc-surface) !important;
  color: var(--cc-text) !important;
  box-shadow: 0 18px 55px rgba(15, 23, 42, 0.08) !important;
}

body.classicore-canvas-theme.woocommerce .product_title,
body.classicore-canvas-theme.woocommerce-page .entry-title,
body.classicore-canvas-theme.woocommerce-cart .entry-title,
body.classicore-canvas-theme.woocommerce-checkout .entry-title,
body.classicore-canvas-theme.woocommerce-account .entry-title,
body.classicore-canvas-theme.woocommerce h1,
body.classicore-canvas-theme.woocommerce h2,
body.classicore-canvas-theme.woocommerce h3,
body.classicore-canvas-theme.woocommerce-page h1,
body.classicore-canvas-theme.woocommerce-page h2,
body.classicore-canvas-theme.woocommerce-page h3 {
  color: var(--cc-text) !important;
}

body.classicore-canvas-theme.woocommerce p,
body.classicore-canvas-theme.woocommerce-page p,
body.classicore-canvas-theme .wc-block-components-product-metadata,
body.classicore-canvas-theme .wc-block-components-product-metadata__description,
body.classicore-canvas-theme .wc-block-components-address-card address {
  color: var(--cc-muted) !important;
}

body.classicore-canvas-theme.woocommerce a,
body.classicore-canvas-theme.woocommerce-page a,
body.classicore-canvas-theme .wc-block-components-product-name,
body.classicore-canvas-theme .wc-block-components-totals-coupon-link {
  color: var(--cc-accent);
}

body.classicore-canvas-theme.woocommerce a:focus-visible,
body.classicore-canvas-theme.woocommerce-page a:focus-visible,
body.classicore-canvas-theme .wc-block-components-button:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--cc-accent) 38%, transparent) !important;
  outline-offset: 2px;
}

/* Buttons: only true action buttons receive the primary treatment. */
body.classicore-canvas-theme.woocommerce a.button,
body.classicore-canvas-theme.woocommerce button.button,
body.classicore-canvas-theme.woocommerce input.button,
body.classicore-canvas-theme.woocommerce #respond input#submit,
body.classicore-canvas-theme.woocommerce-page a.button,
body.classicore-canvas-theme.woocommerce-page button.button,
body.classicore-canvas-theme.woocommerce-page input.button,
body.classicore-canvas-theme .wc-block-cart__submit-button,
body.classicore-canvas-theme .wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button,
body.classicore-canvas-theme .wc-block-grid__product-add-to-cart .wp-block-button__link,
body.classicore-canvas-theme .wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button,
body.classicore-canvas-theme .wp-block-woocommerce-checkout-actions-block .wc-block-components-button {
  border: 1px solid var(--cc-button) !important;
  border-radius: 14px !important;
  background: var(--cc-button) !important;
  color: var(--cc-button-text) !important;
  box-shadow: 0 12px 28px color-mix(in srgb, var(--cc-button) 23%, transparent) !important;
}

body.classicore-canvas-theme.woocommerce a.button:hover,
body.classicore-canvas-theme.woocommerce button.button:hover,
body.classicore-canvas-theme.woocommerce input.button:hover,
body.classicore-canvas-theme.woocommerce-page a.button:hover,
body.classicore-canvas-theme.woocommerce-page button.button:hover,
body.classicore-canvas-theme.woocommerce-page input.button:hover,
body.classicore-canvas-theme .wc-block-cart__submit-button:hover,
body.classicore-canvas-theme .wc-block-checkout__actions_row .wc-block-components-button:hover,
body.classicore-canvas-theme .wc-block-grid__product-add-to-cart .wp-block-button__link:hover {
  background: color-mix(in srgb, var(--cc-button) 88%, var(--cc-text)) !important;
  border-color: color-mix(in srgb, var(--cc-button) 88%, var(--cc-text)) !important;
  color: var(--cc-button-text) !important;
  box-shadow: 0 16px 34px color-mix(in srgb, var(--cc-button) 29%, transparent) !important;
}

/* Link-style controls must not become large solid squares. */
body.classicore-canvas-theme .wc-block-components-button.is-link,
body.classicore-canvas-theme .wc-block-components-totals-coupon-link,
body.classicore-canvas-theme .wc-block-cart-item__remove-link {
  min-height: auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--cc-accent) !important;
  box-shadow: none !important;
  transform: none !important;
}

/* Fix the mystery square on WooCommerce block notices. */
body.classicore-canvas-theme .wc-block-components-notice-banner__dismiss,
body.classicore-canvas-theme button.wc-block-components-notice-banner__dismiss {
  position: relative !important;
  flex: 0 0 34px !important;
  width: 34px !important;
  min-width: 34px !important;
  height: 34px !important;
  min-height: 34px !important;
  margin: 0 0 0 12px !important;
  padding: 0 !important;
  border: 1px solid color-mix(in srgb, currentColor 18%, transparent) !important;
  border-radius: 10px !important;
  background: transparent !important;
  color: inherit !important;
  box-shadow: none !important;
  transform: none !important;
  opacity: .72;
}

body.classicore-canvas-theme .wc-block-components-notice-banner__dismiss:hover,
body.classicore-canvas-theme button.wc-block-components-notice-banner__dismiss:hover {
  background: color-mix(in srgb, currentColor 8%, transparent) !important;
  color: inherit !important;
  box-shadow: none !important;
  transform: none !important;
  opacity: 1;
}

body.classicore-canvas-theme .wc-block-components-notice-banner__dismiss svg {
  display: block !important;
  width: 16px !important;
  height: 16px !important;
  margin: auto !important;
  fill: currentColor !important;
}

/* Notices. */
body.classicore-canvas-theme .wc-block-components-notice-banner,
body.classicore-canvas-theme .woocommerce-message,
body.classicore-canvas-theme .woocommerce-info,
body.classicore-canvas-theme .woocommerce-error {
  display: flex;
  align-items: center;
  min-height: 62px;
  margin: 0 0 20px !important;
  padding: 14px 14px 14px 18px !important;
  border: 1px solid var(--cc-border) !important;
  border-left: 4px solid var(--cc-accent) !important;
  border-radius: 16px !important;
  background: color-mix(in srgb, var(--cc-accent) 7%, var(--cc-surface)) !important;
  color: var(--cc-text) !important;
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.06) !important;
}

body.classicore-canvas-theme .wc-block-components-notice-banner.is-error,
body.classicore-canvas-theme .woocommerce-error {
  border-left-color: var(--cc-danger) !important;
  background: color-mix(in srgb, var(--cc-danger) 7%, var(--cc-surface)) !important;
}

body.classicore-canvas-theme .wc-block-components-notice-banner.is-success,
body.classicore-canvas-theme .woocommerce-message {
  border-left-color: var(--cc-success) !important;
  background: color-mix(in srgb, var(--cc-success) 7%, var(--cc-surface)) !important;
}

body.classicore-canvas-theme .wc-block-components-notice-banner > svg,
body.classicore-canvas-theme .wc-block-components-notice-banner__content {
  color: inherit !important;
}

/* Product archive/store cards. */
body.classicore-canvas-theme.woocommerce ul.products li.product,
body.classicore-canvas-theme.woocommerce-page ul.products li.product,
body.classicore-canvas-theme .wc-block-grid__product {
  overflow: hidden;
  border: 1px solid var(--cc-border) !important;
  border-radius: 20px !important;
  background: var(--cc-surface) !important;
  color: var(--cc-text) !important;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.06) !important;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

body.classicore-canvas-theme.woocommerce ul.products li.product:hover,
body.classicore-canvas-theme.woocommerce-page ul.products li.product:hover,
body.classicore-canvas-theme .wc-block-grid__product:hover {
  transform: translateY(-3px);
  border-color: color-mix(in srgb, var(--cc-accent) 38%, var(--cc-border)) !important;
  box-shadow: 0 18px 38px rgba(15, 23, 42, 0.10) !important;
}

body.classicore-canvas-theme.woocommerce ul.products li.product img,
body.classicore-canvas-theme.woocommerce-page ul.products li.product img,
body.classicore-canvas-theme .wc-block-grid__product-image img {
  border-radius: 15px !important;
  background: var(--cc-surface-alt) !important;
}

body.classicore-canvas-theme.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.classicore-canvas-theme .wc-block-grid__product-title,
body.classicore-canvas-theme .wc-block-components-product-name {
  color: var(--cc-text) !important;
  font-weight: 900 !important;
}

body.classicore-canvas-theme.woocommerce .price,
body.classicore-canvas-theme .wc-block-grid__product-price,
body.classicore-canvas-theme .wc-block-components-product-price,
body.classicore-canvas-theme .wc-block-components-formatted-money-amount {
  color: var(--cc-text) !important;
  font-weight: 900 !important;
}

body.classicore-canvas-theme.woocommerce span.onsale,
body.classicore-canvas-theme .wc-block-grid__product-onsale {
  border: 1px solid color-mix(in srgb, var(--cc-accent) 32%, var(--cc-border)) !important;
  border-radius: 999px !important;
  background: var(--cc-chip-bg) !important;
  color: var(--cc-chip-text) !important;
  font-weight: 900 !important;
}

/* Cart block layout and product rows. */
body.classicore-canvas-theme.woocommerce-cart .wp-block-woocommerce-cart,
body.classicore-canvas-theme.woocommerce-cart .wc-block-cart {
  color: var(--cc-text) !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart__main {
  padding-right: clamp(18px, 3vw, 38px) !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-items {
  border-collapse: separate !important;
  border-spacing: 0 12px !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-items thead th,
body.classicore-canvas-theme.woocommerce-cart .wc-block-cart__totals-title {
  border-color: var(--cc-border) !important;
  color: var(--cc-muted) !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-items__row {
  background: var(--cc-surface) !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-items__row td {
  padding-top: 18px !important;
  padding-bottom: 18px !important;
  border-top: 1px solid var(--cc-border) !important;
  border-bottom: 1px solid var(--cc-border) !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-items__row td:first-child {
  padding-left: 16px !important;
  border-left: 1px solid var(--cc-border) !important;
  border-radius: 16px 0 0 16px;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-items__row td:last-child {
  padding-right: 16px !important;
  border-right: 1px solid var(--cc-border) !important;
  border-radius: 0 16px 16px 0;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-item__image img {
  border: 1px solid var(--cc-border) !important;
  border-radius: 14px !important;
  background: var(--cc-surface-alt) !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-item__wrap {
  color: var(--cc-text) !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart__sidebar,
body.classicore-canvas-theme.woocommerce-checkout .wc-block-checkout__sidebar {
  align-self: start;
  padding: 22px !important;
  border: 1px solid var(--cc-border) !important;
  border-radius: 20px !important;
  background: var(--cc-surface-alt) !important;
  color: var(--cc-text) !important;
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.07) !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart__sidebar {
  position: sticky;
  top: calc(var(--classicore-canvas-topbar-h) + 72px);
}

body.admin-bar.classicore-canvas-theme.woocommerce-cart .wc-block-cart__sidebar {
  top: calc(var(--classicore-canvas-topbar-h) + 104px);
}

body.classicore-canvas-theme .wc-block-components-totals-wrapper,
body.classicore-canvas-theme .wc-block-components-order-summary,
body.classicore-canvas-theme .wc-block-components-checkout-step,
body.classicore-canvas-theme .wc-block-checkout__order-notes {
  border-color: var(--cc-border) !important;
}

body.classicore-canvas-theme .wc-block-components-totals-item__label,
body.classicore-canvas-theme .wc-block-components-totals-item__value,
body.classicore-canvas-theme .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.classicore-canvas-theme .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  color: var(--cc-text) !important;
}

/* Inputs, coupon panels, selectors, and quantity controls. */
body.classicore-canvas-theme.woocommerce input.input-text,
body.classicore-canvas-theme.woocommerce textarea,
body.classicore-canvas-theme.woocommerce select,
body.classicore-canvas-theme.woocommerce-page input.input-text,
body.classicore-canvas-theme.woocommerce-page textarea,
body.classicore-canvas-theme.woocommerce-page select,
body.classicore-canvas-theme .wc-block-components-text-input input,
body.classicore-canvas-theme .wc-block-components-combobox .wc-block-components-combobox-control input,
body.classicore-canvas-theme .wc-block-components-quantity-selector,
body.classicore-canvas-theme .wc-block-components-country-input,
body.classicore-canvas-theme .wc-block-components-state-input {
  border-color: var(--cc-border) !important;
  border-radius: 13px !important;
  background: var(--cc-input-bg) !important;
  color: var(--cc-text) !important;
}

body.classicore-canvas-theme .wc-block-components-text-input input:focus,
body.classicore-canvas-theme .wc-block-components-combobox .wc-block-components-combobox-control input:focus,
body.classicore-canvas-theme.woocommerce input.input-text:focus,
body.classicore-canvas-theme.woocommerce textarea:focus,
body.classicore-canvas-theme.woocommerce select:focus {
  border-color: var(--cc-accent) !important;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--cc-accent) 14%, transparent) !important;
  outline: 0 !important;
}

body.classicore-canvas-theme .wc-block-components-totals-coupon__form,
body.classicore-canvas-theme .wc-block-components-totals-coupon {
  color: var(--cc-text) !important;
}

/* Legacy cart/checkout and My Account retain the same palette. */
body.classicore-canvas-theme.woocommerce table.shop_table,
body.classicore-canvas-theme.woocommerce-page table.shop_table,
body.classicore-canvas-theme.woocommerce-cart .cart-collaterals .cart_totals,
body.classicore-canvas-theme.woocommerce-checkout #customer_details,
body.classicore-canvas-theme.woocommerce-checkout #order_review,
body.classicore-canvas-theme.woocommerce-account .woocommerce-MyAccount-navigation,
body.classicore-canvas-theme.woocommerce-account .woocommerce-MyAccount-content {
  border-color: var(--cc-border) !important;
  background: var(--cc-surface) !important;
  color: var(--cc-text) !important;
}

body.classicore-canvas-theme.woocommerce table.shop_table th,
body.classicore-canvas-theme.woocommerce table.shop_table td,
body.classicore-canvas-theme.woocommerce-page table.shop_table th,
body.classicore-canvas-theme.woocommerce-page table.shop_table td {
  border-color: var(--cc-border) !important;
  color: var(--cc-text) !important;
}

body.classicore-canvas-theme.woocommerce-account .woocommerce-MyAccount-navigation a {
  background: var(--cc-surface-alt) !important;
  color: var(--cc-text) !important;
}

body.classicore-canvas-theme.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
body.classicore-canvas-theme.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
  background: color-mix(in srgb, var(--cc-accent) 12%, var(--cc-surface)) !important;
  color: var(--cc-accent) !important;
}

/* Empty cart and order confirmation states. */
body.classicore-canvas-theme .wc-block-cart__empty-cart__title,
body.classicore-canvas-theme .wc-block-cart__empty-cart__title.with-empty-cart-icon::before,
body.classicore-canvas-theme .woocommerce-thankyou-order-received {
  color: var(--cc-text) !important;
}

@media (max-width: 782px) {
  body.admin-bar .classicore-canvas-storebar {
    top: calc(var(--classicore-canvas-topbar-h) + 46px);
  }

  .classicore-canvas-storebar-inner {
    width: calc(100vw - 20px);
    min-height: 48px;
  }

  .classicore-canvas-storebar-link {
    min-height: 34px;
    padding: 0 10px;
  }

  .classicore-canvas-storebar-back {
    margin-left: 0;
  }
}

@media (max-width: 900px) {
  body.classicore-canvas-theme.woocommerce-cart .wc-block-cart__main {
    padding-right: 0 !important;
  }

  body.classicore-canvas-theme.woocommerce-cart .wc-block-cart__sidebar {
    position: static;
    margin-top: 18px;
  }
}

@media (max-width: 600px) {
  body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-items__row td:first-child,
  body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-items__row td:last-child {
    border-radius: 0;
  }

  body.classicore-canvas-theme.woocommerce-cart .wc-block-cart__sidebar,
  body.classicore-canvas-theme.woocommerce-checkout .wc-block-checkout__sidebar {
    padding: 16px !important;
    border-radius: 17px !important;
  }
}

/* Final WooCommerce Blocks specificity pass. The earlier compatibility layer
   intentionally targeted every block button; these rules keep real controls
   themed while leaving compact notice controls compact. */
body.classicore-canvas-theme.woocommerce-page .wc-block-components-button:not(.is-link):not(.wc-block-components-notice-banner__dismiss),
body.classicore-canvas-theme.woocommerce-cart .wc-block-components-button:not(.is-link):not(.wc-block-components-notice-banner__dismiss),
body.classicore-canvas-theme.woocommerce-checkout .wc-block-components-button:not(.is-link):not(.wc-block-components-notice-banner__dismiss) {
  border-color: var(--cc-button) !important;
  background: var(--cc-button) !important;
  color: var(--cc-button-text) !important;
  box-shadow: 0 12px 28px color-mix(in srgb, var(--cc-button) 23%, transparent) !important;
}

body.classicore-canvas-theme.woocommerce-page .wc-block-components-button:not(.is-link):not(.wc-block-components-notice-banner__dismiss):hover,
body.classicore-canvas-theme.woocommerce-cart .wc-block-components-button:not(.is-link):not(.wc-block-components-notice-banner__dismiss):hover,
body.classicore-canvas-theme.woocommerce-checkout .wc-block-components-button:not(.is-link):not(.wc-block-components-notice-banner__dismiss):hover {
  border-color: color-mix(in srgb, var(--cc-button) 88%, var(--cc-text)) !important;
  background: color-mix(in srgb, var(--cc-button) 88%, var(--cc-text)) !important;
  color: var(--cc-button-text) !important;
  box-shadow: 0 16px 34px color-mix(in srgb, var(--cc-button) 29%, transparent) !important;
}

body.classicore-canvas-theme.woocommerce-page .wc-block-components-notice-banner button.wc-block-components-notice-banner__dismiss,
body.classicore-canvas-theme.woocommerce-cart .wc-block-components-notice-banner button.wc-block-components-notice-banner__dismiss,
body.classicore-canvas-theme.woocommerce-checkout .wc-block-components-notice-banner button.wc-block-components-notice-banner__dismiss {
  flex: 0 0 34px !important;
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  height: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  margin: 0 0 0 12px !important;
  padding: 0 !important;
  border: 1px solid color-mix(in srgb, currentColor 18%, transparent) !important;
  border-radius: 10px !important;
  background: transparent !important;
  color: inherit !important;
  box-shadow: none !important;
  transform: none !important;
  filter: none !important;
}

body.classicore-canvas-theme.woocommerce-page .wc-block-components-notice-banner button.wc-block-components-notice-banner__dismiss:hover,
body.classicore-canvas-theme.woocommerce-cart .wc-block-components-notice-banner button.wc-block-components-notice-banner__dismiss:hover,
body.classicore-canvas-theme.woocommerce-checkout .wc-block-components-notice-banner button.wc-block-components-notice-banner__dismiss:hover {
  background: color-mix(in srgb, currentColor 8%, transparent) !important;
  color: inherit !important;
  box-shadow: none !important;
  transform: none !important;
  filter: none !important;
}


/* --------------------------------------------------------------------------
   v1.0.40 — brand-colour bridge for Discovery maps and app accent rails
   --------------------------------------------------------------------------
   ClassiCore add-ons may use their own variable names or older hard-coded blue
   controls. Canvas maps those controls back to the active site accent so a red,
   green, purple, or other brand stays consistent across the full app.
*/
body.classicore-canvas-theme {
  --kh-primary: var(--cc-accent);
  --kh-primary-color: var(--cc-accent);
  --kh-accent: var(--cc-accent);
  --classicore-primary: var(--cc-accent);
  --classicore-accent: var(--cc-accent);
  --ccdv-primary: var(--cc-accent);
  --ccdv-accent: var(--cc-accent);
  --discovery-primary: var(--cc-accent);
  --discovery-accent: var(--cc-accent);
  --map-primary: var(--cc-accent);
  --map-accent: var(--cc-accent);
}

/* The slim rail on the Quick Actions card is an interface accent, not a fixed
   blue decoration. It now follows the same Brand accent colour as buttons,
   links, badges, the store, and map controls. */
body.classicore-canvas-uses-theme-appearance .kh-sidebar::before,
body.classicore-canvas-uses-theme-appearance .kh-sidebar-column .kh-sidebar::before {
  background: linear-gradient(
    180deg,
    var(--cc-accent) 0%,
    color-mix(in srgb, var(--cc-accent) 72%, #000 28%) 100%
  ) !important;
  opacity: .95 !important;
}

/* Discovery / nearby-map add-ons: pass the Canvas palette into common add-on
   roots even when the add-on ships its own CSS variables. */
body.classicore-canvas-uses-theme-appearance [class*="discovery"],
body.classicore-canvas-uses-theme-appearance [id*="discovery"],
body.classicore-canvas-uses-theme-appearance [class*="nearby-map"],
body.classicore-canvas-uses-theme-appearance [class*="profile-map"] {
  --kh-primary: var(--cc-accent);
  --kh-primary-color: var(--cc-accent);
  --kh-accent: var(--cc-accent);
  --classicore-primary: var(--cc-accent);
  --classicore-accent: var(--cc-accent);
  --ccdv-primary: var(--cc-accent);
  --ccdv-accent: var(--cc-accent);
  --discovery-primary: var(--cc-accent);
  --discovery-accent: var(--cc-accent);
  --map-primary: var(--cc-accent);
  --map-accent: var(--cc-accent);
}

/* Main actions on the Discovery map. These selectors intentionally cover both
   current and future ClassiCore naming conventions without recolouring Leaflet
   zoom buttons or green live/online status indicators. */
body.classicore-canvas-uses-theme-appearance [class*="discovery"] :is(
  .button-primary,
  .kh-button-primary,
  .kh-btn-primary,
  [class*="view-profiles"],
  [class*="view-results"],
  [class*="search-submit"],
  [class*="location-submit"],
  [class*="map-submit"]
),
body.classicore-canvas-uses-theme-appearance [id*="discovery"] :is(
  .button-primary,
  .kh-button-primary,
  .kh-btn-primary,
  [class*="view-profiles"],
  [class*="view-results"],
  [class*="search-submit"],
  [class*="location-submit"],
  [class*="map-submit"]
),
body.classicore-canvas-uses-theme-appearance :is(
  [id*="view-profiles"],
  [class*="view-profiles"],
  [id*="map-search-submit"],
  [class*="map-search-submit"]
) {
  background: var(--cc-button) !important;
  background-image: linear-gradient(
    135deg,
    color-mix(in srgb, var(--cc-button) 88%, #fff 12%),
    color-mix(in srgb, var(--cc-button) 78%, #000 22%)
  ) !important;
  border-color: var(--cc-button) !important;
  color: var(--cc-button-text) !important;
  -webkit-text-fill-color: var(--cc-button-text) !important;
}

/* Selected radius/distance pills and selected map-control states. */
body.classicore-canvas-uses-theme-appearance :is(
  [class*="discovery"],
  [id*="discovery"],
  [class*="nearby-map"],
  [class*="profile-map"]
) :is(
  [class*="radius"] button.is-active,
  [class*="radius"] button.active,
  [class*="radius"] [aria-pressed="true"],
  [class*="distance"] button.is-active,
  [class*="distance"] button.active,
  [class*="distance"] [aria-pressed="true"],
  [class*="map-control"].is-active,
  [class*="map-control"].active,
  [class*="map-control"][aria-pressed="true"]
),
body.classicore-canvas-uses-theme-appearance :is(
  [class*="radius"],
  [class*="distance"]
) input:checked + label {
  background: var(--cc-accent) !important;
  border-color: var(--cc-accent) !important;
  color: var(--cc-button-text) !important;
  -webkit-text-fill-color: var(--cc-button-text) !important;
  box-shadow: 0 8px 20px color-mix(in srgb, var(--cc-accent) 24%, transparent) !important;
}

/* Small circular map/search action buttons, including the arrow beside the
   location field. */
body.classicore-canvas-uses-theme-appearance :is(
  [class*="discovery"],
  [id*="discovery"],
  [class*="nearby-map"],
  [class*="profile-map"]
) :is(
  button[class*="search"],
  button[class*="locate"],
  button[class*="location-go"],
  button[class*="submit"]
):not(.leaflet-control-zoom-in):not(.leaflet-control-zoom-out):not([class*="live"]):not([class*="online"]) {
  border-color: var(--cc-accent) !important;
}

body.classicore-canvas-uses-theme-appearance :is(
  [class*="discovery"],
  [id*="discovery"],
  [class*="nearby-map"],
  [class*="profile-map"]
) :is(input, select, textarea):focus {
  border-color: var(--cc-accent) !important;
  outline-color: var(--cc-accent) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--cc-accent) 16%, transparent) !important;
}

/* Keep ordinary Leaflet controls neutral, but use the brand colour for their
   hover/focus state so they still feel connected to the site. */
body.classicore-canvas-uses-theme-appearance .leaflet-bar a:hover,
body.classicore-canvas-uses-theme-appearance .leaflet-bar a:focus-visible,
body.classicore-canvas-uses-theme-appearance .leaflet-control-layers-toggle:focus-visible {
  color: var(--cc-accent) !important;
  border-color: var(--cc-accent) !important;
  outline: 2px solid color-mix(in srgb, var(--cc-accent) 35%, transparent) !important;
  outline-offset: 1px;
}

/* --------------------------------------------------------------------------
   v1.0.41 — force the Discovery map's main result action onto the brand palette
   --------------------------------------------------------------------------
   The Discovery add-on can create and restyle its View Profiles control after
   the main stylesheet has loaded. The companion script marks that live control
   so the theme accent wins regardless of the add-on's generated class name.
*/
body.classicore-canvas-uses-theme-appearance .classicore-canvas-map-primary-action {
  background-color: var(--cc-accent) !important;
  background-image: linear-gradient(
    135deg,
    color-mix(in srgb, var(--cc-accent) 88%, #fff 12%),
    color-mix(in srgb, var(--cc-accent) 78%, #000 22%)
  ) !important;
  border-color: var(--cc-accent) !important;
  color: var(--cc-button-text, #fff) !important;
  -webkit-text-fill-color: var(--cc-button-text, #fff) !important;
  box-shadow: 0 10px 24px color-mix(in srgb, var(--cc-accent) 24%, transparent) !important;
}

body.classicore-canvas-uses-theme-appearance .classicore-canvas-map-primary-action:hover,
body.classicore-canvas-uses-theme-appearance .classicore-canvas-map-primary-action:focus-visible {
  background-image: linear-gradient(
    135deg,
    color-mix(in srgb, var(--cc-accent) 82%, #fff 18%),
    color-mix(in srgb, var(--cc-accent) 68%, #000 32%)
  ) !important;
  border-color: color-mix(in srgb, var(--cc-accent) 76%, #000 24%) !important;
}

/* --------------------------------------------------------------------------
   v1.0.42 — logout confirmation contrast
   --------------------------------------------------------------------------
   Global link/accent rules can otherwise recolour the logout link text to the
   site accent, leaving red-on-red text. Keep this destructive action as a true
   high-contrast button in every link state.
*/
body .classicore-canvas-account-modal a.classicore-canvas-confirm-logout,
body .classicore-canvas-account-modal a.classicore-canvas-confirm-logout:link,
body .classicore-canvas-account-modal a.classicore-canvas-confirm-logout:visited,
body .classicore-canvas-account-modal a.classicore-canvas-confirm-logout:hover,
body .classicore-canvas-account-modal a.classicore-canvas-confirm-logout:active,
body .classicore-canvas-account-modal a.classicore-canvas-confirm-logout:focus {
  background: #dc2626 !important;
  border-color: #dc2626 !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-decoration: none !important;
}

body .classicore-canvas-account-modal a.classicore-canvas-confirm-logout:hover {
  background: #b91c1c !important;
  border-color: #b91c1c !important;
}

body .classicore-canvas-account-modal a.classicore-canvas-confirm-logout:focus-visible {
  outline: 3px solid rgba(220, 38, 38, 0.28) !important;
  outline-offset: 2px;
}


/* --------------------------------------------------------------------------
   v1.0.45 — logged-out Discovery registration button contrast
   --------------------------------------------------------------------------
   The ClassiCore guest gate renders its primary Register action as an anchor.
   Canvas's general app-link accent rule can therefore repaint its text with the
   same brand colour used by the button background. Keep registration CTAs on
   the configured button-text colour while leaving the secondary Log In action
   as an outlined accent link.
*/
body.classicore-canvas-uses-theme-appearance :is(
  .kh-auth-required,
  [class*="auth-required"],
  [class*="guest-cta"],
  [class*="guest-gate"],
  [class*="join-conversation"]
) a:is(
  [href*="action=register"],
  [href*="/register"],
  [href*="signup"],
  [href*="sign-up"],
  [class*="register"]
),
body.classicore-canvas-uses-theme-appearance :is(
  .kh-auth-required,
  [class*="auth-required"],
  [class*="guest-cta"],
  [class*="guest-gate"],
  [class*="join-conversation"]
) a:is(
  [href*="action=register"],
  [href*="/register"],
  [href*="signup"],
  [href*="sign-up"],
  [class*="register"]
):is(:link, :visited, :hover, :active, :focus) {
  color: var(--cc-button-text, #ffffff) !important;
  -webkit-text-fill-color: var(--cc-button-text, #ffffff) !important;
  text-decoration: none !important;
}


/* --------------------------------------------------------------------------
   v1.0.46 — robust Discovery guest Register action targeting
   --------------------------------------------------------------------------
   Some Discovery builds render the guest Register pill as a button, or use
   markup that does not expose a predictable register URL/class. The companion
   script identifies the visible action by its label and marks it with this
   stable theme class. Keep it high contrast and fully interactive on touch.
*/
body.classicore-canvas-uses-theme-appearance .classicore-canvas-discovery-register-action,
body.classicore-canvas-uses-theme-appearance .classicore-canvas-discovery-register-action:is(:link, :visited, :hover, :active, :focus) {
  color: var(--cc-button-text, #ffffff) !important;
  -webkit-text-fill-color: var(--cc-button-text, #ffffff) !important;
  text-decoration: none !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  touch-action: manipulation;
  position: relative;
  z-index: 3;
}

body.classicore-canvas-uses-theme-appearance .classicore-canvas-discovery-guest-actions {
  pointer-events: auto !important;
  position: relative;
  z-index: 2;
}

/* --------------------------------------------------------------------------
   v1.0.48 - Mobile app canvas alignment

   Keep the app background full-bleed, but give ordinary mobile app content a
   small, equal gutter. ClassiCore browse wrappers sometimes use 100vw, which
   includes the browser scrollbar and can make the page look shifted to the
   right in narrow windows. Converting those wrappers back to the available
   content width keeps both sides visually balanced without boxing the page.
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
  body.classicore-canvas-theme.classicore-app-page .classicore-canvas-app {
    width: 100%;
    max-width: 100%;
    margin: 0;
    background: var(--cc-app-bg, #f6f8fb);
  }

  body.classicore-canvas-theme.classicore-app-page .classicore-canvas-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  body.classicore-canvas-theme.classicore-app-page .classicore-canvas-content > :where(
    .ccdv-responsive-switch,
    .ccdv-auto-wrap,
    .kh-wrapper.kh-index:not(.kh-index-rentals)
  ) {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.classicore-canvas-theme.classicore-app-page .kh-wrapper.kh-index:not(.kh-index-rentals) {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}



/* =========================================================
   Found & Felt 1.2 — live song form + human slider
   ========================================================= */

.ffm-human-check {
  grid-column: 1 / -1;
  padding: 26px 0 28px;
  border-bottom: 1px solid rgba(207,217,234,.16);
}

.ffm-human-check__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
}

.ffm-human-check__label {
  color: #778296;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .19em;
  text-transform: uppercase;
}

.ffm-human-check__state {
  color: #7b8698;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.ffm-human-check.is-verified .ffm-human-check__state {
  color: #dfe8f7;
}

.ffm-human-slider {
  width: 100%;
  height: 28px;
  margin: 0;
  padding: 0;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  cursor: ew-resize;
}

.ffm-human-slider:focus {
  outline: none;
}

.ffm-human-slider::-webkit-slider-runnable-track {
  height: 2px;
  background: linear-gradient(
    90deg,
    #cbd7e9 0%,
    #cbd7e9 var(--ffm-human-progress, 0%),
    rgba(207,217,234,.20) var(--ffm-human-progress, 0%),
    rgba(207,217,234,.20) 100%
  );
}

.ffm-human-slider::-webkit-slider-thumb {
  width: 26px;
  height: 26px;
  margin-top: -12px;
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid rgba(221,229,242,.75);
  border-radius: 0;
  background: #0a0d13;
  box-shadow: 0 0 22px rgba(120,174,233,.20);
}

.ffm-human-slider::-moz-range-track {
  height: 2px;
  background: rgba(207,217,234,.20);
}

.ffm-human-slider::-moz-range-progress {
  height: 2px;
  background: #cbd7e9;
}

.ffm-human-slider::-moz-range-thumb {
  width: 26px;
  height: 26px;
  border: 1px solid rgba(221,229,242,.75);
  border-radius: 0;
  background: #0a0d13;
  box-shadow: 0 0 22px rgba(120,174,233,.20);
}

.ffm-form-status {
  min-height: 24px;
  margin: 18px 0 0;
  color: #9aa5b6;
  font-size: 12px;
  line-height: 1.55;
}

.ffm-form-status.is-success {
  color: #dfe8f7;
}

.ffm-form-status.is-error {
  color: #f0b9b9;
}

.ffm-form .ffm-action[type="submit"] {
  border-left: 0;
  border-right: 0;
  border-radius: 0;
  background: transparent;
  font-family: inherit;
  cursor: pointer;
}

.ffm-form .ffm-action[type="submit"]:disabled {
  opacity: .38;
  cursor: not-allowed;
}

.ffm-honeypot {
  position: absolute !important;
  left: -99999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Sharp, minimal global scroll-to-top control. */
.ffm-scroll-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 99990;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(207,217,234,.28);
  border-radius: 0;
  color: #f4f6fa;
  background: rgba(5,7,11,.86);
  box-shadow: 0 12px 34px rgba(0,0,0,.24);
  backdrop-filter: blur(12px);
  font-size: 19px;
  line-height: 1;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity .18s ease, visibility .18s ease, transform .18s ease, border-color .18s ease;
}

.ffm-scroll-top:hover,
.ffm-scroll-top:focus-visible {
  border-color: rgba(223,232,247,.70);
}

.ffm-scroll-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

@media (max-width: 760px) {
  .ffm-human-check {
    padding: 22px 0 25px;
  }

  .ffm-scroll-top {
    right: 14px;
    bottom: 14px;
    width: 42px;
    height: 42px;
  }
}

/* ========================================================================== */
/* Found & Felt 1.2.1 — support product + SingleBuck site credit              */
/* ========================================================================== */

/* Slim global credit banner. */
.ffm-singlebuck-credit {
  width: 100%;
  padding: 12px 18px;
  border-top: 1px solid color-mix(in srgb, var(--cc-border, #334155) 74%, transparent);
  background: color-mix(in srgb, var(--cc-surface, #0f172a) 92%, #000 8%);
  color: var(--cc-muted, #94a3b8);
  text-align: center;
}

.ffm-singlebuck-credit a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: inherit;
  text-decoration: none;
  font-size: 11px;
  font-weight: 650;
  letter-spacing: .04em;
  transition: color .16s ease, opacity .16s ease;
}

.ffm-singlebuck-credit strong {
  color: var(--cc-text, #f8fafc);
  font-weight: 850;
}

.ffm-singlebuck-credit a:hover,
.ffm-singlebuck-credit a:focus-visible {
  color: var(--cc-text, #f8fafc);
}

/* Dedicated support page: cleaner, calmer and less like a stock product page. */
body.ffm-support-product .classicore-canvas-app {
  padding: clamp(24px, 4vw, 56px) clamp(14px, 3vw, 34px) clamp(38px, 5vw, 72px) !important;
  background:
    radial-gradient(circle at 74% 22%, color-mix(in srgb, var(--cc-accent) 9%, transparent) 0, transparent 31%),
    var(--cc-app-bg) !important;
}

body.ffm-support-product .classicore-canvas-woocommerce-content {
  width: min(1100px, calc(100vw - 28px)) !important;
}

body.ffm-support-product div.product {
  position: relative;
  grid-template-columns: minmax(250px, 350px) minmax(0, 1fr) !important;
  gap: clamp(34px, 5vw, 72px) !important;
  padding: clamp(24px, 4vw, 48px) !important;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--cc-border) 86%, transparent) !important;
  border-radius: 30px !important;
  background:
    linear-gradient(145deg,
      color-mix(in srgb, var(--cc-surface) 98%, #fff 2%) 0%,
      var(--cc-surface) 58%,
      color-mix(in srgb, var(--cc-surface) 96%, var(--cc-accent) 4%) 100%) !important;
  box-shadow: 0 28px 80px rgba(0, 0, 0, .18) !important;
}

body.ffm-support-product div.product::after {
  content: "";
  position: absolute;
  right: -90px;
  top: -120px;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--cc-accent) 7%, transparent);
  filter: blur(12px);
  pointer-events: none;
}

body.ffm-support-product div.product div.images {
  align-self: center;
}

body.ffm-support-product div.product div.images img,
body.ffm-support-product div.product .woocommerce-product-gallery__image img {
  max-width: 330px !important;
  border: 1px solid color-mix(in srgb, var(--cc-border) 88%, transparent) !important;
  border-radius: 22px !important;
  background: var(--cc-surface-alt) !important;
  box-shadow: 0 22px 48px rgba(0, 0, 0, .24) !important;
}

body.ffm-support-product div.product div.summary {
  position: relative;
  z-index: 1;
  align-self: center;
  padding: 4px 0;
}

.ffm-support-kicker {
  margin: 0 0 11px;
  color: var(--cc-accent);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .18em;
  text-transform: uppercase;
}

body.ffm-support-product div.product .product_title {
  max-width: 670px;
  margin: 0 0 12px !important;
  font-size: clamp(34px, 4vw, 54px) !important;
  line-height: 1.02 !important;
  letter-spacing: -.045em !important;
}

body.ffm-support-product div.product p.price,
body.ffm-support-product div.product span.price {
  margin: 0 0 20px !important;
  color: var(--cc-muted) !important;
  font-size: 16px !important;
  font-weight: 750 !important;
  letter-spacing: -.01em !important;
}

.ffm-support-intro {
  max-width: 650px;
  margin: 0 0 26px;
}

body.ffm-support-product .ffm-support-intro p {
  margin: 0 !important;
  color: var(--cc-muted) !important;
  font-size: 15px;
  line-height: 1.72;
}

body.ffm-support-product div.product form.cart,
body.ffm-support-product div.product form.variations_form {
  display: block !important;
  margin: 0 !important;
}

.ffm-support-chooser {
  margin-top: 4px;
}

.ffm-support-chooser__label {
  margin-bottom: 12px;
  color: var(--cc-text);
  font-size: 13px;
  font-weight: 850;
}

.ffm-support-amounts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  max-width: 620px;
}

.ffm-support-amount {
  min-height: 54px;
  padding: 0 14px;
  border: 1px solid var(--cc-border);
  border-radius: 15px;
  background: color-mix(in srgb, var(--cc-surface-alt) 82%, transparent);
  color: var(--cc-text);
  font: inherit;
  font-size: 16px;
  font-weight: 900;
  cursor: pointer;
  box-shadow: none;
  transition: transform .14s ease, border-color .14s ease, background .14s ease, color .14s ease, box-shadow .14s ease;
}

.ffm-support-amount:hover,
.ffm-support-amount:focus-visible {
  border-color: color-mix(in srgb, var(--cc-accent) 68%, var(--cc-border));
  background: color-mix(in srgb, var(--cc-accent) 10%, var(--cc-surface));
  outline: none;
  transform: translateY(-1px);
}

.ffm-support-amount.is-selected {
  border-color: var(--cc-accent);
  background: color-mix(in srgb, var(--cc-accent) 15%, var(--cc-surface));
  color: var(--cc-text);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--cc-accent) 12%, transparent);
}

.ffm-support-chooser__note {
  margin-top: 10px;
  color: var(--cc-muted);
  font-size: 11px;
  line-height: 1.45;
}

/* Keep the native variation select available to WooCommerce and assistive tech,
   but move it off-screen once the friendlier amount buttons are active. */
body.ffm-support-product form.ffm-support-enhanced table.variations {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

body.ffm-support-product form.variations_form table.variations {
  width: 100%;
  margin: 0 0 12px;
}

body.ffm-support-product form.variations_form table.variations th,
body.ffm-support-product form.variations_form table.variations td {
  padding: 0 0 10px;
  border: 0;
}

body.ffm-support-product form.variations_form table.variations label {
  color: var(--cc-text);
  font-size: 13px;
  font-weight: 850;
}

body.ffm-support-product .single_variation_wrap {
  max-width: 620px;
  margin-top: 18px;
}

body.ffm-support-product .woocommerce-variation-price {
  margin-bottom: 12px;
}

body.ffm-support-product .woocommerce-variation-price .price {
  display: inline-flex !important;
  margin: 0 !important;
  color: var(--cc-text) !important;
  font-size: 22px !important;
  font-weight: 900 !important;
}

body.ffm-support-product .woocommerce-variation-add-to-cart {
  display: block !important;
}

body.ffm-support-product div.product form.cart .single_add_to_cart_button {
  width: 100%;
  min-height: 52px;
  margin: 0 !important;
  border-radius: 15px !important;
  background: var(--cc-button) !important;
  color: var(--cc-button-text) !important;
  font-size: 14px !important;
  letter-spacing: .01em;
  box-shadow: 0 16px 34px color-mix(in srgb, var(--cc-button) 22%, transparent) !important;
}

body.ffm-support-product div.product form.cart .single_add_to_cart_button:hover {
  filter: brightness(1.06);
}

/* Wallet/payment-request buttons generated by common WooCommerce gateways. */
body.ffm-support-product :where(
  #wc-stripe-payment-request-wrapper,
  #wc-stripe-payment-request-button,
  .wc-stripe-product-checkout-container,
  .wcpay-payment-request-wrapper,
  .wcpay-express-checkout-wrapper,
  .ppc-button-wrapper,
  .woocommerce-payments-payment-request-wrapper
) {
  max-width: 620px !important;
  border-radius: 15px !important;
  overflow: hidden;
}

body.ffm-support-product .product_meta,
body.ffm-support-product .woocommerce-tabs,
body.ffm-support-product .related,
body.ffm-support-product .upsells {
  display: none !important;
}

body.ffm-support-product .reset_variations {
  display: none !important;
}

@media (max-width: 820px) {
  body.ffm-support-product div.product {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
    padding: 22px !important;
    border-radius: 24px !important;
  }

  body.ffm-support-product div.product div.images img,
  body.ffm-support-product div.product .woocommerce-product-gallery__image img {
    max-width: min(320px, 82vw) !important;
  }

  body.ffm-support-product div.product div.summary {
    width: 100%;
  }
}

@media (max-width: 520px) {
  body.ffm-support-product .classicore-canvas-app {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  body.ffm-support-product .classicore-canvas-woocommerce-content {
    width: 100% !important;
  }

  body.ffm-support-product div.product {
    padding: 18px !important;
    border-radius: 20px !important;
  }

  .ffm-support-amounts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ffm-support-amount {
    min-height: 50px;
  }

  .ffm-singlebuck-credit {
    padding: 11px 12px;
  }

  .ffm-singlebuck-credit a {
    font-size: 10px;
  }
}


/* ========================================================================== */
/* Found & Felt 1.2.2 — streamlined support cart                              */
/* ========================================================================== */

/* Let the cart breathe as a layout rather than wrapping the whole thing in
   one large generic WooCommerce panel. */
body.classicore-canvas-theme.woocommerce-cart .classicore-canvas-content,
body.classicore-canvas-theme.woocommerce-cart .classicore-canvas-content > .woocommerce {
  width: min(1160px, calc(100vw - 28px)) !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.classicore-canvas-theme.woocommerce-cart .wp-block-woocommerce-cart,
body.classicore-canvas-theme.woocommerce-cart .wc-block-cart {
  max-width: 1160px;
  margin: 0 auto !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart__main {
  padding: 22px !important;
  border: 1px solid var(--cc-border) !important;
  border-radius: 22px !important;
  background: var(--cc-surface) !important;
  box-shadow: 0 18px 48px rgba(0,0,0,.10) !important;
}

/* A simpler product table: one clean row, compact artwork and less visual
   furniture around a support purchase. */
body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-items {
  margin: 0 !important;
  border: 0 !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-items thead {
  display: none !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-items__row {
  background: transparent !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-items__row td,
body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-items__row td:first-child,
body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-items__row td:last-child {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-radius: 0 !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-item__image {
  width: 104px !important;
  padding-right: 18px !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-item__image img {
  width: 88px !important;
  height: 88px !important;
  object-fit: cover !important;
  border: 1px solid color-mix(in srgb, var(--cc-border) 86%, transparent) !important;
  border-radius: 16px !important;
  background: var(--cc-surface-alt) !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.12) !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-components-product-name {
  display: inline-block;
  margin-bottom: 7px !important;
  color: var(--cc-text) !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  text-decoration: none !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-components-product-metadata {
  margin: 0 0 12px !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-components-product-details {
  margin: 0 !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-components-product-details li {
  display: inline-flex !important;
  gap: 5px;
  margin: 0 !important;
  padding: 5px 9px !important;
  border: 1px solid var(--cc-border) !important;
  border-radius: 999px !important;
  background: var(--cc-surface-alt) !important;
  color: var(--cc-muted) !important;
  font-size: 11px !important;
  font-weight: 750 !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-components-product-details__name,
body.classicore-canvas-theme.woocommerce-cart .wc-block-components-product-details__value {
  color: inherit !important;
  font: inherit !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-item__prices,
body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper {
  color: var(--cc-text) !important;
  font-weight: 900 !important;
}

/* Quantity is deliberately prominent enough to discover, without looking like
   a stock WooCommerce control. This is how a visitor can support with $2 from
   the $1 option, $20 from the $5 option, and so on. */
body.classicore-canvas-theme.woocommerce-cart .wc-block-components-quantity-selector {
  width: 116px !important;
  min-height: 40px !important;
  margin: 10px 0 8px !important;
  border: 1px solid var(--cc-border) !important;
  border-radius: 12px !important;
  background: var(--cc-input-bg) !important;
  overflow: hidden !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
  min-width: 42px !important;
  color: var(--cc-text) !important;
  font-size: 14px !important;
  font-weight: 850 !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-components-quantity-selector__button {
  width: 36px !important;
  min-width: 36px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--cc-text) !important;
  box-shadow: none !important;
  font-size: 18px !important;
  font-weight: 700 !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-components-quantity-selector__button:hover {
  background: color-mix(in srgb, var(--cc-accent) 10%, transparent) !important;
  color: var(--cc-accent) !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-item__remove-link {
  color: var(--cc-muted) !important;
  font-size: 11px !important;
  font-weight: 750 !important;
  text-decoration: none !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-item__remove-link:hover {
  color: var(--cc-danger) !important;
}

/* Cart totals becomes a compact companion card instead of a tall generic
   WooCommerce column. */
body.classicore-canvas-theme.woocommerce-cart .wc-block-cart__sidebar {
  padding: 22px !important;
  border: 1px solid var(--cc-border) !important;
  border-radius: 22px !important;
  background:
    linear-gradient(145deg,
      color-mix(in srgb, var(--cc-surface-alt) 97%, #fff 3%),
      var(--cc-surface-alt)) !important;
  box-shadow: 0 18px 48px rgba(0,0,0,.10) !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart__totals-title {
  margin: 0 0 14px !important;
  padding: 0 0 14px !important;
  border-bottom: 1px solid var(--cc-border) !important;
  color: var(--cc-text) !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  letter-spacing: -.02em !important;
  text-transform: none !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-components-totals-wrapper {
  padding: 12px 0 !important;
  border-top: 0 !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-components-totals-item {
  padding: 0 !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-components-totals-item__label,
body.classicore-canvas-theme.woocommerce-cart .wc-block-components-totals-item__value {
  font-size: 13px !important;
  font-weight: 750 !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-components-totals-footer-item {
  margin-top: 4px !important;
  padding-top: 16px !important;
  border-top: 1px solid var(--cc-border) !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.classicore-canvas-theme.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-size: 17px !important;
  font-weight: 950 !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-components-totals-coupon {
  padding: 10px 0 !important;
  border-top: 1px solid var(--cc-border) !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-components-totals-coupon-link {
  color: var(--cc-muted) !important;
  font-size: 12px !important;
  font-weight: 750 !important;
  text-decoration: none !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart__submit-container {
  margin-top: 14px !important;
}

body.classicore-canvas-theme.woocommerce-cart .wc-block-cart__submit-button {
  min-height: 52px !important;
  width: 100% !important;
  border-radius: 14px !important;
  font-size: 14px !important;
  font-weight: 900 !important;
}

/* Keep the native quantity hidden on the custom support product itself; the
   cleaner flow is choose an amount, add it, then adjust multiples in Cart. */
body.ffm-support-product div.product form.cart .quantity {
  display: none !important;
}

@media (max-width: 900px) {
  body.classicore-canvas-theme.woocommerce-cart .wc-block-cart__main,
  body.classicore-canvas-theme.woocommerce-cart .wc-block-cart__sidebar {
    padding: 18px !important;
    border-radius: 19px !important;
  }
}

@media (max-width: 600px) {
  body.classicore-canvas-theme.woocommerce-cart .classicore-canvas-content,
  body.classicore-canvas-theme.woocommerce-cart .classicore-canvas-content > .woocommerce {
    width: min(100% - 18px, 1160px) !important;
  }

  body.classicore-canvas-theme.woocommerce-cart .wc-block-cart__main,
  body.classicore-canvas-theme.woocommerce-cart .wc-block-cart__sidebar {
    padding: 14px !important;
    border-radius: 16px !important;
  }

  body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-item__image {
    width: 78px !important;
    padding-right: 12px !important;
  }

  body.classicore-canvas-theme.woocommerce-cart .wc-block-cart-item__image img {
    width: 66px !important;
    height: 66px !important;
    border-radius: 13px !important;
  }

  body.classicore-canvas-theme.woocommerce-cart .wc-block-components-product-name {
    font-size: 15px !important;
  }
}


/* ========================================================================== */
/* Found & Felt 1.2.3 — centered, fluid storefront                           */
/* ========================================================================== */

/* The public store should feel like a curated music shelf rather than a raw
   WooCommerce archive. Keep the page itself open, centered and spacious. */
body.classicore-canvas-theme.post-type-archive-product .classicore-canvas-app,
body.classicore-canvas-theme.tax-product_cat .classicore-canvas-app,
body.classicore-canvas-theme.tax-product_tag .classicore-canvas-app {
  padding: clamp(28px, 4.5vw, 64px) clamp(14px, 3vw, 34px) clamp(46px, 6vw, 86px) !important;
  background:
    radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--cc-accent) 7%, transparent) 0, transparent 34%),
    var(--cc-app-bg) !important;
}

body.classicore-canvas-theme.post-type-archive-product .classicore-canvas-woocommerce-content,
body.classicore-canvas-theme.tax-product_cat .classicore-canvas-woocommerce-content,
body.classicore-canvas-theme.tax-product_tag .classicore-canvas-woocommerce-content {
  width: min(1180px, calc(100vw - 28px)) !important;
  margin-inline: auto !important;
}

/* Archive pages are layout canvases, not one giant card. */
body.classicore-canvas-theme.post-type-archive-product .classicore-canvas-content > .woocommerce,
body.classicore-canvas-theme.tax-product_cat .classicore-canvas-content > .woocommerce,
body.classicore-canvas-theme.tax-product_tag .classicore-canvas-content > .woocommerce {
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.classicore-canvas-theme .ffm-shop-intro {
  max-width: 760px;
  margin: 0 auto clamp(24px, 4vw, 42px);
  text-align: center;
}

body.classicore-canvas-theme .ffm-shop-intro__eyebrow {
  margin-bottom: 10px;
  color: var(--cc-accent);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .18em;
  text-transform: uppercase;
}

body.classicore-canvas-theme .ffm-shop-intro h1 {
  margin: 0 !important;
  color: var(--cc-text) !important;
  font-size: clamp(34px, 5vw, 58px) !important;
  line-height: 1.02 !important;
  letter-spacing: -.045em !important;
  font-weight: 950 !important;
}

body.classicore-canvas-theme .ffm-shop-intro p {
  max-width: 620px;
  margin: 14px auto 0 !important;
  color: var(--cc-muted) !important;
  font-size: 15px;
  line-height: 1.7;
}

/* Hide the stock archive title once the branded store intro is present. */
body.classicore-canvas-theme.post-type-archive-product .woocommerce-products-header,
body.classicore-canvas-theme.tax-product_cat .woocommerce-products-header,
body.classicore-canvas-theme.tax-product_tag .woocommerce-products-header,
body.classicore-canvas-theme.post-type-archive-product .woocommerce-products-header__title.page-title,
body.classicore-canvas-theme.tax-product_cat .woocommerce-products-header__title.page-title,
body.classicore-canvas-theme.tax-product_tag .woocommerce-products-header__title.page-title {
  display: none !important;
}

/* Result count + sort become one quiet centered toolbar. */
body.classicore-canvas-theme .ffm-shop-toolbar {
  width: min(100%, 1010px);
  min-height: 52px;
  margin: 0 auto 22px;
  padding: 8px 10px 8px 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid var(--cc-border);
  border-radius: 16px;
  background: color-mix(in srgb, var(--cc-surface) 88%, transparent);
  box-shadow: 0 10px 30px rgba(0,0,0,.06);
}

body.classicore-canvas-theme .ffm-shop-toolbar .woocommerce-result-count,
body.classicore-canvas-theme .ffm-shop-toolbar .woocommerce-ordering {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}

body.classicore-canvas-theme .ffm-shop-toolbar .woocommerce-result-count {
  color: var(--cc-muted) !important;
  font-size: 12px;
  font-weight: 750;
}

body.classicore-canvas-theme .ffm-shop-toolbar .woocommerce-ordering select {
  min-width: 168px;
  min-height: 36px;
  margin: 0 !important;
  padding: 0 34px 0 12px !important;
  border: 1px solid var(--cc-border) !important;
  border-radius: 11px !important;
  background-color: var(--cc-input-bg) !important;
  color: var(--cc-text) !important;
  font-size: 12px !important;
  font-weight: 750 !important;
}

/* Product grid: fixed sensible card widths, centered when there are only one
   or two products, and fluid as the catalogue grows. */
body.classicore-canvas-theme.post-type-archive-product ul.products,
body.classicore-canvas-theme.tax-product_cat ul.products,
body.classicore-canvas-theme.tax-product_tag ul.products {
  width: min(100%, 1010px) !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 320px)) !important;
  justify-content: center !important;
  align-items: stretch !important;
  gap: clamp(18px, 2.2vw, 26px) !important;
  padding: 0 !important;
}

body.classicore-canvas-theme.post-type-archive-product ul.products::before,
body.classicore-canvas-theme.post-type-archive-product ul.products::after,
body.classicore-canvas-theme.tax-product_cat ul.products::before,
body.classicore-canvas-theme.tax-product_cat ul.products::after,
body.classicore-canvas-theme.tax-product_tag ul.products::before,
body.classicore-canvas-theme.tax-product_tag ul.products::after {
  display: none !important;
  content: none !important;
}

body.classicore-canvas-theme.post-type-archive-product ul.products li.product,
body.classicore-canvas-theme.tax-product_cat ul.products li.product,
body.classicore-canvas-theme.tax-product_tag ul.products li.product {
  width: 100% !important;
  min-width: 0 !important;
  height: 100%;
  margin: 0 !important;
  padding: 12px 12px 14px !important;
  display: flex !important;
  flex-direction: column;
  border: 1px solid color-mix(in srgb, var(--cc-border) 90%, transparent) !important;
  border-radius: 22px !important;
  background:
    linear-gradient(155deg,
      color-mix(in srgb, var(--cc-surface) 98%, #fff 2%) 0%,
      var(--cc-surface) 72%,
      color-mix(in srgb, var(--cc-surface) 97%, var(--cc-accent) 3%) 100%) !important;
  box-shadow: 0 16px 44px rgba(0,0,0,.09) !important;
  overflow: hidden;
}

body.classicore-canvas-theme.post-type-archive-product ul.products li.product:hover,
body.classicore-canvas-theme.tax-product_cat ul.products li.product:hover,
body.classicore-canvas-theme.tax-product_tag ul.products li.product:hover {
  transform: translateY(-4px) !important;
  border-color: color-mix(in srgb, var(--cc-accent) 38%, var(--cc-border)) !important;
  box-shadow: 0 22px 52px rgba(0,0,0,.14) !important;
}

body.classicore-canvas-theme.post-type-archive-product ul.products li.product > a.woocommerce-LoopProduct-link,
body.classicore-canvas-theme.tax-product_cat ul.products li.product > a.woocommerce-LoopProduct-link,
body.classicore-canvas-theme.tax-product_tag ul.products li.product > a.woocommerce-LoopProduct-link {
  display: block;
  color: inherit !important;
  text-decoration: none !important;
}

body.classicore-canvas-theme.post-type-archive-product ul.products li.product img,
body.classicore-canvas-theme.tax-product_cat ul.products li.product img,
body.classicore-canvas-theme.tax-product_tag ul.products li.product img {
  width: 100% !important;
  margin: 0 0 14px !important;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border: 1px solid color-mix(in srgb, var(--cc-border) 82%, transparent) !important;
  border-radius: 16px !important;
  background: var(--cc-surface-alt) !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.12);
}

body.classicore-canvas-theme .ffm-shop-product-type {
  margin: 1px 4px 5px;
  color: var(--cc-accent);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}

body.classicore-canvas-theme.post-type-archive-product ul.products li.product .woocommerce-loop-product__title,
body.classicore-canvas-theme.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
body.classicore-canvas-theme.tax-product_tag ul.products li.product .woocommerce-loop-product__title {
  margin: 0 4px 8px !important;
  padding: 0 !important;
  color: var(--cc-text) !important;
  font-size: 18px !important;
  line-height: 1.25 !important;
  letter-spacing: -.02em;
  font-weight: 900 !important;
}

body.classicore-canvas-theme.post-type-archive-product ul.products li.product .price,
body.classicore-canvas-theme.tax-product_cat ul.products li.product .price,
body.classicore-canvas-theme.tax-product_tag ul.products li.product .price {
  margin: 0 4px 14px !important;
  color: var(--cc-muted) !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  font-weight: 800 !important;
}

/* Let buttons line up along the bottom when titles vary in length. */
body.classicore-canvas-theme.post-type-archive-product ul.products li.product > .button,
body.classicore-canvas-theme.tax-product_cat ul.products li.product > .button,
body.classicore-canvas-theme.tax-product_tag ul.products li.product > .button {
  width: calc(100% - 8px) !important;
  min-height: 44px !important;
  margin: auto 4px 0 !important;
  padding: 0 14px !important;
  border-radius: 13px !important;
  font-size: 12px !important;
  font-weight: 900 !important;
}

body.classicore-canvas-theme.post-type-archive-product .woocommerce-pagination,
body.classicore-canvas-theme.tax-product_cat .woocommerce-pagination,
body.classicore-canvas-theme.tax-product_tag .woocommerce-pagination {
  margin-top: 34px !important;
  text-align: center !important;
}

body.classicore-canvas-theme .woocommerce-pagination ul.page-numbers {
  display: inline-flex !important;
  gap: 6px;
  padding: 6px !important;
  border: 1px solid var(--cc-border) !important;
  border-radius: 14px !important;
  background: var(--cc-surface) !important;
}

body.classicore-canvas-theme .woocommerce-pagination ul.page-numbers li {
  border: 0 !important;
}

body.classicore-canvas-theme .woocommerce-pagination .page-numbers a,
body.classicore-canvas-theme .woocommerce-pagination .page-numbers span {
  display: grid !important;
  place-items: center;
  min-width: 34px;
  min-height: 34px;
  padding: 0 9px !important;
  border-radius: 9px;
  color: var(--cc-muted) !important;
  font-weight: 850 !important;
}

body.classicore-canvas-theme .woocommerce-pagination .page-numbers .current,
body.classicore-canvas-theme .woocommerce-pagination .page-numbers a:hover {
  background: color-mix(in srgb, var(--cc-accent) 12%, var(--cc-surface)) !important;
  color: var(--cc-accent) !important;
}

@media (max-width: 620px) {
  body.classicore-canvas-theme.post-type-archive-product .classicore-canvas-woocommerce-content,
  body.classicore-canvas-theme.tax-product_cat .classicore-canvas-woocommerce-content,
  body.classicore-canvas-theme.tax-product_tag .classicore-canvas-woocommerce-content {
    width: min(100% - 18px, 1180px) !important;
  }

  body.classicore-canvas-theme .ffm-shop-toolbar {
    align-items: stretch;
    flex-direction: column;
    padding: 12px !important;
  }

  body.classicore-canvas-theme .ffm-shop-toolbar .woocommerce-result-count {
    text-align: center;
  }

  body.classicore-canvas-theme .ffm-shop-toolbar .woocommerce-ordering,
  body.classicore-canvas-theme .ffm-shop-toolbar .woocommerce-ordering select {
    width: 100% !important;
  }

  body.classicore-canvas-theme.post-type-archive-product ul.products,
  body.classicore-canvas-theme.tax-product_cat ul.products,
  body.classicore-canvas-theme.tax-product_tag ul.products {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* ========================================================================== */
/* Found & Felt 1.2.4 — centered transaction flow                            */
/* ========================================================================== */

/* Cart, Checkout and My Account should read as one deliberate purchase flow,
   not as full-width WooCommerce blocks floating inside the Canvas shell. */
body.classicore-canvas-theme.woocommerce-cart .classicore-canvas-app,
body.classicore-canvas-theme.woocommerce-checkout .classicore-canvas-app,
body.classicore-canvas-theme.woocommerce-account .classicore-canvas-app {
  padding: clamp(28px, 4vw, 58px) clamp(14px, 3vw, 30px) !important;
}

body.classicore-canvas-theme.woocommerce-cart .classicore-canvas-content {
  width: min(1080px, calc(100vw - 32px)) !important;
  min-height: 0 !important;
  margin: 0 auto !important;
}

body.classicore-canvas-theme.woocommerce-cart .classicore-canvas-content > .woocommerce {
  width: 100% !important;
  max-width: 1080px !important;
  margin: 0 auto !important;
}

body.classicore-canvas-theme.woocommerce-cart .wp-block-woocommerce-cart,
body.classicore-canvas-theme.woocommerce-cart .wc-block-cart {
  width: 100% !important;
  max-width: 1080px !important;
  margin: 0 auto !important;
}

/* Checkout gets a controlled desktop width so the billing form remains easy
   to scan while the order summary still has room to breathe. */
body.classicore-canvas-theme.woocommerce-checkout .classicore-canvas-content {
  width: min(1220px, calc(100vw - 32px)) !important;
  min-height: 0 !important;
  margin: 0 auto !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.classicore-canvas-theme.woocommerce-checkout .classicore-canvas-content > .woocommerce {
  width: 100% !important;
  max-width: 1220px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.classicore-canvas-theme.woocommerce-checkout .wp-block-woocommerce-checkout {
  width: 100% !important;
  max-width: 1180px !important;
  margin: 0 auto !important;
  padding: clamp(18px, 2.2vw, 30px) !important;
  border: 1px solid var(--cc-border) !important;
  border-radius: 24px !important;
  background: var(--cc-surface) !important;
  box-shadow: 0 18px 48px rgba(0,0,0,.10) !important;
}

body.classicore-canvas-theme.woocommerce-checkout .wc-block-checkout__main {
  padding-right: clamp(18px, 2.5vw, 34px) !important;
}

body.classicore-canvas-theme.woocommerce-checkout .wc-block-checkout__sidebar {
  border-radius: 20px !important;
}

/* Logged-out My Account is a login destination, not a two-column dashboard.
   Keep one centered card with a comfortable reading width. */
body.classicore-canvas-theme.woocommerce-account .classicore-canvas-content {
  width: min(1060px, calc(100vw - 32px)) !important;
  min-height: 0 !important;
  margin: 0 auto !important;
}

body.classicore-canvas-theme.woocommerce-account .classicore-canvas-content > .woocommerce {
  width: 100% !important;
  max-width: 1060px !important;
  margin: 0 auto !important;
}

body.classicore-canvas-theme.woocommerce-account:not(.logged-in) .classicore-canvas-content {
  width: min(760px, calc(100vw - 32px)) !important;
}

body.classicore-canvas-theme.woocommerce-account:not(.logged-in) .classicore-canvas-content > .woocommerce {
  display: block !important;
  width: 100% !important;
  max-width: 760px !important;
  margin: 0 auto !important;
  padding: clamp(24px, 4vw, 42px) !important;
  border: 1px solid var(--cc-border) !important;
  border-radius: 24px !important;
  background: var(--cc-surface) !important;
  box-shadow: 0 18px 48px rgba(0,0,0,.10) !important;
}

body.classicore-canvas-theme.woocommerce-account:not(.logged-in) .woocommerce > h2 {
  margin: 0 0 22px !important;
  text-align: center !important;
  font-size: clamp(24px, 3vw, 32px) !important;
  letter-spacing: -.025em !important;
}

body.classicore-canvas-theme.woocommerce-account:not(.logged-in) form.woocommerce-form-login,
body.classicore-canvas-theme.woocommerce-account:not(.logged-in) form.login {
  width: 100% !important;
  max-width: 620px !important;
  margin: 0 auto !important;
  padding: clamp(20px, 3vw, 30px) !important;
  border: 1px solid var(--cc-border) !important;
  border-radius: 18px !important;
  background: var(--cc-surface-alt) !important;
  box-shadow: none !important;
}

body.classicore-canvas-theme.woocommerce-account:not(.logged-in) form.login .form-row {
  margin-bottom: 14px !important;
}

body.classicore-canvas-theme.woocommerce-account:not(.logged-in) form.login .woocommerce-form-login__submit {
  min-width: 120px !important;
}

body.classicore-canvas-theme.woocommerce-account:not(.logged-in) form.login .lost_password {
  margin: 14px 0 0 !important;
}

/* Once signed in, keep the account navigation/content dashboard centered too. */
body.classicore-canvas-theme.woocommerce-account.logged-in .woocommerce {
  max-width: 1060px !important;
  margin: 0 auto !important;
}

@media (max-width: 900px) {
  body.classicore-canvas-theme.woocommerce-checkout .wp-block-woocommerce-checkout {
    padding: 18px !important;
    border-radius: 20px !important;
  }

  body.classicore-canvas-theme.woocommerce-checkout .wc-block-checkout__main {
    padding-right: 0 !important;
  }
}

@media (max-width: 620px) {
  body.classicore-canvas-theme.woocommerce-cart .classicore-canvas-app,
  body.classicore-canvas-theme.woocommerce-checkout .classicore-canvas-app,
  body.classicore-canvas-theme.woocommerce-account .classicore-canvas-app {
    padding: 18px 9px 28px !important;
  }

  body.classicore-canvas-theme.woocommerce-cart .classicore-canvas-content,
  body.classicore-canvas-theme.woocommerce-checkout .classicore-canvas-content,
  body.classicore-canvas-theme.woocommerce-account .classicore-canvas-content,
  body.classicore-canvas-theme.woocommerce-account:not(.logged-in) .classicore-canvas-content {
    width: 100% !important;
  }

  body.classicore-canvas-theme.woocommerce-checkout .wp-block-woocommerce-checkout,
  body.classicore-canvas-theme.woocommerce-account:not(.logged-in) .classicore-canvas-content > .woocommerce {
    padding: 15px !important;
    border-radius: 17px !important;
  }

  body.classicore-canvas-theme.woocommerce-account:not(.logged-in) form.woocommerce-form-login,
  body.classicore-canvas-theme.woocommerce-account:not(.logged-in) form.login {
    padding: 16px !important;
    border-radius: 15px !important;
  }
}


/* ========================================================================== */
/* Found & Felt 1.2.5 — checkout readability / dark-mode payment contrast     */
/* ========================================================================== */

/* WooCommerce Blocks and payment gateways ship several labels with their own
   colours. On a dark Canvas checkout those defaults can become effectively
   invisible. Keep every customer-facing label anchored to the Canvas palette. */
body.classicore-canvas-theme.woocommerce-checkout :is(
  .wc-block-components-checkout-step__title,
  .wc-block-components-checkout-step__description,
  .wc-block-components-text-input label,
  .wc-block-components-combobox-control label,
  .wc-block-components-radio-control__label,
  .wc-block-components-radio-control__label-group,
  .wc-block-components-radio-control__description,
  .wc-block-components-radio-control__secondary-label,
  .wc-block-components-checkbox__label,
  .wc-block-components-checkbox label,
  .wc-block-components-payment-method-label,
  .wc-block-components-payment-method-description,
  .wc-block-components-validation-error,
  .wc-block-checkout__terms,
  .wc-block-checkout__terms span,
  .wc-block-checkout__payment-method,
  .wc-block-checkout__payment-method span,
  .wc-block-components-address-form label
) {
  color: var(--cc-text) !important;
  -webkit-text-fill-color: var(--cc-text) !important;
  opacity: 1 !important;
}

/* Supporting copy can remain quieter, but never disappear into the panel. */
body.classicore-canvas-theme.woocommerce-checkout :is(
  .wc-block-components-checkout-step__description,
  .wc-block-components-radio-control__description,
  .wc-block-components-radio-control__secondary-label,
  .wc-block-components-validation-error
) {
  color: color-mix(in srgb, var(--cc-text) 72%, var(--cc-surface)) !important;
  -webkit-text-fill-color: color-mix(in srgb, var(--cc-text) 72%, var(--cc-surface)) !important;
}

/* Floating input labels and placeholders need their own specificity because
   Woo Blocks paints these independently from the input text itself. */
body.classicore-canvas-theme.woocommerce-checkout .wc-block-components-text-input input,
body.classicore-canvas-theme.woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input {
  color: var(--cc-text) !important;
  -webkit-text-fill-color: var(--cc-text) !important;
  caret-color: var(--cc-text) !important;
}

body.classicore-canvas-theme.woocommerce-checkout .wc-block-components-text-input input::placeholder,
body.classicore-canvas-theme.woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input::placeholder {
  color: color-mix(in srgb, var(--cc-text) 58%, var(--cc-surface)) !important;
  -webkit-text-fill-color: color-mix(in srgb, var(--cc-text) 58%, var(--cc-surface)) !important;
  opacity: 1 !important;
}

/* Payment method accordion/radio rows. */
body.classicore-canvas-theme.woocommerce-checkout :is(
  .wc-block-components-radio-control__option,
  .wc-block-components-radio-control-accordion-option,
  .wc-block-components-radio-control-accordion-content
) {
  color: var(--cc-text) !important;
}

body.classicore-canvas-theme.woocommerce-checkout input[type="radio"],
body.classicore-canvas-theme.woocommerce-checkout input[type="checkbox"] {
  accent-color: var(--cc-accent) !important;
}

/* Card gateways commonly render the secure card fields inside third-party
   iframes. Their internal placeholder colour cannot be overridden by a theme,
   so give those secure fields a light neutral canvas as a contrast fallback.
   This keeps card number / expiry / security-code text readable regardless of
   whether Stripe/WooPayments supplies light- or dark-mode iframe styles. */
body.classicore-canvas-theme.woocommerce-checkout :is(
  .wc-block-gateway-container,
  .wc-stripe-elements-field,
  .wc-payment-form .form-row
) iframe {
  border-radius: 10px !important;
  background: #ffffff !important;
  color-scheme: light !important;
}

body.classicore-canvas-theme.woocommerce-checkout :is(
  .wc-block-gateway-container,
  .wc-stripe-elements-field
) {
  border-color: var(--cc-border) !important;
  border-radius: 13px !important;
}

/* Terms must never appear as an unlabeled checkbox. */
body.classicore-canvas-theme.woocommerce-checkout .wc-block-checkout__terms,
body.classicore-canvas-theme.woocommerce-checkout .wc-block-components-checkbox {
  color: var(--cc-text) !important;
}

body.classicore-canvas-theme.woocommerce-checkout .wc-block-components-checkbox__label a,
body.classicore-canvas-theme.woocommerce-checkout .wc-block-checkout__terms a {
  color: var(--cc-accent) !important;
  -webkit-text-fill-color: var(--cc-accent) !important;
}


/* ========================================================================== */
/* Found & Felt 1.2.7 — checkout order-summary quantity badge                 */
/* ========================================================================== */

/* WooCommerce's quantity badge derives some of its contrast from theme
   colours. Define the complete badge palette explicitly so the circle stays
   white and the numeral stays dark on the Found & Felt checkout. */
body.classicore-canvas-theme.woocommerce-checkout .wc-block-components-order-summary-item__quantity {
  background-color: #ffffff !important;
  border-color: #ffffff !important;
  box-shadow: 0 0 0 2px var(--cc-surface-alt) !important;
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
  opacity: 1 !important;
}

body.classicore-canvas-theme.woocommerce-checkout .wc-block-components-order-summary-item__quantity > * {
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
}


/* --------------------------------------------------------------------------
   Found & Felt 1.2.8 — persistent site-header cart
   Keep the cart reachable from the main site header, not only inside the
   WooCommerce toolbar. The count badge updates through WooCommerce fragments.
   -------------------------------------------------------------------------- */
.classicore-canvas-header-cart {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid rgba(147, 177, 226, 0.24);
  border-radius: 999px;
  background: rgba(17, 28, 48, 0.72);
  color: #dce8fb;
  text-decoration: none;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1;
  transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}


/* Empty carts stay in the DOM for WooCommerce fragment refreshes, but the
   header action itself is hidden until there is something to return to. */
.classicore-canvas-header-cart.is-empty {
  display: none;
}

.classicore-canvas-header-cart:hover,
.classicore-canvas-header-cart:focus-visible {
  color: #ffffff;
  border-color: rgba(126, 172, 243, 0.62);
  background: rgba(30, 55, 94, 0.88);
  transform: translateY(-1px);
  outline: none;
}

.classicore-canvas-header-cart-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
  align-items: center;
  justify-content: center;
  color: #9fc3ff;
}

.classicore-canvas-header-cart-icon svg {
  display: block;
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.classicore-canvas-header-cart-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 19px;
  height: 19px;
  padding: 0 5px;
  border-radius: 999px;
  background: #2f6fea;
  color: #ffffff;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1;
  text-transform: none;
  box-shadow: 0 0 0 1px rgba(255,255,255,.08), 0 5px 14px rgba(47,111,234,.28);
}

.classicore-canvas-header-cart-count.is-empty {
  display: none;
}

@media (max-width: 900px) {
  .classicore-canvas-header-cart {
    min-width: 34px;
    min-height: 34px;
    padding: 0 8px;
    gap: 5px;
  }
  .classicore-canvas-header-cart-label {
    display: none;
  }
}

@media (max-width: 480px) {
  .classicore-canvas-header-cart {
    min-width: 32px;
    min-height: 32px;
    padding: 0 7px;
  }
  .classicore-canvas-header-cart-count {
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    font-size: 9px;
  }
}


/* --------------------------------------------------------------------------
   Found & Felt 1.3.0 — flexible homepage inserts + creator CTA
   Optional Customizer HTML/shortcode inserts can sit between existing homepage
   sections without rebuilding the authored page. Empty slots render nothing.
   -------------------------------------------------------------------------- */
.ffm-home-insert {
  width: min(100%, 1320px);
  margin: clamp(18px, 3vw, 38px) auto;
  padding-inline: clamp(16px, 3vw, 34px);
  box-sizing: border-box;
}

.ffm-home-insert:empty {
  display: none;
}

.ffm-home-insert audio,
.ffm-home-insert video,
.ffm-home-insert iframe,
.ffm-home-insert img {
  max-width: 100%;
}

.ffm-home-insert audio,
.ffm-home-insert video {
  width: 100%;
}

.ffm-home-insert > :first-child {
  margin-top: 0;
}

.ffm-home-insert > :last-child {
  margin-bottom: 0;
}

/* Country Rewired treatment: the promotion continues the dark page instead of
   falling into the Canvas theme's pale default footer area. */
body.home {
  background: #07090b;
}

.ffm-creator-cta {
  position: relative;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(46px, 6vw, 78px) max(24px, calc((100vw - 1180px) / 2));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(30px, 5vw, 76px);
  overflow: hidden;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, .09);
  border-bottom: 1px solid rgba(255, 255, 255, .09);
  border-radius: 0;
  background:
    linear-gradient(90deg, rgba(7, 9, 11, .98), rgba(12, 17, 20, .95)),
    #07090b;
  box-shadow: none;
}

.ffm-creator-cta::before {
  content: "";
  position: absolute;
  width: min(640px, 56vw);
  height: 320px;
  left: -130px;
  top: -190px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(220, 139, 65, .18), transparent 68%);
  pointer-events: none;
}

.ffm-creator-cta::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: min(48vw, 620px);
  height: 2px;
  background: linear-gradient(90deg, transparent, #35cdf4 70%, rgba(255,255,255,.9));
  box-shadow: 0 0 18px rgba(53, 205, 244, .7);
  pointer-events: none;
}

.ffm-creator-cta__copy {
  position: relative;
  z-index: 1;
  max-width: 790px;
  min-width: 0;
}

.ffm-creator-cta__eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 11px;
  color: #35cdf4;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .19em;
  text-transform: uppercase;
}

.ffm-creator-cta__eyebrow::before {
  content: "";
  width: 34px;
  height: 2px;
  background: linear-gradient(90deg, #35cdf4, #dc8b41);
}

.ffm-creator-cta h2 {
  margin: 0;
  color: #f3efe7;
  font-size: clamp(25px, 3vw, 39px);
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: -.035em;
}

.ffm-creator-cta p {
  max-width: 760px;
  margin: 13px 0 0;
  color: #a9b0b6;
  font-size: 14px;
  line-height: 1.7;
}

.ffm-creator-cta__button {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 24px;
  border: 1px solid #dc8b41;
  border-radius: 4px;
  background: #dc8b41;
  color: #080a0b;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .075em;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 14px 34px rgba(220, 139, 65, .13);
  transition: transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.ffm-creator-cta__button:hover,
.ffm-creator-cta__button:focus-visible {
  color: #080a0b;
  background: #f0a65f;
  border-color: #f0a65f;
  box-shadow: 0 16px 38px rgba(220, 139, 65, .22);
  transform: translateY(-2px);
  outline: none;
}

/* The slim credit now closes the page in the same Country Rewired palette. */
.ffm-singlebuck-credit {
  border-top-color: rgba(255,255,255,.08);
  background: #050607;
  color: #7f878d;
}

.ffm-singlebuck-credit strong {
  color: #dc8b41;
}

.ffm-singlebuck-credit a:hover,
.ffm-singlebuck-credit a:focus-visible {
  color: #d9dde0;
}

@media (max-width: 720px) {
  .ffm-creator-cta {
    align-items: flex-start;
    flex-direction: column;
    padding: 48px 24px;
  }
  .ffm-creator-cta__button {
    width: 100%;
  }
}

/* --------------------------------------------------------------------------
   Found & Felt 1.3.1 — independent mobile homepage hero artwork
   Desktop keeps the authored wide hero. When a mobile image is selected in
   the Customizer, phones receive a dedicated artwork layer instead of a harsh
   horizontal crop of the desktop creative.
   -------------------------------------------------------------------------- */
.ffm-mobile-hero-art {
  display: none;
}

@media (max-width: 720px) {
  .ffm-mobile-hero-target {
    position: relative !important;
    isolation: isolate;
    overflow: hidden !important;
    min-height: var(--ffm-mobile-hero-height, 560px) !important;
    background-image: var(--ffm-mobile-hero-image) !important;
    background-repeat: no-repeat !important;
    background-size: var(--ffm-mobile-hero-fit, cover) !important;
    background-position: var(--ffm-mobile-hero-position, center center) !important;
  }

  .ffm-mobile-hero-target .ffm-mobile-hero-art {
    display: block;
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: var(--ffm-mobile-hero-image);
    background-repeat: no-repeat;
    background-size: var(--ffm-mobile-hero-fit, cover);
    background-position: var(--ffm-mobile-hero-position, center center);
  }

  /* Keep authored text/buttons above the replacement artwork. */
  .ffm-mobile-hero-target > :not(.ffm-mobile-hero-art) {
    position: relative;
    z-index: 1;
  }

  /* The optional media-hiding rule is printed only when enabled. Any image
     that must remain visible can be given class="ffm-mobile-hero-keep". */
  .ffm-mobile-hero-target .ffm-mobile-hero-keep,
  .ffm-mobile-hero-target .ffm-mobile-hero-keep img,
  .ffm-mobile-hero-target .ffm-mobile-hero-keep picture,
  .ffm-mobile-hero-target .ffm-mobile-hero-keep video {
    visibility: visible !important;
    opacity: 1 !important;
  }
}
