/* ======================================================
   BAR E.C.E. — inner pages & theme additions
   Extends the approved demo language (main.css).
====================================================== */

/* ------------------------------------------------------
   ACCESSIBILITY
------------------------------------------------------ */

.skip-link{
  position:absolute;
  left:-9999px;
  top:0;
  z-index:1000;
  padding:12px 20px;
  background:var(--purple-dark);
  color:#fff;
  border-radius:0 0 10px 0;
  font-weight:600;
}

.skip-link:focus{
  left:0;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:2px solid var(--red);
  outline-offset:2px;
}

/* ------------------------------------------------------
   LANGUAGE SWITCHER STATES
------------------------------------------------------ */

.lang a{
  transition:color .25s;
}

.lang a:hover{
  color:var(--red-light);
}

.lang .lang-current{
  color:#fff;
  font-weight:700;
}

.lang .lang-missing{
  opacity:.4;
  cursor:not-allowed;
}

.mobile-lang{
  display:inline-block;
  margin-top:26px;
  padding:0;
  border:0;
  color:rgba(255,255,255,.75);
  font-size:14px;
  letter-spacing:.12em;
}

.footer-lang .lang-current{
  color:#fff;
  font-weight:600;
}

.footer-lang .lang-missing{
  opacity:.4;
}

/* ------------------------------------------------------
   FOOTER LINKS
------------------------------------------------------ */

footer li a{
  transition:color .25s;
}

footer li a:hover{
  color:#fff;
}

/* ------------------------------------------------------
   CARD LINK WRAPPERS (dynamic content)
------------------------------------------------------ */

.project-card-link,
.news-card-link{
  display:block;
  height:100%;
  color:inherit;
}

.project-meta-line{
  margin-top:8px;
  font-size:13px;
  color:rgba(255,255,255,.65);
  letter-spacing:.04em;
}

.section-more{
  margin-top:46px;
  display:flex;
  justify-content:center;
}

.cta-kicker{
  color:#ff7771;
}

/* ------------------------------------------------------
   IMAGE PLACEHOLDER (elegant empty state)
------------------------------------------------------ */

.image-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  min-height:280px;
  background:
    linear-gradient(135deg,var(--purple-dark),var(--purple-2) 60%,var(--purple-3));
  position:relative;
  overflow:hidden;
}

.image-placeholder::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:44px 44px;
}

.image-placeholder span{
  font-family:Manrope,sans-serif;
  font-weight:800;
  font-size:clamp(20px,3vw,30px);
  letter-spacing:.14em;
  color:rgba(255,255,255,.35);
}

.about-placeholder{
  aspect-ratio:4/3;
}

/* ------------------------------------------------------
   PAGE HERO (inner pages)
------------------------------------------------------ */

.page-hero{
  position:relative;
  padding:clamp(150px,18vh,200px) 0 clamp(56px,8vh,90px);
  background:
    linear-gradient(160deg,var(--purple-black) 0%,var(--purple-dark) 55%,var(--purple) 130%);
  color:#fff;
  overflow:hidden;
}

.page-hero-grid{
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:52px 52px;
  mask-image:radial-gradient(ellipse at 30% 0%,black 30%,transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse at 30% 0%,black 30%,transparent 75%);
}

.page-hero .container{
  position:relative;
}

.page-hero h1{
  font-family:Manrope,sans-serif;
  font-weight:800;
  font-size:clamp(34px,5.4vw,62px);
  line-height:1.06;
  letter-spacing:-.03em;
  margin:14px 0 0;
  max-width:16ch;
}

.page-hero-text{
  margin-top:20px;
  max-width:56ch;
  font-size:clamp(15px,1.4vw,17px);
  line-height:1.7;
  color:rgba(255,255,255,.72);
}

.page-hero .section-kicker{
  color:#ff7771;
}

.project-hero-meta{
  display:flex;
  gap:22px;
  flex-wrap:wrap;
  margin-top:18px;
  font-size:14px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,.6);
}

/* ------------------------------------------------------
   BREADCRUMBS
------------------------------------------------------ */

.breadcrumbs{
  margin-bottom:22px;
}

.breadcrumbs ol{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  list-style:none;
  margin:0;
  padding:0;
  font-size:13px;
  letter-spacing:.05em;
  color:rgba(255,255,255,.55);
}

.breadcrumbs li:not(:last-child)::after{
  content:"/";
  margin-left:6px;
  opacity:.5;
}

.breadcrumbs a{
  transition:color .25s;
}

.breadcrumbs a:hover{
  color:#fff;
}

/* ------------------------------------------------------
   ARCHIVE LAYOUTS
------------------------------------------------------ */

.archive-section{
  background:var(--bg);
}

.archive-filters{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:44px;
}

.filter-pill{
  padding:9px 20px;
  border:1px solid var(--line);
  border-radius:100px;
  background:#fff;
  font-size:13.5px;
  font-weight:600;
  letter-spacing:.03em;
  color:var(--muted);
  transition:all .25s;
}

.filter-pill:hover,
.filter-pill.is-active{
  background:var(--purple);
  border-color:var(--purple);
  color:#fff;
}

.projects-archive-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;
}

.projects-archive-grid .project{
  min-height:340px;
  aspect-ratio:4/3;
}

.archive-pagination{
  margin-top:54px;
  display:flex;
  justify-content:center;
}

.archive-pagination .nav-links{
  display:flex;
  gap:8px;
}

.archive-pagination .page-numbers{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  height:42px;
  padding:0 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  font-weight:600;
  color:var(--text);
  transition:all .25s;
}

.archive-pagination .page-numbers.current,
.archive-pagination .page-numbers:hover{
  background:var(--purple);
  border-color:var(--purple);
  color:#fff;
}

.archive-empty{
  padding:60px 0;
  text-align:center;
  color:var(--muted);
  font-size:17px;
}

/* ------------------------------------------------------
   SINGLE PROJECT
------------------------------------------------------ */

.project-featured-image{
  margin-top:-34px;
  position:relative;
  z-index:2;
}

.project-featured-image img{
  border-radius:20px;
  box-shadow:var(--shadow);
  width:100%;
  max-height:560px;
  object-fit:contain;
  background:#f4f2fb;
}

.project-body-grid{
  display:grid;
  grid-template-columns:1.55fr .8fr;
  gap:clamp(36px,5vw,72px);
  align-items:start;
}

.project-section{
  margin-bottom:44px;
}

.project-section h2{
  font-family:Manrope,sans-serif;
  font-weight:800;
  font-size:clamp(22px,2.6vw,30px);
  letter-spacing:-.02em;
  margin:0 0 16px;
  padding-left:18px;
  border-left:3px solid var(--red);
}

.project-details{
  position:sticky;
  top:110px;
  padding:32px;
  background:var(--bg);
  border:1px solid var(--line);
  border-radius:18px;
}

.project-details h3{
  font-family:Manrope,sans-serif;
  font-weight:800;
  font-size:18px;
  margin:0 0 20px;
}

.project-details dl{
  margin:0;
}

.project-details dt{
  font-size:11.5px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--muted);
}

.project-details dd{
  margin:4px 0 18px;
  font-size:15px;
  font-weight:500;
}

.project-details dd:last-child{
  margin-bottom:0;
}

.project-gallery-section{
  background:var(--bg);
}

.project-gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}

.project-gallery-grid figure{
  margin:0;
  border-radius:16px;
  overflow:hidden;
  box-shadow:var(--shadow);
}

.project-gallery-grid img{
  aspect-ratio:4/3;
  object-fit:cover;
  transition:transform .6s cubic-bezier(.2,.7,.2,1);
}

.project-gallery-grid figure:hover img{
  transform:scale(1.05);
}

/* ------------------------------------------------------
   SINGLE SERVICE
------------------------------------------------------ */

.service-body-grid{
  display:grid;
  grid-template-columns:1.55fr .8fr;
  gap:clamp(36px,5vw,72px);
  align-items:start;
}

.service-capabilities{
  position:sticky;
  top:110px;
  padding:32px;
  background:var(--purple-dark);
  border-radius:18px;
  color:#fff;
}

.service-capabilities h3{
  font-family:Manrope,sans-serif;
  font-weight:800;
  font-size:18px;
  margin:0 0 20px;
}

.service-capabilities ul{
  list-style:none;
  margin:0;
  padding:0;
}

.service-capabilities li{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,.1);
  font-size:14.5px;
  line-height:1.5;
}

.service-capabilities li:last-child{
  border-bottom:0;
}

.service-capabilities svg{
  width:19px;
  height:19px;
  flex:0 0 19px;
  margin-top:2px;
  stroke:var(--red-light);
}

/* ------------------------------------------------------
   NEWS SINGLE / GENERIC PAGES
------------------------------------------------------ */

.container-narrow{
  max-width:800px;
}

.post-featured-image{
  margin-top:-34px;
  position:relative;
  z-index:2;
}

.post-featured-image img{
  border-radius:20px;
  box-shadow:var(--shadow);
  aspect-ratio:21/10;
  object-fit:cover;
}

.entry-content{
  font-size:16.5px;
  line-height:1.8;
  color:var(--text);
}

.entry-content > * + *{
  margin-top:1.2em;
}

.entry-content h2,
.entry-content h3{
  font-family:Manrope,sans-serif;
  font-weight:800;
  letter-spacing:-.02em;
  margin-top:1.8em;
}

.entry-content h2{
  font-size:clamp(22px,2.6vw,29px);
}

.entry-content h3{
  font-size:clamp(18px,2vw,22px);
}

.entry-content a{
  color:var(--purple);
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:3px;
}

.entry-content a:hover{
  color:var(--red);
}

.entry-content ul,
.entry-content ol{
  padding-left:1.3em;
}

.entry-content li + li{
  margin-top:.5em;
}

.entry-content img{
  border-radius:14px;
}

.entry-content blockquote{
  margin:1.6em 0;
  padding:20px 26px;
  border-left:3px solid var(--red);
  background:var(--bg);
  border-radius:0 14px 14px 0;
  font-style:italic;
}

.related-section{
  background:var(--bg);
}

/* ------------------------------------------------------
   ABOUT PAGE
------------------------------------------------------ */

.about-page-grid{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:clamp(36px,5vw,72px);
  align-items:start;
}

.about-page-media{
  position:relative;
}

.about-page-media img,
.about-page-media .image-placeholder{
  border-radius:18px;
  box-shadow:var(--shadow);
  aspect-ratio:4/5;
  object-fit:cover;
}

.about-page-media .about-badge{
  position:absolute;
  right:-18px;
  bottom:34px;
}

.values-section{
  background:var(--bg);
}

.values-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:22px;
}

.value-card{
  padding:32px 28px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  transition:transform .35s,box-shadow .35s;
}

.value-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow);
}

.value-num{
  font-family:Manrope,sans-serif;
  font-weight:800;
  font-size:14px;
  color:var(--red);
  letter-spacing:.1em;
}

.value-card h3{
  margin:12px 0 10px;
  font-family:Manrope,sans-serif;
  font-weight:800;
  font-size:18.5px;
  letter-spacing:-.01em;
}

.value-card p{
  margin:0;
  font-size:14.5px;
  line-height:1.65;
  color:var(--muted);
}

/* ------------------------------------------------------
   CONTACT
------------------------------------------------------ */

.contact-section{
  background:var(--bg);
}

.contact-grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:clamp(36px,5vw,72px);
  align-items:start;
}

.contact-list{
  list-style:none;
  margin:26px 0 0;
  padding:0;
}

.contact-list li{
  display:grid;
  gap:3px;
  padding:16px 0;
  border-bottom:1px solid var(--line);
}

.contact-list strong{
  font-size:11.5px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--muted);
}

.contact-list a{
  font-weight:600;
  color:var(--purple);
}

.contact-list a:hover{
  color:var(--red);
}

.contact-map{
  margin-top:30px;
  border-radius:18px;
  overflow:hidden;
  box-shadow:var(--shadow);
}

.contact-map iframe{
  display:block;
  width:100%;
  height:280px;
  border:0;
}

.contact-form-wrap{
  padding:clamp(28px,4vw,44px);
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:var(--shadow);
}

.form-feedback{
  margin-bottom:24px;
  padding:14px 18px;
  border-radius:12px;
  font-weight:600;
  font-size:14.5px;
}

.form-feedback.is-success{
  background:#e8f6ec;
  color:#176a37;
  border:1px solid #bfe5cb;
}

.form-feedback.is-error{
  background:#fdecec;
  color:var(--red-dark);
  border:1px solid #f6c6c4;
}

.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.form-field{
  margin:0 0 18px;
}

.form-field label{
  display:block;
  margin-bottom:7px;
  font-size:13px;
  font-weight:600;
  letter-spacing:.02em;
}

.form-field .req{
  color:var(--red);
}

.form-field input,
.form-field select,
.form-field textarea{
  width:100%;
  padding:13px 16px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--bg);
  font:inherit;
  font-size:15px;
  color:var(--text);
  transition:border-color .25s,background .25s;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  border-color:var(--purple-3);
  background:#fff;
  outline:none;
}

.was-validated :invalid{
  border-color:var(--red);
}

.form-consent label{
  display:flex;
  gap:11px;
  align-items:flex-start;
  font-weight:500;
  font-size:14px;
  line-height:1.55;
  cursor:pointer;
}

.form-consent input{
  width:auto;
  margin-top:3px;
  accent-color:var(--red);
}

