/* Google Font */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700&display=swap');

/* Base */
:root{
  --bg:#f9f9f9;
  --text:#222;
  --muted:#666;
  --black:#111;
  --accent:#2a7a2e;        /* brand green */
  --accent-hover:#256525;  /* darker green */
  --card:#ffffff;
  --border:#eaeaea;
  --highlight:#ffd700;     /* gold for hover/active */
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  font-family:'Montserrat',sans-serif;
  line-height:1.6;
  color:var(--text);
  background:var(--bg);
  margin:0;
}

/* Layout helpers */
.container{width:100%;max-width:1100px;margin:0 auto;padding:0 16px}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:12px}
.section{padding:3rem 1rem}
.alt{background:#fff}
.narrow{max-width:700px;margin:0 auto}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}

/* Grid and cards */
.grid{display:grid;gap:1.5rem}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:12px;
  padding:1rem;
  box-shadow:0 2px 10px rgba(0,0,0,.04);
}
.card img{display:block;width:100%;height:auto;border-radius:8px}

/* Navigation */
header{
  background:var(--accent); /* green header */
  position:sticky;
  top:0;
  z-index:1000;
}
nav ul{
  list-style:none;
  display:flex;
  justify-content:center;
  gap:2rem;
  padding:1rem;
  margin:0;
}
nav a{
  color:#fff;               /* white links */
  text-decoration:none;
  font-weight:600;
  transition:color .3s ease;
}
nav a:hover,
nav a.active{color:var(--highlight)} /* gold for hover/active */
#menu-toggle{
  display:none;
  font-size:2rem;
  background:none;
  border:none;
  color:#fff;
  cursor:pointer;
}

/* Hero */
.hero{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:70vh;
  text-align:center;
  color:#fff;
  background:
    linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,.6)),
    url('../images/atv-background.jpg') center/cover no-repeat;
  padding:2rem;
}
.hero img{max-width:180px;margin-bottom:1rem}
.hero h1{
  font-size:3rem;
  font-weight:700;
  margin:0 0 .75rem 0;
}
.hero p{
  font-size:1.2rem;
  margin:0 0 2rem 0;
  max-width:700px;
  color:#f1f1f1;
}

/* Buttons */
.btns{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}
.btn{
  display:inline-block;
  padding:.9rem 1.8rem;
  background:var(--accent);       /* green buttons */
  color:#fff;                     /* white text */
  font-weight:600;
  border-radius:6px;
  text-decoration:none;
  transition:all .3s ease;
  border:0;
  cursor:pointer;
}
.btn:hover{background:var(--accent-hover);transform:translateY(-3px)}
.btn-sm{padding:.6rem 1rem;font-size:.9rem}

/* Forms and inputs */
input[type="text"],input[type="tel"],input[type="email"],
textarea,select{
  width:100%;
  padding:.8rem 1rem;
  border:1px solid var(--border);
  border-radius:8px;
  background:#fff;
  color:var(--text);
  font-family:inherit;
}
label{display:flex;flex-direction:column;gap:.4rem;font-weight:600;color:var(--muted)}
.form{background:#fff;border:1px solid var(--border);border-radius:12px;padding:1.25rem}

/* Products */
.product{padding:0}
.product .product-body{padding:1rem}
.product .specs{list-style:none;padding:0;margin:.5rem 0 1rem 0;color:var(--muted)}
.product .price{font-weight:700}

/* Product gallery inside cards */
.product-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  gap: 8px;
  margin-bottom: 1rem;
}
.product-gallery img {
  width: 100%;
  height: 120px;
  object-fit: cover;
  border-radius: 6px;
  cursor: pointer;
  transition: transform .3s ease;
}
.product-gallery img:hover {
  transform: scale(1.05);
}

/* Service page image sizing */
.service-img{
  max-width:350px;
  width:100%;
  height:auto;
  border-radius:8px;
  margin:0 auto 12px;
  display:block;
}

