/*
 * Gradespace Tutor · C · Bright Minds: rounded colour tiles with 2.5px ink
 * outlines, Fredoka headings over Nunito, a bento hero, a stage picker,
 * subject tiles in four rotating colours, seat squares on every group,
 * speech-bubble reviews, chunky accordions and a wavy footer edge. No
 * children's faces: adult hands, toys, pencils, flasks and adult tutors.
 */
body {
	--gstut-r: 30px; --gstut-r-sm: 18px; --gstut-r-btn: 999px; --gstut-sec: clamp(64px, 8vw, 100px);
	--ol: 2.5px solid var(--ink);
	--t1: var(--wp--preset--color--t-1); --on-t1: var(--wp--preset--color--on-t-1);
	--t2: var(--wp--preset--color--t-2); --on-t2: var(--wp--preset--color--on-t-2);
	--t3: var(--wp--preset--color--t-3); --on-t3: var(--wp--preset--color--on-t-3);
	--t4: var(--wp--preset--color--t-4); --on-t4: var(--wp--preset--color--on-t-4);
	font-size: 1.0625rem;
}
.gstut-sec { border-top: 0; }
.gstut-sec--tint { background: var(--tint); }

/* Type. */
.gstut-display, .gstut-h2, h1, h2, h3, h4 { font-family: var(--display); font-weight: 700; letter-spacing: -0.01em; }
.gstut-display { font-size: clamp(2.8rem, 1.3rem + 5vw, 5.375rem); line-height: 0.98; letter-spacing: -0.015em; }
.gstut-display mark { background: var(--t2); color: var(--on-t2); border-radius: 22px; padding: 0 16px; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.gstut-h2 { font-size: clamp(2.2rem, 1.4rem + 2.6vw, 3.5rem); line-height: 1.02; }
.gstut-lead { font-size: 1.15rem; }
.gstut-eyebrow, .gstut-kicker { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; min-height: 34px; padding: 0 14px; border: 2px solid var(--ink); border-radius: 999px; background: var(--surface); color: var(--ink); font: 700 0.875rem var(--body); letter-spacing: 0; text-transform: none; }
.gstut-eyebrow b { font-weight: 800; }
.gstut-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--t3); }
.gstut-kicker--deep { min-height: 0; padding: 0; border: 0; background: none; color: var(--accent-deep); font: 600 1.25rem var(--display); }

/* Buttons: pills with an ink outline and a chunky ink shadow. */
.wp-element-button, .wp-block-button__link, .gstu-btn, .gstut-btn, .gstut-finder__button { min-height: 54px; padding: 0 26px; border: var(--ol); border-radius: 999px; box-shadow: 0 5px 0 var(--ink); font: 700 1.0625rem var(--display); }
.wp-block-button__link:hover, .gstu-btn:hover, .gstut-btn:hover { transform: translateY(2px); box-shadow: 0 3px 0 var(--ink); background: var(--accent); color: var(--on-accent); border-color: var(--ink); }
.wp-block-button.is-style-outline .wp-block-button__link, .gstu-btn--secondary, .gstut-btn:not(.gstut-btn--primary), .gstu-btn--danger { background: var(--surface); color: var(--ink); border-color: var(--ink); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--surface); color: var(--ink); }
.gstu-lesson-type:not(.gstu-lesson-type--trial) .gstu-lesson-type__book .gstu-btn--primary { border-color: var(--ink); }
.gstut-chip { min-height: 44px; padding: 0 18px; border: var(--ol); border-radius: 999px; font: 700 0.95rem var(--display); }

