:root{
  --pb-black:#0a0a0a;
  --pb-black-soft:#141414;
  --pb-card:#1a1a1a;
  --pb-orange:#f4791e;
  --pb-orange-dark:#d4650f;
  --pb-white:#ffffff;
  --pb-gray:#a8a8a8;
  --pb-border:#2a2a2a;
  --pb-radius:14px;
  --pb-font: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

*{box-sizing:border-box;}
body{
  background:var(--pb-black);
  color:var(--pb-white);
  font-family:var(--pb-font);
  margin:0;
  line-height:1.6;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.container{max-width:1140px;margin:0 auto;padding:0 24px;}
.pb-section{padding:70px 0;}
.pb-section-alt{background:var(--pb-black-soft);}

/* Buttons */
.pb-btn{
  display:inline-block;
  padding:14px 30px;
  border-radius:999px;
  font-weight:600;
  cursor:pointer;
  border:none;
  transition:all .2s ease;
}
.pb-btn-primary{background:var(--pb-orange);color:var(--pb-black);}
.pb-btn-primary:hover{background:var(--pb-orange-dark);}
.pb-btn-outline{background:transparent;border:2px solid var(--pb-orange);color:var(--pb-orange);}
.pb-btn-outline:hover{background:var(--pb-orange);color:var(--pb-black);}

/* Header */
.pb-header{
  position:sticky;top:0;z-index:100;
  background:rgba(10,10,10,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--pb-border);
}
.pb-header-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 24px;max-width:1140px;margin:0 auto;
}
.pb-logo{font-weight:800;font-size:22px;letter-spacing:.5px;}
.pb-logo span{color:var(--pb-orange);}
.pb-nav ul{list-style:none;display:flex;gap:28px;margin:0;padding:0;}
.pb-nav a{font-weight:500;}
.pb-nav a:hover{color:var(--pb-orange);}
.pb-menu-toggle{display:none;background:none;border:none;color:var(--pb-white);font-size:26px;cursor:pointer;}

@media(max-width:820px){
  .pb-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--pb-black-soft);border-bottom:1px solid var(--pb-border);}
  .pb-nav.pb-open{display:block;}
  .pb-nav ul{flex-direction:column;padding:20px 24px;gap:16px;}
  .pb-menu-toggle{display:block;}
}

/* Hero */
.pb-hero{
  padding:110px 0 90px;
  text-align:center;
  background:radial-gradient(circle at 50% -10%, rgba(244,121,30,.18), transparent 60%);
}
.pb-hero h1{font-size:clamp(32px,5vw,56px);font-weight:800;margin:0 0 18px;}
.pb-hero h1 span{color:var(--pb-orange);}
.pb-hero p{color:var(--pb-gray);max-width:560px;margin:0 auto 32px;font-size:18px;}
.pb-hero-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}

/* Section headings */
.pb-heading{text-align:center;margin-bottom:48px;}
.pb-heading .pb-eyebrow{color:var(--pb-orange);font-weight:600;text-transform:uppercase;letter-spacing:1.5px;font-size:13px;}
.pb-heading h2{font-size:clamp(26px,3.5vw,38px);margin:8px 0 0;font-weight:800;}
.pb-heading p{color:var(--pb-gray);max-width:520px;margin:14px auto 0;}

/* What we do grid */
.pb-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.pb-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
@media(max-width:900px){.pb-grid-3,.pb-grid-4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.pb-grid-3,.pb-grid-4{grid-template-columns:1fr;}}

.pb-card{
  background:var(--pb-card);
  border:1px solid var(--pb-border);
  border-radius:var(--pb-radius);
  padding:32px 26px;
  transition:transform .2s ease, border-color .2s ease;
}
.pb-card:hover{transform:translateY(-4px);border-color:var(--pb-orange);}
.pb-card .pb-icon{
  width:52px;height:52px;border-radius:14px;
  background:rgba(244,121,30,.15);color:var(--pb-orange);
  display:flex;align-items:center;justify-content:center;
  font-size:24px;margin-bottom:18px;
}
.pb-card h3{margin:0 0 10px;font-size:19px;}
.pb-card p{color:var(--pb-gray);margin:0;font-size:15px;}

/* Partners strip */
.pb-partners-strip{
  display:flex;align-items:center;justify-content:center;
  gap:48px;flex-wrap:wrap;opacity:.85;
}
.pb-partners-strip img{max-height:44px;width:auto;filter:grayscale(1) brightness(1.6);opacity:.7;transition:opacity .2s;}
.pb-partners-strip img:hover{opacity:1;filter:none;}

