/* ============================================================
   Premrest — front-door design layer (america.gov direction).
   Loaded last on every v3 page. Two typefaces (Newsreader serif for
   big moments, Inter Tight for everything else), one ink, grey body
   copy, very large radii, pill buttons; photographs carry the colour.
   Overrides site.css / pages.css / editorial.css without changing
   page markup.
   ============================================================ */

:root {
  --ag-bg: #f2f2f0;
  --ag-surface: #fafaf9;
  --ag-ink: #111418;
  --ag-grey: #62676d;
  --ag-line: rgba(17, 20, 24, 0.12);
  --ag-dark: #1c2024;
  --ag-campaign: #FDCB40;
  --ag-serif: "Newsreader", "Iowan Old Style", Georgia, serif;
  --ag-sans: "Inter Tight", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ag-r: clamp(28px, 4vw, 52px);
  --ag-lift: 0 40px 80px -44px rgba(17, 20, 24, 0.42);
}

/* ---- Base ---- */
html { background: var(--ag-bg); }
body { background: var(--ag-bg); color: var(--ag-ink); font-family: var(--ag-sans); -webkit-font-smoothing: antialiased; }
body main { background: linear-gradient(180deg, #f7f7f5 0, var(--ag-surface) 420px, #fff 1400px); }
h1, h2, h3, h4, h5 { font-family: var(--ag-sans); color: var(--ag-ink); }
p, li { font-family: var(--ag-sans); }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--ag-ink); outline-offset: 3px; }

