.services-page-body { background:#070a10; }
.services-header { align-items:center; background:rgba(5, 9, 14, .84); border-bottom:1px solid rgba(231,238,245,.1); padding:20px 38px; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
.services-header .wordmark { font-size:25px; }
.services-header .site-nav a { opacity:.76; transition:opacity .2s ease; }
.services-header .site-nav a:hover, .services-header .site-nav a.is-active { opacity:1; }
.services-page-hero { height:min(410px, 47svh); margin-top:80px; min-height:330px; overflow:hidden; position:relative; }
.services-page-hero > img { height:100%; object-fit:cover; object-position:center; position:absolute; width:100%; }
.services-page-hero-shade { background:linear-gradient(90deg, rgba(3,7,12,.96), rgba(4,10,17,.67) 46%, rgba(4,10,17,.3)), linear-gradient(0deg, #070a10 0%, transparent 28%); inset:0; position:absolute; }
.services-page-hero-content { left:clamp(28px, 8vw, 150px); max-width:1100px; position:absolute; top:54%; transform:translateY(-50%); }
.services-page-hero-content h1 { color:#fff; font-size:clamp(44px, 4.8vw, 78px); font-weight:650; letter-spacing:-.052em; line-height:1.02; margin:0 0 20px; white-space:nowrap; }
.services-page-hero-content > p:last-child { color:#c4d0d9; font-size:clamp(15px,1.25vw,19px); line-height:1.55; margin:0; max-width:none; white-space:nowrap; }
.services-catalog { background:radial-gradient(circle at 82% 0%, rgba(31,57,83,.35), transparent 26%), #070a10; padding:28px clamp(28px,7vw,128px) clamp(68px,7vw,96px); }
.services-catalog-heading { align-items:center; display:flex; justify-content:center; margin:0 auto 22px; max-width:740px; min-height:34px; text-align:center; }
.services-catalog-heading .section-label { color:#d2dde5; font-size:14px; margin:0; }
.services-catalog-heading h2 { color:#fff; font-size:clamp(36px,4.7vw,72px); font-weight:650; letter-spacing:-.052em; line-height:1.02; margin:0 0 18px; }
.services-catalog-heading > p:last-child { color:#aebbc6; font-size:15px; line-height:1.6; margin:0 auto; max-width:590px; }
.services-catalog-grid { display:grid; gap:22px; grid-template-columns:repeat(3, minmax(0,1fr)); margin:0 auto; max-width:1420px; }
.service-catalog-card { background:#101720; border:1px solid rgba(229,238,245,.12); border-radius:22px; cursor:pointer; min-height:465px; overflow:hidden; position:relative; }
.service-catalog-card > img { height:100%; inset:0; object-fit:cover; position:absolute; transition:transform .6s ease; width:100%; }
.service-catalog-card:hover > img { transform:scale(1.06); }
.service-catalog-card-shade { background:linear-gradient(180deg, rgba(5,10,16,.04) 14%, rgba(5,10,16,.55) 47%, rgba(5,10,16,.97) 100%); inset:0; position:absolute; }
.service-catalog-card-content { align-items:flex-start; display:flex; flex-direction:column; height:100%; justify-content:flex-end; min-height:465px; padding:26px; position:relative; }
.service-catalog-card h3 { color:#fff; font-size:clamp(27px,2.2vw,39px); font-weight:620; letter-spacing:-.042em; line-height:1.04; margin:0 0 13px; }
.service-catalog-card-content > p:not(.service-card-index) { color:#ccd6dd; font-size:14px; line-height:1.5; margin:0 0 22px; min-height:42px; }
.service-catalog-button { background:transparent; border:0; color:#fff; cursor:pointer; font:700 10px/1 Inter,-apple-system,sans-serif; letter-spacing:.15em; padding:0; }
.service-catalog-button b { font-size:18px; font-weight:400; margin-left:9px; vertical-align:-1px; }
.service-catalog-button:hover { color:#bdcfdb; }
.services-empty { color:#aebbc6; grid-column:1 / -1; padding:70px 0; text-align:center; }
.visually-hidden { height:1px; margin:-1px; overflow:hidden; padding:0; position:absolute; width:1px; clip:rect(0,0,0,0); white-space:nowrap; }
body.service-modal-open { overflow:hidden; }
.service-modal-overlay { align-items:center; background:rgba(2,5,9,.76); display:flex; inset:0; justify-content:center; opacity:0; padding:24px; pointer-events:none; position:fixed; transition:opacity .3s ease,visibility .3s ease; visibility:hidden; z-index:100; }
.service-modal-overlay.is-open { opacity:1; pointer-events:auto; visibility:visible; }
.service-modal { background:rgba(7,13,20,.05); backdrop-filter:blur(16px) saturate(1.12); -webkit-backdrop-filter:blur(16px) saturate(1.12); border:1px solid rgba(255,255,255,.22); border-radius:22px; box-shadow:0 26px 90px rgba(0,0,0,.56), inset 0 1px 0 rgba(255,255,255,.1); display:grid; grid-template-columns:minmax(320px,.82fr) minmax(0,1.18fr); max-height:min(800px,86svh); max-width:1100px; opacity:0; overflow:hidden; position:relative; transform:translateY(25px) scale(.97); transition:opacity .32s ease,transform .38s cubic-bezier(.22,1,.36,1); width:min(92vw,1100px); }
.service-modal-overlay.is-open .service-modal { opacity:1; transform:translateY(0) scale(1); }
.service-modal-media { background:#060b11; max-height:min(800px,86svh); overflow-y:auto; position:relative; scrollbar-color:rgba(255,255,255,.35) transparent; scrollbar-width:thin; }.service-modal-cover { display:block; height:430px; object-fit:cover; object-position:center; width:100%; }.service-modal-media-gallery { display:grid; gap:12px; padding:12px; }.service-modal-media-gallery img { background:#0c151e; border:1px solid rgba(255,255,255,.14); border-radius:10px; display:block; height:235px; object-fit:contain; padding:5px; width:100%; }
.service-modal-body { background:linear-gradient(145deg, rgba(55,73,92,.16), rgba(11,19,29,.08)); backdrop-filter:blur(36px) saturate(1.28); -webkit-backdrop-filter:blur(36px) saturate(1.28); border-left:1px solid rgba(255,255,255,.18); box-shadow:inset 1px 0 0 rgba(255,255,255,.08); max-height:min(800px,86svh); overflow-y:auto; padding:clamp(38px,5vw,65px); position:relative; }.service-modal-body h2 { color:#fff; font-size:clamp(30px,3.2vw,47px); font-weight:640; letter-spacing:-.052em; line-height:1.06; margin:0 45px 24px 0; }.service-modal-description { color:#edf2f5; font-size:16px; line-height:1.75; text-align:justify; text-shadow:0 1px 16px rgba(0,0,0,.35); }.service-modal-description p:first-child { margin-top:0; }.service-modal-description p:last-child { margin-bottom:0; }
.service-modal-close { align-items:center; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18); border-radius:50%; color:#fff; cursor:pointer; display:flex; font-size:25px; height:40px; justify-content:center; line-height:1; position:absolute; right:20px; top:20px; transition:background .2s ease; width:40px; z-index:2; }.service-modal-close:hover { background:rgba(255,255,255,.16); }
@media (max-width:900px) { .services-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:720px) { .services-header { padding:19px 21px; }.services-header .wordmark { font-size:22px; }.services-page-hero { height:430px; margin-top:75px; min-height:0; }.services-page-hero-content { left:25px; right:25px; top:58%; }.services-page-hero-content h1 { font-size:clamp(40px,11vw,58px); letter-spacing:-.035em; line-height:1.1; white-space:normal; }.services-page-hero-content > p:last-child { font-size:15px; max-width:430px; white-space:normal; }.services-catalog { padding:26px 25px 64px; }.services-catalog-heading { margin-bottom:19px; }.services-catalog-heading .section-label { font-size:12px; }.services-catalog-grid { grid-template-columns:1fr; }.service-catalog-card, .service-catalog-card-content { min-height:430px; }.service-modal { display:block; max-height:88svh; overflow-y:auto; }.service-modal-media { max-height:none; overflow:visible; }.service-modal-cover { height:250px; }.service-modal-media-gallery { grid-template-columns:repeat(2,1fr); }.service-modal-media-gallery img { height:150px; }.service-modal-body { border-left:0; border-top:1px solid rgba(255,255,255,.1); max-height:none; overflow:visible; padding:31px 23px 32px; }.service-modal-body h2 { font-size:clamp(28px,8vw,39px); letter-spacing:-.035em; line-height:1.1; }.service-modal-description { font-size:14px; line-height:1.7; }.service-modal-overlay { padding:12px; } }
