/* ============================================================
   FUTUREMATION CONSTRUCTION — STYLES (FULL - Option B: 350px)
   Updated: Gallery sections now display side-by-side
============================================================ */

/* ---------- VARIABLES ---------- */
:root{
  --primary: #003366;
  --secondary: #00a8e8;
  --accent: #ff6b35;
  --light: #f8f9fa;
  --dark: #071022;
  --bg: #ffffff;
  --text: #212529;
  --muted: #6c757d;
  --max: 1200px;
  --radius: 10px;
  --card-shadow: 0 6px 20px rgba(0,0,0,0.08);
  --glass: rgba(255,255,255,0.6);
  --gap-lg: 24px;
  --gap-md: 16px;
  --gap-sm: 10px;
}

[data-theme="dark"]{
  --bg: #071022;
  --text: #e6eef6;
  --muted: #9fb3c8;
  --primary: #89c2ff;
  --card-shadow: 0 8px 28px rgba(0,0,0,0.55);
  --glass: rgba(10,18,32,0.6);
}

/* ---------- GLOBAL ---------- */
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  background:var(--bg);
  color:var(--text);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  scroll-behavior:smooth;
}
.container{
  width:92%;
  max-width:var(--max);
  margin:0 auto;
  padding:18px 0;
}
h1,h2,h3{line-height:1.15}
h2{
  text-align:center;
  color:var(--primary);
  margin-bottom:20px;
}