/* Gallery */
.gallery{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:15px;
  max-width:1100px;
  margin:2rem auto;
}
.gallery img{
  width:100%;
  height:220px;
  object-fit:cover;
  border-radius:8px;
  cursor:pointer;
  transition:transform .3s ease;
}
.gallery img:hover{transform:scale(1.05)}
.gallery-video {
  width: 100%;
  height: 220px;
  object-fit: cover;
  border-radius: 8px;
  cursor: pointer;
}
.lightbox{
  display:none;
  position:fixed;
  z-index:2000;
  inset:0;
  background:rgba(0,0,0,.8);
  align-items:center;
  justify-content:center;
}
.lightbox img{max-width:90%;max-height:90%;border-radius:8px}

/* Footer */
footer{
  background:var(--accent);   /* green footer */
  color:#fff;                 /* white text */
  text-align:center;
  padding:2rem 1rem;
  margin-top:3rem;
}
footer img{margin-bottom:1rem}
footer p{margin:.3rem 0;font-size:.95rem}

/* Back to Top */
#backTop{
  position:fixed;
  bottom:20px;
  right:20px;
  background:var(--accent);
  color:#fff;
  font-size:1.5rem;
  padding:12px 16px;
  border-radius:50%;
  cursor:pointer;
  display:none;
  transition:background .3s ease,transform .2s ease;
  border:0;
}
#backTop:hover{background:var(--accent-hover);transform:translateY(-3px)}

/* Fade-in animation */
.fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1s ease, transform 1s ease;
}
.fade-in.appear {
  opacity: 1;
  transform: translateY(0);
}

/* Initial hero animation */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
.hero img,
.hero h1,
.hero p,
.hero .btns {
  opacity: 0;
  animation: fadeIn 1s ease forwards;
}
.hero img { animation-delay: 0.2s; }
.hero h1 { animation-delay: 0.5s; }
.hero p { animation-delay: 0.8s; }
.hero .btns { animation-delay: 1.1s; }

/* Utility */
h1,h2,h3,h4{margin:.2rem 0 .6rem 0}
p{margin:.4rem 0}
.link{font-weight:700;color:var(--accent);text-decoration:none;border-bottom:2px solid var(--highlight)}
.link:hover{color:var(--highlight)}

/* Responsive Adjustments */
@media (max-width:1024px){
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:768px){
  #menu-toggle{display:block;margin-left:1rem}
  nav ul{
    flex-direction:column;
    background:var(--accent);
    display:none;
    width:100%;
    padding:1rem 0;
  }
  nav ul.show{display:flex}
  nav ul li{text-align:center;margin:.5rem 0}
  .hero h1{font-size:2.2rem}
  .hero p{font-size:1rem}
  .grid-2,.grid-3{grid-template-columns:1fr}
}

/* Extra Mobile Optimizations */
@media (max-width:600px){
  nav ul{
    padding:0.5rem 0;
    gap:1rem;
  }
  nav a{
    font-size:1rem;
    padding:0.5rem;
    display:block;
  }
  .hero{
    min-height:60vh;
    padding:1.5rem;
  }
  .hero h1{font-size:1.6rem}
  .hero p{font-size:0.95rem}
}

@media (max-width:480px){
  .card{padding:0.75rem}
  .gallery{grid-template-columns:1fr;gap:12px}
  .product-gallery{grid-template-columns:repeat(2, 1fr);gap:6px}
  header img.logo{max-width:120px}
  header{padding:0.5rem 0}
  .lightbox img{max-width:95%;max-height:75%}
}
/* Repairs gallery images */
.repair-gallery img {
  width: 100%;              /* makes them fill the grid cell */
  height: 200px;            /* fixed height for consistency */
  object-fit: cover;        /* crops the image to fit without distortion */
  border-radius: 6px;       /* optional, matches card style */
  background: #f2f2f2;      /* fallback background */
}
/* Full-size Coming Soon image */
.coming-soon {
  width: 100%;
  height: auto;      /* keeps natural proportions */
  object-fit: contain;
  grid-column: span 3; /* makes it take the full row in your 3-column grid */
}
/* Store layout */
.h1{font-size:2rem;margin:.25rem 0}
.muted{color:var(--muted)}
.tiny{font-size:.875rem}
.section{padding:3rem 1rem}
.alt{background:var(--card)}
.container{width:100%;max-width:1100px;margin:0 auto;padding:0 16px}

