/* ========================================================================== 
   ATAQUE INICIAL · PERFIL DE FORMADOR
   Mesma linguagem visual do site, com tipografia deliberadamente contida.
   ========================================================================== */

.trainer-hero {
    position: relative;
    padding: 52px 0 58px;
    border-bottom: 1px solid var(--line);
    background:
        radial-gradient(circle at 18% 50%, rgba(255,208,0,.055), transparent 28rem),
        linear-gradient(180deg, rgba(16,29,35,.95), rgba(8,16,20,.9));
}

.trainer-hero__grid {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 40px;
    align-items: center;
}

.trainer-photo {
    width: 220px;
    height: 220px;
    overflow: hidden;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,208,0,.20);
    border-radius: 22px;
    background: var(--panel2);
    color: var(--yellow);
    font-family: var(--display);
    font-size: 2.5rem;
    font-weight: 900;
    box-shadow: var(--shadow);
}

.trainer-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.trainer-hero__copy h1 {
    margin: 14px 0 10px;
    max-width: 800px;
    font-family: var(--display);
    font-size: clamp(2.7rem, 5vw, 4.6rem);
    line-height: .94;
    text-transform: uppercase;
    letter-spacing: -.02em;
}

.trainer-hero__copy > strong {
    display: block;
    color: var(--blue);
    font-size: 1rem;
}

.trainer-hero__copy > p {
    max-width: 740px;
    margin: 9px 0 0;
    color: var(--muted);
    font-size: .9rem;
}

.trainer-section {
    padding: 62px 0;
    border-bottom: 1px solid var(--line);
}

.trainer-section--alternate {
    background: rgba(16,29,35,.42);
}

.trainer-split {
    display: grid;
    grid-template-columns: minmax(250px,.7fr) minmax(0,1.3fr);
    gap: 70px;
    align-items: start;
}

.trainer-section__head h2,
.trainer-wide-head h2 {
    margin: 8px 0 0;
    font-family: var(--display);
    font-size: clamp(1.9rem, 3vw, 2.8rem);
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: -.01em;
}

.trainer-section__head > p,
.trainer-wide-head > p {
    max-width: 430px;
    margin: 13px 0 0;
    color: var(--muted);
    font-size: .83rem;
}

.trainer-wide-head {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(280px,430px);
    gap: 46px;
    align-items: end;
    margin-bottom: 28px;
}

.trainer-copy {
    max-width: 820px;
}

.trainer-copy p {
    margin: 0 0 15px;
    color: #c8d2d5;
    font-size: .9rem;
    line-height: 1.74;
}

.trainer-copy .trainer-lead {
    color: var(--ink);
    font-size: 1rem;
    font-weight: 700;
}

/* Formação académica */
.trainer-timeline {
    border-top: 1px solid var(--line);
}

.trainer-timeline__item {
    display: grid;
    grid-template-columns: 145px minmax(0,1fr);
    gap: 24px;
    align-items: center;
    min-height: 105px;
    padding: 18px 0;
    border-bottom: 1px solid var(--line);
}

.trainer-timeline__item time {
    color: var(--yellow);
    font-family: var(--display);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.trainer-timeline__item small {
    display: block;
    color: var(--blue);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.trainer-timeline__item h3 {
    margin: 4px 0 0;
    font-family: var(--display);
    font-size: 1.15rem;
    line-height: 1.15;
    text-transform: uppercase;
}

.trainer-timeline__item p {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: .78rem;
}

/* Certificações */
.trainer-cert-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 12px;
}

.trainer-cert {
    display: grid;
    grid-template-columns: 82px minmax(0,1fr);
    gap: 18px;
    align-items: center;
    min-height: 142px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: rgba(255,255,255,.025);
}

.trainer-cert__badge {
    width: 76px;
    height: 76px;
    display: grid;
    place-items: center;
    overflow: hidden;
    padding: 8px;
    border: 1px solid rgba(255,208,0,.18);
    border-radius: 14px;
    background: rgba(255,255,255,.045);
}

.trainer-cert__badge img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.trainer-cert__badge span {
    color: var(--yellow);
    font-family: var(--display);
    font-size: .72rem;
    font-weight: 900;
    text-align: center;
}

.trainer-cert__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
    margin-bottom: 5px;
}

.trainer-cert__meta span {
    color: var(--yellow-soft);
    font-size: .62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.trainer-cert__meta span + span::before {
    content: "·";
    margin-right: 10px;
    color: #66757a;
}

.trainer-cert h3 {
    margin: 0;
    font-family: var(--display);
    font-size: 1.08rem;
    line-height: 1.18;
    text-transform: uppercase;
}

.trainer-cert p {
    margin: 7px 0 0;
    color: var(--muted);
    font-size: .76rem;
    line-height: 1.5;
}

/* Formação técnica */
.trainer-training-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 11px;
}

.trainer-training-card {
    min-height: 190px;
    padding: 17px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: rgba(255,255,255,.022);
}

.trainer-training-card__top {
    display: flex;
    justify-content: space-between;
    gap: 15px;
}

