/* Partner page. Plain and editorial, but with enough structure and contrast to read easily. */
.pt-wrap { padding: 58px 0 100px; }
.pt-inner { max-width: 880px; margin: 0 auto; padding: 0 28px; }

/* Full-width divider that spans the reading column exactly. */
.pt-rule { border: 0; border-top: 1px solid var(--rule); margin: 50px 0; }

/* readable body copy, a touch brighter than the site's muted gray so a long read is comfortable */
.pt-body { font-size: 16.5px; line-height: 1.85; color: #c4c8d0; max-width: 660px; }
.pt-body + .pt-body { margin-top: 15px; }
.pt-body-sp { margin-top: 22px; }

/* Hero */
.pt-hero h1 { font-size: clamp(34px, 5vw, 46px); font-weight: 560; letter-spacing: -0.022em; margin: 0; color: var(--text); }
.pt-hero h1::after { content: ""; display: block; width: 54px; height: 3px; border-radius: 2px; background: var(--accent); margin-top: 20px; }
.pt-lead { font-size: 19px; line-height: 1.7; color: #d6d9df; max-width: 630px; margin: 24px 0 0; }
.pt-lead-2 { font-size: 16px; line-height: 1.8; color: var(--text-dim); max-width: 630px; margin: 16px 0 0; }
.pt-hero-btns { margin-top: 30px; display: flex; gap: 12px; flex-wrap: wrap; }

/* Sections */
.pt-section { scroll-margin-top: 92px; }
.pt-section h2 { font-size: 26px; font-weight: 560; letter-spacing: -0.015em; color: var(--text); margin: 0 0 18px; }
.pt-section h3 { color: var(--text); }

/* What we teach: filled cards so the blocks read as distinct */
.pt-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 26px; }
.pt-card { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 20px 22px; }
.pt-card h3 { font-size: 16px; font-weight: 600; margin: 0 0 8px; }
.pt-card p { margin: 0; font-size: 14.5px; line-height: 1.72; color: var(--text-dim); }

/* Event formats: a numbered editorial list */
.pt-formats { margin-top: 26px; }
.pt-format { display: grid; grid-template-columns: 46px 1fr; gap: 18px; align-items: start; padding: 20px 0; border-top: 1px solid var(--rule); }
.pt-format:first-child { border-top: 0; padding-top: 6px; }
.pt-format .num { font-size: 21px; font-weight: 600; color: var(--accent); font-variant-numeric: tabular-nums; line-height: 1.4; }
.pt-format h3 { font-size: 16.5px; font-weight: 600; margin: 0 0 5px; }
.pt-format p { margin: 0; font-size: 15px; line-height: 1.7; color: var(--text-dim); }

/* Contact form: a filled card that clearly stands apart */
.pt-form-card { margin-top: 26px; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 28px 28px 24px; }
.pt-form { display: flex; flex-direction: column; gap: 16px; }
.pt-frow { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.pt-form label { display: flex; flex-direction: column; gap: 7px; font-size: 13.5px; color: var(--text-dim); font-weight: 500; }
.pt-form input, .pt-form select, .pt-form textarea {
  width: 100%; padding: 11px 13px; font-size: 15px; color: var(--text);
  background: var(--bg); border: 1px solid var(--border-2); border-radius: 9px;
  font-family: inherit; transition: border-color .16s;
}
.pt-form input::placeholder, .pt-form textarea::placeholder { color: var(--text-faint); }
.pt-form input:focus, .pt-form select:focus, .pt-form textarea:focus { outline: none; border-color: var(--accent); }
.pt-form textarea { resize: vertical; min-height: 118px; line-height: 1.6; }
.pt-form button { align-self: flex-start; margin-top: 4px; }
.pt-form-note { margin: 2px 0 0; font-size: 12px; color: var(--text-faint); }
.pt-thanks h3 { font-size: 19px; margin: 0 0 8px; color: var(--text); }
.pt-thanks p { margin: 0; color: var(--text-dim); line-height: 1.7; }

@media (max-width: 620px) {
  .pt-grid, .pt-frow { grid-template-columns: 1fr; }
  .pt-format { grid-template-columns: 38px 1fr; gap: 12px; }
}
