/* V3.1 shares the approved perspectives heading scale. Never targets #home or legal. */
.altea-experience, .perspective-page { --section-title-size: clamp(34px,3.5vw,52px); --section-title-weight: 400; --section-title-leading: 1.08; }
.altea-perspectives { --orbit-radius: calc(var(--sculpture-size) / 2.35); --sculpture-size: min(540px, 35vw, calc(100svh - 320px)); padding: 30px 0; overflow: visible; }
.altea-perspectives > .altea-wrap { display: grid; grid-template-rows: auto minmax(0,1fr); gap: 12px; height: 100%; }
.altea-perspectives .altea-section-heading { grid-template-columns: 1.2fr 1fr; gap: 10%; }
.orbit-layout { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(340px,.85fr); gap: 5%; margin: 0; align-items: center; min-height: 0; }
.orbit-workspace { align-self: stretch; display: grid; grid-template-rows: minmax(300px,1fr) auto; min-width: 0; min-height: 0; }
.orbit-stage { width: 100%; max-width: none; height: 100%; min-height: 300px; aspect-ratio: auto; margin: 0; position: relative; perspective: 1000px; perspective-origin: 50% 45%; }
.orbit-scene { inset: 0; transform-style: preserve-3d; transition: transform 480ms cubic-bezier(.23,1,.32,1); }
.orbit-sculpture { position: absolute; top: 50%; left: 50%; width: min(var(--sculpture-size),100%); height: auto; aspect-ratio: 1; transform: translate(-50%,-50%) rotateX(-12deg) rotateY(-8deg); transform-style: preserve-3d; transition: transform 480ms cubic-bezier(.23,1,.32,1); }
.orbital-plane, .orbital-spin { position: absolute; inset: 0; transform-style: preserve-3d; pointer-events: none; }
.orbital-spin svg { width: 100%; height: 100%; overflow: visible; }
.plane-one { transform: rotateX(64deg) rotateY(-16deg) rotateZ(-22deg); }
.plane-two { transform: rotateX(35deg) rotateY(62deg) rotateZ(20deg) translateZ(10px); }
.plane-three { transform: rotateX(-50deg) rotateY(34deg) rotateZ(-34deg) translateZ(-15px); }
.orbit-track { position: absolute; inset: 0; transform-style: preserve-3d; z-index: auto; pointer-events: none; }
.orbit-position { left: 50%; top: 50%; width: 0; height: 0; transform-style: preserve-3d; }
.orbit-node { width: 44px; height: 44px; min-height: 44px; padding: 0; display: grid; place-items: center; border: 0; border-radius: 50%; background: transparent; color: var(--gold-light); font-size: 15px; line-height: 1.25; backface-visibility: visible; box-shadow: none; transition: transform 480ms cubic-bezier(.23,1,.32,1), color 160ms ease; touch-action: manipulation; pointer-events: auto; }
.orbit-label { position: absolute; left: 50%; top: 50%; width: 144px; text-align: center; font-weight: 400; text-wrap: balance; text-shadow: 0 1px 3px var(--navy-deep), 0 0 6px var(--navy-deep); }
.orbit-node::before { content: ''; display: block; width: 9px; height: 9px; margin: 0; border-radius: 50%; background: var(--gold-light); box-shadow: 0 0 0 4px rgb(201 153 106 / .08); }
.orbit-node[aria-expanded="true"]::before { width: 13px; height: 13px; box-shadow: 0 0 0 8px rgb(201 153 106 / .16); }
.orbit-core { inset: auto; left: 50%; top: 50%; width: 218px; height: 218px; transform: translate(-50%,-50%); z-index: auto; pointer-events: auto; border-radius: 50%; background: radial-gradient(ellipse, #14182f 48%, rgb(20 24 47 / .94) 66%, rgb(20 24 47 / 0) 72%); }
.orbit-core img { width: 40px; height: 40px; margin-bottom: 16px; }
.orbit-core .orbit-wordmark { font-size: 44px; margin-bottom: 14px; }
.orbit-core > p:last-child { font-size: 13px; max-width: 210px; margin: 0; line-height: 1.6; }
.orbit-toolbar { padding: 8px 0 0; justify-content: center; gap: 24px; }
.orbit-toolbar > p { font-size: 13px; }
.altea-motion-button { min-height: 44px; }
.orbit-editorial { align-self: center; min-width: 0; }
.orbit-directory-intro { color: #d7d8e1; font-size: 16px; margin-bottom: 12px !important; }
.orbit-perspective-nav { display: grid; }
.orbit-directory-link { display: grid; grid-template-columns: 26px 1fr 20px; gap: 16px; align-items: center; min-height: 54px; padding: 10px 4px; border-bottom: 1px solid rgb(225 189 150 / .2); font-size: 17px; line-height: 1.35; transition: color 160ms ease; }
.orbit-directory-link > span:first-child { color: var(--gold-light); font-size: 13px; }
.orbit-directory-link > span:last-child { color: var(--gold-light); }
.orbit-directory > .altea-text-link { color: #d7d8e1; margin-top: 16px; font-size: 14px; }
.orbit-layout.is-detail .orbit-sculpture { transform: translate(-55%,-50%) rotateX(-22deg) rotateY(-26deg) translateZ(64px) scale(1.06); }
.orbit-layout.is-detail .orbit-core { transform: translate(-58%,-50%); }
.orbit-layout.is-detail .orbit-node { transform: translate(-50%,-50%) var(--detail-billboard); }
.orbit-layout.is-detail .orbit-node:not([aria-expanded="true"]) { color: var(--gold); }
.orbit-layout.is-detail .orbit-node[aria-expanded="true"] { color: var(--paper); }
/* Isolate the chosen name during the existing camera move; all six markers stay. */
.orbit-layout.is-detail .orbit-node:not([aria-expanded="true"]) .orbit-label { opacity: 0 !important; pointer-events: none; }
.orbit-layout.is-detail .orbit-node[aria-expanded="true"] .orbit-label { opacity: 1 !important; }
.orbit-layout.keyboard-detail .orbit-node { transition: none; }
.orbit-layout.keyboard-detail .orbit-sculpture, .orbit-layout.keyboard-detail .orbit-core { transition: none; }
.perspective-panel { background: var(--paper); color: var(--navy); padding: 24px 28px 28px; scroll-margin-top: calc(var(--header-h) + 12px); }
.perspective-panel .perspective-close { color: var(--navy); margin: -8px 0 18px -8px; padding: 8px; min-height: 44px; width: auto; text-align: left; font-size: 13px; }
.perspective-panel .perspective-close > span { color: #895b32; font-size: 22px; }
.perspective-panel-name { color: #895b32; font-size: 16px; margin-bottom: 14px !important; }
.altea-experience .perspective-panel h3 { font-size: clamp(28px, 2.65vw, 38px); line-height: 1.1; margin-bottom: 20px; text-wrap: pretty; }
.perspective-panel #perspective-panel-copy { color: #505468; font-size: 16px; line-height: 1.6; margin: 0 0 20px; }
.perspective-panel .perspective-integration { color: #505468; font-size: 13px; margin: 0 0 20px !important; }
.perspective-panel .altea-button { min-height: 52px; font-size: 14px; padding: 14px 18px; gap: 12px; }
.altea-brand-reel { overflow: hidden; scrollbar-width: none; scroll-snap-type: none; }
.altea-marquee-track { display: flex; width: max-content; }
.altea-brand-list { width: max-content; display: flex; gap: 44px; padding: 12px 44px 12px 0; }
.altea-brand-list li { flex: 0 0 205px; min-width: 0; width: 205px; height: 124px; }
.altea-brand-list img { width: 100%; height: 94px; object-fit: contain; }
.altea-brand-controls > .altea-motion-button { color: var(--navy); border-color: #9f896e; min-width: 152px; }
.contact-editorial-line { margin-top: 28px !important; font-family: var(--display); font-size: 26px; color: var(--gold-light); line-height: 1.35; max-width: 26ch; }
.contact-status { max-width: 44ch; font-size: 14px; color: #d7d8e1; margin-top: 18px !important; }
.contact-status[hidden] { display: none; }
.perspective-page .contact-status, .legal-page .contact-status { color: #505468; }
.altea-button[aria-disabled="true"] { background: #cfb292; }
.corporate-footer .footer-main { grid-template-columns: 1.2fr .7fr 1fr 1fr; gap: 36px; }
.corporate-footer .footer-brand img { width: min(240px,100%); height: auto; }
.corporate-footer .footer-brand p { font-size: 15px; }
.corporate-footer .footer-title { color: var(--gold-light); font-size: 16px; text-transform: none; letter-spacing: normal; }
.corporate-footer .footer-links { display: grid; gap: 10px; font-size: 14px; }
.corporate-footer .container { width: min(1320px,calc(100% - 96px)); }
.corporate-footer::before { display: none; }
.corporate-footer { background: var(--navy-deep); }

/* Perspective pages share the brand and four concise editorial chapters. */
.perspective-page { background: var(--paper); }
.perspective-page main { padding-top: var(--header-h); }
.perspective-page .perspective-opening { padding: 40px 0 72px; }
.page-wrap { width: min(1240px,calc(100% - 96px)); margin-inline: auto; }
.page-breadcrumb { display: flex; flex-wrap: wrap; gap: 12px; font-size: 14px; color: #505468; margin-bottom: 54px; }
.page-breadcrumb a { text-decoration: underline; text-underline-offset: 4px; }
.perspective-opening-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 8%; align-items: center; }
.perspective-page h1, .perspective-page h2, .perspective-page h3, .legal-page h1, .legal-page h2 { font-family: var(--display); font-weight: 400; letter-spacing: -.035em; line-height: 1.1; }
.perspective-page h1 { font-size: clamp(48px,5.8vw,84px); margin: 12px 0 24px; }
.perspective-page .perspective-headline { font-family: var(--display); font-size: 30px; line-height: 1.25; margin: 0 0 22px; }
.perspective-page .perspective-description { color: #505468; font-size: 17px; line-height: 1.65; }
.perspective-page .perspective-visual { min-height: 400px; position: relative; display: grid; place-items: center; background: var(--navy-deep); overflow: hidden; color: var(--gold-light); }
.perspective-visual svg { width: 76%; height: auto; overflow: visible; }
.perspective-visual > span { position: absolute; bottom: 24px; left: 28px; font-size: 14px; color: #c7c9d4; }
.perspective-reason { padding: 70px 0; background: #eeeae3; }
.perspective-chapter-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10%; }
.perspective-page h2 { font-size: clamp(34px,3.8vw,52px); margin: 0 0 24px; text-wrap: balance; }
.perspective-page p { max-width: 52ch; }
.perspective-page .perspective-question { font-family: var(--display); font-size: 26px; line-height: 1.35; margin: 0 0 18px; }
.perspective-connection { padding: 80px 0; background: var(--navy); color: var(--paper); }
.perspective-connection p { color: #d7d8e1; }
.perspective-connection .altea-text-link { color: var(--gold-light); }
.perspective-invitation { padding: 72px 0; }
.perspective-page :focus-visible, .legal-page :focus-visible { outline: 3px solid #ab7745; outline-offset: 5px; }
.skip-link { position: fixed; z-index: 3000; top: 8px; left: 16px; padding: 12px 20px; background: var(--paper); color: var(--navy); transform: translateY(-160%); }
.skip-link:focus { transform: none; }

/* Legal reading layout, real HTML documents with anchors and no modal walls. */
.legal-page { background: var(--paper-2); }
.legal-page main { padding-top: calc(var(--header-h) + 42px); }
.legal-heading { max-width: 900px; margin-bottom: 48px; }
.legal-page h1 { font-size: clamp(42px,5.5vw,74px); margin: 14px 0 22px; text-wrap: balance; }
.legal-heading > p { max-width: 58ch; color: #505468; font-size: 18px; }
.legal-version { display: flex; flex-wrap: wrap; gap: 12px 24px; font-size: 14px; color: #505468; }
.legal-review-note { margin: 24px 0 0; padding: 20px 24px; background: #eee8de; font-size: 15px; color: var(--navy); }
.legal-layout { display: grid; grid-template-columns: 250px minmax(0,1fr); gap: 72px; align-items: start; }
.legal-toc { position: sticky; top: calc(var(--header-h) + 24px); padding: 22px; background: #eeece7; }
.legal-toc summary { font-size: 16px; font-weight: 700; cursor: pointer; min-height: 44px; }
.legal-toc ol { list-style: decimal-leading-zero; padding-left: 24px; margin: 12px 0 0; font-size: 14px; }
.legal-toc li { margin-bottom: 12px; padding-left: 4px; }
.legal-toc a { display: block; padding-block: 4px; }
.legal-toc a[aria-current="location"] { color: #895b32; text-decoration: underline; text-underline-offset: 4px; }
.legal-content { max-width: 720px; }
.legal-content section { margin-bottom: 52px; scroll-margin-top: calc(var(--header-h) + 24px); }
.legal-content h2 { margin: 0 0 20px; font-size: 32px; text-wrap: balance; }
.legal-content h3 { font-size: 18px; margin-top: 28px; }
.legal-content p, .legal-content li { font-size: 17px; line-height: 1.8; color: #363c50; }
.legal-content ul { padding-left: 24px; }
.legal-content a { text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
.legal-facts { margin: 0; }
.legal-facts > div { padding: 16px 18px; background: #f0eee9; margin-bottom: 8px; }
.legal-facts dt { font-size: 14px; color: #505468; }
.legal-facts dd { margin: 6px 0 0; overflow-wrap: anywhere; }
.legal-pending { color: #895b32; font-size: 15px; }
.legal-related { padding: 38px 0 64px; display: flex; flex-wrap: wrap; gap: 12px 28px; }
.legal-related a { min-height: 44px; text-decoration: underline; text-underline-offset: 5px; }
@media (min-width: 1000px) and (min-height: 680px) {
  .altea-circle-ready .altea-perspectives { height: calc(100svh - var(--header-h) - 24px); min-height: 600px; }
}
@media (min-width: 1000px) and (max-height: 800px) {
  .altea-perspectives { padding-block: 20px; }
  .altea-experience, .perspective-page { --section-title-size: 36px; }
  .altea-perspectives .altea-section-heading > p { font-size: 15px; }
  .perspective-panel { padding: 18px 22px 22px; }
  .perspective-panel .perspective-close { margin-bottom: 8px; }
  .altea-experience .perspective-panel h3 { font-size: 29px; margin-bottom: 16px; }
  .perspective-panel #perspective-panel-copy { line-height: 1.5; margin-bottom: 16px; }
  .perspective-panel .perspective-integration { display: none; }
}
@media (max-width: 999px) {
  .altea-perspectives { --sculpture-size: min(440px,70vw); padding-block: 48px; }
  .altea-perspectives .altea-section-heading { grid-template-columns: 1fr; gap: 20px; }
  .orbit-layout { grid-template-columns: 1fr 1fr; gap: 20px; }
  .orbit-stage { min-height: 400px; }
  .orbit-node { width: 56px; height: 56px; min-height: 56px; }
  .orbit-core { width: 180px; height: 180px; }
  .orbit-core .orbit-wordmark { font-size: 34px; }
  .orbit-core img { width: 32px; height: 32px; margin-bottom: 10px; }
  .orbit-core > p:last-child { font-size: 13px; max-width: 180px; }
  .orbit-toolbar { flex-direction: column; gap: 8px; }
  .perspective-opening-grid, .perspective-chapter-grid { gap: 32px; }
  .page-wrap { width: calc(100% - 48px); }
  .perspective-page .perspective-visual { min-height: 340px; }
  .legal-layout { grid-template-columns: 200px minmax(0,1fr); gap: 32px; }
  .legal-toc { padding: 18px; }
  .corporate-footer .container { width: calc(100% - 48px); }
  .corporate-footer .footer-main { grid-template-columns: repeat(3,1fr); }
  .corporate-footer .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .altea-perspectives { --sculpture-size: min(360px,86vw); padding-block: 40px; }
  .altea-experience, .perspective-page { --section-title-size: clamp(30px,8vw,40px); }
  .orbit-layout { grid-template-columns: 1fr; gap: 28px; }
  .orbit-stage { height: 340px; min-height: 0; }
  .orbit-workspace { grid-template-rows: auto auto; }
  .orbit-core { width: 160px; height: 160px; }
  .orbit-core .orbit-wordmark { font-size: 31px; }
  .orbit-core > p:last-child { font-size: 12px; max-width: 152px; }
  .orbit-core img { width: 26px; height: 26px; }
  .orbit-node { width: 44px; height: 44px; min-height: 44px; font-size: 14px; }
  .orbit-label { width: 120px; }
  .orbit-toolbar { flex-direction: row; justify-content: space-between; gap: 12px; }
  .orbit-toolbar > p { max-width: 20ch; font-size: 13px; }
  .altea-motion-button { font-size: 13px; min-width: 140px; }
  .orbit-directory-link { min-height: 56px; font-size: 17px; }
  .perspective-panel { padding: 24px; }
  .altea-experience .perspective-panel h3 { font-size: 30px; }
  .perspective-panel .perspective-close { margin-bottom: 18px; }
  .altea-brand-list { gap: 28px; padding-right: 28px; }
  .altea-brand-list li { flex-basis: 154px; width: 154px; height: 100px; }
  .altea-brand-list img { height: 76px; }
  .altea-brand-controls { gap: 12px; }
  .altea-brand-controls > span { font-size: 13px; max-width: 21ch; }
  .page-wrap { width: calc(100% - 40px); }
  .perspective-opening-grid, .perspective-chapter-grid { grid-template-columns: 1fr; gap: 32px; }
  .perspective-page .perspective-opening { padding: 28px 0 48px; }
  .page-breadcrumb { margin-bottom: 30px; font-size: 13px; }
  .perspective-page h1 { font-size: clamp(44px,13vw,64px); }
  .perspective-page .perspective-headline { font-size: 27px; }
  .perspective-page .perspective-visual { min-height: 280px; }
  .perspective-page h2 { font-size: 36px; }
  .perspective-reason, .perspective-connection, .perspective-invitation { padding-block: 48px; }
  .contact-editorial-line { font-size: 24px; }
  .corporate-footer .container { width: calc(100% - 40px); }
  .corporate-footer .footer-main { grid-template-columns: 1fr 1fr; gap: 36px 24px; }
  .corporate-footer .footer-main > div:last-child { grid-column: 1 / -1; }
  .corporate-footer .footer-main > div:last-child .footer-links { grid-template-columns: 1fr 1fr; }
  .corporate-footer .footer-links { font-size: 14px; }
  .legal-page main { padding-top: calc(var(--header-h) + 28px); }
  .legal-page h1 { font-size: 44px; }
  .legal-heading { margin-bottom: 28px; }
  .legal-heading > p { font-size: 17px; }
  .legal-layout { grid-template-columns: 1fr; gap: 32px; }
  .legal-toc { position: static; }
  .legal-content h2 { font-size: 30px; }
  .legal-content p, .legal-content li { font-size: 16px; }
  .legal-review-note { padding: 18px; }
}
@media (prefers-reduced-motion: no-preference) {
  .perspective-panel:not(.keyboard-open) { animation: editorial-panel-in 260ms cubic-bezier(.23,1,.32,1); }
  @keyframes editorial-panel-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
}
@media (prefers-reduced-motion: reduce) {
  .orbit-layout.is-detail .orbit-sculpture { transform: translate(-50%,-50%) rotateX(-12deg) rotateY(-8deg); }
  .orbit-layout.is-detail .orbit-core { transform: translate(-50%,-50%); }
  .orbit-layout.is-detail .orbit-node { transform: translate(-50%,-50%); }
  .marquee-copy { display: none; }
  .altea-brand-reel { overflow: visible; }
  .altea-brand-list { width: 100%; flex-wrap: wrap; justify-content: center; gap: 24px; padding: 0; }
  .altea-marquee-track { width: 100%; transform: none !important; }
}

/* These are the six section headings, not panel/card H3s or secondary copy.
   Specificity also replaces the divergent legacy intro/contact media rules. */
.altea-experience :is(#intro-title,#perspectives-title,#method-title,#challenges-title,#relations-title,#contact-title),
.perspective-page main :is(h1,h2) {
  font-family: var(--display);
  font-size: var(--section-title-size);
  font-weight: var(--section-title-weight);
  line-height: var(--section-title-leading);
}

/* Responsive navigation: the dropdown scrolls independently on short screens. */
.mobile-nav-backdrop { position: fixed; inset: var(--header-h) 0 0; z-index: 1090; background: rgb(8 12 29 / .48); }
.mobile-nav-backdrop[hidden] { display: none; }
@media (max-width: 860px) {
  body.menu-open { position: fixed; top: var(--menu-scroll-top,0px); inset-inline: 0; width: 100%; }
  .home-page .site-header, .home-page .site-header.is-scrolled { opacity: 1; pointer-events: auto; transform: none; }
  .site-header .main-nav { position: absolute; inset: 100% 0 auto; width: 100%; max-height: calc(100svh - var(--header-h)); max-height: calc(100dvh - var(--header-h)); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding-bottom: max(24px,env(safe-area-inset-bottom)); }
  .menu-open .site-header { background: var(--navy-deep); }
  .menu-toggle { position: relative; width: 44px; height: 44px; flex: 0 0 44px; }
  .menu-toggle span, .menu-toggle::before, .menu-toggle::after { position: absolute; top: 50%; left: 50%; margin: 0; width: 19px; height: 1px; transition: transform 180ms cubic-bezier(.23,1,.32,1), opacity 180ms ease; }
  .menu-toggle span { transform: translate(-50%,-50%); }
  .menu-toggle::before { transform: translate(-50%,calc(-50% - 6px)); }
  .menu-toggle::after { transform: translate(-50%,calc(-50% + 6px)); }
  .menu-open .menu-toggle span { opacity: 0; }
  .menu-open .menu-toggle::before { transform: translate(-50%,-50%) rotate(45deg); }
  .menu-open .menu-toggle::after { transform: translate(-50%,-50%) rotate(-45deg); }
  .site-header .nav-link, .site-header .nav-button { min-height: 48px; }
  .site-header :focus-visible { outline: 2px solid var(--gold-light); outline-offset: 4px; }
}
@media (prefers-reduced-motion: reduce) { .menu-toggle span, .menu-toggle::before, .menu-toggle::after { transition: none; } }
