/* =============================================================
   TAMENSAH Linkpoint — Theme Stylesheet
   Covers: base reset, scroll-reveal, hover states, mobile nav,
   sticky partner sidebar, filter bar, CF7 form styling.
   ============================================================= */

/* ---------------------------------------------------------------
   Base reset
--------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: 'Plus Jakarta Sans', sans-serif;
  color: #15171A;
  background: #fff;
  -webkit-font-smoothing: antialiased;
}

::selection { background: #F47920; color: #fff; }

img { max-width: 100%; height: auto; display: block; }

/* Remove WP's default block margins in templates */
.wp-block-template-part,
.wp-block-group,
.entry-content { margin: 0; padding: 0; }


/* ---------------------------------------------------------------
   Scroll-reveal animation system (mirrors DCLogic fx-ready)
--------------------------------------------------------------- */
[data-reveal] {
  transition: opacity .8s cubic-bezier(.22,.61,.36,1),
              transform .9s cubic-bezier(.22,.61,.36,1);
}
html.fx-ready [data-reveal]:not([data-shown]) { opacity: 0; }
html.fx-ready [data-reveal="up"]:not([data-shown])    { transform: translateY(28px); }
html.fx-ready [data-reveal="left"]:not([data-shown])  { transform: translateX(-36px); }
html.fx-ready [data-reveal="right"]:not([data-shown]) { transform: translateX(36px); }
html.fx-ready [data-reveal="scale"]:not([data-shown]) { transform: scale(.94); }


/* ---------------------------------------------------------------
   Navigation
--------------------------------------------------------------- */

