/* CONSTRUCTION — индустриальная стройка: charcoal + safety orange + concrete + sand */
body[data-niche="construction"] {
  --char:#181B1F; --char-2:#22272E; --char-3:#2C323A;
  --orange:#F26A1E; --orange-deep:#C14E0E; --orange-soft:#FFB683;
  --conc:#5C6068; --conc-2:#83878F;
  --sand:#EFE9DD; --bone:#D6CFBF; --paper:#FFFFFF;
  --hairline:rgba(24,27,31,.10); --hairline-2:rgba(24,27,31,.20);
  --hairline-on-dark:rgba(239,233,221,.10);
  --surface-page:var(--sand); --surface-card:var(--paper); --surface-soft:#E5DECE;
  --text-primary:var(--char); --text-secondary:var(--conc); --border-soft:var(--hairline);
  --accent:var(--orange); --accent-dark:var(--orange-deep);
  background:var(--sand); color:var(--char); font-family:var(--font-sans);
}
body[data-niche="construction"] h1, body[data-niche="construction"] h2, body[data-niche="construction"] h3 {
  font-family:'Oswald', 'Anton', Impact, var(--font-sans); font-weight:600; letter-spacing:0.005em; color:var(--char); line-height:1.02; text-transform:uppercase;
}
body[data-niche="construction"] .container { max-width:1280px; margin:0 auto; padding:0 24px; }

/* TOPBAR */
.cn-topbar { position:absolute; top:0; left:0; right:0; z-index:30; padding:16px 0; transition:all .3s; }
.cn-topbar.scrolled { position:fixed; padding:12px 0; background:rgba(24,27,31,.96); backdrop-filter:saturate(160%) blur(14px); border-bottom:2px solid var(--orange); }
.cn-topbar.scrolled .cn-brand b, .cn-topbar.scrolled .cn-nav a { color:var(--sand); }
.cn-topbar-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.cn-brand { display:inline-flex; align-items:center; gap:10px; }
.cn-brand-mark { width:38px; height:38px; background:var(--orange); display:flex; align-items:center; justify-content:center; color:var(--char); font-weight:700; font-size:18px; transform:skew(-8deg); }
.cn-brand-mark span { transform:skew(8deg); }
.cn-brand b { font-family:'Oswald',sans-serif; font-size:24px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--char); }
.cn-nav { display:flex; gap:28px; }
.cn-nav a { color:var(--char); font-size:13px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; transition:color .2s; }
.cn-nav a:hover { color:var(--orange); }
.cn-cta { display:inline-flex; align-items:center; gap:8px; padding:13px 22px; background:var(--orange); color:var(--char); font-weight:700; font-size:12px; letter-spacing:.14em; text-transform:uppercase; transition:background .25s; transform:skew(-8deg); }
.cn-cta span { transform:skew(8deg); display:inline-flex; align-items:center; gap:8px; }
.cn-cta:hover { background:var(--char); color:var(--orange); }
.cn-cta.gh { background:transparent; color:var(--orange); border:2px solid var(--orange); }
.cn-cta.gh:hover { background:var(--orange); color:var(--char); }
@media (max-width:840px) { .cn-nav { display:none; } }

