:root{
  --bg:#0b0b0d;
  --panel:#111216;
  --card:#15161c;
  --text:#f5f6fb;
  --muted:#b8b9c4;
  --line:rgba(255,255,255,.10);
  --red:#e0202a;
  --red2:#ff3b30;
  --shadow:0 18px 55px rgba(0,0,0,.55);
  --radius:18px;
}

/* -----------------------------
   Lightbox (tap/click to enlarge)
------------------------------ */
.enlargeable{ cursor: zoom-in; }

#lightboxOverlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.88);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
  z-index: 9999;
}
#lightboxOverlay.open{ display: flex; }
#lightboxOverlay .lb-img{
  max-width: min(980px, 100%);
  max-height: 88vh;
  width: auto;
  height: auto;
  border-radius: 16px;
  box-shadow: 0 18px 60px rgba(0,0,0,.55);
}
#lightboxOverlay .lb-close{
  position: fixed;
  top: 14px;
  right: 14px;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(20,20,20,.65);
  color: #fff;
  font-size: 28px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
html.no-scroll, body.no-scroll{ overflow: hidden; }

*{box-sizing:border-box}
html,body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
  background: linear-gradient(180deg, #07070a 0%, var(--bg) 100%);
  overflow-x:hidden;
  position:relative;
}
/*
  Keep the same colour vibe, but stop the glow washing over content (especially
  photos) as you scroll. By anchoring the glow near the top of the page (not
  fixed), it scrolls away instead of tinting everything.
*/
body::before{
  content:"";
  position:absolute;
  left:-20vw;
  right:-20vw;
  top:-40vh;
  height:110vh;
  pointer-events:none;
  background:
    radial-gradient(1200px 700px at 15% 0%, rgba(224,32,42,.18), transparent 60%),
    radial-gradient(1200px 700px at 85% 10%, rgba(255,59,48,.12), transparent 62%);
  filter: blur(22px);
  opacity:.95;
  transform: translateZ(0);
  z-index:-1;
}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
  background: linear-gradient(180deg, #07070a 0%, var(--bg) 100%);
  overflow-x:hidden;
  position:relative;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(1200px 700px at 15% 0%, rgba(224,32,42,.18), transparent 60%),
    radial-gradient(1200px 700px at 85% 10%, rgba(255,59,48,.12), transparent 62%);
  filter: blur(22px);
  opacity:.95;
  transform: translateZ(0);
}

a{color:inherit}
.wrap{width:min(1120px,92vw); margin:0 auto}

.top{
  position:sticky; top:0; z-index:50;
  backdrop-filter:blur(10px);
  background:rgba(11,11,13,.65);
  border-bottom:1px solid var(--line);
}
.top__inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 0;
  gap:14px;
}

.brand{display:flex; align-items:center; gap:12px; text-decoration:none}
.brand__mark{
  /* Integrated logo badge (less "slapped on") */
  width:56px; height:56px;
  display:grid; place-items:center;
  border-radius:14px;
  background:rgba(255,255,255,.95);
  padding:0;
  box-shadow: 0 10px 24px rgba(0,0,0,.35);
  overflow:hidden;
}
.brand__text{display:flex; flex-direction:column; line-height:1.05}
.brand__name{font-weight:900; font-size:14px; letter-spacing:.2px}
.brand__sub{font-weight:800; font-size:12px; color:rgba(245,246,251,.85)}

.nav{display:flex; gap:16px; align-items:center}
.nav a{color:var(--muted); text-decoration:none; font-weight:700; font-size:13px}
.nav a:hover{color:var(--text)}

.menu{display:none; background:transparent; border:0; padding:10px; cursor:pointer}
.menu span{display:block; width:22px; height:2px; background:rgba(255,255,255,.85); margin:5px 0; border-radius:2px}

.mobile{display:none; border-top:1px solid var(--line); background:rgba(11,11,13,.75)}
.mobile__inner{padding:14px 0; display:grid; gap:10px}
.mobile__inner a{color:var(--muted); text-decoration:none; font-weight:800}

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 16px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(135deg, rgba(224,32,42,.35), rgba(255,59,48,.22));
  color:var(--text);
  text-decoration:none;
  font-weight:900;
  box-shadow:0 12px 30px rgba(0,0,0,.35);
}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn--ghost{background:transparent; box-shadow:none}
.btn--small{padding:10px 14px; border-radius:12px}
.btn--wide{width:100%}

