/* Portraits and team presentation — Grupo Jurídico Norte. */
.team-page {
  --ink: #eeeae1;
  --dark: #080a0b;
  --dark-soft: #111416;
  --gold: #c5a875;
  --gold-light: #dfc59b;
  --gold-ink: #c5a875;
  --paper: #eeeae1;
  --white: #111416;
  --muted: #9d9e9b;
  --line: #ffffff1c;
  --serif: "Times New Roman", Georgia, serif;
  --sans: "Helvetica Neue", Arial, sans-serif;
  background: #080a0b;
  color: #eeeae1;
  overflow-x: clip;
}
.team-page .site-header { background: #080a0bf0; border-bottom-color: #ffffff12; backdrop-filter: blur(18px); }
.team-page .site-nav { gap: 28px; }
.team-page .site-nav > a:not(.btn) { color: #bebeba; }
.team-page .site-nav > a[aria-current="page"]:not(.btn), .team-page .site-nav > a:not(.btn):hover { color: #dfc59b; }
.team-page .btn-gold { border-radius: 2px; background: #c5a875; color: #080a0b; }
.team-page .btn-gold:hover { background: #dfc59b; }
.team-page .text-link { border-color: #c5a87550; color: #e3d4ba; font-weight: 400; }
.team-page .text-link:hover { color: #fff3da; border-color: #c5a875; }
.team-page .page-intro { background: radial-gradient(ellipse at 85% 38%, #c5a8750b, transparent 58%), #080a0b; }
.team-page .team-intro { padding: 28px 0 0; }
.team-page .breadcrumb { color: #818583; margin-bottom: 66px; font-size: .66rem; }
.team-intro-grid { display: grid; grid-template-columns: 1.45fr .55fr; align-items: end; gap: 70px; }
.team-dot { width: 5px; height: 5px; display: inline-block; border-radius: 50%; background: #c5a875; margin: 0 10px 2px 0; }
.team-page .team-intro h1 { font-size: clamp(3.2rem, 5.7vw, 5.3rem); line-height: 1.04; letter-spacing: -.045em; margin-top: 23px; }
.team-page h1 em, .team-page h2 em { color: #d3bc96; font-weight: 400; }
.team-intro-copy { font-size: .86rem; line-height: 1.8; color: #a5a5a0; max-width: 290px; margin-bottom: 8px; }
.team-group { margin: 55px 0 0; perspective: 1800px; }
.team-group-image { aspect-ratio: 16 / 8.7; background: #15191b; border: 1px solid #c5a87535; position: relative; overflow: hidden; box-shadow: 0 35px 80px #0008; transform: rotateX(1deg); transform-origin: center bottom; transition: transform .6s ease, box-shadow .6s ease; }
.team-group-image::after { content: ""; position: absolute; inset: 0; border: 12px solid #080a0b12; pointer-events: none; }
.team-group-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 43%; }
.team-group figcaption { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 19px 0; font-size: .58rem; letter-spacing: .16em; color: #8c908b; text-transform: uppercase; }
.team-group figcaption span:first-child { color: #c5a875; }
.team-group figcaption i { font-style: normal; color: #505654; margin-inline: 12px; }
.team-jump { display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid #ffffff1c; margin-top: 16px; }
.team-jump a { display: flex; align-items: center; gap: 24px; padding: 21px 26px; border-right: 1px solid #ffffff1c; font-family: var(--serif); font-size: 1.42rem; color: #d5d4cd; }
.team-jump a:first-child { padding-left: 0; }
.team-jump a:last-child { border-right: 0; }
.team-jump a span:first-child { font-family: var(--sans); font-size: .58rem; letter-spacing: .1em; color: #8d7d63; }
.team-jump a span:last-child { margin-left: auto; color: #c5a875; font-family: var(--sans); font-size: .86rem; }
.team-jump a:hover { color: #e8cda4; background: #c5a87505; }
.team-page .team-profiles { padding-top: 106px; padding-bottom: 110px; }
.team-page .team-heading { margin-bottom: 48px; }
.team-page .team-heading h2 { font-size: clamp(2.75rem, 4.2vw, 3.85rem); }
.team-page .team-heading > p { font-size: .86rem; line-height: 1.85; color: #989d99; max-width: 315px; }
.team-page .team-grid { gap: 26px; perspective: 2000px; align-items: start; }
.team-page .team-card { display: block; background: linear-gradient(145deg, #151a1c, #0e1113 50%); border: 1px solid #ffffff1c; box-shadow: 0 14px 35px #0003; transition: transform .45s ease, border-color .45s ease, box-shadow .45s ease; transform-style: preserve-3d; scroll-margin-top: 120px; }
.partner-portrait { aspect-ratio: 4 / 5.15; position: relative; isolation: isolate; overflow: hidden; background: radial-gradient(ellipse at center, #29333a, #11171b); }
.partner-portrait::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, #00000000 57%, #080a0b99 100%); pointer-events: none; }
.partner-portrait img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 27%; transition: transform .6s ease; }
.portrait-number { position: absolute; top: 19px; left: 21px; z-index: 1; color: #eeeae1; font-size: .58rem; letter-spacing: .15em; border: 1px solid #ffffff45; border-radius: 50%; width: 32px; height: 32px; display: grid; place-items: center; background: #080a0b26; backdrop-filter: blur(8px); }
.portrait-name { position: absolute; z-index: 1; bottom: 20px; left: 25px; color: #fffaf0; font-family: var(--serif); font-style: italic; font-size: 2.8rem; line-height: 1; letter-spacing: -.04em; }
.team-page .partner-body { padding: 29px 25px 31px; }
.team-page .partner-body > .eyebrow { color: #bfa47b; font-size: .58rem; letter-spacing: .16em; }
.partner-alias { color: #8e918b; margin-left: 5px; }
.team-page .partner-body h2 { font-size: clamp(1.65rem, 2.2vw, 2.2rem); line-height: 1.12; margin: 16px 0 20px; letter-spacing: -.025em; }
.team-page .team-edu { font-size: .75rem; min-height: 78px; color: #949b96; line-height: 1.8; }
.team-page .team-details { border-color: #ffffff19; margin-top: 17px; margin-bottom: 17px; }
.team-page .team-details summary { color: #d3d0c6; font-size: .74rem; min-height: 56px; }
.team-page .team-details summary span { font-weight: 300; transition: transform .25s ease; }
.team-page .team-list { font-size: .76rem; color: #a3a8a3; padding-left: 16px; line-height: 1.75; }
.team-page .team-list li::marker { color: #b49970; }
.team-page .partner-body > .text-link { width: 100%; justify-content: space-between; border: 0; font-size: .73rem; }
.team-page .cta-section { background: radial-gradient(ellipse at 25% 80%, #c5a8750e, transparent 60%), #0e1112; border-block: 1px solid #ffffff14; padding: 70px 0; }
.team-page .cta-section .eyebrow { color: #bda580; }
.team-page .cta-section h2 { font-size: clamp(2.2rem, 3.4vw, 3.25rem); max-width: 650px; line-height: 1.15; }
.team-page .cta-section .btn { flex-shrink: 0; }
.team-page .site-footer { background: #080a0b; color: #a4aaa5; }
.team-page .footer-grid p { color: #747d76; }
.team-page .footer-grid h2 { color: #b6a17e; }
.team-page .footer-bottom { border-color: #ffffff18; color: #778079; }
.team-page .whatsapp-float { border-color: #c5a87550; background: #151c19; color: #d9ddda; box-shadow: 0 4px 20px #0006; }
.team-page .whatsapp-float:hover { background: #223029; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .team-group:hover .team-group-image { transform: rotateX(0deg) translateY(-3px); box-shadow: 0 40px 90px #0009; }
  .team-page .team-card:hover { transform: translateY(-8px) rotateY(-1deg); border-color: #c5a87566; box-shadow: 8px 25px 50px #0007; }
  .team-page .team-card:hover .partner-portrait img { transform: scale(1.025); }
}
@media (max-width: 1100px) {
  .team-page .site-nav { gap: 20px; }
  .team-intro-grid { gap: 30px; grid-template-columns: 1.25fr .65fr; }
  .team-page .partner-body { padding-inline: 21px; }
  .team-page .team-grid { gap: 20px; }
}
@media (max-width: 960px) {
  .team-page .site-nav { gap: 0; }
  .team-page .breadcrumb { margin-bottom: 45px; }
  .team-intro-grid { grid-template-columns: 1fr; gap: 27px; }
  .team-intro-copy { max-width: 430px; font-size: .86rem; }
  .team-page .team-intro h1 { font-size: clamp(3.2rem, 7.5vw, 4.75rem); }
  .team-group { margin-top: 38px; }
  .team-group-image { aspect-ratio: 16 / 10; }
  .team-page .team-grid { grid-template-columns: 1fr; gap: 30px; }
  .team-page .team-card { display: grid; grid-template-columns: 1fr 1.1fr; }
  .partner-portrait { aspect-ratio: auto; min-height: 410px; }
  .team-page .partner-body { padding: 34px 29px; align-self: center; }
  .team-page .partner-body h2 { font-size: 2.05rem; }
  .team-page .team-edu { min-height: 0; }
  .team-page .team-profiles { padding-block: 80px; }
  .team-page .team-heading { gap: 35px; }
  .team-page .team-heading > p { max-width: 265px; }
}
@media (max-width: 700px) {
  .team-page .team-intro { padding-top: 22px; }
  .team-page .breadcrumb { margin-bottom: 40px; }
  .team-page .team-intro h1 { font-size: clamp(2.6rem, 9.5vw, 4rem); }
  .team-page .team-intro .eyebrow { font-size: .56rem; letter-spacing: .12em; }
  .team-intro-copy { font-size: .81rem; max-width: 370px; line-height: 1.75; }
  .team-group { margin-top: 32px; }
  .team-group-image { aspect-ratio: 4 / 3; }
  .team-group-image img { object-position: center; }
  .team-group-image::after { border-width: 6px; }
  .team-group figcaption { font-size: .46rem; gap: 10px; letter-spacing: .06em; padding: 14px 0; }
  .team-group figcaption i { margin-inline: 5px; }
  .team-jump { margin-top: 12px; }
  .team-jump a { padding: 18px 13px; gap: 10px; font-size: 1.2rem; }
  .team-jump a span:first-child { font-size: .48rem; }
  .team-jump a span:last-child { font-size: .7rem; }
  .team-page .team-profiles { padding-block: 64px; }
  .team-page .team-heading { margin-bottom: 34px; }
  .team-page .team-heading h2 { font-size: 2.7rem; }
  .team-page .team-heading > p { max-width: 380px; font-size: .81rem; }
  .team-page .team-grid { max-width: 470px; margin-inline: auto; gap: 30px; }
  .team-page .team-card { display: block; scroll-margin-top: 95px; }
  .partner-portrait { min-height: 0; aspect-ratio: 4 / 5; }
  .team-page .partner-body { padding: 29px 25px; }
  .team-page .partner-body h2 { font-size: 2.05rem; }
  .team-page .team-edu { min-height: 0; }
  .team-page .cta-section { padding: 48px 0; }
  .team-page .cta-section h2 { font-size: 2.5rem; }
  .team-page .cta-section .eyebrow { font-size: .57rem; }
}
@media (prefers-reduced-motion: reduce) {
  .team-page .team-group-image, .team-page .team-card, .team-page .partner-portrait img { transform: none !important; transition: none !important; }
}
@media print {
  .team-page { background: #fff; color: #000; }
  .team-jump, .team-group { display: none; }
  .team-page .team-card { display: block; box-shadow: none; border-color: #ccc; }
  .team-page .team-grid { grid-template-columns: repeat(3, 1fr); }
  .partner-portrait { min-height: 0; aspect-ratio: 4 / 5; }
  .team-page .partner-body { padding: 15px; }
  .team-page .partner-body h2 { font-size: 18pt; }
  .team-page p, .team-page .team-list, .team-page .team-details summary { color: #000; }
}
