/* Shared site compositions. Prastora supplies navigation, utility, consent, cards and disclosures. */
@layer page {
  [hidden] { display: none !important; }
  :root { --scale-units: 128; --space-inline: 5rem; --space-block: 5rem; --gap: 2.5rem; --line-height: 1.55; --text-size: 1.55rem; --small-size: 1.3rem; --lead-size: 1.8rem; }
  a { text-decoration-thickness: .1rem; }
  h1, h2, h3 { letter-spacing: -.02em; }
  h2 { font-size: 3rem; }
  h3 { font-size: 2rem; }
  .brand { gap: 0; align-items: baseline; font-weight: 400; }
  .brand-mark { inline-size: 3.1rem; block-size: 3.1rem; border: .1rem solid currentColor; border-inline-end: .05rem dashed currentColor; display: inline-flex; align-items: center; justify-content: flex-end; font: 2.2rem/1 var(--serif); letter-spacing: -.1rem; margin-inline-end: -.08rem; }
  .brand-word { font: 2.2rem/1 var(--serif); letter-spacing: -.04em; }
  .brand-word span { color: var(--signal); }
  .header-inner { gap: 1.2rem; }
  .desktop-nav { gap: 0; font-size: 1.25rem; }
  .desktop-nav .nav-cta { font-size: 1.25rem; color: var(--on-accent); margin-inline-start: 1rem; min-block-size: 4.4rem; padding-block: .8rem; }
  .desktop-nav { align-items: center; }
  .desktop-nav a, .desktop-nav summary { padding-inline: .8rem; }
  .direction-switch { display: inline-flex; gap: .25rem; flex-wrap: wrap; }
  .direction-switch a { color: var(--ink); padding: .2rem .65rem; text-decoration: none; border: .1rem solid transparent; }
  .direction-switch a[aria-current=page] { border-color: var(--utility-line); background: var(--paper); }
  .eyebrow { letter-spacing: .075em; font-weight: 600; line-height: 1.6; font-size: 1.15rem; }
  .audience-nav { border-block-end: .1rem solid var(--line); padding-block: .6rem; gap: 2rem; font-size: 1.3rem; }
  .audience-nav a { text-decoration: none; }
  .audience-nav .join-link { margin-inline-start: auto; font-weight: 600; }
  .inline-link { display: inline-flex; align-items: center; gap: .8rem; min-block-size: 4.4rem; font-weight: 600; text-decoration: none; }
  .topic-bar { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 2fr); gap: 3rem; padding-block: 1.6rem; border-block: .1rem solid var(--line); font-size: 1.25rem; align-items: center; }
  .topic-bar .flex { gap: .6rem 1.6rem; }
  .topic-bar a { min-block-size: 3.6rem; display: inline-flex; align-items: center; }
  .section-head { display: flex; justify-content: space-between; align-items: end; gap: 3rem; margin-block-end: 2.5rem; }
  .section-head > div { display: grid; gap: .7rem; }
  .section-head > p { flex: 0 1 42rem; color: var(--muted); font-size: var(--small-size); }
  .service-card { --card-space: 2.5rem; border-block-start: .3rem solid var(--accent); border-radius: 0; gap: 1.2rem; }
  .service-card h3 { font-size: 2.3rem; }
  .service-card > .service-index { color: var(--muted); font-size: 1.15rem; }
  .service-card > .service-result { font-size: var(--small-size); border-block-start: .1rem solid var(--line); padding-block-start: 1.2rem; }
  .service-card a { font-size: var(--small-size); }
  .scope-options { display: flex; flex-wrap: wrap; gap: .75rem; margin-block-start: 2rem; }
  .scope-options span { border: .1rem solid var(--line); padding: .55rem 1rem; font-size: var(--small-size); }
  .audience-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4rem; }
  .audience-grid > article { border-inline-start: .3rem solid var(--accent); padding-inline-start: 2rem; }
  .coordination { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.7fr); gap: 5rem; }
  .coordination-copy { display: grid; align-content: start; gap: 1.5rem; }
  .process-list { list-style: none; padding: 0; display: grid; }
  .process-list li { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 1.5rem; padding-block: 1.5rem; border-block-start: .1rem solid var(--line); }
  .process-list li > span { color: var(--accent); font-size: 1.3rem; }
  .process-list h3 { font-size: 1.7rem; margin-block-end: .4rem; }
  .process-list p { font-size: var(--small-size); color: var(--muted); }
  .expert-rows { --aligned-rows: 6; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); column-gap: 2.5rem; row-gap: 1rem; }
  .expert-row { display: grid; align-content: start; align-items: start; gap: 1rem; padding-block: 2rem; border-block-start: .1rem solid var(--line); }
  .expert-row h3 { font-size: 1.9rem; line-height: 1.3; }
  .expert-row h3 a { font-size: inherit; text-decoration: none; }
  .expert-photo { display: block; inline-size: 100%; object-fit: cover; background: var(--surface); }
  .expert-row .eyebrow { font-size: 1.05rem; letter-spacing: .035em; }
  .expert-profile .breadcrumbs { display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; list-style: none; padding: 0; font-size: var(--small-size); }
  .expert-profile .section:first-child { padding-block: 2rem; }
  .profile-top { display: grid; grid-template-columns: minmax(0, 32rem) minmax(0, 1fr); align-items: start; gap: 5rem; padding-block-start: 1rem; }
  .profile-top h1 { font-size: 4.5rem; line-height: 1.15; }
  .profile-top .btn { justify-self: start; }
  .profile-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5rem; }
  .profile-sources { padding-inline-start: 2rem; margin-block-start: 1.5rem; display: grid; gap: 1rem; }
  .profile-followup .inline-link { justify-self: start; }
  .expert-row p, .expert-row a { font-size: var(--small-size); }
  .expert-row .expert-field { color: var(--accent); text-wrap: balance; }
  .expert-row .inline-link { align-self: end; }
  .publications { border-block-start: .1rem solid var(--line); }
  .article-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3rem; }
  .article-topic { display: grid; align-content: start; gap: 1.2rem; padding-block-start: 1.5rem; border-block-start: .2rem solid var(--signal); }
  .article-topic h3 { font-size: 2.1rem; }
  .article-topic > p { font-size: var(--small-size); color: var(--muted); }
  .article-topic .disclosure { font-size: var(--small-size); }
  .article-topic .disclosure > div { margin-block-start: 1rem; }
  .country-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; }
  .country-grid .specs > div { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); }
  .country-grid .specs dd { display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; }
  .join-section { border-block-start: .1rem solid var(--line); }
  .join-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 6rem; }
  .join-layout > div { display: grid; align-content: start; gap: 1.5rem; }
  .join-layout .disclosure { border-block-start: .1rem solid var(--line); }
  .join-layout .disclosure > div { padding-block: 1rem; }
  .join-layout .disclosure h3 { font-size: 1.8rem; }
  .contact-links { display: flex; flex-wrap: wrap; gap: 1rem 2rem; }
  .site-footer { padding: 3rem var(--space-inline); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 3rem; font-size: var(--small-size); }
  .site-credit { font-size: calc(var(--small-size) * .85); color: var(--muted); }
  .site-credit a { color: inherit; }
  .site-footer .brand-word { font-size: 2rem; }
  .footer-links { align-content: start; }
  .footer-links a { min-block-size: 3.6rem; display: inline-flex; align-items: center; }
  [data-direction=editorial] :is(h1, h2, .article-topic h3) { font-family: var(--serif); font-weight: 400; letter-spacing: -.025em; }
  [data-direction=editorial] .publications { background: var(--surface); }
  [data-direction=editorial] .article-grid { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr) minmax(0, 1fr); }
  [data-direction=editorial] .article-topic:first-child h3 { font-size: 2.65rem; }
  [data-direction=editorial] .service-card { border: 0; border-block-start: .1rem solid var(--line); padding-inline: 0; background: none; }
  [data-direction=network] .coordination { background: var(--hero-paper); }
  [data-direction=network] .process-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
  [data-direction=network] .process-list li { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-content: start; }
  [data-direction=network] .process-list li > span { inline-size: 3rem; block-size: 3rem; display: grid; place-items: center; border: .1rem solid var(--accent); border-radius: 50%; }
  [data-direction=network] .service-card { background: var(--surface); border-color: var(--line); border-block-start-color: var(--accent); }
  .directions-head { display: grid; gap: 1.5rem; border-block-end: .1rem solid var(--line); }
  .directions-head h1 { font-size: 4.2rem; }
  .direction-card { display: grid; align-content: start; gap: 1.5rem; padding: 2.5rem; border: .1rem solid var(--line); background: var(--paper); }
  .direction-card h2 { font-size: 2.5rem; }
  .direction-card > p { font-size: var(--small-size); color: var(--muted); }
  .direction-card .btn { font-size: 1.5rem; }
  .mini-page { display: grid; padding: 1.8rem; gap: 1.2rem; background: var(--hero-paper); border: .1rem solid var(--line); min-block-size: 19rem; }
  .mini-page span { display: block; block-size: .6rem; background: var(--line); }
  .mini-title { font-size: 2rem; line-height: 1.2; font-weight: 650; }
  .mini-page .mini-head { block-size: 1.8rem; inline-size: 55%; background: var(--accent); }
  .mini-columns { display: grid; grid-template-columns: 1.3fr 1fr; gap: 1.2rem; }
  .mini-columns > div { display: grid; align-content: start; gap: .9rem; }
  .mini-columns > div:last-child { padding: 1rem; background: var(--soft-accent); }
  .mini-editorial { background: var(--paper); }
  .mini-editorial .mini-title { font-family: var(--serif); font-weight: 400; }
  .mini-editorial .mini-columns { grid-template-columns: 1.6fr .7fr; }
  .mini-editorial .mini-columns > div:last-child { padding: 0 0 0 1rem; border-inline-start: .1rem solid var(--line); background: none; }
  .mini-network { background: var(--surface); }
  .mini-network .mini-columns > div:last-child { background: var(--paper); border-block-start: .3rem solid var(--accent); }
  :where(.brand, .desktop-nav a, .mobile-nav nav a, .footer-links a, .card a) { transform: none !important; }
  @media (width <= 50em) {
    :root { --scale-units: 48; --space-inline: 2.2rem; --space-block: 4rem; --text-size: 2rem; --small-size: 1.7rem; --lead-size: 2.1rem; --button-size: 2rem; }
    h2 { font-size: 3.6rem; }
    h3 { font-size: 2.7rem; }
    .eyebrow { font-size: 1.5rem; }
    .brand-mark, .brand-word { font-size: 2.6rem; }
    .brand-mark { inline-size: 3.5rem; block-size: 3.5rem; }
    .header-inner { grid-template-columns: minmax(0, 1fr) 7rem; gap: 1rem; }
    .mobile-nav nav { margin-inline-start: calc(7rem - 100vw + 2 * var(--space-inline)); gap: .5rem 2rem; }
    .mobile-nav .nav-cta { color: var(--on-accent); padding-inline: 1.5rem; }
    .viewport-tools { flex-wrap: wrap; gap: .6rem; }
    .viewport-reading { display: none; }
    .direction-switch a { padding: .35rem .65rem; }
    .theme-toggle { inline-size: 4.4rem; block-size: 4.4rem; }
    .audience-nav { padding-block: .7rem; gap: .5rem 2rem; font-size: 1.6rem; }
    .audience-nav .join-link { margin-inline-start: 0; }
    .topic-bar { grid-template-columns: minmax(0, 1fr); gap: .6rem; font-size: 1.6rem; }
    .topic-bar .flex { gap: .4rem 1.5rem; }
    .section-head { flex-direction: column; align-items: start; gap: 1.5rem; }
    .section-head > p { flex: auto; }
    .service-card { --card-space: 2.3rem; }
    .service-card h3 { font-size: 2.9rem; }
    .service-card > .service-index { font-size: 1.6rem; }
    .audience-grid, .coordination, .article-grid, [data-direction=editorial] .article-grid, .country-grid, .join-layout { grid-template-columns: minmax(0, 1fr); gap: 3rem; }
    .process-list h3 { font-size: 2.4rem; }
    .process-list li > span { font-size: 1.8rem; }
    [data-direction=network] .process-list { grid-template-columns: minmax(0, 1fr); gap: 0; }
    [data-direction=network] .process-list li { grid-template-columns: 3rem minmax(0, 1fr); }
    .expert-rows { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2.4rem; row-gap: 1rem; }
    .expert-row h3 { font-size: 2.35rem; }
    .expert-row .eyebrow { font-size: 1.5rem; }
    .profile-top, .profile-details { grid-template-columns: minmax(0, 1fr); gap: 3rem; }
    .profile-top h1 { font-size: 4.8rem; }
    .article-topic h3, [data-direction=editorial] .article-topic:first-child h3 { font-size: 2.8rem; }
    .join-layout .disclosure h3 { font-size: 2.3rem; }
    .site-footer { grid-template-columns: minmax(0, 1fr); }
    .consent-row { flex-wrap: wrap; }
    .consent-row > p { flex: 1 1 100%; }
    .consent-actions { flex: 1 1 100%; justify-content: space-between; }
    .consent-bar { padding-block: .8rem; }
    .directions-head h1 { font-size: 4.2rem; }
    .direction-card h2 { font-size: 3rem; }
    .direction-card .btn { font-size: 2rem; }
    .mini-page { min-block-size: 24rem; }
    .mini-title { font-size: 2.6rem; }
  }
  @media (width >= 125em) {
    :root { --scale-units: 144; --space-inline: 8rem; --space-block: 5.5rem; }
  }
  @media (height <= 30em) {
  }
  @media print {
    .intro, .coordination, .expert-rows, .article-grid, .country-grid { grid-template-columns: 1fr; }
  }
}
