.cp-public-home {
    --cp-home-blue: #0758b8;
    --cp-home-blue-dark: #072f68;
    --cp-home-blue-deep: #041d43;
    --cp-home-gold: #d2aa52;
    --cp-home-gold-light: #f0d28e;
    position: relative;
    width: 100vw;
    max-width: 100vw;
    min-width: 0;
    margin-inline: calc(50% - 50vw);
    overflow-x: hidden;
    color: #102b4d;
    font-family: Lato, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.cp-public-home,
.cp-public-home *,
.cp-public-home *::before,
.cp-public-home *::after { box-sizing: border-box; }
.cp-public-home img { display: block; max-width: 100%; height: auto; }
.cp-public-home__hero {
    position: relative;
    display: grid;
    width: 100%;
    min-height: min(820px, 82vh);
    min-height: min(820px, 82svh);
    overflow: hidden;
    place-items: center;
    padding: clamp(72px, 10vw, 130px) 24px;
    border-radius: 0 0 clamp(28px, 5vw, 62px) clamp(28px, 5vw, 62px);
    background:
        radial-gradient(circle at 78% 20%, rgba(49, 132, 230, .33), transparent 28%),
        radial-gradient(circle at 18% 82%, rgba(210, 170, 82, .18), transparent 24%),
        linear-gradient(138deg, var(--cp-home-blue-deep) 0%, var(--cp-home-blue-dark) 50%, #0868cb 100%);
    isolation: isolate;
}
.cp-public-home__hero::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image:
        linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
    background-size: 54px 54px;
    content: "";
    mask-image: linear-gradient(to bottom, #000, transparent 88%);
}
.cp-public-home__hero::after {
    position: absolute;
    right: -130px;
    bottom: -220px;
    width: 520px;
    height: 520px;
    z-index: -1;
    border: 1px solid rgba(240, 210, 142, .28);
    border-radius: 50%;
    box-shadow: 0 0 0 54px rgba(255,255,255,.025), 0 0 0 108px rgba(255,255,255,.02);
    content: "";
}
.cp-public-home__formula {
    position: absolute;
    color: rgba(255,255,255,.09);
    font-family: Georgia, serif;
    font-size: clamp(48px, 8vw, 110px);
    font-style: italic;
    pointer-events: none;
    user-select: none;
}
.cp-public-home__formula--one { top: 10%; left: 3%; transform: rotate(-8deg); }
.cp-public-home__formula--two { right: 7%; bottom: 13%; transform: rotate(7deg); }
.cp-public-home__hero-content {
    width: min(890px, 100%);
    min-width: 0;
    color: #fff;
    text-align: center;
}
.cp-public-home__eyebrow,
.cp-public-home__hero-content h1,
.cp-public-home__claim,
.cp-public-home__intro { margin: 0; color: inherit; }
.cp-public-home__eyebrow {
    color: var(--cp-home-gold-light);
    font-size: clamp(11px, 1.2vw, 14px);
    font-weight: 900;
    letter-spacing: .24em;
    text-transform: uppercase;
}
.cp-public-home__hero-content h1 {
    max-width: 100%;
    margin-top: 18px;
    font-size: clamp(52px, 10vw, 118px);
    font-weight: 900;
    letter-spacing: -.055em;
    line-height: .92;
    text-shadow: 0 16px 45px rgba(0,0,0,.23);
}
.cp-public-home__claim {
    margin-top: 20px;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(25px, 4vw, 45px);
    font-style: italic;
    line-height: 1.15;
}
.cp-public-home__rule {
    display: block;
    width: 74px;
    height: 3px;
    margin: 30px auto 24px;
    border-radius: 999px;
    background: var(--cp-home-gold);
}
.cp-public-home__intro {
    max-width: 670px;
    margin-inline: auto;
    color: rgba(255,255,255,.79);
    font-size: clamp(16px, 2vw, 20px);
    line-height: 1.65;
}
.cp-public-home__discover {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 50px;
    margin-top: 34px;
    padding: 0 22px;
    border: 1px solid rgba(240, 210, 142, .68);
    border-radius: 999px;
    background: rgba(4, 29, 67, .32);
    color: #fff !important;
    font-weight: 800;
    text-decoration: none !important;
    backdrop-filter: blur(9px);
    transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.cp-public-home__discover:hover,
.cp-public-home__discover:focus {
    border-color: var(--cp-home-gold-light);
    background: rgba(210, 170, 82, .2);
    color: #fff !important;
    transform: translateY(-2px);
}
.cp-public-home__discover .dashicons {
    display: inline-flex;
    width: 20px;
    height: 20px;
    align-items: center;
    justify-content: center;
    font-size: 20px;
}
.cp-public-home__modules {
    width: 100%;
    padding: clamp(74px, 9vw, 126px) clamp(18px, 5vw, 70px);
    scroll-margin-top: 30px;
    background: linear-gradient(180deg, #f4f8fd 0%, #fff 38%, #f7faff 100%);
}
.cp-public-home__modules-heading {
    width: min(760px, 100%);
    margin: 0 auto clamp(42px, 6vw, 68px);
    text-align: center;
}
.cp-public-home__modules-heading p,
.cp-public-home__modules-heading h2,
.cp-public-home__modules-heading span { margin: 0; }
.cp-public-home__modules-heading p {
    color: #a47722;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.cp-public-home__modules-heading h2 {
    margin-top: 10px;
    color: var(--cp-home-blue-dark);
    font-size: clamp(31px, 5vw, 53px);
    letter-spacing: -.035em;
    line-height: 1.08;
}
.cp-public-home__modules-heading span {
    display: block;
    margin-top: 16px;
    color: #61748b;
    font-size: 17px;
}
.cp-public-home__grid {
    display: grid;
    width: min(1240px, 100%);
    margin-inline: auto;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 20px;
}
.cp-public-home__grid > * { min-width: 0; }
.cp-public-home__card {
    display: flex;
    min-height: 350px;
    grid-column: span 3;
    flex-direction: column;
    padding: clamp(24px, 3vw, 34px);
    border: 1px solid #d9e5f2;
    border-top: 4px solid var(--cp-home-blue);
    border-radius: 20px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 18px 48px rgba(13, 56, 105, .09);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.cp-public-home__card--featured {
    min-height: 320px;
    grid-column: span 6;
    border-top-color: var(--cp-home-gold);
    background: linear-gradient(145deg, #fff 0%, #f4f8ff 100%);
}
.cp-public-home__card:hover {
    border-color: #b8cde4;
    box-shadow: 0 24px 54px rgba(13, 56, 105, .14);
    transform: translateY(-5px);
}
.cp-public-home__card-top { display: flex; align-items: center; justify-content: space-between; }
.cp-public-home__card-icon {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border: 1px solid #c9dcf1;
    border-radius: 15px;
    background: #eaf3ff;
    color: var(--cp-home-blue);
}
.cp-public-home__card-icon .dashicons {
    display: inline-flex;
    width: 26px;
    height: 26px;
    align-items: center;
    justify-content: center;
    font-size: 26px;
}
.cp-public-home__number { color: #d3dfeb; font-size: 28px; font-weight: 900; }
.cp-public-home__card h3 {
    margin: 25px 0 9px;
    color: var(--cp-home-blue-dark);
    font-size: clamp(24px, 3vw, 31px);
    line-height: 1.12;
}
.cp-public-home__card > p {
    margin: 0 0 24px;
    color: #607086;
    font-size: 15px;
    line-height: 1.6;
}
.cp-public-home__links {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: auto;
}
.cp-public-home__links a {
    min-width: 0;
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 13px;
    border: 1px solid #c6d9ed;
    border-radius: 10px;
    background: #f4f8fd;
    color: var(--cp-home-blue-dark) !important;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none !important;
    transition: color .18s ease, background .18s ease, border-color .18s ease;
}
.cp-public-home__links a:hover,
.cp-public-home__links a:focus {
    border-color: var(--cp-home-blue);
    background: var(--cp-home-blue);
    color: #fff !important;
}
.cp-public-home__card--featured .cp-public-home__links a {
    border-color: var(--cp-home-blue);
    background: var(--cp-home-blue);
    color: #fff !important;
}
.cp-public-home__card--featured .cp-public-home__links a:hover,
.cp-public-home__card--featured .cp-public-home__links a:focus {
    border-color: var(--cp-home-blue-dark);
    background: var(--cp-home-blue-dark);
}
.cp-public-home__books {
    position: relative;
    width: 100%;
    overflow: hidden;
    padding: clamp(54px, 7vw, 86px) clamp(18px, 6vw, 84px);
    background:
        radial-gradient(circle at 82% 40%, rgba(53, 130, 222, .27), transparent 33%),
        linear-gradient(135deg, var(--cp-home-blue-deep), var(--cp-home-blue-dark) 58%, #0758b8);
    color: #fff;
}
.cp-public-home__books::before {
    position: absolute;
    top: -180px;
    left: -120px;
    width: 390px;
    height: 390px;
    border: 1px solid rgba(240, 210, 142, .2);
    border-radius: 50%;
    box-shadow: 0 0 0 46px rgba(255,255,255,.02), 0 0 0 92px rgba(255,255,255,.016);
    content: "";
    pointer-events: none;
}
.cp-public-home__books-inner {
    position: relative;
    display: grid;
    width: min(1150px, 100%);
    min-width: 0;
    margin-inline: auto;
    grid-template-columns: minmax(260px, .8fr) minmax(480px, 1.2fr);
    align-items: center;
    gap: clamp(34px, 7vw, 90px);
}
.cp-public-home__books-copy { min-width: 0; }
.cp-public-home__books-copy p,
.cp-public-home__books-copy h2,
.cp-public-home__books-copy span,
.cp-public-home__books-copy small { margin: 0; }
.cp-public-home__books-copy p {
    color: var(--cp-home-gold-light);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.cp-public-home__books-copy h2 {
    margin-top: 10px;
    color: #fff;
    font-size: clamp(30px, 4vw, 48px);
    letter-spacing: -.035em;
    line-height: 1.08;
}
.cp-public-home__books-copy span {
    display: block;
    max-width: 490px;
    margin-top: 17px;
    color: rgba(255,255,255,.76);
    font-size: 16px;
    line-height: 1.65;
}
.cp-public-home__books-copy small {
    display: block;
    margin-top: 17px;
    color: var(--cp-home-gold-light);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .02em;
}
.cp-public-home__books-showcase {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: center;
    padding: 24px 20px 30px;
    isolation: isolate;
}
.cp-public-home__book-link {
    position: relative;
    width: clamp(112px, 12vw, 156px);
    flex: 0 0 auto;
    margin: 0 0 0 clamp(-34px, -2.4vw, -20px);
    color: inherit !important;
    text-decoration: none !important;
    transition: filter .2s ease;
}
.cp-public-home__book-link:first-child { margin-left: 0; }
.cp-public-home__book {
    position: relative;
    width: 100%;
    aspect-ratio: 7 / 10;
    overflow: hidden;
    margin: 0;
    border: 5px solid rgba(255,255,255,.94);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 22px 38px rgba(0,0,0,.3);
    transition: border-color .2s ease, box-shadow .2s ease;
}
.cp-public-home__book img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #fff;
}
.cp-public-home__book-link:hover,
.cp-public-home__book-link:focus-visible { filter: brightness(1.04); }
.cp-public-home__book-link:hover .cp-public-home__book,
.cp-public-home__book-link:focus-visible .cp-public-home__book {
    border-color: var(--cp-home-gold-light);
    box-shadow: 0 26px 46px rgba(0,0,0,.38), 0 0 0 2px rgba(240,210,142,.28);
}
.cp-public-home__book-link:focus-visible {
    outline: 3px solid var(--cp-home-gold-light);
    outline-offset: 7px;
    border-radius: 9px;
}
.cp-public-home__book-link--1 { z-index: 1; transform: rotate(-7deg) translateY(12px); }
.cp-public-home__book-link--2 { z-index: 2; transform: rotate(-2deg) translateY(-5px); }
.cp-public-home__book-link--3 { z-index: 3; transform: rotate(3deg) translateY(-2px); }
.cp-public-home__book-link--4 { z-index: 4; transform: rotate(7deg) translateY(13px); }
@media (max-width: 960px) {
    .cp-public-home__hero { padding-inline: 22px; }
    .cp-public-home__hero-content h1 { font-size: clamp(50px, 10vw, 82px); }
    .cp-public-home__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cp-public-home__card,
    .cp-public-home__card--featured { min-height: 330px; grid-column: span 1; }
    .cp-public-home__books-inner {
        grid-template-columns: minmax(220px, .8fr) minmax(390px, 1.2fr);
        gap: 24px;
    }
    .cp-public-home__book-link {
        width: clamp(100px, 14vw, 132px);
        margin-left: -26px;
    }
}
@media (max-width: 720px) {
    .cp-public-home__hero {
        min-height: 580px;
        min-height: max(580px, 82svh);
        padding: 64px 16px 60px;
        border-radius: 0 0 28px 28px;
    }
    .cp-public-home__hero::before { background-size: 38px 38px; }
    .cp-public-home__hero::after {
        right: -170px;
        bottom: -240px;
        width: 410px;
        height: 410px;
    }
    .cp-public-home__formula { font-size: 42px; }
    .cp-public-home__formula--one { top: 7%; left: -3%; }
    .cp-public-home__formula--two { right: -2%; bottom: 8%; }
    .cp-public-home__eyebrow { font-size: 11px; letter-spacing: .16em; line-height: 1.45; }
    .cp-public-home__hero-content h1 {
        margin-top: 14px;
        font-size: clamp(34px, 11vw, 53px);
        letter-spacing: -.045em;
        line-height: .98;
        white-space: nowrap;
    }
    .cp-public-home__claim { margin-top: 16px; font-size: clamp(24px, 7.2vw, 31px); }
    .cp-public-home__rule { margin: 23px auto 19px; }
    .cp-public-home__intro { max-width: 440px; font-size: 15px; line-height: 1.55; }
    .cp-public-home__discover {
        width: min(250px, 100%);
        min-height: 48px;
        justify-content: center;
        margin-top: 26px;
        padding-inline: 17px;
    }
    .cp-public-home__modules { padding: 66px 14px; }
    .cp-public-home__modules-heading { margin-bottom: 36px; }
    .cp-public-home__modules-heading h2 { font-size: clamp(28px, 8.5vw, 38px); }
    .cp-public-home__modules-heading span { margin-top: 13px; font-size: 15px; line-height: 1.55; }
    .cp-public-home__grid { grid-template-columns: 1fr; }
    .cp-public-home__card,
    .cp-public-home__card--featured {
        width: 100%;
        min-width: 0;
        min-height: 0;
        grid-column: 1;
        padding: 23px 20px;
        border-radius: 17px;
    }
    .cp-public-home__card:hover { transform: none; }
    .cp-public-home__card-icon { width: 46px; height: 46px; border-radius: 13px; }
    .cp-public-home__card-icon .dashicons { width: 23px; height: 23px; font-size: 23px; }
    .cp-public-home__number { font-size: 24px; }
    .cp-public-home__card h3 { margin-top: 20px; font-size: 25px; }
    .cp-public-home__card > p { margin-bottom: 20px; font-size: 14px; line-height: 1.55; }
    .cp-public-home__links { flex-direction: column; }
    .cp-public-home__links a { width: 100%; min-height: 44px; white-space: normal; }
    .cp-public-home__books { padding: 56px 15px 62px; }
    .cp-public-home__books-inner { grid-template-columns: 1fr; gap: 30px; }
    .cp-public-home__books-copy { text-align: center; }
    .cp-public-home__books-copy h2 { font-size: clamp(28px, 8vw, 38px); }
    .cp-public-home__books-copy span { max-width: 470px; margin-inline: auto; font-size: 15px; }
    .cp-public-home__books-showcase {
        display: grid;
        width: min(330px, 100%);
        margin-inline: auto;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        padding: 0;
    }
    .cp-public-home__book-link,
    .cp-public-home__book-link:first-child {
        width: 100%;
        max-width: 145px;
        margin: 0;
        justify-self: center;
        transform: none;
    }
    .cp-public-home__book { border-width: 4px; }
}
@media (max-width: 370px) {
    .cp-public-home__hero { padding-inline: 12px; }
    .cp-public-home__hero-content h1 { font-size: clamp(30px, 10.5vw, 39px); }
    .cp-public-home__claim { font-size: 23px; }
    .cp-public-home__intro { font-size: 14px; }
    .cp-public-home__modules { padding-inline: 10px; }
    .cp-public-home__card,
    .cp-public-home__card--featured { padding-inline: 17px; }
    .cp-public-home__books-showcase { gap: 8px; }
}
@media (max-width: 900px) and (orientation: landscape) {
    .cp-public-home__hero { min-height: 560px; padding-block: 54px; }
    .cp-public-home__hero-content h1 { font-size: clamp(43px, 9vw, 67px); }
}
@media (prefers-reduced-motion: reduce) {
    .cp-public-home { scroll-behavior: auto; }
    .cp-public-home__discover,
    .cp-public-home__card,
    .cp-public-home__links a,
    .cp-public-home__book-link,
    .cp-public-home__book { transition: none; }
}
