/*
 * Dental ED public website
 *
 * Shared presentation layer for every local destination reached from the
 * public header, homepage and footer. All selectors are scoped to the public
 * shell so dashboard and study-club-management behaviour stays isolated.
 */

.dentaled-public-page {
    --de-home-navy: #0c2f4a;
    --de-home-navy-deep: #071f33;
    --de-home-blue: #155b86;
    --de-home-ink: #102b45;
    --de-home-muted: #465d6b;
    --de-home-line: #dfe6ea;
    --de-home-soft: #f4f6f7;
    --de-home-white: #fff;
    --de-home-heading: "Raleway", Arial, Helvetica, sans-serif;
    --de-home-sans: "Roboto", Arial, Helvetica, sans-serif;
    min-width: 320px;
    color: var(--de-home-ink);
    background: #fff;
    font-family: var(--de-home-sans);
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* Editorial composition is limited to public content destinations. Member
 * access and basket layouts retain their existing dimensions and treatment. */
.dentaled-public-page:not(.de-public-auth-page):not(.de-public-basket) {
    --de-public-gutter: clamp(20px, 4vw, 72px);
    --de-public-content-width: calc(100% - var(--de-public-gutter) * 2);
    --de-public-hero-surface: radial-gradient(ellipse at 90% 15%, rgba(21, 91, 134, 0.42), transparent 58%), linear-gradient(115deg, #071f33, #0c2f4a);
    --de-public-section-space: clamp(56px, 6vw, 100px);
}

.dentaled-public-page .page-wrapper {
    overflow: clip;
    background: #fff;
}

.dentaled-public-page .scrollToTop {
    right: 24px;
    bottom: 86px;
    color: #fff;
    border: 0;
    background: var(--de-home-navy);
    box-shadow: 0 10px 25px rgba(7, 31, 51, 0.2);
}

.dentaled-public-page .de-home-primary-nav a.is-current {
    color: var(--de-home-navy);
}

.dentaled-public-page .de-home-primary-nav a.is-current::after {
    right: 0;
    left: 0;
}

.de-public,
.de-public *,
.de-public *::before,
.de-public *::after {
    box-sizing: border-box;
}

.de-public {
    min-height: 52vh;
    color: var(--de-home-ink);
    background: #fff;
    font-weight: 400;
}

.de-public img {
    max-width: 100%;
}

.de-public a {
    color: var(--de-home-blue);
}

.de-public a:hover,
.de-public a:focus {
    color: var(--de-home-navy);
}

.dentaled-public-page:not(.de-public-auth-page):not(.de-public-basket) .de-public :is(a, button, input, select, textarea):focus-visible {
    outline: 2px solid #155b86;
    outline-offset: 4px;
}

.dentaled-public-page:not(.de-public-basket) .de-public-hero a:focus-visible {
    outline-color: #fff;
}

.de-public h1,
.de-public h2,
.de-public h3,
.de-public h4 {
    color: var(--de-home-ink);
    font-family: var(--de-home-heading);
    font-weight: 400;
    letter-spacing: -0.025em;
    text-transform: none;
}

.de-public p,
.de-public li,
.de-public dd,
.de-public dt {
    color: var(--de-home-muted);
    font-size: 16px;
    line-height: 1.72;
}

.de-public-shell {
    width: var(--de-public-content-width, min(1180px, calc(100% - 64px)));
    margin-right: auto;
    margin-left: auto;
}

/* Shared hero --------------------------------------------------------- */

.de-public-hero,
.de-public-study-club-detail .venue-title {
    --de-public-banner-height: 280px;
    --de-public-banner-padding: 36px;
    --de-public-banner-gutter: clamp(20px, 4vw, 72px);
    --de-public-banner-label-space: 31.2px;
    position: relative;
    overflow: hidden;
    margin: 0;
    color: #fff;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    background: radial-gradient(ellipse at 90% 15%, rgba(21, 91, 134, 0.42), transparent 58%), linear-gradient(115deg, #071f33, #0c2f4a);
}

.de-public-hero::after,
.de-public-study-club-detail .venue-title::after {
    position: absolute;
    right: -11%;
    bottom: -1px;
    width: 46%;
    height: 1px;
    content: "";
    background: rgba(255, 255, 255, 0.28);
    transform: rotate(-7deg);
    transform-origin: right bottom;
}

/* Every blue title banner shares the same geometry. Content can grow for
 * translated copy or long course names without being cropped on small screens. */
.de-public-hero-inner,
.de-public-study-club-detail .venue-title > .container {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: flex-start;
    min-height: var(--de-public-banner-height);
    padding-top: var(--de-public-banner-padding);
    padding-bottom: var(--de-public-banner-padding);
    flex-direction: column;
}

.de-public-hero > .de-public-shell,
.de-public-study-club-detail .venue-title > .container {
    width: calc(100% - var(--de-public-banner-gutter) * 2);
    margin-right: auto;
    margin-left: auto;
}

.de-public-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 17px;
    color: var(--de-home-blue);
    font-family: var(--de-home-heading);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.14em;
    line-height: 1.4;
    text-transform: uppercase;
}

.de-public-eyebrow::before {
    width: 23px;
    height: 1px;
    content: "";
    background: currentColor;
}

.de-public-hero .de-public-eyebrow {
    min-height: calc(var(--de-public-banner-label-space) - 13px);
    margin-bottom: 13px;
    color: rgba(255, 255, 255, 0.78);
}

.de-public-hero h1,
.de-public-study-club-detail .venue-title .page-title {
    max-width: 100%;
    margin: 0 0 14px;
    color: #fff;
    font-size: clamp(40px, 4.2vw, 56px);
    letter-spacing: -0.042em;
    line-height: 1.08;
    text-wrap: balance;
    overflow-wrap: anywhere;
}

.de-public-hero-inner > h1:first-child,
.de-public-study-club-detail .venue-title .page-title {
    margin-top: var(--de-public-banner-label-space);
}

.de-public-course-detail .de-public-hero h1,
.de-public-premium-detail:not(.de-public-premium-landing) .de-public-hero h1 {
    font-size: clamp(30px, 3vw, 42px);
}

.de-public-hero p {
    max-width: 800px;
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
    font-size: 17px;
    line-height: 1.6;
    text-wrap: pretty;
}

.de-public-hero-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 18px;
    margin-top: 28px;
}

.de-public-hero-support {
    color: rgba(255, 255, 255, 0.74);
    font-size: 14px;
}

.de-public-hero-support a {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Supporting study-club actions sit beside the directory so the shared blue
 * banner retains the same dimensions as the other public destinations. */
.de-public-hero-followup {
    padding: 22px 0;
    border-bottom: 1px solid var(--de-home-line);
    background: var(--de-home-soft);
}

.de-public-hero-followup .de-public-hero-actions {
    margin-top: 0;
}

.de-public-hero-followup .de-public-hero-support {
    color: var(--de-home-muted);
    overflow-wrap: anywhere;
}

.de-public-hero-followup .de-public-hero-support a {
    color: var(--de-home-blue);
}

/* Buttons and text links --------------------------------------------- */

.de-public-button,
.de-public .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 48px;
    padding: 12px 21px;
    color: var(--de-home-navy);
    border: 1px solid #cbd8df;
    border-radius: 999px;
    background: #fff;
    box-shadow: none;
    font-family: var(--de-home-sans);
    font-size: 14px;
    font-weight: 750;
    line-height: 1.35;
    text-decoration: none;
    text-shadow: none;
    transition: color 160ms ease, border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.de-public-button:hover,
.de-public-button:focus,
.de-public .btn:hover,
.de-public .btn:focus {
    color: var(--de-home-blue);
    border-color: #9fb5c2;
    outline: 0;
    background: #f9fbfc;
    box-shadow: 0 8px 20px rgba(12, 47, 74, 0.09);
    text-decoration: none;
    transform: translateY(-1px);
}

.de-public .de-public-button-primary,
.de-public .btn-default,
.de-public .btn-dark {
    color: #fff;
    border-color: var(--de-home-navy);
    background: var(--de-home-navy);
}

.de-public .de-public-button-primary:hover,
.de-public .de-public-button-primary:focus,
.de-public .btn-default:hover,
.de-public .btn-default:focus,
.de-public .btn-dark:hover,
.de-public .btn-dark:focus {
    color: #fff;
    border-color: #174866;
    background: #174866;
}

/* Retire the legacy cyan shutter overlay on buttons inside premium pages. */
.dentaled-public-page .de-public .hvr-shutter-out-horizontal::before {
    display: none !important;
    content: none !important;
}

.de-public-button-light {
    color: var(--de-home-navy);
    border-color: #fff;
    background: #fff;
}

.de-public-button-secondary {
    color: var(--de-home-navy);
    border-color: #cbd8df;
    background: #fff;
}

.de-public-button-block {
    width: 100%;
}

.de-public .btn-sm,
.de-public .btn-small {
    min-height: 42px;
    padding: 9px 17px;
    font-size: 14px;
}

.de-public .btn-lg {
    min-height: 52px;
    padding: 13px 23px;
    font-size: 15px;
}

.de-public .btn-danger {
    color: #a52b32;
    border-color: #ecc7ca;
    background: #fff7f7;
}

.de-public .btn-danger:hover,
.de-public .btn-danger:focus {
    color: #fff;
    border-color: #a52b32;
    background: #a52b32;
}

.de-public-text-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    padding-bottom: 4px;
    color: var(--de-home-navy) !important;
    border-bottom: 1px solid #aabac4;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none !important;
}

.de-public-text-link:hover,
.de-public-text-link:focus {
    color: var(--de-home-blue) !important;
    border-color: var(--de-home-blue);
}

.de-public-text-link i,
.de-public-button i {
    font-size: 0.88em;
    transition: transform 160ms ease;
}

.de-public-text-link:hover i,
.de-public-text-link:focus i,
.de-public-button:hover i,
.de-public-button:focus i {
    transform: translateX(3px);
}

/* Search and filter controls ----------------------------------------- */

.de-public-filter {
    padding: 27px 0 29px;
    border-bottom: 1px solid var(--de-home-line);
    background: #f4f7f8;
}

.de-public-filter-prominent {
    padding-top: 30px;
    padding-bottom: 30px;
}

.de-public-filter-form {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
    align-items: end;
    gap: 16px;
    max-width: 1100px;
    margin: 0;
}

.de-public-filter-form-compact {
    grid-template-columns: minmax(260px, 520px) auto;
    justify-content: start;
}

.de-public-filter-form-two {
    grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
    max-width: 980px;
}

.de-public-search-form {
    grid-template-columns: minmax(280px, 650px) auto;
    justify-content: center;
}

.de-public-filter-field {
    min-width: 0;
}

