/* Shared website appearance for software and service pages. */
.page .ct-section-title{font-family:'DM Sans','Segoe UI',sans-serif;font-size:clamp(24px,3vw,34px);font-weight:500;line-height:1.2;letter-spacing:-.03em;margin-bottom:20px}.page .ct-intro-text{font-size:16px;line-height:1.85;color:#4e6358}.page .ct-intro{padding-bottom:35px}.page .ct-open{margin:18px 0}.page .ct-languages{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:24px}.page .ct-languages h2{flex-basis:100%;font-size:15px;font-weight:600}.page .ct-languages a{font-size:13px;color:#285d49;text-underline-offset:4px}.page .ct-languages span{font-size:12px;color:#536c61}.page .ct-programs{max-width:1440px;margin:0 auto;padding:0 7% 55px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}.page .ct-program-group h2{margin:0}.page .ct-program-group h3{font-weight:600;margin:0}.page .ct-program-group p{margin:6px 0 0}.page .ct-related{margin:18px 21px 22px}.page .ct-program-group .sub-item{align-items:flex-start}.page .concrete-tool-link{color:#285d49;text-underline-offset:4px;font-weight:600;line-height:1.6;display:inline-block}.page .concrete-tool-link:hover{color:#153b30}@media(max-width:720px){.page .ct-programs{grid-template-columns:1fr;padding:0 6% 35px;gap:20px}}
.page .integration-link{display:inline-block;margin-top:14px;color:#285d49;font-size:14px;font-weight:600;line-height:1.6;text-underline-offset:4px}.page .integration-link:hover{color:#153b30}
body[data-mode="presentation"]{background:#f8f9f7;color:#183735}
body .page{background:#f8f9f7!important;--text-dk:#183735;--text-md:#4e6358;--text-lt:#536c61;--border:#d2ded5;--blue:#28634e;--blue-dk:#183f38;--blue-pale:#e8ede6;--bg2:#fff}
.page .slide-band{display:none}
.page .page-breadcrumb{display:flex;gap:12px;flex-wrap:wrap;padding:20px 7%;font-size:12px;background:#f8f9f7;color:#64796d}
.page-breadcrumb a{color:#285d49;text-decoration:none}.page-breadcrumb a:hover{text-decoration:underline}
.page .slide-hero{padding:65px 7% 48px;min-height:390px;display:flex;flex-direction:column;align-items:stretch;gap:35px;background:linear-gradient(100deg,#0b2b2eef,#0b2b2e85),url('../images/arkkitehtuuri-ilta.png') center 55%/cover;color:#fff}
#p2 .slide-hero,#p6 .slide-hero,#p7 .slide-hero{background-image:linear-gradient(100deg,#102e2bed,#102e2b85),url('../images/arkkitehtuuri-puu.png')}
body .page .slide-label{background:none;border:none;color:#c6e3d2;padding:0;border-radius:0;font-family:'DM Sans','Segoe UI',sans-serif;font-size:11px;letter-spacing:.15em;font-weight:500;margin:0 0 20px}
body .page .slide-h1,body .page .slide-h1 span{font-family:'DM Sans','Segoe UI',sans-serif;color:#fff!important;font-size:clamp(32px,4.3vw,62px);font-weight:500;line-height:1.13;letter-spacing:-.045em;overflow-wrap:anywhere}
body .page .slide-h1 span{color:#bbdec9!important}
.page .slide-tagline{max-width:720px;font-size:17px;line-height:1.8;color:#e1ebe5;margin-top:22px}
.page .kpi-bar{align-self:flex-start;background:#102f2dc9;border:1px solid #ffffff38;border-radius:6px;box-shadow:none;margin:0;max-width:100%;flex-wrap:wrap}
.page .kpi-item{padding:17px 25px;border-color:#ffffff30;min-width:0;flex:1}
body .page .kpi-val{font-family:'DM Sans','Segoe UI',sans-serif;font-size:25px;font-weight:500;color:#d4f19a!important;line-height:1.2}
.page .kpi-lbl{color:#d0dfd7;font-size:10px;line-height:1.5;letter-spacing:.06em}
.page .slide-body{max-width:1440px;margin:auto;padding:55px 7%;gap:30px}
.page .feat-stack{gap:16px}.page .feat-card{padding:24px;border-radius:8px;border-color:#d2ded5;box-shadow:none;background:#fff;gap:16px}.page .feat-card:hover{transform:none;box-shadow:none}
body .page .feat-icon{background:#e8ede6;color:#285d49;border-radius:6px}
.page .feat-title{font-size:18px;font-weight:600;line-height:1.35;margin-bottom:9px}.page .feat-desc{font-size:14px;line-height:1.8}
.page .sub-panel{border-radius:8px;box-shadow:none;border-color:#d2ded5}
body .page .sub-panel-hdr{background:#e8ede6;color:#183f38;font-family:'DM Sans','Segoe UI',sans-serif;font-size:13px;font-weight:600;padding:21px;line-height:1.5;letter-spacing:.04em}
.page .sub-item{padding:18px 21px;gap:12px}.page .sub-item>div{min-width:0}.page .sub-name{font-size:15px;line-height:1.4;overflow-wrap:anywhere}.page .sub-desc{font-size:13px;line-height:1.65}
body .page .sub-badge{background:#e8ede6;color:#285d49;font-size:10px;flex-shrink:0}
body .page .pill{background:#e8ede6;color:#285d49;border-color:#d2ded5;font-size:11px;padding:8px 11px}
body .page .cta-btn{background:#19483b;color:#fff;border:1px solid #19483b;border-radius:4px;box-shadow:none;font-family:'DM Sans','Segoe UI',sans-serif;font-size:14px;font-weight:500;padding:16px 22px;white-space:normal;text-align:center}
body .page .cta-btn:hover{background:#28634e;box-shadow:none}.page .cta-btn.secondary{background:transparent!important;color:#19483b!important}
body .page .qr-card{background:#183f38;border:1px solid #285d49;border-radius:8px;color:#fff}.page .qr-card .qr-url{color:#fff;font-family:'DM Sans','Segoe UI',sans-serif;font-size:16px;overflow-wrap:anywhere}.page .qr-card .qr-sub{color:#e1ebe5;font-size:12px;line-height:1.6}
.page .presentation-links{background:#e8ede6;padding:18px 7%;gap:12px 24px}.page .presentation-links a{font-size:13px;color:#234f3d;text-underline-offset:4px}
.page .software-partner{max-width:1240px;margin:0 auto 55px;padding:35px;gap:25px;border-radius:6px}
.page .contact-layout{max-width:1440px;margin:auto;padding:55px 7%;gap:24px}.page .contact-card{background:#fff;border:1px solid #d2ded5;border-radius:8px;box-shadow:none;padding:28px}.page .contact-card h3{font-family:'DM Sans','Segoe UI',sans-serif;font-size:24px}.page .contact-val{font-size:15px;line-height:1.8;overflow-wrap:anywhere}.page .contact-val a{color:#285d49}.page .contact-lbl{font-size:11px}.page .cta-block-big{background:#183f38;border-radius:8px;padding:30px}
.page .home-footer p{font-size:13px;line-height:1.7;margin-top:12px;color:#b7cbc0}
body[data-mode="detail"] #serviceApp,body[data-mode="catalog"] #serviceApp{padding-top:55px;padding-bottom:65px}
body[data-mode="detail"] .detailgrid section{background:#fff;border:1px solid #d2ded5;border-radius:8px;padding:25px}
body[data-mode="detail"] .detailgrid h2{font-weight:500;color:#183f38}body[data-mode="detail"] .detailgrid li{line-height:1.8}
@media(max-width:1100px){.page .software-partner{margin-left:7%;margin-right:7%}}
@media(max-width:720px){.page .slide-hero{padding:42px 6% 35px;min-height:0;gap:27px}.page .slide-tagline{font-size:15px;line-height:1.75}.page .slide-body,.page .contact-layout{padding:32px 6%}.page .page-breadcrumb{padding:17px 6%}.page .kpi-bar{width:100%}.page .kpi-item{padding:14px 10px}.page .kpi-val{font-size:21px!important}.page .kpi-lbl{font-size:9px}.page .feat-card{padding:20px;grid-template-columns:32px 1fr;gap:12px}.page .feat-icon{width:32px;height:32px;font-size:17px}.page .feat-title{font-size:17px}.page .software-partner{margin:0 6% 35px;padding:25px}.page .contact-card{padding:22px}.page .sub-item{flex-wrap:wrap}.page .home-footer{gap:22px}}

/* Laskentapalvelut.fi: grouped calculator directory. */
.page .calculator-group h2{font-family:'DM Sans','Segoe UI',sans-serif;font-size:12px;font-weight:600;letter-spacing:.04em;line-height:1.6;color:#285d49;background:#f2f5f0;padding:15px 21px;margin:0;border-bottom:1px solid #d2ded5}
.page .calculator-group+.calculator-group{border-top:1px solid #d2ded5}.page .calculator-group .sub-name{margin:0;font-weight:600}.page .calculator-group .sub-desc{margin:6px 0 0}.page .calculation-list .sub-item{align-items:flex-start}

.page a.qr-card{text-decoration:none}.page a.qr-card:hover{border-color:#285d49}.page a.qr-card:hover .qr-url{text-decoration:underline;text-underline-offset:4px}

/* Recipe generator illustration: preserve all four assemblies without cropping. */
.structure-figure{max-width:1240px;margin:48px auto 0;background:#f5f4ef;border:1px solid #d2ded5;border-radius:8px;overflow:hidden}.structure-figure-heading{padding:28px 32px 0}.structure-figure-heading>span{font-size:10px;letter-spacing:.14em;color:#486354}.structure-figure-heading h2{font-family:'DM Sans','Segoe UI',sans-serif;font-size:clamp(20px,2.5vw,30px);font-weight:500;line-height:1.35;letter-spacing:-.025em;color:#183f38;margin:10px 0 0}.structure-figure img{display:block;width:100%;height:auto}.structure-figure figcaption{padding:22px 32px;font-size:14px;line-height:1.75;color:#405d4e;border-top:1px solid #d2ded5}.structure-figure figcaption small{display:block;margin-top:6px;font-size:11px;color:#637669}@media(max-width:1400px){.structure-figure{margin-left:7%;margin-right:7%}}@media(max-width:720px){.structure-figure{margin:30px 6% 0}.structure-figure-heading{padding:20px 20px 0}.structure-figure figcaption{padding:18px 20px;font-size:13px}}

/* Sensorimaailma: standalone overview and real example links. */
.sensor-examples{max-width:1440px;margin:auto;padding:0 7% 55px}.sensor-examples-heading{margin-bottom:28px}.sensor-examples-heading h2{font-family:'DM Sans','Segoe UI',sans-serif;font-size:clamp(25px,3vw,38px);font-weight:500;letter-spacing:-.03em;line-height:1.2;margin-bottom:15px}.sensor-examples-heading p{max-width:720px;line-height:1.8;color:#4e6358;font-size:15px}.sensor-example-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.sensor-example-grid article{background:#fff;border:1px solid #d2ded5;border-radius:8px;padding:25px;display:flex;flex-direction:column;align-items:flex-start}.sensor-example-grid article>span{font-size:11px;color:#64796d;letter-spacing:.1em}.sensor-example-grid h3{font-size:20px;font-weight:500;line-height:1.3;margin:16px 0 12px}.sensor-example-grid p{font-size:14px;line-height:1.7;color:#4e6358;margin-bottom:12px}.sensor-example-grid .integration-link{margin-top:auto}.sensor-source{margin-top:22px}#p10 .sub-name{margin:0}#p10 .sub-desc{margin:7px 0 0}@media(max-width:1000px){.sensor-example-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.sensor-examples{padding:0 6% 35px}.sensor-example-grid{grid-template-columns:1fr}}

/* Device product photos fit the card without cropping. */
.page .feat-card>div:last-child{min-width:0}
.page .device-product-image{display:block;width:100%;max-width:320px;height:auto;max-height:260px;object-fit:contain;margin:18px auto;border-radius:8px}

.page .device-analysis{margin:22px 0}.page .device-analysis a{display:block}.page .device-analysis img{display:block;width:100%;height:auto;border:1px solid #d2ded5;border-radius:6px}.page .device-analysis figcaption{margin-top:8px;font-size:12px;line-height:1.6;color:#4e6358}

.page .device-product-image.vibration-product-image{max-width:190px;max-height:145px;margin:14px auto}

/* Hardware overview: aligned 2 x 2 cards and compact vibration media. */
#p12 .device-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:24px}
#p12 .device-grid>.feat-card{margin:0;align-items:start;min-width:0}
#p12 .device-grid>.feat-card>div:last-child{width:100%;min-width:0}
#p12 .device-media-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:16px;align-items:center;margin:12px 0}
#p12 .device-media-grid .device-product-image{max-width:150px;max-height:115px;margin:0 auto}
#p12 .device-media-grid .device-analysis{min-width:0;margin:0}
#p12 .device-media-grid .device-analysis img{height:115px;object-fit:contain;background:#fff}
#p12 .device-media-grid figcaption{font-size:11px;line-height:1.4;margin-top:5px}
#p12 .device-documents{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin-top:16px;padding-top:14px;border-top:1px solid #d2ded5}
#p12 .device-documents .integration-link{margin:0;font-size:12px;line-height:1.5}
#p12 .device-grid .device-product-image:not(.vibration-product-image){max-height:170px;margin:12px auto}
@media(max-width:850px){#p12 .device-grid{grid-template-columns:1fr}}
@media(max-width:420px){#p12 .device-grid>.feat-card{padding:16px;gap:10px}#p12 .device-media-grid{gap:8px}#p12 .device-documents{gap:10px}}

/* IFC example viewer and icon-free product descriptions. */
#p8 .ifc-preview{max-width:1440px;margin:0 auto;padding:36px 7% 0}
#p8 .ifc-preview-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}
#p8 .ifc-preview-heading h2{font-size:24px;line-height:1.3;margin:0;color:#183735}
#p8 .ifc-preview-heading .integration-link{margin:0}
#p8 .ifc-preview iframe{display:block;width:100%;height:clamp(400px,65vh,720px);border:1px solid #d2ded5;border-radius:8px;background:#fff}
#p8 .feat-card{display:block}
@media(max-width:720px){#p8 .ifc-preview{padding:28px 6% 0}#p8 .ifc-preview iframe{height:440px}}

/* IFC image carousel: keep complete screenshots visible. */
#p8 .ifc-gallery-hint{font-size:13px;color:#4e6358}
#p8 .ifc-carousel{border:1px solid #d2ded5;border-radius:8px;overflow:hidden;background:#e9ece8}
#p8 .ifc-slide{margin:0}#p8 .ifc-slide[hidden]{display:none}
#p8 .ifc-slide>a{display:block;background:#e9ece8}
#p8 .ifc-slide img{display:block;width:100%;height:clamp(300px,52vw,600px);object-fit:contain}
#p8 .ifc-slide figcaption{padding:14px 20px;font-size:14px;line-height:1.6;color:#183735;background:#fff;min-height:52px}
#p8 .ifc-carousel-controls{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;padding:12px;background:#fff;border-top:1px solid #d2ded5}
#p8 .ifc-carousel-controls button{min-width:44px;min-height:44px;padding:10px 16px;border:1px solid #b7cbbb;border-radius:6px;background:#e8ede6;color:#183f38;font:inherit;font-size:14px;cursor:pointer}
#p8 .ifc-carousel-controls button:hover{background:#d7e5d5}
#p8 .ifc-carousel-controls button:focus-visible,#p8 .ifc-slide>a:focus-visible{outline:3px solid #285d49;outline-offset:-3px}
#p8 [data-ifc-count]{min-width:50px;text-align:center;font-size:14px}
@media(max-width:600px){#p8 .ifc-slide img{height:300px}#p8 .ifc-slide figcaption{font-size:13px}}

.license-registration{margin-top:22px;padding-top:20px;border-top:1px solid #cbd9ce}.license-registration ol{padding-left:20px;margin:14px 0 0}.license-registration li{font-size:13px;line-height:1.7;margin:9px 0;color:#4e6358}

.license-terms-content{max-width:960px;margin:auto;padding:45px 7% 60px}.license-terms-content section{margin-bottom:30px}.license-terms-content h2{font-size:23px;margin-bottom:12px;color:#183735}.license-terms-content p{font-size:16px;line-height:1.85;color:#4e6358}.license-terms-content a,.license-note a{color:#285d49;text-underline-offset:4px}

#p1 .license-benefits{margin:12px 0 0;padding-left:20px;color:#4e6358;font-size:13px;line-height:1.75}#p1 .license-benefits li{margin:6px 0}

#p12 .device-video{margin:14px 0 18px;min-width:0}
#p12 .device-video video{display:block;width:100%;max-height:280px;aspect-ratio:16/9;object-fit:contain;background:#102b27;border-radius:6px}
#p12 .device-video figcaption{margin-top:6px;font-size:12px;line-height:1.5}
#p12 .device-video a{display:inline-flex;align-items:center;min-height:44px;color:#285d49;text-underline-offset:4px}

#p1 .slide-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;column-gap:36px}
#p1 .slide-hero>div:first-child{min-width:0}
#p1 .slide-hero .kpi-bar{grid-column:1/-1;justify-self:start}
#p1 .energy-certificate-image{margin:0;min-width:0;width:100%;max-width:540px;justify-self:end}
#p1 .energy-certificate-image a{display:block;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 12px 35px #0003}
#p1 .energy-certificate-image img{display:block;width:100%;height:auto;object-fit:contain}
#p1 .energy-certificate-image figcaption{font-size:12px;line-height:1.6;color:#e1ebe5;margin-top:10px}
@media(max-width:1000px){#p1 .slide-hero{grid-template-columns:minmax(0,1fr)}#p1 .energy-certificate-image{justify-self:start}}

/* Calculationtools: platform integrations and self-service licensing. */
#p3 .ct-platform-visual{max-width:1440px;margin:0 auto;padding:48px 7% 0}
#p3 .ct-platform-copy{max-width:850px;margin-bottom:24px}
#p3 .ct-platform-copy h2{font-size:clamp(24px,3vw,36px);line-height:1.2;letter-spacing:-.03em;color:#173e32;margin:0 0 14px}
#p3 .ct-platform-copy p{font-size:16px;line-height:1.8;color:#4e6358;margin:0}
/* Show the entire illustration, with no overlays hiding the software panels. */
#p3 .slide-hero{min-height:0;padding:0;gap:0;background:#102f2d}
#p3 .ct-hero-image{display:block;background:#e8ece7}
#p3 .ct-hero-image img{display:block;width:100%;height:auto;max-height:760px;object-fit:contain}
#p3 .ct-hero-image:focus-visible{outline:3px solid #bbdec9;outline-offset:-5px}
#p3 .ct-hero-copy{padding:32px 7% 38px}
#p3 .slide-hero .slide-tagline{max-width:920px}
@media(max-width:720px){
 #p3 .ct-hero-copy{padding:26px 6% 30px}
 #p3 .ct-platform-visual{padding:32px 6% 0}
}
