/* ==========================================================================
   HumanoSys page styles
   Page-level layouts built from the tokens and components.
   Sections: Home · Product (ERMS) · Downloads · Resources · Detail ·
   Company/Contact/Careers · Legal · Auth · Market landing
   ========================================================================== */

/* ==========================================================================
   Home
   ========================================================================== */

/* Hero carousel (samsung.com/us "hero KV").
   The stage never changes: one backdrop, one layout, fixed controls.
   Only the picture cross-fades (with a slow "camera drift" so it reads like video)
   and the copy swaps in place with a staggered rise. */
body.hs-body .hs-kv {
    --kv-bg: #f4efe4;
    --kv-dur: calc(var(--hs2-kv-interval) + 2.5s);
    position: relative; overflow: hidden;
    background:
        radial-gradient(120% 90% at 85% 10%, rgba(255,255,255,.75) 0%, rgba(255,255,255,0) 55%),
        var(--kv-bg);
}
body.hs-body .hs-kv__stage {
    display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    min-height: clamp(520px, calc(100svh - var(--hs2-header-h) - var(--hs2-utility-h)), 820px);
}
body.hs-body .hs-kv__visual { position: relative; overflow: hidden; isolation: isolate; background: #e9e3d6; }
body.hs-body .hs-kv__media {
    position: absolute; inset: 0; margin: 0; opacity: 0; z-index: 0;
    transition: opacity 1.4s cubic-bezier(.4, 0, .2, 1), filter 1.4s cubic-bezier(.4, 0, .2, 1);
    filter: blur(6px) saturate(1.1);
    will-change: opacity;
}
body.hs-body .hs-kv__media img { width: 100%; height: 100%; object-fit: cover; transform-origin: 50% 50%; will-change: transform; }
body.hs-body .hs-kv__media.is-active { opacity: 1; z-index: 2; filter: none; }
body.hs-body .hs-kv__media.is-leaving { opacity: 0; z-index: 1; filter: blur(4px); }
body.hs-body .hs-kv__media:is(.is-active, .is-leaving) img { animation: var(--kb, hs2-kb-a) var(--kv-dur) linear both; }
body.hs-body .hs-kv:not(.is-ticking) .hs-kv__media img { animation-play-state: paused; }
body.hs-body .hs-kv__media--a { --kb: hs2-kb-a; }
body.hs-body .hs-kv__media--b { --kb: hs2-kb-b; }
body.hs-body .hs-kv__media--c { --kb: hs2-kb-c; }
body.hs-body .hs-kv__media--d { --kb: hs2-kb-d; }
@keyframes hs2-kb-a { from { transform: scale(1.16) translate3d(-2.5%, 1.5%, 0); } to { transform: scale(1.02) translate3d(1%, -1%, 0); } }
@keyframes hs2-kb-b { from { transform: scale(1.04) translate3d(2%, 0, 0); } to { transform: scale(1.17) translate3d(-2%, -1.5%, 0); } }
@keyframes hs2-kb-c { from { transform: scale(1.15) translate3d(1.5%, 2%, 0); } to { transform: scale(1.03) translate3d(-1.5%, 0, 0); } }
@keyframes hs2-kb-d { from { transform: scale(1.03) translate3d(-1%, -1%, 0); } to { transform: scale(1.15) translate3d(2%, 1.5%, 0); } }
/* soft edge that melts the picture into the constant backdrop */
body.hs-body .hs-kv__sheen {
    position: absolute; inset: 0; z-index: 3; pointer-events: none;
    background:
        linear-gradient(90deg, rgba(0,0,0,0) 78%, var(--kv-bg) 100%),
        linear-gradient(0deg, rgba(0,0,0,.14) 0%, rgba(0,0,0,0) 22%);
}

body.hs-body .hs-kv__copies { display: grid; align-items: center; }
body.hs-body .hs-kv__copy {
    grid-area: 1 / 1; max-width: 620px; padding: 48px clamp(24px, 5vw, 80px) 96px;
    visibility: hidden; pointer-events: none;
}
body.hs-body .hs-kv__copy > * {
    opacity: 0; transform: translate3d(0, 28px, 0);
    transition: opacity .5s cubic-bezier(.4, 0, .2, 1), transform .5s cubic-bezier(.4, 0, .2, 1);
}
body.hs-body .hs-kv__copy.is-active { visibility: visible; pointer-events: auto; }
body.hs-body .hs-kv__copy.is-active > * {
    opacity: 1; transform: none;
    transition: opacity .9s var(--hs2-ease), transform 1.1s cubic-bezier(.16, 1, .3, 1);
}
body.hs-body .hs-kv__copy.is-active > :nth-child(1) { transition-delay: .35s; }
body.hs-body .hs-kv__copy.is-active > :nth-child(2) { transition-delay: .45s; }
body.hs-body .hs-kv__copy.is-active > :nth-child(3) { transition-delay: .58s; }
body.hs-body .hs-kv__copy.is-active > :nth-child(4) { transition-delay: .7s; }
body.hs-body .hs-kv__copy.is-leaving { visibility: visible; }
body.hs-body .hs-kv__copy.is-leaving > * { opacity: 0; transform: translate3d(0, -16px, 0); transition-duration: .4s; }

body.hs-body .hs-kv__kicker { display: block; margin-bottom: 12px; color: var(--hs2-ink); font-size: .9375rem; font-weight: 700; }
body.hs-body .hs-kv__copy h1,
body.hs-body .hs-kv__copy .hs-kv__title {
    margin: 0; color: var(--hs2-ink); font-size: var(--hs2-fs-hero); line-height: 1.2; letter-spacing: -.02em; font-weight: 800;
}
body.hs-body .hs-kv__copy p { margin: 16px 0 0; color: var(--hs2-ink); font-size: var(--hs2-fs-kv-desc); line-height: 1.35; font-weight: 400; }
body.hs-body .hs-kv__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; margin-top: 28px; }

body.hs-body .hs-kv__controls {
    position: absolute; left: clamp(16px, 3.5vw, 52px); bottom: 24px; z-index: 4;
    display: flex; align-items: center; gap: 12px; padding: 6px 10px; border-radius: var(--hs2-radius-pill);
    background: rgba(255,255,255,.78); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 4px 18px rgba(17,19,24,.08);
}
body.hs-body .hs-kv__dots { display: flex; gap: 6px; }
body.hs-body .hs-kv__dot {
    position: relative; width: 8px; height: 8px; padding: 0; overflow: hidden;
    border: 0; border-radius: 8px; background: rgba(17,19,24,.25); cursor: pointer;
    transition: width .6s cubic-bezier(.16, 1, .3, 1);
}
body.hs-body .hs-kv__dot::before { content: ""; position: absolute; inset: -12px -4px; }
body.hs-body .hs-kv__dot span { position: absolute; inset: 0; transform: scaleX(0); transform-origin: left; background: var(--hs2-ink); }
body.hs-body .hs-kv__dot[aria-current="true"] { width: 40px; }
body.hs-body .hs-kv__dot[aria-current="true"] span { transform: scaleX(1); }
body.hs-body .hs-kv.is-ticking .hs-kv__dot[aria-current="true"] span { animation: hs2-kv-progress var(--hs2-kv-interval) linear forwards; }
@keyframes hs2-kv-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
body.hs-body .hs-kv__arrow,
body.hs-body .hs-kv__toggle {
    display: inline-grid; place-items: center; width: 28px; height: 28px; padding: 0;
    border: 0; border-radius: 50%; background: transparent; color: var(--hs2-ink); cursor: pointer;
    transition: background var(--hs2-fast) ease, transform var(--hs2-fast) ease;
}
body.hs-body .hs-kv__arrow:hover, body.hs-body .hs-kv__toggle:hover { background: rgba(17,19,24,.08); }
body.hs-body .hs-kv__arrow:active, body.hs-body .hs-kv__toggle:active { transform: scale(.92); }
body.hs-body .hs-kv__arrow::before { content: ""; width: 7px; height: 7px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; }
body.hs-body .hs-kv__arrow--prev::before { transform: translateX(2px) rotate(-135deg); }
body.hs-body .hs-kv__arrow--next::before { transform: translateX(-2px) rotate(45deg); }
body.hs-body .hs-kv__toggle::before { content: ""; width: 8px; height: 10px; border-left: 2.5px solid currentColor; border-right: 2.5px solid currentColor; }
body.hs-body .hs-kv__toggle.is-paused::before {
    width: 0; height: 0; border: 0; margin-left: 2px;
    border-left: 9px solid currentColor; border-top: 5px solid transparent; border-bottom: 5px solid transparent;
}
@media (max-width: 900px) {
    body.hs-body .hs-kv__stage { grid-template-columns: 1fr; grid-template-rows: auto 1fr; min-height: 0; }
    body.hs-body .hs-kv__visual { aspect-ratio: 4 / 3; }
    body.hs-body .hs-kv__sheen { background: linear-gradient(180deg, rgba(0,0,0,0) 80%, var(--kv-bg) 100%); }
    body.hs-body .hs-kv__copies { align-items: start; }
    body.hs-body .hs-kv__copy { max-width: none; padding: 20px var(--hs2-gutter) 88px; }
    body.hs-body .hs-kv__controls { left: var(--hs2-gutter); bottom: 20px; }
}
@media (prefers-reduced-motion: reduce) {
    body.hs-body .hs-kv__media { transition: opacity .01s; filter: none; }
    body.hs-body .hs-kv__media img { animation: none !important; }
    body.hs-body .hs-kv__copy > *, body.hs-body .hs-kv__copy.is-active > * { transition: none; transform: none; }
}

/* Hero "product film" (samsung.com/us): seamless white stage + fixed message.
   Only the devices move. Intro/exit use the `translate` property, the idle float
   uses `transform`, so the two never fight. */
