.scriptive,
h1 small, h2 small {
    font-family: cherry-blossoms-tight, sans-serif;
    font-style: normal;
    font-size: 180%;
    line-height: 1;
}

html {
	/* -webkit-scroll-snap-type: y mandatory; */
	/* -ms-scroll-snap-type: y mandatory; */
	/* scroll-snap-type: y mandatory; */
	scroll-behavior: smooth;
}
body > header,
body > footer {
	scroll-snap-align: start;
	background-color: white;
    position: relative;
    z-index: 99;
}
body > header:after {
    content: "";
    position: absolute;
    width: 100%;
    height: 1px;
    bottom: -6px;
    background: #ffffff;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 40%, rgba(255, 255, 255, 1) 60%, rgba(255, 255, 255, 0) 100%);
}
[id^="section-"] {
	min-height: 50vh;
	scroll-snap-align: start;
}
[id^="section-"] > .row {
	align-content: center;
}


h1,.h1{font-size:clamp(2.6rem,6vw,4.2rem)}
h2,.h2{font-size:clamp(2rem,5vw,3rem)}
h3,.h3{font-size:clamp(1.8rem,4vw,2.5rem)}
h4,.h4{font-size:clamp(1.6rem,3vw,2rem)}
h5,.h5{font-size:clamp(1.4rem,2vw,1.5rem)}
h6,.h6{font-size:1.2rem}

/*
.h1, h1 {
    font-size: calc(1.6rem + 1.5vw);
}
.h2, h2 {
    font-size: calc(2.4rem + .9vw);
    margin-bottom: 1.6rem;
}
.h3, h3 {
    font-size: calc(2rem + .6vw);
    margin-bottom: 1.4rem;
    margin-top: 0.8rem;
}
.h4, h4 {
    font-size: calc(1.8rem + .6vw);
    margin-bottom: 1.2rem;
    margin-top: 0.6rem;
}
*/

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
	text-wrap-style: balance;
	margin-block-start: 1.8em;
	margin-block-end: 0.6em;
}
h2 small {
	font-family: cherry-blossoms-tight, sans-serif;
	font-weight: 300;
	font-size: 140%;
	line-height: 0.6;
    display: block;
    position: relative;
    left: -0.8rem;
	color: var(--s1-secondary);
}
h3 small {
	font-weight: 300;
	font-size: 52%;
	line-height: 0.6;
    display: block;
}
h3 .icon {
    font-size: 130%;
}
p {
	text-wrap-style: pretty;
}
.lead {
    font-weight: 400;
    max-width: 45ch;
    text-wrap-style: balance;
}
.text-center .lead {
    margin-inline: auto;
}
.text-end .lead,
.text-md-end .lead,
.text-lg-end .lead {
    margin-inline-start: auto;
}

.btn {
    --bs-btn-padding-x: 1.8rem;
    --bs-btn-padding-y: 1rem;
	font-weight: 700;
}
.btn-lg {
    --bs-btn-padding-x: 2.2rem;
    --bs-btn-padding-y: 1.4rem;
}
.btn-sm {
    --bs-btn-padding-x: 1.4rem;
    --bs-btn-padding-y: 0.8rem;
}
.btn:has( + .btn) {
	margin-inline-end: 0.8rem;
}
.btn-link {
	--bs-btn-padding-x: 0.8rem;
    --bs-btn-padding-y: 1.8rem 0.6rem;
	text-decoration: none;
}

[data-bs-toggle] {
    cursor: pointer;
}

.button-block {
	padding-block: 1.2rem;
}
.button-block .btn {
	margin-block-end: 1rem;
}

p:has(.btn:first-child) {
    margin-block: 2.2rem;
}

.card-body {
    padding: 1.8rem 2.2rem;
}

