/*
Theme Name: 1812 Strategies 2025
Theme URI: http://www.1812strategies.com/
Author: Hauck Interactive, Inc.
Author URI: http://www.hauckinteractive.com/
Description: Theme for 1812 Strategies
Version: 1.0
*/
.skip-link {
  display: none;
}
:root {
  --main-blue: #07335b;
  --dome-green: #c0c745;
  --rachel-teal: #5ba2b2;
  --text-color: #4e5d6b;
  --sky-blue: #36cceb;
  --faint-blue: #eff6f7;
  --border-color: #ccc;
  --featured-bg: #deecf0;
  --logo-desktop-width: 19.625rem;
  --logo-mobile-width: 16rem;
  --link-color: #0e7a90;
}
* {
  transition: all 0.3s ease-out;
}
body {
  font-family: "Source Sans Pro", sans-serif;
  line-height: 1.4;
  margin: 0;
  padding: 0;
  color: var(--text-color);
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: normal;
}
h1 {
  font-size: 2.5rem;
  line-height: normal;
  font-weight: normal;
  margin: 0.5rem 0;
  text-align: center;
  color: var(--main-blue);
}
h2 {
  font-size: 1.8rem;
  font-weight: normal;
}
h3 {
  font-size: 1.5rem;
  color: var(--main-blue);
}
a {
  text-decoration: none;
}
.intro h2 {
  color: #000;
}
.large-text {
  font-size: 1.5rem;
}
main {
  margin: 0 auto;
}
.wp-block-group,
section {
  max-width: 56.25rem;
  padding: 0 1rem 1rem 1rem;
  margin: 0 auto;
}
.highlight-bg {
  background-color: var(--faint-blue);
  padding: 3rem 1rem 1rem 1rem;
}
#logo {
  width: var(--logo-desktop-width);
  background-image: url("/wp-content/themes/1812strategies/img/anvil.svg");
  background-size: 100%;
  background-repeat: no-repeat;
  position: absolute;
  margin-left: 0rem;
}
#logo a {
  display: block;
  width: 85%;
  margin: 1rem auto 0.5rem auto;
}
#toggle-nav-btn {
  z-index: 1000;
  display: none;
  position: absolute;
  right: 1rem;
  top: 0.5rem;
}
.admin-bar #toggle-nav-btn {
  top: 3.25rem; /* Adjust for admin bar height */
}

