@charset "UTF-8";
:root {
  --active-brightness: 0.85;
  --border-radius: 5px;
  --border-radius-small: 0;
  --box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3);
  --color-accent: #118bee15;
  --color-scrollbar: #cacae8;
  --color-shadow: #f4f4f4;
  --color-table: #118bee;
  --hover-brightness: 1.2;
  --justify-important: center;
  --justify-normal: left;
  --line-height: 1.8;
  --width-card-medium: 460px;
  --width-card-wide: 800px;
  --width-card: 285px;
  --width-content: 1080px;
  --width-content: 1300px;
  --color-bg: #2b2b2b; /* Dark gray for header/footer background */
  --color-bg-secondary: #c74f00; /* Orange accent color */
  --color-bg-main: #ffffff; /* White for main content */
  --color-link: #e67e22; /* Orange for links */
  --color-secondary: #f39c12; /* Lighter orange for highlights */
  --color-secondary-accent: #d35400; /* Darker orange for hover states */
  --color-text: #333333; /* Dark gray for text */
  --outer-border-radius: 0; /* Square corners for a more robust look */
  --border: 2px solid rgba(230, 126, 34, 0.2); /* Subtle orange border */
  --width-content: 1300px;
  --line-height: 1.8;
}

@font-face {
  font-family: "Bebas Neue";
  font-style: normal;
  font-weight: 400;
  src: url(/assets/fonts/bebas-neue-latin-400-normal.woff2) format("woff2"), url(/assets/fonts/bebas-neue-latin-400-normal.woff) format("woff");
}
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  src: url(/assets/fonts/montserrat-latin-400-normal.woff2) format("woff2"), url(/assets/fonts/montserrat-latin-400-normal.woff) format("woff");
}
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  src: url(/assets/fonts/montserrat-latin-700-normal.woff2) format("woff2"), url(/assets/fonts/montserrat-latin-700-normal.woff) format("woff");
}
* {
  box-sizing: border-box;
}

body {
  padding: 1rem;
  background: linear-gradient(135deg, #222222 0%, #333333 50%, #222222 100%);
  background-attachment: fixed;
  font-family: "Montserrat", Arial, sans-serif;
  font-weight: 400;
}
body::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM12 86c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm28-65c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm23-11c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-6 60c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm29 22c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM32 63c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm57-13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-9-21c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM60 91c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM35 41c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM12 60c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z' fill='%23e67e22' fill-opacity='0.05' fill-rule='evenodd'/%3E%3C/svg%3E");
  opacity: 0.5;
  z-index: -1;
}

h1,
nav {
  font-family: "Bebas Neue", Impact, sans-serif;
  font-weight: 400;
  letter-spacing: 1px;
}

h2,
h3,
h4,
h5,
h6 {
  font-family: "Montserrat", Arial, sans-serif;
  font-weight: 700;
  text-transform: uppercase;
}

h1 {
  font-size: 2rem;
}

h2 {
  font-size: 1.4rem;
}

h3 {
  font-size: 1.2rem;
}

h4,
h5,
h6 {
  font-size: 1rem;
}