/* Header: the holiday-coloured bar, the name, a pill of links. */
.gstut-notice { background: var(--t2); color: var(--on-t2); font-size: 0.94rem; font-weight: 800; }
.gstut-notice a { color: var(--on-t2) !important; }
.gstut-notice__inner { justify-content: center; min-height: 0; padding-block: 11px; }
.gstut-notice__term strong { font: 800 0.94rem var(--body); letter-spacing: 0; text-transform: none; color: var(--on-t2); }
.gstut-notice__term a::after { content: "→"; }
.gstut-notice__links { display: none; }
.gstut-header { background: var(--paper); border-bottom: 0; }
.gstut-header__inner { min-height: 104px; }
.gstut-brand { gap: 10px; }
.gstut-brand__name { font-size: 1.875rem; font-weight: 700; text-transform: lowercase; letter-spacing: 0; }
.gstut-brand__tag { font-size: 0.8125rem; font-weight: 800; letter-spacing: 0; text-transform: lowercase; }
@media (min-width: 1240px) {
	html:not(.gstut-tight) .gstut-nav .wp-block-navigation__container { gap: 4px; padding: 6px; border: var(--ol); border-radius: 999px; background: var(--surface); }
	html:not(.gstut-tight) .gstut-nav .wp-block-navigation-item__content { display: inline-flex; align-items: center; min-height: 42px; padding: 0 16px !important; border-radius: 999px; font: 600 1rem var(--display); }
	html:not(.gstut-tight) .gstut-nav .current-menu-item > .wp-block-navigation-item__content, html:not(.gstut-tight) .gstut-nav .wp-block-navigation-item__content[aria-current="page"] { background: var(--ink); color: var(--paper); }
}
.gstut-header__buttons .wp-block-button__link { min-height: 50px; }
.gstut-nav .wp-block-navigation__responsive-container-open, .gstut-nav .wp-block-navigation__responsive-container-close { border: var(--ol); border-radius: 50%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .gstu-nav-cta > .wp-block-navigation-item__content { border: var(--ol); border-radius: 999px; box-shadow: 0 5px 0 var(--ink); }

/* Tiles. */
.gstut-tile { position: relative; overflow: hidden; border: var(--ol); border-radius: 30px; background: var(--surface); }
.gstut-tile--photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gstut-tile--photo .wp-block-image { height: 100%; }
.gstut-tile--t1 { background: var(--t1); color: var(--on-t1); }
.gstut-tile--t2 { background: var(--t2); color: var(--on-t2); }
.gstut-tile--t3 { background: var(--t3); color: var(--on-t3); }
.gstut-tile--t4 { background: var(--t4); color: var(--on-t4); }
.gstut-tile p { margin: 0; }

/* The hero bento. */
.gstut-s-hero { padding-block: 12px 96px; }
.gstut-bento { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: 250px 250px 150px; gap: 18px; }
.gstut-bento__main { grid-column: 1 / 8; grid-row: 1 / 3; display: flex; flex-direction: column; justify-content: center; gap: 22px; padding: 52px 52px 44px; }
.gstut-bento__p1 { grid-column: 8 / 11; grid-row: 1 / 2; }
.gstut-bento__age { grid-column: 11 / 13; grid-row: 1 / 2; }
.gstut-bento__six { grid-column: 8 / 10; grid-row: 2 / 3; }
.gstut-bento__p2 { grid-column: 10 / 13; grid-row: 2 / 4; }
.gstut-bento__p3 { grid-column: 1 / 4; grid-row: 3 / 4; }
.gstut-bento__taster { grid-column: 4 / 10; grid-row: 3 / 4; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 34px; }
.gstut-bento__age, .gstut-bento__six { display: flex; flex-direction: column; justify-content: space-between; padding: 26px; }
.gstut-tile__big { font: 700 clamp(2.6rem, 2rem + 2vw, 4rem)/1 var(--display); }
.gstut-tile__small { font-weight: 800; line-height: 1.3; }
.gstut-bento__taster-text { display: flex; flex-direction: column; gap: 4px; font-weight: 700; }
.gstut-bento__taster-text strong { font: 700 1.875rem/1.1 var(--display); }
.gstut-bento__go a { display: flex; align-items: center; justify-content: center; flex: none; width: 64px; height: 64px; border-radius: 50%; background: var(--ink); color: var(--paper); font: 700 1.75rem var(--display); text-decoration: none; }

/* Section heads. */
.gstut-shead--row { align-items: flex-end; }
.gstut-shead .gstut-lead { color: var(--ink); }

/* The stage picker. */
.gstut-stages__tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 28px; }
.gstut-stage__btn { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 22px 24px; border: var(--ol); border-radius: 26px; background: var(--surface); color: var(--ink); font: 700 1.625rem var(--display); text-align: left; cursor: pointer; transition: transform 0.2s, box-shadow 0.2s; }
.gstut-stage__btn small { font: 700 0.94rem var(--body); }
.gstut-stage__btn[aria-selected="true"] { box-shadow: 0 6px 0 var(--ink); transform: translateY(-4px); }
.gstut-stage__btn--1[aria-selected="true"] { background: var(--t1); color: var(--on-t1); }
.gstut-stage__btn--2[aria-selected="true"] { background: var(--t2); color: var(--on-t2); }
.gstut-stage__btn--3[aria-selected="true"] { background: var(--t3); color: var(--on-t3); }
.gstut-stage__btn--4[aria-selected="true"] { background: var(--t4); color: var(--on-t4); }
.gstut-stages:not(.is-tabs) .gstut-stage + .gstut-stage { margin-top: 18px; }
.gstut-stages:not(.is-tabs) .gstut-stage__tab small { display: block; font-size: 1rem; }
.gstut-stage__panel { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); border: var(--ol); border-radius: 30px; background: var(--surface); overflow: hidden; }
.gstut-stage__panel[hidden] { display: none; }
.gstut-stage__text { display: flex; flex-direction: column; gap: 22px; padding: 48px; }
.gstut-stage__text p { margin: 0; color: var(--muted); font-size: 1.125rem; line-height: 1.65; }
.gstut-stage__h { margin: 0; font-size: clamp(1.8rem, 1.3rem + 1.4vw, 2.5rem); line-height: 1.05; }
.gstut-stage__photo { position: relative; border-left: var(--ol); min-height: 300px; }
.gstut-stage__photo .wp-block-image, .gstut-stage__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gstut-ticks--two li { font-size: 1rem; font-weight: 700; }
.gstut-ticks li::before { border-radius: 50%; width: 26px; height: 26px; background: var(--t2); color: var(--on-t2); font-size: 14px; }