.hamburger-inner,
.hamburger-inner::before,
.hamburger-inner::after,
.hamburger.is-active .hamburger-inner,
.hamburger.is-active .hamburger-inner::before,
.hamburger.is-active .hamburger-inner::after {
  background-color: var(--rachel-teal);
}
/* Primary header */
#primary-header {
  display: flex;
  padding: 0 1rem;
}
#primary-nav {
  font-size: 1.2rem;
  text-align: right;
  margin-left: var(--logo-desktop-width);
  flex-grow: 1;
}
#primary-nav ul {
  padding: 0;
  margin: 0;
}
#primary-nav li {
  list-style: none;
  display: inline-block;
  margin: 0 1.5rem;
}
#primary-nav a {
  color: var(--main-blue);
  display: block;
  text-decoration: none;
  border-top: 10px solid transparent;
  padding: 1rem 0;
}
/*
// LOCAL
body.page-id-9 #primary-nav li:nth-child(1) a, 
body.page-id-11 #primary-nav li:nth-child(2) a, 
body.page-id-13 #primary-nav li:nth-child(3) a, 
body.page-id-15 #primary-nav li:nth-child(4) a, 
*/
body.page-id-17 #primary-nav li:nth-child(1) a,
body.page-id-18 #primary-nav li:nth-child(2) a,
body.page-id-19 #primary-nav li:nth-child(3) a,
body.page-id-20 #primary-nav li:nth-child(4) a,
#primary-nav a:hover {
  border-top: 10px solid var(--dome-green);
}
a#mobile-logo {
  display: none;
}
#hero {
  height: 17rem;
  position: relative;
  z-index: -10;
  margin: 0 auto;
  max-width: 85.375rem;
}
#keystone {
  z-index: 1000;
  background-image: url("img/keystone.svg");
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: bottom;
  margin: 0 auto;
  width: 700px;
  height: 50px;
  position: absolute;
  bottom: -1px;
  left: calc(50% - 350px);
}
#keystone h1 {
  font-size: 3.5rem;
  line-height: 3.5rem;
  color: var(--main-blue);
  text-align: center;
  padding-top: 1rem;
  margin: 2rem 0 0 0;
  word-wrap: break-word;
  white-space: normal;
}
.single-column {
  max-width: 53rem; /* 880px with padding */
  min-height: 4rem;
  margin: 0 auto;
  padding: 0 1em 1em 1em;
}
#content {
  min-height: 20rem;
  padding-top: 1rem;
}
#content > h1 {
  margin: 0 0 1rem 0;
}
#content a:link,
#content a:visited {
  color: var(--link-color);
}
#content a:hover {
  color: var(--dome-green);
}
#content a.wp-block-social-link-anchor {
  color: #fff;
}
/* Box holder */
.industries {
  max-width: 53rem;
  margin: 2rem auto;
  display: flex;
  flex-wrap: wrap;
  gap: 1em;
}
.industries > div {
  width: calc(12.5em - 2em);
  height: calc(12.5em - 2em);
  display: flex;
  flex-direction: column;
  text-align: center;
  padding: 1em;
  background-color: #fff;
  justify-content: center;
}
.industries div img {
  width: 3rem;
  height: 3rem;
  margin: 0 auto;
}
.industries p {
  font-size: 24px;
  margin: 0.5rem 0 0 0;
  padding: 0;
}
#services-holder {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
}
#services-holder h3 {
  text-align: center;
}
#services-holder > div {
  width: calc(33.3% - 3em);
  display: flex;
  flex-direction: column;
  padding: 1rem;
  background-color: #fff;
  justify-content: center;
  border: 0.0625rem solid var(--border-color);
}
#services-holder div img {
  width: 48px;
  height: 48px;
  margin: 0 auto;
}
/* Footer */
#primary-footer {
  border-top: 15px solid var(--sky-blue);
  background-color: var(--main-blue);
  padding: 1em 1em 4em 1em;
}
#primary-footer .row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
#primary-footer a {
  color: #b3c1cd;
  text-decoration: none;
}
#primary-footer a:hover {
  color: var(--dome-green);
}
#footer-logo {
  width: 200px;
}
.row {
  margin: 0 auto;
  max-width: 85.375rem;
  display: flex;
  flex-wrap: wrap;
}
.text-center {
  text-align: center;
}
hr,
hr.wp-block-separator {
  margin: 2rem auto;
  border: 0;
  border-color: transparent;
  background-color: var(--dome-green);
  height: 0.313rem;
}
/* Home */
.home h2 {
  color: #000;
  margin-bottom: 0;
}
.home hr.wp-block-separator {
  max-width: 53rem;
  margin: 0 auto;
}
.home #hero {
  height: 31.25rem;
  background-position: 0 -250px;
  background-size: cover;
  background-attachment: fixed;
  background-repeat: no-repeat;
}
.home #keystone {
  width: 700px;
  height: 130px;
  bottom: -20px;
}
.home .wp-block-columns {
  max-width: 53rem;
  margin: 0 auto;
}
.home .wp-block-group.featured {
  max-width: 100%;
}
.home .wp-block-group.featured .wp-block-group__inner-container {
  max-width: 53rem;
  padding: 0 1rem;
  margin: 0 auto;
  text-align: center;
}
.home .wp-block-group.featured figure.wp-block-image {
  background-color: #fff;
  height: 160px;
  padding: 20px;
  display: flex;
  flex-direction: column;
}
.home .wp-block-group.featured figure.wp-block-image img {
  width: 3rem;
  height: 3rem;
  margin: auto;
}
.home .wp-element-caption {
  margin-top: -1rem;
}
/* Who we are child pages */
.title-column {
  line-height: 3rem;
  padding-top: 1rem;
  margin-bottom: 0;
}
ul.wp-block-social-links {
  margin: 0;
}
.title-column h1,
.title-column h2,
.title-column p {
  color: var(--main-blue);
  margin: 0;
}

