<link href="https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@600;700&amp;family=Inter:wght@400&amp;family=JetBrains+Mono:wght@500;700&amp;display=swap" rel="stylesheet"/>
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&amp;display=swap" rel="stylesheet"/>
<link href="https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;600;700&amp;family=JetBrains+Mono:wght@500;700&amp;display=swap" rel="stylesheet"/>

* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
/* Pushes the navigation down 48px when the Concrete CMS toolbar is present */
html.ccm-toolbar-visible .site-nav {
  top: 48px;
}

/*STYLE RULES DUDE*/
body {
  margin: 0;
  padding: 0;
  background-color: #fff;
  font-size: 16px;
  font-weight: 300;
  color: #000000;
  line-height: 1.25;
  font-family: "Inter", sans-serif;
}

h1 {
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 2.8em;
  margin: 0;
}

h2 {
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 1.6em;
  font-weight: 400;
  margin: 0 0 10px 0;
}

h3 {
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 1.3em;
  margin: 0 0 0.5em 0;
}

p {
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 1em;
  margin: 0 0 1em 0;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: #424654;
}

a {
  color: #2c2c2c;
}

/* 1. Base Button Class Update */
a.btn {
  display: inline-block;
  padding: 12px 28px;
  background-color: #ffffff;
  color: #191b23;
  border: 1px solid #191b23;
  text-decoration: none;
  text-transform: uppercase;
  font-family: "JetBrains Mono", monospace;
  font-optical-sizing: auto;
  font-style: normal;
  font-size: 0.9em;
  font-weight: 600;
  letter-spacing: 0.5px;
  word-spacing: 1px;
  transition: all 0.3s ease;
}

/* 2. The Universal Hover Effect */
a.btn:hover {
  background-color: #191b23; 
  color: #ffffff;            
  transform: translateY(-2px); 
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); 
}

a.logo {
  display: block;
  width: 80px;
  height: 68px;
  background: url(images/logo.svg) no-repeat 0 0;
  position: absolute;
  top: 50%; 
  transform: translateY(-50%); 
  left: 0;
  z-index: 999999;
}

a.logo span {
  display: none;
}

/*CONTENT CONTAINERS DUDE*/

.content {
  margin: 0 auto;
  max-width: 1150px;
  box-sizing: border-box;
}

/* ...HEADER DUDE........................................................... */

.subpage-header {
  background-color: #ffffff;
  height: auto;
  overflow: hidden;
  position: relative;
}

.subpage-header > .content {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  /* Top padding clears the 82px absolute nav and adds rhythm */
  padding-top: 140px; 
  padding-bottom: 80px;
  gap: 20px;
}

.subpage-header .hero_text {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 50%;
}

.subpage-header .hero_image {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 50%;
  margin-right: auto;
  display: flex;
  justify-content: flex-end;
}

/* ...navigation........................................................ */

.site-nav {
  background-color: #ffffff;
  position: absolute;
  width: 100%;
  top: 0px;
  left: 0px;
  font-size: 0.9em;
  z-index: 99;
  height: 82px; /* NEW: Locks the height */
  opacity: 0.93;
  border-bottom: 1px solid #d1d5db;
}

.site-nav .content {
  position: relative;
  padding-left: 175px;
  height: 100%; /* NEW: Forces content container to fill the 82px */
  display: flex; /* NEW: Activates flexbox */
  align-items: center; /* NEW: Vertically centers your navigation links */
}

/* NEW HAMBURGER STYLES (Hidden on Desktop) */
#mobile_menu_icon {
  display: none;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 10px;
  z-index: 101; /* Keeps the button above the sliding menu */
}

.hamburger_line {
  display: block;
  width: 25px;
  height: 2px;
  margin: 5px auto;
  background-color: #191b23;
  transition:
    transform 0.3s ease,
    opacity 0.3s ease;
}

/* Hide the mobile-specific buttons on desktop */
.mobile_nav_buttons {
  display: none;
}

