:root{--page-title-display:none;}/* Start custom CSS *//* ==========================================================================
   LEXSTUDI — SOBRE NÓS · v2.0 · Julho 2026
   
   ========================================================================== */

.pg-sobre-nos { background: var(--color-bg-page); font-family: var(--font-body); color: var(--color-text-body); overflow-x: clip; }

.sn-c { max-width: var(--grid-max-width); margin: 0 auto; padding: 0 var(--grid-padding-mobile); position: relative; z-index: 1; }
@media (min-width: 768px) { .sn-c { padding: 0 var(--grid-gutter-desktop); } }

/* ---------- DESTAQUE MARKO ONE (extrema parcimónia, Manual secção 4) ---------- */
.marko-hl { font-family: var(--font-accent); font-weight: var(--weight-accent-regular); color: var(--color-accent); position: relative; display: inline-block; }
.sn-gradient .marko-hl { color: var(--color-accent-on-dark); }
.marko-hl::after {
  content: ''; position: absolute; left: 0; bottom: -2px; height: 2px; width: 0;
  background: currentColor; opacity: .55; transition: width 900ms var(--ease-out) 350ms;
}
.reveal.visible .marko-hl::after { width: 100%; }

/* ---------- BLOBS COM DERIVA ---------- */
.sn-blob { position: absolute; border-radius: 50%; filter: blur(var(--blob-blur)); pointer-events: none; z-index: var(--z-base); animation: sn-drift var(--motion-drift); }
@keyframes sn-drift { 0% { transform: translate(0,0) scale(1); } 100% { transform: translate(30px,-20px) scale(1.08); } }

.sn-blob--light-a { background: var(--blob-color-primary); }
.sn-blob--light-b { background: var(--blob-color-accent); }
.sn-blob--dark-a { background: var(--blob-color-dark-a); }
.sn-blob--dark-b { background: var(--blob-color-dark-b); }

/* ---------- SECÇÕES ---------- */
.sn-section { position: relative; padding: var(--space-4xl) 0; overflow: hidden; }
.sn-section--tight { padding: var(--space-3xl) 0; }
.sn-section--alt { background: var(--color-bg-alt); }
.sn-section--wash { background: var(--gradient-surface); }

.sn-gradient { background: var(--gradient-primary); color: var(--color-white); }
.sn-gradient .sn-eyebrow { color: var(--color-text-on-dark-muted); }
.sn-gradient p { color: var(--color-text-on-dark); }

/* ---------- CABEÇALHOS ---------- */
.sn-eyebrow { display: inline-flex; align-items: center; gap: var(--space-s); font: var(--type-caption); text-transform: uppercase; letter-spacing: var(--tracking-uppercase); color: var(--color-accent-hover); margin-bottom: var(--space-l); }
.sn-eyebrow .dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

.sn-h1 { font: var(--type-display); letter-spacing: var(--tracking-tight); color: var(--color-text-heading); margin: 0 0 var(--space-l); text-align: center; }
.sn-gradient .sn-h1 { color: var(--color-heading-on-dark); }
.sn-lead { font-size: var(--text-body-lg); line-height: var(--leading-body); max-width: var(--measure-narrative); margin: 0 auto; text-align: center; color: var(--color-text-body); }
.sn-gradient .sn-lead { color: var(--color-text-on-dark); }

.sn-h2 { font: var(--type-h2); color: var(--color-text-heading); margin: 0 0 var(--space-l); }
.sn-gradient .sn-h2 { color: var(--color-heading-on-dark); }

/* ---------- HERO ---------- */
.sn-hero { text-align: center; padding: var(--space-4xl) 0 var(--space-3xl); }

.sn-constellation { position: absolute; inset: 0; z-index: var(--z-base); pointer-events: none; width: 100%; height: 100%; opacity: .8; }
.sn-constellation .dot { opacity: .4; animation: sn-pulse 7s var(--ease-in-out) infinite; transform-origin: center; }
.sn-constellation .dot--primary { fill: var(--color-primary); }
.sn-constellation .dot--gold { fill: var(--color-accent); opacity: .55; }
.sn-constellation .dot:nth-child(3n) { animation-delay: -1.4s; }
.sn-constellation .dot:nth-child(3n+1) { animation-delay: -3.1s; }
.sn-constellation .line { stroke: var(--color-primary); stroke-width: 1; opacity: .16; }
@keyframes sn-pulse { 0%, 100% { opacity: .3; transform: scale(1); } 50% { opacity: .85; transform: scale(1.3); } }
@media (max-width: 767px) { .sn-constellation { opacity: .4; } }

