@font-face { font-family:"Forum"; src:url("../fonts/forum-regular.ttf") format("truetype"); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:"KSD Entypo"; src:url("../fonts/entypo-fontello.woff2") format("woff2"); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:"Roboto"; src:url("../fonts/roboto-cyrillic.woff2") format("woff2"); font-style:normal; font-weight:100 900; font-display:swap; unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:"Roboto"; src:url("../fonts/roboto-latin.woff2") format("woff2"); font-style:normal; font-weight:100 900; font-display:swap; unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

:root {
  --ksd-text: #161616;
  --ksd-muted: #727272;
  --ksd-line: #e6e6e6;
  --ksd-gap: clamp(12px, 1.5vw, 24px);
}
.wpml-ls-statics-footer,.otgs-development-site-front-end { display:none!important; }

/* Native Elementor documents (no shortcode markup). */
.ksd-native-header { box-sizing:border-box; width:min(calc(100% - 63.25px),1201.75px)!important; height:90px; margin:auto; padding:0 50px; display:flex!important; flex-flow:row nowrap!important; align-items:center; justify-content:space-between; gap:35px; background:#fff; }
.ksd-native-header-logo { flex:0 0 196.14px; width:196.14px!important; }
.ksd-native-header-logo img { width:196.14px!important; height:auto; }
.ksd-native-main-menu { flex:1 1 auto; }
.ksd-native-main-menu .elementor-nav-menu { justify-content:flex-end; }
.ksd-native-main-menu .elementor-item { padding:0 13px!important; color:#969696!important; font:600 16px/90px "Forum",Helvetica,Arial,sans-serif!important; }
.ksd-native-socials { flex:0 0 120px; width:120px!important; padding-left:30px; border-left:1px solid #e1e1e1; }
.ksd-native-socials .elementor-social-icons-wrapper { display:flex; flex-wrap:nowrap; gap:0!important; }
.ksd-native-socials .elementor-social-icon { width:30px; height:30px; background:transparent!important; color:#999!important; font-size:12px; }
body.home .elementor-location-header { position:absolute; z-index:50; top:0; left:0; right:0; }
body.home .ksd-native-header { background:transparent; }
body.home .ksd-native-main-menu .elementor-item,body.home .ksd-native-socials .elementor-social-icon { color:#fff!important; }

.ksd-native-footer { box-sizing:border-box; width:100%!important; min-height:206px; padding:50px max(81.625px,calc((100% - 1101.75px)/2)); display:flex!important; flex-flow:row nowrap!important; gap:66.09375px; background:#35383c; color:#fff; }
.ksd-native-footer-column { flex:1 1 0; }
.ksd-native-footer h3 { margin:0 0 20px; color:#fff; font:400 20px/22px "Forum",Helvetica,Arial,sans-serif; }
.ksd-native-footer p,.ksd-native-footer a { color:#aaa; font:400 14px/23px "Roboto",Helvetica,Arial,sans-serif; }
.ksd-native-socket { box-sizing:border-box; width:100%!important; height:57px; padding:0 max(81.625px,calc((100% - 1101.75px)/2)); display:flex!important; justify-content:center; background:#282b2e; }
.ksd-native-socket p { margin:0; color:#777; font:12px/57px "Roboto",sans-serif; }

.ksd-native-home-slider,.ksd-native-slides,.ksd-native-slides .elementor-widget-container,.ksd-native-slides .swiper,.ksd-native-slides .swiper-slide { width:100%!important; height:100vh!important; min-height:620px; }
.ksd-native-slides .swiper-slide-bg::after { content:""; position:absolute; inset:0; background:rgba(0,0,0,.7); }
.ksd-native-slides .swiper-slide-contents { max-width:1101.75px!important; text-align:center; text-transform:uppercase; }
.ksd-native-slides .elementor-slide-heading { margin:0!important; color:#fff!important; font:400 55px/60.5px "Forum",Helvetica,Arial,sans-serif!important; letter-spacing:4px; }
.ksd-native-slides .elementor-slide-description { margin-top:15px!important; color:#fff!important; font:400 20px/26px "Forum",Helvetica,Arial,sans-serif!important; letter-spacing:6px; }
.ksd-native-slides .elementor-swiper-button { width:60px; height:60px; padding:17px; background:rgba(0,0,0,.3); opacity:.6; }
.ksd-native-home-intro { box-sizing:border-box; width:634.59375px!important; min-height:298px; margin:0 auto; padding:50px 0 49px; text-align:center; }
.ksd-native-section-title h2 { margin:0; color:#222; text-align:center; font:400 38px/44px "Forum",Helvetica,Arial,sans-serif; letter-spacing:1px; }
.ksd-native-section-title h2::after,.ksd-native-page-title h1::after { content:""; display:block; width:50px; height:2px; margin:27px auto 0; background:#222; }
.ksd-native-intro-text p { margin:35px 0 0; color:#555; font:400 16px/26.4px "Roboto",sans-serif; }
.ksd-native-home-team { width:100%!important; height:767px; overflow:hidden; background:#151515; }
.ksd-native-home-team .elementor-widget-image,.ksd-native-home-team .elementor-widget-container { height:100%; }
.ksd-native-home-team img { display:block; width:100%; height:100%!important; object-fit:cover; }
.ksd-native-home-projects { box-sizing:border-box; width:100%!important; min-height:967px; padding:50px 0 4px; }
.ksd-native-project-posts { margin-top:84px; }
.ksd-native-project-posts .elementor-posts-container { gap:0!important; grid-template-columns:repeat(3,1fr)!important; }
.ksd-native-project-posts .elementor-post { position:relative; height:211px; overflow:hidden; }
.ksd-native-project-posts .elementor-post__thumbnail__link,.ksd-native-project-posts .elementor-post__thumbnail { height:100%; margin:0!important; padding:0!important; }
.ksd-native-project-posts .elementor-post__thumbnail img { width:100%; height:100%; object-fit:cover; }
.ksd-native-project-posts .elementor-post__text { position:absolute; inset:0; display:flex; justify-content:center; padding:20px; background:rgba(0,0,0,.18); }
.ksd-native-project-posts .elementor-post__title a { color:#fff; font:400 24px/31px "Forum",sans-serif; }
.ksd-native-dark-button { margin:50px auto 0; }
.ksd-native-dark-button .elementor-button { padding:15px 30px 13px; border-radius:0; background:#2c2c2c; color:#fff; font:400 13px/15.6px "Roboto",sans-serif; }
.ksd-native-home-services { box-sizing:border-box; width:1101.75px!important; min-height:806px; margin:0 auto; padding:130px 0; }
.ksd-native-services-columns { margin-top:75px; display:flex!important; flex-flow:row nowrap!important; gap:66.09375px; }
.ksd-native-service-column { flex:1 1 0; }
.ksd-native-service-title h3 { color:#333; font:400 23px/30px "Forum",sans-serif; }
.ksd-native-service-list { color:#555; font:400 16px/26.4px "Roboto",sans-serif; }
.ksd-native-home-blog { box-sizing:border-box; width:1101.75px!important; min-height:617px; margin:0 auto; padding:50px 0; }
.ksd-native-blog-posts { margin-top:74px; }
.ksd-native-blog-posts .elementor-posts-container { grid-template-columns:repeat(4,1fr)!important; column-gap:66px!important; }
.ksd-native-blog-posts .elementor-post__thumbnail { padding-bottom:71.15%!important; }
.ksd-native-blog-posts .elementor-post__title a { color:#222; font:400 23px/32px "Forum",sans-serif; }

.ksd-native-page-heading { box-sizing:border-box; width:1101.75px!important; height:229px; margin:0 auto; padding-top:128px; text-align:center; background:#f8f8f8; }
.ksd-native-page-title h1 { margin:0; color:#222; font:400 40px/44px "Forum",sans-serif; letter-spacing:1px; }
.ksd-native-about-team { box-sizing:border-box; width:1101.75px!important; min-height:1595px; margin:0 auto; padding-bottom:145px; display:flex!important; flex-flow:row wrap!important; gap:63.59375px 66.09375px; background:#f8f8f8; }
.ksd-native-about-intro,.ksd-native-team-card { flex:0 0 323.171875px; width:323.171875px!important; }
.ksd-native-team-card img { width:323.171875px; height:484.75px!important; object-fit:cover; }
.ksd-native-team-card h3 { margin:10px 0 40px; color:#222; font:400 24px/26.4px "Forum",sans-serif; }
.ksd-native-about-intro p,.ksd-native-team-card p { color:#444; font:400 16px/26.4px "Roboto",sans-serif; }
.ksd-native-about-counters { width:100%!important; height:164px; display:flex!important; flex-flow:row nowrap!important; background:#fff; }
.ksd-native-counter { flex:1 1 25%; display:grid; place-items:center; }
.ksd-native-values { box-sizing:border-box; width:1101.75px!important; min-height:748px; margin:auto; padding:130px 0; display:flex!important; flex-flow:row nowrap!important; gap:66px; }
.ksd-native-value-column { flex:1 1 0; }
.ksd-native-partners { box-sizing:border-box; width:1101.75px!important; min-height:586px; margin:auto; padding:130px 0; }

.ksd-native-services-intro,.ksd-native-service-rows,.ksd-native-stages,.ksd-native-prices,.ksd-native-contacts,.ksd-native-portfolio,.ksd-native-blog { box-sizing:border-box; width:1101.75px!important; margin:auto; }
.ksd-native-services-intro { min-height:133px; }
.ksd-native-service-rows { min-height:836px; gap:120px; }
.ksd-native-service-row { display:flex!important; flex-flow:row nowrap!important; gap:66px; }
.ksd-native-service-row > * { flex:1 1 0; }
.ksd-native-service-row img { width:100%; height:298px!important; object-fit:cover; }
.ksd-native-stages { min-height:629px; padding:50px 0; }
.ksd-native-prices { min-height:804px; padding:50px 0; }
.ksd-native-price-columns { display:flex!important; flex-flow:row nowrap!important; gap:66px; }
.ksd-native-price { flex:1 1 0; padding:20px; border:1px solid #ddd; }
.ksd-native-contacts { min-height:370px; display:flex!important; flex-flow:row nowrap!important; gap:90px; }
.ksd-native-contact-map { flex:0 0 704.5px; }
.ksd-native-contact-map img { width:704.5px; height:279px!important; object-fit:cover; }
.ksd-native-contact-details { flex:1 1 auto; }
.ksd-native-portfolio,.ksd-native-blog { padding:17px 0 50px; }
.ksd-native-portfolio-posts .elementor-posts-container,.ksd-native-blog-posts .elementor-posts-container { grid-template-columns:repeat(3,323.171875px)!important; column-gap:66.09375px!important; }
.ksd-native-single-project,.ksd-native-single-post { box-sizing:border-box; width:1101.75px!important; margin:auto; padding:100px 0; }
.ksd-native-project-title h1,.ksd-native-post-title h1 { color:#222; font:400 40px/44px "Forum",sans-serif; text-align:center; }
.ksd-native-project-gallery { margin-top:60px; }
.ksd-native-post-content { width:820px!important; margin:60px auto 0; }

/* Standard pages and homepage */
.ksd-page-hero { min-height: 300px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 60px 20px; background: #f8f8f8; text-align: center; }
.ksd-page-hero h1 { margin: 0; color: #171717; font: 400 clamp(48px,6vw,78px)/1.1 Georgia,serif; }
.ksd-page-hero span { width: 74px; height: 2px; margin-top: 38px; background: #1f1f1f; }
.ksd-section { width: min(100% - 40px,1200px); margin: 0 auto; padding: clamp(75px,9vw,125px) 0; }
.ksd-section > h2,.ksd-home h2 { margin: 0 0 55px; text-align: center; font: 400 clamp(38px,4vw,58px)/1.15 Georgia,serif; color: #1d1d1d; }
.ksd-home > .ksd-section > h2 { position:relative; font-size:38px; }
.ksd-home > .ksd-section > h2::after { content:""; position:absolute; left:50%; bottom:-28px; width:50px; height:2px; transform:translateX(-50%); background:#222; }
.ksd-section p { color: #555; font-size: 17px; line-height: 1.9; }
.ksd-center { text-align: center; }
.ksd-button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 13px 30px; border: 1px solid #252525; color: #252525; text-decoration: none; font: 600 12px/1.2 Arial,sans-serif; letter-spacing: .12em; transition: .2s; }
.ksd-button { min-height:0; padding:15px 30px 13px; border:0; background:#2c2c2c; color:#fff; font:400 13px/15.6px "Roboto",Helvetica,Arial,sans-serif; letter-spacing:normal; }
.ksd-button:hover { background:#444; color:#fff; }
.ksd-home-slider { position:relative; height:100vh; min-height:620px; overflow:hidden; background:#171717; color:#fff; }
.ksd-home-slides,.ksd-home-slide { position:absolute; inset:0; }
.ksd-home-slide { z-index:0; display:grid; place-items:center; padding:120px 0 70px; background-position:center; background-size:cover; opacity:0; visibility:hidden; transition:opacity 1.15s ease,visibility 1.15s step-end; }
.ksd-home-slide::after { content:""; position:absolute; inset:0; background:rgba(0,0,0,.7); }
.ksd-home-slide.is-active { z-index:1; opacity:1; visibility:visible; transition:opacity 1.15s ease; }
.ksd-home-slide-caption { position:relative; z-index:1; width:min(calc(100% - 163.25px),1101.75px); text-align:center; text-transform:uppercase; text-shadow:none; transform:translateY(-13.5px); }
.ksd-home-slide-caption h2 { margin:0; color:#fff; font:400 55px/60.5px "Forum",Helvetica,Arial,sans-serif; letter-spacing:4px; }
.ksd-home-slide-caption p { margin:15px 0 0; color:#fff; font:400 20px/26px "Forum",Helvetica,Arial,sans-serif; letter-spacing:6px; }
.ksd-slider-arrow { position:absolute; z-index:3; top:50%; width:60px; height:60px; margin-top:-30px; padding:0; border:0; background:rgba(0,0,0,.3); color:#fff; font:400 25px/60px "Roboto",Helvetica,Arial,sans-serif; opacity:0; cursor:pointer; transition:opacity .25s,background .25s; }
.ksd-slider-prev { left:15px; }.ksd-slider-next { right:15px; }
.ksd-home-slider:hover .ksd-slider-arrow,.ksd-slider-arrow:focus-visible { opacity:.6; }
.ksd-slider-arrow:hover,.ksd-slider-arrow:focus-visible { background:rgba(0,0,0,.3); color:#fff; outline:0; }
.ksd-slider-dots { position:absolute; z-index:3; left:50%; bottom:14px; display:flex; gap:2px; opacity:0; transform:translateX(-50%); transition:opacity .25s; }
.ksd-home-slider:hover .ksd-slider-dots { opacity:.6; }
.ksd-slider-dot { width:14px; height:14px; padding:0; border:0; border-radius:50%; background:#000; cursor:pointer; transition:background .2s; }
.ksd-slider-dot.is-active { background:#fff; transform:none; }
.ksd-slider-dot:focus-visible { outline:2px solid #fff; outline-offset:3px; }
.ksd-home-intro { max-width:634.59375px; margin-top:50px; padding:50px 0 49px; text-align:center; }
.ksd-home-intro > h2 { margin-bottom:35px!important; }
.ksd-home-intro p { font-size:16px; line-height:1.65; }
.elementor .ksd-home-team { width:100%; margin:50px 0!important; overflow:hidden; background:#151515; }
.ksd-home-team img { display:block; width:100%; height:auto; min-height:520px; object-fit:cover; }
.ksd-home-projects { width:100%; max-width:none; padding:50px 0 4px; }
.ksd-home-projects > h2 { margin-bottom:85px!important; }
.ksd-home-project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.ksd-home-project-grid a { position:relative; min-height:0; aspect-ratio:2/1; overflow:hidden; background:#ddd; }
.ksd-home-project-grid img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .45s; }
.ksd-home-project-grid a::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 40%,rgba(0,0,0,.55)); opacity:0; transition:opacity .3s; }
.ksd-home-project-grid span { position:absolute; z-index:1; left:25px; bottom:22px; color:#fff; font:400 23px/1.2 Georgia,serif; opacity:0; transition:opacity .3s; }
.ksd-home-project-grid a:hover img { transform:scale(1.035); }
.ksd-home-project-grid a:hover::after,.ksd-home-project-grid a:hover span,.ksd-home-project-grid a:focus-visible::after,.ksd-home-project-grid a:focus-visible span { opacity:1; }
.ksd-home-projects .ksd-center { margin:0; padding:50px 0; }
.ksd-home-services { width:100%; max-width:none; margin-top:20px; padding:131px max(20px,calc((100% - 1101.75px)/2)) 138px; background:#fff; }
.ksd-home-services > h2 { margin-bottom:75px!important; }
.ksd-home-service-columns { display:grid; grid-template-columns:1fr 1fr; gap:66.125px; }
.ksd-home-services h3 { margin:0 0 20px; color:#333; font:400 23px/1.3 Georgia,serif; }
.ksd-home-services h3 span { margin-right:12px; }
.ksd-service-icon { display:inline-block; font:400 20px/1 "KSD Entypo"; vertical-align:1px; }
.ksd-home-services ul { margin:0; padding-left:23px; color:#555; font:16px/1.65 Arial,sans-serif; }
.ksd-home-services li { margin:0 0 9px; padding-left:2px; }
.ksd-home-services .ksd-center { margin:42px 0 0; }
.ksd-blog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:34px; }
.ksd-blog-grid article { min-width:0; }
.ksd-blog-image { display:block; aspect-ratio:16/10; overflow:hidden; background:#eee; }
.ksd-blog-image img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.ksd-blog-image:hover img { transform:scale(1.035); }
.ksd-blog-grid h3 { margin:23px 0 12px; font:400 25px/1.3 Georgia,serif; }
.ksd-blog-grid h3 a { color:#222; text-decoration:none; }
.ksd-blog-grid p { margin:0; font-size:15px; line-height:1.7; }
.ksd-home-blog { width:min(100% - 40px,1101.75px); margin-top:50px; padding-top:51px; padding-bottom:49px; }
.ksd-home-blog > h2 { margin-bottom:75px!important; }
.ksd-home-blog .ksd-blog-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:67px; }
.ksd-home-blog .ksd-blog-grid { min-height:398px; }
.ksd-home-blog .ksd-blog-image { aspect-ratio:260/185; }
.ksd-home-blog .ksd-blog-grid h3 { margin:22px 0 8px; font-size:23px; line-height:1.45; }
.ksd-home-blog-category { color:#aaa!important; font:12px/1.4 Arial,sans-serif!important; text-transform:uppercase; }
.ksd-about { margin-top:-3px; overflow:hidden; background:#f8f8f8; }
.ksd-about .ksd-page-hero { box-sizing:border-box; width:1101.75px; min-height:0; height:229px; margin:0 auto; padding:130px 0 0; display:block; text-align:center; }
.ksd-about .ksd-page-hero h1 { margin:0; color:#222; font:400 40px/44px "Forum",Helvetica,Arial,sans-serif; letter-spacing:1px; }
.ksd-about .ksd-page-hero span { display:block; width:50px; height:2px; margin:7px auto 0; background:#222; }
.ksd-about-team { box-sizing:border-box; width:1101.75px; margin:0 auto; padding:0 0 145.59375px; display:grid; grid-template-columns:repeat(3,323.171875px); column-gap:66.09375px; row-gap:63.59375px; }
.ksd-about-team article { min-width:0; color:#444; }
.ksd-about-team img { display:block; width:323.171875px; height:484.75px; object-fit:cover; }
.ksd-about-team article:first-of-type img { height:483.9375px; }
.ksd-about-team h2 { margin:10px 0 40px; color:#222; font:400 24px/26.4px "Forum",Helvetica,Arial,sans-serif; }
.ksd-about-team article:first-of-type h2 { margin-top:10px; }
.ksd-about-team p,.ksd-about-intro p { margin:13.6px 0; color:#444; font:400 16px/26.4px "Roboto",Helvetica,Arial,sans-serif; }
.ksd-about-team article p { margin:0; }
.ksd-about-counters { box-sizing:border-box; width:100%; height:163.90625px; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #ddd; border-bottom:1px solid #ddd; background:#fff; }
.ksd-about-counters > div { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:0 50px; }
.ksd-about-counters > div:nth-child(2) { background:#fbfbfb; }
.ksd-about-counters > div:nth-child(3) { background:#f8f8f8; }
.ksd-about-counters > div:nth-child(4) { background:#f1f1f1; }
.ksd-about-counters strong { height:48px; color:#222; font:400 40px/40px "Roboto",Helvetica,Arial,sans-serif; }
.ksd-about-counters span { margin-top:-1.6px; color:#444; font:400 15px/19.5px "Roboto",Helvetica,Arial,sans-serif; }
.ksd-values { box-sizing:border-box; width:1101.75px; height:748.25px; padding:130px 0; display:grid; grid-template-columns:517.8125px 517.84375px; grid-template-rows:auto 52px; gap:0 66.09375px; background:#fff; box-shadow:0 0 0 100vmax #fff; clip-path:inset(0 -100vmax); }
.ksd-values h2,.ksd-partners h2,.ksd-service-columns h2,.ksd-stages h2 { margin:0 0 35px; font:400 clamp(32px,3vw,46px)/1.2 Georgia,serif; }
.ksd-values ul,.ksd-service-columns ul { padding:0; margin:0; list-style:none; }
.ksd-values li,.ksd-service-columns li { padding:15px 0 15px 28px; border-bottom:1px solid #ddd; position:relative; color:#555; line-height:1.55; }
.ksd-values li::before,.ksd-service-columns li::before { content:"—"; position:absolute; left:0; }
.ksd-values h2 { margin:0; color:#222; font:400 40px/44px "Forum",Helvetica,Arial,sans-serif; letter-spacing:1px; }
.ksd-values ul { margin-top:45px; }
.ksd-values li { margin:0 0 13.6px; padding:0; border:0; color:#444; font:400 16px/26.4px "Roboto",Helvetica,Arial,sans-serif; }
.ksd-values li::before { content:none; }
.ksd-values > div:nth-child(2) li { position:relative; margin-bottom:30px; padding-left:0; }
.ksd-values-cta { grid-column:1/-1; margin:68px 0 0!important; text-align:center; }
.ksd-values-cta .ksd-button { background:#000; }
.ksd-about .ksd-partners { box-sizing:border-box; width:1101.75px; height:586.484375px; padding:130px 0; background:#fff; box-shadow:0 0 0 100vmax #fff; clip-path:inset(0 -100vmax); }
.ksd-partners h2 { text-align:center; }
.ksd-partners > div { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #eee; border-left:1px solid #eee; }
.ksd-partners span { min-height:155px; display:grid; place-items:center; padding:30px; border-right:1px solid #eee; border-bottom:1px solid #eee; }
.ksd-partners img { max-width:150px; max-height:65px; object-fit:contain; filter:grayscale(1); opacity:.72; }
.ksd-services-intro { max-width:900px; text-align:center; }
.ksd-service-columns { display:grid; grid-template-columns:1fr 1fr; gap:80px; padding-top:30px; }
.ksd-stages { border-top:1px solid #ddd; }
.ksd-stages h2 { text-align:center; }
.ksd-stages ol { margin:0; padding:0; list-style:none; counter-reset:stage; display:grid; grid-template-columns:repeat(5,1fr); }
.ksd-stages li { counter-increment:stage; min-height:220px; padding:30px 24px; border:1px solid #ddd; border-right:0; display:flex; flex-direction:column; gap:45px; }
.ksd-stages li:last-child { border-right:1px solid #ddd; }
.ksd-stages li::before { content:"0" counter(stage); color:#aaa; font:400 32px/1 Georgia,serif; }
.ksd-stages li span { font:400 18px/1.5 Georgia,serif; }
.ksd-prices { padding:clamp(80px,10vw,140px) max(20px,calc((100% - 1200px)/2)); background:#222; color:#fff; text-align:center; }
.ksd-prices > h2 { margin:0 0 50px; font:400 clamp(42px,5vw,68px)/1.1 Georgia,serif; }
.ksd-prices > div { display:grid; grid-template-columns:1fr 1fr; border:1px solid #555; }
.ksd-prices article { padding:55px 25px; border-right:1px solid #555; }
.ksd-prices article:last-child { border-right:0; }
.ksd-prices h3 { margin:0 0 20px; font:400 25px/1.2 Georgia,serif; text-transform:uppercase; }
.ksd-prices strong { font:400 clamp(32px,4vw,50px)/1 Georgia,serif; }
.ksd-prices > p { max-width:800px; margin:55px auto 0; color:#ddd; font:400 22px/1.5 Georgia,serif; }
.ksd-services { margin-top:-3px; overflow:hidden; background:#fff; }
.ksd-services .ksd-page-hero { box-sizing:border-box; width:1101.75px; height:132px; min-height:0; margin:0 auto; padding:50px 0 0; display:block; text-align:center; background:#fff; }
.ksd-services .ksd-page-hero h1 { margin:0; color:#222; font:400 40px/44px "Forum",Helvetica,Arial,sans-serif; letter-spacing:1px; }
.ksd-services .ksd-page-hero span { display:block; width:50px; height:2px; margin:16px auto 0; background:#222; }
.ksd-services .ksd-services-intro { box-sizing:border-box; width:1101.75px; height:133.40625px; max-width:none; margin:0 auto; padding:17px 0 0; text-align:left; }
.ksd-services .ksd-services-intro p { margin:0; color:#444; font:400 16px/26.4px "Roboto",Helvetica,Arial,sans-serif; }
.ksd-service-rows { box-sizing:border-box; width:1101.75px; height:836.0625px; margin:0 auto; display:flex; flex-direction:column; gap:120px; }
.ksd-service-rows article { height:298.03125px; display:grid; grid-template-columns:517.8125px 517.84375px; gap:66.09375px; }
.ksd-service-rows article:nth-child(2) { grid-template-columns:517.8125px 517.84375px; }
.ksd-service-rows article:nth-child(2) .ksd-service-photo { order:2; }
.ksd-service-rows article:nth-child(2) .ksd-service-copy { order:1; }
.ksd-service-photo { width:100%; height:298.03125px; background-position:center; background-size:cover; }
.ksd-service-copy h2 { margin:-1px 0 3px; color:#222; font:400 32px/35.2px "Forum",Helvetica,Arial,sans-serif; letter-spacing:1px; }
.ksd-service-copy p { margin:0 0 27px; color:#444; font:400 15px/19.5px "Roboto",Helvetica,Arial,sans-serif; }
.ksd-service-copy ul { margin:0; padding:0; list-style:none; }
.ksd-service-copy li { position:relative; margin:0; padding:0 0 0 28px; border:0; color:#666; font:400 16px/23px "Roboto",Helvetica,Arial,sans-serif; }
.ksd-service-copy li::before { content:"✓"; position:absolute; left:6px; color:#555; font-weight:700; }
.ksd-services .ksd-stages { box-sizing:border-box; width:1101.75px; height:628.59375px; padding:50px 0; border:0; }
.ksd-services .ksd-stages { background:#f8f8f8; box-shadow:0 0 0 100vmax #f8f8f8; clip-path:inset(0 -100vmax); }
.ksd-services .ksd-stages h2 { margin:0 0 66px; text-align:left; color:#222; font:400 34px/37.4px "Forum",Helvetica,Arial,sans-serif; letter-spacing:1px; }
.ksd-stage-layout { display:grid; grid-template-columns:517.8125px 517.84375px; gap:66.09375px; }
.ksd-stage-layout ol { display:block; margin:0; padding:0; list-style:none; }
.ksd-stage-layout li { box-sizing:border-box; min-height:74px; padding:0 0 0 94px; border:0; display:flex; align-items:flex-start; color:#444; font:400 15px/19.5px "Roboto",Helvetica,Arial,sans-serif; }
.ksd-stage-layout li::before { content:none; }
.ksd-stage-layout li i { position:absolute; margin-left:-70px; width:24px; height:24px; opacity:.72; }
.ksd-stage-layout li i::before { content:"□"; font:400 20px/24px "Roboto",sans-serif; color:#aaa; }
.ksd-stage-layout li:first-child i::before { content:"◆"; color:#111; }
.ksd-stage-copy p { margin:0 0 13.6px; color:#555; font:400 16px/26.4px "Roboto",Helvetica,Arial,sans-serif; }
.ksd-services .ksd-prices { box-sizing:border-box; height:804.4375px; padding:50px max(20px,calc((100% - 1101.75px)/2)); background:#fff; color:#222; text-align:left; }
.ksd-services .ksd-prices > h2 { margin:0 0 350px; color:#222; font:400 34px/37.4px "Forum",Helvetica,Arial,sans-serif; letter-spacing:1px; }
.ksd-services .ksd-prices > div { border:0; gap:66.09375px; }
.ksd-services .ksd-prices article { padding:20px; border:1px solid #ddd; }
.ksd-services .ksd-prices h3 { margin:0 0 16px; font:400 30px/18px "Forum",Helvetica,Arial,sans-serif; letter-spacing:1px; }
.ksd-services .ksd-prices strong { font:400 24px/26.4px "Forum",Helvetica,Arial,sans-serif; }
.ksd-services .ksd-prices > p { max-width:none; margin:48px 0 0; color:#444; font:400 24px/26.4px "Forum",Helvetica,Arial,sans-serif; }
.ksd-contact-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:50px; text-align:center; }
.ksd-contact-grid h2 { margin:0 0 22px; font:400 31px/1.2 Georgia,serif; }
.ksd-contact-grid a,.ksd-contact-grid p { color:#555; font-size:17px; line-height:1.8; text-decoration:none; }
.ksd-contact-form { max-width:900px; padding-top:20px; }
.ksd-contact-form form > div { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.ksd-contact-form input,.ksd-contact-form textarea { width:100%; padding:18px 20px; border:1px solid #d8d8d8; background:#fafafa; color:#222; font:15px/1.4 Arial,sans-serif; }
.ksd-contact-form textarea { margin-top:20px; resize:vertical; }
.ksd-contact-form button { margin-top:20px; min-width:180px; padding:17px 30px; border:1px solid #222; background:#222; color:#fff; letter-spacing:.12em; cursor:pointer; }
.ksd-contacts { margin-top:-3px; overflow:hidden; background:#f8f8f8; }
.ksd-contacts .ksd-page-hero { box-sizing:border-box; width:1101.75px; height:244px; min-height:0; margin:0 auto; padding:125px 0 0; display:block; text-align:center; }
.ksd-contacts .ksd-page-hero h1 { margin:0; color:#222; font:400 40px/44px "Forum",Helvetica,Arial,sans-serif; letter-spacing:1px; }
.ksd-contacts .ksd-page-hero span { display:block; width:50px; height:2px; margin:16px auto 0; background:#222; }
.ksd-contacts .ksd-contact-grid { box-sizing:border-box; width:1101.75px; height:370.03125px; margin:0 auto; padding:0; display:grid; grid-template-columns:704.53125px 307.296875px; gap:90px; text-align:left; }
.ksd-contact-map { width:704.53125px; height:279px; overflow:hidden; background:#eee; }
.ksd-contact-map img { display:block; width:100%; height:100%; object-fit:cover; }
.ksd-contact-details article { height:92.40625px; }
.ksd-contact-details h2 { margin:0 0 11px; color:#222; font:400 30px/20px "Forum",Helvetica,Arial,sans-serif; letter-spacing:1px; }
.ksd-contact-details a,.ksd-contact-details p { margin:0; color:#444; font:400 16px/26.4px "Roboto",Helvetica,Arial,sans-serif; text-decoration:none; }
.ksd-form-notice { padding:15px 18px; margin:0 0 20px; }
.ksd-form-notice.is-success { background:#eef7ed; color:#276124; }
.ksd-form-notice.is-error { background:#fff0f0; color:#8b1e1e; }
.ksd-blog-filters { width:min(100% - 40px,1200px); margin:55px auto 0; display:flex; justify-content:center; flex-wrap:wrap; gap:10px 28px; }
.ksd-blog-filters a { padding:8px 0; color:#666; border-bottom:1px solid transparent; text-decoration:none; font:13px/1.2 Arial,sans-serif; text-transform:uppercase; letter-spacing:.05em; }
.ksd-blog-filters a.is-active,.ksd-blog-filters a:hover { color:#222; border-color:#222; }
.ksd-blog-archive .ksd-blog-grid { padding-top:55px; }
.ksd-blog-archive .ksd-blog-grid h2 { margin:18px 0 12px; text-align:left; font:400 27px/1.3 Georgia,serif; }
.ksd-blog-archive .ksd-blog-grid h2 a { color:#222; text-decoration:none; }
.ksd-blog-meta { margin:18px 0 0!important; color:#999!important; font-size:12px!important; text-transform:uppercase; letter-spacing:.08em; }
.ksd-blog-archive { margin-top:-3px; overflow:hidden; }
.ksd-blog-archive .ksd-page-hero { box-sizing:border-box; width:1101.75px; height:132px; min-height:0; margin:0 auto; padding:50px 0 0; display:block; text-align:center; background:#fff; }
.ksd-blog-archive .ksd-page-hero h1 { margin:0; color:#222; font:400 40px/44px "Forum",Helvetica,Arial,sans-serif; letter-spacing:1px; }
.ksd-blog-archive .ksd-page-hero span { display:block; width:50px; height:2px; margin:16px auto 0; background:#222; }
.ksd-blog-archive .ksd-blog-filters { display:none; }
.ksd-blog-archive .ksd-blog-grid { box-sizing:border-box; width:1101.75px; margin:0 auto; padding:17px 0 51.171875px; grid-template-columns:repeat(3,323.171875px); grid-template-rows:661.59375px 603.984375px 603.984375px 709.609375px 603.984375px 572.78125px 635.1875px 640.578125px 740.8125px 683.203125px 603.984375px 603.984375px 630.390625px 603.984375px 603.984375px 603.984375px; gap:0 66.09375px; }
.ksd-blog-archive .ksd-blog-grid article { min-height:0; overflow:hidden; }
.ksd-blog-archive .ksd-blog-image { width:323.171875px; height:261.140625px; aspect-ratio:auto; }
.ksd-blog-archive .ksd-blog-grid h2 { margin:6px 0 12px; color:#222; font:400 24px/31.2px "Forum",Helvetica,Arial,sans-serif; letter-spacing:1px; }
.ksd-blog-archive .ksd-blog-grid h2 a { color:#222; }
.ksd-post-header { min-height:360px; padding:75px 20px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background:#f7f7f7; }
.ksd-post-header p { margin:0 0 24px; color:#999; font-size:13px; text-transform:uppercase; letter-spacing:.08em; }
.ksd-post-header h1 { max-width:1050px; margin:0; font:400 clamp(42px,5vw,70px)/1.12 Georgia,serif; color:#191919; }
.ksd-post-header span { width:70px; height:2px; margin-top:36px; background:#222; }
.ksd-post-cover { width:min(100% - 40px,1100px); margin:70px auto 0; }
.ksd-post-cover img { width:100%; max-height:720px; object-fit:cover; }
.ksd-post-content { width:min(100% - 40px,820px); margin:70px auto; color:#444; font-size:17px; line-height:1.9; }
.ksd-post-content h2,.ksd-post-content h3 { margin:55px 0 22px; color:#222; font-family:Georgia,serif; font-weight:400; line-height:1.25; }
.ksd-post-content h2 { font-size:38px; }.ksd-post-content h3 { font-size:29px; }
.ksd-post-content img { max-width:100%; height:auto; margin:25px auto; }
.ksd-post-content blockquote { margin:40px 0; padding:5px 0 5px 30px; border-left:2px solid #222; font:italic 23px/1.55 Georgia,serif; }
.ksd-post-share { width:min(100% - 40px,820px); margin:0 auto; padding:45px 0; border-top:1px solid #ddd; border-bottom:1px solid #ddd; display:flex; align-items:center; justify-content:space-between; }
.ksd-post-share h2 { margin:0; font:400 25px/1.2 Georgia,serif; }.ksd-post-share div { display:flex; gap:10px; }
.ksd-post-share a { width:45px; height:45px; display:grid; place-items:center; border:1px solid #ddd; color:#222; text-decoration:none; }
.ksd-post-related { padding-top:100px; }
.ksd-post-related .ksd-blog-grid h3 { margin-top:18px; }

@media (max-width: 900px) {
  .ksd-home-project-grid { grid-template-columns:repeat(2,1fr); }
  .ksd-team-grid { grid-template-columns:repeat(2,1fr); }
  .ksd-values,.ksd-service-columns { grid-template-columns:1fr; gap:55px; }
  .ksd-stages ol { grid-template-columns:1fr 1fr; }
  .ksd-stages li:nth-child(2n) { border-right:1px solid #ddd; }
  .ksd-partners > div { grid-template-columns:repeat(2,1fr); }
  .ksd-home-blog .ksd-blog-grid { grid-template-columns:repeat(2,1fr); gap:45px 28px; }
}

@media (max-width: 767px) {
  .ksd-page-hero { min-height:220px; }
  .ksd-home-slider { height:calc(100svh - 88px); min-height:520px; }
  .ksd-home-slide { padding:85px 26px 55px; }
  .ksd-home-slide-caption h2 { font-size:clamp(32px,9vw,46px); }
  .ksd-home-slide-caption p { font-size:12px; letter-spacing:.22em; }
  .ksd-slider-arrow { width:42px; height:64px; margin-top:-32px; font-size:46px; opacity:.55; }
  .ksd-home-project-grid,.ksd-blog-grid,.ksd-home-services > div,.ksd-team-grid,.ksd-prices > div,.ksd-contact-grid { grid-template-columns:1fr; }
  .ksd-home-project-grid a { min-height:0; aspect-ratio:4/3; }
  .ksd-home-team img { min-height:340px; }
  .ksd-home-services { padding:75px 24px; }
  .ksd-home-service-columns { gap:45px; }
  .ksd-home-blog .ksd-blog-grid { grid-template-columns:1fr; }
  .ksd-team-grid article { min-height:540px; }
  .ksd-stages ol { grid-template-columns:1fr; }
  .ksd-stages li { border-right:1px solid #ddd; border-bottom:0; min-height:150px; gap:25px; }
  .ksd-stages li:last-child { border-bottom:1px solid #ddd; }
  .ksd-prices article { border-right:0; border-bottom:1px solid #555; }
  .ksd-prices article:last-child { border-bottom:0; }
  .ksd-contact-form form > div { grid-template-columns:1fr; }
  .ksd-post-header { min-height:280px; }.ksd-post-share { align-items:flex-start; flex-direction:column; gap:25px; }
}

.ksd-site-header { background: #fff; border-bottom: 1px solid #e8e8e8; }
.ksd-header-inner { box-sizing:border-box; width:min(calc(100% - 63.25px),1201.75px); min-height:90px; margin:auto; padding:0 50px; display:flex; align-items:center; justify-content:space-between; gap:35px; }
.ksd-logo { position:relative; display:block; flex:0 0 196.14px; width:196.14px; height:90px; }
.ksd-logo img { display:block; width:196.14px; height:auto; transition:opacity .2s; }
.ksd-logo-transparent { position:absolute; top:0; left:0; opacity:0; }
.ksd-desktop-nav { display:flex; flex:0 0 auto; align-items:center; justify-content:flex-end; gap:0; }
.ksd-desktop-nav > a { padding:0 13px; color:#969696; text-decoration:none; white-space:nowrap; font:600 16px/90px "Forum",Helvetica,Arial,sans-serif; transition:color .2s; }
.ksd-desktop-nav > a:hover, .ksd-desktop-nav > a[aria-current="page"] { color: #111; }
.ksd-language-link { font-size:16px!important; }
.ksd-header-social { box-sizing:border-box; width:120px; height:90px; margin-left:12px; padding-left:30px; border-left:1px solid rgba(255,255,255,.25); display:flex; align-items:center; gap:0; }
.ksd-header-social a { width:30px; height:90px; display:grid; place-items:center; color:#777; text-decoration:none; font:600 14px/1 "Roboto",Arial,sans-serif; }
.ksd-mobile-nav { display: none; }

.ksd-site-footer { padding:0; background:#35383c; border-top:0; color:#fff; }
.ksd-footer-grid { box-sizing:border-box; width:min(calc(100% - 63.25px),1201.75px); height:206.40625px; margin:auto; padding:50px 50px 0; display:grid; grid-template-columns:repeat(3,1fr); gap:66.125px; }
.ksd-site-footer h2 { margin:0 0 12px; font:400 20px/22px "Forum",Helvetica,Arial,sans-serif; color:#fff; }
.ksd-site-footer p { margin:0; font:400 16px/26.4px "Roboto",Helvetica,Arial,sans-serif; color:#e8e8e8; }
.ksd-site-footer a { color: inherit; text-decoration: none; }
.ksd-footer-bottom { box-sizing:border-box; width:100%; height:57.40625px; margin:-1px 0 0; padding:0 max(20px,calc((100% - 1101.75px)/2)); border-top:0; display:flex; align-items:center; justify-content:space-between; gap:25px; background:#282b2e; color:#e8e8e8; font:11px/1.5 "Roboto",Helvetica,Arial,sans-serif; }
.ksd-footer-social { display: flex; gap: 20px; }

/* Exact typography and desktop container dimensions from the former Enfold site. */
.ksd-home,.ksd-standard-page,.ksd-portfolio-archive,.ksd-project-page,.ksd-blog-archive,.ksd-single-post,.ksd-site-header,.ksd-site-footer { font-family:"Roboto",Helvetica,Arial,sans-serif; }
.ksd-home h1,.ksd-home h2,.ksd-home h3,.ksd-standard-page h1,.ksd-standard-page h2,.ksd-standard-page h3,.ksd-portfolio-archive h1,.ksd-portfolio-archive h2,.ksd-project-page h1,.ksd-project-page h2,.ksd-blog-archive h1,.ksd-blog-archive h2,.ksd-blog-archive h3,.ksd-single-post h1,.ksd-single-post h2,.ksd-single-post h3,.ksd-site-footer h2 { font-family:"Forum",Helvetica,Arial,sans-serif; letter-spacing:1px; }
.ksd-section p,.ksd-home-services li,.ksd-site-footer p { font-family:"Roboto",Helvetica,Arial,sans-serif; }
.ksd-home > .ksd-section > h2 { color:#000; font:400 40px/44px "Forum",Helvetica,Arial,sans-serif; letter-spacing:1px; }
.ksd-home-slide-caption h2 { letter-spacing:4px!important; }
.ksd-home-intro p { color:#232323; font:400 16px/26.4px "Roboto",Helvetica,Arial,sans-serif; }
.ksd-home-services h3 { color:#222; font:400 30px/30px "Forum",Helvetica,Arial,sans-serif; letter-spacing:1px; }
.ksd-home-services ul { color:#444; font:400 16px/26.4px "Roboto",Helvetica,Arial,sans-serif; }
.ksd-home-blog .ksd-blog-grid h3 { color:#222; font:400 24px/31.2px "Forum",Helvetica,Arial,sans-serif; letter-spacing:1px; }
.ksd-home-blog-category { color:#919191!important; font:400 12px/19.8px "Roboto",Helvetica,Arial,sans-serif!important; }

body.home .ksd-site-header { position:absolute; z-index:50; top:0; left:0; right:0; background:transparent; border-bottom:0; transition:background .25s,box-shadow .25s; }
body.home .ksd-site-header .ksd-logo { opacity:1; pointer-events:auto; transition:opacity .2s; }
body.home:not(.ksd-is-scrolled) .ksd-logo-default { opacity:0; }
body.home:not(.ksd-is-scrolled) .ksd-logo-transparent { opacity:1; }
body.home .ksd-site-header .ksd-desktop-nav > a,body.home .ksd-site-header .ksd-header-social a { color:#fff; text-shadow:0 1px 4px rgba(0,0,0,.45); }
body.home.ksd-is-scrolled .ksd-site-header { position:fixed; background:#fff; border-bottom:1px solid #e8e8e8; box-shadow:0 2px 12px rgba(0,0,0,.06); }
body.home.ksd-is-scrolled .ksd-site-header .ksd-logo { opacity:1; pointer-events:auto; }
body.home.ksd-is-scrolled .ksd-logo-default { opacity:1; }
body.home.ksd-is-scrolled .ksd-logo-transparent { opacity:0; }
body.home.ksd-is-scrolled .ksd-site-header .ksd-desktop-nav > a,body.home.ksd-is-scrolled .ksd-site-header .ksd-header-social a { color:#777; text-shadow:none; }
body.home.ksd-is-scrolled .ksd-header-social { border-left-color:#e1e1e1; }
.home .ksd-site-footer { margin-top:50px; }

.ksd-archive-hero { min-height: clamp(250px, 28vw, 380px); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 60px 20px 35px; }
.ksd-archive-hero h1 { margin: 0; font: 400 clamp(44px, 5vw, 68px)/1.1 Georgia, serif; color: var(--ksd-text); }
.ksd-archive-hero span { width: 76px; height: 3px; margin-top: 36px; background: var(--ksd-text); }
.ksd-portfolio-filters { width: min(100% - 40px, 1200px); margin: 0 auto 55px; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 28px; }
.ksd-portfolio-filters a { padding: 8px 0; color: #777; text-decoration: none; text-transform: uppercase; font: 13px/1.3 Arial, sans-serif; letter-spacing: .08em; border-bottom: 1px solid transparent; }
.ksd-portfolio-filters a:hover, .ksd-portfolio-filters a.is-active { color: #111; border-color: #111; }
.ksd-portfolio-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ksd-portfolio-card { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #ddd; }
.elementor .ksd-portfolio-image { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform .5s ease, filter .35s ease; }
.ksd-card-overlay { position: absolute; z-index: 1; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 28px; color: #fff; background: linear-gradient(transparent 45%, rgba(0,0,0,.62)); opacity: 0; transition: opacity .3s ease; }
.ksd-card-overlay strong { font: 400 28px/1.15 Georgia, serif; }
.ksd-card-overlay small { margin-top: 8px; font: 12px/1.3 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.ksd-portfolio-card:hover .ksd-portfolio-image { transform: scale(1.035); filter: brightness(.88); }
.ksd-portfolio-card:hover .ksd-card-overlay { opacity: 1; }
.ksd-portfolio-archive { margin-top:-3px; overflow:hidden; }
.ksd-portfolio-archive .ksd-archive-hero { box-sizing:border-box; width:1101.75px; height:132px; min-height:0; margin:0 auto; padding:50px 0 0; display:block; text-align:center; }
.ksd-portfolio-archive .ksd-archive-hero h1 { margin:0; color:#222; font:400 40px/44px "Forum",Helvetica,Arial,sans-serif; letter-spacing:1px; }
.ksd-portfolio-archive .ksd-archive-hero span { display:block; width:50px; height:2px; margin:16px auto 0; background:#222; }
.ksd-portfolio-archive .ksd-portfolio-filters { box-sizing:border-box; width:100%; height:71.453125px; margin:0; padding:25px 20px 0; align-items:flex-start; gap:0 3px; }
.ksd-portfolio-archive .ksd-portfolio-filters a { padding:0 10px; border:0; color:#666; text-transform:none; font:400 16px/21.45px "Roboto",Helvetica,Arial,sans-serif; letter-spacing:normal; }
.ksd-portfolio-grid { grid-template-columns:repeat(3,33.4375%); }
.ksd-portfolio-card { aspect-ratio:2/1; }
.ksd-card-overlay { justify-content:center; padding:20px; background:rgba(0,0,0,.18); opacity:1; }
.ksd-card-overlay strong { font:400 24px/31.2px "Forum",Helvetica,Arial,sans-serif; }
.ksd-card-overlay small { display:none; }

.ksd-project-hero {
  min-height: clamp(260px, 30vw, 390px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 70px 24px 45px;
  background: #fff;
}

.ksd-project-title,
.ksd-share h2,
.ksd-related h2 {
  margin: 0;
  color: var(--ksd-text);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
}

.ksd-project-title {
  font-size: clamp(42px, 5vw, 66px);
  line-height: 1.1;
  letter-spacing: .01em;
  text-align: center;
}

.ksd-title-rule {
  display: block;
  width: 76px;
  height: 3px;
  margin-top: 38px;
  background: var(--ksd-text);
}

.ksd-project-gallery {
  width: min(100% - 40px, 1440px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ksd-gap);
}

.ksd-gallery-item {
  display: block;
  overflow: hidden;
  background: #f2f2f2;
  aspect-ratio: 4 / 3;
}

.elementor .ksd-gallery-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .45s ease, opacity .35s ease;
}

.ksd-gallery-item:hover .ksd-gallery-image { transform: scale(1.025); opacity: .94; }

.ksd-share {
  width: min(100% - 40px, 1200px);
  margin: clamp(70px, 8vw, 120px) auto 0;
}

.ksd-share h2 { font-size: 21px; margin-bottom: 28px; }

.ksd-share-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border: 1px solid var(--ksd-line);
}

.ksd-share-grid a {
  min-height: 88px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ksd-text);
  border-right: 1px solid var(--ksd-line);
  text-decoration: none;
  font: 600 20px/1 Arial, sans-serif;
  transition: background .2s ease, color .2s ease;
}

.ksd-share-grid a:last-child { border-right: 0; }
.ksd-share-grid a:hover { color: #fff; background: var(--ksd-text); }

.ksd-related { margin-top: clamp(100px, 12vw, 170px); }
.ksd-related h2 { font-size: clamp(38px, 4vw, 56px); text-align: center; margin-bottom: clamp(55px, 7vw, 95px); }

.ksd-related-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ksd-related-card { position: relative; display: block; min-height: 280px; overflow: hidden; background: #ddd; }
.elementor .ksd-related-image { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform .5s ease; }
.ksd-related-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 45%, rgba(0,0,0,.55)); }
.ksd-related-card span { position: absolute; z-index: 1; left: 28px; bottom: 24px; color: #fff; font: 400 25px/1.2 Georgia, serif; }
.ksd-related-card:hover .ksd-related-image { transform: scale(1.035); }

@media (max-width: 767px) {
	.ksd-header-inner { width: calc(100% - 28px); min-height: 88px; }
	.ksd-logo img { width: 185px; }
	body.home .ksd-site-header .ksd-logo { opacity:1; pointer-events:auto; }
	.ksd-desktop-nav { display: none; }
	.ksd-mobile-nav { display: block; position: relative; }
	.ksd-mobile-nav summary { width: 42px; height: 42px; display: flex; flex-direction: column; justify-content: center; gap: 5px; cursor: pointer; list-style: none; }
	.ksd-mobile-nav summary::-webkit-details-marker { display: none; }
	.ksd-mobile-nav summary span { display: block; width: 28px; height: 2px; margin-left: auto; background: #222; }
	.ksd-mobile-nav nav { position: absolute; z-index: 100; right: -14px; top: 58px; width: min(88vw, 360px); padding: 25px; display: flex; flex-direction: column; gap: 18px; background: #fff; border: 1px solid var(--ksd-line); box-shadow: 0 15px 40px rgba(0,0,0,.12); }
	.ksd-mobile-nav nav > a { color: #333; text-decoration: none; font: 15px/1.25 Georgia, serif; }
	.ksd-mobile-nav .ksd-header-social { padding: 12px 0 0; border-top: 1px solid var(--ksd-line); }
	.ksd-site-footer { padding: 55px 22px 22px; }
	.ksd-footer-grid { grid-template-columns: 1fr; gap: 38px; padding-bottom: 45px; }
	.ksd-footer-bottom { flex-direction: column; }
  .ksd-project-hero { min-height: 235px; padding-top: 45px; }
  .ksd-project-title { font-size: 40px; }
  .ksd-title-rule { margin-top: 26px; }
  .ksd-project-gallery { width: min(100% - 24px, 620px); grid-template-columns: 1fr; gap: 12px; }
  .ksd-share { width: calc(100% - 24px); margin-top: 60px; }
  .ksd-share-grid { grid-template-columns: repeat(5, 1fr); }
  .ksd-share-grid a { min-height: 62px; }
  .ksd-related { margin-top: 85px; }
  .ksd-related h2 { font-size: 38px; margin-bottom: 45px; }
  .ksd-related-grid { grid-template-columns: 1fr; }
	.ksd-related-card { min-height: 260px; }
	.ksd-archive-hero { min-height: 220px; }
	.ksd-portfolio-filters { width: calc(100% - 24px); margin-bottom: 35px; gap: 8px 18px; }
	.ksd-portfolio-grid { grid-template-columns: 1fr; }
	.ksd-card-overlay { opacity: 1; padding: 22px; }
}