/* Active nav link */
[data-navkey].lp-nav-active { color: #15171A !important; }
[data-navkey].lp-nav-active > span { transform: scaleX(1) !important; }

/* CTA "Get in touch" */
.lp-btn-cta {
  transition: background .2s, transform .2s;
}
.lp-btn-cta:hover {
  background: #D9650F !important;
  transform: translateY(-1px);
}

/* Burger (hidden on desktop) */
[data-burger] { display: none; }

@media (max-width: 940px) {
  [data-nav-links], [data-nav-cta] { display: none !important; }
  [data-burger] { display: flex !important; }
}


/* ---------------------------------------------------------------
   Footer links
--------------------------------------------------------------- */
.lp-footer-link {
  transition: color .2s;
}
.lp-footer-link:hover { color: #F47920 !important; }

.lp-footer-contact-link {
  transition: color .2s;
}
.lp-footer-contact-link:hover { color: #fff !important; }


/* ---------------------------------------------------------------
   Buttons — shared hover patterns
--------------------------------------------------------------- */

/* Primary orange button */
.lp-btn-primary {
  transition: background .2s, transform .2s, box-shadow .2s;
}
.lp-btn-primary:hover {
  background: #D9650F !important;
  transform: translateY(-2px);
}

/* Dark / charcoal button */
.lp-btn-dark {
  transition: background .2s, transform .2s;
}
.lp-btn-dark:hover {
  background: #000 !important;
  transform: translateY(-2px);
}

/* Outline-white button (on dark backgrounds) */
.lp-btn-outline {
  transition: background .2s, border-color .2s;
}
.lp-btn-outline:hover {
  background: rgba(255,255,255,0.06) !important;
  border-color: rgba(255,255,255,0.5) !important;
}

/* "View all" / "All services" pill button */
.lp-btn-all {
  transition: background .2s, color .2s, border-color .2s;
}
.lp-btn-all:hover {
  background: #F47920 !important;
  color: #fff !important;
  border-color: #F47920 !important;
}

/* Form submit */
.lp-btn-submit {
  transition: background .2s, transform .2s;
  cursor: pointer;
}
.lp-btn-submit:hover {
  background: #D9650F !important;
  transform: translateY(-1px);
}

/* "More about us →" inline text link */
.lp-link-more {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: gap .2s;
}
.lp-link-more:hover { gap: 16px !important; }


/* ---------------------------------------------------------------
   Service preview cards (Home page)
--------------------------------------------------------------- */
.lp-service-card {
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.lp-service-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 18px 40px rgba(20,23,26,0.08);
  border-color: #F47920 !important;
}


/* ---------------------------------------------------------------
   Project cards
--------------------------------------------------------------- */
.lp-project-card {
  transition: transform .3s ease, box-shadow .3s ease;
}
.lp-project-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(20,23,26,0.1);
}

/* Filter bar */
.lp-filter-btn {
  cursor: pointer;
  transition: background .2s, color .2s, border-color .2s;
}
.lp-filter-btn.active {
  background: #15171A !important;
  color: #fff !important;
  border-color: #15171A !important;
}

/* Hidden project cards */
.lp-project-card[hidden] { display: none !important; }


/* ---------------------------------------------------------------
   Partners page — sticky sidebar
--------------------------------------------------------------- */
.lp-partner-sticky {
  position: sticky;
  top: 100px;
}


/* ---------------------------------------------------------------
   Contact page — info rows
--------------------------------------------------------------- */
.lp-contact-row {
  transition: padding-left .2s;
}
.lp-contact-row:hover { padding-left: 6px !important; }


/* ---------------------------------------------------------------
   Contact Form 7 — inherit design
--------------------------------------------------------------- */
.wpcf7-form .wpcf7-text,
.wpcf7-form .wpcf7-email,
.wpcf7-form .wpcf7-tel,
.wpcf7-form .wpcf7-select,
.wpcf7-form .wpcf7-textarea {
  width: 100%;
  padding: 13px 15px;
  border: 1px solid #DCD6CC;
  border-radius: 2px;
  background: #fff;
  font-size: 15px;
  font-family: 'Plus Jakarta Sans', sans-serif;
  color: #15171A;
  transition: border-color .2s, box-shadow .2s;
  display: block;
}
.wpcf7-form .wpcf7-text:focus,
.wpcf7-form .wpcf7-email:focus,
.wpcf7-form .wpcf7-tel:focus,
.wpcf7-form .wpcf7-select:focus,
.wpcf7-form .wpcf7-textarea:focus {
  outline: none;
  border-color: #F47920 !important;
  box-shadow: 0 0 0 3px rgba(244,121,32,0.12);
}
.wpcf7-form input::placeholder,
.wpcf7-form textarea::placeholder { color: #A39E98; }

.wpcf7-form .wpcf7-submit {
  width: 100%;
  background: #F47920;
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  font-family: 'Plus Jakarta Sans', sans-serif;
  padding: 16px;
  border: none;
  border-radius: 2px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  transition: background .2s, transform .2s;
  box-shadow: 0 10px 26px rgba(244,121,32,0.28);
}
.wpcf7-form .wpcf7-submit:hover {
  background: #D9650F;
  transform: translateY(-1px);
}

.wpcf7-form label {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  color: #15171A;
  margin-bottom: 7px;
}

.wpcf7-form .wpcf7-not-valid-tip {
  font-size: 12px;
  color: #C0392B;
  margin-top: 4px;
}

.wpcf7-form .wpcf7-response-output {
  font-size: 13.5px;
  margin-top: 16px;
  padding: 10px 14px;
  border-radius: 2px;
}

.wpcf7-form.sent .wpcf7-response-output {
  border-color: #F47920;
  color: #15171A;
}

/* CF7 form grid layout (matches design) */
.lp-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px;
  margin-bottom: 16px;
}
.lp-form-field { margin-bottom: 16px; }
.lp-form-field:last-child { margin-bottom: 24px; }


/* ---------------------------------------------------------------
   Marquee strip
--------------------------------------------------------------- */
.lp-marquee-track {
  display: flex;
  gap: clamp(32px, 4vw, 56px);
  animation: lp-marquee 24s linear infinite;
  width: max-content;
}
@keyframes lp-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}


/* ---------------------------------------------------------------
   Miscellaneous utilities
--------------------------------------------------------------- */
.lp-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  border: 0;
}
