/* ── Fava Member CSS ─────────────────────────────────────────── */
*{box-sizing:border-box;}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:#f9fafb;color:#1e293b;}

/* Nav */
.fm-nav{position:sticky;top:0;z-index:200;background:#fff;border-bottom:1px solid #f1f5f9;box-shadow:0 1px 3px rgba(0,0,0,.06);}
.fm-nav-inner{max-width:1200px;margin:0 auto;padding:0 1.5rem;height:4rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;}
.fm-logo{font-size:1.75rem;font-weight:800;color:#1a3c34;text-decoration:none;letter-spacing:-.04em;}
.fm-nav-links{display:flex;align-items:center;gap:2rem;}
.fm-nav-link{font-size:.9375rem;font-weight:500;color:#6b7280;text-decoration:none;padding:.375rem 0;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;}
.fm-nav-link:hover,.fm-nav-link.active{color:#1a3c34;}
.fm-nav-link.active{border-bottom-color:#2d7a6b;font-weight:600;}
.fm-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:600;border-radius:.75rem;cursor:pointer;transition:all .15s;text-decoration:none;border:none;}
.fm-btn-primary{background:#2d7a6b;color:#fff;padding:.625rem 1.5rem;font-size:.9375rem;}
.fm-btn-primary:hover{background:#1a5c4f;}
.fm-btn-outline{background:#fff;color:#374151;border:1.5px solid #e5e7eb;padding:.575rem 1.25rem;font-size:.875rem;}
.fm-btn-outline:hover{border-color:#2d7a6b;color:#2d7a6b;}
.fm-btn-sm{padding:.5rem 1rem;font-size:.8125rem;}

/* Auth forms */
.fm-auth-wrap{min-height:calc(100vh - 4rem);display:flex;align-items:center;justify-content:center;padding:2rem 1rem;}
.fm-auth-card{background:#fff;border-radius:1.25rem;border:1px solid #f1f5f9;padding:2.5rem;width:100%;max-width:440px;box-shadow:0 4px 24px rgba(0,0,0,.06);}
.fm-input{width:100%;padding:.75rem 1rem;border:1.5px solid #e5e7eb;border-radius:.75rem;font-size:.9375rem;color:#111827;background:#fff;outline:none;transition:border-color .15s;}
.fm-input:focus{border-color:#2d7a6b;box-shadow:0 0 0 3px rgba(45,122,107,.1);}
.fm-label{display:block;font-size:.875rem;font-weight:500;color:#374151;margin-bottom:.375rem;}
.fm-field{margin-bottom:1.125rem;}
.fm-divider{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0;color:#9ca3af;font-size:.875rem;}
.fm-divider::before,.fm-divider::after{content:'';flex:1;height:1px;background:#f1f5f9;}
.fm-error-msg{background:#fef2f2;border:1px solid #fecaca;border-radius:.625rem;padding:.625rem .875rem;font-size:.8125rem;color:#991b1b;margin-bottom:1rem;}
.fm-success-msg{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.625rem;padding:.625rem .875rem;font-size:.8125rem;color:#166534;margin-bottom:1rem;}

/* Offer cards */
.fm-offer-card{background:#fff;border-radius:1rem;border:1px solid #f1f5f9;display:flex;overflow:hidden;transition:box-shadow .2s;margin-bottom:.875rem;}
.fm-offer-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.09);}
.fm-offer-img{width:220px;min-width:220px;flex-shrink:0;background:#f1f5f9;position:relative;overflow:visible;}
.fm-offer-img img{width:100%;height:100%;object-fit:cover;display:block;}
.fm-offer-badge{position:absolute;top:.625rem;left:.625rem;color:#fff;font-size:.6875rem;font-weight:700;padding:.25rem .625rem;border-radius:.375rem;letter-spacing:.04em;text-transform:uppercase;}
.fm-offer-body{flex:1;padding:1.125rem 1.25rem;display:flex;flex-direction:column;gap:.5rem;min-width:0;}
.fm-offer-title{font-size:1.125rem;font-weight:700;color:#111827;text-decoration:none;display:block;line-height:1.3;}
.fm-offer-title:hover{color:#2d7a6b;}
.fm-offer-sub{font-size:.875rem;color:#6b7280;margin:0;}
.fm-offer-loc{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:#6b7280;}
.fm-offer-loc::before{content:'';width:.5rem;height:.5rem;border-radius:50%;background:#10b981;flex-shrink:0;}
.fm-offer-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:auto;}
.fm-action-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;border:1.5px solid #e5e7eb;border-radius:.625rem;font-size:.8125rem;font-weight:500;color:#374151;text-decoration:none;background:#fff;cursor:pointer;transition:all .15s;}
.fm-action-btn:hover{border-color:#2d7a6b;color:#2d7a6b;}
.fm-claim-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1.25rem;background:#2d7a6b;color:#fff;border:none;border-radius:.625rem;font-size:.875rem;font-weight:700;cursor:pointer;letter-spacing:.02em;transition:background .15s;margin-left:auto;}
.fm-claim-btn:hover:not(:disabled){background:#1a5c4f;}
.fm-claim-btn.claimed{background:#f0fdf4;color:#166534;border:1.5px solid #bbf7d0;cursor:pointer;font-weight:600;letter-spacing:0;}
.fm-claim-btn.claimed:hover{background:#dcfce7;border-color:#86efac;}
.fm-claim-btn.redeemed{background:#f1f5f9;color:#9ca3af;cursor:default;}

/* Preferences */
.fm-pref-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem .75rem;margin:.875rem 0;}
.fm-pref-check{display:flex;align-items:center;gap:.625rem;cursor:pointer;padding:.4rem .5rem;border-radius:.5rem;transition:background .1s;}
.fm-pref-check:hover{background:#f0fdf4;}
.fm-pref-check input{width:1.125rem;height:1.125rem;accent-color:#2d7a6b;cursor:pointer;flex-shrink:0;}
.fm-pref-check span{font-size:.875rem;color:#374151;}

/* My Offers tabs */
.fm-tabs{display:flex;border-bottom:2px solid #f1f5f9;margin-bottom:1.5rem;gap:0;}
.fm-tab{padding:.75rem 1.25rem;font-size:.9375rem;font-weight:500;color:#9ca3af;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;transition:all .15s;background:none;border-top:none;border-left:none;border-right:none;}
.fm-tab.active,.fm-tab:hover{color:#2d7a6b;}
.fm-tab.active{border-bottom-color:#2d7a6b;font-weight:600;}

/* Filter chips */
.fm-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border:1.5px solid #e5e7eb;border-radius:2rem;font-size:.875rem;font-weight:500;color:#374151;background:#fff;cursor:pointer;transition:all .15s;}
.fm-chip:hover,.fm-chip.active{background:#2d7a6b;color:#fff;border-color:#2d7a6b;}

/* Favourites toggle */
.fm-fav-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1.125rem;border:1.5px solid #e5e7eb;border-radius:.625rem;font-size:.875rem;font-weight:500;background:#fff;color:#374151;cursor:pointer;transition:all .15s;}
.fm-fav-btn.is-fav{border-color:#ef4444;color:#ef4444;}
.fm-fav-btn:hover{border-color:#ef4444;color:#ef4444;}

/* Listing page */
.fm-listing-hero{position:relative;width:100%;height:280px;overflow:hidden;background:#1a3c34;}
.fm-listing-hero img{width:100%;height:100%;object-fit:cover;}
.fm-listing-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.6) 0%,transparent 60%);}
.fm-listing-info{position:absolute;bottom:1.5rem;left:1.5rem;color:#fff;}
.fm-listing-info h1{font-size:2rem;font-weight:800;margin:0 0 .375rem;text-shadow:0 1px 4px rgba(0,0,0,.3);}

/* Toast notifications */
.fm-toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);background:#1a3c34;color:#fff;padding:.75rem 1.5rem;border-radius:.875rem;font-size:.875rem;font-weight:500;z-index:9999;box-shadow:0 4px 16px rgba(0,0,0,.2);transition:opacity .3s;pointer-events:none;}
.fm-toast.error{background:#dc2626;}

/* Auth modal overlay */
.fm-modal{display:none;position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.5);align-items:center;justify-content:center;padding:1rem;}
.fm-modal.open{display:flex;}
.fm-modal-card{background:#fff;border-radius:1.25rem;padding:2rem;width:100%;max-width:420px;box-shadow:0 20px 60px rgba(0,0,0,.2);}

/* Responsive */
@media(max-width:768px){
  .fm-nav-links{display:none;}
  .fm-mob-menu-btn{display:flex !important;}
  .fm-offer-card{flex-direction:column;}
  .fm-offer-img{width:100%;min-width:0;height:200px;}
  .fm-pref-grid{grid-template-columns:1fr;}
  .fm-auth-card{padding:1.5rem;}
}
@media(max-width:480px){
  .fm-claim-btn{margin-left:0;width:100%;justify-content:center;}
}

/* ── Shortcode page scoping — prevent theme CSS from breaking layouts ─────── */
.fm-offer-card *,
.fm-offer-card *::before,
.fm-offer-card *::after {
  box-sizing: border-box;
}

/* Ensure offer card image fills correctly on any theme */
.fm-offer-img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/* Prevent theme link styles overriding offer titles */
a.fm-offer-title {
  font-size: 1.125rem !important;
  font-weight: 700 !important;
  color: #111827 !important;
  text-decoration: none !important;
  display: block !important;
  line-height: 1.3 !important;
}
a.fm-offer-title:hover {
  color: #2d7a6b !important;
}

/* Claim button — prevent theme button styles */
.fm-claim-btn {
  font-family: inherit !important;
  line-height: 1 !important;
  text-transform: none !important;
  letter-spacing: .02em !important;
}

/* Action buttons — prevent theme link/button styles */
a.fm-action-btn {
  color: #374151 !important;
  text-decoration: none !important;
  background: #fff !important;
}
a.fm-action-btn:hover {
  border-color: #2d7a6b !important;
  color: #2d7a6b !important;
}

/* Filter chips — prevent theme button styles */
.fm-chip {
  font-family: inherit !important;
  font-size: .875rem !important;
  line-height: 1 !important;
  text-transform: none !important;
}

/* Feed container */
#fm-feed-list,
#fm-offers-list {
  width: 100%;
}
