/* Grid */
.mps-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:18px; }
.mps-pro-hero{ background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:14px; padding:14px; margin-bottom:16px; box-shadow:0 2px 10px rgba(0,0,0,.06); }
.mps-pro-hero__title{ font-size:20px; font-weight:700; }
.mps-pro-hero__date{ color:#6b7280; margin-bottom:8px; }

/* Card */
.mps-card{ position:relative; display:flex; flex-direction:column; align-items:center; background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:18px; padding:14px 14px 12px; box-shadow:0 6px 22px rgba(16,24,40,.06); transition:box-shadow .2s, transform .2s; }
.mps-card:hover{ box-shadow:0 12px 30px rgba(16,24,40,.10); transform:translateY(-2px); }
.mps-card__img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:12px; margin-top:6px; }
.mps-card__title{ margin:12px 0 4px; text-align:center; font-weight:700; color:#111827; font-size:1rem; line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; text-overflow:ellipsis; min-height:2.6em; }
.mps-card__subtitle{ color:#8A94A6; font-size:.9rem; line-height:1.2; margin-bottom:12px; text-align:center; }
.mps-card__actions{ display:flex; gap:10px; width:100%; justify-content:center; }
.mps-btn{ display:inline-flex; align-items:center; gap:.4rem; border-radius:999px; padding:.6rem 1rem; font-weight:700; border:1px solid transparent; text-decoration:none; }
.mps-btn--buy{ background:#27C17F; color:#fff; }
.mps-btn--cart{ background:#fff; color:#374151; border-color:#D1D5DB; }
.mps-cart{ width:1.05em; height:1.05em; vertical-align:-.15em; }
.mps-pro-buyall{ width:100%; display:inline-block; text-align:center; border-radius:999px; }

/* Calendar */
.mps-cal-hero{margin:0 0 12px}
.mps-calendar-nav{display:flex;justify-content:space-between;align-items:center;margin:8px 0 12px}
.mps-cal-btn{padding:.4rem .7rem;border:1px solid #d1d5db;border-radius:999px;text-decoration:none}
.mps-calendar-title{font-weight:700;font-size:1.1rem}
.mps-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.mps-cal-head{font-weight:700;color:#6b7280;text-align:center}
.mps-cal-cell{min-height:110px;background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:10px;padding:8px;box-shadow:0 2px 8px rgba(0,0,0,.04);display:flex;flex-direction:column;gap:6px}
.mps-cal-empty{background:transparent;border:none;box-shadow:none}
.mps-cal-day{font-weight:700;color:#374151}
.mps-cal-trip{display:block;background:#f0fdfa;border:1px solid #a7f3d0;padding:4px 6px;border-radius:8px;margin-top:4px;text-decoration:none;color:#065f46;font-size:.9rem}
.mps-cal-trip:hover{background:#d1fae5}


/* --- Pro Calendar (clean) --- */
.mps-cal-hero{margin:0 0 12px; padding:8px 0;}
.mps-calendar-shell{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:14px;box-shadow:0 2px 10px rgba(0,0,0,.06);padding:12px}
.mps-calendar-nav{display:flex;justify-content:space-between;align-items:center;margin:8px 0 12px}
.mps-cal-btn{padding:.45rem .8rem;border:1px solid #d1d5db;border-radius:999px;text-decoration:none;background:#fff}
.mps-calendar-title{font-weight:700;font-size:1.15rem}
.mps-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}
.mps-cal-head{font-weight:700;color:#6b7280;text-align:center;padding:6px 0}
.mps-cal-cell{min-height:122px;background:#f9fafb;border:1px solid #eef2f7;border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:6px}
.mps-cal-empty{background:transparent;border:none}
.mps-cal-day{font-weight:700;color:#374151}
.mps-cal-trip{display:block;background:#ffffff;border:1px solid #d1fae5;padding:6px 8px;border-radius:9px;margin-top:4px;text-decoration:none;color:#065f46;font-size:.92rem;box-shadow:0 1px 3px rgba(16,24,40,.06)}
.mps-cal-trip:hover{background:#ecfdf5}

/* --- Lead Modal --- */
#mps-lead-modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;z-index:9999}
#mps-lead-modal .mps-modal-card{background:#fff;border-radius:16px;box-shadow:0 25px 80px rgba(2,6,23,.2);width:min(92vw,420px);padding:18px;border:1px solid #eef2f7}
.mps-modal-title{font-size:1.1rem;font-weight:700;margin-bottom:8px}
.mps-modal-sub{color:#6b7280;margin-bottom:12px}
.mps-field{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.mps-field input{border:1px solid #d1d5db;border-radius:10px;padding:.6rem .7rem;width:100%}
.mps-modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:6px}
.mps-btn-ghost{background:#fff;border:1px solid #d1d5db;border-radius:10px;padding:.55rem .9rem}
.mps-btn-primary{background:#27C17F;color:#fff;border-radius:10px;padding:.55rem .9rem;border:1px solid transparent}


/* --- Card layout polish --- */
.mps-card__actions{gap:12px}
.mps-btn{flex:1; justify-content:center}
.mps-btn--buy, .mps-btn--cart{min-width:0}
.mps-card{width:100%}
@media (min-width: 1024px){
  .mps-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
}
@media (max-width: 640px){
  .mps-card__img{aspect-ratio:1/1}
}

/* --- Calendar responsive --- */
@media (max-width: 1024px){
  .mps-calendar{grid-template-columns:repeat(4,1fr)}
}
@media (max-width: 768px){
  .mps-calendar{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 480px){
  .mps-calendar{grid-template-columns:1fr}
}

/* --- Add-to-cart animation --- */
@keyframes mps-bounce{0%{transform:scale(1)}30%{transform:scale(1.15)}60%{transform:scale(0.92)}100%{transform:scale(1)}}
.mps-cart-anim{animation:mps-bounce .5s ease-in-out}

/* === MPS PRO Enhancements === */

/* Card actions container to align buttons */
.mps-card-actions{
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
}

/* Unified button styling */
.mps-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:130px;
  height:44px;
  padding:0 16px;
  border-radius:28px;
  font-weight:600;
  text-align:center;
  white-space:nowrap;
  cursor:pointer;
  text-decoration:none;
  transition:transform .18s ease, box-shadow .18s ease;
}
.mps-btn:active{ transform:translateY(1px); }

.mps-btn--buy{ background:#20c56b; color:#fff; border:none; }
.mps-btn--cart{ background:#fff; color:#1a202c; border:2px solid #e2e8f0; }

@media (max-width:520px){
  .mps-btn{ min-width:110px; }
}

/* Add-to-cart click animation */
@keyframes mps-pop{ 0%{transform:scale(1)} 50%{transform:scale(1.08)} 100%{transform:scale(1)} }
@keyframes mps-ripple{
  0%{opacity:.35; transform:scale(.6)}
  100%{opacity:0; transform:scale(1.6)}
}
.mps-cart-anim{ animation:mps-pop .35s ease; position:relative; }
.mps-cart-anim::after{
  content:""; position:absolute; inset:-6px; border:2px solid currentColor; border-radius:50%;
  animation:mps-ripple .45s ease-out forwards; pointer-events:none;
}

/* Modal */
.mps-modal{ position:fixed; inset:0; background:rgba(0,0,0,.5); display:grid; place-items:center; z-index:9999; }
.mps-modal[hidden]{ display:none; }
.mps-modal__dialog{ position:relative; background:#fff; width:min(92vw, 480px); padding:24px; border-radius:16px; box-shadow:0 10px 30px rgba(0,0,0,.15); }
.mps-modal__title{ margin:0 0 12px; }
.mps-modal__close{ position:absolute; top:10px; right:14px; background:none; border:0; font-size:24px; cursor:pointer; }
.mps-modal label{ display:block; font-size:.95rem; margin:10px 0 6px; }
.mps-modal input{ width:100%; height:44px; padding:0 12px; border:1px solid #e2e8f0; border-radius:10px; }
.mps-modal__success{ margin-top:12px; font-weight:600; color:#16a34a; }
