/* Портфолио направлений. Изолировано от согласованных анимаций и остальных разделов. */
.service-art--photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.service-art--photo:after{background:linear-gradient(0deg,#03182dbb,transparent 70%)}
.service-dialog[open]{display:flex;flex-direction:column;width:min(1140px,calc(100% - 40px));max-width:1140px;height:min(94dvh,1000px);max-height:94dvh;padding:0;overflow:hidden;background:linear-gradient(135deg,#123550,#061a31 60%);border-color:#5c829f;border-radius:12px}
.service-dialog #dialog-content{display:flex;flex:1;flex-direction:column;min-height:0}
.service-dialog .dialog-close{right:17px;top:17px;z-index:4;width:42px;height:42px;border:1px solid #63809a;border-radius:50%;background:#071e34;color:#eff8ff;font-size:1.7rem}
.service-dialog .dialog-close:hover{background:#214762}
.service-detail-head{padding:28px 82px 24px 36px;border-bottom:1px solid #476f895c;flex-shrink:0}
.service-detail-head .eyebrow{margin-bottom:10px;font-size:.68rem;letter-spacing:.17em}
.service-detail-head .dialog-title{font-size:clamp(1.55rem,3vw,2.35rem);margin:0;line-height:1.15;letter-spacing:-.025em}
.service-detail-scroll{overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#5785a5 #071d33;min-height:0;flex:1;padding:28px 36px 38px}
.service-detail-intro{font-size:1.04rem;color:#d6e5f0;max-width:880px;line-height:1.7}
.service-detail-tags{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 24px}
.service-detail-tags span{font-size:.72rem;color:#c2d9e9;border:1px solid #466a854f;background:#132e45;padding:5px 10px;border-radius:4px}
.service-detail-index{display:flex;gap:9px 18px;flex-wrap:wrap;padding:17px 0 25px;border-bottom:1px solid #476f8977;margin-bottom:6px}
.service-detail-index button{border:0;border-bottom:1px solid #78b6d77d;background:none;padding:4px 0;color:#a7ddff;font-size:.8rem;text-align:left;line-height:1.5}
.service-detail-index button:hover{color:white;border-color:#ff5968}
.service-project{padding:32px 0;border-bottom:1px solid #476f895c;scroll-margin-top:20px}
.service-project:last-child{border-bottom:0;padding-bottom:0}
.service-project:focus{outline:none}
.service-project-main{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);gap:30px;align-items:start}
.service-project--text .service-project-main{grid-template-columns:1fr}
.service-project-copy{min-width:0;padding-top:3px}
.service-project-kicker{font-size:.65rem;letter-spacing:.11em;text-transform:uppercase;color:#8dbbd8;line-height:1.7;margin-bottom:11px}
.service-project h3{font-size:clamp(1.3rem,2.1vw,1.75rem);line-height:1.16;letter-spacing:-.025em;margin:0 0 15px}
.service-project-address{color:#97b4ca;font-size:.78rem;line-height:1.65;margin:0 0 14px;overflow-wrap:anywhere}
.service-project-description{color:#c7d9e7;font-size:.9rem;line-height:1.7}
.service-project-list{list-style:none;margin:17px 0 0;padding:0;font-size:.86rem;line-height:1.65;color:#d2e3ef}
.service-project-list li{padding-left:16px;position:relative;margin-top:8px}
.service-project-list li:before{content:'';position:absolute;left:0;top:.66em;width:5px;height:5px;border-radius:50%;background:#58b8f0}
.service-project-highlight{margin:17px 0 0;padding:13px 16px;border-left:3px solid #d3162d;background:#183e5680;color:#e9f6ff;font-size:.92rem;font-weight:700;line-height:1.5}
.service-photo{margin:0;min-width:0}
.service-photo-frame{overflow:hidden;background:#06172a;border:1px solid #567d975c;border-radius:6px}
.service-photo img{width:100%;aspect-ratio:1.55;object-fit:cover;display:block}
.service-photo figcaption{font-size:.7rem;color:#97b4ca;line-height:1.5;margin-top:9px}
.service-photo figcaption a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:#486c86}
.service-photo figcaption a:hover{color:#dcefff}
.service-project-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:24px;align-items:start}
.service-project-gallery[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.service-project-gallery .service-photo img{height:260px;aspect-ratio:auto;object-fit:contain}
.service-project-gallery .service-photo--crop img{object-fit:cover}
.service-project-gallery .service-photo--portrait img{height:260px;object-fit:contain}
.service-project--text .service-project-description{max-width:860px}
.service-detail-foot{display:flex;justify-content:space-between;align-items:center;gap:25px;flex-shrink:0;padding:18px 36px;background:#06192fee;border-top:1px solid #5a809f66}
.service-detail-foot p{color:#9dbbd0;font-size:.78rem;line-height:1.5;max-width:540px}
.service-detail-foot .button{flex-shrink:0;min-height:48px;font-size:.88rem;padding:12px 22px}
@media(max-width:800px){
 .service-dialog[open]{width:calc(100% - 20px);height:94dvh;max-height:94dvh}
 .service-detail-head{padding:23px 70px 20px 24px}
 .service-detail-scroll{padding:23px 24px 30px}
 .service-project-main{gap:24px}
 .service-project-gallery{gap:12px}
 .service-project-gallery .service-photo img,.service-project-gallery .service-photo--portrait img{height:210px}
 .service-detail-foot{padding:16px 24px;gap:15px}
}
@media(max-width:600px){
 .service-dialog[open]{width:calc(100% - 14px);height:96dvh;max-height:96dvh;border-radius:9px}
 .service-dialog .dialog-close{top:13px;right:12px;width:40px;height:40px}
 .service-detail-head{padding:20px 61px 18px 18px}
 .service-detail-head .eyebrow{font-size:.59rem;letter-spacing:.12em;margin-bottom:8px}
 .service-detail-scroll{padding:21px 18px 28px}
 .service-detail-intro{font-size:.93rem;line-height:1.65}
 .service-detail-tags{gap:6px;margin:15px 0 19px}
 .service-detail-tags span{font-size:.67rem;padding:4px 8px}
 .service-detail-index{gap:8px 15px;padding:10px 0 20px}
 .service-detail-index button{font-size:.76rem}
 .service-project{padding:25px 0}
 .service-project-main{grid-template-columns:1fr;gap:20px}
 .service-project h3{font-size:1.5rem}
 .service-project-list{font-size:.86rem}
 .service-project-gallery,.service-project-gallery[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 10px;margin-top:20px}
 .service-project-gallery .service-photo img,.service-project-gallery .service-photo--portrait img{height:220px}
 .service-project-gallery .service-photo:not(.service-photo--portrait){grid-column:1 / -1}
 .service-project-gallery .service-photo:not(.service-photo--portrait) img{height:auto;aspect-ratio:1.6}
 .service-detail-foot{padding:13px 18px calc(13px + env(safe-area-inset-bottom,0px))}
 .service-detail-foot p{display:none}
 .service-detail-foot .button{width:100%;min-height:48px;font-size:.9rem}
}
@media(prefers-reduced-motion:reduce){.service-detail-scroll{scroll-behavior:auto}}

/* Retouched photographs keep their supplied framing on desktop and mobile. */
.service-project .service-photo--restored img,
.service-project-gallery .service-photo--restored img,
.service-project-gallery .service-photo--restored.service-photo--portrait img,
.service-project-gallery .service-photo--restored:not(.service-photo--portrait) img{height:auto;aspect-ratio:auto;object-fit:contain}

/* Existing approved tile photographs follow their direction after reordering. */
.service-card[data-service-id="reconstruction"] .service-art{background-position:51.2% 44.94%}
.service-card[data-service-id="electrical"] .service-art{background-position:5.05% 44.94%}

/* Independent column heights keep residential work photographs whole. */
:is(#service-project-capital,#service-project-smart,#service-project-level) .service-project-gallery{display:block;column-count:3;column-gap:18px}
:is(#service-project-capital,#service-project-smart,#service-project-level) .service-project-gallery>.service-photo,
:is(#service-project-capital,#service-project-smart,#service-project-level) .service-project-gallery>.service-system-card{display:inline-block;width:100%;vertical-align:top;break-inside:avoid;margin:0 0 18px}
.service-gallery-stack{display:flex;flex-direction:column;gap:18px;min-width:0}
.service-system-card{position:relative;isolation:isolate;overflow:hidden;padding:22px;border:1px solid #567d975c;border-radius:6px;background:linear-gradient(145deg,#0b2c49,#061a2e)}
.service-system-illustration{display:block;width:calc(100% + 44px);max-width:none;height:auto;aspect-ratio:1.5;object-fit:contain;margin:-22px -22px 4px;opacity:.92;mask-image:radial-gradient(ellipse 74% 70% at 50% 41%,#000 35%,transparent 100%)}
.service-system-label{font-size:.75rem;line-height:1.55;letter-spacing:.055em;color:#a9d5ef;margin-bottom:17px;padding-left:12px;border-left:3px solid #c9233b}
.service-system-card h4{font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.22;margin:0 0 17px;overflow-wrap:break-word;color:#f0f8ff}
.service-system-text{font-size:.9375rem;line-height:1.65;color:#d2e4f1}
.service-system-card--compact{min-height:235px;padding:22px 20px;background:#09233c}
.service-system-card--compact .service-system-illustration{position:absolute;inset:0;margin:0;width:100%;height:100%;object-fit:cover;opacity:.24;mask-image:linear-gradient(90deg,transparent,#000 70%);z-index:-1}
.service-system-card--compact h4{font-size:1.2rem;margin-bottom:12px}
.service-system-card--compact .service-system-text{font-size:.9rem;line-height:1.6}
@media(max-width:900px){
 :is(#service-project-capital,#service-project-smart,#service-project-level) .service-project-gallery{column-count:2;column-gap:16px}
}
@media(max-width:600px){
 :is(#service-project-capital,#service-project-smart,#service-project-level) .service-project-gallery{column-gap:12px}
 :is(#service-project-capital,#service-project-smart,#service-project-level) .service-project-gallery>.service-system-card{display:block;column-span:all;min-height:0;margin:6px 0 22px}
 .service-system-card:not(.service-system-card--compact) .service-system-illustration{max-height:220px}
 .service-project-gallery>.service-system-card{grid-column:1 / -1}
 .service-gallery-stack .service-system-card{padding:18px 12px}
 .service-gallery-stack .service-system-label{font-size:.75rem;padding-left:8px;letter-spacing:0}
 .service-gallery-stack .service-system-card h4{font-size:1.1rem}
 .service-gallery-stack .service-system-text{font-size:.875rem}
 .service-system-label{margin-bottom:17px}
 .service-system-card h4{font-size:1.35rem}
 .service-system-text{font-size:1rem}
}
@media(max-width:359px){
 :is(#service-project-capital,#service-project-smart,#service-project-level) .service-project-gallery{column-count:1}
}
