/* Reading comfort: preserve heading sizes and the approved visual composition. */
/* Approved expandable trial steps: native keyboard/touch disclosure, closed initially. */
#trial .process-accordion{margin:30px 0;max-width:none}
#trial .process-accordion>li{display:block;margin:0;border-bottom:1px solid #ccdef0}
#trial .process-accordion>li:first-child{border-top:1px solid #ccdef0}
#trial .trial-step>summary{display:flex;align-items:center;justify-content:flex-start;gap:14px;padding:19px 0;list-style:none;cursor:pointer;min-height:72px}
#trial .trial-step>summary::-webkit-details-marker{display:none}
#trial .trial-step>summary::after,#trial .trial-step[open]>summary::after{content:none;display:none}
#trial .trial-step>summary:hover strong{color:var(--blue)}
#trial .trial-step>summary strong{flex:1;min-width:0;font-size:16px;line-height:1.55}
#trial .trial-step .process-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#fff;border:1px solid #c9dced;border-radius:11px}
#trial .trial-step .process-icon img{width:25px;height:25px}
#trial .trial-step-toggle{position:relative;width:24px;height:24px;flex-shrink:0;color:var(--blue);margin-left:auto}
#trial .trial-step-toggle::before,#trial .trial-step-toggle::after{content:'';position:absolute;left:5px;top:11px;width:14px;height:2px;background:currentColor}
#trial .trial-step-toggle::after{transform:rotate(90deg)}
#trial .trial-step[open] .trial-step-toggle::after{display:none}
#trial .trial-step>p{font-size:16px;line-height:1.75;color:var(--muted);margin:0;padding:0 12px 21px 54px}
@media(max-width:580px){#trial .trial-step>summary{gap:10px;padding:16px 0}#trial .trial-step>summary strong{font-size:15px}#trial .trial-step .process-icon{width:35px;height:35px}#trial .trial-step>p{font-size:15px;padding-left:45px;padding-right:0}}
.tutor-quality { margin-top: 48px; background: #e7f1fb; border: 1px solid #d7e5f2; border-radius: 18px; }
.tutor-quality > summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 30px 36px; list-style: none; cursor: pointer; }
.tutor-quality > summary::-webkit-details-marker { display: none; }
.tutor-quality > summary::after, .tutor-quality[open] > summary::after { content: none; display: none; }
.tutor-quality > summary:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; border-radius: 18px; }
.quality-summary-copy { display: grid; gap: 9px; }
.quality-summary-copy .eyebrow { margin: 0; }
.quality-title { font-size: 26px; font-weight: 600; line-height: 1.3; letter-spacing: -.6px; }
.quality-summary-description { font-size: 16px; font-weight: 400; line-height: 1.75; color: var(--muted); }
.quality-toggle { width: 32px; height: 32px; flex: 0 0 32px; position: relative; color: var(--blue); }
.quality-toggle::before, .quality-toggle::after { content: ''; position: absolute; background: currentColor; border-radius: 2px; }
.quality-toggle::before { width: 20px; height: 2px; top: 15px; left: 6px; }
.quality-toggle::after { width: 2px; height: 20px; top: 6px; left: 15px; }
.tutor-quality[open] .quality-toggle::after { display: none; }
.quality-content { border-top: 1px solid #c8daed; padding: 32px 36px 36px; }
.quality-intro { font-size: 18px; line-height: 1.75; max-width: 900px; margin: 0 0 36px; color: var(--muted); }
.quality-content h3 { font-size: 26px; line-height: 1.3; letter-spacing: -.6px; margin: 0 0 24px; }
.quality-content h4 { font-size: 18px; line-height: 1.5; margin: 0 0 10px; }
.quality-content p:not(.quality-intro) { font-size: 16px; line-height: 1.75; color: var(--muted); }
.quality-criteria-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; }
.quality-criteria-grid article { background: #fff; border: 1px solid #d7e5f2; border-radius: 12px; padding: 24px; }
.quality-number { display: block; color: var(--blue); font-size: 14px; font-weight: 600; margin-bottom: 12px; }
.quality-criteria-grid p { margin: 0; }
.quality-perspective { margin: 24px 0 36px; max-width: 900px; }
.quality-process { padding-top: 32px; border-top: 1px solid #c8daed; }
.quality-process ol { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 48px; padding-left: 24px; margin: 0 0 32px; }
.quality-process li { padding-left: 8px; }
.quality-process li::marker { color: var(--blue); font-weight: 600; }
.quality-process p { margin: 0; }
.university-backgrounds { border-top: 1px solid var(--line); margin-top: 40px; padding-top: 40px; }
.university-backgrounds h3 { font-size: 28px; line-height: 1.3; letter-spacing: -.6px; margin: 0 0 14px; }
.university-intro { font-size: 16px; color: var(--muted); margin: 0 0 24px; }
.university-logos { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 18px; }
.university-logos li { min-width: 0; padding: 24px 4px; }
.university-logo-frame { display: flex; align-items: center; justify-content: center; width: 100%; height: 72px; }
.university-logo { display: block; width: auto; max-width: 100%; max-height: 56px; height: auto; object-fit: contain; }

.university-logo-kings { max-height: 64px; }
@media (max-width: 1000px) {
  .university-logos { grid-template-columns: repeat(7,156px); overflow-x: auto; padding-bottom: 12px; scroll-snap-type: x proximity; }
  .university-logos li { scroll-snap-align: start; }
}
@media (max-width: 600px) {
  .university-logos { gap: 16px; }
  .university-logos li { padding: 20px 4px; }
  .university-logo { max-width: 100%; max-height: 54px; }
  .university-backgrounds h3 { font-size: 24px; }
}
@media (max-width: 800px) {
  .tutor-quality > summary { padding: 24px; gap: 16px; }
  .quality-title, .quality-content h3 { font-size: 23px; }
  .quality-content { padding: 24px; }
  .quality-criteria-grid, .quality-process ol { grid-template-columns: 1fr; }
  .quality-criteria-grid article { padding: 20px; }
}
.curriculum-lesson { margin: 32px 0 0; max-width: 540px; }
.curriculum-lesson-photo { display: block; width: 100%; height: auto; border-radius: 18px; }
.curriculum-lesson-card { position: relative; width: calc(100% - 32px); max-width: 340px; margin: -48px 16px 0 auto; padding: 20px; background: #fff; border: 1px solid #d7e5f3; border-radius: 14px; box-shadow: 0 12px 32px #17324710; }
.curriculum-lesson-label { display: block; font-size: 11px; font-weight: 700; letter-spacing: .7px; color: var(--blue); }
.curriculum-lesson-card h3 { font-size: 18px; line-height: 1.35; letter-spacing: -.4px; margin: 8px 0 10px; }
.curriculum-lesson-example { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 12px; }
.curriculum-lesson-example svg { display: block; width: 100%; height: auto; }
.curriculum-lesson-working p { font-size: 14px; line-height: 1.6; margin: 0 0 8px; color: var(--ink); }
.curriculum-lesson-working p:last-child { margin-bottom: 0; }
.curriculum-lesson-working strong { color: var(--blue); }
.curriculum-lesson-caption { display: block; border-top: 1px solid #e3edf6; padding-top: 10px; margin-top: 10px; font-size: 12px; line-height: 1.5; color: var(--muted); }
@media (max-width: 380px) { .curriculum-lesson-card { width: calc(100% - 16px); margin-right: 8px; padding: 16px; } }
.closing { padding: 64px 0; }
.closing > .wrap { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,360px); align-items:center; gap:clamp(32px,5vw,72px); }
.closing-copy { max-width:640px; }
.closing-copy .eyebrow { margin:0 0 18px; color:var(--ink); }
.closing .closing-copy h2 { font-size:clamp(32px,3.2vw,44px); line-height:1.16; letter-spacing:-1.3px; margin:0 0 22px; }
.closing-copy > p:not(.eyebrow) { font-size:18px; line-height:1.7; color:var(--muted); margin:0; max-width:580px; }
.closing-actions { justify-self:end; width:100%; max-width:360px; min-width:0; padding:24px; background:#fff; border:1px solid var(--line,#d5e1ed); border-radius:18px; }
.closing .closing-actions > .button { width:100%; min-height:56px; justify-content:space-between; gap:12px; padding:14px 16px; margin:0; text-align:left; }
.closing-conversation { display:grid; gap:10px; margin-top:22px; padding:0; border:0; }
.closing-conversation p { margin:0 0 2px; font-size:14px; color:var(--muted); line-height:1.5; }
.closing-conversation .closing-contact-option { display:grid; grid-template-columns:20px minmax(0,1fr) 16px; align-items:center; gap:10px; width:100%; min-height:50px; padding:12px; border:1px solid var(--line,#d5e1ed); border-radius:9px; background:#f7faff; font-size:15px; line-height:1.5; font-weight:600; color:var(--ink); text-decoration:none; }
.closing-contact-option svg { width:20px; height:20px; color:var(--blue); }
.closing-contact-option > span:last-child { justify-self:end; color:var(--blue); }
.closing-conversation .closing-contact-option:hover { background:#edf5ff; border-color:#96bbe8; }
.closing-contact-option:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
@media(max-width:800px) { .closing { padding:48px 0; } .closing > .wrap { grid-template-columns:1fr; gap:28px; } .closing-actions { justify-self:start; max-width:420px; } }
@media(max-width:380px) { .closing-actions { padding:18px; } }
.footer-legal { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.site-header #navigation { gap: 20px; }
.site-header #navigation > a { white-space: nowrap; }
@media (max-width: 1200px) {
  .site-header .header-inner { position: relative; flex-wrap: wrap; gap: 0; }
  .site-header .menu-toggle { display: flex; gap: 12px; align-items: center; background: none; border: 1px solid var(--line); border-radius: 6px; padding: 10px 14px; min-height: 44px; }
  .site-header #navigation { display: none; flex-direction: column; align-items: stretch; width: 100%; padding: 5px 0 22px; gap: 0; }
  .site-header #navigation.open { display: flex; }
  .site-header #navigation > a:not(.button) { padding: 12px 0; border-bottom: 1px solid var(--line); }
  .site-header #navigation > .button { margin-top: 16px; }
}
:root { --muted: #44596b; }
body { font-size: 18px; line-height: 1.75; }

/* Main reading copy. */
.hero .hero-description,
.journey-intro .trust-heading p,
.section-heading > p,
.student-types-heading > p,
.trial .trial-copy > p.trial-source-intro,
.programmes-intro > p,
.classroom-intro > p { font-size: 18px; line-height: 1.75; }
.hero .hero-description { max-width: 510px; }
.journey-intro .trust-heading p { max-width: 780px; }
.trial .trial-copy > p.trial-source-intro { max-width: none; }

/* Card copy and interactive controls stay comfortably legible on mobile too. */
.hero-benefits li,
.journey-benefit p,
.tutor > p:not(.subject),
.teacher-band p:not(.eyebrow),
.matching p,
.student-type > p,
.student-types-next > p,
.price-card > p:not(.rate-label):not(.eyebrow),
.price-card ul,
.package-content > p,
.pricing-foot,
.process strong, .process p,
.programme-links p,
.faq-list summary, .faq-list details p,
.confirmation p,
.acady-chat-body p { font-size: 16px; line-height: 1.75; }
.button, .button.small, .hero-actions .button, .price-card .button,
.form-actions .button, .classroom-actions .button,
.text-link, .teacher-band > a, .hero-actions .text-link, .classroom-actions .text-link,
nav > a:not(.button), .menu-toggle,
.profile-details summary, .packages > summary,
.package-controls button, .programme-learn-more,
.acady-chat > summary, .acady-chat-action { font-size: 16px; line-height: 1.5; }
.field label, .field input, .field select, .field textarea,
.currency-input select, .form-progress li,
.back-button, .plain-button, .curriculum-subjects a { font-size: 16px; }
.field input::placeholder, .field textarea::placeholder { font-size: 16px; color: var(--muted); }
.curriculum-subjects a { min-height: 44px; }
.hero-benefits li { line-height: 1.6; }
.hero-benefits li::before { top: 2px; }
.hero-actions { flex-wrap: wrap; }
.button { text-align: center; }

/* Supporting labels and captions: 14px instead of the previous 9–12px. */
.eyebrow, .hero .eyebrow, .teacher-band .eyebrow, .price-card .eyebrow,
.student-types-heading .eyebrow, .classroom-intro .eyebrow,
.subject, .tutor-image > span, .tutor-head > span,
.hero-proof a, .hero-proof small, .rating-number > span,
.hero-photo figcaption, .photo-note,
.review-origin, .slider-review-person > div > span, .review-page-count,
.review-source-links > a > span:first-child,
.student-type-photo > span, .student-types-next > p > span,
.rate-label, .price > small, .price > span:not(.price-amount),
.currency-picker > label, .currency-picker #currency-note, .currency-rate-source,
.source-note, .editor-note, dl,
.form-top, .form-help, .field small, .field-error, .error-summary,
.form-footnote, .privacy-note, .request-recap,
.programme-card > span, .curriculum-subject-block h4,
.programme-card .subject-coverage,
.journey-kicker, .journey-motion,
.classroom-wordmark > span, .classroom-demo-label,
.board-toolbar, .board-topic, .board-task, .lesson-replay-note,
.participant-name, .classroom-call-note,
.classroom-chapters button, .classroom-motion, .classroom-caption,
.classroom-home-link,
.site-footer p, .site-footer strong, .site-footer a:not(.brand),
.site-footer .ib-disclaimer, .footer-bottom,
.acady-chat-head p, .acady-chat-phone, .acady-chat-body .acady-chat-footnote {
  font-size: 14px; line-height: 1.6;
}
.footer-bottom a { font-size: 14px !important; }
.faq > div > p:last-child { font-size: 16px; }
.eyebrow, .hero .eyebrow, .price-card .eyebrow, .journey-kicker { letter-spacing: 1.2px; }
.board-question { font-size: 18px; line-height: 1.7; }
table { font-size: 16px; }
.pricing-foot, .footer-bottom { flex-wrap: wrap; }
.pricing-foot a { white-space: normal; }
.price-card > p:not(.rate-label):not(.eyebrow) { min-height: 9em; }
.photo-note { max-width: calc(100% - 24px); }
.photo-note p { flex: 1; }
.hero-tutor-faces { flex-shrink: 0; }
.hero h1 { margin-bottom: 42px; }
.hero-heading-intro { display: block; }
.hero-photo { padding-bottom: 36px; }
/* Anchor the card to the actual photo edge, independent of caption height. */
.hero-photo { display: grid; grid-template-columns: minmax(0,1fr); }
.hero-photo .photo-frame { grid-area: 1 / 1; }
.hero-photo .photo-note {
  grid-area: 1 / 1;
  position: relative;
  top: auto; bottom: auto; left: auto; right: auto;
  align-self: end; justify-self: end;
  margin-right: 20px;
  transform: translateY(50%);
  z-index: 1;
}
.hero-photo figcaption { grid-area: 2 / 1; margin-right: 300px; }
@media (min-width: 1101px) {
  .hero-copy { container-type: inline-size; }
  .hero-heading-intro { font-size: clamp(36px,8.9cqw,56px); line-height: 1.2; letter-spacing: -1.8px; white-space: nowrap; margin-bottom: 8px; }
}
@media (min-width: 801px) {
  .trial-grid { grid-template-columns: 1.12fr 1fr; gap: 48px; }
  .trial-copy { container-type: inline-size; }
  .trial .trial-copy > p.trial-source-intro,
  .trial-copy .process { max-width: calc(100% - 40px); }
  .trial-copy h2 { font-size: clamp(28px,6.5cqw,42px); line-height: 1.2; letter-spacing: -1.4px; white-space: nowrap; }
}
.journey-benefit p { color: var(--muted); }
.journey-kicker { flex-wrap: wrap; gap: 8px 18px; }
.board-topic, .lesson-replay-note { flex-wrap: wrap; }
.classroom-topbar { flex-wrap: wrap; }
.classroom-chapters button { overflow-wrap: normal; }

@media (min-width: 801px) and (max-width: 1100px) {
  .header-inner { gap: 22px; }
  nav { gap: 16px; }
  .price-card > p:not(.rate-label):not(.eyebrow) { min-height: 12em; }
  .programmes { grid-template-columns: 1fr; }
  .programmes-intro > p { max-width: 700px; }
  .hero-photo { padding-bottom: 0; }
  .hero-photo figcaption { margin: 62px 0 0; }
}
@media (max-width: 800px) {
  .price-card > p:not(.rate-label):not(.eyebrow) { min-height: 0; }
  .hero h1 { margin-bottom: 34px; }
  .hero-photo { padding-bottom: 0; }
  .hero-photo .photo-note { margin-right: 12px; }
  .hero-photo figcaption { margin: 62px 0 0; }
  .photo-note .note-arrow { display: none; }
  .form-top, .form-actions { flex-wrap: wrap; }
  .package-controls { flex-wrap: wrap; }
  .package-controls button { flex: 1 1 140px; }
}
@media (max-width: 580px) {
  /* Full-width biographies avoid squeezed columns beside the tutor photos. */
  .tutor { display: block; }
  .tutor-image { aspect-ratio: 1.2; }
  .tutor-image > span { width: auto; max-width: 100%; }
  .tutor-head { margin-top: 20px; }
  .tutor > p:not(.subject) { margin-bottom: 18px; }
  .classroom-caption { margin-top: 16px; min-height: 0; max-width: none; }
  .classroom-demo-label { font-size: 14px; }
  .lesson-replay-note .replay-rule { display: none; }
  .board-question { font-size: 16px; }
  .hero .eyebrow { letter-spacing: .8px; }
  .photo-note { gap: 10px; right: 0; padding: 12px; }
  .site-footer { grid-template-columns: 1fr; }
}

/* Approved trial section promoted from the founder feedback version. */
#trial .trial-copy h2 { white-space:normal; font-size:clamp(32px,3.2vw,44px); }
#trial .trial-copy h2 em { color:var(--blue); }
#trial .trial-copy > p.trial-source-intro { max-width:calc(100% - 32px); }
#trial .trial-conversation { max-width:calc(100% - 32px); font-size:16px; line-height:1.7; margin:28px 0 16px; }
#trial .trial-conversation a { display:inline-block; color:var(--ink); font-weight:600; text-underline-offset:4px; }
#trial .contact-note { margin-bottom:0; }
#trial { scroll-margin-top:24px; }
@media(max-width:800px) {
  #trial .trial-copy > p.trial-source-intro, #trial .trial-conversation { max-width:none; }
  #trial .trial-grid { gap:32px; }
}

/* Simplified trial forms across the site. */
#trial-form .field label{padding-left:0}#trial-form .field label::before{content:none;display:none}#trial-form .form-progress img,#trial-form .form-progress svg{display:none}#trial-form .form-progress span{margin-left:0}
@media(max-width:767px){#trial .trial-copy .trial-conversation,#trial .trial-copy .contact-note{display:none}}

/* Static homepage subject tiles. */
.curriculum-subjects .subject-tile{display:flex;align-items:center;min-height:44px;font:16px/1.5 var(--sans);color:#204f7c;background:#edf5fd;border:1px solid #d9e7f5;border-radius:7px;padding:7px 9px;overflow-wrap:anywhere;cursor:default}
.curriculum-subjects a.subject-tile{cursor:pointer}.curriculum-subjects a.subject-tile:hover,.curriculum-subjects a.subject-tile:focus-visible{background:#dbeafa;border-color:#a8c8e9}
@media(max-width:680px){.curriculum-subjects .subject-tile{padding:10px 11px}}


/* Quiet alternatives to the homepage trial request, including on small screens. */
#trial .trial-copy .trial-contact-options{display:block;max-width:100%;margin:24px 0 0;font-size:14px;line-height:1.6;color:var(--muted)}
#trial .trial-contact-prompt{display:block;margin-bottom:3px}
#trial .trial-contact-links{display:flex;flex-wrap:wrap;gap:2px 22px}
#trial .trial-contact-options a{display:inline-flex;align-items:center;gap:6px;min-height:32px;font-size:14px;font-weight:500;color:var(--ink);text-decoration:underline;text-decoration-color:#9bb7cf;text-underline-offset:4px}
#trial .trial-contact-options a:hover{color:var(--blue);text-decoration-color:currentColor}
#trial .trial-contact-options a:focus-visible{outline:2px solid var(--blue);outline-offset:4px;border-radius:2px}
