/* ── 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!important;flex-direction:column!important;overflow:hidden;transition:box-shadow .2s;margin-bottom:0;}
.fm-offer-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.09);}
.fm-offer-img{width:100%;background:#f1f5f9;position:relative;overflow:hidden;aspect-ratio:5/4;}
.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:.875rem 1rem;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;justify-content: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-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;}
}

/* ── Offer card v2 — conversion-focused layout ──────────────────────────── */

/* Secondary actions row */
.fm-offer-secondary{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:auto;}
.fm-secondary-btn{flex:1;justify-content:center;min-width:0;}

/* Claim wrap — full width primary */
.fm-offer-claim-wrap{display:flex;flex-direction:column;gap:.5rem;width:100%;}

/* Override claim button to be full-width & stronger */
.fm-offer-claim-wrap .fm-claim-btn{
  width:100%;
  justify-content:center;
  padding:.75rem 1rem;
  font-size:.9375rem;
  font-weight:800;
  letter-spacing:.04em;
  border-radius:.75rem;
  margin-left:0;
  gap:.5rem;
}
.fm-offer-claim-wrap .fm-claim-btn:not(.claimed):not(.redeemed){
  background:#1a3c34;
  box-shadow:0 2px 8px rgba(26,60,52,.25);
}
.fm-offer-claim-wrap .fm-claim-btn:not(.claimed):not(.redeemed):hover{
  background:#0f2821;
  box-shadow:0 4px 14px rgba(26,60,52,.35);
  transform:translateY(-1px);
}

/* Trust line */
.fm-trust-line{
  display:flex;align-items:center;justify-content:center;gap:.375rem;
  font-size:.75rem;color:#9ca3af;margin:0;
}

/* Body gap — tighter with new layout */
.fm-offer-body{gap:.375rem;}


