/* Rounded, straight Phosphor-style arrows: no font glyph hooks or orbit animation. */
:root { --pp-link-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h15m-6-6 6 6-6 6' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
html body .ph:is(.ph-arrow-right,.ph-arrow-up-right,.ph-arrow-square-out)::before {
  display:inline-block;width:1em;height:1em;content:"";background:currentColor;mask:var(--pp-link-arrow) center/contain no-repeat;vertical-align:-.1em;
}
html body .ph:is(.ph-arrow-up-right,.ph-arrow-square-out)::before {rotate:-45deg;}
html body :is(a,button).pp-arrow-after::after,
html body :is(a,button).pp-arrow-before::before {display:inline-block;flex:0 0 1em;width:1em;height:1em;content:"";border:0;background:currentColor;mask:var(--pp-link-arrow) center/contain no-repeat;vertical-align:-.1em;}
html body a[data-pp-arrow-direction="external"].pp-arrow-after::after {rotate:-45deg;}
html body a[data-pp-arrow-direction] :is(.ph-arrow-right,.ph-arrow-up-right),
html body a.pp-arrow-after::after {transition:translate var(--pp-duration-quick,180ms) ease;}
html body a:is(:hover,:focus-visible) :is(.ph-arrow-right,.ph-arrow-up-right),
html body a.pp-arrow-after:is(:hover,:focus-visible)::after {translate:3px 0;}
html body .top-results-toc-primary>span:has(.ph) {font-size:18px;line-height:1;}
/* Same answer cue, including dynamically rendered lists. */
html body :is(.md-issue-tag,.engineering-issue-tag).pp-issue-row::after {display:none;content:none;}
.pp-issue-row__cue {display:inline-flex;flex:0 0 auto;align-items:center;gap:var(--pp-space-2,8px);font:800 10px/1.4 var(--pp-font-latin);letter-spacing:.08em;}
.pp-issue-row__cue::before {content:"ANSWER";}
.pp-issue-row[aria-expanded="true"]>.pp-issue-row__cue::before {content:"CLOSE";}
.pp-issue-row[aria-expanded="true"]>.pp-issue-row__cue>.ph {rotate:180deg;}
/* The GxP GAP box is the shared reference. Preserve all source text and extra links. */
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box {
  display:grid;grid-template-columns:minmax(0,42%) 76px minmax(0,1fr);position:relative;isolation:isolate;min-height:320px;height:auto;padding:0;overflow:hidden;border:0;border-radius:0;color:var(--pp-surface);background:var(--pp-night);
}
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__image {position:absolute;inset:0;display:block;width:100%;height:100%;opacity:.42;z-index:-2;grid-area:1/1/-1/-1;transform:none;}
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__image img {width:100%;height:100%;object-fit:cover;}
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__body {position:relative;grid-column:1;grid-row:1;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;min-width:0;min-height:320px;height:auto;padding:clamp(26px,calc(3.3 * var(--pp-wide-vw, 1vw)),52px);background:var(--pp-feature-panel-blue);color:var(--pp-surface);text-align:left;box-sizing:border-box;}
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__title {margin:0;text-align:center;font-family:var(--pp-font-body);font-size:clamp(20px,calc(1.65 * var(--pp-wide-vw, 1vw)),30px);font-weight:700;line-height:1.45;color:var(--pp-surface);letter-spacing:normal;}
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__title small {display:block;margin-top:var(--pp-space-3,12px);font-size:13px;font-weight:700;line-height:1.5;letter-spacing:.04em;}
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box :is(.pp-process-card__step,.csv-gxp-gap-card__step) {position:static;display:block;margin:0 0 clamp(12px,calc(1.4 * var(--pp-wide-vw, 1vw)),20px);font:400 clamp(32px,calc(4 * var(--pp-wide-vw, 1vw)),56px)/1 var(--pp-font-latin);}
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__detail {position:relative;grid-column:3;grid-row:1;display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:0;min-width:0;min-height:320px;height:auto;max-height:none;margin:0;padding:clamp(26px,calc(3.3 * var(--pp-wide-vw, 1vw)),52px);border:0;background:color-mix(in srgb,var(--pp-night) 82%,transparent);color:var(--pp-surface);opacity:1;visibility:visible;transform:none;box-sizing:border-box;}
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__detail>p {grid-column:auto;position:relative;max-width:none;max-height:none;margin:0 0 var(--pp-space-3,12px);padding:0;font-size:clamp(13px,calc(.9 * var(--pp-wide-vw, 1vw)),15px);line-height:1.9;color:inherit;}
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__detail>p::before {display:none;}
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__detail>p:has(>a) {margin-bottom:var(--pp-space-2,8px);border:0;}
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__links {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(24px,calc(3.6 * var(--pp-wide-vw, 1vw)),54px);margin-top:var(--pp-space-3,12px);}
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__links>a {display:flex;align-items:center;justify-content:space-between;gap:var(--pp-space-4,16px);min-height:44px;margin:0;padding:0;border:0;border-top:1px solid var(--pp-border);border-radius:0;background:transparent;color:var(--pp-surface);font-size:clamp(13px,calc(1.05 * var(--pp-wide-vw, 1vw)),15px);font-weight:700;line-height:1.4;text-decoration:none;box-shadow:none;box-sizing:border-box;}
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__links>a:nth-last-child(-n+2) {border-bottom:1px solid var(--pp-border);}
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__links>a::after {flex:0 0 16px;width:16px;height:16px;content:"";background:currentColor;mask:var(--pp-link-arrow) center/contain no-repeat;transition:translate var(--pp-duration-quick,180ms) ease;}
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__links>a>.ph {display:none;}
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__links>a:is(:hover,:focus-visible)::after {translate:3px 0;transform:none;}
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__links>a:focus-visible {outline:2px solid var(--pp-primary);outline-offset:2px;}
html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__toggle {position:relative;z-index:3;inset:auto;width:76px;height:100%;margin:0;grid-area:1/2;transform:none;border:1px solid var(--pp-border);background:color-mix(in srgb,var(--pp-primary) 30%,transparent);}
@media(max-width:780px) {
 html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box {grid-template-columns:minmax(0,1fr) 58px;grid-template-rows:auto auto;overflow:clip;}
 html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__body {grid-column:1;grid-row:2;min-height:180px;padding:var(--pp-space-5,24px);}
 html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__detail {grid-column:1/-1;grid-row:1;min-height:0;padding:var(--pp-space-5,24px);}
 html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__toggle {position:relative;grid-area:2/2;inset:auto;width:100%;height:100%;min-height:44px;border:0;border-left:1px solid var(--pp-border);}
}
@media(max-width:480px) {
 html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__links {grid-template-columns:1fr;}
 html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__links>a:nth-last-child(2) {border-bottom:0;}
}
@media(prefers-reduced-motion:reduce) {
 html body a[data-pp-arrow-direction] :is(.ph-arrow-right,.ph-arrow-up-right),html body a.pp-arrow-after::after,html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box .pp-gap-box__links>a::after {transition:none;translate:none;}
}

/* Service card hover underline follows the words, rather than a fixed-width rule. */
html body #top-service-finder .top-about-study__service-slide .top-about-study__service-detail {min-width:0;width:max-content;border-bottom:0;text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:1px;}

html body :is(#pp-process-explore#pp-process-explore,.csv-gap-analysis.csv-gap-analysis) .pp-gap-box:not(.is-open) .pp-gap-box__detail {opacity:0;visibility:hidden;pointer-events:none;}

html body #top-service-finder .top-about-study__service-detail.pp-arrow-after::after {display:inline-block;flex:0 0 16px;width:16px;height:16px;content:"";background:currentColor;mask:var(--pp-link-arrow) center/contain no-repeat;font-family:inherit;}

/* Hover underline includes the arrow and the gap before it. Photo-card outlines stay intact. */
html body a.pp-link-line:is(:hover,:focus-visible) {background-image:linear-gradient(currentColor,currentColor);background-size:100% 1px;background-repeat:no-repeat;background-position:left bottom;}
html body #top-service-finder .top-about-study__service-slide .top-about-study__service-detail {padding-bottom:4px;border-bottom:1px solid transparent;text-decoration:none;}
html body #top-service-finder .top-about-study__service-slide:is(:hover,:focus-visible) .top-about-study__service-detail {border-bottom-color:currentColor;}

/* Engineering service title uses the shared photo-heading treatment at every width. */
html body[data-page="service-engineering"] #pp-process-explore .pp-process-overview > :is(span, h2, p) {
  color: var(--pp-surface) !important;
  -webkit-text-fill-color: var(--pp-surface) !important;
  text-shadow: var(--pp-image-heading-shadow) !important;
}

html body[data-page="service-engineering"] #pp-process-explore .pp-engineering-title-phrase {
  display: inline-block;
  white-space: nowrap;
  color: inherit;
  -webkit-text-fill-color: inherit;
  text-shadow: inherit;
}

