/*
Theme Name: Bastion LOTR Dark
Theme URI: https://bastionlotr.pl
Author: Zbigniew & ChatGPT
Description: A dark, evening-friendly WordPress theme with a left sidebar menu, large welcome header image, and blog layout with featured images and expandable excerpts.
Version: 1.0.2
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bastionlotr-dark
*/

:root{
  --bg:#111215;
  --bg-alt:#15171b;
  --panel:#1a1c21;
  --text:#e8e3d3;
  --muted:#bdb6a5;
  --accent:#c2a86b;
  --accent-2:#8c6f3f;
  --link:#d6bf7e;
  --danger:#ff6b6b;
  --maxw:1100px;
  --radius:12px;
  --gap:20px;
  --sidebar:230px;
  --shadow:0 6px 18px rgba(0,0,0,.35);
  --font-body: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  --font-head: "EB Garamond", "Georgia", serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  line-height:1.65;
  font-size:17px;
}

a{color:var(--link); text-decoration:none}
a:hover,a:focus{color:var(--accent)}
img{max-width:100%; height:auto; display:block}

.wrapper{
  display:grid;
  grid-template-columns: var(--sidebar) 1fr;
  min-height:100vh;
}

/* --- Sidebar (desktop) --- */
.sidebar{
  position:sticky;
  top:0;
  height:100vh;
  background:var(--panel);
  padding:20px 14px;
  border-right:1px solid rgba(255,255,255,.06);
  font-size:15px; line-height:1.4;
}

.brand{ display:flex; gap:10px; align-items:center; margin-bottom:18px; }
.brand .site-logo{width:36px; height:36px; border-radius:8px; overflow:hidden; background:#222}
.brand .site-title{ font-family:var(--font-head); font-size:18px; font-weight:600; letter-spacing:.5px; }
.brand .site-tagline{ font-size:13px; color:var(--muted); }

/* sidebar navigation (desktop) */
.sidebar nav ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:4px; }
.sidebar nav a{
  display:block; padding:8px 10px; border-radius:8px; color:var(--text); font-size:15px;
}
.sidebar nav a:hover, .sidebar nav .current-menu-item > a{
  background:rgba(255,255,255,.06); color:var(--text);
}

/* Widgets */
.sidebar-widgets{ margin-top:14px; }
.sidebar .widget{ margin-bottom:14px; }
.sidebar .widget h2, .sidebar .widget h3{ font-size:15px; margin:0 0 6px; font-weight:600; }
.widget_search form{ display:flex; gap:6px; }
.widget_search input[type="search"]{ height:30px; font-size:14px; padding:4px 8px; }
.widget_search input[type="submit"]{ height:30px; font-size:14px; padding:4px 10px; }

.content{ min-width:0; }

/* --- Hero --- */
.header-hero{
  width:100%;
  aspect-ratio: 16/4;
  background:linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.6)), var(--bg-alt);
  display:flex; align-items:flex-end;
  border-bottom:1px solid rgba(255,255,255,.06);
  min-height:180px; max-height:320px;
}
.header-hero .hero-inner{ width:100%; max-width:var(--maxw); margin:0 auto; padding:20px var(--gap); }
.hero-title{ font-family:var(--font-head); font-size:clamp(26px, 3.5vw, 38px); margin:0; }

/* --- Main --- */
.main{ max-width:var(--maxw); margin:0 auto; padding:20px var(--gap) 50px; }

/* --- Posts --- */
.links-grid{
  display:grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap:14px; margin:20px 0 30px;
}
.links-grid a{
  background:var(--panel); padding:14px; border-radius:10px; 
  display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(255,255,255,.06); box-shadow:var(--shadow);
  color:var(--text)
}
.links-grid a:hover{transform:translateY(-2px); transition:transform .15s ease-out}

