:root {
  --paper: #090a0b;
  --paper-deep: #090a0b;
  --ink: #f5f5f3;
  --muted: #a9abad;
  --line: rgba(245,245,243,.19);
  --blue: #e7e8e6;
  --blue-light: #d9dbda;
  --night: #090a0b;
  --font: "Manrope", sans-serif;
  --mono: "DM Mono", monospace;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font); -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
::selection { color: #090a0b; background: #e7e8e6; }
.skip-link { position: fixed; z-index: 1000; top: 10px; left: 10px; padding: 12px 16px; background: var(--ink); color: var(--paper); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.site-header { position: absolute; inset: 0 0 auto; z-index: 20; border-bottom: 1px solid var(--line); }
.header-inner { width: min(1340px, calc(100% - 80px)); min-height: 96px; margin: auto; display: flex; align-items: center; justify-content: space-between; }
.brand { display: inline-flex; width: 142px; align-items: center; }
.brand img { width: 100%; height: auto; filter: invert(1); }
.primary-nav { display: flex; align-items: center; gap: clamp(16px, 2vw, 28px); font-size: 16px; font-weight: 800; color: #fff; line-height: 1.35; }
.primary-nav a { transition: color .2s ease; }
.primary-nav a:hover { color: #fff; }
.primary-nav .nav-promoter, .primary-nav .nav-academy { font-size: .875em; font-weight: 400; }
.primary-nav .nav-promoter span, .primary-nav .nav-academy span { margin-left: 8px; }
.menu-toggle { display: none; }
.hero { min-height: 770px; padding: 150px 0 28px; overflow: hidden; }
.hero-grid { width: min(1340px, calc(100% - 80px)); min-height: 570px; margin: auto; display: grid; grid-template-columns: 1.07fr .93fr; align-items: center; }
.hero-copy { position: relative; z-index: 2; padding: 14px 0 45px; }
.eyebrow, .section-kicker, .promoter-label, .principle-index { font: 500 10px/1.5 var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.eyebrow { display: flex; align-items: center; gap: 12px; color: #c0c2c2; margin: 0 0 34px; }
.eyebrow-mark { display: inline-block; width: 26px; height: 1px; background: var(--blue); }
h1,h2,h3,p { margin-top: 0; }
.hero h1 { margin-bottom: 27px; font-size: clamp(64px, 8vw, 114px); line-height: .91; letter-spacing: -.085em; font-weight: 600; }
.hero h1 em, .promoter h2 em { color: var(--blue); font-style: normal; }
.hero-intro { max-width: 470px; margin-bottom: 31px; font-size: clamp(17px, 1.65vw, 22px); line-height: 1.5; color: #c2c4c3; letter-spacing: -.025em; }
.hero-actions { display: flex; align-items: center; gap: 28px; }
.button { display: inline-flex; min-height: 50px; padding: 0 21px; align-items: center; justify-content: center; gap: 30px; font-size: 12px; font-weight: 700; transition: transform .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-dark { color: #090a0b; background: #f2f3f1; }
.button-dark:hover { background: #d7d9d8; }
.button-light { color: #090a0b; background: #f2f3f1; }
.button-light:hover { background: #d7d9d8; }
.text-link,.arrow-link { font-size: 12px; font-weight: 700; }
.text-link span,.arrow-link span { margin-left: 12px; color: var(--blue); }
.audience-line { display: flex; align-items: center; gap: 11px; margin-top: 48px; color: #b5b7b6; font-size: 10px; }
.audience-line > span { color: var(--blue); font-family: var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.audience-line i { width: 3px; height: 3px; border-radius: 50%; background: #9da09d; }
.hero-art { height:510px; position:relative; margin:5px 0 0; overflow:hidden; background:#141617; color:#f5f5f3; isolation:isolate; }
.hero-art::before { content:""; position:absolute; inset:0; opacity:.48; background:radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.075), transparent 58%), repeating-linear-gradient(0deg, transparent 0 79px, rgba(255,255,255,.045) 80px), repeating-linear-gradient(90deg, transparent 0 79px, rgba(255,255,255,.045) 80px); pointer-events:none; }
.hero-art::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,12,13,.8), transparent 24%, transparent 80%, rgba(10,12,13,.24)); pointer-events:none; }
.hero-network { position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.network-links line { transition:opacity .2s ease; }
.network-links .network-spoke { stroke-dasharray:2 7; opacity:.58; }
.network-center circle:first-child { stroke-width:1; }
.network-center image { opacity:.88; }
.network-node { color:#f5f5f3; }
.node-halo { stroke-width:1.2; }
.node-label rect { stroke-width:1; }
.node-label text { fill:#f5f5f3; font:500 12px var(--mono); letter-spacing:1.5px; dominant-baseline:middle; }
.art-index { position:absolute; z-index:2; bottom:23px; left:27px; right:27px; display:flex; justify-content:space-between; gap:16px; color:#c8cbca; font:9px var(--mono); letter-spacing:.08em; pointer-events:none; }
.plexus-help { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.hero-bottom { width:min(1340px, calc(100% - 80px)); margin:0 auto; padding-top:18px; display:flex; justify-content:space-between; border-top:1px solid var(--line); color:#b7b9b8; font:10px var(--mono); letter-spacing:.06em; }
.hero-bottom a { color:var(--ink); }
.hero-bottom a span { margin-left:15px; color:var(--blue); }
.section-pad { padding: 118px max(40px, calc((100vw - 1340px)/2)); }
.section-kicker { display:flex; gap:24px; align-items:center; color:#b5b7b6; }
.section-kicker span:first-child { color:var(--blue); }
.intro { border-top:1px solid var(--line); }
.intro-layout { display:grid; grid-template-columns:1fr 1fr; gap:7vw; padding:65px 0 76px; }
h2 { font-size:clamp(52px, 7vw, 90px); line-height:.98; font-weight:600; letter-spacing:-.075em; }
.intro h2 span, .services-heading h2 span, .contact h2 span { color:var(--blue); }
.intro-text { max-width:520px; align-self:end; padding-bottom:7px; }
.intro-lead { font-size:clamp(20px, 2.2vw, 28px); line-height:1.35; letter-spacing:-.04em; }
.intro-text > p:not(.intro-lead) { max-width:445px; margin:22px 0 27px; color:#bfc1c0; font-size:14px; line-height:1.85; }
.arrow-link { display:inline-flex; align-items:center; border-bottom:1px solid var(--line); padding-bottom:9px; }
.principles { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
.principle { min-height:225px; padding:25px 30px 20px 0; }
.principle + .principle { border-left:1px solid var(--line); padding-left:30px; }
.principle-index { color:var(--blue); }
.principle h3 { margin:27px 0 14px; font-size:24px; line-height:1.1; letter-spacing:-.05em; }
.principle p { max-width:230px; color:#b8bab9; font-size:12px; line-height:1.7; }
.services { background:var(--paper-deep); }
.services-heading { display:flex; align-items:end; justify-content:space-between; gap:50px; padding:65px 0 75px; }
.services-heading h2 { font-size:clamp(50px, 6vw, 78px); margin:0; }
.services-heading p { width:310px; flex:0 0 310px; margin:0 4vw 6px 0; color:#bfc1c0; font-size:13px; line-height:1.85; }
.service-list { border-top:1px solid var(--line); }
.service-row { display:grid; grid-template-columns:70px 1fr 1.15fr 44px; gap:30px; align-items:center; min-height:178px; padding:26px 12px 26px 0; border-bottom:1px solid var(--line); transition:padding .25s ease, background .25s ease; }
.service-row:hover { padding-left:16px; background:rgba(255,255,255,.055); }
.service-number { align-self:start; padding-top:7px; color:var(--blue); font:11px var(--mono); }
.service-title h3 { margin:0 0 13px; font-size:clamp(24px,3vw,36px); line-height:1; letter-spacing:-.065em; }
.service-title span { color:#b7b9b8; font-size:10px; }
.service-row > p { max-width:410px; margin:0; color:#bfc1c0; font-size:12px; line-height:1.8; }
.service-symbol { justify-self:end; color:var(--blue); font-size:24px; }
.services-footnote { display:flex; align-items:center; justify-content:space-between; padding-top:25px; }
.ecosystem { background:var(--night); color:#f1f0ec; }
.ecosystem .section-kicker { color:#a1a9ae; }
.ecosystem-layout { display:grid; grid-template-columns:.86fr 1.14fr; gap:7vw; align-items:center; padding-top:70px; }
.ecosystem-copy h2 { margin-bottom:26px; font-size:clamp(54px,7vw,88px); }
.ecosystem-copy h2 span { color:var(--blue-light); }
.ecosystem-lead { max-width:440px; font-size:20px; line-height:1.4; letter-spacing:-.03em; }
.ecosystem-copy > p:not(.ecosystem-lead) { max-width:420px; margin:18px 0 32px; color:#aeb5b8; font-size:12px; line-height:1.9; }
.ecosystem-diagram { position:relative; height:530px; min-width:0; }
.circle { position:absolute; width:54%; aspect-ratio:1; border:1px solid rgba(231,236,236,.58); border-radius:50%; display:flex; justify-content:center; color:#d0d5d5; font:10px var(--mono); letter-spacing:.24em; }
.circle-top { left:23%; top:2%; align-items:flex-start; padding-top:16%; }
.circle-left { left:4%; top:31%; align-items:flex-end; padding-bottom:18%; }
.circle-right { right:4%; top:31%; align-items:flex-end; padding-bottom:18%; }
.diagram-core { position:absolute; z-index:2; top:45%; left:50%; width:74px; height:74px; display:grid; place-items:center; transform:translate(-50%,-50%); background:var(--night); border:1px solid rgba(231,236,236,.62); border-radius:50%; }
.diagram-core img { width:48px; height:48px; object-fit:contain; }
.promoter { display:grid; grid-template-columns:1fr 1fr; background:#111314; color:#f1f0ec; min-height:650px; }
.promoter-photo { position:relative; min-height:600px; overflow:hidden; background:var(--night); }
.promoter-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.promoter-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.25),transparent 70%); pointer-events:none; }
.promoter-content { position:relative; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:80px clamp(38px,8vw,120px); }
.promoter-content .section-kicker { position:absolute; top:46px; left:clamp(38px,8vw,120px); color:#c4c7c6; }
.promoter-label { margin:0 0 19px; color:#c4c7c6; font-size:9px; }
.promoter h2 { margin-bottom:24px; font-size:clamp(54px,6vw,78px); }
.promoter h2 em { color:#e0e2e1; }
.promoter-content > p:not(.section-kicker,.promoter-label) { max-width:410px; margin-bottom:28px; color:#c5c7c6; font-size:13px; line-height:1.8; }
.photo-credit { position:absolute; bottom:28px; right:clamp(38px,8vw,120px); color:#c4c7c6; font:9px var(--mono); letter-spacing:.08em; }
.contact { border-top:1px solid var(--line); }
.contact-layout { display:grid; grid-template-columns:1.5fr .7fr; gap:7vw; align-items:end; padding-top:70px; }
.contact-overline { margin-bottom:20px; color:#bfc1c0; font:10px var(--mono); letter-spacing:.08em; }
.contact h2 { margin-bottom:35px; font-size:clamp(54px,7vw,88px); }
.contact-email { display:inline-flex; align-items:center; gap:22px; font-size:clamp(17px,2vw,23px); font-weight:600; border-bottom:1px solid var(--line); padding-bottom:12px; }
.contact-email span { color:var(--blue); font-size:17px; }
.contact-card { padding:28px 26px; border:1px solid var(--line); }
.contact-card > img { width:90px; height:90px; object-fit:contain; object-position:left center; filter:invert(1); margin-bottom:20px; }
.contact-details { display:grid; gap:7px; font-size:11px; color:#c0c2c1; }
.contact-details strong { margin-bottom:4px; color:var(--ink); font-size:12px; }
.contact-card > a { display:inline-block; margin-top:22px; font:10px var(--mono); }
.contact-card > a span { margin-left:14px; color:var(--blue); }
.site-footer { padding:50px max(40px, calc((100vw - 1340px)/2)) 20px; background:var(--night); color:#f2f0eb; }
.footer-top { display:grid; grid-template-columns:1fr 1fr 1fr; align-items:center; padding-bottom:44px; }
.footer-brand { display:block; width:150px; }
.footer-brand img { display:block; width:100%; height:auto; }
.footer-top p { justify-self:center; margin:0; color:#c1c4c3; font-size:11px; line-height:1.8; }
.footer-sites { justify-self:end; display:grid; gap:14px; font-size:11px; }
.footer-sites span { margin-left:12px; color:#e0e2e1; }
.footer-bottom { display:flex; justify-content:space-between; gap:15px; padding-top:17px; border-top:1px solid rgba(255,255,255,.16); color:#b7baba; font:9px var(--mono); letter-spacing:.04em; }
.footer-bottom a { color:#e3e5e3; }
:focus-visible { outline:2px solid var(--blue); outline-offset:4px; }

@media (max-width: 900px) {
  .header-inner,.hero-grid,.hero-bottom { width:calc(100% - 48px); }
  .hero { min-height:680px; padding-top:130px; }
  .hero-grid { grid-template-columns:1fr .78fr; min-height:500px; }
  .hero-art { height:440px; margin-right:-24px; }
  .section-pad { padding:90px 24px; }
  .service-row { grid-template-columns:48px .95fr 1.05fr 24px; gap:17px; }
  .ecosystem-layout { gap:25px; }
  .ecosystem-diagram { height:420px; }
  .promoter-content { padding-right:45px; padding-left:45px; }
  .promoter-content .section-kicker { left:45px; }
  .photo-credit { right:45px; }
  .contact-layout { grid-template-columns:1.2fr .8fr; }
  .site-footer { padding-right:24px; padding-left:24px; }
}
@media (min-width: 681px) and (max-width: 1000px) {
  .brand { width:110px; }
  .primary-nav { gap:12px; font-size:14px; }
}
@media (max-width: 680px) {
  .site-header { position:absolute; }
  .header-inner { width:calc(100% - 36px); min-height:76px; }
  .brand { width:115px; }
  .menu-toggle { width:42px; height:42px; display:grid; align-content:center; justify-content:center; gap:6px; border:1px solid var(--line); background:transparent; cursor:pointer; }
  .menu-toggle span { width:17px; height:1px; display:block; background:var(--ink); transition:transform .2s ease; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
  .primary-nav { display:none; position:fixed; inset:76px 0 0; padding:34px 24px; flex-direction:column; align-items:stretch; gap:0; background:var(--paper); }
  .primary-nav.is-open { display:flex; }
  .primary-nav a { padding:17px 0; border-bottom:1px solid var(--line); font-size:18px; }
  .hero { padding:117px 0 22px; min-height:auto; }
  .hero-grid { width:100%; display:flex; flex-direction:column; align-items:stretch; min-height:0; }
  .hero-copy { padding:29px 22px 34px; }
  .eyebrow { margin-bottom:27px; font-size:9px; }
  .hero h1 { font-size:clamp(60px, 14.7vw, 88px); }
  .hero-intro { max-width:380px; font-size:18px; }
  .hero-actions { gap:19px; }
  .button { min-height:48px; padding:0 15px; gap:17px; font-size:11px; }
  .text-link { font-size:11px; }
  .audience-line { flex-wrap:wrap; gap:8px; margin-top:30px; font-size:9px; }
  .hero-art { height:340px; margin:0 12px; }
  .hero-network { inset:5px 0 16px; height:calc(100% - 21px); }
  .art-index { left:16px; right:16px; bottom:12px; font-size:8px; }
  .hero-bottom { width:calc(100% - 44px); margin-top:18px; font-size:8px; }
  .section-pad { padding:75px 22px; }
  .section-kicker { gap:15px; font-size:9px; }
  .intro-layout { grid-template-columns:1fr; gap:22px; padding:44px 0 48px; }
  h2 { font-size:clamp(51px, 13vw, 72px); }
  .intro-text { padding:0; }
  .intro-lead { font-size:22px; }
  .intro-text > p:not(.intro-lead) { margin-top:14px; font-size:13px; }
  .principles { grid-template-columns:1fr; }
  .principle { min-height:auto; padding:23px 0 20px; }
  .principle + .principle { padding-left:0; border-left:0; border-top:1px solid var(--line); }
  .principle h3 { margin:17px 0 8px; font-size:23px; }
  .principle h3 br { display:none; }
  .principle p { max-width:350px; margin-bottom:0; }
  .services-heading { align-items:start; flex-direction:column; gap:19px; padding:44px 0 43px; }
  .services-heading h2 { font-size:clamp(43px, 11.5vw, 63px); }
  .services-heading p { width:auto; flex:auto; max-width:440px; font-size:12px; }
  .service-row { position:relative; grid-template-columns:38px 1fr 24px; gap:14px; min-height:auto; padding:24px 0; }
  .service-number { grid-row:1 / 3; }
  .service-title h3 { font-size:29px; }
  .service-row > p { grid-column:2 / 4; max-width:430px; padding:1px 28px 0 0; font-size:11px; }
  .service-symbol { grid-column:3; grid-row:1; }
  .services-footnote { align-items:flex-start; flex-direction:column; gap:16px; font-size:9px; }
  .ecosystem-layout { grid-template-columns:1fr; padding-top:46px; }
  .ecosystem-copy h2 { font-size:clamp(54px, 13vw, 74px); }
  .ecosystem-lead { font-size:19px; }
  .ecosystem-copy > p:not(.ecosystem-lead) { font-size:12px; }
  .ecosystem-diagram { height:365px; margin:12px -12px 0; }
  .circle { width:60%; font-size:8px; }
  .circle-top { left:20%; }
  .circle-left { left:0; }
  .circle-right { right:0; }
  .diagram-core { width:64px; height:64px; }
  .diagram-core img { width:40px; height:40px; }
  .promoter { grid-template-columns:1fr; }
  .promoter-photo { min-height:310px; }
  .promoter-content { min-height:510px; padding:85px 24px 75px; }
  .promoter-content .section-kicker { top:29px; left:24px; }
  .promoter h2 { font-size:clamp(56px, 13vw, 76px); }
  .photo-credit { right:24px; bottom:24px; }
  .contact-layout { grid-template-columns:1fr; gap:42px; padding-top:45px; }
  .contact h2 { font-size:clamp(51px, 12.5vw, 70px); }
  .contact-card { max-width:400px; }
  .site-footer { padding:38px 22px 17px; }
  .footer-top { grid-template-columns:1fr 1fr; gap:24px; align-items:start; padding-bottom:31px; }
  .footer-brand { width:124px; }
  .footer-top p { justify-self:end; font-size:10px; }
  .footer-sites { justify-self:start; grid-column:1 / -1; }
  .footer-bottom { flex-wrap:wrap; font-size:8px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition-duration:.01ms !important; animation-duration:.01ms !important; }
}

/* Motion is intentionally quiet: movement supports orientation, never competes with it. */
.site-header { transition: border-color .35s ease, background-color .35s ease; }
.primary-nav a, .text-link, .arrow-link, .hero-bottom a, .footer-bottom a, .contact-card > a {
  transition: color .25s ease, opacity .25s ease;
}
.button, .menu-toggle, .menu-toggle span { transition: color .25s ease, background-color .25s ease, border-color .25s ease, transform .35s cubic-bezier(.2,.7,.2,1); }
.button:hover { transform: translateY(-3px); }
.menu-toggle:hover { border-color: rgba(245,245,243,.62); }
.hero-copy > *, .hero-art, .hero-bottom {
  animation: arrive .8s cubic-bezier(.2,.7,.2,1) both;
}
.hero-copy > *:nth-child(2) { animation-delay: .08s; }
.hero-copy > *:nth-child(3) { animation-delay: .16s; }
.hero-copy > *:nth-child(4) { animation-delay: .23s; }
.hero-copy > *:nth-child(5) { animation-delay: .3s; }
.hero-art { animation-delay: .14s; }
.hero-bottom { animation-delay: .32s; }
.ecosystem-diagram .circle { transition: transform .8s cubic-bezier(.2,.7,.2,1), border-color .5s ease; }
.ecosystem-diagram:hover .circle-top { transform: translateY(-5px); }
.ecosystem-diagram:hover .circle-left { transform: translateX(-5px); }
.ecosystem-diagram:hover .circle-right { transform: translateX(5px); }
.service-row { transition: padding .35s cubic-bezier(.2,.7,.2,1), background-color .35s ease; }
.service-symbol { transition: transform .3s ease; }
.service-row:hover .service-symbol { transform: translate(3px,-3px); }
.primary-nav.is-open a { animation: nav-arrive .4s cubic-bezier(.2,.7,.2,1) both; }
.primary-nav.is-open a:nth-child(2) { animation-delay: .04s; }
.primary-nav.is-open a:nth-child(3) { animation-delay: .08s; }
.primary-nav.is-open a:nth-child(4) { animation-delay: .12s; }
.primary-nav.is-open a:nth-child(5) { animation-delay: .16s; }
.primary-nav.is-open a:nth-child(6) { animation-delay: .2s; }

.motion-enabled .reveal-item {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1);
  transition-delay: var(--reveal-delay, 0ms);
}
.motion-enabled .reveal-item.is-visible { opacity: 1; transform: translateY(0); }
@keyframes arrive {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes nav-arrive {
  from { opacity: 0; transform: translateX(8px); }
  to { opacity: 1; transform: translateX(0); }
}

@media (max-width: 680px) {
  .primary-nav { display: flex; transition: opacity .25s ease, transform .3s cubic-bezier(.2,.7,.2,1), visibility .25s step-end; }
  .primary-nav.is-open { transition: opacity .25s ease, transform .3s cubic-bezier(.2,.7,.2,1), visibility 0s; }
  .primary-nav:not(.is-open) { visibility: hidden; opacity: 0; transform: translateY(-8px); }
  .primary-nav.is-open { visibility: visible; opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .motion-enabled .reveal-item { opacity: 1; transform: none; }
}

/* Responsive refinements: generous reading measure and dependable touch targets. */
.hero-entity {
  max-width: 470px;
  margin: -13px 0 25px;
  color: #aeb1b0;
  font-size: 14px;
  line-height: 1.7;
}
.service-title h3 a { display: inline-block; }
.service-title h3 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.service-row { min-height: 178px; }
.service-row > p,
.intro-text > p:not(.intro-lead),
.ecosystem-copy > p:not(.ecosystem-lead),
.promoter-content > p:not(.section-kicker,.promoter-label),
.principle p,
.service-title span,
.contact-details { font-size: 14px; }
.primary-nav a,
.footer-sites a,
.footer-bottom a,
.text-link,
.arrow-link,
.hero-bottom a,
.contact-email,
.contact-card > a { min-height: 44px; }
.primary-nav a { display: inline-flex; align-items: center; }
.faq-section { border-top: 1px solid var(--line); background: #111314; }
.faq-heading { display: flex; align-items: end; justify-content: space-between; gap: 32px; padding: 56px 0 40px; }
.faq-heading h2 { margin: 0; font-size: clamp(48px, 6vw, 76px); }
.faq-heading h2 span { color: var(--blue); }
.faq-heading p { max-width: 340px; margin: 0 0 7px; color: #c1c4c3; font-size: 15px; line-height: 1.7; }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { position: relative; min-height: 64px; padding: 21px 44px 20px 0; cursor: pointer; list-style: none; font-size: 16px; font-weight: 600; line-height: 1.45; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: 5px; top: 50%; transform: translateY(-50%); color: var(--blue); font: 22px var(--mono); }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { max-width: 760px; margin: 0; padding: 0 45px 23px 0; color: #c1c4c3; font-size: 14px; line-height: 1.75; }
.contact-guidance { max-width: 470px; margin: -14px 0 24px; color: #c1c4c3; font-size: 15px; line-height: 1.7; }
.mobile-contact-cta { display: none; }
.footer-sites { gap: 4px; }

@media (max-width: 1024px) {
  .header-inner,.hero-grid,.hero-bottom { width: calc(100% - 56px); }
  .primary-nav { gap: clamp(10px, 1.8vw, 20px); font-size: 14px; }
  .hero h1 { font-size: clamp(64px, 8.1vw, 92px); }
  .section-pad { padding-right: 32px; padding-left: 32px; }
  .service-row { grid-template-columns: 52px 1fr 1.05fr 32px; gap: 18px; }
}
@media (max-width: 760px) {
  .primary-nav { gap: 9px; font-size: 10px; }
  .header-inner { width: calc(100% - 40px); }
  .brand { width: 105px; }
  .hero-grid { grid-template-columns: 1fr .8fr; width: calc(100% - 40px); }
  .hero-art { height: 390px; }
  .section-pad { padding-right: 24px; padding-left: 24px; }
  .services-heading p { flex-basis: 270px; width: 270px; }
  .service-row { grid-template-columns: 42px 1fr 1fr 26px; gap: 13px; }
  .service-row > p { font-size: 13px; }
}
@media (max-width: 680px) {
  html { scroll-padding-top: 20px; }
  .header-inner { width: calc(100% - 36px); min-height: 72px; }
  .brand { width: 112px; }
  .menu-toggle { width: 48px; height: 48px; }
  .primary-nav { inset: 112px 0 0; padding: 18px 24px max(24px, env(safe-area-inset-bottom)); overflow-y: auto; }
  .primary-nav a { min-height: 54px; padding: 14px 0; font-size: 21px; }
  .primary-nav .nav-promoter, .primary-nav .nav-academy { min-height: 50px; }
  .hero { padding-top: 104px; }
  .hero-copy { padding: 27px 20px 30px; }
  .hero h1 { font-size: clamp(58px, 14.3vw, 84px); }
  .hero-intro { font-size: 18px; }
  .hero-entity { margin: -12px 0 22px; font-size: 14px; }
  .hero-actions { flex-wrap: wrap; gap: 8px 18px; }
  .button { min-height: 48px; padding: 0 16px; font-size: 12px; }
  .text-link { min-height: 48px; display: inline-flex; align-items: center; }
  .audience-line { font-size: 11px; line-height: 1.6; }
  .hero-art { height: clamp(285px, 82vw, 340px); margin: 0 12px; }
  .mobile-contact-cta { display: block; padding: 14px 20px 18px; background: var(--paper); }
  .mobile-contact-cta .button { width: 100%; justify-content: space-between; min-height: 52px; }
  .section-pad { padding: 68px 20px; }
  .services-heading p { width: auto; flex: auto; font-size: 14px; }
  .service-row { grid-template-columns: 32px minmax(0,1fr) 34px; gap: 12px; padding: 22px 0; }
  .service-title h3 { font-size: 27px; }
  .service-title span { font-size: 12px; line-height: 1.5; }
  .service-row > p { grid-column: 2 / 4; padding: 0 25px 0 0; font-size: 14px; line-height: 1.7; }
  .service-symbol { grid-column: 3; grid-row: 1; }
  .faq-heading { align-items: start; flex-direction: column; gap: 18px; padding: 40px 0 30px; }
  .faq-heading h2 { font-size: clamp(48px, 12vw, 66px); }
  .faq-heading p { font-size: 14px; }
  .faq-list summary { min-height: 62px; padding-top: 18px; padding-bottom: 18px; font-size: 15px; }
  .faq-list details p { padding-right: 15px; font-size: 14px; }
  .contact-guidance { font-size: 15px; }
  .footer-sites a,.footer-bottom a { display: inline-flex; align-items: center; min-height: 44px; }
  .footer-bottom { gap: 7px 16px; font-size: 10px; }
}
@media (max-width: 360px) {
  .hero-copy { padding-right: 16px; padding-left: 16px; }
  .hero h1 { font-size: 56px; }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .hero-actions .button { width: 100%; justify-content: space-between; }
  .hero-actions .text-link { align-self: flex-start; }
  .hero-art { height: 280px; }
  .art-index { font-size: 7px; }
  .section-pad { padding-right: 17px; padding-left: 17px; }
}

@media (min-width: 681px) and (max-width: 900px) {
  .menu-toggle { width:48px; height:48px; display:grid; align-content:center; justify-content:center; gap:6px; border:1px solid var(--line); background:transparent; cursor:pointer; }
  .menu-toggle span { width:17px; height:1px; display:block; background:var(--ink); transition:transform .2s ease; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
  .primary-nav { display:none; position:fixed; inset:110px 0 0; padding:24px; flex-direction:column; align-items:stretch; gap:0; overflow-y:auto; background:var(--paper); }
  .primary-nav.is-open { display:flex; }
  .primary-nav a { min-height:54px; padding:14px 0; border-bottom:1px solid var(--line); font-size:21px; }
}

@media (max-width: 900px) {
  .primary-nav .nav-promoter, .primary-nav .nav-academy { font-size: 17px; }
}
