﻿:root{
  --void:#0a0a0a;
  --panel:#16140f;
  --panel-2:#1d1a14;
  --gold:#c9a24b;
  --gold-soft:#e8cd8a;
  --orange:#ff7e1e;
  --orange-2:#ffb347;
  --cream:#f5f1e8;
  --muted:#a8a190;
  --line: rgba(201,162,75,0.25);
  --sun-grad: linear-gradient(100deg, var(--orange) 0%, var(--orange-2) 50%, var(--gold) 100%);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--void);
  color:var(--cream);
  font-family:'Inter',sans-serif;
  overflow-x:hidden;
}
::selection{background:var(--orange); color:#0a0a0a;}

h1,h2,h3,h4,.display-font{
  font-family:'Oswald',sans-serif;
  text-transform:uppercase;
  letter-spacing:0.02em;
}

.eyebrow{
  font-family:'Space Grotesk',sans-serif;
  font-size:0.78rem;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--orange-2);
  font-weight:600;
}

.text-gold{color:var(--gold);}
.text-orange-grad{
  background:var(--sun-grad);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

/* ---------- scroll reveal ---------- */
.reveal{
  opacity:0;
  transform:translateY(36px);
  transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);
}
.reveal.is-visible{opacity:1; transform:translateY(0);}
.reveal-delay-1{transition-delay:.1s;}
.reveal-delay-2{transition-delay:.2s;}
.reveal-delay-3{transition-delay:.3s;}
.reveal-delay-4{transition-delay:.4s;}

@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  *{animation:none !important; transition:none !important;}
}

/* ---------- nav ---------- */
.navbar{
  background:rgba(10,10,10,0.78);
  backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .3s, background .3s, padding .3s;
  padding:1.1rem 0;
}
.navbar.scrolled{
  border-bottom:1px solid var(--line);
  background:rgba(10,10,10,0.95);
  padding:0.6rem 0;
}
.navbar-brand{font-family:'Oswald',sans-serif; font-weight:600; letter-spacing:.06em; font-size:1.25rem; color:var(--cream)!important;}
.navbar-brand .brand-mark-text{color:var(--gold);}
.nav-link{
  color:var(--cream)!important;
  font-size:0.85rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:500;
  margin:0 .65rem;
  position:relative;
  opacity:.85;
  transition:opacity .25s, color .25s;
}
.nav-link::after{
  content:'';
  position:absolute; left:0; bottom:-4px;
  width:0; height:2px;
  background:var(--sun-grad);
  transition:width .3s ease;
}
.nav-link:hover{opacity:1; color:var(--orange-2)!important;}
.nav-link:hover::after{width:100%;}
.nav-link.active{color:var(--orange-2)!important; opacity:1;}
.nav-link.active::after{width:100%;}
.btn-sun{
  background:var(--sun-grad);
  border:none;
  color:#0a0a0a;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  font-size:0.8rem;
  padding:.6rem 1.4rem;
  border-radius:999px;
  position:relative;
  overflow:hidden;
  transition:transform .25s, box-shadow .25s;
  box-shadow:0 4px 20px rgba(255,126,30,0.25);
}
.btn-sun:hover{transform:translateY(-2px); box-shadow:0 8px 28px rgba(255,126,30,0.45); color:#0a0a0a;}
.btn-outline-gold{
  border:1.5px solid var(--gold);
  color:var(--gold-soft);
  background:transparent;
  border-radius:999px;
  font-weight:600;
  letter-spacing:.05em;
  text-transform:uppercase;
  font-size:0.8rem;
  padding:.58rem 1.4rem;
  transition:all .25s;
}
.btn-outline-gold:hover{background:var(--gold); color:#0a0a0a; border-color:var(--gold);}

/* ---------- logo mark ---------- */
.logo-mark{
  width:44px; height:44px;
  display:inline-block;
  vertical-align:middle;
  border-radius:50%;
  object-fit:cover;
  border:1px solid var(--line);
  background:#3a3a3a;
  filter:drop-shadow(0 0 8px rgba(201,162,75,0.25));
  transition:filter .3s ease, transform .3s ease;
}
.navbar-brand:hover .logo-mark{
  filter:drop-shadow(0 0 14px rgba(255,179,71,0.5));
  transform:rotate(8deg);
}

/* ---------- hero ---------- */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:center;
  padding-top:120px;
  overflow:hidden;
  background:
    radial-gradient(ellipse 70% 50% at 50% 0%, rgba(255,126,30,0.10), transparent 60%),
    linear-gradient(180deg, #0a0a0a 0%, #0d0c08 60%, #0a0a0a 100%);
}
.panel-grid{
  position:absolute;
  inset:0;
  z-index:0;
  perspective:600px;
  opacity:0.45;
}
.panel-grid::before, .panel-grid::after{
  content:'';
  position:absolute;
  left:-20%; right:-20%;
  height:75%;
  background-image:
    repeating-linear-gradient(0deg, transparent 0 38px, rgba(201,162,75,0.18) 38px 40px),
    repeating-linear-gradient(90deg, transparent 0 38px, rgba(201,162,75,0.18) 38px 40px);
  transform:rotateX(70deg);
}
.panel-grid::before{ top:-10%; transform-origin:top; }
.panel-grid::after{ bottom:-10%; transform:rotateX(-70deg); transform-origin:bottom; }

.sun-glow{
  position:absolute;
  top:6%;
  left:50%;
  transform:translateX(-50%);
  width:420px; height:420px;
  background:radial-gradient(circle, rgba(255,179,71,0.55), rgba(255,126,30,0.12) 55%, transparent 75%);
  filter:blur(10px);
  border-radius:50%;
  z-index:0;
  animation:pulseGlow 6s ease-in-out infinite;
}
@keyframes pulseGlow{
  0%,100%{opacity:.7; transform:translateX(-50%) scale(1);}
  50%{opacity:1; transform:translateX(-50%) scale(1.08);}
}

.diag-line{
  position:absolute;
  left:-10%;
  width:140%;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(245,241,232,0.5), transparent);
  transform:rotate(-4deg);
  z-index:1;
}
.diag-line.l1{top:62%;}
.diag-line.l2{top:75%; opacity:.5;}

.hero-content{position:relative; z-index:2;}

.hero-kicker{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  border:1px solid var(--line);
  background:rgba(201,162,75,0.07);
  border-radius:999px;
  padding:.4rem 1rem;
  font-family:'Space Grotesk',sans-serif;
  font-size:0.75rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--gold-soft);
}
.hero-kicker .dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--orange);
  box-shadow:0 0 10px var(--orange);
  animation:blink 1.8s ease-in-out infinite;
}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.35;}}

