:root{
    --burgundy:#9F0F2A;
    --burgundy-dark:#7A0B21;
    --charcoal:#1C1C1E;
    --charcoal-soft:#3A3A3D;
    --sand:#F6F4F0;
    --white:#FFFFFF;
    --brass:#8A7355;
    --amber:#C97D2C;
    --steel:#3E5C76;
    --olive:#5C6B4F;
    --line:rgba(28,28,30,0.12);
    --serif-scale: 1;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;
    background:var(--sand);
    color:var(--charcoal);
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit; text-decoration:none;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}

  /* ===== HEADER ===== */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    background:rgba(246,244,240,0.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .nav{display:flex; align-items:center; justify-content:space-between; height:76px;}
  .logo{
    font-weight:800; font-size:15px; letter-spacing:2.5px; text-transform:uppercase;
    display:flex; align-items:center; gap:10px;
  }
  .logo .mark{
    width:28px;height:28px;border:1.5px solid var(--burgundy);
    display:flex;align-items:center;justify-content:center;
    font-family:Georgia, serif; font-weight:700; font-size:14px; color:var(--burgundy);
    transform:rotate(45deg);
  }
  .logo .mark span{transform:rotate(-45deg);}
  .logo .sub{font-weight:300; letter-spacing:1.5px; color:var(--charcoal-soft); font-size:10px; display:block; margin-top:2px;}
  nav.links{display:flex; gap:36px; font-size:13px; font-weight:600; letter-spacing:0.5px; text-transform:uppercase;}
  nav.links a{position:relative; padding:4px 0; opacity:0.75; transition:opacity .2s;}
  nav.links a:hover{opacity:1;}
  nav.links a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1.5px;background:var(--burgundy);transition:width .25s;}
  nav.links a:hover::after{width:100%;}
  .nav-cta{
    font-size:12px; font-weight:700; letter-spacing:1px; text-transform:uppercase;
    border:1px solid var(--charcoal); padding:10px 20px;
    transition:all .2s;
  }
  .nav-cta:hover{background:var(--charcoal); color:var(--white);}

  /* ===== HERO ===== */
  .hero{
    padding:180px 0 90px;
    position:relative;
    overflow:hidden;
  }
  .hero::before{
    content:'';
    position:absolute; top:0; right:-10%; width:60%; height:100%;
    background-image:
      linear-gradient(var(--line) 1px, transparent 1px),
      linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size:40px 40px;
    -webkit-mask-image:linear-gradient(to left, black, transparent 70%);
    mask-image:linear-gradient(to left, black, transparent 70%);
    pointer-events:none;
  }
  .eyebrow{
    font-size:12px; font-weight:700; letter-spacing:3px; text-transform:uppercase;
    color:var(--burgundy); margin-bottom:22px; display:flex; align-items:center; gap:10px;
  }
  .eyebrow::before{content:'';width:28px;height:1.5px;background:var(--burgundy);display:inline-block;}
  .hero h1{
    font-size:clamp(38px, 5.4vw, 68px);
    font-weight:800; line-height:1.04; letter-spacing:-1.5px;
    max-width:820px; color:var(--charcoal);
  }
  .hero h1 em{font-style:normal; color:var(--burgundy);}
  .hero-sub{
    font-size:18px; font-weight:300; line-height:1.6; color:var(--charcoal-soft);
    max-width:520px; margin-top:26px;
  }
  .hero-actions{display:flex; gap:16px; margin-top:42px; align-items:center;}
  .btn-primary{
    background:var(--burgundy); color:var(--white); padding:16px 30px;
    font-size:13px; font-weight:700; letter-spacing:1px; text-transform:uppercase;
    transition:background .2s;
  }
  .btn-primary:hover{background:var(--burgundy-dark);}
  .btn-ghost{
    font-size:13px; font-weight:700; letter-spacing:1px; text-transform:uppercase;
    border-bottom:1.5px solid var(--charcoal); padding-bottom:4px;
  }

  .hero-stats{
    display:grid; grid-template-columns:repeat(3,1fr);
    margin-top:90px; border-top:1px solid var(--line); padding-top:32px;
    max-width:820px;
  }
  .hero-stats div{border-left:1px solid var(--line); padding-left:24px;}
  .hero-stats div:first-child{border-left:none; padding-left:0;}
  .hero-stats .num{font-size:34px; font-weight:800; color:var(--charcoal); letter-spacing:-1px;}
  .hero-stats .lbl{font-size:12px; font-weight:500; color:var(--charcoal-soft); margin-top:6px; letter-spacing:0.3px;}

  /* ===== SECTION GENERIC ===== */
  section{padding:110px 0;}
  .section-head{max-width:640px; margin-bottom:70px;}
  .section-head .eyebrow{margin-bottom:18px;}
  .section-head h2{font-size:clamp(30px,3.4vw,42px); font-weight:800; letter-spacing:-1px; line-height:1.1;}
  .section-head p{font-size:16px; font-weight:300; color:var(--charcoal-soft); margin-top:18px; line-height:1.6;}

  /* ===== SERVICES / LIFECYCLE (signature element) ===== */
  .services{background:var(--charcoal); color:var(--sand);}
  .services .section-head p{color:rgba(246,244,240,0.65);}
  .services .eyebrow{color:#D98A9C;}
  .services .eyebrow::before{background:#D98A9C;}

  .lifecycle{position:relative; margin-top:40px;}
  .lifecycle-track{
    position:absolute; top:17px; left:0; right:0; height:1px;
    background:rgba(246,244,240,0.2);
  }
  .lifecycle-track::after{
    content:''; position:absolute; top:0; left:0; height:1px; width:100%;
    background:var(--burgundy);
    transform-origin:left; transform:scaleX(0);
    animation:trace 1.8s ease forwards .3s;
  }
  @keyframes trace{to{transform:scaleX(1);}}
  .stages{display:grid; grid-template-columns:repeat(4,1fr); gap:28px; position:relative;}
  .stage{padding-top:52px; position:relative;}
  .stage .node{
    position:absolute; top:0; left:0; width:35px; height:35px;
    border:1.5px solid var(--burgundy); background:var(--charcoal);
    display:flex; align-items:center; justify-content:center;
    font-size:12px; font-weight:700; color:var(--sand);
  }
  .stage h3{font-size:17px; font-weight:700; margin-bottom:10px; letter-spacing:-0.2px;}
  .stage p{font-size:14px; font-weight:300; line-height:1.55; color:rgba(246,244,240,0.6);}

  /* ===== PROJECTS ===== */
  .projects-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
  .proj-card{
    background:var(--white); padding:36px 30px; min-height:230px;
    display:flex; flex-direction:column;
    transition:background .2s;
  }
  .proj-card:hover{background:#fff;}
  .proj-tag{font-size:10px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--brass);}
  .proj-card h3{font-size:20px; font-weight:800; margin-top:14px; letter-spacing:-0.3px; line-height:1.2;}
  .proj-card .meta{font-size:13px; font-weight:300; color:var(--charcoal-soft); margin-top:14px; line-height:1.5;}
  .proj-card .loc{font-size:11px; font-weight:600; letter-spacing:0.5px; text-transform:uppercase; color:var(--burgundy); margin-top:20px;}

  /* ===== MARKETS ===== */
  .markets{background:var(--sand); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .markets-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:70px; align-items:center;}
  .market-map{
    position:relative; aspect-ratio:1/1; border:1px solid var(--line); background:var(--white);
    display:flex; align-items:center; justify-content:center;
  }
  .market-map .grid-lines{
    position:absolute; inset:0;
    background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size:32px 32px;
  }
  .route-dot{position:absolute; width:10px; height:10px; border-radius:50%; background:var(--burgundy);}
  .route-dot.active{width:14px;height:14px; box-shadow:0 0 0 5px rgba(159,15,42,0.15);}
  .route-line{position:absolute; border-top:1.5px dashed var(--brass);}
  .route-label{position:absolute; font-size:11px; font-weight:700; letter-spacing:0.5px; text-transform:uppercase;}

  .market-list{display:flex; flex-direction:column; gap:0;}
  .market-item{padding:26px 0; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:baseline; gap:20px;}
  .market-item:last-child{border-bottom:1px solid var(--line);}
  .market-item h4{font-size:19px; font-weight:800; letter-spacing:-0.3px;}
  .market-item .status{font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; white-space:nowrap;}
  .status.active{color:var(--burgundy);}
  .status.dev{color:var(--brass);}
  .market-item p{font-size:14px; font-weight:300; color:var(--charcoal-soft); margin-top:8px; max-width:420px;}

  /* ===== COMPANY ===== */
  .company-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:80px;}
  .company-quote{font-size:26px; font-weight:300; line-height:1.5; letter-spacing:-0.3px; color:var(--charcoal);}
  .company-quote b{font-weight:800; color:var(--burgundy);}
  .company-facts{display:grid; grid-template-columns:1fr 1fr; gap:30px 40px; margin-top:40px;}
  .fact{border-top:1px solid var(--line); padding-top:16px;}
  .fact .k{font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--brass);}
  .fact .v{font-size:15px; font-weight:600; margin-top:8px;}

  /* ===== CONTACT ===== */
  .contact{background:var(--charcoal); color:var(--sand);}
  .contact-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:80px; align-items:end;}
  .contact h2{font-size:clamp(32px,4vw,54px); font-weight:800; letter-spacing:-1.5px; line-height:1.05;}
  .contact-sub{font-size:16px; font-weight:300; color:rgba(246,244,240,0.6); margin-top:20px; max-width:440px;}
  .contact-details{display:flex; flex-direction:column; gap:22px;}
  .cd{border-top:1px solid rgba(246,244,240,0.15); padding-top:16px;}
  .cd .k{font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:#D98A9C;}
  .cd .v{font-size:16px; font-weight:500; margin-top:8px;}
  .contact-cta{margin-top:44px;}

  /* ===== FOOTER ===== */
  footer{padding:36px 0; position:relative;}
  footer::before{
    content:''; position:absolute; top:0; left:0; right:0; height:3px;
    background:linear-gradient(90deg, #009246 33.3%, var(--white) 33.3%, var(--white) 66.6%, #CE2B37 66.6%);
  }
  .footer-row{display:flex; justify-content:space-between; align-items:center; font-size:12px; color:rgba(246,244,240,0.5); font-weight:300;}
  .footer-row a{opacity:0.7;}

  @media (max-width:860px){
    .stages{grid-template-columns:1fr 1fr;}
    .projects-grid{grid-template-columns:1fr 1fr;}
    .markets-grid, .company-grid, .contact-grid{grid-template-columns:1fr; gap:40px;}
    nav.links{display:none;}
    .hero-stats{grid-template-columns:1fr; gap:20px;}
    .hero-stats div{border-left:none; padding-left:0; border-top:1px solid var(--line); padding-top:16px;}
    .hero-stats div:first-child{border-top:none;}
  }
/* ===== INNER PAGE HERO ===== */
.page-hero{padding:170px 0 70px; position:relative; overflow:hidden;}
.page-hero::before{
  content:'';
  position:absolute; top:0; right:-10%; width:55%; height:100%;
  background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size:40px 40px;
  -webkit-mask-image:linear-gradient(to left, black, transparent 70%);
  mask-image:linear-gradient(to left, black, transparent 70%);
  pointer-events:none;
}
.page-hero h1{font-size:clamp(34px,4.6vw,54px); font-weight:800; letter-spacing:-1.3px; line-height:1.06; max-width:760px;}
.page-hero .lead{font-size:17px; font-weight:300; line-height:1.6; color:var(--charcoal-soft); max-width:560px; margin-top:22px;}
.crumb{font-size:12px; font-weight:600; letter-spacing:1px; color:var(--charcoal-soft); margin-bottom:20px;}
.crumb a{color:var(--burgundy);}

/* ===== SERVICE DETAIL ROWS ===== */
.service-detail{border-top:1px solid var(--line);}
.service-row{
  display:grid; grid-template-columns:100px 1fr 1.2fr; gap:40px;
  padding:52px 0; border-bottom:1px solid var(--line); align-items:start;
}
.service-row .snum{font-size:14px; font-weight:700; color:var(--burgundy); letter-spacing:0.5px; padding-top:4px;}
.service-row h3{font-size:24px; font-weight:800; letter-spacing:-0.4px; line-height:1.15;}
.service-row .stagline{font-size:12px; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:var(--brass); margin-top:10px;}
.service-row p{font-size:15.5px; font-weight:300; line-height:1.7; color:var(--charcoal-soft);}
.service-row ul{margin-top:18px; padding-left:0; list-style:none;}
.service-row li{font-size:14px; font-weight:400; color:var(--charcoal); padding:8px 0 8px 20px; position:relative; border-top:1px solid var(--line);}
.service-row li:first-child{border-top:none;}
.service-row li::before{content:'—'; position:absolute; left:0; color:var(--burgundy);}

/* ===== CAPABILITY STRIP ===== */
.cap-strip{background:var(--white); border:1px solid var(--line); display:grid; grid-template-columns:repeat(3,1fr);}
.cap-item{padding:34px 30px; border-left:1px solid var(--line);}
.cap-item:first-child{border-left:none;}
.cap-item .k{font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--brass);}
.cap-item .v{font-size:15px; font-weight:600; margin-top:10px; line-height:1.4;}

/* ===== PROJECT DETAIL CARD (projects page) ===== */
.proj-detail{border-top:1px solid var(--line);}
.proj-row{display:grid; grid-template-columns:1fr 1.6fr; gap:50px; padding:48px 0; border-bottom:1px solid var(--line);}
.proj-row .pnum{font-size:12px; font-weight:700; letter-spacing:1px; color:var(--brass); text-transform:uppercase;}
.proj-row h3{font-size:26px; font-weight:800; letter-spacing:-0.4px; margin-top:14px;}
.proj-row .ploc{font-size:12px; font-weight:600; letter-spacing:0.5px; text-transform:uppercase; color:var(--burgundy); margin-top:14px;}
.proj-row .pdesc{font-size:15px; font-weight:300; line-height:1.7; color:var(--charcoal-soft);}
.proj-row .ptags{display:flex; gap:10px; margin-top:18px; flex-wrap:wrap;}
.ptag{font-size:11px; font-weight:600; letter-spacing:0.5px; text-transform:uppercase; border:1px solid var(--line); padding:6px 12px; color:var(--charcoal-soft);}

/* ===== CONTACT FORM (mockup, non-functional) ===== */
.contact-form{display:flex; flex-direction:column; gap:22px; margin-top:40px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:22px;}
.field label{display:block; font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:rgba(246,244,240,0.55); margin-bottom:10px;}
.field input, .field textarea, .field select{
  width:100%; background:transparent; border:none; border-bottom:1px solid rgba(246,244,240,0.25);
  color:var(--sand); font-family:inherit; font-size:15px; padding:10px 0; outline:none;
}
.field textarea{resize:none; height:90px;}
.field input::placeholder, .field textarea::placeholder{color:rgba(246,244,240,0.3);}
.form-submit{
  align-self:flex-start; margin-top:10px; background:var(--burgundy); color:var(--white);
  padding:16px 34px; font-size:13px; font-weight:700; letter-spacing:1px; text-transform:uppercase; border:none; cursor:pointer;
}

/* ===== OFFICE CARDS ===== */
.office-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:60px;}
.office-card{background:var(--white); padding:40px;}
.office-card .k{font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--brass);}
.office-card h4{font-size:20px; font-weight:800; margin-top:14px;}
.office-card .addr{font-size:14px; font-weight:300; line-height:1.7; color:var(--charcoal-soft); margin-top:14px;}
.office-card .photo-placeholder{margin-top:20px; height:120px;}

