/* Shared student review wall. Scoped to avoid changing surrounding page sections. */
.stories-section .eyebrow { color: var(--gold-dark); font-size: 11px; font-weight: 700; letter-spacing: .18em; margin-bottom: 18px; }
.stories-section { max-width: 1240px; margin: auto; padding: 75px 40px 65px; scroll-margin-top: 24px; }
.stories-section .section-intro { display: flex; justify-content: space-between; align-items: end; gap: 40px; margin-bottom: 38px; }
.stories-section .section-intro h2 { font-size: clamp(30px, 3vw, 41px); font-weight: 500; letter-spacing: -.025em; }
.stories-section .section-intro > p { font-size: 14px; max-width: 355px; color: var(--text-muted); }
.stories-section .reviews-wall { columns: 3; column-gap: 24px; }
.stories-section .review-card { break-inside: avoid; border: 1px solid #e2e3d9; border-radius: 17px; background: white; margin-bottom: 24px; overflow: hidden; box-shadow: 0 5px 24px #0f2d1f05; }
.stories-section .card-copy { padding: 26px 25px 23px; position: relative; }
.stories-section .school { display: inline-block; background: #eef3ed; border: 1px solid #dce7dc; color: var(--green-mid); border-radius: 30px; padding: 4px 12px; font-size: 11px; font-weight: 700; letter-spacing: .045em; }
.stories-section .quote-mark { position: absolute; right: 24px; top: 17px; font: 58px/1 Georgia, serif; color: #c9982a65; }
.stories-section .card-copy h3 { font-size: 23px; font-weight: 500; margin-top: 20px; }
.stories-section .card-copy blockquote { font-size: 14px; color: var(--text-mid); line-height: 1.8; margin-top: 15px; }
.stories-section .byline { font-size: 10px; color: var(--text-muted); margin-top: 17px; }
.stories-section .screenshot { display: block; margin: 0 12px 12px; border: 1px solid #eae9e3; border-radius: 9px; overflow: hidden; background: #f7f6f2; }
.stories-section .screenshot img { width: 100%; height: auto; }
.stories-section .expand { padding: 11px 13px; display: flex; justify-content: space-between; color: var(--green-mid); font-size: 11px; font-weight: 700; background: #f5f6f0; }
.stories-section .source-note { color: var(--text-muted); text-align: center; font-size: 12px; margin-top: 20px; }
.review-dialog { margin: auto; border: 0; border-radius: 12px; padding: 0; width: min(700px, 94vw); max-height: 92dvh; background: #fff; }
.review-dialog::backdrop { background: #08170fdc; }
.review-dialog .dialog-bar { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 14px 20px; position: sticky; top: 0; background: white; border-bottom: 1px solid #ddd; }
.review-dialog .dialog-bar h2 { font: 700 15px 'Lato', sans-serif; }
.review-dialog .dialog-bar button { background: var(--green-deep); color: white; padding: 9px 15px; border: 0; border-radius: 6px; cursor: pointer; }
.review-dialog > img { width: 100%; height: auto; }
.stories-section { background: #f7f6f2; }
.stories-section p, .stories-section h2, .stories-section h3, .stories-section blockquote { margin-bottom: 0; }
.stories-section .eyebrow { margin-bottom: 18px; }
.stories-section .stories-trustpilot { text-align: center; margin-top: 28px; }
.stories-section :focus-visible, .review-dialog :focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
@media (max-width: 950px) { .stories-section .reviews-wall { columns: 2; } }
@media (max-width: 620px) { .stories-section { padding: 44px 20px; } .stories-section .section-intro { display: block; margin-bottom: 28px; } .stories-section .section-intro > p { margin-top: 20px; } .stories-section .reviews-wall { columns: 1; } }
