/* ===========================================
   CUSTOM.CSS - Reality Maps
   =========================================== */


/* -------------------------------------------
   0. THEME VARIABLES
   ------------------------------------------- */
:root {
  /* Backgrounds */
  --bg-page: #222;
  --bg-page-image: url("/images/realitymaps.gif");
  --bg-card: #000000;
  /* Text */
  --text-primary: #cccccc;
  --text-secondary: #999999;
  --text-muted: #777777;
  /* Headings */
  --heading-pink: #ff94db;
  --heading-grey: #999999;
  /* Links (page content) */
  --link-color: #7798dd;
  --link-hover: #33cc66;
  --link-muted: #6080b8;
  /* Nav active/hover (sits on dark navbar bg in both themes) */
  --nav-active: #33cc66;
  /* Borders */
  --border-color: #343a40;
  /* Forms */
  --input-bg: rgba(255, 255, 255, 0.15);
  --input-border: rgba(255, 255, 255, 0.2);
  --input-text: rgba(255, 255, 255, 0.5);
  --btn-search-bg: #333;
  --btn-search-color: #fff;
  /* Toggle button */
  --toggle-color: rgba(255, 255, 255, 0.7);
  --toggle-hover: rgba(255, 255, 255, 0.9);
  /* Navbar */
  --navbar-bg: #212529;
  --navbar-text: rgba(255, 255, 255, 0.7);
  /* Dropdown */
  --dropdown-bg: #343a40;
  --dropdown-text: rgba(255, 255, 255, 0.7);
  --dropdown-border: rgba(255, 255, 255, 0.7);
}

.light-theme {
  /* Backgrounds */
  --bg-page: #e5e2dc;
  --bg-page-image: url("/images/egbg2.gif");
  --bg-card: #f4f1ec;
  /* Text */
  --text-primary: #222;
  --text-secondary: #222;
  --text-muted: #333;
  /* Headings */
  --heading-pink: #b65b8d;
  --heading-grey: #222;
  /* Links (page content) */
  --link-color: #4670ac;
  --link-hover: #2a9d4a;
  --link-muted: #5a8ac7;
  /* Nav active/hover (navbar bg is #6b6660, so needs to be bright) */
  --nav-active: #7ddf90;
  /* Borders */
  --border-color: #dddddd;
  /* Forms */
  --input-bg: #ffffff;
  --input-border: #ced4da;
  --input-text: #6c757d;
  --btn-search-bg: #888;
  --btn-search-color: #fff;
  /* Toggle button */
  --toggle-color: rgba(0, 0, 0, 0.6);
  --toggle-hover: rgba(0, 0, 0, 0.8);
  /* Navbar */
  --navbar-bg: #6b6660;
  --navbar-text: rgba(255, 255, 255, 0.9);
  /* Dropdown */
  --dropdown-bg: #5a5550;
  --dropdown-text: rgba(255, 255, 255, 0.85);
  --dropdown-border: rgba(255, 255, 255, 0.5);
}
body.light-theme {
  background: var(--bg-page-image) repeat;
  background-color: var(--bg-page);
}


/* -------------------------------------------
   1. FONTS
   ------------------------------------------- */