/* HERO */
.cn-hero { position:relative; min-height:100vh; padding:120px 0 80px; display:flex; align-items:center; overflow:hidden; }
.cn-hero-photo { position:absolute; inset:0; background-size:cover; background-position:center; background-color:var(--char-2); }
.cn-hero-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(115deg, rgba(24,27,31,.95) 0%, rgba(24,27,31,.75) 50%, rgba(24,27,31,.45) 100%); }
.cn-hero-grid { position:absolute; inset:0; background-image:linear-gradient(rgba(239,233,221,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(239,233,221,.04) 1px, transparent 1px); background-size:48px 48px; pointer-events:none; }
.cn-hero-content { position:relative; z-index:2; max-width:980px; }
.cn-hero-tag { display:inline-flex; align-items:center; gap:14px; padding:8px 14px 8px 0; color:var(--orange); font-size:11px; letter-spacing:.32em; text-transform:uppercase; font-weight:800; margin-bottom:28px; }
.cn-hero-tag::before { content:''; width:48px; height:2px; background:var(--orange); }
.cn-hero h1 { color:var(--sand); font-size:clamp(54px, 9vw, 130px); line-height:.95; margin:0 0 28px; max-width:18ch; letter-spacing:-0.005em; }
.cn-hero h1 .a { color:var(--orange); display:block; font-style:normal; }
.cn-hero p { color:rgba(239,233,221,.85); font-size:clamp(16px, 1.3vw, 18px); line-height:1.6; max-width:54ch; margin:0 0 36px; font-weight:400; }
.cn-hero-row { display:flex; gap:14px; flex-wrap:wrap; }
.cn-hero-stats { margin-top:52px; padding-top:32px; border-top:1px solid rgba(239,233,221,.16); display:grid; grid-template-columns:repeat(4,1fr); gap:0; max-width:880px; }
.cn-hero-stat { padding:0 22px 0 0; border-right:1px solid rgba(239,233,221,.12); }
.cn-hero-stat:nth-child(1) { padding-left:0; }
.cn-hero-stat:last-child { border-right:0; }
.cn-hero-stat strong { display:block; font-family:'Oswald',sans-serif; font-size:clamp(34px, 4vw, 48px); color:var(--orange); font-weight:600; line-height:1; margin-bottom:6px; letter-spacing:0; }
.cn-hero-stat span { color:rgba(239,233,221,.6); font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:600; }
@media (max-width:760px) { .cn-hero-stats { grid-template-columns:1fr 1fr; gap:18px 0; } .cn-hero-stat:nth-child(2) { border-right:0; } }

/* SECTIONS */
.cn-sec { padding:clamp(72px, 9vw, 120px) 0; }
.cn-sec.bg2 { background:var(--surface-soft); }
.cn-sec.dark { background:var(--char); color:var(--sand); }
.cn-sec.dark h2, .cn-sec.dark h3 { color:var(--sand); }
.cn-eye { color:var(--orange); font-size:11px; letter-spacing:.32em; text-transform:uppercase; font-weight:800; margin-bottom:16px; display:inline-flex; align-items:center; gap:14px; }
.cn-eye::before { content:''; width:32px; height:2px; background:var(--orange); }
.cn-h2 { font-size:clamp(40px, 5.6vw, 76px); margin:0 0 16px; line-height:1.02; }
.cn-h2 .a { color:var(--orange); }
.cn-lead { color:var(--conc); font-size:clamp(15px, 1.2vw, 17px); line-height:1.65; max-width:64ch; }
.cn-sec.dark .cn-lead { color:var(--bone); }

/* SERVICES */
.cn-svc { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:48px; border-top:2px solid var(--char); }
.cn-svc-card { padding:36px 32px; border-right:1px solid var(--hairline); border-bottom:1px solid var(--hairline); background:var(--paper); position:relative; transition:background .2s; cursor:pointer; }
.cn-svc-card:nth-child(3n) { border-right:0; }
.cn-svc-card::before { content:''; position:absolute; top:0; left:0; height:3px; width:0; background:var(--orange); transition:width .3s; }
.cn-svc-card:hover { background:var(--surface-soft); }
.cn-svc-card:hover::before { width:100%; }
.cn-svc-icon { width:56px; height:56px; background:var(--char); color:var(--orange); display:flex; align-items:center; justify-content:center; font-size:26px; margin-bottom:22px; }
.cn-svc-card h3 { font-size:24px; margin:0 0 12px; line-height:1.1; }
.cn-svc-card p { color:var(--conc); font-size:14px; line-height:1.6; margin:0 0 22px; font-weight:400; }
.cn-svc-foot { display:flex; justify-content:space-between; align-items:flex-end; padding-top:18px; border-top:1px dashed var(--hairline-2); }
.cn-svc-foot small { color:var(--conc); font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; }
.cn-svc-foot b { display:block; font-family:'Oswald',sans-serif; font-size:24px; color:var(--char); margin-top:4px; font-weight:600; }
.cn-svc-arr { color:var(--orange); font-weight:800; font-size:11px; letter-spacing:.16em; text-transform:uppercase; transition:gap .25s; display:inline-flex; align-items:center; gap:6px; }
.cn-svc-card:hover .cn-svc-arr { gap:12px; }
@media (max-width:980px) { .cn-svc { grid-template-columns:1fr 1fr; } .cn-svc-card:nth-child(3n) { border-right:1px solid var(--hairline); } .cn-svc-card:nth-child(2n) { border-right:0; } }
@media (max-width:600px)  { .cn-svc { grid-template-columns:1fr; } .cn-svc-card { border-right:0 !important; } }

/* CALCULATOR */
.cn-calc { background:var(--char); color:var(--sand); padding:clamp(40px, 5vw, 64px); margin-top:48px; display:grid; grid-template-columns:1.1fr 1fr; gap:48px; align-items:center; border-left:6px solid var(--orange); }
.cn-calc-form .row { margin-bottom:22px; }
.cn-calc-form label { display:flex; justify-content:space-between; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--bone); margin-bottom:10px; font-weight:700; }
.cn-calc-form label b { color:var(--orange); font-weight:800; }
.cn-calc-form input[type=range] { -webkit-appearance:none; appearance:none; width:100%; background:transparent; cursor:pointer; }
.cn-calc-form input[type=range]::-webkit-slider-runnable-track { height:4px; background:var(--char-3); border-radius:0; }
.cn-calc-form input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; width:18px; height:18px; background:var(--orange); margin-top:-7px; cursor:grab; }
.cn-calc-form input[type=range]::-moz-range-track { height:4px; background:var(--char-3); }
.cn-calc-form input[type=range]::-moz-range-thumb { width:18px; height:18px; background:var(--orange); border:0; cursor:grab; }
.cn-calc-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:22px; }
.cn-calc-form select { width:100%; height:46px; padding:0 14px; background:var(--char-2); border:1px solid var(--hairline-on-dark); color:var(--sand); font:inherit; font-size:14px; }
.cn-calc-result { padding:36px; background:linear-gradient(135deg, var(--orange-deep), var(--orange)); color:var(--char); display:flex; flex-direction:column; gap:14px; }
.cn-calc-result-label { font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:rgba(24,27,31,.66); font-weight:700; }
.cn-calc-result-value { font-family:'Oswald',sans-serif; font-size:clamp(38px, 5vw, 60px); font-weight:600; line-height:1; }
.cn-calc-detail { display:grid; grid-template-columns:1fr 1fr; gap:14px; padding-top:14px; border-top:2px solid rgba(24,27,31,.18); }
.cn-calc-detail div b { display:block; font-family:'Oswald',sans-serif; font-size:22px; font-weight:600; }
.cn-calc-detail div span { color:rgba(24,27,31,.7); font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; }
@media (max-width:900px) { .cn-calc { grid-template-columns:1fr; } }