.site-nav #mobile_menu > ul {
  margin: 0 auto;
  padding: 20px 0;
  max-width: 980px;
}

.site-nav ul {
  margin: 0;
  padding: 0;
}

.site-nav ul::after {
  content: "";
  display: block;
  clear: both;
}

.site-nav ul li {
  position: relative;
  margin: 0 12px 0 0;
  padding: 15px 0;
  display: inline-block;
  float: left;
}

.site-nav ul li:hover {
  background-color: rgba(0, 0, 0, 0.1);
}

.site-nav ul li:hover ul {
  display: block;
}

.site-nav ul li a {
  color: #000;
  text-transform: uppercase;
  letter-spacing: 1px;
  text-decoration: none;
  padding: 12px;
  position: relative;
  font-size: 0.9em;
  color: #424654;
}

.site-nav ul li a[aria-haspopup="true"]::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid rgba(255, 255, 255, 0.6);
  position: absolute;
  left: 12px;
  bottom: 7px;
}

.site-nav ul ul {
  position: absolute;
  top: 100%;
  left: 0px;
  width: 200px;
  background-color: rgba(255, 255, 255, 0.95);
  display: none;
}

.site-nav ul ul li {
  padding: 0;
  margin: 0;
  display: block;
  float: none;
}

.site-nav ul ul li a {
  padding: 12px;
  display: block;
}

/* ...NAV BUTTONS........................................................ */
.site-nav .nav_buttons {
  position: absolute;
  right: 0; /* Pins to the far right of your 1150px content container */
  top: 50%; /* Vertically centers the buttons regardless of nav height */
  transform: translateY(-50%);
  display: flex;
  gap: 15px; /* Space between the two buttons */
}

/*...SERVICES SECTION........................................................*/
.services {
  margin: 0;
  padding: 60px 0 60px 0;
  background-color: #ffffff;
  border-bottom: 1px solid #d1d5db;
}

.services .flexbox {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  gap: 20px;
  margin-top: 20px;
}

.services .box_1,
.services .box_2 {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 50%;
  border: 1px solid #c2c6d7;
  display: flex;
  flex-direction: column;
}

.services .flexbox .title,
.services .flexbox .description {
  padding: 20px;
}

/*...COMPARISON SECTION........................................................*/
.comparison {
  margin: 0;
  padding: 60px 0 60px 0;
  background-color: #ffffff;
  border-bottom: 1px solid #d1d5db;
}

.comparison .flexbox {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  gap: 20px;
  margin-top: 20px;
}

.comparison .box_1,
.comparison .box_2 {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 50%;
  border: 1px solid #c2c6d7;
  display: flex;
  flex-direction: column;
}

.comparison .advantages_list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 0 20px 20px 20px;
}

.comparison .title {
  padding: 20px 20px 10px 20px;
  border-bottom: 1px solid #c2c6d7;
  margin-bottom: 20px;
}

.comparison .details {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 15px;
}

.comparison .details .icon img {
  width: 24px;
  height: auto;
  flex-shrink: 0;
  margin-top: 2px;
}

/* Expand icon block area during Concrete CMS Edit Mode */
.ccm-edit-mode .comparison .details .icon {
  min-width: 120px;
  min-height: 60px;
  display: inline-block; /* Ensures min-width and min-height apply properly */
}

.comparison .details .text h4 {
  margin: 0 0 5px 0;
  font-family: "Hanken Grotesk", sans-serif;
}

/*...FULL-WIDTH SECTION........................................................*/
.full_width {
  margin: 0;
  padding: 60px 0 60px 0;
  background-color: #ffffff;
  border-bottom: 1px solid #d1d5db;
  max-width: 100%;
}


/*...TWO-THIRDS/ONE-THIRD SECTION........................................................*/
.two_thirds {
  margin: 0;
  padding: 60px 0 60px 0;
  background-color: #ffffff;
  border-bottom: 1px solid #d1d5db;
}