@font-face {
  font-family: "opensans";
  src: url("/css/fonts/opensans-regular-webfont.woff2") format("woff2"),
    url("/css/fonts/opensans-regular-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "opensans";
  src: url("/css/fonts/opensans-semibold-webfont.woff2") format("woff2"),
    url("/css/fonts/opensans-semibold-webfont.woff") format("woff");
  font-weight: bold;
  font-style: normal;
}
@font-face {
  font-family: "opensans";
  src: url("/css/fonts/opensans-italic-webfont.woff2") format("woff2"),
    url("/css/fonts/opensans-italic-webfont.woff") format("woff");
  font-weight: normal;
  font-style: italic;
}

/* -------------------------------------------
   2. BASE STYLES
   ------------------------------------------- */
html {
  scroll-behavior: smooth;
}
body {
  background: var(--bg-page-image) repeat;
  background-color: var(--bg-page);
  min-height: 100%;
  color: var(--text-primary);
  font-family: "opensans", sans-serif;
  font-size: 100%;
}

/* -------------------------------------------
   3. LAYOUT
   ------------------------------------------- */
.container-fluid {
  margin-right: auto;
  margin-left: auto;
  max-width: 1110px;
}
.clear {
  clear: both;
}

/* -------------------------------------------
   4. HEADER / HERO
   ------------------------------------------- */
#hero {
  position: relative;
  margin: 0;
  overflow: hidden;
  background-image: url("/images/header2026.webp");
  background-repeat: no-repeat;
  background-position: left top;
  min-height: 100%;
  border-radius: 0 0 4px 4px;
  height: 150px;
  width: 100%;
  padding: 10px 1rem;
}
#hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  pointer-events: none;
}
.light-theme #hero::after {
  display: none;
}
.rss {
  float: right;
}

/* -------------------------------------------
   5. NAVIGATION - Top navbar
   ------------------------------------------- */
.navbar {
  background-color: var(--navbar-bg);
  border: none;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.navbar .container {
  padding-left: 0;
  padding-right: 0;
}
.navbar-brand {
  font-size: 1.8em;
}
.custom-toggler.navbar-toggler {
  border-color: #fff;
}
.navbar-nav .nav-link {
  padding-top: 0.65rem;
  color: var(--navbar-text);
  font-size: 1.1rem;
}
.navbar-nav .nav-link:hover {
  color: #fff;
}
.nav-link {
  padding-left: 0.8rem !important;
  padding-right: 0.8rem !important;
}
/* Active state for navbar links (sits on dark navbar bg) */
.nav-link.active {
  border: none;
  border-radius: 4px;
  color: var(--nav-active);
}
.navbar-nav .nav-link.active,
.navbar-nav .nav-link:active {
  color: var(--nav-active) !important;
}
.navbar-nav .nav-link.dropdown-toggle.show,
.navbar-nav .nav-link.dropdown-toggle:focus {
  color: var(--navbar-text) !important;
}

/* -------------------------------------------
   5b. NAVIGATION - Dropdown menus
   ------------------------------------------- */
.dropdown-menu {
  background-color: var(--dropdown-bg);
  color: #fff !important;
  border: 1px solid var(--dropdown-border);
}
.dropdown-item,
.dropdown-item:link,
.dropdown-item:visited {
  color: var(--dropdown-text);
}
.dropdown-item:hover {
  color: var(--nav-active);
  background-color: var(--dropdown-bg);
}
.dropdown-item.active,
.dropdown-item.active:link,
.dropdown-item.active:visited {
  background-color: transparent !important;
  color: var(--nav-active) !important;
}

/* -------------------------------------------
   5c. NAVIGATION - Left sidebar
   ------------------------------------------- */
.navbar .nav-item.active {
  border-left: #444 3px solid;
}
#navbarvert {
  font-size: 1em;
}
#navbarvert .nav-item {
  margin-bottom: 0.5rem;
}
#navbarvert .nav-link {
  padding-top: 0.1rem;
  padding-bottom: 0.1rem;
}
/* Sidebar sits on page background, so use page link colours */
#navbarvert .nav-link.active {
  color: var(--link-hover);
}
#navbarvert .nav-link:hover {
  color: var(--link-hover);
}

/* -------------------------------------------
   6. FORMS & INPUTS
   ------------------------------------------- */
.input-group {
  width: 180px;
}
.form-control {
  background-color: var(--input-bg);
  border-color: var(--input-border);
  color: var(--text-primary);
}
.form-control::placeholder {
  color: var(--input-text);
}
.form-control:focus {
  outline: 0 !important;
  border-color: initial;
  box-shadow: none;
}
.input-group .btn-secondary {
  background-color: var(--btn-search-bg);
  border-color: var(--btn-search-bg);
  color: var(--btn-search-color);
}