.card.blob {
    --card-bg-ch: var(--s1-white-ch);
    --card-shad-top-ch: var(--s1-white-ch);
    --card-shad-edge-ch: var(--s1-white-ch);
    --card-shad-bot-ch: var(--s1-white-ch);
    --card-tint: var(--s1-l-100);
    --card-opacity: 0.1;
    --card-opacity-modifier: 0;
	text-decoration: none;
    background: lch(var(--card-tint) var(--card-bg-ch) / calc(var(--card-opacity) + var(--card-opacity-modifier) + 0.1));
    width: 100%;
    height: 100%;
    border-radius: 30% 60% 70% 30% / 60% 50% 60% 50%;
    border-color: transparent;
    box-shadow: 0px 0px 26px lch(var(--card-tint) var(--card-shad-edge-ch) / calc(var(--card-opacity) + var(--card-opacity-modifier) + 0.35)), 40px 60px 40px lch(var(--card-tint) var(--card-shad-bot-ch) / calc(var(--card-opacity) + var(--card-opacity-modifier) + 0)), -30px -60px 40px lch(var(--card-tint) var(--card-shad-top-ch) / calc(var(--card-opacity) + var(--card-opacity-modifier) + 0));
    transition: all .6s;
}
.card.blob .card-body {
    padding: 4rem 5rem;
}
.bkg-img-primary .card.blob {
    --card-bg-ch: var(--s1-secondary-ch);
    --card-shad-top-ch: var(--s1-secondary-ch);
    --card-shad-edge-ch: var(--s1-secondary-ch);
    --card-shad-bot-ch: var(--s1-secondary-ch);
    --card-tint: var(--s1-l-90);
    --card-opacity: 0.2;
}
.card.blob h3 {
    white-space: pre;
}
.card.blob h3 small {
    line-height: 1;
    white-space: normal;
}
.bkg-img-primary .card.blob h3 {
    color: var(--s1-accent);
}

.bkg-img-secondary .card.blob {
    --card-bg-ch: var(--s1-primary-ch);
    --card-shad-top-ch: var(--s1-primary-ch);
    --card-shad-edge-ch: var(--s1-primary-ch);
    --card-shad-bot-ch: var(--s1-primary-ch);
    --card-tint: var(--s1-l-10);
    --card-opacity: 0.2;
}
.bkg-img-secondary .card.blob h3 {
    color: var(--s1-accent);
}

.bkg-img-accent .card.blob {
    --card-bg-ch: var(--s1-primary-ch);
    --card-shad-top-ch: var(--s1-primary-ch);
    --card-shad-edge-ch: var(--s1-primary-ch);
    --card-shad-bot-ch: var(--s1-primary-ch);
    --card-tint: var(--s1-l-30);
    --card-opacity: 0.25;
    color: var(--bs-dark);
}
.bkg-img-accent .card.blob h3 {
    color: var(--bs-white);
}

.bkg-img-accent2 .card.blob {
    --card-bg-ch: var(--s1-primary-ch);
    --card-shad-top-ch: var(--s1-primary-ch);
    --card-shad-edge-ch: var(--s1-primary-ch);
    --card-shad-bot-ch: var(--s1-primary-ch);
    --card-tint: var(--s1-l-30);
    --card-opacity: 0.25;
    color: var(--bs-white);
}
.bkg-img-accent2 .card.blob h3 {
    color: var(--s1-primary);
}
.bkg-img-accent2 .card.blob h3 small {
    color: var(--bs-white);
}

.bkg-img-accent3 .card.blob {
    --card-bg-ch: var(--s1-primary-ch);
    --card-shad-top-ch: var(--s1-primary-ch);
    --card-shad-edge-ch: var(--s1-primary-ch);
    --card-shad-bot-ch: var(--s1-primary-ch);
    --card-tint: var(--s1-l-30);
    --card-opacity: 0.25;
    color: var(--bs-dark);
}
.bkg-img-accent3 .card.blob h3 {
    color: var(--bs-white);
}
.bkg-img-accent3 .card.blob h3 small {
    color: var(--s1-secondary);
}

.bkg-img-dark .card.blob {
    --card-bg-ch: var(--s1-accent-ch);
    --card-shad-top-ch: var(--s1-accent-ch);
    --card-shad-edge-ch: var(--s1-accent-ch);
    --card-shad-bot-ch: var(--s1-accent-ch);
    --card-tint: var(--s1-l-100);
    --card-opacity: 0.15;
}
.bkg-img-dark .card.blob h3 {
    color: var(--s1-accent);
}