/* ============================================================
   HEADER
============================================================ */
.site-header{
  background:var(--primary);
  position:fixed;
  top:0; left:0; right:0;
  border-bottom:2px solid var(--secondary);
  z-index:999;
}
.header-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:12px 18px;
}
.logo{color:#fff;font-size:1.25rem;font-weight:700;text-decoration:none}
.logo span{color:var(--secondary)}
.nav{display:flex;align-items:center;gap:14px}
.nav a{color:#fff;margin-left:8px;text-decoration:none;font-weight:600}
.mobile-toggle{display:none;background:none;border:0;color:#fff;font-size:1.2rem}
.theme-toggle{
  background:transparent;border:1px solid rgba(255,255,255,0.12);
  padding:6px;border-radius:8px;color:#fff;
}

/* ============================================================
   HERO
============================================================ */
.hero{
  background:
    linear-gradient(rgba(0,51,102,0.25), rgba(0,51,102,0.45)),
    url('https://images.unsplash.com/photo-1513584684374-8bab748fbf90?w=2000&q=60') center/cover no-repeat;
  color:#fff;text-align:center;padding:140px 0 80px;
}
.hero h1{font-size:2.6rem;margin-bottom:8px}
.hero p{max-width:900px;margin:0 auto 14px}
.btn{display:inline-block;padding:10px 18px;border-radius:10px;text-decoration:none;font-weight:700}
.btn-accent{background:var(--accent);color:#fff}

/* ============================================================
   SECTIONS
============================================================ */
.section{padding:80px 0}
.section.light{background:var(--light)}
@media (max-width:900px){ .section{padding:48px 0} }

/* ============================================================
   SERVICES
============================================================ */
.services-buttons-grid,
#servicesContainer,
#servicesButtons {
  display:flex;
  flex-wrap:wrap;
  gap:var(--gap-md);
  justify-content:center;
  padding-top:12px;
}

.service-button{
  display:flex;align-items:center;gap:14px;
  padding:16px 18px;background:#fff;border-radius:12px;
  border:1px solid rgba(0,0,0,0.06);
  min-width:220px; max-width:320px; flex:1 1 calc(25% - 24px);
  box-shadow:var(--card-shadow); cursor:pointer; transition:transform .18s ease,box-shadow .18s ease;
}
[data-theme="dark"] .service-button{
  background:#0c1728;border-color:rgba(255,255,255,0.06);
}
.service-button:hover{transform:translateY(-6px);box-shadow:0 12px 30px rgba(0,0,0,0.12)}
.service-button-icon{
  width:56px;height:56px;border-radius:10px;background:var(--secondary);display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;
  flex-shrink:0;box-shadow:0 6px 18px rgba(0,0,0,0.12);
}
.service-button-info h3{margin:0;font-size:1.05rem;color:var(--primary)}
.service-button-info p{margin:4px 0 0;color:var(--muted);font-size:.92rem}

@media (max-width:1000px){ .service-button{flex:1 1 calc(33.333% - 20px)} }
@media (max-width:700px){ .service-button{flex:1 1 calc(50% - 16px)} }
@media (max-width:480px){ .service-button{flex:1 1 100%} }

/* ============================================================
   GALLERIES — SIDE-BY-SIDE GRID ✔ FIXED
============================================================ */

/* gallery grid — THIS IS THE FIX */
.galleries-row{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(420px, 1fr));
  gap:24px;
  margin-top:18px;
}

/* each gallery card */
.gallery-section{
  background:var(--bg);
  border-radius:12px;
  padding:18px;
  box-shadow:0 6px 20px rgba(0,0,0,0.04);
}

/* title */
.carousel-title{
  font-size:1.35rem;
  font-weight:700;
  margin-bottom:14px;
  color:var(--primary);
  border-left:4px solid var(--primary);
  padding-left:12px;
}

/* carousel container */
.carousel-container{
  position:relative;
  border-radius:10px;
  overflow:hidden;
  background:#f6f7f9;
  height:350px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px;
}

/* images */
.carousel-container img{
  max-width:92%;
  max-height:92%;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:6px;
  transition:transform .28s ease;
  cursor:zoom-in;
}
.carousel-container img:hover{ transform:scale(1.02) }

/* nav buttons */
.carousel-btn{
  position:absolute;top:50%;transform:translateY(-50%);
  background:rgba(0,51,102,0.85);color:#fff;border:0;
  width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:18px;cursor:pointer;z-index:10;transition:transform .15s ease,background .15s ease;
}
.carousel-btn:hover{ transform:translateY(-50%) scale(1.05); background:rgba(0,51,102,1) }
.carousel-btn.left{ left:14px }
.carousel-btn.right{ right:14px }

/* badges */
.carousel-counter,
.carousel-info{
  position:absolute;bottom:12px;right:12px;
  background:rgba(0,0,0,0.6);color:#fff;padding:6px 10px;border-radius:18px;font-size:13px;font-weight:600;
}
.carousel-info{ right:auto; left:12px }

/* ============================================================
   RECENT PROJECTS
============================================================ */
.projects-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap:22px;
  margin-top:12px;
}

.project-card{
  background: #fff;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 6px 22px rgba(0,0,0,0.06);
  transition:transform .22s ease, box-shadow .22s ease;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  height:250px;
}
.project-card:hover{ transform:translateY(-6px); box-shadow:0 12px 34px rgba(0,0,0,0.12) }

.project-carousel-title{
  padding:12px 14px;font-weight:700;color:var(--primary);background:#fafafa;border-bottom:1px solid #eee;
}
.project-card img{
  width:100%;
  height:160px;
  object-fit:cover;
}

/* ============================================================
   MODALS + QUOTES
============================================================ */
.modal{
  position:fixed;inset:0;display:none;justify-content:center;align-items:center;background:rgba(0,0,0,0.55);z-index:9999;padding:20px;
}
.modal[aria-hidden="false"]{ display:flex }
.modal-content{
  background:var(--bg);width:100%;max-width:680px;border-radius:14px;padding:22px;box-shadow:0 18px 45px rgba(0,0,0,0.25);overflow:auto;
}

.request-modal{ animation:fadeIn .22s ease-out }
@keyframes fadeIn{ from{opacity:0;transform:scale(.98)} to{opacity:1;transform:scale(1)} }

/* ============================================================
   FLOATING BUTTONS
============================================================ */
.floating-cta{ position:fixed; bottom:120px; right:20px; background:var(--accent); color:#fff; padding:12px 16px; border-radius:50px; font-weight:700; text-decoration:none; z-index:999 }
.whatsapp-btn{ position:fixed; bottom:40px; right:22px; width:56px; height:56px; background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; border-radius:50%; box-shadow:0 8px 24px rgba(0,0,0,0.18); z-index:999 }

/* ============================================================
   PRELOADER + ANIMATIONS
============================================================ */
#preloader{ position:fixed; inset:0; display:flex; align-items:center; justify-content:center; background:var(--bg); z-index:99999 }
#preloader.hidden{ opacity:0; visibility:hidden; pointer-events:none; transition:opacity .4s }

.reveal{ opacity:0; transform:translateY(18px); transition:all .7s cubic-bezier(.2,.9,.3,1) }
.reveal.visible{ opacity:1; transform:none }

/* responsive tweaks */
@media (max-width:900px){
  .mobile-toggle{ display:block }
  .nav{ display:none; position:absolute; top:64px; right:18px; background:var(--primary); padding:16px; border-radius:8px; flex-direction:column }
  .nav a{ margin:8px 0; color:#fff; }
  .hero{ padding:100px 0 60px }
}
@media (max-width:480px){
  .carousel-container{ height:250px }
  .carousel-btn{ width:34px; height:34px; font-size:16px }
}

/* small utility */
.text-muted{ color:var(--muted) }
.center{ text-align:center }

/* ============================================================
   End of CSS
============================================================ */
/* CROSSFADE CAROUSEL */
.carousel-container {
  position: relative;
}

.carousel-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: opacity 0.8s ease-in-out;
  opacity: 0;
}

.carousel-img.visible {
  opacity: 1;
}
/* -------------------------------------------------------
   SERVICE REQUEST MODAL — Modern Redesign
------------------------------------------------------- */
#quoteToolContainer {
  padding: 30px;
  background: var(--dark);
  color: #fff;
  border-radius: 18px;
  box-shadow: 0 12px 40px rgba(0,0,0,0.45);
  max-width: 700px;
  width: 100%;
  margin: auto;
}

.request-title {
  text-align: center;
  font-size: 1.8rem;
  font-weight: 800;
  color: var(--secondary);
  margin-bottom: 20px;
}

/* FORM GRID */
.request-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.request-form-grid label {
  font-size: 0.95rem;
  font-weight: 600;
  margin-bottom: 4px;
  display: block;
}

.request-form-grid input,
.request-form-grid select,
.request-form-grid textarea {
  width: 100%;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid #cccccc50;
  background: #fff;
  font-size: 0.95rem;
  color: #222;
}

/* TEXTAREA SPANS FULL WIDTH */
.request-form-grid textarea {
  grid-column: 1 / 3;
  min-height: 120px;
  resize: vertical;
}

/* FILE UPLOADER */
.file-upload-label {
  grid-column: 1 / 3;
  font-weight: 600;
  margin-top: 5px;
}

.request-buttons {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 20px;
}

.request-buttons .btn {
  padding: 10px 20px;
  border-radius: 10px;
  cursor: pointer;
  font-weight: 700;
}

.request-buttons .submit-btn {
  background: var(--accent);
  color: #fff;
  border: none;
}

.request-buttons .cancel-btn {
  background: #fff;
  color: #222;
  border: 1px solid #ddd;
}

@media (max-width: 600px) {
  .request-form-grid {
    grid-template-columns: 1fr;
  }
  .request-form-grid textarea,
  .file-upload-label {
    grid-column: 1 / 2;
  }
}

