/* iPistis DM02 hub — scoped to .ip-dm so legacy pages stay unaffected. */
.ip-dm{--dm-blue:#0c6693;--dm-red:#ef3438;--dm-ink:#18283d;--dm-muted:#5c6b80;--dm-line:#dae6ec;--dm-pale:#f4f9fb;color:var(--dm-ink);font-family:inherit;overflow:hidden}
.ip-dm *{box-sizing:border-box}
.ip-dm a{text-decoration:none}
.ip-dm .container{max-width:1200px}
.ip-dm h1,.ip-dm h2,.ip-dm h3,.ip-dm p{margin-top:0}
.ip-dm h1,.ip-dm h2,.ip-dm h3{font-family:inherit;letter-spacing:-.035em;line-height:1.18;color:var(--dm-ink)}
.ip-dm p{line-height:1.72}
.ip-dm a:focus-visible,.ip-dm summary:focus-visible{outline:3px solid #f5a623;outline-offset:4px}
.ip-dm-hero{position:relative;isolation:isolate;background:linear-gradient(120deg,#f7fbfd 1%,#fff 49%,#eff8fc 100%);padding:29px 0 83px}
.ip-dm-hero:before{content:"";position:absolute;z-index:-1;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,#dceef7 0,rgba(232,246,251,0) 69%);right:-70px;top:26px;pointer-events:none}
.ip-dm-breadcrumb{display:flex;align-items:center;gap:10px;font-size:13px;margin-bottom:47px;color:#648096}
.ip-dm-breadcrumb a{color:#386b8a}
.ip-dm-hero__grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:58px;align-items:center}
.ip-dm-eyebrow,.ip-dm-kicker{font-size:12px;font-weight:800;letter-spacing:.125em;text-transform:uppercase;color:var(--dm-blue)}
.ip-dm-eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:24px}
.ip-dm-eyebrow__dot{width:9px;height:9px;border-radius:50%;background:var(--dm-red);box-shadow:0 0 0 5px #fce9e9}
.ip-dm h1{font-size:clamp(34px,4vw,56px);line-height:1.08;max-width:670px;margin:0 0 24px;font-weight:800}
.ip-dm h1 em{font-style:normal;color:var(--dm-blue)}
.ip-dm-hero__lead{font-size:18px;line-height:1.65;color:#344d60;max-width:595px;margin:0 0 15px}
.ip-dm-hero__support{font-size:15px;color:var(--dm-muted);margin-bottom:29px;max-width:585px}
.ip-dm-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.ip-dm-btn{min-height:48px;display:inline-flex;gap:14px;align-items:center;justify-content:center;border-radius:9px;padding:13px 21px;font-size:14px;font-weight:800;line-height:1.3;transition:background .2s,transform .2s,color .2s;max-width:100%}
.ip-dm-btn:hover{transform:translateY(-2px)}
.ip-dm-btn--primary{background:var(--dm-red);color:#fff;box-shadow:0 8px 23px rgba(239,52,56,.13)}
.ip-dm-btn--primary:hover{background:#d5242a;color:#fff}
.ip-dm-btn--outline{color:var(--dm-blue);border:1px solid #bcd6e4;background:#fff}
.ip-dm-btn--outline:hover{background:#e8f5fb;color:#074467}
.ip-dm-btn--light{background:#fff;color:#074f76}
.ip-dm-btn--light:hover{background:#eaf5fb;color:#073958}
.ip-dm-hero__proof{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:33px;font-size:12px;color:#526779;font-weight:700}
.ip-dm-hero__proof i{color:#1383aa;margin-right:5px}
.ip-dm-hero__visual{border:1px solid #d0e3ea;border-radius:24px;background:#fff;padding:30px 27px;box-shadow:0 18px 75px rgba(23,68,92,.105);position:relative}
.ip-dm-hero__visual:after{content:"";position:absolute;bottom:-17px;right:-19px;width:115px;height:115px;border-radius:0 0 35px 0;border-right:5px solid #ef3438;border-bottom:5px solid #ef3438;z-index:-1}
.ip-dm-signal{display:inline-flex;align-items:center;gap:8px;background:#edf8fc;color:#16688e;padding:8px 11px;border-radius:999px;font-size:10px;letter-spacing:.08em;font-weight:800}
.ip-dm-signal__pulse{width:7px;height:7px;border-radius:50%;background:#159c7f}
.ip-dm-visual__head{display:flex;justify-content:space-between;align-items:center;margin:25px 0 26px;gap:12px}
.ip-dm-visual__label{color:#8a9cab;font-size:11px;font-weight:800;letter-spacing:.12em}
.ip-dm-visual__head h2{font-size:23px;margin:7px 0 0}
.ip-dm-visual__star{background:#fff0ee;color:#e1403e;border-radius:14px;font-size:20px;padding:13px 16px}
.ip-dm-flow{display:flex;align-items:center;gap:6px}
.ip-dm-flow__cell{min-width:0;flex:1;padding:17px 7px 15px;background:#f4f9fc;border:1px solid #e4eef4;border-radius:13px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px}
.ip-dm-flow__cell b{font-size:12px;color:#203e56}
.ip-dm-flow__cell small{font-size:10px;color:#738899;line-height:1.4}
.ip-dm-flow__icon{font-size:19px;color:var(--dm-blue)}
.ip-dm-flow__arrow{color:#b2c8d6;font-size:19px;font-weight:900}
.ip-dm-visual__divider{height:1px;background:#e6edf2;margin:24px 0}
.ip-dm-connections{display:flex;flex-wrap:wrap;justify-content:space-between;gap:9px}
.ip-dm-connections span{font-size:11px;font-weight:700;color:#527083}
.ip-dm-connections i{color:#ef5353;margin-right:5px}
.ip-dm-visual__foot{font-size:10px;color:#8195a2;margin-top:22px}
.ip-dm-value{background:#103b57;color:#d5e6ef;padding:19px 0}
.ip-dm-value__inner{display:flex;justify-content:space-between;align-items:center;gap:14px 24px;flex-wrap:wrap}
.ip-dm-value__inner strong{font-size:15px;color:#fff}
.ip-dm-value__inner span{font-size:13px;flex:1;min-width:260px}
.ip-dm-value__inner a{font-size:12px;font-weight:800;color:#a8dcf5;white-space:nowrap}
.ip-dm-section{padding:88px 0}
.ip-dm-section--tinted{background:var(--dm-pale)}
.ip-dm-heading{max-width:750px;margin-bottom:35px}
.ip-dm-heading h2,.ip-dm-engineering h2,.ip-dm-cta h2{font-size:clamp(27px,3vw,41px);margin:13px 0 13px;font-weight:800}
.ip-dm-heading p{margin:0;color:var(--dm-muted);font-size:15px}
.ip-dm-heading--split{max-width:none;display:flex;align-items:end;justify-content:space-between;gap:25px}
.ip-dm-heading--split>div{max-width:580px}
.ip-dm-heading--split>p{max-width:385px}
.ip-dm-grid{display:grid;gap:18px}
.ip-dm-grid--four{grid-template-columns:repeat(4,minmax(0,1fr))}
.ip-dm-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}
.ip-dm-grid--service{grid-template-columns:repeat(4,minmax(0,1fr))}
.ip-dm-problem,.ip-dm-service,.ip-dm-step,.ip-dm-example{min-width:0;border:1px solid #dfebef;background:#fff;border-radius:15px;padding:24px 22px;display:flex;flex-direction:column;box-shadow:0 6px 24px rgba(22,58,87,.035)}
.ip-dm-problem h3,.ip-dm-service h3,.ip-dm-step h3,.ip-dm-example h3{font-size:18px;font-weight:800;letter-spacing:-.025em;margin:15px 0 9px}
.ip-dm-problem p,.ip-dm-service p,.ip-dm-step p,.ip-dm-example p{font-size:13px;color:var(--dm-muted);margin-bottom:18px;line-height:1.7}
.ip-dm-problem__icon,.ip-dm-service__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#eaf6fb;color:var(--dm-blue);border-radius:12px;font-size:19px}
.ip-dm-problem>a,.ip-dm-service>a{font-size:12px;font-weight:800;color:var(--dm-blue);margin-top:auto}
.ip-dm-problem>a:hover,.ip-dm-service>a:hover{text-decoration:underline}
.ip-dm-service{padding:25px 22px}
.ip-dm-service__top{display:flex;gap:13px;align-items:center;justify-content:space-between}
.ip-dm-service__category{font-size:10px;text-align:right;letter-spacing:.09em;font-weight:800;color:#8b9eac}
.ip-dm-service__tags{display:flex;gap:5px;flex-wrap:wrap;margin:-1px 0 21px}
.ip-dm-service__tags span{font-size:10px;color:#597c91;background:#eef7fb;border-radius:5px;padding:6px 8px}
.ip-dm-service>a{border-top:1px solid #edf1f4;padding-top:15px}
.ip-dm-section__note{font-size:12px;color:#79909f;margin:19px 0 0}
.ip-dm-paid-social{margin-top:21px;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:23px 27px;border-radius:14px;border:1px solid #d1e5ef;background:#fff}
.ip-dm-paid-social h3{font-size:19px;margin:7px 0 7px}
.ip-dm-paid-social p{font-size:13px;color:#657a8b;margin:0;max-width:760px}
.ip-dm-paid-social a{white-space:nowrap;color:#0c6693;font-size:13px;font-weight:800}
.ip-dm-paid-social a:hover{text-decoration:underline}
@media(max-width:750px){.ip-dm-paid-social{display:block}.ip-dm-paid-social a{display:inline-block;margin-top:14px}}

.ip-dm-step{border-top:3px solid #0c6693;background:#fff}
.ip-dm-step__number{font-size:36px;font-weight:800;color:#c6dfe9;letter-spacing:-.06em}
.ip-dm-step h3{margin-top:12px}
.ip-dm-step p{margin:0}
.ip-dm-engineering{background:#123d5a;color:#e4eff6;padding:85px 0;position:relative}
.ip-dm-engineering__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:center}
.ip-dm-engineering h2{color:#fff}
.ip-dm-engineering p{color:#bbd0df;font-size:15px;margin-bottom:27px}
.ip-dm-engineering .ip-dm-kicker{color:#82d4ed}
.ip-dm-engineering__items{display:grid;gap:14px}
.ip-dm-engineering__item{display:flex;align-items:flex-start;gap:16px;border:1px solid #355a73;border-radius:13px;padding:17px;background:rgba(255,255,255,.055)}
.ip-dm-engineering__item>span{background:#1f587b;color:#a7e0f1;border-radius:10px;display:grid;place-items:center;flex:0 0 42px;height:42px}
.ip-dm-engineering__item h3{color:#fff;font-size:16px;margin:0 0 5px}
.ip-dm-engineering__item p{font-size:12px;color:#c3d5e0;margin:0}
.ip-dm-example__type{font-size:10px;font-weight:800;letter-spacing:.1em;color:#0b749d}
.ip-dm-example h3{margin-top:13px}
.ip-dm-example p{flex:1}
.ip-dm-example__steps{border-top:1px dashed #d9e7ed;padding-top:17px;display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-size:11px;color:#326780}
.ip-dm-example__steps span:not(.ip-dm-example__arrow){padding:6px 9px;background:#eff8fb;border-radius:6px}
.ip-dm-example__arrow{font-weight:800;color:#ef3438}
.ip-dm-faq-list{max-width:865px;display:grid;gap:10px}
.ip-dm-faq{background:#fff;border:1px solid #dfebef;border-radius:12px;overflow:hidden}
.ip-dm-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;color:#1b344b;font-weight:800;font-size:15px}
.ip-dm-faq summary::-webkit-details-marker{display:none}
.ip-dm-faq summary span{font-size:23px;color:#0c6693;line-height:1}
.ip-dm-faq[open] summary span{transform:rotate(45deg)}
.ip-dm-faq p{padding:0 22px 19px;margin:0;color:#62788c;font-size:14px}
.ip-dm-cta{padding:80px 0;background:#fff}
.ip-dm-cta__box{display:grid;grid-template-columns:1fr auto;align-items:center;gap:30px;background:linear-gradient(130deg,#eaf6fc 0,#f4fbfe 60%,#fff1f1 100%);border:1px solid #daebf2;border-radius:20px;padding:47px}
.ip-dm-cta h2{max-width:740px;margin-bottom:13px}
.ip-dm-cta p{font-size:14px;color:#5e7388;max-width:670px;margin:0}
.ip-dm-cta__actions{display:flex;flex-direction:column;gap:12px;align-items:center}
.ip-dm-cta__email{font-size:12px;color:#366e91;font-weight:700}
/* Scoped styling only for the reused M04 modal when this page is open. */
body:has(.ip-dm) .ip-contact-backdrop[hidden]{display:none!important}
/* Review panel comes from shared M03 SEO component. */
@media(max-width:1199px){.ip-dm-grid--four,.ip-dm-grid--service{grid-template-columns:repeat(2,minmax(0,1fr))}.ip-dm-hero__grid{gap:32px}.ip-dm-hero__visual{padding:23px 19px}.ip-dm-engineering__grid{gap:43px}}
@media(max-width:991px){.ip-dm-hero__grid{grid-template-columns:1fr}.ip-dm-hero__visual{max-width:640px;width:100%}.ip-dm-heading--split{display:block}.ip-dm-heading--split>p{max-width:650px}.ip-dm-engineering__grid{grid-template-columns:1fr}.ip-dm-cta__box{grid-template-columns:1fr;gap:22px}.ip-dm-cta__actions{align-items:flex-start}.ip-dm-grid--three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.ip-dm-hero{padding:20px 0 55px}.ip-dm-breadcrumb{margin-bottom:30px}.ip-dm h1{font-size:36px}.ip-dm-hero__lead{font-size:16px}.ip-dm-section{padding:59px 0}.ip-dm-grid--four,.ip-dm-grid--three,.ip-dm-grid--service{grid-template-columns:1fr}.ip-dm-hero__visual{padding:20px 14px}.ip-dm-flow__cell{padding:14px 4px}.ip-dm-flow__cell b{font-size:11px}.ip-dm-flow__cell small{font-size:9px}.ip-dm-flow__arrow{font-size:14px}.ip-dm-visual__head h2{font-size:20px}.ip-dm-engineering{padding:63px 0}.ip-dm-cta{padding:53px 0}.ip-dm-cta__box{padding:27px 19px}.ip-dm-value__inner{display:block}.ip-dm-value__inner>*{display:block;margin:0 0 6px}.ip-dm-btn{width:100%}.ip-dm-actions{flex-direction:column;align-items:stretch}.ip-dm-hero__proof{gap:8px 14px}}
@media(prefers-reduced-motion:reduce){.ip-dm-btn{transition:none}.ip-dm-btn:hover{transform:none}}
