:root {
  --bg:#fff; --text:#0f172a; --muted:#475569;
  --primary:#0ea5e9; --primary-600:#0284c7; --accent:#10b981;
  --card:#f8fafc; --line:#e2e8f0;
}

/* ------------------------------
   Reset & Base
-------------------------------*/
* { box-sizing: border-box }
html,body {
  margin: 0; padding: 0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--text); background: var(--bg);
}
img { max-width: 100%; height: auto; display: block }
a { color: var(--primary-600); text-decoration: none }

/* ------------------------------
   Layout helpers
-------------------------------*/
.container { width: min(1120px, 92vw); margin: auto }
.row { display: flex; gap: 1rem; align-items: center }
.between { justify-content: space-between }
.grid { display: grid; gap: 1.5rem }
.grid.two { grid-template-columns: repeat(2,1fr) }
.grid.three { grid-template-columns: repeat(3,1fr) }
.grid.four { grid-template-columns: repeat(4,1fr) }
@media(max-width:900px){ .grid.two,.grid.three,.grid.four { grid-template-columns:1fr } }

/* ------------------------------
   Accessibility
-------------------------------*/
.skip-link {
  position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden
}
.skip-link:focus {
  left:1rem; top:1rem; width:auto; height:auto;
  background:#fff; padding:.5rem 1rem;
  border:1px solid var(--line); border-radius:.5rem; z-index:1000
}

/* ------------------------------
   Buttons
-------------------------------*/
.btn {
  display:inline-block; background:var(--primary); color:#fff;
  padding:.8rem 1.1rem; border-radius:.75rem; font-weight:700; transition:.3s
}
.btn:hover { background:var(--primary-600) }
.btn.outline { background:transparent; color:var(--primary); border:2px solid var(--primary) }
.btn.sm { padding:.5rem .8rem; font-size:.9rem }

/* ------------------------------
   Topbar & Navbar
-------------------------------*/
.topbar {
  background:var(--card); border-bottom:1px solid var(--line);
  font-size:.9rem;
}
.topbar .contact { display:flex; gap:1rem }

