:root{
  --orange:#f4622a;
  --navy:#1b2a4a;
  --grey-text:#666;
  --light-bg:#f7f7f7;
}

*{margin:0;padding:0;box-sizing:border-box;}

body{
  font-family:'Poppins',Arial,sans-serif;
  color:#333;
  line-height:1.6;
}

img{max-width:100%;display:block;}

.container{
  max-width:1200px;
  margin:0 auto;
  padding:0 40px;
}

h1,h2,h3{font-family:'Playfair Display',Georgia,serif;}

.btn{
  display:inline-block;
  padding:14px 38px;
  border-radius:4px;
  font-weight:600;
  text-decoration:none;
  transition:background .2s,color .2s;
}
.btn-primary{background:var(--orange);color:#fff;}
.btn-primary:hover{background:#d94f1f;}
.btn-outline{border:2px solid #fff;color:#fff;background:transparent;}
.btn-outline:hover{background:#fff;color:var(--orange);}

/* Header */
.site-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 40px;
  background:#fff;
  box-shadow:0 2px 6px rgba(0,0,0,.08);
  position:sticky;
  top:0;
  z-index:100;
  flex-wrap:wrap;
}

.logo{display:block;}
.logo img{height:64px;width:auto;}

.nav-toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;
  border:none;
  cursor:pointer;
  padding:6px;
}
.nav-toggle span{width:26px;height:3px;background:var(--navy);border-radius:2px;}

.main-nav ul{
  display:flex;
  list-style:none;
  gap:28px;
}
.main-nav a{
  text-decoration:none;
  color:#666;
  font-size:15px;
  font-weight:500;
  transition:color .2s;
}
.main-nav a:hover,.main-nav a.active{color:var(--orange);}

.social-icons{display:flex;gap:10px;}
.social-icons a{
  width:34px;height:34px;
  border-radius:50%;
  background:#8a8a8a;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s;
}
.social-icons a:hover{background:var(--orange);}
.social-icons svg{width:16px;height:16px;fill:#fff;}

/* Hero */
.hero{
  position:relative;
  height:88vh;
  min-height:520px;
  overflow:hidden;
}
.hero-slide{
  position:absolute;
  inset:0;
  opacity:0;
  overflow:hidden;
  transition:opacity 1s ease;
}
.hero-slide.active{opacity:1;}
.hero-slide-bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  transform:scale(1);
}
.hero-slide.active .hero-slide-bg{
  animation:heroZoom 7s ease-in-out forwards;
}
@keyframes heroZoom{
  from{transform:scale(1);}
  to{transform:scale(1.1);}
}
.hero-slide::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(rgba(0,0,0,.15),rgba(0,0,0,.35));
}

.hero-content{
  position:absolute;
  inset:0;
  z-index:2;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:0 20px;
  gap:22px;
}
.hero-content h1{
  background:rgba(210,210,210,.55);
  color:#2b2b2b;
  font-size:clamp(22px,4vw,42px);
  font-weight:700;
  padding:22px 40px;
  max-width:1000px;
}
.hero-quote{
  background:rgba(255,255,255,.55);
  font-family:'Playfair Display',serif;
  font-size:20px;
  color:#333;
  padding:14px 40px;
}

.hero-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
  background:rgba(0,0,0,.35);
  color:#fff;
  border:none;
  width:44px;height:44px;
  border-radius:50%;
  font-size:16px;
  cursor:pointer;
  transition:background .2s;
}
.hero-arrow:hover{background:rgba(0,0,0,.6);}
.hero-arrow.prev{left:20px;}
.hero-arrow.next{right:20px;}

.hero-dots{
  position:absolute;
  bottom:22px;
  left:50%;
  transform:translateX(-50%);
  z-index:3;
  display:flex;
  gap:12px;
}
.hero-dots .dot{
  width:12px;height:12px;
  border-radius:50%;
  border:2px solid var(--orange);
  background:transparent;
  cursor:pointer;
  padding:0;
}
.hero-dots .dot.active{background:var(--orange);}