.sn-scrollcue { display: none; }
@media (min-width: 768px) {
  .sn-scrollcue { display: flex; flex-direction: column; align-items: center; gap: var(--space-xs); margin-top: var(--space-2xl); color: var(--color-text-muted); font-size: var(--text-caption); }
  .sn-scrollcue svg { width: 18px; height: 18px; stroke-width: 1.5; animation: sn-bob 2.2s var(--ease-in-out) infinite; }
}
@keyframes sn-bob { 0%, 100% { transform: translateY(0); opacity: .5; } 50% { transform: translateY(6px); opacity: 1; } }

/* ---------- ORIGEM — thread narrativo (momento de assinatura) ---------- */
.sn-origem-body { max-width: var(--measure-narrative); margin: 0 auto; }

.sn-thread { display: grid; grid-template-columns: 1fr; gap: 0; margin-top: var(--space-2xl); max-width: var(--measure-narrative); margin-left: auto; margin-right: auto; }
@media (min-width: 1024px) { .sn-thread { grid-template-columns: 32px 1fr; column-gap: var(--space-xl); } }

.sn-thread-rail { display: none; }
@media (min-width: 1024px) { .sn-thread-rail { display: block; width: 2px; background: var(--color-border-on-dark); grid-row: 1 / -1; margin: 6px auto 0; } }

.sn-beat { position: relative; padding-bottom: var(--space-2xl); }
.sn-beat:last-child { padding-bottom: 0; }
@media (max-width: 1023px) { .sn-beat { padding-left: var(--space-l); border-left: 2px solid var(--color-border-on-dark); margin-bottom: var(--space-xl); } }
@media (min-width: 1024px) { .sn-beat { grid-column: 2; } }

.sn-beat-marker {
  position: absolute; left: -7px; top: 4px; width: 14px; height: 14px; border-radius: 50%;
  background: var(--color-bg-on-dark-subtle); border: 2px solid var(--color-border-on-dark);
  transition: background var(--duration-slow) var(--ease-playful), border-color var(--duration-slow) var(--ease-playful), transform var(--duration-slow) var(--ease-playful), box-shadow var(--duration-slow) var(--ease-playful);
}
@media (min-width: 1024px) { .sn-beat-marker { left: calc(-1 * var(--space-xl) - 6px); } }
.sn-beat-marker.visible { background: var(--color-accent); border-color: var(--color-accent); transform: scale(1.25); box-shadow: var(--glow-gold); }

.sn-beat-kicker { font: var(--type-caption); text-transform: uppercase; letter-spacing: var(--tracking-uppercase); color: var(--color-accent-on-dark); margin-bottom: var(--space-s); }
.sn-origem-body p { font-size: var(--text-body-lg); line-height: var(--leading-body-loose); margin: 0 0 var(--space-m); color: var(--color-text-on-dark); }
.sn-origem-body p:last-child { margin-bottom: 0; }

.sn-dropcap::first-letter { font-family: var(--font-accent); font-size: 3.1em; float: left; line-height: .78; padding-right: var(--space-s); color: var(--color-accent-on-dark); }

.sn-origem-pullquote { position: relative; font-family: var(--font-accent); font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); line-height: 1.4; color: var(--color-accent-on-dark); text-align: center; margin: var(--space-2xl) auto 0; padding: var(--space-xl) var(--space-l) 0; max-width: var(--measure-narrative); border-top: 1px solid var(--color-border-on-dark); }
.sn-origem-pullquote::before { content: '201C'; position: absolute; top: 2px; left: 50%; transform: translateX(-50%); font-size: 4rem; color: var(--color-accent-on-dark); opacity: .22; line-height: 1; }

/* ---------- EQUIPA ---------- */
.sn-team-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-xl); margin-top: var(--space-2xl); }
@media (min-width: 768px) { .sn-team-grid { grid-template-columns: 1fr 1fr; gap: var(--space-2xl); } }

