:root {
    --bp-ink: #20312c;
    --bp-muted: #66736f;
    --bp-cream: #fbf7ed;
    --bp-beige: #f1e9da;
    --bp-panel: #fffdf8;
    --bp-green: #1f6651;
    --bp-green-dark: #174d3e;
    --bp-green-soft: #e6f0eb;
    --bp-gold: #f2b72f;
    --bp-rose: #e9a0ad;
    --bp-purple: #ad9bd2;
    --bp-border: #dfd6c7;
    --bp-shadow: 0 18px 48px rgba(32, 49, 44, .09);
}

html {
    background: var(--bp-cream);
}

body.bp-publications,
body.bp-publications #page {
    background: var(--bp-cream);
    color: var(--bp-ink);
}

body.bp-publications,
body.bp-publications button,
body.bp-publications input,
body.bp-publications select,
body.bp-publications textarea {
    font-family: Arial, Helvetica, sans-serif;
}

body.bp-publications h1,
body.bp-publications h2,
body.bp-publications h3,
body.bp-publications h4,
body.bp-publications h5,
body.bp-publications h6,
body.bp-publications .site-title,
body.bp-publications .product_title,
body.bp-publications .woocommerce-loop-product__title {
    color: var(--bp-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 500;
}

body.bp-publications a {
    color: var(--bp-green);
}

body.bp-publications a:hover,
body.bp-publications a:focus {
    color: var(--bp-green-dark);
}

body.bp-publications :focus-visible {
    outline: 3px solid rgba(31, 102, 81, .3);
    outline-offset: 3px;
}

/* Header */
body.bp-publications .site-header {
    background: var(--bp-panel) !important;
    border-bottom: 1px solid var(--bp-border) !important;
    box-shadow: 0 5px 22px rgba(32, 49, 44, .035);
    margin: 0 !important;
    padding: 28px 0 0 !important;
}

body.bp-publications .site-header > .col-full,
body.bp-publications .site-content > .col-full,
body.bp-publications .site-footer > .col-full {
    box-sizing: border-box;
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 1180px !important;
    padding-left: 28px !important;
    padding-right: 28px !important;
    width: 100% !important;
}

body.bp-publications .site-branding {
    margin-bottom: 22px;
}

body.bp-publications .site-branding .site-title {
    font-size: clamp(25px, 2.2vw, 34px);
    letter-spacing: -.025em;
    line-height: 1.05;
}

body.bp-publications .site-branding .site-title a {
    color: var(--bp-green) !important;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 700;
}

body.bp-publications .site-branding .site-description {
    color: var(--bp-muted);
    font-size: 13px;
    margin-top: 8px;
}

body.bp-publications .site-search {
    margin-bottom: 22px;
}

body.bp-publications .site-search .widget_product_search input[type="search"] {
    background: var(--bp-cream);
    border: 1px solid var(--bp-border);
    border-radius: 10px;
    min-height: 48px;
}

body.bp-publications .storefront-primary-navigation {
    background: var(--bp-panel);
    border-top: 1px solid rgba(223, 214, 199, .65);
}

body.bp-publications .main-navigation ul.menu > li > a,
body.bp-publications .main-navigation ul.nav-menu > li > a,
body.bp-publications .site-header-cart .cart-contents {
    color: var(--bp-ink) !important;
    font-size: 14px;
    font-weight: 700;
}

body.bp-publications .main-navigation ul.menu > li.current-menu-item > a,
body.bp-publications .main-navigation ul.menu > li.current-menu-ancestor > a {
    color: var(--bp-green) !important;
}

body.bp-publications .main-navigation ul ul {
    background: var(--bp-panel);
    border: 1px solid var(--bp-border);
    border-radius: 0 0 10px 10px;
    box-shadow: var(--bp-shadow);
    overflow: hidden;
}

body.bp-publications .main-navigation ul ul li a {
    color: var(--bp-ink) !important;
}

body.bp-publications .main-navigation ul ul li a:hover {
    background: var(--bp-green-soft);
    color: var(--bp-green-dark) !important;
}

/* Site-wide page canvas */
body.bp-publications .site-content {
    background:
        radial-gradient(circle at 88% 8%, rgba(31, 102, 81, .055), transparent 26rem),
        var(--bp-cream) !important;
    min-height: 58vh;
}

body.bp-publications:not(.home) .site-content > .col-full {
    padding-bottom: clamp(58px, 7vw, 90px) !important;
    padding-top: clamp(30px, 4vw, 54px) !important;
}

body.bp-publications:not(.home) .content-area,
body.bp-publications:not(.home) .site-main,
body.bp-publications:not(.home) article.hentry {
    float: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: none !important;
    width: 100% !important;
}

body.bp-publications .storefront-breadcrumb {
    color: var(--bp-muted);
    font-size: 13px;
    margin: 0 0 26px;
    padding: 0;
}

body.bp-publications .storefront-breadcrumb a {
    color: var(--bp-green);
}

body.bp-publications:not(.home) .entry-header,
body.bp-publications:not(.home) .page-header,
body.bp-publications:not(.home) .woocommerce-products-header {
    margin: 0 0 clamp(26px, 4vw, 42px) !important;
    max-width: 880px;
    padding: 0 !important;
    text-align: left !important;
}

body.bp-publications:not(.home) .entry-title,
body.bp-publications:not(.home) .page-title,
body.bp-publications:not(.home) .woocommerce-products-header__title {
    font-size: clamp(34px, 4vw, 54px) !important;
    letter-spacing: -.035em;
    line-height: 1.08 !important;
    margin: 0 !important;
    max-width: 20ch;
    overflow-wrap: normal;
    text-align: left !important;
    text-wrap: balance;
    word-break: normal;
}

/* Standard publisher pages */
body.bp-publications.page:not(.home):not(.woocommerce-page) article.page {
    background: var(--bp-panel);
    border: 1px solid var(--bp-border);
    border-radius: 22px;
    box-shadow: var(--bp-shadow);
    overflow: hidden;
    padding: clamp(30px, 5vw, 64px);
}

body.bp-publications.page:not(.home):not(.woocommerce-page) article.page .entry-header {
    border-bottom: 1px solid var(--bp-border);
    margin-bottom: clamp(30px, 4vw, 48px) !important;
    max-width: none;
    padding-bottom: 24px !important;
}

body.bp-publications.page:not(.home):not(.woocommerce-page) article.page .entry-title {
    color: var(--bp-green-dark);
}

body.bp-publications.page:not(.home):not(.woocommerce-page) article.page .entry-content {
    color: var(--bp-muted);
    font-size: 17px;
    line-height: 1.75;
}

body.bp-publications .bp-page-intro {
    margin-bottom: clamp(36px, 5vw, 58px);
    max-width: 900px;
}

body.bp-publications .bp-eyebrow {
    color: var(--bp-green) !important;
    font-size: 12px !important;
    font-weight: 800;
    letter-spacing: .17em;
    margin: 0 0 10px !important;
    text-transform: uppercase;
}

body.bp-publications .bp-page-intro h2 {
    color: var(--bp-ink);
    font-size: clamp(34px, 4.2vw, 58px);
    letter-spacing: -.035em;
    line-height: 1.05;
    margin: 0 0 22px;
    max-width: 18ch;
    text-wrap: balance;
}

body.bp-publications .bp-lead {
    color: var(--bp-muted);
    font-size: clamp(18px, 1.7vw, 21px);
    line-height: 1.65;
    max-width: 780px;
}

body.bp-publications .bp-story-grid,
body.bp-publications .bp-contact-grid,
body.bp-publications .bp-policy-grid {
    display: grid;
    gap: 22px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0 0 44px;
}

body.bp-publications .bp-story-grid section,
body.bp-publications .bp-contact-grid section,
body.bp-publications .bp-policy-grid section {
    background: var(--bp-cream);
    border: 1px solid var(--bp-border);
    border-radius: 16px;
    padding: 28px;
}

body.bp-publications .bp-story-grid section:first-child,
body.bp-publications .bp-contact-grid section:first-child {
    border-top: 5px solid var(--bp-gold);
}

body.bp-publications .bp-story-grid section:nth-child(2),
body.bp-publications .bp-contact-grid section:nth-child(2) {
    border-top: 5px solid var(--bp-rose);
}

body.bp-publications .bp-story-grid section:nth-child(3),
body.bp-publications .bp-contact-grid section:nth-child(3) {
    border-top: 5px solid var(--bp-purple);
}

body.bp-publications .bp-story-grid h3,
body.bp-publications .bp-contact-grid h3,
body.bp-publications .bp-policy-grid h3 {
    font-size: 23px;
    line-height: 1.2;
    margin: 10px 0 14px;
}

body.bp-publications .bp-card-number {
    color: var(--bp-green);
    font: italic 28px Georgia, "Times New Roman", serif;
}

body.bp-publications .bp-small {
    font-size: 13px;
}

body.bp-publications .bp-page-cta {
    align-items: center;
    background: var(--bp-green-dark);
    border-radius: 16px;
    color: #fff;
    display: flex;
    gap: 30px;
    justify-content: space-between;
    margin-top: 44px;
    padding: clamp(26px, 4vw, 42px);
}

body.bp-publications .bp-page-cta h3 {
    color: #fff;
    font-size: clamp(27px, 3vw, 38px);
    margin: 5px 0 0;
}

body.bp-publications .bp-page-cta .bp-eyebrow {
    color: #f6cc61 !important;
}

body.bp-publications .bp-owner-note {
    background: #fff4d5;
    border: 1px solid #ead28d;
    border-radius: 10px;
    color: #665420;
    font-size: 14px;
    margin-top: 30px;
    padding: 16px 18px;
}

body.bp-publications .bp-faq-list {
    border-top: 1px solid var(--bp-border);
}

body.bp-publications .bp-faq-list details {
    border-bottom: 1px solid var(--bp-border);
    padding: 0;
}

body.bp-publications .bp-faq-list summary {
    color: var(--bp-ink);
    cursor: pointer;
    font: 500 clamp(20px, 2vw, 25px) Georgia, "Times New Roman", serif;
    list-style: none;
    padding: 22px 44px 22px 0;
    position: relative;
}

body.bp-publications .bp-faq-list summary::after {
    color: var(--bp-green);
    content: "+";
    font: 28px Arial, sans-serif;
    position: absolute;
    right: 4px;
    top: 18px;
}

body.bp-publications .bp-faq-list details[open] summary::after {
    content: "−";
}

body.bp-publications .bp-faq-list details p {
    max-width: 850px;
    padding: 0 40px 22px 0;
}

body.bp-publications .bp-policy-copy {
    max-width: 860px;
}

body.bp-publications .bp-policy-copy h3 {
    font-size: 25px;
    margin: 34px 0 10px;
}

/* Shop and category pages */
body.bp-publications.woocommerce-shop .woocommerce-products-header,
body.bp-publications.tax-product_cat .woocommerce-products-header {
    background:
        radial-gradient(circle at 88% 15%, rgba(246, 204, 97, .24), transparent 13rem),
        linear-gradient(135deg, var(--bp-green-dark), var(--bp-green));
    border-radius: 20px;
    box-shadow: var(--bp-shadow);
    color: #fff;
    max-width: none;
    padding: clamp(32px, 5vw, 54px) !important;
}

body.bp-publications.woocommerce-shop .woocommerce-products-header__title,
body.bp-publications.tax-product_cat .woocommerce-products-header__title,
body.bp-publications.woocommerce-shop .term-description,
body.bp-publications.tax-product_cat .term-description,
body.bp-publications.woocommerce-shop .term-description p,
body.bp-publications.tax-product_cat .term-description p {
    color: #fff !important;
}

body.bp-publications .woocommerce-result-count,
body.bp-publications .woocommerce-ordering {
    color: var(--bp-muted);
}

body.bp-publications .woocommerce-ordering select,
body.bp-publications select {
    background: var(--bp-panel);
    border: 1px solid var(--bp-border);
    border-radius: 9px;
    color: var(--bp-ink);
    padding: 11px 36px 11px 13px;
}

body.bp-publications ul.products {
    display: grid !important;
    gap: 28px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.bp-publications ul.products::before,
body.bp-publications ul.products::after {
    display: none !important;
}

body.bp-publications ul.products li.product {
    background: var(--bp-panel);
    border: 1px solid var(--bp-border);
    border-radius: 16px;
    box-shadow: 0 8px 26px rgba(32, 49, 44, .06);
    display: flex;
    flex-direction: column;
    float: none !important;
    margin: 0 !important;
    overflow: hidden;
    padding: 18px 18px 22px;
    text-align: left !important;
    transition: box-shadow .22s ease, transform .22s ease;
    width: auto !important;
}

body.bp-publications ul.products li.product:hover {
    box-shadow: var(--bp-shadow);
    transform: translateY(-5px);
}

body.bp-publications ul.products li.product img {
    aspect-ratio: 4 / 4.7;
    background: var(--bp-beige);
    border-radius: 11px;
    object-fit: contain;
    padding: 18px;
}

body.bp-publications ul.products li.product .woocommerce-loop-product__title {
    font-size: 21px !important;
    line-height: 1.28;
    margin-top: 10px;
}

body.bp-publications .woocommerce-Price-amount {
    color: var(--bp-green-dark);
    font-weight: 800;
}

body.bp-publications ul.products li.product .button {
    margin-top: auto;
}

/* WooCommerce coming-soon mode */
body.bp-publications .woocommerce-coming-soon-store-only {
    align-items: center;
    background:
        radial-gradient(circle at 80% 34%, rgba(242, 183, 47, .28), transparent 15rem),
        linear-gradient(135deg, #fffaf0, #f1ead9);
    border: 1px solid var(--bp-border);
    border-radius: 22px;
    box-shadow: var(--bp-shadow);
    display: flex;
    justify-content: center;
    min-height: 410px;
    overflow: hidden;
    padding: 50px 28px;
    position: relative;
}

body.bp-publications .woocommerce-coming-soon-store-only .wp-block-spacer {
    display: none;
}

body.bp-publications .woocommerce-coming-soon-store-only h1 {
    color: var(--bp-green-dark);
    font-size: clamp(38px, 5vw, 62px);
    letter-spacing: -.04em;
    line-height: 1.05;
    margin: 0 0 24px;
    max-width: 14ch;
}

body.bp-publications .woocommerce-coming-soon-store-only p {
    color: var(--bp-muted);
    font-size: 18px;
    line-height: 1.65;
    margin: 0 auto;
    max-width: 660px;
}

/* Product detail */
body.bp-publications.single-product div.product {
    background: var(--bp-panel);
    border: 1px solid var(--bp-border);
    border-radius: 20px;
    box-shadow: var(--bp-shadow);
    padding: clamp(22px, 4vw, 48px);
}

body.bp-publications.single-product div.product .woocommerce-product-gallery img {
    background: var(--bp-beige);
    border-radius: 12px;
}

body.bp-publications.single-product .product_title {
    font-size: clamp(34px, 4vw, 52px);
    letter-spacing: -.03em;
    line-height: 1.08;
}

body.bp-publications.single-product div.product p.price {
    color: var(--bp-green-dark);
    font-size: 24px;
}

body.bp-publications .quantity .qty {
    background: #fff;
    border: 1px solid var(--bp-border);
    border-radius: 8px;
    color: var(--bp-ink);
    padding: .82em .4em;
}

body.bp-publications .woocommerce-tabs ul.tabs li.active a {
    color: var(--bp-green);
}

body.bp-publications .woocommerce-tabs .panel {
    color: var(--bp-muted);
    line-height: 1.75;
}

/* Buttons and controls */
body.bp-publications .button,
body.bp-publications button,
body.bp-publications input[type="button"],
body.bp-publications input[type="reset"],
body.bp-publications input[type="submit"],
body.bp-publications .added_to_cart,
body.bp-publications .wc-block-components-button {
    background: var(--bp-green) !important;
    border: 1px solid var(--bp-green) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    color: #fff !important;
    font-weight: 700 !important;
    line-height: 1.2;
    padding: .9em 1.35em !important;
    text-decoration: none !important;
    transition: background .2s ease, border-color .2s ease, transform .2s ease;
}

body.bp-publications .button:hover,
body.bp-publications button:hover,
body.bp-publications input[type="submit"]:hover,
body.bp-publications .added_to_cart:hover,
body.bp-publications .wc-block-components-button:hover {
    background: var(--bp-green-dark) !important;
    border-color: var(--bp-green-dark) !important;
    color: #fff !important;
}

body.bp-publications input[type="text"],
body.bp-publications input[type="email"],
body.bp-publications input[type="tel"],
body.bp-publications input[type="password"],
body.bp-publications input[type="number"],
body.bp-publications textarea {
    background: #fff;
    border: 1px solid #cfc6b6;
    border-radius: 8px;
    color: var(--bp-ink);
    min-height: 46px;
    padding: 12px;
}

body.bp-publications input:focus,
body.bp-publications textarea:focus,
body.bp-publications select:focus {
    border-color: var(--bp-green);
    box-shadow: 0 0 0 3px rgba(31, 102, 81, .13);
    outline: 0;
}

/* Cart, checkout and customer account */
body.bp-publications.woocommerce-page article.page {
    margin-bottom: 0;
}

body.bp-publications.woocommerce-page .entry-content > .woocommerce {
    background: var(--bp-panel);
    border: 1px solid var(--bp-border);
    border-radius: 18px;
    box-shadow: var(--bp-shadow);
    padding: clamp(22px, 4vw, 40px);
    width: 100%;
}

body.bp-publications .woocommerce-form-login,
body.bp-publications .woocommerce-form-register,
body.bp-publications .woocommerce-MyAccount-navigation,
body.bp-publications .woocommerce-MyAccount-content,
body.bp-publications .woocommerce-cart-form,
body.bp-publications .cart_totals,
body.bp-publications .woocommerce-checkout-review-order,
body.bp-publications .woocommerce-billing-fields,
body.bp-publications .woocommerce-shipping-fields,
body.bp-publications .woocommerce-additional-fields {
    background: var(--bp-cream);
    border: 1px solid var(--bp-border);
    border-radius: 14px;
    box-sizing: border-box;
    padding: 24px;
}

body.bp-publications .u-columns.col2-set {
    display: grid;
    gap: 28px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.bp-publications .u-columns.col2-set::before,
body.bp-publications .u-columns.col2-set::after {
    display: none;
}

body.bp-publications .u-columns.col2-set > .col-1,
body.bp-publications .u-columns.col2-set > .col-2 {
    float: none;
    margin: 0;
    width: 100%;
}

body.bp-publications .woocommerce-account .woocommerce-MyAccount-navigation {
    width: min(100%, 270px);
}

body.bp-publications .woocommerce-account .woocommerce-MyAccount-content {
    min-width: 0;
}

body.bp-publications .bp-registration-intro {
    background: var(--bp-green-soft);
    border-left: 4px solid var(--bp-green);
    border-radius: 8px;
    margin: 0 0 22px;
    padding: 18px 20px;
}

body.bp-publications .bp-registration-intro h3,
body.bp-publications .bp-school-registration-fields h3 {
    font-size: 22px;
    margin: 0 0 7px;
}

body.bp-publications .bp-registration-intro p,
body.bp-publications .bp-form-help {
    color: var(--bp-muted);
    font-size: 14px;
    line-height: 1.55;
    margin: 0;
}

body.bp-publications .bp-school-registration-fields {
    background: #fff;
    border: 1px solid var(--bp-border);
    border-radius: 12px;
    margin: 20px 0;
    padding: 20px;
}

body.bp-publications .bp-school-registration-fields[hidden] {
    display: none;
}

body.bp-publications .bp-school-registration-fields .form-row:last-child {
    margin-bottom: 0;
}

body.bp-publications .bp-school-status {
    align-items: flex-start;
    background: var(--bp-green-soft);
    border: 1px solid #bdd4ca;
    border-radius: 12px;
    display: flex;
    gap: 15px;
    margin: 0 0 26px;
    padding: 18px;
}

body.bp-publications .bp-school-status > span {
    align-items: center;
    background: var(--bp-green);
    border-radius: 50%;
    color: #fff;
    display: flex;
    flex: 0 0 46px;
    font-size: 14px;
    font-weight: 800;
    height: 46px;
    justify-content: center;
}

body.bp-publications .bp-school-status strong {
    color: var(--bp-ink);
    display: block;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 20px;
    font-weight: 600;
    margin: 1px 0 4px;
}

body.bp-publications .bp-school-status p {
    color: var(--bp-muted);
    line-height: 1.55;
    margin: 0;
}

body.bp-publications .bp-school-status-rejected {
    background: #fff2ef;
    border-color: #e1b7ad;
}

body.bp-publications .bp-school-status-rejected > span {
    background: #9b3c3c;
}

body.bp-publications .bp-school-price {
    align-items: baseline;
    display: inline-flex;
    flex-wrap: wrap;
    gap: 7px;
}

body.bp-publications .bp-school-price del {
    color: #8a8f8d;
    font-size: .78em;
    opacity: 1;
}

body.bp-publications .bp-school-price ins {
    color: var(--bp-green);
    font-weight: 800;
    text-decoration: none;
}

body.bp-publications .bp-school-price-label {
    color: var(--bp-green);
    display: block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .05em;
    margin-top: 4px;
    text-transform: uppercase;
}

body.bp-publications .bp-school-steps {
    display: grid;
    gap: 22px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0 0 32px;
}

body.bp-publications .bp-school-steps section {
    background: var(--bp-cream);
    border: 1px solid var(--bp-border);
    border-radius: 14px;
    padding: 25px;
}

body.bp-publications .bp-school-steps span {
    color: var(--bp-green);
    display: block;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
    margin-bottom: 15px;
}

body.bp-publications .bp-school-steps h3 {
    font-size: 24px;
    margin: 0 0 10px;
}

body.bp-publications .bp-school-steps p {
    color: var(--bp-muted);
    line-height: 1.6;
    margin: 0;
}

body.bp-publications .woocommerce-MyAccount-navigation ul {
    margin: 0;
}

body.bp-publications .woocommerce-MyAccount-navigation li {
    border-bottom: 1px solid var(--bp-border);
}

body.bp-publications .woocommerce-MyAccount-navigation li:last-child {
    border-bottom: 0;
}

body.bp-publications .woocommerce-MyAccount-navigation li a {
    color: var(--bp-ink);
    display: block;
    font-weight: 700;
    padding: 12px 4px;
}

body.bp-publications .woocommerce-MyAccount-navigation li.is-active a {
    color: var(--bp-green);
}

body.bp-publications table:not(.has-background) th {
    background: var(--bp-green-soft);
    color: var(--bp-ink);
}

body.bp-publications table:not(.has-background) td {
    background: var(--bp-panel);
}

body.bp-publications .woocommerce-info,
body.bp-publications .woocommerce-message,
body.bp-publications .woocommerce-noreviews,
body.bp-publications p.no-comments {
    background: var(--bp-green) !important;
    border-radius: 9px;
    color: #fff !important;
}

body.bp-publications .woocommerce-info a,
body.bp-publications .woocommerce-message a {
    color: #fff !important;
    font-weight: 800;
}

body.bp-publications .woocommerce-error {
    background: #9b3c3c !important;
    border-radius: 9px;
    color: #fff !important;
}

/* 404 */
body.bp-publications.error404 .site-main {
    background: var(--bp-panel);
    border: 1px solid var(--bp-border);
    border-radius: 20px;
    box-shadow: var(--bp-shadow);
    padding: clamp(28px, 5vw, 58px);
}

body.bp-publications.error404 .page-header {
    max-width: none;
}

/* Footer */
body.bp-publications .site-footer {
    background: var(--bp-green-dark) !important;
    color: #d7e6e0;
    margin: 0;
    padding: 58px 0 26px;
}

body.bp-publications .bp-footer {
    display: grid;
    gap: 34px;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
}

body.bp-publications .bp-footer > div > strong {
    color: #fff;
    display: block;
    font-size: 15px;
    margin-bottom: 15px;
}

body.bp-publications .bp-footer-brand > strong {
    font: 700 25px Georgia, "Times New Roman", serif !important;
}

body.bp-publications .bp-footer p {
    color: #bfd2cb;
    line-height: 1.65;
    margin: 0;
    max-width: 340px;
}

body.bp-publications .bp-footer a {
    color: #d7e6e0 !important;
    display: block;
    margin: 0 0 9px;
    text-decoration: none;
}

body.bp-publications .bp-footer a:hover {
    color: #fff !important;
    text-decoration: underline;
}

body.bp-publications .bp-footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, .15);
    color: #a9c1b8;
    display: flex;
    font-size: 13px;
    justify-content: space-between;
    margin-top: 42px;
    padding-top: 22px;
}

@media (max-width: 900px) {
    body.bp-publications .site-header > .col-full,
    body.bp-publications .site-content > .col-full,
    body.bp-publications .site-footer > .col-full {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    body.bp-publications .bp-story-grid,
    body.bp-publications .bp-contact-grid,
    body.bp-publications .bp-policy-grid,
    body.bp-publications .bp-school-steps {
        grid-template-columns: 1fr;
    }

    body.bp-publications ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.bp-publications .bp-footer {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    body.bp-publications .site-header {
        padding-top: 18px !important;
    }

    body.bp-publications .site-header .site-branding {
        margin-bottom: 14px;
        width: calc(100% - 64px);
    }

    body.bp-publications .menu-toggle {
        background: var(--bp-green) !important;
        color: #fff !important;
        margin-top: 0;
    }

    body.bp-publications .main-navigation ul.menu > li > a,
    body.bp-publications .main-navigation ul.nav-menu > li > a {
        padding-bottom: 12px;
        padding-top: 12px;
    }

    body.bp-publications .site-search {
        display: none;
    }

    body.bp-publications .storefront-primary-navigation {
        border-top: 0;
    }

    body.bp-publications:not(.home) .site-content > .col-full {
        padding-bottom: 48px !important;
        padding-top: 26px !important;
    }

    body.bp-publications:not(.home) .entry-title,
    body.bp-publications:not(.home) .page-title,
    body.bp-publications:not(.home) .woocommerce-products-header__title {
        font-size: clamp(30px, 10vw, 42px) !important;
        max-width: 100%;
    }

    body.bp-publications .bp-page-cta {
        align-items: flex-start;
        flex-direction: column;
    }

    body.bp-publications .u-columns.col2-set {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    body.bp-publications .site-header > .col-full,
    body.bp-publications .site-content > .col-full,
    body.bp-publications .site-footer > .col-full {
        padding-left: 18px !important;
        padding-right: 18px !important;
    }

    body.bp-publications.page:not(.home):not(.woocommerce-page) article.page,
    body.bp-publications.woocommerce-page .entry-content > .woocommerce,
    body.bp-publications.single-product div.product {
        border-radius: 14px;
        padding: 22px 18px;
    }

    body.bp-publications.woocommerce-shop .woocommerce-products-header,
    body.bp-publications.tax-product_cat .woocommerce-products-header {
        border-radius: 14px;
        padding: 26px 22px !important;
    }

    body.bp-publications ul.products {
        gap: 20px;
        grid-template-columns: 1fr;
    }

    body.bp-publications .woocommerce-coming-soon-store-only {
        border-radius: 14px;
        min-height: 330px;
        padding: 36px 20px;
    }

    body.bp-publications .bp-footer {
        grid-template-columns: 1fr;
    }

    body.bp-publications .bp-footer-bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }
}

/*
 * Mobile hardening — v3.3
 *
 * Storefront's compact header and the custom homepage previously relied on
 * desktop-sized elements that were merely scaled down. These rules give each
 * component a real phone-width layout so nothing can sit outside the viewport.
 */
@media (max-width: 767px) {
    html,
    body.bp-publications,
    body.bp-publications #page {
        max-width: 100%;
        overflow-x: clip;
    }

    body.bp-publications .site-header > .col-full,
    body.bp-publications .storefront-primary-navigation > .col-full {
        box-sizing: border-box;
        max-width: 100% !important;
        width: 100% !important;
    }

    body.bp-publications .site-header .site-branding {
        box-sizing: border-box;
        float: none;
        margin: 0 0 14px;
        max-width: 100%;
        padding-right: 58px;
        width: 100%;
    }

    body.bp-publications .site-branding .site-title {
        font-size: clamp(23px, 7vw, 29px);
        line-height: 1.08;
        overflow-wrap: anywhere;
    }

    body.bp-publications .site-branding .site-description {
        display: none;
    }

    body.bp-publications .storefront-primary-navigation {
        position: relative;
    }

    body.bp-publications .main-navigation {
        box-sizing: border-box;
        float: none;
        margin: 0;
        max-width: 100%;
        width: 100%;
    }

    body.bp-publications button.menu-toggle {
        align-items: center;
        background: var(--bp-green) !important;
        border: 0 !important;
        border-radius: 10px;
        box-shadow: none !important;
        color: #fff !important;
        display: inline-flex;
        float: right;
        height: 46px;
        justify-content: center;
        margin: 0 0 12px;
        max-width: none;
        min-height: 46px;
        min-width: 46px;
        padding: 0 !important;
        position: relative;
        width: 46px;
    }

    body.bp-publications button.menu-toggle span {
        border: 0;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        white-space: nowrap;
        width: 1px;
    }

    body.bp-publications button.menu-toggle::before,
    body.bp-publications button.menu-toggle::after,
    body.bp-publications button.menu-toggle span::before {
        background: #fff !important;
        border-radius: 999px;
        height: 2px;
        left: 50%;
        margin: -1px 0 0 -9px;
        top: 50%;
        width: 18px;
    }

    body.bp-publications button.menu-toggle::before {
        transform: translateY(-6px);
    }

    body.bp-publications button.menu-toggle::after {
        transform: translateY(6px);
    }

    body.bp-publications .main-navigation.toggled button.menu-toggle::before {
        transform: rotate(45deg);
    }

    body.bp-publications .main-navigation.toggled button.menu-toggle::after {
        transform: rotate(-45deg);
    }

    body.bp-publications .main-navigation .primary-navigation {
        clear: both;
        width: 100%;
    }

    body.bp-publications .main-navigation ul.menu,
    body.bp-publications .main-navigation ul.nav-menu {
        box-sizing: border-box;
        margin: 0;
        width: 100%;
    }

    body.bp-publications .main-navigation ul.menu > li > a,
    body.bp-publications .main-navigation ul.nav-menu > li > a {
        border-top: 1px solid var(--bp-border);
        box-sizing: border-box;
        font-size: 16px;
        line-height: 1.35;
        padding: 14px 4px;
        white-space: normal;
        width: 100%;
    }

    body.bp-publications .main-navigation ul ul {
        background: var(--bp-green-soft);
        border: 0;
        border-radius: 0;
        box-shadow: none;
        box-sizing: border-box;
        margin: 0;
        padding-left: 16px;
        width: 100%;
    }

    body.bp-publications img,
    body.bp-publications video,
    body.bp-publications iframe {
        max-width: 100%;
    }

    body.bp-publications table {
        max-width: 100%;
    }

    body.bp-publications .bp-page-intro h2,
    body.bp-publications .bp-page-cta h3 {
        overflow-wrap: anywhere;
    }
}

@media (max-width: 480px) {
    body.bp-publications .site-header {
        padding-top: 14px !important;
    }

    body.bp-publications .site-header > .col-full,
    body.bp-publications .site-content > .col-full,
    body.bp-publications .site-footer > .col-full,
    body.bp-publications .storefront-primary-navigation > .col-full {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    body.bp-publications:not(.home) .entry-title,
    body.bp-publications:not(.home) .page-title,
    body.bp-publications:not(.home) .woocommerce-products-header__title {
        font-size: clamp(28px, 9vw, 36px) !important;
        hyphens: auto;
        overflow-wrap: anywhere;
    }

    body.bp-publications .woocommerce-result-count,
    body.bp-publications .woocommerce-ordering {
        float: none;
        margin-bottom: 14px;
        text-align: left;
        width: 100%;
    }

    body.bp-publications .woocommerce-ordering select {
        max-width: 100%;
        width: 100%;
    }

    body.bp-publications .bp-page-cta .bp-button,
    body.bp-publications form .button,
    body.bp-publications .woocommerce a.button,
    body.bp-publications .woocommerce button.button {
        box-sizing: border-box;
        max-width: 100%;
        white-space: normal;
    }
}

body.bp-publications .bp-checkout-rule,
body.bp-publications .bp-raast-instructions,
body.bp-publications .bp-raast-details {
    border-radius: 14px;
}

body.bp-publications .bp-checkout-rule {
    margin: 0 0 1.25rem !important;
}

body.bp-publications .bp-raast-details {
    background: #f6f1e6;
    border: 1px solid rgba(31, 90, 61, .16);
    margin: 1rem 0;
    padding: 1rem 1.1rem;
}

body.bp-publications .bp-raast-details p {
    margin: 0 0 .45rem;
}

body.bp-publications .bp-raast-details p:last-child {
    margin-bottom: 0;
}

body.bp-publications .bp-raast-instructions {
    background: #fff;
    border: 1px solid rgba(31, 90, 61, .16);
    margin-top: 1.5rem;
    padding: clamp(1.25rem, 3vw, 2rem);
}