.hero h1{
  font-size:clamp(2.6rem, 6vw, 5rem);
  line-height:1.03;
  font-weight:700;
  margin:1.2rem 0 1.4rem;
}
.hero h1 .line2{
  -webkit-text-stroke:1.5px var(--cream);
  color:transparent;
}
.hero p.lead-text{
  color:var(--muted);
  font-size:1.12rem;
  max-width:520px;
  font-weight:300;
}

.hero-stats{
  display:flex;
  gap:2.4rem;
  margin-top:2.6rem;
  flex-wrap:wrap;
}
.hero-stats .stat-num{
  font-family:'Oswald',sans-serif;
  font-size:2.1rem;
  font-weight:600;
  color:var(--cream);
  line-height:1;
}
.hero-stats .stat-num span{color:var(--orange-2);}
.hero-stats .stat-label{
  font-size:0.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--muted);
}

.hero-visual{
  position:relative;
  z-index:2;
}
.panel-card{
  position:relative;
  border-radius:18px;
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:0 30px 70px rgba(0,0,0,0.55);
  animation:floatY 5s ease-in-out infinite;
}
@keyframes floatY{0%,100%{transform:translateY(0);}50%{transform:translateY(-14px);}}
.panel-card img{width:100%; height:420px; display:block; object-fit:cover; filter:saturate(1.05) contrast(1.05);}
.panel-card .sun-sweep{
  position:absolute; top:0; left:-60%;
  width:40%; height:100%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,0.28), transparent);
  animation:sweep 4.5s ease-in-out infinite;
  z-index:3;
  pointer-events:none;
}
@keyframes sweep{
  0%{left:-60%;}
  45%{left:120%;}
  100%{left:120%;}
}