.pill{
  display:inline-flex; align-items:center;
  padding:7px 11px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.04);
  color:rgba(245,246,251,.85);
  font-weight:800;
  font-size:12px;
}

.hero{padding:64px 0 26px}
.hero__grid{
  display:grid;
  grid-template-columns: 1.08fr .92fr;
  gap:22px;
  align-items:start;
}
h1{font-size:clamp(34px,4.2vw,56px); line-height:1.05; margin:14px 0 12px; letter-spacing:-.8px}
h2{font-size:28px; margin:0 0 12px; letter-spacing:-.4px}
.lead{color:rgba(245,246,251,.88); line-height:1.6; margin:0 0 18px}
.muted{color:var(--muted); margin:0 0 18px; line-height:1.6}
.cta{display:flex; gap:12px; flex-wrap:wrap; margin-top:18px}

.links{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px}
.chip{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.03);
  text-decoration:none;
  font-weight:800;
  color:rgba(245,246,251,.9);
}
.chip:hover{border-color:rgba(255,255,255,.22)}
.chip--big{padding:12px 14px}

.hero__media{display:grid; gap:12px}
.frame{
  border-radius:22px;
  border:1px solid rgba(255,255,255,.12);
  overflow:hidden;
  background:rgba(0,0,0,.25);
  box-shadow:var(--shadow);
}
.frame img{display:block; width:100%; height:auto}

.stats{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.stat{
  border-radius:18px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.03);
  padding:14px;
}
.stat__big{font-weight:900; font-size:18px}
.stat__small{color:var(--muted); font-size:12px; margin-top:4px}

.section{padding:54px 0}
.section--alt{background:rgba(255,255,255,.02); border-top:1px solid rgba(255,255,255,.06); border-bottom:1px solid rgba(255,255,255,.06)}

.grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:14px;
  margin-top:18px;
}
.card{
  border-radius:18px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.03);
  padding:16px;
}
.card h3{margin:0 0 6px; font-size:15px}
.card p{margin:0; color:var(--muted); line-height:1.55; font-size:13px}

.bar{
  margin-top:22px;
  display:flex; align-items:center; justify-content:space-between;
  gap:14px; flex-wrap:wrap;
  border-radius:22px;
  padding:16px 18px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.03);
}
.bar__title{font-weight:900}
.bar__sub{color:var(--muted); margin-top:4px; font-size:13px}
.bar__actions{display:flex; gap:10px; flex-wrap:wrap}

.enquire{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:18px;
  align-items:start;
}
.stack{display:grid; gap:10px; margin-top:8px}

.form{display:grid; gap:12px}
label{display:grid; gap:8px; font-weight:800; font-size:13px}
input, textarea{
  width:100%;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(0,0,0,.25);
  color:var(--text);
  font:inherit;
  outline:none;
}
input::placeholder, textarea::placeholder{color:rgba(184,185,196,.75)}
input:focus, textarea:focus{border-color:rgba(255,59,48,.35)}
.hidden{display:none}
.fine{margin:0; color:var(--muted); font-size:12px; line-height:1.5}

.footer{
  padding:26px 0 36px;
  border-top:1px solid rgba(255,255,255,.08);
  background:rgba(0,0,0,.18);
}
.footer__inner{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap}
.footer__brand{font-weight:900}
.footer__small{color:var(--muted); font-size:12px; margin-top:4px}
.footer__links{display:flex; gap:14px; flex-wrap:wrap}
.footer__links a{color:var(--muted); text-decoration:none; font-weight:800; font-size:13px}
.footer__links a:hover{color:var(--text)}

.pageTitle{font-size:clamp(30px,3.8vw,46px); letter-spacing:-.7px; margin:0 0 10px}
.reviewsBlank{margin-top:18px}
.blankCard{
  border-radius:22px;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(180deg, rgba(21,22,28,.95), rgba(12,12,16,.9));
  padding:22px;
  box-shadow:var(--shadow);
}
.blankTitle{font-weight:900; font-size:18px}
.blankSub{color:var(--muted); margin-top:8px; line-height:1.6}

