/* MakerPlace Billetterie — Public CSS */
:root { --mpc: #1a7a4a; }
.mp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;margin-bottom:30px}
.mp-card{background:#fff;border:1px solid #e0e0e0;border-radius:10px;overflow:hidden;transition:box-shadow .2s,transform .2s}
.mp-card:hover{box-shadow:0 6px 24px rgba(0,0,0,.12);transform:translateY(-3px)}
.mp-card-img{position:relative;height:170px;overflow:hidden;display:block}
.mp-card-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.mp-card:hover .mp-card-img img{transform:scale(1.04)}
.mp-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:54px;background:#f5f5f5}
.mp-card-badge{position:absolute;bottom:8px;left:8px;color:#fff;font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px}
.mp-card-body{padding:14px 16px 18px}
.mp-card-body h3{font-size:1rem;margin:0 0 7px;color:#222}
.mp-meta{font-size:12px;color:#666;margin:3px 0}
.mp-price{font-size:13px;color:#333;margin:8px 0 10px}
.mp-price strong{color:var(--mpc);font-size:15px}
.mp-btn{display:block;width:100%;padding:9px 14px;border:none;border-radius:7px;font-size:13px;font-weight:700;cursor:pointer;text-decoration:none;color:#fff!important;text-align:center;transition:opacity .15s;margin-bottom:6px}
.mp-btn:last-child{margin-bottom:0}
.mp-btn:hover{opacity:.88}
.mp-add-btn{background:var(--mpc)}
/* Boutique */
.mp-shop-events{width:100%;margin-bottom:36px}
.mp-shop-title{font-size:1.4rem;font-weight:700;color:#1a7a4a;padding-bottom:8px;border-bottom:2px solid #1a7a4a;margin:0 0 18px}
.mp-shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;margin-bottom:10px}
.mp-shop-card{background:#fff;border:1px solid #e0e0e0;border-radius:10px;overflow:hidden;transition:box-shadow .2s,transform .2s}
.mp-shop-card:hover{box-shadow:0 5px 20px rgba(0,0,0,.1);transform:translateY(-2px)}
.mp-shop-card-img{position:relative;display:block;height:160px;overflow:hidden}
.mp-shop-card-img img{width:100%;height:100%;object-fit:cover;display:block}
.mp-shop-card-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:44px;background:#f5f5f5}
.mp-shop-badge{position:absolute;bottom:7px;left:7px;color:#fff;font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px}
.mp-shop-card-body{padding:12px 14px 14px}
.mp-shop-card-body h3{font-size:.95rem;margin:0 0 6px}
.mp-shop-card-body h3 a{color:#222;text-decoration:none}
.mp-shop-card-body h3 a:hover{color:#1a7a4a}
.mp-shop-meta{font-size:12px;color:#666;margin:3px 0}
.mp-shop-price{font-size:13px;color:#333;margin:7px 0 10px}
.mp-shop-price strong{color:var(--mpc);font-size:15px}
.mp-shop-tarifs{display:flex;flex-direction:column;gap:5px}
.mp-shop-tarif-btn{display:block;padding:7px 12px;border-radius:6px;color:#fff!important;text-decoration:none;font-size:12px;font-weight:700;text-align:center;transition:opacity .15s}
.mp-shop-tarif-btn:hover{opacity:.85}
.mp-shop-sep{display:flex;align-items:center;gap:12px;margin:10px 0 28px;color:#aaa;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px}
.mp-shop-sep::before,.mp-shop-sep::after{content:'';flex:1;height:1px;background:#e0e0e0}
/* Page produit */
.mp-product-event-info{background:#f9fbe7;border:1px solid #c8e6c9;border-radius:8px;padding:14px 18px;margin:14px 0;font-size:14px}
.mp-product-event-info p{margin:4px 0;color:#333}
/* Mon compte */
.mp-my-tickets{margin-top:28px;padding:18px;background:#f1f8f4;border:1px solid #c8e6c9;border-radius:8px}
.mp-my-tickets h2{font-size:1.1rem;color:#1a7a4a;margin:0 0 12px}
.mp-ticket-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.mp-ticket-list li{margin:0}
.mp-ticket-btn{display:inline-block;padding:8px 16px;background:#1a7a4a;color:#fff!important;border-radius:6px;font-size:13px;font-weight:700;text-decoration:none;transition:background .15s}
.mp-ticket-btn:hover{background:#145c37}
@media(max-width:600px){.mp-grid,.mp-shop-grid{grid-template-columns:1fr 1fr}}
@media(max-width:400px){.mp-grid,.mp-shop-grid{grid-template-columns:1fr}}

/* Formulaire achat [mp_achat] */
.mp-achat { border-radius:10px; overflow:hidden; border:1px solid #e0e0e0; max-width:700px; }
.mp-achat-head { padding:20px 22px; color:#fff; }
.mp-achat-head h3 { font-size:1.2rem; font-weight:800; margin:0 0 6px; }
.mp-achat-head p  { font-size:13px; margin:3px 0; opacity:.9; }
.mp-achat-body { padding:20px 22px; }
.mp-tarifs-tbl { width:100%; border-collapse:collapse; margin-bottom:16px; font-size:14px; }
.mp-tarifs-tbl th { background:#f5f5f5; padding:8px 12px; text-align:left; font-size:11px; font-weight:700; text-transform:uppercase; color:#555; }
.mp-tarifs-tbl td { padding:10px 12px; border-bottom:1px solid #f0f0f0; vertical-align:middle; }
.mp-tarif-price-col { font-weight:600; color:var(--mpc); white-space:nowrap; }
.mp-qty-wrap  { display:flex; align-items:center; gap:8px; }
.mp-qty-in    { width:65px; padding:7px 8px; border:1px solid #ccc; border-radius:5px; font-size:14px; text-align:center; }
.mp-btn-add   { white-space:nowrap; }
.mp-achat-footer { display:flex; gap:10px; flex-wrap:wrap; margin-top:4px; }
.mp-achat-footer .mp-btn { flex:1; text-align:center; }
.mp-contact   { font-size:12px; color:#aaa; margin-top:12px; }
.mp-login-notice { background:#fff3e0; border-left:4px solid #f59e0b; padding:12px 16px; border-radius:6px; margin-bottom:16px; font-size:14px; }
.mp-login-btns { display:flex; gap:10px; flex-wrap:wrap; margin-top:10px; }

/* Grille [mp_evenements] */
.mp-tarifs-panel { margin-top:10px; background:#f9fbe7; border:1px solid #c8e6c9; border-radius:8px; padding:12px; }
.mp-tarif-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 0; border-bottom:1px solid #e8f5e9; }
.mp-tarif-row:last-of-type { border:none; padding-bottom:0; }
.mp-tarif-price { display:block; color:var(--mpc); font-weight:700; font-size:13px; }
.mp-btn-cart { display:block; text-align:center; margin-top:8px; }

/* Boutons variantes */
.mp-btn-block { display:block; width:100%; text-align:center; padding:10px; }
.mp-btn-sm    { padding:6px 12px; font-size:12px; white-space:nowrap; }

@media(max-width:600px){
    .mp-achat-footer { flex-direction:column; }
    .mp-login-btns   { flex-direction:column; }
}
