/* Repairs and layout rules for the recovered TechTop Media site.
   Base theme: Manon 1.6.x (Qode/Edge), 2022 demo stylesheet.
   These rules replace the site-specific style_dynamic/post CSS that was not archived. */

html, body { -webkit-text-size-adjust: 100%; }
body { overflow-x: hidden; }
img { max-width: 100%; }

/* Avoid a flash of unstyled headings while the recovered font files load. */
h1, h2, h3, h4, h5, h6, .edgtf-text-marquee, .edgtf-page-title {
  font-family: "Oswald", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
}

/* Header / navigation ---------------------------------------------------- */
.edgtf-page-header .edgtf-menu-area { height: 120px; }
.edgtf-page-header .edgtf-main-menu > ul > li > a { font-size: 16px; }
.edgtf-page-header .edgtf-main-menu > ul > li > a .item_text { letter-spacing: .02em; }
.edgtf-side-menu-button-opener .edgtf-side-menu-icon svg,
.edgtf-mobile-menu-opener .edgtf-mobile-menu-icon svg,
.edgtf-close-side-menu svg { display: block; }

/* Black slide-in side menu, matching the capture's white-on-black panel. */
.edgtf-side-menu { background-color: #000; color: #fff; max-width: 100vw; }
.edgtf-side-menu nav.edgtf-sidearea-menu > ul > li { padding-left: 0; }
.edgtf-side-menu nav.edgtf-sidearea-menu > ul > li a {
  color: #fff;
  font-size: 64px;
  line-height: 1.05;
}
.edgtf-side-menu nav.edgtf-sidearea-menu > ul > li a:hover,
.edgtf-side-menu nav.edgtf-sidearea-menu > ul > li.edgtf-active-item a { color: #fff; -webkit-text-stroke: 1px #fff; text-shadow: none; }
.edgtf-side-menu a.edgtf-close-side-menu { color: #fff; }
.edgtf-side-menu a.edgtf-close-side-menu .edgtf-sm-close-label { color: #fff; }
.edgtf-cover { position: fixed; inset: 0; z-index: 0; opacity: 0; pointer-events: none; background: rgba(0,0,0,.3); transition: opacity .25s ease; }
.edgtf-right-side-menu-opened .edgtf-cover { z-index: 1002; opacity: 1; pointer-events: auto; }

/* Mobile header and mobile navigation. */
.edgtf-mobile-header .edgtf-mobile-header-inner { height: 70px; }
.edgtf-mobile-header .edgtf-mobile-nav { background: #000; }
.edgtf-mobile-header .edgtf-mobile-nav.is-open { display: block; }
.edgtf-mobile-header .edgtf-mobile-nav ul { padding: 12px 0; }
.edgtf-mobile-header .edgtf-mobile-nav ul li a { color: #fff; }
.edgtf-mobile-menu-opener.is-open a { color: #000; }
@media (max-width: 680px) {
  .edgtf-side-menu { width: 100%; right: -100%; }
  .edgtf-side-menu-slide-from-right.edgtf-right-side-menu-opened .edgtf-side-menu { right: 0; }
  .edgtf-content .edgtf-content-inner > .edgtf-full-width > .edgtf-full-width-inner { padding-left: 0; padding-right: 0; }
}

/* Content surfaces ------------------------------------------------------- */
.edgtf-content { position: relative; z-index: 10; }
.edgtf-content .edgtf-content-inner > .edgtf-full-width > .edgtf-full-width-inner { padding: 52px 0 0; }
.page-id-660 .edgtf-content .edgtf-content-inner > .edgtf-full-width > .edgtf-full-width-inner { padding: 0; }
.edgtf-page-content-holder { width: 100%; }

.elementor-section { z-index: 1; }
.elementor-widget-heading .elementor-heading-title { margin: 0; }
.elementor-text-editor p { font-size: 16px; line-height: 1.75; }

/* Home hero */
.page-id-660 .elementor-section.elementor-element-9c3ece8 { padding: 90px 0 25px; }
.page-id-660 .elementor-element-a0097a8 .elementor-heading-title { font-size: 30px; letter-spacing: .02em; margin-bottom: 12px; }
.page-id-660 .elementor-element-6736b21 .elementor-heading-title { font-size: 68px; line-height: 1.02; margin-bottom: 24px; }
.page-id-660 .elementor-element-8e1ad51 .elementor-text-editor p { font-size: 20px; line-height: 1.6; }
.page-id-660 .elementor-element-697d3c1 { margin-top: 32px; }

/* Elementor social icons */
.elementor-social-icons-wrapper { gap: 10px; }
.elementor-social-icon {
  width: 44px; height: 44px;
  border: 1px solid #000;
  border-radius: 50%;
  color: #000;
  background: transparent;
  transition: background .2s ease, color .2s ease;
}
.elementor-social-icon:hover { background: #000; color: #fff; }
.elementor-social-icon .fab { font-size: 18px; line-height: 1; }

/* Portfolio grids: the original uploaded images are not archived. Keep the
   exact grid geometry and show a quiet neutral plate instead of a broken image. */
.edgtf-portfolio-list-holder .edgtf-pli-image { position: relative; overflow: hidden; background: #ededed; }
.edgtf-portfolio-list-holder .edgtf-pli-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; }
.edgtf-portfolio-list-holder .edgtf-pli-image::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(135deg, #f4f4f4 0%, #e7e7e7 50%, #f0f0f0 100%);
}
[data-image-proportions="landscape"] .edgtf-pli-image { aspect-ratio: 2 / 1; }
[data-image-proportions="square"] .edgtf-pli-image { aspect-ratio: 1 / 1; }
.edgtf-portfolio-list-holder .edgtf-pli-link { z-index: 2; }

/* Service section (home) */
.page-id-660 .elementor-element-031ebe2 { padding: 90px 0 40px; }
.page-id-660 .elementor-element-031ebe2 .elementor-heading-title { font-size: 52px; line-height: 1.05; }
.page-id-660 .edgtf-st-title { font-size: 19px; }
.page-id-660 .edgtf-st-text { font-size: 14px; }
.page-id-660 .edgtf-section-title-holder { margin-bottom: 28px; }
.page-id-660 .elementor-button-link {
  display: inline-block; padding: 10px 22px; border: 1px solid #000; color: #000;
  font-family: "Oswald", sans-serif; font-size: 14px; font-weight: 600; letter-spacing: .04em;
  text-transform: uppercase; background: transparent;
}
.page-id-660 .elementor-button-link:hover { background: #000; color: #fff; }

/* Portfolio project page */
.edgtf-title-holder .edgtf-page-title { font-size: 78px; line-height: 1; }
.edgtf-ps-image-holder .edgtf-ps-image { background: #ededed; aspect-ratio: 4 / 3; overflow: hidden; }
.edgtf-ps-image-holder .edgtf-ps-image a { display: block; width: 100%; height: 100%; }
.edgtf-ps-image-holder .edgtf-ps-image img { width: 100%; height: 100%; object-fit: cover; opacity: 0; }
.edgtf-ps-image-holder .edgtf-ps-image-inner { position: relative; }
.edgtf-ps-info-holder { font-size: 15px; }
.edgtf-ps-info-holder h4 { font-size: 28px; margin-top: 0; }
.edgtf-ps-info-item { margin-bottom: 26px; }
.edgtf-ps-info-title { font-size: 13px; color: #777; margin-bottom: 4px; }

/* Team cards: images unavailable, retain the square geometry and overlay copy. */
.edgtf-team-image { background: #ededed; aspect-ratio: 1 / 1; overflow: hidden; position: relative; }
.edgtf-team-image > img { width: 100%; height: 100%; object-fit: cover; opacity: 0; }
.edgtf-team-social-wrapper { background: rgba(0,0,0,.72); }
.edgtf-team-holder.edgtf-team-info-on-image .edgtf-team-social-wrapper { opacity: 1; }
.edgtf-team-social-inner { transform: none !important; }


/* Text marquee (OM OSS) */
.edgtf-text-marquee { font-size: clamp(70px, 11vw, 160px) !important; line-height: 1 !important; overflow: hidden; }
.edgtf-marquee-element { padding: 0 25px; }

/* Contact form (inert, styled like Elementor Pro) */
.elementor-form .elementor-field {
  background: transparent; border: 1px solid #000; border-radius: 0;
  color: #000; font-size: 14px; padding: 13px 15px; min-height: 48px;
  font-family: "Open Sans", sans-serif;
}
.elementor-form .elementor-field:focus { outline: 1px solid #000; }
.elementor-form textarea.elementor-field { min-height: 140px; resize: vertical; }
.elementor-form .elementor-button {
  background: #000; color: #fff; border: 1px solid #000; border-radius: 0;
  padding: 13px 28px; font-family: "Oswald", sans-serif; font-size: 14px;
  font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
}
.elementor-form .elementor-button:hover { background: #fff; color: #000; }
.elementor-form .elementor-field-group { padding: 0 7px; }
.elementor-form .elementor-form-fields-wrapper { margin: 0 -7px; }

/* Footer */
.edgtf-page-footer { position: relative; overflow: hidden; }
.edgtf-page-footer .edgtf-footer-top-holder { padding-top: 96px; padding-bottom: 70px; }
.edgtf-page-footer .widget { margin-bottom: 12px; }
.edgtf-page-footer .edgtf-widget-title { font-size: 18px; }
.edgtf-footer-inline-nav { margin: 14px 0 0; }
.edgtf-footer-inline-nav a { margin: 0 12px; font-family: "Oswald", sans-serif; text-transform: uppercase; }
.edgtf-custom-widget-text p { margin: 0; }
.edgtf-custom-widget-text a { font-size: 18px; }
#edgtf-footer-circle { opacity: .55; }

/* Intro overlay: theme CSS starts the page hidden until its JS finishes. */
.edgtf-with-loading-title .edgtf-content { transition: opacity .7s ease, transform .7s ease; }
body.edgtf-intro-done .edgtf-with-loading-title .edgtf-content,
body.edgtf-intro-done .edgtf-content { opacity: 1 !important; transform: none !important; pointer-events: auto !important; }
#edgtf-manon-loading-title { transition: transform 1s cubic-bezier(.77,0,.175,1), opacity .6s ease .5s; }
body.edgtf-intro-done #edgtf-manon-loading-title { transform: translate3d(0,-55%,0); opacity: 0; pointer-events: none; }
.edgtf-sticky-header { display: none !important; }

/* Responsive refinements */
@media (max-width: 1024px) {
  .edgtf-page-header { display: none; }
  .edgtf-mobile-header { display: block; }
  .page-id-660 .elementor-element-6736b21 .elementor-heading-title { font-size: 52px; }
  .page-id-660 .elementor-section.elementor-element-9c3ece8 { padding: 50px 0 10px; }
  .edgtf-title-holder .edgtf-page-title { font-size: 54px; }
  .edgtf-side-menu nav.edgtf-sidearea-menu > ul > li a { font-size: 48px; }
}
@media (max-width: 768px) {
  .edgtf-content .edgtf-content-inner > .edgtf-full-width > .edgtf-full-width-inner { padding-top: 30px; }
  .page-id-660 .elementor-element-6736b21 .elementor-heading-title { font-size: 40px; }
  .page-id-660 .elementor-element-a0097a8 .elementor-heading-title { font-size: 22px; }
  .page-id-660 .elementor-element-8e1ad51 .elementor-text-editor p { font-size: 17px; }
  .page-id-660 .elementor-element-031ebe2 .elementor-heading-title { font-size: 38px; }
  .edgtf-title-holder .edgtf-page-title { font-size: 40px; }
  .edgtf-team-holder { margin-bottom: 30px; }
  .edgtf-page-footer .edgtf-footer-top-holder { padding-top: 60px; padding-bottom: 40px; }
  #edgtf-footer-circle { height: 560px; width: 560px; top: 20px; }
  .edgtf-side-menu nav.edgtf-sidearea-menu > ul > li a { font-size: 36px; }
}
@media (max-width: 480px) {
  .edgtf-container-inner, .edgtf-grid, .edgtf-row-grid-section { width: 100%; max-width: calc(100% - 30px); }
  .edgtf-page-footer .edgtf-footer-top-holder { padding-top: 40px; }
  .edgtf-side-menu { padding: 90px 28px 40px; }
  .edgtf-side-menu a.edgtf-close-side-menu { right: 28px; top: 28px; }
}

/* Elementor visibility controls (their frontend stylesheet was not archived). */
@media (min-width: 1025px) { .elementor-hidden-desktop { display: none !important; } }
@media (min-width: 769px) and (max-width: 1024px) { .elementor-hidden-tablet { display: none !important; } }
@media (max-width: 768px) { .elementor-hidden-phone { display: none !important; } }

/* The loading-wordmark markup is generated by the original theme script,
   which is not part of the recovered runtime. Do not show its empty masks. */
#edgtf-manon-loading-title { display: none !important; }
.edgtf-svg-loading-fx .edgtf-theme-svg { visibility: visible !important; }

/* Readable portfolio labels while the original uploads are unavailable. */
.edgtf-portfolio-list-holder.edgtf-pl-gallery-overlay article .edgtf-pli-text-holder {
  opacity: 1 !important;
  background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,.55) 100%);
  z-index: 3;
}
.edgtf-portfolio-list-holder.edgtf-pl-gallery-overlay article .edgtf-pli-text {
  transform: none !important;
  justify-content: flex-end !important;
  padding: 22px 24px;
}
.edgtf-portfolio-list-holder.edgtf-pl-gallery-overlay article .edgtf-pli-title { font-size: 20px; line-height: 1.2; }
.edgtf-portfolio-list-holder.edgtf-pl-gallery-overlay article .edgtf-pli-title a { color: #fff; }
.edgtf-portfolio-list-holder.edgtf-pl-standard-hover article .edgtf-pli-text-holder {
  opacity: 1 !important;
  transform: none !important;
}
.edgtf-portfolio-list-holder.edgtf-pl-standard-shader article .edgtf-pli-text-holder { opacity: 1 !important; }

/* Marquee needs a little breathing room below the fixed-height header. */
.elementor-element-3f3258a { padding-top: 40px; }

@media (max-width: 768px) {
  .edgtf-pl-gallery-overlay .edgtf-pli-title { font-size: 16px; }
  .edgtf-pl-gallery-overlay .edgtf-pli-text { padding: 14px 16px; }
}

/* The theme positions the right menu with floats and an inline-block
   pseudo-element; keep it vertically centred inside the 120px header. */
.edgtf-page-header .edgtf-menu-area .edgtf-vertical-align-containers {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  height: 120px;
}
.edgtf-page-header .edgtf-menu-area .edgtf-position-left,
.edgtf-page-header .edgtf-menu-area .edgtf-position-right {
  float: none;
  height: auto;
}
.edgtf-page-header .edgtf-menu-area .edgtf-position-right { margin-left: auto; }
.edgtf-page-header .edgtf-menu-area .edgtf-position-right::before { display: none; }
.edgtf-page-header .edgtf-menu-area .edgtf-position-right-inner {
  display: flex;
  align-items: center;
  height: auto;
}
[hidden] { display: none !important; }

/* Keep Elementor form columns from wrapping because of their horizontal gap. */
.elementor-form .elementor-field-group { box-sizing: border-box; padding: 0 5px; }
.elementor-form .elementor-field-group.elementor-col-50 { flex: 0 0 50%; max-width: 50%; }
.elementor-form .elementor-field-group.elementor-col-100 { flex: 0 0 100%; max-width: 100%; }
@media (max-width: 768px) {
  .elementor-form .elementor-field-group.elementor-col-50 { flex-basis: 100%; max-width: 100%; }
}

/* Verified publisher copies recovered for two projects. They are shown at
   their natural ratio inside the archived grid geometry. */
.edgtf-pli-image.edgtf-recovered-media img,
.edgtf-ps-image.edgtf-recovered-media img { opacity: 1 !important; }
.edgtf-pli-image.edgtf-recovered-media::after { content: none !important; }
.edgtf-pli-image.edgtf-media-contain img { object-fit: cover; object-position: center; background: #fff; }
.edgtf-ps-image.edgtf-recovered-media { aspect-ratio: 16 / 9; background: #111; }
.edgtf-team-social-holder .edgtf-team-icon i { font-size: 16px; }
.elementor-social-icon i { color: #000; }
.elementor-social-icon:hover i { color: #fff; }

/* The archived marquee is driven by theme JS; reproduce the continuous
   horizontal pass with the two identical captured spans. */
.elementor-element-3f3258a { overflow: hidden; }
.elementor-element-3f3258a .edgtf-text-marquee .edgtf-marquee-element {
  animation: edgtf-recovered-marquee 28s linear infinite;
}
@keyframes edgtf-recovered-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-100%); }
}
@media (prefers-reduced-motion: reduce) {
  .elementor-element-3f3258a .edgtf-text-marquee .edgtf-marquee-element { animation: none; }
}
.edgtf-mobile-header .edgtf-mobile-nav.is-open { animation: edgtf-recovered-mobile-nav .25s ease both; }
@keyframes edgtf-recovered-mobile-nav {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}