/* PROCESS — vertical timeline */
.cn-proc { display:grid; grid-template-columns:repeat(7,1fr); gap:0; margin-top:48px; position:relative; }
.cn-proc::before { content:''; position:absolute; top:30px; left:30px; right:30px; height:2px; background:var(--orange); opacity:.3; }
.cn-proc-step { padding:0 14px; position:relative; }
.cn-proc-step-num { width:60px; height:60px; background:var(--char); color:var(--orange); display:flex; align-items:center; justify-content:center; font-family:'Oswald',sans-serif; font-size:26px; font-weight:700; border:2px solid var(--orange); margin-bottom:18px; position:relative; z-index:1; }
.cn-proc-step h3 { font-size:16px; margin:0 0 8px; line-height:1.15; }
.cn-proc-step p { color:var(--conc); font-size:12px; line-height:1.5; margin:0; font-weight:400; }
.cn-sec.dark .cn-proc-step p { color:var(--bone); }
@media (max-width:1000px) { .cn-proc { grid-template-columns:1fr 1fr 1fr; } .cn-proc-step { margin-bottom:24px; } .cn-proc::before { display:none; } }
@media (max-width:600px) { .cn-proc { grid-template-columns:1fr 1fr; } }

/* CASES */
.cn-cases { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:48px; }
.cn-case { background:var(--paper); border:1px solid var(--hairline); display:flex; flex-direction:column; transition:transform .25s, border-color .25s; cursor:pointer; }
.cn-case:hover { transform:translateY(-6px); border-color:var(--orange); }
.cn-case-photo { aspect-ratio:4/3; background-size:cover; background-position:center; background-color:var(--char-2); position:relative; }
.cn-case-photo::after { content:''; position:absolute; inset:auto 0 0 0; height:60%; background:linear-gradient(180deg, transparent, rgba(24,27,31,.85)); }
.cn-case-photo .tag { position:absolute; top:14px; left:14px; background:var(--orange); color:var(--char); padding:5px 10px; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; z-index:1; transform:skew(-8deg); }
.cn-case-photo .tag span { display:inline-block; transform:skew(8deg); }
.cn-case-photo b { position:absolute; left:18px; bottom:18px; right:18px; color:var(--sand); font-family:'Oswald',sans-serif; font-size:24px; font-weight:600; line-height:1.05; text-transform:uppercase; z-index:1; }
.cn-case-body { padding:22px 24px; }
.cn-case-body p { color:var(--conc); font-size:13px; line-height:1.5; margin:0 0 18px; font-weight:400; }
.cn-case-meta { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; padding-top:16px; border-top:1px solid var(--hairline); }
.cn-case-meta div b { display:block; font-family:'Oswald',sans-serif; font-size:18px; color:var(--char); font-weight:600; line-height:1; margin-bottom:4px; }
.cn-case-meta div span { color:var(--conc); font-size:10px; letter-spacing:.1em; text-transform:uppercase; font-weight:600; }
@media (max-width:980px) { .cn-cases { grid-template-columns:1fr 1fr; } }
@media (max-width:600px)  { .cn-cases { grid-template-columns:1fr; } }