/* Clubs and subjects: colour tiles with an icon. */
.gstut-subjects--tiles .gstu-subjects__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.gstut-subjects--tiles .gstu-subject { --tile: var(--t1); --on-tile: var(--on-t1); gap: 14px; min-height: 300px; padding: 30px; border: var(--ol); border-radius: 30px; background: var(--tile); color: var(--on-tile); }
.gstut-subjects--tiles .gstu-subject:nth-child(4n + 2) { --tile: var(--t2); --on-tile: var(--on-t2); }
.gstut-subjects--tiles .gstu-subject:nth-child(4n + 3) { --tile: var(--t3); --on-tile: var(--on-t3); }
.gstut-subjects--tiles .gstu-subject:nth-child(4n + 4) { --tile: var(--t4); --on-tile: var(--on-t4); }
.gstut-subjects--tiles .gstut-subject__icon { display: flex; align-items: center; justify-content: center; width: 64px; height: 64px; border: var(--ol); border-radius: 20px; background: var(--surface); color: var(--ink); }
.gstut-subjects--tiles .gstut-subject__icon::before { content: ""; width: 34px; height: 34px; background: currentColor; -webkit-mask: center / contain no-repeat; mask: center / contain no-repeat; }
.gstut-subjects--tiles .gstu-subject__name { font-size: 1.875rem; line-height: 1.05; color: var(--on-tile); }
.gstut-subjects--tiles .gstu-subject__text { color: var(--on-tile); font-size: 1.03rem; line-height: 1.55; font-weight: 600; }
.gstut-subjects--tiles .gstu-subject__meta { display: none; }
.gstut-subjects--tiles .gstut-subject { margin-top: auto; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px 12px; padding-top: 16px; font-size: 0.94rem; font-weight: 800; color: var(--on-tile); }
.gstut-subjects--tiles .gstut-subject__boards, .gstut-subjects--tiles .gstut-subject__modes { display: none; }
.gstut-subjects--tiles .gstut-subject__levels { color: var(--on-tile); }
.gstut-subjects--tiles .gstut-subject__days { padding: 6px 12px; border: 2px solid var(--ink); border-radius: 999px; background: var(--surface); color: var(--ink); }

/* Groups with a free seat. */
.gstut-sessions--tiles .gstu-sessions__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.gstut-sessions--tiles .gstu-session { --tile: var(--t1); --on-tile: var(--on-t1); gap: 14px; padding: 0 26px 26px; border: var(--ol); border-radius: 30px; overflow: hidden; }
.gstut-sessions--tiles .gstu-session[data-group="1"] { --tile: var(--t2); --on-tile: var(--on-t2); }
.gstut-sessions--tiles .gstu-session[data-group="2"] { --tile: var(--t3); --on-tile: var(--on-t3); }
.gstut-sessions--tiles .gstu-session[data-group="3"] { --tile: var(--t4); --on-tile: var(--on-t4); }
.gstut-sessions--tiles .gstut-session__head { margin: 0 -26px 10px; padding: 16px 26px; border-bottom: var(--ol); background: var(--tile); color: var(--on-tile); font: 600 1.375rem var(--display); text-transform: none; letter-spacing: 0; justify-content: flex-start; }
.gstut-sessions--tiles .gstut-session__date { color: var(--on-tile); font-size: 0.875rem; font-family: var(--body); font-weight: 800; margin-left: auto; order: 5; }
.gstut-sessions--tiles .gstut-session__day { display: none; }
.gstut-sessions--tiles .gstut-session__len::before { content: "· "; }
.gstut-sessions--tiles .gstu-session__name { font-size: 1.75rem; line-height: 1.05; }
.gstut-sessions--tiles .gstu-session__meta { font-weight: 700; font-size: 0.97rem; }
.gstut-sessions--tiles .gstut-seats { gap: 6px; }
.gstut-sessions--tiles .gstut-seats i { flex: none; width: 32px; height: 32px; max-width: none; border: var(--ol); border-radius: 11px; background: var(--surface); }
.gstut-sessions--tiles .gstut-seats i.is-taken { background: var(--ink); }
.gstut-sessions--tiles .gstut-session__left { font-size: 0.97rem; font-weight: 800; }
.gstut-sessions--tiles .gstu-session__book .gstu-btn { min-height: 48px; font-size: 1rem; }

