@charset "UTF-8";
.page-curtain {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #0F1117;
  /* your curtain color */
  z-index: 9999;
  transform: translateY(-100%);
  /* start off top */
}

.main-content {
  opacity: 0;
}

@font-face {
  font-family: "Jost";
  src: url("https://rothbridge.wpenginepowered.com/wp-content/themes/rothbridge-investments/fonts/Jost-Light.woff2") format("woff2");
  font-style: normal;
  font-display: swap;
}
.split-lines h1, .split-lines h2, .split-lines p {
  visibility: hidden;
  /* hide heading before animation */
}

.split-lines h1 div, .split-lines h2 div, .split-lines p div {
  display: block;
  /* necessary for SplitText lines */
}

body {
  background: #0F1117;
  color: white;
  font-family: "Jost", sans-serif;
  font-weight: 400;
  margin: 0px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  line-height: 1.6;
  letter-spacing: 0.01em;
}

.page-template-page-home .gradient {
  background-image: url("/wp-content/themes/rothbridge-investments/images/home-top-gradient.webp");
  width: 100%;
  background-size: 100%;
  background-repeat: no-repeat;
  position: relative;
  background-position: top;
  margin-bottom: 0px;
}

.page-template-page-full .gradient, .page-template-page-contact .gradient, .page-template-single .gradient {
  background-image: url("/wp-content/themes/rothbridge-investments/images/contact-top-gradient.png");
  width: 100%;
  background-size: 100%;
  background-repeat: no-repeat;
  position: relative;
  background-position: top;
  margin-bottom: 0px;
}

.page-template-page-contact .bottom-gradient {
  display: none;
}

:root {
  --teal:#2EAC91;
  --grey:#17191F;
  --light-grey:#f4f4f4;
}

::-moz-selection {
  background: var(--teal);
}

::selection {
  background: var(--teal);
}

/* ===== Toggle button (hamburger) ===== */
.menu-toggle {
  border: 0;
  background: none;
  padding: 0.5rem;
  z-index: 1100;
}

.menu-bar {
  display: block;
  width: 24px;
  height: 1px;
  background: #fff;
  margin: 5px 0;
  transition: transform 0.3s ease;
}

/* ===== Overlay base ===== */
button.menu-toggle.btn.btn-link {
  display: flex;
  gap: 8px;
  align-items: center;
  color: #fff;
}

.menu-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  transform: translateY(-100%);
  /* start hidden above screen */
  opacity: 1;
  z-index: 1100;
}

.menu-overlay.open {
  transform: translateY(0);
  /* slide down into view */
}

/* Close button */
.menu-close {
  position: absolute;
  top: 2.5rem;
  right: 2rem;
  font-size: 1.3rem;
  background: none;
  border: none;
  cursor: pointer;
}

/* Menu items */
.overlay-nav {
  list-style: none;
  padding: 0;
  margin: 0;
  text-align: center;
}

.overlay-nav a:hover {
  color: #0f111760;
}

.overlay-nav > li {
  margin: 1rem 0;
  font-family: "freight-big-pro", serif;
  font-size: 2.5rem;
  font-style: italic;
  text-transform: capitalize;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.overlay-nav > li a {
  color: #0f1117 !important;
}
.overlay-nav > li a:hover {
  color: #0f111780 !important;
}

.menu-overlay.open .overlay-nav > li {
  opacity: 1;
  transform: translateY(0);
}

/* ============== Stagger delays ====================== */
.overlay-nav > li:nth-child(1) {
  transition-delay: 160ms;
}

.overlay-nav > li:nth-child(2) {
  transition-delay: 240ms;
}

.overlay-nav > li:nth-child(3) {
  transition-delay: 320ms;
}

.overlay-nav > li:nth-child(4) {
  transition-delay: 400ms;
}

.overlay-nav > li:nth-child(5) {
  transition-delay: 480ms;
}

.overlay-nav > li:nth-child(6) {
  transition-delay: 520ms;
}

body.menu-open {
  overflow: hidden;
}

#team-panel-content {
  color: var(--grey);
}

