/* =====================================================================
   NGC (Naysha Global Corporation) — style.css
   nayshaglobal.com

   TABLE OF CONTENTS
   -----------------
   1.  Design Tokens (:root / .dark)
   2.  Reset & Base
   3.  Logo
   4.  Theme Toggle (sun/moon)
   5.  Navigation Shell
       5a. Top Bar (mobile/tablet)
       5b. Mobile Full-Screen Nav
       5c. Tablet Row Nav        [1024–1279px band]
       5d. Desktop Sidebar       [≥1280px]
   6.  Section Header (numbering + title, shared by all sections)
   7.  Hero
   8.  01 — Who We Are
   9.  02 — Services
   10. 03 — Why NGC
   11. 04 — Industries
   12. 05 — Vision & Mission
   13. 06 — Clients Carousel
   14. Download
   15. Contact Us
   16. Get in Touch (form)
   17. Footer
   18. Back-to-Top Button

   NOTE ON MEDIA QUERIES: sections below keep their responsive rules
   directly underneath the base rule they modify, so each component's
   full behaviour (mobile → desktop) can be read in one place. The one
   exception is the "HERO RESPONSIVE HEIGHTS" cascade (§7) — those
   max-width queries deliberately overlap and MUST stay ordered from
   largest to smallest breakpoint, or the height will be wrong.
   ===================================================================== */


/* =====================================================================
   1. DESIGN TOKENS
   ===================================================================== */

:root {
  /* Brand */
  --color-brand-orange: #E06B00;
  --color-brand-blue: #0A328A;
  --color-brand-teal: #3FC1C9;
  --color-text-active: #0A328A;

  /* Surfaces */
  --color-bg: #FFFFFF;
  --color-bg-alt: #F7F8FA;
  --color-surface: #FFFFFF;

  /* Text */
  --color-text-primary: #16181D;
  --color-text-secondary: #575757;
  --color-text-muted: #9498A0;

  /* Borders */
  --color-border: #E7E7E9;
  --color-border-strong: #D5D6DA;

  /* Typography */
  --font-heading: "Montserrat", sans-serif;
  --font-body: "Montserrat", sans-serif;
  --font-mono: "Montserrat", monospace;

  /* Layout */
  --sidebar-width: 300px;
  --topbar-height: 64px;
  --section-padding-inline: clamp(1.5rem, 5vw, 4rem);
  --section-padding-block: clamp(2.5rem, 6vw, 5rem);

  /* Motion */
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
  --duration-fast: 180ms;
  --duration-medium: 320ms;
}

/* Dark mode token overrides — toggled via .dark class on <html> */
.dark {
  --color-bg: #101215;
  --color-bg-alt: #16181C;
  --color-surface: #1A1C21;

  --color-text-primary: #F2F1ED;
  --color-text-secondary: #ABAFB6;
  --color-text-muted: #7B7F87;
  --color-text-active: #3FC1C9;

  --color-border: #292C32;
  --color-border-strong: #3A3D44;
}


/* =====================================================================
   2. RESET & BASE
   ===================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

body {
  margin: 0;
  background: var(--color-bg);
  color: var(--color-text-primary);
  font-family: var(--font-body);
  line-height: 1.2;
  transition: background var(--duration-medium) var(--ease-standard),
              color var(--duration-medium) var(--ease-standard);
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
sup { font-size: 0.55em; color: var(--color-brand-orange); font-weight: 600; }

:focus-visible { outline: 2px solid var(--color-brand-blue); outline-offset: 3px; }

h1, h2, h3 { font-family: var(--font-heading); font-weight: 600; line-height: 1.15; margin: 0; }
p { margin: 0; font-weight: 500; }

/* Generic active-nav-link state, applied by script.js */
[data-nav].active { color: var(--color-text-active); font-weight: 700; }

/* Privacy Policy page content (privacy-policy.html) */
.privacy-content h2 { font-size: 1.5rem; color: var(--color-brand-teal); margin: 2rem 0 1rem; }
.privacy-content p { color: var(--color-text-secondary); max-width: 100%; }


/* =====================================================================
   3. LOGO
   ===================================================================== */

.logo-mark { display: block; width: auto; }
.logo-mark--small { height: 16px; }
.logo-mark--large { height: 80px; width: auto; } /* footer size; overridden for sidebar below */

.topbar__logo, .sidebar__logo { display: flex; align-items: center; justify-content: center; }