/* What happens in a session. */
.gstut-session-grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 64px; align-items: center; }
.gstut-session__photo { height: 560px; }
.gstut-sticker { position: absolute; right: 24px; top: 24px; display: flex; align-items: center; justify-content: center; width: 124px; height: 124px; border: var(--ol); border-radius: 50%; background: var(--t2); color: var(--on-t2); font: 700 0.94rem/1.15 var(--display); text-align: center; transform: rotate(10deg); }
.gstut-session__text { display: flex; flex-direction: column; gap: 28px; }
.gstut-flow { display: flex; flex-direction: column; gap: 14px; }
.gstut-flow__step { display: flex; align-items: center; gap: 20px; padding: 18px 22px; border: var(--ol); border-radius: 24px; background: var(--surface); }
.gstut-flow__step p { margin: 0; }
.gstut-flow__n { flex: none; display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border: var(--ol); border-radius: 18px; background: var(--t1); color: var(--on-t1); font: 700 1.625rem var(--display); }
.gstut-flow__step:nth-child(2) .gstut-flow__n { background: var(--t2); color: var(--on-t2); }
.gstut-flow__step:nth-child(3) .gstut-flow__n { background: var(--t3); color: var(--on-t3); }
.gstut-flow__step:nth-child(4) .gstut-flow__n { background: var(--t4); color: var(--on-t4); }
.gstut-flow__t { flex: 1; display: flex; flex-direction: column; gap: 2px; color: var(--muted); font-weight: 600; }
.gstut-flow__t strong { font: 600 1.375rem var(--display); color: var(--ink); }
.gstut-flow__k { font-weight: 800; font-size: 0.875rem; white-space: nowrap; }

/* Meet the tutors. */
.gstut-tutors--tiles .gstu-tutor-card { --tile: var(--t1); align-items: center; padding: 0 22px 26px; border: var(--ol); border-radius: 30px; text-align: center; overflow: hidden; }
.gstut-tutors--tiles .gstu-tutors__item:nth-child(4n + 2) .gstu-tutor-card { --tile: var(--t2); --on-tile: var(--on-t2); }
.gstut-tutors--tiles .gstu-tutors__item:nth-child(4n + 3) .gstu-tutor-card { --tile: var(--t3); --on-tile: var(--on-t3); }
.gstut-tutors--tiles .gstu-tutors__item:nth-child(4n + 4) .gstu-tutor-card { --tile: var(--t4); --on-tile: var(--on-t4); }
.gstut-tutors--tiles .gstu-tutors__item:nth-child(4n + 1) .gstu-tutor-card { --on-tile: var(--on-t1); }
.gstut-tutors--tiles .gstu-tutor-card::before { content: ""; align-self: stretch; height: 96px; margin: 0 -22px; background: var(--tile); border-bottom: var(--ol); }
.gstut-tutors--tiles .gstu-tutor-card > * { margin-inline: 0; }
.gstut-tutors--tiles .gstu-tutor-card__photo { margin-top: -68px; border-radius: 50%; background: none; }
.gstut-tutors--tiles .gstu-tutor-card__photo img { width: 136px; height: 136px; aspect-ratio: 1; border: 4px solid var(--ink); border-radius: 50%; background: var(--surface); }
.gstut-tutors--tiles .gstu-tutor-card__name { margin-top: 14px; font-size: 1.5625rem; }
.gstut-tutors--tiles .gstu-tutor-card__role { font-weight: 700; font-size: 0.94rem; }
.gstut-tutors--tiles .gstut-card { align-items: center; padding: 0; gap: 12px; }
.gstut-tutors--tiles .gstut-card > :not(.gstut-card__note):not(.gstut-card__dbs) { display: none; }
.gstut-tutors--tiles .gstut-card__note { display: block; margin-top: 12px; padding: 6px 14px; border-radius: 999px; background: var(--tile); color: var(--on-tile); font-weight: 800; font-size: 0.875rem; }
.gstut-tutors--tiles .gstut-card__dbs { display: block; font-size: 0.875rem; font-weight: 700; }
.gstut-tutors--tiles .gstut-card__dbs::before { content: "✓ "; }