/* hero carousel */
.hero-carousel .carousel-inner{border-radius:18px;}
.hero-carousel .carousel-item{transition-duration:1.1s;}
.hero-carousel::after{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,10,10,0) 55%, rgba(10,10,10,0.85) 100%);
  z-index:2;
  border-radius:18px;
  pointer-events:none;
}
.hero-carousel .carousel-caption{
  z-index:3;
  text-align:left;
  left:1.4rem; right:1.4rem; bottom:1.2rem;
  padding:0;
}
.hero-carousel .carousel-caption .cap-eyebrow{
  font-family:'Space Grotesk',sans-serif;
  font-size:.68rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--orange-2);
  margin-bottom:.25rem;
}
.hero-carousel .carousel-caption h6{
  font-family:'Oswald',sans-serif;
  font-size:1.05rem;
  letter-spacing:.02em;
  color:var(--cream);
  margin:0;
}
.hero-carousel .carousel-indicators{
  z-index:4;
  margin-bottom:.6rem;
}
.hero-carousel .carousel-indicators [data-bs-target]{
  width:8px; height:8px;
  border-radius:50%;
  background:rgba(245,241,232,0.5);
  border:none;
  opacity:1;
  margin:0 4px;
  transition:background .3s, transform .3s;
}
.hero-carousel .carousel-indicators .active{
  background:var(--orange-2);
  transform:scale(1.25);
}
.hero-carousel .carousel-control-prev,
.hero-carousel .carousel-control-next{
  width:42px; height:42px;
  top:50%; bottom:auto;
  transform:translateY(-50%);
  border-radius:50%;
  background:rgba(10,10,10,0.55);
  border:1px solid var(--line);
  opacity:0;
  transition:opacity .3s ease, background .3s ease;
  z-index:4;
}
.hero-carousel .carousel-control-prev{left:14px;}
.hero-carousel .carousel-control-next{right:14px;}
.hero-carousel:hover .carousel-control-prev,
.hero-carousel:hover .carousel-control-next{opacity:1;}
.hero-carousel .carousel-control-prev:hover,
.hero-carousel .carousel-control-next:hover{background:var(--sun-grad);}
.hero-carousel .carousel-control-prev-icon,
.hero-carousel .carousel-control-next-icon{width:16px; height:16px;}
.float-badge{
  position:absolute;
  bottom:-22px; left:-22px;
  background:var(--panel-2);
  border:1px solid var(--line);
  border-radius:14px;
  padding:1rem 1.3rem;
  box-shadow:0 18px 40px rgba(0,0,0,.5);
  display:flex; align-items:center; gap:.8rem;
}
.float-badge i{color:var(--orange); font-size:1.4rem;}
.float-badge .b-num{font-family:'Oswald',sans-serif; font-weight:600; font-size:1.3rem; color:var(--cream);}
.float-badge .b-label{font-size:.68rem; color:var(--muted); letter-spacing:.05em;}

.scroll-cue{
  position:absolute;
  bottom:28px; left:50%; transform:translateX(-50%);
  z-index:2;
  color:var(--muted);
  font-size:.7rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  text-align:center;
}
.scroll-cue .chevron{
  width:18px;height:18px;
  border-right:2px solid var(--gold);
  border-bottom:2px solid var(--gold);
  transform:rotate(45deg);
  margin:8px auto 0;
  animation:chevDown 1.6s ease-in-out infinite;
}
@keyframes chevDown{0%,100%{opacity:.3; transform:rotate(45deg) translate(0,0);}50%{opacity:1; transform:rotate(45deg) translate(4px,4px);}}

/* ---------- section shells ---------- */
section{position:relative;}
.sec-pad{padding:6.5rem 0;}
.bg-panel{background:var(--panel);}
.section-head{margin-bottom:3.2rem;}
.section-head h2{
  font-size:clamp(2.1rem, 4vw, 3.2rem);
  font-weight:700;
  margin:.6rem 0 0;
}
.section-head .underline{
  width:64px; height:3px;
  background:var(--sun-grad);
  margin-top:1.2rem;
  border-radius:2px;
}

/* divider beam between sections, echoing brochure cover */
.beam-divider{
  height:2px;
  background:linear-gradient(90deg, transparent, var(--gold) 50%, transparent);
  opacity:.4;
  margin:0 auto;
  width:80%;
}