/* Light/dark logo asset swap */
.logo-mark--dark { display: none !important; }
.logo-mark--light { display: block !important; }
.dark .logo-mark--light { display: none !important; }
.dark .logo-mark--dark { display: block !important; }


/* =====================================================================
   4. THEME TOGGLE (sun/moon icon swap via .dark on <html>)
   ===================================================================== */

.theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  background: none;
  border: 1px solid var(--color-border-strong);
  border-radius: 50%;
  color: var(--color-text-muted);
  flex-shrink: 0;
  transition: background var(--duration-fast) var(--ease-standard),
              border-color var(--duration-fast) var(--ease-standard);
}

.theme-toggle:hover { background: var(--color-bg-alt); }
.theme-toggle__icon { width: 18px; height: 18px; }

.theme-toggle__icon--sun { display: none !important; }   /* light mode: show moon */
.theme-toggle__icon--moon { display: block !important; }
.dark .theme-toggle__icon--sun { display: block !important; } /* dark mode: show sun */
.dark .theme-toggle__icon--moon { display: none !important; }


/* =====================================================================
   5. NAVIGATION SHELL
   ===================================================================== */

/* --- 5a. Top Bar (mobile/tablet, hidden ≥1280px) --- */

.topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-border);
}

.topbar__row {
  height: var(--topbar-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0 1.25rem;
}

.topbar__utility-links {
  display: none; /* shown in the 1024–1279px band, see §5c */
  align-items: center;
  gap: 1.5rem;
  font-size: 0.85rem;
  color: var(--color-text-secondary);
}

.topbar__utility-link:hover { color: var(--color-text-active); }

.topbar__menu-toggle {
  background: none;
  border: none;
  color: var(--color-text-primary);
  font-size: 0.95rem;
  font-weight: 500;
}

/* --- 5b. Mobile Full-Screen Nav Overlay --- */

.mobile-nav {
  position: fixed;
  inset: 0;
  z-index: 50;
  background: var(--color-bg);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 2rem;
  transform: translateY(-100%);
  opacity: 0;
  pointer-events: none;
  transition: transform var(--duration-medium) var(--ease-standard),
              opacity var(--duration-medium) var(--ease-standard);
}

.mobile-nav.is-open { transform: translateY(0); opacity: 1; pointer-events: auto; }

.mobile-nav__close {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  background: none;
  border: none;
  font-size: 2rem;
  line-height: 1;
  color: var(--color-text-primary);
}

.mobile-nav__list { display: flex; flex-direction: column; gap: 1rem; }

.mobile-nav__link {
  font-family: var(--font-heading);
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--color-text-primary);
}

.mobile-nav__link span {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--color-brand-orange);
  margin-left: 0.4rem;
}

.mobile-nav__footer {
  margin-top: 2.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: flex-start;
}

.mobile-nav__utility-link { font-size: 0.9rem; color: var(--color-text-secondary); }
.mobile-nav__theme-toggle { width: 44px; height: 44px; }

/* --- 5c. Tablet Row Nav [1024–1279px band] --- */
/* Top bar keeps logo + utility links; a horizontal 01–06 row appears
   beneath it. The fixed sidebar has not taken over yet at this width. */

.tablet-nav { display: none; }

@media (min-width: 1024px) and (max-width: 1279px) {
  .topbar__menu-toggle { display: none; }
  .topbar__utility-links { display: flex; }

  .tablet-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 1.75rem;
    padding: 0.9rem 1.5rem;
    border-top: 1px solid var(--color-border);
  }

  .tablet-nav__link {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--color-text-secondary);
    transition: color var(--duration-fast) var(--ease-standard);
  }

  .tablet-nav__link sup { margin-left: 0.15rem; }
  .tablet-nav__link:hover { color: var(--color-text-active); }
}

/* --- 5d. Desktop Fixed Sidebar [≥1280px] --- */

.sidebar { display: none; }

