:root{
  --yellow:#F2B705;
  --yellow-dark:#D9A404;
  --dark:#161616;
  --dark-2:#1F1F1F;
  --white:#FFFFFF;
  --off-white:#F7F7F5;
  --gray-bg:#F1F0EC;
  --text:#222222;
  --text-muted:#6B6B6B;
  --line:#E7E5E1;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Inter',sans-serif;color:var(--text);line-height:1.65;background:var(--white);}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px;}
h1,h2,h3{font-family:'Oswald',sans-serif;font-weight:600;letter-spacing:0.005em;}
.rule{width:50px;height:3px;background:var(--yellow);margin-top:14px;}
/* header */
header.site-header{position:absolute;top:0;left:0;right:0;z-index:20;background:transparent;padding:0;border-bottom:none;}
header.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:96px;width:100%;max-width:100%;padding:0 8%;}
.logo{display:flex;align-items:center;gap:10px;}
.logo img{height:64px;width:auto;}
nav.top-nav{display:flex;align-items:center;gap:6px;}
nav.top-nav a{font-size:14.5px;font-weight:500;color:rgba(255,255,255,0.92);padding:10px 16px;text-transform:capitalize;}
nav.top-nav a.active, nav.top-nav a:hover{color:var(--yellow);}
.has-dropdown{position:relative;}
.has-dropdown > a{display:flex;align-items:center;gap:5px;}
.has-dropdown > a::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-3px;}
.nav-dropdown{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);background:#1B1B1B;border:1px solid rgba(255,255,255,0.08);min-width:210px;padding:8px;opacity:0;visibility:hidden;transition:opacity .18s, transform .18s;box-shadow:0 16px 40px rgba(0,0,0,0.4);z-index:50;}
.has-dropdown:hover .nav-dropdown, .has-dropdown:focus-within .nav-dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.nav-dropdown a{display:block;color:rgba(255,255,255,0.75);font-size:13.5px;padding:10px 14px;text-transform:none;}
.nav-dropdown a:hover{color:var(--yellow);background:rgba(255,255,255,0.05);}
.search-ico{width:20px;height:20px;color:#fff;margin-left:12px;flex-shrink:0;}
/* hero (centered) */
.hero-slider{position:relative;height:100vh;min-height:640px;overflow:hidden;}
.hero-track{display:flex;height:100%;transition:transform .8s cubic-bezier(.65,0,.35,1);}
.hero-slide{flex:0 0 100%;width:100%;height:100%;position:relative;background-size:cover;background-position:center;display:flex;align-items:center;overflow:hidden;}
.hero-slide-overlay{position:absolute;inset:0;background:linear-gradient(100deg, rgba(8,10,13,0.95) 10%, rgba(8,10,13,0.84) 50%, rgba(8,10,13,0.58) 100%);}
.hero-slide-content{position:relative;z-index:2;max-width:620px;color:#fff;}
.hero-slide-content .ctas{display:flex;flex-wrap:wrap;gap:14px;align-items:center;}
.hero-slide .wrap{width:100%;max-width:100%;padding-left:8%;padding-right:8%;}
.hero-slide-content .eyebrow{color:var(--yellow);font-weight:600;letter-spacing:0.08em;text-transform:uppercase;font-size:13px;margin-bottom:18px;}
.hero-slide-content h1, .hero-slide-content h2.slide-title{font-size:48px;line-height:1.12;margin-bottom:20px;color:#fff;}
.hero-slide-content p{font-size:16.5px;color:rgba(255,255,255,0.82);margin-bottom:32px;max-width:520px;}
.hero-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:15;width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,0.12);border:1.5px solid rgba(255,255,255,0.4);color:#fff;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s;}
.hero-nav:hover{background:var(--yellow);color:var(--dark);border-color:var(--yellow);}
.hero-nav.prev{left:28px;}
.hero-nav.next{right:28px;}
.hero-dots{position:absolute;bottom:36px;left:0;right:0;z-index:15;display:flex;justify-content:center;gap:10px;}
.hero-dots .dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,0.4);cursor:pointer;transition:.2s;}
.hero-dots .dot.active{background:var(--yellow);width:28px;border-radius:6px;}
/* value-prop band (solid yellow) */
.value-band{background:var(--yellow);}
.value-band .wrap{display:grid;grid-template-columns:repeat(4,1fr);padding:0;}
.value-item{padding:44px 30px;text-align:center;border-right:1px solid rgba(0,0,0,0.08);}
.value-item:last-child{border-right:none;}
.value-item svg{width:34px;height:34px;color:var(--dark);margin-bottom:16px;}
.value-item h3{font-size:16px;color:var(--dark);margin-bottom:12px;text-transform:none;}
.value-item p{font-size:13px;color:rgba(22,22,22,0.7);}
/* about */
.about-sec{padding:90px 0;}
.about-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center;}
.about-photo{width:100%;aspect-ratio:4/3;object-fit:cover;box-shadow:0 20px 45px rgba(0,0,0,0.14);}
.about-eyebrow{color:var(--yellow-dark);font-weight:600;text-transform:uppercase;font-size:13px;letter-spacing:0.06em;margin-bottom:6px;}
.about-grid h2{font-size:30px;margin-bottom:16px;color:var(--text);}
.about-grid h2 span{color:var(--yellow-dark);}
.about-grid > div p{color:var(--text-muted);font-size:15px;margin-bottom:26px;}
.badge-row{display:flex;gap:0;border-top:1px solid var(--line);padding-top:26px;}
.badge{display:flex;align-items:center;gap:12px;flex:1;padding-right:16px;}
.badge .ic{width:44px;height:44px;border:1.5px solid var(--yellow);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.badge .ic svg{width:20px;height:20px;color:var(--yellow-dark);}
.badge strong{display:block;font-size:13.5px;color:var(--text);font-weight:600;}
/* services (icon-left list) */
.services-sec{padding:90px 0;background:var(--white);}
.svc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:56px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:34px;}
.svc-head h2{font-size:30px;}
.svc-head h2 span{color:var(--yellow-dark);}
.svc-head p{color:var(--text-muted);font-size:14.5px;max-width:440px;}
.svc-list{display:grid;grid-template-columns:repeat(2,1fr);gap:42px 40px;}
.svc-row{display:flex;gap:18px;color:inherit;}
.svc-row:hover h3{color:var(--yellow-dark);}
.svc-row .ic{width:52px;height:52px;background:var(--off-white);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.svc-row .ic svg{width:26px;height:26px;color:var(--yellow-dark);}
.svc-row h3{font-size:16.5px;margin-bottom:8px;text-transform:none;color:var(--text);}
.svc-row p{font-size:13.5px;color:var(--text-muted);}
/* latest work (dark textured) */
.work-strip{position:relative;background:var(--dark-2);color:#fff;padding:70px 0;overflow:hidden;}
.work-strip::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 30%, rgba(255,255,255,0.05), transparent 60%);}
.work-head{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;margin-bottom:34px;flex-wrap:wrap;gap:16px;}
.work-head h2{font-size:26px;color:#fff;}
.work-head h2 span{color:var(--yellow);}
.work-grid4{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.work-item{position:relative;border-radius:2px;overflow:hidden;background:#141414;min-height:220px;cursor:pointer;}
.proj-tile-btn{border:none;padding:0;font-family:inherit;text-align:left;color:inherit;}
.work-item img{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;object-fit:cover !important;max-width:none !important;max-height:none !important;transition:transform .5s ease;}
.work-item:hover img{transform:scale(1.06);}
.work-item .cap{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top, rgba(0,0,0,0.9), transparent);padding:12px;font-size:12px;color:#fff;}
/* team */
.team-sec{padding:90px 0;background:var(--white);}
.team-note{text-align:center;color:var(--text-muted);font-size:13px;margin-bottom:20px;font-style:italic;}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
.team-card{text-align:left;}
.team-avatar{width:100%;aspect-ratio:1/1;background:var(--off-white);border:1px dashed #D8D5CF;display:flex;align-items:center;justify-content:center;margin-bottom:16px;}
.team-avatar svg{width:44px;height:44px;color:#C7C4BD;}
.team-card h4{font-family:'Oswald',sans-serif;font-size:16px;margin-bottom:4px;color:var(--text);}
.team-card .role{display:block;color:var(--yellow-dark);font-size:12.5px;font-weight:600;margin-bottom:10px;}
.team-card p{font-size:13px;color:var(--text-muted);}
/* why choose us */
.why-sec{background:var(--gray-bg);padding:90px 0;}
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 40px;}
.why-item{display:flex;gap:18px;background:var(--white);padding:26px;border:1px solid var(--line);}
.why-item .ic{width:46px;height:46px;border:1.5px solid var(--yellow);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.why-item .ic svg{width:22px;height:22px;color:var(--yellow-dark);}
.why-item h3{font-size:16px;margin-bottom:8px;text-transform:none;}
.why-item p{font-size:13.5px;color:var(--text-muted);}
/* news + contact combo */
.news-contact-sec{padding:90px 0;background:var(--white);}
.nc-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:56px;}
.news-item{display:flex;gap:18px;padding-bottom:26px;margin-bottom:26px;border-bottom:1px solid var(--line);}
.news-item img{width:120px;height:90px;object-fit:cover;flex-shrink:0;transition:transform .3s ease;}
.news-item{transition:border-color .2s;}
.news-item:hover h4{color:var(--yellow-dark);}
.news-item:hover img{transform:scale(1.05);}
.news-item h4{font-size:16px;margin-bottom:8px;color:var(--text);}
.news-item p{font-size:13px;color:var(--text-muted);margin-bottom:8px;}
.news-item .meta{font-size:12.5px;color:var(--yellow-dark);font-weight:600;}
.contact-card h2{font-size:26px;margin-bottom:14px;}
.contact-card h2 span{color:var(--yellow-dark);}
.contact-card > p{color:var(--text-muted);font-size:14.5px;margin-bottom:24px;}
.qform, .wpcf7-form{display:flex !important;flex-wrap:wrap !important;gap:14px !important;}

/* Style the raw fields themselves - works whether or not CF7 wraps them
   in an extra element. */
.qform input, .qform select, .qform textarea,
.wpcf7-form input, .wpcf7-form select, .wpcf7-form textarea{
  background:var(--off-white) !important; border:1px solid var(--line) !important;
  color:var(--text) !important; padding:13px 16px !important; font-size:14px !important;
  font-family:inherit !important; width:100% !important; box-sizing:border-box !important;
}

/* Size EVERY direct child of the form to ~47% width (two per row) as the
   default - this targets whatever element CF7 actually wraps each field
   in (its exact wrapper markup has changed across plugin versions, so we
   don't rely on a specific class name matching). Anything containing a
   textarea or the submit button gets full-width / auto-width instead. */
.qform > *:not(br), .wpcf7-form > *:not(br){
  flex:1 1 47% !important; display:flex !important; min-width:220px !important;
}
.qform > *:has(textarea), .wpcf7-form > *:has(textarea),
.qform > textarea, .wpcf7-form > textarea{
  flex:1 1 100% !important;
}
.qform > *:has(input[type="submit"]), .wpcf7-form > *:has(input[type="submit"]),
.qform > input[type="submit"], .wpcf7-form > input[type="submit"]{
  flex:0 0 auto !important;
}

/* Contact Form 7 auto-wraps the whole field template in a single <p>
   (its own automatic paragraph processing, regardless of whether the
   Form-tab template has any <p> tags) - that one <p> is the form's only
   real direct child, so the direct-child rules above end up treating the
   entire form as a single unbroken block. Making that <p> a flex
   container too, and repeating the same sizing rules one level deeper for
   its children, restores the two-per-row layout regardless of whether CF7
   adds this wrapping paragraph or not. */
.qform p, .wpcf7-form p{
  display:flex !important; flex-wrap:wrap !important; gap:14px !important; width:100% !important; margin:0 !important;
}
.qform p > *:not(br), .wpcf7-form p > *:not(br){
  flex:1 1 47% !important; display:flex !important; min-width:220px !important;
}
.qform p > *:has(textarea), .wpcf7-form p > *:has(textarea),
.qform p > textarea, .wpcf7-form p > textarea{
  flex:1 1 100% !important;
}
.qform p > *:has(input[type="submit"]), .wpcf7-form p > *:has(input[type="submit"]),
.qform p > input[type="submit"], .wpcf7-form p > input[type="submit"]{
  flex:0 0 auto !important;
}
.qform textarea, .wpcf7-form textarea{min-height:90px !important;resize:vertical;}

.qform input[type="submit"], .wpcf7-form input[type="submit"], .qform button{
  flex:0 0 auto !important;background:var(--yellow) !important;color:var(--dark) !important;
  border:none !important;font-weight:700;text-transform:uppercase;font-size:13px;
  padding:14px 30px !important;cursor:pointer;width:auto !important;
}
.qform .wpcf7-response-output, .wpcf7-form .wpcf7-response-output{flex:1 1 100% !important;margin:0;border-radius:0;}
/* Hidden until Contact Form 7 actually populates it with a real message
   after a submission attempt - otherwise this empty box is visible on
   every page load, which the original design never showed. Using :empty
   (rather than display:none outright) means it automatically reappears
   the moment CF7's own JS fills it with text, without fighting that JS. */
.qform .wpcf7-response-output:empty, .wpcf7-form .wpcf7-response-output:empty{display:none !important;}
.qform .wpcf7-not-valid-tip, .wpcf7-form .wpcf7-not-valid-tip{flex:1 1 100% !important;font-size:12px;margin-top:-8px;}



/* Contact Form 7 support: CF7 wraps each field in its own span, so the
   flex-basis above (which targets the raw <input>/<select>/<textarea>
   tags) needs a matching rule on CF7's own wrapper element too, or the
   two-column layout collapses to stacked fields. Give the form itself
   the "qform" class via CF7's Additional Settings tab (html_class: qform)
   to activate all of this automatically. */







/* industries strip */
.industries-strip{padding:50px 0;background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.industries-strip .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;}
.industries-strip .item{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:0.04em;color:var(--text-muted);font-size:14px;}
/* buttons */
.btn-solid{background:var(--yellow);color:var(--dark);font-weight:700;text-transform:uppercase;font-size:13px;letter-spacing:0.03em;padding:14px 26px;white-space:nowrap;display:inline-block;transition:background .2s;}
.btn-solid:hover{background:var(--yellow-dark);}
.btn-outline{border:1.5px solid var(--yellow);color:var(--yellow);font-weight:700;text-transform:uppercase;font-size:13px;padding:13px 26px;white-space:nowrap;display:inline-block;transition:.2s;}
.btn-outline:hover{background:var(--yellow);color:var(--dark);}
/* footer */
footer.site-footer{background:var(--dark);color:#B8B8B8;padding:70px 0 0;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1.1fr;gap:32px;padding-bottom:50px;}
.footer-grid .logo img{height:40px;margin-bottom:16px;}
.footer-grid p{font-size:13.5px;color:#8A8A8A;margin-bottom:18px;}
.footer-col h4{color:#fff;font-size:15px;margin-bottom:20px;text-transform:uppercase;letter-spacing:0.03em;}
.footer-col a{display:block;color:#9A9A9A;font-size:13.5px;margin-bottom:11px;}
.footer-col a:hover{color:var(--yellow);}
.footer-bottom{border-top:1px solid #2B2B2B;padding:22px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:12.5px;color:#7A7A7A;}
.footer-bottom a{color:#7A7A7A;}
.footer-bottom a:hover{color:var(--yellow);}
/* stats band - dark with yellow numbers */
.stats-band{background:var(--dark);}
.stats-band .wrap{display:grid;grid-template-columns:repeat(4,1fr);}
.stat-cell{text-align:center;padding:52px 20px;border-right:1px solid rgba(255,255,255,0.08);}
.stat-cell:first-child{border-left:1px solid rgba(255,255,255,0.08);}
.stat-cell strong{display:block;font-family:'Oswald',sans-serif;font-size:46px;color:var(--yellow);line-height:1;margin-bottom:10px;}
.stat-cell span{font-size:13px;color:rgba(255,255,255,0.6);text-transform:uppercase;letter-spacing:0.06em;}
.dd-sub{position:relative;}
.dd-sub > a.dd-parent{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.dd-sub > a.dd-parent::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-top:1.5px solid currentColor;transform:rotate(45deg);flex-shrink:0;}
.dd-flyout{position:absolute;top:0;left:100%;background:#1B1B1B;border:1px solid rgba(255,255,255,0.08);min-width:220px;padding:8px;opacity:0;visibility:hidden;transform:translateX(6px);transition:opacity .18s, transform .18s;box-shadow:0 16px 40px rgba(0,0,0,0.4);z-index:60;}
.dd-sub:hover .dd-flyout, .dd-sub:focus-within .dd-flyout{opacity:1;visibility:visible;transform:translateX(0);}
.dd-flyout a{display:block;color:rgba(255,255,255,0.75);font-size:13.5px;padding:9px 14px;text-transform:none;}
.dd-flyout a:hover{color:var(--yellow);background:rgba(255,255,255,0.05);}
/* mechanical design services seo section */
.mds-sec{background:var(--off-white);padding:90px 0;border-top:1px solid var(--line);}
.mds-sec h2{font-size:30px;margin-bottom:20px;}
.mds-sec h2 span{color:var(--yellow-dark);}
.mds-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:50px;align-items:start;}
.mds-sec p{color:var(--text-muted);font-size:15px;margin-bottom:16px;}
.mds-points{display:flex;flex-direction:column;gap:12px;}
.mds-points .pt{display:flex;align-items:stretch;background:var(--white);border:1px solid var(--line);padding:0;overflow:hidden;opacity:0;transform:translateX(36px);transition:opacity .55s ease, transform .55s ease, box-shadow .25s ease;}
.mds-points .pt.in-view{opacity:1;transform:translateX(0);}
.mds-points .pt:nth-child(1){transition-delay:0s;}
.mds-points .pt:nth-child(2){transition-delay:.1s;}
.mds-points .pt:nth-child(3){transition-delay:.2s;}
.mds-points .pt:nth-child(4){transition-delay:.3s;}
.mds-points .pt:nth-child(5){transition-delay:.4s;}
.mds-points .pt:hover{box-shadow:0 14px 30px rgba(20,26,32,0.12);border-color:var(--yellow);}
.mds-points .pt .pt-img{width:110px;align-self:stretch;height:auto;object-fit:cover;flex-shrink:0;transition:transform .4s ease;}
.mds-points .pt:hover .pt-img{transform:scale(1.07);}
.mds-points .pt .pt-body{padding:14px 18px;display:flex;flex-direction:column;justify-content:center;}
.mds-points .pt strong{display:block;font-size:14.5px;color:var(--text);margin-bottom:3px;}
.mds-points .pt span{font-size:13px;color:var(--text-muted);}
/* project modal (shared with projects.html) */
.proj-modal-overlay{position:fixed;inset:0;background:rgba(10,12,15,0.82);z-index:200;display:none;align-items:flex-start;justify-content:center;padding:5vh 20px;overflow-y:auto;}
.proj-modal-overlay.open{display:flex;}
.proj-modal{background:var(--white);width:100%;max-width:900px;overflow:hidden;position:relative;animation:modalIn .25s ease;}
.proj-modal-close{position:absolute;top:16px;right:16px;z-index:5;width:42px;height:42px;border-radius:50%;background:rgba(10,12,15,0.55);border:none;color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s;}
.proj-modal-close:hover{background:var(--yellow);color:var(--dark);}
.proj-modal-banner{position:relative;height:320px;background-size:cover;background-position:center;}
.proj-modal-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(10,12,15,0.1) 0%, rgba(10,12,15,0.85) 100%);}
.proj-modal-banner .info{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:28px 40px;}
.proj-modal-banner .cat{display:inline-block;background:var(--yellow);color:var(--dark);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;padding:5px 12px;margin-bottom:12px;}



.proj-modal-facts{background:var(--off-white);border:1px solid var(--line);padding:6px 22px;}
.proj-modal-facts .row{display:flex;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);}
.proj-modal-facts .row:last-child{border-bottom:none;}


.proj-modal-sub h4{font-family:'Oswald',sans-serif;font-size:14px;text-transform:uppercase;letter-spacing:0.03em;color:var(--text);margin:22px 0 10px;}
.proj-modal-sub h4:first-child{margin-top:0;}
.proj-modal-sub ul, .proj-modal-sub ol{margin:0 0 6px 20px;padding:0;}
.proj-modal-sub li{font-size:13.5px;color:var(--text-muted);margin-bottom:7px;line-height:1.55;}
.proj-features{background:var(--off-white);border:1px solid var(--line);padding:18px 22px;}
.proj-features h4{font-family:'Oswald',sans-serif;font-size:13px;text-transform:uppercase;letter-spacing:0.03em;color:var(--text);margin-bottom:12px;}
.proj-features ul{margin:0;padding:0;list-style:none;}
.proj-features li{font-size:13px;color:var(--text-muted);margin-bottom:9px;padding-left:16px;position:relative;line-height:1.5;}
.proj-features li::before{content:"";position:absolute;left:0;top:7px;width:6px;height:6px;background:var(--yellow);}
body.modal-lock{overflow:hidden;}
.hero-slide-content h1{font-size:48px;line-height:1.12;margin-bottom:20px;color:#fff;}
.svc-row{display:flex;gap:18px;}

.news-item img{width:120px;height:90px;object-fit:cover;flex-shrink:0;}
/* detail page hero (single static image, not carousel) */
.detail-hero{position:relative;min-height:56vh;display:flex;align-items:center;background-size:cover;background-position:center;background-repeat:no-repeat;color:#fff;overflow:hidden;}
.detail-hero-overlay{position:absolute;inset:0;background:linear-gradient(100deg, rgba(8,10,13,0.93) 20%, rgba(8,10,13,0.55) 100%);}
.detail-hero .wrap{position:relative;z-index:1;width:100%;max-width:100%;padding:120px 8% 60px;}
.detail-hero .breadcrumb{color:rgba(255,255,255,0.6);font-size:13px;margin-bottom:16px;}
.detail-hero .breadcrumb a:hover{color:var(--yellow);}
.detail-hero h1{font-size:44px;color:#fff;margin-bottom:16px;max-width:680px;}
.detail-hero p{color:rgba(255,255,255,0.8);max-width:600px;font-size:16.5px;}
/* detail service cards - bigger variant of the icon-left row */
.detail-svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:36px 44px;}
.simple-svc-card{display:flex;gap:20px;padding:30px;background:var(--off-white);border:1px solid var(--line);}
.simple-svc-card .ic{width:56px;height:56px;background:var(--white);border:1.5px solid var(--yellow);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.simple-svc-card .ic svg{width:28px;height:28px;color:var(--yellow-dark);}
.simple-svc-card h3{font-size:18px;margin-bottom:10px;text-transform:none;color:var(--text);}
.simple-svc-card p{font-size:14.5px;color:var(--text-muted);}
/* simple dark CTA band for detail pages */
.detail-cta{background:var(--dark);color:#fff;text-align:center;padding:80px 0;}
.detail-cta h2{font-size:30px;color:#fff;margin-bottom:14px;}
.detail-cta p{color:rgba(255,255,255,0.7);margin-bottom:30px;}
.detail-cta .ctas{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;}
/* about page */
.about-hero{background:var(--dark);color:#fff;padding:110px 0 60px;}
.about-hero .wrap{width:100%;max-width:100%;padding-left:8%;padding-right:8%;}
.about-hero .breadcrumb{color:rgba(255,255,255,0.6);font-size:13px;margin-bottom:16px;}
.about-hero .breadcrumb a:hover{color:var(--yellow);}
.about-hero h1{font-size:44px;color:#fff;margin-bottom:14px;}
.about-hero p{color:rgba(255,255,255,0.8);max-width:620px;font-size:16.5px;}
.about-page-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center;}
.about-page-grid .about-photo{width:100%;aspect-ratio:4/3;object-fit:cover;box-shadow:0 20px 45px rgba(0,0,0,0.14);}
.about-page-grid h2{font-size:28px;margin-bottom:16px;color:var(--text);}
.about-page-grid h2 span{color:var(--yellow-dark);}
.about-page-grid p{color:var(--text-muted);font-size:15px;margin-bottom:18px;}
.mission-line{font-family:'Oswald',sans-serif;font-size:22px;color:var(--text);margin-top:6px;}
.mission-line span{color:var(--yellow-dark);}
/* stats band (same as homepage) */
.stats-band{background:var(--dark);}
/* our network */
.network-sec{background:var(--off-white);padding:90px 0;border-top:1px solid var(--line);}
.network-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 24px;margin-top:10px;}
.net-item{display:flex;align-items:center;gap:10px;background:var(--white);border:1px solid var(--line);padding:12px 16px;font-size:14px;color:var(--text);transition:border-color .2s, box-shadow .2s;}
.net-item:hover{border-color:var(--yellow);box-shadow:0 8px 20px rgba(20,26,32,0.08);}
.net-item .dot{width:8px;height:8px;background:var(--yellow);border-radius:50%;flex-shrink:0;}
.net-item.intl{font-weight:600;}
/* detail service cards - bigger variant of the icon-left row */
.detail-svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;}
.detail-svc-card{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;min-height:270px;overflow:hidden;background:var(--dark);}
.detail-svc-card .card-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s ease;}
.detail-svc-card::after{content:"";position:absolute;inset:0;background:linear-gradient(170deg, rgba(12,15,19,0.42) 0%, rgba(12,15,19,0.7) 100%);transition:background .3s ease;}
.detail-svc-card:hover .card-img{transform:scale(1.07);}
.detail-svc-card:hover::after{background:linear-gradient(170deg, rgba(12,15,19,0.68) 0%, rgba(12,15,19,0.92) 100%);}
.detail-svc-card .card-body{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:0;padding:34px 26px;}
.detail-svc-card .ic{width:auto;height:auto;background:none;border:none;display:block;margin-bottom:18px;}
.detail-svc-card h3{margin-bottom:0;transition:margin-bottom .35s ease;}
.detail-svc-card:hover h3, .detail-svc-card:focus-within h3{margin-bottom:12px;}
.detail-svc-card p{max-height:0;opacity:0;overflow:hidden;transform:translateY(10px);transition:max-height .4s ease, opacity .3s ease, transform .4s ease;}
.detail-svc-card:hover p, .detail-svc-card:focus-within p{max-height:240px;opacity:1;transform:translateY(0);}
.detail-svc-card .ic svg{width:40px;height:40px;color:var(--yellow);}
.detail-svc-card h3{font-size:19px;text-transform:none;color:#fff;}
.detail-svc-card p{font-size:13.5px;color:rgba(255,255,255,0.76);}
.detail-svc-card.open h3{margin-bottom:12px;}
.detail-svc-card.open p{max-height:240px;opacity:1;transform:translateY(0);}
.detail-svc-card.open::after{background:linear-gradient(170deg, rgba(12,15,19,0.68) 0%, rgba(12,15,19,0.92) 100%);}
/* contact page */
.contact-hero{background:var(--dark);color:#fff;padding:110px 0 60px;}
.contact-hero .wrap{width:100%;max-width:100%;padding-left:8%;padding-right:8%;}
.contact-hero .breadcrumb{color:rgba(255,255,255,0.6);font-size:13px;margin-bottom:16px;}
.contact-hero .breadcrumb a:hover{color:var(--yellow);}
.contact-hero h1{font-size:44px;color:#fff;margin-bottom:14px;}
.contact-hero p{color:rgba(255,255,255,0.8);max-width:560px;font-size:16.5px;}
.contact-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:48px;align-items:start;}
.info-card{background:var(--off-white);border:1px solid var(--line);padding:26px 28px;display:flex;gap:18px;margin-bottom:18px;}
.info-card .ic{width:46px;height:46px;background:var(--white);border:1.5px solid var(--yellow);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.info-card .ic svg{width:22px;height:22px;color:var(--yellow-dark);}
.info-card h3{font-size:16px;margin-bottom:6px;text-transform:none;color:var(--text);}
.info-card p, .info-card a{font-size:14px;color:var(--text-muted);}
.info-card p.addr-2{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);}
.info-card a:hover{color:var(--yellow-dark);}
/* projects listing */
.proj-hero{background:var(--dark);color:#fff;padding:110px 0 60px;}
.proj-hero .wrap{width:100%;max-width:100%;padding-left:8%;padding-right:8%;}
.proj-hero .breadcrumb{color:rgba(255,255,255,0.6);font-size:13px;margin-bottom:16px;}
.proj-hero .breadcrumb a:hover{color:var(--yellow);}
.proj-hero h1{font-size:44px;color:#fff;margin-bottom:14px;}
.proj-hero p{color:rgba(255,255,255,0.8);max-width:620px;font-size:16.5px;}
.proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.proj-card{position:relative;display:block;overflow:hidden;background:var(--dark);min-height:300px;color:#fff;width:100%;text-align:left;border:none;padding:0;cursor:pointer;font-family:inherit;}
.proj-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .55s ease;}
.proj-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(12,15,19,0.15) 0%, rgba(12,15,19,0.9) 100%);transition:background .3s;}
.proj-card:hover img{transform:scale(1.07);}
.proj-card:hover::after{background:linear-gradient(180deg, rgba(12,15,19,0.35) 0%, rgba(12,15,19,0.95) 100%);}
.proj-card .info{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:24px;}
.proj-card .cat{display:inline-block;background:var(--yellow);color:var(--dark);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;padding:5px 12px;margin-bottom:12px;}
.proj-card h3{font-size:19px;color:#fff;text-transform:none;margin-bottom:6px;}
.proj-card p{font-size:13px;color:rgba(255,255,255,0.78);}
.proj-card .more{display:inline-block;margin-top:12px;color:var(--yellow);font-size:12.5px;font-weight:600;}
/* project modal */
.proj-modal-overlay{position:fixed;inset:0;background:rgba(10,12,15,0.82);z-index:200;display:none;align-items:flex-start;justify-content:center;padding:5vh 20px;overflow-y:auto;}

.proj-modal-banner h2{font-size:28px;color:#fff;text-transform:none;}
.proj-modal-body{padding:36px 40px 44px;display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:start;max-height:60vh;overflow-y:auto;}
.proj-modal-body p{color:var(--text-muted);font-size:14.5px;margin-bottom:16px;line-height:1.7;}
.proj-modal-facts{background:var(--off-white);border:1px solid var(--line);padding:6px 22px;margin-bottom:22px;}
.proj-modal-facts .k{font-size:11.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.04em;}
.proj-modal-facts .v{font-size:13px;color:var(--text);font-weight:600;text-align:right;}

/* ===== responsive / keyframe blocks ===== */
@media(max-width:640px){
  .hero-nav{width:40px;height:40px;font-size:18px;}
  .hero-nav.prev{left:12px;} .hero-nav.next{right:12px;}
  .hero-slide-content h1, .hero-slide-content h2.slide-title{font-size:30px;}
  .hero-slide .wrap{width:100%;padding-left:64px;padding-right:64px;}
}
@media(max-width:960px){
  .hero h1{font-size:32px;}
  .value-band .wrap{grid-template-columns:1fr 1fr;}
  .value-item{border-right:none;border-bottom:1px solid rgba(0,0,0,0.08);}
  .about-grid{grid-template-columns:1fr;}
  .badge-row{flex-wrap:wrap;gap:16px;}
  .svc-list{grid-template-columns:1fr;}
  .work-grid4{grid-template-columns:1fr 1fr;}
  .team-grid{grid-template-columns:1fr 1fr;}
  .why-grid{grid-template-columns:1fr;}
  .nc-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:860px){.stats-band .wrap{grid-template-columns:1fr 1fr;}.stat-cell{border:1px solid rgba(255,255,255,0.08);margin:-1px 0 0 -1px;}}
@media (prefers-reduced-motion: reduce){.mds-points .pt{opacity:1;transform:none;transition:none;}}
@media(max-width:860px){.mds-grid{grid-template-columns:1fr;}}
@keyframes modalIn{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}
@media(max-width:700px){
  .proj-modal-banner{height:220px;}
  .proj-modal-banner h2{font-size:22px;}
  .proj-modal-banner .info{padding:20px;}
  .proj-modal-body{grid-template-columns:1fr;padding:26px 22px 32px;max-height:62vh;}
}
@media(max-width:640px){
  .hero-nav{width:40px;height:40px;font-size:18px;}
  .hero-nav.prev{left:12px;} .hero-nav.next{right:12px;}
  .hero-slide-content h1{font-size:30px;}
  .hero-slide .wrap{width:100%;padding-left:24px;padding-right:24px;}
}
@media(max-width:860px){
  .detail-hero h1{font-size:30px;}
  .detail-svc-grid{grid-template-columns:1fr;}
}
@media(max-width:860px){
  .about-hero h1{font-size:30px;}
  .about-page-grid{grid-template-columns:1fr;}
  .stats-band .wrap{grid-template-columns:1fr 1fr;}
  .stat-cell{border:1px solid rgba(255,255,255,0.08);margin:-1px 0 0 -1px;}
}
@media(max-width:860px){.network-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:860px){
  .detail-hero h1{font-size:30px;}
  .detail-svc-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:560px){
  .detail-svc-grid{grid-template-columns:1fr;}
  .detail-svc-card{min-height:230px;}
}
@media(hover:none){
  .detail-svc-card{cursor:pointer;}
  .detail-svc-card .card-body::after{content:"+";display:block;margin-top:14px;font-family:'Oswald',sans-serif;font-size:22px;line-height:1;color:var(--yellow);}
  .detail-svc-card.open .card-body::after{content:"\2212";}
}
@media(max-width:860px){
  .contact-hero h1{font-size:30px;}
  .contact-grid{grid-template-columns:1fr;}
}
@media(max-width:860px){.proj-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.proj-grid{grid-template-columns:1fr;}}
@media(max-width:700px){
  .proj-modal-banner{height:220px;}
  .proj-modal-banner h2{font-size:20px;}
  .proj-modal-banner .info{padding:20px;}
  .proj-modal-body{grid-template-columns:1fr;padding:26px 22px 32px;max-height:66vh;}
}
/* single-project.php fallback page + page-projects.php listing wrapper */
.pd-hero{position:relative;min-height:56vh;display:flex;align-items:flex-end;background-size:cover;background-position:center;color:#fff;overflow:hidden;}
.pd-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(10,12,15,0.55) 0%, rgba(10,12,15,0.9) 100%);}
.pd-hero .wrap{position:relative;z-index:2;width:100%;max-width:100%;padding:0 8% 54px;}
.pd-hero .breadcrumb{color:rgba(255,255,255,0.65);font-size:13px;margin-bottom:14px;}
.pd-hero .breadcrumb a:hover{color:var(--yellow);}
.pd-hero .cat{display:inline-block;background:var(--yellow);color:var(--dark);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;padding:5px 12px;margin-bottom:14px;}
.pd-hero h1{font-size:42px;color:#fff;max-width:760px;}
.pd-body{padding:80px 0;}
.pd-grid{display:grid;grid-template-columns:1.6fr 0.9fr;gap:56px;align-items:start;}
.pd-grid p{color:var(--text-muted);font-size:15.5px;margin-bottom:18px;line-height:1.75;}
.pd-grid h4{font-family:'Oswald',sans-serif;font-size:14px;text-transform:uppercase;letter-spacing:0.03em;color:var(--text);margin:22px 0 10px;}
.pd-grid ul, .pd-grid ol{margin:0 0 16px 20px;padding:0;}
.pd-grid li{font-size:14px;color:var(--text-muted);margin-bottom:7px;line-height:1.6;}
.pd-facts{background:var(--off-white);border:1px solid var(--line);padding:8px 24px;}
.pd-facts .row{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);}
.pd-facts .row:last-child{border-bottom:none;}
.pd-facts .k{font-size:12.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.04em;}
.pd-facts .v{font-size:14px;color:var(--text);font-weight:600;text-align:right;}
.pd-nav{display:flex;justify-content:space-between;gap:16px;margin-top:50px;border-top:1px solid var(--line);padding-top:28px;}
.pd-nav a{font-size:14px;font-weight:600;color:var(--text);}
.pd-nav a:hover{color:var(--yellow-dark);}
.pd-nav a.disabled{opacity:0.35;pointer-events:none;}
@media(max-width:860px){
  .pd-hero h1{font-size:28px;}
  .pd-grid{grid-template-columns:1fr;gap:32px;}
}


/* CF7 auto-inserts <br> between fields (its own paragraph
   processing) - hide them, since flex-wrap now handles line breaks,
   and an unstyled <br> would otherwise count as its own flex item and
   throw off the pairing pattern. */
.qform br, .wpcf7-form br{display:none !important;}
/* ===== Mobile navigation ===== */
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;background:none;border:none;cursor:pointer;z-index:30;flex-shrink:0;}
.nav-close{display:none;}
.nav-toggle span{display:block;width:24px;height:2px;background:#fff;transition:transform .25s ease, opacity .2s ease;}
.nav-toggle.is-active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.is-active span:nth-child(2){opacity:0;}
.nav-toggle.is-active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

body.nav-lock{overflow:hidden;}

@media(max-width:960px){
  .nav-toggle{display:flex !important;}

  .nav-close{
    display:flex !important; align-items:center; justify-content:center;
    position:absolute !important; top:20px !important; right:20px !important;
    width:40px !important; height:40px !important; background:rgba(255,255,255,0.06) !important;
    border:none !important; border-radius:50% !important; color:#fff !important;
    font-size:26px !important; line-height:1 !important; cursor:pointer !important;
    z-index:10 !important;
  }
  .nav-close:hover{background:var(--yellow) !important; color:var(--dark) !important;}

  .top-nav{
    display:flex !important;
    position:fixed !important; top:0 !important; right:0 !important; left:auto !important;
    height:100vh !important; width:min(340px, 86vw) !important;
    background:#111417 !important; flex-direction:column !important; align-items:flex-start !important;
    padding:96px 24px 32px !important; gap:0 !important; overflow-y:auto !important; overflow-x:hidden !important;
    transform:translateX(100%); transition:transform .3s ease;
    z-index:9999 !important; box-shadow:-20px 0 50px rgba(0,0,0,0.4) !important;
  }
  .top-nav.nav-open{transform:translateX(0) !important;}

  .top-nav > a, .top-nav > .has-dropdown{width:100% !important;}
  .top-nav > a{padding:14px 0 !important;border-bottom:1px solid rgba(255,255,255,0.08) !important;width:100% !important;color:rgba(255,255,255,0.92) !important;text-transform:none !important;}
  .has-dropdown > a{padding:14px 0 !important;border-bottom:1px solid rgba(255,255,255,0.08) !important;width:100% !important;justify-content:space-between !important;color:rgba(255,255,255,0.92) !important;text-transform:none !important;}

  /* Dropdowns become inline expanding sections instead of hover-flyouts */
  .nav-dropdown{
    position:static !important; transform:none !important; opacity:1 !important; visibility:visible !important;
    background:rgba(255,255,255,0.03) !important; border:none !important; box-shadow:none !important;
    min-width:0 !important; width:100% !important; padding:0 0 0 14px !important; left:auto !important; top:auto !important;
    max-height:0; overflow:hidden !important; transition:max-height .3s ease;
  }
  .has-dropdown.submenu-open > .nav-dropdown{max-height:2000px !important;}
  .has-dropdown > a::after{transition:transform .2s ease;}
  .has-dropdown.submenu-open > a::after{transform:rotate(225deg);}

  .dd-sub{width:100% !important;}
  .dd-sub > a.dd-parent{display:flex !important;align-items:center !important;justify-content:space-between !important;gap:8px !important;padding:12px 0 !important;border-bottom:1px solid rgba(255,255,255,0.06) !important;width:100% !important;color:rgba(255,255,255,0.92) !important;text-transform:none !important;}
  .dd-flyout{
    position:static !important; left:auto !important; top:auto !important; transform:none !important; opacity:1 !important; visibility:visible !important;
    background:transparent !important; border:none !important; box-shadow:none !important; min-width:0 !important;
    width:100% !important; padding:0 0 0 14px !important;
    max-height:0; overflow:hidden !important; transition:max-height .3s ease;
  }
  .dd-sub.submenu-open > .dd-flyout{max-height:1000px !important;}
  .dd-sub > a.dd-parent::after{
    border-top:none !important; border-bottom:1.5px solid currentColor !important;
    margin-top:-3px !important; transition:transform .2s ease;
  }
  .dd-sub.submenu-open > a.dd-parent::after{transform:rotate(225deg) !important;}

  .nav-dropdown a, .dd-flyout a{padding:11px 0 !important;font-size:13px !important;color:rgba(255,255,255,0.75) !important;text-transform:none !important;display:block !important;width:100% !important;}
  .search-ico{display:none !important;}
}
