/* Photography, portrait, copy and impact cards remain independently editable. */
.gt-section {
  --gt-night: color-mix(in srgb, var(--sff-navy), #000 70%);
  --gt-copy: color-mix(in srgb, var(--sff-light-blue), #fff 40%);
  --gt-gutter: max(44px, calc((100vw - 1584px) / 2));
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-bottom: 78px;
  color: #fff;
  background:
    radial-gradient(ellipse at 80% 20%, var(--sff-navy), transparent 64%),
    radial-gradient(ellipse at 48% 100%, color-mix(in srgb, var(--sff-navy), #000 35%), transparent 70%),
    var(--gt-night);
}
.gt-hero { position: relative; min-height: clamp(580px, 39.3vw, 700px); }
.gt-copy { position: relative; z-index: 4; width: 42%; max-width: 720px; padding: 52px 0 54px; margin-left: var(--gt-gutter); }
.gt-overline { display: flex; align-items: center; gap: 24px; color: var(--gt-copy); font-size: .875rem; font-weight: 500; line-height: 1.5; letter-spacing: .27em; text-transform: uppercase; margin-bottom: 25px; }
.gt-overline::before { content: ""; width: 48px; height: 4px; flex-shrink: 0; background: var(--sff-red); }
.gt-copy h2 { max-width: 570px; margin: 0 0 22px; color: #fff; font-family: var(--accent-font); font-size: clamp(4.65rem, 5.85vw, 6.8rem); font-weight: 550; line-height: .99; letter-spacing: -.016em; }
.gt-copy h2 .gt-heading-line { display: block; white-space: nowrap; }
.gt-copy h2 .gt-emphasis { color: var(--sff-light-blue); }
.gt-copy > p { max-width: 510px; margin: 0 0 24px; color: var(--gt-copy); font-size: clamp(1.05rem, 1.27vw, 1.3rem); line-height: 1.5; text-wrap: pretty; }
.gt-cta { display: inline-flex; align-items: center; justify-content: center; gap: 30px; min-width: 268px; min-height: 62px; padding: 16px 30px; border-radius: 999px; color: #fff; background: linear-gradient(165deg, color-mix(in srgb, var(--sff-red), #fff 8%), var(--sff-red) 70%); box-shadow: inset 0 1px 0 #ffffff30, 0 12px 24px #0003; font-size: .95rem; font-weight: 600; line-height: 1.4; letter-spacing: .16em; text-transform: uppercase; transition: transform .2s ease, box-shadow .2s ease; }
.gt-cta svg { width: 26px; height: 26px; stroke: currentColor; stroke-width: 1.5; fill: none; flex-shrink: 0; }
.gt-cta:hover { color: #fff; transform: translateY(-2px); box-shadow: inset 0 1px 0 #ffffff40, 0 14px 28px #0005; }
.gt-cta:focus-visible { outline: 3px solid var(--sff-light-blue); outline-offset: 6px; }
.gt-visual { position: absolute; z-index: 1; inset: 0 0 0 37%; overflow: hidden; pointer-events: none; }
.gt-mask-definition { position: absolute; }
.gt-landscape-frame { position: absolute; inset: -1px -1px -8px 0; clip-path: url(#gt-landscape-clip); mask-image: linear-gradient(90deg, transparent 1%, #000 36%); background: var(--sff-navy); }
.gt-landscape-frame::before { content: ""; position: absolute; z-index: 2; inset: 0; background: linear-gradient(90deg, var(--gt-night), transparent 35%), linear-gradient(0deg, color-mix(in srgb, var(--sff-navy) 65%, transparent), transparent 43%); }
.gt-landscape-frame::after { content: ""; position: absolute; inset: 0; z-index: 3; box-shadow: inset 0 -2px 0 var(--sff-light-blue); }
.gt-landscape { width: 100%; height: 100%; object-fit: cover; object-position: left 45%; opacity: .96; }
.gt-student { position: absolute; z-index: 4; display: block; width: 100%; max-width: none; height: 145%; max-height: none; object-fit: contain; object-position: center top; left: -11%; top: -1%; filter: drop-shadow(-15px 7px 16px #0004); mask-image: linear-gradient(#000 89%, transparent 100%); }
.gt-impact-grid { position: relative; z-index: 5; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin: -3px var(--gt-gutter) 0; }
.gt-impact {
  --gt-icon-accent: var(--gold);
  position: relative;
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  align-items: start;
  gap: 20px;
  min-width: 0;
  padding: 28px 26px 28px 24px;
  border: 2px solid transparent;
  border-radius: 21px;
  background:
    radial-gradient(ellipse at 0% 0%, color-mix(in srgb, var(--sff-navy), var(--sff-light-blue) 13%), transparent 52%) padding-box,
    linear-gradient(155deg, color-mix(in srgb, var(--sff-navy), #000 56%), var(--gt-night) 55%, color-mix(in srgb, var(--sff-navy), #000 18%)) padding-box,
    linear-gradient(130deg, #fff, var(--sff-light-blue) 18%, color-mix(in srgb, var(--sff-light-blue), #fff 70%) 49%, var(--sff-light-blue) 72%, #fff) border-box;
  box-shadow: 0 3px 5px color-mix(in srgb, var(--sff-light-blue) 70%, transparent), 0 0 19px color-mix(in srgb, var(--sff-light-blue) 28%, transparent), 0 14px 0 color-mix(in srgb, var(--sff-navy), #000 77%), 0 26px 30px #0008, inset 0 1px 13px color-mix(in srgb, var(--sff-light-blue) 23%, transparent);
}
.gt-impact::after { content: ""; position: absolute; inset: 2px; border-radius: 17px; pointer-events: none; box-shadow: inset 0 0 3px var(--sff-light-blue), inset 0 -9px 22px color-mix(in srgb, var(--sff-light-blue) 9%, transparent); }
.gt-partnerships { --gt-icon-accent: var(--sff-light-blue); }
.gt-communities { --gt-icon-accent: var(--sff-red); }
.gt-icon { position: relative; display: grid; place-items: center; width: 84px; height: 84px; margin-top: 3px; border-radius: 50%; border: 1px solid color-mix(in srgb, var(--gt-icon-accent), #fff 25%); background: radial-gradient(circle at 30% 20%, color-mix(in srgb, var(--gt-icon-accent), var(--sff-navy) 45%), color-mix(in srgb, var(--sff-navy), #000 60%) 78%); box-shadow: inset 0 2px 3px #ffffff65, inset 0 -5px 6px #0007, 0 9px 13px #0006, 0 0 0 3px color-mix(in srgb, var(--gt-icon-accent) 25%, transparent); }
.gt-icon img { display: block; width: 110%; max-width: none; height: 110%; object-fit: contain; filter: drop-shadow(0 5px 4px #0005); }
.gt-impact h3 { margin: 0 0 14px; color: #fff; line-height: 1.1; font-weight: 500; }
.gt-impact h3 strong { display: block; margin-bottom: 5px; font-family: var(--accent-font); font-size: clamp(2.5rem, 3.35vw, 3.9rem); font-weight: 550; line-height: 1; }
.gt-impact h3 span { display: block; color: var(--gt-copy); font-family: var(--default-font); font-size: clamp(.875rem, 1.14vw, 1.15rem); font-weight: 500; letter-spacing: .07em; text-transform: uppercase; line-height: 1.4; }
.gt-impact p { margin: 0; color: var(--gt-copy); font-size: 1rem; line-height: 1.5; text-wrap: pretty; }
@media (min-width: 1800px) { .gt-copy { width: 40%; } .gt-visual { left: 40%; } .gt-impact { gap: 24px; padding: 32px 30px; grid-template-columns: 92px minmax(0, 1fr); } .gt-icon { width: 92px; height: 92px; } }
@media (max-width: 1199px) {
  .gt-section { --gt-gutter: 32px; padding-bottom: 64px; }
  .gt-hero { min-height: 580px; }
  .gt-copy { width: 46%; padding-top: 46px; }
  .gt-copy h2 { font-size: clamp(3rem, 6.8vw, 5.25rem); }
  .gt-copy > p { font-size: 1.05rem; }
  .gt-overline { font-size: .8rem; gap: 17px; letter-spacing: .18em; }
  .gt-overline::before { width: 30px; }
  .gt-visual { left: 42%; }
  .gt-student { width: 112%; height: 133%; left: -14%; }
  .gt-impact-grid { gap: 20px; }
  .gt-impact { grid-template-columns: 1fr; gap: 20px; padding: 25px 22px; }
  .gt-icon { width: 75px; height: 75px; }
  .gt-impact h3 strong { font-size: 2.8rem; }
  .gt-impact h3 span { font-size: .9rem; letter-spacing: .045em; }
}
@media (max-width: 800px) {
  .gt-hero { display: flex; flex-direction: column; }
  .gt-copy { width: auto; max-width: 620px; margin-inline: var(--gt-gutter); padding: 42px 0 10px; }
  .gt-copy h2 { font-size: clamp(3.65rem, 10vw, 5.4rem); max-width: 620px; }
  .gt-copy > p { max-width: 590px; font-size: 1.1rem; }
  .gt-visual { position: relative; inset: auto; width: 100%; height: clamp(350px, 68vw, 515px); margin-top: 14px; }
  .gt-landscape-frame { inset: 0 -8% 0 0; }
  .gt-landscape-frame::before { background: linear-gradient(90deg, var(--gt-night), transparent 38%), linear-gradient(0deg, var(--gt-night), transparent 45%); }
  .gt-student { width: 100%; height: 141%; left: -8%; top: -1%; }
  .gt-impact-grid { grid-template-columns: 1fr; margin-top: -16px; gap: 31px; }
  .gt-impact { grid-template-columns: 88px minmax(0, 1fr); gap: 25px; padding: 27px; }
  .gt-icon { width: 88px; height: 88px; }
  .gt-impact h3 strong { font-size: 3rem; }
  .gt-impact h3 span { font-size: 1rem; }
}
@media (max-width: 480px) {
  .gt-section { --gt-gutter: 20px; padding-bottom: 55px; }
  .gt-overline { font-size: .75rem; gap: 15px; letter-spacing: .15em; margin-bottom: 23px; }
  .gt-overline::before { width: 27px; }
  .gt-copy h2 { font-size: clamp(2.25rem, 12.5vw, 3.5rem); margin-bottom: 22px; }
  .gt-copy > p { font-size: 1rem; line-height: 1.55; margin-bottom: 24px; }
  .gt-cta { min-width: 230px; min-height: 58px; font-size: .875rem; }
  .gt-visual { height: 365px; margin-top: 15px; }
  .gt-landscape { object-position: 52% center; }
  .gt-student { width: 115%; max-width: none; left: -17%; height: 145%; }
  .gt-impact { grid-template-columns: 66px minmax(0, 1fr); gap: 18px; padding: 23px 20px; border-radius: 18px; }
  .gt-icon { width: 66px; height: 66px; margin-top: 4px; }
  .gt-impact-copy { display: contents; }
  .gt-impact h3 { margin: 0; align-self: center; }
  .gt-impact h3 strong { font-size: 2.7rem; }
  .gt-impact h3 span { font-size: .875rem; letter-spacing: .025em; }
  .gt-communities h3 strong { font-size: clamp(2rem, 10vw, 2.7rem); }
  .gt-impact p { grid-column: 1 / -1; font-size: 1rem; }
}
@media (prefers-reduced-motion: reduce) { .gt-cta { transition: none; } }
