/* Stylesheet for Birding.BC.CA */

/*Google Fonts loaded in head_tags.php*/

/*  Variables */
:root {
  --primary: rgb(0, 117, 185);
  --secondary: #ff9000;
  --success: #16a085;
  --danger: #c0392b;
  --warning: #ff6702;
  --info: #2980b9;

  --white: #ffffff;
  --extralight: #f4f4f4;
  --light: #e5e5e5;
  --medium: #596373;
  --dark: #212529;
  --black: #000000;

  --white-overlay: rgba(255, 255, 255, 0.1);

  /* Additional colors extracted from styles */
  --header-bg: #091016;
  --border-light: #ccc;
  --text-dark: #333333;
  --text-primary: #1d1b1e;
  --light-text: #ebebeb;
  --subtitle-color: #63848e;
  --caption-color: #999;
  --green-dark: #060;
  --hotspot-bg-start: rgba(254, 252, 234, 1);
  --hotspot-bg-end: rgba(241, 218, 54, 1);
  --hotspot-bg: linear-gradient(
    to bottom,
    var(--hotspot-bg-start) 17%,
    var(--hotspot-bg-end) 100%
  );
  --shadow-dark: #181818;

  --fontPrimary: "Montserrat", sans-serif;
  --fontVerdana: Verdana, Arial, Helvetica, sans-serif;
  --fontTrebuchet: "Trebuchet MS", Arial, Helvetica, sans-serif;

  /* Section spacing base (Airy style)*/
  --section-spacing-base: 1rem;

  /* Mobile: base × 1 */
  --section-spacing: calc(var(--section-spacing-base) * 1);
  --section-spacing-sm: calc(var(--section-spacing-base) * 1);

  --section-spacing-base: 25px;
  --section-spacing: var(--section-spacing-base);
  --section-spacing-sm: var(--section-spacing-base);

  /* Bootstrap variable overrides — must come after site variables */
  --bs-primary: var(--primary);
  --bs-primary-rgb: 0, 117, 185;
  --bs-secondary: var(--secondary);
  --bs-secondary-rgb: 255, 144, 0;
  --bs-success: var(--success);
  --bs-success-rgb: 22, 160, 133;
  --bs-danger: var(--danger);
  --bs-danger-rgb: 192, 57, 43;
  --bs-warning: var(--warning);
  --bs-warning-rgb: 255, 103, 2;
  --bs-info: var(--info);
  --bs-info-rgb: 41, 128, 185;

  --bs-font-sans-serif: var(--fontPrimary);
  --bs-body-line-height: 1.6;
  --bs-body-color: var(--dark);
  --bs-body-color-rgb: 33, 37, 41;
  --bs-heading-color: var(--black);
  --bs-emphasis-color: var(--black);

  --bs-link-color: var(--primary);
  --bs-link-color-rgb: 0, 117, 185;
  --bs-link-hover-color: var(--secondary);
  --bs-link-hover-color-rgb: 255, 144, 0;

  /* ------------------------------------------------------------------------
     Typography Scale (Mobile-first)
     Tablet (md) and Desktop (xl) overrides below in @media queries
     ------------------------------------------------------------------------ */

  /* Heading sizes (Mobile) — Minor Second scale (×1.067), base 16px */
  --font-size-h1: 1.3125rem; /* 21px */
  --font-size-h2: 1.25rem; /* 20px */
  --font-size-h3: 1.1875rem; /* 19px */
  --font-size-h4: 1.125rem; /* 18px */
  --font-size-h5: 1.0625rem; /* 17px */
  --font-size-h6: 1rem; /* 16px */

  /* Heading margins (Mobile) */
  --margin-h1: 1.25rem; /* 20px */
  --margin-h2: 1rem; /* 16px */
  --margin-h3: 0.875rem; /* 14px */
  --margin-h4: 0.75rem; /* 12px */
  --margin-h5: 0.625rem; /* 10px */
  --margin-h6: 0.5625rem; /* 9px */
}