@media (min-width: 1280px) {
  .topbar { display: none; }
  .mobile-nav { display: none; }

  .sidebar {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    left: 0;
    width: var(--sidebar-width);
    height: 100vh;
    background: var(--color-bg);
    border-right: 1px solid var(--color-border);
    padding: 2.25rem 2rem;
    z-index: 30;
    overflow-y: auto;
  }

  .sidebar__logo { display: block; }
  .sidebar__logo .logo-mark--large { height: 56px !important; width: auto !important; }

  .sidebar__nav { display: flex; flex-direction: column; gap: 1.15rem; margin-top: 3rem; }

  .sidebar__link {
    font-size: 0.95rem;
    font-weight: 500;
    color: var(--color-text-secondary);
    transition: color var(--duration-fast) var(--ease-standard);
  }

  .sidebar__link sup { margin-left: 0.2rem; }
  .sidebar__link:hover { color: var(--color-text-active); }

  .sidebar__footer {
    margin-top: auto;
    padding-top: 1.5rem;
    border-top: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    align-items: flex-start;
  }

  .sidebar__utility-link {
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-text-muted);
  }

  .sidebar__utility-link:hover { color: var(--color-text-active); }
  .sidebar__theme-toggle { margin-top: 0.5rem; }

  .main-content {
    margin-left: var(--sidebar-width);
    width: calc(100% - var(--sidebar-width));
  }
}

/* Shared 2-/3-column grid layout, identical from the tablet band through
   desktop, so it's defined once for ≥1024px rather than twice. */
@media (min-width: 1024px) {
  .about__grid,
  .vision__columns,
  .services__grid,
  .industries__grid {
    grid-template-columns: repeat(2, 1fr);
    align-items: start;
  }

  .who-we-are__grid { grid-template-columns: repeat(3, 1fr); }
}


/* =====================================================================
   6. SECTION HEADER (numbering + title — shared by every section)
   ===================================================================== */

.section {
  padding: var(--section-padding-block) var(--section-padding-inline);
  border-bottom: 1px solid var(--color-border);
}

.section__header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.75rem 1rem;
  margin-bottom: 1rem;
}

.section__index {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: 600;
  color: var(--color-brand-orange);
  line-height: 1;
}

.section__title {
  font-size: clamp(1.75rem, 3.5vw, 2.75rem);
  color: var(--color-text-primary);
}


/* =====================================================================
   7. HERO
   ===================================================================== */

.hero { width: 100%; overflow: hidden; border-bottom: 1px solid var(--color-border); }

.hero__globe-wrap { position: relative; width: 100%; height: clamp(380px, 85vh, 900px); overflow: hidden; }

.hero__globe-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.2); /* light theme overlay */
  transition: background 0.3s ease;
}

.dark .hero__globe-wrap::after { background: rgba(0, 0, 0, 0.35); } /* dark theme overlay */

.hero__globe-img {
  background: #ffffff;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  transition: opacity 0.4s ease;
  z-index: 0;
  animation: imageFade 1s ease-out forwards;
}

.hero__globe-img--light { opacity: 1; }
.hero__globe-img--dark { opacity: 0; }
.dark .hero__globe-img--light { opacity: 0; }
.dark .hero__globe-img--dark { opacity: 1; }

.hero__content {
  position: absolute;
  top: 45.5%;
  left: 0%;
  transform: translate(-50%, -50%);
  z-index: 2;
  width: 100%;
  padding: 0 10px;
  pointer-events: none;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  opacity: 0;
  animation: heroEntry 2s ease-out 2s forwards; /* fades in after the image */
}

@media (max-width: 768px) {
  .hero__content { left: 5%; right: 5%; width: 90%; text-align: center; }
}

.hero__tagline {
  white-space: pre-line;
  font-weight: 600;
  margin: 0;
  padding: 0;
  font-family: Montserrat;
  display: inline-block;
  line-height: 1.3;
  text-align: center;
}

:not(.dark) .hero__tagline {
  color: #000000;
  text-shadow: 0 8px 8px rgba(255, 255, 255, 1),
               0 12px 15px rgba(255, 255, 255, 0.9),
               5px 8px 20px rgba(255, 255, 255, 0.6);
}