.two_thirds .flexbox {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  gap: 20px;
  margin-top: 20px;
}

.two_thirds .box_1 {
  flex: 2;

}
.two_thirds .box_2 {
  flex: 1;

}

/*...ONE-THIRD/TWO-THIRDS SECTION........................................................*/
.one_third {
  margin: 0;
  padding: 60px 0 60px 0;
  background-color: #ffffff;
  border-bottom: 1px solid #d1d5db;
}

.one_third .flexbox {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  gap: 20px;
  margin-top: 20px;
}

.one_third .box_1 {
  flex: 1;

}
.one_third .box_2 {
  flex: 2;

}

/*...GET STARTED SECTION........................................................*/
.get_started {
  margin: 0;
  padding: 60px 0 60px 0;
  background-color: rgb(255, 255, 255);
}

.get_started .content {
  text-align: center;
}

/*...FOOTER (....................................................................*/
.site-footer {
  padding: 50px 0px;
  background-color: #ffffff;
  border-top: 2px solid rgb(194, 198, 215);
  position: relative;
  z-index: 1;
}

.site-footer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: radial-gradient(#000000 1.5px, transparent 1.5px);
  background-size: 14px 14px;
  z-index: -1;
  opacity: 0.25;
  -webkit-mask-image: linear-gradient(
    to top,
    rgba(0, 0, 0, 1) 0%,
    rgba(0, 0, 0, 0) 80%
  );
  mask-image: linear-gradient(
    to top,
    rgba(0, 0, 0, 1) 0%,
    rgba(0, 0, 0, 0) 80%
  );
}

.site-footer .content {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
}

.footer_right {
  display: flex;
  flex-direction: row;
  gap: 60px;
}

.footer_column ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.footer_left img {
  width: 80px;
  height: 68px;
}

/*
    __  _____________  _______       ____  __  ____________  _______________
   /  |/  / ____/ __ \/  _/   |     / __ \/ / / / ____/ __ \/  _/ ____/ ___/
  / /|_/ / __/ / / / // // /| |    / / / / / / / __/ / /_/ // // __/  \__ \ 
 / /  / / /___/ /_/ // // ___ |   / /_/ / /_/ / /___/ _, _// // /___ ___/ / 
/_/  /_/_____/_____/___/_/  |_|   \___\_\____/_____/_/ |_/___/_____//____/  
                                                                            
*/