/* -------------------------------------------
   7. CARDS
   ------------------------------------------- */
.grid-layout .card {
  margin-bottom: 16px;
  padding: 0;
  width: 100%;
  background-color: var(--bg-card);
  border: 1px solid var(--border-color);
  font-size: 1rem;
}
main .card {
  margin-bottom: 16px;
  padding: 0;
  width: 100%;
  background-color: var(--bg-card);
  border: 1px solid var(--border-color);
  font-size: 1.2rem;
}
aside .card {
  width: 100%;
  background-color: var(--bg-card);
  border: 1px solid var(--border-color);
  font-size: 1em;
}
.card h2.card-title {
  margin-bottom: 0.6rem;
}
.card-title {
  margin-bottom: 1rem;
  line-height: 1.15;
}
.card-body {
  padding: 0.7rem 0.9rem;
  color: var(--text-primary);
}
.card-text {
  margin-bottom: 0;
  line-height: 1.4;
}
div.card-text p {
  text-indent: 1em;
}
div.card-text p.dc {
  text-indent: 0;
}
h1.fadeout + .card {
  margin-top: 0;
}

/* -------------------------------------------
   8. TYPOGRAPHY - HEADINGS
   ------------------------------------------- */
h1, h2, h3, h4, h5 {
  display: block;
  line-height: normal;
}
h1 {
  font-size: 1.6em;
  color: var(--heading-pink);
  margin: 0;
}
h2 {
  font-size: 1.2em;
  color: var(--heading-grey);
  margin: 0 0 0.5em 0;
}
h3 {
  font-size: 140%;
  color: var(--heading-grey);
  margin: 0 0 0.8em 0;
  line-height: normal;
}
h4 {
  margin: 0 auto;
  font-size: 120%;
  color: var(--heading-pink);
}
h5 {
  color: var(--text-muted);
  text-align: left;
  line-height: normal;
  font-size: 100%;
  margin: 0 2px 20px 2px;
  font-style: italic;
}
.subhead {
  display: inline;
  color: var(--heading-grey);
  font-size: 0.6em;
  line-height: normal;
}

/* -------------------------------------------
   9. TYPOGRAPHY - PARAGRAPHS & TEXT
   ------------------------------------------- */
p, p.zero, p.zeropoint {
  padding: 0;
}
p {
  margin: 0 0 1em 0;
}
p.zero {
  margin: 0;
}
p.zeropoint {
  margin: 0 0 0.2em 0;
}
p.zero_p5 {
  margin: 0;
  padding: 0 5px;
}
span.dropcap {
  float: left;
  font-size: 310%;
  font-weight: bold;
  line-height: 90%;
  margin: 0 2px 0 0;
  color: #bbb;
}

/* -------------------------------------------
   10. TYPOGRAPHY - LINKS
   ------------------------------------------- */
a {
  text-decoration: none;
}
a.noline {
  text-decoration: none;
}
a:link, a:visited {
  color: var(--link-color);
}
a:hover, a:active {
  color: var(--link-hover);
  text-decoration: none;
}
a.more {
  font-size: 0.85em;
}
a.more:link, a.more:visited {
  color: var(--link-muted);
}
a.more:hover, a.more:active {
  color: var(--link-hover);
  text-decoration: none;
}
a.dark:link, a.dark:visited, a.dark:hover, a.dark:active {
  color: #333;
  text-decoration: none;
}
a.fadelink:link, a.fadelink:visited, a.fadelink:active {
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
}
a.fadelink:hover {
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
}
a.sm {
  font-size: 90%;
}
.tb a {
  color: var(--link-color);
}
.tb a:hover {
  color: var(--link-hover);
}
.light-theme .card-title a:link,
.light-theme .card-title a:visited {
  color: #2d5a8a;
}