.sn-team-card { position: relative; background: var(--card-bg); border: var(--card-border); border-radius: var(--radius-2xl); padding: var(--space-xl); box-shadow: var(--shadow-sm); transition: var(--card-transition), box-shadow var(--duration-slow) var(--ease-standard); text-align: center; }
.sn-team-card:hover { transform: translateY(-4px); }
.sn-team-card--primary:hover { box-shadow: var(--shadow-lg), var(--glow-primary); border-color: var(--color-primary); }
.sn-team-card--gold:hover { box-shadow: var(--shadow-lg), var(--glow-gold); border-color: var(--color-accent); }

.sn-avatar-wrap { position: relative; width: var(--avatar-size-md); margin: 0 auto var(--space-l); }
.sn-avatar { width: var(--avatar-size-md); height: var(--avatar-size-md); border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--gradient-primary); box-shadow: var(--shadow-md); }
.sn-avatar span { font: var(--avatar-font-md); color: var(--color-white); letter-spacing: 0.02em; }
.sn-avatar--gold { background: var(--gradient-gold); }

.sn-role-badge { position: absolute; bottom: -2px; right: -2px; width: 32px; height: 32px; border-radius: 50%; background: var(--color-white); border: 2px solid var(--color-bg-page); box-shadow: var(--shadow-sm); display: flex; align-items: center; justify-content: center; color: var(--color-primary); }
.sn-role-badge svg { width: 16px; height: 16px; stroke-width: 2; }
.sn-team-card--gold .sn-role-badge { color: var(--color-accent-hover); }

.sn-team-name { font: var(--type-h3); color: var(--color-text-heading); margin: 0 0 var(--space-xs); }
.sn-team-role { font: var(--weight-body-medium) var(--text-body-sm) var(--font-body); color: var(--color-accent-hover); text-transform: uppercase; letter-spacing: var(--tracking-uppercase); margin-bottom: var(--space-m); }
.sn-team-bio { font-size: var(--text-body); line-height: var(--leading-body); color: var(--color-text-body); margin: 0; }

.sn-team-quote { font-family: var(--font-accent); font-size: var(--text-quote); color: var(--color-accent-hover); margin-top: var(--space-l); padding-top: var(--space-l); border-top: 1px solid var(--color-border); }

/* ---------- VALORES ---------- */
.sn-values-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-l); margin-top: var(--space-2xl); }
@media (min-width: 640px) { .sn-values-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .sn-values-grid { grid-template-columns: repeat(3, 1fr); } }

.sn-value-card { background: var(--color-white); border: var(--card-border); border-radius: var(--card-radius); padding: var(--space-l); transition: var(--card-transition); box-shadow: var(--shadow-xs); }
.sn-value-card:hover { box-shadow: var(--card-shadow-hover); transform: translateY(var(--card-hover-lift)); border-color: var(--color-primary); }
.sn-value-icon { width: 40px; height: 40px; border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center; margin-bottom: var(--space-m); transition: transform var(--duration-slow) var(--ease-playful); }
.sn-value-card:hover .sn-value-icon { transform: scale(1.12) rotate(-6deg); }
.sn-value-icon svg { width: 20px; height: 20px; stroke-width: 1.75; }

.sn-value-icon--primary { background: rgba(var(--color-primary-rgb), .1); color: var(--color-primary); }
.sn-value-icon--gold    { background: var(--badge-bg-gold); color: var(--color-accent-hover); }
.sn-value-icon--info    { background: var(--color-info-bg); color: var(--color-info); }
.sn-value-icon--success { background: var(--color-success-bg); color: var(--color-success); }

.sn-value-title { font: var(--type-h4); color: var(--color-text-heading); margin: 0 0 var(--space-xs); }
.sn-value-desc { font-size: var(--text-body-sm); line-height: var(--leading-body); color: var(--color-text-muted); margin: 0; }

.sn-value-card--featured { grid-column: 1 / -1; background: var(--gradient-primary); border: none; display: flex; align-items: center; gap: var(--space-l); text-align: left; }
.sn-value-card--featured .sn-value-icon { background: var(--color-bg-on-dark-subtle); color: var(--color-white); margin-bottom: 0; flex-shrink: 0; }
.sn-value-card--featured .sn-value-title { color: var(--color-heading-on-dark); }
.sn-value-card--featured .sn-value-desc { color: var(--color-text-on-dark); }
.sn-value-card--featured:hover { border-color: transparent; box-shadow: var(--shadow-lg), var(--glow-primary); }
@media (max-width: 639px) { .sn-value-card--featured { flex-direction: column; text-align: center; } }