.dark .hero__tagline { color: #ffffff; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.8); }

/* Tagline font-size scaling */
@media (max-width: 425px) { .hero__tagline { font-size: 11px; } }
@media (min-width: 426px) and (max-width: 600px) { .hero__tagline { font-size: 16px; } }
@media (min-width: 601px) and (max-width: 768px) { .hero__tagline { font-size: 18px; } }
@media (min-width: 769px) and (max-width: 1024px) { .hero__tagline { font-size: 20px; } }
@media (min-width: 1025px) and (max-width: 1440px) { .hero__tagline { font-size: 28px; } }
@media (min-width: 1441px) { .hero__tagline { font-size: 36px; } }

@keyframes heroEntry {
  0% { opacity: 0; transform: translateY(50px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes imageFade {
  0% { filter: brightness(1.3); }
  100% { filter: brightness(1); }
}

/* HERO RESPONSIVE HEIGHTS — max-width queries overlap on purpose.
   Order MUST stay largest breakpoint → smallest so the narrowest
   matching rule wins the cascade. Do not reorder. */
@media (min-width: 1600px) { .hero__globe-wrap { height: 90vh; } }
@media (max-width: 1400px) { .hero__globe-wrap { height: 80vh; } }
@media (max-width: 1200px) { .hero__globe-wrap { height: 70vh; } }
@media (max-width: 992px)  { .hero__globe-wrap { height: 60vh; } }
@media (max-width: 768px) {
  .hero__globe-wrap { height: 50vh; }
  .hero__globe-img { object-position: center; }
  .section { scroll-margin-top: 54px; } /* offsets sticky mobile topbar height */
}
@media (max-width: 576px) { .hero__globe-wrap { height: 42vh; } }
@media (max-width: 400px) { .hero__globe-wrap { height: 35vh; } }


/* =====================================================================
   8. 01 — WHO WE ARE (intro text/image + 5-item thumbnail grid)
   ===================================================================== */

.about__grid { display: grid; gap: 1.5rem; margin-bottom: 2.5rem; }

.about__body { font-size: 1.1rem; color: var(--color-text-secondary); max-width: 480px; }

@media (min-width: 768px) {
  .about__body { max-width: 100%; }
}

.about__image { width: 100%; height: 65vh; object-fit: cover; border-radius: 4px; }

@media (max-width: 640px) {
  .about__image { height: 427px; }
}

.who-we-are__subheading { font-size: clamp(1.4rem, 2.5vw, 2rem); margin-bottom: 2rem; }

.who-we-are__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem 1.5rem;
}

.who-we-are__item { margin: 0; }

.who-we-are__image {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 4px;
}

.who-we-are__caption {
  margin-top: 0.75rem;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--color-text-primary);
}

@media (max-width: 991px) {
  .who-we-are__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  .who-we-are__grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .who-we-are__caption { font-size: 0.95rem; }
}


/* =====================================================================
   9. 02 — SERVICES (2-column image blocks)
   ===================================================================== */

.services__intro { flex-basis: 100%; color: var(--color-text-secondary); max-width: 49%; margin-left: auto; }

@media (max-width: 769px)  { .services__intro { max-width: 100%; } }
@media (min-width: 1500px) { .services__intro { max-width: 49%; } }

.services__grid { display: grid; gap: 1.75rem; padding-top: 1rem; }
.services__image { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 4px; }
.services__item { margin: 0; }
.services__caption { margin-top: 1rem; }
.services__caption h3 { font-size: 1.15rem; margin-bottom: 0.5rem; }
.services__caption p { color: var(--color-text-secondary); font-size: 0.95rem; }


/* =====================================================================
   10. 03 — WHY NGC (static list)
   ===================================================================== */

.why-ngc { display: flex; flex-direction: row; }
.why-ngc__list { display: grid; gap: 2rem; max-width: 49%; margin-left: auto; }
.why-ngc__item h3 { font-size: 1.2rem; margin-bottom: 0.6rem; }
.why-ngc__item p { color: var(--color-text-secondary); }

@media (max-width: 768px) {
  .why-ngc { flex-direction: column; }
  .why-ngc__list { max-width: 100%; }
}


/* =====================================================================
   11. 04 — INDUSTRIES
   ===================================================================== */

.industries__grid { display: grid; gap: 2rem; padding-top: 1rem; }
.industries__title { font-size: 1.1rem; margin-bottom: 1rem; }
.industries__image { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 4px; }


/* =====================================================================
   12. 05 — VISION & MISSION (flexbox layout)
   ===================================================================== */

.vision__flex-container { display: flex; flex-direction: column; gap: 2rem; }
.vision__content-stack { display: flex; flex-direction: column; gap: 2.5rem; flex: 1; }

.vision__item-title {
  font-family: var(--font-heading);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--color-text-primary);
  margin-bottom: 0.5rem;
}

.vision__item-body {
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--color-text-secondary);
  line-height: 1.2;
  max-width: 620px;
}

@media (min-width: 768px) {
  .vision__flex-container { flex-direction: row; justify-content: space-between; align-items: flex-start; gap: 16px; }
  .vision__header-block { flex: 0 0 50%; top: 4rem; }
  .vision__content-stack { flex: 0 0 50%; }
}