/* Responsive Overrides — Tablet (md: 768px = --breakpoint-md) */
@media (min-width: 768px) {
  :root {
    /* Tablet: base × 2 */
    --section-spacing: calc(var(--section-spacing-base) * 2);
    --section-spacing-sm: calc(var(--section-spacing-base) * 2);

    /* Heading sizes (Tablet) — Minor Second scale (×1.067), base 17px */
    --font-size-h1: 1.375rem; /* 22px */
    --font-size-h2: 1.3125rem; /* 21px */
    --font-size-h3: 1.25rem; /* 20px */
    --font-size-h4: 1.1875rem; /* 19px */
    --font-size-h5: 1.125rem; /* 18px */
    --font-size-h6: 1.0625rem; /* 17px */

    /* Heading margins (Tablet) */
    --margin-h1: 1.375rem; /* 22px */
    --margin-h2: 1.125rem; /* 18px */
    --margin-h3: 1rem; /* 16px */
    --margin-h4: 0.8125rem; /* 13px */
    --margin-h5: 0.6875rem; /* 11px */
    --margin-h6: 0.625rem; /* 10px */
  }
}

/* Responsive Overrides — Desktop (xl: 1200px = --breakpoint-xl) */
@media (min-width: 1200px) {
  :root {
    /* Desktop: base × 4 */
    --section-spacing: calc(var(--section-spacing-base) * 4);
    /* Desktop: sm stays at base × 2 */
    --section-spacing-sm: calc(var(--section-spacing-base) * 2);

    /* Heading sizes (Desktop) — Minor Second scale (×1.067), base 18px */
    --font-size-h1: 1.4375rem; /* 23px */
    --font-size-h2: 1.375rem; /* 22px */
    --font-size-h3: 1.3125rem; /* 21px */
    --font-size-h4: 1.25rem; /* 20px */
    --font-size-h5: 1.1875rem; /* 19px */
    --font-size-h6: 1.125rem; /* 18px */

    /* Heading margins (Desktop) */
    --margin-h1: 1.625rem; /* 26px */
    --margin-h2: 1.375rem; /* 22px */
    --margin-h3: 1.125rem; /* 18px */
    --margin-h4: 0.9375rem; /* 15px */
    --margin-h5: 0.75rem; /* 12px */
    --margin-h6: 0.625rem; /* 10px */
  }
}

/* Elements */
html {
  position: relative;
}

body {
  background-color: var(--medium);
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
.display-1,
.display-2 {
  font-weight: 700;
  line-height: 120%;
  letter-spacing: 0;
}

/* Heading sizes and margins  */
h1,
.h1 {
  font-size: var(--font-size-h1);
  margin-bottom: var(--margin-h1);
}

h2,
.h2 {
  font-size: var(--font-size-h2);
  margin-bottom: var(--margin-h2);
}

h3,
.h3 {
  font-size: var(--font-size-h3);
  margin-bottom: var(--margin-h3);
}

h4,
.h4 {
  font-size: var(--font-size-h4);
  margin-bottom: var(--margin-h4);
}

h5,
.h5 {
  font-size: var(--font-size-h5);
  margin-bottom: var(--margin-h5);
}

h6,
.h6 {
  font-size: var(--font-size-h6);
  margin-bottom: var(--margin-h6);
}

h1 {
  border-bottom: solid 1px var(--success);
}

h2 {
  border-bottom: solid 1px var(--success);
}

h3 {
  border-bottom: solid 1px var(--success);
}

p {
  margin: 0 0 2rem;
}

.fa-solid,
.svg-inline--fa {
  color: var(--secondary);
}

a {
  transition: ease-in-out 0.2s;

  &:hover {
    img {
      background: none;
    }
  }
}

/* Bootstrap component overrides
   Component-level BS variables are hardcoded at compile time and must be
   overridden at the same selector specificity — :root overrides are insufficient. */

.btn-primary {
  --bs-btn-bg: var(--primary);
  --bs-btn-border-color: var(--primary);
  --bs-btn-hover-bg: #00639d;
  --bs-btn-hover-border-color: #005e94;
  --bs-btn-focus-shadow-rgb: 0, 117, 185;
  --bs-btn-active-bg: #005e94;
  --bs-btn-active-border-color: #00588b;
  --bs-btn-disabled-bg: var(--primary);
  --bs-btn-disabled-border-color: var(--primary);
}

.btn-outline-primary {
  --bs-btn-color: var(--primary);
  --bs-btn-border-color: var(--primary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--primary);
  --bs-btn-hover-border-color: var(--primary);
  --bs-btn-focus-shadow-rgb: 0, 117, 185;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #005e94;
  --bs-btn-active-border-color: #005e94;
  --bs-btn-disabled-color: var(--primary);
  --bs-btn-disabled-border-color: var(--primary);
}

/* Layout */

/*GRIDS*/
#doc,
#doc2,
#doc3,
#doc4 {
  background: var(--white);
  box-shadow: var(--shadow-dark) 0 10px 20px;
  margin: 0 auto;
}