/* PARTNERS / MATERIALS */
.cn-mat { display:grid; grid-template-columns:repeat(6,1fr); gap:0; margin-top:48px; border:1px solid var(--hairline-on-dark); }
.cn-mat div { padding:28px 14px; text-align:center; border-right:1px solid var(--hairline-on-dark); border-bottom:1px solid var(--hairline-on-dark); display:flex; flex-direction:column; justify-content:center; min-height:120px; }
.cn-mat div:nth-child(6n) { border-right:0; }
.cn-mat div b { display:block; font-family:'Oswald',sans-serif; font-size:18px; color:var(--sand); font-weight:600; letter-spacing:.04em; margin-bottom:4px; text-transform:uppercase; }
.cn-mat div span { color:var(--bone); font-size:10px; letter-spacing:.14em; text-transform:uppercase; font-weight:600; opacity:.7; }
@media (max-width:900px) { .cn-mat { grid-template-columns:1fr 1fr 1fr; } .cn-mat div:nth-child(6n) { border-right:1px solid var(--hairline-on-dark); } .cn-mat div:nth-child(3n) { border-right:0; } }

/* CERTS */
.cn-certs { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:48px; }
.cn-cert { background:var(--paper); border:1px solid var(--hairline); padding:24px; display:flex; align-items:center; gap:18px; }
.cn-cert-icon { width:54px; height:54px; background:var(--orange); color:var(--char); display:flex; align-items:center; justify-content:center; font-size:24px; flex-shrink:0; transform:skew(-8deg); }
.cn-cert-icon span { transform:skew(8deg); }
.cn-cert h4 { font-family:'Oswald',sans-serif; font-size:14px; margin:0 0 4px; line-height:1.2; }
.cn-cert p { color:var(--conc); font-size:12px; margin:0; line-height:1.4; }
@media (max-width:900px) { .cn-certs { grid-template-columns:1fr 1fr; } }
@media (max-width:540px) { .cn-certs { grid-template-columns:1fr; } }

/* FAQ */
.cn-faq { max-width:880px; margin:36px auto 0; }
.cn-faq details { background:var(--paper); border:1px solid var(--hairline); margin-bottom:8px; padding:20px 26px; }
.cn-faq summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; gap:24px; font-family:'Oswald',sans-serif; font-size:18px; font-weight:600; text-transform:uppercase; letter-spacing:.02em; color:var(--char); }
.cn-faq summary::-webkit-details-marker { display:none; }
.cn-faq summary::after { content:'+'; color:var(--orange); font-size:26px; transition:transform .25s; }
.cn-faq details[open] summary::after { transform:rotate(45deg); }
.cn-faq details > div { padding-top:14px; color:var(--conc); line-height:1.65; font-size:14px; font-weight:400; }

/* CTA STRIP */
.cn-strip { background:var(--orange); color:var(--char); padding:60px 0; }
.cn-strip-inner { display:flex; justify-content:space-between; align-items:center; gap:32px; flex-wrap:wrap; }
.cn-strip h2 { color:var(--char); font-size:clamp(34px, 4.4vw, 56px); margin:0; line-height:1.05; max-width:18ch; }
.cn-strip-cta { display:inline-flex; padding:16px 28px; background:var(--char); color:var(--orange); font-weight:700; font-size:13px; letter-spacing:.14em; text-transform:uppercase; transform:skew(-8deg); }
.cn-strip-cta span { transform:skew(8deg); display:inline-block; }
.cn-strip-cta:hover { background:var(--sand); color:var(--char); }

/* FOOT */
.cn-foot { background:var(--char); color:var(--sand); padding:64px 0 28px; border-top:6px solid var(--orange); }
.cn-foot-top { display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:32px; margin-bottom:36px; }
.cn-foot-brand b { font-family:'Oswald',sans-serif; font-size:32px; color:var(--sand); display:block; letter-spacing:.04em; }
.cn-foot-brand b .a { color:var(--orange); }
.cn-foot-brand p { color:var(--bone); margin:14px 0 0; max-width:34ch; line-height:1.6; font-size:13px; font-weight:400; }
.cn-foot h5 { color:var(--orange); font-size:11px; letter-spacing:.26em; text-transform:uppercase; margin:0 0 14px; font-weight:800; }
.cn-foot a { color:rgba(239,233,221,.7); display:block; padding:4px 0; font-size:13px; font-weight:400; }
.cn-foot a:hover { color:var(--orange); }
.cn-foot-bot { padding-top:20px; border-top:1px solid var(--hairline-on-dark); display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; color:var(--bone); font-size:12px; opacity:.65; }
@media (max-width:800px) { .cn-foot-top { grid-template-columns:1fr 1fr; } }
@media (max-width:540px) { .cn-foot-top { grid-template-columns:1fr; } }

body[data-niche="construction"] .reveal { opacity:0; transform:translateY(14px); transition:opacity 600ms var(--ease-smooth), transform 600ms var(--ease-smooth); }
body[data-niche="construction"] .reveal.in { opacity:1; transform:none; }