@media (width <= 800px) {
  h1 {
    font-size: 2.4em;
  }
  h2 {
    font-size: 1.4em;
  }
  h3 {
    font-size: 1.15em;
  }

  .content {
    padding-left: 30px;
    padding-right: 30px;
  }
  a.logo {
    left: 30px;
  }

  .subpage-header > .content {
    flex-direction: column;
    padding-top: 120px;
    align-items: center;
    text-align: center;
  }

  .subpage-header .hero_text,
  .subpage-header .hero_image {
    flex-basis: auto;
    width: 100%;
  }

  .subpage-header .hero_image {
    justify-content: center;
    margin-top: 30px;
  }

  .subpage-header .hero_image img {
    max-width: 100%;
    height: auto;
  }

  #mobile_menu_icon {
    display: block;
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
  }

  /* 2. Hide Desktop Elements */
  .site-nav .desktop_only {
    display: none;
  }
  .site-nav {
    opacity: 1;
  }

  /* 3. The Full-Screen Slide-Out Menu Overlay */
  .site-nav #mobile_menu_links {
    position: fixed;
    top: 0;
    right: -100vw; /* Hides it off-screen to the right */
    width: 100vw;
    height: 100vh;
    background-color: #f8f8ff;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding-top: 100px;
    align-items: center;
    /* Lightweight, hardware-accelerated transition */
    transition: right 0.4s cubic-bezier(0.77, 0.2, 0.05, 1);
    z-index: 100;
  }

  /* Toggled by JS to slide the menu in */
  .site-nav #mobile_menu_links.active {
    right: 0;
  }

  /* 4. Formatting the Mobile Links */
  .site-nav #mobile_menu_links > ul {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0;
    width: 100%; /* CHANGED: Let the UL span 100% of the screen */
  }

  .site-nav ul li {
    float: none;
    margin: 0;
    padding: 0; /* CHANGED: Removed padding from the container */
    width: 80%; /* CHANGED: Moved the 80% width limit to the LI so the bottom borders match your design */
    text-align: center;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  }

  .site-nav ul li a {
    font-size: 1.4em;
    display: block; /* NEW: Forces the link to behave like a block element */
    width: 100%; /* NEW: Forces the link to fill the entire width of the LI */
    padding: 20px 0; /* NEW: Moved the padding here so the empty space becomes clickable */
  }

  /* Make sure the newly expanded padding doesn't make the sub-menu items massive */
  .site-nav ul ul li a {
    padding: 10px 0;
  }

  /* 5. Formatting the Mobile Buttons */
  .mobile_nav_buttons {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-top: 30px;
    align-items: center;
  }

  /* 6. Hamburger "X" Animation when active */
  #mobile_menu_icon.active .hamburger_line:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }
  #mobile_menu_icon.active .hamburger_line:nth-child(2) {
    opacity: 0;
  }
  #mobile_menu_icon.active .hamburger_line:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .services .flexbox,
  .comparison .flexbox,
  .two_thirds .flexbox,
  .one_third .flexbox {
    flex-direction: column;
  }

  .two_thirds .box_1,
  .two_thirds .box_2,
  .one_third .box_1,
  .one_third .box_2 {
    flex: auto;
  }

  .services .image img {
    max-width: 100%;
    height: auto;
  }

  /* =========================================
     NEW MOBILE ACCORDION RULES 
     ========================================= */

  /* 1. Reset the submenu from absolute positioning to flow naturally */
  .site-nav ul ul {
    position: relative;
    top: 0;
    width: 100%;
    background-color: transparent; 
    display: none; 
    padding: 10px 0 0 0; 
    margin: 0; 
  }

  /* 2. Disable the desktop hover effect on mobile */
  .site-nav ul li:hover ul {
    display: none;
  }

  /* 3. Class added by JS to reveal the submenu */
  .site-nav ul li.submenu-open > ul {
    display: block;
  }

  /* 4. Formatting the nested submenu items */
  .site-nav ul ul li {
    border-bottom: none; 
    width: 100%; 
  }

  .site-nav ul ul li a {
    font-size: 1.1em; 
    color: #6b7280; 
    text-align: center; 
    padding: 12px 0; 
  }

  /* 5. Make the dropdown arrow visible and format next to text */
  .site-nav ul li a[aria-haspopup="true"]::after {
    position: static; 
    display: inline-block; 
    margin-left: 10px; 
    vertical-align: middle; 
    border-top-color: #191b23; 
    transition: transform 0.3s ease;
  }

  /* 6. Flip the arrow upward when the menu is expanded */
  .site-nav ul li.submenu-open > a[aria-haspopup="true"]::after {
    transform: rotate(180deg);
  }

}






@media (width <= 500px) {
  h1 {
    font-size: 2em;
    margin-bottom: 0.5em;
  }
  h2 {
    font-size: 1.25em;
  }
  h3 {
    font-size: 1.1em;
    margin-bottom: 0.25em;
  }
  h4 {
    font-size: 0.95em;
  }
  p {
    font-size: 0.95em;
  }

  .subpage-header {
    height: auto;
    padding-bottom: 0px;
  }
  
  .subpage-header > .content {
    padding-right: 5%;
  }
  
  .subpage-header > .content p {
    margin-bottom: 15px;
  }

  .subpage-header .hero_image {
    margin-top: 20px;
  }

  .site-footer .content {
    flex-direction: column;
    gap: 40px;
  }

  .footer_right {
    flex-direction: column;
    gap: 30px;
  }
}