/* ---- Header: site line, rounded sheet, logo + round search + Menu pill ---- */
#pr-header .pr-headwrap { position: relative; top: auto; z-index: 50; background: var(--ag-bg) !important; border: 0 !important; box-shadow: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; color: var(--ag-ink) !important; }
.pr-line { margin: 0; text-align: center; padding: 14px 20px 12px; font: 400 0.95rem/1.35 var(--ag-sans); color: var(--ag-grey); text-wrap: balance; }
.pr-line-cycle { height: 46px; padding: 0 20px; overflow: hidden; }
.pr-line-track { height: 138px; display: flex; flex-direction: column; align-items: center; animation: pr-line-cycle 10s cubic-bezier(.76, 0, .24, 1) infinite; }
.pr-line-message { min-height: 46px; width: 100%; display: flex; align-items: center; justify-content: center; gap: 7px; color: var(--ag-grey); text-decoration: none; }
.pr-line-cta { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 32px; padding: 5px 13px 5px 11px; border: 1px solid color-mix(in srgb, var(--ag-ink) 10%, transparent); border-radius: 999px; background: var(--ag-campaign); color: var(--ag-ink); font-weight: 650; box-shadow: 0 6px 18px -12px rgba(17, 20, 24, 0.7); text-decoration: none; transition: transform .25s ease, box-shadow .25s ease; }
.pr-line-cta::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(105deg, transparent 24%, rgba(255, 255, 255, .56) 46%, transparent 68%); transform: translateX(-120%); animation: pr-line-shine 5s ease-in-out infinite; }
.pr-line-cta-dot { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: var(--ag-ink); opacity: .8; }
.pr-line-cta svg { width: 15px; height: 15px; transition: transform .25s ease; }
.pr-line-cta:hover, .pr-line-cta:focus-visible { transform: translateY(-1px); box-shadow: 0 9px 22px -12px rgba(17, 20, 24, 0.85); }
.pr-line-cta:hover svg, .pr-line-cta:focus-visible svg { transform: translateX(3px); }
.pr-line-track:has(.pr-line-cta:hover), .pr-line-track:has(.pr-line-cta:focus-visible) { animation-play-state: paused; transform: translateY(-46px); }
@keyframes pr-line-cycle {
  0%, 42% { transform: translateY(0); }
  50%, 92% { transform: translateY(-46px); }
  100% { transform: translateY(-92px); }
}
@keyframes pr-line-shine {
  0%, 58% { transform: translateX(-120%); }
  82%, 100% { transform: translateX(120%); }
}
@media (prefers-reduced-motion: reduce) {
  .pr-line-track { animation: none; transform: translateY(-46px); }
  .pr-line-cta::after { animation: none; }
}
@media (max-width: 560px) {
  .pr-line-cycle { height: 50px; padding-inline: 16px; }
  .pr-line-track { height: 150px; }
  .pr-line-message { min-height: 50px; font-size: .86rem; line-height: 1.25; }
  .pr-line-track:has(.pr-line-cta:hover), .pr-line-track:has(.pr-line-cta:focus-visible) { transform: translateY(-50px); }
  @keyframes pr-line-cycle {
    0%, 42% { transform: translateY(0); }
    50%, 92% { transform: translateY(-50px); }
    100% { transform: translateY(-100px); }
  }
  @media (prefers-reduced-motion: reduce) {
    .pr-line-track { transform: translateY(-50px); }
  }
}
.pr-sheettop { background: #f7f7f5; border-radius: var(--ag-r) var(--ag-r) 0 0; margin: 0 clamp(12px, 2vw, 24px); }
body main, #pr-footer { margin: 0 clamp(12px, 2vw, 24px); }
/* The sheet ends in rounded corners and the footer reads as its own rounded dark block,
   with grey showing between them — no hard line where they meet.
   On phones the footer runs full width (no rounded card look), with extra
   breathing room above it; desktop keeps the rounded inset block. */
body main { border-radius: 0 0 var(--ag-r) var(--ag-r); }
body #pr-footer { border-radius: var(--ag-r) var(--ag-r) 0 0; margin-top: clamp(14px, 2vw, 24px); }
@media (max-width: 560px) {
  body #pr-footer { margin: 44px 0 0; border-radius: 0; }
}
.pr-topbar { height: auto; padding: clamp(22px, 3vw, 34px) 0 clamp(8px, 1.4vw, 14px); }
.pr-logo, .pr-logo:hover { color: var(--ag-ink) !important; }
.pr-logo svg { height: clamp(24px, 2.6vw, 30px); }
.pr-topbar-right { gap: 10px; }
.pr-roundbtn { width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--ag-line); background: #fff; color: var(--ag-ink); display: grid; place-items: center; cursor: pointer; transition: border-color .2s ease; }
.pr-roundbtn:hover { border-color: var(--ag-ink); }
.pr-roundbtn svg { width: 19px; height: 19px; }
.pr-menu-btn, .pr-menu-btn:hover { background: var(--ag-dark); color: #fff !important; font: 500 1.08rem/1 var(--ag-sans); padding: 16px 28px; border-radius: 999px; border: 0; gap: 0; }
.pr-menu-btn:hover { background: #000; }
.pr-menu-btn .bars { display: none; }

/* Overlays (menu + search) */
.pr-overlay { background: var(--ag-surface); font-family: var(--ag-sans); }
.pr-overlay .pr-logo svg { height: 26px; }
.pr-overlay .pr-x { width: 52px; height: 52px; border-radius: 50%; background: #ececea; border: 0; color: var(--ag-ink); }
.pr-seg button { font-family: var(--ag-sans); border-radius: 999px; }
.pr-seg button.is-active { background: var(--ag-dark); color: #fff; }
.pr-acc-head, .pr-home-row, .pr-plainlinks a { font-family: var(--ag-sans); color: var(--ag-ink); }
.pr-search-title { font: 400 clamp(2.4rem, 6vw, 3.6rem)/1 var(--ag-serif); letter-spacing: -0.03em; }
.pr-search-field { border-radius: 999px; border: 1.5px solid rgba(17, 20, 24, .55); background: #fff; }

/* ---- Buttons: pills ---- */
.btn { font: 500 1.05rem/1 var(--ag-sans); letter-spacing: 0; padding: 17px 28px; border-radius: 999px; border: 1px solid transparent; box-shadow: none; text-transform: none; }
.btn-primary, .btn-primary:hover { background: var(--ag-dark); color: #fff; border-color: var(--ag-dark); }
.btn-primary:hover { background: #000; }
.btn-outline, .btn-outline:hover { background: #fff; color: var(--ag-ink); border-color: var(--ag-line); }
.btn-outline:hover { border-color: var(--ag-ink); }
.btn-light, .btn-light:hover { background: #fff; color: var(--ag-ink); }
.btn-light:hover { background: #ececea; }
.btn-sm { padding: 12px 20px; font-size: .95rem; }

/* ---- Small labels: breadcrumbs stay, category eyebrows go quiet ---- */
.crumbs { font: 400 .95rem/1.4 var(--ag-sans); color: var(--ag-grey); }
.crumbs a { color: var(--ag-grey); text-decoration: none; }
.crumbs a:hover { color: var(--ag-ink); text-decoration: underline; }
.crumbs strong { color: var(--ag-ink); font-weight: 500; }
.eyebrow-label { font: 500 .95rem/1.3 var(--ag-sans); letter-spacing: 0; text-transform: none; color: var(--ag-grey); }
.eyebrow-label::before, .eyebrow-label::after { display: none; }
.page-hero .eyebrow-label { display: none; }

/* ---- Page hero: centred serif headline, grey lead, pills; figure sits below ---- */
body .page-hero, body.page-editorial .page-hero, body.page-editorial .page-hero.is-green, body.page-editorial .page-hero.is-dark, body.page-editorial .page-hero.is-orange { background: transparent !important; color: var(--ag-ink); text-align: center; padding: clamp(48px, 8vh, 104px) 0 clamp(40px, 6vh, 72px); overflow: visible; }
body.page-editorial .page-hero::after, .page-hero::after, .page-hero::before { display: none !important; }
.page-hero .ed-hero { display: flex; flex-direction: column; align-items: center; gap: clamp(40px, 6vw, 72px); }
.page-hero .ed-hero-copy { display: flex; flex-direction: column; align-items: center; max-width: 900px; }
.page-hero .container:not(.ed-hero) { display: flex; flex-direction: column; align-items: center; }
.page-hero .crumbs { justify-content: center; margin-bottom: clamp(18px, 2.4vw, 28px); }
body .page-hero h1, body.page-editorial .page-hero h1 { font: 400 clamp(2.7rem, 6.4vw, 5.6rem)/1.02 var(--ag-serif) !important; letter-spacing: -0.035em !important; margin: 0 auto !important; max-width: 16ch; text-wrap: balance; color: var(--ag-ink) !important; text-transform: none; }
body .page-hero .lead, body.page-editorial .page-hero .lead { font: 400 clamp(1.2rem, 2vw, 1.6rem)/1.35 var(--ag-sans); letter-spacing: -0.015em; color: var(--ag-grey) !important; margin: clamp(18px, 2.4vw, 28px) auto 0; max-width: 40ch; text-wrap: balance; }
.page-hero-ctas { justify-content: center; margin-top: clamp(28px, 3.4vw, 40px); gap: 12px; }

/* ---- Figures: rounded photographs, line drawings with no panel, no scribbles ---- */
.ed-figure .ed-scribble, .ed-scribble, .scribble { display: none !important; }
.ed-figure .ed-photo, .ed-figure .ed-blob, .split img.rounded { border-radius: var(--ag-r); box-shadow: var(--ag-lift); object-fit: cover; }
.page-hero .ed-hero-figure { width: 100%; max-width: 960px; }
.page-hero .ed-hero-figure:not(.is-icon):not(.is-plain) img { width: 100%; aspect-ratio: 16 / 10; height: auto; object-fit: cover; }
.ed-figure.is-icon { background: transparent; min-height: 0; padding: 0; border-radius: 0; }
.ed-figure.is-icon img, .ed-figure.is-plain img { width: min(70%, 320px); }
.page-hero .ed-hero-figure.is-icon img, .page-hero .ed-hero-figure.is-plain img { width: auto; max-width: min(80%, 360px); max-height: 260px; }

/* ---- Sections: no tinted bands, space does the separating ---- */
body.page-editorial .ed-bg-cream, body.page-editorial .ed-bg-sage, body.page-editorial .ed-bg-blue, body.page-editorial .ed-bg-tan,
.section.band-cream, .section.band-warm { background: transparent !important; }
body.page-editorial .section.ed-block, .section { padding: clamp(64px, 8vw, 120px) 0; }
body.page-editorial .page-hero + .ed-block { padding-top: clamp(40px, 5vw, 72px); }
.section h2, .ed-prose h2, .ed-copy h2, body.page-editorial .ed-block > .container:not(.ed-split):not(.ed-hero) > h2 { font: 600 clamp(2rem, 3.6vw, 3.1rem)/1.02 var(--ag-sans); letter-spacing: -0.045em; color: var(--ag-ink); text-transform: none; }
.ed-prose, .ed-copy, .section p { color: var(--ag-grey); }
.ed-prose p, .ed-copy p, body.page-editorial .ed-block p { font-size: clamp(1.08rem, 1.35vw, 1.22rem); line-height: 1.55; letter-spacing: -0.008em; }
.ed-prose strong, .ed-copy strong, .section p strong { color: var(--ag-ink); font-weight: 600; }
.ed-prose a:not(.btn):not(.pill):not(.more), .ed-copy a:not(.btn):not(.pill):not(.more), .section p a:not(.btn):not(.pill):not(.more) { color: var(--ag-ink); font-weight: 500; text-decoration: underline; text-decoration-color: rgba(17,20,24,.3); text-underline-offset: 4px; }
.ed-prose a:not(.btn):not(.pill):not(.more):hover, .ed-copy a:not(.btn):not(.pill):not(.more):hover, .section p a:not(.btn):not(.pill):not(.more):hover { text-decoration-color: var(--ag-ink); }
.section p a.btn, .ed-prose a.btn, .ed-copy a.btn, .section p a.pill, .ed-prose a.pill, .ed-copy a.pill { text-decoration: none; }
.ed-prose ul, .ed-copy ul { color: var(--ag-grey); }

/* Statement blocks become the big centred serif moment. */
body.page-editorial .ed-block.ed-v-statement > .container:not(.ed-split):not(.ed-hero) { display: block; text-align: center; max-width: 1000px; }
body.page-editorial .ed-block.ed-v-statement > .container:not(.ed-split):not(.ed-hero) > h2 { font: 400 clamp(2.3rem, 5vw, 4.3rem)/1.06 var(--ag-serif); letter-spacing: -0.03em; max-width: 20ch; margin: 0 auto; text-wrap: balance; }
body.page-editorial .ed-block.ed-v-statement > .container:not(.ed-split):not(.ed-hero) > h2::after { display: none; }
body.page-editorial .ed-block.ed-v-statement > .container:not(.ed-split):not(.ed-hero) > :not(h2) { max-width: 52ch; margin-left: auto; margin-right: auto; }
body.page-editorial .ed-block.ed-v-statement > .container:not(.ed-split):not(.ed-hero) > h2 + * { margin-top: clamp(24px, 3vw, 36px); }

/* Panels and quotes lose their boxes and rules. */
body.page-editorial .ed-block.ed-v-panel > .container:not(.ed-split):not(.ed-hero),
body.page-editorial .ed-block.ed-v-quote > .container:not(.ed-split):not(.ed-hero) { background: transparent; border: 0; box-shadow: none; }
body.page-editorial .ed-block.ed-v-panel > .container:not(.ed-split):not(.ed-hero) > :not(h2),
body.page-editorial .ed-block.ed-v-quote > .container:not(.ed-split):not(.ed-hero) > p { border-left: 0; padding-left: 0; }

/* ---- Process steps: serif numerals over a hairline, no orange discs ---- */
body.page-editorial .ed-v-process .ed-steps { counter-reset: agstep; list-style: none; padding: 0; gap: clamp(20px, 3vw, 40px); }
body.page-editorial .ed-v-process .ed-steps li { background: transparent; border: 0; border-top: 1.5px solid var(--ag-ink); border-radius: 0; box-shadow: none; padding: 20px 0 0; color: var(--ag-grey); font-size: 1.08rem; line-height: 1.55; }
body.page-editorial .ed-v-process .ed-steps li::before { counter-increment: agstep; content: counter(agstep, decimal-leading-zero); display: block; position: static; width: auto; height: auto; background: none; border-radius: 0; box-shadow: none; font: 400 2.4rem/1 var(--ag-serif); letter-spacing: -0.03em; color: var(--ag-ink); margin: 0 0 14px; text-align: left; }
.ed-steps { color: var(--ag-grey); }

/* ---- Checklists and standards: plain rows with an ink tick ---- */
body.page-editorial .ed-v-checklist ul, body.page-editorial .ed-block.ed-v-checklist .ed-standards, .ed-standards { background: transparent; border: 0; border-radius: 0; box-shadow: none; padding: 0; list-style: none; }
body.page-editorial .ed-v-checklist ul li, .ed-standards li { border-bottom: 1px solid var(--ag-line); padding: 16px 0 16px 40px; position: relative; color: var(--ag-ink); font-size: 1.08rem; line-height: 1.45; background: none; }
body.page-editorial .ed-v-checklist ul li + li { margin-top: 0; }
body.page-editorial .ed-v-checklist ul li::before, .ed-standards li::before { content: ""; position: absolute; left: 0; top: 17px; width: 24px; height: 24px; border-radius: 50%; background: var(--ag-dark) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat; color: transparent; border: 0; transform: none; }

/* ---- Service cards: big soft cards, no colour coding ---- */
.svc-grid { gap: clamp(16px, 2vw, 24px); }
.svc-card, body.page-editorial .svc-grid > .svc-card:nth-child(n), .svc-grid > .svc-card:nth-child(n) { background: #fff !important; border: 0 !important; border-radius: clamp(24px, 2.8vw, 36px); box-shadow: 0 30px 60px -40px rgba(17,20,24,.4), 0 0 0 1px rgba(17,20,24,.05) !important; padding: clamp(24px, 2.6vw, 34px); transition: transform .25s ease, box-shadow .25s ease; }
a.svc-card:hover { transform: translateY(-3px); box-shadow: 0 40px 70px -40px rgba(17,20,24,.5), 0 0 0 1px rgba(17,20,24,.1) !important; }
.svc-card .tag { font: 500 .9rem/1.3 var(--ag-sans); letter-spacing: 0; text-transform: none; color: var(--ag-grey) !important; background: none !important; padding: 0; }
.svc-card h3 { font: 600 clamp(1.3rem, 1.8vw, 1.55rem)/1.1 var(--ag-sans); letter-spacing: -0.03em; color: var(--ag-ink); margin-top: 10px; }
.svc-card p { color: var(--ag-grey); font-size: 1rem; line-height: 1.5; }
.svc-card .go, a.svc-card:hover .go { font: 600 1rem/1.2 var(--ag-sans); color: var(--ag-ink) !important; }

/* ---- FAQ: clean rows, round plus ---- */
.faq details { border: 0; border-bottom: 1px solid var(--ag-line); background: none; border-radius: 0; }
.faq details:first-of-type { border-top: 1px solid var(--ag-line); }
.faq summary { font: 500 clamp(1.1rem, 1.5vw, 1.3rem)/1.35 var(--ag-sans); letter-spacing: -0.015em; color: var(--ag-ink); padding: 24px 64px 24px 0; position: relative; }
.faq summary::after { content: "+"; position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; background: #f1f1ef; color: var(--ag-ink); display: grid; place-items: center; font: 400 1.5rem/1 var(--ag-sans); }
.faq details[open] summary::after { content: "\2212"; background: var(--ag-dark); color: #fff; transform: translateY(-50%); }
.faq details p { color: var(--ag-grey); font-size: 1.08rem; line-height: 1.6; padding: 0 64px 26px 0; margin: 0; }

/* ---- Closing CTA: dark rounded card, serif headline ---- */
.section.final, body.page-editorial .final { background: transparent !important; padding: clamp(40px, 5vw, 64px) clamp(12px, 2vw, 24px) clamp(12px, 2vw, 24px) !important; }
.section.final > .container, body.page-editorial .final > .container { background: var(--ag-dark); color: #fff; border-radius: var(--ag-r); max-width: none; padding: clamp(88px, 12vw, 160px) clamp(24px, 6vw, 80px); display: flex; flex-direction: column; align-items: center; text-align: center; gap: clamp(28px, 3.4vw, 40px); }
.section.final h2, body.page-editorial .final h2 { font: 400 clamp(2.5rem, 5.8vw, 5rem)/1.02 var(--ag-serif) !important; letter-spacing: -0.035em; color: #fff !important; max-width: 18ch; margin: 0; text-wrap: balance; }
.final p { color: rgba(255,255,255,.66) !important; }
.final .btn-outline { background: transparent; color: #fff; border-color: rgba(255,255,255,.35); }
.final .btn-outline:hover { background: rgba(255,255,255,.08); }

/* ---- Logos, industries, quotes ---- */
.ed-logos img, .trust-strip__logos img { filter: grayscale(1) brightness(0) opacity(.5) !important; }
.ed-industries figcaption { font-family: var(--ag-sans); color: var(--ag-grey); }
.ed-industries img { filter: grayscale(1); opacity: .8; }
.ed-quotes { gap: clamp(16px, 2vw, 24px); align-items: start; }
.ed-quote, .ed-quotes .ed-quote:nth-child(n) { background: #fff !important; border: 0; border-radius: clamp(24px, 2.8vw, 36px); box-shadow: 0 30px 60px -40px rgba(17,20,24,.4), 0 0 0 1px rgba(17,20,24,.05); padding: clamp(26px, 3vw, 38px); }
.ed-quote p { font: 400 clamp(1.2rem, 1.6vw, 1.4rem)/1.4 var(--ag-serif); letter-spacing: -0.01em; color: var(--ag-ink); }
.ed-quote .ed-who strong { font-family: var(--ag-sans); color: var(--ag-ink); }
.ed-quote .ed-who span { color: var(--ag-grey); }
.ed-quote .ed-who img { filter: none; }

/* ---- Forms ---- */
.form-field label { font: 500 .95rem/1.3 var(--ag-sans); color: var(--ag-ink); letter-spacing: 0; text-transform: none; }
.form-field input, .form-field textarea, .form-field select { font: 400 1.05rem/1.4 var(--ag-sans); border: 1.5px solid rgba(17,20,24,.25); border-radius: 18px; background: #fff; padding: 14px 18px; color: var(--ag-ink); }
.form-field input:focus, .form-field textarea:focus, .form-field select:focus { border-color: var(--ag-ink); box-shadow: none; outline: 0; }
.inc, .inc-grid > .inc:nth-child(n) { background: #fff !important; border: 0; border-radius: clamp(22px, 2.6vw, 32px); box-shadow: 0 30px 60px -40px rgba(17,20,24,.4), 0 0 0 1px rgba(17,20,24,.05); }

/* ---- Footer: calm, same ink as the closing card ---- */
.pr-footer { background: var(--ag-dark); font-family: var(--ag-sans); }
.pr-footer-grid h5 { font: 500 .9rem/1.3 var(--ag-sans); letter-spacing: 0; text-transform: none; color: rgba(255,255,255,.5); }
.pr-footer-grid ul { font-size: .98rem; }
.pr-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.pr-footer-brand svg { color: #fff; }

/* ---- Mobile ---- */
@media (max-width: 760px) {
  .pr-roundbtn { width: 48px; height: 48px; }
  .pr-menu-btn { padding: 14px 24px; }
  .faq summary { padding-right: 56px; }
  .faq details p { padding-right: 0; }
  .page-hero .ed-hero-figure:not(.is-icon):not(.is-plain) img { aspect-ratio: 4 / 3; }
}

/* ---- Fixes: accent rules, quote band, wide quote grids ---- */
body.page-editorial .ed-block > .container > p, body.page-editorial .ed-block > .container > blockquote,
body.page-editorial .ed-block.ed-v-wide > .container:not(.ed-split):not(.ed-hero) > p:first-of-type { border-left: 0 !important; padding-left: 0 !important; }
body.page-editorial .ed-block.ed-v-quote { background: transparent !important; color: var(--ag-ink); }
body.page-editorial .ed-block.ed-v-quote h2 { color: var(--ag-ink); }
body.page-editorial .ed-block.ed-v-quote .ed-prose, body.page-editorial .ed-block.ed-v-quote p, body.page-editorial .ed-block.ed-v-quote li { color: var(--ag-grey); }
body.page-editorial .ed-block > .container:not(.ed-split):not(.ed-hero) > .ed-quotes { grid-column: 1 / -1; max-width: none; margin-top: clamp(32px, 4vw, 48px); }
body.page-editorial .ed-block.ed-v-statement > .container:not(.ed-split):not(.ed-hero) > p { font-size: clamp(1.1rem, 1.5vw, 1.3rem); }

/* ============================================================
   Ask Premrest: pinned "Ask anything" bar + conversation sheet
   (js/ask.js). Prefixed pa- so it never collides with page classes.
   ============================================================ */
.pa-ask { display: flex; flex-direction: column; background: #fff; border: 1.5px solid rgba(17,20,24,.6); border-radius: 36px; padding: 20px 16px 14px 30px; box-shadow: var(--ag-lift); box-sizing: border-box; position: relative; }
/* Slow-moving light-refraction edge: a narrow band of brand light sweeps around
   the border. ::after is the crisp ring of light, ::before is its blurred bloom. */
@property --pa-edge { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
.pa-ask::before, .pa-ask::after {
  content: ""; position: absolute; inset: -1.5px; border-radius: inherit; padding: 2.5px;
  background: conic-gradient(from var(--pa-edge),
    transparent 0deg,
    rgba(253,203,64,0) 14deg,
    rgba(253,203,64,.95) 58deg,
    rgba(47,175,164,.9) 98deg,
    rgba(47,110,178,.85) 138deg,
    rgba(214,40,40,.5) 172deg,
    transparent 214deg, transparent 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask-composite: exclude;
  pointer-events: none;
}
.pa-ask::after { animation: pa-edge 9s linear infinite; }
.pa-ask::before { filter: blur(7px); opacity: .55; animation: pa-edge 9s linear infinite; }
@keyframes pa-edge { to { --pa-edge: 360deg; } }
@media (prefers-reduced-motion: reduce) {
  .pa-ask::after, .pa-ask::before { animation: none; }
}
.pa-ask textarea { border: 0; outline: 0; resize: none; background: transparent; font: 400 clamp(1.1rem, 1.7vw, 1.3rem)/1.4 var(--ag-sans); color: var(--ag-ink); padding: 2px 0; min-height: 2.8em; max-height: 8em; box-shadow: none; }
.pa-ask textarea::placeholder { color: #6a6f75; opacity: 1; }
.pa-ask .pa-bar { display: flex; justify-content: flex-end; align-items: center; gap: 6px; }
.pa-ask.pa-inline { flex-direction: row; align-items: center; padding: 10px 10px 10px 28px; border-radius: 999px; }
.pa-ask.pa-inline textarea { flex: 1; min-height: 0; height: 1.4em; overflow: hidden; white-space: nowrap; }
.pa-ibtn { width: 50px; height: 50px; border-radius: 50%; border: 0; background: transparent; color: var(--ag-ink); display: grid; place-items: center; cursor: pointer; padding: 0; }
.pa-ibtn:hover { background: rgba(17,20,24,.06); }
.pa-ibtn[hidden] { display: none; }
.pa-ibtn.is-on { background: var(--ag-dark); color: #fff; }
.pa-go { width: 58px; height: 58px; border-radius: 50%; border: 0; background: var(--ag-dark); color: #fff; display: grid; place-items: center; cursor: pointer; flex: none; padding: 0; transition: background .2s ease; }
.pa-go:hover { background: #000; }

.pa-dock { position: fixed; z-index: 150; left: 50%; bottom: max(16px, env(safe-area-inset-bottom)); width: min(760px, calc(100% - 24px)); transform: translate(-50%, 150%); transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.pa-dock.is-on { transform: translate(-50%, 0); }
.pa-dock .pa-ask { box-shadow: 0 24px 60px -20px rgba(17,20,24,.5); }

@media (max-width: 560px) {
  .pa-ask { border-radius: 30px; padding: 16px 10px 10px 22px; }
  .pa-ask.pa-inline { padding: 8px 8px 8px 22px; }
  .pa-ibtn { width: 46px; height: 46px; }
  .pa-go { width: 54px; height: 54px; }
}
/* Leave room so the pinned bar never covers the last lines of the footer. */
.pr-footer-bottom { padding-bottom: 96px !important; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* ---- Mobile overflow guards ---- */
.final h2, .page-hero h1 { overflow-wrap: anywhere; min-width: 0; }
.final h2 { max-width: min(18ch, 100%); }
.page-hero h1 { max-width: min(16ch, 100%); }
.section table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
pre, code { white-space: pre-wrap; overflow-wrap: anywhere; }

/* ---- Editorial grid fixes: several headings, or none, in one block ---- */
body.page-editorial .ed-block > .container:not(.ed-split):not(.ed-hero):has(> h2 ~ h2),
body.page-editorial .ed-block > .container:not(.ed-split):not(.ed-hero):not(:has(> h2)) { display: block; }
body.page-editorial .ed-block > .container:not(.ed-split):not(.ed-hero):has(> h2 ~ h2) > h2 ~ h2 { margin-top: clamp(56px, 7vw, 96px); }
body.page-editorial .ed-block > .container:not(.ed-split):not(.ed-hero):has(> h2 ~ h2) > :not(h2),
body.page-editorial .ed-block > .container:not(.ed-split):not(.ed-hero):not(:has(> h2)) > * { max-width: 68ch; }
body.page-editorial .ed-block > .container:not(.ed-split):not(.ed-hero) > :is(.svc-grid, .res-grid, .ed-quotes, .ed-logos, .ed-industries) { max-width: none !important; }
body.page-editorial .ed-block > .container:not(.ed-split):not(.ed-hero):has(> h2 ~ h2) > h2 + * { margin-top: 20px; }

/* ---- Resources, podcast listings and articles ---- */
.res-tab { font: 500 1rem/1 var(--ag-sans); border-radius: 999px; padding: 12px 20px; }
.res-tab.is-active { background: var(--ag-dark); border-color: var(--ag-dark); }
.res-select, .res-search { font: 400 1rem/1.3 var(--ag-sans); border-radius: 999px; border: 1.5px solid rgba(17,20,24,.2); padding: 12px 18px; }
.res-card { border: 0 !important; border-radius: clamp(24px, 2.8vw, 34px); overflow: hidden; box-shadow: 0 30px 60px -40px rgba(17,20,24,.4), 0 0 0 1px rgba(17,20,24,.05); }
.res-card-media { border-radius: 0; }
.res-card-placeholder { background: #ececea; }
.res-card-type { font: 500 .85rem/1 var(--ag-sans); letter-spacing: 0; text-transform: none; border-radius: 999px; padding: 7px 12px; }
.res-card-play { background: rgba(17,20,24,.78); }
.res-card-meta { font: 400 .9rem/1.3 var(--ag-sans); letter-spacing: 0; text-transform: none; color: var(--ag-grey); }
.res-card h3 { font: 600 1.25rem/1.2 var(--ag-sans) !important; letter-spacing: -0.025em; color: var(--ag-ink); }
.res-card p { color: var(--ag-grey); }
.res-card-cta { font: 600 1rem/1.2 var(--ag-sans); color: var(--ag-ink) !important; }
.res-featured-head h2 { font: 600 clamp(2rem, 3.6vw, 3.1rem)/1.02 var(--ag-sans); letter-spacing: -0.045em; }
.res-detail-head h1 { font: 400 clamp(2.5rem, 5.6vw, 4.6rem)/1.04 var(--ag-serif) !important; letter-spacing: -0.035em; }
.res-detail-head .lead { font: 400 clamp(1.15rem, 1.8vw, 1.45rem)/1.4 var(--ag-sans); color: var(--ag-grey); }
.res-detail-meta .pill { font: 500 .9rem/1 var(--ag-sans); background: #ececea; color: var(--ag-ink); }
.res-embed, .res-hero-img img { border-radius: var(--ag-r); overflow: hidden; box-shadow: var(--ag-lift); }
.res-body p, .res-body li { font-size: clamp(1.08rem, 1.3vw, 1.2rem); line-height: 1.65; color: #3b4046; }
.res-body h2, .res-body h3 { font-family: var(--ag-sans); font-weight: 600; letter-spacing: -0.03em; color: var(--ag-ink); }
.res-body a { color: var(--ag-ink); text-underline-offset: 4px; }
.res-body blockquote { border-left: 0 !important; padding: 0 !important; font: 400 clamp(1.4rem, 2.4vw, 2rem)/1.3 var(--ag-serif); letter-spacing: -0.02em; color: var(--ag-ink); }
.res-body img { border-radius: clamp(20px, 2.4vw, 32px); }

/* ============================================================
   Ask Premrest conversation view (js/ask.js). Full-screen page
   with the site header, answers as plain text on white.
   ============================================================ */
:root { --pa-link: #2456d6; --pa-soft: #f1f2f4; }
.pa-chat { position: fixed; inset: 0; z-index: 300; display: flex; flex-direction: column; background: #fff; font-family: var(--ag-sans); color: var(--ag-ink); opacity: 0; visibility: hidden; transition: opacity .35s ease, visibility 0s linear .35s; }
.pa-chat.is-open { opacity: 1; visibility: visible; transition: opacity .35s ease; }
.pa-col { width: 100%; max-width: 820px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 40px); box-sizing: border-box; }
.pa-chat-head { display: flex; align-items: center; justify-content: space-between; padding-top: max(22px, env(safe-area-inset-top)); padding-bottom: 14px; }
.pa-chat-head .pr-logo svg { height: clamp(24px, 2.6vw, 30px); }
.pa-chat-head .pr-logo { background: none; border: 0; padding: 0; cursor: pointer; }
.pa-head-actions { display: flex; align-items: center; gap: 10px; }
.pa-close { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 999px; border: 0; background: var(--ag-dark); color: #fff; cursor: pointer; transition: transform .18s cubic-bezier(.2,.8,.2,1), background-color .2s ease; }
.pa-close:hover { background: #000; }
.pa-close svg { width: 20px; height: 20px; }
.pa-scroll { flex: 1; overflow-y: auto; overscroll-behavior: contain; scroll-behavior: smooth; -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 64px), transparent); mask-image: linear-gradient(to bottom, #000 calc(100% - 64px), transparent); }
.pa-thread { padding-top: clamp(28px, 5vh, 56px); padding-bottom: 48px; }

.pa-msg { display: flex; margin: 0 0 clamp(32px, 4vh, 44px); animation: paIn .5s cubic-bezier(.2,.8,.2,1) both; }
.pa-msg.is-me { justify-content: flex-end; }
.pa-msg.is-me .pa-bub { background: var(--pa-soft); color: var(--ag-ink); padding: 20px 30px; border-radius: 36px; max-width: 80%; font-size: clamp(1.08rem, 1.5vw, 1.2rem); line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; }
.pa-msg.is-bot { display: block; }
.pa-msg.is-bot .pa-bub { font-size: clamp(1.08rem, 1.5vw, 1.2rem); line-height: 1.6; color: var(--ag-ink); overflow-wrap: anywhere; }
@keyframes paIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* Answer formatting */
.pa-bub p { margin: 0 0 1em; }
.pa-bub p:last-child { margin-bottom: 0; }
.pa-bub strong { font-weight: 600; }
.pa-bub h4 { font: 600 1em/1.4 var(--ag-sans); margin: 1.4em 0 .6em; }
.pa-bub h4:first-child { margin-top: 0; }
.pa-bub ul, .pa-bub ol { margin: 0 0 1em; padding-left: 2.2em; }
.pa-bub ul { list-style: square; }
.pa-bub li { margin: 0 0 .7em; padding-left: .5em; }
.pa-bub li::marker { font-size: .8em; color: var(--ag-ink); }
.pa-bub a, .pa-link { color: var(--pa-link); font-weight: 400; text-decoration: underline dotted 1.5px; text-decoration-color: rgba(36,86,214,.55); text-underline-offset: 6px; }
.pa-bub a:hover { text-decoration-style: solid; }
.pa-bub a::after, .pa-link::after { content: ""; display: inline-block; width: .7em; height: .7em; margin-left: .22em; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 11.5l7-7M5.5 4.5h6v6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 11.5l7-7M5.5 4.5h6v6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; }
.pa-bub a[href^="tel:"]::after { display: none; }
.pa-sources { margin-top: 1.2em; color: var(--ag-ink); }

/* "Working through your request…" with a highlight sweeping across the words */
.pa-status { display: inline-block; font-size: clamp(1.08rem, 1.5vw, 1.2rem); color: #8a8f96; background: linear-gradient(90deg, #8a8f96 0%, #8a8f96 35%, #15181b 50%, #8a8f96 65%, #8a8f96 100%) 0 0 / 250% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: paShimmer 2.2s linear infinite; }
@keyframes paShimmer { from { background-position: 100% 0; } to { background-position: -150% 0; } }
.pa-caret { display: inline-block; width: .5em; height: 1em; margin-left: .1em; vertical-align: -0.12em; border-radius: 2px; background: var(--ag-ink); animation: paCaret 1s steps(2, start) infinite; }
@keyframes paCaret { to { visibility: hidden; } }

/* Feedback + copy under each answer */
.pa-actions { display: flex; align-items: center; gap: 12px; margin-top: 30px; animation: paIn .4s ease both; }
.pa-group { display: inline-flex; gap: 2px; padding: 4px; border-radius: 999px; background: var(--pa-soft); }
.pa-act { width: 50px; height: 50px; border-radius: 50%; border: 0; background: var(--pa-soft); color: var(--ag-ink); display: grid; place-items: center; cursor: pointer; padding: 0; position: relative; transition: background .2s ease, transform .15s ease; }
.pa-group .pa-act { width: 46px; height: 46px; background: transparent; }
.pa-act:hover { background: #e4e6e9; }
.pa-act:active { transform: scale(.92); }
.pa-act svg { width: 22px; height: 22px; }
.pa-act .fill { fill: transparent; transition: fill .2s ease; }
.pa-act[aria-pressed="true"] .fill { fill: currentColor; }
.pa-act .tip { position: absolute; bottom: calc(100% + 8px); left: 0; transform: translateY(4px); white-space: nowrap; font-size: .82rem; background: var(--ag-dark); color: #fff; padding: 6px 10px; border-radius: 8px; opacity: 0; pointer-events: none; transition: opacity .2s ease, transform .2s ease; }
.pa-act.show-tip .tip { opacity: 1; transform: none; }

/* Footer: privacy + how AI works, then the composer */
.pa-foot { position: relative; padding: 6px 0 max(18px, env(safe-area-inset-bottom)); background: #fff; }
.pa-meta { display: flex; justify-content: center; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 14px; font-size: .95rem; color: var(--ag-grey); }
.pa-meta a, .pa-meta button { display: inline-flex; align-items: center; gap: 7px; color: var(--ag-grey); background: none; border: 0; padding: 0; font: inherit; cursor: pointer; text-decoration: underline dotted 1.5px; text-underline-offset: 5px; }
.pa-meta a:hover, .pa-meta button:hover { color: var(--ag-ink); }
.pa-meta svg { width: 17px; height: 17px; flex: none; }
.pa-howbtn { position: absolute; right: clamp(2px, 1vw, 8px); bottom: calc(100% + 10px); width: 34px; height: 34px; border-radius: 50%; border: 0; background: var(--pa-soft); color: var(--ag-grey); display: grid; place-items: center; cursor: pointer; padding: 0; opacity: .7; z-index: 1; transition: opacity .2s ease, background .2s ease, transform .15s ease; }
.pa-howbtn:hover { opacity: 1; background: #e4e6e9; }
.pa-howbtn:active { transform: scale(.92); }
.pa-howbtn svg { width: 17px; height: 17px; }
.pa-howbtn[aria-expanded="true"] { opacity: 1; background: #e4e6e9; }
.pa-howai { position: absolute; left: 50%; bottom: calc(100% + 4px); transform: translate(-50%, 8px); width: min(560px, calc(100% - 32px)); box-sizing: border-box; background: #fff; border-radius: 24px; padding: 22px 24px; box-shadow: 0 30px 70px -30px rgba(17,20,24,.45), 0 0 0 1px rgba(17,20,24,.06); font-size: .98rem; line-height: 1.55; color: #3b4046; opacity: 0; visibility: hidden; transition: opacity .25s ease, transform .25s ease, visibility 0s linear .25s; z-index: 2; }
.pa-howai.is-open { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition: opacity .25s ease, transform .25s ease; }
.pa-howai strong { display: block; color: var(--ag-ink); font-weight: 600; margin-bottom: 6px; }
.pa-howai p { margin: 0 0 .7em; }
.pa-howai p:last-child { margin: 0; }

/* Jump back to the latest message */
.pa-down { position: absolute; left: 50%; bottom: calc(100% + 10px); transform: translate(-50%, 10px) scale(.9); width: 52px; height: 52px; border-radius: 50%; border: 0; background: #e9ebee; color: var(--ag-ink); display: grid; place-items: center; cursor: pointer; opacity: 0; pointer-events: none; box-shadow: 0 10px 24px -12px rgba(17,20,24,.5); transition: opacity .25s ease, transform .25s ease; }
.pa-down.is-on { opacity: 1; pointer-events: auto; transform: translate(-50%, 0) scale(1); }

/* Send turns into stop while an answer streams */
.pa-go .i-stop { display: none; }
.pa-go.is-stop .i-send { display: none; }
.pa-go.is-stop .i-stop { display: block; }
.pa-go svg { transition: transform .25s cubic-bezier(.2,.8,.2,1); }
.pa-go:active svg { transform: scale(.85); }

@media (max-width: 560px) {
  .pa-msg.is-me .pa-bub { padding: 18px 26px; border-radius: 32px; }
  .pa-meta { font-size: .9rem; }
}
@media (prefers-reduced-motion: reduce) {
  .pa-chat, .pa-msg, .pa-actions, .pa-howai, .pa-down { animation: none !important; transition: none !important; }
  .pa-status { animation: none; -webkit-text-fill-color: #8a8f96; }
  .pa-scroll { scroll-behavior: auto; }
}

/* ============================================================
   Motion: page transitions, entrances, scroll reveals, presses.
   Everything here is skipped under prefers-reduced-motion.
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
  /* Page-to-page (js/motion.js): on an internal link, the content under the header fades
     up and out; the next page's content fades in while its hero rises in sequence.
     The header and pinned ask bar stay put, so the site feels like one continuous place. */
  main, #pr-footer { animation: agFade .45s ease both; }
  html.ag-leaving main, html.ag-leaving #pr-footer, html.ag-leaving .pr-overlay.is-open, html.ag-leaving .pa-chat.is-open { animation: agLeave .2s ease forwards; }

  /* Hero entrance: breadcrumb, headline, lead, buttons, figure arrive in sequence. */
  .page-hero .crumbs, .page-hero h1, .page-hero .lead, .page-hero-ctas, .page-hero .ed-hero-figure,
  .hero h1, .hero p, .stage, .ctrls { animation: agRise .9s cubic-bezier(.2,.8,.2,1) both; }
  .page-hero .crumbs, .hero h1 { animation-delay: .04s; }
  .page-hero h1 { animation-delay: .1s; }
  .page-hero .lead, .hero p { animation-delay: .2s; }
  .page-hero-ctas, .stage { animation-delay: .3s; }
  .page-hero .ed-hero-figure, .ctrls { animation-delay: .42s; }

  /* Scroll reveals (js/motion.js tags elements; content stays visible without JS). */
  html.ag-motion [data-ag-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.2,.8,.2,1), transform .8s cubic-bezier(.2,.8,.2,1); transition-delay: calc(var(--ag-i, 0) * 70ms); }
  html.ag-motion [data-ag-reveal].is-in { opacity: 1; transform: none; }
  html.ag-motion [data-ag-reveal="photo"] { transform: translateY(28px) scale(.98); }
  html.ag-motion [data-ag-reveal="photo"].is-in { transform: none; }

  /* Presses and hovers. */
  .btn, .pill, .pr-menu-btn, .pr-roundbtn, .pa-go, .pa-ibtn, .cbtn, .res-tab, .pa-act, .ag-role { transition: transform .18s cubic-bezier(.2,.8,.2,1), background-color .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease; }
  .btn:active, .pill:active, .pr-menu-btn:active, .pr-roundbtn:active, .pa-go:active, .pa-ibtn:active, .cbtn:active, .res-tab:active { transform: scale(.96); }
  .btn:hover, .pr-menu-btn:hover { transform: translateY(-1px); }
  .ed-figure .ed-photo, .svc .ph img { transition: transform .9s cubic-bezier(.2,.8,.2,1); }
  .ed-figure:hover .ed-photo { transform: scale(1.015); }
  .ed-prose a, .ed-copy a, .section p a { transition: text-decoration-color .2s ease; }

  /* FAQ: answer eases in; the plus turns as it becomes a minus. */
  .faq summary::after { transition: background-color .25s ease, color .25s ease, transform .35s cubic-bezier(.2,.8,.2,1); }
  .faq details[open] summary::after { transform: translateY(-50%) rotate(180deg); }
  .faq details[open] > :not(summary) { animation: agRise .45s cubic-bezier(.2,.8,.2,1) both; }

  /* Menu and search overlays fade up. */
  .pr-overlay.is-open { animation: agFade .28s ease both; }
  .pr-overlay.is-open .pr-overlay-body { animation: agRise .5s cubic-bezier(.2,.8,.2,1) .04s both; }

  /* Pinned bar lifts in with a little overshoot. */
  .pa-dock { transition: transform .6s cubic-bezier(.2,1.2,.3,1); }
}
@keyframes agRise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes agFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes agLeave { to { opacity: 0; transform: translateY(-8px); } }

/* Chat: grouped sources with origin badges, and the New chat control */
.pa-sources { display: grid; gap: 10px; margin-top: 1.2em; }
.pa-src-group { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: 0.92em; }
.pa-src-group a { display: inline-flex; align-items: center; padding: 5px 11px; border-radius: 999px; border: 1px solid var(--ag-line); background: var(--ag-surface); color: var(--ag-ink); text-decoration: none; line-height: 1.25; }
.pa-src-group a:hover { border-color: var(--ag-ink); }
.pa-badge { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 0.72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.pa-badge.is-premrest { background: #0a7b3e; color: #fff; }
.pa-badge.is-ext { background: #e9e9e6; color: var(--ag-grey); }
.pa-products { margin: 1.1em 0; }
.pa-products-title { font-size: .76rem; line-height: 1.2; font-weight: 700; text-transform: uppercase; color: var(--ag-grey); margin-bottom: 8px; }
.pa-products-row { display: flex; align-items: flex-start; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; -webkit-overflow-scrolling: touch; }
.pa-product { flex: 0 0 200px; min-width: 0; scroll-snap-align: start; display: flex !important; flex-direction: column; position: relative; border: 1px solid var(--ag-line); border-radius: 10px; overflow: hidden; color: var(--ag-ink) !important; text-decoration: none !important; background: var(--ag-surface); }
.pa-product:hover { border-color: var(--ag-ink); }
.pa-product::after { display: none !important; }
.pa-product img, .pa-product-fallback { width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; background: var(--pa-soft); display: block; }
.pa-product-fallback { display: grid; place-items: center; font-weight: 700; color: var(--ag-grey); }
.pa-product-copy { display: grid; gap: 4px; padding: 10px 12px 12px; line-height: 1.25; min-width: 0; }
.pa-product-copy small { color: var(--ag-grey); font-size: .72rem; overflow-wrap: anywhere; }
.pa-product-copy strong { font-size: 1rem; font-weight: 700; overflow-wrap: anywhere; word-break: normal; }
.pa-product-arrow { position: absolute; top: 8px; right: 8px; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 999px; background: var(--ag-surface); font-size: .9rem; }
.pa-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.pa-tag { max-width: 100%; box-sizing: border-box; font-size: .68rem; font-weight: 700; line-height: 1.2; padding: 5px 7px; border-radius: 999px; background: var(--pa-soft); color: var(--ag-ink); overflow-wrap: anywhere; }
.pa-tag-value { background: #dff3e6; color: #17603a; }
.pa-tag-mid { background: #e3ecfb; color: #1f4f9c; }
.pa-tag-premium { background: #fdf0c8; color: #7a5a00; }
.pa-tag-qs { background: #FDCB40; color: #1a1a1a; }
.pa-tag-lead { font-weight: 600; color: var(--ag-grey); }
@media (min-width: 700px) { .pa-product { flex-basis: 220px; } }
.pa-new { height: 46px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--ag-line); background: transparent; color: var(--ag-ink); font: inherit; font-weight: 600; cursor: pointer; }
.pa-new:hover { border-color: var(--ag-ink); }
.pa-new[hidden] { display: none; }
/* Chat → contact enquiry */
.pa-talk { display: inline-flex; align-items: center; gap: 6px; color: var(--ag-grey); }
.pa-talk[hidden] { display: none; }
.pa-talk button { background: none; border: 0; padding: 0; font: inherit; font-weight: 600; color: var(--ag-ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.pa-enq { margin: 0 0 12px; padding: 18px; border-radius: 22px; background: rgba(255,255,255,.88); -webkit-backdrop-filter: blur(20px) saturate(1.6); backdrop-filter: blur(20px) saturate(1.6); border: 1px solid var(--ag-line); box-shadow: var(--ag-lift); animation: paIn .35s cubic-bezier(.2,.9,.3,1.2) both; max-height: 60vh; overflow-y: auto; }
.pa-enq[hidden] { display: none; }
.pa-enq-head { display: flex; justify-content: space-between; align-items: center; }
.pa-enq-head strong { font-size: 1.05rem; }
.pa-enq-x { width: 34px; height: 34px; border-radius: 999px; border: 1px solid var(--ag-line); background: transparent; color: var(--ag-ink); display: grid; place-items: center; cursor: pointer; }
.pa-enq-x svg { width: 16px; height: 16px; }
.pa-enq-note { margin: 6px 0 12px; font-size: .88rem; color: var(--ag-grey); }
.pa-enq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pa-enq-grid label { display: flex; flex-direction: column; gap: 4px; font-size: .8rem; font-weight: 600; color: var(--ag-ink); }
.pa-enq-grid label span { font-weight: 400; color: var(--ag-grey); }
.pa-enq-grid .full { grid-column: 1 / -1; }
.pa-enq-grid input, .pa-enq-grid textarea { font: inherit; font-size: 16px; font-weight: 400; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--ag-line); background: #fff; color: var(--ag-ink); resize: vertical; }
.pa-enq-grid input:focus, .pa-enq-grid textarea:focus { outline: 2px solid var(--ag-ink); outline-offset: 1px; }
.pa-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.pa-enq-err { margin: 10px 0 0; font-size: .85rem; color: #b42318; }
.pa-enq-err[hidden] { display: none; }
.pa-enq-send { margin-top: 12px; height: 44px; padding: 0 22px; border-radius: 999px; border: 0; background: var(--ag-ink); color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.pa-enq-send:disabled { opacity: .6; cursor: wait; }
@media (max-width: 560px) {
  /* Keep the full-screen chat calm and usable on narrow phones. */
  .pa-chat .pa-col { padding-inline: 16px; }
  .pa-chat-head { gap: 8px; padding-top: max(14px, env(safe-area-inset-top)); padding-bottom: 10px; }
  .pa-chat-head .pr-logo { flex: 0 1 136px; min-width: 0; }
  .pa-chat-head .pr-logo img { display: block; width: 100% !important; max-width: 136px; height: auto !important; }
  .pa-head-actions { flex: none; gap: 6px; }
  .pa-chat .pa-new { height: 40px; padding-inline: 11px; font-size: .82rem; line-height: 1.05; }
  .pa-chat .pr-menu-btn { min-height: 40px; padding: 0 15px; font-size: .95rem; }
  .pa-chat .pa-close { width: 40px; height: 40px; }

  .pa-thread { padding-top: 22px; padding-bottom: 72px; }
  .pa-products { margin-inline: -16px; }
  .pa-products-title { margin-left: 16px; }
  .pa-products-row { gap: 10px; padding: 0 16px 10px; scroll-padding-inline: 16px; scrollbar-width: none; }
  .pa-products-row::-webkit-scrollbar { display: none; }
  .pa-product { flex-basis: min(176px, calc(100vw - 56px)); }
  .pa-product-copy { padding: 10px; }
  .pa-product-copy strong { font-size: .94rem; line-height: 1.2; }
  .pa-product-copy small { line-height: 1.3; }

  .pa-src-group { min-width: 0; align-items: flex-start; }
  .pa-src-group .pa-badge { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
  .pa-src-group a { max-width: 100%; box-sizing: border-box; white-space: normal; overflow-wrap: anywhere; }

  .pa-foot { padding-top: 10px; padding-bottom: max(10px, env(safe-area-inset-bottom)); }
  .pa-meta { gap: 8px; margin-bottom: 10px; font-size: .84rem; line-height: 1.35; }
  .pa-talk { justify-content: center; }
  .pa-howbtn { width: 30px; height: 30px; bottom: calc(100% + 8px); right: 4px; }
  .pa-howbtn svg { width: 16px; height: 16px; }
  .pa-down { bottom: calc(100% + 16px); width: 48px; height: 48px; }
  .pa-chat .pa-ask.pa-inline { padding: 7px 7px 7px 20px; }
  .pa-chat .pa-ibtn { width: 44px; height: 44px; }
  .pa-chat .pa-go { width: 50px; height: 50px; }
  .pa-enq { padding: 16px; max-height: min(60vh, 480px); }
  .pa-enq-grid { grid-template-columns: 1fr; }
}

@media (max-width: 370px) {
  .pa-chat .pa-col { padding-inline: 12px; }
  .pa-chat-head .pr-logo { flex-basis: 122px; }
  .pa-chat-head .pr-logo img { max-width: 122px; }
  .pa-head-actions { gap: 4px; }
  .pa-chat .pa-new { width: 40px; padding: 0 5px; font-size: .7rem; }
  .pa-chat .pr-menu-btn { padding-inline: 12px; }
  .pa-products { margin-inline: -12px; }
  .pa-products-title { margin-left: 12px; }
  .pa-products-row { padding-inline: 12px; scroll-padding-inline: 12px; }
}