.bkg-img-clear .card.blob {
    --card-bg-ch: var(--s1-white-ch);
    --card-shad-top-ch: var(--s1-white-ch);
    --card-shad-edge-ch: var(--s1-white-ch);
    --card-shad-bot-ch: var(--s1-white-ch);
    --card-tint: var(--s1-l-80);
    --card-opacity: 0.15;
}
.bkg-img-clear .card.blob h3 {
    color: var(--s1-primary);
}
.bkg-img-clear .card.blob h3 small {
    color: var(--s1-secondary);
}
.bkg-img-clear .card.blob h3 .icon {
    fill: var(--s1-accent);
}

.card.blob:hover {
    --card-opacity-modifier: 0.1;
    border-radius: 20% 20% 20% 20% / 20% 20% 20% 20% !important;
    transition: all .3s;
}


.logo {
	font-weight: 800;
	font-size: 1.6rem;
	text-decoration: none;
	color: var(--s1-secondary);
	letter-spacing: -0.6px;
	position: relative;
    bottom: -0.6rem;
    display: flex;
    line-height: 1;
    align-items: center;
    column-gap: 0.6rem;
    z-index: 9;
}
footer .logo {
    display: block;
}

.bkg-img {
    background: image-set(var(--bg-image));
    background-size: cover;
	padding-block: 4rem;
    background-repeat: no-repeat;
    background-position: center;
}
.bkg-img * {
    color: var(--bs-white);
    text-shadow: 1px 2px 3.5px rgb(0 0 0 / 0.5);
}
.bkg-img-clear {
    background: image-set(var(--bg-image));
    background-size: cover;
	padding-block: 4rem;
    background-repeat: no-repeat;
    background-position: center;
}
.bkg-img-primary {
    background: linear-gradient(195deg, lch(var(--s1-primary-l) var(--s1-primary-ch) / 0.5) 10%, lch(var(--s1-primary-l) var(--s1-primary-ch) / 0.9) 55%), image-set(var(--bg-image));
    background-size: cover;
	padding-block: 4rem;
    background-repeat: no-repeat;
    background-position: center;
}
.bkg-img-primary * {
    color: var(--bs-white);
}
.bkg-img-primary h2 small {
    color: var(--s1-accent);
}
.bkg-img-secondary {
    background: linear-gradient(195deg, lch(var(--s1-secondary-l) var(--s1-secondary-ch) / 0.5) 10%, lch(var(--s1-secondary-l) var(--s1-secondary-ch) / 0.9) 55%), image-set(var(--bg-image));
    background-size: cover;
	padding-block: 4rem;
    background-repeat: no-repeat;
    background-position: center;
}
.bkg-img-secondary * {
    color: var(--bs-white);
}
.bkg-img-secondary h2 small {
    color: var(--s1-primary);
}
.bkg-img-accent {
    background: linear-gradient(195deg, lch(var(--s1-accent-l) var(--s1-accent-ch) / 0.4) 10%, lch(var(--s1-accent-l) var(--s1-accent-ch) / 0.85) 55%), image-set(var(--bg-image));
    background-size: cover;
	padding-block: 4rem;
    background-repeat: no-repeat;
    background-position: center;
}
.bkg-img-accent * {
    color: var(--bs-white);
}
.bkg-img-accent h2 {
    color: var(--s1-primary);
}
.bkg-img-accent h2 small {
    color: var(--bs-white);
}

.bkg-img-accent2 {
    background: linear-gradient(195deg, lch(var(--s1-accent2-l) var(--s1-accent2-ch) / 0.5) 10%, lch(var(--s1-accent2-l) var(--s1-accent2-ch) / 0.9) 55%), image-set(var(--bg-image));
    background-size: cover;
	padding-block: 4rem;
    background-repeat: no-repeat;
    background-position: center;
}
.bkg-img-accent2 * {
    color: var(--bs-white);
}
.bkg-img-accent2 h2 {
    color: var(--s1-primary);
}
.bkg-img-accent2 h2 small {
    color: var(--bs-white);
}