.dentaled-public-page .de-public-filter-field > label {
    display: block;
    margin: 0 0 8px;
    color: var(--de-home-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.4;
}

.de-public-filter .form-control,
.de-public input.form-control,
.de-public select.form-control,
.de-public textarea.form-control {
    width: 100%;
    height: 48px;
    padding: 11px 14px;
    color: #263f52;
    border: 1px solid #ccd7de;
    border-radius: 7px;
    outline: 0;
    background: #fff;
    box-shadow: none;
    font-family: var(--de-home-sans);
    font-size: 15px;
    line-height: 1.4;
    transition: border-color 150ms ease, box-shadow 150ms ease;
}

.de-public textarea.form-control {
    height: auto;
    min-height: 150px;
    resize: vertical !important;
}

.de-public .form-control:focus {
    border-color: #5c8eaa;
    box-shadow: 0 0 0 3px rgba(21, 91, 134, 0.11);
}

.de-public .form-control::placeholder {
    color: var(--de-home-muted);
    opacity: 1;
}

/* Main spacing and headings ----------------------------------------- */

.de-public-section {
    padding: var(--de-public-section-space, 78px) 0 var(--de-public-section-space, 86px);
    background: #fff;
}

.de-public-section-soft {
    border-top: 1px solid #e7ecef;
    background: var(--de-home-soft);
}

.de-public-section-heading {
    max-width: 760px;
    margin: 0 auto 40px;
    text-align: center;
}

.de-public-section-heading-left {
    max-width: 720px;
    margin-right: 0;
    margin-left: 0;
    text-align: left;
}

.de-public-section-heading .de-public-eyebrow::before {
    display: none;
}

.de-public-section-heading-left .de-public-eyebrow::before {
    display: block;
}

.de-public-section-heading h2,
.de-public-card-heading h2,
.de-public-subsection-heading h2,
.de-public-contact-card > h2,
.de-public-support-card h2,
.de-public-about-copy h2 {
    margin: 0 0 14px;
    color: var(--de-home-ink);
    font-size: clamp(32px, 3.5vw, 46px);
    line-height: 1.08;
    text-wrap: balance;
}

.de-public-section-heading p,
.de-public-card-heading p,
.de-public-support-card p {
    margin: 0;
    color: var(--de-home-muted);
    font-size: 17px;
    line-height: 1.7;
}

.de-public-subsection-heading {
    margin: 66px 0 26px;
    padding-top: 34px;
    border-top: 1px solid var(--de-home-line);
}

.de-public-section > .de-public-shell > .de-public-subsection-heading:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

.de-public-subsection-heading > span {
    display: block;
    margin-bottom: 8px;
    color: var(--de-home-blue);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.de-public-subsection-heading h2 {
    margin-bottom: 0;
    font-size: 34px;
}

.de-public-content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(250px, 300px);
    align-items: start;
    gap: clamp(30px, 4vw, 64px);
}

.de-public-results {
    min-width: 0;
}

/* Study club directory ------------------------------------------------ */

.de-public-program-downloads { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-bottom: 24px; }
.de-public-study-clubs .de-public-study-directory { padding: 28px 0 64px; }
.de-public-study-clubs .de-public-study-filter { max-width: none; margin-bottom: 24px; }
.de-public-study-introduction { margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--de-home-line); }
.de-public-study-introduction h2 { margin: 0 0 14px; font-size: 26px; }
.de-public-study-introduction p { max-width: 75ch; }

.de-public-venue-list,
.de-public-course-list,
.de-public-result-list {
    display: grid;
    gap: 18px;
}

.de-public-venue-card {
    display: grid;
    grid-template-columns: minmax(130px, 0.34fr) minmax(0, 1fr);
    min-height: 210px;
    overflow: hidden;
    border: 1px solid var(--de-home-line);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 4px 16px rgba(14, 41, 62, 0.035);
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.de-public-venue-card:hover {
    border-color: #c5d2d9;
    box-shadow: 0 16px 38px rgba(14, 41, 62, 0.09);
    transform: translateY(-2px);
}

.de-public-venue-logo {
    display: grid;
    min-height: 210px;
    padding: 26px;
    place-items: center;
    border-right: 1px solid #e7ecef;
    background: #f7f9fa;
}

.de-public-venue-logo img {
    display: block;
    width: 100%;
    max-height: 125px;
    object-fit: contain;
}

.de-public-venue-copy {
    display: flex;
    min-width: 0;
    padding: clamp(22px, 2vw, 30px);
    flex-direction: column;
}

.de-public-venue-copy h3 {
    margin: 0 0 11px;
    font-size: clamp(23px, 1.8vw, 28px);
    line-height: 1.2;
}

.de-public-venue-copy h3 a,
.de-public-course-copy h3 a,
.de-public-speaker-copy h2 a {
    color: var(--de-home-ink);
    text-decoration: none;
}

.de-public-venue-copy h3 a:hover,
.de-public-course-copy h3 a:hover,
.de-public-speaker-copy h2 a:hover {
    color: var(--de-home-blue);
}

.de-public-venue-copy p {
    margin: 0 0 18px;
    color: var(--de-home-muted);
    font-size: 15px;
    line-height: 1.68;
}

.de-public-venue-copy .de-public-text-link {
    margin-top: auto;
}

/* Courses ------------------------------------------------------------- */

.de-public-course-card {
    display: grid;
    grid-template-columns: minmax(270px, 0.65fr) minmax(0, 1.35fr);
    min-height: 300px;
    overflow: hidden;
    border: 1px solid var(--de-home-line);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 5px 22px rgba(14, 41, 62, 0.035);
}

.de-public-course-card.is-past {
    box-shadow: none;
}

.de-public-course-image {
    display: grid;
    min-height: 300px;
    overflow: hidden;
    place-items: center;
    background: #f3f5f6;
}

.de-public-course-image img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 380px;
    object-fit: contain;
    object-position: center;
    transition: opacity 220ms ease;
}

.de-public-course-card:hover .de-public-course-image img {
    opacity: 0.96;
}

.de-public-course-copy {
    display: flex;
    min-width: 0;
    padding: clamp(26px, 3vw, 44px);
    flex-direction: column;
}

.de-public-card-kicker {
    margin: 0 0 8px !important;
    color: var(--de-home-blue) !important;
    font-size: 13px !important;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1.4 !important;
    text-transform: uppercase;
}

.de-public-course-copy h3 {
    margin: 0 0 15px;
    max-width: 38ch;
    font-size: clamp(26px, 2.3vw, 34px);
    line-height: 1.2;
    text-wrap: pretty;
}

.de-public-course-meta {
    display: grid;
    gap: 8px;
    margin-bottom: 16px;
}

.de-public-course-meta > div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
}

.de-public-course-meta span:not(.de-public-status) {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #526675;
    font-size: 14px;
    font-weight: 650;
}

.de-public-course-meta span > i {
    color: #7a8c98;
}

.de-public-status {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 4px 9px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 750;
    line-height: 1.2;
}

.de-public-status.is-open {
    color: #216448;
    border-color: #b9dfcc;
    background: #eff9f3;
}

.de-public-status.is-info {
    color: #205e80;
    border-color: #bfd9e7;
    background: #f0f7fb;
}

.de-public-status.is-closed {
    color: #9b3036;
    border-color: #ecc8ca;
    background: #fff5f5;
}

.de-public-status.is-ended {
    color: #6a5b45;
    border-color: #e3d5be;
    background: #faf7f1;
}

.de-public-card-summary {
    max-width: 76ch;
    margin: 0 0 21px !important;
    color: var(--de-home-muted) !important;
    font-size: 15px !important;
    line-height: 1.68 !important;
}

.de-public-course-copy .de-public-text-link {
    margin-top: auto;
}

/* Speakers ------------------------------------------------------------ */

.de-public-speaker-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(20px, 2vw, 30px);
}

.de-public-speaker-card {
    display: flex;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--de-home-line);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 4px 16px rgba(14, 41, 62, 0.035);
    flex-direction: column;
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.de-public-speaker-card:hover {
    border-color: #c5d2d9;
    box-shadow: 0 16px 36px rgba(14, 41, 62, 0.09);
    transform: translateY(-2px);
}

.de-public-speaker-image {
    display: block;
    aspect-ratio: 1 / 1;
    max-height: 340px;
    overflow: hidden;
    background: #e1e6e9;
}

.de-public-speaker-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    transition: transform 300ms ease;
}

.de-public-speaker-card:hover .de-public-speaker-image img {
    transform: scale(1.018);
}

.de-public-speaker-copy {
    display: flex;
    padding: 24px;
    flex: 1;
    flex-direction: column;
}

.de-public-speaker-copy h2 {
    margin: 0 0 11px;
    font-size: clamp(23px, 1.8vw, 27px);
    line-height: 1.2;
}

.de-public-speaker-copy p {
    margin: 0 0 20px;
    color: var(--de-home-muted);
    font-size: 15px;
    line-height: 1.64;
}

.de-public-speaker-copy .de-public-text-link {
    margin-top: auto;
}

/* Empty states and pagination ---------------------------------------- */

.de-public-empty-state {
    display: grid;
    min-height: 280px;
    padding: 46px 28px;
    place-items: center;
    align-content: center;
    border: 1px solid var(--de-home-line);
    border-radius: 12px;
    background: #f8fafb;
    text-align: center;
}

.de-public-empty-state > i {
    margin-bottom: 18px;
    color: #8296a3;
    font-size: 28px;
}

.de-public-empty-state h2,
.de-public-empty-state h3 {
    margin: 0 0 8px;
    font-size: 27px;
}

.de-public-empty-state p {
    margin: 0;
    font-size: 15px;
}

.de-public-empty-state-small {
    min-height: 150px;
}

.de-public nav.text-center {
    margin-top: 38px;
}

.de-public .pagination {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 7px;
    margin: 0;
}

.de-public .pagination > li > a,
.de-public .pagination > li > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 42px;
    padding: 0 10px;
    color: #465d6d;
    border: 1px solid #d8e1e6;
    border-radius: 8px !important;
    background: #fff;
    font-size: 14px;
    font-weight: 700;
}

.de-public .pagination > li > a:hover,
.de-public .pagination > li > a:focus,
.de-public .pagination > .active > a,
.de-public .pagination > .active > a:hover,
.de-public .pagination > .active > a:focus {
    color: #fff;
    border-color: var(--de-home-navy);
    background: var(--de-home-navy);
}

/* Shared sidebar ------------------------------------------------------ */

.de-public-sidebar {
    min-width: 0;
}

.de-public .de-public-sidebar-block,
.de-public .de-public-sidebar-groups > [id$="-location"] {
    min-width: 0;
    margin: 0 0 20px;
    padding: 20px;
    border: 1px solid var(--de-home-line);
    border-radius: 12px;
    background: #fff;
}

.de-public .de-public-sidebar-block .de-public-sidebar-heading,
.de-public .de-public-speaker-contact .de-public-sidebar-heading {
    margin: 0 0 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid #e9eef1;
    color: var(--de-home-ink);
    font: 500 20px/1.3 var(--de-home-heading);
    letter-spacing: -0.02em;
}

.de-public .de-public-sidebar-block > :is(.separator, .separator-2),
.de-public .de-public-session-copy > .separator { display: none; }

.de-public .de-public-sidebar-block :is(p, li) {
    color: var(--de-home-muted);
    font-size: 14px;
    line-height: 1.55;
}

.de-public .de-public-session-card {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    align-items: start;
    gap: 6px 14px;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    text-align: left;
}

.de-public .de-public-session-image img {
    width: 64px;
    height: auto;
    object-fit: contain;
    border-radius: 8px;
}

.de-public .de-public-session-image { grid-row: 1 / 4; }
.de-public .de-public-sidebar-block .de-public-session-copy { display: contents; }
.de-public .de-public-sidebar-block .de-public-session-copy h3 { grid-column: 2; margin: 0; font: 500 17px/1.35 var(--de-home-heading); }
.de-public .de-public-session-copy h3 a { color: var(--de-home-ink); }
.de-public .de-public-session-copy .de-public-session-meta { grid-column: 2; margin: 0; font-size: 12px !important; }
.de-public .de-public-session-meta strong { font-weight: 500; }
.de-public .de-public-session-copy .de-public-session-title { grid-column: 1 / -1; margin: 8px 0 0; font-size: 13px !important; }