.form-submit{
  margin:6px 0 0;
}

.form-submit .btn{
  border:0;
  cursor:pointer;
}

.form-submit .btn.is-sending{
  opacity:.6;
  pointer-events:none;
}

/* Honeypot — off-screen, never display:none (some bots skip those). */
.cf-hp{
  position:absolute !important;
  left:-9999px !important;
  width:1px;
  height:1px;
  overflow:hidden;
}

/* ------------------------------------------------------
   404
------------------------------------------------------ */

.error-hero{
  min-height:72vh;
  display:flex;
  align-items:center;
  padding-top:120px;
}

.error-actions{
  margin-top:34px;
}

.btn-on-light{
  color:#fff;
}

/* ------------------------------------------------------
   RESPONSIVE
------------------------------------------------------ */

@media (max-width:1024px){

  .projects-archive-grid,
  .project-gallery-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .project-body-grid,
  .service-body-grid,
  .about-page-grid,
  .contact-grid{
    grid-template-columns:1fr;
  }

  .project-details,
  .service-capabilities{
    position:static;
  }

  .about-page-media .about-badge{
    right:16px;
  }

}

@media (max-width:640px){

  .projects-archive-grid,
  .project-gallery-grid{
    grid-template-columns:1fr;
  }

  .form-row{
    grid-template-columns:1fr;
  }

  .page-hero{
    padding-top:130px;
  }

}

@media (prefers-reduced-motion:reduce){

  .value-card,
  .project-gallery-grid img{
    transition:none !important;
  }

}

/* Fixed header offset under the WP admin bar */
body.admin-bar .site-header{
  top:32px;
}

@media (max-width:782px){
  body.admin-bar .site-header{
    top:46px;
  }
}

/* ======================================================
   LANGUAGE SWITCHER — FLAGS
====================================================== */

.lang{
  display:inline-flex;
  align-items:center;
  gap:10px;
}

.lang-item{
  display:inline-flex;
  align-items:center;
  line-height:0;
  opacity:.55;
  transition:opacity .2s,transform .2s;
}

.lang-item:hover{
  opacity:1;
}

.lang-item.lang-current{
  opacity:1;
}

.lang-item.lang-current .flag{
  box-shadow:0 0 0 2px var(--red);
}

.lang-item.lang-missing{
  opacity:.28;
  cursor:not-allowed;
}

.lang .flag{
  display:block;
  width:24px;
  height:16px;
  border-radius:2px;
  box-shadow:0 0 0 1px rgba(255,255,255,.25);
}

/* Flag-only: keep the MK/EN text for screen readers but hide it visually. */
.lang .lang-code{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
  border:0;
}

/* Footer + mobile variants sit on light/dark surfaces respectively. */
.footer-lang .flag{
  box-shadow:0 0 0 1px rgba(255,255,255,.2);
}

.mobile-lang{
  border-left:0;
  padding-left:0;
  margin-top:26px;
}

/* ======================================================
   LOGO IMAGE (when a custom logo is set)
====================================================== */

/* Professional inline SVG wordmark (default) — header is always dark, so white. */
.brand-logo{
  display:block;
  height:40px;
  width:auto;
  color:#fff;
}

.footer-logo .brand-logo{
  height:38px;
  color:#fff;
}

.logo-img{
  display:block;
  height:50px;
  width:auto;
  /* Header sits over dark heroes everywhere → render the mark white. */
  filter:brightness(0) invert(1);
}

.footer-logo-img{
  display:block;
  height:44px;
  width:auto;
  filter:brightness(0) invert(1);
}

.logo.logo-has-image{
  gap:0;
  line-height:0;
  padding:0;
  background:none;
  box-shadow:none;
}

.footer-logo.footer-logo-has-image{
  display:inline-block;
  line-height:0;
}

@media (max-width:520px){
  .logo-img{ height:42px; }
  .brand-logo{ height:34px; }
}

/* ======================================================
   FIX: the homepage "featured" project spans 2 rows via
   .project:first-child { grid-row:span 2 } — stop that from
   leaking into the projects archive grid.
====================================================== */

.projects-archive-grid .project,
.projects-archive-grid .project:first-child{
  grid-row:auto;
  min-height:0;
}

/* Custom contact form (e.g. Contact Form 7) inherits our field styling */
.contact-form-custom .wpcf7-form-control{
  width:100%;
  padding:13px 16px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--bg);
  font:inherit;
  font-size:15px;
}

.contact-form-custom .wpcf7-submit{
  width:auto;
  padding:14px 30px;
  border:0;
  border-radius:100px;
  background:var(--red);
  color:#fff;
  font-weight:600;
  cursor:pointer;
}

/* ======================================================
   MOBILE — kill horizontal overflow + centre key blocks
   ("да не бега на страна, да е поцентрирано")
====================================================== */

html,
body{
  overflow-x:hidden;
  max-width:100%;
}

@media (max-width:780px){

  /* Centre the hero on small screens */
  .hero-content{
    text-align:center;
    margin-inline:auto;
  }

  .hero-eyebrow{
    justify-content:center;
  }

  .hero-title{
    margin-inline:auto;
  }

  .hero-buttons{
    align-items:center !important;
    justify-content:center;
  }

  .hero-buttons .btn{
    width:100%;
    max-width:320px;
    justify-content:center;
  }

  .hero-meta{
    align-items:center;
    text-align:center;
  }

  /* Centre section intros */
  .section-heading{
    text-align:center;
  }

  .section-heading .section-more,
  .section-more{
    justify-content:center;
  }

  /* About block centred + contained */
  .about-content{
    text-align:center;
  }

  .about-content .section-kicker{
    justify-content:center;
  }

  .disciplines{
    max-width:340px;
    margin-inline:auto;
    text-align:left;
  }

  /* Page hero copy centred on mobile */
  .page-hero h1,
  .page-hero-text{
    margin-inline:auto;
  }

  .archive-filters{
    justify-content:center;
  }

}

@media (max-width:520px){

  /* THE overflow culprit: negative side margins pushed content off-screen */
  .system-visual{
    transform:scale(.82);
    margin:-30px auto !important;
    max-width:100%;
    overflow:hidden;
  }

  .integration,
  .about,
  .hero{
    overflow:hidden;
  }

  /* Keep the about red accent inside the viewport */
  .about-image{
    padding-right:14px;
  }

  .about-badge{
    right:8px !important;
  }

  .hero-buttons .btn{
    max-width:100%;
  }

}

/* ======================================================
   NAV DROPDOWNS (About Us → sub-pages)
====================================================== */

.main-nav .nav-item{
  position:relative;
  display:inline-flex;
  align-items:center;
}

.main-nav .nav-item > a{
  display:inline-flex;
  align-items:center;
  gap:3px;
}

.nav-caret{
  opacity:.55;
  transition:transform .25s;
}

.nav-item.has-children:hover .nav-caret{
  transform:rotate(180deg);
}

/* Hover bridge so the dropdown doesn't close in the gap */
.nav-item.has-children::after{
  content:"";
  position:absolute;
  top:100%;
  left:0;
  right:0;
  height:16px;
}

.main-nav .nav-sub{
  position:absolute;
  top:calc(100% + 14px);
  left:-14px;
  min-width:210px;
  display:flex;
  flex-direction:column;
  padding:8px;
  background:var(--purple-dark);
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  box-shadow:0 24px 50px rgba(12,7,40,.45);
  opacity:0;
  visibility:hidden;
  transform:translateY(6px);
  transition:opacity .22s,transform .22s,visibility .22s;
  z-index:200;
}

.nav-item.has-children:hover .nav-sub,
.nav-item.has-children:focus-within .nav-sub{
  opacity:1;
  visibility:visible;
  transform:none;
}

.main-nav .nav-sub a{
  padding:10px 14px;
  border-radius:9px;
  font-size:13px;
  color:rgba(255,255,255,.78);
  white-space:nowrap;
}

.main-nav .nav-sub a:hover{
  background:rgba(255,255,255,.08);
  color:#fff;
}

/* Kill the underline animation inside dropdowns */
.main-nav .nav-sub a:after{
  display:none !important;
}

/* ---- Mobile: stack sub-items indented ---- */
.mobile-nav .nav-item{
  display:block;
}

.mobile-nav .nav-item > a .nav-caret{
  display:none;
}

.mobile-nav .nav-sub{
  display:block;
  padding:0 0 10px 18px;
}

.mobile-nav .nav-sub a{
  font-size:clamp(18px,5vw,24px);
  letter-spacing:-1px;
  padding:12px 0;
  color:rgba(255,255,255,.72);
  border-bottom:1px solid rgba(255,255,255,.08);
}

/* ======================================================
   TEAM PAGE
====================================================== */

.team-grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:clamp(36px,5vw,72px);
  align-items:start;
}

.team-media img,
.team-media .image-placeholder{
  border-radius:18px;
  box-shadow:var(--shadow);
  aspect-ratio:4/3;
  object-fit:cover;
  width:100%;
}

@media (max-width:1024px){
  .team-grid{
    grid-template-columns:1fr;
  }
}

/* ======================================================
   PROJECT CARD — ensure title is readable (white on the
   dark image, above the gradient scrim)
====================================================== */

.project-content h3{
  color:#fff;
}

.project-content .project-meta-line{
  color:rgba(255,255,255,.72);
}

/* Guarantee the scrim covers the lower half for legibility */
.project-card .project-overlay{
  background:linear-gradient(180deg,transparent 28%,rgba(12,6,37,.92) 92%);
}

/* ======================================================
   SERVICES GRID — 3 columns (5 services split into 2 rows)
====================================================== */

.services-grid{
  grid-template-columns:repeat(3,1fr);
}

@media (max-width:900px){
  .services-grid{
    grid-template-columns:repeat(2,1fr);
  }
}

@media (max-width:600px){
  .services-grid{
    grid-template-columns:1fr;
  }
}

/* Projects archive: keep an even 3-column grid, no orphaned centering */
.projects-archive-grid{
  grid-template-columns:repeat(3,1fr);
}

@media (max-width:1024px){
  .projects-archive-grid{
    grid-template-columns:repeat(2,1fr);
  }
}

@media (max-width:600px){
  .projects-archive-grid{
    grid-template-columns:1fr;
  }
}

/* ======================================================
   MEGA MENU (Services / Projects) — icon grid dropdown
====================================================== */

.main-nav .nav-sub.nav-mega{
  left:50%;
  transform:translateX(-50%) translateY(6px);
  min-width:820px;
  max-width:calc(100vw - 40px);
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  padding:18px;
}

.nav-item.has-children:hover .nav-sub.nav-mega,
.nav-item.has-children:focus-within .nav-sub.nav-mega{
  transform:translateX(-50%) translateY(0);
}

/* Sectors mega has 3 items → one clean row */
.main-nav .nav-mega .mega-item{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:14px 16px;
  border-radius:12px;
  white-space:normal;
}

.main-nav .nav-mega .mega-item:hover{
  background:rgba(255,255,255,.07);
}

.mega-ic{
  flex:0 0 40px;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:var(--red);
  color:#fff;
}

.mega-ic svg{
  width:20px;
  height:20px;
  stroke:#fff;
  fill:none;
}

.mega-tx{
  display:flex;
  flex-direction:column;
  gap:2px;
  line-height:1.3;
}

.mega-tx strong{
  font-size:14px;
  font-weight:700;
  color:#fff;
}

.mega-tx small{
  font-size:11px;
  color:rgba(255,255,255,.55);
  letter-spacing:.2px;
}

.main-nav .nav-mega .mega-item:after{
  display:none !important;
}

/* ---- Mobile: mega items stack as simple rows ---- */
.mobile-nav .nav-mega{
  display:block;
  padding:0 0 10px 18px;
}