.bkg-img-accent3 {
    background: linear-gradient(195deg, lch(var(--s1-accent3-l) var(--s1-accent3-ch) / 0.5) 10%, lch(var(--s1-accent3-l) var(--s1-accent3-ch) / 0.9) 55%), image-set(var(--bg-image));
    background-size: cover;
	padding-block: 4rem;
    background-repeat: no-repeat;
    background-position: center;
}
.bkg-img-accent3 h2 small {
    color: var(--s1-secondary);
}

.img-mask {
    mask-image: url(/images/logo-mask.svg);
    mask-mode: alpha;
    mask-size: contain;
    mask-repeat: no-repeat;
    max-width: 100%;
}
.bkg-img-dark {
    background: linear-gradient(195deg, lch(var(--s1-l-10) var(--s1-primary-ch) / 0.5) 10%, lch(var(--s1-l-10) var(--s1-primary-ch) / 0.9) 55%), image-set(var(--bg-image));
    background-size: cover;
	padding-block: 4rem;
    background-repeat: no-repeat;
    background-position: center;
}
.bkg-img-dark * {
    color: var(--bs-white);
}
.bkg-img-dark h2 small {
    color: var(--s1-accent);
}
.bkg-img-dark .form-control {
    background-color: lch(var(--s1-accent-l) var(--s1-accent-ch) / 0.15);
}
.bkg-img-dark .form-control:focus {
    color: var(--bs-white);
}

.bkg-img-tint {
    background: linear-gradient(195deg, lch(var(--s1-l-10) var(--s1-primary-ch) / 0) 10%, lch(var(--s1-l-10) var(--s1-primary-ch) / 0.5) 55%), image-set(var(--bg-image));
    background-size: cover;
    padding-block: 4rem;
    background-repeat: no-repeat;
    background-position: center;
}
.bkg-img-tint * {
    color: var(--bs-white);
}
.bkg-img-tint h2 small {
    color: var(--s1-accent);
}