/* Match service/process's primary heading rhythm, keeping the engineering copy. */
html body[data-page="service-engineering"] #pp-process-explore .pp-process-overview > span {
  margin-bottom: var(--pp-page-label-gap, 16px);
  font-family: var(--pp-font-latin);
  font-size: var(--pp-page-label-size, 11px);
  font-weight: var(--pp-page-label-weight, 700);
  line-height: var(--pp-page-label-line-height, 1.2);
  letter-spacing: var(--pp-page-label-letter-spacing, .2em);
}
html body[data-page="service-engineering"] #pp-process-explore .pp-process-overview h2 {
  margin: 0 0 18px;
}
html body[data-page="service-engineering"] #pp-process-explore .pp-process-overview > p {
  margin: 0;
  font-size: var(--pp-page-lead-size);
  color: color-mix(in srgb, var(--pp-surface) 88%, transparent) !important;
  -webkit-text-fill-color: currentColor !important;
}
@media (max-width: 980px) {
  html body[data-page="service-engineering"] #pp-process-explore .pp-process-overview {
    justify-content: flex-start;
  }
  html body[data-page="service-engineering"] #pp-process-explore .pp-process-overview > p {
    font-size: 14px;
  }
  html body[data-page="service-engineering"] #pp-process-explore .pp-process-overview > span {
    margin-bottom: 14px;
    font-size: 10px;
  }
}
@media (max-width: 720px) {
  html body[data-page="service-engineering"] #pp-process-explore .pp-process-overview {
    margin-top: calc(var(--pp-space-5, 24px) - var(--pp-space-1, 4px));
  }
}