@media (max-width: 768px) {
  .vision__flex-container { flex-direction: column; justify-content: space-between; align-items: flex-start; }
  .vision__content-stack { flex: 0 0 60%; }
  .vision__header-block { flex: 0 0 40%; }
}


/* =====================================================================
   13. 06 — CLIENTS (seamless infinite drag & autoplay carousel)
   ===================================================================== */

.clients__grid {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  position: relative;
  padding: 1.5rem 0;
  margin-bottom: 3.5rem;
  cursor: grab;
  user-select: none;
  scrollbar-width: none;
}

.clients__grid::-webkit-scrollbar { display: none; }
.clients__grid:active { cursor: grabbing; }

.clients__marquee-track { display: flex; align-items: center; gap: 5rem; width: max-content; }
.clients__logo { display: flex; align-items: center; justify-content: center; flex-shrink: 0; }

.clients__logo img {
  height: 48px;
  width: auto;
  max-width: 150px;
  object-fit: contain;
  pointer-events: none; /* prevents native ghost-image drag */
  transition: filter var(--duration-fast) var(--ease-standard);
}

.clients__logo img:hover { filter: grayscale(0) opacity(1); }

@media (max-width: 767px) {
  .clients__marquee-track { gap: 3.5rem; }
  .clients__logo img { height: 38px; max-width: 120px; }
}


/* =====================================================================
   14. DOWNLOAD
   ===================================================================== */

/* Title style shared with Contact Us / Get in Touch, see §15/§16 */
.download__title,
.contact__title,
.get-in-touch__title {
  font-size: clamp(2rem, 3.5vw, 2.5rem);
  color: var(--color-brand-orange);
  margin-bottom: 2rem;
  font-family: var(--font-heading);
  font-weight: 600;
}

.download__grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; align-items: center; }

@media (min-width: 768px) {
  .download__grid { grid-template-columns: 1fr 1fr; }
}

.download__text { font-size: 1.1rem; color: var(--color-text-secondary); margin-bottom: 1.5rem; line-height: 1.5; }

.download__button {
  display: block;
  width: 100%;
  max-width: 220px;
  background-color: var(--color-brand-blue);
  color: #ffffff;
  padding: 0.85rem 1.5rem;
  font-weight: 600;
  font-size: 0.95rem;
  border-radius: 4px;
  text-align: center;
  transition: opacity 0.2s ease;
}

.download__button:hover { opacity: 0.9; }

/* MacBook-styled preview card */
.download__card-wrap {
  background: #ffffff;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
}

@media (min-width: 768px) and (max-width: 2560px) {
  .download__card-wrap { position: relative; height: 320px; }
}

.macbook-window-bar {
  background: #f5f5f7;
  border-bottom: 1px solid var(--color-border);
  padding: 0.6rem 0.8rem;
  display: flex;
  gap: 0.4rem;
  align-items: center;
}