.de-public .de-public-sidebar-block .owl-carousel { margin: 0; border: 0; }
.de-public .de-public-sidebar-block .owl-controls { position: relative; min-height: 34px; margin-top: 16px; }
.de-public .de-public-sidebar-block .owl-buttons { position: static; width: auto; }
.de-public .de-public-sidebar-block .owl-buttons > div {
    top: 0;
    bottom: auto;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid var(--de-home-line);
    border-radius: 50%;
    background: #fff;
    font-size: 0;
}
.de-public .de-public-sidebar-block .owl-buttons > div::after { position: static; margin: 0; color: var(--de-home-blue); }
.de-public .de-public-sidebar-block .owl-pagination { display: flex; flex-wrap: wrap; justify-content: center; width: auto; margin: 0 36px; padding: 7px 0; }
.de-public .de-public-sidebar-block .owl-page span { width: 7px; height: 7px; margin: 5px; border: 0; background: #bccdd7; }
.de-public .de-public-sidebar-block .owl-page.active span { background: var(--de-home-blue); }

/* Compact workshop rows keep dates readable without nested card borders. */
.de-public .de-public-workshop-group { margin: 22px 0 14px; font: 700 12px/1.4 var(--de-home-sans); letter-spacing: .08em; text-transform: uppercase; color: #607480; }
.de-public .de-public-sidebar-heading + .separator-2 + .de-public-workshop-group { margin-top: 0; }
.de-public .de-public-workshop-list { display: grid; gap: 16px; }
.de-public .de-public-workshop-item {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 12px;
    margin: 0 !important;
    padding: 0 0 16px;
    overflow: visible;
    border: 0;
    border-bottom: 1px solid #e9eef1;
    border-radius: 0;
    background: transparent;
}
.de-public .de-public-workshop-item:last-child { padding-bottom: 0; border-bottom: 0; }
.de-public .de-public-workshop-item .media-left,
.de-public .de-public-workshop-item .media-body {
    display: block;
    width: auto;
    min-width: 0;
    padding: 0;
}
.de-public .de-public-workshop-item .media-object {
    width: 56px;
    height: auto;
    object-fit: contain;
    border-radius: 8px;
}
.de-public .de-public-workshop-copy .media-heading { margin: 0 0 8px; font: 500 15px/1.4 var(--de-home-sans); }
.de-public .de-public-workshop-copy .media-heading a { color: var(--de-home-ink); }
.de-public .de-public-workshop-copy .de-public-workshop-meta { margin: 0 0 9px; font-size: 12px !important; line-height: 1.55; }
.de-public .de-public-workshop-meta:last-child { margin-bottom: 0; }
.de-public .de-public-workshop-meta > span { display: flex; align-items: baseline; gap: 7px; }
.de-public .de-public-workshop-meta i { width: 12px; flex: 0 0 12px; color: #8094a0; text-align: center; }
.de-public .de-public-workshop-item > hr { display: none; }

.de-public .de-public-program-list,
.de-public .de-public-download-list { display: grid; gap: 9px; }
.de-public .de-public-program-link,
.de-public .de-public-download-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 12px 14px;
    color: var(--de-home-ink);
    border: 1px solid #e0e8ec;
    border-radius: 8px;
    background: #f7fafb;
    font: 500 13px/1.5 var(--de-home-sans);
    text-align: left;
    white-space: normal;
    text-decoration: none;
}
.de-public :is(.de-public-program-link, .de-public-download-link):is(:hover, :focus) { color: var(--de-home-ink); border-color: #aebfcc; background: #eef4f7; box-shadow: none; transform: none; }
.de-public :is(.de-public-program-link, .de-public-download-link) > i { position: static; flex: 0 0 20px; width: 20px; padding: 0; color: var(--de-home-blue); font-size: 17px; line-height: 1; text-align: center; }

.de-public .de-public-detail-sidebar .de-public-sidebar-stack { margin: 0; padding: 0; border: 0; background: transparent; }
.de-public .de-public-sidebar-groups { display: grid; gap: 20px; }
.de-public .de-public-sidebar-groups > .de-public-sidebar-block { margin: 0; }
.de-public .de-public-sidebar-groups > [id$="-location"] { margin: 0; }
.de-public .de-public-sidebar-groups > [id$="-location"]:empty { display: none; }
.de-public .de-public-sidebar-groups > [id$="-location"] h3 { margin: 0 0 14px; font-size: 20px; line-height: 1.3; }
.de-public .de-public-sidebar-groups::before,
.de-public .de-public-sidebar-groups::after { display: none; }
.de-public .de-public-course-info li,
.de-public .de-public-course-info li span { white-space: normal !important; vertical-align: baseline !important; }
.de-public .de-public-course-info li { display: grid; gap: 5px; }
.de-public .de-public-sidebar-speaker > img { display: block; width: 100%; height: auto; max-height: none; border-radius: 8px; object-fit: contain; }
.de-public .de-public-sidebar-speaker .text-justify { text-align: left; }
.de-public .de-public-sidebar-sponsors img { max-height: 130px; object-fit: contain; }

.de-public .de-public-share-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.de-public .de-public-share-actions .stButton { display: block !important; margin: 0; line-height: 1; }
.de-public .de-public-share-actions .stButton .stLarge {
    display: block;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    /* ShareThis shifts its legacy sprite on hover; these assets are single icons. */
    background-position: center !important;
    background-repeat: no-repeat;
    background-size: cover;
    opacity: 1;
    transition: filter 160ms ease, box-shadow 160ms ease;
}
.de-public .de-public-share-actions .stButton:hover .stLarge {
    opacity: 1;
    filter: brightness(.94);
    box-shadow: 0 3px 8px rgba(14, 41, 62, .14);
}
.de-public .de-public-premium-share > .de-public-share-card { margin: 0; padding: 0; border: 0; border-radius: 0; }

/* Contact and standard forms ----------------------------------------- */

.de-public-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
    align-items: start;
    gap: clamp(36px, 5vw, 70px);
}

.de-public-form-card,
.de-public-contact-card,
.de-public-support-card {
    border: 1px solid var(--de-home-line);
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 12px 36px rgba(14, 41, 62, 0.06);
}

.de-public-form-card {
    padding: 38px 42px 34px;
}

.de-public-card-heading {
    margin-bottom: 30px;
}

.de-public-card-heading .de-public-eyebrow {
    margin-bottom: 13px;
}

.de-public-card-heading h2 {
    font-size: 36px;
}

.de-public-contact-card {
    padding: 36px 32px;
}

.de-public-contact-card > h2 {
    margin-bottom: 29px;
    font-size: 31px;
}

.de-public-contact-item {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 14px;
    padding: 22px 0;
    border-top: 1px solid #e6ebee;
}

.de-public-contact-item > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    color: var(--de-home-blue);
    border: 1px solid #cfdee6;
    border-radius: 50%;
    background: #f3f8fa;
    font-size: 16px;
}

.de-public-contact-item strong {
    color: var(--de-home-ink);
    font-size: 14px;
}

.de-public-contact-item p {
    margin: 5px 0 0;
    font-size: 15px;
    line-height: 1.58;
    overflow-wrap: anywhere;
}

.de-public-contact-item p + p {
    margin-top: 9px;
}

.de-public-contact-item small {
    display: block;
    margin-top: 4px;
    color: #687985;
    font-size: 13px;
    line-height: 1.5;
}

.de-public-form-card .form-horizontal .form-group,
.de-public-standard-form .form-horizontal .form-group {
    display: grid;
    grid-template-columns: 145px minmax(0, 1fr);
    align-items: start;
    gap: 14px;
    margin: 0 0 18px;
}

.de-public-form-card .form-horizontal .form-group::before,
.de-public-form-card .form-horizontal .form-group::after,
.de-public-standard-form .form-horizontal .form-group::before,
.de-public-standard-form .form-horizontal .form-group::after {
    display: none;
    content: none;
}

.de-public-form-card .form-horizontal .form-group > [class*="col-sm-"],
.de-public-standard-form .form-horizontal .form-group > [class*="col-sm-"] {
    width: auto;
    margin: 0;
    padding: 0;
    float: none;
}

.de-public-form-card .form-horizontal .form-group > [class*="col-sm-offset-"],
.de-public-standard-form .form-horizontal .form-group > [class*="col-sm-offset-"] {
    grid-column: 2;
}

.de-public-form-card .form-horizontal .control-label,
.de-public-standard-form .form-horizontal .control-label {
    padding-top: 13px;
    color: #314a5d;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.45;
    text-align: left;
}

.de-public-form-card .form-horizontal .form-control-feedback,
.de-public-standard-form .form-horizontal .form-control-feedback {
    top: 5px;
    right: 10px;
    color: #8797a1;
}

.de-public .has-error .form-control {
    border-color: #bd454b;
    box-shadow: 0 0 0 3px rgba(189, 69, 75, 0.08);
}

.de-public .errorlist,
.de-public .help-block {
    margin: 7px 0 0;
    padding: 0;
    color: #a62d34;
    font-size: 14px;
    font-weight: 650;
    line-height: 1.5;
    list-style: none;
}

.de-public-map:empty,
.de-public-map #map-canvas:empty {
    display: none;
}

/* FAQ ---------------------------------------------------------------- */

.de-public-faq-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    align-items: start;
    gap: 58px;
}

.de-public-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0 0 24px;
    border: 0;
}

.de-public-tabs > li {
    margin: 0;
}

.de-public-tabs > li > a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 43px;
    margin: 0;
    padding: 10px 15px;
    color: #526675;
    border: 1px solid #d7e0e5;
    border-radius: 999px;
    background: #fff;
    font-size: 14px;
    font-weight: 700;
}

.de-public-tabs > li.active > a,
.de-public-tabs > li.active > a:hover,
.de-public-tabs > li.active > a:focus,
.de-public-tabs > li > a:hover,
.de-public-tabs > li > a:focus {
    color: #fff;
    border-color: var(--de-home-navy);
    background: var(--de-home-navy);
}

.de-public-tab-content {
    padding: 0;
    border: 0;
    box-shadow: none;
}

.de-public-accordion .panel {
    margin: 0 0 10px;
    overflow: hidden;
    border: 1px solid var(--de-home-line);
    border-radius: 9px;
    background: #fff;
    box-shadow: none;
}

.de-public-accordion .panel-heading {
    padding: 0;
    border: 0;
    background: #fff;
}

.de-public-accordion .panel-title > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-height: 60px;
    padding: 16px 19px;
    color: var(--de-home-ink);
    font-family: var(--de-home-sans);
    font-size: 16px;
    font-weight: 750;
    letter-spacing: 0;
    line-height: 1.45;
    text-decoration: none;
}

.de-public-accordion .panel-title > a > i {
    color: var(--de-home-blue);
    font-size: 13px;
    transition: transform 160ms ease;
}

.de-public-accordion .panel-title > a:not(.collapsed) > i {
    transform: rotate(45deg);
}

.de-public-accordion .panel-body {
    padding: 4px 19px 20px;
    color: var(--de-home-muted);
    border: 0 !important;
    font-size: 15px;
    line-height: 1.72;
}