/* ---------- expanded home content ---------- */
.trust-strip{
  padding:1.6rem 0;
  background:var(--void);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.trust-pill{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 20px 45px rgba(0,0,0,.28);
}
.trust-pill span{
  background:var(--panel);
  color:var(--cream);
  min-height:62px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1rem;
  font-family:'Space Grotesk',sans-serif;
  font-size:.82rem;
  font-weight:600;
  letter-spacing:.08em;
  text-align:center;
  text-transform:uppercase;
}
.solution-image{
  margin:-2rem -1.8rem 1.4rem;
  height:150px;
  overflow:hidden;
  border-bottom:1px solid var(--line);
}
.solution-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(1.05) brightness(.88);
  transition:transform .5s ease;
}
.benefit-card:hover .solution-image img{transform:scale(1.06);}
.mini-link{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  color:var(--orange-2);
  text-decoration:none;
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.07em;
  text-transform:uppercase;
  margin-top:1.2rem;
}
.mini-link:hover{color:var(--gold-soft);}
.project-card{
  height:100%;
  background:var(--panel-2);
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  transition:transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.project-card:hover{
  transform:translateY(-8px);
  border-color:var(--gold);
  box-shadow:0 24px 50px rgba(0,0,0,.42);
}
.project-card img{
  width:100%;
  height:210px;
  object-fit:cover;
  display:block;
  filter:saturate(1.05) brightness(.86);
}
.project-body{
  position:relative;
  padding:1.4rem;
}
.project-badge{
  position:absolute;
  top:-17px;
  left:1.2rem;
  background:var(--sun-grad);
  color:#0a0a0a;
  border-radius:999px;
  padding:.35rem .8rem;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  box-shadow:0 8px 18px rgba(255,126,30,.28);
}
.project-card h4{
  font-family:'Space Grotesk',sans-serif;
  text-transform:none;
  letter-spacing:0;
  font-size:1.05rem;
  margin:.3rem 0 .5rem;
  color:var(--cream);
}
.project-card p{
  color:var(--muted);
  font-size:.88rem;
  line-height:1.6;
  min-height:56px;
}
.project-card a{
  color:var(--gold-soft);
  text-decoration:none;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.project-card a:hover{color:var(--orange-2);}
.image-panel{
  position:relative;
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 28px 60px rgba(0,0,0,.45);
}
.image-panel img{
  width:100%;
  height:430px;
  object-fit:cover;
  display:block;
  filter:saturate(1.05) brightness(.85);
}
.image-panel::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, transparent 45%, rgba(10,10,10,.82));
}
.image-note{
  position:absolute;
  right:1.3rem;
  bottom:1.3rem;
  z-index:2;
  width:min(260px, calc(100% - 2.6rem));
  background:rgba(22,20,15,.92);
  border:1px solid var(--line);
  border-radius:14px;
  padding:1rem;
  box-shadow:0 18px 40px rgba(0,0,0,.45);
}
.image-note strong{
  display:block;
  color:var(--orange-2);
  font-family:'Space Grotesk',sans-serif;
  font-size:.95rem;
}
.image-note span{
  display:block;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.45;
  margin-top:.25rem;
}
.check-list{
  display:grid;
  gap:.8rem;
  margin-top:1.4rem;
}
.check-list span{
  color:var(--cream);
  display:flex;
  align-items:flex-start;
  gap:.65rem;
  font-size:.95rem;
}
.check-list i{
  color:var(--orange-2);
  margin-top:.18rem;
}
.subsidy-section{
  background:
    radial-gradient(ellipse 70% 40% at 50% 0%, rgba(255,179,71,.12), transparent 65%),
    var(--void);
}
.scheme-card{
  background:var(--panel-2);
  border:1px solid var(--line);
  border-radius:18px;
  padding:2rem;
  box-shadow:0 24px 50px rgba(0,0,0,.35);
}
.scheme-card h3{
  font-size:1.5rem;
  color:var(--cream);
  margin:.45rem 0;
}
.scheme-card p{color:var(--muted); margin:0;}
.scheme-amount{
  background:var(--void);
  border:1px solid var(--line);
  border-radius:12px;
  padding:1.25rem;
  color:var(--orange-2);
  font-family:'Oswald',sans-serif;
  font-size:1.45rem;
  font-weight:700;
}
.scheme-amount span{
  display:block;
  color:var(--muted);
  font-family:'Inter',sans-serif;
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  margin-bottom:.25rem;
}
.testimonial-card{
  height:100%;
  background:var(--panel-2);
  border:1px solid var(--line);
  border-radius:14px;
  padding:1.25rem;
  transition:transform .3s ease, border-color .3s ease;
}
.testimonial-card:hover{
  transform:translateY(-6px);
  border-color:var(--gold);
}
.testimonial-card .stars{
  color:var(--orange-2);
  letter-spacing:.12em;
  font-size:.8rem;
  margin-bottom:.8rem;
}
.testimonial-card p{
  color:var(--muted);
  font-size:.86rem;
  line-height:1.6;
  min-height:84px;
}
.testimonial-card strong{
  color:var(--cream);
  font-family:'Space Grotesk',sans-serif;
  font-size:.9rem;
}
.info-panel{
  height:100%;
  background:var(--panel-2);
  border:1px solid var(--line);
  border-radius:18px;
  padding:2rem;
  box-shadow:0 24px 50px rgba(0,0,0,.28);
}
.info-panel h2{
  font-size:clamp(1.8rem, 3vw, 2.45rem);
  margin:.55rem 0 1rem;
}
.area-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:.7rem;
  margin:1.2rem 0;
}
.area-grid span{
  color:var(--cream);
  border:1px solid var(--line);
  background:var(--void);
  border-radius:999px;
  padding:.65rem .8rem;
  font-size:.86rem;
  text-align:center;
}
.map-placeholder{
  min-height: 280px;
  margin-bottom: 13px;
  border:1px solid var(--line);
  border-radius:14px;
  background:
    linear-gradient(90deg, rgba(201,162,75,.08) 1px, transparent 1px),
    linear-gradient(0deg, rgba(201,162,75,.08) 1px, transparent 1px),
    var(--void);
  background-size:28px 28px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:1.5rem;
}
.map-placeholder i{
  color:var(--orange);
  font-size:2rem;
  margin-bottom:.75rem;
}
.map-placeholder strong{
  color:var(--cream);
  font-family:'Space Grotesk',sans-serif;
}
.map-placeholder span{
  color:var(--muted);
  font-size:.88rem;
  margin-top:.25rem;
}
.faq-list{
  display:grid;
  gap:.8rem;
}
.faq-list details{
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--void);
  overflow:hidden;
}
.faq-list summary{
  cursor:pointer;
  color:var(--cream);
  font-weight:700;
  padding:1rem 1.15rem;
  list-style:none;
}
.faq-list summary::-webkit-details-marker{display:none;}
.faq-list summary::after{
  content:'+';
  float:right;
  color:var(--orange-2);
  font-weight:800;
}
.faq-list details[open] summary::after{content:'-';}
.faq-list p{
  color:var(--muted);
  padding:0 1.15rem 1rem;
  margin:0;
  line-height:1.6;
  font-size:.9rem;
}

