/*
  Spectrum interior pages / Aperture system
  Shared visual language with the production landing page: editorial display
  type, technical labels, full-width fields, fine rules, and restrained motion.
*/

body:not([data-page="home"]) {
  --ap-paper: var(--theme-paper,#f3f1e8);
  --ap-white: var(--theme-surface,#fbfaf5);
  --ap-ink: var(--theme-ink,#111713);
  --ap-green: var(--theme-primary,#18453b);
  --ap-deep: var(--theme-deep,#082c24);
  --ap-acid: var(--theme-accent,#bdd4c4);
  --ap-fog: var(--theme-fog,#dce4dd);
  --ap-muted: var(--theme-muted,#667169);
  --ap-line: var(--theme-line,rgba(24,69,59,.25));
  --ap-line-dark: var(--theme-line-dark,rgba(255,255,255,.2));
  --ap-gutter: clamp(24px,3.6vw,62px);
  background: var(--ap-paper);
  color: var(--ap-ink);
  font-family: var(--theme-body-font,"IBM Plex Sans",Arial,sans-serif);
  font-size: var(--theme-base-size,17px);
  overflow-x: clip;
}

body:not([data-page="home"]) .wrap { width: 100%; max-width: var(--theme-content-width,1280px); margin-inline: auto; padding-inline: var(--ap-gutter); }

/* About: history, purpose, and a photographic values grid. */
body[data-page="about"] main { overflow:clip; }
.about-story,.about-purpose,.about-values-section { padding-block:clamp(48px,7vw,96px); border-bottom:1px solid var(--ap-line); }
.about-story-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:clamp(32px,6vw,80px); align-items:center; }
.about-label { margin:0 0 24px; color:var(--ap-green); font:500 .65rem var(--theme-mono-font,monospace); letter-spacing:.13em; text-transform:uppercase; }
body[data-page="about"] h2 { margin:0 0 28px; font:300 clamp(2.7rem,4.6vw,4.6rem)/1 var(--theme-display-font,Georgia,serif); letter-spacing:-.04em; }
.about-story-copy p:not(.about-label),.about-purpose-grid p { max-width:60ch; line-height:1.75; color:var(--theme-text-soft,#4f5d55); }
.about-story figure { margin:0; }
.about-story figure img { width:100%; aspect-ratio:4/5; object-fit:cover; }
#about-stats { display:flex; flex-wrap:wrap; gap:24px 36px; border-top:1px solid var(--ap-line); margin:36px 0 0; padding-top:24px; }
#about-stats > div { flex:1 1 100px; }
#about-stats dt { font:300 2.8rem var(--theme-display-font,Georgia,serif); color:var(--ap-green); }
#about-stats dd { margin:6px 0 0; font:500 .6rem/1.6 var(--theme-mono-font,monospace); text-transform:uppercase; letter-spacing:.08em; }
.about-purpose { background:var(--ap-deep); color:var(--theme-on-dark,#fff); }
.about-purpose .about-label { color:var(--ap-acid); }
.about-purpose-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 64px; margin-top:48px; }
.about-purpose-grid article { border-top:1px solid var(--ap-line-dark); padding-top:24px; }
.about-purpose-grid h3 { margin:0 0 16px; font:400 1.8rem var(--theme-display-font,Georgia,serif); }
.about-purpose-grid p { color:var(--theme-on-dark-muted,rgba(255,255,255,.78)); }
.about-values-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr)); gap:24px; margin-top:40px; }
.about-value { min-width:0; margin:0; }
.about-value img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.about-value h3 { margin:18px 0 0; font:400 1.45rem/1.2 var(--theme-display-font,Georgia,serif); }
@media (max-width:760px) {
  .about-story-grid,.about-purpose-grid { grid-template-columns:1fr; }
  .about-story figure img { aspect-ratio:3/2; }
}

/* Shared shell */
body:not([data-page="home"]) .topbar { position: sticky; inset: 0 0 auto; z-index: 300; width: 100%; border: 0; border-bottom: 1px solid var(--ap-line); background: var(--theme-paper-glass,rgba(243,241,232,.96)); box-shadow: none; backdrop-filter: blur(16px); }
body:not([data-page="home"]) .topbar-inner { width: 100%; max-width: var(--theme-content-width,1280px); height: 88px; min-height: 88px; margin-inline: auto; padding: 0 var(--ap-gutter); }
body:not([data-page="home"]) .brand { min-width: 0; color: var(--ap-ink); }
body:not([data-page="home"]) .brand img { width: auto; height: 64px; max-width: min(260px,52vw); object-fit: contain; }
body:not([data-page="home"]) .brand b { display: none; }
body:not([data-page="home"]) .nav { gap: 3px; }
body:not([data-page="home"]) .nav a { min-height: 38px; display: inline-flex; align-items: center; border: 0; padding: 0 12px; color: var(--theme-text-soft,#344139); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .68rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
body:not([data-page="home"]) .nav a::after { display: none; }
body:not([data-page="home"]) .nav a:hover,body:not([data-page="home"]) .nav a.active { color: var(--ap-green); background: var(--theme-primary-soft,rgba(24,69,59,.07)); }
body:not([data-page="home"]) .nav .cta-link,body:not([data-page="home"]) .nav .cta-link:hover { border: 1px solid var(--ap-green); background: transparent; color: var(--ap-green); padding-inline: 18px; }
body:not([data-page="home"]) .nav-toggle { color: var(--ap-ink); }
body:not([data-page="home"]) .bars,body:not([data-page="home"]) .bars::before,body:not([data-page="home"]) .bars::after { background: var(--ap-green); }

/* Page mast */
body:not([data-page="home"]) .page-head { position: relative; min-height: 0; display: flex; align-items: flex-end; border: 0; border-bottom: 1px solid var(--ap-line); padding: 0; overflow: hidden; background: var(--ap-paper); color: var(--ap-ink); }
body:not([data-page="home"]) .page-head.hero-no-grid { background: var(--ap-paper); }
body:not([data-page="home"]) .page-head::before { opacity: .22; content: ""; position: absolute; right: clamp(-150px,-7vw,-70px); bottom: clamp(-220px,-13vw,-110px); width: clamp(360px,38vw,640px); aspect-ratio: 1; border: 1px solid var(--ap-line); border-radius: 50%; box-shadow: inset 0 0 0 clamp(60px,7vw,110px) var(--ap-paper),inset 0 0 0 calc(clamp(60px,7vw,110px) + 1px) var(--ap-line); pointer-events: none; }
body:not([data-page="home"]) .page-head::after { opacity: .45; content: "+"; position: absolute; right: calc(var(--ap-gutter) + 8vw); bottom: calc(var(--ap-gutter) + 4vw); color: var(--ap-green); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: 1.2rem; font-weight: 400; }
body:not([data-page="home"]) .page-head.hero-no-circle::before { display: none; }
body:not([data-page="home"]) .page-head.hero-no-cross::after { display: none; }
body:not([data-page="home"]) .page-head > .wrap { max-width: none; position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,var(--hero-title-fr,1.25fr)) minmax(320px,var(--hero-lead-fr,.75fr)); grid-template-rows: auto; gap: 14px clamp(28px,4vw,64px); align-items: end; padding-top: var(--hero-pad-top,clamp(38px,3.5vw,52px)); padding-bottom: var(--hero-pad-bottom,clamp(28px,2.5vw,36px)); }
body:not([data-page="home"]) .page-kicker { grid-column: 1; display: flex; align-items: center; gap: 12px; margin: 0; color: var(--ap-green); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .58rem; font-weight: 500; letter-spacing: .11em; text-transform: uppercase; }
body:not([data-page="home"]) .page-kicker .hexb { width: 9px; height: 9px; border: 1px solid var(--ap-green); border-radius: 50%; background: transparent; clip-path: none; }
body:not([data-page="home"]) .page-title { grid-column: 1; max-width: 980px; margin: 0; padding-bottom: .06em; color: var(--ap-ink); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: var(--hero-title-size,clamp(3.6rem,5vw,5.8rem)); font-weight: 300; letter-spacing: -.045em; line-height: 1.02; text-wrap: balance; }
body:not([data-page="home"]) .page-lead { grid-column: 2; grid-row: 1; max-width: var(--hero-lead-width,53ch); margin: 0 0 .5em; color: var(--theme-text-soft,#4f5d55); font-size: var(--hero-lead-size,.98rem); line-height: 1.72; }

/* Section frame */
body:not([data-page="home"]) .sec { padding: 0; background: var(--ap-white); color: var(--ap-ink); }
body:not([data-page="home"]) .sec + .sec,body:not([data-page="home"]) #team-root + .foot { border-top: 1px solid var(--ap-line); }
body:not([data-page="home"]) .sec-paper { background: var(--ap-white); }
body:not([data-page="home"]) .sec-green { background: var(--ap-deep); color: var(--theme-on-dark,#ffffff); }
body:not([data-page="home"]) .sec-grid,body:not([data-page="home"]) .tribute { width: 100%; display: grid; grid-template-columns: minmax(120px,12%) minmax(0,88%); gap: 0; padding: 0; }
body:not([data-page="home"]) .sec-grid > :not(.rail),body:not([data-page="home"]) .tribute-body { min-width: 0; padding: calc(clamp(70px,7vw,112px) * var(--theme-section-space,1)) var(--ap-gutter); }
body:not([data-page="home"]) .rail { position: relative; top: auto; align-self: stretch; min-height: 260px; display: flex; flex-direction: column; align-items: center; gap: 15px; border-right: 1px solid var(--ap-line); padding: calc(clamp(70px,7vw,112px) * var(--theme-section-space,1)) 18px; }
body:not([data-page="home"]) .rail-idx { color: var(--ap-green); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: 1.5rem; font-weight: 300; }
body:not([data-page="home"]) .rail-line { width: 1px; height: 50px; background: var(--ap-line); }
body:not([data-page="home"]) .rail-name { color: var(--ap-muted); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .52rem; letter-spacing: .11em; text-align: center; text-transform: uppercase; writing-mode: vertical-rl; }
body:not([data-page="home"]) .sec-green .rail { border-color: var(--ap-line-dark); }
body:not([data-page="home"]) .sec-green .rail-idx { color: var(--ap-acid); }
body:not([data-page="home"]) .sec-green .rail-line { background: var(--ap-line-dark); }
body:not([data-page="home"]) .sec-green .rail-name { color: color-mix(in srgb,var(--theme-on-dark,#ffffff) 54%,transparent); }
body:not([data-page="home"]) .h2,body:not([data-page="home"]) .sec-green .h2 { max-width: 1000px; margin: 0; padding-bottom: .07em; color: var(--ap-ink) !important; font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(4.2rem,7vw,8rem); font-weight: 300; letter-spacing: -.054em; line-height: .9; text-wrap: balance; }
body:not([data-page="home"]) .sec-green .h2 { color: var(--theme-on-dark,#ffffff) !important; }
body:not([data-page="home"]) .firm-copy,body:not([data-page="home"]) .pipe-intro { max-width: 62ch; color: var(--theme-text-soft,#4f5d55); font-size: .94rem; line-height: 1.72; }
body:not([data-page="home"]) .sec-green .pipe-intro { color: var(--theme-on-dark-muted,rgba(255,255,255,.62)); }

body:not([data-page="home"]) .btn,body:not([data-page="home"]) .btn-apply,body:not([data-page="home"]) .arrow-link { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 12px; border: 1px solid var(--ap-green); border-radius: var(--theme-button-radius,0); padding: 0 20px; background: transparent; color: var(--ap-green); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .62rem; font-weight: 500; letter-spacing: .09em; text-transform: uppercase; transition: background .25s ease,color .25s ease,border-color .25s ease; }
body:not([data-page="home"]) .btn:hover,body:not([data-page="home"]) .btn-apply:hover,body:not([data-page="home"]) .arrow-link:hover { border-color: var(--ap-green); background: var(--ap-green); color: var(--theme-on-dark,#ffffff); }
body:not([data-page="home"]) .sec-green .btn { border-color: color-mix(in srgb,var(--theme-on-dark,#ffffff) 50%,transparent); color: var(--theme-on-dark,#ffffff); }
body:not([data-page="home"]) .sec-green .btn-light { border-color: var(--ap-acid); background: var(--ap-acid); color: var(--ap-deep); }
body:not([data-page="home"]) .sec-green .btn:hover { border-color: var(--theme-on-dark,#ffffff); background: var(--theme-on-dark,#ffffff); color: var(--ap-deep); }

/* Services */
body[data-page="services"] #capabilities .sec-grid > .svc-wrap { padding: 0; }
body[data-page="services"] .svc-wrap { display: grid; grid-template-columns: 1fr; gap: 0; align-items: stretch; }
body[data-page="services"] .svc-list { grid-row: 2; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; border: 0; background: var(--ap-line); }
body[data-page="services"] .svc { min-height: clamp(210px,17vw,280px); display: grid; grid-template-columns: 64px minmax(0,1fr); gap: 22px; align-content: center; border: 0; padding: 32px var(--ap-gutter); background: var(--ap-white); transition: padding .35s ease,background .35s ease,color .35s ease; }
body[data-page="services"] .svc:hover { padding-left: calc(var(--ap-gutter) + 20px); background: var(--ap-green); color: var(--theme-on-dark,#ffffff); }
body[data-page="services"] .svc-num { align-self: start; color: var(--ap-green); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .56rem; letter-spacing: .1em; }
body[data-page="services"] .svc-name { max-width: 850px; color: var(--ap-ink); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(2.8rem,4.8vw,6rem); font-weight: 300; letter-spacing: -.052em; line-height: .9; }
body[data-page="services"] .svc-desc { max-width: 58ch; margin-top: 18px; color: var(--ap-muted); font-size: .84rem; line-height: 1.66; }
body[data-page="services"] .svc:hover .svc-num,body[data-page="services"] .svc:hover .svc-name,body[data-page="services"] .svc:hover .svc-desc { color: var(--theme-on-dark,#ffffff); }
body[data-page="services"] .svc-photo { position: relative; top: auto; grid-row: 1; height: auto; aspect-ratio: 16/7; margin: 0; overflow: hidden; background: var(--ap-fog); }
body[data-page="services"] .svc-photo figure,body[data-page="services"] .svc-photo img { width: 100%; height: 100%; }
body[data-page="services"] .svc-photo img { display: block; border: 0; object-fit: cover; object-position: center; }

body[data-page="services"] #work .sec-grid > div { padding-right: 0; padding-bottom: 0; padding-left: 0; }
body[data-page="services"] #work .h2,body[data-page="services"] #work .pipe-intro { margin-inline: var(--ap-gutter); }
body[data-page="services"] .case-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; margin-top: clamp(48px,6vw,80px); border: 0; border-top: 1px solid var(--ap-line-dark); background: var(--ap-line-dark); }
body[data-page="services"] .case { position: relative; min-height: clamp(360px,34vw,520px); display: flex; flex-direction: column; border: 0; padding: clamp(30px,3vw,48px) var(--ap-gutter); background: var(--ap-deep); color: var(--theme-on-dark,#ffffff); transition: background .35s ease,color .35s ease; }
body[data-page="services"] .case:hover { background: var(--ap-acid); color: var(--ap-deep); }
body[data-page="services"] .case .hexb { display: none; }
body[data-page="services"] .case::before { content: none; }
body[data-page="services"] .case-grid { counter-reset: ap-case; }
body[data-page="services"] .case-kind { margin-top: auto; color: var(--ap-acid); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .55rem; letter-spacing: .1em; text-transform: uppercase; }
body[data-page="services"] .case h3 { max-width: 12ch; margin-top: 14px; color: var(--theme-on-dark,#ffffff); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(2.4rem,3.7vw,4.7rem); font-weight: 300; letter-spacing: -.05em; line-height: .91; }
body[data-page="services"] .case p { max-width: 43ch; margin-top: 18px; color: var(--theme-on-dark-muted,rgba(255,255,255,.62)); font-size: .78rem; line-height: 1.58; }
body[data-page="services"] .case:hover::before,body[data-page="services"] .case:hover .case-kind,body[data-page="services"] .case:hover h3,body[data-page="services"] .case:hover p { color: var(--ap-deep); }

body[data-page="services"] #testimonial .tcar { max-width: none; border: 0; padding-right: var(--ap-gutter); padding-left: var(--ap-gutter); background: transparent; }
body[data-page="services"] #testimonial .sec-grid > .tcar,body[data-page="services"] #testimonial .rail { padding-top: clamp(54px,5vw,78px); padding-bottom: clamp(54px,5vw,78px); }
body:not([data-page="home"]) .tcar { max-width: 980px; border: 0; padding: 0; background: transparent; }
body:not([data-page="home"]) .tcar-quote,body:not([data-page="home"]) .sec-green .tcar-quote { max-width: 24ch; color: var(--ap-ink); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(3rem,5.4vw,6.5rem); font-weight: 300; letter-spacing: -.045em; line-height: .98; text-indent: 0; }
body:not([data-page="home"]) .tcar-quote .qmark { color: var(--ap-green); }
body:not([data-page="home"]) .tcar-cite { margin-top: 28px; color: var(--ap-muted); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; }
body:not([data-page="home"]) .tcar-controls { margin-top: 40px; }
body:not([data-page="home"]) .tcar-arrow { width: 48px; height: 48px; border: 1px solid var(--ap-line); border-radius: var(--theme-button-radius,0); background: transparent; color: var(--ap-green); }
body:not([data-page="home"]) .tcar-arrow:hover { border-color: var(--ap-green); background: var(--ap-green); color: var(--theme-on-dark,#ffffff); }
body:not([data-page="home"]) .tcar-dot { width: 8px; height: 8px; border-radius: 50%; clip-path: none; background: var(--ap-line); }
body:not([data-page="home"]) .tcar-dot.active { background: var(--ap-green); }

/* Team */
body[data-page="team"] #team-root { counter-reset: ap-group; background: var(--ap-white); }
body[data-page="team"] .team-group { counter-increment: ap-group; border: 0; border-bottom: 1px solid var(--ap-line); padding: 0; background: var(--ap-white); }
body[data-page="team"] .team-group:nth-child(even) { background: var(--ap-paper); }
body[data-page="team"] .team-group > .wrap { display: grid; grid-template-columns: minmax(180px,24%) minmax(0,76%); padding: 0; }
body[data-page="team"] .team-head { position: relative; top: auto; align-self: stretch; min-width: 0; min-height: 300px; display: flex; flex-direction: column; align-items: flex-start; gap: 22px; border-right: 1px solid var(--ap-line); margin: 0; padding: 32px clamp(20px,2vw,28px); }
body[data-page="team"] .team-head::before { content: none; }
body[data-page="team"] .team-head h2 { max-width: 100%; min-width: 0; overflow-wrap: anywhere; color: var(--ap-ink); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(1.75rem,3.2vw,3rem); font-weight: 300; letter-spacing: -.035em; line-height: 1.05; }
body[data-page="team"] .team-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 0; justify-content: stretch; padding: 0; }
body[data-page="team"] .member { min-width: 0; max-width: none; display: flex; flex: none; border: 0; border-right: 1px solid var(--ap-line); border-bottom: 1px solid var(--ap-line); padding: 0 0 24px; background: transparent; text-align: left; transition: background .3s ease; }
body[data-page="team"] .member:nth-child(5n) { border-right: 0; }
body[data-page="team"] .member:hover { background: color-mix(in srgb,var(--theme-primary,#18453b) 5.5%,transparent); }
body[data-page="team"] .member-photo { width: 100%; aspect-ratio: 4/5; border: 0; border-bottom: 1px solid var(--ap-line); overflow: hidden; background: var(--ap-fog); }
body[data-page="team"] .member-photo img { transition: transform .6s cubic-bezier(.2,.75,.2,1),filter .4s ease; }
body[data-page="team"] .member:hover .member-photo img { transform: scale(1.018); filter: saturate(.92) contrast(1.02); }
body[data-page="team"] .member-name { width: calc(100% - 32px); min-width: 0; margin: 16px 16px 0; overflow-wrap: normal; word-break: normal; color: var(--ap-ink); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(1.3rem,1.8vw,2rem); font-weight: 300; letter-spacing: -.025em; line-height: 1; }
body[data-page="team"] .member-name-line { display: block; width: max-content; white-space: nowrap; overflow-wrap: normal; word-break: normal; }
body[data-page="team"] .member-role { margin: 8px 16px 0; overflow-wrap: anywhere; color: var(--ap-green); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .52rem; letter-spacing: .1em; text-transform: uppercase; }
body[data-page="team"] .member:hover .member-name { box-shadow: none; color: var(--ap-green); }

body:not([data-page="home"]) .modal-backdrop { background: color-mix(in srgb,var(--theme-deep,#082c24) 76%,transparent); backdrop-filter: blur(6px); }
body:not([data-page="home"]) .modal-card { width: min(900px,100%); border: 1px solid var(--ap-line); border-radius: 0; padding: clamp(28px,4vw,58px); background: var(--ap-paper); box-shadow: 0 30px 100px rgba(0,0,0,.32); }
body:not([data-page="home"]) .modal-grid { grid-template-columns: minmax(190px,260px) 1fr; gap: clamp(28px,5vw,72px); }
body:not([data-page="home"]) .modal-photo { border: 1px solid var(--ap-line); background: var(--ap-fog); }
body:not([data-page="home"]) .modal-name { color: var(--ap-ink); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(3rem,5.5vw,6rem); font-weight: 300; letter-spacing: -.052em; line-height: .9; }
body:not([data-page="home"]) .modal-role { margin-top: 14px; color: var(--ap-green); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .58rem; letter-spacing: .1em; }
body:not([data-page="home"]) .modal-bio { margin-top: 32px; color: var(--theme-text-soft,#4f5d55); font-size: .94rem; line-height: 1.72; }
body:not([data-page="home"]) .modal-social a { border: 1px solid var(--ap-line); border-radius: 0; color: var(--ap-green); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .55rem; letter-spacing: .08em; text-transform: uppercase; }
body:not([data-page="home"]) .modal-social a:hover { border-color: var(--ap-green); background: var(--ap-green); color: var(--theme-on-dark,#ffffff); }
body:not([data-page="home"]) .modal-social .is-empty { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--ap-line); padding: 9px 14px; color: var(--ap-muted); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .55rem; letter-spacing: .08em; text-transform: uppercase; opacity: .58; cursor: not-allowed; }
body:not([data-page="home"]) .modal-social .is-empty svg { width: 16px; height: 16px; }
body:not([data-page="home"]) .modal-foot { border-top: 1px solid var(--ap-line); padding-top: 22px; }

/* Join */
body[data-page="join"] .timeline { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; border: 1px solid var(--ap-line); margin-top: 42px !important; background: var(--ap-line); }
body[data-page="join"] .tl-item { min-height: 330px; display: flex; flex-direction: column; border: 0; padding: 28px; background: var(--ap-white); }
body[data-page="join"] .tl-item .hexb { width: 9px; height: 9px; border: 1px solid var(--ap-green); border-radius: 50%; background: transparent; clip-path: none; }
body[data-page="join"] .tl-item > div { display: flex; flex: 1; flex-direction: column; }
body[data-page="join"] .tl-when { color: var(--ap-green); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .55rem; letter-spacing: .09em; text-transform: uppercase; }
body[data-page="join"] .tl-what { max-width: 10ch; margin-top: auto; color: var(--ap-ink); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(2rem,2.8vw,3.5rem); font-weight: 300; letter-spacing: -.045em; line-height: .92; }
body[data-page="join"] .tl-note { margin-top: 18px; color: var(--ap-muted); font-size: .78rem; line-height: 1.58; }
body[data-page="join"] .tl-soon { margin-top: 18px; color: var(--ap-muted); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .56rem; letter-spacing: .08em; text-transform: uppercase; }
body[data-page="join"] #experience .tcar { width: min(100%,1040px); max-width: 1040px; margin-top: clamp(34px,4vw,54px); border-top: 1px solid var(--ap-line-dark); border-bottom: 1px solid var(--ap-line-dark); padding: clamp(28px,3vw,42px) 0; }
body[data-page="join"] #experience .tcar-card.has-photo { grid-template-columns: clamp(170px,16vw,220px) minmax(0,1fr); gap: clamp(28px,4vw,58px); align-items: center; }
body[data-page="join"] #experience .tcar-photo { width: 100%; aspect-ratio: 4/5; border: 1px solid var(--ap-line-dark); }
body[data-page="join"] #experience .tcar-text { min-width: 0; }
body[data-page="join"] #experience .tcar-quote { max-width: 34ch; color: var(--theme-on-dark,#ffffff); font-size: clamp(2rem,2.8vw,3.35rem); letter-spacing: -.035em; line-height: 1.06; }
body[data-page="join"] #experience .tcar-quote .qmark { color: var(--ap-acid); }
body[data-page="join"] #experience .tcar-cite { max-width: 46ch; margin-top: 24px; border-top: 1px solid var(--ap-line-dark); padding-top: 16px; color: color-mix(in srgb,var(--theme-on-dark,#ffffff) 64%,transparent); }
body[data-page="join"] #experience .tcar-controls { margin-top: 28px; margin-left: calc(clamp(170px,16vw,220px) + clamp(28px,4vw,58px)); }
body[data-page="join"] #experience .tcar-arrow { border-color: var(--ap-line-dark); color: var(--theme-on-dark,#ffffff); }
body[data-page="join"] #experience .tcar-arrow:hover { background: var(--ap-acid); color: var(--ap-deep); }
body[data-page="join"] #experience .tcar-dot { background: color-mix(in srgb,var(--theme-on-dark,#ffffff) 25%,transparent); }
body[data-page="join"] #experience .tcar-dot.active { background: var(--ap-acid); }
body[data-page="join"] .company-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 1px; border: 1px solid var(--ap-line); margin-top: 48px; background: var(--ap-line); }
body[data-page="join"] .company { min-height: 130px; display: grid; place-items: center; border: 0; padding: 20px; background: var(--ap-white); color: var(--ap-ink); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(1.15rem,1.7vw,1.8rem); font-weight: 300; text-align: center; }
body[data-page="join"] .company-logo { width: min(100%,160px); height: 64px; display: grid; place-items: center; }
body[data-page="join"] .company-logo img { width: 100%; height: 100%; display: block; object-fit: contain; object-position: center; }

/* Scholarship */
body[data-page="scholarship"] .page-title { max-width: 11ch; }
body[data-page="scholarship"] #about .firm-body { width: 100%; max-width: none; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; }
body[data-page="scholarship"] #about .firm-copy { max-width: none; margin: 0 !important; border: 1px solid var(--ap-line); padding: clamp(32px,4vw,58px); color: var(--ap-ink); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(1.7rem,2.7vw,3.1rem); font-weight: 300; letter-spacing: -.025em; line-height: 1.13; }
body[data-page="scholarship"] #about .firm-copy + .firm-copy { border-left: 0; color: var(--ap-green); }
body[data-page="scholarship"] .tribute-body { max-width: none; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 clamp(46px,7vw,110px); }
body[data-page="scholarship"] .tribute-body .lead-line { grid-column: 1/-1; max-width: 18ch; margin: 0 0 clamp(44px,6vw,82px); color: var(--theme-on-dark,#ffffff); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(3.6rem,6.2vw,7.2rem); font-weight: 300; letter-spacing: -.05em; line-height: .94; }
body[data-page="scholarship"] .tribute-body p:not(.lead-line) { border-top: 1px solid var(--ap-line-dark); padding-top: 24px; color: color-mix(in srgb,var(--theme-on-dark,#ffffff) 66%,transparent); font-size: .9rem; line-height: 1.72; }
body[data-page="scholarship"] .reqs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; border: 1px solid var(--ap-line); margin-top: 42px; background: var(--ap-line); }
body[data-page="scholarship"] .reqs li { min-height: 210px; display: flex; flex-direction: column; justify-content: space-between; gap: 30px; border: 0; padding: 30px; background: var(--ap-white); color: var(--ap-ink); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(1.6rem,2.6vw,3rem); font-weight: 300; line-height: 1.08; }
body[data-page="scholarship"] .reqs li .hexb { width: 9px; height: 9px; border: 1px solid var(--ap-green); border-radius: 50%; background: transparent; clip-path: none; }
body[data-page="scholarship"] .btn-apply { margin-top: 28px; background: var(--ap-green); color: var(--theme-on-dark,#ffffff); }
body[data-page="scholarship"] #recipients { border-top: 1px solid var(--ap-line); }
body[data-page="scholarship"] .recipients { display: grid; gap: 0; border: 1px solid var(--ap-line); }
body[data-page="scholarship"] .recipients > div { display: grid; grid-template-columns: minmax(120px,22%) 1fr; gap: 0; border-bottom: 1px solid var(--ap-line); padding: 0; }
body[data-page="scholarship"] .recipients > div:last-child { border-bottom: 0; }
body[data-page="scholarship"] .recip-year { display: flex; align-items: center; border-right: 1px solid var(--ap-line); margin: 0; padding: 28px; color: var(--ap-green); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(2rem,3vw,3.6rem); font-weight: 300; letter-spacing: -.04em; }
body[data-page="scholarship"] .recip-year::after { display: none; }
body[data-page="scholarship"] .recip-names { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 24px 28px; }
body[data-page="scholarship"] .recip { border: 1px solid var(--ap-line); border-radius: 0; padding: 9px 13px; background: transparent; color: var(--theme-text-soft,#4f5d55); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .56rem; letter-spacing: .07em; text-transform: uppercase; }

/* FAQ */
body[data-page="faq"] #faq-root { counter-reset: ap-faq; }
body[data-page="faq"] .faq-tabs { display: flex; gap: 32px; overflow-x: auto; border-bottom: 1px solid var(--ap-line); margin: 0; }
body[data-page="faq"] .faq-tab { flex: 0 0 auto; border: 0; padding: 0 0 18px; color: var(--ap-muted); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .58rem; letter-spacing: .1em; }
body[data-page="faq"] .faq-tab[aria-selected="true"] { color: var(--ap-green); }
body[data-page="faq"] .faq-tab[aria-selected="true"]::after { height: 2px; background: var(--ap-green); }
body[data-page="faq"] .faq-list { margin: 28px 0 0; }
body[data-page="faq"] .faq-q { counter-increment: ap-faq; position: relative; border-bottom: 1px solid var(--ap-line); }
body[data-page="faq"] .faq-q:first-child { border-top: 1px solid var(--ap-line); }
body[data-page="faq"] .faq-q-btn { min-height: 138px; display: grid; grid-template-columns: 58px minmax(0,1fr) 30px; gap: 20px; align-items: center; padding: 24px 0; color: var(--ap-ink); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(1.8rem,3.2vw,3.8rem); font-weight: 300; letter-spacing: -.035em; line-height: 1; }
body[data-page="faq"] .faq-q-btn::before { content: none; }
body[data-page="faq"] .faq-q-btn:hover { color: var(--ap-green); }
body[data-page="faq"] .faq-q-mark { width: 24px; height: 24px; }
body[data-page="faq"] .faq-q-mark::before,body[data-page="faq"] .faq-q-mark::after { background: var(--ap-green); }
body[data-page="faq"] .faq-a-inner { max-width: 70ch; padding: 0 0 34px 78px; color: var(--theme-text-soft,#4f5d55); font-size: .94rem; line-height: 1.72; }
body[data-page="faq"] .faq-empty { border-top: 1px solid var(--ap-line); border-bottom: 1px solid var(--ap-line); padding: 38px 0; color: var(--ap-muted); }

/* Footer */
body:not([data-page="home"]) .foot { border: 0; border-top: 1px solid var(--ap-line-dark); background: var(--ap-deep); color: var(--theme-on-dark-soft,#b8c7c0); }
body:not([data-page="home"]) .foot .wrap { width: 100%; max-width: var(--theme-content-width,1280px); padding-inline: var(--ap-gutter); }
body:not([data-page="home"]) .foot-inner { position: relative; display: grid; grid-template-columns: 1.5fr .8fr .8fr; gap: clamp(42px,7vw,110px); padding-top: 70px; padding-bottom: 70px; }
body:not([data-page="home"]) .foot-inner::before { content: none; }
body:not([data-page="home"]) .foot-brand { margin-bottom: 22px; }
body:not([data-page="home"]) .foot-brand img { content: url("../logo/scg-logo-white.png"); width: 220px; max-width: 100%; height: auto; margin: 0; object-fit: contain; }
body:not([data-page="home"]) .foot p { max-width: 42ch; color: var(--theme-on-dark-muted,#93a59c); font-size: .82rem; line-height: 1.65; }
body:not([data-page="home"]) .foot h4 { margin: 0 0 24px; color: var(--ap-acid); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .54rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
body:not([data-page="home"]) .foot ul { gap: 12px; }
body:not([data-page="home"]) .foot li,body:not([data-page="home"]) .foot a { color: var(--theme-on-dark-soft,#b8c7c0); font-family: var(--theme-body-font,"IBM Plex Sans",Arial,sans-serif); font-size: .84rem; line-height: 1.65; }
body:not([data-page="home"]) .foot-contact a { color: var(--theme-on-dark,#ffffff); overflow-wrap: anywhere; }
body:not([data-page="home"]) .foot-grid-nav { grid-template-columns: 1fr 1fr; gap: 16px 32px; }
body:not([data-page="home"]) .foot-grid-nav a { color: var(--theme-on-dark-soft,#d6e0db); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .55rem; letter-spacing: .1em; text-transform: uppercase; }
body:not([data-page="home"]) .foot-bottom { min-height: 92px; align-items: center; border-top: 1px solid var(--ap-line-dark); padding-block: 20px; }
body:not([data-page="home"]) .foot-bottom span { color: var(--theme-on-dark-muted,#80928a); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .54rem; letter-spacing: .12em; text-transform: uppercase; }

/* Full-width page fields match Home; retain reading measures and edge gutters. */
body:is([data-page="about"],[data-page="services"],[data-page="join"],[data-page="scholarship"],[data-page="faq"]) .wrap:not(.topbar-inner) { max-width: none; }

/* Responsive */
@media (max-width: 1120px) {
  body:not([data-page="home"]) .page-head > .wrap { grid-template-columns: minmax(0,1.1fr) minmax(290px,.9fr); }
  body[data-page="team"] .team-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  body[data-page="team"] .member:nth-child(n) { border-right: 1px solid var(--ap-line); }
  body[data-page="team"] .member:nth-child(3n) { border-right: 0; }
  body[data-page="join"] .timeline { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 900px) {
  body:not([data-page="home"]) .page-head { min-height: 0; }
  body:not([data-page="home"]) .page-head > .wrap { grid-template-columns: 1fr; grid-template-rows: auto; gap: 22px; }
  body:not([data-page="home"]) .page-kicker,body:not([data-page="home"]) .page-title,body:not([data-page="home"]) .page-lead { grid-column: 1; grid-row: auto; }
  body:not([data-page="home"]) .page-lead { max-width: 58ch; }
  body[data-page="services"] .svc-wrap { grid-template-columns: 1fr; }
  body[data-page="services"] .svc-photo { position: relative; top: auto; grid-row: 1; height: auto; aspect-ratio: 16/8; }
  body[data-page="services"] .case-grid { grid-template-columns: 1fr; }
  body[data-page="services"] .case { min-height: 330px; }
  body[data-page="team"] .team-group > .wrap { grid-template-columns: 1fr; }
  body[data-page="team"] .team-head { position: static; min-height: 0; border-right: 0; border-bottom: 1px solid var(--ap-line); }
  body[data-page="team"] .team-head h2 { max-width: none; }
  body[data-page="join"] .company-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 820px) {
  body:not([data-page="home"]) .topbar-inner { height: 78px; min-height: 78px; }
  body:not([data-page="home"]) .nav-toggle { display: inline-flex; color: var(--ap-ink); }
  body:not([data-page="home"]) .nav { top: 78px; right: 0; left: 0; display: none; border-bottom: 1px solid var(--ap-line); padding: 12px var(--ap-gutter) 20px; background: var(--theme-paper-solid,rgba(243,241,232,.99)); }
  body:not([data-page="home"]) .nav.open { display: flex; }
  body:not([data-page="home"]) .nav a { width: 100%; justify-content: flex-start; color: var(--ap-ink); }
  body:not([data-page="home"]) .nav .cta-link { border: 0; padding-inline: 12px; }
  body:not([data-page="home"]) .sec-grid,body:not([data-page="home"]) .tribute { grid-template-columns: 1fr; }
  body:not([data-page="home"]) .rail { position: static; min-height: 0; flex-direction: row; justify-content: flex-start; border-right: 0; border-bottom: 1px solid var(--ap-line); padding: 18px var(--ap-gutter); }
  body:not([data-page="home"]) .rail-line { width: 42px; height: 1px; }
  body:not([data-page="home"]) .rail-name { writing-mode: horizontal-tb; }
  body:not([data-page="home"]) .sec-green .rail { border-color: var(--ap-line-dark); }
  body:not([data-page="home"]) .sec-grid > :not(.rail),body:not([data-page="home"]) .tribute-body { padding-block: 58px; }
  body[data-page="team"] .team-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body[data-page="team"] .member:nth-child(n) { border-right: 1px solid var(--ap-line); }
  body[data-page="team"] .member:nth-child(2n) { border-right: 0; }
  body[data-page="scholarship"] #about .firm-body,body[data-page="scholarship"] .tribute-body { grid-template-columns: 1fr; }
  body[data-page="scholarship"] #about .firm-copy + .firm-copy { border-top: 0; border-left: 1px solid var(--ap-line); }
  body[data-page="scholarship"] .tribute-body .lead-line { grid-column: 1; }
  body[data-page="scholarship"] .tribute-body p + p { margin-top: 30px; }
  body:not([data-page="home"]) .foot-inner { grid-template-columns: 1fr; gap: 48px; }
}

@media (max-width: 560px) {
  body:not([data-page="home"]) .page-head { min-height: 0; }
  body:not([data-page="home"]) .page-head > .wrap { gap: 12px; padding-top: var(--hero-mobile-pad-top,34px); padding-bottom: var(--hero-mobile-pad-bottom,24px); }
  body:not([data-page="home"]) .page-title { font-size: var(--hero-mobile-title-size,clamp(2.75rem,12vw,3.7rem)); }
  body:not([data-page="home"]) .h2,body:not([data-page="home"]) .sec-green .h2 { font-size: clamp(3.45rem,15vw,4.8rem); }
  body[data-page="services"] .svc { min-height: 280px; grid-template-columns: 1fr; gap: 16px; }
  body[data-page="services"] .svc-list { grid-template-columns: 1fr; }
  body[data-page="services"] .svc-name { font-size: clamp(3rem,14vw,4rem); }
  body[data-page="services"] .case h3 { font-size: 3rem; }
  body[data-page="team"] .team-grid { grid-template-columns: 1fr; }
  body[data-page="team"] .member,body[data-page="team"] .member:nth-child(n) { border-right: 0; }
  body[data-page="team"] .member-name { font-size: 1.8rem; }
  body:not([data-page="home"]) .modal-grid { grid-template-columns: 1fr; }
  body:not([data-page="home"]) .modal-photo { max-width: 220px; }
  body[data-page="join"] .timeline { grid-template-columns: 1fr; }
  body[data-page="join"] .tl-item,body[data-page="join"] .tl-item:nth-child(n) { min-height: 280px; }
  body[data-page="join"] #experience .tcar-card.has-photo { grid-template-columns: 1fr; gap: 24px; }
  body[data-page="join"] #experience .tcar-photo { max-width: 170px; }
  body[data-page="join"] #experience .tcar-quote { font-size: clamp(2rem,9vw,2.75rem); }
  body[data-page="join"] #experience .tcar-controls { margin-left: 0; }
  body[data-page="join"] .company-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body[data-page="join"] .company { min-height: 112px; padding: 16px; }
  body[data-page="join"] .company-logo { width: min(100%,130px); height: 54px; }
  body[data-page="scholarship"] .reqs { grid-template-columns: 1fr; }
  body[data-page="scholarship"] .reqs li { border: 0; }
  body[data-page="scholarship"] .recipients > div { grid-template-columns: 1fr; }
  body[data-page="scholarship"] .recip-year { border-right: 0; border-bottom: 1px solid var(--ap-line); }
  body[data-page="faq"] .faq-q-btn { grid-template-columns: 32px minmax(0,1fr) 24px; font-size: 1.8rem; }
  body[data-page="faq"] .faq-a-inner { padding-left: 52px; }
  body:not([data-page="home"]) .foot-inner { padding-top: 96px; padding-bottom: 52px; }
  body:not([data-page="home"]) .foot-bottom { min-height: 110px; align-items: flex-start; flex-direction: column; justify-content: center; gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  body:not([data-page="home"]) *,body:not([data-page="home"]) *::before,body:not([data-page="home"]) *::after { animation: none !important; transition: none !important; }
}
