
/* Basic reset */
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif;background:#f7f7fb;color:#222;max-width:100%;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
.container{width:min(1200px,92%);margin:0 auto}
.section{padding:56px 0}
.section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 0 18px}
.section-title h2{margin:0;font-size:24px}
.muted{color:#6b7280}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:600;background:#111827;color:#fff}
.btn:hover{opacity:.92}
.btn-outline{background:transparent;color:#111827;border:1px solid #cbd5e1}
.btn-danger{background:#b91c1c}
.badge{display:inline-block;border-radius:999px;padding:4px 10px;font-size:12px;background:#eef2ff;color:#3730a3}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media (max-width:900px){.grid-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.grid-3,.grid-2{grid-template-columns:1fr}}

/* Header */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  /* Use a solid black background for the header on all screen sizes */
  background:#000;
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,0.1);
}
.header-wrap{display:flex;align-items:center;gap:14px;padding:12px 0;flex-wrap:wrap}
.logo img{height:46px;width:auto}
.nav{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
/* Header nav links: default to white on dark header */
.nav a{
  padding:8px 10px;
  border-radius:10px;
  font-weight:600;
  color:#f3f4f6;
}
.nav a:hover{
  background:rgba(255,255,255,0.1);
}
.header-right{margin-left:auto;display:flex;align-items:center;gap:10px}
/* Header icons: invert colours on dark header */
.icon-link{
  width:42px;
  height:42px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,0.15);
  background:#111827;
  color:#f3f4f6;
}
.icon-link:hover{
  background:#1f2937;
}
.icon-link svg{width:22px;height:22px}
.icon-badge{position:relative}
.icon-badge .count{
  position:absolute;top:-6px;right:-6px;
  min-width:18px;height:18px;padding:0 5px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;font-size:11px;font-weight:900;
  background:#ef4444;color:#fff;border:2px solid #fff
}
.search{position:relative}
.search input{width:260px;max-width:42vw;padding:10px 12px;border:1px solid #e5e7eb;border-radius:12px;outline:none;background:#fff}
.search input:focus{border-color:#93c5fd;box-shadow:0 0 0 4px rgba(147,197,253,.3)}
@media (max-width:820px){
  .search{display:none}
  .nav{display:none}
  .header-right{display:flex;gap:8px}
}

@media (max-width:820px){
  /* Make long tables scroll inside (no page overflow) */
  .table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .table th,.table td{white-space:nowrap}
}

/* Utility */
.hide-mobile{display:inline-flex}
@media (max-width:820px){
  .hide-mobile{display:none!important}
}

/* Hero slider */
.hero{padding:0}
.hero-slider{position:relative;overflow:hidden;border-radius:18px}
.slide{min-height:420px;display:none;position:relative}
.slide.active{display:block;animation:fadeIn .5s ease}
.slide img{width:100%;height:200px;object-fit:cover}
.slide .overlay{
  position:absolute;inset:0;
  background:linear-gradient(90deg, rgba(17,24,39,.7) 0%, rgba(17,24,39,.2) 65%, rgba(17,24,39,0) 100%);
  display:flex;align-items:center
}
.slide .content{padding:26px;width:min(560px,92%);color:#fff}
.slide h1{margin:0 0 8px;font-size:36px;line-height:1.15}
.slide p{margin:0 0 16px;color:rgba(255,255,255,.9)}
.slider-controls{position:absolute;inset:auto 12px 12px 12px;display:flex;align-items:center;justify-content:space-between}
.slider-controls .dots{display:flex;gap:8px}
.dot{width:10px;height:10px;border-radius:999px;background:rgba(255,255,255,.45);cursor:pointer}
.dot.active{background:#fff}
.arrow{border:0;border-radius:12px;padding:10px 12px;background:rgba(255,255,255,.16);color:#fff;cursor:pointer}
.arrow:hover{background:rgba(255,255,255,.25)}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

/* About */
.about-wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:20px;align-items:center}
@media (max-width:900px){.about-wrap{grid-template-columns:1fr}}
.zoom{overflow:hidden;border-radius:16px}
.zoom img{transform:scale(1);transition:transform .45s ease}
.zoom:hover img{transform:scale(1.06)}
.feature-list{display:grid;gap:12px}
.feature{display:flex;gap:12px;padding:14px;border-radius:16px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 1px 0 rgba(0,0,0,.02)}
.feature .icon{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:#eef2ff;color:#3730a3;font-weight:900}
.feature h3{margin:0;font-size:16px}
.feature p{margin:4px 0 0;color:#6b7280;font-size:14px}

/* Horizontal slider rows */
.h-scroll{display:flex;gap:14px;overflow:auto;scroll-snap-type:x mandatory;padding-bottom:6px}
.h-scroll::-webkit-scrollbar{height:10px}
.h-scroll::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:999px}
.h-item{min-width:calc((100% - 28px)/3);scroll-snap-align:start}
@media (max-width:900px){.h-item{min-width:calc((100% - 14px)/2)}}
@media (max-width:600px){.h-item{min-width:85%}}
.card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;overflow:hidden;box-shadow:0 1px 0 rgba(0,0,0,.02)}
.card .body{padding:14px}
.card h3{margin:0 0 6px;font-size:16px}
.card p{margin:0;color:#6b7280;font-size:14px}
.card .meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}
.price{font-weight:900}
.thumb{aspect-ratio:3/2;overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.card:hover .thumb img{transform:scale(1.05)}

/* Footer */
.site-footer{background:#0b1220;color:#e5e7eb;padding:44px 0 80px}
.footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media (max-width:900px){.footer-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.footer-grid{grid-template-columns:1fr}}
.footer-grid h4{margin:0 0 10px;font-size:16px}
.footer-grid a{color:#cbd5e1}
.footer-grid a:hover{text-decoration:underline}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:26px;padding-top:14px;color:#94a3b8;font-size:14px}

/* Flash */
.flash{padding:12px 14px;border-radius:14px;margin:12px 0;border:1px solid #e5e7eb;background:#fff}
.flash.success{border-color:#86efac;background:#f0fdf4}
.flash.error{border-color:#fecaca;background:#fef2f2}

/* Forms */
.form{background:#fff;border:1px solid #e5e7eb;border-radius:20px;padding:18px;box-shadow:0 1px 0 rgba(0,0,0,.02)}
.form-row{display:grid;gap:12px}
.field label{display:block;font-weight:700;margin:0 0 6px}
.field input,.field textarea,.field select{
  width:100%;padding:10px 12px;border-radius:14px;border:1px solid #e5e7eb;outline:none;background:#fff
}
.field input:focus,.field textarea:focus,.field select:focus{border-color:#93c5fd;box-shadow:0 0 0 4px rgba(147,197,253,.3)}
.field small{color:#6b7280}
.form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}

/* 3D Auth Form */
.auth-wrap{min-height:calc(100vh - 160px);display:grid;place-items:center;padding:28px 0}
.auth-card{
  width:min(460px,92%);background:linear-gradient(180deg,#ffffff,#f8fafc);
  border:1px solid #e5e7eb;border-radius:24px;padding:22px;position:relative;
  box-shadow:0 18px 60px rgba(0,0,0,.12);
  transform:perspective(1200px) rotateX(2deg) rotateY(-3deg);
}
.auth-card::before{
  content:"";position:absolute;inset:-2px;z-index:-1;border-radius:26px;
  background:radial-gradient(circle at 20% 0%, rgba(59,130,246,.55), transparent 55%),
             radial-gradient(circle at 100% 70%, rgba(99,102,241,.55), transparent 60%);
  filter:blur(16px);opacity:.55
}

/* Tables */
.table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e5e7eb;border-radius:16px;overflow:hidden}
.table th,.table td{padding:12px 10px;border-bottom:1px solid #e5e7eb;text-align:left;font-size:14px;vertical-align:top}
.table th{background:#f8fafc;font-weight:900}
.table tr:last-child td{border-bottom:0}


/* Scroll reveal */
.reveal{opacity:0;transform:translateY(18px);transition:all .6s ease}
.reveal.show{opacity:1;transform:none}

/* Bottom nav */
.bottom-nav{display:none}
@media (max-width:820px){
  body{padding-bottom:68px}
  .bottom-nav{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:60;
    /* Dark background for mobile bottom navigation */
    background:#000;
    backdrop-filter:none;
    border-top:1px solid rgba(255,255,255,0.15);
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:0;
    height:64px;
  }
  .bottom-nav a{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    font-size:12px;
    color:#f3f4f6;
  }
  .bottom-nav svg{
    width:22px;
    height:22px;
    /* Use currentColor for stroke to inherit the anchor's colour */
    stroke:currentColor;
    fill:none;
  }
  .bottom-nav a.active{
    color:#60a5fa;
  }
}

/* Mobile menu toggle and navigation styles */
.menu-toggle{
  display:none;
  background:transparent;
  border:0;
  padding:6px;
  border-radius:8px;
  color:#f3f4f6;
  cursor:pointer;
}
.menu-toggle svg{width:26px;height:26px;}

@media (max-width:820px){
  .menu-toggle{
    display:inline-flex;
  }
  /* Hide the search bar on small screens */
  .search{display:none;}
  /* Hide nav by default on mobile; show when open class is added via JS */
  .nav{
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:100%;
    background:#000;
    flex-direction:column;
    padding:12px 0;
    gap:0;
  }
  .nav.open{
    display:flex;
  }
  .nav a{
    padding:12px 16px;
    font-size:15px;
    color:#f3f4f6;
    border-radius:0;
  }
  .nav a:hover{
    background:#111827;
  }
}

/* Hero slider: increase height for mobile and constrain width */
.hero-slider{
  max-width:1500px;
  margin-left:auto;
  margin-right:auto;
}
/* Fix hero slide size to 1500x500 (will scale down on mobile). */
.slide{
  min-height:500px;
}
.slide img{
  width:100%;
  height:500px;
  object-fit:cover;
}