.text-loop-container {
  position: relative;
  height: 1.2em;
  overflow: hidden;
  cursor: pointer;
}

.text-loop {
  display: block;
  transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
}

.text-loop span {
  display: block;
  line-height: 1.2em;
}

/* Initial state of the text */
.text-loop span:first-child {
  transform: translateY(0);
}

.text-loop span:last-child {
  transform: translateY(100%);
}

/* Only enable hover effect on devices that support real hover (mouse/trackpad) */
@media (hover: hover) and (pointer: fine) {
  .text-loop-container:hover .text-loop {
    transform: translateY(-100%);
  }
}

@media (max-width: 767px) {
  .text-loop-container {
    height: auto;
    overflow: visible;
  }

  .text-loop {
    transform: none !important;
    transition: none;
  }

  .text-loop span:first-child,
  .text-loop span:last-child {
    position: static;
    transform: none;
  }
}
/* Scroll bar */
::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #17191f1e;
}

/* Thumb */
::-webkit-scrollbar-thumb {
  background-color: rgba(136, 136, 136, 0.6);
  border-radius: 10px;
}

/* Thumb hover (must be a separate selector) */
::-webkit-scrollbar-thumb:hover {
  background-color: rgba(85, 85, 85, 0.8);
}

/* 2.  Firefox */
html {
  /* first value = thumb, second = track */
  scrollbar-color: rgba(136, 136, 136, 0.6) #17191F;
  scrollbar-width: thin;
}

h1, h2, h3, h4, h5, p {
  font-weight: 400;
}

h1, h2 {
  text-transform: uppercase;
  font-size: clamp(40px, 8vw, 100px);
  line-height: 1;
}

h1 span.italic, h2 span.italic {
  font-family: "freight-big-pro", serif;
  font-size: clamp(40px, 8vw, 111px);
  font-weight: 400;
  font-style: italic;
}

h1.entry-title.mb-2 {
  text-transform: uppercase;
  font-size: clamp(40px, 8vw, 60px);
  line-height: 1;
}

h3, .accordion__header {
  font-family: "freight-big-pro", serif;
  font-size: clamp(20px, 8vw, 40px);
  font-style: italic;
  line-height: 1;
}

@media (max-width: 767px) {
  h3, .accordion__header {
    font-size: 22px; 
  }
}

p {
  font-size: 1rem;
}

span.back-to-top::after {
  content: "";
  display: inline-block;
  width: 0.8rem;
  opacity: 60%;
  height: 0.8rem;
  background: url(/wp-content/themes/rothbridge-investments/images/arrow_up.svg) no-repeat center/contain;
  margin-left: 0.5em;
  margin-bottom: 3px;
  vertical-align: middle;
}

a.button.outline, button#gform_submit_button_1 {
  background: var(--grey);
  color: white;
  padding: 15px 20px;
  display: inline-block;
  width: 100%;
  text-align: center;
  text-transform: uppercase;
}
a.button.outline:hover, button#gform_submit_button_1 {
  color: var(--grey);
  background:white;
}

.relative {
  position: relative;
}

.absolute {
  position: absolute;
  z-index: 2;
}

#rightmatch .title {
  position: absolute;
  z-index: 1;
}

#hero-heading {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
}

#hero-heading > div[aria-hidden=true] {
  display: inline-block !important;
  width: auto !important;
  text-align: center !important;
  margin: 0 auto !important;
  position: static !important;
}

.bkgd-white {
  background: white;
  color: #0f1117;
  position: relative;
  z-index: 1;
}
.bkgd-white p {
  opacity: 0.6;
}

.dark-text, footer {
  color: #17191F !important;
}

.opaque, .opaque a {
  color: #17191F60;
}

a.text-link {
  color: white;
  text-transform: uppercase;
  border-bottom: 1px solid;
}

footer h2 {
  font-family: "freight-big-pro", serif;
  text-transform: capitalize;
  font-weight: 300;
  font-style: normal;
}
footer ul {
  list-style: none;
  padding: 0px;
}
footer li {
  padding-bottom: 10px;
}
footer a.nav-link {
  color: #17191F;
  text-transform: uppercase;
}