.de-public-support-card {
    position: sticky;
    top: 104px;
    padding: 30px 27px;
}

.de-public-support-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin-bottom: 21px;
    color: var(--de-home-blue);
    border: 1px solid #cadee8;
    border-radius: 50%;
    background: #f2f7fa;
    font-size: 20px;
}

.de-public-support-card h2 {
    font-size: 29px;
}

.de-public-support-card p {
    margin-bottom: 22px;
    font-size: 15px;
}

/* Website search ------------------------------------------------------ */

.de-public-result-card {
    padding: 28px 30px;
    border: 1px solid var(--de-home-line);
    border-radius: 11px;
    background: #fff;
    box-shadow: 0 7px 22px rgba(14, 41, 62, 0.04);
}

.de-public-result-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 16px;
    margin-bottom: 11px;
}

.de-public-result-meta span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #687985;
    font-size: 13px;
    font-weight: 700;
}

.de-public-result-card h2 {
    margin: 0 0 12px;
    font-size: 26px;
    line-height: 1.25;
}

.de-public-result-description {
    margin-bottom: 19px;
    color: var(--de-home-muted);
    font-size: 15px;
    line-height: 1.68;
}

.de-public-result-description > :last-child {
    margin-bottom: 0;
}

/* About --------------------------------------------------------------- */

.de-public-about-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    align-items: center;
    gap: clamp(52px, 7vw, 92px);
}

.de-public-about-copy h2 {
    margin-bottom: 24px;
}

.de-public-rich-text,
.de-public-legal-document {
    color: var(--de-home-muted);
    font-size: 17px;
    line-height: 1.78;
}

.de-public-rich-text p,
.de-public-rich-text li,
.de-public-legal-document p,
.de-public-legal-document li {
    color: inherit;
    font-size: inherit;
    line-height: inherit;
}

.de-public-about-image {
    min-height: 500px;
    overflow: hidden;
    border-radius: 12px;
    background: #dce4e8;
    box-shadow: 0 22px 50px rgba(14, 41, 62, 0.12);
}

.de-public-about-image img {
    width: 100%;
    height: 100%;
    min-height: 500px;
    object-fit: cover;
}

.de-public-team-region + .de-public-team-region {
    margin-top: 62px;
}

.de-public-team-region .de-public-subsection-heading {
    margin-top: 0;
}

.de-public-team-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.de-public-team-card {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    min-height: 160px;
    overflow: hidden;
    border: 1px solid #dfe6ea;
    border-radius: 11px;
    background: #fff;
}

.de-public-team-image {
    display: grid;
    min-height: 160px;
    overflow: hidden;
    place-items: center;
    background: #e2e8eb;
}

.de-public-team-image img {
    width: 100%;
    height: 100%;
    min-height: 160px;
    object-fit: cover;
    object-position: center top;
}

.de-public-team-image span {
    color: #8799a4;
    font-size: 34px;
}

.de-public-team-copy {
    display: flex;
    justify-content: center;
    min-width: 0;
    padding: 23px 25px;
    flex-direction: column;
}

.de-public-team-copy h3 {
    margin: 0 0 7px;
    font-size: 23px;
}

.de-public-team-copy p {
    margin: 0 0 8px;
    color: #5e707c;
    font-size: 14px;
    font-style: italic;
    line-height: 1.5;
}

.de-public-team-copy a {
    overflow-wrap: anywhere;
    font-size: 14px;
}

/* Authentication ----------------------------------------------------- */

.de-public-auth {
    padding: 76px 0 84px;
    background: #f3f6f7;
}

.de-public-auth-shell {
    display: grid;
    grid-template-columns: minmax(300px, 0.88fr) minmax(400px, 1.12fr);
    align-items: center;
    gap: clamp(48px, 7vw, 96px);
    max-width: 1080px;
}

.de-public-auth-intro h1 {
    margin: 0 0 17px;
    font-size: clamp(43px, 5vw, 60px);
    line-height: 1.04;
}

.de-public-auth-intro p {
    max-width: 480px;
    margin: 0;
    color: var(--de-home-muted);
    font-size: 17px;
    line-height: 1.72;
}

.de-public-auth-card {
    padding: 38px 42px 34px;
    border: 1px solid var(--de-home-line);
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(14, 41, 62, 0.1);
}

.de-public-auth-card .de-public-card-heading h2 {
    font-size: 34px;
}

.de-public-auth-form {
    display: grid;
    gap: 19px;
}

.de-public-field {
    min-width: 0;
}

.de-public-field > label,
.de-public-field-label-row label {
    display: block;
    margin: 0 0 7px;
    color: #30495b;
    font-size: 14px;
    font-weight: 750;
}

.de-public-field-label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.de-public-field-label-row a {
    margin-bottom: 7px;
    font-size: 13px;
    font-weight: 700;
}

.de-public-input-icon {
    position: relative;
}

.de-public-input-icon .form-control {
    padding-right: 44px;
}

.de-public-input-icon > i {
    position: absolute;
    top: 50%;
    right: 16px;
    color: #82939e;
    font-size: 14px;
    transform: translateY(-50%);
    pointer-events: none;
}

.de-public-form-errors {
    padding: 12px 14px;
    color: #952c33;
    border: 1px solid #e6bdc0;
    border-radius: 7px;
    background: #fff5f5;
    font-size: 14px;
}

.de-public-auth-switch {
    margin: 25px 0 0 !important;
    padding-top: 22px;
    border-top: 1px solid #e6ebee;
    font-size: 14px !important;
    text-align: center;
}

.de-public-auth-switch a {
    font-weight: 800;
}

.de-public-auth-message {
    text-align: center;
}

.de-public-auth-message > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: 20px;
    color: var(--de-home-blue);
    border: 1px solid #c7dce7;
    border-radius: 50%;
    background: #f1f7fa;
    font-size: 23px;
}

.de-public-auth-message h2 {
    margin: 0 0 11px;
    font-size: 32px;
}

.de-public-auth-message p {
    margin-bottom: 18px;
    font-size: 15px;
}

/* Legal pages --------------------------------------------------------- */

.de-public-legal-document {
    max-width: 880px;
}

.de-public-legal-document h1,
.de-public-legal-document h2,
.de-public-legal-document h3 {
    margin: 38px 0 14px;
    line-height: 1.2;
}

.de-public-legal-document > h1:first-child,
.de-public-legal-document > h2:first-child,
.de-public-legal-document > h3:first-child {
    margin-top: 0;
}

.de-public-legal-document h2 {
    font-size: 30px;
}

.de-public-legal-document h3 {
    font-size: 24px;
}

/* Existing detail and commerce templates ----------------------------- */

.de-public-product-overview {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(230px, 1fr) minmax(200px, .75fr);
    align-items: start;
    gap: 24px;
    margin: 0;
}

.de-public .de-public-product-overview > div { float: none; width: auto; min-width: 0; margin: 0 !important; }
.de-public-product-overview::before,
.de-public-product-overview::after,
.de-public-related-courses .grid-space-10::before,
.de-public-related-courses .grid-space-10::after,
.de-public-academy-layout::before,
.de-public-academy-layout::after { display: none; }
.de-public-study-course-detail .de-public > .main-container { padding-top: 32px; padding-bottom: 32px; }
.de-public .de-public-product-cover,
.de-public .de-public-product-share { padding: 0; }
.de-public .de-public-product-cover .nav-pills:empty { display: none; }
.de-public .de-public-product-cover .tab-content { padding: 0; }
.de-public .de-public-product-cover .owl-carousel { margin: 0; border: 0; }
.de-public .de-public-product-cover img { width: 100%; height: clamp(180px, 24vw, 330px); object-fit: contain; border: 1px solid var(--de-home-line); border-radius: 12px; background: #f7f9fa; }
.de-public .de-public-product-info .list { padding: 0; list-style: none; }
.de-public .de-public-product-info .list li { margin: 0 0 14px; overflow-wrap: anywhere; }
.de-public .de-public-product-info .list li:last-child { margin-bottom: 0; }
.de-public .de-public-product-info .list strong { color: var(--de-home-ink); font-weight: 500; }
.de-public .de-public-product-info .list small { display: block; margin-top: 6px; font-size: 12px; }
.de-public-study-course-detail .de-public-course-description.active { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); gap: 32px; }
.de-public-study-course-detail .de-public-course-description > .main { float: none; min-width: 0; width: auto; padding: 0; }
.de-public .de-public-course-venue { margin-top: 20px; padding: 20px; border: 1px solid var(--de-home-line); border-radius: 12px; }
.de-public .de-public-course-venue .media-object { max-width: 100%; object-fit: contain; }
.de-public .de-public-related-courses .page-title { font-size: clamp(26px, 2.5vw, 34px); }
.de-public-related-courses .grid-space-10 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.de-public-related-courses .grid-space-10 > div { float: none; min-width: 0; width: auto; padding: 0; }
.de-public-related-courses .image-box { display: flex; flex-direction: column; height: 100%; margin: 0; }
.de-public-related-courses .overlay-container img { width: 100%; height: 210px; object-fit: contain; background: #f7f9fa; }
.de-public .de-public-related-courses .body { display: flex; flex-direction: column; align-items: center; flex: 1; padding: 22px; }
.de-public-related-courses .body > .btn { margin-top: auto; }
.de-public .de-public-related-courses .body h3 { margin-top: 0; font-size: 22px; }
.de-public-academy-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; }
.de-public-academy-layout > div { float: none; width: auto; min-width: 0; padding: 0; }
.de-public-academy-layout > aside:empty { display: none; }
.de-public .de-public-webinar-card { border: 1px solid var(--de-home-line); border-radius: 12px; }
.de-public .de-public-webinar-card > .row { margin: 0; }
.de-public-webinar-card > .row > div { width: 100%; padding: 0; }

@media (max-width: 991px) {
    .de-public-product-overview { grid-template-columns: minmax(0, 1fr) minmax(250px, 1fr); }
    .de-public-study-course-detail .de-public-course-description.active { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 767px) {
    .de-public-product-overview,
    .de-public-related-courses .grid-space-10,
    .de-public-academy-layout { grid-template-columns: minmax(0, 1fr); }
    .de-public .de-public-related-courses .grid-space-10 { margin: 0; }
}

.de-public-legacy-detail .de-public > .main-container,
.de-public-legacy-detail .de-public > .section,
.de-public-legacy-detail .de-public > section:not(.venue-title):not(.de-public-hero) {
    padding-top: 64px;
    padding-bottom: 70px;
}

.de-public-legacy-detail .main-container + .main-container,
.de-public-legacy-detail .de-public > section + section {
    border-top: 1px solid #e6ebee;
}

.de-public-legacy-detail .container {
    width: var(--de-public-content-width, min(1180px, calc(100% - 64px)));
    padding-right: 0;
    padding-left: 0;
}

.de-public-legacy-detail .main-container .container > .row,
.de-public-legacy-detail .section .container > .row {
    margin-right: 0;
    margin-left: 0;
}

.de-public-legacy-detail .page-title {
    margin: 0 0 18px;
    color: var(--de-home-ink);
    font-size: clamp(34px, 4vw, 48px);
    line-height: 1.1;
}

.de-public-legacy-detail .separator,
.de-public-legacy-detail .separator-2 {
    border-color: #dce4e8;
}

.de-public-legacy-detail .light-gray-bg,
.de-public-legacy-detail .light-bg,
.de-public-legacy-detail .white-bg {
    background: #fff;
}

.de-public-legacy-detail .bordered,
.de-public-legacy-detail .shadow {
    border: 1px solid var(--de-home-line);
    border-radius: 10px;
    box-shadow: 0 9px 28px rgba(14, 41, 62, 0.055);
}

.de-public-legacy-detail .image-box {
    overflow: hidden;
}

.de-public-legacy-detail .image-box .body {
    padding: 24px 26px;
}

.de-public-legacy-detail .image-box h3 {
    font-size: 24px;
}

.de-public-legacy-detail .image-box p,
.de-public-legacy-detail .text-muted,
.de-public-legacy-detail .small {
    color: var(--de-home-muted) !important;
    font-size: 15px !important;
    line-height: 1.65;
}

.de-public-legacy-detail .nav-tabs,
.de-public-legacy-detail .nav-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    border: 0;
}

