/* Five offers share one photographic spread and its native controls. */
.home-hero {
  --hero-ink:#f9f8f3; --hero-muted:#bec6c6; --hero-line:#445154; --hero-paper:#12191c;
  --hero-accent:#ffa16d; --hero-cut:clamp(12px,1.67vw,24px); --hero-photo-height:clamp(275px,27.5vw,430px);
  position:relative; isolation:isolate; color:var(--hero-ink); background:var(--hero-paper);
}
.hero-stage { display:grid; }
.hero-slide {
  grid-area:1/1; min-width:0; opacity:0; visibility:hidden; pointer-events:none;
  background:var(--hero-paper); transition:opacity .32s ease,visibility .32s;
}
.hero-slide.is-active { z-index:1; opacity:1; visibility:visible; pointer-events:auto; }
.hero-layout { padding-block:clamp(30px,3.2vw,52px) 0; }
.hero-copy { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.8fr); align-items:end; gap:clamp(24px,3.6vw,60px); }
.hero-title { margin:0; color:inherit; font-size:clamp(46px,5.5vw,90px); line-height:.98; overflow-wrap:anywhere; }
.hero-title-phrase { display:block; color:#acb9ba; }
.home-hero svg { fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.hero-project-card {
  position:relative; isolation:isolate; align-self:center; min-width:0; width:100%; max-width:570px;
  padding:14px 20px 15px;
}
.hero-project-card::before {
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(115deg,#223030,#1b2426 75%); box-shadow:inset 0 1px #53605c;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%);
}
.hero-brief { margin:0; }
.hero-brief>div {
  display:grid; grid-template-columns:clamp(76px,7vw,100px) minmax(0,1fr); gap:12px;
  align-items:baseline; padding:9px 0; border-bottom:1px solid #52605e90;
}
.hero-brief dt { font:550 13px/1.4 var(--font-body); color:#d6b69f; }
.hero-brief dd { margin:0; color:#f0f1ea; font:500 clamp(16px,1.25vw,20px)/1.3 var(--font-display); }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:2px 20px; margin-top:13px; }
.hero-action-primary {
  --button-surface:#3a332e; --button-border:#8b7765; --button-ink:#f4dfcc;
  --button-hover:#494038; --button-hover-border:#b19a84; --button-hover-ink:#fff0de;
  --button-gap:14px; --button-padding:8px 14px; --button-height:44px; --button-font:14px;
  font-weight:550; box-shadow:none;
}
.hero-action-primary>svg { width:15px; height:15px; flex-basis:15px; }
.hero-action-primary:active { background:#302c28; }
.hero-action-primary:focus-visible { outline:2px solid #ffe1ca; outline-offset:3px; }
.hero-action-secondary {
  display:inline-flex; align-items:center; min-width:44px; min-height:44px; max-width:100%;
  font-size:13px; line-height:1.35; color:#c3cecb; text-decoration:underline; text-decoration-color:#798985; text-underline-offset:4px;
}
.hero-gallery {
  display:grid; grid-template-columns:minmax(0,1.62fr) repeat(3,minmax(0,1fr));
  gap:3px; margin-top:clamp(22px,2.65vw,42px);
}
.hero-frame {
  position:relative; isolation:isolate; display:grid; min-width:0; min-height:var(--hero-photo-height);
  margin:0 0 0 calc(-1 * var(--hero-cut)); overflow:hidden; background:#1a242a;
  clip-path:polygon(var(--hero-cut) 0,100% 0,calc(100% - var(--hero-cut)) 100%,0 100%);
}
.hero-frame:first-child { margin-left:0; clip-path:polygon(0 0,100% 0,calc(100% - var(--hero-cut)) 100%,0 100%); }
.hero-frame:last-child { clip-path:polygon(var(--hero-cut) 0,100% 0,100% 100%,0 100%); }
.hero-frame>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-frame[data-hero-frame="ufa-toratau"]>img { object-position:38% center; }
.hero-frame[data-hero-frame="chelyabinsk-bridge"]>img { object-position:91% center; }
.hero-frame[data-hero-frame="ufa-ra"]>img { object-position:68% center; }
.hero-frame[data-hero-frame="mast-petrovsky"]>img { object-position:center 22%; }
.hero-frame[data-hero-frame="mast-yantar"]>img { object-position:42% top; }
.hero-frame[data-hero-frame="mast-kazan"]>img { object-position:48% top; }
.hero-frame[data-hero-frame="mast-apron"]>img { object-position:center 10%; }
.hero-frame figcaption {
  z-index:1; position:relative; align-self:end; display:grid; gap:4px; min-width:0; margin:0;
  padding:clamp(38px,4vw,62px) calc(var(--hero-cut) + 8px) clamp(15px,1.55vw,24px) clamp(14px,1.55vw,25px);
  background:linear-gradient(0deg,#050d13f5 0%,#050d13cf 46%,transparent 100%);
  color:white; overflow-wrap:anywhere;
}
.hero-frame:last-child figcaption { padding-right:clamp(14px,1.55vw,25px); }
.hero-city { color:#ffd0ac; font:650 clamp(10px,.76vw,12px)/1.25 var(--font-body); letter-spacing:.09em; text-transform:uppercase; }
.hero-subject { font:500 clamp(16px,1.45vw,24px)/1.12 var(--font-display); text-wrap:balance; }
.hero-subject::first-letter { text-transform:uppercase; }
.hero-photo-credits { margin:0; border:0; }
.hero-photo-credits>summary {
  display:flex; width:fit-content; max-width:100%; min-height:44px; align-items:center; gap:8px; margin-left:auto;
  padding:7px 2px; color:var(--hero-muted); font-size:12px; line-height:1.45; list-style:none; cursor:pointer;
}
.hero-photo-credits>summary:after {
  content:""; flex:none; width:7px; height:7px; margin-right:2px; border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor; transform:translateY(-2px) rotate(45deg);
}
.hero-photo-credits[open]>summary:after { transform:translateY(2px) rotate(225deg); }
.hero-photo-credits ul { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px 18px; list-style:none; margin:0; padding:4px 0 15px; }
.hero-photo-credits li { display:flex; flex-wrap:wrap; align-items:baseline; align-content:start; gap:1px 12px; min-width:0; }
.hero-photo-credits li>span { flex-basis:100%; color:var(--hero-ink); font-size:13px; line-height:1.45; }
.hero-photo-credits a { min-width:0; max-width:100%; padding-block:4px; color:#d4dfdf; font-size:12px; line-height:1.5; overflow-wrap:anywhere; text-decoration:underline; text-underline-offset:3px; }
.hero-photo-credits>p { max-width:92ch; margin:0 0 12px; padding:0; color:var(--hero-muted); font-size:13px; line-height:1.55; overflow-wrap:anywhere; }
.hero-slide:not(.is-active) .hero-photo-credits>:not(summary) { display:none; }
.hero-control-slot { border-bottom:1px solid var(--hero-line); }
.hero-navigation { display:flex; justify-content:space-between; align-items:center; gap:22px; border-top:1px solid var(--hero-line); padding-block:13px 18px; }
.hero-chapters { display:flex; flex-wrap:wrap; align-items:center; gap:clamp(4px,.8vw,12px); }
.hero-chapter {
  position:relative; display:block; min-width:44px; min-height:44px; padding:8px clamp(10px,1.12vw,17px);
  color:var(--hero-ink); text-align:center; font:550 clamp(13px,1vw,16px)/1.3 var(--font-body);
}
.hero-chapter[aria-current] { color:#ffc29b; background:#273236; box-shadow:inset 3px 0 var(--hero-accent); }
.hero-progress { position:absolute; inset:auto 0 0; height:2px; overflow:hidden; }
.hero-progress i { display:block; height:100%; background:var(--hero-accent); transform:scaleX(0); transform-origin:left; }
.hero-playback,.hero-arrows { display:flex; align-items:center; gap:7px; }
.hero-playback { flex:none; }
.hero-count { margin-right:5px; color:var(--hero-muted); font:12px/1.3 var(--font-mono); white-space:nowrap; }
.hero-count b { color:var(--hero-ink); font-weight:500; }
.hero-arrows button,.hero-pause {
  --button-radius:50%; --button-surface:transparent; --button-border:#617076; --button-hover:#334046; --button-hover-border:#aab8b9;
  display:grid; place-items:center;
}
.hero-media-error { padding:10px 16px; color:#ffcfb1; background:#1b2429; font-size:13px; text-align:center; }
@media(hover:hover) {
  .hero-chapter:hover,.hero-action-secondary:hover,.hero-photo-credits a:hover,.hero-photo-credits>summary:hover { color:#ffd1b5; }
}
@media(max-width:1000px) and (min-width:761px) {
  .hero-copy { grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr); align-items:start; gap:22px; }
  .hero-title { font-size:clamp(40px,5vw,50px); }
}
@media(max-width:760px) {
  .home-hero { --hero-cut:8px; --hero-photo-height:clamp(138px,36.4vw,200px); }
  .hero-layout { padding-block:21px 0; }
  .hero-copy { display:block; }
  .hero-title { font-size:clamp(33px,10.45vw,52px); line-height:1; }
  .hero-project-card { margin-top:13px; padding:5px 12px 6px; }
  .hero-brief>div { grid-template-columns:64px minmax(0,1fr); gap:8px; padding:4px 0; }
  .hero-brief dt { font-size:12px; }
  .hero-brief dd { font-size:15px; }
  .hero-actions { margin-top:4px; gap:0 12px; }
  .hero-action-primary { --button-font:13px; --button-gap:8px; --button-padding:6px 10px; }
  .hero-action-secondary { font-size:12px; }
  .hero-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; margin-top:18px; }
  .hero-frame:nth-child(odd) { margin-left:0; clip-path:polygon(0 0,100% 0,calc(100% - var(--hero-cut)) 100%,0 100%); }
  .hero-frame:nth-child(even) { clip-path:polygon(var(--hero-cut) 0,100% 0,100% 100%,0 100%); }
  .hero-frame figcaption,.hero-frame:last-child figcaption { gap:3px; padding:28px 12px 10px 10px; }
  .hero-city { font-size:clamp(9px,2.6vw,11px); letter-spacing:.07em; }
  .hero-subject { font-size:clamp(14px,3.85vw,19px); line-height:1.1; }
  .hero-photo-credits ul { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 14px; }
  .hero-navigation { display:grid; grid-template-columns:minmax(0,1fr); gap:5px; padding-block:7px 12px; }
  .hero-chapters { display:grid; grid-template-columns:minmax(44px,.85fr) minmax(44px,.85fr) minmax(44px,1fr) minmax(66px,1.35fr) minmax(44px,.95fr); gap:3px; }
  .hero-chapter { padding:6px 2px; font-size:clamp(11px,3vw,14px); }
  .hero-playback { justify-content:flex-end; }
  .hero-count { margin-right:auto; }
}
@media(max-width:360px) {
  .hero-actions { column-gap:11px; }
}
@media(prefers-reduced-motion:reduce) {
  .hero-slide { transition:none; }
}
@media(forced-colors:active) {
  .hero-action-primary { border-color:ButtonText; }
  .hero-chapter[aria-current] { border:2px solid Highlight; }
}

/* Keep close-up details visible above the full-size image links. */
:is(.hero-slide-calculation,.hero-slide-terms,.hero-slide-bracket) .hero-frame {
  --material-inset:calc(var(--hero-cut) + 4px);
  grid-template-rows:minmax(0,1fr) auto; height:var(--hero-photo-height); background:#172327;
}
:is(.hero-slide-calculation,.hero-slide-terms,.hero-slide-bracket) .hero-frame>img {
  position:static; grid-row:1; min-height:0;
}
.hero-slide-calculation .hero-frame>img { padding:4px var(--material-inset) 0; object-fit:contain; }
.hero-frame[data-hero-frame="price-product"]>img {
  object-fit:contain; padding:4px var(--hero-cut);
  background:radial-gradient(ellipse at 48% 36%,#f1f3f2,#ccd4d4);
}
.hero-frame[data-hero-frame="price-batch"]>img { object-position:50% 54%; }
.hero-frame[data-hero-frame="price-packing"]>img { object-position:58% 60%; }
.hero-frame[data-hero-frame="price-dispatch"]>img { object-position:64% 76%; }
.hero-frame[data-hero-frame="mount-yoke"]>img { object-position:right center; }
.hero-frame[data-hero-frame="mount-clamps"]>img { object-position:68% 42%; }
@media(min-width:761px) {
  .hero-slide-bracket .hero-gallery { grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr)); }
}
.hero-frame[data-hero-frame="calc-plan"]>img,.hero-frame[data-hero-frame="calc-layout"]>img {
  padding:0; object-fit:cover;
}
.hero-frame[data-hero-frame="calc-illuminance"] { background:#123b66; }
@media(min-width:761px) {
  .hero-frame[data-hero-frame="calc-meter"]>img { padding:0; object-fit:cover; object-position:54% center; }
}
:is(.hero-slide-calculation,.hero-slide-terms,.hero-slide-bracket) .hero-frame figcaption {
  grid-row:2; align-self:stretch; padding:0; background:#10191d;
}
.hero-material-link {
  display:grid; grid-template-columns:minmax(0,1fr) auto; align-content:center; gap:3px 6px;
  min-width:0; min-height:44px; margin-inline:var(--hero-cut); padding:8px 4px; color:inherit;
}
.hero-material-link .hero-city { grid-area:1/1; }
.hero-material-link .hero-subject { grid-area:2/1/3/3; }
.hero-material-link::after {
  content:"↗" / ""; grid-area:1/2; align-self:center;
  color:var(--hero-accent); font:16px/1 var(--font-body);
}
.hero-material-link:focus-visible { outline:2px solid var(--hero-accent); outline-offset:-4px; }
@media(hover:hover) {
  .hero-material-link:hover .hero-subject { text-decoration:underline; text-underline-offset:3px; }
}
@media print {
  .hero-slide-calculation .hero-frame { print-color-adjust:exact; }
  .hero-slide-calculation .hero-frame>img { padding:4px var(--material-inset) 0; object-fit:contain; }
}

/* Project request: an inline entry into the shared draft preview. */
.home-project{background:#0b151c;color:#edf2f4;border-top:1px solid #8ca8b52b;scroll-margin-top:90px}
.project-shell{padding-block:40px 22px}
.project-heading{display:flex;align-items:center;gap:26px;margin-bottom:28px}
.project-heading .eyebrow{font-size:12px;margin:0;white-space:nowrap}
.project-heading>span{height:1px;flex:1;background:#6d879450}
.project-panel{display:grid;grid-template-columns:36% minmax(0,1fr);background:#101e27;border:1px solid #7995a314;border-radius:8px;overflow:hidden}
.project-photo{position:relative;isolation:isolate;margin:0;min-width:0;background:#0a1b28}
.project-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--photo-position,center);z-index:-2}
.project-photo:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,transparent 86%,#101e27),linear-gradient(0deg,#06121ce8,transparent 58%);pointer-events:none}
.project-photo figcaption{position:absolute;inset:auto 30px 30px;max-width:430px}
.project-photo figcaption>p{color:#efab83;font:10px/1.6 var(--font-mono);letter-spacing:.12em;margin-bottom:12px}
.project-photo h3{color:#eef5f8;font-size:clamp(21px,1.7vw,29px);line-height:1.25}
.project-photo small{display:block;font-size:10px;line-height:1.6;color:#b8cad4;margin-top:16px}
.project-form-panel{padding:36px 40px 28px;min-width:0}
.project-form-panel h2{font-size:clamp(30px,2.8vw,46px);line-height:1.12;color:#f0f5f7}
.project-intro{font-size:15px;line-height:1.6;color:#b1c2ce;margin-top:13px}
#project-form{margin-top:26px}
.home-project svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.project-types{margin:0 0 20px;padding:0;border:0;min-width:0}
.project-types legend{font-size:13px;color:#c2d0d8;padding:0;margin-bottom:10px}
.project-type-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #527081;border-radius:4px;overflow:hidden}
.project-type-options label{position:relative;min-width:0;cursor:pointer;border-left:1px solid #527081}
.project-type-options label:first-child{border-left:0}
.project-type-options input,.project-file-picker input{position:absolute;width:1px;height:1px;opacity:0;clip-path:inset(50%);overflow:hidden}
.project-type-options label>span{display:flex;align-items:center;justify-content:center;gap:8px;min-height:45px;padding:9px 7px;font-size:14px;color:#d2dfe6;border-bottom:2px solid transparent}
.project-type-options svg{width:15px;height:15px;color:#f0a575;display:none}
.project-type-options input:checked+span{background:#243946;color:#fff;border-bottom-color:#e99263}
.project-type-options input:checked+span svg{display:block}
.project-type-options input:focus-visible+span{outline:2px solid #eeb18c;outline-offset:-3px}
.project-field{display:block;position:relative;font-size:13px;line-height:1.5;color:#c2d0d8;min-width:0}
.project-field .field-control{margin-top:var(--space-2)}

.project-field textarea{min-height:80px;max-height:260px}



.project-optional{font-size:11px;color:#9bb0bd}
.project-contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:19px}
.project-attachments{margin-top:15px}
.project-file-picker{position:relative;display:inline-flex;align-items:center;cursor:pointer;max-width:100%}
.project-file-picker>span{display:flex;align-items:center;gap:12px;min-height:44px;color:#dbe7ed;font-size:13px;text-decoration:underline;text-underline-offset:4px}
.project-file-picker input:focus-visible+span{outline:2px solid #eeb18c;outline-offset:3px}
#project-file-help{font-size:11px;line-height:1.6;color:#9db2c0;margin:0}
#project-file-list{padding:0;margin:8px 0 0;list-style:none}
#project-file-list:empty{display:none}
#project-file-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #536d7d44;color:#c0d3df;font-size:12px}
#project-file-list li span{min-width:0;overflow-wrap:anywhere}
#project-file-list button{flex-shrink:0;min-height:44px;min-width:44px;font-size:12px;color:#edb08c}
#project-file-status{font-size:12px;line-height:1.6;color:#edb08c;overflow-wrap:anywhere}
#project-file-status:empty{display:none}
.project-form-error{font-size:13px;line-height:1.6;color:#ffd0b8;margin-top:12px}
.project-submit-row{display:flex;align-items:center;gap:24px;margin-top:22px}
.project-submit{flex-shrink:0}
.project-submit>span{align-self:center}
.project-submit-row>p{font-size:11px;line-height:1.6;color:#a6bcc9;max-width:260px}
.project-privacy{font-size:10px;line-height:1.6;color:#9bb0bd;margin-top:15px}
.project-privacy a{text-decoration:underline;text-underline-offset:3px}
.project-foot{display:flex;align-items:center;gap:28px;margin-top:24px;padding:22px 26px;border:1px solid #75919f40;border-left:3px solid #e99263;border-radius:5px;background:linear-gradient(110deg,#1b2c36,#101c24 70%)}
.project-phone{display:flex;align-items:center;gap:16px;min-height:48px;color:#edf2f5;white-space:nowrap}
.project-phone-icon{display:grid;place-items:center;flex-shrink:0;width:50px;height:50px;border:1px solid #e9926366;border-radius:50%;background:#e9926314;color:#efab83;transition:background .2s,border-color .2s}
.project-phone-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}
.project-phone-copy>span{display:block;font-size:12px;line-height:1.5;color:#b5c7d2;margin-bottom:3px}
.project-phone-copy>strong{display:block;font:500 25px/1.25 var(--font-display);letter-spacing:-.02em}
.project-phone:hover .project-phone-icon{background:#e9926328;border-color:#e99263}
.project-phone:hover strong{color:#f7bd98}
.project-method{margin-left:auto}
.home-project a:focus-visible,.home-project button:focus-visible{outline:2px solid #eeb18c;outline-offset:4px}
.project-fallback{margin-top:28px;color:#b1c2ce;font-size:15px;line-height:1.7}
.project-fallback .project-submit{margin-top:22px}
.project-fallback button{display:block;min-height:44px;margin-top:16px;text-decoration:underline;color:#eeb18c}
.inquiry-project-contact{border:0;margin:20px 0 0;padding:0}
.inquiry-project-contact legend{font-size:14px;color:#b5c7d1;margin-bottom:10px}
.inquiry-project-contact p{font-size:12px;line-height:1.6;overflow-wrap:anywhere}
@media(hover:hover){.project-type-options label:hover>span{background:#243946}.project-file-picker:hover>span{color:#fff}}
@media(max-width:1100px){
  .project-panel{grid-template-columns:33% minmax(0,1fr)}
  .project-form-panel{padding:28px 25px}
  .project-photo figcaption{inset:auto 20px 28px}
  .project-photo h3{font-size:22px}
  .project-submit-row{gap:16px}
  .project-contact-fields{gap:14px}
  .project-foot{gap:22px}
}
@media(max-width:760px){
  .home-project{scroll-margin-top:75px}
  .project-shell{padding-block:26px 20px}
  .project-heading{gap:18px;margin-bottom:20px}
  .project-heading .eyebrow{font-size:10px}
  .project-panel{grid-template-columns:1fr}
  .project-photo{height:220px}
  .project-photo:after{background:linear-gradient(0deg,#101e27,transparent 85%),linear-gradient(90deg,#07131d50,transparent)}
  .project-photo figcaption{inset:auto 20px 18px}
  .project-photo figcaption>p{font-size:9px;margin-bottom:6px}
  .project-photo h3{font-size:22px}
  .project-photo small{font-size:9px;margin-top:9px}
  .project-form-panel{padding:22px 20px 24px}
  .project-form-panel h2{font-size:30px}
  .project-intro{font-size:14px;margin-top:10px}
  #project-form{margin-top:22px}
  .project-type-options label>span{font-size:12px;gap:4px;padding-inline:4px;min-height:46px}
  .project-type-options svg{width:12px;height:12px}
.project-contact-fields{grid-template-columns:1fr;gap:16px;margin-top:16px}
  .project-submit-row{align-items:stretch;flex-direction:column;gap:11px;margin-top:18px}
  .project-submit{align-self:flex-start}
  .project-submit-row>p{font-size:11px;max-width:none}
  .project-submit-row>p br{display:none}
  .project-foot{flex-direction:column;align-items:stretch;gap:18px;margin-top:20px;padding:18px 15px}
  .project-phone{gap:12px}
  .project-phone-icon{width:42px;height:42px}
  .project-phone-copy>span{font-size:11px}
  .project-phone-copy>strong{font-size:20px}
  .project-method{margin-left:0;width:100%}
}
@media(max-width:360px){.project-form-panel{padding-inline:14px}.project-type-options label>span{font-size:11px}.project-form-panel h2{font-size:28px}.project-type-options input:checked+span svg{display:none}}