.navbar {
  position:sticky; top:0;
  background:#ffffffcc; backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
  z-index:50; transition:.3s;
}
.navbar.scrolled { background:#fff; box-shadow:0 2px 10px rgba(0,0,0,.08) }
.brand { font-weight:800; font-size:1.25rem; color:var(--text) }
.brand span { color:var(--primary) }

/* ------------------------------
   Menu
-------------------------------*/
.menu { list-style:none; margin:0; padding:0; display:flex; gap:1.25rem }
.menu a {
  display:block; padding:1rem .75rem; font-weight:500;
  border-bottom:2px solid transparent; transition:.3s
}
.menu a:hover,.menu a.active {
  color:var(--primary); border-color:var(--primary); font-weight:600
}
.burger { display:none; font-size:1.5rem; background:none; border:0 }
@media(max-width:900px){
  .burger { display:block }
  .menu {
    position:absolute; inset:60px 0 auto; background:#fff;
    flex-direction:column; border-bottom:1px solid var(--line); display:none
  }
  .menu.open { display:flex }
  .mobile-cta { padding:0 1rem 1rem }
}

/* ------------------------------
   Hero
-------------------------------*/
.hero {
  position:relative; height:90vh;
  display:flex; align-items:center;
  color:#fff; text-align:left;
  padding:3rem 0 1rem; border-bottom:1px solid var(--line);
}
.hero-media { position:absolute; inset:0; z-index:0 }
.hero-media img { width:100%; height:100%; object-fit:cover }
.hero::after {
  content:""; position:absolute; inset:0;
  background:rgba(0,0,0,.45); z-index:1;
}
.hero .container {
  position:relative; z-index:2;
  display:grid; grid-template-columns:1.2fr .8fr; gap:2rem; align-items:center;
}
.hero h1 { font-size:clamp(2.5rem,6vw,4rem); margin:0 0 1rem }
.hero p { font-size:1.25rem; margin:0 0 2rem; color:#f1f5f9 }
@media(max-width:900px){ .hero .container{ grid-template-columns:1fr } }

/* ------------------------------
   Sections
-------------------------------*/
section { padding:2.5rem 0 }
.intro { border-block:1px solid var(--line) }

/* Features */
.features h2 { font-size:1.6rem; margin:.25rem 0 1rem }
.features h2 span { color:var(--primary) }

/* ------------------------------
   Card system (unified)
-------------------------------*/
.card {
  background:#fff; color:#222;
  border:1px solid #ddd; border-radius:12px;
  padding:1.5rem; text-align:center;
  box-shadow:0 2px 6px rgba(0,0,0,0.08);
  transition:transform .3s ease, box-shadow .3s ease;
  display:flex; flex-direction:column; justify-content:flex-start;
}
.card:hover { transform:translateY(-5px); box-shadow:0 6px 18px rgba(0,0,0,.15) }

.card img {
  width:100%; height:200px;
  object-fit:cover; border-radius:8px; margin-bottom:1rem;
}
.card h3 {
  font-size:1.25rem; margin:.75rem 0 .5rem;
  display:flex; align-items:center; justify-content:center;
}
.card p { font-size:.95rem; line-height:1.5; flex-grow:1; }

/* Variants */
.card.dark { background:#111; color:#fff }
.card.circle-img img {
  width:120px; height:120px; border-radius:50%;
  object-fit:cover; margin:0 auto 1rem;
}
.card.about { border:1px solid #eee; box-shadow:0 2px 8px rgba(0,0,0,0.12) }

/* ------------------------------
   KPI Boxes
-------------------------------*/
.kpis { display:grid; gap:1rem; justify-items:center }
.kpi {
  display:grid; place-items:center;
  background:var(--card); border:1px solid var(--line); border-radius:1rem;
  padding:2rem; min-width:160px; min-height:160px;
}
.kpi span { font-size:3rem; font-weight:800 }
.kpi small { color:var(--muted); text-align:center; display:block }

/* ------------------------------
   Brands & Logos
-------------------------------*/
.brand-row { display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; align-items:center }
@media(max-width:900px){ .brand-row{grid-template-columns:repeat(2,1fr)} }
.brand-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:1rem }
@media(max-width:900px){ .brand-grid{grid-template-columns:repeat(3,1fr)} }
.brand img { height:50px; width:auto; display:block }

/* ------------------------------
   CTA Banner
-------------------------------*/
.cta-banner {
  background:var(--card); border:1px solid var(--line);
  border-radius:1rem; padding:1.25rem; margin:2rem 0
}

/* ------------------------------
   Page Hero
-------------------------------*/
.page-hero {
  background:linear-gradient(135deg, #50759c, #1b263b);
  color:#fff; text-align:center; padding:80px 20px;
  margin-bottom:1.5rem;
}
.page-hero h1 {
  font-size:2.5rem; font-weight:700; margin:0;
  text-transform:uppercase; letter-spacing:2px;
}

/* ------------------------------
   Lists / Ticks
-------------------------------*/
.ticks { list-style:none; padding:0 }
.ticks li {
  padding-left:1.25rem; position:relative;
  margin:.35rem 0; color:var(--muted);
}
.ticks li::before {
  content:"✓"; position:absolute; left:0;
  color:var(--accent); font-weight:800;
}




/* ------------------------------
   Floating Button with WhatsApp Icon
-------------------------------*/
/* ------------------------------
   Floating Button with WhatsApp Icon
-------------------------------*/
.whatsapp {
  position: fixed;
  right: 0;                      /* lock to screen edge */
  bottom: 1rem;
  transform: translateX(-1rem);  /* shift left without overflow */
  background: #25D366;
  color: #fff;
  padding: .8rem 1.2rem;
  border-radius: 999px;
  font-weight: 700;
  box-shadow: 0 5px 20px rgba(0,0,0,.15);
  z-index: 10001;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1rem;
  text-decoration: none;
  white-space: nowrap;           /* stop wrapping in desktop-view zoom */
}

.whatsapp i {
  font-size: 1.3rem;
  line-height: 1;
}
.whatsapp span {
  font-size: 1rem;
  font-weight: 600;
}


/* ✅ Fix WhatsApp button only for mobile desktop view */
@media (max-width: 576px) {
  .whatsapp {
    right: 1rem;          /* keep inside screen */
    left: auto;           /* reset desktop left */
    transform: none;      /* remove shifting that caused overflow */
    max-width: calc(100% - 2rem); /* safe boundary */
  }

  html, body {
    overflow-x: hidden !important; /* kill the white strip */
  }

  footer {
    padding-bottom: 70px; /* prevent overlap with button */
  }
}


/* Smallest phones: compact button */
@media (max-width: 420px) {
  .whatsapp { padding: .6rem .9rem; font-size: .92rem; gap: .4rem; }
  .whatsapp i { font-size: 1.05rem; }
}



/* ------------------------------
   Carousel (logos scrolling)
-------------------------------*/
.carousel {
  overflow:hidden; max-width:1000px; margin:auto;
  border:1px solid #eee; border-radius:12px;
}
.scroller {
  display:flex; gap:1rem; align-items:center;
  animation:scroll 30s linear infinite;
}
.scroller .card {
  flex:0 0 auto; width:200px; height:120px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid #ddd; border-radius:12px;
  background:#fff; overflow:hidden;
}
.scroller .card img { max-width:100%; max-height:100%; object-fit:contain }
@keyframes scroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ------------------------------
   Page transition overlay (fixed)
-------------------------------*/
#page-transition {
  position: fixed;
  inset: 0;
  background: transparent;     /* invisible until activated */
  z-index: 9998;               /* sits above page but below dev tools */
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s ease, background 0.35s ease;
}

/* When you add .active, the overlay fades in as a subtle dark layer */
#page-transition.active {
  background: rgba(0,0,0,0.55); /* semi-black overlay — adjust opacity if needed */
  opacity: 1;
  pointer-events: all;
}

/* ------------------------------
   Contact Form
-------------------------------*/
/* --------------------
   Contact Form Styles
-------------------- */
/* ------------------------------
   Contact Form Styles
-------------------------------*/
.contact-form {
  background: #fff;
  padding: 2rem;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  max-width: 500px;
  margin: auto;
}

.contact-form label {
  display: block;
  margin-bottom: 1rem;
  font-weight: 600;
  color: var(--text);
}

.contact-form input,
.contact-form textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  margin-top: 0.35rem;
}

.contact-form input:focus,
.contact-form textarea:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.2);
}

