/* =========================================================================
   МС-КОНСТРАКШН — inner-page components (loaded after main.css)
   ========================================================================= */

/* ---- page hero ---- */
.page-hero{padding-top:calc(var(--head-h) + clamp(46px,8vw,92px));padding-bottom:clamp(36px,5vw,64px)}
.page-hero--photo.ph-objekty::before{background-image:url('../img/bg/objekty.jpg')}
.page-hero--photo.ph-kompetencii::before{background-image:url('../img/bg/kompetencii.jpg')}
.page-hero--photo.ph-o::before{background-image:url('../img/bg/o-kompanii.jpg')}
.page-hero--photo.ph-kontakty::before{background-image:url('../img/bg/kontakty.jpg')}
.page-hero__crumb{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);margin-bottom:clamp(20px,3vw,30px)}
.page-hero__crumb a{transition:color .2s}.page-hero__crumb a:hover{color:var(--ink)}
.page-hero__crumb span{opacity:.5}
.page-hero__title{font-family:var(--font-display);font-weight:200;
  font-size:clamp(38px,6.6vw,90px);line-height:.98;letter-spacing:-.02em}
.page-hero__intro{margin-top:clamp(20px,2.6vw,30px);max-width:56ch}
.page-hero--split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.42fr);
  gap:clamp(24px,4vw,56px);align-items:end}
.page-hero__aside{font-size:14px;color:var(--ink-2);line-height:1.7}

/* photo hero variant — unique background per page (photo visible on top, text anchored bottom) */
.page-hero--photo{position:relative;overflow:hidden;color:var(--on-deep);
  min-height:clamp(360px,54vh,500px);display:flex;flex-direction:column;justify-content:flex-end;
  padding-top:calc(var(--head-h) + 48px);padding-bottom:clamp(38px,5vw,62px)}
.page-hero--photo::before{content:"";position:absolute;inset:0;z-index:-2;
  background-image:var(--hero-img);background-size:cover;background-position:center}