/* For parents: the dark band, rounded at the top, and the example lesson page. */
.gstut-s-parents { border-radius: 48px 48px 0 0; }
.gstut-parents__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: center; }
.gstut-parents__text { display: flex; flex-direction: column; gap: 24px; }
.gstut-sec--deep .gstut-h2, .gstut-sec--deep .gstut-lead, .gstut-sec--deep li { color: var(--on-deep); }
.gstut-ticks--tiles { flex-direction: column; font-size: 1.0625rem; font-weight: 700; }
.gstut-ticks--tiles li::before { width: 30px; height: 30px; background: var(--t3); color: var(--on-t3); }
.gstut-ticks--tiles li:nth-child(2)::before { background: var(--t1); color: var(--on-t1); }
.gstut-ticks--tiles li:nth-child(3)::before { background: var(--t4); color: var(--on-t4); }
.gstut-mock { display: flex; flex-direction: column; gap: 18px; padding: 30px; color: var(--ink); box-shadow: 12px 12px 0 var(--t2); overflow: visible; }
.gstut-mock__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.gstut-mock__who { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 0 12px; align-items: center; }
.gstut-mock__who strong { font: 600 1.375rem var(--display); }
.gstut-mock__who span:last-child { grid-column: 2; color: var(--muted); font-size: 0.875rem; font-weight: 700; }
.gstut-mock__av { grid-row: 1 / span 2; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 16px; background: var(--t4); color: var(--on-t4); font: 700 1.375rem var(--display); }
.gstut-mock__badge { padding: 6px 12px; border-radius: 999px; background: var(--t3); color: var(--on-t3); font-size: 0.8rem; font-weight: 800; white-space: nowrap; }
.gstut-mock__label { font-weight: 800; font-size: 0.875rem; }
.gstut-mock__rows { display: flex; flex-direction: column; gap: 0; padding: 4px 16px; border-radius: 20px; background: var(--tint); }
.gstut-mock__rows p { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 2px solid var(--surface); font-weight: 700; }
.gstut-mock__rows p:last-child { border-bottom: 0; }
.gstut-mock__rows span { color: var(--muted); }
.gstut-mock__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.gstut-mock__actions p { padding: 8px 14px; border: 2px solid var(--ink); border-radius: 999px; font-weight: 800; font-size: 0.875rem; }
.gstut-mock__actions p:first-child { background: var(--t2); color: var(--on-t2); }
.gstut-mock__note { color: var(--muted); font-size: 0.8rem; font-weight: 700; }
.gstut-s-parents .wp-block-button.is-style-outline .wp-block-button__link { box-shadow: 0 5px 0 var(--accent-deep); }