.de-public-legacy-detail .nav-tabs > li,
.de-public-legacy-detail .nav-pills > li {
    margin: 0;
}

.de-public-legacy-detail .nav-tabs > li > a,
.de-public-legacy-detail .nav-pills > li > a {
    min-height: 44px;
    margin: 0;
    padding: 11px 16px;
    color: #506573;
    border: 1px solid #d7e0e5;
    border-radius: 999px;
    background: #fff;
    font-size: 14px;
    font-weight: 700;
}

.de-public-legacy-detail .nav-tabs > li.active > a,
.de-public-legacy-detail .nav-tabs > li.active > a:hover,
.de-public-legacy-detail .nav-tabs > li.active > a:focus,
.de-public-legacy-detail .nav-pills > li.active > a,
.de-public-legacy-detail .nav-pills > li.active > a:hover,
.de-public-legacy-detail .nav-pills > li.active > a:focus {
    color: #fff;
    border-color: var(--de-home-navy);
    background: var(--de-home-navy);
}

.de-public-legacy-detail .tab-content {
    padding: 25px 0 0;
    border: 0;
    box-shadow: none;
}

.de-public-legacy-detail .sidebar {
    padding: 26px;
    border: 1px solid var(--de-home-line);
    border-radius: 11px;
    background: #f8fafb;
}

.de-public-legacy-detail .sidebar h3 {
    margin-top: 0;
    font-size: 26px;
}

.de-public-legacy-detail .sidebar li,
.de-public-legacy-detail .sidebar p {
    font-size: 15px;
}

.de-public-legacy-detail .pricing-tables .plan {
    margin-bottom: 18px;
}

.de-public-legacy-detail .pricing-tables .header {
    padding: 24px 20px;
    border-radius: 10px 10px 0 0;
    background: var(--de-home-navy) !important;
}

.de-public-legacy-detail .pricing-tables .header h3,
.de-public-legacy-detail .pricing-tables .header .price {
    color: #fff;
}

.de-public-legacy-detail .pricing-tables .plan > ul {
    margin: 0;
    padding: 24px;
    border-radius: 0 0 10px 10px;
}

.de-public-legacy-detail .pricing-tables li {
    font-size: 15px;
}

.de-public-legacy-detail table {
    width: 100%;
    border: 1px solid var(--de-home-line);
    border-radius: 9px;
    background: #fff;
}

.de-public-legacy-detail table th {
    padding: 14px 15px !important;
    color: var(--de-home-ink) !important;
    border-color: #dce4e8 !important;
    background: #f3f6f7 !important;
    font-size: 14px;
    font-weight: 800;
}

.de-public-legacy-detail table td {
    padding: 15px !important;
    color: #526675;
    border-color: #e3e9ec !important;
    font-size: 15px;
    vertical-align: middle !important;
}

.de-public-rich-content {
    color: #425967;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.76;
}

.de-public-rich-content p,
.de-public-rich-content li,
.de-public-rich-content dd,
.de-public-rich-content dt,
.de-public-rich-content span {
    color: #425967 !important;
    font-size: 16px !important;
    font-weight: 400;
    line-height: 1.76 !important;
}

.de-public-rich-content strong,
.de-public-rich-content b {
    color: var(--de-home-ink);
    font-weight: 700;
}

.de-public-study-club-detail .venue-title {
    margin: 0 !important;
    padding: 0;
}

.de-public-study-club-detail .venue-title > .container > .row {
    margin: 0;
}

.de-public-study-club-detail .venue-title .main {
    padding: 0;
}

.de-public-study-club-detail .de-public > .section:nth-of-type(2) {
    border-top: 0;
}

.de-public-course-detail .de-public > .space-top.banner {
    width: var(--de-public-content-width, min(1180px, calc(100% - 64px)));
    margin: 38px auto 0;
    padding: 0;
    overflow: hidden;
    border-radius: 12px;
    background: #e1e7ea;
    box-shadow: 0 14px 42px rgba(14, 41, 62, 0.1);
}

.de-public-course-banner-image {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.de-public-course-detail .main-container.padding-ver-clear {
    padding-top: 52px !important;
    padding-bottom: 78px !important;
}

.de-public-course-detail .de-public-registration-panel {
    min-height: 260px;
    padding: 24px 20px;
}

.de-public-course-detail .pricing-tables .de-public-course-action-row {
    padding: 6px 0;
}

.de-public .de-public-course-action {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 12px 14px;
    border: 1px solid #e0e8ec;
    border-radius: 8px;
    background: #f7fafb;
    color: var(--de-home-ink);
    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;
    text-align: left;
    white-space: normal;
}

.de-public .de-public-course-action > i {
    position: static;
    flex: 0 0 20px;
    width: 20px;
    padding: 0;
    color: var(--de-home-blue);
    font-size: 17px;
    line-height: 1;
    text-align: center;
}

.de-public .de-public-course-action:is(:hover, :focus) {
    border-color: #aebfcc;
    background: #eef4f7;
    color: var(--de-home-ink);
    box-shadow: none;
    transform: none;
}

.de-public-speaker-detail .de-public > .de-public-hero + .main-container,
.de-public-premium-detail .de-public > .de-public-hero + .main-container,
.de-public-basket .de-public > .de-public-hero + .main-container {
    background: #f5f7f8;
}

.de-public-speaker-detail .team-member img {
    width: 100%;
}

.de-public-speaker-detail .list-icons li {
    overflow-wrap: anywhere;
}

.de-public-speaker-profile-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 290px;
    align-items: start;
    gap: 54px;
    margin: 0;
}

.de-public-speaker-profile-grid::before,
.de-public-speaker-profile-grid::after,
.de-public-premium-overview-grid::before,
.de-public-premium-overview-grid::after {
    display: none;
    content: none;
}

.de-public-speaker-profile-grid > .de-public-speaker-bio,
.de-public-speaker-profile-grid > .de-public-speaker-contact {
    float: none;
    width: auto;
    margin-left: 0;
    padding: 0;
}

.de-public-speaker-bio {
    display: grid;
    grid-template-columns: 285px minmax(0, 1fr);
    align-items: start;
    gap: 26px;
}

.de-public-speaker-portrait {
    float: none;
    width: auto;
    margin: 0;
    padding: 0;
}

.de-public-speaker-portrait .image-box {
    margin: 0;
    border: 1px solid #dce4e8;
    border-radius: 11px;
    background: #fff;
}

.de-public-speaker-contact {
    padding: 20px !important;
    border: 1px solid var(--de-home-line);
    border-radius: 11px;
    background: #fff;
    box-shadow: none;
}

.de-public-speaker-contact h3 {
    margin-top: 0;
    font-size: 20px;
}

.de-public-speaker-contact .list-icons {
    margin-bottom: 0;
}