.trainer-training-card__top span {
    color: var(--yellow);
    font-family: var(--display);
    font-size: .67rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.trainer-training-card__top time {
    color: #7f8e93;
    font-size: .62rem;
}

.trainer-training-card h3 {
    margin: 18px 0 0;
    font-family: var(--display);
    font-size: 1.04rem;
    line-height: 1.18;
    text-transform: uppercase;
}

.trainer-training-card small {
    display: block;
    margin-top: 5px;
    color: var(--blue);
    font-size: .67rem;
}

.trainer-training-card p {
    margin: 10px 0 0;
    color: var(--muted);
    font-size: .74rem;
    line-height: 1.52;
}

.trainer-training-card b {
    display: inline-flex;
    margin-top: 12px;
    padding: 4px 7px;
    border: 1px solid rgba(169,219,255,.14);
    border-radius: 6px;
    color: var(--blue);
    font-size: .61rem;
}

/* Áreas */
.trainer-area-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 10px;
}

.trainer-area-card {
    min-height: 185px;
    padding: 17px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: rgba(255,255,255,.024);
}

.trainer-area-card > span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(255,208,0,.22);
    border-radius: 10px;
    color: var(--yellow);
    font-family: var(--display);
    font-size: .68rem;
    font-weight: 900;
}

.trainer-area-card h3 {
    margin: 28px 0 0;
    font-family: var(--display);
    font-size: 1rem;
    text-transform: uppercase;
}

.trainer-area-card p {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: .74rem;
    line-height: 1.5;
}

/* Experiência */
.trainer-experience-list {
    border-top: 1px solid var(--line);
}

.trainer-experience-row {
    display: grid;
    grid-template-columns: 52px 150px minmax(0,1fr);
    gap: 20px;
    align-items: center;
    min-height: 96px;
    padding: 14px 0;
    border-bottom: 1px solid var(--line);
}

.trainer-experience-row__number {
    color: #6f7d82;
    font-family: var(--display);
    font-size: .72rem;
    font-weight: 900;
}

.trainer-experience-row__label {
    color: var(--yellow);
    font-family: var(--display);
    font-size: .7rem;
    font-weight: 800;
    text-transform: uppercase;
}

.trainer-experience-row h3 {
    margin: 0;
    font-family: var(--display);
    font-size: 1rem;
    text-transform: uppercase;
}

.trainer-experience-row p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: .76rem;
}

/* Contactos */
.trainer-contacts {
    background:
        radial-gradient(circle at 88% 20%, rgba(255,208,0,.045), transparent 24rem),
        rgba(6,12,15,.45);
}

.trainer-contact-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 9px;
}

.trainer-contact {
    min-height: 72px;
    display: grid;
    grid-template-columns: 40px minmax(0,1fr) 18px;
    gap: 12px;
    align-items: center;
    padding: 11px 13px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: rgba(255,255,255,.025);
    transition: .2s ease;
}

.trainer-contact:hover {
    border-color: rgba(255,208,0,.32);
    background: rgba(255,208,0,.035);
}

.trainer-contact i {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,208,0,.16);
    border-radius: 9px;
    color: var(--yellow);
    background: rgba(255,208,0,.04);
    font-style: normal;
}

.trainer-contact i svg {
    width: 19px;
    height: 19px;
}

.trainer-contact > span {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.trainer-contact small {
    color: #758388;
    font-size: .58rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.trainer-contact strong {
    margin-top: 3px;
    overflow-wrap: anywhere;
    font-size: .76rem;
}

.trainer-contact > b {
    color: var(--yellow);
    font-size: .8rem;
}

@media (max-width: 980px) {
    .trainer-cert-grid { grid-template-columns: 1fr; }
    .trainer-training-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .trainer-area-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 780px) {
    .trainer-hero { padding: 42px 0 46px; }
    .trainer-hero__grid { grid-template-columns: 165px minmax(0,1fr); gap: 27px; }
    .trainer-photo { width: 165px; height: 165px; border-radius: 18px; }
    .trainer-hero__copy h1 { font-size: clamp(2.35rem, 8vw, 3.5rem); }
    .trainer-split,
    .trainer-wide-head { grid-template-columns: 1fr; gap: 26px; }
    .trainer-section { padding: 52px 0; }
    .trainer-training-grid { grid-template-columns: 1fr; }
}

@media (max-width: 580px) {
    .trainer-hero__grid { grid-template-columns: 1fr; }
    .trainer-photo { width: 145px; height: 145px; }
    .trainer-hero__copy h1 { font-size: 2.55rem; }
    .trainer-section__head h2,
    .trainer-wide-head h2 { font-size: 2rem; }
    .trainer-timeline__item { grid-template-columns: 1fr; gap: 5px; }
    .trainer-cert { grid-template-columns: 64px minmax(0,1fr); gap: 13px; padding: 14px; }
    .trainer-cert__badge { width: 60px; height: 60px; border-radius: 11px; }
    .trainer-area-grid { grid-template-columns: 1fr; }
    .trainer-experience-row { grid-template-columns: 38px minmax(0,1fr); gap: 10px; }
    .trainer-experience-row__label { grid-column: 2; margin-bottom: -5px; }
    .trainer-experience-row > div { grid-column: 2; }
    .trainer-contact-grid { grid-template-columns: 1fr; }
}
