/* Final visual layer: calmer surfaces, clear hierarchy and touch-friendly controls. */
:root { --pale: #f3f7f6; --line: #dbe5e4; --radius: 20px; }
body::after { display: none; }
body { background: #fdfefd; }
main > .section { padding-block: clamp(64px, 7.5vw, 108px); }
.hero { background: radial-gradient(ellipse at 80% 25%, #17394d 0, transparent 55%), #09182e; }
.hero .hero-grid-lines { opacity: .3; }
.hero h1 { letter-spacing: -.055em; line-height: 1.08; }
.hero-copy > p { max-width: 460px; color: #c5d3de; }
.hero-portrait { border: 1px solid #ffffff24; border-radius: 120px 120px 26px 26px; transform: rotate(2deg); }
.hero-photo-tag { top: 20px; left: 0; padding: 13px 18px; border-radius: 14px; background: #0c2938; }
.hero-photo-chip { bottom: -2px; transform: rotate(-2deg); }
.hero-photo-route { opacity: .35; }
.site-header.scrolled { background: #09182ef2; box-shadow: 0 8px 32px #06182a20; }
.nav-ctas .nav-cta:not(.ghost-cta) { background: #72f0ca; color: #09182e; border-color: #72f0ca; font-weight: 700; }
.nav-ctas .nav-cta:not(.ghost-cta) .arrow { background: #0b2937; color: #b8ffea; }
.nav-ctas .nav-cta:not(.ghost-cta):hover { background: #adffe6; }
.button { min-height: 52px; font-weight: 600; letter-spacing: -.01em; }
.button:active { scale: .98; }
.button.dark { box-shadow: 0 8px 20px #09182e12; }
.button.mint { box-shadow: 0 7px 24px #72f0ca16; }
.audience-section { gap: 20px; padding-block: 32px; border: 0; }
.audience-card,.audience-card + .audience-card { padding: 28px; border: 1px solid #dce7e3; border-radius: 20px; background: #fff; box-shadow: 0 10px 30px #173b4210; transition: border-color .25s, box-shadow .25s; }
.audience-card:hover,.audience-card:focus-visible { border-color: #78b8a8; box-shadow: 0 14px 36px #173b4218; }
.audience-card h2 { max-width: 380px; }
.audience-arrow { background: #f0f7f4; }
.service,.promise,.pathway-card { border-color: #dce7e3; box-shadow: 0 8px 30px #193c4207; }
.service:hover,.pathway-card:hover { box-shadow: 0 18px 42px #173b4214; }
.h-card { border-radius: 22px; }
.h-card > div { padding: 28px; }
.h-card h3 { font-size: clamp(23px, 2.1vw, 30px); }
.mini-card { box-shadow: 0 12px 28px #09182e12; }
.mini-card span { background: #ffffff; }
.sector .industry-scene { border-radius: 24px; box-shadow: 0 22px 60px #11284117; }
.sector .industry-scene .photo { border-radius: inherit; }
.sector .role-tags span { background: #edf5f1; border-color: #d4e5dc; }
.sector-actions { display: flex; flex-wrap: wrap; gap: 18px 28px; align-items: center; margin-top: 24px; }
.sector-actions a { font-size: 14px; color: #315b64; text-decoration: underline; text-underline-offset: 5px; }
.sector-tabs a { min-height: 44px; display: inline-flex; align-items: center; }
.apply-form,.lead-form { box-shadow: 0 20px 60px #1128410c; }
.field:focus-within > label { color: #087461; }
input,textarea,select { scroll-margin-block: 110px; }
input[type=email],input[type=tel],input[type=url] { direction: ltr; }
:where(a,button,input,textarea,select,summary):focus-visible { outline: 3px solid #278ccd; outline-offset: 4px; }
:is(.hero,.page-hero,footer,.site-header) :focus-visible { outline-color: #adffe6; }
.faq summary { min-height: 64px; }
.faq details[open] { background: #f3f8f6; border-radius: 12px; }
.faq details[open] summary,.faq details[open] .answer { padding-inline: 16px; }
dialog { overscroll-behavior: contain; border-radius: 24px; }
.footer-cta { gap: 32px; }
@media (max-width: 900px) {
  .nav nav.open { overflow-y: auto; overscroll-behavior: contain; padding-bottom: max(32px, env(safe-area-inset-bottom)); }
  .hero-copy > p { max-width: 550px; }
  .sector.reverse > figure { order: 0; }
  .sector { gap: 32px; }
}
@media (max-width: 600px) {
  .hero .eyebrow.light { font-size: 10px; letter-spacing: 1.2px; }
  .hero h1 { font-size: clamp(44px, 12.2vw, 66px); }
  .audience-section { gap: 14px; padding-block: 24px; }
  .audience-card,.audience-card + .audience-card { padding: 22px; }
  .audience-card p { max-width: none; }
  .actions { gap: 18px; }
  .h-card > div { padding: 24px; }
  .hero-photo-tag { top: 20px; }
  .sector-actions { gap: 18px; align-items: flex-start; flex-direction: column; }
  .footer-cta-actions { width: 100%; }
  .footer-cta-actions .button { width: 100%; justify-content: space-between; }
  input:not([type=checkbox]):not([type=radio]),select,textarea { font-size: 16px; }
}
@media (hover: none) { .tilt { transform: none !important; } }
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; }
  ::view-transition-old(root),::view-transition-new(root) { animation: none !important; }
}
.motion-paused::view-transition-old(root),.motion-paused::view-transition-new(root) { animation: none !important; }

/* People mosaic (homepage) */
.people-mosaic { display: grid; grid-template-columns: 1.15fr 1fr 1fr; grid-template-rows: 300px 300px; gap: 18px; margin-top: 48px; }
.people-mosaic .pm { position: relative; margin: 0; border-radius: var(--radius); overflow: hidden; }
.people-mosaic .pm-tall { grid-row: span 2; }
.people-mosaic .pm .photo { border-radius: var(--radius); }
.people-mosaic .pm .photo img { object-position: center 30%; transition: scale 1.2s var(--ease-out); }
.people-mosaic .pm:hover .photo img { scale: 1.18; }
.people-mosaic .pm::after { content: ''; position: absolute; inset: 0; border-radius: var(--radius); background: linear-gradient(transparent 45%, #071c38d9); pointer-events: none; }
.people-mosaic figcaption { position: absolute; left: 22px; right: 22px; bottom: 20px; z-index: 1; color: #fff; font-size: 18px; font-weight: 500; line-height: 1.3; letter-spacing: -.3px; }
.people-mosaic figcaption small { display: block; font-size: 10px; letter-spacing: 1.8px; color: var(--mint); font-weight: 600; margin-bottom: 6px; }
.people-mosaic .pm-tall figcaption { font-size: 24px; }
@media (max-width: 900px) {
  .people-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 380px 230px 230px; gap: 12px; }
  .people-mosaic .pm-tall { grid-row: auto; grid-column: span 2; }
}
@media (max-width: 600px) {
  .people-mosaic { grid-template-rows: 340px 200px 200px; margin-top: 32px; }
  .people-mosaic figcaption { font-size: 15px; left: 16px; right: 16px; bottom: 14px; }
  .people-mosaic .pm-tall figcaption { font-size: 20px; }
}

/* Footer refresh */
.footer-grid { grid-template-columns: 1.7fr 1fr 1fr 0.9fr 1.2fr; gap: 40px; }
.footer-about p { max-width: 330px; line-height: 1.75; }
.footer-place { display: flex; gap: 12px; align-items: flex-start; margin-top: 22px; padding: 14px 16px; border: 1px solid #ffffff14; border-radius: 12px; background: #ffffff06; width: fit-content; }
.footer-pin { color: var(--mint); font-size: 16px; line-height: 1.3; }
.footer-place strong { display: block; color: #e6eef5; font-size: 14px; font-weight: 500; }
.footer-place small { display: block; color: #819dab; font-size: 12px; margin-top: 3px; }
.footer-contact > a small { display: block; font-size: 10px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--mint); opacity: .8; margin-bottom: 3px; }
.footer-grid .footer-contact > a:not(.brand) { margin: 0 0 16px; color: #d4e2ec; overflow-wrap: anywhere; }
.footer-legal i { font-style: normal; margin: 0 8px; opacity: .5; }
@media (max-width: 1100px) {
  .footer-grid { grid-template-columns: repeat(4, 1fr); }
  .footer-grid > .footer-about { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px 20px; }
  .footer-grid > .footer-contact { grid-column: 1 / -1; }
  .footer-legal i { margin: 0 5px; }
}
@media (max-width: 760px) { .footer-bottom { padding-right: 64px; } }
