/* ===== BUSA.GR Joomla Template — Hayabusa Club Θεσσαλονίκης ===== */
* { margin:0; padding:0; box-sizing:border-box; }
:root{
  --red:#c8102e; --red2:#8f0a20; --dark:#141519; --dark2:#1e2026;
  --grey:#9aa3ad; --light:#f4f5f7; --radius:12px;
}
body{ font-family:'Segoe UI',Tahoma,Arial,sans-serif; background:var(--light); color:#222; line-height:1.6; }
img{ max-width:100%; height:auto; }
a{ text-decoration:none; color:inherit; }
.container{ width:min(1150px,92%); margin:0 auto; }

/* Header */
.site-header{ position:sticky; top:0; z-index:100; background:var(--dark); border-bottom:3px solid var(--red); }
.nav{ display:flex; align-items:center; justify-content:space-between; padding:12px 0; gap:16px; flex-wrap:wrap; }
.logo{ font-size:1.8rem; font-weight:900; color:#fff; letter-spacing:1px; font-style:italic; }
.logo span{ color:var(--red); }
.logo small{ display:block; font-size:.6rem; font-weight:600; letter-spacing:3px; color:var(--grey); font-style:normal; }
.burger{ display:none; background:none; border:none; color:#fff; font-size:1.6rem; cursor:pointer; }

/* Joomla menu module */
.mainmenu ul{ display:flex; gap:18px; list-style:none; flex-wrap:wrap; }
.mainmenu a{ color:#dfe4ea; font-weight:600; font-size:.9rem; padding:6px 4px; border-bottom:2px solid transparent; transition:.2s; }
.mainmenu a:hover, .mainmenu li.active > a{ color:#fff; border-color:var(--red); }

/* Hero & banner */
.hero{ position:relative; min-height:520px; background:url('../images/hero.jpg') center/cover no-repeat; display:flex; align-items:center; }
.hero::after{ content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,10,12,.85),rgba(10,10,12,.25)); }
.hero-inner{ position:relative; z-index:2; color:#fff; max-width:640px; }
.hero h1{ font-size:clamp(2rem,4.5vw,3.2rem); line-height:1.12; margin-bottom:14px; text-transform:uppercase; font-style:italic; }
.hero p{ font-size:1.1rem; color:#d4d9e0; margin-bottom:22px; }
.banner{ background:var(--dark2) url('../images/serres-lineup.jpg') center/cover; position:relative; padding:70px 0; color:#fff; }
.banner::after{ content:''; position:absolute; inset:0; background:rgba(15,15,18,.65); }
.banner .container{ position:relative; z-index:2; }
.banner h1, .banner .page-header h1{ color:#fff; font-size:2.2rem; font-style:italic; text-transform:uppercase; }

/* Sections & layout */
section{ padding:50px 0; }
.layout{ display:grid; grid-template-columns:2.2fr 1fr; gap:28px; align-items:start; }
.grid{ display:grid; gap:22px; }
.grid-3{ grid-template-columns:repeat(3,1fr); }

/* Module chrome "card" */
.moduletable, .card-module{ background:#fff; border-radius:var(--radius); padding:22px; margin-bottom:22px; box-shadow:0 4px 18px rgba(0,0,0,.08); }
.moduletable h3{ font-size:1.05rem; text-transform:uppercase; margin-bottom:12px; border-left:4px solid var(--red); padding-left:10px; }

/* Joomla content */
.item-page{ background:#fff; border-radius:var(--radius); padding:26px; box-shadow:0 4px 18px rgba(0,0,0,.08); }
.blog-items{ display:grid; gap:22px; }
.blog-item{ background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:0 4px 18px rgba(0,0,0,.08); }
.blog-item .item-content, .blog-item .item-image + div{ padding:20px; }
h1, h2, h3{ line-height:1.25; }
.btn, .btn-primary, button.btn{ display:inline-block; background:var(--red); color:#fff; font-weight:700; padding:12px 28px; border-radius:50px; border:none; cursor:pointer; }
.btn:hover{ background:var(--red2); }
a{ color:var(--red); }
.item-page a:hover, .mainmenu a:hover{ text-decoration:none; }

/* Alerts */
.alert{ padding:14px 18px; border-radius:8px; margin-bottom:16px; }
.alert-message, .alert-success{ background:#e8f5e9; border-left:4px solid #2e7d32; }
.alert-error, .alert-danger{ background:#ffebee; border-left:4px solid var(--red); }
.alert-notice, .alert-info, .alert-warning{ background:#fff8e1; border-left:4px solid #f5a623; }

/* Forms */
input[type=text], input[type=email], input[type=password], input[type=tel],
input[type=url], input[type=number], input[type=date], textarea, select{
  width:100%; padding:11px 13px; margin-bottom:12px; border:1px solid #d3d8de; border-radius:8px; font:inherit;
}
textarea{ min-height:120px; }
fieldset{ border:none; margin-bottom:14px; }
legend{ font-weight:700; margin-bottom:8px; }

/* Footer */
footer{ background:var(--dark); color:#aeb6c0; padding:44px 0 0; margin-top:20px; }
.footer-grid{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:30px; }
footer h4{ color:#fff; margin-bottom:12px; text-transform:uppercase; font-size:.95rem; }
footer ul{ list-style:none; }
footer li{ margin-bottom:8px; }
footer a{ color:#aeb6c0; }
footer a:hover{ color:var(--red); }
.copyright{ text-align:center; margin-top:30px; padding:14px 0; background:#0e0f12; font-size:.82rem; }

/* Pagination */
.pagination{ display:flex; gap:8px; list-style:none; margin-top:24px; }
.pagination a, .pagination span{ display:inline-block; padding:6px 12px; background:#fff; border-radius:8px; }

@media(max-width:900px){
  .layout{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .grid-3{ grid-template-columns:repeat(2,1fr); }
}
@media(max-width:640px){
  .burger{ display:block; }
  .mainmenu ul{ position:absolute; top:100%; left:0; right:0; background:var(--dark); flex-direction:column; gap:0; display:none; padding:8px 0; }
  .mainmenu ul.open{ display:flex; }
  .mainmenu li{ text-align:center; padding:9px 0; }
  .grid-3{ grid-template-columns:1fr; }
}

/* v1.1 — επιπλέον στοιχεία ρυθμίσεων */
.logo-img{ max-height:56px; width:auto; }
.layout-left aside{ order:-1; }
#toTop{
  position:fixed; bottom:26px; right:26px; z-index:200;
  width:48px; height:48px; border-radius:50%; border:none;
  background:var(--red); color:#fff; font-size:1.3rem; cursor:pointer;
  opacity:0; pointer-events:none; transition:.3s;
  box-shadow:0 6px 18px rgba(0,0,0,.3);
}
#toTop.show{ opacity:1; pointer-events:auto; }
#toTop:hover{ background:var(--red2); }

/* v1.3 — ενότητες αρχικής από άρθρα */
.news-item{ background:#fff; border-radius:var(--radius); padding:22px; margin-bottom:16px; box-shadow:0 4px 18px rgba(0,0,0,.08); }
.news-item h3{ color:var(--red); margin-bottom:8px; }
.sec-title{ text-align:center; margin-bottom:34px; }
.sec-title h2{ font-size:1.9rem; text-transform:uppercase; font-style:italic; }
.sec-title h2 b{ color:var(--red); }
.sec-title .line{ width:70px; height:4px; background:var(--red); margin:12px auto 0; border-radius:4px; }
.card-body{ padding:20px; }
.card-body h3{ margin-bottom:8px; }
.card-body .meta{ display:flex; justify-content:space-between; margin-top:12px; font-weight:700; color:var(--red); font-size:.85rem; }
.card{ background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:0 4px 18px rgba(0,0,0,.08); transition:.3s; }
.card:hover{ transform:translateY(-5px); box-shadow:0 12px 28px rgba(200,16,46,.18); }
.card img{ height:210px; width:100%; object-fit:cover; }
.gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.gallery-grid a{ display:block; border-radius:10px; overflow:hidden; height:230px; position:relative; }
.gallery-grid img{ width:100%; height:100%; object-fit:cover; transition:.4s; }
.gallery-grid a:hover img{ transform:scale(1.06); }
.gallery-grid span{ position:absolute; bottom:0; left:0; right:0; background:rgba(15,15,18,.75); color:#fff; font-size:.8rem; padding:8px 10px; }
table.lb{ width:100%; border-collapse:collapse; background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:0 4px 18px rgba(0,0,0,.08); }
table.lb th{ background:var(--dark); color:#fff; padding:12px 14px; text-align:left; font-size:.85rem; text-transform:uppercase; }
table.lb td{ padding:12px 14px; border-bottom:1px solid #eee; }
table.lb td:first-child{ font-weight:700; color:var(--red); width:50px; text-align:center; }
@media(max-width:640px){ .gallery-grid{ grid-template-columns:1fr; } }