.mobile-nav .nav-mega .mega-item{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 0;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.mobile-nav .nav-mega .mega-ic{
  flex:0 0 34px;
  width:34px;
  height:34px;
}

.mobile-nav .nav-mega .mega-ic svg{
  width:17px;
  height:17px;
}

.mobile-nav .nav-mega .mega-tx strong{
  font-size:17px;
  letter-spacing:-.3px;
}

.mobile-nav .nav-mega .mega-tx small{
  font-size:12px;
}

/* ======================================================
   SERVICES ARCHIVE — centered 04/05, tighter cards, cross-link
====================================================== */

/* Reduce excess space between hero and cards */
.services-archive{
  padding-top:clamp(28px,4vw,48px);
}

/* Row 1: 01/02/03 · Row 2: 04/05 centered as a pair */
.services-grid-centered{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:24px;
}

.services-grid-centered .service{
  flex:0 1 calc((100% - 48px) / 3);
  max-width:calc((100% - 48px) / 3);
  min-height:272px;      /* baseline height; cards grow with content */
  height:auto;
  padding:28px 30px 26px;
  display:flex;
  flex-direction:column;
  overflow:visible;      /* never clip the CTA */
}

.services-grid-centered .service h3{
  font-size:22px;
  font-weight:700;
}

.services-grid-centered .service p{
  color:#4b4668;
  line-height:1.6;
  margin-top:10px;
  margin-bottom:18px;    /* guaranteed gap before the CTA */
}

.services-grid-centered .service .service-link{
  position:static;       /* override absolute → flows below the text */
  left:auto;
  bottom:auto;
  margin-top:auto;       /* pin to bottom of the flex column */
  padding-top:4px;
}

@media (max-width:900px){
  .services-grid-centered .service{
    flex:0 1 calc((100% - 24px) / 2);
    max-width:calc((100% - 24px) / 2);
  }
}

@media (max-width:600px){
  .services-grid-centered .service{
    flex:0 1 100%;
    max-width:100%;
    min-height:0;
  }
}

/* Services → Sectors cross-link */
.cross-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  margin-top:clamp(32px,4vw,56px);
  padding:clamp(24px,3vw,36px);
  border:1px solid var(--line);
  border-radius:16px;
  background:linear-gradient(180deg,#faf9ff,#f4f2fb);
}

.cross-link-text{
  max-width:640px;
  font-size:16px;
  line-height:1.6;
  color:#2b2550;
}

.cross-link-cta{
  flex:0 0 auto;
  white-space:nowrap;
}

@media (max-width:760px){
  .cross-link{
    flex-direction:column;
    align-items:flex-start;
  }
}

/* ======================================================
   HOME — SECTORS grid (3 cards, service-card language)
====================================================== */

.sectors-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.sector-card{
  display:flex;
  flex-direction:column;
  padding:30px;
  border:1px solid var(--line);
  background:#fff;
  border-radius:0;
  transition:transform .25s,box-shadow .25s,border-color .25s;
}

.sector-card:hover{
  transform:translateY(-4px);
  border-color:rgba(43,27,116,.28);
  box-shadow:0 20px 50px rgba(12,7,40,.10);
}

.sector-card h3{
  margin-top:18px;
  font-size:20px;
  font-weight:700;
  color:var(--purple-dark);
}

.sector-card p{
  margin-top:10px;
  color:#4b4668;
  line-height:1.6;
}

.sector-card .service-link{
  margin-top:auto;
  padding-top:18px;
}

/* ======================================================
   HOME — CLIENTS & PARTNERS (categories, no logos)
====================================================== */

.clients-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.client-card{
  display:flex;
  align-items:center;
  gap:16px;
  padding:24px 26px;
  border:1px solid var(--line);
  background:#fff;
}

.client-card h3{
  font-size:16px;
  font-weight:600;
  color:var(--purple-dark);
  line-height:1.35;
}

@media (max-width:900px){
  .sectors-grid,
  .clients-grid{
    grid-template-columns:1fr;
  }
}

/* ======================================================
   SECTOR — Areas of expertise list
====================================================== */

.sector-areas{
  margin-bottom:clamp(36px,4vw,56px);
  padding-bottom:clamp(28px,3vw,40px);
  border-bottom:1px solid var(--line);
}

.sector-areas h2{
  font-size:22px;
  margin-bottom:20px;
  color:var(--purple-dark);
}

.sector-areas-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px 32px;
}

.sector-areas-list li{
  position:relative;
  padding-left:26px;
  color:#2b2550;
  line-height:1.5;
}

.sector-areas-list li:before{
  content:"";
  position:absolute;
  left:0;
  top:7px;
  width:14px;
  height:10px;
  border-left:2px solid var(--red);
  border-bottom:2px solid var(--red);
  transform:rotate(-45deg);
}

@media (max-width:640px){
  .sector-areas-list{
    grid-template-columns:1fr;
  }
}

/* ======================================================
   SECTORS LANDING PAGE
====================================================== */

.sectors-landing{
  display:flex;
  flex-direction:column;
  gap:clamp(28px,4vw,48px);
}

.sector-panel{
  padding:clamp(26px,3.5vw,44px);
  border:1px solid var(--line);
  background:#fff;
}

.sector-panel-head h2{
  font-size:clamp(22px,2.6vw,30px);
  color:var(--purple-dark);
}

.sector-panel-head p{
  margin-top:10px;
  max-width:820px;
  color:#4b4668;
  line-height:1.65;
}

.sector-panel .sector-areas-list{
  margin:22px 0 26px;
}

/* Keep mega panel on-screen for items near the right edge */
@media (max-width:1200px){
  .main-nav .nav-sub.nav-mega{
    min-width:680px;
  }
}

/* ======================================================
   CONTENT PAGE MEDIA — logos, badges, certificates, team
   (placeholders until real images are added; same visual language)
====================================================== */

.placeholder-hint{
  margin-top:16px;
  font-size:13px;
  color:#8a86a6;
}

/* Partner / client logo grid */
.logo-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}

.logo-tile{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:110px;
  padding:20px;
  border:1px solid var(--line);
  background:#fff;
}

.logo-tile img{
  max-height:64px;
  width:auto;
  object-fit:contain;
  filter:grayscale(1);
  opacity:.85;
  transition:.25s;
}

.logo-tile:hover img{
  filter:none;
  opacity:1;
}

.logo-tile.is-placeholder{
  flex-direction:column;
  gap:8px;
  color:#c3c0d6;
  background:#fafaff;
}

.logo-tile.is-placeholder svg{
  width:30px;
  height:30px;
}

.logo-tile.is-placeholder span{
  font-size:11px;
  letter-spacing:1px;
  text-transform:uppercase;
}

/* Licence / ISO badge grid */
.badge-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}

.badge-card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  padding:26px;
  border:1px solid var(--line);
  background:#fff;
}

.badge-mark{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:var(--red);
  color:#fff;
  margin-bottom:6px;
}

.badge-mark svg{ width:24px; height:24px; }

.badge-mark.badge-iso{
  width:auto;
  padding:0 16px;
  font-family:Manrope,sans-serif;
  font-weight:800;
  font-size:16px;
  letter-spacing:.5px;
  background:var(--purple);
}

.badge-card strong{
  font-size:16px;
  color:var(--purple-dark);
}

.badge-card span{
  font-size:13px;
  color:#6b6690;
}

/* Certificate grid */
.cert-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}

.cert-tile{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  aspect-ratio:3/4;
  border:1px solid var(--line);
  background:#fff;
  overflow:hidden;
}

.cert-tile img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.cert-tile.is-placeholder{
  color:#c3c0d6;
  background:#fafaff;
}

.cert-tile.is-placeholder svg{ width:36px; height:36px; }

.cert-tile.is-placeholder span{
  font-size:11px;
  letter-spacing:1px;
  text-transform:uppercase;
}

/* Team photos */
.team-grid-photos{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}

.team-photo{
  margin:0;
  aspect-ratio:1/1;
  border:1px solid var(--line);
  background:#fafaff;
  overflow:hidden;
}

.team-photo img{ width:100%; height:100%; object-fit:cover; }

.team-photo.is-placeholder{
  display:grid;
  place-items:center;
  color:#c3c0d6;
}

.team-photo.is-placeholder svg{ width:46px; height:46px; }

@media (max-width:900px){
  .logo-grid,.cert-grid,.team-grid-photos{ grid-template-columns:repeat(2,1fr); }
  .badge-grid{ grid-template-columns:1fr; }
}

@media (max-width:520px){
  .logo-grid,.cert-grid,.team-grid-photos{ grid-template-columns:1fr 1fr; }
}

/* ======================================================
   FIXES — sector card CTA escaping/overlapping + hero spacing
====================================================== */

/* Contain the sector-card CTA (was position:absolute → escaped & overlapped) */
.sector-card{
  position:relative;
}

.sector-card .service-link{
  position:static;
  left:auto;
  bottom:auto;
  margin-top:auto;
  padding-top:16px;
}

/* Same safety for any card variant reusing the service-card language */
.sectors-grid .service-link,
.clients-grid .service-link{
  position:static;
}

/* Desktop: a bit more breathing room under the fixed header */
@media (min-width:1025px){
  .hero-inner{
    padding-top:130px;
  }
}

/* Mobile: keep the hero fully inside the viewport (no right-edge cutting) */
@media (max-width:768px){
  .hero,
  .hero-inner,
  .hero-content{
    max-width:100%;
    overflow:hidden;
  }

  .hero-title{
    font-size:clamp(38px,11vw,60px) !important;
    letter-spacing:-2px !important;
    word-break:break-word;
  }

  .hero-buttons{
    flex-wrap:wrap;
  }

  .hero-buttons .btn{
    width:100%;
    justify-content:center;
  }

  .hero-visual{
    display:none;   /* the 3D model caused horizontal overflow on phones */
  }
}

/* ======================================================
   SERVICE DETAIL — rich layout (Engineering & Design)
====================================================== */

.service-detail{ padding-top:clamp(32px,4vw,52px); padding-bottom:clamp(32px,4vw,52px); }

.service-detail-grid{ display:grid; grid-template-columns:1fr; gap:clamp(28px,4vw,52px); }

/* 58% content / 42% capabilities */
.service-detail-grid.has-blocks{ grid-template-columns:58% 1fr; align-items:start; }

