/* Enterprise security service: governance framework and delivery evidence. */
.security-page {
  --security-space: 104px;
  --security-gap: 56px;
  --security-blue-wash: #edf5ff;
  --security-dark-muted: #c9c9ce;
  --security-dark-line: #535356;
  --security-dark-blue: #a8c8eb;
  --security-radius: var(--site-radius);
  color: var(--site-ink);
  font-size: 17px;
  line-height: 1.8;
}
.security-page :where(h1, h2, h3, h4, p, figure, ul, ol) { margin: 0; }
.security-page :where(h1, h2, h3) { text-wrap: balance; }
.security-wrap { width: min(1160px, calc(100% - 64px)); margin-inline: auto; }
.security-hero { padding-top: 88px; }
.security-hero-grid { display: grid; grid-template-columns: 1.12fr 1fr; gap: var(--security-gap); align-items: center; padding-bottom: 72px; }
.security-photo > div { overflow: hidden; border-radius: var(--site-image-radius); background: var(--site-ice); }
.security-photo img { display: block; width: 100%; height: auto; object-fit: cover; }
.security-photo-wide img { aspect-ratio: 21 / 10; }
.security-photo-portrait img { aspect-ratio: 4 / 5; object-position: center 62%; }
.security-photo figcaption { padding-top: 12px; color: var(--site-muted); font-size: 13px; line-height: 1.8; }
.security-hero > .security-photo { margin-bottom: 32px; }
.security-pillar > .security-photo { grid-column: 1 / -1; }
.security-hero h1 { font-size: clamp(44px, 4.5vw, 64px); font-weight: 650; line-height: 1.18; letter-spacing: -.025em; }
.security-service-name { margin-top: 30px !important; font-size: 23px; font-weight: 600; color: var(--site-blue); }
.security-lead { font-size: 18px; color: var(--site-ink-soft); line-height: 1.95; margin-top: 18px !important; max-width: 34em; }
.security-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 28px; margin-top: 30px; }
.security-actions .site-button { min-height: 46px; }
.security-map { padding: 28px; border: 1px solid var(--site-line); border-radius: var(--security-radius); }
.security-map h2 { font-size: 19px; font-weight: 600; margin-bottom: 24px; }
.security-map-rows { display: grid; }
.security-map-rows a { display: grid; grid-template-columns: 92px 1fr 22px; gap: 12px; align-items: center; padding: 18px 0; border-top: 1px solid var(--site-line); text-decoration: none; }
.security-map-rows a > span { font-size: 13px; color: var(--site-muted); }
.security-map-rows strong { font-size: 16px; font-weight: 550; line-height: 1.5; }
.security-map-rows svg { width: 20px; height: 20px; fill: none; stroke: var(--site-blue); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; transition: transform var(--site-fast) var(--site-ease); }
.security-map-rows a:hover strong { color: var(--site-blue); }
.security-map-rows a:hover svg { transform: translateX(3px); }
.security-map-base { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; padding: 18px; background: var(--security-blue-wash); margin-top: 8px; }
.security-map-base span { color: var(--site-muted); font-size: 12px; }
.security-map-base strong { color: var(--site-blue); font-size: 15px; font-weight: 550; }
.security-map figcaption { color: var(--site-muted); font-size: 12px; margin-top: 18px; line-height: 1.7; }
.security-principles { display: flex; gap: 28px; flex-wrap: wrap; padding: 22px 0; border-top: 1px solid var(--site-line); list-style: none; font-size: 14px; color: var(--site-ink-soft); }
.security-principles li { display: flex; align-items: center; gap: 12px; }
.security-principles li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--site-blue); }
.security-subnav { position: sticky; top: 68px; z-index: 20; border-block: 1px solid var(--site-line-hair); background: var(--site-white); }
.security-subnav > div { display: flex; gap: 30px; overflow-x: auto; scrollbar-width: thin; }
.security-subnav a { display: inline-flex; align-items: center; flex: none; min-height: 54px; font-size: 14px; color: var(--site-ink-soft); text-decoration: none; }
.security-subnav a:hover { color: var(--site-blue); }
.security-section { padding-block: var(--security-space); scroll-margin-top: 150px; }
.security-soft { background: var(--site-ice); }
.security-heading { display: grid; grid-template-columns: 1fr 1fr; gap: var(--security-gap); margin-bottom: 52px; }
.security-heading > h2, .security-contact h2, .security-faq h2 { font-size: clamp(32px, 3.4vw, 46px); line-height: 1.28; letter-spacing: -.025em; font-weight: 650; }
.security-heading > p { color: var(--site-ink-soft); font-size: 18px; line-height: 1.9; max-width: 37em; padding-top: 3px; }
.security-scenarios { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; }
.security-scenarios article { padding-top: 24px; border-top: 1px solid var(--site-line); }
.security-scenarios h3 { font-size: 22px; line-height: 1.5; margin-bottom: 16px; }
.security-scenarios p { color: var(--site-ink-soft); font-size: 16px; }
.security-scope { padding-bottom: 0; }
.security-pillar { display: grid; grid-template-columns: 1fr 1fr; gap: var(--security-gap); padding: 56px 0 64px; border-top: 1px solid var(--site-line); scroll-margin-top: 164px; }
.security-pillar-intro { align-self: start; }
.security-pillar-intro h3 { font-size: 31px; line-height: 1.4; letter-spacing: -.02em; }
.security-pillar-intro p { margin-top: 20px; color: var(--site-ink-soft); font-size: 17px; max-width: 28em; }
.security-pillar-intro > strong { display: block; margin-top: 22px; color: var(--site-blue); font-size: 15px; line-height: 1.8; font-weight: 500; }
.security-pillar-work h4 { font-size: 14px; font-weight: 600; margin-bottom: 18px; }
.security-pillar-work > ul { display: grid; gap: 16px; padding: 0; list-style: none; }
.security-pillar-work > ul > li { padding-left: 18px; position: relative; color: var(--site-ink-soft); font-size: 16px; }
.security-pillar-work > ul > li::before { content: ""; position: absolute; left: 0; top: .8em; width: 5px; height: 5px; border-radius: 50%; background: var(--site-muted); }
.security-pillar-output { padding: 22px 24px; background: var(--site-ice); margin-top: 28px; }
.security-pillar-output h4 { color: var(--site-blue); margin-bottom: 10px; }
.security-pillar-output ul { display: flex; flex-wrap: wrap; gap: 6px 22px; padding: 0; list-style: none; font-size: 14px; }
.security-ai { color: var(--site-white); background: var(--site-ink); }
.security-ai .security-heading > p { color: var(--security-dark-muted); }
.security-ai-chain { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; padding: 0; list-style: none; }
.security-ai-chain li { padding: 26px 0; border-block: 1px solid var(--security-dark-line); position: relative; }
.security-ai-chain li + li::before { content: ""; position: absolute; left: -20px; top: 43px; width: 8px; height: 8px; border-top: 1px solid var(--security-dark-blue); border-right: 1px solid var(--security-dark-blue); transform: rotate(45deg); }
.security-ai-chain h3 { font-size: 23px; margin-bottom: 14px; }
.security-ai-chain p { font-size: 15px; color: var(--security-dark-muted); }
.security-ai-note { margin-top: 28px !important; font-size: 14px; color: var(--security-dark-blue); }
.security-process { padding: 0; list-style: none; }
.security-process li { display: grid; grid-template-columns: 54px 1fr 220px; gap: 28px; align-items: start; padding: 28px 0; border-top: 1px solid var(--site-line); }
.security-process li > span { font-size: 25px; color: var(--site-blue); font-variant-numeric: tabular-nums; line-height: 1.4; }
.security-process h3 { font-size: 23px; line-height: 1.4; margin-bottom: 12px; }
.security-process p { font-size: 16px; color: var(--site-ink-soft); max-width: 42em; }
.security-process li > strong { font-size: 14px; font-weight: 500; color: var(--site-muted); padding-top: 6px; text-align: right; }
.security-evidence-head, .security-evidence article { display: grid; grid-template-columns: .9fr 1.15fr 1.15fr; gap: 28px; }
.security-evidence-head { color: var(--site-muted); font-size: 13px; padding-bottom: 16px; }
.security-evidence article { padding: 26px 0; border-top: 1px solid var(--site-line); }
.security-evidence h3 { font-size: 22px; line-height: 1.6; font-weight: 600; }
.security-evidence p { font-size: 16px; color: var(--site-ink-soft); }
.security-team { border-top: 1px solid var(--site-line); padding-top: 26px; }
.security-team > p { font-size: 17px; color: var(--site-ink-soft); max-width: 48em; }
.security-team .security-actions { margin-top: 24px; }
.security-collaboration-layout { display: grid; grid-template-columns: 1.05fr 1fr; gap: var(--security-gap); align-items: center; }
.security-collaboration-copy h2 { font-size: clamp(32px, 3.4vw, 46px); line-height: 1.28; letter-spacing: -.025em; font-weight: 650; }
.security-collaboration-copy > p { font-size: 18px; line-height: 1.9; color: var(--site-ink-soft); margin-top: 28px; }
.security-collaboration-copy .security-team { margin-top: 32px; }
.security-faq { display: grid; grid-template-columns: .9fr 1.1fr; gap: var(--security-gap); }
.security-faq > div:first-child p { margin-top: 24px; color: var(--site-ink-soft); font-size: 16px; max-width: 26em; }
.security-faq details { border-top: 1px solid var(--site-line); padding: 22px 0; }
.security-faq details:last-child { border-bottom: 1px solid var(--site-line); }
.security-faq summary { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; cursor: pointer; list-style: none; font-size: 18px; font-weight: 550; }
.security-faq summary::-webkit-details-marker { display: none; }
.security-faq summary svg { width: 22px; height: 22px; flex: none; margin-top: 5px; fill: none; stroke: var(--site-blue); stroke-width: 1.5; stroke-linecap: round; }
.security-faq details[open] .security-plus { display: none; }
.security-faq details > p { margin-top: 18px; color: var(--site-ink-soft); font-size: 16px; line-height: 1.9; }
.security-reference { padding-block: 36px; }
.security-reference > p { color: var(--site-muted); font-size: 13px; line-height: 1.9; }
.security-reference > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 24px; }
.security-reference a { display: block; color: var(--site-ink-soft); font-size: 13px; text-decoration: none; }
.security-reference a span { display: block; font-size: 12px; color: var(--site-muted); margin-bottom: 5px; }
.security-reference a:hover { color: var(--site-blue); }
.security-contact { background: var(--security-blue-wash); text-align: center; }
.security-contact > div > p { font-size: 19px; color: var(--site-ink-soft); line-height: 1.9; margin-top: 24px; }
.security-contact .security-actions { justify-content: center; }
@media (max-width: 1040px) {
  .security-page { --security-space: 80px; --security-gap: 32px; }
  .security-hero { padding-top: 64px; }
  .security-hero-grid { grid-template-columns: 1fr 1fr; }
  .security-map { padding: 22px; }
  .security-map-rows a { grid-template-columns: 74px 1fr 18px; gap: 8px; }
  .security-map-rows strong { font-size: 14px; }
  .security-process li { grid-template-columns: 44px 1fr 160px; gap: 24px; }
}
@media (max-width: 760px) {
  .security-page { --security-space: 64px; --security-gap: 28px; }
  .security-wrap { width: calc(100% - 40px); }
  .security-hero { padding-top: 48px; }
  .security-hero-grid { grid-template-columns: 1fr; gap: 40px; padding-bottom: 32px; }
  .security-hero h1 { font-size: 44px; }
  .security-service-name { font-size: 21px; margin-top: 24px !important; }
  .security-lead { font-size: 17px; }
  .security-map-rows a { grid-template-columns: 84px 1fr 22px; padding-block: 18px; }
  .security-map-rows strong { font-size: 16px; }
  .security-principles { gap: 10px 22px; font-size: 13px; }
  .security-subnav > div { gap: 24px; }
  .security-subnav a { font-size: 13px; min-height: 50px; }
  .security-heading, .security-scenarios, .security-pillar, .security-faq { grid-template-columns: 1fr; }
  .security-collaboration-layout { grid-template-columns: 1fr; gap: 32px; }
  .security-collaboration-copy h2 { font-size: 33px; }
  .security-collaboration-copy > p { font-size: 16px; margin-top: 24px; }
  .security-photo-wide img { aspect-ratio: 16 / 10; }
  .security-photo-portrait { max-width: 520px; width: 100%; margin-inline: auto !important; }
  .security-heading { gap: 24px; margin-bottom: 32px; }
  .security-heading > h2, .security-contact h2, .security-faq h2 { font-size: 33px; }
  .security-heading > p { font-size: 16px; padding: 0; }
  .security-scenarios h3 { font-size: 21px; }
  .security-pillar { padding: 36px 0 44px; gap: 28px; }
  .security-pillar-intro { position: static; }
  .security-pillar-intro h3 { font-size: 27px; }
  .security-pillar-intro p { font-size: 16px; margin-top: 16px; }
  .security-pillar-work > ul > li { font-size: 16px; }
  .security-ai-chain { grid-template-columns: 1fr; gap: 0; }
  .security-ai-chain li { border-bottom: 0; }
  .security-ai-chain li:last-child { border-bottom: 1px solid var(--security-dark-line); }
  .security-ai-chain li + li::before { display: none; }
  .security-process li { grid-template-columns: 34px 1fr; gap: 16px; padding-block: 24px; }
  .security-process li > strong { grid-column: 2; text-align: left; padding-top: 0; }
  .security-process h3 { font-size: 22px; }
  .security-evidence-head { display: none; }
  .security-evidence article { grid-template-columns: 1fr; gap: 12px; }
  .security-evidence h3 { font-size: 22px; }
  .security-faq { gap: 32px; }
  .security-faq summary { font-size: 17px; min-height: 44px; align-items: center; }
  .security-reference > div { grid-template-columns: 1fr; gap: 18px; }
  .security-contact > div > p { font-size: 17px; }
  .security-contact > div > p br { display: none; }
}
@media (max-width: 560px) {
  .security-hero h1 { font-size: clamp(30px, 8.8vw, 38px); }
  .security-heading > h2, .security-contact h2, .security-faq h2 { font-size: 30px; }
  .security-collaboration-copy h2 { font-size: 30px; }
  .security-map { padding: 20px 18px; border-radius: var(--site-radius); }
  .security-map-rows a { grid-template-columns: 72px 1fr 18px; gap: 8px; }
  .security-map-rows a > span { font-size: 12px; }
  .security-map-rows strong { font-size: 15px; }
  .security-pillar-intro h3 { font-size: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  .security-page *, .security-page *::before, .security-page *::after { scroll-behavior: auto !important; }
  .security-map-rows a:hover svg { transform: none; }
}