.bottom-wave-mask {
        --mask: radial-gradient(67.08px at 50% calc(100% - 90px), #000 99%, #0000 101%) calc(50% - 60px) 0 / 120px 100%, radial-gradient(67.08px at 50% calc(100% + 60px), #0000 99%, #000 101%) 50% calc(100% - 30px) / 120px 100% repeat-x;
        -webkit-mask: var(--mask);
        mask: var(--mask);
        margin-bottom: -40px;
}
.bottom-wavy-mask {
    clip-path: shape(from 0 0,vline to calc(100% - 15px),curve to 11.54% calc(100% - 9px) with 7.69% calc(100% - 9px),curve to 19.23% calc(100% - 5px) with 15.38% calc(100% - 9px),curve to 26.92% calc(100% - 12px) with 23.08% calc(100% - 1px),curve to 34.62% calc(100% - 26.5px) with 30.77% calc(100% - 23px),curve to 42.31% calc(100% - 16.5px) with 38.46% calc(100% - 30px),curve to 50% calc(100% - 12px) with 46.15% calc(100% - 3px),curve to 57.69% calc(100% - 14px) with 53.85% calc(100% - 21px),curve to 65.38% calc(100% - 6.5px) with 61.54% calc(100% - 7px),curve to 73.08% calc(100% - 3px) with 69.23% calc(100% - 6px),curve to 80.77% calc(100% - 5.5px) with 76.92% calc(100% - 0px),curve to 88.46% calc(100% - 7px) with 84.62% calc(100% - 11px),curve to 100% calc(100% - 15px) with 92.31% calc(100% - 3px),vline to 0, hline to 0);
    margin-bottom: -40px;
}

.offcanvas, .offcanvas-lg, .offcanvas-md, .offcanvas-sm, .offcanvas-xl, .offcanvas-xxl {
    --bs-offcanvas-bg: white;
}
.offcanvas-header {
    align-items: flex-start;
}

.nav-item .btn.btn-link {
    position: relative;
}
.nav-item .btn.btn-link:hover,
.nav-item .btn.btn-link:focus,
.nav-item .btn.btn-link:active {
    color: var(--s1-secondary);
}
.nav-item .btn.btn-link.active {
    color: var(--s1-accent);
}
.nav-item .btn.btn-link.active:after {
    content: "";
    position: absolute;
    width: 100%;
    height: 1px;
    bottom: 8px;
    left: 0;
    background: var(--s1-accent);
    background: linear-gradient(90deg, rgba(255, 255, 255, 0) 30%, var(--s1-accent) 45%, var(--s1-accent) 55%, rgba(255, 255, 255, 0) 70%);
}

.nav.social .btn-link {
    padding: 0.1rem;
    font-size: 1.6rem;
    transition: all .3s;
}
.nav.social .btn-link:hover,
.nav.social .btn-link:active {
	color: var(--s1-secondary);
}
.nav-connect-btn,
.nav-connect-btn:hover,
.nav-connect-btn:active {
    position: relative;
    isolation: isolate;
    color: var(--s1-accent);
    transition: all .3s;
}
.nav-connect-btn::before {
    border-bottom: 2px solid white;
    content: '';
    position: absolute;
    inset: 20% 0 10% 0;
    border-radius: var(--s1-radius);
    /* background-image: linear-gradient(0deg, lch(var(--s1-accent-l) var(--s1-accent-ch) / 0.5) -20%, lch(var(--s1-accent-l) var(--s1-accent-ch) / 0) 40%); */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: -1;
    box-shadow: 0 8px 8px rgb(0 0 0 / 0.1);
    transition: all .3s;
}
.nav-connect-btn:hover::before,
.nav-connect-btn:active::before {
    background-image: linear-gradient(0deg, lch(var(--s1-accent-l) var(--s1-accent-ch) / 0.15) -20%, lch(var(--s1-accent-l) var(--s1-accent-ch) / 0) 40%);
    box-shadow: 0 8px 8px rgb(0 0 0 / 0.15);
}

.special-list-group {
    display: flex;
    flex-direction: column;
    align-items: flex-center;
    font-size: 1.25rem;
    font-weight: 400;
    text-align: center;
    padding-inline-end: 3rem;
    padding-block: 2rem;
}
.special-list-group a {
    padding: 0.4rem 1.8rem;
    text-decoration: none;
    background: rgb(255 255 255 / 0.2);
    border-radius: var(--s1-radius);
    margin-block-end: 1rem;
    border: 1px solid transparent;
    transition: all .6s;
}
.special-list-group a:first-child {
    margin-block-start: 1rem;
}
.special-list-group a:hover,
.special-list-group a:focus,
.special-list-group a:active {
    border-bottom: 1px solid var(--s1-accent);
    color: var(--s1-accent);
    transform: translateX(0.6rem);
}

.special-list-group a .icon {
    font-size: 1.8rem;
    margin-inline-start: 8px;
    position: relative;
    top: -2px;
    filter: drop-shadow(2px 2px 4px rgb(0 0 0 / 0.4));
    transition: inherit;
}
.special-list-group a:hover .icon,
.special-list-group a:focus .icon,
.special-list-group a:active .icon {
    transform: scale(1.15);
    filter: drop-shadow(2px 2px 4px rgb(0 0 0 / 0.8));
}

.crisis-icon {
    font-size: 7rem;
    margin-block-start: -0.6rem;
    color: var(--s1-secondary);
}

.item-list {
    margin-block-end: 0.8rem;
    box-shadow: 4px 4px 8px rgb(0 0 0 / 0.15);
    border-radius: var(--s1-radius);
    background: linear-gradient(352deg,rgba(255, 255, 255,50%) 0%, rgba(255, 255, 255, 100%) 60%);
    padding-block: 0.7rem;
    text-decoration: none;
    line-height: 1.4;
    transition: all .4s;
}
.item-list:hover {
    transform: translateX(-10px);
    box-shadow: 20px 20px 30px rgb(0 0 0 / 0.05);
}
.item-list.hover-up:hover {
    transform: translate(0px, -10px);
}
.item-list > div {
    position: relative;
}
.item-list * {
    color: var(--bs-body-color);
}
.item-title {
    font-weight: 800;
    margin-block-start: 1rem;
    font-size: 1.6rem;
    margin-block-end: 0.2rem;
    /*text-shadow: 1px 1px 4px rgb(0 0 0 / 0.2);*/
    color: var(--s1-secondary);
}
.item-image {
    border-radius: var(--s1-radius);
    border: 4px solid var(--bs-white);
}
#section-books .item-list {
    height: 92%;
}
#section-books .item-image {
    background-color:  var(--bs-white);
}
.book-badge {
    position: absolute;
    width: 36%;
    right: 0;
}