/* Responsive styles */
@media (max-width: 1024px) {
  #primary-nav {
    font-size: 1rem;
    margin-left: var(--logo-mobile-width);
  }
  #primary-nav li {
    margin: 0 0.5rem;
  }
  #keystone h1 {
    font-size: 3rem;
  }
}
@media (max-width: 860px) {
  #logo {
    width: var(--logo-mobile-width);
  }
  #keystone {
    width: 80%;
    height: 50px;
    left: 10%;
  }
  .home #keystone {
    margin: 0 2rem;
    padding: 0 0.5rem;
    width: calc(100% - 4rem);
    height: 100px;
    bottom: -0.0625rem;
    left: 0;
  }
  .home #keystone h1 {
    margin-top: 1rem;
  }
}
.featured {
  background-color: var(--featured-bg);
  padding: 1em;
  margin-bottom: 2rem;
}
.featured h3 {
  margin: 0.5rem 0 0 0;
  text-transform: uppercase;
  font-weight: bold;
  color: #000;
}
.featured ul {
  padding: 0 0 0 1rem;
  margin: 0;
}
.featured li {
  margin-bottom: 0.5rem;
}
.featured li::marker {
  color: var(--rachel-teal);
}
/* Gutenberg custom styles */
.page-id-19 .wp-block-gallery {
  justify-content: center;
}
.page-id-19 .wp-block-gallery.has-nested-images figure.wp-block-image img {
  border: 0.0625rem solid var(--border-color);
}
.page-id-19 .wp-block-gallery.has-nested-images figure.wp-block-image {
  max-width: calc(
    33.33% - var(--wp--style--unstable-gallery-gap, 16px) * 0.66667
  );
}
/* What We Do - page-11 local */
.page-id-11 .wp-block-column,
.page-id-18 .wp-block-column {
  padding: 1rem;
  border: 0.0625rem solid var(--border-color);
  margin: 0rem;
}
.wp-block-column a:link,
.wp-block-column a:visited {
  color: var(--main-blue);
}
.wp-block-column a:hover {
  color: var(--dome-green);
}

@media (max-width: 767px) {
  body.nav-open {
    overflow: hidden;
  }
  h1 {
    word-wrap: break-word;
  }
  #primary-header {
    display: block;
    background-color: #fff;
    height: 70px;
  }
  #primary-nav {
    width: 100vh;
    height: 0;
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.5s ease-out;
  }
  body.nav-open a#mobile-logo {
    position: absolute;
    display: block;
    width: 12.5rem;
    top: 4rem;
    left: 2rem;
    z-index: 1;
  }

  body.nav-open #primary-nav {
    position: fixed;
    top: 0;
    left: 0;
    height: 100%;
    background-color: var(--main-blue);

    border: 1.25rem solid;
    border-image-slice: 1;
    border-image-source: linear-gradient(
      to bottom,
      rgba(50, 174, 200, 1) 25%,
      rgba(7, 51, 91, 1) 75%
    );

    border-top: 0;
    border-right: 0;
    border-bottom: 0;

    margin-left: 0;
    text-align: left;
    font-size: 2rem;
  }
  #primary-nav ul {
    padding: 10rem 2rem;
  }
  #primary-nav li {
    display: block;
    margin-bottom: 2rem;
  }
  #primary-nav a,
  #primary-nav a:hover,
  #primary-nav li a {
    border-top: none !important;
  }
  #primary-nav a:link,
  #primary-nav a:visited {
    color: #fff;
  }
  #primary-nav a:hover {
    color: var(--dome-green);
  }
  body.nav-open #primary-nav {
    grid-template-rows: 1fr;
  }
  .inner {
    overflow: hidden;
  }
  .industries > div {
    width: calc(12em - 2em);
    height: calc(12.5em - 2em);
  }
  #services-holder > div {
    width: calc(100% - 2em);
  }
  #toggle-nav-btn {
    display: block; /* display button beneath breakpoint */
  }
  #primary-footer .row {
    flex-direction: column;
  }
}
@media (max-width: 570px) {
  .home #hero {
    margin-bottom: 5rem;
  }
  .home #keystone {
    padding-bottom: 0;
  }
  .home #keystone h1 {
    padding: 1rem;
    margin-top: 2rem;
  }
}
