<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;
  align-items: flex-start;
}

/* ...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, 1);
  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 .content {
  border: 10px solid #e9e9e9;
  padding: 20px;
}

.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 .content {
  border: 10px solid #e9e9e9;
  padding: 20px;
}

.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;
}

.one_third h4,
.two_thirds h4,
.full_width h4 {
  margin: 0;
}

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

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

.fifty_fifty .content {
  border: 10px solid #e9e9e9;
  padding: 20px;
}

.fifty_fifty .box_1 {
  flex: 1;
}
.fifty_fifty .box_2 {
  flex: 1;
}

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

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

/* ==========================================================================
   WYSIWYG Editor Table Styling
   ========================================================================== */

.content table {
  width: 100% !important; /* Overrides the editor's inline width */
  border-collapse: collapse;
  margin: 2em 0;
  font-family: "Inter", sans-serif;
  background-color: #ffffff;
  border-radius: 8px; /* Softens the edges */
  overflow: hidden; /* Ensures the header background respects the border radius */
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); /* Subtle depth */
}

/* Header Styling */
.content table thead tr {
  background-color: #191b23;
  color: #ffffff;
  text-align: left;
}

.content table th {
  font-family: "Hanken Grotesk", sans-serif;
  font-weight: 600;
  padding: 18px 20px;
  font-size: 1.05em;
  letter-spacing: 0.5px;
}

/* Data Cell Styling */
.content table td {
  padding: 16px 20px;
  border-bottom: 1px solid #d1d5db;
  color: #424654;
  vertical-align: top;
}

/* Remove bottom border from the very last row */
.content table tbody tr:last-of-type td {
  border-bottom: none;
}

/* Subtle row hover effect */
.content table tbody tr {
  transition: background-color 0.2s ease;
}

.content table tbody tr:hover {
  background-color: #f4f5f7;
}

/* ==========================================================================
   Responsive Images for Content Containers
   ========================================================================== */
.hero_image img,
.full_width img,
.two_thirds img,
.one_third img,
.fifty_fifty img {
  max-width: 100%;
  height: auto;
  display: block; /* Removes the slight empty space that appears below inline images */
}

/*...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;
  }

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

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

  .content table {
    /* By turning the table into a block element, it can scroll internally
      without needing an external wrapper div.
    */
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap; /* Prevents columns from shrinking into unreadable slivers */
  }

/* 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; /* Kept hidden until toggled */
    padding-top: 10px;
  }

  /* 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 {
    position: relative;
    top: 0;
    width: 100%;
    background-color: transparent; 
    display: none; 
    padding: 0 0 0 0; /* Removes default side padding, keeps top spacing */
    margin: 0; /* Clears any default browser margins */
  }

  .site-nav ul ul li {
    border-bottom: none; 
    width: 100%; /* Forces the list item to span the full width */
  }

  .site-nav ul ul li a {
    font-size: 1.1em; 
    color: #6b7280; 
    text-align: center; /* Explicitly forces the text to the center */
    padding: 12px 0; /* Gives the sub-items a comfortable tap target */
  }

  /* 5. Position the arrow to the right of the text (Industry Standard) */
  .site-nav ul li a[aria-haspopup="true"]::after {
    position: static; /* Overrides the desktop absolute positioning */
    display: inline-block; /* Allows it to sit next to the text */
    margin-left: 10px; /* Adds breathing room between the word and the arrow */
    vertical-align: middle; /* Centers the arrow vertically with the text */
    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: 40px;
  }

  .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;
  }
}