/* ---------- EM NÚMEROS (secção nova) ---------- */
.sn-stats-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-xl); margin-top: var(--space-2xl); }
@media (min-width: 640px) { .sn-stats-grid { grid-template-columns: repeat(3, 1fr); } }

.sn-stat-card { text-align: center; padding: var(--space-l); }
.sn-stat-icon { width: 56px; height: 56px; border-radius: 50%; background: var(--color-white); box-shadow: var(--shadow-sm); display: flex; align-items: center; justify-content: center; margin: 0 auto var(--space-m); color: var(--color-primary); }
.sn-stat-icon svg { width: 26px; height: 26px; stroke-width: 1.6; }
.sn-stat-number { display: block; font: var(--stat-number-font); color: var(--stat-number-color); margin-bottom: var(--space-xs); }
.sn-stat-label { font: var(--stat-label-font); color: var(--stat-label-color); }

/* ---------- CTA FINAL (glass sobre gradiente) ---------- */
.sn-cta-card { background: var(--glass-bg); backdrop-filter: blur(var(--glass-blur)); -webkit-backdrop-filter: blur(var(--glass-blur)); border: var(--glass-border); border-radius: var(--radius-2xl); padding: var(--space-2xl); text-align: center; max-width: 640px; margin: var(--space-2xl) auto 0; }
.sn-cta-buttons { display: flex; flex-direction: column; gap: var(--space-m); justify-content: center; margin-top: var(--space-l); }
@media (min-width: 480px) { .sn-cta-buttons { flex-direction: row; } }

.sn-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-s); border-radius: var(--btn-radius); padding: var(--btn-padding); min-height: var(--touch-target-min); text-decoration: none; transition: background var(--duration-base) var(--ease-standard), transform var(--duration-base) var(--ease-standard), box-shadow var(--duration-base) var(--ease-standard); }
.sn-btn svg { width: 16px; height: 16px; stroke-width: 2; transition: transform var(--duration-base) var(--ease-standard); }
.sn-btn:hover svg { transform: translateX(3px); }
.sn-btn:focus-visible { outline: none; box-shadow: var(--focus-ring-on-dark); }
.sn-btn:hover { transform: translateY(-2px); }

.sn-btn--primary { position: relative; z-index: 0; background: var(--btn-gold-bg); color: var(--btn-gold-color); font: var(--btn-gold-font); }
.sn-btn--primary:hover { background: var(--btn-gold-hover); box-shadow: var(--glow-gold); }
.sn-btn--primary::before {
  content: ''; position: absolute; inset: -3px; z-index: -1; border-radius: calc(var(--btn-radius) + 3px);
  background: var(--gradient-shimmer); animation: lex-shimmer-spin var(--duration-shimmer) linear infinite;
}
@keyframes lex-shimmer-spin { to { --shimmer-angle: 360deg; } }

.sn-btn--secondary { background: transparent; color: var(--color-white); border: var(--btn-secondary-on-dark-border); font: var(--weight-body-medium) var(--btn-font-size) var(--font-body); }
.sn-btn--secondary:hover { background: var(--btn-secondary-on-dark-hover-bg); border-color: var(--color-white); }

/* ---------- REVEAL + STAGGER ---------- */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity var(--motion-reveal), transform var(--motion-reveal); transition-delay: calc(var(--stagger-step) * min(var(--stagger-index, 0), var(--stagger-step-max))); }
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal.d1 { transition-delay: 100ms; }
.reveal.d2 { transition-delay: 200ms; }

/* ---------- MOVIMENTO REDUZIDO ---------- */
@media (prefers-reduced-motion: reduce) {
  .reveal { transition: none; opacity: 1; transform: none; }
  .sn-blob, .sn-constellation .dot, .sn-scrollcue svg, .sn-btn--primary::before { animation: none !important; }
  .sn-btn--primary::before { opacity: 0; }
  .marko-hl::after { transition: none; width: 100%; }
}/* End custom CSS */