/* ---------- about ---------- */
.about-img-wrap{position:relative;}
.about-img-wrap img{
  border-radius:16px;
  border:1px solid var(--line);
  transform:rotate(-2deg);
  transition:transform .5s ease;
  box-shadow:0 25px 60px rgba(0,0,0,.5);
}
.about-img-wrap:hover img{transform:rotate(0deg) scale(1.02);}
.about-text p{color:var(--muted); font-size:1.02rem; line-height:1.8;}

/* ---------- why choose / feature list ---------- */
.feature-row{
  display:flex;
  align-items:flex-start;
  gap:1rem;
  padding:1.1rem 0;
  border-bottom:1px solid var(--line);
  transition:padding-left .3s, background .3s;
}
.feature-row:hover{padding-left:.5rem; background:rgba(201,162,75,0.05);}
.feature-row i{color:var(--orange); font-size:1.1rem; margin-top:.2rem; flex-shrink:0;}
.feature-row span{color:var(--cream); font-weight:500; font-size:1.02rem;}

/* ---------- benefits cards ---------- */
.benefit-card{
  background:var(--panel-2);
  border:1px solid var(--line);
  border-radius:16px;
  padding:2rem 1.8rem;
  height:100%;
  position:relative;
  overflow:hidden;
  transition:transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.benefit-card::before{
  content:'';
  position:absolute; top:0; left:0; right:0; height:3px;
  background:var(--sun-grad);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .4s ease;
}
.benefit-card:hover{
  transform:translateY(-10px);
  border-color:var(--gold);
  box-shadow:0 25px 50px rgba(0,0,0,.45);
}
.benefit-card:hover::before{transform:scaleX(1);}
.benefit-card .b-icon{
  width:54px; height:54px;
  border-radius:12px;
  background:rgba(255,126,30,0.12);
  display:flex; align-items:center; justify-content:center;
  font-size:1.4rem;
  color:var(--orange-2);
  margin-bottom:1.2rem;
}
.benefit-card h4{
  font-size:1.12rem;
  margin-bottom:.5rem;
  text-transform:none;
  letter-spacing:0;
  font-family:'Space Grotesk',sans-serif;
  font-weight:600;
  color:var(--cream);
}
.benefit-card p{color:var(--muted); font-size:.92rem; margin:0; line-height:1.6;}

/* ---------- services ---------- */
.service-card{
  position:relative;
  border-radius:18px;
  overflow:hidden;
  height:340px;
  border:1px solid var(--line);
  isolation:isolate;
}
.service-card img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  transition:transform .6s ease, filter .6s ease;
  filter:saturate(1) brightness(.85);
}
.service-card:hover img{transform:scale(1.08); filter:saturate(1.15) brightness(.7);}
.service-card .overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,10,10,0) 30%, rgba(10,10,10,0.95) 100%);
  z-index:1;
}
.service-card .s-content{
  position:absolute; left:0; bottom:0; right:0;
  padding:1.6rem 1.5rem;
  z-index:2;
  transform:translateY(8px);
  transition:transform .4s ease;
}
.service-card:hover .s-content{transform:translateY(0);}
.service-card .s-num{
  font-family:'Oswald',sans-serif;
  font-size:.78rem;
  color:var(--orange-2);
  letter-spacing:.15em;
}
.service-card h4{
  font-family:'Space Grotesk',sans-serif;
  font-weight:600;
  font-size:1.18rem;
  letter-spacing:0;
  text-transform:none;
  margin:.3rem 0 .5rem;
  color:var(--cream);
}
.service-card p{
  color:var(--muted);
  font-size:.85rem;
  max-height:0;
  opacity:0;
  overflow:hidden;
  transition:max-height .4s ease, opacity .3s ease;
  margin:0;
  line-height:1.55;
}
.service-card:hover p{max-height:120px; opacity:1;}

