.kap-school-session {
    max-width: none;
    margin: 0;
    padding: 0 18px 28px;
    font-size: 17px;
    line-height: 1.58;
}

body.single-kap_school_session .entry-header {
    display: none !important;
}

body.single-kap_school_session .entry-title,
body.single-kap_school_session .entry-meta,
body.single-kap_school_session .post-meta,
body.single-kap_school_session .post-header,
body.single-kap_school_session .single-post-header,
body.single-kap_school_session .post-meta-wrapper,
body.single-kap_school_session .entry-date,
body.single-kap_school_session .posted-on,
body.single-kap_school_session time.entry-date {
    display: none !important;
}

body.single-kap_school_session .entry-content {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

body.single-kap_school_session .entry-content-wrap,
body.single-kap_school_session .post-content,
body.single-kap_school_session .single-post-content,
body.single-kap_school_session .content-inner {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

body.single-kap_school_session main,
body.single-kap_school_session article,
body.single-kap_school_session .site-main,
body.single-kap_school_session .content-area,
body.single-kap_school_session .site-content,
body.single-kap_school_session .content-wrapper {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

.kap-session-branding {
    display: grid;
    place-items: center;
    margin: 0 0 22px;
    text-align: center;
}

.kap-session-branding a {
    display: inline-block;
    line-height: 0;
}

.kap-session-branding .kap-session-brand-image {
    width: auto;
    max-width: min(100%, 520px);
    height: auto;
    max-height: 160px;
    object-fit: contain;
}

.kap-icon {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
}

.kap-session-masthead {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 18px 28px;
    margin: 0 0 22px;
    padding: 0 0 2px;
}

.kap-session-heading {
    min-width: 0;
}

.kap-session-heading h1 {
    margin: 0 0 9px;
    color: #182c43;
    font-size: clamp(26px, 2.5vw, 34px);
    line-height: 1.15;
    letter-spacing: -.02em;
}

.kap-session-heading .kap-inspired {
    margin: 0;
    color: #4f6172;
    font-size: 18px;
    line-height: 1.45;
}

.kap-print-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: auto;
    min-height: 38px;
    padding: 6px 13px 6px 7px;
    border: 1px solid #cbd7e1;
    border-radius: 999px;
    background: #fff;
    color: #263746;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 4px;
}

.kap-print-button .kap-icon {
    width: 26px;
    height: 26px;
    padding: 5px;
    border-radius: 50%;
    background: #e9f4fc;
    color: #1372b8;
}

.kap-print-button:hover {
    border-color: #8fa9bd;
    background: #f7fafc;
}

.kap-session-lead {
    display: block;
    margin: 0 0 34px;
}

.kap-quick-look {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr);
    gap: 20px 28px;
    margin-top: 0;
    padding: 26px 28px;
    border: 1px solid #c9ddec;
    border-left: 5px solid #3972d5;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(31, 38, 48, .05);
}

.kap-question-main h2,
.kap-session-aim h3 {
    margin: 0 0 8px;
}

.kap-question-main h2 {
    color: #3972d5;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.kap-big-question {
    margin: 0;
    color: #1f2f43;
    font-size: clamp(20px, 1.75vw, 26px);
    font-weight: 800;
    line-height: 1.22;
}

/* Elementor building blocks for the Schools hub. */
.kap-featured-elementor {
    max-width: none;
    margin: 0;
    padding: clamp(22px, 3vw, 34px);
    border: 1px solid #d9e5ee;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(24, 67, 101, .08);
}

.kap-featured-kicker {
    display: block;
    margin-bottom: 8px;
    color: #3972d5;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.kap-featured-elementor h2 {
    margin: 0 0 12px;
    font-size: clamp(28px, 3vw, 40px);
    line-height: 1.15;
}

.kap-featured-question {
    margin: 0 0 20px;
    color: #344a5f;
    font-size: clamp(18px, 1.6vw, 22px);
    font-weight: 700;
    line-height: 1.45;
}

.kap-featured-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 26px;
    margin-bottom: 18px;
    color: #40566a;
    font-size: 15px;
}

.kap-featured-meta span {
    display: grid;
    gap: 2px;
}

.kap-featured-meta strong {
    color: #1f3549;
    font-size: 12px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.kap-featured-aim {
    margin: 0 0 22px;
    color: #4a5f72;
    font-size: 16px;
    line-height: 1.6;
}

.kap-featured-action {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border-radius: 9px;
    background: #2f9f57;
    color: #fff !important;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
}

.kap-featured-action:hover {
    background: #278b4b;
}

.kap-schools-archive {
    max-width: none;
    margin: 0;
}

.kap-schools-archive .kap-session-grid {
    margin-top: 20px;
}

.kap-quick-look dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-self: start;
    margin: 0;
}

.kap-quick-look dl div {
    display: grid;
    grid-template-rows: 20px auto;
    align-content: start;
    gap: 12px;
    min-height: 118px;
    padding: 18px 18px 16px;
    background: #f3f7fa;
}