.posts{ display:grid; gap:16px; }
.post-card{
  background:var(--panel); border:1px solid rgba(255,255,255,.06);
  border-radius:10px; overflow:hidden; box-shadow:var(--shadow);
  display:grid; grid-template-columns: 260px 1fr; min-height:160px;
}
.post-media{background:#0b0c0f}
.post-media img{width:100%; height:100%; object-fit:cover}
.post-body{padding:14px 16px}
.post-body h2{margin:.2rem 0 .5rem; font-family:var(--font-head)}
.post-meta{color:var(--muted); font-size:.85rem; margin-bottom:.4rem}
.read-more{display:inline-block; margin-top:.3rem; border-bottom:1px dashed var(--accent-2)}

.site-footer{
  border-top:1px solid rgba(255,255,255,.06);
  color:var(--muted);
  padding:20px var(--gap);
  text-align:center; font-size:14px;
}

/* ---------- Top bar (global) ---------- */
.navbar{
  position: sticky; top: 0; z-index: 1000;
  background: var(--bg-alt);
  border-bottom: 1px solid rgba(255,255,255,.06);
  padding: 8px var(--gap);
}

/* Top menu button (mobile only) */
.menu-toggle{
  display: none;
  border: 1px solid rgba(255,255,255,.12);
  background: var(--panel);
  padding: 8px 12px; border-radius: 10px;
  font: inherit; color: var(--text);
}

/* WP menu list */
.primary-menu .menu{
  display: flex; gap: 10px; flex-wrap: wrap;
  list-style: none; margin: 0; padding: 0;
}
.primary-menu .menu > li > a{
  display: block; padding: 8px 12px; border-radius: 10px;
  color: var(--text); text-decoration: none; font-size: 15px; line-height: 1.2;
}
.primary-menu .menu > li.current-menu-item > a,
.primary-menu .menu > li > a:hover,
.primary-menu .menu > li > a:focus{
  background: rgba(255,255,255,.06); outline: none;
}

/* ---------- Mobile drawer for sidebar ---------- */
.sidebar-toggle{ display:none; }     /* hidden on desktop */
.sidebar-drawer, .drawer-backdrop{ display:none; }

@media (max-width: 960px){
  .site-header .site-title,
  .site-header img { display:none !important; }

  .site-header{
    display:flex; flex-wrap:nowrap; align-items:center; justify-content:flex-start; gap:8px;
  }

  /* same size for both buttons */
  .menu-toggle,
  .sidebar-toggle{
    display:inline-flex; align-items:center;
    padding:.5rem .75rem;
    border:1px solid rgba(255,255,255,.12);
    border-radius:6px;
    background:var(--panel); color:var(--text);
    font:inherit; white-space:nowrap; margin:0;
  }

  .wrapper{ grid-template-columns:1fr; }
  .sidebar{ display:none !important; }

  .menu-toggle{ display:inline-block; }
  #top-menu{ display:none; margin-top:8px; }
  #top-menu.open{ display:block; }
  #top-menu .menu{ flex-direction:column; gap:6px; }

  /* If you still need a bigger button inside the drawer, scope it: */
  /* .sidebar-drawer .sidebar-toggle { padding:.75rem 1rem; border-radius:12px; margin:.75rem var(--gap) 0; } */

  .sidebar-drawer{
    display:block; position:fixed; top:0; right:0; bottom:0;
    width:85vw; max-width:360px; background:var(--bg-alt);
    box-shadow:-20px 0 40px rgba(0,0,0,.5);
    transform:translateX(100%); transition:transform .25s ease;
    padding:16px; overflow-y:auto; z-index:2000;
  }
  .sidebar-drawer.open{ transform:translateX(0); }

  .drawer-backdrop{
    display:block; position:fixed; inset:0;
    background:rgba(0,0,0,.45); opacity:0; pointer-events:none;
    transition:opacity .2s ease; z-index:1990;
  }
  .drawer-backdrop.show{ opacity:1; pointer-events:all; }

  .sidebar-drawer .widget-title{ display:none; }

  .post-card{ grid-template-columns:1fr; }
  :root{ --sidebar:100%; }
}

/* Single view tweaks */
.single .post-media { display:none !important; }
.single .post-card .post-body,
.single .entry-content { margin-top:0; }

.navbar .nav-row{display:flex; align-items:center; gap:8px;}


/* ===== The Events Calendar – dark theme tidy-up ===== */
.tribe-events {
  --tec-color-background: #0f1011;
  --tec-color-text: #eae7db;
  --tec-color-text-secondary: #cfcab6;
  --tec-color-accent-primary: #d4b15f; /* your gold */
  --tec-color-border-secondary: #2b2b2b;
  --tec-font-family-sans: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

/* Titles & links */
.tribe-events .tribe-events-calendar-list__event-title-link,
.tribe-events .tribe-events-calendar-day__event-title-link {
  color: var(--tec-color-accent-primary);
  text-decoration: none;
}
.tribe-events .tribe-events-calendar-list__event-title-link:hover,
.tribe-events .tribe-events-calendar-day__event-title-link:hover {
  text-decoration: underline;
}

/* Body text / meta */
.tribe-common .tribe-common-b1,
.tribe-common .tribe-common-b2,
.tribe-common .tribe-common-h6 {
  color: var(--tec-color-text-secondary);
}

/* Search bar */
.tribe-events-c-search input[type="search"] {
  background: #191a1b;
  border: 1px solid var(--tec-color-border-secondary);
  color: var(--tec-color-text);
}
.tribe-events-c-search__button {
  background: var(--tec-color-accent-primary);
  color: #0f1011;
  border: 0;
}

/* Prev/Next nav buttons */
.tribe-events-c-top-bar__nav button {
  background: transparent;
  border: 1px solid var(--tec-color-border-secondary);
  color: var(--tec-color-text);
}
.tribe-events-c-top-bar__nav button[disabled] { opacity: .35; }

/* Subscribe dropdown button */
.tribe-events-c-subscribe-dropdown__button {
  background: transparent;
  border: 1px solid var(--tec-color-border-secondary);
  color: var(--tec-color-text);
}
.tribe-events-c-subscribe-dropdown__button:hover {
  background: rgba(212,177,95,.12);
  border-color: var(--tec-color-accent-primary);
}

/* List/Day items spacing & separators */
.tribe-events .tribe-events-calendar-list__event,
.tribe-events .tribe-events-calendar-day__event {
  padding: 1rem 0 1.25rem;
  border-bottom: 1px solid var(--tec-color-border-secondary);
}

/* Month header & month label */
.tribe-events .tribe-common-h2,
.tribe-events .tribe-common-h3 {
  color: var(--tec-color-text);
}

/* ====== GLOBAL fixes ====== */
/* Keep visited links readable site-wide */
a:visited { color: var(--link); }

/* ====== The Events Calendar fixes ====== */

/* Unify link color (normal + visited) and improve hover */
.tribe-events a,
.tribe-common a { color: var(--link); }
.tribe-events a:visited,
.tribe-common a:visited { color: var(--link); }
.tribe-events a:hover,
.tribe-common a:hover { color: var(--accent); }

/* Event titles */
.tribe-events .tribe-events-calendar-list__event-title-link,
.tribe-events .tribe-events-calendar-day__event-title-link {
  color: var(--link);
}
.tribe-events .tribe-events-calendar-list__event-title-link:hover,
.tribe-events .tribe-events-calendar-day__event-title-link:hover {
  color: var(--accent);
  text-decoration: underline;
}

/* Buttons (search, subscribe, prev/next, generic TEC buttons) */
.tribe-common .tribe-common-c-btn,
.tribe-events .tribe-events-c-search__button,
.tribe-events .tribe-events-c-subscribe-dropdown__button,
.tribe-events .tribe-events-c-top-bar__nav button {
  background: #1b1c1d;
  color: var(--text);
  border: 1px solid #2b2b2b;
  box-shadow: none;
}
.tribe-common .tribe-common-c-btn:hover,
.tribe-events .tribe-events-c-search__button:hover,
.tribe-events .tribe-events-c-subscribe-dropdown__button:hover,
.tribe-events .tribe-events-c-top-bar__nav button:hover {
  background: #232425;
  border-color: #3a3a3a;
}

/* Make the main action (search) use the brand gold */
.tribe-events .tribe-events-c-search__button {
  background: var(--accent);
  color: #0f1011;
  border-color: var(--accent);
}
.tribe-events .tribe-events-c-search__button:hover { filter: brightness(1.05); }

/* Visible keyboard focus on dark bg */
.tribe-events .tribe-common-c-btn:focus,
.tribe-events a:focus,
.tribe-events button:focus {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* Search input + placeholder */
.tribe-events-c-search input[type="search"] {
  background: #191a1b;
  border: 1px solid #2b2b2b;
  color: var(--text);
}
.tribe-events-c-search input[type="search"]::placeholder {
  color: var(--muted);
  opacity: .9;
}

/* Subscribe dropdown button state */
.tribe-events .tribe-events-c-subscribe-dropdown__button.is-open {
  background: #232425;
  border-color: var(--accent);
}

/* Long event website URL: readable + doesn’t blow layout */
.tribe-events .tribe-events-event-url a {
  display: inline-block;
  max-width: 52ch;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: bottom;
  border-bottom: 1px dotted rgba(212,177,95,.5);
}
@supports (overflow-wrap:anywhere) {
  .tribe-events .tribe-events-event-url a {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
  }
}

/* Meta text contrast */
.tribe-common .tribe-common-b1,
.tribe-common .tribe-common-b2,
.tribe-common .tribe-common-h6 { color: var(--muted); }

/* List/Day items separators + spacing */
.tribe-events .tribe-events-calendar-list__event,
.tribe-events .tribe-events-calendar-day__event {
  padding: 1rem 0 1.25rem;
  border-bottom: 1px solid #2b2b2b;
}

/* Details sections breathing room */
.tribe-events .tribe-events-single-section {
  padding: 1rem 0;
  border-top: 1px solid #2b2b2b;
}

/* Map card polish */
.tribe-events .tribe-events-venue-map iframe {
  border-radius: 8px;
  border: 1px solid #2b2b2b;
}

/* Force visited event titles to be readable (gold) */
.tribe-events a.tribe-events-calendar-list__event-title-link:visited,
.tribe-events .tribe-events-calendar-list__event-title-link:visited,
.tribe-events .tribe-events-calendar-day__event-title-link:visited,
.tribe-events .tribe-events-calendar-month__calendar-event-title-link:visited,
.tribe-events .tribe-common a.tribe-common-anchor-thin:visited {
  color: var(--link) !important;
}

/* Optional: ensure hover still brightens after visited */
.tribe-events .tribe-events-calendar-list__event-title-link:hover,
.tribe-events .tribe-events-calendar-day__event-title-link:hover,
.tribe-events .tribe-events-calendar-month__calendar-event-title-link:hover {
  color: var(--accent) !important;
}

/* Fix Events meta layout overlap (long URLs pushing into map) */
.tribe-events-single-section.tribe-events-event-meta {
  display: flex;
  flex-wrap: wrap; /* allow columns to wrap on small screens or when content is too long */
  gap: 2rem;
}

.tribe-events-meta-group {
  min-width: 220px; /* stops columns from getting too narrow */
  flex: 1 1 auto;
}

/* Make long URLs break instead of overflowing */
.tribe-events .tribe-events-event-url a {
  word-break: break-word;
  overflow-wrap: anywhere;
  white-space: normal;
  display: inline-block;
  max-width: 100%;
}

a.wpgmza_infowindow_link {
color: #0a39ff;
}

a.wpgmza_infowindow_link:hover {
color: #dccdff;
}
