/* Canonical semantic primitives for the public CTG website.
   Owns shared tokens and opt-in semantic primitives, not page-specific styling. */
:root{
  --ctg-public-font-heading:"Instrument Sans",sans-serif;
  --ctg-public-font-body:"Manrope",sans-serif;

  --ctg-public-surface-dark:#202226;
  --ctg-public-heading-dark:#f8f8f5;
  --ctg-public-body-dark:#aeb4bd;
  --ctg-public-eyebrow-primary:#b8c9ff;
  --ctg-public-eyebrow-secondary:#c8ced8;
  /* Quiet dark-card palette, shared by informational cards and inquiry panels. */
  --ctg-public-card-surface:rgba(255,255,255,.018);
  --ctg-public-card-highlight:radial-gradient(circle at 100% 0%,rgba(184,198,255,.05),transparent 34%);
  --ctg-public-card-border:rgba(255,255,255,.072);
  --ctg-public-field-inset:color-mix(in srgb,var(--ctg-public-surface-dark) 90%,black);
  --ctg-public-form-elevation:0 .5rem 1rem -.375rem rgba(0,0,0,.32),0 1.5rem 3.5rem -.75rem rgba(0,0,0,.28),0 0 3rem -1rem color-mix(in srgb,var(--ctg-public-eyebrow-primary) 4%,transparent),inset 0 1px 0 rgba(255,255,255,.035);

  --ctg-public-surface-light:#f8f6f1;
  --ctg-public-heading-light:#17191e;
  --ctg-public-heading-light-muted:#8a8882;
  --ctg-public-body-light:#454951;
  --ctg-public-eyebrow-tertiary:#25272c;

  --ctg-public-content-max:80rem;
  --ctg-public-gutter:2rem;
  --ctg-public-section-block-mobile:3.125rem;

  /* Reading measures by role; component containers remain the upper bound. */
  --ctg-public-measure-display:24ch;
  --ctg-public-measure-section:26ch;
  --ctg-public-measure-lede:50ch;
  --ctg-public-measure-support:66ch;
  --ctg-public-measure-body:66ch;
  --ctg-public-measure-card:28ch;
  --ctg-public-measure-note:74ch;

  --ctg-public-type-h1:clamp(3.5rem,5vw,4.5rem);
  --ctg-public-type-h2:clamp(2.75rem,3.62vw,3.25rem);
  --ctg-public-type-h3:clamp(1.4375rem,1.81vw,1.625rem);
  --ctg-public-type-body:1.0625rem;
  --ctg-public-type-eyebrow:.8125rem;
  --ctg-public-type-callout:clamp(4.5rem,6.67vw,6rem);

  --ctg-public-focus-ring:rgba(184,201,255,.72);
  --ctg-public-focus-offset:.25rem;
}

/* Ordinary editorial service links, not CTAs or navigation controls. */
.ctg-contextual-link{color:inherit;text-decoration:underline;text-decoration-color:var(--ctg-public-eyebrow-primary);text-underline-offset:.2em;}
.ctg-contextual-link:hover{text-decoration-thickness:2px;}
.ctg-contextual-link:focus-visible{outline:2px solid var(--ctg-public-focus-ring);outline-offset:var(--ctg-public-focus-offset);}

@media(max-width:1023px){
  :root{
    --ctg-public-gutter:clamp(1.5rem,4vw,2rem);
    --ctg-public-type-h1:clamp(3rem,6.25vw,4rem);
    --ctg-public-type-h2:clamp(2.625rem,5vw,3.125rem);
    --ctg-public-type-h3:clamp(1.375rem,3vw,1.625rem);
  }
}

@media(max-width:767px){
  :root{
    --ctg-public-gutter:1.875rem;
    --ctg-public-type-h1:clamp(2.6875rem,12vw,3.6875rem);
    --ctg-public-type-h2:clamp(2.375rem,10.2vw,3rem);
    --ctg-public-type-h3:clamp(1.375rem,6.7vw,1.625rem);
    --ctg-public-type-body:1rem;
    --ctg-public-type-callout:clamp(3.625rem,18vw,4.875rem);
  }

  /* Opt-in contract for ordinary top-level public content sections. The
     section's existing semantic owner consumes this value so nested UI is
     never normalized accidentally. */
  .ctg-public-section,
  [data-ctg-public-section]{
    --ctg-public-section-block:var(--ctg-public-section-block-mobile);
  }
}
/* Selective heading emphasis: one restrained, wrapping-safe organic stroke. */
.ctg-text-underline-hand{
  color:inherit;
  background-image:radial-gradient(ellipse 49% 27% at 49% 68%,var(--ctg-public-eyebrow-primary) 96%,transparent 100%);
  background-size:93% 6px;
  background-position:center bottom;
  background-repeat:no-repeat;
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}
