/* T&S GROUP — industry pages */
:root{--ip-navy:#0b2f5c;--ip-blue:#2d74bd;--ip-muted:#7187a0;--ip-line:#d7e0e9;--ip-soft:#f2f6fa;--ip-grid:rgba(24,72,112,.055)}
.industry-page{color:var(--ip-navy);background:#fff}
.industry-page main{background-color:#fff;background-image:linear-gradient(var(--ip-grid) 1px,transparent 1px),linear-gradient(90deg,var(--ip-grid) 1px,transparent 1px);background-size:64px 64px}
.industry-page .ip-header{background:#fff;border-bottom:1px solid var(--ip-line)}
.industry-shell{width:min(1500px,calc(100% - 96px));margin:0 auto}
.ip-breadcrumb{padding:30px 0 0;display:flex;gap:11px;align-items:center;font-size:13px;color:#74869a}
.ip-breadcrumb a{color:#74869a;text-decoration:none}.ip-breadcrumb b{font-weight:600;color:var(--ip-navy)}
.ip-hero{padding:0 0 112px;background:rgba(255,255,255,.84)}
.ip-hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.82fr);gap:88px;align-items:center;padding-top:54px}
.ip-kicker{font-size:12px;line-height:1.25;font-weight:800;letter-spacing:.14em;color:#2c72b5;text-transform:uppercase;margin-bottom:21px}
.ip-hero h1{font-size:70px;line-height:1.08;letter-spacing:-.035em;margin:0 0 28px;font-weight:700;color:#0c315f;overflow-wrap:normal;word-break:normal;hyphens:none}
.ip-hero-copy>p{font-size:19px;line-height:1.68;color:#657d97;max-width:720px;margin:0}
.ip-hero-media{width:100%;max-width:660px;height:460px;justify-self:end;overflow:hidden;background:#e9eff4}
.ip-hero-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
.ip-hero-media:hover img{transform:scale(1.025)}
.ip-dark-hero{background:#071a31;color:white;position:relative;overflow:hidden}
.ip-dark-hero:before{content:none;display:none}
.ip-dark-hero .industry-shell{position:relative;z-index:2}.ip-dark-hero .ip-breadcrumb a,.ip-dark-hero .ip-breadcrumb,.ip-dark-hero .ip-breadcrumb b{color:rgba(255,255,255,.72)}
.ip-dark-hero .ip-hero-grid{position:relative}.ip-dark-hero .ip-hero-copy{z-index:2}.ip-dark-hero .ip-hero-media{position:relative;inset:auto;height:460px;z-index:1}.ip-dark-hero .ip-hero-media:after{content:none;display:none}
.ip-dark-hero .ip-hero-media img{filter:none}
.ip-dark-hero .ip-hero-copy{padding:0;max-width:720px}.ip-dark-hero h1{color:white}.ip-dark-hero .ip-hero-copy>p{color:rgba(255,255,255,.76)}
.ip-section{padding:86px 0;border-top:1px solid var(--ip-line);background:rgba(255,255,255,.9)}
.ip-section h2{font-size:42px;line-height:1.08;letter-spacing:-.025em;margin:0 0 18px;color:#0b315f}
.ip-section-lead{font-size:17px;line-height:1.65;color:#607892;max-width:1120px;margin:0 0 42px}
.ip-grid{display:grid;gap:18px}.ip-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ip-info-card{background:rgba(245,248,251,.9);border:1px solid #d4dfea;padding:34px 34px 38px;min-height:245px;position:relative;overflow:hidden;transition:transform .45s cubic-bezier(.16,1,.3,1),background .45s ease,border-color .45s ease}
.ip-info-card:after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:#3179c0;transition:width .55s cubic-bezier(.16,1,.3,1)}
.ip-info-card:hover{transform:translateY(-4px);background:#fff;border-color:#b8cce0}.ip-info-card:hover:after{width:100%}
.ip-num{display:block;font-size:11px;line-height:1;font-weight:800;color:#3278bb;margin-bottom:23px;letter-spacing:.06em}
.ip-info-card h3{font-size:19px;line-height:1.25;margin:0 0 20px;color:#123763;letter-spacing:-.012em}
.ip-info-card p{font-size:14px;line-height:1.6;color:#647b93;margin:0}
.ip-role{padding-top:72px}.ip-role .ip-section-lead{margin-bottom:34px}
.ip-spec-grid{display:grid;gap:20px;margin-top:36px}.ip-spec-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ip-spec-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
.ip-spec-card{border:1px solid #b7cadd;background:#fff;min-width:0;overflow:hidden;transition:transform .5s cubic-bezier(.16,1,.3,1),border-color .4s ease}
.ip-spec-card:hover{transform:translateY(-5px);border-color:#6f9dca}
.ip-spec-media{height:305px;overflow:hidden;background:#edf2f6}.ip-spec-grid-4 .ip-spec-media{height:320px}
.ip-spec-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .85s cubic-bezier(.16,1,.3,1),filter .5s ease}.ip-spec-card:hover .ip-spec-media img{transform:scale(1.035);filter:saturate(1.04)}
.ip-spec-copy{padding:27px 28px 32px;min-height:280px}.ip-spec-copy .ip-num{margin-bottom:15px}.ip-spec-copy h3{font-size:21px;line-height:1.22;margin:0 0 18px;color:#0b315f}.ip-spec-copy p{font-size:14px;line-height:1.63;color:#667d95;margin:0}
.ip-context{background:rgba(255,255,255,.94)}.ip-context .ip-info-card,.ip-relevant .ip-info-card{min-height:260px}
.ip-relevant-grid{row-gap:18px}
.ip-diagnostics{padding:62px 0;background:#edf3f8;border-top:1px solid #dce5ee}
.ip-diagnostic-box{display:grid;grid-template-columns:minmax(360px,.46fr) minmax(0,.54fr);background:#fff;border:1px solid #c6d5e4;min-height:600px}
.ip-diagnostic-photo{width:100%;height:100%;object-fit:cover;min-height:600px}
.ip-diagnostic-form{padding:48px 52px;display:flex;flex-direction:column}.ip-diagnostic-form h2{font-size:38px;line-height:1.04;margin:0 0 16px;color:#0b315f}.ip-diagnostic-form>p{font-size:14px;line-height:1.55;color:#657c94;margin:0 0 20px}
.ip-diagnostic-form label{font-size:9px;font-weight:800;letter-spacing:.09em;color:#264b72;margin-bottom:12px}.ip-diagnostic-form input,.ip-diagnostic-form select{width:100%;height:42px;border:0;border-bottom:1px solid #b8c8d8;background:transparent;padding:7px 2px;font:14px Arial,sans-serif;color:#173a61;outline:none}.ip-diagnostic-form input:focus,.ip-diagnostic-form select:focus{border-color:#2b74bb}
.ip-diagnostic-form .ip-consent{display:flex;gap:10px;align-items:flex-start;font-size:10px;font-weight:400;letter-spacing:0;line-height:1.45;color:#718398}.ip-consent input{width:14px;height:14px;flex:0 0 14px;margin-top:2px}
.ip-diagnostic-form .btn{margin-top:4px;height:48px}.ip-diagnostic-form .form-status{margin-top:12px;font-size:12px;color:#2f6ea9}
.ip-footer{margin-top:0}
/* entrance animation */
.ip-reveal{opacity:0;transform:translateY(28px);transition:opacity .72s ease var(--d,0ms),transform .85s cubic-bezier(.16,1,.3,1) var(--d,0ms)}
.ip-reveal.ip-in{opacity:1;transform:none}.ip-hero-media.ip-reveal{clip-path:inset(0 0 100% 0);transform:none;transition:clip-path 1s cubic-bezier(.16,1,.3,1) var(--d,0ms),opacity .45s ease var(--d,0ms)}.ip-hero-media.ip-reveal.ip-in{clip-path:inset(0);opacity:1}
.cms-editor-page .ip-reveal{opacity:1!important;transform:none!important;clip-path:none!important}
/* subtle section motion underline */
.ip-section .ip-kicker:after{content:"";display:inline-block;width:46px;height:1px;background:#82a8cc;margin-left:15px;vertical-align:middle;transform:scaleX(0);transform-origin:left;transition:transform .8s cubic-bezier(.16,1,.3,1)}.ip-section:has(.ip-in) .ip-kicker:after{transform:scaleX(1)}
@media (min-width:901px) and (max-width:1020px){.industry-shell{width:min(100% - 56px,1500px)}.ip-hero-grid{gap:48px;grid-template-columns:1fr 1fr}.ip-hero-media{height:500px}.ip-spec-media{height:260px}.ip-spec-grid-4 .ip-spec-media{height:275px}}
@media(max-width:900px){.industry-shell{width:min(100% - 32px,1500px)}.ip-hero{padding-bottom:58px}.ip-hero-grid{grid-template-columns:1fr;gap:34px;padding-top:34px}.ip-hero h1{font-size:48px}.ip-hero-media{height:430px}.ip-dark-hero .ip-hero-media{position:relative;inset:auto;height:430px;margin-top:-20px}.ip-dark-hero:before{background:linear-gradient(180deg,#071a31 0 50%,rgba(7,26,49,.45))}.ip-grid-3{grid-template-columns:1fr 1fr}.ip-spec-grid-3,.ip-spec-grid-4{grid-template-columns:1fr 1fr}.ip-diagnostic-box{grid-template-columns:1fr}.ip-diagnostic-photo{min-height:380px;height:380px}}
@media(max-width:640px){.industry-shell{width:calc(100% - 24px)}.ip-breadcrumb{padding-top:18px;font-size:11px;flex-wrap:wrap}.ip-hero-grid{padding-top:28px}.ip-hero h1{font-size:38px}.ip-hero-copy>p{font-size:16px}.ip-hero-media{height:330px}.ip-section{padding:58px 0}.ip-section h2{font-size:34px}.ip-grid-3,.ip-spec-grid-3,.ip-spec-grid-4{grid-template-columns:1fr}.ip-info-card{min-height:0}.ip-spec-media,.ip-spec-grid-4 .ip-spec-media{height:260px}.ip-spec-copy{min-height:0}.ip-diagnostic-form{padding:34px 24px}.ip-diagnostic-photo{height:300px;min-height:300px}}

/* V40 — hero media must be immediately visible in public and editor. */
.ip-hero .ip-hero-copy.ip-reveal,.ip-hero .ip-hero-media.ip-reveal{opacity:1!important;transform:none!important;}
.ip-hero .ip-hero-media.ip-reveal{clip-path:none!important;visibility:visible!important;}
.ip-hero-media img{opacity:1!important;visibility:visible!important;}
.cms-crop-host{overflow:hidden!important;}


/* V42 — contenteditable must not introduce a different line-breaking mode after CMS boot. */
.cms-editor-page [data-cms-id][contenteditable="true"]{overflow-wrap:normal!important;word-break:normal!important;hyphens:none!important;}

/* V44 — the industry hero image must stay visually identical on Full HD and 2K.
   Fix the right media column to the same desktop size so the photo does not
   grow/shrink between 1920 and 2K layouts. Full HD keeps slightly smaller text,
   but the image frame itself is now the same. */
@media (min-width:1021px){
  .ip-hero-grid{
    grid-template-columns:minmax(0,1fr) 580px!important;
    gap:72px!important;
  }
  .ip-hero-media,.ip-dark-hero .ip-hero-media{
    width:580px!important;
    max-width:580px!important;
    height:430px!important;
    justify-self:end!important;
  }
}

@media (min-width:1021px) and (max-width:1999px){
  .ip-hero-grid{
    grid-template-columns:minmax(0,1fr) 580px!important;
    gap:64px!important;
    padding-top:48px!important;
  }
  .ip-hero h1{font-size:60px!important;line-height:1.08!important;margin-bottom:24px!important;max-width:760px!important;}
  .ip-hero-copy>p{font-size:16.5px!important;line-height:1.65!important;max-width:650px!important;}
  .ip-hero-media,.ip-dark-hero .ip-hero-media{width:580px!important;max-width:580px!important;height:430px!important;}
  .ip-hero{padding-bottom:96px!important;}
}

/* V46 — Full HD is no longer resized element-by-element.
   At 1920px the whole page is scaled once by site-chrome.css, so the
   internal 2K geometry must stay exactly the same before that scale. */
@media (min-width:1600px) and (max-width:1999px){
  .ip-hero-grid{grid-template-columns:minmax(0,1fr) 580px!important;gap:72px!important;padding-top:54px!important}
  .ip-hero h1{font-size:70px!important;line-height:1.08!important;margin-bottom:28px!important;max-width:none!important}
  .ip-hero-copy>p{font-size:19px!important;line-height:1.68!important;max-width:720px!important}
  .ip-hero-media,.ip-dark-hero .ip-hero-media{width:580px!important;max-width:580px!important;height:430px!important}
  .ip-hero{padding-bottom:112px!important}
}


/* V47 — same hero geometry on Full HD and 2K before whole-page scaling. */
@media (min-width:1600px) and (max-width:1999px){
  .ip-hero-grid{grid-template-columns:minmax(0,1fr) 580px!important;gap:72px!important;padding-top:54px!important}
  .ip-hero h1{font-size:70px!important;line-height:1.08!important;letter-spacing:-.035em!important;margin:0 0 28px!important;max-width:none!important}
  .ip-hero-copy>p{font-size:19px!important;line-height:1.68!important;max-width:720px!important}
  .ip-hero-media,.ip-dark-hero .ip-hero-media{width:580px!important;max-width:580px!important;height:430px!important}
  .ip-hero{padding-bottom:112px!important}
}

/* v2-4-1 image/frame consistency */
.ip-hero-media,.ip-spec-media{background:#e8eef3}.ip-hero-media img,.ip-spec-media img{object-position:center center}


/* v2-4-2 — no artificial padded hero; bounded natural landscape image. */
@media (min-width:1021px){
  .ip-hero-grid{grid-template-columns:minmax(0,1fr) minmax(380px,620px)!important;gap:64px!important;align-items:center!important}
  .ip-hero-media,.ip-dark-hero .ip-hero-media{width:100%!important;max-width:620px!important;height:auto!important;aspect-ratio:auto!important;justify-self:end!important;overflow:hidden!important}
  .ip-hero-media img,.ip-dark-hero .ip-hero-media img{width:100%!important;height:auto!important;aspect-ratio:auto!important;object-fit:contain!important;object-position:center!important;display:block!important}
}
@media (min-width:1021px) and (max-width:1599px){
  .ip-hero-grid{grid-template-columns:minmax(0,1fr) 470px!important;gap:48px!important}.ip-hero-media,.ip-dark-hero .ip-hero-media{max-width:470px!important}
}
@media(max-width:1020px){
  .ip-hero-media,.ip-dark-hero .ip-hero-media{width:100%!important;max-width:760px!important;height:auto!important;aspect-ratio:auto!important;justify-self:start!important;margin-top:0!important}
  .ip-hero-media img,.ip-dark-hero .ip-hero-media img{width:100%!important;height:auto!important;aspect-ratio:auto!important;object-fit:contain!important}
}
@media(max-width:640px){.ip-hero-media,.ip-dark-hero .ip-hero-media{max-width:none!important}}

/* v2-5-7 — custom industry context */
.ts-context-custom[hidden]{display:none!important}.ts-context-custom{margin-top:8px!important}