.de-public-speaker-contact > .separator-2 { display: none; }
.de-public .de-public-contact-links { display: grid; gap: 10px; padding: 0; list-style: none; }
.de-public .de-public-contact-links li { margin: 0; padding: 0; }
.de-public .de-public-contact-link { display: flex; align-items: baseline; gap: 10px; padding: 8px 0; color: var(--de-home-ink); font-size: 14px; line-height: 1.5; text-decoration: none; }
.de-public .de-public-contact-link span { min-width: 0; overflow-wrap: anywhere; }
.de-public .de-public-contact-link i { position: static; width: 18px; padding: 0; flex: 0 0 18px; color: var(--de-home-blue); text-align: center; }
.de-public .de-public-speaker-socials { display: grid; gap: 9px; margin-top: 16px; }
.de-public .de-public-social-link { justify-content: space-between; width: 100%; min-height: 44px; margin: 0; padding: 10px 14px; border: 1px solid #e0e8ec; border-radius: 8px; background: #f7fafb; color: var(--de-home-ink); font-size: 13px; font-weight: 500; }
.de-public .de-public-social-link i { position: static; width: 18px; padding: 0; color: var(--de-home-blue); text-align: center; }
.de-public .de-public-social-link:is(:hover, :focus) { color: var(--de-home-ink); border-color: #aebfcc; background: #eef4f7; box-shadow: none; transform: none; }

.de-public-premium-overview-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(260px, 0.65fr);
    align-items: stretch;
    gap: 26px;
    margin: 0;
}

.de-public-premium-overview-grid.has-speaker {
    grid-template-columns: minmax(0, 1.15fr) minmax(230px, 0.58fr) minmax(220px, 0.52fr);
}

.de-public-premium-overview-grid > .de-public-premium-cover,
.de-public-premium-overview-grid > .de-public-premium-info,
.de-public-premium-overview-grid > .de-public-premium-share {
    float: none;
    width: auto;
    margin: 0;
    padding: 0;
}

.de-public-premium-cover {
    overflow: hidden;
    border: 1px solid #dce4e8;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 14px 38px rgba(14, 41, 62, 0.07);
}

.de-public-premium-cover .nav-pills:empty {
    display: none;
}

.de-public-premium-cover .tab-content,
.de-public-premium-cover .owl-carousel {
    height: 100%;
    margin: 0;
    padding: 0;
}

.de-public-premium-cover .tab-pane,
.de-public-premium-cover .overlay-container {
    height: 100%;
}

.de-public-premium-cover img {
    width: 100%;
    height: 100%;
    min-height: 330px;
    object-fit: cover;
}

.de-public-premium-info,
.de-public-premium-share {
    align-self: start;
    padding: 27px !important;
    border: 1px solid var(--de-home-line);
    border-radius: 11px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(14, 41, 62, 0.05);
}

.de-public-premium-info h3,
.de-public-premium-share h3 {
    margin-top: 0;
    font-size: 27px;
}

.de-premium-share-legacy-actions {
    display: flex;
    margin-top: 15px;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.de-public .de-premium-share-legacy-action {
    --de-share-color: #155b86;
    display: inline-grid;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    padding: 0;
    place-items: center;
    color: var(--de-share-color);
    border: 1px solid #dce5eb;
    border-radius: 10px;
    background: #fff;
    font: 700 18px/1 Arial, sans-serif;
    text-decoration: none;
    transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease;
}

.de-premium-share-legacy-action > i,
.de-premium-share-legacy-action > span {
    color: inherit;
    opacity: 1;
}

.de-premium-share-legacy-action > span {
    font-weight: 800;
}

.de-premium-share-legacy-action.is-facebook {
    --de-share-color: #3b5998;
}

.de-premium-share-legacy-action.is-x {
    --de-share-color: #111827;
}

.de-premium-share-legacy-action.is-linkedin {
    --de-share-color: #0077b5;
}

.de-premium-share-legacy-action.is-email {
    --de-share-color: #155b86;
}

.de-public .de-premium-share-legacy-action:hover,
.de-public .de-premium-share-legacy-action:focus {
    color: #fff;
    border-color: var(--de-share-color);
    background: var(--de-share-color);
    text-decoration: none;
}

.de-premium-share-legacy-action:focus-visible,
.de-premium-share-dialog button:focus-visible,
.de-premium-email-service:focus-visible {
    outline: 3px solid #155b86;
    outline-offset: 2px;
}

body.de-premium-share-modal-open {
    overflow: hidden;
}

.de-premium-share-modal {
    position: fixed;
    z-index: 10050;
    inset: 0;
    display: grid;
    padding: 24px;
    place-items: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 180ms ease;
}

.de-premium-share-modal[hidden] {
    display: none;
}

.de-premium-share-modal.is-open {
    opacity: 1;
    pointer-events: auto;
}

.de-premium-share-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(5, 23, 37, 0.68);
    backdrop-filter: blur(5px);
}

.de-premium-share-dialog {
    position: relative;
    z-index: 1;
    overflow: auto;
    width: min(620px, 100%);
    max-height: min(760px, calc(100vh - 48px));
    max-height: min(760px, calc(100svh - 48px));
    padding: 34px;
    color: var(--de-home-ink);
    border: 1px solid rgba(255, 255, 255, 0.62);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 28px 90px rgba(5, 23, 37, 0.32);
    opacity: 0;
    transform: translateY(16px) scale(0.985);
    transition: opacity 180ms ease, transform 180ms ease;
}

.de-premium-share-modal.is-open .de-premium-share-dialog {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.de-premium-share-dialog-close {
    position: absolute;
    top: 18px;
    right: 18px;
    display: grid;
    width: 38px;
    height: 38px;
    padding: 0;
    place-items: center;
    color: #657985;
    border: 1px solid #dbe5e9;
    border-radius: 50%;
    background: #fff;
    font-size: 13px;
    transition: color 160ms ease, border-color 160ms ease, background 160ms ease;
}

.de-premium-share-dialog-close:hover,
.de-premium-share-dialog-close:focus {
    color: var(--de-home-navy);
    border-color: #b9cfd7;
    background: #f4f8f9;
}

.de-premium-share-dialog-header {
    display: flex;
    margin-bottom: 22px;
    padding-right: 46px;
    align-items: center;
    gap: 14px;
}

.de-premium-share-dialog-icon {
    display: inline-grid;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    place-items: center;
    color: #fff;
    border-radius: 13px;
    background: linear-gradient(145deg, #155b86, #14869a);
    box-shadow: 0 9px 22px rgba(20, 134, 154, 0.22);
    font-size: 17px;
}

.de-premium-share-dialog h2 {
    margin: 0;
    color: var(--de-home-navy);
    font-family: var(--de-home-heading);
    font-size: clamp(25px, 3vw, 31px);
    font-weight: 700;
    letter-spacing: -0.035em;
    line-height: 1.15;
}

.de-premium-email-services {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.de-premium-email-service {
    display: grid;
    min-height: 76px;
    padding: 13px;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    align-items: center;
    gap: 11px;
    color: var(--de-home-ink);
    border: 1px solid #dce5e9;
    border-radius: 11px;
    background: #fff;
    text-decoration: none;
    transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.de-premium-email-service:hover,
.de-premium-email-service:focus {
    color: var(--de-home-ink);
    border-color: #a8cad2;
    background: #fbfdfd;
    box-shadow: 0 8px 20px rgba(14, 41, 62, 0.07);
    text-decoration: none;
    transform: translateY(-1px);
}

.de-premium-email-service > span:nth-child(2) {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 2px;
}

.de-premium-email-service strong {
    color: var(--de-home-ink);
    font-size: 14px;
    font-weight: 800;
    line-height: 1.3;
}

.de-premium-email-service small {
    overflow: hidden;
    color: var(--de-home-muted);
    font-size: 10px;
    font-weight: 600;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.de-premium-email-service > i {
    color: #91a2ac;
    font-size: 10px;
}

.de-premium-email-mark {
    display: inline-grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border-radius: 10px;
    background: #f0f4f6;
    font: 800 14px/1 Arial, sans-serif;
}

.de-premium-email-mark.is-gmail {
    color: #c5221f;
    background: #fff0ef;
}

.de-premium-email-mark.is-outlook {
    color: #fff;
    background: #1473e6;
}

.de-premium-email-mark.is-yahoo {
    color: #fff;
    background: #6001d2;
}

.de-premium-email-mark.is-default {
    color: #fff;
    background: var(--de-home-navy);
}

.de-premium-share-link-row {
    display: grid;
    margin-top: 20px;
    padding: 7px 7px 7px 13px;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    border: 1px solid #dce5e9;
    border-radius: 10px;
    background: #f5f8f9;
}

.de-premium-share-link-value {
    overflow: hidden;
    color: #647984;
    font-size: 11px;
    line-height: 1.4;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.de-premium-share-link-row button {
    display: inline-flex;
    min-height: 36px;
    padding: 8px 12px;
    align-items: center;
    gap: 7px;
    color: #fff;
    border: 0;
    border-radius: 8px;
    background: var(--de-home-navy);
    font: 800 11px/1.2 var(--de-home-sans);
    transition: background 160ms ease;
}

.de-premium-share-link-row button:hover,
.de-premium-share-link-row button:focus,
.de-premium-share-link-row button.is-copied {
    background: #155b86;
}

.de-public-premium-info .list > li {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 0;
    border-bottom: 1px solid #e4e9ec;
}

.de-public-premium-info .list > li:last-child {
    border-bottom: 0;
}

.de-public-premium-info .text-right {
    color: var(--de-home-ink);
    text-align: right;
}

.de-public-premium-description {
    background: #fff;
}

.de-public-premium-description-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(250px, 0.58fr);
    align-items: start;
    gap: 54px;
}

.de-public-premium-description-grid > .main {
    float: none;
    width: auto;
    padding: 0;
}

.de-public-premium-description .de-public-premium-speaker {
    padding: 25px;
    border: 1px solid var(--de-home-line);
    border-radius: 11px;
    background: #f7f9fa;
}

.de-public-premium-speaker img {
    width: 100%;
    border-radius: 8px;
}

/* Shared course layout for Premium Online and every Academy Read More page. */
.dentaled-public-page.de-public-online-course:not(.de-public-auth-page):not(.de-public-basket) {
    --de-public-gutter: clamp(20px, 1.5vw, 32px);
}

/* Align the landing page and linked courses with the public header and footer. */
.de-public-premium-landing .de-public-hero {
    --de-public-banner-gutter: var(--de-public-gutter);
}

.de-public-online-course .de-premium-online-layout {
    max-width: none;
}

.de-public-online-course.de-public-legacy-detail .de-public > section.de-public-premium-overview {
    padding-top: clamp(30px, 3vw, 46px);
    padding-bottom: clamp(42px, 5vw, 72px);
    background: #fff;
}

.de-premium-online-layout {
    display: grid;
    grid-template-areas:
        "media sidebar"
        "content sidebar";
    grid-template-columns: minmax(0, 1.5fr) minmax(340px, 0.8fr);
    grid-template-rows: auto 1fr;
    align-items: start;
    gap: 36px clamp(30px, 4vw, 58px);
}

.de-premium-online-layout::before,
.de-premium-online-layout::after {
    display: none;
    content: none;
}

/* Academy's image-first composition, including every Read More destination. */
.de-public-academy-detail .de-premium-online-layout {
    grid-template-areas:
        "media sidebar"
        "heading sidebar"
        "content sidebar";
    grid-template-columns: minmax(0, 2fr) minmax(285px, 1fr);
    grid-template-rows: auto auto 1fr;
    gap: 30px 48px;
}

.de-premium-online-course-heading {
    grid-area: heading;
    min-width: 0;
    padding: 3px 0 25px;
    border-bottom: 1px solid var(--de-home-line);
}

.de-premium-online-course-category {
    display: block;
    margin-bottom: 12px;
    color: var(--de-home-blue);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.de-premium-online-course-heading h1 {
    margin: 0 0 22px;
    color: var(--de-home-ink);
    font-size: clamp(27px, 2.4vw, 36px);
    font-weight: 500;
    letter-spacing: 0.09em;
    line-height: 1.4;
    overflow-wrap: anywhere;
    text-transform: uppercase;
}

.de-premium-online-course-heading p {
    display: grid;
    gap: 4px;
    margin: 0;
    font-size: 14px;
}

.de-premium-online-course-heading p > span {
    color: var(--de-home-muted);
    font-size: 12px;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.de-public-academy-detail .de-premium-online-media-card {
    border: 0;
    border-radius: 8px;
}

.de-public-academy-detail .de-premium-online-sidebar {
    position: static;
    padding: 0 8px;
    gap: 6px;
}

.de-public-academy-detail .de-premium-online-purchase-card {
    overflow: visible;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.de-public-academy-detail .de-premium-online-purchase-header {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
}

.de-public-academy-detail .de-premium-online-currency > span {
    margin: 0 0 10px;
}

.de-public-academy-detail .de-premium-online-plan-selector {
    padding: 0;
}

.de-public-academy-detail .de-premium-online-plan-panel {
    padding: 25px 0 18px;
}

.de-public-academy-detail .de-premium-online-purchase-form .btn,
.de-public-academy-detail .de-premium-online-plan-option {
    border-radius: 4px;
}

.de-public-academy-detail .de-premium-online-share-card {
    padding: 16px;
}

.de-public-academy-detail .de-premium-online-share-card > .de-public-share-card {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
}

.de-public-academy-detail .de-premium-online-content h2 {
    font-size: clamp(22px, 2vw, 28px);
    font-weight: 500;
    letter-spacing: 0.1em;
    line-height: 1.4;
    text-transform: uppercase;
}

.de-premium-online-media-card {
    grid-area: media;
    overflow: hidden;
    min-width: 0;
    border: 1px solid #dbe5ea;
    border-radius: 14px;
    background: #f7fafb;
}

.de-premium-online-media-card img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.de-premium-online-sidebar {
    grid-area: sidebar;
    position: sticky;
    top: 100px;
    display: grid;
    min-width: 0;
    gap: 18px;
}

.de-premium-online-share-card {
    padding: 18px 22px;
    border: 1px solid #dfe7eb;
    border-radius: 13px;
    background: rgba(255, 255, 255, 0.88);
}

.de-premium-online-share-card > section,
.de-premium-online-share-card > .de-public-share-card {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 18px;
}

.de-public .de-premium-online-share-card > .de-public-share-card {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
}

.de-premium-online-share-card .de-public-share-actions {
    margin: 0;
}

.de-premium-online-share-card .de-public-sidebar-heading {
    padding: 0;
    border: 0;
}

.de-premium-online-share-card .de-public-sidebar-heading::after {
    display: none;
}

.de-premium-online-share-card h3 {
    margin: 0;
    color: var(--de-home-ink);
    font-size: 18px;
    line-height: 1.3;
}

.de-premium-online-share-card .de-premium-share-legacy-actions {
    flex: 0 1 auto;
    margin-top: 0;
}

.de-premium-online-purchase-card {
    overflow: hidden;
    min-width: 0;
    border: 1px solid #d8e3e8;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(6, 40, 62, 0.07);
}

.de-premium-online-purchase-header {
    padding: 26px 28px 23px;
    border-bottom: 1px solid #dfe8ec;
    background: linear-gradient(145deg, #f7fbfc 0%, #edf5f7 100%);
}

.de-premium-online-currency > span {
    display: block;
    margin: 20px 28px 10px;
    color: #536c7b;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
}

.de-premium-online-purchase-header h2 {
    margin: 0;
    color: var(--de-home-ink);
    font-size: 23px;
    font-weight: 600;
    letter-spacing: -0.025em;
    line-height: 1.18;
}

.de-premium-online-plan-selector {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
    gap: 8px;
    padding: 0 28px;
}

.de-premium-online-plan-selector[hidden] {
    display: none;
}

.de-premium-online-currency:has(.de-premium-online-plan-selector[hidden]) {
    display: none;
}

.de-premium-online-plan-option {
    display: flex;
    min-height: 44px;
    padding: 10px 13px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 2px;
    border: 1px solid #d7e2e7;
    border-radius: 10px;
    background: #f7fafb;
    color: var(--de-home-ink);
    font: inherit;
    line-height: 1.2;
    text-align: center;
    transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease;
}

.de-premium-online-plan-option > span {
    font-size: 14px;
    font-weight: 700;
}

.de-premium-online-plan-option > small {
    color: inherit;
    font-size: 12px;
    opacity: 0.76;
}

.de-premium-online-plan-option:hover,
.de-premium-online-plan-option:focus,
.de-premium-online-plan-option.is-active {
    border-color: var(--de-home-ink);
    background: var(--de-home-ink);
    color: #fff;
}

.de-premium-online-plan-option:focus-visible {
    outline: 3px solid rgba(20, 134, 154, 0.22);
    outline-offset: 2px;
}

.de-premium-online-plan-panel {
    padding: 25px 28px 29px;
}

.de-premium-online-plan-panel + .de-premium-online-plan-panel {
    border-top: 1px solid #e1e8ec;
}

.de-premium-online-purchase-card.is-enhanced .de-premium-online-plan-panel[hidden] {
    display: none;
}

.de-premium-online-plan-heading {
    margin: 0;
    color: #355063;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
}

.de-premium-online-purchase-card.is-enhanced .de-premium-online-plan-heading {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

.de-premium-online-purchase-card.is-enhanced .de-premium-online-plan-panel {
    border-top: 0;
}

.de-premium-online-price {
    display: flex;
    margin: 4px 0 23px;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 7px;
    color: var(--de-home-ink);
}

.de-premium-online-price strong {
    font-size: clamp(31px, 2.8vw, 40px);
    font-weight: 650;
    letter-spacing: -0.045em;
    line-height: 1.12;
}

.de-premium-online-price span {
    color: #607382;
    font-size: 13px;
    font-weight: 600;
}

.de-premium-online-price-unavailable {
    margin-top: 12px;
    font-size: 14px;
}

.de-premium-online-price-unavailable [hidden] {
    display: none;
}

.de-premium-online-cpd {
    display: grid;
    gap: 4px;
    margin-top: 17px;
    padding: 13px 15px;
    border-radius: 9px;
    background: #f3f7f8;
    color: #4e6472;
    font-size: 13px;
}

.de-premium-online-facts {
    display: grid;
    gap: 16px;
    margin: 25px 0 0;
    padding-top: 22px;
    border-top: 1px solid #e4eaee;
    font-size: 13px;
}

.de-premium-online-facts > div {
    display: flex;
    justify-content: space-between;
    gap: 18px;
}

.de-premium-online-facts dt {
    display: flex;
    align-items: baseline;
    gap: 9px;
    color: #526a78;
    font-weight: 500;
}

.de-premium-online-facts dt i {
    width: 15px;
    text-align: center;
}

.de-premium-online-facts dd {
    margin: 0;
    color: var(--de-home-ink);
    text-align: right;
}

.de-public .de-premium-online-lecturer-link {
    color: var(--de-home-blue);
    font-weight: 500;
    text-decoration: underline;
    text-decoration-color: #9ab4c5;
    text-underline-offset: 4px;
    text-decoration-thickness: 1px;
}

.de-public .de-premium-online-lecturer-link:hover,
.de-public .de-premium-online-lecturer-link:focus-visible {
    color: var(--de-home-navy);
    text-decoration-color: currentColor;
}

.de-premium-online-cpd strong {
    color: var(--de-home-ink);
}

.de-premium-online-benefits {
    display: grid;
    gap: 12px;
    margin: 23px 0 0;
    padding: 0;
    color: #3e5564;
    font-size: 14px;
    line-height: 1.45;
    list-style: none;
}

.de-premium-online-benefits li {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
}

.de-premium-online-benefits i {
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border-radius: 50%;
    background: #e3f1f3;
    color: #167a8c;
    font-size: 10px;
}

.de-premium-online-purchase-form,
.de-premium-online-purchase-form p {
    margin: 0;
}

.de-premium-online-purchase-form .btn {
    display: inline-flex;
    width: 100%;
    min-height: 50px;
    margin: 0;
    padding: 13px 20px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 1px solid var(--de-home-ink);
    border-radius: 9px;
    background: var(--de-home-ink);
    color: #fff;
    box-shadow: none;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
}

.de-premium-online-purchase-form .btn:hover,
.de-premium-online-purchase-form .btn:focus {
    border-color: #146f82;
    background: #146f82;
    color: #fff;
}

.de-premium-online-purchase-form .btn i {
    position: static;
    margin: 0;
    padding: 0;
}

.de-premium-online-content {
    grid-area: content;
    min-width: 0;
}

.de-premium-online-content h2 {
    margin: 0 0 22px;
    color: var(--de-home-ink);
    font-size: clamp(24px, 2.2vw, 30px);
    font-weight: 600;
    letter-spacing: -0.02em;
    line-height: 1.25;
}

.de-premium-online-overview .de-public-rich-content {
    overflow-wrap: anywhere;
}

.de-premium-online-lecturers {
    margin-top: 36px;
    padding-top: 30px;
    border-top: 1px solid var(--de-home-line);
    scroll-margin-top: 100px;
}

.de-premium-online-lecturer {
    display: grid;
    grid-template-columns: minmax(130px, 0.38fr) minmax(0, 1fr);
    align-items: start;
    gap: 25px;
    padding: 24px;
    border: 1px solid #e1e8ec;
    border-radius: 13px;
    background: #f8fafb;
}

.de-premium-online-lecturer + .de-premium-online-lecturer {
    margin-top: 18px;
}

.de-premium-online-portrait img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 9px;
    object-fit: contain;
}

.de-premium-online-lecturer h3 {
    margin: 0 0 10px;
    font-size: 23px;
    line-height: 1.25;
}

.de-premium-online-lecturer h3 a {
    color: var(--de-home-ink);
    text-decoration: none;
}

.de-premium-online-qualifications,
.de-premium-online-location,
.de-premium-online-bio {
    color: var(--de-home-muted);
    font-size: 16px;
    line-height: 1.7;
}

.de-premium-online-profile-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-height: 44px;
    margin-top: 10px;
    font-size: 16px;
    font-weight: 600;
    text-underline-offset: 4px;
}

.de-online-related {
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid var(--de-home-line);
}

.de-online-related h2 {
    margin: 0 0 28px;
    font-size: clamp(24px, 2vw, 29px);
    font-weight: 600;
    letter-spacing: -0.025em;
    line-height: 1.25;
}

.de-online-related-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
}

.de-online-related-card {
    display: grid;
    grid-template-columns: clamp(140px, 13vw, 190px) minmax(0, 1fr);
    align-items: start;
    gap: 24px;
    min-width: 0;
    padding: 24px;
    border: 1px solid #dfe7eb;
    border-radius: 10px;
    background: #fff;
}

.de-online-related-image {
    display: block;
}

.de-online-related-image img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 3px;
    object-fit: contain;
}

.de-online-related-copy {
    min-width: 0;
}

.de-online-related-author {
    margin: 0 0 9px;
    color: var(--de-home-muted);
    font-size: 16px;
}

.de-online-related-copy h3 {
    margin: 0 0 12px;
    font-size: clamp(20px, 1.6vw, 24px);
    font-weight: 600;
    line-height: 1.35;
}

.de-online-related-excerpt {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    margin: 0;
    color: var(--de-home-muted);
    font-size: 16px;
    line-height: 1.7;
    overflow-wrap: anywhere;
}

.de-online-related-excerpt :is(p, h1, h2, h3, h4, h5, h6, ul, ol) {
    margin: 0;
    color: inherit;
    font: inherit;
    letter-spacing: normal;
    text-transform: none;
}

.de-online-related-copy h3 a {
    color: var(--de-home-ink);
    text-decoration: none;
}

.de-online-related-copy .de-premium-online-profile-link {
    margin-top: 10px;
}

/* Retain the production font families with a readable body weight. */
.dentaled-public-page.de-public-premium-landing {
    --de-home-heading: "Raleway", sans-serif;
    --de-home-sans: "Roboto", sans-serif;
}

.dentaled-public-page.de-public-premium-landing .de-home-header-actions {
    font-family: var(--de-home-sans);
}

.dentaled-public-page.de-public-premium-landing:not(.de-public-auth-page):not(.de-public-basket) .de-public {
    font-weight: 400;
}

.dentaled-public-page.de-public-premium-landing .de-public :is(h2, h3, h4, h5, h6) {
    font-family: var(--de-home-heading);
    font-weight: 500;
    letter-spacing: normal;
}

.dentaled-public-page.de-public-premium-landing .de-public-hero h1 {
    font-family: var(--de-home-heading);
    font-weight: 700;
    letter-spacing: normal;
}

.dentaled-public-page.de-public-premium-landing .de-public :is(p, li, dd),
.dentaled-public-page.de-public-premium-landing .de-online-related-excerpt {
    font-family: var(--de-home-sans);
    font-weight: 400;
}

.dentaled-public-page.de-public-premium-landing .de-public :is(button, .btn, .de-premium-online-profile-link) {
    font-family: var(--de-home-sans);
    font-weight: 500;
}

.dentaled-public-page.de-public-premium-landing .de-online-related-excerpt :is(p, h1, h2, h3, h4, h5, h6, ul, ol) {
    font: inherit;
    letter-spacing: normal;
}

.de-public-basket .text-right {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 9px;
}

/* Responsive ---------------------------------------------------------- */

@media (min-width: 1200px) {
    .de-public-shell,
    .de-public-legacy-detail .container,
    .de-public-course-detail .de-public > .space-top.banner {
        width: var(--de-public-content-width, calc(100% - clamp(40px, 3vw, 64px)));
    }
}

@media (min-width: 1500px) {
    .de-public-study-clubs .de-public-venue-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .de-public-team-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1600px) {
    .de-public-speaker-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

@media (max-width: 1199px) {
    .de-public-speaker-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    .de-public-academy-detail .de-premium-online-layout {
        grid-template-areas:
            "media"
            "heading"
            "sidebar"
            "content";
        grid-template-columns: minmax(0, 1fr);
        gap: 25px;
    }

    .de-public-academy-detail .de-premium-online-sidebar {
        padding: 0;
    }

    .de-premium-online-layout {
        grid-template-areas:
            "media"
            "sidebar"
            "content";
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
    }

    .de-premium-online-sidebar {
        position: static;
    }

    .de-public-shell,
    .de-public-legacy-detail .container,
    .de-public-course-detail .de-public > .space-top.banner {
        width: var(--de-public-content-width, min(100% - 48px, 760px));
    }

    .de-public-hero,
    .de-public-study-club-detail .venue-title {
        --de-public-banner-padding: 32px;
    }

    .de-public-filter-form,
    .de-public-filter-form-two {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .de-public-filter-form .de-public-button {
        width: 100%;
    }

    .de-public-filter-form-compact,
    .de-public-search-form {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .de-public-content-grid,
    .de-public-contact-grid,
    .de-public-faq-grid,
    .de-public-about-grid,
    .de-public-auth-shell {
        grid-template-columns: minmax(0, 1fr);
    }

    .de-public-sidebar,
    .de-public-support-card {
        position: static;
    }

    .de-public-sidebar {
        padding-top: 12px;
        border-top: 1px solid var(--de-home-line);
    }

    .de-public-course-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .de-public-course-image {
        grid-template-rows: minmax(0, 1fr);
        height: clamp(210px, 34vw, 280px);
        min-height: 0;
    }

    .de-public-course-image img {
        height: 100%;
        min-height: 0;
        max-height: 100%;
    }

    .de-public-speaker-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .de-public-about-image,
    .de-public-about-image img {
        min-height: 420px;
    }

    .de-public-auth-intro {
        max-width: 670px;
        text-align: center;
    }

    .de-public-auth-intro .de-public-eyebrow {
        justify-content: center;
    }

    .de-public-auth-intro p {
        margin-right: auto;
        margin-left: auto;
    }

    .de-public-auth-card {
        width: 100%;
        max-width: 650px;
        margin: 0 auto;
    }
}

@media (max-width: 767px) {
    .de-public-study-clubs .de-public-study-directory { padding-top: 20px; }
    .de-public-study-clubs .de-public-venue-card { grid-template-columns: 68px minmax(0, 1fr); align-items: start; gap: 16px; min-height: 0; padding: 18px; }
    .de-public-study-clubs .de-public-venue-logo { min-height: 76px; padding: 8px; border: 0; border-radius: 6px; }
    .de-public-study-clubs .de-public-venue-logo img { max-height: 68px; }
    .de-public-study-clubs .de-public-venue-copy { display: contents; }
    .de-public-study-clubs .de-public-venue-copy h3 { align-self: center; margin: 0; font-size: 22px; }
    .de-public-study-clubs .de-public-venue-copy p { grid-column: 1 / -1; margin: 0; font-size: 14px; }
    .de-public-study-clubs .de-public-venue-copy .de-public-text-link { grid-column: 1 / -1; font-size: 13px; }
    .dentaled-public-page:not(.de-public-auth-page):not(.de-public-basket) {
        --de-public-gutter: 20px;
    }

    .dentaled-public-page .scrollToTop {
        right: 16px;
        bottom: 76px;
    }

    .de-public-shell,
    .de-public-legacy-detail .container,
    .de-public-course-detail > .space-top.banner {
        width: var(--de-public-content-width, calc(100% - 32px));
    }

    .de-public-hero,
    .de-public-study-club-detail .venue-title {
        --de-public-banner-padding: 28px;
        --de-public-banner-gutter: 20px;
        --de-public-banner-label-space: 49.4px;
    }

    .de-public-hero h1,
    .de-public-study-club-detail .venue-title .page-title {
        font-size: clamp(34px, 9vw, 38px);
    }

    /* Course names carry more detail than directory titles. Give them a
     * readable mobile scale within the same banner, without truncating copy. */
    .de-public-course-detail .de-public-hero h1,
    .de-public-premium-detail:not(.de-public-premium-landing) .de-public-hero h1 {
        font-size: clamp(26px, 7vw, 34px);
    }

    .de-public-hero p {
        font-size: 16px;
        line-height: 1.62;
    }

    .de-public-hero-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .de-public-filter {
        padding: 17px 0;
    }

    .de-public-filter-form,
    .de-public-filter-form-two,
    .de-public-filter-form-compact,
    .de-public-search-form {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 9px;
    }

    .de-public-section {
        padding: 56px 0 62px;
    }

    .de-public-section-heading {
        margin-bottom: 30px;
    }

    .de-public-section-heading h2,
    .de-public-card-heading h2,
    .de-public-subsection-heading h2,
    .de-public-contact-card > h2,
    .de-public-about-copy h2 {
        font-size: 33px;
    }

    .de-public-section-heading p,
    .de-public-card-heading p {
        font-size: 16px;
    }

    .de-public-content-grid {
        gap: 45px;
    }

    .de-public-venue-card,
    .de-public-course-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .de-public-venue-logo {
        min-height: 160px;
        border-right: 0;
        border-bottom: 1px solid #e7ecef;
    }

    .de-public-venue-logo img {
        max-height: 105px;
    }

    .de-public-venue-copy,
    .de-public-course-copy {
        padding: 24px 22px;
    }

    .de-public-course-image {
        height: clamp(210px, 58vw, 270px);
    }

    .de-public-course-copy h3 {
        font-size: 24px;
    }

    .de-public-course-meta > div {
        align-items: flex-start;
        flex-direction: column;
    }

    .de-public-team-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .de-public-speaker-image {
        aspect-ratio: 4 / 3;
        max-height: 320px;
    }

    .de-public-form-card,
    .de-public-contact-card,
    .de-public-support-card,
    .de-public-auth-card {
        padding: 28px 22px;
        border-radius: 10px;
    }

    .de-public-form-card .form-horizontal .form-group,
    .de-public-standard-form .form-horizontal .form-group {
        display: block;
        margin-bottom: 17px;
    }

    .de-public-form-card .form-horizontal .form-group > [class*="col-sm-offset-"],
    .de-public-standard-form .form-horizontal .form-group > [class*="col-sm-offset-"] {
        grid-column: auto;
    }

    .de-public-form-card .form-horizontal .control-label,
    .de-public-standard-form .form-horizontal .control-label {
        display: block;
        margin-bottom: 7px;
        padding-top: 0;
    }

    .de-public-contact-item {
        grid-template-columns: 38px minmax(0, 1fr);
        gap: 12px;
    }

    .de-public-contact-item > i {
        width: 38px;
        height: 38px;
    }

    .de-public-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 5px;
        -webkit-overflow-scrolling: touch;
    }

    .de-public-tabs > li > a {
        white-space: nowrap;
    }

    .de-public-team-card {
        grid-template-columns: 120px minmax(0, 1fr);
    }

    .de-public-team-image,
    .de-public-team-image img {
        min-height: 150px;
    }

    .de-public-team-copy {
        padding: 20px;
    }

    .de-public-about-image,
    .de-public-about-image img {
        min-height: 330px;
    }

    .de-public-auth {
        padding: 51px 0 60px;
    }

    .de-public-auth-shell {
        gap: 35px;
    }

    .de-public-auth-intro h1 {
        font-size: 42px;
    }

    .de-public-auth-intro p {
        font-size: 16px;
    }

    .de-public-legacy-detail .de-public > .main-container,
    .de-public-legacy-detail .de-public > .section,
    .de-public-legacy-detail .de-public > section:not(.venue-title):not(.de-public-hero) {
        padding-top: 48px;
        padding-bottom: 54px;
    }

    .de-public-legacy-detail [class*="col-sm-"],
    .de-public-legacy-detail [class*="col-md-"],
    .de-public-legacy-detail [class*="col-lg-"] {
        max-width: 100%;
    }

    .de-public-legacy-detail .sidebar {
        margin-top: 28px;
        padding: 22px;
    }

    .de-public-speaker-profile-grid,
    .de-public-premium-overview-grid,
    .de-public-premium-overview-grid.has-speaker,
    .de-public-premium-description-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 25px;
    }

    .de-public-speaker-contact {
        margin-top: 0 !important;
    }

    .de-public-speaker-bio {
        grid-template-columns: 230px minmax(0, 1fr);
        gap: 24px;
    }

    .de-public-premium-cover img {
        min-height: 0;
        aspect-ratio: 16 / 10;
    }

    .de-public-legacy-detail table {
        display: block;
        max-width: 100%;
        overflow-x: auto;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
    }

    .de-public-basket .text-right {
        align-items: stretch;
        flex-direction: column;
    }

    .de-public-basket .text-right .btn {
        width: 100%;
    }
}

@media (max-width: 600px) {
    .de-online-related-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
    }

    .de-online-related-card {
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
        gap: 20px;
        padding: 20px;
    }

    .de-online-related-image {
        width: min(100%, 280px);
    }

    .de-online-related-excerpt {
        font-size: 16px;
    }

    .de-public-academy-detail .de-premium-online-content h2 {
        font-size: 22px;
        letter-spacing: 0.055em;
    }

    .de-premium-online-course-heading h1 {
        font-size: 27px;
        letter-spacing: 0.055em;
    }

    .de-public-online-course.de-public-legacy-detail .de-public > section.de-public-premium-overview {
        padding-top: 34px;
        padding-bottom: 42px;
    }

    .de-premium-online-media-card {
        border-radius: 13px;
    }

    .de-premium-online-media-card img {
        border-radius: 8px;
    }

    .de-premium-online-purchase-card {
        border-radius: 14px;
    }

    .de-premium-online-purchase-header {
        padding: 23px 21px 20px;
    }

    .de-premium-online-plan-selector {
        padding: 0 21px;
    }

    .de-premium-online-currency > span {
        margin-left: 21px;
        margin-right: 21px;
    }

    .de-premium-online-plan-panel {
        padding: 23px 21px 25px;
    }

    .de-premium-online-share-card {
        padding: 17px 19px;
    }

    .de-premium-online-share-card > section,
    .de-premium-online-share-card > .de-public-share-card {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }

    .de-premium-online-lecturer {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
        padding: 21px;
    }

    .de-premium-online-portrait {
        width: min(100%, 200px);
    }

    .dentaled-public-page .de-public-speaker-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .de-public-speaker-bio {
        grid-template-columns: minmax(0, 1fr);
    }

    .de-public-speaker-portrait {
        width: 100%;
        margin: 0;
    }

    .de-public-speaker-portrait img {
        aspect-ratio: 1 / 1;
        object-fit: cover;
        object-position: center top;
    }

    .de-premium-share-modal {
        padding: 12px;
    }

    .de-premium-share-dialog {
        max-height: calc(100vh - 24px);
        max-height: calc(100svh - 24px);
        padding: 27px 20px 22px;
        border-radius: 15px;
    }

    .de-premium-share-dialog-close {
        top: 14px;
        right: 14px;
        width: 36px;
        height: 36px;
    }

    .de-premium-share-dialog-header {
        padding-right: 40px;
        align-items: flex-start;
    }

    .de-premium-share-dialog-icon {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
    }

    .de-premium-share-dialog h2 {
        font-size: 25px;
    }

    .de-premium-email-services {
        grid-template-columns: minmax(0, 1fr);
    }

    .de-premium-email-service {
        min-height: 68px;
    }

    .de-premium-share-link-row {
        padding-left: 10px;
        gap: 8px;
    }
}

@media (max-width: 420px) {

    .de-public-team-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .de-public-team-image,
    .de-public-team-image img {
        min-height: 235px;
        max-height: 280px;
    }

    .de-public-team-copy {
        padding: 22px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .de-public *,
    .de-public *::before,
    .de-public *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