.kap-quick-look dt,
.kap-quick-look dd {
    text-align: left;
}

.kap-quick-look dt {
    height: 20px;
    margin: 0;
    line-height: 20px;
}

.kap-quick-look dd {
    margin: 0;
    color: #33475a;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
    align-self: start;
}

.kap-session-aim {
    grid-column: 1 / -1;
    padding-top: 18px;
    border-top: 1px solid #e6edf2;
}

.kap-session-aim h3 {
    font-size: 19px;
}

.kap-session-aim p {
    max-width: 900px;
    margin: 0;
    color: #465767;
    font-size: 16px;
    line-height: 1.55;
}

.kap-before {
    padding: 28px 30px;
    background: #f8fafb;
    border: 1px solid #e5e9ed;
    border-radius: 14px;
}

.kap-before h2 {
    margin: 0 0 18px;
}

.kap-before h3 {
    margin: 18px 0 8px;
    font-size: 17px;
}

.kap-before-grid {
    display: grid;
    grid-template-columns: minmax(360px, 1.05fr) minmax(440px, .95fr);
    gap: 42px;
    align-items: start;
}

.kap-before-grid h3 {
    margin-top: 0;
    margin-bottom: 14px;
}

.kap-before ul {
    margin: 0;
    padding-left: 24px;
    columns: 1;
    list-style: disc outside;
}

.kap-before li {
    margin: 0 0 10px;
    break-inside: avoid;
    color: #2f4152;
    font-size: 16px;
    line-height: 1.6;
}

.kap-before li::marker {
    color: #3972d5;
}

.kap-download-buttons {
    gap: 10px;
    margin: 12px 0 10px;
}

.kap-resource-button {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    max-width: 360px;
    padding: 10px 14px;
    border: 1px solid #bfd3e4;
    border-radius: 9px;
    background: #fff;
    color: #175f9d !important;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.25;
    text-decoration: none;
}

.kap-resource-button:hover {
    border-color: #7eadd2;
    background: #edf6fd;
}

.kap-resource-links {
    margin: 8px 0 18px;
}

.kap-resource-links a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #244d6d;
    font-size: 14px;
    font-weight: 700;
    text-underline-offset: 3px;
}

.kap-resource-links .kap-icon {
    width: 16px;
    height: 16px;
}

.kap-resource-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.kap-resource-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #cfdae4;
    border-radius: 11px;
    background: #fff;
    color: #233b50 !important;
    text-decoration: none;
    box-shadow: 0 3px 10px rgba(31, 56, 78, .05);
}

.kap-resource-card:hover {
    border-color: #7eaed2;
    box-shadow: 0 5px 15px rgba(31, 56, 78, .1);
}

.kap-resource-preview {
    position: relative;
    display: grid;
    place-items: center;
    height: 112px;
    overflow: hidden;
    background: linear-gradient(135deg, #eaf3fa, #f6f9fb);
    color: #1769aa;
}

.kap-resource-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.kap-resource-preview > .kap-icon {
    width: 38px;
    height: 38px;
}

.kap-resource-preview small {
    position: absolute;
    right: 8px;
    bottom: 7px;
    padding: 3px 6px;
    border-radius: 5px;
    background: rgba(255, 255, 255, .92);
    color: #465b6e;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .05em;
}

.kap-resource-card-copy {
    display: grid;
    gap: 4px;
    padding: 12px 13px 13px;
}

.kap-resource-card-copy strong {
    overflow: hidden;
    font-size: 14px;
    line-height: 1.35;
    text-overflow: ellipsis;
}

.kap-resource-card-copy > span {
    color: #567085;
    font-size: 12px;
    font-weight: 700;
}

.kap-resource-web-links {
    margin-top: 14px;
}

.kap-resource-web-links a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #315d7d;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
}

.kap-resource-web-links a:hover {
    color: #174f7a;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kap-resource-web-links .kap-icon {
    width: 17px;
    height: 17px;
}

.kap-safety {
    border-left-width: 4px;
    border-radius: 8px;
}

.kap-safety p {
    margin-bottom: 0;
    color: #303f4d;
    line-height: 1.5;
}

.kap-video {
    display: grid;
    grid-template-columns: minmax(220px, .65fr) minmax(0, 1.35fr);
    gap: 26px;
    align-items: start;
    padding: 28px 30px;
    border: 1px solid #dce5ec;
    border-radius: 16px;
    background: #f5f8fa;
    color: #27394a;
}

.kap-video-heading {
    padding-top: 3px;
}

.kap-video-label {
    display: block;
    margin-bottom: 8px;
    color: #3972d5;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.kap-video h2 {
    margin: 0 0 10px;
    color: #172b40;
    font-size: clamp(23px, 2.5vw, 32px);
}

.kap-video-heading p {
    margin: 0;
    color: #536577;
    font-size: 15px;
    line-height: 1.55;
}