/* Services */
.pb-service-card{
  background:var(--pb-card);border:1px solid var(--pb-border);border-radius:var(--pb-radius);
  padding:28px;display:flex;flex-direction:column;gap:14px;
}
.pb-service-card .pb-badge{
  align-self:flex-start;font-size:12px;font-weight:700;text-transform:uppercase;
  padding:4px 12px;border-radius:999px;letter-spacing:.5px;
}
.pb-badge-paynow{background:rgba(244,121,30,.18);color:var(--pb-orange);}
.pb-badge-quote{background:rgba(255,255,255,.08);color:var(--pb-gray);}
.pb-service-card h3{margin:0;font-size:20px;}
.pb-service-card p{color:var(--pb-gray);font-size:15px;margin:0;flex-grow:1;}
.pb-service-price{font-size:24px;font-weight:800;color:var(--pb-white);}
.pb-service-price span{font-size:14px;color:var(--pb-gray);font-weight:400;}

/* Testimonials */
.pb-testimonial-card{
  background:var(--pb-card);border:1px solid var(--pb-border);border-radius:var(--pb-radius);
  padding:28px;
}
.pb-testimonial-card .pb-stars{color:var(--pb-orange);margin-bottom:12px;font-size:15px;}
.pb-testimonial-card p{font-style:italic;color:#ddd;margin:0 0 20px;}
.pb-testimonial-author{display:flex;align-items:center;gap:12px;}
.pb-testimonial-author img{width:44px;height:44px;border-radius:50%;object-fit:cover;}
.pb-testimonial-author strong{display:block;font-size:15px;}
.pb-testimonial-author span{color:var(--pb-gray);font-size:13px;}

/* Portfolio */
.pb-portfolio-card{position:relative;border-radius:var(--pb-radius);overflow:hidden;border:1px solid var(--pb-border);}
.pb-portfolio-card img{width:100%;height:260px;object-fit:cover;}
.pb-portfolio-overlay{
  position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.9),transparent 55%);
  display:flex;flex-direction:column;justify-content:flex-end;padding:22px;
}
.pb-portfolio-overlay h3{margin:0 0 4px;font-size:18px;}
.pb-portfolio-overlay span{color:var(--pb-orange);font-size:13px;font-weight:600;}

/* Forms */
.pb-form{display:flex;flex-direction:column;gap:16px;max-width:520px;}
.pb-form input,.pb-form textarea,.pb-form select{
  background:var(--pb-black-soft);border:1px solid var(--pb-border);color:var(--pb-white);
  padding:14px 16px;border-radius:10px;font-family:inherit;font-size:15px;width:100%;
}
.pb-form input:focus,.pb-form textarea:focus,.pb-form select:focus{outline:none;border-color:var(--pb-orange);}
.pb-form label{font-size:14px;color:var(--pb-gray);margin-bottom:-8px;}
.pb-form-msg{padding:12px 16px;border-radius:10px;font-size:14px;display:none;}
.pb-form-msg.success{background:rgba(80,200,120,.15);color:#7fe0a0;display:block;}
.pb-form-msg.error{background:rgba(220,80,80,.15);color:#ff9d9d;display:block;}

/* Modal (booking/quote) */
.pb-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);display:none;align-items:center;justify-content:center;z-index:1000;padding:20px;}
.pb-modal-overlay.pb-active{display:flex;}
.pb-modal{background:var(--pb-black-soft);border:1px solid var(--pb-border);border-radius:var(--pb-radius);padding:32px;max-width:480px;width:100%;position:relative;max-height:90vh;overflow-y:auto;}
.pb-modal-close{position:absolute;top:16px;right:20px;background:none;border:none;color:var(--pb-gray);font-size:22px;cursor:pointer;}
.pb-modal h3{margin-top:0;}

/* Footer */
.pb-footer{background:var(--pb-black-soft);border-top:1px solid var(--pb-border);padding:50px 0 24px;margin-top:60px;}
.pb-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:32px;margin-bottom:36px;}
@media(max-width:700px){.pb-footer-grid{grid-template-columns:1fr;}}
.pb-footer h4{font-size:15px;margin:0 0 14px;color:var(--pb-white);}
.pb-footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}
.pb-footer a{color:var(--pb-gray);font-size:14px;}
.pb-footer a:hover{color:var(--pb-orange);}
.pb-footer-bottom{border-top:1px solid var(--pb-border);padding-top:20px;text-align:center;color:var(--pb-gray);font-size:13px;}

/* Utility */
.pb-text-center{text-align:center;}
.pb-mt-0{margin-top:0;}
.pb-empty-note{color:var(--pb-gray);text-align:center;padding:30px;border:1px dashed var(--pb-border);border-radius:var(--pb-radius);}