body.hs-body .hs-kv--film { --kv-bg: #ffffff; background: #fff; }
body.hs-body .hs-kv--film .hs-kv__copy { visibility: visible; pointer-events: auto; }
body.hs-body .hs-kv--film .hs-kv__copy > * { opacity: 1; transform: none; }
body.hs-body.hs2-js .hs-kv--film:not(.is-live) .hs-kv__copy > * { opacity: 0; transform: translate3d(0, 28px, 0); }
body.hs-body .hs-kv--film.is-live .hs-kv__copy > * { transition: opacity .9s var(--hs2-ease), transform 1.2s cubic-bezier(.16, 1, .3, 1); }
body.hs-body .hs-kv--film.is-live .hs-kv__copy > :nth-child(1) { transition-delay: .5s; }
body.hs-body .hs-kv--film.is-live .hs-kv__copy > :nth-child(2) { transition-delay: .62s; }
body.hs-body .hs-kv--film.is-live .hs-kv__copy > :nth-child(3) { transition-delay: .76s; }
body.hs-body .hs-kv--film.is-live .hs-kv__copy > :nth-child(4) { transition-delay: .9s; }

body.hs-body .hs-film { position: relative; overflow: hidden; background: #fff; min-height: 100%; }
/* soft floor shadow so the devices sit on the white like product cut-outs */
body.hs-body .hs-film::after {
    content: ""; position: absolute; left: 12%; right: 10%; bottom: 13%; height: 7%;
    background: radial-gradient(50% 50% at 50% 50%, rgba(17,19,24,.18), rgba(17,19,24,0) 70%);
    filter: blur(8px); z-index: 0;
}
body.hs-body .hs-device { position: absolute; z-index: 1; transition: translate 1.5s cubic-bezier(.16, 1, .3, 1), opacity 1s ease; }
body.hs-body.hs2-js .hs-kv--film:not(.is-live) .hs-device { translate: 0 45%; opacity: 0; }
body.hs-body .hs-device--laptop { left: 7%; right: 16%; bottom: 17%; }
body.hs-body .hs-device--phone { right: 7%; bottom: 11%; width: 20%; z-index: 2; transition-delay: .25s; }
body.hs-body .hs-kv--film.is-live .hs-device--laptop { animation: hs2-float 8s ease-in-out 1.6s infinite; }
body.hs-body .hs-kv--film.is-live .hs-device--phone { animation: hs2-float 7s ease-in-out 2.2s infinite reverse; }
body.hs-body .hs-kv--film.is-paused .hs-device { animation-play-state: paused; }
@keyframes hs2-float { 0%, 100% { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(0, -10px, 0); } }

body.hs-body .hs-device__lid {
    padding: 1.6% 1.6% 2.4%; border-radius: 18px 18px 6px 6px;
    background: linear-gradient(160deg, #2a2d33, #0f1114 60%); box-shadow: 0 30px 60px rgba(17,19,24,.18), inset 0 0 0 1px rgba(255,255,255,.06);
}
body.hs-body .hs-device--laptop .hs-device__screen { position: relative; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 6px; background: #0b0c0e; }
body.hs-body .hs-device__base {
    position: relative; height: 16px; margin: 0 -7%;
    border-radius: 2px 2px 14px 14px; background: linear-gradient(180deg, #e6e8ec 0%, #b9bdc4 70%, #9da2aa 100%);
    box-shadow: 0 12px 24px rgba(17,19,24,.16);
}
body.hs-body .hs-device__base::before { content: ""; position: absolute; left: 50%; top: 0; width: 16%; height: 6px; translate: -50% 0; border-radius: 0 0 8px 8px; background: #a5aab2; }
body.hs-body .hs-device--phone {
    aspect-ratio: 9 / 19; padding: 3.2%; border-radius: 22% / 10.5%;
    background: linear-gradient(160deg, #2a2d33, #0f1114 60%); box-shadow: 0 30px 50px rgba(17,19,24,.25), inset 0 0 0 1px rgba(255,255,255,.08);
}
body.hs-body .hs-device--phone .hs-device__screen { position: relative; height: 100%; overflow: hidden; border-radius: 18% / 8.5%; background: #0b0c0e; }
body.hs-body .hs-device--phone .hs-device__screen::before {
    content: ""; position: absolute; z-index: 3; left: 50%; top: 2.5%; width: 30%; height: 3.2%; translate: -50% 0; border-radius: 20px; background: #0b0c0e;
}
body.hs-body .hs-device--phone.is-dipping { translate: 0 135%; transition: translate .75s cubic-bezier(.55, 0, .7, .2); transition-delay: 0s; }

/* Screens change inside the device, never the stage */
body.hs-body .hs-shot {
    position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0;
}
body.hs-body .hs-shot.is-active { opacity: 1; z-index: 2; animation: hs2-shot-in 1.2s cubic-bezier(.16, 1, .3, 1) both; }
body.hs-body .hs-shot.is-leaving { opacity: 1; z-index: 1; animation: hs2-shot-out .9s cubic-bezier(.4, 0, .2, 1) both; }
@keyframes hs2-shot-in { from { opacity: 0; transform: translate3d(0, 10%, 0) scale(1.08); } to { opacity: 1; transform: none; } }
@keyframes hs2-shot-out { to { opacity: 0; transform: translate3d(0, -6%, 0) scale(.98); } }
/* a slow drift on whatever is on screen, like a screen recording */
body.hs-body .hs-device--laptop .hs-shot.is-active { animation: hs2-shot-in 1.2s cubic-bezier(.16, 1, .3, 1) both, hs2-screen-pan 9s linear 1.2s both; }
@keyframes hs2-screen-pan { from { object-position: 50% 40%; } to { object-position: 50% 60%; } }

body.hs-body .hs-film__caption { position: absolute; left: 0; right: 0; bottom: 5.5%; z-index: 3; display: grid; justify-items: center; pointer-events: none; }
body.hs-body .hs-film__caption span {
    grid-area: 1 / 1; color: var(--hs2-muted); font-size: .8125rem; font-weight: 700; letter-spacing: .02em;
    opacity: 0; translate: 0 8px; transition: opacity .6s ease, translate .8s cubic-bezier(.16, 1, .3, 1);
}
body.hs-body .hs-film__caption span.is-active { opacity: 1; translate: 0 0; transition-delay: .3s; }

body.hs-body .hs-film__toggle {
    position: absolute; left: clamp(16px, 3.5vw, 52px); bottom: 24px; z-index: 5;
    display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 1px solid rgba(17,19,24,.2); border-radius: 50%;
    background: rgba(255,255,255,.9); color: var(--hs2-ink); cursor: pointer;
}
body.hs-body .hs-film__toggle::before { content: ""; width: 8px; height: 10px; border-left: 2.5px solid currentColor; border-right: 2.5px solid currentColor; }
body.hs-body .hs-film__toggle.is-paused::before { width: 0; height: 0; border: 0; margin-left: 3px; border-left: 9px solid currentColor; border-top: 5px solid transparent; border-bottom: 5px solid transparent; }
body.hs-body .hs-film__toggle:hover { background: #fff; border-color: var(--hs2-ink); }

@media (max-width: 900px) {
    body.hs-body .hs-kv--film .hs-film { aspect-ratio: 5 / 4; min-height: 0; }
    body.hs-body .hs-device--laptop { left: 6%; right: 18%; bottom: 20%; }
    body.hs-body .hs-device--phone { width: 22%; right: 5%; bottom: 12%; }
    body.hs-body .hs-film__caption { bottom: 3%; }
    body.hs-body .hs-film__toggle { bottom: auto; top: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    body.hs-body .hs-device, body.hs-body .hs-shot, body.hs-body .hs-film__caption span { animation: none !important; transition: none !important; translate: none !important; }
}

/* Feature banner ("feature KV"): full-bleed, one half copy on a tint, one half image */
body.hs-body .hs-fkv {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
    min-height: clamp(420px, 52vw, 720px); margin-top: clamp(48px, 5vw, 80px);
    background: var(--fkv-bg, var(--hs2-surface)); color: var(--hs2-ink);
}
body.hs-body .hs-fkv--reverse { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
body.hs-body .hs-fkv--reverse .hs-fkv__copy { order: 2; }
body.hs-body .hs-fkv__copy { align-self: center; max-width: 660px; padding: 48px clamp(24px, 4.2vw, 60px); }
body.hs-body .hs-fkv h2 { margin: 0; color: inherit; font-size: var(--hs2-fs-kv); line-height: 1.2; letter-spacing: -.02em; font-weight: 800; }
body.hs-body .hs-fkv p { margin: 16px 0 0; color: inherit; font-size: var(--hs2-fs-kv-desc); line-height: 1.35; }
body.hs-body .hs-fkv__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; margin-top: 28px; }
body.hs-body .hs-fkv__media { margin: 0; overflow: hidden; }
body.hs-body .hs-fkv__media img { width: 100%; height: 100%; object-fit: cover; }
body.hs-body .hs-fkv--dark { --fkv-bg: var(--hs2-dark); color: #fff; }
body.hs-body .hs-fkv--dark h2 { color: #fff; }
body.hs-body .hs-fkv--dark .hs-text-cta { color: #fff; }
body.hs-body .hs-fkv--dark .hs-btn { --btn-fg: #fff; --btn-bg: transparent; --btn-bd: #fff; --btn-fg-h: var(--hs2-ink); --btn-bg-h: #fff; --btn-bd-h: #fff; }
@media (max-width: 900px) {
    body.hs-body .hs-fkv, body.hs-body .hs-fkv--reverse { grid-template-columns: 1fr; min-height: 0; }
    body.hs-body .hs-fkv__media { order: -1; aspect-ratio: 4 / 3; }
    body.hs-body .hs-fkv--reverse .hs-fkv__copy { order: 2; }
    body.hs-body .hs-fkv__copy { padding: 28px var(--hs2-gutter) 36px; }
}

/* Four square tiles under each banner ("feature cards") */
body.hs-body .hs-tiles-wrap { padding: var(--hs2-gap) var(--hs2-gutter) 0; }
body.hs-body .hs-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--hs2-gap); max-width: var(--hs2-container); margin: 0 auto; }
body.hs-body .hs-tile {
    position: relative; display: flex; flex-direction: column; align-items: center; aspect-ratio: 1 / 1; overflow: hidden;
    padding: 20px 20px 0; background: var(--hs2-surface); color: var(--hs2-ink); text-align: center; text-decoration: none;
}
body.hs-body .hs-tile__title { font-family: var(--hs2-font-display); font-size: var(--hs2-fs-tile); font-weight: 800; letter-spacing: -.01em; line-height: 1.3; }
body.hs-body .hs-tile__sub { margin-top: 4px; color: var(--hs2-muted); font-size: .875rem; }
body.hs-body .hs-tile__media { display: block; flex: 1; width: 100%; min-height: 0; margin-top: 16px; }
body.hs-body .hs-tile__media img {
    width: 100%; height: 100%; object-fit: contain; object-position: center bottom;
    transition: transform var(--hs2-slow) var(--hs2-ease);
}
body.hs-body .hs-tile:hover .hs-tile__media img { transform: scale(1.05); }
body.hs-body .hs-tile:hover .hs-tile__title { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 2px; }
@media (max-width: 900px) { body.hs-body .hs-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { body.hs-body .hs-tile { padding: 14px 12px 0; } }

/* Horizontal rails: "Recommended" and "Explore the stories" */
body.hs-body .hs-home-rail { padding-bottom: 0; }
body.hs-body .hs-home-rail--last { padding-bottom: var(--hs2-section); }
body.hs-body .hs-rail-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px; margin-bottom: 28px; }
body.hs-body .hs-rail-head h2 { margin: 0; font-size: var(--hs2-fs-h2); letter-spacing: -.02em; }
body.hs-body .hs-rail-head__light { font-weight: 500 !important; }
body.hs-body .hs-reco { display: flex; flex-direction: column; gap: 8px; color: var(--hs2-ink); text-decoration: none; }
body.hs-body .hs-reco__media { display: block; aspect-ratio: 1 / 1; margin-bottom: 12px; overflow: hidden; background: var(--hs2-surface); }
body.hs-body .hs-reco__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--hs2-slow) var(--hs2-ease); }
body.hs-body .hs-reco:hover .hs-reco__media img { transform: scale(1.04); }
body.hs-body .hs-reco strong { font-family: var(--hs2-font-display); font-size: 1.25rem; line-height: 1.3; letter-spacing: -.01em; }
body.hs-body .hs-reco small { color: var(--hs2-muted); font-size: .9375rem; line-height: 1.5; }
body.hs-body .hs-reco .hs-btn { align-self: flex-start; margin-top: 8px; }
body.hs-body .hs-story { display: flex; flex-direction: column; gap: 6px; color: var(--hs2-ink); text-decoration: none; }
body.hs-body .hs-story__media { display: grid; place-items: center; aspect-ratio: 1 / 1; margin-bottom: 12px; overflow: hidden; background: var(--hs2-surface); }
body.hs-body .hs-story__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--hs2-slow) var(--hs2-ease); }
body.hs-body .hs-story:hover .hs-story__media img { transform: scale(1.04); }
body.hs-body .hs-story__media--icon { background: var(--hs2-accent); font-size: 3rem; color: var(--hs2-ink); }
body.hs-body .hs-story small { color: var(--hs2-muted); font-size: .8125rem; font-weight: 700; }
body.hs-body .hs-story strong { font-size: 1.0625rem; line-height: 1.4; font-weight: 700; }
body.hs-body .hs-story:hover strong { text-decoration: underline; text-underline-offset: 3px; }

/* Split layout + scope list */
body.hs-body .hs-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
body.hs-body .hs-split__copy h2 { margin: 0 0 18px; font-size: var(--hs2-fs-h2); }
body.hs-body .hs-split__copy p { margin: 0 0 24px; color: var(--hs2-muted); font-size: var(--hs2-fs-lead); line-height: 1.55; }
body.hs-body .hs-scope-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
body.hs-body .hs-scope-list li {
    display: grid; grid-template-columns: 52px 1fr; gap: 18px; align-items: center;
    padding: 20px 24px; border-radius: var(--hs2-radius); background: var(--hs2-surface);
    transition: transform var(--hs2-med) var(--hs2-ease), background var(--hs2-fast) ease;
}
body.hs-body .hs-scope-list li:nth-child(2) { margin-left: 24px; }
body.hs-body .hs-scope-list li:nth-child(3) { margin-left: 48px; }
body.hs-body .hs-scope-list li:nth-child(4) { margin-left: 72px; }
body.hs-body .hs-scope-list li:hover { background: var(--hs2-accent-soft); transform: translateX(4px); }
body.hs-body .hs-scope-list__icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: #fff; color: var(--hs2-ink); font-size: 1.1rem; }
body.hs-body .hs-scope-list strong { display: block; color: var(--hs2-ink); font-size: 1.0625rem; }
body.hs-body .hs-scope-list small { display: block; color: var(--hs2-muted); font-size: .9375rem; line-height: 1.5; }
@media (max-width: 900px) {
    body.hs-body .hs-split { grid-template-columns: 1fr; }
    body.hs-body .hs-scope-list li:nth-child(n) { margin-left: 0; }
}

/* ==========================================================================
   Product pages (ERMS and shared product patterns)
   ========================================================================== */
body.hs-body .hs-product-hero { padding: clamp(40px, 6vw, 88px) 0 clamp(56px, 6vw, 104px); background: var(--hs2-surface); }
body.hs-body .hs-product-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
body.hs-body .hs-product-hero h1 { margin: 0; font-size: var(--hs2-fs-h1); line-height: 1.04; letter-spacing: -.04em; }
body.hs-body .hs-product-hero__copy > p { margin: 22px 0 0; max-width: 580px; font-size: var(--hs2-fs-lead); line-height: 1.55; color: var(--hs2-text); }
body.hs-body .hs-product-hero__proof { display: grid; gap: 6px; margin: 28px 0 0; padding: 20px 0 0; list-style: none; border-top: 1px solid var(--hs2-line-strong); color: var(--hs2-muted); font-size: .9375rem; }
body.hs-body .hs-product-hero__visual { position: relative; margin: 0; }
body.hs-body .hs-product-hero__visual img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--hs2-radius-lg); background: #fff; box-shadow: var(--hs2-shadow-lg); }
body.hs-body .hs-product-hero__visual figcaption {
    position: absolute; left: 20px; right: 20px; bottom: 20px; display: flex; flex-direction: column; gap: 2px;
    padding: 14px 18px; border-radius: var(--hs2-radius); background: rgba(255,255,255,.94); box-shadow: var(--hs2-shadow);
    backdrop-filter: blur(10px);
}
body.hs-body .hs-product-hero__visual figcaption span { color: var(--hs2-muted); font-size: .75rem; font-weight: 700; }
body.hs-body .hs-product-hero__visual figcaption strong { color: var(--hs2-ink); font-size: .9375rem; }

/* Scope + formula */
body.hs-body .hs-erms-scope { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--hs2-gap); align-items: stretch; }
body.hs-body .hs-scope-list--flat li:nth-child(n) { margin-left: 0; }
body.hs-body .hs-formula-card {
    display: flex; flex-direction: column; justify-content: center; gap: 12px;
    padding: clamp(28px, 4vw, 56px); border-radius: var(--hs2-radius-lg); background: var(--hs2-dark); color: var(--hs2-on-dark-muted);
}
body.hs-body .hs-formula-card .hs-eyebrow { color: var(--hs2-accent); margin: 0; }
body.hs-body .hs-formula-card strong { color: #fff; font-family: var(--hs2-font-display); font-size: var(--hs2-fs-h2); line-height: 1.1; letter-spacing: -.03em; }
body.hs-body .hs-formula-card p { margin: 0; line-height: 1.65; }

/* Chain of pills with arrows */
body.hs-body .hs-chain { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 6px; margin: 0 0 clamp(32px, 4vw, 56px); padding: 0; list-style: none; }
body.hs-body .hs-chain--left { justify-content: flex-start; margin: 0; }
body.hs-body .hs-chain li { display: inline-flex; align-items: center; gap: 6px; }
body.hs-body .hs-chain li:not(:last-child)::after { content: "→"; color: var(--hs2-muted); }
body.hs-body .hs-chain li { font-weight: 700; color: var(--hs2-ink); font-size: .9375rem; white-space: nowrap; }
body.hs-body .hs2-dark .hs-chain li { color: #fff; }

/* Alternating feature rows (Samsung product-page rhythm) */
body.hs-body .hs-feature-stack { display: grid; gap: clamp(40px, 6vw, 96px); }
body.hs-body .hs-feature { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 88px); align-items: center; }
body.hs-body .hs-feature--reverse .hs-feature__media { order: 2; }
body.hs-body .hs-feature__media { margin: 0; aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--hs2-radius-lg); background: var(--hs2-surface-2); }
body.hs-body .hs-feature__media img { width: 100%; height: 100%; object-fit: cover; }
body.hs-body .hs-feature__copy h2,
body.hs-body .hs-feature__copy h3 { margin: 0 0 16px; font-size: var(--hs2-fs-h2); }
body.hs-body .hs-feature__copy p { margin: 0; color: var(--hs2-muted); font-size: var(--hs2-fs-lead); line-height: 1.6; }
body.hs-body .hs-feature__copy .hs-text-cta { margin-top: 20px; }

/* Check card and quote list */
body.hs-body .hs-check-card { padding: clamp(28px, 4vw, 48px); border-radius: var(--hs2-radius-lg); background: var(--hs2-surface); }
body.hs-body .hs-check-card h3 { margin: 0 0 20px; font-size: var(--hs2-fs-h3); }
body.hs-body .hs-check-list { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
body.hs-body .hs-check-list li { display: grid; grid-template-columns: 28px 1fr; gap: 12px; align-items: start; color: var(--hs2-ink); font-weight: 600; }
body.hs-body .hs-check-list li::before {
    content: "✓"; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%;
    background: var(--hs2-accent); color: var(--hs2-ink); font-size: .8125rem; font-weight: 800;
}
body.hs-body .hs-quote-list { display: grid; gap: 10px; margin: 24px 0 0; padding: 0; list-style: none; }
body.hs-body .hs-quote-list li { padding: 14px 18px; border-radius: var(--hs2-radius); background: var(--hs2-surface); color: var(--hs2-ink); font-weight: 600; }

/* Wide media + step row on dark */
body.hs-body .hs-wide-media { margin: 0 0 var(--hs2-gap); aspect-ratio: 21 / 9; overflow: hidden; border-radius: var(--hs2-radius-lg); }
body.hs-body .hs-wide-media img { width: 100%; height: 100%; object-fit: cover; }
body.hs-body .hs-step-row { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--hs2-gap); margin: 0; padding: 0; list-style: none; }
body.hs-body .hs-step-row li { display: flex; flex-direction: column; gap: 6px; padding: 24px; border-radius: var(--hs2-radius); background: var(--hs2-dark-2); }
body.hs-body .hs-step-row span { color: var(--hs2-accent); font-size: .8125rem; font-weight: 800; }
body.hs-body .hs-step-row strong { color: #fff; font-size: 1.125rem; font-family: var(--hs2-font-display); }
body.hs-body .hs-step-row small { color: var(--hs2-on-dark-muted); font-size: .9375rem; line-height: 1.5; }
body.hs-body .hs2-dark .hs-section__actions .hs-text-cta { color: #fff; }

/* Spec grid (five concepts) */
body.hs-body .hs-spec-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--hs2-gap); }
body.hs-body .hs-spec-grid article { display: flex; flex-direction: column; gap: 8px; padding: 28px 24px; border-radius: var(--hs2-radius); background: #fff; }
body.hs-body .hs-spec-grid i { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 12px; border-radius: 14px; background: var(--hs2-accent); color: var(--hs2-ink); font-size: 1.1rem; }
body.hs-body .hs-spec-grid h3 { margin: 0; font-size: var(--hs2-fs-h3); }
body.hs-body .hs-spec-grid p { margin: 0; color: var(--hs2-muted); line-height: 1.55; }

@media (max-width: 1100px) {
    body.hs-body .hs-step-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    body.hs-body .hs-spec-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    body.hs-body .hs-product-hero__grid,
    body.hs-body .hs-erms-scope,
    body.hs-body .hs-feature { grid-template-columns: 1fr; }
    body.hs-body .hs-feature--reverse .hs-feature__media { order: 0; }
    body.hs-body .hs-wide-media { aspect-ratio: 16 / 9; }
}
@media (max-width: 640px) {
    body.hs-body .hs-step-row, body.hs-body .hs-spec-grid { grid-template-columns: 1fr; }
    body.hs-body .hs-product-hero__visual figcaption { position: static; margin-top: 12px; }
}

/* ==========================================================================
   Downloads (app catalog with logos)
   ========================================================================== */
body.hs-body .hs-breadcrumb { display: flex; align-items: center; gap: 8px; margin-bottom: 28px; color: var(--hs2-muted); font-size: .875rem; }
body.hs-body .hs-breadcrumb a { color: var(--hs2-ink); text-decoration: none; }
body.hs-body .hs-breadcrumb a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* App logo tile: consistent rounded-square frame for any uploaded logo */
body.hs-body .hs-app-logo {
    --size: 64px;
    position: relative; display: inline-grid; place-items: center; flex: none;
    width: var(--size); height: var(--size); overflow: hidden;
    border-radius: calc(var(--size) * .24);
    background: #fff; box-shadow: 0 0 0 1px rgba(17,19,24,.08), 0 4px 14px rgba(17,19,24,.08);
}
body.hs-body .hs-app-logo img { width: 100%; height: 100%; object-fit: contain; }
body.hs-body .hs-app-logo__initial {
    display: grid; place-items: center; width: 100%; height: 100%;
    background: linear-gradient(135deg, var(--hs2-accent), #ffdf73); color: var(--hs2-ink);
    font-family: var(--hs2-font-display); font-weight: 800; font-size: calc(var(--size) * .42);
}
body.hs-body .hs-app-logo--xs { --size: 28px; box-shadow: 0 0 0 1px rgba(17,19,24,.08); }
body.hs-body .hs-app-logo--sm { --size: 44px; }
body.hs-body .hs-app-logo--xl { --size: 112px; }

/* Hero */
body.hs-body .hs-dl-hero { padding: clamp(32px, 4vw, 56px) 0 clamp(56px, 6vw, 96px); background: linear-gradient(180deg, var(--hs2-surface) 0%, #fff 100%); }
body.hs-body .hs-dl-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
body.hs-body .hs-dl-hero__identity { display: flex; align-items: center; gap: 20px; margin-bottom: 24px; }
body.hs-body .hs-dl-hero__identity > div { display: flex; flex-wrap: wrap; gap: 8px; }
body.hs-body .hs-dl-hero h1 { margin: 0; font-size: var(--hs2-fs-h1); letter-spacing: -.04em; }
body.hs-body .hs-dl-hero__tagline { margin: 12px 0 0; color: var(--hs2-ink); font-size: clamp(1.15rem, 1rem + .6vw, 1.5rem); font-weight: 700; line-height: 1.35; }
body.hs-body .hs-dl-hero__desc { margin: 14px 0 0; max-width: 560px; color: var(--hs2-muted); font-size: var(--hs2-fs-lead); line-height: 1.55; }
body.hs-body .hs-dl-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
body.hs-body .hs-dl-hero__actions .hs-btn i { font-size: 1.05em; }
body.hs-body .hs-dl-hero__meta { margin: 16px 0 0; color: var(--hs2-muted); font-size: .875rem; }
body.hs-body .hs-dl-hero__visual {
    margin: 0; aspect-ratio: 16 / 10; overflow: hidden; border-radius: var(--hs2-radius-lg);
    background: #fff; box-shadow: var(--hs2-shadow-lg);
}
body.hs-body .hs-dl-hero__visual > img { width: 100%; height: 100%; object-fit: cover; }
body.hs-body .hs-dl-hero__visual--logo {
    display: grid; place-items: center;
    background: radial-gradient(circle at 30% 20%, #fff7d6 0%, var(--hs2-accent-soft) 45%, var(--hs2-surface) 100%);
}
body.hs-body .hs-dl-hero__visual--logo > img { width: 42%; height: auto; aspect-ratio: 1; object-fit: contain; border-radius: 24%; background: #fff; box-shadow: var(--hs2-shadow-lg); }
body.hs-body .hs-dl-hero__visual--logo .hs-app-logo__initial { width: 42%; height: auto; aspect-ratio: 1; border-radius: 24%; font-size: clamp(3rem, 8vw, 7rem); box-shadow: var(--hs2-shadow-lg); }
body.hs-body .hs-dl-hero--plain { padding-bottom: clamp(24px, 3vw, 40px); }
body.hs-body .hs-dl-hero__copy--center { max-width: 760px; margin: 0 auto; text-align: center; }
body.hs-body .hs-dl-hero__copy--center .hs-dl-hero__desc { margin-inline: auto; }

/* Catalog */
body.hs-body .hs-dl-catalog { padding-top: clamp(40px, 4vw, 72px); }
body.hs-body .hs-dl-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 20px; }
body.hs-body .hs-dl-chip {
    min-height: 40px; padding: 8px 18px; border: 1.5px solid var(--hs2-line-strong); border-radius: var(--hs2-radius-pill);
    background: #fff; color: var(--hs2-ink); font-size: .9375rem; font-weight: 700; cursor: pointer;
    transition: background var(--hs2-fast) ease, border-color var(--hs2-fast) ease, color var(--hs2-fast) ease;
}
body.hs-body .hs-dl-chip:hover { border-color: var(--hs2-ink); }
body.hs-body .hs-dl-chip[aria-pressed="true"] { background: var(--hs2-ink); border-color: var(--hs2-ink); color: #fff; }
body.hs-body .hs-dl-toolbar {
    position: sticky; top: calc(var(--hs2-header-h) + 8px); z-index: 5;
    display: grid; grid-template-columns: minmax(220px, 1fr) minmax(160px, 220px) minmax(160px, 220px); gap: 8px;
    max-width: 960px; margin: 0 auto; padding: 8px; border-radius: var(--hs2-radius-pill);
    background: rgba(245,245,247,.9); box-shadow: 0 0 0 1px var(--hs2-line);
    backdrop-filter: saturate(180%) blur(14px); -webkit-backdrop-filter: saturate(180%) blur(14px);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    body.hs-body .hs-dl-toolbar { background: var(--hs2-surface); }
}
body.hs-body .hs-dl-search,
body.hs-body .hs-dl-select {
    display: flex; align-items: center; min-height: 48px; margin: 0;
    border-radius: var(--hs2-radius-pill); background: #fff; box-shadow: 0 0 0 1px var(--hs2-line);
}
body.hs-body .hs-dl-search { gap: 10px; padding: 0 18px; color: var(--hs2-muted); }
body.hs-body .hs-dl-search input,
body.hs-body .hs-dl-select select { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--hs2-ink); font: inherit; }
body.hs-body .hs-dl-select select { height: 48px; padding: 0 16px; border-radius: var(--hs2-radius-pill); cursor: pointer; }
body.hs-body .hs-dl-search:focus-within,
body.hs-body .hs-dl-select:focus-within { box-shadow: 0 0 0 2px var(--hs2-focus); }
body.hs-body .hs-dl-results { margin: 28px 0 16px; color: var(--hs2-muted); font-size: .875rem; text-align: center; }

body.hs-body .hs-dl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: var(--hs2-gap); }
body.hs-body .hs-app-card {
    display: flex; flex-direction: column; gap: 10px; min-height: 300px;
    padding: 28px; border-radius: var(--hs2-radius-lg); background: var(--hs2-surface);
    transition: transform var(--hs2-med) var(--hs2-ease), box-shadow var(--hs2-med) var(--hs2-ease), background var(--hs2-fast) ease;
}
body.hs-body .hs-app-card:hover { background: #fff; transform: translateY(-4px); box-shadow: var(--hs2-shadow); }
body.hs-body .hs-app-card[hidden] { display: none; }
body.hs-body .hs-app-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
body.hs-body .hs-app-card h3 { margin: 0; font-size: 1.375rem; letter-spacing: -.02em; }
body.hs-body .hs-app-card__summary {
    margin: 0; color: var(--hs2-muted); line-height: 1.55;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
body.hs-body .hs-app-card__platforms { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 4px 0 0; padding: 0; list-style: none; color: var(--hs2-text); font-size: .8125rem; font-weight: 600; }
body.hs-body .hs-app-card__platforms i { margin-right: 4px; color: var(--hs2-muted); }
body.hs-body .hs-app-card__foot { display: flex; flex-direction: column; gap: 12px; margin-top: auto; padding-top: 16px; }
body.hs-body .hs-app-card__version { color: var(--hs2-muted); font-size: .8125rem; }
body.hs-body .hs-app-card__actions { display: flex; flex-wrap: wrap; gap: 8px; }
body.hs-body .hs-app-card__actions .hs-btn i { font-size: 1em; }

body.hs-body .hs-dl-empty {
    max-width: 640px; margin: 0 auto; padding: clamp(32px, 5vw, 64px); text-align: center;
    border-radius: var(--hs2-radius-lg); background: var(--hs2-surface);
}
body.hs-body .hs-dl-empty__icon { display: inline-grid; place-items: center; width: 64px; height: 64px; margin-bottom: 16px; border-radius: 20px; background: #fff; color: var(--hs2-ink); font-size: 1.5rem; }
body.hs-body .hs-dl-empty h2, body.hs-body .hs-dl-empty h3 { margin: 0 0 8px; font-size: var(--hs2-fs-h3); }
body.hs-body .hs-dl-empty p { margin: 0; color: var(--hs2-muted); }
body.hs-body .hs-dl-empty a { color: var(--hs2-ink); font-weight: 700; }
body.hs-body .hs-dl-empty .hs-btn { margin-top: 16px; }
body.hs-body .hs-dl-empty--filtered { margin-top: 16px; }

@media (max-width: 900px) {
    body.hs-body .hs-dl-hero__grid { grid-template-columns: 1fr; }
    body.hs-body .hs-dl-hero__visual { order: -1; }
}
@media (max-width: 760px) {
    body.hs-body .hs-dl-toolbar { position: static; grid-template-columns: 1fr 1fr; border-radius: var(--hs2-radius); }
    body.hs-body .hs-dl-search { grid-column: 1 / -1; }
    body.hs-body .hs-dl-chips { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; margin-inline: calc(-1 * var(--hs2-gutter)); padding-inline: var(--hs2-gutter); }
    body.hs-body .hs-dl-chip { flex: none; }
    body.hs-body .hs-dl-hero__actions .hs-btn { flex: 1 1 100%; }
    body.hs-body .hs-app-logo--xl { --size: 88px; }
}

/* ---------- Admin (downloads management) ---------- */
body.hs-body .hs-admin { padding: clamp(32px, 4vw, 64px) 0 var(--hs2-section); background: var(--hs2-surface); min-height: 70vh; }
body.hs-body .hs-admin h1 { margin: 8px 0; font-size: var(--hs2-fs-h2); }
body.hs-body .hs-admin__narrow { max-width: 860px; }
body.hs-body .hs-admin__back { display: inline-block; margin-bottom: 12px; color: var(--hs2-ink); font-weight: 700; text-decoration: none; }
body.hs-body .hs-admin__header { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
body.hs-body .hs-admin__header p { margin: 0; color: var(--hs2-muted); }
body.hs-body .hs-admin__header-actions { display: flex; gap: 10px; }
body.hs-body .hs-admin-flash { padding: 14px 18px; border-radius: var(--hs2-radius-sm); background: #e6f4ec; color: var(--hs2-success); font-weight: 700; }
body.hs-body .hs-admin-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
body.hs-body .hs-admin-row {
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 16px; align-items: center;
    padding: 14px 18px; border-radius: var(--hs2-radius); background: #fff;
}
body.hs-body .hs-admin-row__main strong { display: block; color: var(--hs2-ink); }
body.hs-body .hs-admin-row__main small { color: var(--hs2-muted); }
body.hs-body .hs-admin-row__status { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
body.hs-body .hs-admin-row__actions { display: flex; align-items: center; gap: 8px; }
body.hs-body .hs-admin-row__actions form { margin: 0; }
body.hs-body .hs-admin-delete { padding: 8px 12px; border: 0; border-radius: var(--hs2-radius-pill); background: none; color: var(--hs2-danger); font-weight: 700; cursor: pointer; }
body.hs-body .hs-admin-delete:hover { background: #fbeceb; }
body.hs-body .hs-admin-form { display: grid; gap: 16px; margin-top: 24px; }
body.hs-body .hs-admin-form__summary:empty,
body.hs-body .hs-admin-form__summary.validation-summary-valid { display: none; }
body.hs-body .hs-admin-form__summary { padding: 14px 18px; border-radius: var(--hs2-radius-sm); background: #fbeceb; color: var(--hs2-danger); }
body.hs-body .hs-admin-form__summary ul { margin: 0; padding-left: 18px; }
body.hs-body .hs-admin-card { display: grid; gap: 16px; margin: 0; padding: 24px; border: 0; border-radius: var(--hs2-radius); background: #fff; }
body.hs-body .hs-admin-card legend { float: none; width: auto; margin: 0 0 4px; padding: 0; color: var(--hs2-ink); font-family: var(--hs2-font-display); font-size: 1.125rem; font-weight: 800; }
body.hs-body .hs-admin-field { display: grid; gap: 6px; }
body.hs-body .hs-admin-field label { margin: 0; color: var(--hs2-ink); font-size: .875rem; font-weight: 700; }
body.hs-body .hs-admin-field label small { color: var(--hs2-muted); font-weight: 500; }
body.hs-body .hs-admin-hint { color: var(--hs2-muted); font-size: .8125rem; }
body.hs-body .hs-admin-error { color: var(--hs2-danger); font-size: .8125rem; font-weight: 600; }
body.hs-body .hs-admin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
body.hs-body .hs-admin-check { display: flex; align-items: center; gap: 10px; color: var(--hs2-ink); font-weight: 600; }
body.hs-body .hs-admin-check input { width: 18px; height: 18px; accent-color: var(--hs2-ink); }
body.hs-body .hs-admin-check small { color: var(--hs2-muted); font-weight: 500; }
body.hs-body .hs-admin-media { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px; align-items: start; }
body.hs-body .hs-admin-media__preview--shot {
    display: grid; place-items: center; width: 200px; aspect-ratio: 16 / 10; overflow: hidden;
    border-radius: var(--hs2-radius-sm); background: var(--hs2-surface); color: var(--hs2-muted); font-size: .8125rem;
}
body.hs-body .hs-admin-media__preview img { width: 100%; height: 100%; object-fit: contain; }
body.hs-body .hs-admin-media__preview--shot img { object-fit: cover; }
body.hs-body .hs-admin-form__actions { display: flex; gap: 12px; }
@media (max-width: 760px) {
    body.hs-body .hs-admin-row { grid-template-columns: auto minmax(0, 1fr); }
    body.hs-body .hs-admin-row__status, body.hs-body .hs-admin-row__actions { grid-column: 2; justify-content: flex-start; }
    body.hs-body .hs-admin-grid, body.hs-body .hs-admin-media { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Resource hubs: Insights, Podcast, Success stories
   (legacy markup, new look; !important only where legacy files force colours)
   ========================================================================== */
body.hs-body .hs-resource-hero,
body.hs-body .hs-support-hero,
body.hs-body .hs-legal-hero,
body.hs-body .hs-detail-hero {
    position: relative; min-height: 0 !important; padding: clamp(48px, 6vw, 96px) 0 clamp(40px, 5vw, 72px) !important;
    background: var(--hs2-surface) !important; color: var(--hs2-text) !important; border: 0 !important; overflow: hidden;
}
body.hs-body :is(.hs-resource-hero, .hs-support-hero, .hs-legal-hero, .hs-detail-hero)::before,
body.hs-body :is(.hs-resource-hero, .hs-support-hero, .hs-legal-hero, .hs-detail-hero)::after { content: none !important; display: none !important; }
body.hs-body :is(.hs-resource-hero, .hs-support-hero, .hs-legal-hero, .hs-detail-hero) h1 {
    max-width: 900px; margin: 0; color: var(--hs2-ink) !important; font-size: var(--hs2-fs-h1) !important;
    line-height: 1.04 !important; letter-spacing: -.04em !important; font-weight: 800 !important;
}
body.hs-body :is(.hs-resource-hero, .hs-support-hero, .hs-legal-hero, .hs-detail-hero) h1 em { color: inherit !important; }
body.hs-body :is(.hs-resource-hero, .hs-support-hero, .hs-legal-hero) p {
    max-width: 620px !important; color: var(--hs2-text) !important; font-size: var(--hs2-fs-lead) !important; line-height: 1.55 !important;
}
body.hs-body :is(.hs-resource-hero, .hs-support-hero, .hs-legal-hero, .hs-detail-hero) .hs-page-eyebrow,
body.hs-body .hs-detail-kicker { color: var(--hs2-muted) !important; font-size: var(--hs2-fs-eyebrow) !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; margin-bottom: 14px; }
body.hs-body .hs-resource-hero__grid { align-items: end !important; }

body.hs-body .hs-resource-section { padding: clamp(40px, 5vw, 80px) 0 !important; background: #fff !important; color: var(--hs2-text); }
body.hs-body .hs-resource-toolbar {
    display: flex !important; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px;
    margin: 0 0 24px !important; padding: 0 0 16px !important; border: 0 !important; border-bottom: 1px solid var(--hs2-line) !important;
    color: var(--hs2-muted) !important;
}
body.hs-body .hs-resource-toolbar > div { color: var(--hs2-ink) !important; font-family: var(--hs2-font-display); font-size: clamp(1.25rem, 1.1rem + .6vw, 1.75rem) !important; font-weight: 800 !important; letter-spacing: -.02em !important; text-transform: none !important; }
body.hs-body .hs-resource-toolbar > div > span { display: none; }
body.hs-body .hs-resource-toolbar p { margin: 0 !important; color: var(--hs2-muted) !important; font-size: .9375rem !important; }

body.hs-body .hs-resource-feed {
    display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)) !important; gap: var(--hs2-gap) !important;
    border: 0 !important; background: none !important;
}
body.hs-body .hs-resource-feed > .hs-resource-skeleton,
body.hs-body .hs-resource-feed > .hs-resource-empty,
body.hs-body .hs-resource-feed > .hs-podcast-tabs,
body.hs-body .hs-resource-feed > .hs-podcast-pane,
body.hs-body .hs-resource-feed > .hs-podcast-grid,
body.hs-body .hs-resource-feed > .hs-jobs-error { grid-column: 1 / -1; }
body.hs-body .hs-resource-card {
    display: flex !important; flex-direction: column !important; min-height: 0 !important; grid-column: auto !important; grid-row: auto !important;
    overflow: hidden; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: var(--hs2-radius-lg) !important;
    background: var(--hs2-surface) !important; color: var(--hs2-text) !important; box-shadow: none !important;
    transition: transform var(--hs2-med) var(--hs2-ease), box-shadow var(--hs2-med) var(--hs2-ease), background var(--hs2-fast) ease;
}
body.hs-body .hs-resource-card:hover { transform: translateY(-4px); box-shadow: var(--hs2-shadow) !important; background: #fff !important; }
body.hs-body .hs-resource-card__media { position: relative; aspect-ratio: 16 / 10 !important; height: auto !important; min-height: 0 !important; margin: 0 !important; overflow: hidden; border: 0 !important; border-radius: 0 !important; background: var(--hs2-surface-2) !important; }
body.hs-body .hs-resource-card__media::before, body.hs-body .hs-resource-card__media::after { content: none !important; }
body.hs-body .hs-resource-card__media img { position: static !important; width: 100% !important; height: 100% !important; object-fit: cover !important; filter: none !important; opacity: 1 !important; transform: none !important; transition: transform var(--hs2-slow) var(--hs2-ease) !important; }
body.hs-body .hs-resource-card:hover .hs-resource-card__media img { transform: scale(1.04) !important; }
body.hs-body .hs-resource-card__body { display: flex !important; flex-direction: column; gap: 10px; flex: 1; padding: 24px 28px 28px !important; background: none !important; }
body.hs-body .hs-resource-card__meta { display: flex !important; justify-content: space-between; gap: 12px; margin: 0 !important; color: var(--hs2-muted) !important; font-size: .8125rem !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; }
body.hs-body .hs-resource-card__meta span:first-child { color: var(--hs2-accent-ink) !important; font-weight: 800 !important; }
body.hs-body .hs-resource-card h2,
body.hs-body .hs-resource-card h3 { margin: 0 !important; color: var(--hs2-ink) !important; font-size: var(--hs2-fs-h3) !important; line-height: 1.25 !important; letter-spacing: -.02em !important; font-weight: 800 !important; }
body.hs-body .hs-resource-card p { margin: 0 !important; color: var(--hs2-muted) !important; font-size: 1rem !important; line-height: 1.6 !important; }
body.hs-body .hs-resource-card__link {
    display: inline-flex !important; align-items: center; gap: 6px; margin-top: auto !important; padding-top: 8px !important;
    color: var(--hs2-ink) !important; font-size: .9375rem !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important;
    text-decoration: underline !important; text-decoration-thickness: 1.5px !important; text-underline-offset: 5px;
}
body.hs-body .hs-resource-card__link span { display: none; }
body.hs-body .hs-resource-card__link::after { content: ""; width: 7px; height: 7px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }
body.hs-body .hs-resource-empty {
    padding: clamp(32px, 5vw, 56px) !important; border: 0 !important; border-radius: var(--hs2-radius-lg) !important; background: var(--hs2-surface) !important;
    color: var(--hs2-muted) !important; text-align: center;
}
body.hs-body .hs-resource-empty h3 { color: var(--hs2-ink) !important; }
body.hs-body .hs-resource-empty .btn, body.hs-body .hs-resource-empty button {
    min-height: 40px; padding: 8px 20px; border: 1.5px solid var(--hs2-ink) !important; border-radius: var(--hs2-radius-pill) !important;
    background: var(--hs2-ink) !important; color: #fff !important; font-weight: 700;
}
body.hs-body .hs-resource-skeleton { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)) !important; gap: var(--hs2-gap) !important; }
body.hs-body .hs-resource-skeleton__card { border: 0 !important; border-radius: var(--hs2-radius-lg) !important; background: var(--hs2-surface) !important; overflow: hidden; }
body.hs-body .hs-resource-skeleton__media { aspect-ratio: 16 / 10; height: auto !important; background: var(--hs2-surface-2) !important; }
body.hs-body .hs-resource-skeleton__lines i { background: var(--hs2-surface-2) !important; border-radius: 6px; }

/* Podcast cards & tabs */
body.hs-body .hs-podcast-tabs { display: flex !important; gap: 24px !important; margin: 0 0 24px !important; padding: 0 !important; border: 0 !important; background: none !important; }
body.hs-body .hs-podcast-tabs button, body.hs-body .hs-podcast-tabs a {
    padding: 10px 2px !important; border: 0 !important; border-bottom: 2px solid transparent !important; border-radius: 0 !important; background: none !important;
    color: var(--hs2-muted) !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important;
}
body.hs-body .hs-podcast-tabs :is(button, a):is(.active, [aria-selected="true"]) { color: var(--hs2-ink) !important; border-bottom-color: var(--hs2-ink) !important; }
body.hs-body .hs-podcast-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)) !important; gap: var(--hs2-gap) !important; }
body.hs-body .hs-podcast-card {
    overflow: hidden; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: var(--hs2-radius-lg) !important;
    background: var(--hs2-surface) !important; color: var(--hs2-text) !important; box-shadow: none !important;
}
body.hs-body .hs-podcast-card__image { aspect-ratio: 1 / 1; height: auto !important; border-radius: 0 !important; overflow: hidden; }
body.hs-body .hs-podcast-card__image img { width: 100%; height: 100%; object-fit: cover; }
body.hs-body .hs-podcast-card__body { padding: 20px 24px 24px !important; }
body.hs-body .hs-podcast-card__body :is(h3, h4, strong) { color: var(--hs2-ink) !important; }
body.hs-body .hs-podcast-card__body :is(p, small, span) { color: var(--hs2-muted) !important; }

/* ==========================================================================
   Detail pages: article, story, podcast episode, job
   ========================================================================== */
body.hs-body .hs-detail { background: #fff !important; color: var(--hs2-text) !important; }
body.hs-body .hs-detail-hero__inner { max-width: 960px; }
body.hs-body .hs-detail-hero__meta { display: flex !important; flex-wrap: wrap; gap: 8px 24px; margin-top: 20px !important; color: var(--hs2-muted) !important; font-size: .9375rem !important; }
body.hs-body .hs-detail-hero__meta strong { color: var(--hs2-ink) !important; }
body.hs-body .hs-detail-actions { margin-top: 24px !important; display: flex; flex-wrap: wrap; gap: 12px; }
body.hs-body .hs-detail-actions a {
    display: inline-flex !important; align-items: center; gap: 8px; min-height: 40px; padding: 8px 18px !important;
    border: 1.5px solid var(--hs2-ink) !important; border-radius: var(--hs2-radius-pill) !important; background: transparent !important;
    color: var(--hs2-ink) !important; font-size: .875rem !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; text-decoration: none;
}
body.hs-body .hs-detail-actions a:hover { background: var(--hs2-ink) !important; color: #fff !important; }
body.hs-body .hs-detail-actions a:first-child:not(:only-child),
body.hs-body .hs-detail-actions .hs-job-apply { background: var(--hs2-ink) !important; color: #fff !important; }
body.hs-body .hs-detail-layout {
    display: grid !important; grid-template-columns: minmax(0, 1fr) 320px !important; gap: clamp(32px, 5vw, 72px) !important;
    padding-top: clamp(40px, 5vw, 72px) !important; padding-bottom: var(--hs2-section) !important; background: #fff !important;
}
body.hs-body .hs-detail-main { min-width: 0; color: var(--hs2-text) !important; background: none !important; }
body.hs-body .hs-detail-image { margin: 0 0 32px !important; overflow: hidden; border: 0 !important; border-radius: var(--hs2-radius-lg) !important; background: var(--hs2-surface) !important; }
body.hs-body .hs-detail-image img { display: block; width: 100%; max-height: 560px; object-fit: cover; }
body.hs-body .hs-detail-intro {
    margin: 0 0 32px !important; padding: 0 0 0 20px !important; border: 0 !important; border-left: 4px solid var(--hs2-accent) !important; background: none !important;
    color: var(--hs2-ink) !important; font-size: clamp(1.15rem, 1.05rem + .5vw, 1.4rem) !important; line-height: 1.5 !important; font-weight: 600 !important;
}
body.hs-body .hs-detail-prose { max-width: 72ch; color: var(--hs2-text) !important; font-size: 1.0625rem !important; line-height: 1.75 !important; }
body.hs-body .hs-detail-prose :is(h2, h3, h4) { margin: 1.8em 0 .6em !important; color: var(--hs2-ink) !important; }
body.hs-body .hs-detail-prose h2 { font-size: var(--hs2-fs-h3) !important; }
body.hs-body .hs-detail-prose a { color: var(--hs2-ink) !important; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
body.hs-body .hs-detail-prose :is(p, li) { color: var(--hs2-text) !important; }
body.hs-body .hs-detail-prose img { border-radius: var(--hs2-radius); }
body.hs-body .hs-detail-prose blockquote { margin: 1.5em 0; padding: 4px 0 4px 20px; border-left: 4px solid var(--hs2-accent); color: var(--hs2-ink); font-weight: 600; }
body.hs-body .hs-detail-sidebar { display: grid; gap: 16px; align-content: start; position: sticky; top: calc(var(--hs2-header-h) + 24px); }
body.hs-body .hs-detail-panel {
    overflow: hidden; margin: 0; border: 0 !important; border-radius: var(--hs2-radius) !important; background: var(--hs2-surface) !important; color: var(--hs2-text) !important;
}
body.hs-body .hs-detail-panel__head {
    padding: 18px 22px 0 !important; border: 0 !important; background: none !important;
    color: var(--hs2-ink) !important; font-family: var(--hs2-font-display); font-size: 1rem !important; font-weight: 800 !important; letter-spacing: 0 !important; text-transform: none !important;
}
body.hs-body .hs-detail-panel__body { display: grid; gap: 6px; padding: 12px 22px 22px !important; color: var(--hs2-text) !important; }
body.hs-body .hs-detail-panel__body :is(p, small, span, li) { color: var(--hs2-muted) !important; }
body.hs-body .hs-detail-panel__body strong { color: var(--hs2-ink) !important; }
body.hs-body .hs-detail-panel .hs-related {
    display: block !important; padding: 12px 14px !important; border-radius: var(--hs2-radius-sm) !important; background: #fff !important; text-decoration: none;
}
body.hs-body .hs-detail-panel .hs-related:hover { background: var(--hs2-accent-soft) !important; color: var(--hs2-ink) !important; }
body.hs-body .hs-detail-panel .hs-related strong { display: block; color: var(--hs2-ink) !important; font-size: .9375rem; }
body.hs-body .hs-detail-panel .hs-related small { display: block; color: var(--hs2-muted) !important; }
body.hs-body .hs-share-row { display: flex !important; gap: 8px !important; }
body.hs-body .hs-share-row a {
    display: grid !important; place-items: center; width: 40px; height: 40px; border: 0 !important; border-radius: 50% !important;
    background: #fff !important; color: var(--hs2-ink) !important; text-decoration: none;
}
body.hs-body .hs-share-row a:hover { background: var(--hs2-ink) !important; color: #fff !important; }
body.hs-body .hs-detail-overview { display: grid; gap: 8px; }
body.hs-body .hs-media-player { overflow: hidden; border-radius: var(--hs2-radius-lg) !important; background: var(--hs2-dark) !important; }
@media (max-width: 980px) {
    body.hs-body .hs-detail-layout { grid-template-columns: 1fr !important; }
    body.hs-body .hs-detail-sidebar { position: static; }
}

/* ==========================================================================
   Help center
   ========================================================================== */
body.hs-body .hs-support { background: #fff !important; color: var(--hs2-text) !important; }
body.hs-body .hs-support-grid { padding-top: clamp(40px, 5vw, 72px) !important; padding-bottom: var(--hs2-section) !important; }
body.hs-body .hs-support-meta, body.hs-body .hs-support-links { color: var(--hs2-muted) !important; }
body.hs-body .hs-support-links a, body.hs-body .hs-support-meta a { color: var(--hs2-ink) !important; font-weight: 700; }
body.hs-body .hs-support-aside {
    padding: 24px !important; border: 0 !important; border-radius: var(--hs2-radius) !important; background: var(--hs2-surface) !important; color: var(--hs2-text) !important;
}
body.hs-body .hs-support-aside :is(h2, h3, strong) { color: var(--hs2-ink) !important; }
body.hs-body .hs-support-faq { border-top: 1px solid var(--hs2-line) !important; background: none !important; }
body.hs-body .hs-support-faq details, body.hs-body .hs-support-faq > * { border: 0 !important; border-bottom: 1px solid var(--hs2-line) !important; border-radius: 0 !important; background: none !important; }
body.hs-body .hs-support-faq summary { padding: 20px 4px !important; color: var(--hs2-ink) !important; font-family: var(--hs2-font-display); font-weight: 700 !important; font-size: 1.125rem !important; }
body.hs-body .hs-support-faq__answer { color: var(--hs2-text) !important; }
body.hs-body .hs-support-main :is(h2, h3) { color: var(--hs2-ink) !important; }

/* ==========================================================================
   Legal pages
   ========================================================================== */
body.hs-body .hs-legal-page { background: #fff !important; color: var(--hs2-text) !important; }
body.hs-body .hs-legal-content { padding: clamp(40px, 5vw, 80px) 0 var(--hs2-section) !important; background: #fff !important; }
body.hs-body .hs-legal-grid { display: grid !important; grid-template-columns: 240px minmax(0, 1fr) !important; gap: clamp(32px, 5vw, 80px) !important; align-items: start; }
body.hs-body .hs-legal-nav {
    position: sticky; top: calc(var(--hs2-header-h) + 24px); display: grid !important; gap: 2px !important;
    padding: 12px !important; border: 0 !important; border-radius: var(--hs2-radius) !important; background: var(--hs2-surface) !important;
}
body.hs-body .hs-legal-nav a {
    padding: 8px 12px !important; border: 0 !important; border-radius: 10px !important; color: var(--hs2-text) !important;
    font-size: .875rem !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; text-decoration: none;
}
body.hs-body .hs-legal-nav a:hover { background: #fff !important; color: var(--hs2-ink) !important; }
body.hs-body .hs-legal-copy { max-width: 76ch; color: var(--hs2-text) !important; font-size: 1.0625rem; line-height: 1.75; }
body.hs-body .hs-legal-copy section { padding: 0 0 32px !important; margin: 0 0 32px !important; border: 0 !important; border-bottom: 1px solid var(--hs2-line) !important; background: none !important; }
body.hs-body .hs-legal-copy section:last-child { border-bottom: 0 !important; }
body.hs-body .hs-legal-copy h2 { margin: 0 0 14px !important; color: var(--hs2-ink) !important; font-size: var(--hs2-fs-h3) !important; }
body.hs-body .hs-legal-copy :is(p, li, td) { color: var(--hs2-text) !important; }
body.hs-body .hs-legal-copy a { color: var(--hs2-ink) !important; font-weight: 600; text-underline-offset: 3px; }
body.hs-body .hs-legal-copy table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
body.hs-body .hs-legal-copy :is(th, td) { padding: 12px; border-bottom: 1px solid var(--hs2-line) !important; background: none !important; color: var(--hs2-text) !important; text-align: left; vertical-align: top; }
body.hs-body .hs-legal-copy th { color: var(--hs2-ink) !important; font-weight: 800; }
@media (max-width: 900px) {
    body.hs-body .hs-legal-grid { grid-template-columns: 1fr !important; }
    body.hs-body .hs-legal-nav { position: static; display: flex !important; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
    body.hs-body .hs-legal-nav a { flex: none; white-space: nowrap; }
}

/* ==========================================================================
   Contact
   ========================================================================== */
body.hs-body .hs-contact-shell {
    padding: clamp(48px, 6vw, 96px) 0 var(--hs2-section) !important; background: var(--hs2-surface) !important; color: var(--hs2-text) !important; border: 0 !important;
}
body.hs-body .hs-contact-shell::before, body.hs-body .hs-contact-shell::after { content: none !important; }
body.hs-body .hs-contact-grid { display: grid !important; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr) !important; gap: clamp(32px, 5vw, 80px) !important; align-items: start !important; }
body.hs-body .hs-contact-copy h1 { margin: 0 0 20px !important; color: var(--hs2-ink) !important; font-size: var(--hs2-fs-h1) !important; line-height: 1.04 !important; letter-spacing: -.04em !important; font-weight: 800 !important; }
body.hs-body .hs-contact-copy p { color: var(--hs2-text) !important; font-size: var(--hs2-fs-lead) !important; line-height: 1.55 !important; }
body.hs-body .hs-contact-copy .hs-page-eyebrow { color: var(--hs2-muted) !important; }
body.hs-body .hs-contact-details { display: grid !important; gap: 10px !important; margin-top: 32px !important; border: 0 !important; }
body.hs-body .hs-contact-details > div {
    display: grid !important; grid-template-columns: 120px 1fr; gap: 12px; align-items: center;
    padding: 16px 20px !important; border: 0 !important; border-radius: var(--hs2-radius) !important; background: #fff !important;
}
body.hs-body .hs-contact-details span { color: var(--hs2-muted) !important; font-size: .8125rem !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; }
body.hs-body .hs-contact-details strong { color: var(--hs2-ink) !important; font-weight: 700 !important; }
body.hs-body .hs-contact-form {
    padding: clamp(24px, 4vw, 48px) !important; border: 0 !important; border-radius: var(--hs2-radius-lg) !important;
    background: #fff !important; color: var(--hs2-text) !important; box-shadow: var(--hs2-shadow) !important;
}
body.hs-body .hs-contact-form h2 { margin: 0 0 24px !important; color: var(--hs2-ink) !important; font-size: var(--hs2-fs-h3) !important; }
body.hs-body .hs-contact-form-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 16px !important; }
body.hs-body .hs-contact-field { display: grid; gap: 6px; }
body.hs-body .hs-contact-field--full { grid-column: 1 / -1; }
body.hs-body .hs-contact-field label { color: var(--hs2-ink) !important; font-size: .875rem !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; }
body.hs-body .hs-contact-form :is(.form-control, .form-select) { background-color: #fff !important; color: var(--hs2-ink) !important; border: 1.5px solid var(--hs2-line-strong) !important; border-radius: var(--hs2-radius-sm) !important; }
body.hs-body .hs-contact-form :is(.form-control, .form-select):focus { border-color: var(--hs2-ink) !important; }
body.hs-body .hs-contact-form small, body.hs-body .hs-contact-form p { color: var(--hs2-muted) !important; }
body.hs-body .hs-contact-submit {
    display: inline-flex !important; align-items: center; gap: 8px; min-height: 48px; padding: 12px 28px !important; margin-top: 8px;
    border: 0 !important; border-radius: var(--hs2-radius-pill) !important; background: var(--hs2-ink) !important; color: #fff !important;
    font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important;
}
body.hs-body .hs-contact-submit:hover { background: var(--hs2-ink-2) !important; }
@media (max-width: 900px) {
    body.hs-body .hs-contact-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 560px) {
    body.hs-body .hs-contact-form-grid { grid-template-columns: 1fr !important; }
    body.hs-body .hs-contact-details > div { grid-template-columns: 1fr; gap: 2px; }
}
body.hs-body .hs-resource-load-error {
    grid-column: 1 / -1; padding: clamp(28px, 4vw, 48px) !important; border: 0 !important; border-radius: var(--hs2-radius-lg) !important;
    background: var(--hs2-surface) !important; color: var(--hs2-muted) !important; text-align: center;
}
body.hs-body .hs-resource-load-error :is(h3, strong) { color: var(--hs2-ink) !important; }
body.hs-body .hs-resource-load-error button {
    margin-top: 12px; min-height: 40px; padding: 8px 20px; border: 0 !important; border-radius: var(--hs2-radius-pill) !important;
    background: var(--hs2-ink) !important; color: #fff !important; font-weight: 700;
}
body.hs-body .hs-job-apply {
    display: inline-flex !important; align-items: center; gap: 8px; min-height: 48px; padding: 12px 26px !important;
    border: 0 !important; border-radius: var(--hs2-radius-pill) !important; background: var(--hs2-ink) !important; color: #fff !important;
    font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; text-decoration: none !important;
}
body.hs-body .hs-job-apply span { display: none; }
body.hs-body .hs-job-apply:hover { background: var(--hs2-ink-2) !important; }
body.hs-body .hs-job-body { color: var(--hs2-text) !important; }
body.hs-body .hs-job-body :is(h2, h3, strong) { color: var(--hs2-ink) !important; }
body.hs-body .hs-check-card--white { background: #fff; }

/* ==========================================================================
   Careers
   ========================================================================== */
body.hs-body .hs-careers-editorial { padding: clamp(40px, 5vw, 80px) 0 !important; background: var(--hs2-surface) !important; color: var(--hs2-text) !important; border: 0 !important; }
body.hs-body .hs-careers-editorial::before, body.hs-body .hs-careers-editorial::after { content: none !important; }
body.hs-body .hs-careers-editorial__grid {
    display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr) !important; gap: clamp(32px, 5vw, 80px) !important; align-items: center !important;
    max-width: var(--hs2-container); margin: 0 auto; padding-inline: var(--hs2-gutter) !important; min-height: 0 !important;
}
body.hs-body .hs-careers-editorial__copy { padding: 0 !important; background: none !important; }
body.hs-body .hs-careers-editorial h1 { margin: 0 !important; color: var(--hs2-ink) !important; font-size: var(--hs2-fs-h1) !important; line-height: 1.04 !important; letter-spacing: -.04em !important; font-weight: 800 !important; }
body.hs-body .hs-careers-editorial h1 em { color: inherit !important; }
body.hs-body .hs-careers-editorial p { margin-top: 20px !important; color: var(--hs2-text) !important; font-size: var(--hs2-fs-lead) !important; }
body.hs-body .hs-careers-editorial__photo { position: relative; margin: 0 !important; overflow: hidden; border-radius: var(--hs2-radius-lg) !important; clip-path: none !important; box-shadow: var(--hs2-shadow-lg); min-height: 0 !important; height: auto !important; }
body.hs-body .hs-careers-editorial__photo img { display: block; width: 100% !important; height: auto !important; aspect-ratio: 16 / 10; object-fit: cover !important; position: static !important; }
body.hs-body .hs-careers-editorial__rail { display: none !important; }
body.hs-body .hs-careers-editorial__stamp {
    position: absolute !important; left: 16px !important; bottom: 16px !important; right: auto !important; top: auto !important;
    display: flex !important; flex-direction: column; gap: 2px; padding: 12px 16px !important;
    border: 0 !important; border-radius: var(--hs2-radius) !important; background: rgba(255,255,255,.94) !important; color: var(--hs2-ink) !important; box-shadow: var(--hs2-shadow);
}
body.hs-body .hs-careers-editorial__stamp span { color: var(--hs2-muted) !important; font-size: .75rem !important; }
body.hs-body .hs-careers-editorial__stamp strong { color: var(--hs2-ink) !important; font-size: .875rem !important; }
body.hs-body .hs-careers-jobs { padding: clamp(32px, 4vw, 56px) 0 var(--hs2-section); background: #fff; color: var(--hs2-text); }
body.hs-body .hs-careers-filter { margin: 0 0 clamp(32px, 4vw, 56px) !important; padding: 8px !important; border: 0 !important; border-radius: var(--hs2-radius-lg) !important; background: var(--hs2-surface) !important; box-shadow: none !important; }
body.hs-body .hs-careers-filter__grid { display: grid !important; grid-template-columns: minmax(200px, 2fr) repeat(4, minmax(0, 1fr)) auto !important; gap: 8px !important; }
body.hs-body .hs-careers-filter :is(.form-control, .form-select) { min-height: 48px; border: 0 !important; border-radius: var(--hs2-radius-pill) !important; background-color: #fff !important; box-shadow: 0 0 0 1px var(--hs2-line) !important; color: var(--hs2-ink) !important; }
body.hs-body .hs-careers-filter button {
    min-height: 48px; padding: 0 22px; border: 0 !important; border-radius: var(--hs2-radius-pill) !important; background: var(--hs2-ink) !important; color: #fff !important; font-weight: 700 !important;
}
body.hs-body .hs-jobs-area { background: none !important; padding: 0 !important; }
body.hs-body .hs-jobs-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)) !important; gap: var(--hs2-gap) !important; background: none !important; border: 0 !important; }
body.hs-body .job-card {
    display: flex !important; flex-direction: column; justify-content: space-between; gap: 20px; min-height: 200px; margin: 0 !important;
    padding: 28px !important; border: 0 !important; border-radius: var(--hs2-radius-lg) !important; background: var(--hs2-surface) !important; box-shadow: none !important;
    transition: transform var(--hs2-med) var(--hs2-ease), box-shadow var(--hs2-med) var(--hs2-ease), background var(--hs2-fast) ease;
}
body.hs-body .job-card:hover { background: #fff !important; transform: translateY(-4px); box-shadow: var(--hs2-shadow) !important; }
body.hs-body .job-card h5 { margin: 0 0 10px; color: var(--hs2-ink) !important; font-family: var(--hs2-font-display); font-size: var(--hs2-fs-h3) !important; font-weight: 800; letter-spacing: -.02em; }
body.hs-body .job-card .meta { margin: 0; color: var(--hs2-muted) !important; font-size: .9375rem; line-height: 1.7; }
body.hs-body .job-card .btn {
    align-self: flex-start; min-height: 40px; padding: 8px 20px; border: 1.5px solid var(--hs2-ink) !important; border-radius: var(--hs2-radius-pill) !important;
    background: transparent !important; color: var(--hs2-ink) !important; font-weight: 700; font-size: .875rem;
}
body.hs-body .job-card .btn:hover { background: var(--hs2-ink) !important; color: #fff !important; }
body.hs-body .hs-careers-pager { display: flex !important; justify-content: center; gap: 12px; margin-top: 32px !important; }
body.hs-body .hs-careers-pager .btn { min-height: 44px; padding: 8px 24px; border-radius: var(--hs2-radius-pill) !important; font-weight: 700; }
body.hs-body .hs-careers-pager .btn-dark { background: var(--hs2-ink) !important; border-color: var(--hs2-ink) !important; }
body.hs-body .hs-jobs-loading { gap: var(--hs2-gap) !important; background: none !important; }
body.hs-body .hs-jobs-loading__card { border-radius: var(--hs2-radius-lg); background: var(--hs2-surface) !important; }
body.hs-body .hs-jobs-loading__line { border-radius: 6px; background: var(--hs2-surface-2) !important; }
body.hs-body .hs-jobs-error { border: 0 !important; border-radius: var(--hs2-radius-lg); background: #fbeceb !important; color: var(--hs2-danger) !important; }
@media (max-width: 1100px) { body.hs-body .hs-careers-filter__grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } body.hs-body .hs-careers-filter__grid > :first-child { grid-column: 1 / -1; } }
@media (max-width: 900px) { body.hs-body .hs-careers-editorial__grid { grid-template-columns: 1fr !important; } }
@media (max-width: 560px) { body.hs-body .hs-careers-filter { border-radius: var(--hs2-radius) !important; } body.hs-body .hs-careers-filter__grid { grid-template-columns: 1fr !important; } }

/* ==========================================================================
   Company pages: team, values, principles, who-we-are
   ========================================================================== */
body.hs-body .hs-team-marquee { overflow: hidden; border-radius: var(--hs2-radius-lg) !important; box-shadow: var(--hs2-shadow-lg); transform: none !important; }
body.hs-body .hs-team-marquee img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
body.hs-body .hs-page--team .hs-page-hero { min-height: 0 !important; }
body.hs-body .hs-team-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)) !important; gap: var(--hs2-gap) !important; }
body.hs-body .hs-team-card {
    overflow: hidden; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: var(--hs2-radius-lg) !important;
    grid-column: auto !important; grid-row: auto !important; width: auto !important; min-height: 0 !important;
    background: #fff !important; box-shadow: none !important; transform: none !important;
    transition: transform var(--hs2-med) var(--hs2-ease), box-shadow var(--hs2-med) var(--hs2-ease);
}
body.hs-body .hs-team-card:hover { transform: translateY(-4px) !important; box-shadow: var(--hs2-shadow) !important; }
body.hs-body .hs-team-photo { aspect-ratio: 4 / 5 !important; height: auto !important; margin: 0 !important; overflow: hidden; border-radius: 0 !important; background: var(--hs2-surface-2) !important; clip-path: none !important; }
body.hs-body .hs-team-photo img { width: 100%; height: 100%; object-fit: cover; }
body.hs-body .hs-team-card > :not(.hs-team-photo) { padding-inline: 22px; }
body.hs-body .hs-team-card :is(h3, h4, strong) { color: var(--hs2-ink) !important; }
body.hs-body .hs-team-card :is(p, small, span) { color: var(--hs2-muted) !important; }
body.hs-body .hs-team-social { display: flex; gap: 6px; padding-bottom: 20px; }
body.hs-body .hs-team-social a { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--hs2-surface); color: var(--hs2-ink) !important; }
body.hs-body .hs-team-social a:hover { background: var(--hs2-ink); color: #fff !important; }

body.hs-body .hs-values-grid { gap: var(--hs2-gap) !important; border: 0 !important; background: none !important; }
body.hs-body .hs-value-item {
    padding: clamp(24px, 2.4vw, 36px) !important; border: 0 !important; border-radius: var(--hs2-radius) !important; background: #fff !important; color: var(--hs2-text) !important; box-shadow: none !important;
}
body.hs-body .hs-page-section:not(.hs-page-section--light):not(.hs-page-section--dark) .hs-value-item { background: var(--hs2-surface) !important; }
body.hs-body .hs-value-item :is(h3, strong) { color: var(--hs2-ink) !important; }
body.hs-body .hs-value-item p { color: var(--hs2-muted) !important; }

body.hs-body .hs-company-split { gap: clamp(24px, 4vw, 64px) !important; }
body.hs-body .hs-company-split > * { border: 0 !important; }
body.hs-body .hs-principles-mosaic { gap: var(--hs2-gap) !important; }
body.hs-body .hs-principle-card { overflow: hidden; border: 0 !important; border-radius: var(--hs2-radius-lg) !important; box-shadow: none !important; clip-path: none !important; }
body.hs-body .hs-perspective-spread__photo, body.hs-body .hs-who-collage__main, body.hs-body .hs-who-collage__portrait { overflow: hidden; border-radius: var(--hs2-radius-lg) !important; clip-path: none !important; }

/* ==========================================================================
   Sign in / register (keep the brand art panel, align controls)
   ========================================================================== */
body.hs-body :is(.hs-access-submit, .hs-auth-submit) {
    min-height: 48px; border: 0 !important; border-radius: var(--hs2-radius-pill) !important; background: var(--hs2-ink) !important; color: #fff !important;
    font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important;
}
body.hs-body :is(.hs-access-submit, .hs-auth-submit):hover { background: var(--hs2-ink-2) !important; }
body.hs-body :is(.hs-access-field, .hs-auth-field) :is(input, select) { min-height: 48px; border-radius: var(--hs2-radius-sm) !important; }
body.hs-body :is(.hs-access-provider-grid, .hs-access-options) :is(a, button) { border-radius: var(--hs2-radius-pill) !important; }
body.hs-body .hs-kv--film .hs-kv__copy { align-self: center; }
body.hs-body .hs-kv--film .hs-kv__copy { grid-area: auto; }
@media (max-width: 900px) { body.hs-body .hs-kv--film .hs-device--laptop { left: 10%; right: 20%; } body.hs-body .hs-kv--film .hs-kv__copy { padding-bottom: 48px; } }

/* Give the home hero larger type and a more spacious vertical rhythm. */
body.hs-body .hs-kv--film .hs-kv__stage {
    min-height: clamp(680px, calc(100svh - var(--hs2-header-h) - var(--hs2-utility-h)), 960px);
}
body.hs-body .hs-kv--film .hs-kv__copy {
    max-width: 760px;
    padding: clamp(64px, 6vw, 104px) clamp(24px, 4vw, 72px) clamp(80px, 7vw, 120px);
}
body.hs-body .hs-kv--film .hs-kv__kicker {
    margin-bottom: clamp(36px, 3vw, 52px);
    font-size: clamp(1.1875rem, 1rem + .5vw, 1.5rem);
    line-height: 1.5;
}
body.hs-body .hs-kv--film .hs-kv__copy h1 {
    font-size: clamp(3rem, 2rem + 4vw, 5.5rem);
    line-height: 1.3;
}
body.hs-body .hs-kv--film .hs-kv__copy p {
    margin-top: clamp(36px, 3.5vw, 56px);
    font-size: clamp(1.5rem, 1.2rem + 1vw, 2.125rem);
    line-height: 1.75;
}
body.hs-body .hs-kv--film .hs-kv__actions {
    gap: 20px 32px;
    margin-top: clamp(48px, 4vw, 64px);
}
body.hs-body .hs-kv--film .hs-kv__actions :is(.hs-text-cta, .hs-btn) {
    font-size: 1.1875rem;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
}
body.hs-body .hs-kv--film .hs-kv__actions .hs-btn {
    padding: 14px 30px;
}
@media (max-width: 900px) {
    body.hs-body .hs-kv--film .hs-kv__stage { min-height: 0; }
    body.hs-body .hs-kv--film .hs-kv__copy {
        max-width: none;
        padding: 48px var(--hs2-gutter) 72px;
    }
}
/* Restrained editorial typography. */
body.hs-body .hs-kv--film .hs-kv__kicker { color: #52565b; letter-spacing: .015em; }
body.hs-body .hs-kv--film .hs-kv__copy h1 { color: #181a1d; }
body.hs-body .hs-kv--film .hs-hero-accent { display: inline-block; color: #397d83; }
body.hs-body .hs-kv--film .hs-kv__copy p { color: #50555b; }
body.hs-body .hs-kv--film .hs-kv__actions .hs-text-cta { color: #25282c; text-decoration-color: #959a9f; text-underline-offset: 6px; }

/* Bound the device composition independently of the larger hero copy. */
body.hs-body .hs-kv--film .hs-film {
    width: min(100%, 640px);
    min-height: 0;
    aspect-ratio: 5 / 4;
    align-self: center;
    justify-self: center;
}
body.hs-body .hs-kv--film .hs-device--laptop {
    left: 10%; right: 20%; bottom: 22%;
}
body.hs-body .hs-kv--film .hs-device--phone {
    width: 19%; right: 8%; bottom: 13%; padding: 2%;
}
body.hs-body .hs-kv--film .hs-film__caption { bottom: 5%; }
@media (max-width: 900px) {
    body.hs-body .hs-kv--film .hs-film { width: min(100%, 480px); }
}
/* Shadow-free device presentation with an uninterrupted screen crossfade. */
body.hs-body .hs-kv--film .hs-film__caption,
body.hs-body .hs-kv--film .hs-film::after { display: none; }
body.hs-body .hs-kv--film :is(.hs-device, .hs-device__lid, .hs-device__base) { box-shadow: none; }
body.hs-body .hs-kv--film .hs-shot {
    animation: none;
    transform: none;
    object-position: center;
    transition: opacity .9s ease-in-out;
}
body.hs-body .hs-kv--film .hs-shot.is-active { opacity: 1; z-index: 2; }
/* Keep the old screen opaque beneath the incoming one to avoid a dark flash. */
body.hs-body .hs-kv--film .hs-shot.is-leaving { opacity: 1; z-index: 1; }
body.hs-body .hs-kv--film.is-live .hs-device { animation: none; }
@media (prefers-reduced-motion: reduce) {
    body.hs-body .hs-kv--film .hs-shot { transition: none; }
}
/* Flat brand-yellow highlight, confined to the end of the word. */
body.hs-body .hs-kv--film .hs-hero-highlight {
    position: relative;
    display: inline-block;
    isolation: isolate;
    color: #181a1d;
}
body.hs-body .hs-kv--film .hs-hero-highlight::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0 0 0 53%;
    background: #f1c52b;
}
/* Article content must remain visible, including older compiled detail views. */
body.hs-body .hs-detail :is(.hs-detail-hero__inner, .hs-detail-main, .hs-detail-sidebar) {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}

/* Admin: subscriber filter */
body.hs-body .hs-admin-filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; }
body.hs-body .hs-admin-filter .form-control { flex: 1 1 260px; }
body.hs-body .hs-admin-filter .form-select { flex: 0 0 180px; }

/* Admin: newsletter delivery panel */
body.hs-body .hs-admin-flash--error { background: #fdecec; color: #a4161a; }
body.hs-body .hs-admin-panel { margin: 0 0 32px; padding: 24px; background: var(--hs2-surface, #f7f7f7); }
body.hs-body .hs-admin-panel h2 { font-size: 1.125rem; margin: 0 0 16px; }
body.hs-body .hs-admin-note { margin: 0; color: #5b6068; font-size: .9375rem; }
body.hs-body .hs-admin-table { width: 100%; border-collapse: collapse; font-size: .875rem; background: #fff; }
body.hs-body .hs-admin-table :is(th, td) { padding: 10px 12px; border-bottom: 1px solid #e3e4e8; text-align: left; vertical-align: top; }
body.hs-body .hs-admin-table th { font-weight: 600; color: #5b6068; }
body.hs-body .hs-admin-table__error { color: #a4161a; max-width: 360px; word-break: break-word; }
@media (max-width: 700px) { body.hs-body .hs-admin-panel { overflow-x: auto; } }

/* Newsletter: honeypot field (hidden from people, visible to bots) */
.hs-hp { position: absolute !important; left: -10000px !important; top: auto; width: 1px; height: 1px; overflow: hidden; }
/* Admin: subscriber bulk actions */
body.hs-body .hs-admin-filter__date { flex: 0 0 170px !important; }
body.hs-body .hs-admin-bulk { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 16px 0 12px; }
body.hs-body .hs-admin-bulk__form { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
body.hs-body .hs-admin-bulk__all { display: inline-flex; align-items: center; gap: 8px; margin-right: 6px; font-size: .875rem; font-weight: 600; }
body.hs-body .hs-admin-row__check { width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--hs2-ink); }
body.hs-body .hs-btn--danger { color: var(--hs2-danger) !important; border-color: currentColor !important; }
body.hs-body .hs-admin-row--subscriber { grid-template-columns: auto auto minmax(0, 1fr) auto auto; }
@media (max-width: 760px) {
    body.hs-body .hs-admin-row--subscriber { grid-template-columns: auto auto minmax(0, 1fr); }
    body.hs-body .hs-admin-row--subscriber :is(.hs-admin-row__status, .hs-admin-row__actions) { grid-column: 3; }
}