.kap-video-embed {
    margin: 0;
    overflow: hidden;
    border-radius: 11px;
    background: #111;
}

.kap-video-embed iframe,
.kap-video-embed video,
.kap-video-embed .wp-video,
.kap-video-embed .mejs-container {
    width: 100% !important;
    max-width: none !important;
}

.kap-video details {
    grid-column: 1 / -1;
    border: 1px solid #dbe4ea;
    background: #fff;
}

.kap-session-steps > h2 {
    margin: 0 0 10px;
    font-size: 30px;
}

.kap-session-step {
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 16px;
    padding: 22px 0;
    border-top: 1px solid #e0e7ed;
}

.kap-step-number {
    width: 38px;
    height: 38px;
    margin-top: 2px;
    background: #0877d1;
    font-size: 17px;
}

.kap-step-title {
    align-items: baseline;
}

.kap-step-title h3 {
    margin: 0 0 9px;
    font-size: 21px;
    line-height: 1.3;
}

.kap-step-title span {
    font-size: 14px;
}

.kap-step-copy {
    max-width: 930px;
    color: #435466;
    font-size: 17px;
    line-height: 1.65 !important;
}

.kap-step-copy p {
    margin: 0 0 10px;
    font-size: inherit !important;
    line-height: inherit !important;
}

.kap-teacher-contact {
    padding: 28px 30px;
    border: 1px solid #d8e6f0;
    border-radius: 16px;
    background: #f3f8fc;
}

.kap-contact-heading {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    margin-bottom: 20px;
}

.kap-contact-icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: #dfeefa;
    color: #1769aa;
}

.kap-contact-heading h2 {
    margin: 0 0 5px;
    font-size: 26px;
}

.kap-contact-heading p {
    margin: 0;
    color: #536577;
    line-height: 1.45;
}

.kap-teacher-contact form > label,
.kap-form-grid label,
.kap-photo-field label {
    color: #2f4152;
    font-size: 14px;
    font-weight: 800;
}

.kap-teacher-contact input,
.kap-teacher-contact textarea {
    min-height: 42px;
    padding: 9px 11px;
    border: 1px solid #b9cbd9;
    border-radius: 8px;
    background: #fff;
    color: #243647;
    font: inherit;
}

.kap-form-grid input {
    box-sizing: border-box;
    height: 42px !important;
    min-height: 42px !important;
    padding: 9px 11px !important;
    line-height: 22px !important;
}

.kap-teacher-contact textarea {
    min-height: 105px;
    line-height: 1.5;
    resize: vertical;
}

.kap-photo-field {
    margin-top: 14px;
    padding: 14px 16px;
    border: 1px solid #dde6ed;
    border-radius: 10px;
    background: #fff;
}

.kap-photo-field input {
    min-height: 0;
    margin-top: 7px;
    padding: 5px 0;
    border: 0;
}

.kap-photo-field .kap-help {
    margin: 7px 0 0;
}

.kap-permissions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 18px;
    margin: 16px 0;
}

.kap-permissions .kap-check {
    margin: 0;
    color: #4e6072;
    font-size: 15px;
    line-height: 1.5;
}

.kap-permissions input {
    width: 18px !important;
    height: 18px !important;
    min-height: 18px;
    margin: 2px 0 0 !important;
    padding: 0;
    flex: 0 0 18px;
}

.kap-permissions a {
    display: inline;
    margin-left: 3px;
    vertical-align: baseline;
}

.kap-submit-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: auto;
    min-height: 40px;
    padding: 9px 16px;
    border: 0;
    border-radius: 9px;
    background: #2f9f57;
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
}

.kap-submit-button:hover {
    background: #278b4b;
}

.kap-guest-fun {
    margin-top: 46px;
    padding-top: 32px;
}