.resources-search-lists h4 span {
    color: var(--s1-secondary);
}
.list-group.resources .list-group-item {
    font-weight: 600;
    cursor: pointer;
}
.list-group.resources .badge {
    font-size: 66%;
    font-weight: 400;
}
.list-group.resources .owned-badge {
    position: absolute;
    left: -4px;
    top: -2px;
    color: var(--s1-accent);
}
.list-group.resources .list-group-item.text-bg-primary {
    border-bottom-color: var(--s1-secondary);
}

.modal-content {
    background-color: white;
}
.popover {
    --bs-popover-bg: white;
}
.stripe_payment_wrapper {
    border: var(--bs-border-width) solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    background-color: var(--bs-body-bg);
    padding: .7rem;
}
#paywallModal .form-check {
    border: 1px solid var(--s1-secondary);
    border-radius: var(--s1-radius);
    padding: 0.6rem 1rem;
    font-weight: 600;
    background-color: lch(var(--s1-secondary-l) var(--s1-secondary-ch) / 0.25);
    box-shadow: 3px 3px 10px rgb(0,0,0,0.2);
    cursor: pointer;
}
#paywallModal .form-check * {
    cursor: pointer;
}
#paywallModal .form-check .icon {
    font-size: 1.6rem;
    position: relative;
    top: -1px;
    margin-right: 0.2rem;
}
#paywallModal .form-check input[type="checkbox"] {
    background-color: white;
}
#paywallModal .form-check input:checked {
    background-color: var(--s1-primary);
    border-color: var(--s1-primary);
}

#paywallModal .form-check:has(input[type="checkbox"]:checked) {
    background-color: var(--s1-accent);
}

.info-popover {
    font-size: 1.4rem;
    position: absolute;
    left: -0.6rem;
    top: 0.2rem;
    display: block;
    line-height: 0;
    isolation: isolate;
    color: var(--s1-primary);
}
.info-popover:before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: white;
    border-radius: 9999px;
    display: block;
    z-index: -1;
}

.vh-100 {
    min-height: 100vh;
}
.vh-95 {
    min-height: 95vh;
}
.vh-60 {
    min-height: 60vh;
}


/* Small devices (landscape phones, 576px and up) */
@media (min-width: 576px) {
    .vh-sm-100 {
        min-height: 100vh;
    }
    .vh-sm-95 {
        min-height: 95vh;
    }
    .vh-sm-60 {
        min-height: 60vh;
    }
    .vh-sm-auto {
        min-height: auto;
    }
}

/* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) {
    .vh-md-100 {
        min-height: 100vh;
    }
    .vh-md-95 {
        min-height: 95vh;
    }
    .vh-md-60 {
        min-height: 60vh;
    }
    .vh-md-auto {
        min-height: auto;
    }
    .special-list-group {
        align-items: flex-end;
        border-inline-end: 1px solid rgb(255 255 255 / 0.5);
        text-align: end;
    }
}

/* Large devices (desktops, 992px and up) */
@media (min-width: 992px) {
    .vh-lg-100 {
        min-height: 100vh;
    }
    .vh-lg-95 {
        min-height: 95vh;
    }
    .vh-lg-60 {
        min-height: 60vh;
    }
    .vh-lg-auto {
        min-height: auto;
    }
}

/* X-Large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {}

/* XX-Large devices (larger desktops, 1400px and up) */
@media (min-width: 1400px) {}