/* ---------- process ---------- */
.process-wrap{position:relative;}
.process-line{
  position:absolute;
  top:34px; left:8%; right:8%;
  height:2px;
  background:linear-gradient(90deg, var(--gold), var(--orange), var(--gold));
  opacity:.35;
  z-index:0;
}
.process-step{position:relative; text-align:center; z-index:1;}
.process-step .p-circle{
  width:68px; height:68px;
  border-radius:50%;
  background:var(--void);
  border:2px solid var(--gold);
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 1.2rem;
  font-size:1.5rem;
  color:var(--orange-2);
  transition:transform .35s ease, box-shadow .35s ease, background .35s ease;
}
.process-step:hover .p-circle{
  transform:scale(1.12);
  background:var(--sun-grad);
  color:#0a0a0a;
  box-shadow:0 0 30px rgba(255,126,30,.45);
}
.process-step h5{
  font-family:'Space Grotesk',sans-serif;
  font-weight:600;
  font-size:1rem;
  letter-spacing:0;
  text-transform:none;
  color:var(--cream);
}
.process-step p{color:var(--muted); font-size:.85rem;}

/* ---------- CTA / stats band ---------- */
.cta-band{
  background:
    linear-gradient(100deg, rgba(255,126,30,0.12), transparent 60%),
    var(--panel);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  position:relative;
  overflow:hidden;
}
.cta-band::after{
  content:'';
  position:absolute; right:-10%; top:-30%;
  width:480px; height:480px;
  background:radial-gradient(circle, rgba(255,179,71,0.18), transparent 70%);
  border-radius:50%;
}

/* ---------- contact ---------- */
.contact-card{
  background:var(--panel-2);
  border:1px solid var(--line);
  border-radius:18px;
  padding:1.6rem;
  text-align:center;
  height:100%;
  transition:transform .3s ease, border-color .3s ease;
}
.contact-card:hover{transform:translateY(-6px); border-color:var(--gold);}
.contact-card i{font-size:1.6rem; color:var(--orange); margin-bottom:.8rem;}
.contact-card h5{
  font-family:'Space Grotesk',sans-serif;
  text-transform:none; letter-spacing:0; font-size:1rem; color:var(--cream);
}
.contact-card p, .contact-card a{color:var(--muted); font-size:.92rem; text-decoration:none;}
.contact-card a:hover{color:var(--orange-2);}

.form-control-dark{
  background:var(--void);
  border:1px solid var(--line);
  color:var(--cream);
  border-radius:10px;
  padding:.75rem 1rem;
}
.form-control-dark:focus{
  background:var(--void);
  border-color:var(--gold);
  color:var(--cream);
  box-shadow:0 0 0 3px rgba(201,162,75,0.18);
}
.form-control-dark::placeholder{color:var(--muted);}