#header, .menu-close span, .accordion__header span, button.menu-toggle.btn.btn-link {
  text-transform: uppercase;
  font-size: 0.9rem;
  font-family: "Jost", sans-serif;
}

#header a {
  color: white;
}

.logo {
  display: flex;
  flex-grow: 1;
}

#hero {
  height: 80vh;
}
#hero h2 {
  font-family: "freight-big-pro", serif;
  text-transform: capitalize;
  font-weight: 300;
  font-style: normal;
}

.vh-100 {
  height: 100vh;
}

@media (max-width: 992px) {
  .pt-10 {
    padding-top: 4rem;
  }

  .pb-10 {
    padding-bottom: 4rem;
  }

  .pt-15 {
    padding-top: 4rem;
  }
}
.pt-10 {
  padding-top: 10rem;
}

.pb-10 {
  padding-bottom: 10rem;
}

.pt-15 {
  padding-top: 15rem;
}

.info-card {
  background-color: #17191F;
  transition: transform 1s ease;
  z-index: 1;
  min-height: 420px;
}

@media (min-width: 992px) {
  /* Use transform for staggering to prevent height issues */
  .row > div:nth-child(1) .info-card {
    transform: translateY(0);
  }

  .row > div:nth-child(2) .info-card {
    transform: translateY(7rem);
  }

  .row > div:nth-child(3) .info-card {
    transform: translateY(14rem);
  }
}
.row > div:nth-child(2).is-stuck .info-card {
  transform: translateY(0);
  /* The second card moves to its natural position */
}

.row > div:nth-child(3).is-stuck .info-card {
  transform: translateY(0);
  /* The third card moves to its natural position */
}

.circle-btn {
  width: 56px;
  height: 56px;
  border: 0.5px solid #27292F;
  border-radius: 50%;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  outline: none;
}

.circle-btn:hover,
.circle-btn:focus-visible {
  background: rgba(255, 255, 255, 0.1);
}

.circle-btn img {
  width: 30%;
  height: auto;
}

#full-height-cta {
  background: #17191F;
  margin-top: 10rem;
  position: relative;
  padding-bottom: 5rem;
}
#full-height-cta h2 {
  padding: 0px;
  margin-top: 0px;
}

#full-height-cta .title {
  position: relative;
  top: -2.5rem;
  z-index: 2;
}

.accordion {
  padding: 8rem 0rem;
}

/* Header button */
.accordion__header {
  width: 100%;
  background: transparent;
  border: none;
  padding: 1.5rem 0rem;
  text-align: left;
  color: white;
  cursor: pointer;
  border-bottom: 1px solid #444;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
}

.accordion__item {
  position: relative;
  /* parent relative so border can be absolute */
}

/* Plus/minus icon */
.accordion__header::after {
  content: "+";
  transition: transform 0.3s ease;
}

.accordion__item.active .accordion__header::after {
  content: "–";
  transform: rotate(180deg);
}

/* Panel */
.accordion__panel {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(20px);
  transition: max-height 0.5s ease, opacity 0.5s ease, transform 0.5s ease;
  padding: 0 1.5rem;
}

.accordion__item.active .accordion__panel {
  opacity: 1;
  transform: translateY(0);
  padding: 1rem 1.5rem;
  max-height: 500px;
}

