/* CanFirewood Mobile App Shell v0.3.9 */
.cf-app-topbar,
.cf-app-bottom-nav,
.cf-app-mobile-home,
.cf-app-install-card,
.cf-app-find-intro { display:none; }

@media (max-width: 1200px) {
  body.cf-mobile-app-enabled {
    padding-bottom:calc(var(--cf-app-nav-h,74px) + env(safe-area-inset-bottom,0px));
    background:var(--cf-app-surface,#fffdf8);
    color:var(--cf-app-text,#183126);
  }

  .cf-app-topbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    position:sticky;
    top:0;
    z-index:9996;
    min-height:var(--cf-app-top-h,64px);
    padding:8px 14px;
    background:rgba(255,253,248,.96);
    border-bottom:1px solid rgba(24,49,38,.10);
    box-shadow:0 4px 18px rgba(24,49,38,.05);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
  }
  body.admin-bar.cf-mobile-app-enabled .cf-app-topbar { top:46px; }
  body.cf-mobile-no-topbar .cf-app-topbar { display:none!important; }

  .cf-app-brand { display:flex; align-items:center; min-width:0; text-decoration:none!important; }
  .cf-app-logo-img { display:block; max-width:var(--cf-app-logo-w,165px); max-height:46px; width:auto; height:auto; object-fit:contain; }
  .cf-app-logo-icon { width:38px; height:38px; border-radius:11px; margin-right:8px; }
  .cf-app-brand-mark { font-size:28px; line-height:1; margin-right:8px; }
  .cf-app-brand-text { color:var(--cf-app-brand); font-size:19px; font-weight:800; letter-spacing:-.02em; }

  .cf-app-primary-action {
    display:inline-flex; align-items:center; justify-content:center; white-space:nowrap;
    min-height:40px; padding:0 14px; border-radius:999px;
    background:var(--cf-app-brand); color:#fff!important; text-decoration:none!important;
    font-size:13px; font-weight:800; box-shadow:0 6px 16px rgba(31,75,54,.18);
  }

  .cf-app-bottom-nav {
    display:grid;
    grid-template-columns:repeat(var(--cf-app-nav-count,4),minmax(0,1fr));
    position:fixed; left:0; right:0; bottom:0; z-index:9998;
    min-height:var(--cf-app-nav-h,74px);
    padding:5px 8px calc(5px + env(safe-area-inset-bottom,0px));
    background:rgba(255,253,248,.97);
    border-top:1px solid rgba(24,49,38,.10);
    box-shadow:0 -10px 30px rgba(24,49,38,.10);
    backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  }
  .cf-app-nav-item {
    position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:3px; min-width:0; min-height:58px; border-radius:14px; color:var(--cf-app-muted,#66756d)!important;
    text-decoration:none!important; -webkit-tap-highlight-color:transparent;
  }
  .cf-app-nav-item::before { content:""; position:absolute; inset:6px 8px; border-radius:12px; background:transparent; z-index:-1; }
  .cf-app-nav-item.is-active { color:var(--cf-app-brand)!important; }
  .cf-app-nav-item.is-active::before { background:rgba(31,75,54,.08); }
  .cf-app-nav-icon { width:24px; height:24px; display:block; }
  .cf-app-nav-icon svg { width:24px; height:24px; display:block; fill:currentColor; }
  .cf-app-nav-label { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; line-height:1.2; font-weight:750; }

  /* App homepage */
  .cf-app-mobile-home { display:block; background:var(--cf-app-surface); min-height:calc(100vh - var(--cf-app-nav-h)); }
  .cf-app-home-hero { background:linear-gradient(160deg, rgba(214,155,66,.09), rgba(255,253,248,.2) 55%), var(--cf-app-surface); border-bottom:1px solid rgba(24,49,38,.08); }
  .cf-app-home-inner,.cf-app-home-section { max-width:680px; margin:0 auto; padding:24px 18px; }
  .cf-app-kicker { margin:0 0 10px; color:#a86f1e; font-size:12px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
  .cf-app-home-hero h1 { margin:0; color:var(--cf-app-text); font-size:clamp(34px,9vw,48px); line-height:.98; letter-spacing:-.045em; font-weight:850; }
  .cf-app-home-hero p { margin:14px 0 18px; color:var(--cf-app-muted); font-size:15px; line-height:1.48; }
  .cf-app-home-search { display:grid; grid-template-columns:24px minmax(0,1fr) auto; align-items:center; gap:8px; background:#fff; border:1px solid rgba(24,49,38,.15); border-radius:16px; padding:5px 5px 5px 12px; box-shadow:0 6px 18px rgba(24,49,38,.06); }
  .cf-app-search-pin { width:20px; height:20px; color:var(--cf-app-accent); }
  .cf-app-search-pin svg { width:20px; height:20px; fill:currentColor; }
  .cf-app-home-search input { min-width:0!important; width:100%!important; height:44px!important; padding:0!important; border:0!important; outline:0!important; box-shadow:none!important; background:transparent!important; color:var(--cf-app-text)!important; font-size:14px!important; }
  .cf-app-home-search button { min-height:44px!important; border:0!important; border-radius:12px!important; padding:0 16px!important; background:var(--cf-app-accent)!important; color:#173126!important; font-weight:850!important; font-size:13px!important; }

  .cf-app-home-section { padding-top:20px; padding-bottom:26px; }
  .cf-app-section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
  .cf-app-section-head h2 { margin:0; color:var(--cf-app-text); font-size:21px; letter-spacing:-.02em; }
  .cf-app-section-head a { color:var(--cf-app-brand)!important; text-decoration:none!important; font-size:12px; font-weight:800; }
  .cf-app-learn-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .cf-app-learn-card { min-height:112px; display:flex; flex-direction:column; align-items:flex-start; padding:13px; border-radius:var(--cf-app-radius); border:1px solid rgba(24,49,38,.12); background:#fff; color:var(--cf-app-text)!important; text-decoration:none!important; box-shadow:0 3px 10px rgba(24,49,38,.025); }
  .cf-app-card-icon { display:grid; place-items:center; width:34px; height:34px; margin-bottom:9px; border-radius:50%; background:rgba(214,155,66,.16); color:#b77920; }
  .cf-app-card-icon svg { width:18px; height:18px; fill:currentColor; }
  .cf-app-learn-card strong { font-size:13px; text-transform:uppercase; line-height:1.2; }
  .cf-app-learn-card > span:last-child { margin-top:4px; color:var(--cf-app-muted); font-size:11.5px; line-height:1.35; }
  .cf-app-local-card { display:grid; grid-template-columns:48px minmax(0,1fr); align-items:center; gap:12px; margin-top:12px; padding:14px; border-radius:var(--cf-app-radius); background:var(--cf-app-brand); color:#fff!important; text-decoration:none!important; box-shadow:0 8px 24px rgba(31,75,54,.15); }
  .cf-app-local-icon { display:grid; place-items:center; width:46px; height:46px; border-radius:50%; background:var(--cf-app-accent); color:#193426; }
  .cf-app-local-icon svg { width:24px; height:24px; fill:currentColor; }
  .cf-app-local-card strong { display:block; font-size:17px; line-height:1.2; }
  .cf-app-local-card small { display:block; margin-top:3px; opacity:.9; font-size:12px; }

  /* Conservative MyListing/Explore mobile polish */
  body.cf-mobile-explore-enhanced .explore-head,
  body.cf-mobile-explore-enhanced .finder-container,
  body.cf-mobile-explore-enhanced .finder-search,
  body.cf-mobile-explore-enhanced .explore-type-2 .explore-head { border-radius:0!important; }
  body.cf-mobile-explore-enhanced .explore-head { padding-top:12px!important; }
  body.cf-mobile-explore-enhanced .finder-search { box-shadow:none!important; }
  body.cf-mobile-explore-enhanced .explore-filter { min-height:44px; }
  body.cf-mobile-explore-enhanced .listing-preview .c27-footer-section,
  body.cf-mobile-explore-enhanced .lf-item-container { border-radius:var(--cf-app-radius)!important; overflow:hidden; }
  body.cf-mobile-explore-enhanced .explore-head,
  body.cf-mobile-explore-enhanced .finder-container,
  body.cf-mobile-explore-enhanced .listing-main-info { scroll-margin-bottom:95px; }

  body.cf-mobile-app-enabled a, body.cf-mobile-app-enabled button, body.cf-mobile-app-enabled input[type="submit"] { touch-action:manipulation; }
  body.cf-mobile-app-enabled .elementor-button, body.cf-mobile-app-enabled .button, body.cf-mobile-app-enabled button:not(.gm-control-active) { min-height:44px; }
  body.cf-mobile-app-enabled .elementor-widget-container img { max-width:100%; }

  body.cf-mobile-hide-theme-header header.header,
  body.cf-mobile-hide-theme-header .c27-main-header,
  body.cf-mobile-hide-theme-header #c27-site-wrapper > header,
  body.cf-mobile-hide-theme-header .header-container { display:none!important; }

  /* PWA install prompt */
  .cf-app-install-card { position:fixed; left:12px; right:12px; bottom:calc(var(--cf-app-nav-h) + 12px + env(safe-area-inset-bottom,0px)); z-index:10000; align-items:center; gap:10px; padding:12px 12px 12px 14px; border-radius:16px; background:#fff; color:var(--cf-app-text); box-shadow:0 14px 38px rgba(20,42,32,.22); border:1px solid rgba(24,49,38,.10); }
  .cf-app-install-card.is-visible { display:grid; grid-template-columns:minmax(0,1fr) auto auto; }
  .cf-app-install-card strong,.cf-app-install-card span { display:block; }
  .cf-app-install-card strong { font-size:13px; }
  .cf-app-install-card span { margin-top:2px; font-size:11px; color:var(--cf-app-muted); }
  .cf-app-install-button { min-height:38px!important; padding:0 14px!important; border:0!important; border-radius:999px!important; background:var(--cf-app-brand)!important; color:#fff!important; font-weight:800!important; }
  .cf-app-install-dismiss { order:3; width:32px!important; height:32px!important; min-height:32px!important; padding:0!important; border:0!important; background:transparent!important; color:var(--cf-app-muted)!important; font-size:22px!important; }
}

@media (max-width: 782px) {
  body.admin-bar.cf-mobile-app-enabled .cf-app-topbar { top:46px; }
}
@media (max-width: 600px) {
  body.admin-bar.cf-mobile-app-enabled .cf-app-topbar { top:0; }
}

/* v0.2.3 — switch between app-style mobile site and the normal website */
@media (max-width: 1200px) {
  .cf-app-full-site-choice {
    margin-top:18px;
    padding:15px 8px 2px;
    text-align:center;
    border-top:1px solid rgba(24,49,38,.10);
  }
  .cf-app-full-site-choice span {
    display:block;
    margin-bottom:5px;
    color:var(--cf-app-muted,#66756d);
    font-size:12px;
    line-height:1.35;
  }
  .cf-app-full-site-choice a {
    display:inline-flex;
    align-items:center;
    min-height:42px;
    padding:0 14px;
    color:var(--cf-app-brand,#1f4b36)!important;
    font-size:13px;
    font-weight:850;
    text-decoration:none!important;
  }

  .cf-app-return-app {
    position:fixed;
    right:14px;
    bottom:14px;
    z-index:10001;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:0 16px;
    border:1px solid rgba(255,255,255,.25);
    border-radius:999px;
    background:var(--cf-app-brand,#1f4b36);
    color:#fff!important;
    box-shadow:0 10px 28px rgba(20,42,32,.25);
    font-size:12px;
    font-weight:850;
    text-decoration:none!important;
  }

  /* Client-side fallback for full-page caches such as WP Rocket. */
  body.cf-mobile-full-site {
    padding-bottom:0!important;
  }
  body.cf-mobile-full-site .cf-app-topbar,
  body.cf-mobile-full-site .cf-app-bottom-nav,
  body.cf-mobile-full-site .cf-app-mobile-home,
  body.cf-mobile-full-site .cf-app-install-card {
    display:none!important;
  }
}

@media (min-width: 1201px) {
  .cf-app-return-app { display:none!important; }
}

/* v0.3.0 — geolocation search + dedicated mobile Find Wood presentation */
@media (max-width: 1200px) {
  /* Shared location search */
  .cf-app-location-form {
    display:grid;
    grid-template-columns:24px minmax(0,1fr) 42px auto;
    align-items:center;
    gap:7px;
    background:#fff;
    border:1px solid rgba(24,49,38,.15);
    border-radius:16px;
    padding:5px 5px 5px 12px;
    box-shadow:0 6px 18px rgba(24,49,38,.06);
  }
  .cf-app-location-form input[name="search_location"] {
    min-width:0!important;
    width:100%!important;
    height:44px!important;
    padding:0!important;
    border:0!important;
    outline:0!important;
    box-shadow:none!important;
    background:transparent!important;
    color:var(--cf-app-text)!important;
    font-size:14px!important;
  }
  .cf-app-search-locate {
    display:grid!important;
    place-items:center;
    width:42px!important;
    min-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    padding:0!important;
    border:0!important;
    border-radius:12px!important;
    background:rgba(31,75,54,.08)!important;
    color:var(--cf-app-brand)!important;
    box-shadow:none!important;
  }
  .cf-app-search-locate svg { width:21px; height:21px; fill:currentColor; }
  .cf-app-search-locate.is-loading svg { animation:cf-app-locate-spin 1s linear infinite; }
  .cf-app-search-locate:disabled { opacity:.65!important; }
  @keyframes cf-app-locate-spin { to { transform:rotate(360deg); } }

  .cf-app-search-submit {
    min-height:44px!important;
    border:0!important;
    border-radius:12px!important;
    padding:0 16px!important;
    background:var(--cf-app-accent)!important;
    color:#173126!important;
    font-weight:850!important;
    font-size:13px!important;
    box-shadow:none!important;
  }
  .cf-app-location-status {
    min-height:17px;
    margin:6px 2px 0;
    color:var(--cf-app-muted);
    font-size:11px;
    line-height:1.35;
  }
  .cf-app-location-status[data-state="error"] { color:#a13d32; }
  .cf-app-location-status[data-state="success"] { color:var(--cf-app-brand); font-weight:700; }

  /* Existing homepage search is now the shared location form. */
  .cf-app-home-search { display:grid; grid-template-columns:24px minmax(0,1fr) 42px auto; }

  /* Dedicated mobile Find Wood header */
  .cf-app-find-intro {
    display:block;
    background:
      radial-gradient(circle at 92% 8%, rgba(214,155,66,.14), transparent 34%),
      linear-gradient(180deg, rgba(255,253,248,.98), rgba(248,246,238,.98));
    border-bottom:1px solid rgba(24,49,38,.09);
  }
  .cf-app-find-inner {
    max-width:680px;
    margin:0 auto;
    padding:20px 16px 13px;
  }
  .cf-app-find-intro h1 {
    margin:0;
    color:var(--cf-app-text);
    font-size:clamp(30px,8vw,42px);
    line-height:1;
    letter-spacing:-.04em;
    font-weight:850;
  }
  .cf-app-find-intro p {
    margin:9px 0 15px;
    color:var(--cf-app-muted);
    font-size:13px;
    line-height:1.45;
  }
  .cf-app-find-search { width:100%; }
  .cf-app-radius-note {
    margin-top:2px;
    color:var(--cf-app-muted);
    font-size:10.5px;
    line-height:1.35;
  }

  /* On the Find Wood screen, the app bar replaces the normal MyListing header. */
  body.cf-mobile-app-find header.header,
  body.cf-mobile-app-find .c27-main-header,
  body.cf-mobile-app-find #c27-site-wrapper > header,
  body.cf-mobile-app-find .header-container { display:none!important; }

  /* Remove normal site furniture so the Explore widget reads as an app screen. */
  body.cf-mobile-app-find footer.footer,
  body.cf-mobile-app-find .c27-footer,
  body.cf-mobile-app-find #c27-site-wrapper > footer { display:none!important; }
  body.cf-mobile-app-find .elementor-location-header,
  body.cf-mobile-app-find .elementor-location-footer { display:none!important; }

  body.cf-mobile-app-find #c27-site-wrapper,
  body.cf-mobile-app-find .elementor,
  body.cf-mobile-app-find .elementor-section-wrap,
  body.cf-mobile-app-find .elementor-widget-container {
    background:var(--cf-app-surface,#fffdf8);
  }

  /* MyListing Explore engine, visually reskinned for the app. */
  body.cf-mobile-app-find #c27-explore-listings {
    background:var(--cf-app-surface,#fffdf8)!important;
    border:0!important;
  }
  body.cf-mobile-app-find .mobile-explore-head {
    position:relative!important;
    z-index:20!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    min-height:52px!important;
    padding:7px 14px!important;
    background:var(--cf-app-surface,#fffdf8)!important;
    border-bottom:1px solid rgba(24,49,38,.08)!important;
    box-shadow:none!important;
  }
  body.cf-mobile-app-find .mobile-explore-head .toggle-mobile-search {
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:6px!important;
    min-height:38px!important;
    padding:0 14px!important;
    border:1px solid rgba(31,75,54,.16)!important;
    border-radius:999px!important;
    background:#fff!important;
    color:var(--cf-app-brand)!important;
    font-size:12px!important;
    font-weight:800!important;
    text-decoration:none!important;
    box-shadow:0 3px 12px rgba(24,49,38,.04)!important;
  }
  body.cf-mobile-app-find .mobile-explore-head .toggle-mobile-search i {
    color:var(--cf-app-accent)!important;
  }

  body.cf-mobile-app-find .finder-search {
    background:#fff!important;
    border:0!important;
    box-shadow:0 12px 30px rgba(24,49,38,.08)!important;
  }
  body.cf-mobile-app-find .finder-tabs-wrapper {
    padding-bottom:calc(var(--cf-app-nav-h,74px) + 20px)!important;
  }
  body.cf-mobile-app-find .finder-tabs-wrapper .form-group,
  body.cf-mobile-app-find .finder-tabs-wrapper .explore-filter {
    border-radius:12px!important;
  }

  body.cf-mobile-app-find .finder-listings {
    background:var(--cf-app-surface,#fffdf8)!important;
  }
  body.cf-mobile-app-find .finder-listings .fl-head {
    min-height:52px!important;
    padding:8px 8px!important;
    background:var(--cf-app-surface,#fffdf8)!important;
    border-bottom:1px solid rgba(24,49,38,.08)!important;
  }
  body.cf-mobile-app-find .finder-listings .results-view {
    padding:10px 8px calc(var(--cf-app-nav-h,74px) + 70px)!important;
    background:var(--cf-app-surface,#fffdf8)!important;
  }
  body.cf-mobile-app-find .finder-listings .grid-item {
    width:100%!important;
    max-width:100%!important;
    padding-left:6px!important;
    padding-right:6px!important;
    margin-bottom:12px!important;
  }
  body.cf-mobile-app-find .lf-item-container,
  body.cf-mobile-app-find .listing-preview {
    border-radius:var(--cf-app-radius,18px)!important;
    overflow:hidden!important;
    background:#fff!important;
    box-shadow:0 5px 18px rgba(24,49,38,.07)!important;
    border:1px solid rgba(24,49,38,.08)!important;
  }
  body.cf-mobile-app-find .listing-details.c27-footer-section {
    background:#fff!important;
    border-top:1px solid rgba(24,49,38,.07)!important;
  }
  body.cf-mobile-app-find .listing-preview-title {
    color:var(--cf-app-text)!important;
    font-weight:800!important;
  }

  /* Map/list switch: keep MyListing's functionality, but float it just above our app nav. */
  body.cf-mobile-app-find .explore-mobile-nav {
    position:fixed!important;
    left:12px!important;
    right:12px!important;
    bottom:calc(var(--cf-app-nav-h,74px) + 10px + env(safe-area-inset-bottom,0px))!important;
    z-index:9997!important;
    width:auto!important;
    padding:5px!important;
    border:1px solid rgba(24,49,38,.10)!important;
    border-radius:16px!important;
    background:rgba(255,253,248,.96)!important;
    box-shadow:0 10px 28px rgba(24,49,38,.14)!important;
    backdrop-filter:blur(14px)!important;
    -webkit-backdrop-filter:blur(14px)!important;
  }
  body.cf-mobile-app-find .explore-mobile-nav .nav-tabs {
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:4px!important;
    border:0!important;
  }
  body.cf-mobile-app-find .explore-mobile-nav .nav-tabs > li {
    flex:1 1 0!important;
    margin:0!important;
  }
  body.cf-mobile-app-find .explore-mobile-nav .nav-tabs > li > a {
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    min-height:39px!important;
    margin:0!important;
    padding:0 8px!important;
    border:0!important;
    border-radius:12px!important;
    background:transparent!important;
    color:var(--cf-app-muted)!important;
    font-size:11px!important;
    font-weight:800!important;
    text-decoration:none!important;
  }
  body.cf-mobile-app-find .explore-mobile-nav .nav-tabs > li.active > a,
  body.cf-mobile-app-find .explore-mobile-nav .nav-tabs > li > a:hover {
    background:rgba(31,75,54,.09)!important;
    color:var(--cf-app-brand)!important;
  }

  body.cf-mobile-app-find .finder-map {
    background:#e8eee8!important;
  }
  body.cf-mobile-app-find .finder-map .map,
  body.cf-mobile-app-find .finder-map .c27-map {
    border-radius:0!important;
  }

  /* Make the app top bar visually continuous with this screen. */
  body.cf-mobile-app-find .cf-app-topbar {
    background:rgba(255,253,248,.98)!important;
    box-shadow:none!important;
  }

  /* v0.5.1 — Full Website mode deliberately does NOT force display values on
     MyListing's header/footer. Author-level `display:revert!important` can break
     MyListing's own sticky-header/spacer relationship and make the page hero sit
     underneath the top bar. Removing the app body classes is sufficient; the
     theme is then free to apply its native responsive layout unchanged. */
  body.cf-mobile-full-site .cf-app-find-intro,
  body.cf-mobile-full-site .cf-app-view-switch-slot { display:none!important; }
}

@media (max-width: 390px) {
  .cf-app-location-form { grid-template-columns:22px minmax(0,1fr) 40px auto; gap:5px; padding-left:9px; }
  .cf-app-search-locate { width:40px!important; min-width:40px!important; }
  .cf-app-search-submit { padding:0 12px!important; }
}


/* v0.3.1 — Find Wood layering + reliable app header */
@media (max-width: 1200px) {
  /* MyListing creates several stacking contexts on Explore. Keep the app chrome
     outside/above them so the header and map/list switch cannot be covered. */
  body.cf-mobile-app-find:not(.cf-mobile-no-topbar) {
    padding-top:var(--cf-app-top-h,64px)!important;
  }

  body.cf-mobile-app-find .cf-app-topbar {
    display:flex!important;
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    z-index:2147483002!important;
    visibility:visible!important;
    opacity:1!important;
    transform:none!important;
    isolation:isolate!important;
  }

  body.admin-bar.cf-mobile-app-find .cf-app-topbar {
    top:46px!important;
  }

  /* Once JS moves MyListing's map/list switch to <body>, this selector keeps
     it above listing cards, maps, and transformed Explore containers. */
  body.cf-mobile-app-find > .explore-mobile-nav.cf-app-floating-view-switch,
  body.cf-mobile-app-find .explore-mobile-nav {
    position:fixed!important;
    left:12px!important;
    right:12px!important;
    bottom:calc(var(--cf-app-nav-h,74px) + 10px + env(safe-area-inset-bottom,0px))!important;
    z-index:2147483000!important;
    width:auto!important;
    pointer-events:auto!important;
    visibility:visible!important;
    opacity:1!important;
    transform:translateZ(0)!important;
    isolation:isolate!important;
  }

  body.cf-mobile-app-find > .explore-mobile-nav.cf-app-floating-view-switch * {
    pointer-events:auto!important;
  }

  body.cf-mobile-app-find .cf-app-bottom-nav {
    z-index:2147483001!important;
  }
}

@media (max-width: 600px) {
  body.admin-bar.cf-mobile-app-find .cf-app-topbar {
    top:0!important;
  }
}


/* v0.3.2 — Find Wood header fallback + remove MyListing's hidden-header gap */
@media (max-width: 1200px) {
  /* MyListing may keep layout space for its header even when the header itself is
     hidden. The app header owns the top edge on Find Wood, so remove those gaps. */
  body.cf-mobile-app-find #c27-site-wrapper {
    margin-top:0!important;
    padding-top:0!important;
  }

  body.cf-mobile-app-find .header-spacer,
  body.cf-mobile-app-find .header-placeholder,
  body.cf-mobile-app-find .header-space,
  body.cf-mobile-app-find .c27-header-spacer,
  body.cf-mobile-app-find .c27-header-placeholder,
  body.cf-mobile-app-find [class*="header-spacer"],
  body.cf-mobile-app-find [class*="header-placeholder"] {
    display:none!important;
    height:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
  }

  /* The fallback is emitted in wp_footer because that hook is present on the
     Explore page where wp_body_open may not be. Fixed positioning makes its DOM
     location irrelevant. */
  body.cf-mobile-app-find .cf-app-topbar-fallback {
    display:flex!important;
  }

  body.cf-mobile-app-find .cf-app-find-intro {
    margin-top:0!important;
  }
}


/* v0.3.3 — same native MyListing header on Home + Find Wood, no top gap */
@media (max-width: 1200px) {
  /* The two primary app screens use the site's existing mobile header. This is
     the exact header that provides the hamburger/expanded menu on the homepage. */
  body.cf-mobile-app-home .cf-app-topbar,
  body.cf-mobile-app-find .cf-app-topbar {
    display:none!important;
  }

  body.cf-mobile-app-home header.header,
  body.cf-mobile-app-home .c27-main-header,
  body.cf-mobile-app-home #c27-site-wrapper > header,
  body.cf-mobile-app-home .header-container,
  body.cf-mobile-app-find header.header,
  body.cf-mobile-app-find .c27-main-header,
  body.cf-mobile-app-find #c27-site-wrapper > header,
  body.cf-mobile-app-find .header-container {
    display:revert!important;
    visibility:visible!important;
    opacity:1!important;
  }

  /* v0.3.1 reserved space for the fixed custom app header. The native MyListing
     header already manages its own layout, so that extra offset must be removed. */
  body.cf-mobile-app-find,
  body.cf-mobile-app-find:not(.cf-mobile-no-topbar) {
    padding-top:0!important;
  }

  body.cf-mobile-app-find #c27-site-wrapper,
  body.cf-mobile-app-find .cf-app-find-intro {
    margin-top:0!important;
    padding-top:0!important;
  }

  /* Don't suppress MyListing's own header placeholder if its sticky-header
     implementation needs one. The app no longer creates a second top offset. */
  body.cf-mobile-app-find .header-spacer,
  body.cf-mobile-app-find .header-placeholder,
  body.cf-mobile-app-find .header-space,
  body.cf-mobile-app-find .c27-header-spacer,
  body.cf-mobile-app-find .c27-header-placeholder,
  body.cf-mobile-app-find [class*="header-spacer"],
  body.cf-mobile-app-find [class*="header-placeholder"] {
    display:revert!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
  }

  /* The intro itself starts flush when JS lifts it out of Elementor/MyListing's
     page content container. */
  body.cf-mobile-app-find .cf-app-find-inner {
    padding-top:18px!important;
  }
}


/* v0.3.4 — native MyListing header overlap fix on Find Wood.
   JS measures the actual rendered mobile-header edge and applies only the
   missing offset, so sticky/fixed and in-flow MyListing header variants both work. */
@media (max-width: 1200px) {
  body.cf-mobile-app-find .cf-app-find-intro[data-cf-positioned="native-header"] {
    position:relative;
    z-index:1;
  }
}


/* v0.3.5 — definitive native-header offset for Find Wood.
   Older compatibility rules intentionally use !important, so the measured
   offset is passed through a CSS custom property and consumed by a later
   !important declaration. This allows the native MyListing header to stay
   exactly the same as Home without covering the Find Wood hero. */
@media (max-width: 1200px) {
  body.cf-mobile-app-find .cf-app-find-intro[data-cf-positioned="native-header"] {
    margin-top:var(--cf-find-native-header-offset, 0px)!important;
  }
}


/* v0.3.7 — the legacy service-area selector remains available on the full
   website/desktop, but is intentionally removed from the app-style Find Wood
   experience. JavaScript identifies the exact section so no Elementor IDs are
   hard-coded here. */
body.cf-mobile-app-find .cf-app-service-area-mobile-hidden {
  display:none!important;
}

/* v0.3.8 — mobile app Find Wood uses the CanFirewood location search as its
   only search UI. The exact configured breakpoint is enforced by inline CSS
   generated in PHP; this class also lets JS reliably mark the native panel. */
body.cf-mobile-app-find .finder-search[aria-hidden="true"],
body.cf-mobile-app-find .toggle-mobile-search[aria-hidden="true"] {
  display:none!important;
}


/* v0.3.9 — Find Wood performance pass. The expensive translucent blur on the
   floating MyListing Map/List control is disabled at the configured mobile
   breakpoint by inline critical CSS. Keep paint work simple while Explore is
   hydrating and avoid unnecessary animated layout transitions. */


/* v0.4.0 — cleaner Find Wood results presentation.
   Listing titles sit over listing imagery in MyListing, so keep them white on
   the app screen. The native Map/List control is no longer a floating overlay;
   JavaScript places the existing control in a dedicated in-flow slot immediately
   above the results/map area. */
@media (max-width: 1200px) {
  body.cf-mobile-app-find .listing-preview-title,
  body.cf-mobile-app-find .listing-preview-title a,
  body.cf-mobile-app-find .listing-preview .lf-item-info h4,
  body.cf-mobile-app-find .listing-preview .lf-item-info h4 a,
  body.cf-mobile-app-find .lf-item-container .lf-item-info h4,
  body.cf-mobile-app-find .lf-item-container .lf-item-info h4 a {
    color:#fff!important;
  }

  body.cf-mobile-app-find .cf-app-view-switch-slot {
    display:block!important;
    position:relative!important;
    z-index:20!important;
    width:100%!important;
    box-sizing:border-box!important;
    padding:12px 18px 8px!important;
    margin:0!important;
    background:var(--cf-app-surface,#fffdf8)!important;
  }

  body.cf-mobile-app-find .cf-app-view-switch-slot .explore-mobile-nav,
  body.cf-mobile-app-find > .explore-mobile-nav.cf-app-floating-view-switch {
    position:static!important;
    inset:auto!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    margin:0!important;
    padding:5px!important;
    border:1px solid rgba(24,49,38,.10)!important;
    border-radius:16px!important;
    background:#fff!important;
    box-shadow:0 5px 16px rgba(24,49,38,.07)!important;
    transform:none!important;
    isolation:auto!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }

  body.cf-mobile-app-find .cf-app-view-switch-slot .explore-mobile-nav .nav-tabs {
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    margin:0!important;
  }

  body.cf-mobile-app-find .cf-app-view-switch-slot .explore-mobile-nav .nav-tabs > li {
    flex:0 1 auto!important;
    min-width:135px!important;
  }

  body.cf-mobile-app-find .cf-app-view-switch-slot .explore-mobile-nav .nav-tabs > li > a {
    min-height:42px!important;
    padding:0 18px!important;
    font-size:13px!important;
    border-radius:12px!important;
  }

  /* The old floating switch required extra bottom room in the results. With the
     control now in normal document flow, only the persistent app nav needs space. */
  body.cf-mobile-app-find .finder-listings .results-view {
    padding-bottom:calc(var(--cf-app-nav-h,74px) + 26px)!important;
  }
}
\n\n/* v0.4.1 — Find Wood entry position + clear-search action. */\n@media (max-width: 1200px) {\n  html:has(body.cf-mobile-app-find),\n  body.cf-mobile-app-find {\n    scroll-behavior:auto!important;\n  }\n\n  body.cf-mobile-app-find .cf-app-find-search-actions {\n    display:flex!important;\n    justify-content:center!important;\n    min-height:26px!important;\n    margin:7px 0 0!important;\n  }\n\n  body.cf-mobile-app-find .cf-app-clear-search {\n    appearance:none!important;\n    -webkit-appearance:none!important;\n    display:inline-flex!important;\n    align-items:center!important;\n    justify-content:center!important;\n    min-height:30px!important;\n    margin:0!important;\n    padding:3px 12px!important;\n    border:0!important;\n    border-radius:999px!important;\n    background:transparent!important;\n    box-shadow:none!important;\n    color:var(--cf-app-brand,#1f4b36)!important;\n    font-size:13px!important;\n    line-height:1.2!important;\n    font-weight:750!important;\n    text-decoration:underline!important;\n    text-underline-offset:3px!important;\n    cursor:pointer!important;\n  }\n\n  body.cf-mobile-app-find .cf-app-clear-search[hidden] {\n    display:none!important;\n  }\n}\n

/* v0.5.0 — CanFirewood app-style supplier result cards.
   Presentation only: MyListing still owns the result data, links, AJAX loading,
   map interaction, bookmarks and configured preview fields. These rules apply
   only to the mobile app Find Wood screen when the card-style toggle is on. */
@media (max-width: 1200px) {
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .finder-listings .results-view {
    padding-left:14px!important;
    padding-right:14px!important;
  }

  body.cf-mobile-app-find.cf-mobile-app-listing-cards .finder-listings .grid-item {
    width:100%!important;
    max-width:100%!important;
    padding:0!important;
    margin:0 0 16px!important;
  }

  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item-container,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .listing-preview {
    position:relative!important;
    overflow:hidden!important;
    width:100%!important;
    margin:0!important;
    border:1px solid rgba(24,49,38,.09)!important;
    border-radius:20px!important;
    background:#fff!important;
    box-shadow:0 7px 22px rgba(24,49,38,.09)!important;
    transform:none!important;
  }

  /* The photographic part of the preview becomes one consistent app-card hero. */
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item-container .lf-item,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .listing-preview .lf-item {
    position:relative!important;
    min-height:205px!important;
    height:205px!important;
    overflow:hidden!important;
    border-radius:19px 19px 0 0!important;
    background:
      radial-gradient(circle at 85% 10%, rgba(214,155,66,.22), transparent 32%),
      linear-gradient(145deg,#315d46,#183126)!important;
  }

  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item .lf-background,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item .lf-background-carousel,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item .lf-background-carousel .owl-stage-outer,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item .lf-background-carousel .owl-stage,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item .lf-background-carousel .owl-item,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item .lf-background-carousel .item {
    height:100%!important;
    min-height:205px!important;
  }

  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item .lf-background {
    background-position:center!important;
    background-size:cover!important;
    transform:none!important;
    transition:none!important;
  }

  /* Override MyListing's flat overlay with a stable bottom-weighted gradient.
     This makes titles readable while keeping the upper photo bright. */
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item > a > .overlay,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item > .overlay {
    opacity:1!important;
    background:linear-gradient(180deg,rgba(10,28,20,.08) 15%,rgba(10,28,20,.26) 47%,rgba(10,28,20,.88) 100%)!important;
  }

  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item-info,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item-info-2 {
    position:absolute!important;
    left:16px!important;
    right:16px!important;
    bottom:14px!important;
    top:auto!important;
    z-index:5!important;
    width:auto!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
    transform:none!important;
  }

  body.cf-mobile-app-find.cf-mobile-app-listing-cards .listing-preview-title,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .listing-preview-title a,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item-info h4,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item-info h4 a,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item-info-2 h4,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item-info-2 h4 a {
    display:block!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    color:#fff!important;
    font-size:21px!important;
    line-height:1.08!important;
    font-weight:850!important;
    letter-spacing:-.025em!important;
    text-shadow:0 2px 12px rgba(0,0,0,.22)!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }

  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item-info-2 h6 {
    margin:5px 0 0!important;
    color:rgba(255,255,255,.88)!important;
    font-size:12px!important;
    line-height:1.3!important;
    font-weight:600!important;
  }

  /* Location and configured preview-info fields become compact translucent chips. */
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item-info > ul,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item-info-2 > ul,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item-info-2 .lf-contact {
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    gap:6px!important;
    width:100%!important;
    margin:9px 0 0!important;
    padding:0!important;
    list-style:none!important;
  }

  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item-info > ul > li,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item-info-2 > ul > li,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item-info-2 .lf-contact > li {
    display:inline-flex!important;
    align-items:center!important;
    gap:4px!important;
    width:auto!important;
    max-width:100%!important;
    min-height:27px!important;
    margin:0!important;
    padding:4px 8px!important;
    border:1px solid rgba(255,255,255,.23)!important;
    border-radius:999px!important;
    background:rgba(17,46,33,.58)!important;
    color:#fff!important;
    font-size:11px!important;
    line-height:1.15!important;
    font-weight:650!important;
    box-shadow:none!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item-info li i,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item-info-2 li i {
    flex:0 0 auto!important;
    margin:0!important;
    color:var(--cf-app-accent,#d69b42)!important;
    font-size:14px!important;
  }

  /* Alternate preview template logo treatment. */
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-item-info-2 .lf-avatar {
    width:48px!important;
    height:48px!important;
    margin:0 0 9px!important;
    border:2px solid rgba(255,255,255,.88)!important;
    border-radius:13px!important;
    background-color:#fff!important;
    box-shadow:0 5px 14px rgba(0,0,0,.16)!important;
  }

  /* Head buttons (featured/open/rating/etc.) become small app badges. */
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-head {
    top:12px!important;
    left:12px!important;
    right:12px!important;
    z-index:7!important;
  }
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-head .lf-head-btn {
    min-height:29px!important;
    margin:0 5px 5px 0!important;
    padding:5px 9px!important;
    border:1px solid rgba(255,255,255,.35)!important;
    border-radius:999px!important;
    background:rgba(255,253,248,.94)!important;
    color:var(--cf-app-brand,#1f4b36)!important;
    box-shadow:0 3px 10px rgba(0,0,0,.10)!important;
  }
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-head .lf-head-btn span,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .lf-head .lf-head-btn i {
    color:var(--cf-app-brand,#1f4b36)!important;
  }

  /* Footer taxonomy/details are useful, but MyListing's stock rows are visually
     heavy. Convert them to a compact, light metadata area below the photo. */
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .c27-footer-section,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .listing-details.c27-footer-section,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .listing-details-3.c27-footer-section,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .listing-details.actions.c27-footer-section,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .c27-footer-empty {
    min-height:0!important;
    margin:0!important;
    padding:10px 12px!important;
    border:0!important;
    border-top:1px solid rgba(24,49,38,.075)!important;
    background:#fff!important;
    box-shadow:none!important;
  }

  body.cf-mobile-app-find.cf-mobile-app-listing-cards .c27-listing-preview-category-list,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .details-list {
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    gap:6px!important;
    margin:0!important;
    padding:0!important;
    list-style:none!important;
  }

  body.cf-mobile-app-find.cf-mobile-app-listing-cards .c27-listing-preview-category-list > li,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .details-list > li {
    width:auto!important;
    max-width:100%!important;
    min-height:30px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
  }

  body.cf-mobile-app-find.cf-mobile-app-listing-cards .c27-listing-preview-category-list > li > a,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .details-list > li,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .details-list > li > span {
    color:var(--cf-app-brand,#1f4b36)!important;
    font-size:11px!important;
    line-height:1.2!important;
    font-weight:700!important;
  }

  body.cf-mobile-app-find.cf-mobile-app-listing-cards .c27-listing-preview-category-list > li > a {
    display:inline-flex!important;
    align-items:center!important;
    gap:5px!important;
    min-height:30px!important;
    padding:3px 9px 3px 4px!important;
    border-radius:999px!important;
    background:#f4f6f2!important;
    text-decoration:none!important;
  }

  body.cf-mobile-app-find.cf-mobile-app-listing-cards .c27-listing-preview-category-list .cat-icon {
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:23px!important;
    height:23px!important;
    min-width:23px!important;
    margin:0!important;
    border-radius:50%!important;
  }

  body.cf-mobile-app-find.cf-mobile-app-listing-cards .details-list > li {
    display:inline-flex!important;
    align-items:center!important;
    gap:5px!important;
    padding:6px 9px!important;
    border-radius:999px!important;
    background:#f4f6f2!important;
  }
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .details-list > li > i {
    margin:0!important;
    color:var(--cf-app-accent,#d69b42)!important;
    font-size:15px!important;
  }

  /* Keep bookmark/action functionality but make it thumb-friendly and subtle. */
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .listing-details.actions .ld-info,
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .listing-details.actions .ld-info > ul {
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:6px!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
  }
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .listing-details.actions .ld-info li {
    margin:0!important;
  }
  body.cf-mobile-app-find.cf-mobile-app-listing-cards .listing-details.actions .ld-info a {
    display:grid!important;
    place-items:center!important;
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    border:1px solid rgba(24,49,38,.10)!important;
    border-radius:12px!important;
    background:#f7f8f5!important;
    color:var(--cf-app-brand,#1f4b36)!important;
  }

  body.cf-mobile-app-find.cf-mobile-app-listing-cards .gallery-nav a {
    display:grid!important;
    place-items:center!important;
    width:38px!important;
    height:38px!important;
    border-radius:50%!important;
    background:rgba(255,253,248,.92)!important;
    color:var(--cf-app-brand,#1f4b36)!important;
    box-shadow:0 3px 10px rgba(0,0,0,.10)!important;
  }
}


/* v0.5.1 — Full Website isolation. These selectors only neutralize markup owned
   by this plugin; no MyListing header, spacer, wrapper, hero, or Elementor
   geometry is overridden in full-site mode. */
@media (max-width: 1200px) {
  body.cf-mobile-full-site .cf-app-topbar,
  body.cf-mobile-full-site .cf-app-bottom-nav,
  body.cf-mobile-full-site .cf-app-mobile-home,
  body.cf-mobile-full-site .cf-app-find-intro,
  body.cf-mobile-full-site .cf-app-view-switch-slot,
  body.cf-mobile-full-site .cf-app-install-card { display:none!important; }

  body.cf-mobile-full-site-find {
    padding-top:0!important;
    padding-bottom:0!important;
  }
}

/* v0.5.2 — Home uses the exact Find Wood search component. */
@media (max-width: 1200px) {
  /* The homepage now shares the same form class/markup as Find Wood. Keep the
     clear-search row visually identical there as well. */
  body.cf-mobile-app-enabled .cf-app-mobile-home .cf-app-find-search-actions {
    display:flex!important;
    justify-content:center!important;
    min-height:26px!important;
    margin:7px 0 0!important;
  }

  body.cf-mobile-app-enabled .cf-app-mobile-home .cf-app-clear-search {
    appearance:none!important;
    -webkit-appearance:none!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:30px!important;
    margin:0!important;
    padding:3px 12px!important;
    border:0!important;
    border-radius:999px!important;
    background:transparent!important;
    box-shadow:none!important;
    color:var(--cf-app-brand,#1f4b36)!important;
    font-size:13px!important;
    line-height:1.2!important;
    font-weight:750!important;
    text-decoration:underline!important;
    text-underline-offset:3px!important;
    cursor:pointer!important;
  }

  body.cf-mobile-app-enabled .cf-app-mobile-home .cf-app-clear-search[hidden] {
    display:none!important;
  }
}