/* Welcome */
.welcome{padding:80px 0;}
.welcome-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:center;
}
.welcome-text h2{color:var(--orange);font-size:32px;margin-bottom:14px;}
.welcome-text h3{font-size:19px;margin-bottom:18px;}
.welcome-text p{color:var(--grey-text);font-size:15px;margin-bottom:16px;}
.call-us{margin-top:10px;}
.call-label{color:var(--orange);font-weight:700;margin-right:8px;}
.call-number{font-weight:600;color:#333;}
.welcome-image img{border-radius:6px;box-shadow:0 6px 20px rgba(0,0,0,.12);}

/* Consultation */
.consultation{position:relative;}
.consultation-media{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;}
.consultation-media video{
  width:100%;height:100%;
  object-fit:cover;
}
.consultation-media-overlay{
  position:absolute;inset:0;
  background:rgba(0,0,0,.05);
}
.consultation-bar{
  position:relative;
  background:var(--orange);
  padding:36px 0 0;
}
.consultation-bar-inner{
  display:flex;
  align-items:center;
  gap:26px;
  padding-bottom:30px;
  flex-wrap:wrap;
}
.consultation-icon{
  width:70px;height:70px;
  min-width:70px;
  border:2px solid #fff;
  border-radius:6px;
  display:flex;align-items:center;justify-content:center;
}
.consultation-icon svg{width:32px;height:32px;fill:#fff;}
.consultation-text{flex:1;min-width:220px;}
.consultation-text h3{color:#fff;font-size:26px;margin-bottom:6px;}
.consultation-text p{color:#fff;opacity:.9;font-size:14px;}
.ruler-strip{
  height:14px;
  background-image:repeating-linear-gradient(90deg,#fff 0 2px,transparent 2px 14px);
  opacity:.6;
}

/* Sections generic */
.section-title{
  text-align:center;
  color:var(--orange);
  font-size:30px;
  margin:0 0 50px;
}
.projects{padding:80px 0;}
.projects-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;
}
.project-item{
  overflow:hidden;
  border-radius:6px;
  box-shadow:0 4px 14px rgba(0,0,0,.1);
}
.project-item img{
  height:200px;
  width:100%;
  object-fit:cover;
  transition:transform .35s;
}
.project-item:hover img{transform:scale(1.08);}

/* Team */
.team{padding:60px 0 80px;background:#fbfbfb;}
.team-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,260px));
  justify-content:center;
  gap:40px;
}
.team-card{
  text-align:center;
  background:#fff;
  border-bottom:4px solid var(--orange);
  box-shadow:0 4px 14px rgba(0,0,0,.08);
  padding-bottom:20px;
  border-radius:4px;
  overflow:hidden;
}
.team-photo{overflow:hidden;}
.team-photo img{width:100%;height:auto;display:block;}
.team-card h3{color:var(--orange);font-size:18px;margin:18px 0 4px;font-family:'Poppins',sans-serif;font-weight:700;}
.team-card p{color:var(--grey-text);font-size:13px;letter-spacing:.5px;}

/* Stats */
.stats{background:var(--light-bg);padding:50px 0;}
.stats-grid{
  display:flex;
  justify-content:space-around;
  text-align:center;
  flex-wrap:wrap;
  gap:20px;
}
.stat-item{
  padding:0 20px;
  border-left:1px solid #ddd;
}
.stat-item:first-child{border-left:none;}
.stat-number{display:block;font-size:34px;font-weight:700;color:#222;}
.stat-label{display:block;color:var(--grey-text);margin-top:6px;}

/* Footer */
.site-footer{
  background:#333;
  color:#fff;
  text-align:center;
  padding:18px 0;
  font-size:13px;
}

/* Inner page hero */
.page-hero{
  position:relative;
  height:60vh;
  min-height:380px;
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:center;
  justify-content:center;
}
.page-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.45);
}
.page-hero h1{
  position:relative;
  z-index:1;
  color:#fff;
  font-size:clamp(28px,4vw,48px);
  font-weight:400;
}

/* Intro / policy sections */
.intro{padding:70px 0;background:var(--light-bg);text-align:center;}
.intro .section-title{margin-bottom:30px;}
.intro p{max-width:950px;margin:0 auto 20px;color:var(--grey-text);text-align:left;}

.two-col{padding:70px 0;}
.two-col .container{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:center;
}
.two-col h2{color:var(--orange);font-size:30px;margin-bottom:18px;}
.two-col p{color:var(--grey-text);margin-bottom:16px;}
.two-col ul{color:var(--grey-text);padding-left:20px;}
.two-col ul li{margin-bottom:8px;}
.two-col img{border-radius:6px;box-shadow:0 6px 20px rgba(0,0,0,.12);}
.two-col.reverse .container{direction:rtl;}
.two-col.reverse .container > *{direction:ltr;}

.policy{padding:70px 0;text-align:center;}
.policy p{max-width:950px;margin:0 auto 16px;color:var(--grey-text);text-align:left;}
.policy ul{max-width:950px;margin:0 auto;padding-left:20px;color:var(--grey-text);text-align:left;}
.policy ul li{margin-bottom:10px;}

/* Journey timeline */
.journey{padding:70px 0;background:var(--light-bg);}
.journey .section-title{text-align:left;}
.journey-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px 60px;
  margin-top:20px;
}
.journey-item h3{color:#999;font-size:24px;font-weight:400;margin-bottom:10px;}
.journey-item p{color:var(--grey-text);}

/* Team members detailed */
.team-members{padding:70px 0;}
.team-member{
  padding:26px 0;
  border-bottom:1px solid #eee;
}
.team-member h3{color:#333;font-size:19px;letter-spacing:.5px;margin-bottom:6px;}
.team-member .role{color:#3aa0c8;font-weight:600;font-size:13px;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase;}
.team-member .qual{color:var(--orange);font-size:14px;margin-bottom:10px;}
.team-member p.desc{color:var(--grey-text);font-size:14px;}

.team-members-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px 40px;
  margin-top:10px;
}
.team-members-grid .team-member{border-bottom:none;padding:0;}

/* What we do / Why us */
.split{padding:70px 0;background:var(--light-bg);}
.split .container{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  position:relative;
}
.split .container::before{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  bottom:0;
  width:1px;
  background:var(--orange);
}
.split h2{color:var(--orange);font-size:26px;letter-spacing:1px;margin-bottom:24px;}
.split h4{color:#333;font-weight:700;margin-bottom:6px;}
.split .item{margin-bottom:22px;}
.split p{color:var(--grey-text);margin-bottom:16px;}

/* Clients carousel */
.clients{padding:70px 0;text-align:center;}
.clients-carousel{
  display:flex;
  align-items:center;
  gap:20px;
  max-width:1100px;
  margin:0 auto;
}
.clients-arrow{
  background:none;
  border:none;
  color:var(--orange);
  font-size:22px;
  cursor:pointer;
  flex-shrink:0;
}
.clients-track-wrap{overflow:hidden;flex:1;}
.clients-track{display:flex;transition:transform .5s ease;}
.clients-slide{
  min-width:100%;
  display:flex;
  justify-content:space-around;
  align-items:center;
  gap:20px;
}
.clients-slide img{max-height:70px;width:auto;margin:0 auto;object-fit:contain;}

@media (max-width:900px){
  .two-col .container{grid-template-columns:1fr;}
  .two-col.reverse .container{direction:ltr;}
  .journey-grid{grid-template-columns:1fr;}
  .team-members-grid{grid-template-columns:1fr 1fr;}
  .split .container{grid-template-columns:1fr;}
  .split .container::before{display:none;}
  .clients-slide{flex-wrap:wrap;}
}
@media (max-width:600px){
  .team-members-grid{grid-template-columns:1fr;}
}

/* Services alternating rows */
.service-rows{padding:70px 0 30px;}
.service-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:50px;
  align-items:center;
  margin-bottom:50px;
}
.service-row.reverse .service-row-img{order:2;}
.service-row.reverse .service-row-text{order:1;}
.service-row-img img{border-radius:6px;box-shadow:0 6px 20px rgba(0,0,0,.12);}
.service-row-text h3{color:var(--orange);font-size:22px;margin-bottom:12px;}
.service-row-text p{color:var(--grey-text);}

.material-tests{padding:20px 0 60px;text-align:center;}
.material-tests h3{color:var(--orange);font-size:22px;text-align:left;margin-bottom:24px;}
.material-thumbs{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:16px;
}
.material-thumbs img{border-radius:4px;aspect-ratio:1;object-fit:cover;}

.data-table-section{padding:40px 0;}
.data-table-section h3{color:var(--orange);text-align:center;font-size:26px;margin-bottom:26px;}
.data-table-wrap{overflow-x:auto;}
table.data-table{
  width:100%;
  border-collapse:collapse;
  margin-bottom:10px;
}
table.data-table th,table.data-table td{
  border:1px solid var(--orange);
  padding:12px 14px;
  text-align:center;
  font-size:14px;
  color:#333;
}
table.data-table th{font-weight:700;background:rgba(244,98,42,.06);}
.data-table-section.alt{background:#eaf4fb;}

/* Contact page */
.info-section{padding:70px 0;}
.contact-info-cards{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
}
.info-card{
  background:var(--light-bg);
  text-align:center;
  padding:34px 20px;
  border-radius:4px;
}
.info-card img{width:48px;height:48px;margin:0 auto 16px;}
.info-card h3{color:var(--orange);font-size:18px;margin-bottom:12px;}
.info-card p{color:var(--grey-text);font-size:14px;}

.contact-form-section{background:var(--light-bg);padding:70px 0;}
.contact-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
}
.contact-form-text h2{color:var(--orange);font-size:30px;margin-bottom:16px;}
.contact-form-text p{color:var(--grey-text);margin-bottom:24px;}
.contact-form-text hr{border:none;border-top:3px solid var(--orange);width:70px;margin:0 0 20px;}
.contact-form-text .call-now-label{color:var(--orange);margin-bottom:6px;}
.contact-form-text .call-now-number{font-size:28px;font-weight:700;color:#222;margin-bottom:10px;}
.contact-form-text .assistance{color:var(--grey-text);font-size:14px;}

.contact-form input,.contact-form textarea{
  width:100%;
  padding:14px 16px;
  margin-bottom:16px;
  border:1px solid #ddd;
  border-radius:2px;
  font-family:inherit;
  font-size:14px;
}
.contact-form textarea{min-height:140px;resize:vertical;}
.contact-form button{
  background:var(--orange);
  color:#fff;
  border:none;
  padding:14px 34px;
  font-weight:600;
  border-radius:2px;
  cursor:pointer;
}
.contact-form button:hover{background:#d94f1f;}

.social-bar{
  position:relative;
  background-size:cover;
  background-position:center;
  padding:36px 0;
}
.social-bar::after{content:"";position:absolute;inset:0;background:rgba(10,20,40,.75);}
.social-bar .container{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:20px;
}
.social-bar h2{color:#fff;font-size:24px;font-weight:400;}
.social-bar .social-icons a{
  border-radius:4px;
  background:transparent;
  border:1px solid #fff;
  width:38px;height:38px;
}
.social-bar .social-icons a:hover{background:var(--orange);border-color:var(--orange);}

@media (max-width:900px){
  .service-row{grid-template-columns:1fr;}
  .service-row.reverse .service-row-img{order:1;}
  .service-row.reverse .service-row-text{order:2;}
  .material-thumbs{grid-template-columns:repeat(3,1fr);}
  .contact-info-cards{grid-template-columns:1fr 1fr;}
  .contact-form-grid{grid-template-columns:1fr;}
}
@media (max-width:600px){
  .contact-info-cards{grid-template-columns:1fr;}
}

/* 404 page */
.error-page{padding:100px 0;}
.error-page-inner{text-align:center;}
.error-code{
  font-family:'Playfair Display',serif;
  font-size:120px;
  font-weight:700;
  color:var(--orange);
  line-height:1;
}
.error-page-inner h1{font-size:32px;margin:10px 0 16px;}
.error-page-inner p{color:var(--grey-text);margin-bottom:30px;}

/* Scroll reveal */
.reveal{
  opacity:0;
  transform:translateY(40px);
  transition:opacity .7s ease,transform .7s ease;
}
.reveal.reveal-left{transform:translateX(-50px);}
.reveal.reveal-right{transform:translateX(50px);}
.reveal.in-view{opacity:1;transform:translate(0,0);}

/* Responsive */
@media (max-width:900px){
  .welcome-grid{grid-template-columns:1fr;}
  .projects-grid{grid-template-columns:repeat(2,1fr);}
}

@media (max-width:768px){
  .nav-toggle{display:flex;}
  .main-nav{
    width:100%;
    order:3;
    max-height:0;
    overflow:hidden;
    transition:max-height .3s ease;
  }
  .main-nav.open{max-height:300px;}
  .main-nav ul{flex-direction:column;gap:0;text-align:center;padding:10px 0;}
  .main-nav a{display:block;padding:10px 0;}
  .projects-grid{grid-template-columns:1fr;}
  .consultation-bar-inner{justify-content:center;text-align:center;}
}