/* Controls */
.store-controls{display:grid;grid-template-columns:1fr 180px 200px;gap:12px;margin-top:1rem}
.input{width:100%;padding:.7rem .8rem;border:1px solid var(--border);border-radius:10px;background:#fff}

/* Grid */
.grid{display:grid;gap:1.25rem}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-span-2{grid-column:1 / -1}

@media (max-width:900px){
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .store-controls{grid-template-columns:1fr 1fr;grid-auto-rows:auto}
}
@media (max-width:600px){
  .grid-3,.grid-2{grid-template-columns:1fr}
}

/* Cards */
.card{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 6px 20px rgba(0,0,0,.04);display:flex;flex-direction:column}
.card .thumb{aspect-ratio:4/3;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden}
.card img{max-width:100%;max-height:100%;object-fit:cover}
.card .body{padding:14px}
.card h3{font-size:1rem;margin:.25rem 0}
.price{font-weight:700}
.meta{font-size:.9rem;color:var(--muted)}
.btn{display:inline-block;padding:.75rem 1rem;border-radius:12px;background:var(--accent);color:#fff;border:none;cursor:pointer;text-align:center}
.btn:hover{background:var(--accent-hover)}
.btn.full{width:100%}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border)}
.icon-btn{border:1px solid var(--border);background:#fff;border-radius:10px;padding:.55rem .7rem;cursor:pointer}
.badge{background:var(--highlight, #ffd700);color:#000;border-radius:999px;padding:.1rem .5rem;margin-left:.35rem}

/* Empty state */
.empty{padding:2rem;border:1px dashed var(--border);border-radius:12px;text-align:center}

/* Modal */
.modal{width:min(900px,95%);border:none;border-radius:16px;padding:0}
.modal::backdrop{background:rgba(0,0,0,.45)}
.modal-body{padding:18px}
.modal-close{position:absolute;right:12px;top:10px;border:none;background:#fff;border:1px solid var(--border);border-radius:10px;padding:.35rem .55rem;cursor:pointer}
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.gallery img{width:100%;height:220px;object-fit:cover;border-radius:10px;border:1px solid var(--border)}

/* Cart drawer */
.cart{position:fixed;top:0;right:-420px;width:400px;max-width:92vw;height:100dvh;background:#fff;border-left:1px solid var(--border);box-shadow:-12px 0 28px rgba(0,0,0,.08);display:flex;flex-direction:column;transition:right .25s ease;z-index:50}
.cart.open{right:0}
.cart-header{display:flex;align-items:center;justify-content:space-between;padding:14px;border-bottom:1px solid var(--border)}
.cart-items{flex:1;overflow:auto;padding:12px}
.cart-item{display:grid;grid-template-columns:64px 1fr auto;gap:10px;align-items:center;border-bottom:1px solid var(--border);padding:10px 0}
.cart-item img{width:64px;height:64px;object-fit:cover;border-radius:8px;border:1px solid var(--border)}
.qty{display:flex;gap:6px;align-items:center}
.qty button{border:1px solid var(--border);background:#fff;border-radius:8px;width:28px;height:28px;cursor:pointer}
.cart-footer{padding:14px;border-top:1px solid var(--border)}
.cart-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:40}

/* Checkout */
.checkout-form label{display:grid;gap:6px;margin-bottom:10px}
.order-summary{border:1px solid var(--border);border-radius:12px;padding:10px;margin-bottom:12px}
.success{padding:1rem;border:1px solid var(--border);border-radius:12px;background:#f5fff6}

/* Header, nav quick consistency */
.site-header{background:#fff;border-bottom:1px solid var(--border)}
.nav a.active{color:var(--accent);font-weight:600}
.logo{height:38px}
