/* Mersey Valley – Golfmanager integration
   Two themes: .mvgm-theme-light = Golfmanager portal look (navy/white);
               .mvgm-theme-dark  = mersey-valley.co.uk look (charcoal/gold). */
.mvgm { --mvgm-accent:#0f3d6e; --mvgm-accent-dark:#0b2d52; --mvgm-on-accent:#fff; --mvgm-surface:#fff; --mvgm-surface-2:#f3f5f8; --mvgm-border:#e3e6ea; --mvgm-text:#1f2937; --mvgm-muted:#6b7280; --mvgm-radius:6px; --mvgm-shadow:0 1px 2px rgba(0,0,0,.05); color:var(--mvgm-text); }
.mvgm-theme-dark { --mvgm-accent:#c9a54a; --mvgm-accent-dark:#b08f3a; --mvgm-on-accent:#14181a; --mvgm-surface:#1b2124; --mvgm-surface-2:#232a2e; --mvgm-border:#2f3a3f; --mvgm-text:#f2efe6; --mvgm-muted:#a9a89f; --mvgm-radius:8px; --mvgm-shadow:0 1px 3px rgba(0,0,0,.4); }
.mvgm * { box-sizing:border-box; }

/* ---------- Buttons ---------- */
.mvgm-btn { display:inline-flex; align-items:center; gap:.4em; padding:.6em 1.1em; border:1px solid var(--mvgm-accent); border-radius:var(--mvgm-radius); background:var(--mvgm-accent); color:var(--mvgm-on-accent) !important; text-decoration:none !important; font-weight:600; cursor:pointer; line-height:1.2; }
.mvgm-btn:hover { background:var(--mvgm-accent-dark); }
.mvgm-btn--ghost { background:var(--mvgm-surface); color:var(--mvgm-text) !important; border-color:var(--mvgm-border); padding:.5em .8em; }
.mvgm-btn--ghost:hover { background:var(--mvgm-surface-2); }
.mvgm-btn--primary { flex-direction:column; align-items:center; padding:.7em 2.5em; }
.mvgm-btn--primary small { font-weight:400; font-size:.8em; opacity:.9; }
.mvgm-link { color:var(--mvgm-accent); text-decoration:underline; }

/* ---------- Booking cards (portal home) ---------- */
.mvgm-cards { display:grid; grid-template-columns:1fr 2fr; gap:14px; margin:0 0 1.5rem; }
.mvgm-card { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:260px; padding:2rem; border-radius:var(--mvgm-radius); background:#20324a center/cover no-repeat; color:#fff !important; text-decoration:none !important; overflow:hidden; box-shadow:0 1px 3px rgba(0,0,0,.15); transition:transform .15s ease; }
.mvgm-card::before { content:""; position:absolute; inset:0; background:rgba(0,0,0,.35); transition:background .15s; }
.mvgm-card:hover { transform:translateY(-2px); }
.mvgm-card:hover::before { background:rgba(0,0,0,.45); }
.mvgm-card--wide { grid-column:1 / -1; min-height:340px; }
.mvgm-card--golf { background-image:linear-gradient(135deg,#2f5d3a,#6f9a4f); }
.mvgm-card--simulator { background-image:linear-gradient(135deg,#1c2233,#3b4a63); }
.mvgm-card--fishery { background-image:linear-gradient(135deg,#1f3b2c,#4d7a5a); }
.mvgm-card__title { position:relative; font-size:2rem; font-weight:600; text-align:center; margin-bottom:auto; margin-top:auto; text-shadow:0 1px 6px rgba(0,0,0,.5); }
.mvgm-card__btn { position:relative; margin-top:1.5rem; padding:.55em 1.1em; border-radius:var(--mvgm-radius); background:rgba(255,255,255,.18); backdrop-filter:blur(4px); font-weight:500; }
@media (max-width:700px) { .mvgm-cards { grid-template-columns:1fr; } .mvgm-card--wide, .mvgm-card { min-height:200px; } .mvgm-card__title { font-size:1.5rem; } }

/* ---------- Availability grid ---------- */
.mvgm-avail { margin:0 0 2rem; }
.mvgm-avail__head { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; justify-content:space-between; margin-bottom:1rem; }
.mvgm-avail__title { margin:0; font-size:1.6rem; color:var(--mvgm-text); }
.mvgm-avail__filters { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; }
.mvgm-avail__filters input[type="date"], .mvgm-avail__filters select { padding:.5em .7em; border:1px solid var(--mvgm-border); border-radius:var(--mvgm-radius); background:var(--mvgm-surface); color:var(--mvgm-text); font:inherit; }
.mvgm-avail__grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:12px; }
.mvgm-slot { display:flex; justify-content:space-between; align-items:center; padding:1rem 1.1rem; border:1px solid var(--mvgm-border); border-radius:var(--mvgm-radius); background:var(--mvgm-surface); text-decoration:none !important; color:var(--mvgm-text) !important; box-shadow:var(--mvgm-shadow); transition:border-color .15s, box-shadow .15s; }
.mvgm-slot:hover { border-color:var(--mvgm-accent); background:var(--mvgm-surface-2); }
.mvgm-slot__time { font-size:1.3rem; font-weight:600; }
.mvgm-slot__price { font-size:.85rem; color:var(--mvgm-muted); }
.mvgm-empty { grid-column:1 / -1; display:flex; flex-direction:column; align-items:center; gap:1rem; padding:2.5rem 1rem; }
.mvgm-msg { color:var(--mvgm-muted); text-align:center; margin:0; }
.mvgm-msg--error { grid-column:1 / -1; }
.mvgm-avail__foot { margin-top:1rem; font-size:.9rem; }

/* ---------- Course status ---------- */
.mvgm-status { padding:1.1rem 1.2rem; border:1px solid var(--mvgm-border); border-radius:var(--mvgm-radius); background:var(--mvgm-surface); max-width:320px; }
.mvgm-status__title { margin:0 0 .6rem; font-size:1.05rem; }
.mvgm-status__line { margin:0 0 .4rem; color:var(--mvgm-muted); font-size:.9rem; }

/* ---------- Products ---------- */
.mvgm-products { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:14px; }
.mvgm-product { display:flex; flex-direction:column; gap:.4rem; padding:1rem; border:1px solid var(--mvgm-border); border-radius:var(--mvgm-radius); background:var(--mvgm-surface); text-decoration:none !important; color:var(--mvgm-text) !important; }
.mvgm-product:hover { border-color:var(--mvgm-accent); }
.mvgm-product__img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:4px; }
.mvgm-product__name { font-weight:600; }
.mvgm-product__price { color:var(--mvgm-muted); font-size:.9rem; }

/* Dark-theme touches: gold slot times and gold outline on hover */
.mvgm-theme-dark .mvgm-slot__time { color:var(--mvgm-accent); }
.mvgm-theme-dark .mvgm-avail__filters input[type="date"] { color-scheme:dark; }
.mvgm-theme-dark .mvgm-card__btn { background:var(--mvgm-accent); color:var(--mvgm-on-accent); }