.macbook-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.macbook-dot--red { background-color: #ff5f56; }
.macbook-dot--yellow { background-color: #ffbd2e; }
.macbook-dot--green { background-color: #27c93f; }

.download__card-inner { padding: 4rem 2rem; display: flex; align-items: center; justify-content: center; }
.download__card-img { max-width: 200px; width: 100%; height: auto; }


/* =====================================================================
   15. CONTACT US
   ===================================================================== */

.contact { display: flex; flex-direction: row; }

@media (min-width: 768px) {
  .contact__grid { display: grid; grid-template-columns: 1fr; gap: 2rem; max-width: 49%; margin-left: auto; }
}

@media (min-width: 1024px) {
  .contact__grid { grid-template-rows: repeat(2, 1fr); margin-left: auto; width: 50%; }
}

.contact__value { display: block; font-size: 1.35rem; font-weight: 600; color: var(--color-text-primary); }
.contact__value:hover { color: var(--color-brand-blue); }
.contact__label { margin-top: 0.35rem; font-size: 0.9rem; color: var(--color-text-secondary); }


/* =====================================================================
   16. GET IN TOUCH (form)
   ===================================================================== */

.get-in-touch { display: flex; flex-direction: row; }

.get-in-touch__form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  max-width: 50%;
  width: 100%;
  margin-left: auto;
}

/* Stack Contact Us + Get in Touch into a single column on mobile */
@media (max-width: 768px) {
  .get-in-touch { flex-direction: column; }
  .get-in-touch__form { max-width: 100%; }
  .contact { flex-direction: column; }
  .contact__grid { display: grid; grid-template-columns: 1fr; gap: 2rem; max-width: 100%; }
}

.form__input {
  width: 100%;
  padding: 0.9rem 1.1rem;
  border: 1px solid var(--color-border);
  border-radius: 4px;
  font-size: 1rem;
  color: var(--color-text-primary);
  font-family: inherit;
  background-color: transparent;
  transition: border-color 0.2s ease;
}

.form__input:focus { outline: none; border-color: var(--color-brand-blue); }
.form__textarea { resize: vertical; min-height: 120px; }

.form__submit-btn {
  background-color: var(--color-brand-blue);
  color: #ffffff;
  padding: 0.9rem 2.5rem;
  font-weight: 600;
  font-size: 1rem;
  border: none;
  width: 100%;
  max-width: 220px;
  border-radius: 4px;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.form__submit-btn:hover { opacity: 0.9; }


/* =====================================================================
   17. FOOTER
   ===================================================================== */

.site-footer { padding: 60px 5%; background: var(--color-bg); border-top: 1px solid var(--color-border); }
.site-footer__main { display: flex; align-items: flex-start; gap: 40px; margin-bottom: 40px; }
.site-footer__right { display: flex; flex-direction: column; gap: 20px; }

.site-footer__nav { display: flex; gap: 25px; flex-wrap: wrap; }
.site-footer__nav a { font-weight: 600; font-size: 1.1rem; color: var(--color-text-primary); }
.site-footer__nav a:hover { color: var(--color-text-active); }

.site-footer__utility { display: flex; gap: 25px; align-items: center; }
.site-footer__utility a { font-size: 1rem; color: var(--color-text-primary); }
.site-footer__utility a:hover { color: var(--color-text-active); }

.site-footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
  border-top: 1px solid var(--color-border);
  padding-top: 25px;
  font-size: 0.85rem;
}

.site-footer__legal { display: flex; align-items: center; gap: 15px; }
.site-footer__legal a { text-decoration: none; cursor: pointer; color: var(--color-text-secondary); }

.site-footer__social-bottom { display: flex; align-items: center; gap: 20px; }

.social-svg { width: 20px; height: 20px; fill: var(--color-text-secondary); transition: 0.3s; display: block; }
.social-link:hover .social-svg { fill: var(--color-brand-teal); transform: scale(1.1); }

@media (max-width: 524px) {
  .site-footer__main { flex-direction: column; align-items: flex-start; }
  .site-footer__right { align-items: flex-start; width: 100%; }
  .site-footer__nav { flex-direction: column; align-items: flex-start; gap: 15px; }
  .site-footer__utility { flex-direction: column; align-items: flex-start; gap: 15px; margin-top: 15px; }
  .site-footer__social-bottom { justify-content: flex-start; margin-top: 15px; }
  .site-footer__bottom { text-align: left; }
  .site-footer__nav a { display: block; }
  .site-footer__utility a { font-size: 1.1rem; display: block; }
}

@media (min-width: 525px) and (max-width: 900px) {
  .site-footer__main { flex-direction: row; align-items: center; text-align: center; }
  .site-footer__right { align-items: center; }
  .site-footer__nav, .site-footer__utility { justify-content: center; }
  .site-footer__social-bottom { justify-content: center; margin-top: 15px; }
  .site-footer__bottom { gap: 10px; text-align: center; }
  .site-footer__nav a { font-size: 0.8rem; }
  .site-footer__utility a { font-size: 0.8rem; }
}


/* =====================================================================
   18. BACK-TO-TOP BUTTON
   ===================================================================== */

.btt-btn {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  border: none;
  border-radius: 50px;
  padding: 12px 20px;
  opacity: 0.2;
  pointer-events: none;
  transform: translateY(20px);
  background-color: #000000;
  color: #ffffff;
  transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.btt-btn__icon {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  stroke-width: 3px;
  fill: none;
  display: block;
}

.dark .btt-btn { background-color: #ffffff; color: #000000; }
.dark .btt-btn:hover { color: #ffffff; }

.btt-btn.is-active { opacity: 0.6; pointer-events: auto; transform: translateY(0); }

.btt-btn:hover {
  opacity: 1 !important;
  transform: translateY(-5px);
  background-color: var(--color-brand-orange);
  color: #ffffff;
}

@media (min-width: 1024px) {
  .btt-btn { padding: 16px 32px; bottom: 40px; right: 40px; }
}