/* ==========================================================================
   Trycity Rentals — icon replacements

   The Font Awesome and Elementor icon webfonts were never captured in the
   archive; their @font-face rules pointed at a domain the site no longer
   controls, so every glyph rendered blank while the page issued a dozen
   requests to a third party on each load.

   Those @font-face rules have been stripped from the vendor CSS. Each glyph
   below is redrawn as a plain geometric shape and applied with mask-image so
   it still inherits `color` from the theme, exactly as the font did.
   ========================================================================== */

[class^="eicon-"],
[class*=" eicon-"],
.fa, .fas, .far, .fab,
[class^="fa-"],
[class*=" fa-"] {
  display: inline-block;
  width: 1em;
  height: 1em;
  vertical-align: -0.125em;
  background-color: currentColor;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  font-style: normal;
}

/* the font versions used ::before pseudo-elements — make sure nothing shows */
[class^="eicon-"]::before,
[class*=" eicon-"]::before,
.fa::before, .fas::before, .far::before, .fab::before,
[class^="fa-"]::before,
[class*=" fa-"]::before {
  content: none !important;
}

/* --------------------------------------------------------------- hamburger */
.eicon-menu-bar {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='2.4' rx='1.2' fill='%23000'/%3E%3Crect x='3' y='10.8' width='18' height='2.4' rx='1.2' fill='%23000'/%3E%3Crect x='3' y='16.6' width='18' height='2.4' rx='1.2' fill='%23000'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='2.4' rx='1.2' fill='%23000'/%3E%3Crect x='3' y='10.8' width='18' height='2.4' rx='1.2' fill='%23000'/%3E%3Crect x='3' y='16.6' width='18' height='2.4' rx='1.2' fill='%23000'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------------- close */
.eicon-close {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.3 3.9 3.9 5.3 10.6 12l-6.7 6.7 1.4 1.4L12 13.4l6.7 6.7 1.4-1.4L13.4 12l6.7-6.7-1.4-1.4L12 10.6z' fill='%23000'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.3 3.9 3.9 5.3 10.6 12l-6.7 6.7 1.4 1.4L12 13.4l6.7 6.7 1.4-1.4L13.4 12l6.7-6.7-1.4-1.4L12 10.6z' fill='%23000'/%3E%3C/svg%3E");
}

/* ---------------------------------------------------------------- chevrons */
.fa-chevron-right,
.fa-angle-right,
.eicon-chevron-right {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8.6 4.4 7.2 5.8l6.2 6.2-6.2 6.2 1.4 1.4 7.6-7.6z' fill='%23000'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8.6 4.4 7.2 5.8l6.2 6.2-6.2 6.2 1.4 1.4 7.6-7.6z' fill='%23000'/%3E%3C/svg%3E");
}

.eicon-chevron-left {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.4 4.4 16.8 5.8l-6.2 6.2 6.2 6.2-1.4 1.4L7.8 12z' fill='%23000'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.4 4.4 16.8 5.8l-6.2 6.2 6.2 6.2-1.4 1.4L7.8 12z' fill='%23000'/%3E%3C/svg%3E");
}

.fa-angle-down {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.4 8.6 5.8 7.2l6.2 6.2 6.2-6.2 1.4 1.4-7.6 7.6z' fill='%23000'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.4 8.6 5.8 7.2l6.2 6.2 6.2-6.2 1.4 1.4-7.6 7.6z' fill='%23000'/%3E%3C/svg%3E");
}

.fa-angle-up {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.4 15.4 5.8 16.8l6.2-6.2 6.2 6.2 1.4-1.4L12 7.8z' fill='%23000'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.4 15.4 5.8 16.8l6.2-6.2 6.2 6.2 1.4-1.4L12 7.8z' fill='%23000'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------------- phone */
.fa-phone,
.fa-phone-alt {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 3a1.6 1.6 0 0 1 1.5 1l1.2 2.9a1.6 1.6 0 0 1-.4 1.8l-1.2 1a12 12 0 0 0 5.6 5.6l1-1.2a1.6 1.6 0 0 1 1.8-.4l2.9 1.2a1.6 1.6 0 0 1 1 1.5V19a2 2 0 0 1-2.2 2A17.5 17.5 0 0 1 3 5.2 2 2 0 0 1 5 3z' fill='%23000'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 3a1.6 1.6 0 0 1 1.5 1l1.2 2.9a1.6 1.6 0 0 1-.4 1.8l-1.2 1a12 12 0 0 0 5.6 5.6l1-1.2a1.6 1.6 0 0 1 1.8-.4l2.9 1.2a1.6 1.6 0 0 1 1 1.5V19a2 2 0 0 1-2.2 2A17.5 17.5 0 0 1 3 5.2 2 2 0 0 1 5 3z' fill='%23000'/%3E%3C/svg%3E");
}

/* ---------------------------------------------------------------- envelope */
.fa-envelope {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2l-10 6.2L2 6zm0 2.3V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8.3l-9.5 5.9a1 1 0 0 1-1 0z' fill='%23000'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2l-10 6.2L2 6zm0 2.3V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8.3l-9.5 5.9a1 1 0 0 1-1 0z' fill='%23000'/%3E%3C/svg%3E");
}

/* --------------------------------------------------------------- map marker */
.fa-map-marker-alt {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5 7 13 7 13s7-8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z' fill='%23000'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5 7 13 7 13s7-8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z' fill='%23000'/%3E%3C/svg%3E");
}

/* ----------------------------------------------------------------- printer */
.fa-print {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 3h10v4H7zM4 8h16a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2h-2v-4H6v4H4a2 2 0 0 1-2-2v-6a2 2 0 0 1 2-2zm4 8h8v5H8z' fill='%23000'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 3h10v4H7zM4 8h16a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2h-2v-4H6v4H4a2 2 0 0 1-2-2v-6a2 2 0 0 1 2-2zm4 8h8v5H8z' fill='%23000'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------------ laptop */
.fa-laptop,
.fa-laptop-code {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 4h14a1 1 0 0 1 1 1v10H4V5a1 1 0 0 1 1-1zm1 2v8h12V6zM2 17h20v1.5a1.5 1.5 0 0 1-1.5 1.5h-17A1.5 1.5 0 0 1 2 18.5z' fill='%23000'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 4h14a1 1 0 0 1 1 1v10H4V5a1 1 0 0 1 1-1zm1 2v8h12V6zM2 17h20v1.5a1.5 1.5 0 0 1-1.5 1.5h-17A1.5 1.5 0 0 1 2 18.5z' fill='%23000'/%3E%3C/svg%3E");
}

/* ----------------------------------------------------------------- diagram */
.fa-project-diagram {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 3h6v5H3zm12 0h6v5h-6zM9 13h6v5H9zM5.5 8v3h13V8h2v5h-17V8z' fill='%23000'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 3h6v5H3zm12 0h6v5h-6zM9 13h6v5H9zM5.5 8v3h13V8h2v5h-17V8z' fill='%23000'/%3E%3C/svg%3E");
}

/* --------------------------------------------------------- social links
   These slots held Font Awesome's brand marks, which are the platforms' own
   trademarked logos and are not mine to redraw. The markup already carries
   the platform name in a screen-reader-only span, so the label is promoted
   to a visible chip instead. Reads clearly and needs no third-party asset.
   -------------------------------------------------------------------------- */
.elementor-social-icon .fab {
  display: none;
}

.elementor-social-icon .elementor-screen-only {
  position: static !important;
  clip: auto !important;
  clip-path: none !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  white-space: nowrap;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.01em;
}

.elementor-icon.elementor-social-icon {
  width: auto;
  min-width: 0;
  height: auto;
  padding: 9px 14px;
  border-radius: 4px;
}

/* ==========================================================================
   Carousel fallback

   Swiper and Elementor's carousel chunk were both absent from the archive, so
   the testimonial widget rendered as an empty strip. The slides are released
   into a plain grid instead: no sliding, but the content is readable.
   ========================================================================== */
.tc-static-carousel {
  overflow: visible !important;
  height: auto !important;
}

.tc-static-carousel .tc-static-track {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
  transform: none !important;
  width: auto !important;
  height: auto !important;
}

.tc-static-carousel .tc-static-track > .swiper-slide {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  height: auto !important;
  flex-shrink: 1 !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  padding: 20px;
  border: 1px solid #e3e8ec;
  border-radius: 6px;
  background: #fff;
}

.tc-static-carousel .elementor-testimonial__image img {
  width: 56px;
  height: 56px;
  object-fit: cover;
  border-radius: 50%;
}

.tc-static-carousel .elementor-testimonial__header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

@media (max-width: 767px) {
  .tc-static-carousel .tc-static-track {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Toggle / accordion
   ========================================================================== */
.elementor-toggle .elementor-tab-title {
  cursor: pointer;
}

.elementor-toggle .elementor-tab-title .elementor-toggle-icon-closed {
  display: inline-block;
}

.elementor-toggle .elementor-tab-title .elementor-toggle-icon-opened {
  display: none;
}

.elementor-toggle .elementor-tab-title.elementor-active .elementor-toggle-icon-closed {
  display: none;
}

.elementor-toggle .elementor-tab-title.elementor-active .elementor-toggle-icon-opened {
  display: inline-block;
}

/* ==========================================================================
   Mobile menu presentation (the replacement JS toggles .tc-open)
   ========================================================================== */
.elementor-nav-menu--dropdown.tc-dropdown {
  display: none;
}

/* Elementor's generated CSS paints this container white; the nav bar it drops
   out of is black, so the override keeps the two consistent. */
.elementor-nav-menu--dropdown.tc-dropdown.tc-open {
  display: block !important;
  position: absolute;
  left: 0;
  right: 0;
  z-index: 999;
  background: #000 !important;
  background-color: #000 !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
  max-height: 78vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* Elementor generates per-element rules such as
   `.elementor-33 .elementor-element-1151e26 .elementor-nav-menu--dropdown a`,
   which outrank a plain class selector and zero out the horizontal padding.
   These rules are written to match that weight. */
.tc-dropdown.tc-open .elementor-nav-menu,
.tc-dropdown.tc-open .elementor-nav-menu ul {
  margin: 0;
  padding: 0;
  list-style: none;
  background: transparent;
}

.tc-dropdown.tc-open .elementor-nav-menu li {
  position: relative;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.tc-dropdown.tc-open .elementor-nav-menu li:last-child {
  border-bottom: 0;
}

.tc-dropdown.tc-open .elementor-nav-menu a,
.tc-dropdown.tc-open .elementor-nav-menu a.elementor-item,
.tc-dropdown.tc-open .elementor-nav-menu a.elementor-sub-item {
  display: block !important;
  padding: 14px 54px 14px 20px !important;
  margin: 0 !important;
  color: #fff !important;
  background: transparent !important;
  text-decoration: none;
  font-size: 15px !important;
  line-height: 1.35 !important;
  min-height: 0;
  border: 0 !important;
}

.tc-dropdown.tc-open .elementor-nav-menu a:hover,
.tc-dropdown.tc-open .elementor-nav-menu a:focus,
.tc-dropdown.tc-open .elementor-nav-menu a.elementor-item-active {
  background: #e00000 !important;
  color: #fff !important;
}

/* nested submenu, collapsed until its chevron is pressed */
.tc-dropdown.tc-open .sub-menu {
  display: none !important;
  background: rgba(255, 255, 255, 0.07) !important;
  position: static !important;
  width: auto !important;
  box-shadow: none !important;
}

.tc-dropdown.tc-open li.tc-sub-open > .sub-menu {
  display: block !important;
}

.tc-dropdown.tc-open .sub-menu a,
.tc-dropdown.tc-open .sub-menu a.elementor-sub-item {
  padding-left: 36px !important;
  font-size: 14px !important;
}

/* chevron button that expands a submenu */
.tc-submenu-toggle {
  position: absolute;
  top: 0;
  right: 0;
  width: 52px;
  height: 50px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.tc-submenu-toggle::before {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  margin: 0 auto;
  background-color: #fff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.4 8.6 5.8 7.2l6.2 6.2 6.2-6.2 1.4 1.4-7.6 7.6z' fill='%23000'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.4 8.6 5.8 7.2l6.2 6.2 6.2-6.2 1.4 1.4-7.6 7.6z' fill='%23000'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform 0.2s ease;
}

.tc-sub-open > .tc-submenu-toggle::before {
  transform: rotate(180deg);
}

/* keep the toggle button itself comfortably tappable */
.elementor-menu-toggle {
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* swap the hamburger for a cross while the menu is open */
.elementor-menu-toggle .elementor-menu-toggle__icon--close {
  display: none;
}

.elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open {
  display: none;
}

.elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--close {
  display: inline-block;
}

/* ------------------------------------------------------- form status note */
.tc-form-note {
  margin: 12px 0 0;
  padding: 10px 12px;
  border-radius: 4px;
  background: #eef6fb;
  color: #084c6b;
  font-size: 14px;
  line-height: 1.4;
}

.tc-form-note--error {
  background: #fdecec;
  color: #8a1f1f;
}