@media (min-width: 768px) {
  .accordion__header::after {
    content: "OPEN";
    position: absolute;
    right: 3.2rem;
    top: 50%;
    transform: translateY(-50%);
    font-family: "Jost", sans-serif;
    font-style: normal;
    font-size: 0.65rem;
    letter-spacing: 0.05em;
    background: #fff;
    color: #151922;
    border-radius: 0.1rem;
    padding: 0.15rem 0.4rem;
    opacity: 0;
    transform-origin: center;
    transition: opacity 0.2s, transform 0.2s;
  }

  .accordion__header:hover::after {
    opacity: 1;
    transform: translateY(-50%) scale(1);
  }

  .accordion__item.active .accordion__header::after {
    content: "CLOSE";
    opacity: 1;
    transform: translateY(-50%) scale(1);
  }

  /* Move the plus/minus icon to ::before for desktop to keep badge in ::after */
  .accordion__header::before {
    content: "+";
    position: absolute;
    right: 0.8rem;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.2s ease;
  }

  .accordion__item.active .accordion__header::before {
    content: "–";
    transform: translateY(-50%) rotate(180deg);
  }

  /* Make sure the header is positioned relative for absolute children */
  .accordion__header {
    position: relative;
  }
}
/* For smaller screens, keep the plus/minus in ::after as before */
@media (max-width: 767px) {
  .accordion__header::before {
    content: none;
  }

  .accordion__header::after {
    content: "+";
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
  }

  .accordion__item.active .accordion__header::after {
    content: "–";
    top: 34%;
  }
}
.img-col {
  position: absolute;
  top: 0;
  right: 0;
  width: 50vw;
  height: 100%;
  z-index: 0;
  display: none;
}

@media (min-width: 768px) {
  .img-col {
    display: block;
  }
}
.img-col img,
.object-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#news-list img {
  max-height: 300px;
  object-fit: cover;
  width: 100%;
}

.img-hover-zoom {
  overflow: hidden;
  position: relative;
}

.img-hover-zoom img {
  transition: transform 0.5s ease;
  display: block;
}

.news-link {
  color: inherit;
  text-decoration: none;
  transition: color 0.3s ease;
}

.lazy-img {
  filter: blur(20px) saturate(50%);
  background-color: rgba(255, 255, 255, 0.05);
  /* Very subtle transparency */
  backdrop-filter: blur(20px);
  /* Apply backdrop-filter for the frosted effect */
  transition: filter 0.8s ease, background-color 0.8s ease, backdrop-filter 0.8s ease;
}

.lazy-img.loaded {
  filter: blur(0) saturate(100%);
  background-color: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(10px) saturate(180%);
}

/* Post page */
.post-thumbnail img {
  width: 100%;
  /* full width of container */
  height: auto;
  /* maintain aspect ratio */
  display: block;
  /* removes inline spacing issues */
}

/* Gradients */
.bottom-gradient {
  background-image: url(/wp-content/themes/rothbridge-investments/images/bottom-gradient.svg);
  height: 290px;
  width: 100%;
  background-size: cover;
  background-repeat: no-repeat;
  position: relative;
  background-position: top;
  z-index: -1;
  margin-bottom: 0px;
}

.middle-gradient {
  background-image: url(/wp-content/themes/rothbridge-investments/images/middle-gradient.png);
  width: 100%;
  background-size: 100%;
  background-repeat: no-repeat;
  position: relative;
  background-position: top;
  padding: 10rem 0rem;
  margin-bottom: 0px;
}

.cs-list {
  position: relative;
  background-position: top;
  padding: 10rem 0rem;
  margin-bottom: 0px;
}

/* Gravity forms */
body .gform_wrapper .gform_body .gform_fields .gfield input[type=text], body .gform_wrapper .gform_body .gform_fields .gfield input[type=tel], body .gform_wrapper .gform_body .gform_fields .gfield input[type=email], body .gform_wrapper .gform_body .gform_fields .gfield textarea {
  background: none;
  border-width: 0px 0px 1px 0px;
  color: white;
  border-color: white;
  border-style: solid;
  border-radius: 0px;
}

body .gform_wrapper .gform_body .gform_fields .gfield .gfield_label {
  color: white;
  text-transform: uppercase;
}

.gform-theme--framework .field_sublabel_below .gform-field-label--type-sub {
  color: #ffffff;
}

body .gform_wrapper .gform_footer input[type=submit] {
  border-radius: 0px !important;
  background: white !important;
  color: var(--grey) !important;
  text-transform: uppercase !important;
  min-width: 215px !important;
  padding: 25px 20px !important;
}

body .gform_wrapper .gform_footer {
  justify-content: flex-end;
}

body .gform_wrapper .gform_page_footer {
  text-align: right;
}
