.solution-detail-page, .solution-contact--detail { --solution-navy:#063665; --solution-blue:#007fc4; --solution-ink:#172f47; --solution-muted:#50677d; --solution-pale:#f1f7fb; color:var(--solution-ink); background:#fff; font-family:inherit; }
.solution-detail-page { overflow:clip; }
.solution-detail-page .container, .solution-contact--detail > .container { width:100%; max-width:1132px; margin-inline:auto; padding-inline:24px; }
.solution-detail-page h1,.solution-detail-page h2,.solution-detail-page h3,.solution-contact--detail h2 { font-family:inherit; text-wrap:balance; }
.solution-detail-page ::selection,.solution-contact--detail ::selection { background:#a9def4; color:#03284f; }
.solution-detail-section { padding-block:88px; position:relative; isolation:isolate; }
.solution-detail-background { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.solution-detail-heading { text-align:center; margin:0 auto 44px; max-width:780px; }
.solution-detail-heading h2 { color:#0079ad; font-size:22px; font-weight:700; line-height:1.2; margin:0 auto 14px; max-width:650px; }
.solution-detail-heading p { font-size:15px; line-height:1.6; margin:0 auto 8px; color:#43556b; }
.solution-detail-heading__sub-description { font-size:12px !important; }
.solution-detail-hero { position:relative; isolation:isolate; min-height:670px; background:#edf7fc; color:#0077a9; }
.solution-detail-hero__image { position:absolute; inset:0; height:100%; width:100%; object-fit:cover; z-index:-2; }
.solution-detail-hero__inner { display:flex; align-items:center; min-height:670px; padding-block:70px; }
.solution-detail-hero__content { max-width:540px; }
.solution-detail-hero h1 { font-size:26px; line-height:1.15; font-weight:800; letter-spacing:-.025em; margin:0 0 24px; color:#0077a9; max-width:12ch; text-transform:uppercase; }
.solution-detail-hero p { font-size:15px; line-height:1.6; font-weight:400; margin:0 0 30px; max-width:440px; }
.solution-detail-hero__actions,.solution-detail-documents__actions { display:flex; gap:18px; flex-wrap:wrap; align-items:center; }
.solution-detail-button { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:48px; padding:12px 24px; border:0; border-radius:4px; font-size:14px; font-weight:700; line-height:1.4; cursor:pointer; text-decoration:none; transition:background-color .2s ease-out; }
.solution-detail-button--primary { background:#df132c; color:#fff; }
.solution-detail-button--secondary { background:#007cae; color:#fff; }
.solution-detail-button--outline { background:white; color:#006d9a; border:1px solid #007cae; }
.solution-detail-button:hover { background:#063665; color:#fff; }
.solution-detail-button:disabled { opacity:.6; cursor:default; }
.solution-detail-hero__pending { font-size:13px; padding:10px 0; color:#355c76; }
.solution-detail-problems__list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.solution-detail-problems__list li { display:flex; gap:20px; align-items:flex-start; padding:28px; background:#fff; box-shadow:0 4px 18px #16395117; border-radius:8px; min-height:190px; }
.solution-detail-problems__body { flex:1; min-width:0; }
.solution-detail-problems__body h3 { font-size:18px; font-weight:700; line-height:1.4; text-transform:uppercase; color:#263a49; margin:0 0 14px; }
.solution-detail-problems__body p { font-size:15px; line-height:1.6; margin:0; }
.solution-detail-problems__icon { width:52px; height:52px; flex:0 0 52px; object-fit:contain; }
.solution-detail-problems__body h3::after { content:""; display:block; width:28px; height:3px; background:#ff435b; margin-top:9px; }
.solution-detail-system { min-height:690px; background:#e8f5fc; }
.solution-detail-system::before,.solution-detail-documents::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#f3faffdc, #f3faff35); z-index:-1; }
.solution-detail-system .solution-detail-heading { text-align:left; margin-left:0; max-width:660px; }
.solution-detail-system .solution-detail-heading h2 { margin-left:0; }
.solution-detail-system .solution-detail-heading::before { content:""; display:block; width:120px; height:4px; background:#d92435; margin-bottom:22px; }
.solution-detail-system__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.solution-detail-system__item { background:#fff; border-radius:6px; box-shadow:0 5px 16px #23475f1c; padding:22px; display:flex; flex-direction:column; align-items:flex-start; min-height:315px; }
.solution-detail-system__item h3 { font-size:18px; font-weight:700; line-height:1.4; text-transform:uppercase; margin:12px 0; }
.solution-detail-system__item p { font-size:15px; line-height:1.6; margin:0 0 22px; }
.solution-detail-system__image { width:100%; height:105px; object-fit:contain; margin-bottom:12px; }
.solution-detail-line-icon { width:30px; height:30px; fill:none; stroke:#e33447; stroke-width:2; stroke-linejoin:round; }
.solution-detail-text-link { display:inline-flex; align-items:center; gap:12px; font-size:12px; line-height:1.5; font-weight:700; color:#006e9e; text-underline-offset:4px; }
.solution-detail-system__item .solution-detail-text-link { margin-top:auto; border:1px solid #92c5d9; padding:9px 16px; }
.solution-detail-configuration__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.solution-detail-equipment { box-shadow:0 4px 18px #16395117; border-radius:6px; padding:24px; display:flex; flex-direction:column; min-height:255px; align-items:flex-start; }
.solution-detail-equipment__group { font-weight:700; text-transform:uppercase; color:#00739e; font-size:12px; margin:0 0 12px; }
.solution-detail-equipment__image { height:100px; width:100%; object-fit:contain; margin-bottom:14px; }
.solution-detail-equipment h3 { font-size:18px; font-weight:700; line-height:1.4; margin:0 0 14px; }
.solution-detail-equipment p:not(.solution-detail-equipment__group) { font-size:15px; line-height:1.6; }
.solution-detail-equipment .solution-detail-text-link { margin-top:auto; }
.solution-detail-configuration__content { margin-top:40px; font-size:15px; line-height:1.8; }
.solution-detail-configuration figure { margin:30px auto; text-align:center; }
.solution-detail-capacity { text-align:center; background:#007dac; color:#fff; padding-block:76px; }
.solution-detail-capacity::before { content:""; position:absolute; inset:0; background:#007db9c9; z-index:-1; }
.solution-detail-capacity h2 { color:#fff; font-size:22px; margin:0 0 28px; }
.solution-detail-capacity > .container > p { max-width:800px; margin:0 auto 36px; font-size:15px; line-height:1.7; }
.solution-detail-capacity__benefits { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px; font-size:15px; font-weight:600; line-height:1.6; }
.solution-detail-stats { display:flex; gap:30px; justify-content:space-around; flex-wrap:wrap; }
.solution-detail-stats > div { display:flex; flex-direction:column-reverse; gap:10px; }
.solution-detail-stats dd { font-size:40px; font-weight:750; margin:0; font-variant-numeric:tabular-nums; }
.solution-detail-stats dt { font-size:14px; }
.solution-detail-projects__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.solution-detail-project-card { box-shadow:0 4px 18px #16395117; border-radius:6px; overflow:hidden; }
.solution-detail-project-card__image { display:block; aspect-ratio:1 / 1.06; background:#edf4f8; }
.solution-detail-project-card__image img { width:100%; height:100%; object-fit:cover; }
.solution-detail-project-card__body { padding:20px 22px; }
.solution-detail-project-card h3 { font-size:18px; font-weight:700; text-transform:uppercase; line-height:1.45; margin:0 0 10px; }
.solution-detail-project-card h3 a { color:#213a49; }
.solution-detail-project-card p { font-size:15px; line-height:1.6; margin-bottom:16px; }
.solution-detail-section__action { text-align:center; margin-top:44px; }
.solution-detail-section__action a { border:1px solid #a1c9da; padding:10px 22px; }
.solution-detail-documents { background:#eef5ff; min-height:610px; display:flex; align-items:center; }
.solution-detail-documents__content { max-width:540px; }
.solution-detail-documents .solution-detail-heading { text-align:left; margin-bottom:25px; }
.solution-detail-documents .solution-detail-heading h2 { margin-left:0; }
.solution-detail-documents__content > p { font-size:15px; line-height:1.6; margin-bottom:30px; }
.solution-detail-partners { padding-block:30px; background:#eff7fb; }
.solution-detail-partners .container { display:flex; flex-wrap:wrap; gap:26px; justify-content:center; align-items:center; }
.solution-detail-partners a { width:130px; display:flex; align-items:center; justify-content:center; }
.solution-detail-partners img { width:100%; height:52px; object-fit:contain; }
.solution-contact--archive .solution-contact__consult { display:contents; }
.solution-contact--detail { position:relative; isolation:isolate; padding-block:90px; }
.solution-contact--detail::before { display:none; }
.solution-contact--detail .solution-contact__panel { padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; background:transparent; overflow:visible; }
.solution-contact--detail .solution-contact__faq,.solution-contact--detail .solution-contact__consult { padding:38px; background:#ffffffeb; min-width:0; }
.solution-contact--detail .solution-contact__intro h2,.solution-detail-faq h2 { color:#0075a7; font-size:22px; line-height:1.2; margin:0 0 16px; max-width:none; }
.solution-contact--detail .solution-contact__intro h2::after { display:none; }
.solution-contact--detail .solution-contact__intro p,.solution-detail-faq > p { font-size:15px; line-height:1.65; color:#43556b; max-width:none; margin:0 0 22px; }
.solution-contact--detail .solution-contact__benefits { display:none; }
.solution-contact--detail .solution-contact__form { grid-template-areas:"name company" "phone email" "question question" "submit submit" "privacy privacy"; gap:14px; }
.solution-contact--detail .solution-contact__submit button { background:#df132c; border-radius:4px; }
.solution-detail-faq__item { border-bottom:1px solid #d7e2e7; }
.solution-detail-faq__item h3 { margin:0; }
.solution-detail-faq__item button { width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; text-align:left; border:0; background:transparent; color:#243f52; padding:18px 0; cursor:pointer; font-size:14px; font-weight:600; line-height:1.5; }
.solution-detail-faq__toggle { position:relative; width:16px; height:16px; flex:0 0 16px; }
.solution-detail-faq__toggle::before,.solution-detail-faq__toggle::after { content:""; position:absolute; background:#007daf; }
.solution-detail-faq__toggle::before { width:14px; height:2px; top:7px; left:1px; }
.solution-detail-faq__toggle::after { width:2px; height:14px; top:1px; left:7px; }
.solution-detail-faq__item button[aria-expanded="true"] .solution-detail-faq__toggle::after { display:none; }
.solution-detail-faq__answer p { color:#43556b; font-size:15px; line-height:1.6; padding-bottom:16px; margin:0; }
.solution-detail-faq__answer[hidden] { display:none; }
.solution-contact--detail :where(input,textarea,button) { caret-color:#007fc4; }
.solution-contact--detail :where(a,button,input,textarea):focus-visible { outline:3px solid #007fc4; outline-offset:4px; }
.solution-portfolio-modal[hidden] { display: none; }
.solution-portfolio-modal { align-items: center; display: flex; inset: 0; justify-content: center; padding: 24px; position: fixed; z-index: 10020; }
.solution-portfolio-modal__backdrop { background: rgba(1, 18, 38, .78); inset: 0; position: absolute; }
.solution-portfolio-modal__dialog { background: #fff; border-radius: 14px; box-shadow: 0 28px 70px rgba(0, 17, 36, .38); max-height: calc(100vh - 48px); max-width: 680px; overflow-y: auto; padding: clamp(28px, 4vw, 48px); position: relative; width: 100%; z-index: 1; }
.solution-portfolio-modal__dialog h2 { color: var(--solution-navy); font-family: inherit; font-size: 30px; margin: 0 44px 10px 0; }
.solution-portfolio-modal__dialog > p { color: var(--solution-muted); line-height: 1.6; margin: 0 0 26px; }
.solution-portfolio-modal__close { background: transparent; border: 0; color: var(--solution-navy); cursor: pointer; font-size: 34px; height: 44px; line-height: 1; position: absolute; right: 12px; top: 10px; width: 44px; }
.solution-download-files { display: grid; gap: 8px; margin-bottom: 22px; }
.solution-download-files label { align-items: center; background: var(--solution-pale); border-radius: 8px; cursor: pointer; display: flex; gap: 10px; margin: 0; padding: 12px; }
.solution-download-form { display: grid; gap: 15px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.solution-download-form label { color: var(--solution-ink); display: grid; font-size: 13px; font-weight: 650; gap: 6px; margin: 0; }
.solution-download-form input { border: 1px solid #aebfcd; border-radius: 7px; color: var(--solution-ink); min-height: 46px; padding: 10px 12px; width: 100%; }
.solution-download-form .solution-detail-button,
.solution-download-message { grid-column: 1 / -1; }
.solution-download-message { font-size: 14px; font-weight: 600; min-height: 20px; }
.solution-download-message.is-error { color: #b51f2c; }
.solution-download-message.is-success { color: #147044; }
.solution-portfolio-is-open { overflow: hidden; }

.solution-detail-page :where(a, button, input, textarea, select):focus-visible,
.solution-portfolio-modal :where(button, input):focus-visible {
	outline: 3px solid #f0b323;
	outline-offset: 3px;
}

@media(max-width:1000px) {
 .solution-detail-system__grid,.solution-detail-configuration__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .solution-detail-hero h1 { font-size:26px; }
 .solution-detail-hero,.solution-detail-hero__inner { min-height:580px; }
 .solution-contact--detail .solution-contact__faq,.solution-contact--detail .solution-contact__consult { padding:26px; }
}
@media(max-width:700px) {
 .solution-detail-section { padding-block:56px; }
 .solution-detail-heading h2 { font-size:22px; }
 .solution-detail-heading { margin-bottom:30px; }
 .solution-detail-hero,.solution-detail-hero__inner { min-height:550px; }
 .solution-detail-hero::before { content:""; position:absolute; inset:0; background:#edf7fce6; z-index:-1; }
 .solution-detail-hero__image { object-position:65% center; }
 .solution-detail-hero h1 { font-size:26px; }
 .solution-detail-hero p { font-size:15px; }
 .solution-detail-problems__list,.solution-detail-projects__grid { grid-template-columns:1fr; }
 .solution-detail-problems__list li { padding:22px; gap:18px; min-height:0; }
 .solution-detail-system__grid { grid-template-columns:1fr; }
 .solution-detail-system__item { min-height:0; }
 .solution-detail-configuration__grid { gap:12px; }
 .solution-detail-equipment { padding:18px; min-height:230px; }
 .solution-detail-equipment__image { height:80px; }
 .solution-detail-project-card__image { aspect-ratio:4 / 3; }
 .solution-detail-capacity__benefits { grid-template-columns:1fr; gap:22px; }
 .solution-detail-documents { min-height:480px; }
 .solution-detail-documents::before { background:#f3faffeb; }
 .solution-detail-partners a { width:90px; }
 .solution-contact--detail { padding-block:48px; }
 .solution-contact--detail .solution-contact__panel { grid-template-columns:1fr; }
 .solution-contact--detail .solution-contact__faq,.solution-contact--detail .solution-contact__consult { padding:24px; }
 .solution-contact--detail .solution-contact__form { grid-template-columns:1fr; grid-template-areas:"name" "company" "phone" "email" "question" "submit" "privacy"; }
 .solution-download-form { grid-template-columns:1fr; }
 .solution-portfolio-modal { padding:14px; }
 .solution-portfolio-modal__dialog { padding:28px 22px; }
}
@media(prefers-reduced-motion:reduce) { .solution-detail-page *, .solution-contact--detail * { scroll-behavior:auto !important; transition:none !important; } }
.solution-contact--detail .solution-contact__panel > :only-child { grid-column:1 / -1; max-width:700px; width:100%; margin-inline:auto; }
.solution-contact--archive .solution-contact__consult { display:contents; }
/* Keep the supplied photography visible while protecting the text on all five heroes. */
.solution-detail-hero::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#edf7fcf5 0%,#edf7fce8 32%,#edf7fc66 52%,transparent 72%); z-index:-1; }
.solution-detail-hero__pending { flex-basis:100%; padding:0; }
@media(max-width:700px) { .solution-detail-hero::before { background:#edf7fce6; } }

/* Typography follows the shared Inter / 15px site styles. */
.solution-detail-page, .solution-contact--detail { font-size:15px; line-height:1.6; }
.solution-detail-hero h1 { font-weight:700; line-height:1.25; letter-spacing:normal; max-width:17ch; }
.solution-detail-hero p { font-family:inherit; }
.solution-detail-page h3 { font-weight:700; }
.solution-contact--detail .solution-contact__field input,
.solution-contact--detail .solution-contact__field textarea,
.solution-contact--detail .solution-contact__field select { font-family:inherit; font-size:15px; }
.solution-detail-stats { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:28px; margin:40px 0 0; }
.solution-detail-stats dd { font-size:40px; font-weight:700; line-height:1.2; }
.solution-detail-stats dt { font-size:15px; line-height:1.6; }
@media(max-width:700px) { .solution-detail-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 20px; } .solution-detail-stats > div:last-child { grid-column:1 / -1; } }
.solution-detail-page h2, .solution-contact--detail h2 { font-weight:700; }


/* Two-state equipment cards: icon and title, then image and supporting copy. */
.solution-detail-equipment { position:relative; isolation:isolate; overflow:hidden; border:1px solid transparent; background:#fff; min-height:280px; transition:border-color .35s ease,box-shadow .35s ease; }
.solution-detail-equipment > :not(.solution-detail-equipment__background) { position:relative; z-index:1; }
.solution-detail-equipment__background { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transform:scale(1.025); z-index:-2; transition:opacity .45s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1); }
.solution-detail-equipment::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,#00648cbb,#003d60df); opacity:0; z-index:-1; transition:opacity .45s cubic-bezier(.22,1,.36,1); }
.solution-detail-equipment__icon { width:30px; height:30px; object-fit:contain; color:#ff435b; margin-bottom:14px; transition:color .3s ease,filter .3s ease; }
.solution-detail-equipment__description { opacity:0; transform:translateY(6px); pointer-events:none; transition:opacity .3s ease,transform .4s cubic-bezier(.22,1,.36,1); }
.solution-detail-equipment :is(h3,p,a) { transition:color .3s ease; }
.solution-detail-equipment:is(:hover,:focus-visible,:focus-within) { border-color:#0087b5; box-shadow:0 5px 22px #007fa52e; outline:2px solid transparent; }
.solution-detail-equipment:is(:hover,:focus-visible,:focus-within) .solution-detail-equipment__background { opacity:1; transform:scale(1); }
.solution-detail-equipment:is(:hover,:focus-visible,:focus-within)::after { opacity:1; }
.solution-detail-equipment:is(:hover,:focus-visible,:focus-within) :is(h3,p,a,svg) { color:#fff; }
.solution-detail-equipment:is(:hover,:focus-visible,:focus-within) img.solution-detail-equipment__icon { filter:brightness(0) invert(1); }
.solution-detail-equipment:is(:hover,:focus-visible,:focus-within) .solution-detail-equipment__description { opacity:1; transform:translateY(0); pointer-events:auto; transition-delay:.06s; }
@media (prefers-reduced-motion:reduce) { .solution-detail-equipment,.solution-detail-equipment::after,.solution-detail-equipment__background,.solution-detail-equipment > * { transition:none; transform:none; } }

/* PSD section hierarchy and project/document presentation. */
.solution-detail-hero h1 { font-size:56px; line-height:1.12; max-width:10ch; }
.solution-detail-heading__line { display:block; }
.solution-detail-system .solution-detail-heading h2 { font-size:32px; line-height:1.25; max-width:620px; }
.solution-detail-line-icon { width:32px; height:32px; object-fit:contain; }
.solution-detail-project-card { display:flex; flex-direction:column; }
.solution-detail-project-card__image { position:relative; }
.solution-detail-project-card__tag { position:absolute; top:14px; left:14px; background:#0079a9; color:#fff; border-radius:3px; padding:5px 10px; font-size:12px; }
.solution-detail-project-card__body { display:flex; flex:1; flex-direction:column; }
.solution-detail-project-card__body .solution-detail-text-link { margin-top:auto; padding-top:16px; }
.solution-detail-documents__benefits { list-style:none; padding:0; margin:24px 0 32px; }
.solution-detail-documents__benefits li { position:relative; padding-left:24px; margin:10px 0; }
.solution-detail-documents__benefits li::before { content:"✓"; position:absolute; left:0; top:3px; width:16px; height:16px; border-radius:50%; background:#ff435b; color:#fff; text-align:center; font-size:11px; line-height:16px; }
.solution-detail-documents .solution-detail-background { opacity:1; }
.solution-detail-documents__content { max-width:560px; }
@media(max-width:700px){ .solution-detail-hero h1 { font-size:36px; } .solution-detail-system .solution-detail-heading h2 { font-size:26px; } }

.solution-detail-documents__actions { flex-wrap:nowrap; gap:16px; }
.solution-detail-documents__actions .solution-detail-button { width:calc(50% - 8px); min-width:0; font-size:12px; line-height:1.4; text-align:left; justify-content:space-between; padding:12px 16px; }
@media(max-width:700px){ .solution-detail-documents__actions { flex-wrap:wrap; } .solution-detail-documents__actions .solution-detail-button { width:100%; } }

/* Shared section-title scale across solution content, FAQ and consultation. */
.solution-detail-page h2, .solution-contact--detail h2 { font-size:32px; font-weight:700; line-height:1.25; }
@media(max-width:700px) { .solution-detail-page h2, .solution-contact--detail h2 { font-size:26px; } }
.solution-contact--detail .solution-contact__intro h2 { font-size:32px; line-height:1.25; }
@media(max-width:700px) { .solution-contact--detail .solution-contact__intro h2 { font-size:26px; } }

/* Match the solution listing's title and body scale. */
.solution-detail-page h2, .solution-detail-system .solution-detail-heading h2, .solution-contact--detail h2, .solution-contact--detail .solution-contact__intro h2 { font-size:clamp(30px,3vw,42px); line-height:1.25; }
.solution-detail-page :is(p,li), .solution-contact--detail .solution-contact__intro p, .solution-detail-heading p, .solution-detail-problems__body p, .solution-detail-system__item p, .solution-detail-equipment p:not(.solution-detail-equipment__group), .solution-detail-project-card p, .solution-detail-documents__content > p { font-size:17px; line-height:1.6; }
.solution-detail-hero p { font-size:clamp(17px,1.5vw,21px); }
.solution-detail-equipment__group { font-size:12px !important; }
@media(max-width:700px){ .solution-detail-page h2, .solution-detail-system .solution-detail-heading h2, .solution-contact--detail h2, .solution-contact--detail .solution-contact__intro h2 { font-size:clamp(28px,8vw,34px); } .solution-detail-page :is(p,li), .solution-detail-heading p,.solution-detail-problems__body p,.solution-detail-system__item p,.solution-detail-equipment p:not(.solution-detail-equipment__group),.solution-detail-project-card p { font-size:16px; } }
.solution-detail-page, .solution-contact--detail,
.solution-detail-page :is(h1,h2,h3,p,a,button,input,textarea,select),
.solution-contact--detail :is(h2,h3,p,a,button,input,textarea,select) { font-family:Montserrat,Arial,sans-serif; }
/* Hero follows the listing's banner frame, without an added background layer. */
.solution-detail-hero { background:none; min-height:clamp(430px,38vw,550px); }
.solution-detail-hero::before { display:none; }
.solution-detail-hero__inner { min-height:clamp(430px,38vw,550px); padding-block:72px; }
.solution-detail-hero__image { z-index:-1; object-position:center right; }
.solution-detail-hero h1 { font-size:clamp(40px,4.1vw,60px); line-height:1.12; font-weight:800; letter-spacing:-.025em; }
.solution-detail-page :is(input,textarea,select), .solution-contact--detail :is(input,textarea,select) { font-size:14px; }
.solution-detail-button, .solution-detail-text-link { font-size:14px; }
@media(max-width:991.98px){ .solution-detail-hero,.solution-detail-hero__inner { min-height:460px; } }
@media(max-width:768px){
 .solution-detail-hero,.solution-detail-hero__inner { min-height:440px; }
 .solution-detail-hero__image { object-position:20% center; }
 .solution-detail-hero__inner { align-items:flex-end; padding-top:54px; padding-bottom:46px; }
 .solution-detail-hero h1 { font-size:clamp(31px,9vw,40px); line-height:1.16; margin-bottom:18px; }
 .solution-detail-hero p { font-size:16px; line-height:1.55; margin-bottom:26px; }
}
@media(min-width:769px){ .solution-detail-hero__inner { padding-block:48px; } }
.solution-detail-documents__actions .solution-detail-button { font-size:12px; white-space:normal; }
.solution-detail-page, .solution-contact--detail,
.solution-detail-page :is(h1,h2,h3,p,a,button,input,textarea,select),
.solution-contact--detail :is(h2,h3,p,a,button,input,textarea,select) { font-family:Inter,Arial,sans-serif; }

.solution-detail-hero h1 { color:#063665; }
.solution-detail-hero p, .solution-detail-hero__benefits { color:#172f47; }
.solution-detail-hero__benefits { list-style:none; padding:0; margin:0 0 32px; font-size:clamp(17px,1.5vw,21px); line-height:1.6; }
.solution-detail-hero__benefits li { display:flex; gap:10px; align-items:flex-start; font-size:inherit; }
.solution-detail-hero__benefit-icon { width:22px; height:22px; flex:0 0 22px; object-fit:contain; margin-top:5px; color:#008dcc; }
@media(max-width:768px){ .solution-detail-hero__benefits { font-size:16px; line-height:1.55; } }

.solution-configuration-rows { display:grid; gap:16px; }
.solution-configuration-row { display:grid; grid-template-columns:230px minmax(0,1fr); gap:4px; }
.solution-configuration-row__title { display:flex; align-items:center; padding:24px; background:#f2f4fa; margin:0; font-size:18px; transition:background-color .25s ease,color .25s ease; }
.solution-configuration-row__products { list-style:none; display:flex; overflow-x:auto; gap:4px; margin:0; padding:0; }
.solution-configuration-row__products li { flex:0 0 150px; display:flex; }
.solution-configuration-cell { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; position:relative; isolation:isolate; overflow:hidden; width:100%; min-height:150px; padding:16px 10px; background:#f6f7f9; border:1px solid transparent; text-align:center; font-size:13px; color:#172f47; text-decoration:none; transition:background-color .25s ease,border-color .25s ease; }
.solution-configuration-cell__image { width:65px; height:55px; object-fit:contain; }
.solution-configuration-cell__background { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; z-index:-2; transition:opacity .4s ease; }
.solution-configuration-cell::after { content:""; position:absolute; inset:0; background:#e6f5fce6; opacity:0; z-index:-1; transition:opacity .4s ease; }
.solution-configuration-row:is(:hover,:focus-within) .solution-configuration-row__title { background:#063665; color:#fff; }
.solution-configuration-row:is(:hover,:focus-within) .solution-configuration-cell { background:#e6f5fc; }
.solution-configuration-cell:is(:hover,:focus-visible) { border-color:#008dcc; outline:2px solid #008dcc; outline-offset:-2px; }
.solution-configuration-cell:is(:hover,:focus-visible) .solution-configuration-cell__background,.solution-configuration-cell:is(:hover,:focus-visible)::after { opacity:1; }
@media(max-width:700px){ .solution-configuration-row { grid-template-columns:1fr; } .solution-configuration-row__title { padding:16px; } }
@media(prefers-reduced-motion:reduce){ .solution-configuration-row__title,.solution-configuration-cell,.solution-configuration-cell__background,.solution-configuration-cell::after { transition:none; } }

/* Grouped configuration products use the same two-state presentation as cards. */
.solution-configuration-row__products li { flex-basis:240px; }
.solution-configuration-cell { align-items:flex-start; justify-content:flex-start; text-align:left; min-height:290px; padding:22px; }
.solution-configuration-cell__icon { width:30px; height:30px; flex:0 0 30px; object-fit:contain; color:#ff435b; transition:color .3s ease,filter .3s ease; }
.solution-configuration-cell__title { font-size:18px; font-weight:700; line-height:1.4; }
.solution-configuration-cell__description { font-size:15px; line-height:1.6; opacity:0; transform:translateY(6px); transition:opacity .3s ease,transform .4s ease; }
.solution-configuration-cell__link { margin-top:auto; font-size:13px; font-weight:700; }
.solution-configuration-cell::after { background:linear-gradient(180deg,#00648cbb,#003d60df); }
.solution-configuration-cell:is(:hover,:focus-visible) { color:#fff; }
.solution-configuration-cell:is(:hover,:focus-visible) .solution-configuration-cell__icon { color:#fff; }
.solution-configuration-cell:is(:hover,:focus-visible) img.solution-configuration-cell__icon { filter:brightness(0) invert(1); }
.solution-configuration-cell:is(:hover,:focus-visible) .solution-configuration-cell__description { opacity:1; transform:translateY(0); }
@media(prefers-reduced-motion:reduce){ .solution-configuration-cell__icon,.solution-configuration-cell__description { transition:none; transform:none; } }
/* Compact configuration rows, following the supplied horizontal reference. */
.solution-configuration-rows { gap:12px; }
.solution-configuration-row { grid-template-columns:190px minmax(0,1fr); }
.solution-configuration-row__title { padding:18px 20px; font-size:15px; line-height:1.4; }
.solution-configuration-row__products li { flex-basis:150px; }
.solution-configuration-cell { min-height:170px; padding:14px 12px; gap:8px; }
.solution-configuration-cell__icon { width:24px; height:24px; flex-basis:24px; }
.solution-configuration-cell__title { font-size:13px; line-height:1.4; }
.solution-configuration-cell__description { font-size:12px; line-height:1.45; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:4; overflow:hidden; }
.solution-configuration-cell__link { font-size:11px; }
@media(max-width:700px){ .solution-configuration-row { grid-template-columns:1fr; } .solution-configuration-row__title { padding:12px 16px; } }

/* Configuration reference: visible descriptions, equipment revealed below on hover. */
.solution-configuration-row { grid-template-columns:190px minmax(0,1fr); gap:12px; }
.solution-configuration-row__title { border-radius:7px; min-height:220px; justify-content:center; text-align:center; flex-direction:column; color:#367bb3; background:#d8effb; font-size:17px; font-weight:700; text-transform:uppercase; box-shadow:0 4px 12px #16395120; }
.solution-configuration-row__title::after { content:""; width:75px; height:3px; background:#ee4358; margin-top:8px; }
.solution-configuration-row:first-child .solution-configuration-row__title { background:#377eb8; color:#fff; }
.solution-configuration-row__products { gap:12px; padding:0 0 8px; }
.solution-configuration-row__products li { flex-basis:190px; }
.solution-configuration-cell { min-height:220px; border-radius:7px; background:#d8effb; box-shadow:0 4px 12px #16395120; align-items:center; text-align:center; padding:22px 12px 12px; color:#172f47; gap:10px; }
.solution-configuration-cell__title { font-size:15px; line-height:1.35; }
.solution-configuration-cell__description { opacity:1; transform:none; font-size:12px; line-height:1.45; -webkit-line-clamp:5; position:relative; z-index:1; }
.solution-configuration-cell__background { top:auto; bottom:8px; left:8px; right:8px; width:calc(100% - 16px); height:105px; object-fit:contain; z-index:0; }
.solution-configuration-cell::after { display:none; }
.solution-configuration-row:is(:hover,:focus-within) .solution-configuration-row__title { background:#377eb8; color:#fff; }
.solution-configuration-row:is(:hover,:focus-within) .solution-configuration-cell { background:#d8effb; }
.solution-configuration-row:is(:hover,:focus-within) .solution-configuration-cell__background { opacity:.4; }
.solution-configuration-cell:is(:hover,:focus-visible) { color:#172f47; border-color:#377eb8; }
.solution-configuration-cell:is(:hover,:focus-visible) .solution-configuration-cell__background { opacity:.65; }
@media(max-width:700px){ .solution-configuration-row { grid-template-columns:1fr; } .solution-configuration-row__title { min-height:70px; } .solution-configuration-row__products li { flex-basis:170px; } }
/* No equipment imagery in the resting state, including while hovering a sibling. */
.solution-configuration-cell .solution-configuration-cell__background,
.solution-configuration-row:is(:hover,:focus-within) .solution-configuration-cell__background {
 opacity:0;
 visibility:hidden;
 transition:opacity .4s ease,visibility .4s;
}
.solution-configuration-row .solution-configuration-cell:is(:hover,:focus-visible) .solution-configuration-cell__background {
 opacity:.65;
 visibility:visible;
}
@media(prefers-reduced-motion:reduce){ .solution-configuration-cell .solution-configuration-cell__background { transition:none; } }
/* Blend white product-photo backgrounds into the configuration tile. */
.solution-configuration-cell__background { mix-blend-mode:multiply; }
/* All configuration labels share the same resting and active states. */
.solution-configuration-row:first-child .solution-configuration-row__title { background:#d8effb; color:#367bb3; }
.solution-configuration-row:is(:hover,:focus-within) .solution-configuration-row__title { background:#377eb8; color:#fff; }
/* White default; row highlight and individual tile reveal on interaction. */
.solution-configuration-row .solution-configuration-row__title,
.solution-configuration-row:first-child .solution-configuration-row__title { background:#fff; color:#367bb3; }
.solution-configuration-row .solution-configuration-cell { background:#fff; }
.solution-configuration-row:is(:hover,:focus-within) .solution-configuration-row__title { background:#377eb8; color:#fff; }
.solution-configuration-row:is(:hover,:focus-within) .solution-configuration-cell { background:#e6f5fc; }
.solution-configuration-row .solution-configuration-cell:is(:hover,:focus-visible) { border-color:#008dcc; outline:2px solid #008dcc; outline-offset:-2px; }
/* Compact project summaries; preserve full text for accessibility and indexing. */
.solution-detail-project-card__body { min-width:0; padding:16px 18px; }
.solution-detail-project-card h3, .solution-detail-project-card h3 a,
.solution-detail-project-card__body p { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.solution-detail-project-card h3 a { display:block; }
.solution-detail-project-card__body p { margin:0 0 8px; }
.solution-detail-project-card__image { aspect-ratio:16 / 9; }
.solution-detail-project-card__body .solution-detail-text-link { padding-top:10px; }
@media(min-width:992px) and (max-height:850px){
 .solution-detail-section { padding-block:28px; }
 .solution-detail-heading { margin-bottom:24px; }
 .solution-detail-heading p { margin-bottom:0; }
 .solution-detail-system { min-height:0; }
 .solution-detail-system__item { min-height:270px; padding:18px; }
 .solution-detail-problems__list li { min-height:160px; padding:20px; }
 .solution-detail-documents { min-height:480px; }
 .solution-detail-projects__grid { gap:16px 22px; }
 .solution-detail-project-card__image { aspect-ratio:auto; height:clamp(105px,16vh,135px); }
 .solution-detail-project-card__body { padding:12px 16px; }
 .solution-detail-project-card__body p { font-size:15px; }
 .solution-detail-section__action { margin-top:20px; }
 .solution-contact--detail { padding-block:32px; }
 .solution-contact--detail .solution-contact__faq,.solution-contact--detail .solution-contact__consult { padding:24px; }
}
@media(min-width:992px) and (max-height:850px){
 .solution-detail-page h2, .solution-detail-system .solution-detail-heading h2, .solution-contact--detail h2, .solution-contact--detail .solution-contact__intro h2 { font-size:32px; }
 .solution-detail-projects .solution-detail-heading { max-width:none; margin-bottom:18px; }
 .solution-detail-projects .solution-detail-heading h2 { max-width:none; }
 .solution-detail-project-card__image { height:110px; }
 .solution-detail-project-card__body { padding:10px 14px; }
 .solution-detail-project-card h3 { font-size:16px; margin-bottom:6px; }
 .solution-detail-project-card__body p { margin-bottom:6px; }
 .solution-detail-project-card__body .solution-detail-text-link { padding-top:6px; }
}
/* Uniform project image frames, independent of the original image proportions. */
.solution-detail-project-card > .solution-detail-project-card__image {
 aspect-ratio:16 / 9;
 height:auto;
 flex:0 0 auto;
 overflow:hidden;
}
.solution-detail-project-card__image > img {
 display:block;
 position:absolute;
 inset:0;
 width:100%;
 height:100%;
 max-height:none;
 object-fit:cover;
}
/* Consistent readable action labels, matching the supplied document CTA reference. */
.solution-detail-page .solution-detail-button,
.solution-detail-page .solution-detail-text-link,
.solution-contact--detail .solution-contact__submit button { font-size:14px; font-weight:700; line-height:1.4; }
.solution-detail-documents__actions { align-items:stretch; gap:16px; }
.solution-detail-documents__actions .solution-detail-button {
 font-size:14px;
 font-weight:700;
 line-height:1.3;
 text-transform:uppercase;
 min-height:64px;
 padding:12px 16px;
 border-radius:5px;
 text-align:left;
 justify-content:space-between;
}
.solution-detail-documents__actions .solution-detail-button i { flex-shrink:0; font-size:16px; }
.solution-detail-documents__actions .solution-detail-button--outline { background:#ffffffdd; color:#60717d; }
.solution-detail-documents__actions .solution-detail-button--outline:hover { background:#063665; color:#fff; }
.solution-configuration-cell__link { font-size:13px; }
/* Hero CTA styling from the supplied banner reference. */
.solution-detail-hero__actions { gap:16px; }
.solution-detail-hero__actions .solution-detail-button {
 width:192px;
 min-height:48px;
 padding:10px 18px;
 border:1px solid transparent;
 border-radius:6px;
 font-size:18px;
 font-weight:700;
 line-height:1.3;
 text-transform:uppercase;
 justify-content:center;
 gap:9px;
}
.solution-detail-hero__actions .solution-detail-button--primary { background:#f01419; border-color:#d30b11; }
.solution-detail-hero__actions .solution-detail-button--secondary { background:#0085c2; }
.solution-detail-hero__button-arrow { width:0; height:0; border-top:6px solid transparent; border-bottom:6px solid transparent; border-left:7px solid currentColor; flex-shrink:0; }
.solution-detail-hero__actions .solution-detail-button:hover { background:#063665; }
@media(max-width:480px){ .solution-detail-hero__actions { gap:12px; } .solution-detail-hero__actions .solution-detail-button { width:calc(50% - 6px); font-size:16px; padding-inline:10px; } }
/* Portfolio information form. */
.solution-portfolio-modal__dialog { width:min(1000px,calc(100vw - 40px)); max-width:1000px; padding:36px; }
.solution-portfolio-modal__dialog > h2,.solution-portfolio-modal__dialog > p { text-align:center; }
.solution-download-panel { display:block; }
.solution-download-form { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.solution-download-content,.solution-download-form > button,.solution-download-message { grid-column:1 / -1; }
.solution-download-form textarea { width:100%; padding:12px; border:1px solid #aebfcd; border-radius:7px; resize:vertical; }
.solution-download-form > button { justify-self:start; }
.solution-download-files:empty { display:none; }
.solution-portfolio-unavailable { padding:12px; background:#edf5fb; }
@media(max-width:700px){ .solution-portfolio-modal__dialog { padding:24px; } .solution-download-form { grid-template-columns:1fr; } }

/* Match the listing's logo-blue primary and section titles. */
.solution-detail-page h1,
.solution-detail-page h2,
.solution-contact--detail .solution-contact__intro h2,
.solution-detail-faq h2,
.solution-portfolio-modal__dialog h2 {
 color:#007dc3;
}
/* Keep the capacity title legible on its blue image overlay. */
.solution-detail-page .solution-detail-capacity h2 {
 color:#fff;
}