body > header {
  background-color: var(--color-bg);
  color: var(--color-bg-main);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  border-top: 5px solid var(--color-bg-secondary);
  border-bottom: 5px solid var(--color-bg-secondary);
}
body > header h1 {
  position: relative;
  width: fit-content;
  margin: 0 auto;
}
body > header h1::after {
  content: "";
  position: absolute;
  width: 0;
  height: 6px;
  background: var(--color-bg-secondary);
  bottom: -0.2rem;
  left: 0;
  transition: width 0.8s ease;
  animation: underlineExtend 1s ease forwards;
}
@keyframes underlineExtend {
  0% {
    width: 0;
  }
  100% {
    width: 100%;
  }
}
body > header::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to right, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.4) 100%), url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  z-index: 1;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes fadeInNoSlide {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes slideIn {
  from {
    transform: translateX(-20px);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
main nav,
main .content,
main .right {
  border: none;
  background: var(--color-bg-main);
}

main .content h2,
main .content h3,
main .content h4,
main .content h5,
main .content h6 {
  position: relative;
  width: fit-content;
}
main .content h2::after,
main .content h3::after,
main .content h4::after,
main .content h5::after,
main .content h6::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 3px;
  background: var(--color-bg-secondary);
  animation: headingUnderline 1s ease 0.5s forwards;
  opacity: 1;
  clear: both;
}
@keyframes headingUnderline {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}
main .content p,
main .content ul,
main .content ol {
  animation: fadeIn 0.8s ease 0.3s backwards;
}
main .content blockquote,
main .content .gallery {
  animation: fadeInNoSlide 0.8s ease 0.4s backwards;
}

body > footer {
  position: relative;
  background: linear-gradient(135deg, var(--color-bg-secondary) 0%, var(--color-secondary) 100%);
  color: var(--color-bg-main);
  border: var(--border);
}
body > footer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: url("data:image/svg+xml,%3Csvg width='52' height='26' viewBox='0 0 52 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.1'%3E%3Cpath d='M10 10c0-2.21-1.79-4-4-4-3.314 0-6-2.686-6-6h2c0 2.21 1.79 4 4 4 3.314 0 6 2.686 6 6 0 2.21 1.79 4 4 4 3.314 0 6 2.686 6 6 0 2.21 1.79 4 4 4v2c-3.314 0-6-2.686-6-6 0-2.21-1.79-4-4-4-3.314 0-6-2.686-6-6zm25.464-1.95l8.486 8.486-1.414 1.414-8.486-8.486 1.414-1.414z' /%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  z-index: 0;
  opacity: 0.8;
}

nav {
  border-left: 5px solid var(--color-bg-secondary);
}
nav ul {
  list-style-type: none;
}
nav ul li {
  position: relative;
}
nav a:hover {
  transform: translateX(5px);
}

a {
  color: var(--color-link);
  text-decoration: none;
}
a:hover, a:active {
  color: var(--color-bg-secondary);
}

.contact-form {
  background: var(--color-bg);
  color: var(--color-link);
  border-top: 5px solid var(--color-bg-secondary);
}
.contact-form button {
  background: var(--color-bg-secondary);
  color: var(--color-bg-main);
}
.contact-form button:hover {
  background: var(--color-secondary-accent);
  transform: translateY(-2px);
}
.contact-form input[type=text]:focus,
.contact-form input[type=password]:focus,
.contact-form input[type=email]:focus,
.contact-form textarea:focus {
  border-color: var(--color-bg-secondary);
}

ul.categories > li > a:hover {
  transform: translateY(-5px);
}
ul.categories > li > a:hover::after {
  background: rgba(230, 126, 34, 0.7);
}
ul.categories > li > a::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  transition: all 0.3s ease;
}
ul.categories > li > a h3 {
  color: var(--color-bg-main);
  text-shadow: 1px 1px 4px rgb(0, 0, 0);
}
ul.categories > li > a h3::after {
  content: "";
  position: absolute;
  left: 1.5rem;
  bottom: 1rem;
  width: 50px;
  height: 3px;
  background: var(--color-bg-secondary);
}

ul.items > *:hover {
  transform: translateY(-5px);
}
ul.items > * a {
  text-decoration: none;
}

ul.image-gallery li a {
  aspect-ratio: 3/2;
}
ul.image-gallery li a:hover {
  transform: translateY(-5px);
  box-shadow: 0 6px 3px rgba(0, 0, 0, 0.2);
}
ul.image-gallery li a:hover img {
  transform: scale(1.2);
}
ul.image-gallery li a .image-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
ul.image-gallery li figcaption {
  color: var(--color-bg-main);
}

ul.team li {
  transition: transform 0.3s ease-in;
}
ul.team li:hover {
  transform: translateY(-5px);
}
ul.team li:hover .image img {
  transform: scale(1.05);
}
ul.team li::after {
  content: "";
  display: block;
  clear: both;
}
ul.team li.has-image .team-content h3 {
  color: var(--color-text);
}
ul.team li.has-image .team-content .snippet {
  color: var(--color-bg-secondary);
}
ul.team li.has-image .team-content blockquote {
  border-left: 3px solid var(--color-bg-secondary);
  color: #666;
}

ul.news-posts li:hover {
  transform: translateY(-3px);
}
ul.news-posts li:hover h3 a {
  color: var(--color-bg-secondary);
}
ul.news-posts li article h3 a {
  color: var(--color-text);
}
ul.news-posts li article time {
  color: #666;
  border-left: 3px solid var(--color-bg-secondary);
}
ul.news-posts li article .read-more {
  color: var(--color-bg-secondary);
}
ul.news-posts li article .read-more::after {
  content: "→";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  transition: all 0.3s ease;
}
ul.news-posts li article .read-more:hover::after {
  right: -5px;
}

blockquote {
  position: relative;
  color: #555;
}
blockquote::before {
  content: '"';
  font-family: Georgia, serif;
  font-size: 5rem;
  position: absolute;
  left: 0.5rem;
  top: 0.5rem;
  color: var(--color-bg-secondary);
  opacity: 0.5;
  line-height: 1;
}
blockquote::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 6px;
  background: var(--color-bg-secondary);
}
blockquote cite::before,
blockquote footer::before {
  content: "— ";
}

@media (max-width: 768px) {
  body.sticky-mobile-nav nav .toggle:checked ~ .toggle-label span {
    background: transparent;
  }
  body.sticky-mobile-nav nav .toggle:checked ~ .toggle-label span::before {
    transform: rotate(45deg);
    top: 0;
  }
  body.sticky-mobile-nav nav .toggle:checked ~ .toggle-label span::after {
    transform: rotate(-45deg);
    top: 0;
  }
  body.sticky-mobile-nav nav .toggle-label span,
  body.sticky-mobile-nav nav .toggle-label span::before,
  body.sticky-mobile-nav nav .toggle-label span::after {
    background: white;
  }
  body.sticky-mobile-nav nav .toggle-label span::before, body.sticky-mobile-nav nav .toggle-label span::after {
    content: "";
  }
}