/* 03-about (design sections/{desktop,mobile}/03-about.jpg). Intro copy differs per breakpoint (.cv25-d / .cv25-m). */
.cv25-about { padding-bottom: 100px; }
.cv25-about .cv25-container { display: flex; flex-direction: column; align-items: center; text-align: center; }
.cv25-about-partners { align-self: flex-end; width: 140px; height: auto; margin-top: 30px; }

.cv25-lockup { width: min(640px, 100%); margin-top: 10px; }
.cv25-lockup img { width: 100%; height: auto; padding-bottom: 14px; border-bottom: 2px solid var(--cv25-red); }
.cv25-tagline { margin: 18px 0 0; display: flex; flex-direction: column; line-height: 1.3; }
.cv25-tagline strong { font-size: clamp(1.25rem, 2.2vw, 2rem); font-weight: 600; }
.cv25-tagline span { font-size: clamp(1.5rem, 2.6vw, 2.375rem); font-weight: 500; }
.cv25-tagline--rule { margin-top: 70px; padding-bottom: 16px; border-bottom: 2px solid var(--cv25-red); width: min(940px, 100%); }

.cv25-about-speakers { width: min(1000px, 100%); height: auto; margin-top: 10px; }
.cv25-about-text { margin: 50px 0 0; font-size: clamp(1.0625rem, 1.6vw, 1.5rem); line-height: 1.55; font-weight: 300; }
.cv25-about-text--gap { margin-top: 160px; }
.cv25-about-text--sm { margin-top: 24px; font-size: clamp(.9375rem, 1.3vw, 1.25rem); }
.cv25-about-text--sm strong { display: block; font-weight: 600; }

.cv25-objectives { list-style: none; margin: 150px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; width: 100%; text-align: left; }
.cv25-objectives li { display: flex; flex-direction: column; }
.cv25-objectives img { align-self: center; width: 200px; height: auto; }
.cv25-obj-num { margin-top: 18px; font-size: 2.25rem; font-weight: 400; line-height: 1; padding-left: 48px; }
.cv25-objectives h4 {
    position: relative; margin: 10px 0 0; padding-left: 48px; min-height: 2.6em;
    font-size: 1.1875rem; font-weight: 400; line-height: 1.3;
}
.cv25-objectives h4::before {
    content: ''; position: absolute; left: 0; top: .2em; border-style: solid;
    border-width: 10px 0 10px 32px; border-color: transparent transparent transparent var(--cv25-red);
}
.cv25-objectives p {
    position: relative; flex: 1; margin: 24px 0 0; padding: 30px 24px; text-align: center;
    font-size: 1.125rem; line-height: 1.55; font-weight: 300;
}
/* Rounded gradient border (border-image can't take a radius). */
.cv25-objectives p::before {
    content: ''; position: absolute; inset: 0; border-radius: 10px; padding: 2px; pointer-events: none;
    background: linear-gradient(135deg, #37C9EA, #2D5CC4);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor; mask-composite: exclude;
}

.cv25-target { margin: 90px 0 0; width: min(860px, 100%); }
.cv25-target img { width: 100%; height: auto; }

@media (max-width: 767px) {
    .cv25-about { padding-bottom: 60px; }
    .cv25-about-partners { width: 90px; margin-top: 18px; }
    .cv25-lockup { width: 100%; margin-top: 4px; }
    .cv25-lockup img { border-bottom: 0; padding-bottom: 0; }
    .cv25-about-text { font-size: 1.1875rem; margin-top: 60px; }
    /* Desktop line breaks wrap badly at phone width; the mobile-only intro keeps its own. */
    .cv25-about-text:not(.cv25-about-text--left) br { display: none; }
    .cv25-about-text--left { text-align: left; align-self: stretch; }
    .cv25-about-text--left p { margin: 0 0 1.4em; }
    .cv25-about-inlogo { width: 85%; height: auto; }
    .cv25-about-text--gap { margin-top: 30px; text-align: left; }
    .cv25-about-text--sm { font-size: 1rem; }
    .cv25-whatson {
        margin: 60px calc(-1 * var(--hub-gutter)) 0; padding: 14px 24px; text-align: left;
        background: linear-gradient(90deg, #01C3DC 0%, rgba(0, 96, 173, 0) 100%);
        font-size: 1.375rem; font-weight: 700; line-height: 1.2;
    }
    .cv25-whatson span { display: block; font-size: 2rem; }
    .cv25-objective-title { margin: 40px 0 0; font-size: 2.25rem; font-weight: 700; }
    .cv25-objectives { margin-top: 40px; grid-template-columns: 1fr; gap: 40px; }
    .cv25-obj-num { font-size: 3rem; font-weight: 700; padding-left: 64px; }
    .cv25-objectives h4 { padding-left: 64px; font-size: 1.125rem; font-weight: 600; min-height: 0; }
    .cv25-objectives h4::before { left: 18px; }
    .cv25-objectives p { margin-left: 16px; margin-right: 16px; font-size: 1.0625rem; }
    .cv25-target { margin-top: 50px; }
    .cv25-tagline--rule { margin-top: 40px; }
    .cv25-about-endlogo { width: 80%; height: auto; margin-top: 30px; }
}
