.sunshine-theme {
    --ink: #102d53;
    --green: #102d53;
    --green-dark: #0a2140;
    --lime: #ffda42;
    --paper: #fffdf7;
    --soft: #fff9e5;
    --line: #e6dcc2;
    background: #fffaf0;
    color: var(--ink);
}
.sunshine-theme .site-header,
.sunshine-theme .site-footer {
    background: #102d53;
    color: #fff9e5;
}
.sunshine-theme .site-header { border-bottom-color: #385476; }
.sunshine-theme .site-header .brand-logo { width: clamp(166px, 21vw, 290px); }
.sunshine-theme .site-header #main-navigation { background: #102d53; }
.sunshine-theme .site-header #main-navigation > a,
.sunshine-theme .site-header .main-nav-toggle,
.sunshine-theme .site-header .account-menu > summary { color: #fff9e5; }
.sunshine-theme .site-header .main-nav-toggle { background: #102d53; border-color: #8194ad; }
.sunshine-theme .site-header .main-nav-toggle-icon i { background: currentColor; }
.sunshine-theme .site-header #main-navigation > a.button {
    color: #ffda42;
    background: transparent;
    border: 1px solid currentColor;
    border-radius: 999px;
}
.sunshine-theme .site-header #main-navigation > a.button:hover {
    color: #102d53;
    background: #ffda42;
    border-color: #ffda42;
}
.sunshine-theme .site-header .account-menu > summary:hover,
.sunshine-theme .site-header .account-menu[open] > summary { background: #24466d; border-color: #8194ad; }
.sunshine-theme .site-header .account-trigger-role { color: #ffda42; }
.sunshine-theme .site-header .account-avatar { background: #ffedab; color: #102d53; }
.sunshine-theme .site-header :focus-visible,
.sunshine-theme .site-footer :focus-visible { outline: 3px solid #ffda42; outline-offset: 3px; }

.sunshine-theme .site-footer { border-top: 3px solid #ffcd00; }
.sunshine-theme .site-footer .site-footer-brand img { content: url("/brand/home-comic-logo.svg?v=2"); width: 250px; }
.sunshine-theme .site-footer .site-footer-brand p,
.sunshine-theme .site-footer .site-footer-bottom small,
.sunshine-theme .site-footer a,
.sunshine-theme .site-footer .analytics-settings { color: #fff9e5; }
.sunshine-theme .site-footer h2,
.sunshine-theme .site-footer a:hover,
.sunshine-theme .site-footer .analytics-settings:hover { color: #ffda42; }
.sunshine-theme .site-footer .site-footer-bottom { border-color: #456080; }
.sunshine-theme:has(.clear-hero, .contact-page) .site-footer { margin-top: 0; }

.sunshine-theme #main .button:not(.outline):not(.danger):not([class*="danger"]):not([class*="delete"]) {
    border-radius: 999px;
}
.sunshine-theme #main :is(.page-head, .page-header, .workspace-header, .provider-navigation) .eyebrow {
    color: #102d53;
}
.sunshine-theme #main .eyebrow { color: #315475; }
.sunshine-theme #main :is(input, select, textarea):focus-visible {
    outline: 2px solid #284f7c;
    outline-offset: 2px;
}
.sunshine-theme #main .auth-intro :is(h1, p, .eyebrow) { color: #102d53; }
.sunshine-theme #main .auth-intro .eyebrow,
.sunshine-theme .contact-page .contact-intro .eyebrow {
    display: inline-flex;
    width: fit-content;
    padding: 5px 10px;
    border-radius: 4px;
    background: #fff9e5;
    color: #102d53;
}
.sunshine-theme #main .auth-wrap > .panel,
.sunshine-theme .contact-page .contact-form-panel {
    border-color: #e6d6ab;
    border-radius: 24px;
    background: #fffdf7;
    box-shadow: 0 14px 35px #102d5315;
}
.sunshine-theme .contact-page {
    position: relative;
    isolation: isolate;
    background: linear-gradient(to bottom, #ffcd00 60%, #fff9e5 60%);
    border-bottom-color: #e6d6ab;
}
.sunshine-theme .contact-page :is(.contact-topic-icon, .contact-chat-icon, .contact-mail-icon, .contact-chat) {
    color: #102d53;
    background: #fff1b2;
    border-color: #e6d6ab;
}
.sunshine-theme .contact-page .contact-dot { background: #102d53; box-shadow: none; }
.sunshine-theme .contact-page :is(.contact-back, .contact-chat a, .contact-form-heading h2) { color: #102d53; }

.sunshine-confirmation .site-header .container { padding-block: 20px; }
.sunshine-confirmation main { padding-block: 36px; }
.sunshine-confirmation .site-footer .container { padding-block: 24px; }
.sunshine-confirmation .site-footer button { color: #fff9e5; border-color: #ffda42; }

/* Use the homepage palette and artwork at each page entrance. */
.sunshine-theme .contact-page .contact-shell {
    padding-bottom: clamp(32px, 5vw, 72px);
}
.sunshine-theme .contact-page .contact-intro h1,
.sunshine-theme .contact-page .contact-lead,
.sunshine-theme .contact-page .contact-topics p {
    color: #102d53;
}
.sunshine-theme #main .auth-intro .eyebrow,
.sunshine-theme .contact-page .contact-intro .eyebrow {
    padding-inline: .34em;
    background: #fff9e5;
    clip-path: polygon(2% 10%, 98% 0, 96% 18%, 100% 26%, 97% 38%, 100% 54%, 97% 68%, 100% 82%, 97% 94%, 1% 100%, 3% 82%, 0 72%, 3% 61%, 0 49%, 3% 36%, 0 24%);
}
.sunshine-theme .contact-page .contact-intro .eyebrow,
.sunshine-theme #main .auth-intro .eyebrow { padding: 6px 13px; }
.sunshine-theme .contact-page .contact-chat { background: #fff9e5; }
.sunshine-theme .contact-page .contact-topic-icon { background: #fff9e5; border: 0; }
.sunshine-theme .contact-page .contact-form-panel { border-radius: 28px; }
.sunshine-theme .contact-page .contact-submit,
.sunshine-theme #main .auth-wrap > .panel:not(.contact-form-panel) button[type="submit"].button,
.sunshine-theme #main .auth-wrap > .panel:not(.contact-form-panel) .stack > button.button {
    color: #102d53;
    background: #ffda42;
    border-color: #e9b900;
    box-shadow: 0 3px 0 #102d5326;
}
.sunshine-theme .contact-page .contact-submit:hover:not(:disabled),
.sunshine-theme #main .auth-wrap > .panel:not(.contact-form-panel) .stack > button.button:hover:not(:disabled) {
    color: #102d53;
    background: #ffcd00;
}

.sunshine-theme #main :is(.page-heading, .page-head, .page-header, .workspace-header, .provider-navigation),
.sunshine-theme #main .legal-page > h1,
.sunshine-theme.sunshine-confirmation main > .panel {
    background-color: #ffcd00;
    color: #102d53;
    border-radius: 19px;
}
.sunshine-theme #main :is(.page-heading, .page-head, .page-header, .workspace-header, .provider-navigation),
.sunshine-theme #main .legal-page > h1 {
    padding: clamp(16px, 2.4vw, 32px);
}
.sunshine-theme #main :is(.page-heading, .page-head, .page-header, .workspace-header, .provider-navigation) :is(.eyebrow, .muted, .brand-dot) {
    color: #102d53;
}
.sunshine-theme #main :is(.page-heading, .page-head, .page-header, .workspace-header) .eyebrow {
    display: inline-block;
    padding: 4px 10px;
    background: #fff9e5;
    border-radius: 5px 9px 6px 8px;
}
.sunshine-theme.sunshine-confirmation main > .panel {
    padding-bottom: clamp(90px, 13vw, 148px);
    background-image: url("/brand/home-sunshine-06.webp");
    background-position: left bottom;
    background-size: auto clamp(130px, 18vw, 210px);
    background-repeat: no-repeat;
}
.sunshine-theme .lp-hero {
    background: #ffcd00 url("/brand/home-sunshine-06.webp") left bottom / max(100%, 950px) auto no-repeat;
}
@media (max-width: 760px) {
    .sunshine-theme .contact-page .contact-shell { padding-bottom: 32px; }
}

.sunshine-theme .contact-page .contact-landscape {
    height: clamp(56px, 8vw, 130px);
    margin-top: 24px;
}
.sunshine-theme .contact-page .contact-landscape::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset-inline: 0;
    height: inherit;
    background: url("/brand/contact-landscape-divider.svg?v=2") center / 100% 100% no-repeat;
    pointer-events: none;
}

/* Contact card uses the same rounded paper, ink and hand-drawn accents as the homepage form. */
.sunshine-theme :is(.contact-page, .sunshine-auth) .contact-form-panel {
    position: relative;
    padding: clamp(23px, 3vw, 44px);
    border-radius: clamp(25px, 3vw, 40px);
    background: radial-gradient(ellipse at 5% 0%, #fff3d7, #fff9eb 78%);
}
.sunshine-theme :is(.contact-page, .sunshine-auth) .contact-form-heading {
    padding: 0 min(12%, 65px) 0 0;
    margin-bottom: 24px;
    border: 0;
}
.sunshine-theme :is(.contact-page, .sunshine-auth) .contact-form-heading h2 {
    font-size: clamp(24px, 2.2vw, 33px);
    font-weight: 800;
    line-height: 1.14;
}
.sunshine-theme :is(.contact-page, .sunshine-auth) .contact-form-heading p { color: #425575; font-size: 15px; }
.sunshine-theme :is(.contact-page, .sunshine-auth) svg.contact-letter-sticker {
    position: absolute;
    top: -23px;
    right: 1px;
    width: clamp(67px, 8vw, 112px);
    height: auto;
    transform: rotate(9deg);
    stroke: #102d53;
    stroke-width: 3.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    filter: drop-shadow(2px 3px 0 #102d5326);
    pointer-events: none;
}
.sunshine-theme :is(.contact-page, .sunshine-auth) .contact-form-panel label { color: #102d53; font-size: 16px; font-weight: 750; }
.sunshine-theme :is(.contact-page, .sunshine-auth) .contact-form-panel :is(input:not([type=checkbox]), select, textarea) {
    background: #fffdf7;
    border-color: #bcb29d;
    color: #102d53;
    font-size: 16px;
    box-shadow: 0 2px 3px #102d530d;
}
.sunshine-theme :is(.contact-page, .sunshine-auth) .contact-form-panel :is(input, textarea)::placeholder { color: #536075; }
.sunshine-theme #main .contact-form-panel .contact-submit {
    position: relative;
    justify-self: center;
    justify-content: center;
    width: fit-content;
    max-width: 100%;
    gap: 10px;
    min-height: 54px;
    margin-top: 5px;
    padding-inline: clamp(15px, 2vw, 30px);
    background: #102d53;
    border-color: #102d53;
    border-radius: 999px;
    color: #fff;
    font-size: clamp(16px, 1.45vw, 22px);
    font-weight: 800;
    box-shadow: 0 4px 0 #102d5326;
}
.sunshine-theme #main .contact-form-panel .contact-submit:hover:not(:disabled) {
    color: #fff;
    background: #244774;
    border-color: #244774;
}
.sunshine-theme :is(.contact-page, .sunshine-auth) svg:is(.contact-submit-arrow, .contact-submit-rays) {
    fill: none;
    stroke: currentColor;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.sunshine-theme :is(.contact-page, .sunshine-auth) svg.contact-submit-arrow { width: 15px; height: 19px; flex: 0 0 15px; }
.sunshine-theme :is(.contact-page, .sunshine-auth) svg.contact-submit-rays {
    position: absolute;
    width: 32px;
    height: 30px;
    top: -20px;
    right: -12px;
    color: #102d53;
    stroke-width: 4.5;
    pointer-events: none;
}
.sunshine-theme .contact-page .contact-chat {
    margin-top: 24px;
    background: #102d53;
    border-color: #102d53;
    color: #fff9e5;
}
.sunshine-theme .contact-page .contact-chat :is(h2, p) { color: #fff9e5; }
.sunshine-theme .contact-page .contact-chat a { color: #ffda42; }
.sunshine-theme .contact-page .contact-chat a:focus-visible { outline-color: #ffda42; }

/* Shared application surfaces in the same palette as the public pages. */
.sunshine-theme {
    --sunshine-ink: #102d53;
    --sunshine-yellow: #ffcd00;
    --sunshine-paper: #fff9e5;
    --sunshine-border: #ded0ae;
}
.sunshine-theme #main :is(.page-heading, .page-head, .page-header, .workspace-header, .provider-navigation) {
    border: 1px solid #e2b900;
    box-shadow: 0 3px 0 #102d531a;
}
.sunshine-theme #main :is(.page-heading, .page-head, .page-header, .workspace-header) .eyebrow {
    clip-path: polygon(2% 10%, 98% 0, 96% 18%, 100% 26%, 97% 38%, 100% 54%, 97% 68%, 100% 82%, 97% 94%, 1% 100%, 3% 82%, 0 72%, 3% 61%, 0 49%, 3% 36%, 0 24%);
    padding-inline: 13px;
}
.sunshine-theme #main .page > h1,
.sunshine-theme #main .panel > h1,
.sunshine-theme #main .legal-page > h1 {
    color: var(--sunshine-ink);
    text-decoration: underline;
    text-decoration-color: var(--sunshine-yellow);
    text-decoration-thickness: .16em;
    text-underline-offset: .15em;
    text-decoration-skip-ink: none;
}
.sunshine-theme #main .panel:not(.contact-form-panel, .notification-unread, .is-pending, .is-complete, [role="alert"]) {
    border-radius: 22px;
    border-color: var(--sunshine-border);
    box-shadow: 0 5px 16px #102d530b;
}
.sunshine-theme #main .panel:has(form):not(.contact-form-panel, [role="alert"], .notification-unread, .is-pending, .is-complete),
.sunshine-theme #main .jp-map-panel {
    background: #fffdf7;
}
.sunshine-theme #main .panel form label,
.sunshine-theme #main .jp-routes label {
    color: var(--sunshine-ink);
    font-weight: 700;
}
.sunshine-theme #main :is(.panel form, .jp-routes) :is(input:not([type="checkbox"], [type="radio"], [type="range"], [type="color"], [type="file"]), select, textarea) {
    background-color: #fffdf7;
    border-color: #bcb29d;
    color: var(--sunshine-ink);
}
.sunshine-theme #main :is(.panel form, .jp-routes) :is(input, textarea)::placeholder {
    color: #536075;
    opacity: 1;
}
.sunshine-theme #main .button.outline:not(.danger):hover:not(:disabled) {
    background: var(--sunshine-paper);
    border-color: #d6ae20;
    color: var(--sunshine-ink);
}
.sunshine-theme #main .account-dropdown a:focus-visible,
.sunshine-theme #main .button:focus-visible {
    outline: 2px solid #284f7c;
    outline-offset: 3px;
}
@media (max-width: 620px) {
    .sunshine-theme #main :is(.panel form, .jp-routes) :is(input, select, textarea) { font-size: 16px; }
}

.sunshine-theme .sunshine-auth {
    --auth-landscape-line: 76%;
    position: relative;
    isolation: isolate;
    background: linear-gradient(to bottom, #ffcd00 var(--auth-landscape-line), #fff9e5 var(--auth-landscape-line));
}
.sunshine-theme .sunshine-auth::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: var(--auth-landscape-line) 0 auto;
    height: clamp(65px, 8vw, 130px);
    transform: translateY(-74%);
    background: url("/brand/contact-landscape-divider.svg?v=2") center / 100% 100% no-repeat;
    pointer-events: none;
}
.sunshine-theme #main .sunshine-auth .auth-wrap {
    max-width: 1320px;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(32px, 5vw, 76px);
    padding-block: clamp(36px, 5vw, 78px);
}
.sunshine-theme #main .sunshine-auth .auth-intro {
    padding: clamp(8px, 2vw, 28px) 0 0;
    background: none;
}
.sunshine-theme .sunshine-auth .auth-intro h1 {
    max-width: 10em;
    font-size: clamp(37px, 4.3vw, 61px);
    letter-spacing: -.045em;
    overflow-wrap: anywhere;
    margin-block: 20px;
}
.sunshine-theme #main .sunshine-auth .auth-intro p { font-size: 17px; max-width: 34ch; }
.sunshine-theme #main .sunshine-auth .auth-wrap > .contact-form-panel {
    border-radius: clamp(25px, 3vw, 40px);
    background: radial-gradient(ellipse at 5% 0%, #fff3d7, #fff9eb 78%);
}
.sunshine-theme .sunshine-auth .contact-form-panel form {
    display: grid;
    gap: 18px;
}
.sunshine-theme .sunshine-auth .contact-form-panel .fine-print { margin: 22px 0 0; }
.sunshine-theme:has(.sunshine-auth) .site-footer { margin-top: 0; }
@media (max-width: 800px) {
    .sunshine-theme #main .sunshine-auth .auth-wrap {
        max-width: 640px;
        grid-template-columns: minmax(0, 1fr);
    }
}