/* Simple prices on the dark band. */
.gstut-s-prices { padding-top: 0; background: var(--deep); }
.gstut-pricebox { display: flex; flex-direction: column; gap: 36px; padding: 56px; background: var(--paper); }
.gstut-lt--tiles .gstu-lesson-types__list { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.gstut-lt--tiles .gstu-lesson-type { --tile: var(--t1); --on-tile: var(--on-t1); gap: 12px; padding: 26px; border: var(--ol); border-radius: 26px; background: var(--tile); color: var(--on-tile); }
.gstut-lt--tiles .gstu-lesson-type:nth-child(4n + 2) { --tile: var(--t2); --on-tile: var(--on-t2); }
.gstut-lt--tiles .gstu-lesson-type:nth-child(4n + 3) { --tile: var(--t3); --on-tile: var(--on-t3); }
.gstut-lt--tiles .gstu-lesson-type:nth-child(4n + 4) { --tile: var(--t4); --on-tile: var(--on-t4); }
.gstut-lt--tiles .gstut-lt__top { order: -2; }
.gstut-lt--tiles .gstut-lt__kicker, .gstut-lt--tiles .gstut-lt__mode, .gstut-lt--tiles .gstut-lt__points { display: none; }
.gstut-lt--tiles .gstu-lesson-type__name { order: -1; font: 800 0.94rem var(--body); color: var(--on-tile); }
.gstut-lt--tiles .gstu-lesson-type__text { color: var(--on-tile); font-weight: 700; font-size: 0.97rem; line-height: 1.45; }
.gstut-lt--tiles .gstut-lt__foot { display: contents; }
.gstut-lt--tiles .gstut-lt__price { order: -1; }
.gstut-lt--tiles .gstut-lt__price strong { font: 700 3.25rem/1 var(--display); }
.gstut-lt--tiles .gstut-lt__price span { color: var(--on-tile); font-weight: 700; }
.gstut-lt--tiles .gstu-lesson-type__book { margin-top: auto; }
.gstut-lt--tiles .gstu-lesson-type__book .gstu-btn { width: 100%; min-height: 46px; background: var(--surface) !important; color: var(--ink) !important; border-color: var(--ink) !important; box-shadow: none; font-size: 1rem; }

/* Term dates and the half term. */
.gstut-terms { display: flex; flex-direction: column; gap: 16px; }
.gstut-term { --tile: var(--t1); --on-tile: var(--on-t1); display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; grid-template-areas: "name range badge" "name half badge"; align-items: center; gap: 2px 18px; padding: 18px 22px; border: var(--ol); border-radius: 24px; background: var(--surface); }
.gstut-term:nth-child(3n + 2) { --tile: var(--t2); --on-tile: var(--on-t2); }
.gstut-term:nth-child(3n + 3) { --tile: var(--t3); --on-tile: var(--on-t3); }
.gstut-term.is-now { background: var(--surface); border: var(--ol); }
.gstut-term__top { display: contents; }
.gstut-term__name { grid-area: name; display: flex; align-items: center; justify-content: center; min-height: 56px; border: var(--ol); border-radius: 18px; background: var(--tile); color: var(--on-tile); font: 700 1.25rem var(--display); }
.gstut-term__badge { grid-area: badge; padding: 6px 12px; border: 2px solid var(--ink); border-radius: 999px; font-size: 0.84rem; font-weight: 800; }
.gstut-term.is-now .gstut-term__badge { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.gstut-term__rows { display: none; }
.gstut-term__range { grid-area: range; display: block; font: 600 1.375rem var(--display); }
.gstut-term__half { grid-area: half; display: block; color: var(--muted); font-weight: 700; font-size: 0.94rem; }
.gstut-halfterm { display: flex; flex-direction: column; gap: 18px; padding: 40px; }
.gstut-halfterm__k { font: 600 1.25rem var(--display); }
.gstut-halfterm__h { margin: 0; font-size: clamp(2rem, 1.6rem + 1.4vw, 2.875rem); line-height: 1; color: inherit; }
.gstut-halfterm__d { font-size: 1.125rem; font-weight: 700; line-height: 1.55; }

/* Speech-bubble reviews. */
.gstut-bubbles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; align-items: start; }
.gstut-bubble { display: flex; flex-direction: column; gap: 18px; }
.gstut-bubble p { margin: 0; }
.gstut-bubble__q { padding: 28px 30px; border: var(--ol); border-radius: 30px 30px 30px 8px; background: var(--t1); color: var(--on-t1); font: 600 1.3125rem/1.45 var(--display); }
.gstut-bubble--2 .gstut-bubble__q { background: var(--t2); color: var(--on-t2); }
.gstut-bubble--3 .gstut-bubble__q { background: var(--t3); color: var(--on-t3); }
.gstut-bubble__who { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 0 12px; align-items: center; padding-left: 20px; }
.gstut-bubble__who strong { grid-column: 2; }
.gstut-bubble__who span:last-child { grid-column: 2; font-weight: 700; font-size: 0.9rem; }
.gstut-review__av { grid-row: 1 / span 2; display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border: var(--ol); border-radius: 50%; background: var(--surface); font: 700 1rem var(--display); }

/* Say hello. */
.gstut-hello__card, .gstut-hello__next { display: flex; flex-direction: column; gap: 8px; padding: 26px; font-weight: 700; line-height: 1.5; }
.gstut-hello__name { font: 600 1.5rem var(--display); }
.gstut-numbered { list-style: none; counter-reset: gstut-n; margin: 6px 0 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.gstut-numbered li { counter-increment: gstut-n; display: flex; align-items: center; gap: 14px; }
.gstut-numbered li::before { content: counter(gstut-n); flex: none; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: var(--ol); border-radius: 14px; background: var(--t1); color: var(--on-t1); font: 700 1.125rem var(--display); }
.gstut-numbered li:nth-child(2)::before { background: var(--t2); color: var(--on-t2); }
.gstut-numbered li:nth-child(3)::before { background: var(--t3); color: var(--on-t3); }
.gstut-formcard { border: var(--ol); border-radius: 30px; padding: 40px; }

/* Forms. */
.gstu-input, .gstu-select, .gstu-textarea, .gstut-finder__select { min-height: 54px; padding: 0 18px; border: var(--ol); border-radius: 18px; font: 600 1rem var(--body); }
.gstu-textarea { padding: 14px 18px; }
.gstu-field__label, .gstu-fieldset__legend { font-size: 0.94rem; font-weight: 800; }
.gstu-choice { border: var(--ol); border-radius: 999px; }
.gstu-choice--card { border-radius: 20px; }
.gstu-choice--card:has(input:checked) { background: var(--t2); color: var(--on-t2); border-color: var(--ink); box-shadow: 0 4px 0 var(--ink); }
.gstu-note { border: 2px solid var(--ink); border-radius: 18px; background: var(--tint); }

/* Chunky accordions. */
.gstut-faq__list { display: flex; flex-direction: column; gap: 12px; border: 0; }
.gstut-faq__list .wp-block-details { padding: 0 26px; border: var(--ol); border-radius: 24px; background: var(--surface); }
.gstut-faq__list summary { min-height: 72px; padding: 0; font: 600 1.25rem var(--display); }
.gstut-faq__list summary::after { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: var(--t2); color: var(--on-t2); font: 700 1.25rem var(--display); }
.gstut-faq__list details > p { margin: 0 0 24px; font-weight: 600; }

/* Plugin blocks elsewhere. */
.gstu-tutor-card, .gstu-lesson-type, .gstu-package, .gstu-session, .gstut-term, .gstu-subject, .gstut-contactcard, .gstut-sidecard, .gstu-filters, .gstu-packages__buy, .gstu-manage, .gstu-place, .gstu-join, .gstut-matrix__table, .gstut-tweek__grid, .gstut-tt, .gstu-steps, .gstu-booking__step, .gstu-booking > .gstu-summary { border: var(--ol); }
.gstu-tutor-card, .gstu-lesson-type, .gstu-package, .gstu-session, .gstu-subject, .gstut-formcard, .gstut-contactcard, .gstut-sidecard, .gstu-booking__step, .gstu-packages__buy { border-radius: 30px; }
.gstut-tt { border-radius: 30px; }
.gstut-tt__slot::before { border-radius: 16px; border: 2px solid var(--ink); }
.gstut-g1 { --gstut-g: var(--t2); } .gstut-g2 { --gstut-g: var(--t3); } .gstut-g3 { --gstut-g: var(--t4); } .gstut-g4 { --gstut-g: var(--t1); }
.gstut-tt__when, .gstut-tt__what, .gstut-tt__meta { color: var(--ink); }
.gstut-g1 .gstut-tt__when, .gstut-g1 .gstut-tt__what, .gstut-g1 .gstut-tt__meta { color: var(--on-t2); }
.gstut-g2 .gstut-tt__when, .gstut-g2 .gstut-tt__what, .gstut-g2 .gstut-tt__meta { color: var(--on-t3); }
.gstut-g3 .gstut-tt__when, .gstut-g3 .gstut-tt__what, .gstut-g3 .gstut-tt__meta { color: var(--on-t4); }
.gstut-g4 .gstut-tt__when, .gstut-g4 .gstut-tt__what, .gstut-g4 .gstut-tt__meta { color: var(--on-t1); }
.gstut-tt__slot.gstut-dim .gstut-tt__when, .gstut-tt__slot.gstut-dim .gstut-tt__what, .gstut-tt__slot.gstut-dim .gstut-tt__meta { color: var(--ink); }
.gstu-package[data-best] { border: var(--ol); box-shadow: 0 6px 0 var(--ink); }
.gstut-pk__badge, .gstut-lt__mode, .gstut-term__badge { border-radius: 999px; }
.gstut-pk__buy { border: var(--ol); border-radius: 999px; }
.gstut-card__subjects li, .gstut-tsum__tags li { border-radius: 999px; }
.gstut-pagehead { background: var(--tint); border-bottom: 0; }
.gstut-thero { background: var(--tint); border-bottom: 0; }
.gstut-thero__photo img { border: var(--ol); border-radius: 30px; }
.gstut-tweek__cell { border-radius: 12px; }
.gstut-matrix__table th, .gstut-matrix__table td { border-color: var(--line); }
.gstut-steps__item { font-family: var(--display); }

/* Footer: a wavy top edge. */
.gstut-footer { position: relative; margin-top: 60px !important; padding-top: 56px; }
/* The wave: the same full path for -webkit-mask and mask (the mask copy had lost its last curve, so the wave stopped three-quarters across). */
.gstut-footer::before { content: ""; position: absolute; left: 0; right: 0; top: -59px; height: 60px; background: var(--deep); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 60V30C120 0 240 0 360 30S600 60 720 30S960 0 1080 30S1320 60 1440 30V60Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 60V30C120 0 240 0 360 30S600 60 720 30S960 0 1080 30S1320 60 1440 30V60Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.gstut-footer__name { font-weight: 700; font-size: 2rem; text-transform: lowercase; }
.gstut-footer__title { font: 600 1.1875rem var(--display); letter-spacing: 0; text-transform: none; color: var(--accent-deep); }
.gstut-footer__links { font-weight: 700; }
.gstut-footer__tag, .gstut-footer__contact, .gstut-footer__contact a, .gstut-footer__hours, .gstut-footer__bar, .gstut-footer__bar a, .gstut-footer__bar .gsc-legal-links { color: var(--on-deep); }
.gstut-footer__hours { font-family: var(--body); font-weight: 700; }

@media (max-width: 1100px) {
	.gstut-bento { grid-template-columns: repeat(6, minmax(0, 1fr)); grid-template-rows: auto 200px 200px 140px; }
	.gstut-bento__main { grid-column: 1 / -1; grid-row: 1; padding: 40px 32px; }
	.gstut-bento__p1 { grid-column: 1 / 4; grid-row: 2; }
	.gstut-bento__age { grid-column: 4 / 7; grid-row: 2; }
	.gstut-bento__six { grid-column: 1 / 3; grid-row: 3; }
	.gstut-bento__p2 { grid-column: 3 / 7; grid-row: 3; }
	.gstut-bento__p3 { display: none; }
	.gstut-bento__taster { grid-column: 1 / -1; grid-row: 4; }
	.gstut-subjects--tiles .gstu-subjects__list, .gstut-sessions--tiles .gstu-sessions__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gstut-lt--tiles .gstu-lesson-types__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gstut-session-grid, .gstut-parents__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
	.gstut-session__photo { height: 380px; }
	.gstut-stages__tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
	.gstut-stage__panel { grid-template-columns: minmax(0, 1fr); }
	.gstut-stage__photo { border-left: 0; border-top: var(--ol); min-height: 220px; }
	.gstut-stage__text { padding: 28px 24px; }
	.gstut-ticks--two { grid-template-columns: minmax(0, 1fr); }
	.gstut-bubbles { grid-template-columns: minmax(0, 1fr); }
	.gstut-pricebox { padding: 28px 20px; }
	.gstut-formcard { padding: 24px 18px; }
}
@media (max-width: 600px) {
	.gstut-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto 160px 160px auto; gap: 12px; }
	.gstut-bento__main { padding: 28px 20px; }
	.gstut-bento__p1 { grid-column: 1; }
	.gstut-bento__age { grid-column: 2; }
	.gstut-bento__six { grid-column: 1; }
	.gstut-bento__p2 { grid-column: 2; }
	.gstut-bento__taster { padding: 20px; }
	.gstut-bento__taster-text strong { font-size: 1.375rem; }
	.gstut-bento__go a { width: 52px; height: 52px; }
	.gstut-bento__age, .gstut-bento__six { padding: 18px; }
	.gstut-subjects--tiles .gstu-subjects__list, .gstut-sessions--tiles .gstu-sessions__list, .gstut-lt--tiles .gstu-lesson-types__list { grid-template-columns: minmax(0, 1fr); }
	.gstut-subjects--tiles .gstu-subject { min-height: 0; }
	.gstut-stages__tabs { gap: 10px; }
	.gstut-stage__btn { padding: 14px 16px; font-size: 1.25rem; }
	.gstut-flow__step { flex-wrap: wrap; gap: 12px; padding: 14px; }
	.gstut-flow__k { margin-left: 68px; }
	.gstut-term { grid-template-columns: 92px minmax(0, 1fr); grid-template-areas: "name range" "name half" "badge badge"; padding: 14px; }
	.gstut-term__badge { justify-self: start; margin-top: 8px; }
	.gstut-halfterm { padding: 26px 20px; }
	.gstut-mock { padding: 20px; box-shadow: 8px 8px 0 var(--t2); }
	.gstut-mock__top { flex-wrap: wrap; }
	.gstut-sessions--tiles .gstut-seats i { width: 26px; height: 26px; border-radius: 9px; }
}
/* Subject tile icons (book, sums, pencil, flask, star, speech bubble), in turn. */
.gstut-subjects--tiles .gstu-subject:nth-child(6n + 1) .gstut-subject__icon::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Cpath d='M6 8h9a3 3 0 0 1 3 3v17a3 3 0 0 0-3-3H6zM28 8h-9a3 3 0 0 0-3 3v17a3 3 0 0 1 3-3h9z' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Cpath d='M6 8h9a3 3 0 0 1 3 3v17a3 3 0 0 0-3-3H6zM28 8h-9a3 3 0 0 0-3 3v17a3 3 0 0 1 3-3h9z' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.gstut-subjects--tiles .gstu-subject:nth-child(6n + 2) .gstut-subject__icon::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Cpath d='M6 11h9M10.5 6.5v9M19 11h9M7 22l7 7M14 22l-7 7M19 23.5h9M19 27.5h9' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Cpath d='M6 11h9M10.5 6.5v9M19 11h9M7 22l7 7M14 22l-7 7M19 23.5h9M19 27.5h9' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.gstut-subjects--tiles .gstu-subject:nth-child(6n + 3) .gstut-subject__icon::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Cpath d='M7 27l4-1 15-15-3-3L8 23zM20 9l3 3' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Cpath d='M7 27l4-1 15-15-3-3L8 23zM20 9l3 3' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.gstut-subjects--tiles .gstu-subject:nth-child(6n + 4) .gstut-subject__icon::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Cpath d='M13 6v8l-6 12a2 2 0 0 0 2 3h16a2 2 0 0 0 2-3l-6-12V6M11 6h12M10 21h14' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Cpath d='M13 6v8l-6 12a2 2 0 0 0 2 3h16a2 2 0 0 0 2-3l-6-12V6M11 6h12M10 21h14' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.gstut-subjects--tiles .gstu-subject:nth-child(6n + 5) .gstut-subject__icon::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Cpath d='M17 5l3.5 7 7.5 1-5.5 5.5 1.5 7.5-7-3.5-7 3.5 1.5-7.5L6 13l7.5-1z' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Cpath d='M17 5l3.5 7 7.5 1-5.5 5.5 1.5 7.5-7-3.5-7 3.5 1.5-7.5L6 13l7.5-1z' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.gstut-subjects--tiles .gstu-subject:nth-child(6n + 6) .gstut-subject__icon::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Cpath d='M6 10h22v14H14l-6 5v-5H6z' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Cpath d='M6 10h22v14H14l-6 5v-5H6z' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
/* Text on the colour tiles follows the tile (the dark palette's light text doesn't). */
.gstut-tile a:not(.wp-block-button__link) { color: inherit; }
.gstut-tile .gstut-bento__go a { color: var(--paper); }
.gstu-choice--card:has(input:checked) .gstu-choice__meta, .gstu-choice--card:has(input:checked) .gstu-choice__desc { color: var(--on-t2); }