#hd {
  position: relative;
  background: var(--header-bg) url("/images/greater-yellowlegs.jpg") center
    right no-repeat;
  background-size: cover;
  height: 200px;

  .title {
    color: var(--white);
    font-size: 2.6rem;
    font-weight: bold;
    padding-left: 20px;
    padding-top: 8px;
    margin-bottom: 0.8rem;
    line-height: 1.1;
  }

  .intro {
    display: none;
    max-width: 600px;
    padding-left: 20px;
    color: var(--light);
  }
}

@media screen and (min-width: 768px) {
  #hd {
    .intro {
      display: block;
    }
  }
}

@media screen and (min-width: 1200px) {
  #hd {
    background-size: contain;
  }
}

/* Navbar*/
.navbar {
  background-color: var(--dark);
  margin: 0 -12px; /* compensates for container-fluid px-3 gutter so navbar is full-width */
  padding: 2px;

  &-expand-md .navbar-nav .nav-link {
    color: var(--white);
  }

  &-toggler {
    color: var(--white);
    border: solid 1px var(--white);
    background-color: var(--header-bg);
    width: 100%;
  }
  .navbar-collapse {
    padding: 10px;
  }
}

.nav-link {
  color: var(--white);
  padding: 8px 12px;
  &:hover {
    color: var(--secondary);
    background-color: var(--white-overlay);
  }
}

.dropdown {
  &-menu {
    background-color: var(--dark);
  }

  &-item {
    color: var(--white);
    font-size: 1rem;
  }
}

#bd {
  padding-top: 20px;

  @media screen and (min-width: 768px) {
    padding-top: 20px 50px;
  }

  p {
    line-height: 1.5;
    margin-bottom: 2rem;
  }
}

#breadcrumbs {
  padding: 10px 20px;
  font-size: 0.875rem;
  margin-bottom: 5px;

  a {
    text-decoration: none;
  }
}

#ft {
  margin-top: 20px;
  padding: 50px 0;
  color: var(--light);
  font-size: 0.875rem;
  text-align: center;
  background: var(--dark);
  border-top: solid 2px var(--medium);

  a {
    color: var(--medium);
    text-decoration: none;

    &:hover {
      color: var(--white);
      text-decoration: underline;
    }
  }
}

/* Layout Columns */

#regions {
  ul {
    margin-left: 20px;

    li {
      list-style: outside disc;
      margin-bottom: 5px;
    }
  }

  p,
  ul {
    margin-bottom: 1.5rem;
  }
}

/* Hotspots*/

table.hotspots {
  width: 100%;

  tr {
    border-bottom: solid 1px var(--border-light);
    margin-bottom: 20px;
  }

  td {
    padding: 10px;

    &.location {
      vertical-align: top;
      width: 110px;
      text-align: center;
      background: var(--hotspot-bg);
    }
  }

  h3 {
    color: var(--green-dark);
    border: none;
    line-height: 1.5;
  }
}

/* Hotspot: Hawkwatch */

.hawkwatch {
  background: url(../images/back04.jpg) no-repeat;
}

/* Google News Feed */
/* Removed unused #feed styles */

/* Text wrangling */
h1.article {
  margin-bottom: 0;
}

.byline {
  font-size: 0.85rem;
  color: var(--text-dark);
  margin: 0;
  padding: 0;
  line-height: 1;
}

.pagetitle {
  font-family: var(--fontTrebuchet);
  font-size: 1.125rem;
  font-weight: normal;
  line-height: 1;
  color: var(--text-primary);
}

.copy-mini {
  font-family: var(--fontVerdana);
  font-size: 0.625rem;
  line-height: 1.6;
  color: var(--text-primary);
}

/* Removed unused .redhighlight */

.small-white {
  font-size: 0.625rem;
  color: var(--light-text);

  a {
    font-size: 0.625rem;
    color: var(--light-text);
  }
}

.subtitle {
  font-family: var(--fontVerdana);
  font-size: 0.75rem;
  font-weight: bold;
  line-height: 1.5;
  color: var(--subtitle-color);
}

.caption {
  font-family: var(--fontVerdana);
  font-size: 0.5625rem;
  color: var(--caption-color);
  a {
    color: var(--caption-color);
    &:hover {
      color: var(--secondary);
    }
  }
}

.w-60 {
  width: 60%;
}