.contact-form button {
  display: inline-block;
  background: var(--primary);
  color: #fff;
  border: none;
  padding: 0.85rem 1.5rem;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s;
}

.contact-form button:hover {
  background: var(--primary-600);
}

.contact-form .form-note {
  margin-top: 1rem;
  font-size: 0.9rem;
  color: var(--muted);
}

.features .card img {
  height: 200px;
  object-fit: cover;
  border-radius: 8px;
}

/* Brand (logo + text) */
.brand {
  display: flex !important;
  flex-direction: row !important;  /* Keep logo and text in one row */
  align-items: center !important;  /* Vertically center text */
  gap: 0.5rem;
  text-decoration: none;
  color: inherit;
  flex-shrink: 0;
  flex-wrap: nowrap;               /* Prevent wrapping */
}

.brand img {
  display: block;
  max-height: 48px;
  width: auto;
  flex-shrink: 0;                  /* Prevent logo from shrinking */
}

.brand-text {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--primary);
  line-height: 1;
  white-space: nowrap;             /* Prevent breaking into multiple lines */
}

/* Mobile adjustment */
@media (max-width: 640px) {
  .brand img { max-height: 36px; }   /* slightly smaller logo */
  .brand-text { font-size: 0.95rem; }
}

/* ------------------------------
   Footer (Charcoal Version + Grid + Responsive)
-------------------------------*/
.footer {
  border-top: 1px solid #444;
  padding: 2rem 0;
  background: #2c2c2c;
  color: #f1f1f1;

  /* Prevent overlap / squashing */
  clear: both;
  position: relative;
}

.footer h4 {
  margin: .25rem 0 1rem;
  color: #fff;
  font-weight: 700;
}

.footer p {
  font-size: 0.95rem;
  color: #ddd;
  line-height: 1.6;
}

.footer .list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer .list li {
  margin: .35rem 0;
  color: #ddd;
}

.footer .list li a {
  color: #ccc;
  text-decoration: none;
  transition: color 0.2s ease;
}

.footer .list li a:hover {
  color: #fff;
}

/* Footer Grid Layout */
.footer .container.grid.three {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem; /* space between columns */
}

.footer .container.grid.three > div {
  min-width: 0; /* prevent overflow */
}

/* Copyright */
.copyright {
  border-top: 1px solid #444;
  margin-top: 2rem;
  padding-top: 1rem;
  color: #aaa;
  font-size: .9rem;
  text-align: center;
}

/* Responsive: stack nicely */
@media (max-width: 991px) {
  .footer .container.grid.three {
    grid-template-columns: 1fr 1fr; /* 2 columns on tablets */
  }
}

@media (max-width: 600px) {
  .footer .container.grid.three {
    grid-template-columns: 1fr; /* 1 column on small screens */
  }
  .footer {
    text-align: center; /* center align for mobile */
  }
}


.page-hero {
  background: url('../img/main.webp') no-repeat center center; /* correct path */
  background-size: cover; /* ensures the image fills the section */
  color: #fff;
  text-align: center;
  padding: 120px 20px; /* adjust hero height */
  margin-bottom: 1.5rem;
  position: relative;
  display: flex;
  align-items: center; /* vertically center content */
  justify-content: center;
  min-height: 400px; /* ensures minimum height */
}

.page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4); /* overlay for text readability */
  z-index: 1;
}

.page-hero h1 {
  position: relative;
  z-index: 2; /* ensures heading is above overlay */
  font-size: 2.5rem;
  font-weight: 700;
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 2px;
}

/* Fix long email & text overflow */
footer, footer a, footer li, footer p {
  white-space: normal !important;
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
  max-width: 100% !important;
}

/* Body safeguard against horizontal scroll */
html, body {
  max-width: 100% !important;
  overflow-x: hidden !important;
}

/* Force footer sections to stack like mobile */
/* Stack footer columns on tablets & phones (also helps desktop-site mode) */
@media (max-width: 1024px), (max-device-width: 768px) {
  .footer .container.grid.three {
    grid-template-columns: 1fr !important; /* single column */
    text-align: center; /* ✅ center headings & text */
  }

  .footer .container.grid.three > div {
    width: 100% !important;
    margin-bottom: 1.5rem;
  }
}
/* Desktop-only: make the form appear on a new line */
@media (min-width: 1025px) {
  .footer .container.grid.three {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: auto auto; /* allow second row */
  }

  #quote {
    grid-column: 1 / -1;  /* make form span full width */
    margin-top: 2rem;     /* spacing from top */
    text-align: center;   /* center the heading */
  }

  #quote form {
    max-width: 600px;     /* keep form neat */
    margin: 0 auto;       /* center the form */
    text-align: left;     /* align labels + inputs properly */
  }
}