.service-detail-main .service-block{ margin-bottom:30px; }
.service-detail-main .service-block h2{ font-size:clamp(22px,2.4vw,28px); color:var(--purple-dark); }
.service-detail-main .service-block h3{ font-size:19px; color:var(--purple-dark); margin-bottom:14px; }
.service-detail-main .service-block p{ color:#4b4668; line-height:1.7; margin-top:10px; }

/* 4-step process graphic */
.service-steps{ list-style:none; margin:0 0 14px; padding:0; display:flex; flex-wrap:wrap; align-items:stretch; gap:10px; }
.service-steps li{ position:relative; display:flex; flex-direction:column; gap:6px; flex:1 1 0; min-width:120px; padding:16px; border:1px solid var(--line); background:#fff; }
.service-steps .step-num{ font-family:Manrope,sans-serif; font-weight:800; font-size:15px; color:var(--red); }
.service-steps .step-label{ font-size:13px; color:var(--purple-dark); font-weight:600; line-height:1.3; }
.service-steps .step-arrow{ position:absolute; right:-11px; top:50%; transform:translateY(-50%); z-index:2; color:#c3c0d6; font-size:16px; }
.service-steps-note{ font-size:14px; color:#6b6690; line-height:1.6; }

/* Highlighted licence credential box */
.service-credential{ display:flex; gap:16px; align-items:flex-start; padding:22px 24px; border:1px solid rgba(43,27,116,.18); border-left:4px solid var(--red); background:linear-gradient(180deg,#faf9ff,#f4f2fb); }
.service-credential-mark{ flex:0 0 auto; width:42px; height:42px; display:grid; place-items:center; border-radius:10px; background:var(--purple); color:#fff; }
.service-credential-mark svg{ width:22px; height:22px; }
.service-credential strong{ display:block; color:var(--purple-dark); font-size:16px; margin-bottom:4px; }
.service-credential p{ margin:0; color:#4b4668; font-size:14px; line-height:1.6; }

/* Capabilities panel a touch wider/denser */
.service-detail-grid.has-blocks .service-capabilities{ position:sticky; top:100px; }

/* Disciplines section (6 cards) */
.disciplines-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.discipline-card{ display:flex; align-items:center; gap:16px; padding:22px 24px; border:1px solid var(--line); background:#fff; }
.discipline-card span{ font-size:16px; font-weight:600; color:var(--purple-dark); }
.discipline-card .service-icon{ flex:0 0 auto; }
.disciplines-intro{ max-width:820px; margin:-6px 0 26px; color:#5d5878; line-height:1.7; }

/* Dedicated feature sections (Design Review, BIM) */
.service-feature-section{ padding-top:clamp(34px,4vw,54px); padding-bottom:clamp(34px,4vw,54px); }
.service-feature{ display:grid; grid-template-columns:84px minmax(0,1fr); align-items:start; gap:28px; max-width:980px; }
.service-feature-icon{ width:72px; height:72px; }
.service-feature-copy h2{ margin:6px 0 12px; font-size:clamp(24px,2.8vw,34px); color:var(--purple-dark); }
.service-feature-copy p{ max-width:780px; margin:0; color:#4b4668; line-height:1.75; }

@media (max-width:960px){
  .service-detail-grid.has-blocks{ grid-template-columns:1fr; }
  .service-detail-grid.has-blocks .service-capabilities{ position:static; }
  .disciplines-grid{ grid-template-columns:repeat(2,1fr); }
  .service-feature{ grid-template-columns:68px minmax(0,1fr); gap:20px; }
  .service-feature-icon{ width:60px; height:60px; }
  .service-steps .step-arrow{ display:none; }
}

@media (max-width:560px){
  .disciplines-grid{ grid-template-columns:1fr; }
  .service-feature{ grid-template-columns:1fr; gap:16px; }
  .service-feature-icon{ width:56px; height:56px; }
  .service-steps li{ flex:1 1 100%; }
}

/* v2.11.2 — Project Management & Supervision service lifecycle */
.service-steps.service-steps-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.service-steps.service-steps-grid li{
  min-width:0;
  padding:20px;
}
.service-steps .step-description{
  display:block;
  margin-top:4px;
  color:#67617f;
  font-size:13px;
  line-height:1.55;
  font-weight:400;
}
.related-projects-footer{
  margin-top:28px;
  display:flex;
  justify-content:flex-end;
}
@media (max-width:640px){
  .service-steps.service-steps-grid{ grid-template-columns:1fr; }
}

/* ======================================================
   v2.11.3 — SERVICE PAGE RHYTHM + RESPONSIVE REFINEMENT
   Keeps the global site spacing untouched while making the
   five service pages denser, aligned and mobile-friendly.
====================================================== */

/* Consistent vertical rhythm across service pages */
body.single-service section.section{
  padding-top:clamp(64px,5.2vw,82px);
  padding-bottom:clamp(64px,5.2vw,82px);
}

body.single-service .service-detail{
  padding-top:clamp(48px,4.5vw,68px);
  padding-bottom:clamp(52px,4.8vw,72px);
}

body.single-service .service-detail-grid.has-blocks{
  grid-template-columns:minmax(0,1.38fr) minmax(330px,1fr);
  gap:clamp(34px,4vw,58px);
}

body.single-service .service-detail-main,
body.single-service .service-capabilities{
  min-width:0;
}

body.single-service .service-detail-main .service-block{
  margin-bottom:24px;
}

body.single-service .service-detail-main .service-block:last-of-type{
  margin-bottom:22px;
}

body.single-service .service-detail-main .service-block h2{
  margin-bottom:8px;
}

body.single-service .service-detail-main .service-block h3{
  margin-top:2px;
  margin-bottom:12px;
}

body.single-service .service-detail-main .service-block p{
  margin-top:7px;
}

body.single-service .service-steps{
  gap:8px;
  margin-bottom:10px;
}

body.single-service .service-steps li{
  padding:14px 13px;
}

body.single-service .service-credential{
  padding:18px 20px;
}

/* Capabilities should visually line up with the content column */
body.single-service .service-capabilities{
  padding:30px 32px;
  border-radius:14px;
}

body.single-service .service-capabilities h3{
  margin-bottom:14px;
}

body.single-service .service-capabilities li{
  padding:10px 0;
  line-height:1.35;
}

/* Headings on service sections: tighter than homepage/editorial sections */
body.single-service .section-heading{
  gap:36px;
  margin-bottom:34px;
}

body.single-service .section-heading h2{
  font-size:clamp(34px,3.35vw,48px);
  letter-spacing:-2.1px;
  max-width:820px;
}

body.single-service .section-heading > p{
  max-width:420px;
}

/* Multidisciplinary block */
body.single-service .disciplines-section{
  padding-top:clamp(58px,4.8vw,76px);
  padding-bottom:clamp(58px,4.8vw,76px);
}

body.single-service .disciplines-intro{
  margin:-10px 0 24px;
}

body.single-service .disciplines-grid{
  gap:12px;
}

body.single-service .discipline-card{
  min-height:72px;
  padding:17px 20px;
}

body.single-service .related-projects-footer{
  margin-top:20px;
}

/* Design Review + BIM no longer feel like isolated islands */
body.single-service .service-feature-section{
  padding-top:clamp(46px,4vw,62px);
  padding-bottom:clamp(46px,4vw,62px);
}

body.single-service .service-feature{
  max-width:1040px;
  grid-template-columns:68px minmax(0,1fr);
  gap:24px;
  align-items:center;
}

body.single-service .service-feature-icon{
  width:60px;
  height:60px;
}

body.single-service .service-feature-copy h2{
  margin:4px 0 9px;
  font-size:clamp(25px,2.35vw,34px);
}

body.single-service .service-feature-copy p{
  line-height:1.65;
}

/* Sectors + projects should connect visually with the sections above */
body.single-service #sectors{
  padding-top:clamp(58px,4.8vw,76px);
  padding-bottom:clamp(58px,4.8vw,76px);
}

body.single-service .related-section{
  padding-top:clamp(58px,4.8vw,76px);
  padding-bottom:clamp(58px,4.8vw,76px);
}

body.single-service .sectors-grid{
  gap:14px;
}

body.single-service .sector-card{
  padding:28px 26px;
}

/* Tablet */
@media (max-width:1024px){
  body.single-service section.section{
    padding-top:58px;
    padding-bottom:58px;
  }

  body.single-service .service-detail-grid.has-blocks{
    grid-template-columns:minmax(0,1.15fr) minmax(290px,.85fr);
    gap:30px;
  }

  body.single-service .service-capabilities{
    padding:26px;
  }

  body.single-service .section-heading{
    margin-bottom:30px;
  }
}

/* Tablet portrait / mobile navigation breakpoint */
@media (max-width:860px){
  body.single-service .service-detail-grid.has-blocks{
    grid-template-columns:1fr;
    gap:30px;
  }

  body.single-service .service-detail-grid.has-blocks .service-capabilities{
    position:static;
    width:100%;
  }

  body.single-service .section-heading{
    display:block;
  }

  body.single-service .section-heading > p{
    margin-top:16px;
    max-width:620px;
  }

  body.single-service .disciplines-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* Phones */
@media (max-width:640px){
  body.single-service section.section,
  body.single-service .service-detail,
  body.single-service .disciplines-section,
  body.single-service .service-feature-section,
  body.single-service #sectors,
  body.single-service .related-section{
    padding-top:42px;
    padding-bottom:42px;
  }

  body.single-service .service-detail-grid.has-blocks{
    gap:24px;
  }

  body.single-service .service-detail-main .service-block{
    margin-bottom:20px;
  }

  body.single-service .service-detail-main .service-block h2{
    font-size:23px;
    line-height:1.16;
  }

  body.single-service .service-detail-main .service-block h3{
    font-size:18px;
  }

  body.single-service .service-steps,
  body.single-service .service-steps.service-steps-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }

  body.single-service .service-steps li,
  body.single-service .service-steps.service-steps-grid li{
    min-width:0;
    padding:14px 12px;
  }

  body.single-service .service-steps .step-label{
    font-size:12px;
  }

  body.single-service .service-steps .step-description{
    font-size:12px;
  }

  body.single-service .service-credential{
    gap:12px;
    padding:16px;
  }

  body.single-service .service-credential-mark{
    width:36px;
    height:36px;
  }

  body.single-service .service-capabilities{
    padding:24px 20px;
    border-radius:12px;
  }

  body.single-service .service-capabilities li{
    padding:9px 0;
  }

  body.single-service .section-heading{
    margin-bottom:24px;
  }

  body.single-service .section-heading h2{
    font-size:clamp(30px,9vw,38px);
    line-height:1.06;
    letter-spacing:-1.6px;
  }

  body.single-service .disciplines-intro{
    margin:-4px 0 20px;
  }

  body.single-service .disciplines-grid{
    grid-template-columns:1fr;
    gap:9px;
  }

  body.single-service .discipline-card{
    min-height:62px;
    padding:14px 16px;
  }

  body.single-service .service-feature{
    grid-template-columns:48px minmax(0,1fr);
    gap:15px;
    align-items:start;
  }

  body.single-service .service-feature-icon{
    width:46px;
    height:46px;
  }

  body.single-service .service-feature-copy h2{
    margin-top:2px;
    font-size:24px;
    line-height:1.12;
  }

  body.single-service .sector-card{
    padding:22px 20px;
  }
}

@media (max-width:420px){
  body.single-service .service-steps,
  body.single-service .service-steps.service-steps-grid{
    grid-template-columns:1fr;
  }

  body.single-service .service-feature{
    grid-template-columns:1fr;
  }
}

/* v2.11.5 — Studies + Environment service-specific layouts */
body.single-service .capability-group + .capability-group{margin-top:20px}
body.single-service .capability-group h4{
  margin:0 0 6px;
  padding-top:2px;
  font:700 11px/1.35 Manrope,sans-serif;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:#ff5b62;
}
body.single-service .capability-group ul{margin:0}
body.single-service .service-custom-section{padding-top:clamp(56px,4.8vw,74px);padding-bottom:clamp(56px,4.8vw,74px)}
body.single-service .service-card-grid{display:grid;gap:14px}
body.single-service .service-card-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}
body.single-service .service-card-grid.three-col{grid-template-columns:repeat(3,minmax(0,1fr))}
body.single-service .service-card-grid.four-col{grid-template-columns:repeat(4,minmax(0,1fr))}
body.single-service .service-process-card{
  min-width:0;
  padding:26px 24px;
  border:1px solid var(--line);
  background:#fff;
}
body.single-service .section:not(.section-alt) .service-process-card{background:#fff}
body.single-service .service-process-card > span{
  display:block;
  margin-bottom:10px;
  color:var(--red);
  font:800 13px/1 Manrope,sans-serif;
  letter-spacing:.04em;
}
body.single-service .service-process-card h3{
  margin:0 0 8px;
  color:var(--purple-dark);
  font-size:17px;
  line-height:1.3;
}
body.single-service .service-process-card p{margin:0;color:#5c5877;font-size:14px;line-height:1.6}
body.single-service .service-process-card.compact{padding:22px 20px}
body.single-service .energy-core-section .section-heading > p{max-width:520px}

@media(max-width:1024px){
 body.single-service .service-card-grid.four-col{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.single-service .service-card-grid.three-col{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
 body.single-service .service-card-grid.two-col,
 body.single-service .service-card-grid.three-col,
 body.single-service .service-card-grid.four-col{grid-template-columns:1fr}
 body.single-service .service-custom-section{padding-top:42px;padding-bottom:42px}
 body.single-service .service-process-card{padding:20px 18px}
 body.single-service .capability-group + .capability-group{margin-top:18px}
}


/* v2.11.11 — Technical Assistance, Verification & Advisory refinements */
body.single-service .verification-process-section,
body.single-service .verification-feature-section{padding-top:64px;padding-bottom:64px}
body.single-service .verification-feature{max-width:820px}
body.single-service .verification-feature h2{margin:8px 0 14px;font-size:clamp(32px,3.2vw,48px);line-height:1.06;color:#171243}
body.single-service .verification-feature p{margin:0;max-width:760px;color:#5c5877;font-size:16px;line-height:1.72}
body.single-service .capability-group + .capability-group{margin-top:18px}
body.single-service .capability-group h4{margin:0 0 6px;color:#ff4d4d;font-size:10px;line-height:1.3;letter-spacing:.12em;text-transform:uppercase;font-weight:700}
@media (max-width: 767px){
 body.single-service .verification-process-section,
 body.single-service .verification-feature-section{padding-top:42px;padding-bottom:42px}
 body.single-service .verification-feature h2{font-size:30px}
}

/* v2.11.12 — Technical Assistance, Verification & Advisory final page system */
body.single-service .service-detail-verification-advisory .service-detail-grid.has-blocks{
  grid-template-columns:minmax(0,1.42fr) minmax(360px,1fr);
  gap:clamp(36px,4vw,60px);
}
body.single-service .service-detail-verification-advisory .service-capabilities{
  padding:24px 26px;
}
body.single-service .service-detail-verification-advisory .service-capabilities h3{
  margin-bottom:12px;
}
body.single-service .service-detail-verification-advisory .capability-group{
  padding:0;
}
body.single-service .service-detail-verification-advisory .capability-group + .capability-group{
  margin-top:13px;
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.11);
}
body.single-service .service-detail-verification-advisory .capability-group h4{
  margin-bottom:4px;
  font-size:9px;
  letter-spacing:.135em;
}
body.single-service .service-detail-verification-advisory .capability-group li{
  padding:6px 0;
  font-size:12.5px;
  line-height:1.28;
}
body.single-service .service-detail-verification-advisory .capability-group li svg{
  width:13px;
  height:13px;
  flex:0 0 13px;
}
body.single-service .service-detail-verification-advisory .capability-group.is-primary{
  margin:-4px -8px 0;
  padding:11px 8px 7px;
  border:1px solid rgba(255,77,77,.24);
  border-radius:8px;
  background:rgba(255,255,255,.035);
}
body.single-service .service-detail-verification-advisory .capability-group.is-primary h4{
  color:#ff6268;
}
body.single-service .verification-feature-section{
  position:relative;
  overflow:hidden;
}
body.single-service .verification-feature-section:before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:4px;
  height:100%;
  background:var(--red);
}
body.single-service .verification-feature{
  max-width:900px;
}
body.single-service .verification-feature p{
  margin:0 0 11px;
  max-width:820px;
}
body.single-service .verification-feature p:last-child{margin-bottom:0}
body.single-service .verification-process-section .service-process-card{
  border-top:2px solid var(--red);
}
body.single-service .technical-advisory-section .section-heading,
body.single-service .technical-assistance-section .section-heading{
  align-items:end;
}
body.single-service .advisory-card{
  display:flex;
  flex-direction:column;
  min-height:220px;
}
body.single-service .advisory-card .text-link{
  margin-top:auto;
  padding-top:18px;
  align-self:flex-start;
}
body.single-service .technical-assistance-section{
  padding-top:clamp(50px,4.2vw,66px);
  padding-bottom:clamp(50px,4.2vw,66px);
}
body.single-service .technical-assistance-list{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
body.single-service .technical-assistance-item{
  display:flex;
  align-items:flex-start;
  gap:10px;
  min-height:88px;
  padding:18px;
  border:1px solid var(--line);
  background:#fff;
}
body.single-service .technical-assistance-item span{
  color:var(--red);
  font-weight:800;
  line-height:1.2;
}
body.single-service .technical-assistance-item strong{
  color:var(--purple-dark);
  font-size:14px;
  line-height:1.42;
}
body.single-service .related-projects-footer{
  margin-top:24px;
}
@media(max-width:1100px){
  body.single-service .service-detail-verification-advisory .service-detail-grid.has-blocks{
    grid-template-columns:minmax(0,1.2fr) minmax(330px,.9fr);
    gap:32px;
  }
  body.single-service .technical-assistance-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  body.single-service .service-detail-verification-advisory .service-detail-grid.has-blocks{grid-template-columns:1fr}
  body.single-service .service-detail-verification-advisory .service-capabilities{position:static;max-width:none}
}
@media(max-width:760px){
  body.single-service .service-detail-verification-advisory .service-capabilities{padding:22px 20px}
  body.single-service .service-detail-verification-advisory .capability-group li{font-size:12.5px;padding:6px 0}
  body.single-service .technical-assistance-list{grid-template-columns:1fr}
  body.single-service .technical-assistance-item{min-height:0;padding:16px}
  body.single-service .advisory-card{min-height:0}
  body.single-service .verification-feature-section:before{width:3px}
}

/* ======================================================
   v2.11.13 — Verification & Advisory visual refinement
   Make this service page denser, more balanced and less
   vertically fragmented while keeping the BAR E.C.E. system.
====================================================== */
body.single-service .service-detail-verification-advisory{
  padding-top:44px;
  padding-bottom:46px;
}
body.single-service .service-detail-verification-advisory .service-detail-grid.has-blocks{
  grid-template-columns:minmax(0,55.5fr) minmax(350px,44.5fr);
  gap:38px;
  align-items:start;
}
body.single-service .service-detail-verification-advisory .service-detail-main .service-block{
  margin-bottom:16px;
}
body.single-service .service-detail-verification-advisory .service-detail-main .service-block h2{
  margin:0 0 10px;
  font-size:clamp(25px,2.1vw,31px);
}
body.single-service .service-detail-verification-advisory .service-detail-main .service-block p{
  margin:0 0 10px;
  font-size:14.5px;
  line-height:1.62;
}
body.single-service .service-detail-verification-advisory .service-capabilities{
  position:static;
  padding:22px 24px 20px;
  border-radius:12px;
}
body.single-service .service-detail-verification-advisory .service-capabilities h3{
  margin:0 0 10px;
  font-size:17px;
}
body.single-service .service-detail-verification-advisory .capability-group + .capability-group{
  margin-top:10px;
  padding-top:10px;
}
body.single-service .service-detail-verification-advisory .capability-group h4{
  margin:0 0 3px;
  font-size:8.5px;
}
body.single-service .service-detail-verification-advisory .capability-group li{
  padding:4.5px 0;
  font-size:11.8px;
  line-height:1.24;
}
body.single-service .service-detail-verification-advisory .capability-group.is-primary{
  margin:-2px -6px 0;
  padding:9px 7px 6px;
}

/* Independent Verification: compact editorial split, not a large empty band */
body.single-service .verification-feature-section{
  padding-top:48px;
  padding-bottom:48px;
  background:#f6f7fb;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
body.single-service .verification-feature-section:before{
  display:none;
}
body.single-service .verification-feature{
  max-width:none;
  display:grid;
  grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr);
  column-gap:64px;
  row-gap:8px;
  align-items:start;
}
body.single-service .verification-feature .section-kicker{
  grid-column:1;
  margin-bottom:8px;
}
body.single-service .verification-feature h2{
  grid-column:1;
  margin:0;
  max-width:430px;
  font-size:clamp(34px,3vw,46px);
  line-height:1.02;
}
body.single-service .verification-feature p{
  grid-column:2;
  max-width:700px;
  margin:0 0 10px;
  font-size:14.5px;
  line-height:1.66;
}
body.single-service .verification-feature p:first-of-type{
  grid-row:1 / span 2;
  align-self:end;
  padding-top:18px;
}
body.single-service .verification-feature p:nth-of-type(2),
body.single-service .verification-feature p:nth-of-type(3){
  margin-top:0;
}

/* Keep the remaining page as one continuous service narrative */
body.single-service .verification-process-section,
body.single-service .technical-advisory-section,
body.single-service .technical-assistance-section{
  padding-top:50px;
  padding-bottom:50px;
}
body.single-service .verification-process-section .section-heading,
body.single-service .technical-advisory-section .section-heading,
body.single-service .technical-assistance-section .section-heading{
  margin-bottom:24px;
  gap:28px;
}
body.single-service .verification-process-section .section-heading h2,
body.single-service .technical-advisory-section .section-heading h2,
body.single-service .technical-assistance-section .section-heading h2{
  font-size:clamp(30px,2.8vw,42px);
  letter-spacing:-1.6px;
}
body.single-service .verification-process-section .service-card-grid,
body.single-service .technical-advisory-section .service-card-grid{
  gap:10px;
}
body.single-service .verification-process-section .service-process-card{
  min-height:156px;
  padding:17px 16px;
}
body.single-service .verification-process-section .service-process-card h3{
  margin-bottom:6px;
  font-size:15px;
}
body.single-service .verification-process-section .service-process-card p{
  font-size:12.8px;
  line-height:1.5;
}
body.single-service .technical-advisory-section{
  background:#fff;
}
body.single-service .technical-advisory-section .section-heading > p,
body.single-service .technical-assistance-section .section-heading > p{
  max-width:400px;
  font-size:14px;
  line-height:1.6;
}
body.single-service .advisory-card{
  min-height:184px;
  padding:20px 18px;
}
body.single-service .advisory-card h3{
  font-size:15.5px;
}
body.single-service .advisory-card p{
  font-size:13px;
  line-height:1.55;
}
body.single-service .advisory-card .text-link{
  padding-top:12px;
}
body.single-service .technical-assistance-section{
  background:#f8f8fb;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
body.single-service .technical-assistance-list{
  gap:10px;
}
body.single-service .technical-assistance-item{
  min-height:70px;
  padding:14px 15px;
  align-items:center;
}
body.single-service .technical-assistance-item strong{
  font-size:13px;
  line-height:1.35;
}

/* Pull sectors and projects closer to the service-specific content */
body.single-service .service-detail-verification-advisory ~ #sectors,
body.single-service .technical-assistance-section + #sectors{
  padding-top:52px;
  padding-bottom:52px;
}
body.single-service .technical-assistance-section + #sectors .section-heading{
  margin-bottom:26px;
}
body.single-service #sectors + .related-section,
body.single-service .related-section{
  padding-top:52px;
  padding-bottom:52px;
}
body.single-service .related-section .section-heading{
  margin-bottom:26px;
}

@media(max-width:1000px){
  body.single-service .service-detail-verification-advisory .service-detail-grid.has-blocks{
    grid-template-columns:1fr;
    gap:26px;
  }
  body.single-service .verification-feature{
    grid-template-columns:1fr;
    gap:10px;
  }
  body.single-service .verification-feature .section-kicker,
  body.single-service .verification-feature h2,
  body.single-service .verification-feature p{
    grid-column:1;
    grid-row:auto;
  }
  body.single-service .verification-feature h2{max-width:620px;margin-bottom:8px}
  body.single-service .verification-feature p:first-of-type{padding-top:0;align-self:auto}
}
@media(max-width:760px){
  body.single-service .service-detail-verification-advisory{padding-top:34px;padding-bottom:36px}
  body.single-service .verification-feature-section,
  body.single-service .verification-process-section,
  body.single-service .technical-advisory-section,
  body.single-service .technical-assistance-section{padding-top:38px;padding-bottom:38px}
  body.single-service .verification-feature h2{font-size:30px}
  body.single-service .verification-feature p{font-size:14px}
  body.single-service .verification-process-section .service-process-card,
  body.single-service .advisory-card{min-height:0}
  body.single-service .technical-assistance-item{min-height:0}
  body.single-service .technical-assistance-section + #sectors,
  body.single-service .related-section{padding-top:40px;padding-bottom:40px}
}

/* ------------------------------------------------------
   WHO WE ARE — v2.11.14
------------------------------------------------------ */
.who-intro-section,
.who-story-section,
.who-purpose-section,
.who-values-section{
  padding-top:clamp(64px,6vw,92px);
  padding-bottom:clamp(64px,6vw,92px);
}

.who-intro-grid{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(44px,7vw,96px);
  align-items:start;
}

.who-intro-heading{
  margin:0;
}

.who-intro-heading h2{
  max-width:620px;
  margin-top:12px;
}

.who-intro-copy{
  max-width:760px;
}

.who-intro-copy p{
  margin:0 0 18px;
  color:var(--text-soft);
  line-height:1.78;
}

.who-intro-copy p:last-child{
  margin-bottom:0;
}

.who-story-section{
  background:var(--bg);
}

.who-story-heading{
  align-items:end;
}

.who-story-heading > p{
  margin:0 0 8px;
  font-family:Manrope,sans-serif;
  font-size:13px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-soft);
}

.who-timeline{
  display:grid;
  grid-template-columns:minmax(0,1fr) 52px minmax(0,1fr) 52px minmax(0,1fr);
  align-items:stretch;
  margin-top:34px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#fff;
}

.who-timeline-step{
  position:relative;
  min-height:240px;
  padding:34px 30px 30px;
}

.who-timeline-step + .who-timeline-arrow + .who-timeline-step{
  border-left:1px solid var(--line);
}

.who-timeline-year{
  margin-bottom:22px;
  font-family:Manrope,sans-serif;
  font-size:clamp(28px,3vw,46px);
  font-weight:800;
  line-height:1;
  letter-spacing:-.035em;
  color:var(--navy);
}

.who-timeline-step:first-child .who-timeline-year,
.who-timeline-step:nth-of-type(2) .who-timeline-year{
  color:var(--red);
}

.who-timeline-step h3{
  margin:0 0 12px;
  font-family:Manrope,sans-serif;
  font-size:18px;
  font-weight:800;
  line-height:1.3;
  color:var(--navy);
}

.who-timeline-step p{
  margin:0;
  color:var(--text-soft);
  line-height:1.68;
}

.who-timeline-arrow{
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:28px;
  color:var(--red);
  border-left:1px solid var(--line);
  border-right:1px solid var(--line);
}

.who-purpose-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
  margin-top:32px;
}

.who-purpose-card{
  padding:34px 34px 36px;
  border:1px solid var(--line);
  border-top:2px solid var(--red);
  background:#fff;
}

.who-purpose-card > span,
.who-value-num{
  display:block;
  margin-bottom:18px;
  font-family:Manrope,sans-serif;
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  color:var(--red);
}

.who-purpose-card h3,
.who-value-card h3{
  margin:0 0 12px;
  font-family:Manrope,sans-serif;
  font-size:20px;
  font-weight:800;
  color:var(--navy);
}

.who-purpose-card p,
.who-value-card p{
  margin:0;
  color:var(--text-soft);
  line-height:1.72;
}

.who-values-section{
  background:var(--bg);
}

.who-values-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  margin-top:32px;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}

.who-value-card{
  min-height:250px;
  padding:28px 24px;
  background:#fff;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  transition:transform .25s ease,box-shadow .25s ease;
}

.who-value-card:hover{
  position:relative;
  z-index:1;
  transform:translateY(-3px);
  box-shadow:0 18px 40px rgba(18,13,72,.08);
}

.who-final-cta{
  margin-top:0;
}

@media (max-width:1100px){
  .who-values-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .who-timeline{
    grid-template-columns:minmax(0,1fr) 38px minmax(0,1fr) 38px minmax(0,1fr);
  }
  .who-timeline-step{
    padding:28px 22px;
  }
}

@media (max-width:820px){
  .who-intro-grid,
  .who-purpose-grid{
    grid-template-columns:1fr;
  }
  .who-intro-grid{
    gap:30px;
  }
  .who-story-heading{
    display:block;
  }
  .who-story-heading > p{
    margin-top:14px;
  }
  .who-timeline{
    grid-template-columns:1fr;
    border-left:1px solid var(--line);
  }
  .who-timeline-step{
    min-height:0;
    padding:26px 24px;
    border-bottom:1px solid var(--line);
  }
  .who-timeline-step + .who-timeline-arrow + .who-timeline-step{
    border-left:0;
  }
  .who-timeline-arrow{
    height:38px;
    border:0;
    border-bottom:1px solid var(--line);
    transform:rotate(90deg);
  }
  .who-values-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:520px){
  .who-intro-section,
  .who-story-section,
  .who-purpose-section,
  .who-values-section{
    padding-top:50px;
    padding-bottom:50px;
  }
  .who-purpose-card{
    padding:26px 22px 28px;
  }
  .who-values-grid{
    grid-template-columns:1fr;
  }
  .who-value-card{
    min-height:0;
  }
}

/* v2.11.15 — verified documents + refined team page */
.credentials-page{padding-top:clamp(64px,7vw,92px);padding-bottom:clamp(72px,8vw,104px)}
.credentials-intro{margin-left:0;max-width:820px}
.credentials-heading{margin-top:clamp(48px,6vw,76px);margin-bottom:24px;align-items:end}
.credentials-heading-iso{margin-top:clamp(64px,7vw,88px)}
.document-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.document-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line,#e3e5ec);background:#fff;text-decoration:none;color:inherit;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;overflow:hidden}
.document-card:hover{transform:translateY(-3px);border-color:rgba(238,48,45,.45);box-shadow:0 14px 36px rgba(18,13,72,.08)}
.document-card-preview{height:235px;background:#f4f5f9;display:flex;align-items:flex-start;justify-content:center;overflow:hidden;border-bottom:1px solid var(--line,#e3e5ec)}
.document-card-preview img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .35s ease}
.document-card:hover .document-card-preview img{transform:scale(1.018)}
.document-card-body{display:flex;flex-direction:column;flex:1;padding:20px}
.document-type{font-size:10px;line-height:1.2;letter-spacing:.13em;text-transform:uppercase;color:var(--red,#ee302d);font-weight:700;margin-bottom:10px}
.document-card h3{font-size:16px;line-height:1.35;margin:0 0 10px;color:var(--navy,#19104d)}
.document-card p{font-size:12px;line-height:1.5;color:var(--text-muted,#6d6b7c);margin:0 0 16px}
.document-link{margin-top:auto;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--red,#ee302d)}
.iso-document-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.iso-document-card .document-card-preview{height:260px}
.service-license-link{display:inline-flex;margin-top:8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.055em;color:var(--red,#ee302d);text-decoration:none}
.service-license-link:hover{text-decoration:underline}
.team-page-refined{padding-top:clamp(64px,7vw,92px);padding-bottom:clamp(72px,8vw,104px)}
.team-intro-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(36px,6vw,88px);align-items:start}
.team-intro-heading h2{font-size:clamp(36px,4vw,58px);line-height:1.02;letter-spacing:-.045em;max-width:540px;margin:12px 0 0}
.team-intro-copy{max-width:700px}
.team-intro-copy p:first-child{margin-top:0}
.team-grid-photos-refined{margin-top:clamp(46px,6vw,72px)}
.team-photo-guidance{margin-top:clamp(44px,6vw,72px);display:flex;gap:18px;align-items:flex-start;padding:24px 26px;border:1px solid var(--line,#e3e5ec);background:#fafafe;max-width:780px}
.team-photo-guidance-mark{width:42px;height:42px;flex:0 0 42px;border-radius:10px;background:#f0eef9;color:var(--navy,#19104d);display:grid;place-items:center}
.team-photo-guidance-mark svg{width:22px;height:22px}
.team-photo-guidance strong{display:block;color:var(--navy,#19104d);margin-bottom:6px}
.team-photo-guidance p{margin:0;font-size:13px;line-height:1.55;color:var(--text-muted,#6d6b7c)}
@media(max-width:980px){.document-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.iso-document-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.team-intro-layout{grid-template-columns:1fr;gap:24px}.team-intro-heading h2{max-width:680px}}
@media(max-width:680px){.credentials-page,.team-page-refined{padding-top:48px;padding-bottom:64px}.document-card-grid,.iso-document-grid{grid-template-columns:1fr}.document-card-preview,.iso-document-card .document-card-preview{height:260px}.credentials-heading{margin-top:42px}.team-intro-heading h2{font-size:38px}.team-photo-guidance{padding:20px}.team-photo-guidance-mark{width:38px;height:38px;flex-basis:38px}}

/* ======================================================
   V2.11.16 — SECTORS + CONTACT REFINEMENT
====================================================== */
.sectors-overview-section{padding-top:76px;padding-bottom:82px;background:var(--bg)}
.sectors-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.sector-overview-card{position:relative;display:flex;flex-direction:column;min-height:460px;padding:30px;background:#fff;border:1px solid var(--line);border-radius:18px;color:var(--purple);overflow:hidden;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.sector-overview-card:after{content:"";position:absolute;right:-44px;top:-44px;width:112px;height:112px;border:1px solid rgba(229,38,31,.16);border-radius:50%}
.sector-overview-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:rgba(33,20,100,.25)}
.sector-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}
.sector-card-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:#f3f1fa;color:var(--purple)}
.sector-card-icon svg{width:24px;height:24px}.sector-card-num{font:800 13px/1 Manrope,sans-serif;color:var(--red);letter-spacing:.1em}
.sector-overview-card h2{margin:0 0 14px;font:800 clamp(22px,2vw,29px)/1.08 Manrope,sans-serif;letter-spacing:-.035em}
.sector-overview-card p{margin:0 0 22px;color:var(--muted);font-size:14px;line-height:1.65}
.sector-overview-card ul{list-style:none;margin:0 0 28px;padding:0;display:grid;gap:9px}
.sector-overview-card li{position:relative;padding-left:15px;font-size:13px;font-weight:650}.sector-overview-card li:before{content:"";position:absolute;left:0;top:.55em;width:5px;height:5px;border-radius:50%;background:var(--red)}
.sector-card-cta{margin-top:auto;color:var(--red);font-size:11px;font-weight:800;letter-spacing:.09em}
.sector-cross-services,.sector-lifecycle-section{background:#f6f7fa;padding-top:74px;padding-bottom:76px}.sector-cross-heading,.sector-lifecycle-heading{align-items:end}.sector-cross-heading>p,.sector-lifecycle-heading>p{max-width:510px;color:var(--muted);line-height:1.65}
.sector-service-links{display:grid;grid-template-columns:repeat(5,1fr);margin-top:32px;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.sector-service-links a{display:flex;justify-content:space-between;gap:14px;min-height:96px;padding:19px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;font-size:13px;font-weight:700;color:var(--purple);transition:background .2s,color .2s}
.sector-service-links a:hover{background:var(--purple);color:#fff}.sector-service-links span{color:var(--red)}
.sector-detail-intro{padding-top:74px;padding-bottom:68px}.sector-detail-intro-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;align-items:start}.sector-detail-intro h2,.sector-expertise-section h2,.energy-performance-sector h2{margin:8px 0 0;font:700 clamp(32px,4vw,52px)/1.02 Manrope,sans-serif;letter-spacing:-.045em}.sector-detail-copy p{margin:0 0 17px;color:var(--muted);line-height:1.72;font-size:15px}
.sector-expertise-section{padding-top:70px;padding-bottom:78px;background:#f7f8fa}.sector-expertise-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:32px}.sector-expertise-card{background:#fff;border:1px solid var(--line);padding:25px;min-height:245px}.sector-expertise-card>span{color:var(--red);font:800 11px/1 Manrope,sans-serif;letter-spacing:.12em}.sector-expertise-card h3{margin:20px 0 12px;font:800 18px/1.2 Manrope,sans-serif}.sector-expertise-card p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.65}
.energy-performance-sector{padding-top:76px;padding-bottom:78px}.energy-performance-lead{max-width:760px;color:var(--muted);line-height:1.7}.sector-process-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:34px;border-top:2px solid rgba(229,38,31,.55)}.sector-process-step{padding:20px 20px 16px;border-right:1px solid var(--line)}.sector-process-step:first-child{border-left:1px solid var(--line)}.sector-process-step>span{display:block;color:var(--red);font-size:11px;font-weight:800}.sector-process-step strong{display:block;margin:8px 0 10px;font:800 14px/1 Manrope,sans-serif}.sector-process-step p{margin:0;color:var(--muted);font-size:12.5px;line-height:1.55}.sector-license-callout{display:grid;grid-template-columns:.9fr 1.1fr;gap:50px;align-items:center;margin-top:38px;padding:26px 30px;border-left:3px solid var(--red);background:#f5f3fb}.sector-license-callout h3{margin:7px 0 0;font:800 19px/1.25 Manrope,sans-serif}.sector-license-callout p{margin:0;color:var(--muted);line-height:1.65;font-size:13.5px}.sector-license-note{display:block;margin-top:8px;color:var(--muted);font-size:11px;line-height:1.4}.sector-license-copy{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.sector-license-link{color:var(--red);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.sector-license-link:hover{text-decoration:underline;text-underline-offset:3px}
.sector-projects-section{padding-top:74px;padding-bottom:78px}.sector-projects-action{text-align:right;margin-top:22px}.sector-projects-action .text-link{color:var(--red);font-size:11px;font-weight:800;letter-spacing:.08em}.sector-final-cta{padding-top:62px;padding-bottom:62px}
.refined-contact{padding-top:72px;padding-bottom:86px}.refined-contact .contact-info h2{margin:8px 0 12px;font:800 clamp(28px,3vw,40px)/1.08 Manrope,sans-serif;letter-spacing:-.035em}.contact-info-intro{margin:0;color:var(--muted);line-height:1.65;max-width:500px}.refined-contact .contact-map iframe{height:360px}.form-consent label{align-items:flex-start}.form-consent a{color:var(--red);text-decoration:underline;text-underline-offset:2px}
@media(max-width:1100px){.sectors-overview-grid{grid-template-columns:1fr}.sector-overview-card{min-height:0}.sector-service-links{grid-template-columns:repeat(2,1fr)}.sector-expertise-grid{grid-template-columns:repeat(2,1fr)}.sector-detail-intro-grid{grid-template-columns:1fr;gap:28px}.sector-process-grid{grid-template-columns:repeat(2,1fr)}.sector-license-callout{grid-template-columns:1fr}}
@media(max-width:640px){.sectors-overview-section,.sector-detail-intro,.sector-expertise-section,.energy-performance-sector,.sector-lifecycle-section,.sector-cross-services,.sector-projects-section{padding-top:52px;padding-bottom:54px}.sector-overview-card{padding:24px}.sector-service-links,.sector-expertise-grid,.sector-process-grid{grid-template-columns:1fr}.sector-service-links a{min-height:72px}.sector-expertise-card{min-height:0}.sector-process-step{border-left:1px solid var(--line);border-bottom:1px solid var(--line)}.sector-license-callout{gap:18px;padding:22px}.refined-contact .contact-map iframe{height:320px}}


/* V2.11.17 — Expertise & Qualifications refinement */
.credentials-page{padding-top:clamp(56px,6vw,78px);padding-bottom:clamp(64px,7vw,88px)}
.credentials-intro{max-width:820px;margin:0 0 52px;font-size:17px;line-height:1.72;color:var(--text,#3f3d50)}
.credentials-intro p{margin:0 0 14px}.credentials-intro p:last-child{margin-bottom:0}
.credentials-heading{margin-top:0;margin-bottom:24px;align-items:end}.credentials-heading-iso{margin-top:64px}
.licence-document-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.document-card-preview{height:178px}.iso-document-card .document-card-preview{height:190px}
.document-card-body{padding:22px}.document-type{font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--red,#ef332e);text-transform:uppercase;margin-bottom:9px}
.document-card h3{font-size:18px;line-height:1.3;margin-bottom:10px}.document-card p{margin-bottom:18px}.document-link{margin-top:auto;font-size:11px;font-weight:800;letter-spacing:.06em;color:var(--red,#ef332e)}
.credentials-standards{margin-top:64px;padding:30px 0 8px;border-top:1px solid var(--line,#e3e5ec);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:42px;align-items:end}
.credentials-standards h2{font-size:clamp(28px,3vw,42px);margin:6px 0 12px;color:var(--navy,#19104d)}
.credentials-standards p{max-width:760px;margin:0;color:var(--text-muted,#6d6b7c);line-height:1.65}.credentials-standards .text-link{white-space:nowrap;font-weight:800;color:var(--red,#ef332e);text-decoration:none;padding-bottom:5px}
@media(max-width:980px){.licence-document-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.document-card-preview,.iso-document-card .document-card-preview{height:200px}.credentials-standards{grid-template-columns:1fr;gap:18px}}
@media(max-width:680px){.credentials-intro{font-size:15px;margin-bottom:38px}.credentials-heading-iso{margin-top:48px}.document-card-preview,.iso-document-card .document-card-preview{height:210px}.credentials-standards{margin-top:48px;padding-top:26px}.credentials-standards h2{font-size:30px}}


/* ======================================================
   V2.11.27 — SECTORS FINAL DOCUMENT ALIGNMENT
   Source of truth: sectors.md / each_sector.md / inside_sectors.docx
====================================================== */
.sectors-overview-section{padding-top:68px;padding-bottom:76px}
.sectors-overview-grid{gap:18px}
.sector-overview-card{
  min-height:430px;
  padding:28px;
  border-radius:4px;
  box-shadow:none;
}
.sector-overview-card:after{
  right:-34px;top:-34px;width:92px;height:92px;
  border-radius:0;
  border:0;
  border-left:1px solid rgba(229,38,31,.18);
  border-bottom:1px solid rgba(229,38,31,.18);
  transform:rotate(45deg);
}
.sector-overview-card:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(22,15,70,.08)}
.sector-card-top{margin-bottom:26px}
.sector-overview-card h2{max-width:310px}
.sector-overview-card p{min-height:70px}
.sector-overview-card ul{margin-bottom:24px}
.sector-card-cta{padding-top:10px}

.sector-detail-intro{padding-top:68px;padding-bottom:64px}
.sector-detail-intro-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:64px}
.sector-detail-copy{max-width:760px}
.sector-expertise-section{padding-top:64px;padding-bottom:70px}
.sector-expertise-grid{gap:14px;margin-top:28px}
.sector-expertise-card{min-height:230px;padding:24px;border-radius:0}
.energy-performance-sector{padding-top:68px;padding-bottom:70px}
.sector-lifecycle-section{padding-top:66px;padding-bottom:70px}
.sector-projects-section{padding-top:68px;padding-bottom:72px}
.sector-final-cta{padding-top:56px;padding-bottom:56px}

@media(max-width:1100px){
  .sectors-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sectors-overview-card{min-height:390px}
  .sectors-overview-card p{min-height:0}
}
@media(max-width:760px){
  .sectors-overview-grid{grid-template-columns:1fr}
  .sectors-overview-card{min-height:0}
  .sector-detail-intro-grid{grid-template-columns:1fr;gap:24px}
}

/* ======================================================
   MOBILE NAV — final accordion reset (v2.11.29)
   Desktop mega menus keep the icon-grid design. On mobile,
   reset desktop absolute dropdown geometry and use a clean
   in-flow accordion so no labels can be clipped off-screen.
====================================================== */
@media (max-width:980px){
  .mobile-nav{
    width:min(420px,100vw);
    padding:88px 18px 28px;
    overflow-x:hidden;
    overflow-y:auto;
  }

  .mobile-nav > .nav-item{
    width:100%;
    border-bottom:1px solid rgba(255,255,255,.10);
  }

  .mobile-nav > .nav-item > a{
    width:100%;
    min-height:48px;
    display:flex;
    align-items:center;
    padding:12px 48px 12px 0;
    border:0;
    font-size:18px;
    line-height:1.25;
    letter-spacing:-.35px;
    overflow-wrap:anywhere;
  }

  .mobile-nav .nav-item.has-children{
    position:relative;
  }

  .mobile-nav .mobile-submenu-toggle{
    top:7px;
    right:0;
    width:36px;
    height:36px;
    border-radius:8px;
  }

  .mobile-nav .nav-sub,
  .mobile-nav .nav-sub.nav-mega{
    position:static !important;
    inset:auto !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 0 10px 12px !important;
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    grid-template-columns:1fr !important;
    gap:0 !important;
  }

  .mobile-nav .nav-item.has-children > .nav-sub{
    display:none !important;
  }

  .mobile-nav .nav-item.has-children.submenu-open > .nav-sub{
    display:block !important;
  }

  .mobile-nav .nav-sub > a,
  .mobile-nav .nav-mega .mega-item{
    position:relative;
    width:100%;
    min-width:0;
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px 4px !important;
    margin:0;
    border:0;
    border-top:1px solid rgba(255,255,255,.07);
    border-radius:0;
    background:transparent;
    color:rgba(255,255,255,.82);
    white-space:normal !important;
    overflow:visible;
    font-size:14px;
    line-height:1.35;
    letter-spacing:-.15px;
  }

  .mobile-nav .nav-mega .mega-item:first-child{
    border-top:0;
  }

  .mobile-nav .nav-mega .mega-ic{
    flex:0 0 30px;
    width:30px;
    height:30px;
    border-radius:8px;
  }

  .mobile-nav .nav-mega .mega-ic svg{
    width:15px;
    height:15px;
  }

  .mobile-nav .nav-mega .mega-tx{
    min-width:0;
    flex:1 1 auto;
  }

  .mobile-nav .nav-mega .mega-tx strong{
    display:block;
    font-size:14px;
    line-height:1.3;
    white-space:normal;
    overflow-wrap:anywhere;
  }

  .mobile-nav .nav-mega .mega-tx small{
    display:none;
  }

  .mobile-nav .mobile-lang{
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid rgba(255,255,255,.10);
  }
}

@media (max-width:480px){
  .mobile-nav{
    width:100vw;
    padding:82px 16px 24px;
  }
  .mobile-nav > .nav-item > a{
    font-size:17px;
  }
}

/* ======================================================
   v2.12 — MODERN MOTION LAYER (restrained 3D, premium)
====================================================== */

/* --- Pointer-tilt cards: smooth GPU transform --- */
.tilt-3d{
  transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s ease,border-color .3s ease;
  will-change:transform;
  transform-style:preserve-3d;
}

.tilt-3d:hover{
  box-shadow:0 24px 60px rgba(12,7,40,.14);
}

/* --- Scroll reveal with depth (3D lift-in) --- */
@media (prefers-reduced-motion: no-preference){
  .reveal{
    opacity:0;
    transform:perspective(1000px) translateY(30px) rotateX(5deg);
    transform-origin:center top;
    transition:opacity .7s ease,transform .9s cubic-bezier(.16,1,.3,1);
  }

  .reveal.visible{
    opacity:1;
    transform:perspective(1000px) translateY(0) rotateX(0);
  }

  /* stagger siblings slightly */
  .reveal.visible.delay-1{ transition-delay:.08s; }
  .reveal.visible.delay-2{ transition-delay:.16s; }
  .reveal.visible.delay-3{ transition-delay:.24s; }
}

/* --- Hero: animated engineering grid at depth --- */
.hero-grid-bg{
  position:absolute;
  inset:-20% -10%;
  z-index:1;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:64px 64px;
  transform-origin:center;
  mask-image:radial-gradient(ellipse 75% 65% at 60% 40%,#000 30%,transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse 75% 65% at 60% 40%,#000 30%,transparent 75%);
}

@media (prefers-reduced-motion: no-preference){
  .hero-grid-bg{
    animation:barece-grid-drift 26s linear infinite;
  }

  @keyframes barece-grid-drift{
    from{ background-position:0 0; }
    to{ background-position:64px 64px; }
  }

  /* Tech labels: slow float at different phases */
  .hero .tech-label{
    animation:barece-float 7s ease-in-out infinite;
  }
  .hero .tech-label.b{ animation-delay:1.6s; animation-duration:8.5s; }
  .hero .tech-label.c{ animation-delay:3.1s; animation-duration:9.5s; }

  @keyframes barece-float{
    0%,100%{ margin-top:0; }
    50%{ margin-top:-9px; }
  }

  /* Hero visual + labels ease when pointer parallax updates them */
  .hero-visual,
  .hero .tech-label{
    transition:transform .5s cubic-bezier(.16,1,.3,1);
    will-change:transform;
  }
}

/* --- Header: glass depth on scroll --- */
.site-header{
  transition:background .4s ease,box-shadow .4s ease,backdrop-filter .4s ease,padding .3s ease;
}

.site-header.scrolled,
.site-header.is-solid{
  backdrop-filter:blur(14px) saturate(1.2);
  -webkit-backdrop-filter:blur(14px) saturate(1.2);
  box-shadow:0 10px 40px rgba(12,7,40,.28);
}

/* Nav links: sliding underline */
.main-nav .nav-item > a{
  position:relative;
}

.main-nav .nav-item > a::after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:-6px;
  height:2px;
  background:var(--red);
  transition:right .3s cubic-bezier(.16,1,.3,1);
}

.main-nav .nav-item > a:hover::after,
.main-nav .nav-item > a[aria-current="page"]::after{
  right:0;
}

/* --- Buttons: subtle lift + arrow slide --- */
.btn{
  transition:transform .28s cubic-bezier(.16,1,.3,1),box-shadow .28s ease,background .25s ease,border-color .25s ease;
}

.btn:hover{
  transform:translateY(-2px);
}

.btn svg{
  transition:transform .28s cubic-bezier(.16,1,.3,1);
}

.btn:hover svg{
  transform:translateX(4px);
}

/* --- Section ornaments can opt into scroll parallax via data-parallax --- */
[data-parallax]{
  will-change:transform;
}

/* --- Images: gentle scale-in inside cards --- */
@media (prefers-reduced-motion: no-preference){
  .project img,
  .news-card img{
    transition:transform .8s cubic-bezier(.16,1,.3,1);
  }

  .project:hover img,
  .news-card:hover img{
    transform:scale(1.05);
  }
}

/* Touch devices: no tilt artifacts */
@media (hover: none){
  .tilt-3d{ transform:none !important; }
}

/* ======================================================
   HERO — canvas 3D building (replaces DOM model when JS runs)
====================================================== */

.hero-canvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  z-index:2;
}

/* Hide the static DOM fallback once the canvas engine boots */
.hero-visual.has-canvas .structure,
.hero-visual.has-canvas .tech-ring{
  display:none;
}

/* Keep the HUD labels above the canvas */
.hero-visual .tech-label,
.hero-visual .tech-cross{
  z-index:3;
}

/* ======================================================
   v2.14 — INTENTIONAL MOMENTS (hero light, numbers ticks,
   project masked reveal, button sweep, page enter)
====================================================== */

/* --- Hero: soft radial cursor light (depth of a workspace) --- */
.hero-cursor-light{
  position:absolute;
  z-index:2;
  width:600px;
  height:600px;
  pointer-events:none;
  opacity:0;
  background:radial-gradient(circle,rgba(120,96,220,.20),rgba(229,38,31,.05) 40%,transparent 70%);
  transition:opacity .5s ease;
  will-change:transform,opacity;
  mix-blend-mode:screen;
}

/* Live coordinate read-out tick */
[data-coord]{
  transition:color .3s ease;
}

[data-coord].coord-tick{
  color:rgba(255,255,255,.95);
}

/* --- Numbers: technical measurement marks when visible --- */
.number{
  position:relative;
}

.number::before,
.number::after{
  content:"";
  position:absolute;
  background:rgba(229,38,31,.55);
  opacity:0;
  transition:opacity .5s ease .45s,transform .7s cubic-bezier(.16,1,.3,1) .45s;
}

.number::before{         /* corner tick, top-left */
  top:-6px;
  left:0;
  width:14px;
  height:2px;
  transform:scaleX(0);
  transform-origin:left;
}

.number::after{          /* baseline measurement line */
  left:0;
  right:30%;
  bottom:-10px;
  height:1px;
  transform:scaleX(0);
  transform-origin:left;
}

.number.visible::before,
.number.visible::after{
  opacity:1;
  transform:scaleX(1);
}

/* --- Buttons: soft light sweep across on hover --- */
.btn{
  position:relative;
  overflow:hidden;
}

.btn::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:-70%;
  width:45%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.32),transparent);
  transform:skewX(-18deg);
  pointer-events:none;
  transition:left .55s ease;
}

.btn:hover::before{
  left:125%;
}

/* --- Page enter: quick, immediate-feeling fade --- */
@media (prefers-reduced-motion: no-preference){
  body{
    animation:barece-page-in .32s ease both;
  }

  @keyframes barece-page-in{
    from{ opacity:0; }
    to{ opacity:1; }
  }
}

/* ======================================================
   v2.15 — PEOPLE & CAREERS + CLIENTS/PARTNERS REDESIGN
====================================================== */

/* --- Team member cards --- */
.team-members-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
}

.member-card{
  border:1px solid var(--line);
  background:#fff;
  overflow:hidden;
}

.member-photo{
  aspect-ratio:4/5;
  background:#fafaff;
  overflow:hidden;
}

.member-photo img{ width:100%; height:100%; object-fit:cover; }

.member-body{
  padding:20px 22px;
}

.member-body h3{
  font-size:17px;
  color:var(--purple-dark);
  margin:0 0 4px;
}

.member-role{
  display:block;
  font-size:13px;
  color:#6b6690;
}

.member-linkedin{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  margin-top:14px;
  border-radius:8px;
  color:var(--purple);
  border:1px solid var(--line);
  transition:.25s;
}

.member-linkedin svg{ width:16px; height:16px; }
.member-linkedin:hover{ background:var(--purple); color:#fff; border-color:var(--purple); }

/* --- Careers panel --- */
.careers-panel{
  padding:clamp(32px,4vw,56px);
  border:1px solid var(--line);
  background:linear-gradient(135deg,#faf9ff,#f2f0fb);
}

.careers-copy{ max-width:760px; }
.careers-copy h2{ font-size:clamp(24px,3vw,34px); color:var(--purple-dark); margin:8px 0 16px; }
.careers-copy p{ color:#4b4668; line-height:1.7; margin-bottom:12px; }
.careers-send a{ color:var(--red); font-weight:600; }
.careers-copy .btn{ margin-top:18px; }

/* --- Clients: category cards --- */
.clients-cards-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
  margin-top:clamp(28px,4vw,44px);
}

.client-cat-card{
  position:relative;
  padding:30px;
  border:1px solid var(--line);
  background:#fff;
}

.client-cat-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:18px;
}

.client-cat-no{
  font-family:Manrope,sans-serif;
  font-weight:800;
  font-size:13px;
  color:#c3c0d6;
}

.client-cat-card h3{ font-size:18px; color:var(--purple-dark); margin-bottom:10px; }
.client-cat-card p{ color:#4b4668; line-height:1.6; font-size:15px; }

/* --- Unified client logo wall --- */
.logo-wall{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:18px;
}

.logo-cell{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:150px;
  padding:28px;
  border:1px solid var(--line);
  background:#fff;
}

.logo-cell img{
  max-height:92px;
  max-width:100%;
  width:auto;
  object-fit:contain;
  filter:none;
  opacity:1;
  transition:transform .25s ease;
}

.logo-cell:hover img{ transform:scale(1.05); }

.logo-cell.is-placeholder{ color:#d3d0e4; background:#fafaff; }
.logo-cell.is-placeholder svg{ width:34px; height:34px; }

/* --- International partners row --- */
.partners-row{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:16px;
  margin-top:clamp(20px,3vw,32px);
}

.partner-cell{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:110px;
  padding:22px;
  border:1px solid var(--line);
  background:#fff;
}

.partner-cell img{
  max-height:56px;
  max-width:100%;
  width:auto;
  object-fit:contain;
  transition:transform .25s ease;
}

.partner-cell:hover img{ transform:scale(1.06); }

.partner-cell span{
  font-family:Manrope,sans-serif;
  font-weight:800;
  letter-spacing:1px;
  font-size:16px;
  color:var(--purple-dark);
  opacity:.75;
}

.partner-cell:hover span{ opacity:1; color:var(--red); }

@media (max-width:1024px){
  .team-members-grid{ grid-template-columns:repeat(3,1fr); }
  .logo-wall{ grid-template-columns:repeat(3,1fr); }
}

@media (max-width:768px){
  .team-members-grid{ grid-template-columns:repeat(2,1fr); }
  .clients-cards-grid{ grid-template-columns:1fr; }
  .logo-wall{ grid-template-columns:repeat(3,1fr); }
  .partners-row{ grid-template-columns:repeat(2,1fr); }
}

@media (max-width:480px){
  .team-members-grid{ grid-template-columns:1fr 1fr; }
  .logo-wall{ grid-template-columns:1fr 1fr; }
  .member-body{ padding:14px 16px; }
}

/* --- Intro lede (Clients & similar): balanced heading + copy, no giant split --- */
.intro-lede{
  display:grid;
  grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr);
  gap:clamp(28px,5vw,72px);
  align-items:start;
  margin-bottom:clamp(36px,5vw,60px);
}

.intro-lede-head h2{
  font-size:clamp(26px,3.2vw,40px);
  line-height:1.12;
  color:var(--purple-dark);
  margin-top:10px;
}

.intro-lede-copy p{
  color:#4b4668;
  line-height:1.75;
  margin-bottom:16px;
}

.intro-lede-copy p:last-child{ margin-bottom:0; }

@media (max-width:820px){
  .intro-lede{ grid-template-columns:1fr; gap:20px; }
  .intro-lede-head h2{ font-size:clamp(24px,7vw,32px); }
}

/* --- Who We Are: compact history strip (replaces the large timeline) --- */
.who-history{
  display:flex;
  flex-wrap:wrap;
  align-items:stretch;
  gap:14px;
  margin-top:32px;
  padding-top:28px;
  border-top:1px solid var(--line);
}

.who-history-item{
  flex:1 1 0;
  min-width:150px;
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  border:1px solid var(--line);
  background:#fff;
}

.who-history-year{
  font-family:Manrope,sans-serif;
  font-weight:800;
  font-size:20px;
  color:var(--red);
  line-height:1;
}

.who-history-label{
  font-size:13px;
  color:var(--purple-dark);
  line-height:1.4;
}

.who-history-sep{
  align-self:center;
  color:#c3c0d6;
  font-size:18px;
}

@media (max-width:640px){
  .who-history{ flex-direction:column; }
  .who-history-sep{ transform:rotate(90deg); }
}

/* --- Header nav: uppercase for readability --- */
.main-nav a{
  text-transform:uppercase;
  letter-spacing:0.6px;
  font-weight:600;
  font-size:12px;
  color:rgba(255,255,255,.86);
}

.main-nav a:hover{
  color:#fff;
}

/* Keep the CTA button readable too */
.main-nav a.nav-cta{
  letter-spacing:0.6px;
}

/* Mobile menu links uppercase to match */
.mobile-nav > .nav-item > a{
  text-transform:uppercase;
  letter-spacing:0.5px;
}

/* --- Accessibility: hide screen-reader-only text (WP standard) --- */
.screen-reader-text{
  border:0;
  clip:rect(1px,1px,1px,1px);
  clip-path:inset(50%);
  height:1px;
  margin:-1px;
  overflow:hidden;
  padding:0;
  position:absolute !important;
  width:1px;
  word-wrap:normal !important;
}
.screen-reader-text:focus{
  background:#f1f1f1;
  clip:auto !important;
  clip-path:none;
  color:#21759b;
  display:block;
  height:auto;
  left:5px;
  padding:15px 23px 14px;
  text-decoration:none;
  top:5px;
  width:auto;
  z-index:100000;
}

/* --- Unified project page: Our Services list --- */
.project-services{ margin-top:40px; }
.project-services-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px 28px;
}
.project-services-list li{
  position:relative;
  padding-left:26px;
  font-size:15px;
  line-height:1.5;
  color:var(--purple-dark);
}
.project-services-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:9px;
  width:9px;
  height:9px;
  background:var(--red);
  border-radius:2px;
  transform:rotate(45deg);
}
@media (max-width:640px){
  .project-services-list{ grid-template-columns:1fr; }
}

/* --- Footer credit (DC Creative Solutions) --- */
.footer-credit a{
  color:#fff;
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.3);
  transition:.2s;
}
.footer-credit a:hover{ color:var(--red); border-color:var(--red); }

/* --- Header search --- */
.nav-search-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;height:38px;
  background:rgba(255,255,255,.08);
  border:1px solid var(--line);
  border-radius:10px;
  color:rgba(255,255,255,.86);
  cursor:pointer;
  transition:.25s;
}
.nav-search-toggle:hover{ background:var(--red); border-color:var(--red); color:#fff; }

.site-search{
  position:absolute;
  top:100%;
  left:0;right:0;
  background:rgba(18,10,59,.98);
  backdrop-filter:blur(10px);
  border-top:1px solid var(--line);
  padding:22px clamp(20px,5vw,64px);
  transform:translateY(-12px);
  opacity:0;
  visibility:hidden;
  transition:.28s ease;
  z-index:60;
}
.site-search.open{ transform:translateY(0); opacity:1; visibility:visible; }
.site-search-form{
  max-width:1200px;margin:0 auto;
  display:flex;align-items:center;gap:14px;
}
.site-search-form > svg{ color:var(--red);flex:none; }
.site-search-form input[type="search"]{
  flex:1;
  background:transparent;
  border:0;
  border-bottom:2px solid var(--line);
  padding:12px 4px;
  color:#fff;
  font-family:'Manrope',sans-serif;
  font-size:clamp(18px,2.4vw,26px);
  outline:none;
}
.site-search-form input[type="search"]::placeholder{ color:rgba(255,255,255,.4); }
.site-search-form input[type="search"]:focus{ border-color:var(--red); }
.site-search-form button[type="submit"]{
  background:var(--red);border:0;border-radius:10px;
  padding:12px 22px;color:#fff;font-family:'Manrope';font-weight:700;
  font-size:13px;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;transition:.25s;flex:none;
}
.site-search-form button[type="submit"]:hover{ transform:translateY(-2px);box-shadow:0 12px 30px rgba(229,38,31,.35); }
.site-search-close{
  background:none;border:0;color:rgba(255,255,255,.6);font-size:30px;line-height:1;
  cursor:pointer;padding:0 6px;transition:.2s;flex:none;
}
.site-search-close:hover{ color:#fff; }
@media (max-width:600px){
  .site-search-form button[type="submit"]{ display:none; }
}

/* --- Search results page --- */
.search-count{ color:#6b6785; font-size:14px; margin-bottom:24px; }
.search-results{ display:flex; flex-direction:column; gap:14px; }
.search-result{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:24px 28px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  text-decoration:none;
  transition:transform .25s, box-shadow .25s, border-color .25s;
}
.search-result:hover{ transform:translateY(-2px); box-shadow:0 16px 40px rgba(22,13,70,.08); border-color:transparent; }
.search-result-type{
  display:inline-block;
  font-family:'Manrope',sans-serif; font-weight:700; font-size:11px; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--red); margin-bottom:8px;
}
.search-result h3{ font-family:'Manrope',sans-serif; color:var(--purple-dark); font-size:19px; margin:0 0 6px; }
.search-result p{ color:#6b6785; font-size:14px; line-height:1.6; margin:0; }
.search-result-arrow{ color:var(--red); font-size:22px; flex:none; transition:transform .25s; }
.search-result:hover .search-result-arrow{ transform:translateX(5px); }

.search-empty{ text-align:center; padding:40px 0; }
.search-empty p{ color:#6b6785; font-size:17px; margin-bottom:20px; }
.search-empty-form{ display:inline-flex; gap:10px; }
.search-empty-form input{
  border:1px solid var(--line); border-radius:10px; padding:12px 16px; min-width:260px; font-size:15px;
}
.search-empty-form button{
  background:var(--red); color:#fff; border:0; border-radius:10px; padding:12px 22px;
  font-family:'Manrope'; font-weight:700; cursor:pointer;
}

/* --- Mobile menu search (above language flags) --- */
.mobile-search{
  display:flex;
  align-items:center;
  gap:10px;
  margin:8px 0 18px;
  padding:13px 16px;
  background:rgba(255,255,255,.06);
  border:1px solid var(--line);
  border-radius:12px;
}
.mobile-search svg{ color:var(--red); flex:none; }
.mobile-search input{
  flex:1;
  background:transparent;
  border:0;
  outline:none;
  color:#fff;
  font-family:'Inter',sans-serif;
  font-size:16px; /* 16px avoids iOS zoom on focus */
}
.mobile-search input::placeholder{ color:rgba(255,255,255,.5); }

/* ======================================================
   COOKIE CONSENT BAR
====================================================== */
.cookie-bar{
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:2000;
  background:var(--purple-dark, #160d46);
  color:#fff;
  border-top:2px solid var(--red);
  box-shadow:0 -12px 40px rgba(0,0,0,.28);
  transform:translateY(110%);
  transition:transform .32s cubic-bezier(.22,.8,.3,1);
}
.cookie-bar.open{ transform:translateY(0); }
.cookie-bar-inner{
  width:min(1320px,calc(100% - 56px));
  margin:auto;
  padding:20px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  flex-wrap:wrap;
}
.cookie-bar-text{ flex:1 1 420px; }
.cookie-bar-text strong{
  display:block;
  font-family:Manrope,sans-serif;
  font-size:15px;
  margin-bottom:5px;
}
.cookie-bar-text p{
  margin:0;
  font-size:13.5px;
  line-height:1.6;
  color:rgba(255,255,255,.72);
}
.cookie-bar-text a{ color:#fff; text-decoration:underline; }
.cookie-bar-text a:hover{ color:var(--red); }

.cookie-bar-actions{ display:flex; gap:10px; flex:none; flex-wrap:wrap; }
.cookie-btn{
  font-family:Manrope,sans-serif;
  font-weight:700;
  font-size:13px;
  letter-spacing:.4px;
  padding:12px 22px;
  border-radius:10px;
  cursor:pointer;
  transition:.25s;
  border:1px solid transparent;
  white-space:nowrap;
}
.cookie-btn-primary{ background:var(--red); color:#fff; }
.cookie-btn-primary:hover{ transform:translateY(-2px); box-shadow:0 12px 30px rgba(229,38,31,.35); }
.cookie-btn-ghost{
  background:transparent;
  color:rgba(255,255,255,.86);
  border-color:rgba(255,255,255,.24);
}
.cookie-btn-ghost:hover{ background:rgba(255,255,255,.1); color:#fff; }

@media (max-width:700px){
  .cookie-bar-inner{ padding:18px 0; gap:16px; }
  .cookie-bar-actions{ width:100%; }
  .cookie-btn{ flex:1; text-align:center; }
}

/* ======================================================
   FOOTER LEGAL ROW
====================================================== */
.footer-legal-row{
  margin-top:34px;
  padding-top:24px;
  border-top:1px solid var(--line, rgba(255,255,255,.12));
}
.footer-company-legal{
  margin:0;
  font-size:12px;
  line-height:1.7;
  color:rgba(255,255,255,.4);
}

/* ======================================================
   LEGAL PAGES (Privacy · Terms · Cookies)
====================================================== */
.legal-container{ max-width:860px; }
.legal-content h2{
  font-family:Manrope,sans-serif;
  font-size:22px;
  color:var(--purple-dark);
  margin:38px 0 14px;
  padding-top:22px;
  border-top:1px solid var(--line);
}
.legal-content h2:first-child{ margin-top:0; padding-top:0; border-top:0; }
.legal-content h3{
  font-family:Manrope,sans-serif;
  font-size:17px;
  color:var(--purple-dark);
  margin:24px 0 10px;
}
.legal-content p{ line-height:1.8; color:#4a4763; margin-bottom:16px; }
.legal-content ul{ margin:0 0 18px 20px; }
.legal-content li{ line-height:1.75; color:#4a4763; margin-bottom:9px; }
.legal-content a{ color:var(--red); }
.legal-content code{
  background:#f4f2fb;
  padding:2px 7px;
  border-radius:4px;
  font-size:13px;
  color:var(--purple-dark);
}
.legal-company{
  margin-top:48px;
  padding:28px 32px;
  background:#f7f6fc;
  border:1px solid var(--line);
  border-radius:16px;
}
.legal-company h2{ margin-top:0; padding-top:0; border-top:0; font-size:18px; }
.legal-company dl{ display:grid; grid-template-columns:auto 1fr; gap:10px 26px; margin:0; }
.legal-company dt{ font-weight:600; color:var(--purple-dark); font-size:14px; }
.legal-company dd{ margin:0; color:#4a4763; font-size:14px; }
.legal-updated{ margin:20px 0 0; font-size:13px; color:#8b87a3; }
@media (max-width:600px){
  .legal-company{ padding:22px; }
  .legal-company dl{ grid-template-columns:1fr; gap:4px; }
  .legal-company dd{ margin-bottom:12px; }
}

/* Footer: 4th column for legal links */
.footer-grid{ grid-template-columns:2fr 1fr 1fr 1fr; }
@media (max-width:1024px){
  .footer-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:600px){
  .footer-grid{ grid-template-columns:1fr; }
}

/* ======================================================
   FIX: horizontal overflow in card grids on mobile.
   `img { width:100% }` with no max-width makes a wide image
   (e.g. a large site plan) its own min-content size, and a
   plain `1fr` track is `minmax(auto,1fr)` — so the column is
   forced wider than the container and the card is cut off.
   Cap the image and let the tracks actually shrink.
====================================================== */
img{ max-width:100%; }

.projects-archive-grid > *,
.project-gallery-grid > *,
.news-grid > *,
.archive-grid > *,
.service-card-grid > *{
  min-width:0;
}

.project,
.project-card,
.project-card-link{ max-width:100%; }

/* Long project titles must wrap instead of pushing the card wider */
.project h3{
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:break-word;
  hyphens:auto;
}

@media (max-width:600px){
  .project h3{ font-size:21px; }
  .project-content{ left:20px; right:20px; bottom:20px; }
}

/* Belt and braces: nothing may push the page sideways */
html,body{ overflow-x:hidden; max-width:100%; }