/* ===== COMPANY TIMELINE (about page) ===== */
.evo{border-top:1px solid var(--line); margin-top:20px;}
.evo-row{display:grid; grid-template-columns:140px 1fr; gap:40px; padding:36px 0; border-bottom:1px solid var(--line);}
.evo-row .eyr{font-size:15px; font-weight:800; color:var(--burgundy);}
.evo-row h4{font-size:18px; font-weight:700; margin-bottom:8px;}
.evo-row p{font-size:14.5px; font-weight:300; line-height:1.65; color:var(--charcoal-soft); max-width:520px;}

@media (max-width:860px){
  .service-row, .proj-row, .evo-row{grid-template-columns:1fr !important; gap:16px;}
  .cap-strip{grid-template-columns:1fr;}
  .cap-item{border-left:none; border-top:1px solid var(--line);}
  .cap-item:first-child{border-top:none;}
  .office-grid, .form-row{grid-template-columns:1fr;}
}

/* ===== ICONS ===== */
.icon-box{
  width:52px; height:52px; border:1.5px solid var(--burgundy);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  background:rgba(159,15,42,0.05);
}
.icon-box svg{width:26px; height:26px;}
.services .icon-box{border-color:#D98A9C; background:rgba(217,138,156,0.08);}
.services .icon-box svg{stroke:#D98A9C;}
.icon-box svg{stroke:var(--burgundy); fill:none; stroke-width:1.6;}

.stage-icon-row{display:flex; align-items:center; gap:16px; margin-bottom:18px;}
.stage-icon-row .node{position:static;}

/* sector color coding */
.sector-dot{display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:8px; vertical-align:middle;}
.sector-dot.oil{background:var(--burgundy);}
.sector-dot.gas{background:var(--amber);}
.sector-dot.chem{background:var(--olive);}
.sector-dot.fuel{background:var(--steel);}

/* ===== HERO ILLUSTRATION ===== */
.hero-illustration{position:absolute; top:80px; right:0; width:44%; height:80%; opacity:0.95; pointer-events:none;}
@media (max-width:1050px){.hero-illustration{display:none;}}

/* ===== TEXTURED BAND (photo-substitute) ===== */
.texture-band{
  position:relative; height:280px; overflow:hidden;
  background:linear-gradient(120deg, var(--charcoal) 0%, var(--burgundy-dark) 55%, var(--charcoal) 100%);
}
.texture-band svg{width:100%; height:100%; display:block;}
.texture-caption{
  position:absolute; bottom:28px; left:32px; color:var(--sand);
  font-size:12px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; opacity:0.75;
}

/* ===== ILLUSTRATED PROJECT CARD ===== */
.proj-card .p-illus{width:100%; height:64px; margin-bottom:16px;}
.proj-card .p-illus svg{width:100%; height:100%;}

.proj-row-illus{width:64px; height:64px; flex-shrink:0;}
.proj-icon-wrap{display:flex; align-items:flex-start; gap:20px;}

/* colorful section backgrounds */
.section-tint-amber{background:linear-gradient(180deg, rgba(201,125,44,0.06), transparent);}
.section-tint-steel{background:linear-gradient(180deg, rgba(62,92,118,0.06), transparent);}

/* ===== PHOTO PLACEHOLDER ===== */
.photo-placeholder{
  position:relative;
  background:repeating-linear-gradient(45deg, rgba(28,28,30,0.05), rgba(28,28,30,0.05) 10px, rgba(28,28,30,0.02) 10px, rgba(28,28,30,0.02) 20px);
  border:1.5px dashed rgba(28,28,30,0.28);
  display:flex; align-items:center; justify-content:center;
  color:var(--charcoal-soft);
  overflow:hidden;
}
.photo-placeholder .ph-label{
  text-align:center; font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase;
  display:flex; flex-direction:column; align-items:center; gap:10px; padding:16px;
}
.photo-placeholder .ph-label svg{width:28px; height:28px; opacity:0.5;}
.photo-placeholder .ph-dim{font-size:10px; font-weight:500; letter-spacing:0.5px; opacity:0.55; text-transform:none; margin-top:2px;}

.photo-placeholder.on-dark{
  background:repeating-linear-gradient(45deg, rgba(246,244,240,0.06), rgba(246,244,240,0.06) 10px, rgba(246,244,240,0.02) 10px, rgba(246,244,240,0.02) 20px);
  border-color:rgba(246,244,240,0.3);
  color:rgba(246,244,240,0.65);
}

.ph-hero{width:100%; height:440px;}
.ph-band{width:100%; height:100%;}
.ph-card{width:100%; height:150px; margin-bottom:16px;}
.ph-row{width:180px; height:140px; flex-shrink:0;}
.ph-square{width:100%; height:220px;}

@media (max-width:860px){
  .ph-hero{height:280px;}
  .ph-row{width:100%; height:180px;}
}
@media (max-width:1050px){.hero-photo-slot{display:none;}}

/* ===== TOP UTILITY BAR ===== */
.topbar{background:var(--charcoal); color:rgba(246,244,240,0.75); font-size:11.5px; font-weight:500; position:fixed; top:0; left:0; right:0; z-index:101;}
.topbar .wrap{display:flex; justify-content:space-between; align-items:center; height:34px;}
.topbar a{opacity:0.85;}
.topbar a:hover{opacity:1;}
.lang-switch{display:flex; gap:6px; align-items:center;}
.lang-switch a{padding:2px 6px; letter-spacing:0.5px; font-weight:700;}
.lang-switch a.active{color:var(--sand); border-bottom:1.5px solid var(--burgundy);}
.lang-switch span{opacity:0.3;}
.topbar-links{display:flex; gap:22px;}

/* Adjust header offset since topbar now precedes it */
header{top:34px;}
.hero, .page-hero, .contact[style]{ }
body{padding-top:0;}

/* ===== LOGO IMAGE ===== */
.logo-img{height:46px; width:auto; display:block;}
.logo-img.on-dark{height:38px;}

/* ===== SECTOR GRID (icon cards) ===== */
.sector-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.sector-card{background:var(--white); padding:34px 26px; display:flex; flex-direction:column; gap:16px;}
.sector-card .icon-box{width:44px; height:44px;}
.sector-card .icon-box svg{width:22px;height:22px;}
.sector-card h4{font-size:16px; font-weight:800; letter-spacing:-0.2px;}
.sector-card p{font-size:13.5px; font-weight:300; color:var(--charcoal-soft); line-height:1.55;}

/* ===== PILLARS (approach) ===== */
.pillars{display:grid; grid-template-columns:repeat(3,1fr); gap:44px;}
.pillar .pnum2{font-size:12px; font-weight:700; letter-spacing:1.5px; color:var(--burgundy); margin-bottom:14px;}
.pillar h4{font-size:19px; font-weight:800; margin-bottom:12px; letter-spacing:-0.3px;}
.pillar p{font-size:14.5px; font-weight:300; line-height:1.65; color:var(--charcoal-soft);}

/* ===== ACCREDITATION STRIP ===== */
.accred-strip{background:var(--white); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.accred-row{display:flex; align-items:center; justify-content:space-between; gap:30px; padding:34px 0; flex-wrap:wrap;}
.accred-item{display:flex; align-items:center; gap:14px;}
.accred-item .badge{
  width:40px; height:40px; border:1.5px solid var(--brass); border-radius:50%;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.accred-item .badge svg{width:18px;height:18px; stroke:var(--brass); fill:none; stroke-width:1.6;}
.accred-item .txt .t1{font-size:13px; font-weight:700; letter-spacing:0.2px;}
.accred-item .txt .t2{font-size:11.5px; font-weight:400; color:var(--charcoal-soft); margin-top:2px;}

/* ===== FAQ ===== */
.faq-item{border-top:1px solid var(--line); padding:26px 0;}
.faq-item:last-child{border-bottom:1px solid var(--line);}
.faq-item .q{font-size:16px; font-weight:700; letter-spacing:-0.1px; display:flex; gap:14px;}
.faq-item .q .qm{color:var(--burgundy); font-weight:800;}
.faq-item .a{font-size:14.5px; font-weight:300; color:var(--charcoal-soft); line-height:1.65; margin-top:12px; padding-left:26px;}

/* ===== FILTER CHIPS ===== */
.chip-row{display:flex; gap:10px; flex-wrap:wrap; margin-top:28px;}
.chip{
  font-size:12px; font-weight:600; letter-spacing:0.4px; text-transform:uppercase;
  padding:9px 18px; border:1px solid var(--line); color:var(--charcoal-soft);
}
.chip.active{background:var(--charcoal); color:var(--sand); border-color:var(--charcoal);}

/* ===== MINI STAT STRIP (page-level) ===== */
.mini-stats{display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:50px 0;}
.mini-stat{padding:26px 24px; border-left:1px solid var(--line);}
.mini-stat:first-child{border-left:none;}
.mini-stat .num{font-size:28px; font-weight:800; color:var(--burgundy); letter-spacing:-0.5px;}
.mini-stat .lbl{font-size:12px; font-weight:500; color:var(--charcoal-soft); margin-top:6px;}

/* ===== MEGA FOOTER ===== */
.mega-footer{background:var(--charcoal); color:rgba(246,244,240,0.7); padding-top:70px;}
.mega-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:40px; padding-bottom:50px; border-bottom:1px solid rgba(246,244,240,0.12);}
.mega-col h5{font-size:11px; font-weight:700; letter-spacing:1.3px; text-transform:uppercase; color:#D98A9C; margin-bottom:20px;}
.mega-col a, .mega-col p{display:block; font-size:13.5px; font-weight:300; color:rgba(246,244,240,0.68); margin-bottom:12px; line-height:1.5;}
.mega-col a:hover{color:var(--sand);}
.mega-brand p{font-size:13.5px; font-weight:300; line-height:1.65; max-width:280px; color:rgba(246,244,240,0.6); margin-top:18px;}
.mega-social{display:flex; gap:12px; margin-top:22px;}
.mega-social a{
  width:34px; height:34px; border:1px solid rgba(246,244,240,0.25); border-radius:50%;
  display:flex; align-items:center; justify-content:center; margin:0;
}
.mega-social a svg{width:15px;height:15px; stroke:rgba(246,244,240,0.7); fill:none; stroke-width:1.6;}
.mega-bottom{padding:20px 0; position:relative;}
.mega-bottom::before{
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, #009246 33.3%, var(--white) 33.3%, var(--white) 66.6%, #CE2B37 66.6%);
}
.mega-bottom-row{display:flex; justify-content:space-between; align-items:center; font-size:12px; color:rgba(246,244,240,0.5); font-weight:300; padding-top:20px;}

@media (max-width:960px){
  .mega-grid{grid-template-columns:1fr 1fr; gap:36px;}
  .sector-grid{grid-template-columns:1fr 1fr;}
  .pillars{grid-template-columns:1fr; gap:30px;}
  .mini-stats{grid-template-columns:1fr 1fr;}
  .accred-row{justify-content:flex-start;}
}
@media (max-width:600px){
  .mega-grid{grid-template-columns:1fr;}
  .mini-stats{grid-template-columns:1fr;}
}

/* ===== LEGAL FOOTER LINE ===== */
.legal-line{
  border-top:1px solid rgba(246,244,240,0.1); padding-top:8px; margin-top:8px;
  font-size:11px; font-weight:300; color:rgba(246,244,240,0.4); line-height:1.5;
  text-align:center;
}

/* ===== LEAN HERO (trimmed homepage) ===== */
.lean-hero{padding:200px 0 120px; min-height:78vh; display:flex; align-items:center; position:relative; overflow:hidden;}
.lean-hero .wrap{width:100%;}
.lean-nav-links{display:flex; gap:16px; margin-top:48px; flex-wrap:wrap;}
.lean-nav-links a{
  font-size:13px; font-weight:700; letter-spacing:0.5px; text-transform:uppercase;
  border:1px solid var(--line); padding:14px 26px; color:var(--charcoal); transition:all .2s;
}
.lean-nav-links a:hover{border-color:var(--charcoal); background:var(--charcoal); color:var(--white);}

/* ===== ENTRY-FLEXIBILITY CALLOUT ===== */
.flex-callout{
  background:var(--charcoal); color:var(--sand); padding:20px 30px;
  display:flex; align-items:center; gap:18px; margin-top:20px;
  border-left:3px solid var(--burgundy);
}
.flex-callout .fc-icon{
  width:36px; height:36px; border:1.5px solid rgba(217,138,156,0.5); flex-shrink:0;
  display:flex; align-items:center; justify-content:center; border-radius:50%;
}
.flex-callout .fc-icon svg{width:17px; height:17px; stroke:#D98A9C; fill:none; stroke-width:1.6;}
.flex-callout p{font-size:14px; font-weight:300; line-height:1.5;}
.flex-callout p b{font-weight:700; color:#fff;}

/* ===== ADDITIONAL SERVICES GRID ===== */
.addsvc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.addsvc-card{background:var(--white); padding:36px 30px;}
.addsvc-card .icon-box{margin-bottom:20px;}
.addsvc-card h4{font-size:18px; font-weight:800; margin-bottom:12px; letter-spacing:-0.2px;}
.addsvc-card p{font-size:14px; font-weight:300; line-height:1.65; color:var(--charcoal-soft);}

/* ===== PROCUREMENT FLOW DIAGRAM ===== */
.flow-diagram{margin-top:50px;}
.flow-track{display:grid; grid-template-columns:repeat(5,1fr); gap:0; position:relative;}
.flow-step{position:relative; padding:0 14px; text-align:center;}
.flow-step .fnode{
  width:64px; height:64px; border-radius:50%; background:var(--burgundy); color:var(--white);
  display:flex; align-items:center; justify-content:center; margin:0 auto 18px;
  position:relative; z-index:2;
}
.flow-step .fnode svg{width:26px;height:26px; stroke:#fff; fill:none; stroke-width:1.6;}
.flow-step h5{font-size:14.5px; font-weight:800; margin-bottom:8px;}
.flow-step p{font-size:12.5px; font-weight:300; color:var(--charcoal-soft); line-height:1.5;}
.flow-track::before{
  content:''; position:absolute; top:32px; left:10%; right:10%; height:1.5px;
  background:var(--line); z-index:1;
}

/* ===== MAP EMBED ===== */
.map-embed{width:100%; height:220px; border:1px solid var(--line); margin-top:20px; filter:grayscale(0.3);}
.map-embed iframe{width:100%; height:100%; border:0; display:block;}
.map-placeholder{
  width:100%; height:220px; border:1.5px dashed var(--brass); margin-top:20px;
  display:flex; align-items:center; justify-content:center; background:rgba(138,115,85,0.04);
}
.map-placeholder .ph-label{color:var(--brass);}

/* ===== CHAR COUNTER ===== */
.char-counter{
  font-size:11px; font-weight:500; color:rgba(246,244,240,0.4); text-align:right; margin-top:6px;
}
.char-counter.near-limit{color:#D98A9C;}

/* ===== BIG PHOTO PLACEHOLDER (projects) ===== */
.ph-row-big{width:260px; height:190px; flex-shrink:0;}
@media (max-width:960px){.ph-row-big{width:100%; height:200px;}}

/* ===== COMPANY LEGAL BOX ===== */
.legal-box{background:var(--sand); border:1px solid var(--line); padding:32px 36px; margin-top:40px;}
.legal-box .lb-title{font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--brass); margin-bottom:18px;}
.legal-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px 30px;}
.legal-item{border-top:1px solid var(--line); padding-top:12px; font-size:13px;}
.legal-item .lk{font-weight:700; color:var(--charcoal-soft); display:block; margin-bottom:3px; font-size:11px; text-transform:uppercase; letter-spacing:0.4px;}
.legal-item .lv{font-weight:500;}

@media (max-width:860px){
  .addsvc-grid{grid-template-columns:1fr;}
  .flow-track{grid-template-columns:1fr; gap:30px;}
  .flow-track::before{display:none;}
  .flex-callout{flex-direction:column; text-align:center; padding:20px;}
  .legal-grid{grid-template-columns:1fr;}
}

/* ===== FAQ CTA BANNER (large, high-contrast) ===== */
.faq-banner{
  background:var(--burgundy); color:var(--white);
  padding:56px 48px; display:flex; align-items:center; justify-content:space-between;
  gap:32px; flex-wrap:wrap;
}
.faq-banner .fb-left{display:flex; align-items:center; gap:24px;}
.faq-banner .fb-icon{
  width:64px; height:64px; border:2px solid rgba(255,255,255,0.4); border-radius:50%;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.faq-banner .fb-icon svg{width:30px; height:30px; stroke:#fff; fill:none; stroke-width:1.6;}
.faq-banner h3{font-size:26px; font-weight:800; letter-spacing:-0.3px; margin-bottom:6px;}
.faq-banner p{font-size:15px; font-weight:300; color:rgba(255,255,255,0.85);}
.faq-banner .btn-faq{
  background:var(--white); color:var(--burgundy); padding:18px 36px;
  font-size:14px; font-weight:800; letter-spacing:0.5px; text-transform:uppercase;
  white-space:nowrap; transition:transform .15s;
}
.faq-banner .btn-faq:hover{transform:scale(1.04);}
@media (max-width:700px){
  .faq-banner{flex-direction:column; text-align:center; padding:40px 28px;}
  .faq-banner .fb-left{flex-direction:column;}
}