/* ── Offer card social proof row ──────────────────────────────────────────── */
.fm-social-row{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;background:#f0fdf4;border:1px solid #d1fae5;border-radius:.625rem;padding:.5rem .75rem;}

/* Improved secondary action buttons — taller, cleaner */
.fm-secondary-btn{
  flex:1;justify-content:center;min-width:0;
  padding:.4rem .625rem!important;
  border-radius:.625rem!important;
  border:1.5px solid #e5e7eb!important;
  gap:.3rem!important;
  align-items:center!important;
  white-space:nowrap;
  font-size:.8rem!important;
}
.fm-secondary-btn:hover{border-color:#2d7a6b!important;color:#2d7a6b!important;}

/* Offer body — more breathing room between elements */
.fm-offer-body{gap:.625rem;}

/* Image height — taller like mockup */
@media(max-width:768px){
  .fm-social-row{flex-wrap:wrap;}
}

/* ── 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%;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  align-items: start;
}
@media(max-width:1100px){
  #fm-feed-list,#fm-offers-list{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:768px){
  #fm-feed-list,#fm-offers-list{grid-template-columns:repeat(2,1fr);gap:.75rem;}
}
@media(max-width:480px){
  #fm-feed-list,#fm-offers-list{grid-template-columns:1fr;gap:.625rem;}
}

/* ── Card layout — always vertical, image top with 1.2:1 ratio ────────── */
div.fm-offer-card,
.fm-offer-card{
  display:flex!important;flex-direction:column!important;overflow:hidden!important;
  margin-bottom:0!important;  /* grid gap handles spacing */
}
div.fm-offer-img,
.fm-offer-img{
  width:100%!important;min-width:0!important;
  aspect-ratio:5/4;           /* 1.25:1 — near-square landscape */
  height:auto!important;flex-shrink:0!important;align-self:auto!important;
  overflow:hidden!important;
}
/* Tablet */
@media(max-width:768px){
  div.fm-offer-img,.fm-offer-img{aspect-ratio:4/3;}
}
/* Mobile single column */
@media(max-width:480px){
  div.fm-offer-img,.fm-offer-img{aspect-ratio:16/10;}
}

/* Non-card children (empty state, load-more) span full grid width */
#fm-feed-list > div:not(.fm-offer-card),
#fm-offers-list > div:not(.fm-offer-card) {
  grid-column: 1 / -1;
}

/* Distance/location always visible on mobile — prevent theme hiding it */
.fm-offer-loc{display:flex!important;visibility:visible!important;}
.fm-offer-loc span{display:inline!important;visibility:visible!important;}
@media(max-width:768px){
  .fm-offer-loc{display:flex!important;flex-wrap:wrap;}
}

/* ── My Offers active CTA row (4-action hierarchy per mockup) ───────────── */
.fm-my-actions{
  display:grid;gap:.5rem;
  grid-template-columns:repeat(2,1fr);  /* 2x2 grid — fits inside narrow card */
  align-items:stretch;
  padding:.75rem .875rem;
}
.fm-my-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.35rem;
  min-height:38px;padding:.5rem .5rem;border-radius:.5rem;
  font-size:.775rem;font-weight:600;text-decoration:none;
  cursor:pointer;transition:all .15s;line-height:1.1;
  white-space:nowrap;overflow:hidden;
}
.fm-my-btn span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.fm-my-btn svg{flex-shrink:0;}
/* 1. Get Directions — primary solid green */
.fm-my-btn-primary{background:#1a3c34;color:#fff;border:1.5px solid #1a3c34;}
.fm-my-btn-primary:hover{background:#0f2a24;border-color:#0f2a24;color:#fff;}
/* 2 & 3. Reserve / View Restaurant — white outlined */
.fm-my-btn-outline{background:#fff;color:#374151;border:1.5px solid #e5e7eb;}
.fm-my-btn-outline:hover{border-color:#2d7a6b;color:#2d7a6b;}
/* 4. Redeem Offer — light green filled */
.fm-my-btn-redeem{background:#dcfce7;color:#166534;border:1.5px solid #bbf7d0;font-weight:700;}
.fm-my-btn-redeem:hover{background:#bbf7d0;border-color:#86efac;}

/* Show this when you arrive line */
.fm-my-actions-wrap > p.fm-trust-arrive{
  padding:0 .875rem .625rem;
  font-size:.75rem;color:#9ca3af;
  display:flex;align-items:center;justify-content:center;gap:.3rem;margin:0;
}

/* Mobile: same 2x2, just tighter */
@media(max-width:480px){
  .fm-my-actions{gap:.375rem;padding:.625rem .75rem;}
  .fm-my-btn{min-height:36px;font-size:.75rem;padding:.4rem .375rem;}
  .fm-my-btn svg{width:13px;height:13px;}
}

/* == Feed search bar ======================================================= */
/* ── Home feed search + filter bar ──────────────────────────────────────── */

/* ─ Search row: full-width pill ─ */
.fm-feed-search-bar{
  display:flex;align-items:center;gap:0;
  margin-bottom:.75rem;
  background:#fff;border:1.5px solid #e5e7eb;border-radius:.875rem;
  padding:0;
  box-shadow:0 1px 4px rgba(0,0,0,.05);
  overflow:hidden;
}
.fm-feed-search-wrap{
  flex:1;min-width:0;position:relative;display:flex;align-items:center;
}
.fm-feed-search-icon{
  position:absolute;left:.875rem;color:#9ca3af;pointer-events:none;flex-shrink:0;
}
.fm-feed-search-input{
  width:100%;padding:.75rem 2.5rem .75rem 2.625rem;
  border:none;outline:none;background:transparent;
  font-size:.9375rem;color:#374151;box-sizing:border-box;
}
.fm-feed-search-input::placeholder{color:#b0b8c4;}
.fm-feed-search-clear{
  position:absolute;right:.625rem;background:none;border:none;
  color:#9ca3af;cursor:pointer;padding:.25rem;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  transition:color .15s,background .15s;
}
.fm-feed-search-clear:hover{color:#374151;background:#f3f4f6;}

/* Divider + select wrappers */
.fm-feed-cat-wrap,.fm-feed-sort-wrap{
  position:relative;flex-shrink:0;display:flex;align-items:center;
  border-left:1px solid #e5e7eb;
}
.fm-feed-cat-select,.fm-feed-sort-select{
  padding:.75rem 2rem .75rem .875rem;
  border:none;background:transparent;
  font-size:.875rem;color:#374151;
  cursor:pointer;appearance:none;font-weight:500;outline:none;
}
.fm-feed-cat-arrow{
  position:absolute;right:.5rem;top:50%;transform:translateY(-50%);
  pointer-events:none;color:#9ca3af;
}

/* ─ Filters row: chips that scroll horizontally, no wrap ─ */
.fm-feed-filters-row{
  display:flex;align-items:center;gap:.5rem;margin-bottom:1.25rem;
}

/* Chips */
.fm-feed-chips{
  display:flex;align-items:center;gap:.375rem;
  overflow-x:auto;flex:1;
  scrollbar-width:none;-ms-overflow-style:none;
  padding:.125rem 0;
}
.fm-feed-chips::-webkit-scrollbar{display:none;}

/* ─ Sort button on mobile (extracted from pill) ─ */
.fm-feed-mobile-sort{display:none;}

/* ─ Responsive ─ */
@media(max-width:640px){
  /* Separate the sort dropdown out of the pill on mobile */
  .fm-feed-sort-wrap{display:none;}  /* hide from pill */
  .fm-feed-mobile-sort{
    display:flex;align-items:center;flex-shrink:0;
    position:relative;
    background:#fff;border:1.5px solid #e5e7eb;border-radius:.75rem;
    overflow:hidden;
  }
  .fm-feed-mobile-sort select{
    padding:.5rem 2rem .5rem .75rem;
    border:none;background:transparent;
    font-size:.8125rem;color:#374151;
    cursor:pointer;appearance:none;font-weight:500;outline:none;
    white-space:nowrap;
  }
  .fm-feed-mobile-sort svg{
    position:absolute;right:.375rem;top:50%;transform:translateY(-50%);
    pointer-events:none;color:#9ca3af;
  }
  /* Shrink cat select to fit cleanly */
  .fm-feed-cat-select{font-size:.8125rem;padding:.75rem 1.75rem .75rem .75rem;}
  .fm-feed-search-input{font-size:.9375rem;padding:.75rem 2.25rem .75rem 2.5rem;}
  /* Chips slightly smaller */
  .fm-feed-chips .fm-chip{font-size:.8125rem;padding:.375rem .75rem;white-space:nowrap;}
}

/* ── Listing page CTA buttons ───────────────────────────────────────────── */
.fmlp-desktop-actions{display:block;}
.fmlp-mobile-contact{display:none!important;}
@media(max-width:768px){
  .fmlp-desktop-actions{display:none!important;}
  .fmlp-mobile-contact{display:block!important;}
}