@media (max-width: 800px) {
    .kap-quick-look,
    .kap-video {
        grid-template-columns: 1fr;
    }

    .kap-before ul {
        columns: 1;
    }

    .kap-before-grid {
        grid-template-columns: 1fr;
    }

    .kap-video details {
        grid-column: auto;
    }

    .kap-permissions {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .kap-school-session {
        padding: 0 8px 22px;
    }

    .kap-session-masthead {
        grid-template-columns: 1fr;
        align-items: flex-start;
    }

    .kap-print-button {
        grid-row: 2;
        margin: 0;
    }

    .kap-session-heading h1 {
        font-size: 26px;
    }

    .kap-quick-look,
    .kap-before,
    .kap-video,
    .kap-teacher-contact {
        padding: 20px;
    }

    .kap-quick-look dl {
        grid-template-columns: 1fr;
    }

    .kap-resource-cards {
        grid-template-columns: 1fr;
    }

    .kap-session-step {
        grid-template-columns: 36px minmax(0, 1fr);
        gap: 11px;
    }

    .kap-step-number {
        width: 32px;
        height: 32px;
        font-size: 15px;
    }

    .kap-step-title {
        display: block;
    }
}

@media print {
    .kap-session-branding {
        margin-bottom: 14px;
    }

    .kap-session-branding .kap-session-brand-image {
        max-width: 360px;
        max-height: 100px;
    }

    .kap-print-button {
        display: none !important;
    }
}

/* v0.1.14: tighter teacher summary and reusable Schools-page archive. */
.kap-quick-look {
    grid-template-columns: minmax(0, 1.25fr) minmax(430px, 1fr);
    gap: 16px 24px;
    padding: 20px 24px;
}

.kap-quick-look dl {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.kap-quick-look dl div {
    grid-template-rows: auto auto;
    gap: 5px;
    min-height: 88px;
    padding: 13px 14px;
}

.kap-quick-look dt {
    height: auto;
    line-height: 1.25;
}

.kap-session-aim {
    padding-top: 14px;
}

.kap-before-ready,
.kap-before-resources {
    min-width: 0;
    align-self: start;
}

.kap-before-ready > h3,
.kap-before-resources > h3 {
    margin-top: 0 !important;
}

.kap-resource-web-links a {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: start;
    gap: 8px;
    width: fit-content;
    max-width: 100%;
}

.kap-resource-web-links .kap-icon {
    width: 17px;
    height: 17px;
    margin-top: 2px;
}

.kap-resource-web-links a > span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.kap-current-focus {
    margin-bottom: 44px;
}

.kap-current-focus > .kap-featured-kicker {
    margin-bottom: 5px;
}


.kap-archive-heading {
    max-width: 780px;
    margin: 0 0 20px;
}

.kap-archive-heading h2 {
    margin: 0 0 7px;
    font-size: clamp(27px, 3vw, 34px);
}

.kap-archive-heading p {
    margin: 0;
    color: #526577;
    font-size: 16px;
    line-height: 1.55;
}

@media (max-width: 1000px) {
    .kap-quick-look {
        grid-template-columns: 1fr;
    }

    .kap-quick-look dl {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .kap-quick-look dl {
        grid-template-columns: 1fr;
    }

    .kap-quick-look dl div {
        min-height: 0;
    }
}

/* v0.1.15: when the Elementor current-focus block owns the archive, give the library a clear break below it. */
.kap-featured-elementor + .kap-schools-archive {
    margin-top: clamp(34px, 5vw, 58px);
}

/* v0.1.16: presentation polish for the Schools focus, teacher summary and session resources. */
.kap-featured-meta.kap-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 18px;
}

.kap-featured-meta.kap-meta span {
    display: inline-flex;
    width: auto;
    padding: 5px 9px;
    border-radius: 99px;
    background: var(--kap-pale, #edf7ff);
    color: var(--kap-deep, #0057a8);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}

.kap-quick-look {
    grid-template-columns: minmax(0, 1.08fr) minmax(500px, .92fr);
    align-items: start;
}

.kap-quick-look .kap-session-facts {
    align-items: stretch;
}

.kap-quick-look .kap-session-fact {
    display: flex;
    min-height: 82px;
    flex-direction: column;
    justify-content: flex-start;
    gap: 6px;
    padding: 13px 14px;
}

.kap-quick-look .kap-session-fact dt {
    min-height: 20px;
    line-height: 20px;
}

.kap-quick-look .kap-session-fact dd {
    margin: 0;
    align-self: flex-start;
    line-height: 1.35;
}

.kap-quick-look .kap-session-fact-duration dd,
.kap-quick-look .kap-session-fact-prep dd {
    white-space: nowrap;
}

.kap-before-resources {
    display: grid;
    grid-template-columns: minmax(210px, 1fr) minmax(190px, .8fr);
    column-gap: 28px;
    align-items: start;
}

.kap-before-resources > h3 {
    grid-column: 1 / -1;
}

.kap-before-resources .kap-resource-cards {
    grid-template-columns: 1fr;
    gap: 12px;
    margin: 0;
}

.kap-before-resources .kap-resource-web-links {
    display: grid;
    gap: 11px;
    align-content: start;
    margin: 2px 0 0;
}

.kap-before-resources .kap-resource-web-links a {
    width: 100%;
}

@media (max-width: 1000px) {
    .kap-quick-look {
        grid-template-columns: 1fr;
    }

    .kap-quick-look .kap-session-facts {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .kap-before-resources {
        grid-template-columns: 1fr;
        row-gap: 14px;
    }

    .kap-before-resources > h3 {
        grid-column: 1;
    }

    .kap-quick-look .kap-session-facts {
        grid-template-columns: 1fr;
    }

    .kap-quick-look .kap-session-fact-duration dd,
    .kap-quick-look .kap-session-fact-prep dd {
        white-space: normal;
    }
}



/* v0.1.17: dedicated, A4-friendly Print teacher notes presentation. */
@page {
    size: A4 portrait;
    margin: 12mm 13mm 14mm;
}

@media print {
    html,
    body {
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
        color: #172b40 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    #wpadminbar,
    header,
    footer,
    nav,
    .site-header,
    .site-footer,
    .elementor-location-header,
    .elementor-location-footer,
    .kap-print-button,
    .kap-teacher-contact,
    .kap-guest-fun,
    .kap-join-panel {
        display: none !important;
    }

    body.single-kap_school_session main,
    body.single-kap_school_session article,
    body.single-kap_school_session .site-main,
    body.single-kap_school_session .content-area,
    body.single-kap_school_session .site-content,
    body.single-kap_school_session .content-wrapper,
    body.single-kap_school_session .entry-content,
    body.single-kap_school_session .entry-content-wrap,
    body.single-kap_school_session .post-content,
    body.single-kap_school_session .single-post-content,
    body.single-kap_school_session .content-inner {
        width: auto !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .kap-school-session {
        width: 100% !important;
        max-width: 184mm !important;
        margin: 0 auto !important;
        padding: 0 !important;
        color: #172b40 !important;
        font-size: 10pt !important;
        line-height: 1.42 !important;
    }

    .kap-school-session a {
        color: #155f9b !important;
        text-decoration: none !important;
    }

    .kap-session-branding {
        display: block !important;
        margin: 0 0 5mm !important;
        text-align: left !important;
    }

    .kap-session-branding .kap-session-brand-image {
        width: auto !important;
        max-width: 72mm !important;
        max-height: 22mm !important;
    }

    .kap-session-masthead {
        display: block !important;
        margin: 0 0 5mm !important;
        padding: 0 0 4mm !important;
        border-bottom: 1px solid #d8e2e9 !important;
    }

    .kap-session-heading h1 {
        margin: 0 0 1.5mm !important;
        font-size: 19pt !important;
        line-height: 1.14 !important;
    }

    .kap-session-heading .kap-inspired {
        margin: 0 !important;
        font-size: 10pt !important;
        line-height: 1.3 !important;
    }

    .kap-session-lead {
        margin: 0 0 6mm !important;
    }

    .kap-quick-look {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 86mm !important;
        gap: 4mm 5mm !important;
        padding: 5mm !important;
        border: 1px solid #bfcfdb !important;
        border-left: 3px solid #3972d5 !important;
        border-radius: 3mm !important;
        box-shadow: none !important;
        background: #fff !important;
        break-inside: avoid;
    }

    .kap-question-main h2 {
        margin: 0 0 1mm !important;
        font-size: 8pt !important;
    }

    .kap-big-question {
        margin: 0 !important;
        font-size: 13pt !important;
        line-height: 1.22 !important;
    }

    .kap-quick-look .kap-session-facts {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 2mm !important;
        margin: 0 !important;
        align-self: start !important;
    }

    .kap-quick-look .kap-session-fact {
        display: block !important;
        min-height: 20mm !important;
        padding: 3mm !important;
        border-radius: 2mm !important;
        background: #f1f5f8 !important;
    }

    .kap-quick-look .kap-session-fact dt {
        min-height: 0 !important;
        height: auto !important;
        margin: 0 0 1.5mm !important;
        font-size: 6.8pt !important;
        line-height: 1.2 !important;
    }

    .kap-quick-look .kap-session-fact dd,
    .kap-quick-look .kap-session-fact-duration dd,
    .kap-quick-look .kap-session-fact-prep dd {
        margin: 0 !important;
        font-size: 8.5pt !important;
        line-height: 1.3 !important;
        white-space: normal !important;
    }

    .kap-session-aim {
        grid-column: 1 / -1 !important;
        padding-top: 3mm !important;
        border-top: 1px solid #e0e7ed !important;
    }

    .kap-session-aim h3 {
        margin: 0 0 1mm !important;
        font-size: 10pt !important;
    }

    .kap-session-aim p {
        max-width: none !important;
        margin: 0 !important;
        font-size: 9.3pt !important;
        line-height: 1.4 !important;
    }

    .kap-before {
        margin: 0 0 6mm !important;
        padding: 5mm !important;
        border: 1px solid #d5dfe6 !important;
        border-radius: 3mm !important;
        background: #f8fafb !important;
        box-shadow: none !important;
        break-inside: avoid;
    }

    .kap-before h2 {
        margin: 0 0 3mm !important;
        font-size: 14pt !important;
    }

    .kap-before h3 {
        margin: 0 0 2mm !important;
        font-size: 9.5pt !important;
    }

    .kap-before-grid {
        display: grid !important;
        grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr) !important;
        gap: 7mm !important;
        align-items: start !important;
    }

    .kap-before li {
        margin: 0 0 1.5mm !important;
        font-size: 9pt !important;
        line-height: 1.35 !important;
    }

    .kap-before-resources {
        display: grid !important;
        grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr) !important;
        column-gap: 4mm !important;
        align-items: start !important;
    }

    .kap-before-resources > h3 {
        grid-column: 1 / -1 !important;
    }

    .kap-before-resources .kap-resource-cards {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 2mm !important;
        margin: 0 !important;
    }

    .kap-resource-card {
        display: grid !important;
        grid-template-columns: 14mm minmax(0, 1fr) !important;
        align-items: center !important;
        min-height: 14mm !important;
        overflow: hidden !important;
        border: 1px solid #cdd9e2 !important;
        border-radius: 2mm !important;
        box-shadow: none !important;
        background: #fff !important;
        break-inside: avoid;
    }

    .kap-resource-preview {
        width: 14mm !important;
        height: 14mm !important;
        background: #edf4f9 !important;
    }

    .kap-resource-preview > .kap-icon {
        width: 6mm !important;
        height: 6mm !important;
    }

    .kap-resource-preview small {
        display: none !important;
    }

    .kap-resource-card-copy {
        gap: .5mm !important;
        padding: 2mm 2.5mm !important;
    }

    .kap-resource-card-copy strong {
        font-size: 8.5pt !important;
        line-height: 1.25 !important;
    }

    .kap-resource-card-copy > span {
        font-size: 7pt !important;
    }

    .kap-before-resources .kap-resource-web-links {
        display: grid !important;
        gap: 2mm !important;
        margin: 0 !important;
    }

    .kap-before-resources .kap-resource-web-links a {
        display: grid !important;
        grid-template-columns: 4mm minmax(0, 1fr) !important;
        gap: 1.5mm !important;
        width: 100% !important;
        font-size: 8.5pt !important;
        line-height: 1.25 !important;
    }

    .kap-resource-web-links .kap-icon {
        width: 4mm !important;
        height: 4mm !important;
        margin: 0 !important;
    }

    .kap-safety {
        margin-top: 4mm !important;
        padding: 3mm 4mm !important;
        border-left: 3px solid #e5a400 !important;
        border-radius: 1.5mm !important;
        background: #fff8df !important;
        font-size: 8.7pt !important;
        break-inside: avoid;
    }

    .kap-safety p {
        margin: 1mm 0 0 !important;
        line-height: 1.35 !important;
    }

    .kap-video {
        display: block !important;
        margin: 0 0 6mm !important;
        padding: 4mm 5mm !important;
        border: 1px solid #d5dfe6 !important;
        border-radius: 3mm !important;
        background: #fff !important;
        color: #172b40 !important;
        box-shadow: none !important;
        break-inside: avoid;
    }

    .kap-video-label {
        margin-bottom: 1mm !important;
        font-size: 7pt !important;
    }

    .kap-video h2 {
        margin: 0 0 1.5mm !important;
        color: #172b40 !important;
        font-size: 13pt !important;
    }

    .kap-video-heading p {
        margin: 0 !important;
        font-size: 9pt !important;
        line-height: 1.4 !important;
    }

    .kap-video-embed,
    .kap-video details {
        display: none !important;
    }

    .kap-session-steps {
        margin: 0 !important;
    }

    .kap-session-steps > h2 {
        margin: 0 0 2mm !important;
        font-size: 16pt !important;
    }

    .kap-session-step {
        display: grid !important;
        grid-template-columns: 9mm minmax(0, 1fr) !important;
        gap: 3mm !important;
        padding: 4mm 0 !important;
        border-top: 1px solid #dfe6eb !important;
        break-inside: avoid;
    }

    .kap-step-number {
        width: 8mm !important;
        height: 8mm !important;
        margin-top: .5mm !important;
        font-size: 9pt !important;
    }

    .kap-step-title {
        display: flex !important;
        align-items: baseline !important;
        justify-content: space-between !important;
        gap: 4mm !important;
        break-after: avoid;
    }

    .kap-step-title h3 {
        margin: 0 0 1mm !important;
        font-size: 11pt !important;
        line-height: 1.25 !important;
    }

    .kap-step-title span {
        font-size: 8pt !important;
    }

    .kap-step-copy,
    .kap-step-copy p {
        margin: 0 0 1.2mm !important;
        color: #2f4152 !important;
        font-size: 9.2pt !important;
        line-height: 1.42 !important;
        orphans: 3;
        widows: 3;
    }

    .kap-connections {
        display: block !important;
        margin: 6mm 0 0 !important;
        padding: 4mm 5mm !important;
        border: 1px solid #d5dfe6 !important;
        border-radius: 3mm !important;
        background: #fff !important;
        color: #172b40 !important;
        break-inside: avoid;
    }

    .kap-connections h2,
    .kap-connections h3,
    .kap-connections .kap-eyebrow {
        color: #172b40 !important;
    }

    .kap-connections h2 {
        margin: 0 0 2mm !important;
        font-size: 14pt !important;
    }

    .kap-connections > div {
        margin-top: 3mm !important;
    }

    .kap-connections .kap-button {
        display: none !important;
    }
}

/* v0.1.18: replace the summary mini-cards with the same simple pills used elsewhere. */
.kap-quick-look {
    display: block;
    padding: 24px 28px;
}
.kap-session-fact-pills.kap-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 16px 0 0;
}
.kap-session-fact-pills.kap-meta span {
    display: inline-flex;
    width: auto;
    padding: 6px 10px;
    border-radius: 999px;
    background: var(--kap-pale, #edf7ff);
    color: var(--kap-deep, #0057a8);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
}
.kap-session-aim {
    margin-top: 20px;
    padding-top: 18px;
}
.kap-session-aim p:last-child { margin-bottom: 0; }
.kap-contact-prompt p:last-child { margin-bottom: 0; }

/* Dedicated print sheet. The on-screen session is deliberately not used for printing. */
.kap-print-sheet { display: none; }
@media print {
    @page { size: A4 portrait; margin: 14mm 15mm 16mm; }
    .kap-screen-session { display: none !important; }
    .kap-print-sheet {
        display: block !important;
        width: auto !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
        color: #172b40 !important;
        font-family: Arial, Helvetica, sans-serif !important;
        font-size: 10pt !important;
        line-height: 1.42 !important;
    }
    .kap-print-sheet * { box-sizing: border-box !important; }
    .kap-print-sheet h1,.kap-print-sheet h2,.kap-print-sheet h3,.kap-print-sheet p,.kap-print-sheet ul { color: #172b40 !important; }
    .kap-print-header { margin: 0 0 7mm !important; padding: 0 0 5mm !important; border-bottom: 2px solid #1769aa !important; }
    .kap-print-brand { margin: 0 0 2mm !important; color: #1769aa !important; font-size: 7.5pt !important; font-weight: 800 !important; letter-spacing: .08em !important; }
    .kap-print-header h1 { margin: 0 0 1.5mm !important; font-size: 22pt !important; line-height: 1.08 !important; }
    .kap-print-header p { margin: 0 !important; font-size: 9.5pt !important; }
    .kap-print-overview { margin: 0 0 7mm !important; padding: 0 0 6mm !important; border-bottom: 1px solid #d7e1e8 !important; }
    .kap-print-label { margin-bottom: 1mm !important; color: #3972d5 !important; font-size: 7.5pt !important; font-weight: 800 !important; letter-spacing: .06em !important; text-transform: uppercase !important; }
    .kap-print-overview > h2 { margin: 0 0 3mm !important; font-size: 14pt !important; line-height: 1.25 !important; }
    .kap-print-meta { display: flex !important; flex-wrap: wrap !important; gap: 2mm !important; margin: 0 0 4mm !important; }
    .kap-print-meta span { display: inline-block !important; padding: 1.5mm 2.5mm !important; border-radius: 10mm !important; background: #edf7ff !important; color: #0057a8 !important; font-size: 8pt !important; font-weight: 700 !important; }
    .kap-print-aim { margin-top: 4mm !important; }
    .kap-print-aim h3 { margin: 0 0 1mm !important; font-size: 10.5pt !important; }
    .kap-print-aim p { margin: 0 0 1.5mm !important; }
    .kap-print-section { margin: 0 0 7mm !important; }
    .kap-print-section > h2 { margin: 0 0 3mm !important; padding-bottom: 1.5mm !important; border-bottom: 1px solid #d7e1e8 !important; font-size: 15pt !important; line-height: 1.2 !important; }
    .kap-print-section h3 { margin: 3mm 0 1.5mm !important; font-size: 10.5pt !important; }
    .kap-print-section p { margin: 0 0 2mm !important; }
    .kap-print-section ul { margin: 0 0 3mm 5mm !important; padding: 0 !important; }
    .kap-print-section li { margin: 0 0 1.4mm !important; }
    .kap-print-resources { columns: 2 !important; column-gap: 8mm !important; }
    .kap-print-resources li { break-inside: avoid !important; }
    .kap-print-safety { margin-top: 4mm !important; padding: 3mm 4mm !important; border-left: 3px solid #e2a400 !important; background: #fff8df !important; break-inside: avoid !important; }
    .kap-print-safety h3 { margin-top: 0 !important; }
    .kap-print-step { padding: 3.5mm 0 !important; border-top: 1px solid #e2e8ed !important; break-inside: avoid !important; }
    .kap-print-step:first-of-type { border-top: 0 !important; }
    .kap-print-step h3 { display: flex !important; align-items: baseline !important; gap: 1.5mm !important; margin: 0 0 1.5mm !important; font-size: 11pt !important; }
    .kap-print-step h3 small { margin-left: auto !important; color: #536879 !important; font-size: 8pt !important; font-weight: 400 !important; }
    .kap-print-step p,.kap-print-step li { font-size: 9.4pt !important; line-height: 1.4 !important; }
    .kap-print-step ul { margin-bottom: 2mm !important; }
    .kap-print-footer { margin-top: 8mm !important; padding-top: 3mm !important; border-top: 1px solid #d7e1e8 !important; color: #647787 !important; font-size: 7.5pt !important; text-align: center !important; }
    .kap-print-sheet a { color: #172b40 !important; text-decoration: none !important; }
}
@media print {
    .kap-print-sheet header,
    .kap-print-sheet footer { display: block !important; }
}

/* v0.1.19: final print-polish pass for a tighter teacher handout. */
@media print {
    @page {
        size: A4 portrait;
        margin: 13mm 18mm 15mm;
    }

    .kap-print-sheet {
        max-width: 174mm !important;
        margin: 0 auto !important;
        font-size: 9.4pt !important;
        line-height: 1.34 !important;
    }

    .kap-print-header {
        margin: 0 0 5mm !important;
        padding: 0 0 3.5mm !important;
        border-bottom-width: 1.5px !important;
    }

    .kap-print-brand {
        margin: 0 0 1.4mm !important;
        font-size: 7pt !important;
        letter-spacing: .07em !important;
    }

    .kap-print-header h1 {
        margin: 0 0 1mm !important;
        font-size: 19.5pt !important;
        line-height: 1.08 !important;
    }

    .kap-print-header p {
        font-size: 8.8pt !important;
        line-height: 1.3 !important;
    }

    .kap-print-overview {
        margin: 0 0 5mm !important;
        padding: 0 0 4.5mm !important;
    }

    .kap-print-label {
        margin-bottom: .8mm !important;
        font-size: 7pt !important;
        letter-spacing: .055em !important;
    }

    .kap-print-overview > h2 {
        margin: 0 0 2.2mm !important;
        font-size: 12.7pt !important;
        line-height: 1.22 !important;
    }

    .kap-print-meta {
        gap: 1.4mm !important;
        margin: 0 0 2.8mm !important;
    }

    .kap-print-meta span {
        padding: 1mm 2mm !important;
        font-size: 7.2pt !important;
        line-height: 1.15 !important;
    }

    .kap-print-aim {
        margin-top: 2.8mm !important;
    }

    .kap-print-aim h3 {
        margin: 0 0 .7mm !important;
        font-size: 9.5pt !important;
    }

    .kap-print-aim p {
        margin: 0 0 1mm !important;
    }

    .kap-print-section {
        margin: 0 0 5mm !important;
    }

    .kap-print-section > h2 {
        margin: 0 0 2.2mm !important;
        padding-bottom: 1mm !important;
        font-size: 12.8pt !important;
        line-height: 1.16 !important;
        break-after: avoid-page !important;
        page-break-after: avoid !important;
    }

    .kap-print-section h3 {
        margin: 2.2mm 0 1mm !important;
        font-size: 9.6pt !important;
        line-height: 1.2 !important;
        break-after: avoid-page !important;
        page-break-after: avoid !important;
    }

    .kap-print-section p {
        margin: 0 0 1.35mm !important;
        font-size: 9.25pt !important;
        line-height: 1.34 !important;
    }

    .kap-print-section ul {
        margin: 0 0 2mm 4.5mm !important;
    }

    .kap-print-section li {
        margin: 0 0 .9mm !important;
        font-size: 9.15pt !important;
        line-height: 1.32 !important;
    }

    .kap-print-resources {
        columns: 2 !important;
        column-gap: 7mm !important;
        margin-bottom: 2.5mm !important;
    }

    .kap-print-resources li {
        margin-bottom: .7mm !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    .kap-print-safety {
        margin-top: 2.5mm !important;
        padding: 2.2mm 3mm !important;
        border-left-width: 2.5px !important;
        break-inside: avoid-page !important;
        page-break-inside: avoid !important;
    }

    .kap-print-safety h3 {
        margin: 0 0 .7mm !important;
        font-size: 9.5pt !important;
    }

    .kap-print-safety p:last-child {
        margin-bottom: 0 !important;
    }

    .kap-print-step {
        padding: 2.5mm 0 !important;
        break-inside: auto !important;
        page-break-inside: auto !important;
    }

    .kap-print-step h3 {
        gap: 1.2mm !important;
        margin: 0 0 1mm !important;
        font-size: 9.9pt !important;
        break-after: avoid-page !important;
        page-break-after: avoid !important;
    }

    .kap-print-step h3 small {
        font-size: 7.3pt !important;
    }

    .kap-print-step p,
    .kap-print-step li {
        font-size: 9.05pt !important;
        line-height: 1.33 !important;
    }

    .kap-print-step ul {
        margin-bottom: 1.4mm !important;
    }

    .kap-print-step > div > :first-child,
    .kap-print-section > h2 + h3,
    .kap-print-section > h2 + p,
    .kap-print-section > h2 + ul {
        break-before: avoid-page !important;
        page-break-before: avoid !important;
    }

    .kap-print-footer {
        margin-top: 5mm !important;
        padding-top: 2mm !important;
        font-size: 7pt !important;
    }
}