/* ---------- footer ---------- */
footer{
  background:#070707;
  border-top:1px solid var(--line);
  padding:3.2rem 0 1.6rem;
}
footer h6{
  font-family:'Space Grotesk',sans-serif;
  text-transform:uppercase;
  font-size:.78rem;
  letter-spacing:.15em;
  color:var(--gold-soft);
  margin-bottom:1rem;
}
footer a.footer-link{
  color:var(--muted);
  text-decoration:none;
  display:block;
  margin-bottom:.55rem;
  font-size:.92rem;
  transition:color .25s, padding-left .25s;
}
footer a.footer-link:hover{color:var(--orange-2); padding-left:4px;}
.social-circle{
  width:38px; height:38px;
  border:1px solid var(--line);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--cream);
  margin-right:.6rem;
  transition:all .3s ease;
}
.social-circle:hover{background:var(--sun-grad); color:#0a0a0a; border-color:transparent; transform:translateY(-3px);}

.brochure-link{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  border:1.5px solid var(--gold);
  color:var(--gold-soft);
  background:rgba(201,162,75,0.06);
  border-radius:999px;
  padding:.6rem 1.3rem;
  font-size:.85rem;
  font-weight:600;
  letter-spacing:.03em;
  text-decoration:none;
  transition:all .3s ease;
}
.brochure-link i{transition:transform .3s ease;}
.brochure-link:hover{
  background:var(--sun-grad);
  color:#0a0a0a;
  border-color:transparent;
  box-shadow:0 10px 24px rgba(255,126,30,0.3);
  transform:translateY(-2px);
}
.brochure-link:hover i{transform:translateY(2px);}

.footer-bottom{
  border-top:1px solid var(--line);
  margin-top:2.2rem;
  padding-top:1.4rem;
  font-size:.8rem;
  color:var(--muted);
}

/* back to top */
.back-to-top{
  position:fixed;
  right:24px; bottom:24px;
  width:46px; height:46px;
  border-radius:50%;
  background:var(--sun-grad);
  color:#0a0a0a;
  display:flex; align-items:center; justify-content:center;
  z-index:999;
  opacity:0; visibility:hidden;
  transform:translateY(10px);
  transition:all .3s ease;
  box-shadow:0 10px 25px rgba(255,126,30,.35);
}
.back-to-top.show{opacity:1; visibility:visible; transform:translateY(0);}

/* responsive tweaks */
@media (max-width: 991px){
  .hero{padding-top:140px;}
  .float-badge{left:8px; bottom:-16px; padding:.7rem 1rem;}
  .process-line{display:none;}
  .trust-pill{grid-template-columns:repeat(2, 1fr);}
  .image-panel img{height:360px;}
  .project-card p,
  .testimonial-card p{min-height:auto;}
}
@media (max-width: 575px){
  .hero-stats{gap:1.4rem;}
  .trust-pill{grid-template-columns:1fr;}
  .trust-pill span{min-height:52px;}
  .solution-image{height:130px;}
  .project-card img,
  .image-panel img{height:260px;}
  .scheme-card,
  .info-panel{padding:1.35rem;}
  .area-grid{grid-template-columns:1fr;}
  .hero h1{font-size:clamp(2.2rem, 13vw, 3.2rem);}
}

/* focus visibility */
a:focus-visible, button:focus-visible{outline:2px solid var(--orange-2); outline-offset:3px;}
/* Extracted utility classes formerly declared inline in HTML. */
.solar-toggler{border-color:var(--gold);}
.solar-toggler-icon{filter:invert(1) sepia(1) saturate(3) hue-rotate(0deg);}
.footer-description{color:var(--muted); font-size:.92rem; max-width:320px;}
.legal-line{color:var(--muted); font-size:.95rem;}
.legal-line a{color:var(--muted); text-decoration:none;}
.legal-line a:hover{color:var(--orange-2);}
.legal-line-spaced{margin-bottom:.4rem;}
.muted-copy{color:var(--muted);}
.copy-wide-520{max-width:520px;}
.copy-wide-560{max-width:560px;}
.icon-size-md{font-size:1.3rem;}
.muted-small{font-size:.88rem; color:var(--muted);}
.icon-orange{font-size:1.3rem; color:var(--orange);}
.enquiry-top-pad{padding-top:9rem;}