.page-hero--photo::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(0deg,rgba(10,7,4,.88) 0%,rgba(10,7,4,.44) 30%,rgba(10,7,4,.06) 58%,transparent 100%)}
.page-hero--photo .page-hero__title{text-shadow:0 2px 30px rgba(10,7,4,.5)}
.page-hero--photo .page-hero__crumb{color:rgba(255,255,255,.9);text-shadow:0 1px 10px rgba(10,7,4,.7);margin-bottom:16px}
.page-hero--photo .page-hero__crumb a:hover{color:#fff}
.page-hero--photo .page-hero__crumb span{color:rgba(255,255,255,.5)}
.page-hero--photo .page-hero__aside{color:#fff;text-shadow:0 1px 14px rgba(10,7,4,.8)}

/* ---- filters ---- */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:clamp(26px,3vw,40px)}
.filter{padding:10px 18px;border:1px solid var(--line-2);border-radius:100px;font-size:13.5px;
  color:var(--ink-2);transition:background .25s,color .25s,border-color .25s}
.filter:hover{color:var(--ink);border-color:var(--ink)}
.filter.is-active{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.object-card.is-hidden{display:none}

/* ---- object detail ---- */
.detail__media{aspect-ratio:16/9;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);
  background:radial-gradient(120% 90% at 70% 20%,rgba(255,250,242,.5),transparent 55%),linear-gradient(150deg,#CFC8BC,#9D9181)}
.detail__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.78fr);gap:clamp(32px,5vw,72px);
  margin-top:clamp(40px,5vw,64px)}
.detail__text p{margin-bottom:18px;color:var(--ink-2);font-size:16px;line-height:1.7}
.detail__text h3{font-family:var(--font-display);font-weight:300;font-size:24px;margin:34px 0 14px;letter-spacing:-.01em}
.detail__text ul{list-style:none;display:flex;flex-direction:column;gap:12px}
.detail__text li{position:relative;padding-left:26px;color:var(--ink-2)}
.detail__text li::before{content:"";position:absolute;left:0;top:9px;width:10px;height:1px;background:var(--clay)}
.spec{border-top:1px solid var(--line)}
.detail__grid>aside{position:sticky;top:calc(var(--head-h) + 20px);align-self:start}
.spec__row{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.spec__row dt{color:var(--muted)}
.spec__row dd{text-align:right;font-weight:500}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:clamp(40px,5vw,64px)}
.gallery div{aspect-ratio:4/3;border-radius:var(--radius);border:1px solid var(--line);
  background:linear-gradient(150deg,#CBC3B6,#A29683)}
.gallery div:nth-child(2){background:linear-gradient(150deg,#C8C0B2,#9C907E)}
.gallery div:nth-child(3){background:linear-gradient(150deg,#D0C8BB,#A89C8A)}
.next-proj{display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:clamp(28px,4vw,46px) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.next-proj__label{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.next-proj__title{font-family:var(--font-display);font-weight:300;font-size:clamp(22px,3vw,38px);
  letter-spacing:-.01em;margin-top:8px}

/* ---- competence blocks ---- */
.kblock{display:grid;grid-template-columns:minmax(0,.5fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);
  padding:clamp(40px,5vw,72px) 0;border-top:1px solid var(--line)}
.kblock__num{font-family:var(--font-display);font-weight:200;font-size:clamp(40px,5vw,68px);
  line-height:1;color:var(--ink-3);letter-spacing:-.02em}
.kblock__title{font-family:var(--font-display);font-weight:300;font-size:clamp(24px,2.8vw,38px);
  letter-spacing:-.01em;margin:14px 0 0}
.kblock__desc{color:var(--ink-2);font-size:16px;line-height:1.7;margin-bottom:24px}
.kblock__list{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;list-style:none}
.kblock__list li{position:relative;padding-left:24px;font-size:15px;color:var(--ink-2)}
.kblock__list li::before{content:"";position:absolute;left:0;top:10px;width:11px;height:1px;background:var(--clay)}

/* ---- principles ---- */
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.principle{background:var(--bg);padding:clamp(26px,2.4vw,38px);min-height:210px;display:flex;flex-direction:column;gap:14px}
.principle__n{font-family:var(--font-display);font-weight:300;font-size:13px;color:var(--clay);letter-spacing:.08em}
.principle h3{font-family:var(--font-display);font-weight:300;font-size:22px;letter-spacing:-.01em;line-height:1.1}
.principle p{font-size:14px;color:var(--ink-2);line-height:1.55;margin-top:auto}

/* ---- timeline ---- */
.timeline{border-top:1px solid var(--line)}
.tl-row{display:grid;grid-template-columns:160px 1fr;gap:24px;align-items:center;
  padding:clamp(22px,2.6vw,32px) 0;border-bottom:1px solid var(--line)}
.tl-row__year{font-family:var(--font-display);font-weight:300;font-size:clamp(22px,2.6vw,32px);letter-spacing:-.01em}
.tl-row__text{color:var(--ink-2);font-size:15.5px;line-height:1.6;max-width:62ch}
.tl-row__text b{color:var(--ink);font-weight:500}

/* ---- contacts ---- */
.contacts__grid{display:grid;grid-template-columns:1fr;gap:clamp(28px,4vw,48px)}
.contacts__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(24px,3vw,40px)}
.contacts__item label{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin-bottom:8px}
.contacts__item a,.contacts__item p{font-family:var(--font-display);font-weight:300;
  font-size:clamp(19px,2vw,25px);line-height:1.3;letter-spacing:-.01em}
.contacts__item a:hover{color:var(--clay)}
.contacts__item .sub{font-family:var(--font-text);font-size:14px;color:var(--ink-2);font-weight:400;margin-top:4px}
.map-ph{margin-top:clamp(40px,5vw,64px);aspect-ratio:21/9;border-radius:var(--radius-lg);border:1px solid var(--line);
  background:linear-gradient(150deg,#E4DED2,#C7BEAF);display:flex;align-items:center;justify-content:center;
  color:var(--ink-3);font-size:13px;letter-spacing:.04em;overflow:hidden}
.map-ph iframe{width:100%;height:100%;border:0;display:block}

/* ---- article (legal) ---- */
.article{max-width:760px}
.article p{margin-bottom:16px;color:var(--ink-2);font-size:16px;line-height:1.75}
.article h2{font-family:var(--font-display);font-weight:300;font-size:clamp(21px,2.4vw,28px);
  letter-spacing:-.01em;margin:clamp(30px,3vw,42px) 0 14px}
.article ul{margin:0 0 16px 22px;color:var(--ink-2)}
.article li{margin-bottom:9px;line-height:1.6}

/* ---- responsive ---- */
@media (max-width:860px){
  .page-hero--split,.detail__grid,.contacts__grid,.kblock{grid-template-columns:1fr;gap:20px}
  .principles{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr 1fr}
  .detail__grid>aside{position:static}
  .tl-row{grid-template-columns:84px 1fr;gap:16px}
  .kblock__list{grid-template-columns:1fr}
}
@media (max-width:560px){.gallery{grid-template-columns:1fr}}