@media (max-width: 980px){
  .hero__grid{grid-template-columns:1fr; gap:16px}
  .grid{grid-template-columns:1fr 1fr}
  .enquire{grid-template-columns:1fr}
}
@media (max-width: 640px){
  .nav{display:none}
  .menu{display:block}
  .grid{grid-template-columns:1fr}
}


/* Reviews */
.reviewsHeader{margin-top:14px}
.reviewsGrid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap:14px;
  margin-top:16px;
}
.reviewCard{
  border-radius:22px;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(180deg, rgba(21,22,28,.95), rgba(12,12,16,.90));
  padding:18px;
  box-shadow:var(--shadow);
}
.reviewTop{display:flex; gap:14px; align-items:flex-start}
.score{
  line-height:1;
  min-width:74px;
  height:64px;
  border-radius:18px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.05);
  font-weight:900;
  font-size:20px;
}
.score span{display:block; font-size:12px; font-weight:900; opacity:.85; margin-left:0; margin-top:2px}
.reviewMain{flex:1}
.reviewTitle{font-weight:900; font-size:15px; line-height:1.25}
.meta{
  margin-top:6px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  color:var(--muted);
  font-weight:800;
  font-size:12px;
}
.meta__dot{opacity:.7}
.reviewText{
  margin:12px 0 0;
  color:rgba(245,246,251,.90);
  line-height:1.65;
}
@media (max-width: 980px){
  .reviewsGrid{grid-template-columns:1fr}
}

.brand__mark img{width:100%;height:100%;object-fit:contain;display:block}

.chip--call{
  border-color: rgba(255,255,255,.18);
  background: linear-gradient(135deg, rgba(224,32,42,.22), rgba(255,59,48,.14));
}

.callRow{margin-top:14px}
.btn--call{
  background: linear-gradient(135deg, rgba(224,32,42,.95), rgba(255,59,48,.78));
  border: 1px solid rgba(255,255,255,.18);
  color: #fff;
  font-weight: 900;
}

/* Prominent call-to-action (mobile) */
.stickyCall{
  position:fixed;
  left:16px;
  right:16px;
  bottom:14px;
  z-index:999;
  display:none;
  text-align:center;
  padding:14px 16px;
  border-radius:16px;
  font-weight:900;
  color:#fff;
  text-decoration:none;
  background: linear-gradient(135deg, rgba(224,32,42,.95), rgba(255,59,48,.78));
  border:1px solid rgba(255,255,255,.18);
  box-shadow: 0 14px 40px rgba(0,0,0,.45);
}
@media (max-width: 900px){
  .stickyCall{display:block}
  body{padding-bottom:78px}
}
.btn--call{
  background: linear-gradient(135deg, rgba(224,32,42,.95), rgba(255,59,48,.78));
  border: 1px solid rgba(255,255,255,.18);
  color:#fff;
  font-weight:900;
}

/* Customer photos page */
.photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:18px}
@media (max-width: 780px){.photo-grid{grid-template-columns:1fr}}
.photo-card{border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.03);box-shadow:0 18px 40px rgba(0,0,0,.35)}
/* Keep all gallery cards a consistent visual size */
.photo-card img,
.photo-card__img{
  display:block;
  width:100%;
  height:240px;
  object-fit:cover;
}

@media (min-width: 780px){
  .photo-card img,
  .photo-card__img{height:320px}
}

/* Lightbox */
#lb{position:fixed; inset:0; display:none; z-index:2000}
#lb.lb--open{display:block}
#lb .lb__backdrop{position:absolute; inset:0; background:rgba(0,0,0,.78)}
#lb .lb__content{position:absolute; inset:0; display:grid; place-items:center; padding:18px}
#lb .lb__img{max-width:min(1100px,94vw); max-height:86vh; width:auto; height:auto; border-radius:16px; box-shadow:0 18px 60px rgba(0,0,0,.55); border:1px solid rgba(255,255,255,.12); background:#0b0b0d}
#lb .lb__close{position:absolute; top:14px; right:14px; width:44px; height:44px; border-radius:14px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.06); color:#fff; font-size:28px; line-height:1; cursor:pointer}
#lb .lb__close:hover{background:rgba(255,255,255,.10)}