/* Cosmetics GMP uses the same mobile detail/title/toggle rows as the service cards. */
@media (max-width: 780px) {
  html body[data-page="service-cosmetics-gmp"] #pp-process-explore#pp-process-explore #contents {
    width: 100%;
    min-width: 0;
  }
  html body[data-page="service-cosmetics-gmp"] #pp-process-explore#pp-process-explore .pp-process-card {
    grid-template-columns: minmax(0, 1fr) 58px;
    grid-template-rows: auto auto;
    min-width: 0;
    overflow: clip;
  }
  html body[data-page="service-cosmetics-gmp"] #pp-process-explore#pp-process-explore .pp-process-card__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-width: 0;
  }
  html body[data-page="service-cosmetics-gmp"] #pp-process-explore#pp-process-explore .pp-process-card__detail {
    position: relative;
    grid-area: 1 / 1 / auto / -1;
    width: auto;
    min-width: 0;
    height: auto;
    min-height: 0;
    padding: var(--pp-space-5, 24px);
    transform: none;
    background: color-mix(in srgb, var(--pp-night) 82%, transparent);
  }
  html body[data-page="service-cosmetics-gmp"] #pp-process-explore#pp-process-explore .pp-process-card__body {
    grid-area: 2 / 1;
    min-width: 0;
    min-height: 180px;
    padding: var(--pp-space-5, 24px);
  }
  html body[data-page="service-cosmetics-gmp"] #pp-process-explore#pp-process-explore .pp-process-card__toggle {
    grid-area: 2 / 2;
    inset: auto;
    width: 100%;
    height: 100%;
    margin: 0;
    transform: none;
  }
}

/* CSV coverage: retain full standard guidance and service titles at narrow widths. */
html body[data-page="service-csv"] .csv-service-process-tabs button {
  height: auto;
  min-width: 0;
}
html body[data-page="service-csv"] .csv-service-process-tabs button :is(small, strong) {
  min-width: 0;
  white-space: normal;
  overflow: visible;
  overflow-wrap: anywhere;
  text-overflow: clip;
}

@media (max-width: 980px) {
  html body[data-page="service-csv"] .csv-system-coverage__standard {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--pp-space-2, 8px) var(--pp-space-4, 16px);
  }
  html body[data-page="service-csv"] .csv-system-coverage__standard > * {
    min-width: 0;
    overflow-wrap: anywhere;
  }
  html body[data-page="service-csv"] .csv-system-coverage__standard > span {
    grid-column: 1 / -1;
  }
  html body[data-page="service-csv"] .csv-service-process-tabs button {
    align-content: start;
    padding: var(--pp-space-3, 12px) var(--pp-space-2, 8px);
  }
  html body[data-page="service-csv"] .csv-service-process-tabs button::after,
  html body[data-page="service-csv"] .csv-service-process-tabs button:is(.is-active, :hover, :focus-visible)::after {
    right: var(--pp-space-2, 8px);
    bottom: var(--pp-space-1, 4px);
    transform: none;
  }
}