/* -------------------------------------------
   11. TYPOGRAPHY - FONT SIZES
   ------------------------------------------- */
.font_140 { font-size: 140%; }
.font_120 { font-size: 120%; }
.font_100 { font-size: 100%; }
.font_090 { font-size: 90%; }
.font_080 { font-size: 80%; }
.font_070 { font-size: 70%; }
.font_060 { font-size: 60%; }
.font_050 { font-size: 50%; }
.normal {
  font-size: 100%;
  font-style: normal;
}
.smalltext, .smallgrey, .smallgreyn, .smallgreydark, .smallred, .smallredn, .smallwhite {
  font-size: 80%;
}
.smallgrey { color: #888; }
.smallgreyn { color: #888; font-style: normal; }
.smallgreydark { color: #222; }
.smallwhite { color: #fff; }

/* -------------------------------------------
   12. TYPOGRAPHY - COLOURS
   ------------------------------------------- */
.pink { color: var(--heading-pink); }
.ivtext { color: #039; }
.text_red { color: #c00; }
.text_blue { color: #36c; }
.text_grey { color: #666; }

/* -------------------------------------------
   13. BLOCKQUOTES
   ------------------------------------------- */
blockquote {
  display: block;
  font-size: 95%;
  text-align: left;
  font-style: italic;
  margin: 0 15px 1.2em 20px;
  padding: 0 0 0 10px;
  border-left: #666 solid 2px;
  line-height: 130%;
}
blockquote.bq_footer {
  font-size: 100%;
}
blockquote.bq_aside {
  font-style: normal;
}
blockquote.bq_inset {
  font-style: normal;
  border: none;
  font-size: 100%;
}
.blockauth {
  text-align: right;
  font-style: normal;
  font-size: 100%;
  display: block;
}

/* -------------------------------------------
   14. LISTS
   ------------------------------------------- */
main li {
  margin-bottom: 0.8em;
}
.listc {
  line-height: 1em;
  margin-bottom: 0;
}
.nobullet {
  list-style-type: none;
}
.vignettes > dl, ol, ul {
  margin-bottom: 0.25rem;
}
.vignettes > li {
  color: #777;
}
.vignettes > li > a:link, .vignettes > li > a:visited {
  color: var(--link-color);
}
.vignettes > li > a:hover, .vignettes > li > a:active {
  color: var(--link-hover);
}

/* -------------------------------------------
   15. TABLES
   ------------------------------------------- */
table.tab_norm {
  border-collapse: collapse;
  border: none;
  border-spacing: 0;
  margin: auto;
  margin-bottom: 1em;
  padding: 0;
}
table.tab_norm td, table.tab_norm th {
  padding: 3px;
  vertical-align: top;
  text-align: left;
}

/* -------------------------------------------
   16. IMAGES
   ------------------------------------------- */
.im-l {
  float: left;
  margin: 0 1rem 0.25rem 0;
}
.im-r {
  float: right;
  margin: 0 0 0.25rem 0.8rem;
}
.imcent, .centre, .centre_z, .centre_zp {
  display: block;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
.image_label, .image_label_c {
  color: #333;
  text-decoration: none;
  display: block;
  font-size: 65%;
  padding: 0 10px;
  margin-bottom: 20px;
}
.image_label { text-align: right; }
.image_label_c { text-align: center; }
.end {
  width: 16px;
  height: 16px;
  font-size: 0.7em;
  margin-left: 2px;
  vertical-align: bottom;
  display: inline-block;
  flex-shrink: 0;
}

/* -------------------------------------------
   17. VIDEO & EMBEDS
   ------------------------------------------- */
video {
  width: 100% !important;
  height: auto !important;
}
.vid-embed {
  max-width: 520px;
  position: relative !important;
  border: 1px solid var(--border-color);
}
.vid_bord_full {
  background-color: #000;
  border: 1px solid #555;
}
.vid_bord {
  background-color: #000;
  border-top: 1px solid #555;
  border-left: 1px solid #555;
  border-right: 1px solid #555;
}
.vid_desc_main, .vid_desc_inner {
  background-color: #000;
  padding: 5px;
  margin-bottom: 14px;
  border-bottom: 1px solid #555;
  border-left: 1px solid #555;
  border-right: 1px solid #555;
  word-wrap: break-word;
  hyphens: auto;
  line-height: normal;
}
.vid_desc_main {
  font-size: 78%;
  margin-top: -17px;
}
.vid-label {
  color: #333;
  text-decoration: none;
  display: block;
  font-size: 70%;
  text-align: right;
  padding: 0 10px;
  margin-top: -20px;
  margin-bottom: 20px;
}

/* -------------------------------------------
   18. UTILITY - SPACING & LAYOUT
   ------------------------------------------- */
.pad10 {
  padding-right: 8px;
  padding-left: 8px;
}
.pad5 {
  padding-right: 5px;
  padding-left: 5px;
}
.inset {
  padding-right: 10px;
  padding-left: 20px;
}
.inset-more {
  padding-right: 10px;
  padding-left: 40px;
}
div.gap {
  clear: both;
  position: relative;
  margin: 5px;
  padding: 0;
  line-height: 10px;
  float: right;
  text-align: right;
  background-color: transparent;
}
.message {
  margin: 0 80px;
}
.textright {
  text-align: right;
}
.hi {
  padding-left: 52px;
  text-indent: -52px;
}

/* -------------------------------------------
   19. UTILITY - VISUAL
   ------------------------------------------- */
.fadeout {
  opacity: 0.5;
}
.light-theme .fadeout {
  opacity: 0.7;
}
.hrside {
  border: 0;
  width: 100%;
  height: 0;
  border-top: 1px solid var(--border-color);
  margin: 20px 0;
}
.but-top {
  float: right;
  margin: 0 5px 5px 0;
  font-size: 0.8em;
}

/* -------------------------------------------
   20. SPECIAL COMPONENTS
   ------------------------------------------- */
.qside, .qsidez {
  display: block;
  clear: both;
  text-align: right;
  float: right;
  font-style: italic;
  margin: -1em 0 0 0;
}
.qside { padding-bottom: 1em; }
.qsidez { padding-bottom: 0; }
.authorsmall {
  font-size: 0.8em;
  color: #777;
}
.disclaimer {
  display: block;
  padding: 10px;
  margin-bottom: 10px;
  background-color: #2a2a2e;
  font-size: 0.75rem;
  color: #ccc;
}
.footnotes {
  display: block;
  border-top: 1px dashed #999;
  padding-top: 1.2em;
  font-size: 80%;
  color: #999;
  margin: 0 10px;
  line-height: 120%;
}

/* -------------------------------------------
   21. FOOTER
   ------------------------------------------- */
#main-footer {
  background-color: var(--navbar-bg);
  color: var(--text-primary);
  padding: 0;
  border: none;
}

/* -------------------------------------------
   22. THEME TOGGLE
   ------------------------------------------- */
.theme-toggle {
  background-color: rgba(0, 0, 0, 0.5);
  border: none;
  border-radius: 50%;
  padding: 3px;
  cursor: pointer;
  color: rgba(255, 255, 255, 0.9);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  margin-left: 6px;
  vertical-align: middle;
}
.theme-toggle:hover {
  background-color: rgba(0, 0, 0, 0.7);
  color: #ffffff;
}
/* Show sun (click for light), hide moon in dark mode (default) */
.theme-toggle .icon-moon { display: none; }
.theme-toggle .icon-sun { display: block; }
/* In light mode: show moon (click for dark), hide sun */
body.light-theme .theme-toggle .icon-moon { display: block; }
body.light-theme .theme-toggle .icon-sun { display: none; }