.sunshine-theme .sunshine-auth .auth-intro .note {
    max-width: 40ch;
    background: #fff9e5;
    color: #102d53;
    border-color: #e6d6ab;
}
.sunshine-theme .sunshine-auth .auth-intro .text-link {
    color: #102d53;
}

/* Give page headers the same illustrated edge as the public forms. */
.sunshine-theme #main :is(.page-heading, .page-head, .page-header, .workspace-header, .provider-navigation, .legal-page > h1) {
    --sunshine-edge-height: clamp(20px, 3vw, 42px);
    padding-bottom: calc(clamp(16px, 2.4vw, 32px) + var(--sunshine-edge-height));
    background-image: url("/brand/contact-landscape-divider.svg?v=2");
    background-position: center bottom;
    background-repeat: no-repeat;
    background-size: 100% var(--sunshine-edge-height);
}

.sunshine-theme #main .contact-form-panel .legal-acknowledgement {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: start;
    gap: 10px;
    font-size: 14px;
    font-weight: 500;
}
.sunshine-theme .legal-acknowledgement input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: .15em 0 0;
    accent-color: #102d53;
}
.sunshine-theme .legal-acknowledgement a {
    text-decoration: underline;
    text-underline-offset: .15em;
}

.sunshine-theme #main :is(input, select, textarea):is(:autofill, :-webkit-autofill) {
    box-shadow: inset 0 0 0 1000px #fffdf7;
    -webkit-text-fill-color: #102d53;
    caret-color: #102d53;
}

.sunshine-theme #main h1 > em,
.sunshine-theme #main .contact-intro h1 > span {
    display: inline-block;
    max-width: 100%;
    color: #102d53;
    font-style: normal;
    overflow-wrap: anywhere;
    background: #fff4b6;
    clip-path: polygon(3% 7%, 94% 1%, 97% 7%, 96% 17%, 100% 25%, 97% 35%, 99% 44%, 97% 54%, 100% 64%, 97% 75%, 99% 83%, 95% 94%, 2% 100%, 4% 88%, 0 79%, 3% 69%, 0 58%, 3% 47%, 0 34%, 4% 24%, 1% 16%);
    padding-inline: .24em;
}
