/* Home */
.hero-home {
  min-height: 920px;
  background: var(--color-primary-dark);
  color: #fff;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
}
.hero-home .hero-media { position:absolute; inset:0; z-index:0; }
.hero-home .hero-media picture, .hero-home .hero-media img { width:100%; height:100%; }
.hero-home .hero-media img { object-fit:cover; object-position:center; filter:saturate(.78) contrast(1.05); }
.hero-home .hero-media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(21,35,38,.99) 0%,rgba(21,35,38,.97) 32%,rgba(21,35,38,.72) 58%,rgba(21,35,38,.25) 100%),linear-gradient(0deg,rgba(21,35,38,.48),rgba(21,35,38,.04)); }
.hero-grid { position:absolute; inset:0; z-index:1; opacity:.16; background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px); background-size:58px 58px; mask-image:linear-gradient(to bottom,#000,transparent 92%); }
.hero-orbit { position:absolute; z-index:2; width:700px; height:700px; right:-250px; top:80px; border:1px solid rgba(217,154,50,.22); border-radius:50%; box-shadow:0 0 0 100px rgba(217,154,50,.035),0 0 0 190px rgba(217,154,50,.018); }
.hero-home .site-shell { position:relative; z-index:5; }
.hero-copy { max-width:1040px; padding-top:74px; }
.hero-copy .eyebrow { color:#E3B66B; margin-bottom:24px; }
.hero-copy h1 { color:#fff; max-width:1000px; }
.hero-copy h1 span { color:var(--color-accent); }
.hero-copy > p { color:#C1C9C7; font-size:clamp(18px,1.45vw,23px); max-width:820px; margin:28px 0 34px; }
.hero-actions { display:flex; gap:13px; flex-wrap:wrap; }
.hero-specs { display:grid; grid-template-columns:repeat(3,1fr); max-width:970px; margin-top:64px; padding-top:24px; border-top:1px solid rgba(255,255,255,.15); }
.hero-spec { min-height:76px; padding-right:28px; border-right:1px solid rgba(255,255,255,.12); }
.hero-spec:nth-child(2),.hero-spec:nth-child(3) { padding-left:28px; }
.hero-spec:last-child { border-right:0; }
.hero-spec strong { display:block; font-size:14px; margin-bottom:6px; }
.hero-spec span { color:#93A09F; font-size:12px; }
.hero-tech-label { position:absolute; z-index:4; color:rgba(255,255,255,.34); font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.hero-tech-label.a { right:9%; top:34%; }
.hero-tech-label.b { right:21%; bottom:13%; }

.engineering-strip { border-bottom:1px solid var(--color-line); background:#fff; }
.engineering-strip-grid { display:grid; grid-template-columns:270px 1fr; min-height:172px; }
.engineering-strip-title { display:flex; align-items:center; border-right:1px solid var(--color-line); padding-right:38px; }
.engineering-strip-title strong { font-size:20px; line-height:1.2; }
.engineering-strip-items { display:grid; grid-template-columns:repeat(3,1fr); }
.engineering-strip-item { padding:42px 34px; border-right:1px solid var(--color-line); display:flex; gap:15px; align-items:flex-start; }
.engineering-strip-item:last-child { border-right:0; }
.engineering-strip-item .badge { flex:0 0 32px; width:32px; height:32px; display:grid; place-items:center; border:1px solid rgba(217,154,50,.35); border-radius:9px; color:var(--color-accent); font-size:11px; font-weight:900; }
.engineering-strip-item strong { display:block; font-size:14px; margin-bottom:5px; }
.engineering-strip-item span { color:var(--color-text-secondary); font-size:12px; }

.home-services { background:var(--color-background); position:relative; overflow:hidden; }
.home-services::before { content:""; position:absolute; width:520px; height:520px; right:-230px; top:120px; border:1px solid rgba(47,79,79,.08); border-radius:50%; box-shadow:0 0 0 100px rgba(47,79,79,.022); }
.home-services-layout { position:relative; z-index:2; display:grid; grid-template-columns:1.12fr .88fr; gap:26px; }
.home-services-photo { min-height:720px; }
.service-list { display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--color-line); border-radius:var(--radius-lg); overflow:hidden; background:#fff; }
.service-list .service-mini { min-height:236px; padding:34px; border-right:1px solid var(--color-line); border-bottom:1px solid var(--color-line); display:flex; flex-direction:column; justify-content:flex-end; position:relative; transition:background .2s ease,transform .3s ease; }
.service-list .service-mini:nth-child(even){border-right:0}.service-list .service-mini:nth-last-child(-n+2){border-bottom:0}
.service-list .service-mini:hover { background:#EEF2EE; transform:translateY(-3px); }
.service-list .service-mini .num { color:var(--color-accent); font-size:11px; font-weight:900; letter-spacing:.12em; margin-bottom:auto; }
.service-list .service-mini h3 { font-size:20px; margin:34px 0 9px; }
.service-list .service-mini p { font-size:13px; }
.service-list .service-mini a::after { content:""; position:absolute; inset:0; }

.complex-layout { display:grid; grid-template-columns:.74fr 1.26fr; gap:26px; }
.complex-copy { min-height:700px; padding:72px 58px; border-radius:var(--radius-lg); background:var(--color-primary); color:#fff; display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; }
.complex-copy::after { content:""; width:380px; height:380px; border-radius:50%; border:1px solid rgba(255,255,255,.15); position:absolute; left:-180px; bottom:-190px; box-shadow:0 0 0 75px rgba(255,255,255,.04); }
.complex-copy .eyebrow { color:rgba(255,255,255,.78); }
.complex-copy h2 { color:#fff; margin-top:16px; }
.complex-copy p { color:rgba(255,255,255,.78); font-size:17px; margin-top:22px; }
.complex-rows { position:relative; z-index:2; margin-top:44px; }
.complex-row { display:flex; justify-content:space-between; gap:20px; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.18); font-size:13px; }
.complex-row span:last-child { color:rgba(255,255,255,.52); }
.complex-mosaic { min-height:700px; display:grid; grid-template-columns:1fr .9fr; grid-template-rows:1fr 1fr; gap:26px; }
.complex-mosaic .photo-frame:first-child { grid-row:1/3; }

.about-home-grid { display:grid; grid-template-columns:.76fr 1.24fr; gap:clamp(56px,5vw,90px); align-items:center; }
.about-home-copy .eyebrow { color:#E3B66B; margin-bottom:18px; }
.about-home-copy h2 { color:#fff; }
.about-home-copy p { font-size:18px; margin-top:24px; }
.about-home .tech-list { border-color:rgba(255,255,255,.14); }
.about-home .tech-item { border-color:rgba(255,255,255,.14); }
.about-home .tech-item strong { color:#fff; }.about-home .tech-item span{color:#859492}.about-home .tech-item b{color:#E3B66B}

.home-contact-box { display:grid; grid-template-columns:.9fr 1.1fr; border:1px solid var(--color-line); border-radius:var(--radius-lg); overflow:hidden; background:#fff; box-shadow:var(--shadow-soft); }
.home-contact-copy { padding:clamp(42px,5vw,72px); display:flex; flex-direction:column; justify-content:center; }
.home-contact-copy .eyebrow { margin-bottom:18px; }
.home-contact-copy p { font-size:17px; margin-top:22px; max-width:600px; }

/* Internal hero */
.internal-hero { position:relative; overflow:hidden; background:var(--color-primary-dark); color:#fff; padding:clamp(110px,11vw,180px) 0 clamp(80px,8vw,130px); }
.internal-hero.has-photo { min-height:650px; display:flex; align-items:flex-end; }
.internal-hero-media { position:absolute; inset:0; }
.internal-hero-media picture,.internal-hero-media img { width:100%; height:100%; }
.internal-hero-media img { object-fit:cover; filter:saturate(.78) contrast(1.04); }
.internal-hero-media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(21,35,38,.98) 0%,rgba(21,35,38,.92) 44%,rgba(21,35,38,.36) 100%),linear-gradient(0deg,rgba(21,35,38,.35),rgba(21,35,38,.08)); }
.internal-hero-grid { position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px); background-size:58px 58px; opacity:.12; }
.internal-hero-content { position:relative; z-index:2; max-width:1030px; min-width:0; }
.internal-hero-content > * { min-width:0; max-width:100%; }
.internal-hero .eyebrow { color:#E3B66B; margin-bottom:22px; }
.internal-hero h1 { color:#fff; font-size:clamp(44px,5.4vw,80px); }
.internal-hero p { max-width:820px; color:#C2C9C8; font-size:clamp(17px,1.3vw,21px); margin-top:24px; }
.internal-hero-actions { margin-top:30px; display:flex; gap:12px; flex-wrap:wrap; }

/* Services listing */
.services-page-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.service-feature-card { min-height:430px; border-radius:var(--radius-lg); position:relative; overflow:hidden; color:#fff; box-shadow:var(--shadow-card); }
.service-feature-card picture { position:absolute; inset:0; width:100%; height:100%; }
.service-feature-card img { width:100%; height:100%; object-fit:cover; transition:transform .8s ease; }
.service-feature-card:hover img { transform:scale(1.03); }
.service-feature-card::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(21,35,38,.92),rgba(21,35,38,.12) 70%); }
.service-feature-content { position:absolute; z-index:2; left:30px; right:30px; bottom:28px; }
.service-feature-content .num { color:#E3B66B; font-size:11px; font-weight:900; letter-spacing:.13em; }
.service-feature-content h2 { color:#fff; font-size:clamp(26px,3vw,42px); margin:10px 0 12px; }
.service-feature-content p { color:rgba(255,255,255,.68); max-width:700px; }
.service-feature-content a::after { content:""; position:absolute; inset:-300px -40px -40px; }

/* Service landing */
.service-intro-grid { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:clamp(50px,7vw,120px); align-items:start; }
.service-intro-copy h2 { margin:16px 0 24px; }
.service-intro-copy p { font-size:18px; margin-bottom:18px; }
.service-intro-photo { min-height:520px; }
.service-tasks { margin-top:52px; }
.service-steps { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--color-line); border-radius:var(--radius-lg); overflow:hidden; }
.service-step { min-height:230px; padding:30px; border-right:1px solid var(--color-line); background:#fff; }
.service-step:last-child { border-right:0; }
.service-step .num { color:var(--color-accent); font-size:11px; font-weight:900; letter-spacing:.13em; }
.service-step h3 { font-size:19px; margin:42px 0 10px; }
.service-step p { font-size:13px; }
.service-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; align-items:stretch; }
.service-split > *, .service-intro-grid > * { min-width:0; max-width:100%; }
.service-split .photo-frame { min-height:560px; }
.service-notes { min-width:0; max-width:100%; border-radius:var(--radius-lg); background:var(--color-primary-dark); color:#fff; padding:clamp(38px,5vw,68px); }
.service-notes .eyebrow { color:#E3B66B; margin-bottom:18px; }
.service-notes h2 { color:#fff; max-width:100%; overflow-wrap:anywhere; }
.service-notes p { color:rgba(255,255,255,.66); margin-top:18px; max-width:100%; overflow-wrap:anywhere; }
.service-notes .content-list { margin-top:30px; }
.service-notes .content-list li { color:rgba(255,255,255,.75); min-width:0; max-width:100%; overflow-wrap:anywhere; }
.service-related { display:grid; grid-template-columns:.72fr 1.28fr; gap:30px; align-items:center; border-top:1px solid var(--color-line); padding-top:44px; }
.service-related-label { font-size:12px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; color:var(--color-accent); }
.service-related h3 { font-size:clamp(24px,3vw,40px); }
.service-related a { display:inline-flex; margin-top:15px; font-weight:900; color:var(--color-primary); }

/* About */
.about-page-grid { display:grid; grid-template-columns:.76fr 1.24fr; gap:clamp(54px,6vw,96px); align-items:center; }
.about-page-copy p { font-size:18px; margin-top:18px; }
.requisites { display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--color-line); border-radius:var(--radius-lg); overflow:hidden; background:#fff; }
.requisite { padding:25px; border-right:1px solid var(--color-line); border-bottom:1px solid var(--color-line); }
.requisite:nth-child(even){border-right:0}.requisite:nth-last-child(-n+2){border-bottom:0}
.requisite span { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--color-text-secondary); font-weight:800; margin-bottom:8px; }
.requisite strong { display:block; line-height:1.3; }

/* Contacts */
.contacts-grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:30px; align-items:stretch; }
.contacts-info { display:grid; grid-template-columns:1fr; gap:14px; }
.map-card { min-height:300px; border-radius:20px; background:linear-gradient(145deg,#2F4F4F,#152326); color:#fff; padding:30px; position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; }
.map-card::before { content:""; position:absolute; inset:0; opacity:.16; background-image:linear-gradient(rgba(255,255,255,.17) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.17) 1px,transparent 1px); background-size:42px 42px; transform:rotate(-7deg) scale(1.25); }
.map-card > * { position:relative; z-index:2; }
.map-card span { color:#E3B66B; font-size:11px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.map-card strong { font-size:28px; margin:8px 0 18px; }
.map-card a { color:#fff; font-weight:900; }
.contacts-form-wrap { border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-card); }

/* Blog */
.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.article-card { border:1px solid var(--color-line); border-radius:22px; overflow:hidden; background:#fff; transition:transform .25s ease, box-shadow .25s ease; }
.article-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-card); }
.article-card-media { height:240px; overflow:hidden; }
.article-card-media picture,.article-card-media img { width:100%; height:100%; }
.article-card-media img { object-fit:cover; transition:transform .6s ease; }
.article-card:hover .article-card-media img { transform:scale(1.025); }
.article-card-body { padding:25px; }
.article-card-meta { font-size:11px; text-transform:uppercase; letter-spacing:.11em; color:var(--color-accent); font-weight:900; }
.article-card h2 { font-size:23px; margin:10px 0 12px; }
.article-card p { font-size:14px; }
.article-card a { display:inline-flex; margin-top:18px; font-weight:900; color:var(--color-primary); }
.article-page { max-width:1100px; margin:0 auto; }
.article-lead { font-size:20px; color:var(--color-text-secondary); margin-bottom:40px; }
.article-cover { min-height:520px; margin-bottom:48px; }
.article-content { width:100%; max-width:850px; min-width:0; margin:0 auto; font-size:18px; }
.article-content h2 { font-size:clamp(28px,3.4vw,44px); margin:54px 0 18px; }
.article-content h3 { margin:36px 0 12px; }
.article-content p { margin:0 0 20px; color:#445053; max-width:100%; overflow-wrap:anywhere; }
.article-content ul { margin:0 0 24px; color:#445053; }
.article-content li { margin-bottom:9px; max-width:100%; overflow-wrap:anywhere; }
.article-note { margin:32px 0; padding:24px 26px; border-left:4px solid var(--color-accent); background:var(--color-background); border-radius:0 14px 14px 0; }
.article-links {
  margin-top:60px;
  border-top:1px solid var(--color-line);
  padding-top:34px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
}
.article-back-link,
.article-project-link {
  display:inline-flex;
  align-items:center;
  min-height:32px;
  margin:0;
  padding:0;
  border:0;
  background:none;
  font:inherit;
  line-height:1.25;
  font-weight:800;
  cursor:pointer;
  white-space:nowrap;
}
.article-back-link { color:var(--color-text); }
.article-project-link { color:var(--color-accent); }
.article-back-link:hover,
.article-project-link:hover { opacity:.78; }

/* Legal / 404 */
.legal-page { max-width:980px; }
.legal-page h1 { font-size:clamp(40px,5vw,68px); margin-bottom:32px; }
.legal-page h2 { font-size:28px; margin:40px 0 14px; }
.legal-page p,.legal-page li { color:#4b5759; }
.legal-page p { margin-bottom:16px; }
.legal-page ul { margin-bottom:20px; }
.error-page { min-height:100vh; background:var(--color-primary-dark); color:#fff; display:grid; place-items:center; padding:100px var(--site-gutter); text-align:center; }
.error-code { color:var(--color-accent); font-size:clamp(110px,18vw,260px); font-weight:900; line-height:.8; letter-spacing:-.08em; }
.error-page h1 { color:#fff; font-size:clamp(32px,5vw,62px); margin:28px 0 16px; }
.error-page p { color:rgba(255,255,255,.62); max-width:620px; margin:0 auto 30px; }


/* Thematic internal heroes — shared visual language, page-specific framing */
.hero-services-overview .internal-hero-media img { object-position:center 58%; }
.hero-blog-overview .internal-hero-media img { object-position:center 46%; }
.hero-contacts .internal-hero-media img { object-position:center 60%; }
.hero-article .internal-hero-media img { object-position:center center; }

.hero-services-overview .internal-hero-media::after {
  background:linear-gradient(90deg,rgba(21,35,38,.985) 0%,rgba(21,35,38,.91) 43%,rgba(21,35,38,.30) 100%),linear-gradient(0deg,rgba(21,35,38,.42),rgba(21,35,38,.06));
}
.hero-blog-overview .internal-hero-media::after {
  background:linear-gradient(90deg,rgba(21,35,38,.985) 0%,rgba(21,35,38,.92) 46%,rgba(21,35,38,.34) 100%),linear-gradient(0deg,rgba(21,35,38,.38),rgba(21,35,38,.08));
}
.hero-contacts .internal-hero-media::after {
  background:linear-gradient(90deg,rgba(21,35,38,.985) 0%,rgba(21,35,38,.91) 42%,rgba(21,35,38,.28) 100%),linear-gradient(0deg,rgba(21,35,38,.48),rgba(21,35,38,.08));
}
.hero-article .internal-hero-media::after {
  background:linear-gradient(90deg,rgba(21,35,38,.99) 0%,rgba(21,35,38,.94) 48%,rgba(21,35,38,.36) 100%),linear-gradient(0deg,rgba(21,35,38,.44),rgba(21,35,38,.08));
}

.article-page { max-width:1180px; }
