/* Shared product/service presentation. Scoped separately from the legacy theme. */
.phx-solution-hero { position:relative; overflow:hidden; padding:30px 0 62px; color:#fff; background:radial-gradient(ellipse at 90% 90%,rgba(168,63,98,.25),transparent 55%),linear-gradient(115deg,#07172f,#12345f); }
.phx-solution-hero::after { content:""; position:absolute; pointer-events:none; width:520px; height:520px; border:1px solid rgba(255,255,255,.07); border-radius:50%; top:-340px; right:-80px; box-shadow:0 0 0 70px rgba(255,255,255,.025); }
.phx-solution-hero .phx-container { position:relative; z-index:1; }
.phx-solution-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:32px; color:#b9cbe3; font-size:12px; line-height:1.6; }
.phx-solution-breadcrumb a { color:#e2ecfa; text-decoration:none; }
.phx-solution-breadcrumb a:hover { color:#fff; text-decoration:underline; }
.phx-solution-hero__grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); align-items:center; gap:54px; }
.phx-solution-hero__grid--text { grid-template-columns:1fr; }
.phx-solution-hero__copy { max-width:840px; }
.phx-solution-eyebrow { display:block; margin-bottom:14px; font-size:11px; line-height:1.6; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#9d3658; }
.phx-solution-hero .phx-solution-eyebrow { color:#80dff5; }
.phx-solution-hero h1 { max-width:24ch; margin:0 0 22px; padding:0; color:#fff; background:none; font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(34px,3.6vw,52px); font-weight:800; line-height:1.14; letter-spacing:-.04em; text-transform:none; text-wrap:balance; }
.phx-solution-hero__copy > p { max-width:65ch; margin:0; color:#c8d7e9; font-size:16px; line-height:1.8; }
.phx-solution-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.phx-product-button { display:inline-flex; justify-content:center; align-items:center; gap:14px; min-height:48px; padding:13px 22px; border:1px solid transparent; border-radius:999px; color:#fff; background:#a83f62; text-decoration:none; font-size:13px; line-height:1.5; font-weight:700; transition:background .2s,transform .2s; }
.phx-product-button:hover { color:#fff; background:#862b49; text-decoration:none; transform:translateY(-2px); }
.phx-product-button--outline { border-color:#8096b5; background:transparent; }
.phx-product-button--outline:hover { background:#193a62; }
.phx-solution-hero__visual { position:relative; margin:0; border:1px solid #536d91; border-radius:24px; overflow:hidden; box-shadow:0 25px 55px rgba(0,0,0,.22); }
.phx-solution-hero__visual > img { display:block; width:100%; height:340px; object-fit:cover; }
.phx-solution-hero__visual figcaption { position:absolute; inset:auto 14px 14px; display:flex; align-items:center; gap:14px; padding:17px; background:rgba(7,23,47,.94); color:#c1d3eb; border:1px solid #62728c; border-radius:14px; font-size:11px; line-height:1.7; }
.phx-solution-hero__visual figcaption > i { font-size:28px; color:#80dff5; }
.phx-solution-hero__visual strong { display:block; font-size:14px; color:#fff; }
/* Legacy inner-page headings should never acquire the old solid colour slab. */
.page-title h2 { background:transparent!important; max-width:900px; margin-inline:auto; line-height:1.15!important; padding:0!important; }
.phx-wms-page { background:linear-gradient(#f4f7fc,#fff); padding-bottom:64px; }
.phx-wms-nav { background:#fff; border-bottom:1px solid var(--phx-line); }
.phx-wms-nav .phx-container { display:flex; flex-wrap:wrap; align-items:center; gap:8px 28px; padding-block:18px; }
.phx-wms-nav span { color:var(--phx-ink); font-size:12px; font-weight:800; }
.phx-wms-nav a { padding:7px 0; color:#425873; font-size:12px; font-weight:600; text-decoration:none; }
.phx-wms-nav a:hover { color:#9d3658; text-decoration:underline; text-underline-offset:5px; }
.phx-wms-section { margin:0; padding:58px 0 0; scroll-margin-top:100px; }
.phx-wms-heading { max-width:780px; margin-bottom:28px; }
.phx-wms-heading h2,.phx-wms-data h2,.phx-wms-demo h2,.phx-wms-page .wms-flow-heading h2 { font-size:clamp(28px,3vw,38px); line-height:1.2; letter-spacing:-.035em; margin:0 0 16px; color:var(--phx-ink); }
.phx-wms-heading p,.phx-wms-data p,.phx-wms-demo p { color:#52647d; font-size:15px; line-height:1.8; margin:0; }
.phx-wms-page .wms-flow-heading { gap:40px; margin-bottom:26px; }
.phx-wms-page .wms-flow-stage { min-height:400px; box-shadow:0 16px 40px rgba(7,23,47,.1); }
.phx-wms-page .wms-flow-image { min-height:400px; }
.phx-wms-page .wms-flow-track p { color:#c3d1e3; }
.phx-wms-page .wms-flow-track article > span { color:#a7bedb; }
.phx-wms-page .wms-flow-image__status { font-size:10px; }
.phx-wms-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.phx-wms-card { padding:28px; border:1px solid var(--phx-line); border-radius:20px; background:#fff; box-shadow:0 8px 24px rgba(7,23,47,.035); }
.phx-wms-card > i { width:44px; height:44px; display:grid; place-items:center; border-radius:12px; background:#eaf1ff; color:#1653bd; font-size:20px; }
.phx-wms-card:nth-child(even) > i { background:#f9edf2; color:#9d3658; }
.phx-wms-card h3 { font-size:19px; line-height:1.4; margin:18px 0 12px; color:var(--phx-ink); }
.phx-wms-card p { font-size:13px; line-height:1.8; color:#52647d; margin:0 0 18px; }
.phx-wms-card ul { margin:0; padding:16px 0 0; border-top:1px solid #e7edf5; list-style:none; }
.phx-wms-card li { position:relative; margin:0 0 9px; padding-left:16px; font-size:12px; line-height:1.7; color:#384d68; }
.phx-wms-card li::before { content:""; position:absolute; width:5px; height:5px; left:0; top:8px; border-radius:50%; background:#1768f2; }
.phx-wms-audiences { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.phx-wms-audiences article { padding:32px; border-radius:22px; background:#0b2347; color:#fff; }
.phx-wms-audiences article:last-child { background:#12345f; }
.phx-wms-audiences article > span { color:#8cdef2; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.phx-wms-audiences h3 { color:#fff; font-size:25px; line-height:1.25; margin:18px 0; }
.phx-wms-audiences p { color:#c6d5e8; font-size:14px; line-height:1.8; }
.phx-wms-audiences a { color:#fff; display:inline-block; padding-block:10px; margin-top:10px; font-size:13px; font-weight:700; text-decoration:underline; text-underline-offset:5px; }
.phx-wms-audiences a i { margin-left:8px; }
.phx-wms-data { display:grid; grid-template-columns:1fr 1fr; gap:50px; padding:34px; margin-top:58px; border:1px solid #d4e3f5; border-radius:22px; background:#edf4fc; }
.phx-wms-data .phx-product-button { margin-top:24px; }
.phx-wms-checks { display:grid; gap:15px; margin:0; padding:0; list-style:none; }
.phx-wms-checks li { display:flex; align-items:flex-start; gap:16px; padding:18px; border:1px solid #d4e3f5; border-radius:14px; background:#fff; }
.phx-wms-checks li > span { display:grid; place-items:center; flex:0 0 32px; height:32px; border-radius:50%; background:#eaf1ff; color:#1653bd; font-weight:800; font-size:11px; }
.phx-wms-checks h3 { font-size:17px; margin:0 0 5px; color:var(--phx-ink); }
.phx-wms-checks p { font-size:13px; line-height:1.65; }
.phx-wms-details { display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:start; }
.phx-wms-details details { background:#fff; border:1px solid var(--phx-line); border-radius:14px; overflow:hidden; }
.phx-wms-details summary { cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:72px; padding:20px; color:var(--phx-ink); font-size:14px; line-height:1.55; font-weight:700; list-style:none; }
.phx-wms-details summary::-webkit-details-marker { display:none; }
.phx-wms-details summary::after { content:"+"; flex:0 0 18px; font-size:22px; color:#9d3658; font-weight:400; }
.phx-wms-details details[open] summary { background:#f4f7fc; }
.phx-wms-details details[open] summary::after { content:"−"; }
.phx-wms-details details > div { padding:20px; color:#52647d; font-size:13px; line-height:1.85; }
.phx-wms-details details > div p { margin:0; font:inherit; color:inherit; }
/* Reserve space for the homepage cards' positioned links when copy wraps. */
.phx-home .phx-solution-card { padding-bottom:64px; }
.project-detail-section.phx-aseptic-detail .lower-section h3 { color:#0b2347; }
.project-detail-section.phx-aseptic-detail .lower-section p,
.project-detail-section.phx-aseptic-detail .lower-section li { color:#425873; }
.project-detail-section.phx-aseptic-detail .phx-aseptic-features { gap:12px; }
.project-detail-section.phx-aseptic-detail .phx-aseptic-features li { padding:12px 14px 12px 38px; background:#f1f6fc; border:1px solid #dbe6f4; border-radius:10px; }
.project-detail-section.phx-aseptic-detail .phx-aseptic-features li .icon { left:14px; top:18px; }
.phx-wms-quality { display:grid; grid-template-columns:1.1fr 1fr; gap:40px; margin-top:58px; padding:36px; border-radius:22px; background:#0b2347; color:#cfdaea; }
.phx-wms-quality .phx-solution-eyebrow { color:#8cdef2; }
.phx-wms-quality h2 { margin:0 0 18px; color:#fff; font-size:clamp(28px,3vw,38px); line-height:1.2; letter-spacing:-.035em; }
.phx-wms-quality p { color:#cfdaea; font-size:14px; line-height:1.85; }
.phx-wms-quality a { display:inline-block; padding:10px 0; color:#fff; font-size:13px; font-weight:700; text-decoration:underline; text-underline-offset:5px; }
.phx-wms-quality__steps { list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.phx-wms-quality__steps li { padding:18px 20px; border:1px solid #3d5678; border-radius:13px; background:#163256; }
.phx-wms-quality__steps strong { display:block; margin-bottom:5px; color:#fff; font-size:15px; }
.phx-wms-quality__steps span { display:block; color:#cfdaea; font-size:13px; line-height:1.7; }
.phx-wms-demo { margin-top:48px; padding:34px; display:flex; align-items:center; gap:32px; justify-content:space-between; border-radius:22px; border:1px solid #ecd9e1; background:#faf1f5; }
.phx-wms-demo > div { max-width:720px; }
.phx-wms-demo .phx-product-button { flex-shrink:0; }
.phx-solution-hero a:focus-visible,.phx-wms-page a:focus-visible,.phx-wms-details summary:focus-visible { outline:3px solid #dd7600; outline-offset:5px; }
@media (max-width:1050px) {
    .phx-solution-hero__grid { gap:28px; }
    .phx-solution-hero__visual > img { height:330px; }
    .phx-wms-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .phx-wms-demo { flex-wrap:wrap; }
}
@media (max-width:800px) {
    .phx-solution-hero { padding:24px 0 42px; }
    .phx-solution-hero__grid { grid-template-columns:1fr; }
    .phx-solution-hero__visual { max-width:640px; }
    .phx-solution-hero__visual > img { height:280px; }
    .phx-wms-audiences,.phx-wms-data,.phx-wms-details,.phx-wms-quality { grid-template-columns:1fr; }
    .phx-wms-data { gap:26px; }
    .phx-wms-page .wms-flow-heading { grid-template-columns:1fr; gap:12px; }
}
@media (max-width:550px) {
    .phx-wms-grid { grid-template-columns:1fr; }
    .phx-solution-breadcrumb { margin-bottom:24px; }
    .phx-solution-hero h1 { font-size:34px; }
    .phx-solution-hero__copy > p { font-size:14px; }
    .phx-solution-actions { flex-direction:column; align-items:stretch; }
    .phx-wms-nav .phx-container { gap:6px 18px; }
    .phx-wms-nav span { flex-basis:100%; }
    .phx-wms-section { padding-top:40px; }
    .phx-wms-card,.phx-wms-audiences article,.phx-wms-demo { padding:24px; }
    .phx-wms-data { padding:24px; margin-top:40px; }
    .phx-wms-quality { padding:24px; margin-top:40px; gap:24px; }
    .phx-wms-page .wms-flow-image { min-height:250px; }
    .phx-wms-demo h2 { font-size:27px; }
}
