/*
Theme Name: Music Project Base
Theme URI: https://github.com/trentofflarrabee/music-project-base
Description: A reusable WordPress theme for bands, artists, and music projects.
Version: 1.4.0
Requires at least: 6.8
Requires PHP: 7.4
Author: Trent Larrabee
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Update URI: https://github.com/trentofflarrabee/music-project-base
Text Domain: music-project-base
Domain Path: /languages
*/

/* =========================================================
   1. THEME VARIABLES / FALLBACKS
   ========================================================= */

:root {
    /* Core palette */
    --mpb-color-bg: #111111;
    --mpb-color-surface: #101010;
    --mpb-color-text: #f5f5f5;
    --mpb-color-text-rgb: 245, 245, 245;
    --mpb-color-heading: #f5f5f5;
    --mpb-color-muted: #b8b8b8;
    --mpb-color-accent: #ffffff;
    --mpb-color-link: #ffffff;
    --mpb-color-selection: #ffffff;
    --mpb-color-selection-text: #111111;

    --mpb-color-button-bg: #f5f5f5;
    --mpb-color-button-text: #111111;
    --mpb-color-button-text-rgb: 17, 17, 17;

    /* Site chrome */
    --mpb-color-header-bg: #000000;
    --mpb-color-header-text: #f5f5f5;
    --mpb-color-header-text-rgb: 245, 245, 245;
    --mpb-color-header-border: #1f1f1f;

    --mpb-color-media-frame-bg: #181818;

    --mpb-color-mobile-nav-bg: #000000;
    --mpb-color-mobile-nav-text: #f5f5f5;
    --mpb-color-mobile-nav-text-rgb: 245, 245, 245;
    --mpb-color-mobile-nav-border: #242424;

    --mpb-color-footer-bg: #000000;
    --mpb-color-footer-text: #f5f5f5;
    --mpb-color-footer-text-rgb: 245, 245, 245;
    --mpb-color-footer-muted: #b8b8b8;
    --mpb-color-footer-border: #1f1f1f;

    /* Font library slots */
    --mpb-font-slot-body:
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    --mpb-font-slot-display:
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    --mpb-font-slot-accent:
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    --mpb-font-slot-quote: var(--mpb-font-slot-display);

    /* Assigned typography roles */
    --mpb-font-body: var(--mpb-font-slot-body);
    --mpb-font-heading: var(--mpb-font-slot-display);
    --mpb-font-blog-heading: var(--mpb-font-slot-display);
    --mpb-font-blog-body: var(--mpb-font-slot-body);
    --mpb-font-hero-heading: var(--mpb-font-slot-display);
    --mpb-font-nav: var(--mpb-font-slot-accent);
    --mpb-font-brand: var(--mpb-font-slot-accent);
    --mpb-font-button: var(--mpb-font-slot-accent);
    --mpb-font-accent: var(--mpb-font-slot-accent);
    --mpb-font-quote: var(--mpb-font-slot-quote);

    --mpb-font-blog-body-size:
        clamp(1.125rem, 1.0625rem + 0.4vw, 1.25rem);

    /* Heading treatment */
    --mpb-heading-text-transform: none;
    --mpb-heading-letter-spacing: -0.04em;
    --mpb-hero-heading-color-rgb: 255, 255, 255;

/* Texture */
--mpb-texture-image: none;
--mpb-texture-opacity: 0.72;
--mpb-texture-size: 420px;
--mpb-texture-repeat: repeat;

    /* Layout widths and gutters */
    --mpb-width-site: 1200px;
    --mpb-width-content: 900px;
    --mpb-width-reading: 720px;

    --mpb-gutter-page: 1.5rem;
    --mpb-gutter-page-compact: 1rem;

    --mpb-width-shell: min(
        calc(
            100%
            - var(--mpb-gutter-page)
            - var(--mpb-gutter-page)
        ),
        var(--mpb-width-site)
    );

    /* Shape and elevation */
    --mpb-radius-card: 16px;
    --mpb-radius-media: 12px;
    --mpb-radius-control: 999px;

    --mpb-shadow-card:
        0 20px 70px rgba(0, 0, 0, 0.22);

    --mpb-shadow-card-hover:
        0 24px 80px rgba(0, 0, 0, 0.32);

    --mpb-card-hover-transform: translateY(-2px);

    /* Border-strength foundation */
    --mpb-border-alpha-subtle: 0.06;
    --mpb-border-alpha-medium: 0.14;
    --mpb-border-alpha-strong: 0.22;

    --mpb-border-subtle:
        rgba(
            var(--mpb-color-text-rgb),
            var(--mpb-border-alpha-subtle)
        );

    --mpb-border-medium:
        rgba(
            var(--mpb-color-text-rgb),
            var(--mpb-border-alpha-medium)
        );

    --mpb-border-strong:
        rgba(
            var(--mpb-color-text-rgb),
            var(--mpb-border-alpha-strong)
        );

    /* Semantic translucent fills */
    --mpb-fill-subtle:
        rgba(var(--mpb-color-text-rgb), 0.04);

    --mpb-fill-medium:
        rgba(var(--mpb-color-text-rgb), 0.08);

    --mpb-fill-strong:
        rgba(var(--mpb-color-text-rgb), 0.12);

    /* Semantic border roles */
    --mpb-border-divider: var(--mpb-border-medium);
    --mpb-border-control: var(--mpb-border-medium);
    --mpb-border-interactive: var(--mpb-border-strong);

    /* Vertical rhythm */
    --mpb-section-padding-block: clamp(4rem, 8vw, 8rem);
    --mpb-page-padding-block: clamp(4rem, 8vw, 7rem);
    --mpb-card-padding: 1.5rem;
}

/* =========================================================
   2. GLOBAL BASE
   ========================================================= */

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

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: var(--mpb-font-body);
    line-height: 1.5;
    background: var(--mpb-color-bg);
    color: var(--mpb-color-text);
}

/*
 * Native form controls do not consistently inherit typography from body.
 * Text-entry controls use the Body Text role, while buttons use the
 * Buttons / CTAs role. More specific component roles can override these.
 */
input,
select,
textarea {
    font-family: var(--mpb-font-body);
}

button {
    font-family: var(--mpb-font-button);
}

body.is-menu-open {
    overflow: hidden;
}

img,
video {
    max-width: 100%;
    height: auto;
}

/*
 * Semantic text links.
 *
 * Link Color is intentionally limited to ordinary editorial
 * and text-style links. Navigation, branding, social links,
 * buttons, cards, and other purpose-built components own
 * their foreground colors separately.
 */
.theme-page__content a:not(.wp-block-button__link),
.single-post__content a:not(.wp-block-button__link),
.blog-archive__intro a,
.theme-archive__description a,
.featured-content-card__text a,
.home-services__intro a,
.home-service-card__description a,
.home-service-card__link,
.home-blog__view-all,
.home-blog-card__link,
.blog-archive-card__link,
.theme-archive-card__link {
    color: var(--mpb-color-link);
}

.theme-page__content
a:not(.wp-block-button__link):hover,
.theme-page__content
a:not(.wp-block-button__link):focus,
.single-post__content
a:not(.wp-block-button__link):hover,
.single-post__content
a:not(.wp-block-button__link):focus,
.blog-archive__intro a:hover,
.blog-archive__intro a:focus,
.theme-archive__description a:hover,
.theme-archive__description a:focus,
.featured-content-card__text a:hover,
.featured-content-card__text a:focus,
.home-services__intro a:hover,
.home-services__intro a:focus,
.home-service-card__description a:hover,
.home-service-card__description a:focus {
    opacity: 0.78;
}

::selection {
    background:
        var(--mpb-color-selection);

    color:
        var(--mpb-color-selection-text);
}

.site-main {
    width: 100%;
    overflow: hidden;
}

.site-header,
.site-main,
.site-footer {
    position: relative;
    z-index: 1;
}

/* =========================================================
   SITE STATUS / COMING SOON
   ========================================================= */

body.site-status-page {
    min-height: 100vh;
    margin: 0;
    background: var(--mpb-color-bg, #101010);
    color: var(--mpb-color-text, #f5f5f5);
}

.site-status-screen {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: clamp(2rem, 6vw, 5rem) 1.5rem;
}

.site-status-card {
    width: min(100%, 720px);
    padding: clamp(2rem, 6vw, 4rem);
    border-radius: var(--mpb-radius-card);
    background: var(--mpb-color-surface, #181818);
    border: 1px solid var(--mpb-border-subtle);
    box-shadow: var(--mpb-shadow-card);
    text-align: center;
}

.site-status-brand {
    margin-bottom: clamp(1.5rem, 4vw, 2.5rem);
}

.site-status-brand .custom-logo-link {
    display: inline-flex;
}

.site-status-brand .custom-logo {
    max-width: 180px;
    height: auto;
}

.site-status-brand__name {
    color: var(--mpb-color-text, #f5f5f5);
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    text-decoration: none;
}

.site-status-eyebrow {
    margin: 0 0 0.85rem;
    color: var(--mpb-color-accent, currentColor);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.site-status-content h1 {
    margin: 0;
    color: var(--mpb-color-heading, #f5f5f5);
    font-size: clamp(2.75rem, 8vw, 6rem);
    line-height: 0.95;
    text-wrap: balance;
}

.site-status-message {
    max-width: 560px;
    margin: 1.25rem auto 0;
    color: var(--mpb-color-muted, #b8b8b8);
    font-size: clamp(1rem, 2vw, 1.2rem);
}

.site-status-button {
    margin-top: 2rem;
}

.site-status-socials {
    display: flex;
    justify-content: center;
    margin-top: 2rem;
}

.site-status-socials .social-links {
    justify-content: center;
}


.site-status-preview-bar {
    position: fixed;
inset: var(--mpb-admin-bar-offset) 0 auto;
z-index: 99998;
    display: flex;
    justify-content: center;
    gap: 1rem;
    padding: 0.65rem 1rem;
    background: #111;
    color: #fff;
    font-size: 0.85rem;
    font-weight: 700;
    text-align: center;
}

.site-status-preview-bar a {
    color: #fff;
    text-decoration: underline;
}

.site-status-page--previewing .site-status-screen {
    padding-top: calc(clamp(2rem, 6vw, 5rem) + 2.75rem);
}

.site-status-preview-bar a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

@media (max-width: 720px) {
    .site-status-card {
        padding: 2rem 1.35rem;
    }

    .site-status-content h1 {
        font-size: clamp(2.5rem, 15vw, 4.25rem);
    }
}


/* ==========================================================================
   3. GLOBAL TEXTURE SUPPORT
   ========================================================================== */

/*
 * Texture placement and layering are consolidated in the Texture Zones
 * section so every zone follows the same rendering contract.
 */



/* =========================================================
   4. TYPOGRAPHY
   ========================================================= */

/* General headings */

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--mpb-color-heading);
    font-family: var(--mpb-font-heading);
    text-transform: var(--mpb-heading-text-transform);
    letter-spacing: var(--mpb-heading-letter-spacing);
}

/* Hero / display headlines */

.home-hero__content h1,
.site-status-content h1 {
    font-family: var(--mpb-font-hero-heading);
}

/* Blog and editorial typography */

.home-blog,
.blog-archive,
.theme-archive,
.single-entry {
    font-family: var(--mpb-font-blog-body);
}

.home-blog-card h3,
.blog-archive__header h1,
.blog-archive__intro h1,
.blog-archive__intro h2,
.blog-archive__intro h3,
.blog-archive__intro h4,
.blog-archive__intro h5,
.blog-archive__intro h6,
.blog-archive-card h2,
.theme-archive__header h1,
.theme-archive-card h2,
.single-post__header h1,
.single-post__content h1,
.single-post__content h2,
.single-post__content h3,
.single-post__content h4,
.single-post__content h5,
.single-post__content h6,
.single-post__nav-item a {
    font-family: var(--mpb-font-blog-heading);
}

/* Navigation */

.site-nav,
.site-footer__nav,
.site-menu-toggle {
    font-family: var(--mpb-font-nav);
}

/* Textual site branding */

.site-branding__name,
.site-footer__name {
    font-family: var(--mpb-font-brand);
}

/* Accent labels, metadata, and interface text */

.social-links,
.featured-content-card__label,
.home-blog-card__date,
.blog-archive-card__date,
.theme-archive-card__date,
.theme-search-card__type,
.single-post__meta,
.single-post__back-link,
.single-post__nav-item span,
.blog-archive__eyebrow,
.theme-error__eyebrow,
.site-status-eyebrow,
.site-status-brand__name,
.event-date,
.event-meta,
.home-quote-card__footer,
.press-quote cite {
    font-family: var(--mpb-font-accent);
}

/* Buttons, calls to action, and action links */

.button,
.home-hero__button,
.featured-content-card__button,
.show-btn,
.newsletter-form button,
.newsletter-form input[type="submit"],
.event-body a,
.home-service-card__link,
.home-blog__view-all,
.home-blog-card__link,
.blog-archive-card__link,
.theme-archive-card__link,
.theme-page__content .wp-block-button__link,
.theme-search__form input[type="submit"],
.theme-search__form button,
.theme-error__search input[type="submit"],
.theme-error__search button,
.blog-archive__pagination .page-numbers,
.theme-archive__pagination .page-numbers,
.scroll-top {
    font-family: var(--mpb-font-button);
}

/* Quotes, testimonials, and editorial blockquotes */

.press-quote p,
.home-quote-card__quote,
.single-post__content blockquote,
.theme-page__content blockquote {
    font-family: var(--mpb-font-quote);
}

/* =========================================================
   HEADING ALIGNMENT OPTIONS
   ========================================================= */

/* Center homepage headings */

body.mpb-heading-align-home .home-section:not(.home-hero) .section-header,
body.mpb-heading-align-home .home-section:not(.home-hero) .section-header h2,
body.mpb-heading-align-home .home-section:not(.home-hero) .section-header p {
    text-align: center;
    margin-inline: auto;
}

/* Center all headings */

body.mpb-heading-align-all h1,
body.mpb-heading-align-all h2,
body.mpb-heading-align-all h3,
body.mpb-heading-align-all h4,
body.mpb-heading-align-all h5,
body.mpb-heading-align-all h6 {
    text-align: center;
    margin-inline: auto;
}

body.mpb-heading-align-all .section-header,
body.mpb-heading-align-all .section-header p,
body.mpb-heading-align-all .theme-page__header,
body.mpb-heading-align-all .theme-archive__header,
body.mpb-heading-align-all .theme-search__header,
body.mpb-heading-align-all .blog-archive__header,
body.mpb-heading-align-all .single-post__header {
    text-align: center;
    margin-inline: auto;
}

/* Centered heading mode: stack Blog heading and View All link */

body.mpb-heading-align-home .home-blog__header,
body.mpb-heading-align-all .home-blog__header {
    display: grid;
    justify-items: center;
    justify-content: center;
    text-align: center;
    gap: 0.85rem;
}

body.mpb-heading-align-home .home-blog__header .section-header,
body.mpb-heading-align-all .home-blog__header .section-header {
    margin-bottom: clamp(1.5rem, 4vw, 3rem);
}

body.mpb-heading-align-home .home-blog__view-all,
body.mpb-heading-align-all .home-blog__view-all {
    justify-self: center;
}

/* =========================================================
   5. ACCESSIBILITY HELPERS
   ========================================================= */

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link:focus {
    position: fixed;
    top: 1rem;
    left: 1rem;
    z-index: 100000;
    width: auto;
    height: auto;
    padding: 0.8rem 1rem;
    margin: 0;
    overflow: visible;
    clip: auto;
    clip-path: none;
    border: 2px solid currentColor;
    border-radius: var(--mpb-radius-control);
    background: var(--mpb-color-button-bg);
    color: var(--mpb-color-button-text);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
    font-family: var(--mpb-font-accent);
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
}

.admin-bar .skip-link:focus {
    top: calc(1rem + 32px);
}

@media screen and (max-width: 782px) {
    .admin-bar .skip-link:focus {
        top: calc(1rem + 46px);
    }
}


/* =========================================================
   6. BUTTONS / CTAS
   ========================================================= */

.button,
.home-hero__button,
.featured-content-card__button,
.show-btn,
.newsletter-form button,
.newsletter-form input[type="submit"],
.event-body a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 1rem;
    border: 0;
    border-radius: var(--mpb-radius-control);
    background: var(--mpb-color-button-bg);
    color: var(--mpb-color-button-text);
    text-decoration: none;
    font-weight: 700;
    cursor: pointer;
    transition:
        transform 160ms ease,
        opacity 160ms ease,
        background-color 160ms ease,
        color 160ms ease,
        border-color 160ms ease;
}

.button:hover,
.home-hero__button:hover,
.featured-content-card__button:hover,
.show-btn:hover,
.newsletter-form button:hover,
.newsletter-form input[type="submit"]:hover,
.event-body a:hover,
.home-blog-card__link:hover,
.home-blog__view-all:hover,
.blog-archive-card__link:hover,
.theme-archive-card__link:hover {
    transform: translateY(-1px);
    opacity: 0.9;
}


/* =========================================================
   7. GLOBAL LAYOUT / HOME SECTIONS
   ========================================================= */

.home-section {
    padding-block: var(--mpb-section-padding-block);
    padding-inline: var(--mpb-gutter-page);
    border-bottom: 1px solid var(--mpb-border-divider);
}

.home-section > .section-header,
.home-section > .featured-content-layout,
.home-section > .shows-embed,
.home-section > .home-blog__header,
.home-section > .home-blog__grid,
.home-section > .home-blog__featured-layout,
.home-section > .home-blog__compact-list,
.home-newsletter__inner {
    width: min(100%, var(--mpb-width-site));
    margin-inline: auto;
}

.section-header {
    margin-bottom: clamp(1.5rem, 4vw, 3rem);
}

.section-header h2 {
    margin: 0;
    font-size: clamp(2.5rem, 7vw, 6rem);
    line-height: 0.9;
}

/*
 * Homepage section-heading emphasis.
 *
 * Standard intentionally inherits the existing section-heading
 * scale. Only Compact and Large need to override it.
 */
.section-header--size-compact h2 {
    font-size: clamp(2rem, 5vw, 4rem);
}

.section-header--size-large h2 {
    font-size: clamp(3.25rem, 9vw, 8rem);
}

.section-header--size-compact h2,
.section-header--size-standard h2,
.section-header--size-large h2 {
    overflow-wrap: anywhere;
    text-wrap: balance;
}

.section-header p {
    max-width: 640px;
    color: var(--mpb-color-muted);
    font-size: clamp(1rem, 2vw, 1.2rem);
}


/* =========================================================
   8. HEADER / NAVIGATION
   ========================================================= */

body {
    --mpb-admin-bar-offset: 0px;
}

body.admin-bar {
    --mpb-admin-bar-offset: 32px;
}

@media screen and (max-width: 782px) {
    body.admin-bar {
        --mpb-admin-bar-offset: 46px;
    }
}

.site-header {
    position: relative;
    z-index: 100;
    background: var(--mpb-color-header-bg);
    border-bottom: 1px solid var(--mpb-color-header-border);
    transition:
        background-color 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease,
        backdrop-filter 180ms ease;
}

.site-footer {
    background: var(--mpb-color-footer-bg);
}

.site-header__inner,
.site-footer__inner {
    width: var(--mpb-width-shell);
    margin-inline: auto;
}

.site-header__inner {
    position: relative;
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding-block: 1rem;
}

.site-branding,
.site-footer__brand {
    display: flex;
    align-items: center;
}

.site-branding__name,
.site-footer__name {
    font-weight: 800;
    text-decoration: none;
    letter-spacing: -0.03em;
}

.site-branding__name {
    color: var(--mpb-color-header-text);
    font-size: 1.25rem;
}

.site-footer__name {
    color: var(--mpb-color-footer-text);
    font-size: 1.5rem;
}

.custom-logo-link {
    display: inline-flex;
    align-items: center;
}

.custom-logo {
    display: block;
    max-width: 180px;
    height: auto;
}

.site-nav {
    display: block;
}

.site-nav__menu,
.site-footer__menu {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-nav__menu a {
    color: var(--mpb-color-header-text);
    text-decoration: none;
    font-weight: 700;
    opacity: 0.8;
}

.site-footer__menu a {
    color: var(--mpb-color-footer-text);
    text-decoration: none;
    font-weight: 700;
    opacity: 0.8;
}

.site-nav__menu a:visited {
    color: var(--mpb-color-header-text);
}

.site-footer__menu a:visited {
    color: var(--mpb-color-footer-text);
}

.site-nav__menu a:hover,
.site-nav__menu a:focus,
.site-footer__menu a:hover,
.site-footer__menu a:focus {
    opacity: 1;
    text-decoration: underline;
}

.site-header .site-nav__footer {
    display: none;
}

.site-menu-toggle {
    display: none;
    width: 44px;
    height: 44px;
    border: 1px solid var(--mpb-color-header-border);
    border-radius: 0;
    background: var(--mpb-color-surface);
    color: var(--mpb-color-header-text);
    cursor: pointer;
}

.site-menu-toggle__bars,
.site-menu-toggle__bars::before,
.site-menu-toggle__bars::after {
    display: block;
    width: 18px;
    height: 2px;
    background: currentColor;
    border-radius: var(--mpb-radius-control);
    transition: transform 180ms ease, opacity 180ms ease;
}

.site-menu-toggle__bars {
    position: relative;
    margin: 0 auto;
}

.site-menu-toggle__bars::before,
.site-menu-toggle__bars::after {
    content: "";
    position: absolute;
    left: 0;
}

.site-menu-toggle__bars::before {
    top: -6px;
}

.site-menu-toggle__bars::after {
    top: 6px;
}

.site-header.is-menu-open .site-menu-toggle__bars {
    background: transparent;
}

.site-header.is-menu-open .site-menu-toggle__bars::before {
    top: 0;
    transform: rotate(45deg);
}

.site-header.is-menu-open .site-menu-toggle__bars::after {
    top: 0;
    transform: rotate(-45deg);
}

/* Header behavior options */
body.mpb-is-front-page.mpb-header-transparent-scroll .site-header.is-menu-open {
    background: var(--mpb-color-header-bg);
    border-bottom-color: var(--mpb-color-header-border);
}

/*
 * Every header behavior except Standard remains attached to the viewport.
 *
 * The homepage transparent-mode rules below override this base behavior
 * with their intentional absolute or fixed presentation.
 */
body:not(.mpb-header-standard) .site-header {
    position: sticky;
    top: var(--mpb-admin-bar-offset);
}

body.mpb-is-front-page.mpb-header-transparent .site-header {
    position: absolute;
    inset: var(--mpb-admin-bar-offset) 0 auto;
    background: transparent;
    border-bottom-color: transparent;
}

body.mpb-is-front-page.mpb-header-transparent-scroll .site-header {
    position: fixed;
    inset: var(--mpb-admin-bar-offset) 0 auto;
    background: transparent;
    border-bottom-color: transparent;
}

body.mpb-is-front-page.mpb-header-transparent-scroll .site-header.is-scrolled {
    background: var(--mpb-color-header-bg);
    border-bottom-color: var(--mpb-color-header-border);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
    backdrop-filter: blur(10px);
}

/* Transparent header text treatment */

body.mpb-is-front-page.mpb-header-transparent .site-branding__name,
body.mpb-is-front-page.mpb-header-transparent .site-nav__menu a,
body.mpb-is-front-page.mpb-header-transparent .site-nav__menu a:visited,
body.mpb-is-front-page.mpb-header-transparent .site-menu-toggle,
body.mpb-is-front-page.mpb-header-transparent-scroll .site-header:not(.is-scrolled) .site-branding__name,
body.mpb-is-front-page.mpb-header-transparent-scroll .site-header:not(.is-scrolled) .site-nav__menu a,
body.mpb-is-front-page.mpb-header-transparent-scroll .site-header:not(.is-scrolled) .site-nav__menu a:visited,
body.mpb-is-front-page.mpb-header-transparent-scroll .site-header:not(.is-scrolled) .site-menu-toggle {
    color: var(--mpb-hero-heading-color, #ffffff);
}

body.mpb-is-front-page.mpb-header-transparent .site-menu-toggle,
body.mpb-is-front-page.mpb-header-transparent-scroll
    .site-header:not(.is-scrolled)
    .site-menu-toggle {
    background: transparent;
    border-color:
        rgba(
            var(--mpb-hero-heading-color-rgb),
            0.32
        );
}

body.mpb-is-front-page.mpb-header-transparent-scroll .site-header.is-scrolled .site-branding__name,
body.mpb-is-front-page.mpb-header-transparent-scroll .site-header.is-scrolled .site-nav__menu a,
body.mpb-is-front-page.mpb-header-transparent-scroll .site-header.is-scrolled .site-nav__menu a:visited,
body.mpb-is-front-page.mpb-header-transparent-scroll .site-header.is-scrolled .site-menu-toggle {
    color: var(--mpb-color-header-text);
}

body.mpb-is-front-page.mpb-header-transparent-scroll .site-header.is-scrolled .site-menu-toggle {
    border-color: var(--mpb-color-header-border);
}

/* Brand display helpers */

.site-branding {
    gap: 0.75rem;
}

body.mpb-brand-hidden .site-header__inner {
    justify-content: flex-end;
}


/* Current / Active Menu Items */

.site-nav__menu .current-menu-item > a,
.site-nav__menu .current_page_item > a,
.site-nav__menu .current-menu-ancestor > a,
.site-nav__menu .current_page_parent > a,
.site-footer__menu .current-menu-item > a,
.site-footer__menu .current_page_item > a,
.site-footer__menu .current-menu-ancestor > a,
.site-footer__menu .current_page_parent > a {
    opacity: 1;
    text-decoration: underline;
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.25em;
}

/* Do not treat homepage section anchor links as active page links */

.home .site-nav__menu .menu-item-type-custom.current-menu-item > a[href*="#"],
.home .site-nav__menu .menu-item-type-custom.current_page_item > a[href*="#"],
.front-page .site-nav__menu .menu-item-type-custom.current-menu-item > a[href*="#"],
.front-page .site-nav__menu .menu-item-type-custom.current_page_item > a[href*="#"] {
    opacity: 0.8;
    text-decoration: none;
}

.home .site-nav__menu .menu-item-type-custom.current-menu-item > a[href*="#"]:hover,
.home .site-nav__menu .menu-item-type-custom.current_page_item > a[href*="#"]:hover,
.home .site-nav__menu .menu-item-type-custom.current-menu-item > a[href*="#"]:focus,
.home .site-nav__menu .menu-item-type-custom.current_page_item > a[href*="#"]:focus,
.front-page .site-nav__menu .menu-item-type-custom.current-menu-item > a[href*="#"]:hover,
.front-page .site-nav__menu .menu-item-type-custom.current_page_item > a[href*="#"]:hover,
.front-page .site-nav__menu .menu-item-type-custom.current-menu-item > a[href*="#"]:focus,
.front-page .site-nav__menu .menu-item-type-custom.current_page_item > a[href*="#"]:focus {
    opacity: 1;
    text-decoration: underline;
}


/* =========================================================
   9. FOOTER
   ========================================================= */

.site-footer {
    position: relative;
    overflow: hidden;
    padding-block: clamp(3rem, 6vw, 5rem);
    border-top: 1px solid var(--mpb-color-footer-border);
    background: var(--mpb-color-footer-bg);
    color: var(--mpb-color-footer-text);
}

.site-footer__inner {
    position: relative;
    z-index: 1;
    display: grid;
    gap: clamp(2rem, 4vw, 3rem);
}

.site-footer__main {
    display: grid;
    gap: clamp(1.75rem, 4vw, 3rem);
}

.site-footer__brand-wrap {
    display: grid;
    gap: 0.65rem;
    min-width: 0;
}

.site-footer__brand {
    min-width: 0;
}

.site-footer__brand .custom-logo-link {
    display: inline-flex;
    max-width: 100%;
}

.site-footer__brand .custom-logo {
    width: auto;
    max-width: min(180px, 100%);
    height: auto;
}

.site-footer__name,
.site-footer__menu a,
.site-footer__menu a:visited,
.site-footer .social-links__link {
    color: var(--mpb-color-footer-text);
}

.site-footer__name {
    display: inline-block;
    font-size: 1.5rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    text-decoration: none;
}

.site-footer__tagline {
    max-width: 620px;
    margin: 0;
    color: var(--mpb-color-footer-muted);
}

.site-footer__connections {
    display: grid;
    gap: 1.25rem;
    min-width: 0;
}

.site-footer__nav {
    min-width: 0;
}

.site-footer__menu {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer__menu a {
    font-weight: 700;
    text-decoration: none;
    opacity: 0.8;
}

.site-footer__menu a:hover,
.site-footer__menu a:focus {
    opacity: 1;
    text-decoration: underline;
}

.site-footer__name:focus-visible,
.site-footer__brand .custom-logo-link:focus-visible,
.site-footer__menu a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
}

.site-footer__socials {
    min-width: 0;
}

.site-footer .social-links {
    margin-top: 0;
}

.site-footer__copyright {
    margin: 0;
    color: var(--mpb-color-footer-muted);
    font-size: 0.9rem;
}

/* Footer Layout: Simple */

.site-footer--layout-simple .site-footer__main {
    grid-template-columns: minmax(0, 1fr);
}

.site-footer--layout-simple .site-footer__connections {
    justify-items: start;
}

/* Footer Layout: Stacked / Centered */

.site-footer--layout-stacked .site-footer__inner,
.site-footer--layout-stacked .site-footer__main,
.site-footer--layout-stacked .site-footer__connections {
    justify-items: center;
    text-align: center;
}

.site-footer--layout-stacked .site-footer__brand-wrap {
    justify-items: center;
    text-align: center;
}

.site-footer--layout-stacked .site-footer__tagline {
    margin-inline: auto;
}

.site-footer--layout-stacked .site-footer__menu,
.site-footer--layout-stacked .social-links {
    justify-content: center;
}

/* Footer Layout: Split */

@media (min-width: 768px) {
    .site-footer--layout-split .site-footer__main {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(220px, auto);
        align-items: start;
    }

    .site-footer--layout-split .site-footer__brand-wrap {
        grid-column: 1;
    }

    .site-footer--layout-split .site-footer__connections {
        grid-column: 2;
        justify-self: end;
        justify-items: end;
        text-align: right;
    }

    .site-footer--layout-split .site-footer__menu,
    .site-footer--layout-split .social-links {
        justify-content: flex-end;
    }

    /*
     * Keep Split usable when one side is disabled or has no configured
     * content.
     */
    .site-footer--layout-split:not(.site-footer--has-brand)
        .site-footer__main,
    .site-footer--layout-split:not(.site-footer--has-connections)
        .site-footer__main {
        grid-template-columns: minmax(0, 1fr);
    }

    .site-footer--layout-split:not(.site-footer--has-brand)
        .site-footer__connections {
        grid-column: 1;
        justify-self: end;
    }

    .site-footer--layout-split:not(.site-footer--has-connections)
        .site-footer__brand-wrap {
        grid-column: 1;
    }
}

/* =========================================================
   10. SOCIAL LINKS
   ========================================================= */

.social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    padding: 0;
    margin: 1.5rem 0 0;
    list-style: none;
}

.social-links__link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: var(--mpb-color-text);
    text-decoration: none;
    font-weight: 700;
    opacity: 0.85;
    transition:
        transform 160ms ease,
        opacity 160ms ease,
        background-color 160ms ease,
        border-color 160ms ease;
}

.social-links__link:hover,
.social-links__link:focus {
    opacity: 1;
    text-decoration: underline;
}

.social-links__link:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
}

.social-links__icon {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    width: 1.25rem;
    height: 1.25rem;
}

.social-links__svg {
    display: block;
    width: 100%;
    height: 100%;
}

.social-links--icons {
    gap: 0.6rem;
}

.social-links--icons .social-links__link {
    width: 44px;
    height: 44px;
    justify-content: center;
    border: 1px solid var(--mpb-border-medium);
    border-radius: var(--mpb-radius-control);
    background: var(--mpb-fill-subtle);
}

.social-links--icons .social-links__link:hover,
.social-links--icons .social-links__link:focus {
    border-color: var(--mpb-border-strong);
    background: var(--mpb-fill-medium);
    text-decoration: none;
    transform: translateY(-1px);
}

/* Footer icons derive their translucent states from Footer Text. */

.site-footer .social-links--icons .social-links__link {
    border-color:
        rgba(
            var(--mpb-color-footer-text-rgb),
            var(--mpb-border-alpha-medium)
        );

    background:
        rgba(
            var(--mpb-color-footer-text-rgb),
            0.04
        );
}

.site-footer .social-links--icons .social-links__link:hover,
.site-footer .social-links--icons .social-links__link:focus {
    border-color:
        rgba(
            var(--mpb-color-footer-text-rgb),
            var(--mpb-border-alpha-strong)
        );

    background:
        rgba(
            var(--mpb-color-footer-text-rgb),
            0.08
        );
}

.social-links--icons .social-links__icon {
    width: 1.15rem;
    height: 1.15rem;
}

.social-links--icons-labels .social-links__link {
    gap: 0.5rem;
}

.social-links--icons-labels .social-links__icon {
    width: 1.1rem;
    height: 1.1rem;
}

/* =========================================================
   11. HERO
   ========================================================= */

.home-hero {
    --mpb-hero-content-width: 680px;
    --mpb-hero-min-height: calc(100vh - 72px);
    --mpb-hero-mobile-min-height: calc(100vh - 72px);
    --mpb-hero-media-height: clamp(280px, 45vw, 560px);

    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.home-hero--height-compact {
    --mpb-hero-min-height: clamp(460px, 68vh, 640px);
    --mpb-hero-mobile-min-height: clamp(460px, 70vh, 620px);
    --mpb-hero-media-height: clamp(240px, 34vw, 420px);
}

.home-hero--height-standard {
    --mpb-hero-min-height: clamp(560px, 82vh, 760px);
    --mpb-hero-mobile-min-height: clamp(540px, 84vh, 760px);
    --mpb-hero-media-height: clamp(280px, 40vw, 520px);
}

.home-hero--height-full-screen {
    --mpb-hero-min-height: calc(100vh - 72px);
    --mpb-hero-mobile-min-height: calc(100vh - 72px);
    --mpb-hero-media-height: clamp(280px, 45vw, 560px);
}

.home-hero__media {
    position: relative;
    width: 100%;
}

.home-hero__image-wrap {
    width: 100%;
}

.home-hero__image,
.home-hero__video,
.home-hero__placeholder {
    display: block;
    width: 100%;
    height: var(--mpb-hero-media-height);
    object-fit: cover;
    object-position: center;
    border-radius: var(--mpb-radius-media);
    background: var(--mpb-color-media-frame-bg, var(--mpb-color-surface));
    box-shadow: 0 25px 90px rgba(0, 0, 0, 0.35);
}

.home-hero__video {
    display: none;
}

.home-hero__placeholder {
    display: grid;
    place-items: center;
    min-height: 280px;
    border: 1px solid var(--mpb-border-medium);
    color: var(--mpb-color-muted);
}

.home-hero__content-shell {
    position: relative;
    z-index: 2;
    display: grid;
    width: 100%;
}

.home-hero__content {
    width: min(100%, var(--mpb-hero-content-width));
}

.home-hero__content h1 {
    margin: 0 0 1rem;
    color: var(--mpb-hero-heading-color);
    font-size: clamp(3rem, 10vw, 7rem);
    line-height: 0.9;
    text-shadow: var(--mpb-hero-text-shadow);
    text-wrap: balance;
}

.home-hero__content p {
    max-width: 620px;
    color: var(--mpb-hero-lead-color);
    font-size: clamp(1rem, 2vw, 1.25rem);
    text-shadow: var(--mpb-hero-text-shadow);
}

.home-hero__content .social-links {
    margin-top: 1.75rem;
}


/* Hero Layout: Split */

.home-hero--split {
    width: min(100%, var(--mpb-width-site));
    min-height: var(--mpb-hero-min-height);
    margin-inline: auto;
    display: grid;
    align-items: center;
    gap: clamp(2rem, 5vw, 4rem);
}

.home-hero--split .home-hero__content-shell {
    min-height: 100%;
}

@media (min-width: 768px) {
    .home-hero--split {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }
}


/* Hero Layout: Full Bleed */

.home-hero--full-bleed {
    width: 100%;
    max-width: none;
    min-height: var(--mpb-hero-min-height);
    margin-inline: 0;
    padding: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
}

.home-hero--full-bleed .home-hero__media {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    max-width: none;
    height: 100%;
}

.home-hero--full-bleed .home-hero__image-wrap {
    width: 100%;
    height: 100%;
}

.home-hero--full-bleed .home-hero__image,
.home-hero--full-bleed .home-hero__video,
.home-hero--full-bleed .home-hero__placeholder {
    width: 100%;
    height: 100%;
    min-height: 100%;
    border-radius: 0;
    box-shadow: none;
    object-fit: cover;
    object-position: center;
}

.home-hero--full-bleed .home-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    opacity: var(--mpb-hero-overlay-opacity, 0.45);
    pointer-events: none;
}

.home-hero--full-bleed .home-hero__content-shell {
    z-index: 2;
    width: min(100%, var(--mpb-width-site));
    min-height: var(--mpb-hero-min-height);
    margin-inline: auto;
    padding: clamp(5rem, 10vw, 8rem) 1.5rem;
}


/* Hero Overlay Styles */

.home-hero--full-bleed.home-hero--overlay-side .home-hero__overlay {
    background:
        linear-gradient(
            90deg,
            rgba(0, 0, 0, 0.72) 0%,
            rgba(0, 0, 0, 0.46) 38%,
            rgba(0, 0, 0, 0.12) 100%
        ),
        linear-gradient(
            0deg,
            rgba(0, 0, 0, 0.58) 0%,
            rgba(0, 0, 0, 0.04) 45%,
            rgba(0, 0, 0, 0.26) 100%
        );
}

.home-hero--full-bleed.home-hero--overlay-bottom .home-hero__overlay {
    background:
        linear-gradient(
            0deg,
            rgba(0, 0, 0, 0.78) 0%,
            rgba(0, 0, 0, 0.32) 48%,
            rgba(0, 0, 0, 0.12) 100%
        );
}

.home-hero--full-bleed.home-hero--overlay-center .home-hero__overlay {
    background:
        radial-gradient(
            circle at center,
            rgba(0, 0, 0, 0.18) 0%,
            rgba(0, 0, 0, 0.34) 48%,
            rgba(0, 0, 0, 0.78) 100%
        );
}

.home-hero--full-bleed.home-hero--overlay-even .home-hero__overlay {
    background: rgba(0, 0, 0, 0.7);
}


/* Hero V2 Placement */

.home-hero--x-left .home-hero__content-shell {
    justify-items: start;
}

.home-hero--x-center .home-hero__content-shell {
    justify-items: center;
}

.home-hero--x-right .home-hero__content-shell {
    justify-items: end;
}

.home-hero--y-top .home-hero__content-shell {
    align-items: start;
}

.home-hero--y-center .home-hero__content-shell {
    align-items: center;
}

.home-hero--y-bottom .home-hero__content-shell {
    align-items: end;
}


/* Hero V2 Text Alignment */
.home-hero--text-auto.home-hero--x-left .home-hero__content,
.home-hero--text-auto.home-hero--x-left .home-hero__content h1,
.home-hero--text-left .home-hero__content,
.home-hero--text-left .home-hero__content h1 {
    text-align: left;
}

.home-hero--text-auto.home-hero--x-center .home-hero__content,
.home-hero--text-auto.home-hero--x-center .home-hero__content h1,
.home-hero--text-center .home-hero__content,
.home-hero--text-center .home-hero__content h1 {
    text-align: center;
}

.home-hero--text-auto.home-hero--x-right .home-hero__content,
.home-hero--text-auto.home-hero--x-right .home-hero__content h1,
.home-hero--text-right .home-hero__content,
.home-hero--text-right .home-hero__content h1 {
    text-align: right;
}

.home-hero--text-auto.home-hero--x-left .home-hero__content p,
.home-hero--text-left .home-hero__content p {
    margin-left: 0;
    margin-right: auto;
}

.home-hero--text-auto.home-hero--x-center .home-hero__content p,
.home-hero--text-center .home-hero__content p {
    margin-inline: auto;
}

.home-hero--text-auto.home-hero--x-right .home-hero__content p,
.home-hero--text-right .home-hero__content p {
    margin-left: auto;
    margin-right: 0;
}

.home-hero--text-auto.home-hero--x-left .home-hero__content .social-links,
.home-hero--text-left .home-hero__content .social-links {
    justify-content: flex-start;
}

.home-hero--text-auto.home-hero--x-center .home-hero__content .social-links,
.home-hero--text-center .home-hero__content .social-links {
    justify-content: center;
}

.home-hero--text-auto.home-hero--x-right .home-hero__content .social-links,
.home-hero--text-right .home-hero__content .social-links {
    justify-content: flex-end;
}




/* Hero Media Fallbacks */

@media (min-width: 768px) {
    .home-hero__media.has-desktop-video .home-hero__image-wrap {
        display: none;
    }

    .home-hero__media.has-desktop-video .home-hero__video {
        display: block;
    }
}


/* Hero Mobile */

@media (max-width: 720px) {
    .home-hero--split {
        min-height: auto;
        padding-block: 3rem 4rem;
    }

    .home-hero--full-bleed {
        min-height: var(--mpb-hero-mobile-min-height);
    }

    .home-hero--full-bleed .home-hero__content-shell {
        min-height: var(--mpb-hero-mobile-min-height);
        padding: 4rem 1.5rem;
    }

    .home-hero__content h1 {
        font-size: clamp(3rem, 16vw, 5rem);
    }

    .home-hero--full-bleed .home-hero__content h1 {
        font-size: clamp(3.5rem, 18vw, 6rem);
    }

    .home-hero__content p {
        font-size: 1rem;
    }

    .home-hero--full-bleed.home-hero--overlay-side .home-hero__overlay {
        background:
            linear-gradient(
                0deg,
                rgba(0, 0, 0, 0.72) 0%,
                rgba(0, 0, 0, 0.24) 52%,
                rgba(0, 0, 0, 0.32) 100%
            );
    }
}


/* =========================================================
   12. FEATURED CONTENT / PRESS QUOTES
   ========================================================= */

.featured-content-layout {
    display: grid;
    gap: clamp(1.5rem, 4vw, 2.5rem);
}

.featured-content-card,
.featured-quote-card,
.home-blog-card,
.blog-archive-card,
.theme-archive-card,
.shows-empty,
.event-card.spotify-style,
.blog-archive__empty,
.theme-archive__empty,
.theme-search__empty,
.single-post__nav-item a {
    background: var(--mpb-color-surface);
    border: 1px solid var(--mpb-border-subtle);
    box-shadow: var(--mpb-shadow-card);
}

.featured-content-card,
.featured-quote-card,
.home-blog-card,
.blog-archive-card,
.theme-archive-card {
    overflow: hidden;
    border-radius: var(--mpb-radius-card);
    transition:
        transform 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease;
}

.home-blog-card:hover,
.blog-archive-card:hover,
.theme-archive-card:hover {
    transform: var(--mpb-card-hover-transform);
    border-color: var(--mpb-border-medium);
    box-shadow: var(--mpb-shadow-card-hover);
}

.featured-content-card {
    display: grid;
}

.featured-content-card__media {
    display: grid;
    place-items: center;
    padding: 1.5rem;
    background: var(--mpb-color-media-frame-bg, var(--mpb-color-surface));
    border-bottom: 1px solid var(--mpb-border-subtle);
}

.featured-content-card__image {
    display: block;
    width: 100%;
    height: auto;
    padding: 1rem;
    background: transparent;
    border: 0;
    border-radius: var(--mpb-radius-media);
}

.featured-content-card__img {
    display: block;
    width: min(100%, 420px);
    height: auto;
    object-fit: contain;
    border-radius: 8px;
}

.featured-content-card__body,
.featured-quote-card {
    padding: clamp(1.25rem, 3vw, 2rem);
}

.featured-content-card__label {
    margin: 0 0 0.75rem;
    color: var(--mpb-color-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.8rem;
    font-weight: 700;
}

.featured-content-card h3 {
    margin: 0 0 1rem;
    font-size: clamp(2rem, 5vw, 4rem);
    line-height: 0.95;
}

.featured-content-card p {
    max-width: 56ch;
}

.featured-content-card__button {
    margin-top: 1rem;
}

.featured-content-card__embed {
    position: relative;
    width: min(100%, var(--mpb-width-reading));
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 10px;
    background: #000;
}

.featured-content-card__embed iframe,
.featured-content-card__embed object,
.featured-content-card__embed embed {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.featured-content-card--media-video .featured-content-card__media {
    padding: clamp(1rem, 3vw, 1.5rem);
}

.press-quote {
    margin: 0;
}

.press-quote p {
    margin: 0;
    font-size: clamp(1.5rem, 4vw, 3rem);
    line-height: 1.05;
    font-weight: 700;
    text-wrap: balance;
}

.press-quote p {
    color: var(
        --mpb-home-quote-color,
        inherit
    );
}

.press-quote--size-compact p {
    font-size:
        clamp(1.2rem, 3vw, 2.1rem);
}

.press-quote--size-standard p {
    font-size:
        clamp(1.5rem, 4vw, 3rem);
}

.press-quote--size-large p {
    font-size:
        clamp(1.9rem, 5.5vw, 4.25rem);
}

.press-quote cite {
    display: block;
    margin-top: 1rem;
    font-style: normal;
    opacity: 0.75;
}

.press-quote a {
    color: inherit;
}

.press-quote--empty p {
    font-size: 1rem;
    font-weight: 400;
    opacity: 0.7;
}

.featured-quote-below {
    width: min(100%, var(--mpb-width-content));
    margin: clamp(1.5rem, 4vw, 2.5rem) auto 0;
}

.home-featured-content--layout-split-card .featured-content-card {
    align-content: start;
}

.home-featured-content--layout-stacked .featured-content-layout {
    width: min(100%, var(--mpb-width-content));
}

.home-featured-content--layout-stacked .featured-content-card__media {
    padding: clamp(1.5rem, 5vw, 3rem);
}

.home-featured-content--layout-stacked .featured-content-card__img {
    width: min(100%, 560px);
}

.home-featured-content--layout-stacked .featured-content-card__body {
    text-align: center;
    justify-items: center;
}

.home-featured-content--layout-stacked .featured-content-card p {
    margin-inline: auto;
}

.home-featured-content--quote-below .featured-quote-card {
    text-align: center;
}

.home-featured-content--quote-below .press-quote p {
    margin-inline: auto;
}

/* Rich text content inside homepage modules */

.featured-content-card__text > :first-child,
.home-services__intro > :first-child,
.home-service-card__description > :first-child {
    margin-top: 0;
}

.featured-content-card__text > :last-child,
.home-services__intro > :last-child,
.home-service-card__description > :last-child {
    margin-bottom: 0;
}

.featured-content-card__text ul,
.featured-content-card__text ol,
.home-services__intro ul,
.home-services__intro ol,
.home-service-card__description ul,
.home-service-card__description ol {
    margin: 1rem 0 0;
    padding-left: 1.35rem;
}

.featured-content-card__text li + li,
.home-services__intro li + li,
.home-service-card__description li + li {
    margin-top: 0.35rem;
}

.featured-content-card__text a,
.home-services__intro a,
.home-service-card__description a {
    color: var(--mpb-color-link);
    font-weight: 700;
}

.home-services__intro {
    max-width: min(100%, var(--mpb-width-content));
    margin: 0.75rem 0 0;
    color: var(--mpb-color-muted);
}

body.mpb-heading-align-home .home-services__intro,
body.mpb-heading-align-all .home-services__intro {
    margin-inline: auto;
    text-align: center;
}

.home-service-card__description {
    color: var(--mpb-color-muted);
}

@media (min-width: 768px) {
    .home-featured-content--quote-beside .featured-content-layout {
        grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.55fr);
        align-items: stretch;
    }

    .home-featured-content--quote-beside .featured-content-card,
    .home-featured-content--quote-beside .featured-quote-card {
        min-height: 100%;
    }

    .home-featured-content--quote-hidden .featured-content-layout,
    .home-featured-content--quote-below .featured-content-layout {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (min-width: 900px) {
    .home-featured-content--layout-media-left .featured-content-card,
    .home-featured-content--layout-media-right .featured-content-card {
        grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
        align-items: stretch;
    }

    .home-featured-content--layout-media-left .featured-content-card__media,
    .home-featured-content--layout-media-right .featured-content-card__media {
        border-bottom: 0;
    }

    .home-featured-content--layout-media-left .featured-content-card__body,
    .home-featured-content--layout-media-right .featured-content-card__body {
        display: grid;
        align-content: center;
    }

    .home-featured-content--layout-media-right .featured-content-card__media {
        order: 2;
    }

    .home-featured-content--layout-media-right .featured-content-card__body {
        order: 1;
    }
}



/* =========================================================
   HOME SERVICES
   ========================================================= */

.home-services__grid {
    width: min(100%, var(--mpb-width-site));
    margin-inline: auto;
    display: grid;
    gap: clamp(1rem, 3vw, 1.5rem);
}

.home-service-card,
.home-services__empty {
    padding: clamp(1.25rem, 3vw, 2rem);
    border-radius: var(--mpb-radius-card);
    background: var(--mpb-color-surface);
    border: 1px solid var(--mpb-border-subtle);
    box-shadow: var(--mpb-shadow-card);
}

.home-service-card {
    display: grid;
    align-content: start;
    transition:
        transform 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease;
}

.home-service-card:hover {
    transform: var(--mpb-card-hover-transform);
    border-color: var(--mpb-border-medium);
    box-shadow: var(--mpb-shadow-card-hover);
}

.home-service-card h3 {
    margin: 0 0 0.85rem;
    font-size: clamp(1.6rem, 3vw, 2.5rem);
    line-height: 1;
}

.home-service-card p {
    margin: 0;
    color: var(--mpb-color-muted);
}

.home-service-card__link {
    display: inline-flex;
    width: max-content;
    margin-top: 1.25rem;
    color: var(--mpb-color-link);
    font-weight: 700;
    text-decoration: none;
}

.home-service-card__link:hover,
.home-service-card__link:focus {
    text-decoration: underline;
}

.home-services__cta {
    width: min(100%, var(--mpb-width-site));
    margin: clamp(2rem, 5vw, 3rem) auto 0;
    text-align: center;
}

.home-services__empty {
    width: min(100%, var(--mpb-width-content));
    margin-inline: auto;
    color: var(--mpb-color-muted);
    text-align: center;
}

.home-services__empty p {
    margin: 0;
}

/* Services Layout: Grid */

@media (min-width: 760px) {
    .home-services--layout-grid .home-services__grid {
        grid-template-columns: repeat(var(--mpb-services-columns), minmax(0, 1fr));
    }
}

/* Services Layout: Featured First */

@media (min-width: 900px) {
    .home-services--layout-featured-first .home-services__grid {
        grid-template-columns: repeat(var(--mpb-services-columns), minmax(0, 1fr));
    }

    .home-services--layout-featured-first .home-service-card:first-child {
        grid-column: span 2;
        padding: clamp(1.5rem, 4vw, 2.75rem);
    }

    .home-services--layout-featured-first .home-service-card:first-child h3 {
        font-size: clamp(2.25rem, 5vw, 4.5rem);
    }
}

/* Services Layout: Compact */

.home-services--layout-compact .home-services__grid {
    width: min(100%, var(--mpb-width-content));
    gap: 0.75rem;
}

.home-services--layout-compact .home-service-card {
    padding: 1.25rem 1.5rem;
}

.home-services--layout-compact .home-service-card h3 {
    margin-bottom: 0.5rem;
    font-size: clamp(1.35rem, 2.4vw, 2rem);
}

.home-services--layout-compact .home-service-card__link {
    margin-top: 0.75rem;
}

/* Texture support */



@media (max-width: 720px) {
    .home-service-card {
        padding: 1.25rem;
    }
}

/* =========================================================
   HOME QUOTES / TESTIMONIALS
   ========================================================= */

.home-quotes {
    position: relative;
    padding-inline: var(--mpb-gutter-page);
}

.home-quotes--tone-default {
    background: transparent;
}

.home-quotes--tone-surface {
    background: var(--mpb-color-surface);
}

.home-quotes--tone-contrast {
    background: var(
        --mpb-color-footer-bg,
        var(--mpb-color-surface)
    );
    color: var(
        --mpb-color-footer-text,
        var(--mpb-color-text)
    );
}

.home-quotes__inner {
    width: min(100%, var(--mpb-width-site));
    margin-inline: auto;
}

.home-quotes--tone-contrast .section-header h2,
.home-quotes--tone-contrast .section-header p {
    color: inherit;
}

.home-quotes--tone-contrast .section-header p {
    opacity: 0.78;
}

.home-quotes__grid,
.home-quotes__secondary-grid {
    display: grid;
    gap: clamp(1rem, 3vw, 1.5rem);
}

.home-quotes__featured {
    margin-bottom: clamp(1rem, 3vw, 1.5rem);
}

.home-quote-card,
.home-quotes__empty {
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border: 1px solid var(--mpb-border-subtle);
    border-radius: var(--mpb-radius-card);
    background: var(--mpb-color-surface);
    box-shadow: var(--mpb-shadow-card);
}

.home-quotes--tone-surface .home-quote-card,
.home-quotes--tone-surface .home-quotes__empty {
    background: var(
        --mpb-color-background,
        var(--mpb-color-bg)
    );
}

.home-quotes--tone-contrast .home-quote-card,
.home-quotes--tone-contrast .home-quotes__empty {
    border-color:
        rgba(
            var(--mpb-color-footer-text-rgb),
            var(--mpb-border-alpha-medium)
        );

    background:
        rgba(
            var(--mpb-color-footer-text-rgb),
            0.06
        );

    color: inherit;
}

.home-quote-card {
    display: grid;
    align-content: start;
    gap: 1.5rem;
}

.home-quote-card__quote {
    margin: 0;
    color: var(--mpb-color-text);
    font-size: clamp(1.35rem, 3vw, 2.25rem);
    line-height: 1.15;
    letter-spacing: -0.03em;
}

.home-quotes--tone-contrast .home-quote-card__quote {
    color: inherit;
}

.home-quote-card__quote::before {
    content: "“";
}

.home-quote-card__quote::after {
    content: "”";
}

.home-quote-card__footer {
    display: grid;
    gap: 0.25rem;
    color: var(--mpb-color-muted);
    font-size: 0.95rem;
}

.home-quotes--tone-contrast .home-quote-card__footer {
    color: currentColor;
    opacity: 0.78;
}

.home-quote-card__footer cite {
    color: inherit;
    font-style: normal;
    font-weight: 800;
}

.home-quote-card__footer span {
    color: inherit;
}

/*
 * Single and Featured First are intentional presentation modes.
 * Grid never styles a card differently because of stored featured status.
 */
.home-quotes--layout-single .home-quote-card,
.home-quote-card--featured {
    justify-items: center;
    text-align: center;
}

.home-quotes--layout-single .home-quote-card__footer,
.home-quote-card--featured .home-quote-card__footer {
    justify-items: center;
    text-align: center;
}

.home-quote-card--featured {
    width: 100%;
    padding: clamp(2rem, 5vw, 4rem);
}

.home-quote-card--featured .home-quote-card__quote {
    width: min(100%, var(--mpb-width-content));
    font-size: clamp(1.75rem, 4vw, 3.35rem);
    text-wrap: balance;
}

.home-quotes__empty {
    width: min(100%, var(--mpb-width-content));
    margin-inline: auto;
    color: var(--mpb-color-muted);
    text-align: center;
}

.home-quotes__empty p {
    margin: 0;
}

@media (min-width: 780px) {
    .home-quotes--layout-grid .home-quotes__grid,
    .home-quotes__secondary-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .home-quotes--layout-single .home-quotes__grid {
        width: min(100%, var(--mpb-width-content));
        margin-inline: auto;
    }
}



@media (max-width: 720px) {
    .home-quotes {
        padding-inline: 1rem;
    }

    .home-quote-card,
    .home-quote-card--featured {
        padding: 1.35rem;
    }

    .home-quote-card__quote,
    .home-quote-card--featured .home-quote-card__quote {
        font-size: clamp(1.3rem, 7vw, 2rem);
    }
}

/*
 * Quotes / Testimonials emphasis.
 *
 * Featured First keeps a larger featured quote at every
 * selected scale.
 */

/* Custom color, when supplied. */

.home-quotes .home-quote-card__quote {
    color: var(
        --mpb-home-quote-color,
        var(--mpb-color-text)
    );
}

.home-quotes--tone-contrast
.home-quote-card__quote {
    color: var(
        --mpb-home-quote-color,
        inherit
    );
}

/* Compact */

.home-quotes--quote-size-compact
.home-quote-card__quote {
    font-size:
        clamp(1.15rem, 2.4vw, 1.8rem);
}

.home-quotes--quote-size-compact
.home-quote-card--featured
.home-quote-card__quote {
    font-size:
        clamp(1.45rem, 3.3vw, 2.6rem);
}

/* Standard — current visual scale. */

.home-quotes--quote-size-standard
.home-quote-card__quote {
    font-size:
        clamp(1.35rem, 3vw, 2.25rem);
}

.home-quotes--quote-size-standard
.home-quote-card--featured
.home-quote-card__quote {
    font-size:
        clamp(1.75rem, 4vw, 3.35rem);
}

/* Large */

.home-quotes--quote-size-large
.home-quote-card__quote {
    font-size:
        clamp(1.6rem, 3.6vw, 2.75rem);
}

.home-quotes--quote-size-large
.home-quote-card--featured
.home-quote-card__quote {
    font-size:
        clamp(2.1rem, 5vw, 4.2rem);
}

/* =========================================================
   13. SHOWS / EVENTS
   ========================================================= */

.shows-embed {
    min-height: 120px;
}

.shows-empty {
    max-width: 640px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
    text-align: center;
    border-radius: var(--mpb-radius-card);
}

.shows-empty p {
    margin: 0 0 0.6rem;
}

.shows-empty .show-btn--primary {
    margin-top: 0.4rem;
}

.events-list {
    display: grid;
    gap: 1rem;
    max-width: 900px;
    margin: 0 auto;
    padding: 0 1rem;
}

.event-card.spotify-style {
    display: grid;
    grid-template-columns: 72px 1fr;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    border-radius: var(--mpb-radius-card);
}

.event-date {
    display: grid;
    place-items: center;
    padding: 0.65rem 0.5rem;
    border-radius: var(--mpb-radius-card);
    background: var(--mpb-fill-subtle);
    line-height: 1;
}

.event-date .month {
    opacity: 0.75;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.event-date .day {
    font-size: 1.6rem;
    font-weight: 700;
}

.event-body h3 {
    margin: 0 0 0.35rem;
}

.event-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    color: var(--mpb-color-muted);
    font-size: 0.95rem;
}

.event-body a {
    margin-top: 0.75rem;
    padding: 0.5rem 0.8rem;
}


/* =========================================================
   14. HOME BLOG / NEWS / EDITORIAL
   ========================================================= */

.home-blog__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: clamp(1.5rem, 4vw, 3rem);
    flex-wrap: wrap;
}

.home-blog__header .section-header {
    margin-bottom: 0;
}

.home-blog__view-all {
    color: var(--mpb-color-link);
    font-weight: 700;
    text-decoration: none;
    opacity: 0.85;
}

.home-blog__view-all:hover,
.home-blog__view-all:focus {
    opacity: 1;
    text-decoration: underline;
}

.home-blog__grid,
.home-blog__secondary-grid,
.home-blog__compact-list,
.home-blog__featured-layout {
    display: grid;
    gap: clamp(1.25rem, 3vw, 2rem);
}

.home-blog-card__image-link,
.blog-archive-card__image-link,
.theme-archive-card__image-link {
    display: block;
    background: var(--mpb-color-media-frame-bg, var(--mpb-color-surface));
}

.home-blog-card__image,
.blog-archive-card__image,
.theme-archive-card__image {
    display: block;
    width: 100%;
    object-fit: cover;
}

.home-blog-card__image {
    height: 240px;
}

.blog-archive-card__image,
.theme-archive-card__image {
    height: 260px;
}

.home-blog-card__body,
.blog-archive-card__body,
.theme-archive-card__body {
    display: grid;
    align-content: start;
    padding: 1.5rem;
}

.home-blog-card__date,
.blog-archive-card__date,
.theme-archive-card__date,
.theme-search-card__type {
    display: block;
    margin: 0 0 0.75rem;
    color: var(--mpb-color-muted);
    font-size: 0.875rem;
}

.theme-search-card__type {
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.home-blog-card h3,
.blog-archive-card h2,
.theme-archive-card h2 {
    margin: 0 0 1rem;
    line-height: 1;
}

.home-blog-card h3 {
    font-size: clamp(1.5rem, 3vw, 2.25rem);
}

.blog-archive-card h2,
.theme-archive-card h2 {
    font-size: clamp(1.6rem, 3vw, 2.5rem);
}

.home-blog-card h3 a,
.blog-archive-card h2 a,
.theme-archive-card h2 a {
    color: inherit;
    text-decoration: none;
}

.home-blog-card h3 a:hover,
.home-blog-card h3 a:focus,
.blog-archive-card h2 a:hover,
.blog-archive-card h2 a:focus,
.theme-archive-card h2 a:hover,
.theme-archive-card h2 a:focus {
    text-decoration: underline;
}

.home-blog-card__excerpt,
.blog-archive-card__excerpt,
.theme-archive-card__excerpt {
    color: var(--mpb-color-muted);
}

.home-blog-card__excerpt p,
.blog-archive-card__excerpt p,
.theme-archive-card__excerpt p {
    margin-top: 0;
}

.home-blog-card__link,
.blog-archive-card__link,
.theme-archive-card__link {
    display: inline-block;
    margin-top: 1rem;
    color: var(--mpb-color-link);
    font-weight: 700;
    text-decoration: none;
}

.home-blog-card__link:hover,
.home-blog-card__link:focus,
.blog-archive-card__link:hover,
.blog-archive-card__link:focus,
.theme-archive-card__link:hover,
.theme-archive-card__link:focus {
    text-decoration: underline;
}


/* Home Blog: Grid Layout */

.home-blog--layout-grid .home-blog__grid {
    display: grid;
}


/* Home Blog: Featured First Layout */

.home-blog--layout-featured-first .home-blog__featured-layout {
    display: grid;
    gap: clamp(1.5rem, 4vw, 2.5rem);
}

.home-blog--layout-featured-first .home-blog-card--featured {
    display: grid;
}

.home-blog--layout-featured-first .home-blog-card--featured .home-blog-card__image {
    height: clamp(320px, 42vw, 560px);
}

.home-blog--layout-featured-first .home-blog-card--featured .home-blog-card__body {
    padding: clamp(1.5rem, 4vw, 2.5rem);
}

.home-blog--layout-featured-first .home-blog-card--featured h3 {
    max-width: 900px;
    font-size: clamp(2.5rem, 6vw, 5.75rem);
    line-height: 0.9;
    text-wrap: balance;
}

.home-blog--layout-featured-first .home-blog-card--featured .home-blog-card__excerpt {
    max-width: 720px;
    font-size: clamp(1rem, 2vw, 1.2rem);
}

.home-blog--layout-featured-first .home-blog__secondary-grid {
    display: grid;
    gap: 1rem;
}

.home-blog--layout-featured-first .home-blog-card--secondary .home-blog-card__image {
    height: 170px;
}

.home-blog--layout-featured-first .home-blog-card--secondary .home-blog-card__body {
    padding: 1.25rem;
}

.home-blog--layout-featured-first .home-blog-card--secondary h3 {
    font-size: clamp(1.25rem, 2vw, 1.75rem);
}


/* Home Blog: Compact Layout */

.home-blog--layout-compact .home-blog__compact-list {
    display: grid;
    gap: 1rem;
    width: min(100%, var(--mpb-width-content));
    margin-inline: auto;
}

.home-blog--layout-compact .home-blog-card--compact {
    display: grid;
    border-radius: 14px;
}

.home-blog--layout-compact .home-blog-card--compact .home-blog-card__body {
    min-height: auto;
    padding: 1.1rem 1.25rem;
}

.home-blog--layout-compact .home-blog-card--compact h3 {
    margin-bottom: 0.5rem;
    font-size: clamp(1.35rem, 2.4vw, 2rem);
}

.home-blog--layout-compact .home-blog-card--compact .home-blog-card__excerpt {
    font-size: 0.95rem;
}

.home-blog--layout-compact .home-blog-card--compact .home-blog-card__link {
    margin-top: 0.5rem;
}

.home-blog--layout-compact .home-blog-card--compact .home-blog-card__image {
    height: 180px;
}


/* Home Blog: No Image States */

.home-blog-card--no-image .home-blog-card__body {
    min-height: 220px;
}

.home-blog--layout-featured-first .home-blog-card--featured.home-blog-card--no-image .home-blog-card__body {
    min-height: clamp(320px, 42vw, 520px);
}

.home-blog--layout-compact .home-blog-card--compact.home-blog-card--no-image .home-blog-card__body {
    min-height: auto;
}

@media (min-width: 760px) {
    .home-blog--layout-compact .home-blog-card--compact {
        grid-template-columns: 180px minmax(0, 1fr);
        align-items: stretch;
    }

    .home-blog--layout-compact .home-blog-card--compact.home-blog-card--no-image {
        grid-template-columns: 1fr;
    }

    .home-blog--layout-compact .home-blog-card--compact .home-blog-card__image-link {
        height: 100%;
    }

    .home-blog--layout-compact .home-blog-card--compact .home-blog-card__image {
        height: 100%;
        min-height: 160px;
    }
}

@media (min-width: 768px) {
    .home-blog--layout-grid .home-blog__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 900px) {
    .home-blog--layout-featured-first .home-blog__featured-layout {
        grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.6fr);
        align-items: stretch;
    }

    .home-blog--layout-featured-first .home-blog-card--featured {
        min-height: 100%;
    }

    .home-blog--layout-featured-first .home-blog-card--featured .home-blog-card__body {
        align-content: end;
    }
}

@media (min-width: 1100px) {
    .home-blog--layout-grid .home-blog__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}


/* =========================================================
   15. BLOG ARCHIVE / JOURNAL PAGE
   ========================================================= */

.blog-archive-main {
    padding-block: var(--mpb-page-padding-block);
    padding-inline: var(--mpb-gutter-page);
}

.blog-archive {
    width: min(100%, var(--mpb-width-site));
    margin-inline: auto;
}

.blog-archive__header {
    max-width: 900px;
    margin-bottom: clamp(2.5rem, 6vw, 4.5rem);
}

.blog-archive__eyebrow {
    margin: 0 0 0.75rem;
    color: var(--mpb-color-muted);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.blog-archive__header h1 {
    margin: 0;
    font-size: clamp(3.5rem, 10vw, 8rem);
    line-height: 0.85;
    text-wrap: balance;
}

.blog-archive__intro {
    max-width: 720px;
    margin-top: 1.5rem;
    color: var(--mpb-color-muted);
    font-size: clamp(1rem, 2vw, 1.2rem);
}

.blog-archive__intro > * {
    margin-block: 0 1rem;
}

.blog-archive__grid {
    display: grid;
    gap: clamp(1.25rem, 3vw, 2rem);
}

.blog-archive__empty {
    max-width: 720px;
    padding: 2rem;
    border-radius: var(--mpb-radius-card);
    color: var(--mpb-color-muted);
}


/* =========================================================
   16. SINGLE POST
   ========================================================= */

.single-main {
    position: relative;
    padding-block: var(--mpb-page-padding-block);
    padding-inline: var(--mpb-gutter-page);
}

.single-entry {
    position: relative;
    z-index: 1;
    width: min(100%, var(--mpb-width-content));
    margin-inline: auto;
    padding: clamp(1.5rem, 4vw, 3rem);
    background: var(--mpb-color-bg);
    border: 1px solid var(--mpb-border-subtle);
    border-radius: 0;
}

.single-post__back-link {
    display: flex;
    width: min(100%, var(--mpb-width-reading));
    margin: 0 auto 2rem;
    color: var(--mpb-color-muted);
    font-weight: 700;
    text-decoration: none;
}

.single-post__back-link:hover,
.single-post__back-link:focus {
    color: var(--mpb-color-text);
    text-decoration: underline;
}

.single-post__header,
.single-post__excerpt,
.single-post__content,
.single-post__footer {
    width: min(100%, var(--mpb-width-reading));
    margin-inline: auto;
}

.single-post__header {
    margin-bottom: 2rem;
    text-align: center;
}

.single-post__meta {
    margin: 0 0 1rem;
    color: var(--mpb-color-muted);
}

.single-post__header h1 {
    margin: 0;
    font-size: clamp(3rem, 7vw, 6rem);
    line-height: 0.9;
    text-wrap: balance;
}

.single-post__excerpt {
    margin-top: 1.5rem;
    color: var(--mpb-color-muted);
    font-size: clamp(1.05rem, 2vw, 1.3rem);
}

.single-post__excerpt p {
    margin: 0;
}

.single-post__featured-image {
    width: min(100%, var(--mpb-width-content));
    margin: clamp(2rem, 5vw, 3.5rem) auto;
}

.single-post__image {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--mpb-radius-media);
}

.single-post__content {
    color: var(--mpb-color-text);
    font-size: var(--mpb-font-blog-body-size);
    line-height: 1.7;
}

.single-post__content > * {
    margin-block: 0 1.5rem;
}

.single-post__content p,
.single-post__content li {
    color: var(--mpb-color-text);
}

.single-post__content img {
    max-width: 100%;
    height: auto;
}

.single-post__content a {
    text-decoration: underline;
}

.single-post__content blockquote {
    margin: 2.5rem 0;
    padding-left: 1.25rem;
    border-left: 4px solid var(--mpb-color-accent);
    color: var(--mpb-color-muted);
    font-size: 1.25rem;
}

.single-post__content h2,
.single-post__content h3 {
    margin-top: 2.5rem;
}

.single-post__content figure {
    margin-inline: 0;
}

.single-post__content figcaption {
    margin-top: 0.5rem;
    color: var(--mpb-color-muted);
    font-size: 0.9rem;
    text-align: center;
}

.single-post__footer {
    margin-top: clamp(3rem, 7vw, 5rem);
    padding-top: 2rem;
    border-top: 1px solid var(--mpb-border-divider);
}

.single-post__nav {
    display: grid;
    gap: 1rem;
}

.single-post__nav-item a {
    display: grid;
    gap: 0.35rem;
    padding: 1.25rem;
    border-radius: var(--mpb-radius-card);
    color: var(--mpb-color-text);
    text-decoration: none;
}

.single-post__nav-item a:hover,
.single-post__nav-item a:focus {
    border-color: var(--mpb-border-interactive);
    transform: translateY(-1px);
}

.single-post__nav-item span {
    color: var(--mpb-color-muted);
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.single-post__nav-item--next {
    text-align: right;
}

@media (min-width: 760px) {
    .single-post__nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .single-post__nav-item--next {
        grid-column: 2;
    }
}

/* Single post: keep header full-width, content centered */

.single .site-header {
    width: 100%;
    max-width: none;
    background: var(--mpb-color-header-bg);
}

.single .single-main {
    padding-top: clamp(4rem, 8vw, 7rem);
}

/* =========================================================
   17. NEWSLETTER
   ========================================================= */

.home-newsletter {
    background:
        linear-gradient(
            180deg,
            transparent,
            rgba(var(--mpb-color-text-rgb), 0.025),
            transparent
        );

    text-align: center;
}

.home-newsletter__inner {
    max-width: 720px;
    margin: 0 auto;
}

.home-newsletter .section-header p {
    margin-inline: auto;
}

.newsletter-form {
    margin-top: 2rem;
}

.newsletter-form form {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
}

.newsletter-form input[type="email"],
.newsletter-form input[type="text"] {
    width: 100%;
    max-width: 420px;
    padding: 0.85rem 1rem;
    border: 1px solid var(--mpb-border-control);
    border-radius: var(--mpb-radius-control);
    background: var(--mpb-color-surface);
    color: var(--mpb-color-text);
}

.newsletter-form button,
.newsletter-form input[type="submit"] {
    margin-top: 0;
    padding: 0.85rem 1rem;
}


/* =========================================================
   18. GENERAL PAGE / ARCHIVE / SEARCH / 404 TEMPLATES
   ========================================================= */

.page-main,
.archive-main,
.search-main,
.error-main {
    padding-block: var(--mpb-page-padding-block);
    padding-inline: var(--mpb-gutter-page);
}

.theme-page,
.theme-archive,
.theme-search,
.theme-error {
    width: min(100%, var(--mpb-width-site));
    margin-inline: auto;
}

.theme-page {
    width: min(100%, var(--mpb-width-content));
}

.theme-page__header,
.theme-archive__header,
.theme-search__header,
.theme-error {
    margin-bottom: clamp(2.5rem, 6vw, 4.5rem);
}

.theme-page__header h1,
.theme-archive__header h1,
.theme-search__header h1,
.theme-error h1 {
    margin: 0;
    font-size: clamp(3.5rem, 10vw, 8rem);
    line-height: 0.85;
    text-wrap: balance;
}


.theme-page__image {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--mpb-radius-media);
}

.theme-page__content,
.theme-archive__description {
    color: var(--mpb-color-text);
    font-size: 1.1rem;
    line-height: 1.7;
}

.theme-page__content > *,
.theme-archive__description > * {
    margin-block: 0 1.5rem;
}

.theme-page__content img {
    max-width: 100%;
    height: auto;
}

.theme-page__content a {
    text-decoration: underline;
}

.theme-archive__grid,
.theme-search__grid {
    display: grid;
    gap: clamp(1.25rem, 3vw, 2rem);
}

.blog-archive__pagination,
.theme-archive__pagination {
    margin-top: clamp(2rem, 5vw, 4rem);
}

.blog-archive__pagination .nav-links,
.theme-archive__pagination .nav-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
}

.blog-archive__pagination .page-numbers,
.theme-archive__pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    min-height: 42px;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--mpb-border-subtle);
    border-radius: var(--mpb-radius-control);
    background: var(--mpb-color-surface);
    color: var(--mpb-color-text);
    text-decoration: none;
}

.blog-archive__pagination .page-numbers.current,
.theme-archive__pagination .page-numbers.current {
    background: var(--mpb-color-button-bg);
    color: var(--mpb-color-button-text);
}

.theme-search__form,
.theme-error__search {
    max-width: 620px;
    margin-top: 1.5rem;
}

.theme-search__form form,
.theme-error__search form {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.theme-search__form input[type="search"],
.theme-error__search input[type="search"] {
    flex: 1 1 260px;
    min-height: 46px;
    padding: 0.85rem 1rem;
    border: 1px solid var(--mpb-border-control);
    background: var(--mpb-color-surface);
    color: var(--mpb-color-text);
}

.theme-search__form input[type="submit"],
.theme-search__form button,
.theme-error__search input[type="submit"],
.theme-error__search button {
    min-height: 46px;
    padding: 0.85rem 1rem;
    border: 0;
    background: var(--mpb-color-button-bg);
    color: var(--mpb-color-button-text);
    font-weight: 700;
    cursor: pointer;
}

.theme-archive__empty,
.theme-search__empty {
    max-width: 720px;
    padding: 2rem;
    border-radius: var(--mpb-radius-card);
    color: var(--mpb-color-muted);
}

.theme-error {
    display: grid;
    justify-items: start;
    max-width: 820px;
}

.theme-error__eyebrow {
    margin: 0 0 0.75rem;
    color: var(--mpb-color-muted);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.theme-error p {
    max-width: 640px;
    color: var(--mpb-color-muted);
    font-size: clamp(1rem, 2vw, 1.2rem);
}

.theme-error__actions {
    margin-top: 1.5rem;
}


/* ==========================================================================
   19. TEXTURE ZONES
   ========================================================================== */

/*
 * Texture V2 treats texture as an environmental background layer.
 *
 * Cards, controls, buttons, and media remain clean and opaque so texture
 * never competes with content or interactive labels.
 */

/* Shared texture hosts */

/*
 * Do not assign a position value to the header here.
 * Its Standard, Sticky, Transparent, and Transparent + Scroll behaviors
 * control whether it is relative, sticky, absolute, or fixed.
 */
body.mpb-texture-header .site-header {
    isolation: isolate;
}

body.mpb-texture-footer .site-footer,
body.mpb-texture-sections .home-section:not(.home-hero),
body.mpb-texture-editorial .blog-archive-main,
body.mpb-texture-editorial .single-main,
body.mpb-texture-editorial .page-main,
body.mpb-texture-editorial .archive-main,
body.mpb-texture-editorial .search-main,
body.mpb-texture-editorial .error-main {
    position: relative;
    isolation: isolate;
}

/* Shared texture layer */
body.mpb-texture-header .site-header::before,
body.mpb-texture-footer .site-footer::before,
body.mpb-texture-sections .home-section:not(.home-hero)::before,
body.mpb-texture-editorial .blog-archive-main::before,
body.mpb-texture-editorial .single-main::before,
body.mpb-texture-editorial .page-main::before,
body.mpb-texture-editorial .archive-main::before,
body.mpb-texture-editorial .search-main::before,
body.mpb-texture-editorial .error-main::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image: var(--mpb-texture-image);
	background-position: center top;
	background-size: var(--mpb-texture-size);
	background-repeat: var(--mpb-texture-repeat);
	opacity: var(--mpb-texture-opacity);
	pointer-events: none;
}

/* Keep content above texture layers */
body.mpb-texture-header .site-header__inner,
body.mpb-texture-footer .site-footer__inner,
body.mpb-texture-sections .home-section:not(.home-hero) > *,
body.mpb-texture-editorial .blog-archive-main > *,
body.mpb-texture-editorial .single-main > *,
body.mpb-texture-editorial .page-main > *,
body.mpb-texture-editorial .archive-main > *,
body.mpb-texture-editorial .search-main > *,
body.mpb-texture-editorial .error-main > * {
	position: relative;
	z-index: 1;
}

/*
 * Transparent desktop headers remain genuinely transparent over the hero.
 * The texture appears once Transparent + Scroll becomes opaque.
 */
body.mpb-is-front-page.mpb-header-transparent.mpb-texture-header .site-header::before,
body.mpb-is-front-page.mpb-header-transparent-scroll.mpb-texture-header .site-header:not(.is-scrolled)::before {
	opacity: 0;
}

/* Editorial reading surfaces */
body.mpb-texture-editorial .single-entry,
body.mpb-texture-editorial .theme-page,
body.mpb-texture-editorial .blog-archive__header,
body.mpb-texture-editorial .theme-archive__header,
body.mpb-texture-editorial .theme-search__header,
body.mpb-texture-editorial .theme-error,
body.mpb-texture-editorial .blog-archive__empty,
body.mpb-texture-editorial .theme-archive__empty,
body.mpb-texture-editorial .theme-search__empty {
	border: 1px solid var(--mpb-border-subtle);
	border-radius: var(--mpb-radius-card);
	background: var(--mpb-color-surface);
	box-shadow: var(--mpb-shadow-card);
}

body.mpb-texture-editorial .theme-page,
body.mpb-texture-editorial .blog-archive__header,
body.mpb-texture-editorial .theme-archive__header,
body.mpb-texture-editorial .theme-search__header,
body.mpb-texture-editorial .theme-error {
	padding: clamp(1.5rem, 4vw, 3rem);
}

/*
 * Single posts already include their own editorial padding. Texture V2 only
 * changes the article into a clear surface above the textured canvas.
 */
body.mpb-texture-editorial .single-entry {
	background: var(--mpb-color-surface);
	border-radius: var(--mpb-radius-card);
}

/* Mobile navigation texture */
@media (max-width: 720px) {
	body.mpb-texture-mobile-nav .site-nav {
		isolation: isolate;
		background-color: var(--mpb-color-mobile-nav-bg);
	}

	body.mpb-texture-mobile-nav .site-nav::before {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 0;
		background-image: var(--mpb-texture-image);
		background-position: center top;
		background-size: var(--mpb-texture-size);
		background-repeat: var(--mpb-texture-repeat);
		opacity: var(--mpb-texture-opacity);
		pointer-events: none;
	}

	body.mpb-texture-mobile-nav .site-nav__menu,
	body.mpb-texture-mobile-nav .site-nav__footer {
		position: relative;
		z-index: 1;
	}
}


/* =========================================================
   20. RESPONSIVE RULES
   ========================================================= */

@media (min-width: 768px) {
    .home-section {
        padding-inline: 3rem;
    }

    .featured-content-layout {
        grid-template-columns: 1fr 1fr;
        align-items: stretch;
    }

    .featured-content-card,
    .featured-quote-card {
        min-height: 100%;
    }

    .home-blog__grid,
    .blog-archive__grid,
    .theme-archive__grid,
    .theme-search__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .site-footer__inner {
        grid-template-columns: 1fr auto;
        align-items: start;
    }

    .site-footer__nav,
    .site-footer .social-links,
    .site-footer__copyright {
        grid-column: 1 / -1;
    }
}

@media (min-width: 1100px) {
    .home-blog__grid,
    .blog-archive__grid,
    .theme-archive__grid,
    .theme-search__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}


/* Mobile Nav Overlay */

@media (max-width: 720px) {
    .site-header {
        background: var(--mpb-color-header-bg);
        z-index: 2000;
    }

    .site-header__inner {
        position: relative;
        z-index: 2003;
        min-height: 72px;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .site-header.is-menu-open {
        background: transparent;
    }

    .custom-logo {
        max-width: 150px;
    }

    .site-branding,
    .site-menu-toggle {
        position: relative;
        z-index: 2004;
    }

.site-menu-toggle {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 0;
    background: transparent;
    color: var(--mpb-color-header-text);
    border-color: var(--mpb-color-header-border);
    backdrop-filter: none;
}

.site-header.is-menu-open .site-menu-toggle {
    background: transparent;
    border-color: var(--mpb-color-mobile-nav-border);
    color: var(--mpb-color-mobile-nav-text);
}

    .site-nav {
        position: fixed;
        inset: 0;
        z-index: 2001;
        display: grid;
        grid-template-rows: 1fr auto;
        gap: 2rem;
        min-height: 100vh;
        min-height: 100dvh;
        padding: calc(72px + 2rem) 1.5rem 2rem;
        background: var(--mpb-color-mobile-nav-bg);
        border: 0;
        box-shadow: none;
        overflow-y: auto;
        overscroll-behavior: contain;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(-12px);
        transition:
            opacity 220ms ease,
            transform 220ms ease,
            visibility 220ms ease;
        isolation: isolate;
    }

    .site-header.is-menu-open .site-nav {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
    }

    .site-nav__menu {
        position: relative;
        z-index: 1;
        display: grid;
        align-content: center;
        gap: 0;
        min-height: 100%;
    }

    .site-nav__menu li {
        margin: 0;
    }

    .site-nav__menu a {
        display: block;
        padding: 0.2rem 0;
        border-radius: 0;
        color: var(--mpb-color-mobile-nav-text);
        font-size: clamp(3rem, 12vw, 6.5rem);
        font-weight: 900;
        line-height: 0.9;
        letter-spacing: var(--mpb-heading-letter-spacing);
        text-transform: var(--mpb-heading-text-transform);
        text-decoration: none;
        opacity: 0;
        transform: translateY(14px);
        transition:
            opacity 240ms ease,
            transform 240ms ease,
            color 160ms ease;
    }

    .site-header.is-menu-open .site-nav__menu a {
        opacity: 1;
        transform: translateY(0);
    }

    .site-header.is-menu-open .site-nav__menu li:nth-child(1) a {
        transition-delay: 60ms;
    }

    .site-header.is-menu-open .site-nav__menu li:nth-child(2) a {
        transition-delay: 95ms;
    }

    .site-header.is-menu-open .site-nav__menu li:nth-child(3) a {
        transition-delay: 130ms;
    }

    .site-header.is-menu-open .site-nav__menu li:nth-child(4) a {
        transition-delay: 165ms;
    }

    .site-header.is-menu-open .site-nav__menu li:nth-child(5) a {
        transition-delay: 200ms;
    }

    .site-header.is-menu-open .site-nav__menu li:nth-child(6) a {
        transition-delay: 235ms;
    }

    .site-nav__menu a:hover,
    .site-nav__menu a:focus {
        background: transparent;
        color: var(--mpb-color-accent);
        text-decoration: underline;
        text-decoration-thickness: 0.06em;
        text-underline-offset: 0.08em;
    }

    .site-nav__menu .current-menu-item > a,
    .site-nav__menu .current_page_item > a,
    .site-nav__menu .current-menu-ancestor > a,
    .site-nav__menu .current_page_parent > a {
        text-decoration-thickness: 0.06em;
        text-underline-offset: 0.08em;
    }

    .site-header .site-nav__footer {
        position: relative;
        z-index: 1;
        display: grid;
        gap: 1rem;
        padding-top: 1.5rem;
        border-top: 1px solid var(--mpb-color-mobile-nav-border);
        opacity: 0;
        transform: translateY(12px);
        transition:
            opacity 220ms ease 220ms,
            transform 220ms ease 220ms;
    }

    .site-header.is-menu-open .site-nav__footer {
        opacity: 1;
        transform: translateY(0);
    }

    .site-nav__footer .social-links {
        margin-top: 0;
    }

    .site-nav__footer .social-links--icons {
        justify-content: flex-start;
    }

    .site-nav__footer .social-links--icons .social-links__link {
        border-radius: 0;
        background: transparent;
    }



    /* Mobile navigation keyboard focus */

.site-menu-toggle:focus-visible,
.site-nav__menu a:focus-visible,
.site-nav__footer a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
}

/*
 * No-JavaScript fallback.
 *
 * Without JavaScript, the mobile menu remains expanded as a normal part
 * of the header instead of leaving visitors with a nonfunctional button.
 */
@media (max-width: 720px) {
    html.no-js .site-header__inner {
        flex-wrap: wrap;
    }

    html.no-js .site-menu-toggle {
        display: none;
    }

    html.no-js .site-nav {
        position: static;
        inset: auto;
        z-index: auto;
        display: grid;
        flex: 1 0 100%;
        grid-template-rows: auto;
        gap: 1.25rem;
        width: 100%;
        min-height: 0;
        padding: 1rem 0;
        overflow: visible;
        border-top: 1px solid var(--mpb-color-mobile-nav-border);
        background: transparent;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: none;
        transition: none;
    }

    html.no-js .site-nav__menu {
        align-content: start;
        min-height: 0;
        gap: 0.75rem;
    }

    html.no-js .site-nav__menu a {
        padding: 0.25rem 0;
        font-size: 1.25rem;
        line-height: 1.2;
        opacity: 1;
        transform: none;
        transition: none;
    }

    html.no-js .site-header .site-nav__footer {
        padding-top: 1rem;
        opacity: 1;
        transform: none;
        transition: none;
    }
}

}


/* General Mobile */

@media (max-width: 720px) {

.home-section:not(.home-hero) {
    padding-block: 4rem;
}

    .section-header h2 {
        font-size: clamp(2.75rem, 14vw, 4.5rem);
    }

    .featured-content-layout,
    .home-blog__grid {
        gap: 1.25rem;
    }

    .featured-content-card__media,
    .featured-content-card__image {
        padding: 1rem;
    }

    .featured-content-card h3 {
        font-size: clamp(2rem, 11vw, 3.5rem);
    }

    .press-quote p {
        font-size: clamp(1.5rem, 9vw, 2.75rem);
    }

    .home-blog__header {
        align-items: flex-start;
    }

    .home-blog-card__image,
    .blog-archive-card__image,
    .theme-archive-card__image {
        height: 220px;
    }

    .home-blog--layout-featured-first .home-blog-card--featured h3 {
        font-size: clamp(2.25rem, 12vw, 4rem);
    }

    .home-blog--layout-featured-first .home-blog-card--featured .home-blog-card__image {
        height: 280px;
    }

    .blog-archive-main,
    .page-main,
    .archive-main,
    .search-main,
    .error-main {
        padding-block: 4rem;
    }

    .blog-archive__header h1,
    .theme-page__header h1,
    .theme-archive__header h1,
    .theme-search__header h1,
    .theme-error h1 {
        font-size: clamp(3rem, 16vw, 5rem);
    }

    .single-main {
        padding-block: 4rem;
        padding-inline: var(--mpb-gutter-page-compact);
    }

    .single-entry {
        padding: 1.25rem;
        border: 0;
    }

    .single-post__header {
        text-align: left;
    }

    .single-post__back-link {
        margin-bottom: 1.5rem;
    }

    .newsletter-form form,
    .theme-search__form form,
    .theme-error__search form {
        display: grid;
    }

    .newsletter-form input[type="email"],
    .newsletter-form input[type="text"],
    .newsletter-form button,
    .newsletter-form input[type="submit"] {
        width: 100%;
        max-width: none;
    }

    .site-footer--layout-split .site-footer__inner,
    .site-footer--layout-simple .site-footer__inner,
    .site-footer--layout-stacked .site-footer__inner {
        grid-template-columns: 1fr;
    }
}


/* Full-Bleed Hero Mobile */

@media (max-width: 720px) {
    .home-hero--full-bleed {
        min-height: var(--mpb-hero-min-height);
        padding: 4rem 1.5rem;
    }

    .home-hero--full-bleed .home-hero__content {
        padding-block: 2rem;
    }

    .home-hero--full-bleed .home-hero__content h1 {
        font-size: clamp(3.5rem, 18vw, 6rem);
    }

    .home-hero--full-bleed .home-hero__content p {
        font-size: 1rem;
    }

    .home-hero--full-bleed.home-hero--overlay-side .home-hero__overlay {
        background:
            linear-gradient(
                0deg,
                rgba(0, 0, 0, 0.72) 0%,
                rgba(0, 0, 0, 0.24) 52%,
                rgba(0, 0, 0, 0.32) 100%
            );
    }
}

@media (min-width: 768px) {
    .home-hero--full-bleed {
        padding-inline: 3rem;
    }

    .home-hero--full-bleed.home-hero--has-desktop-video .home-hero__image-wrap {
        display: none;
    }

    .home-hero--full-bleed.home-hero--has-desktop-video .home-hero__video {
        display: block;
    }
}

@media (max-width: 560px) {
    .event-card.spotify-style {
        grid-template-columns: 64px 1fr;
        padding: 0.9rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    .site-nav,
    .site-nav__menu a,
    .site-nav__footer {
        transition: none;
        transform: none;
    }

    /*
     * Replace desktop hero video with the configured hero image.
     * The !important declaration is intentional because later
     * desktop layout rules may otherwise display the video.
     */
    .home-hero__video,
    .home-hero__media.has-desktop-video .home-hero__video,
    .home-hero--has-desktop-video .home-hero__video {
        display: none !important;
    }

    .home-hero__media.has-desktop-video .home-hero__image-wrap,
    .home-hero--has-desktop-video.home-hero--has-image
        .home-hero__image-wrap {
        display: block;
    }

    /*
     * Preserve the media area's shape when a video exists but no
     * fallback image was configured.
     */
    .home-hero--has-desktop-video:not(.home-hero--has-image)
        .home-hero__media {
        min-height: var(--mpb-hero-media-height);
        border-radius: var(--mpb-radius-media);
        background: var(
            --mpb-color-media-frame-bg,
            var(--mpb-color-surface)
        );
    }

    .home-hero--full-bleed.home-hero--has-desktop-video:not(
        .home-hero--has-image
    ) .home-hero__media {
        min-height: 100%;
        border-radius: 0;
    }
}


/* =========================================================
   PAGE CONTENT / WORDPRESS BLOCK POLISH
   ========================================================= */

.theme-page__header,
.theme-page__content {
    width: min(100%, var(--mpb-width-reading));
    margin-inline: auto;
}

.theme-page__featured-image {
    width: min(100%, var(--mpb-width-content));
    margin: clamp(2rem, 5vw, 3.5rem) auto;
}

.theme-page__content > * + * {
    margin-top: 1.5rem;
}

.theme-page__content h2,
.theme-page__content h3,
.theme-page__content h4 {
    margin-top: 2.5rem;
    margin-bottom: 1rem;
    line-height: 0.95;
    text-wrap: balance;
}

.theme-page__content h2 {
    font-size: clamp(2.25rem, 5vw, 4.5rem);
}

.theme-page__content h3 {
    font-size: clamp(1.75rem, 3.5vw, 3rem);
}

.theme-page__content p,
.theme-page__content li {
    color: var(--mpb-color-text);
}

.theme-page__content ul,
.theme-page__content ol {
    padding-left: 1.25rem;
}

.theme-page__content li + li {
    margin-top: 0.5rem;
}

.theme-page__content figure {
    margin: clamp(2rem, 5vw, 3.5rem) 0;
}

.theme-page__content .wp-block-image img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 12px;
}

.theme-page__content figcaption {
    margin-top: 0.65rem;
    color: var(--mpb-color-muted);
    font-size: 0.9rem;
    line-height: 1.4;
}

.theme-page__content blockquote {
    margin: clamp(2rem, 5vw, 3.5rem) 0;
    padding-left: 1.25rem;
    border-left: 4px solid var(--mpb-color-accent);
    color: var(--mpb-color-muted);
    font-size: clamp(1.2rem, 2vw, 1.5rem);
    line-height: 1.45;
}

.theme-page__content blockquote p {
    color: inherit;
}

.theme-page__content .wp-block-buttons {
    margin-top: 2rem;
}

.theme-page__content .wp-block-button__link {
    border-radius: var(--mpb-radius-control);
    background: var(--mpb-color-button-bg);
    color: var(--mpb-color-button-text);
    font-weight: 700;
    text-decoration: none;
}

.theme-page__content .wp-block-embed,
.theme-page__content .wp-block-video,
.theme-page__content .wp-block-audio {
    margin-block: clamp(2rem, 5vw, 3.5rem);
}

.theme-page__content iframe {
    max-width: 100%;
    border: 0;
}

.theme-page__content .wp-block-embed iframe {
    width: 100%;
}

.theme-page__content .wp-block-embed__wrapper {
    overflow: hidden;
    border-radius: 12px;
}

.theme-page__content .alignwide {
    width: min(100vw - 3rem, 1000px);
    max-width: none;
    margin-left: 50%;
    transform: translateX(-50%);
}

@media (max-width: 720px) {
    .theme-page__content {
        width: 100%;
    }

    .theme-page__content .alignwide {
        width: 100%;
        margin-left: 0;
        transform: none;
    }
}

/* =========================================================
   PAGE TITLE PRESENTATION
   ========================================================= */

/*
 * Standard remains the existing Page layout.
 *
 * Editorial Panel and Minimal Overlay use a wider hero while
 * retaining the normal reading width for Page content.
 */
.theme-page--title-editorial-panel,
.theme-page--title-minimal-overlay {
    width: min(100%, var(--mpb-width-site));
}

/* ---------------------------------------------------------
   Shared Page-title variables
   --------------------------------------------------------- */

.theme-page {
    --mpb-page-title-panel-color:
        var(--mpb-color-surface);

    --mpb-page-title-panel-text:
        var(--mpb-color-heading);

    --mpb-page-title-panel-opacity: 88%;

    --mpb-page-title-standard-size:
        clamp(3.5rem, 10vw, 8rem);

    --mpb-page-title-display-size:
        clamp(3rem, 6vw, 6rem);
}

/* Tone */

.theme-page--panel-tone-background {
    --mpb-page-title-panel-color:
        var(--mpb-color-bg);

    --mpb-page-title-panel-text:
        var(--mpb-color-heading);
}

.theme-page--panel-tone-surface {
    --mpb-page-title-panel-color:
        var(--mpb-color-surface);

    --mpb-page-title-panel-text:
        var(--mpb-color-heading);
}

.theme-page--panel-tone-accent {
    --mpb-page-title-panel-color:
        var(--mpb-color-accent);

    --mpb-page-title-panel-text:
        var(--mpb-color-accent-text);
}

.theme-page--panel-tone-button {
    --mpb-page-title-panel-color:
        var(--mpb-color-button-bg);

    --mpb-page-title-panel-text:
        var(--mpb-color-button-text);
}

/* Strength */

.theme-page--panel-strength-soft {
    --mpb-page-title-panel-opacity: 74%;
}

.theme-page--panel-strength-strong {
    --mpb-page-title-panel-opacity: 88%;
}

.theme-page--panel-strength-solid {
    --mpb-page-title-panel-opacity: 100%;
}

/* Title sizes */

.theme-page--title-size-compact {
    --mpb-page-title-standard-size:
        clamp(2.75rem, 7vw, 6rem);

    --mpb-page-title-display-size:
        clamp(2.25rem, 4.5vw, 4rem);
}

.theme-page--title-size-standard {
    --mpb-page-title-standard-size:
        clamp(3.5rem, 10vw, 8rem);

    --mpb-page-title-display-size:
        clamp(3rem, 6vw, 6rem);
}

.theme-page--title-size-large {
    --mpb-page-title-standard-size:
        clamp(4rem, 12vw, 10rem);

    --mpb-page-title-display-size:
        clamp(3.5rem, 7.5vw, 7.5rem);
}

/* Standard Page title sizing */

.theme-page__header h1 {
    font-size:
        var(--mpb-page-title-standard-size);
}

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

.theme-page__hero {
    position: relative;
    isolation: isolate;
    width: 100%;
    margin-bottom:
        clamp(2.5rem, 6vw, 4.5rem);
}

.theme-page__hero .theme-page__featured-image {
    width: 100%;
    margin: 0;
}

.theme-page__hero .theme-page__image {
    width: 100%;
}

/* ---------------------------------------------------------
   Editorial Panel
   --------------------------------------------------------- */

.theme-page__title-panel {
    position: relative;
    overflow: hidden;
    padding:
        clamp(1.75rem, 4vw, 3.5rem);

    border:
        1px solid
        var(--mpb-border-subtle);

    border-radius:
        var(--mpb-radius-card);

    /*
     * First declaration is the fallback for browsers without
     * color-mix().
     */
    background:
        var(--mpb-page-title-panel-color);

    background:
        color-mix(
            in srgb,
            var(--mpb-page-title-panel-color)
                var(--mpb-page-title-panel-opacity),
            transparent
        );

    color:
        var(--mpb-page-title-panel-text);

    box-shadow:
        var(--mpb-shadow-card);

    backdrop-filter:
        blur(10px);
}

.theme-page__title-panel h1 {
    position: relative;
    z-index: 1;
    margin: 0;

    color:
        var(--mpb-page-title-panel-text);

    font-size:
        var(--mpb-page-title-display-size);

    line-height: 0.92;
    overflow-wrap: anywhere;
    text-wrap: balance;
}

.theme-page__hero--editorial
.theme-page__title-panel {
    position: absolute;
    z-index: 2;

    left:
        clamp(1.5rem, 4vw, 3.25rem);

    bottom:
        clamp(1.5rem, 4vw, 3.25rem);

    width:
        min(48%, 520px);
}

/*
 * Reuse the configured Editorial texture inside the panel.
 */
body.mpb-texture-editorial
.theme-page__title-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;

    background-image:
        var(--mpb-texture-image);

    background-position:
        center;

    background-size:
        var(--mpb-texture-size);

    background-repeat:
        var(--mpb-texture-repeat);

    opacity: 0.18;
    pointer-events: none;
}

/* Editorial Panel without a featured image */

.theme-page__title-panel--standalone {
    width:
        min(
            100%,
            var(--mpb-width-reading)
        );

    margin-inline: auto;

    margin-bottom:
        clamp(2.5rem, 6vw, 4.5rem);
}

/* ---------------------------------------------------------
   Minimal Overlay
   --------------------------------------------------------- */

.theme-page__hero--minimal-overlay {
    overflow: hidden;
    border-radius:
        var(--mpb-radius-media);
}

.theme-page__hero--minimal-overlay
.theme-page__image {
    border-radius: inherit;
}

.theme-page__title-overlay {
    position: absolute;
    inset: 0;
    z-index: 2;

    display: flex;
    align-items: flex-end;

    padding:
        clamp(1.5rem, 5vw, 4rem);

    border-radius: inherit;

    background:
        linear-gradient(
            to top,
            color-mix(
                in srgb,
                var(--mpb-page-title-panel-color)
                    var(--mpb-page-title-panel-opacity),
                transparent
            )
                0%,
            color-mix(
                in srgb,
                var(--mpb-page-title-panel-color)
                    28%,
                transparent
            )
                42%,
            transparent
                72%
        );
}

.theme-page__title-overlay h1 {
    max-width: 820px;
    margin: 0;

    color:
        var(--mpb-page-title-panel-text);

    font-size:
        var(--mpb-page-title-display-size);

    line-height: 0.92;
    overflow-wrap: anywhere;
    text-wrap: balance;
}

/* ---------------------------------------------------------
   Mobile Editorial Panel
   --------------------------------------------------------- */

@media (max-width: 720px) {

    /*
     * On phones the Editorial Panel intentionally stops
     * overlapping and becomes a stacked image/title unit.
     */
    .theme-page__hero--editorial
    .theme-page__title-panel {
        position: relative;
        left: auto;
        bottom: auto;

        width: 100%;

        border-top-left-radius: 0;
        border-top-right-radius: 0;

        box-shadow: none;
    }

    .theme-page__hero--editorial
    .theme-page__image {
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
    }

    .theme-page__hero--editorial {
        overflow: hidden;

        border-radius:
            var(--mpb-radius-media);
    }

    .theme-page__hero--editorial
    .theme-page__featured-image {
        border-radius: 0;
    }

    .theme-page__hero--editorial
    .theme-page__title-panel h1 {
        line-height: 0.92;
    }

    .theme-page__title-overlay {
        padding:
            clamp(1.25rem, 6vw, 2rem);
    }
}

/* =========================================================
   SCROLL TO TOP BUTTON
   ========================================================= */

.scroll-top {
    position: fixed;
    right: clamp(1rem, 3vw, 2rem);
    bottom: clamp(1rem, 3vw, 2rem);
    z-index: 90;
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border:
        1px solid
        rgba(
            var(--mpb-color-button-text-rgb),
            0.18
        );    border-radius: var(--mpb-radius-control);
    background: var(--mpb-color-button-bg);
    color: var(--mpb-color-button-text);
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
    transition:
        opacity 180ms ease,
        transform 180ms ease,
        border-color 180ms ease;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.35);
}

.scroll-top.is-visible {
    opacity: 0.92;
    pointer-events: auto;
    transform: translateY(0);
}

.scroll-top:hover,
.scroll-top:focus {
    border-color:
        rgba(
            var(--mpb-color-button-text-rgb),
            0.35
        );

    opacity: 1;
    transform: var(--mpb-card-hover-transform);
}

body.is-menu-open .scroll-top {
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
}


@media (max-width: 720px) {
    .scroll-top {
        width: 42px;
        height: 42px;
        right: 1rem;
        bottom: 1rem;
        font-size: 1.2rem;
    }
}

/* =========================================================
   LINK HUB
   ========================================================= */

/*
 * Link Hub is a deliberately minimal presentation surface.
 *
 * Core owns all content/configuration. These styles consume the same
 * Theme Style variables used throughout Music Project Base.
 */

body.mpb-link-hub {
    min-width: 0;
    min-height: 100vh;
    min-height: 100svh;
    overflow-x: hidden;
    background: var(--mpb-color-bg);
    color: var(--mpb-color-text);
}

.mpb-link-hub__main {
    position: relative;
    isolation: isolate;
    display: grid;
    width: 100%;
    min-height: calc(
        100vh
        - var(--mpb-admin-bar-offset)
    );
    min-height: calc(
        100svh
        - var(--mpb-admin-bar-offset)
    );
    padding:
        max(
            2rem,
            env(safe-area-inset-top)
        )
        max(
            1rem,
            env(safe-area-inset-right)
        )
        max(
            2rem,
            env(safe-area-inset-bottom)
        )
        max(
            1rem,
            env(safe-area-inset-left)
        );
}

/*
 * Reuse the site's configured Editorial texture on Link Hub.
 *
 * No separate Link Hub texture setting is introduced.
 */
body.mpb-link-hub.mpb-texture-editorial
.mpb-link-hub__main::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image:
        var(--mpb-texture-image);
    background-position: center top;
    background-size:
        var(--mpb-texture-size);
    background-repeat:
        var(--mpb-texture-repeat);
    opacity:
        var(--mpb-texture-opacity);
    pointer-events: none;
}

.mpb-link-hub__shell {
    display: grid;
    align-content: start;
    width: min(100%, 720px);
    margin-inline: auto;
}

/* =========================================================
   LINK HUB IDENTITY
   ========================================================= */

.mpb-link-hub__identity {
    display: grid;
    justify-items: center;
    text-align: center;
}

.mpb-link-hub__profile {
    display: grid;
    place-items: center;
    width: clamp(92px, 24vw, 128px);
    aspect-ratio: 1;
    margin-bottom: 1.35rem;
    overflow: hidden;
    border: 1px solid var(--mpb-border-medium);
    border-radius: var(--mpb-radius-card);
    background: var(--mpb-color-surface);
    box-shadow: var(--mpb-shadow-card);
}

.mpb-link-hub__profile-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mpb-link-hub__title {
    max-width: 100%;
    margin: 0;
    color: var(--mpb-color-heading);
    font-family: var(--mpb-font-heading);
    font-size:
        clamp(
            2.4rem,
            12vw,
            4.75rem
        );
    font-weight: 800;
    line-height: 0.9;
    letter-spacing:
        var(--mpb-heading-letter-spacing);
    text-transform:
        var(--mpb-heading-text-transform);
    overflow-wrap: anywhere;
    text-wrap: balance;
}

.mpb-link-hub__tagline {
    max-width: 580px;
    margin: 1rem 0 0;
    color: var(--mpb-color-muted);
    font-size:
        clamp(
            0.975rem,
            2.5vw,
            1.125rem
        );
    line-height: 1.55;
    text-wrap: pretty;
}

/* =========================================================
   LINK HUB CONTENT
   ========================================================= */

.mpb-link-hub__content {
    display: grid;
    gap: 0.75rem;
    margin-top:
        clamp(
            2rem,
            7vw,
            3.5rem
        );
}

.mpb-link-hub__section-heading {
    margin:
        1.75rem
        0
        0.2rem;
    color: var(--mpb-color-muted);
    font-family: var(--mpb-font-accent);
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.mpb-link-hub__section-heading:first-child {
    margin-top: 0;
}

/* =========================================================
   LINK CARDS
   ========================================================= */

.mpb-link-hub__link {
    position: relative;
    display: grid;
    grid-template-columns:
        auto
        minmax(0, 1fr)
        auto;
    gap: 0.9rem;
    align-items: center;
    min-width: 0;
    min-height: 64px;
    padding: 0.9rem 1rem;
    border: 1px solid var(--mpb-border-subtle);
    border-radius: var(--mpb-radius-card);
    background: var(--mpb-color-surface);
    color: var(--mpb-color-text);
    box-shadow: var(--mpb-shadow-card);
    text-decoration: none;
    transition:
        transform 180ms ease,
        border-color 180ms ease,
        background-color 180ms ease,
        box-shadow 180ms ease;
}

.mpb-link-hub__link:visited {
    color: var(--mpb-color-text);
}

.mpb-link-hub__link:hover {
    border-color: var(--mpb-border-interactive);
    color: var(--mpb-color-text);
    box-shadow: var(--mpb-shadow-card-hover);
    transform: var(--mpb-card-hover-transform);
    text-decoration: none;
}

.mpb-link-hub__link:focus-visible {
    outline: 3px solid var(--mpb-color-accent);
    outline-offset: 3px;
    border-color: var(--mpb-border-interactive);
    color: var(--mpb-color-text);
    text-decoration: none;
}

.mpb-link-hub__link:active {
    transform: translateY(1px);
}

.mpb-link-hub__link-icon,
.mpb-link-hub__external {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}

.mpb-link-hub__link-icon {
    width: 38px;
    height: 38px;
    border-radius: var(--mpb-radius-control);
    background: var(--mpb-fill-medium);
    color: var(--mpb-color-accent);
}

.mpb-link-hub__icon-svg {
    display: block;
    width: 20px;
    height: 20px;
}

.mpb-link-hub__link-copy {
    display: grid;
    gap: 0.18rem;
    min-width: 0;
}

.mpb-link-hub__link-label {
    min-width: 0;
    color: inherit;
    font-family: var(--mpb-font-button);
    font-size: 1rem;
    font-weight: 750;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.mpb-link-hub__link-subtitle {
    min-width: 0;
    color: var(--mpb-color-muted);
    font-size: 0.86rem;
    font-weight: 400;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.mpb-link-hub__external {
    width: 28px;
    height: 28px;
    color: var(--mpb-color-muted);
}

.mpb-link-hub__external
.mpb-link-hub__icon-svg {
    width: 16px;
    height: 16px;
}

/* =========================================================
   FEATURED LINK
   ========================================================= */

.mpb-link-hub__link--featured {
    min-height: 86px;
    padding:
        clamp(
            1rem,
            4vw,
            1.35rem
        );
    border-color: transparent;
    background: var(--mpb-color-button-bg);
    color: var(--mpb-color-button-text);
}

.mpb-link-hub__link--featured:visited {
    color: var(--mpb-color-button-text);
}

.mpb-link-hub__link--featured:hover,
.mpb-link-hub__link--featured:focus-visible {
    color: var(--mpb-color-button-text);
}

.mpb-link-hub__link--featured
.mpb-link-hub__link-icon {
    background:
        rgba(
            var(--mpb-color-button-text-rgb),
            0.1
        );
    color: var(--mpb-color-button-text);
}

.mpb-link-hub__link--featured
.mpb-link-hub__link-label {
    font-size:
        clamp(
            1.05rem,
            3vw,
            1.25rem
        );
}

.mpb-link-hub__link--featured
.mpb-link-hub__link-subtitle {
    color:
        rgba(
            var(--mpb-color-button-text-rgb),
            0.72
        );
}

.mpb-link-hub__link--featured
.mpb-link-hub__external {
    color:
        rgba(
            var(--mpb-color-button-text-rgb),
            0.72
        );
}

/* =========================================================
   EMPTY STATE
   ========================================================= */

.mpb-link-hub__empty {
    margin: 0;
    padding: 1.5rem;
    border: 1px dashed var(--mpb-border-medium);
    border-radius: var(--mpb-radius-card);
    background: var(--mpb-fill-subtle);
    color: var(--mpb-color-muted);
    text-align: center;
}

/* =========================================================
   SOCIAL LINKS
   ========================================================= */

.mpb-link-hub__social {
    margin-top:
        clamp(
            2rem,
            7vw,
            3.5rem
        );
}

.mpb-link-hub__social-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    justify-content: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.mpb-link-hub__social-item {
    margin: 0;
    padding: 0;
}

.mpb-link-hub__social-link {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border: 1px solid var(--mpb-border-medium);
    border-radius: var(--mpb-radius-control);
    background: var(--mpb-fill-subtle);
    color: var(--mpb-color-text);
    text-decoration: none;
    transition:
        transform 180ms ease,
        background-color 180ms ease,
        border-color 180ms ease;
}

.mpb-link-hub__social-link:visited {
    color: var(--mpb-color-text);
}

.mpb-link-hub__social-link:hover {
    border-color: var(--mpb-border-strong);
    background: var(--mpb-fill-medium);
    color: var(--mpb-color-text);
    transform: translateY(-1px);
}

.mpb-link-hub__social-link:focus-visible {
    outline: 3px solid var(--mpb-color-accent);
    outline-offset: 3px;
    border-color: var(--mpb-border-strong);
    color: var(--mpb-color-text);
}

.mpb-link-hub__social-link svg {
    display: block;
    width: 19px;
    height: 19px;
}

/* =========================================================
   FOOTER BRAND
   ========================================================= */

.mpb-link-hub__footer {
    margin-top:
        clamp(
            2rem,
            7vw,
            3.5rem
        );
    padding-top: 1.25rem;
    border-top: 1px solid var(--mpb-border-divider);
    text-align: center;
}

.mpb-link-hub__brand-link {
    color: var(--mpb-color-muted);
    font-family: var(--mpb-font-brand);
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.08em;
    text-decoration: none;
}

.mpb-link-hub__brand-link:visited {
    color: var(--mpb-color-muted);
}

.mpb-link-hub__brand-link:hover,
.mpb-link-hub__brand-link:focus {
    color: var(--mpb-color-text);
}

.mpb-link-hub__brand-link:focus-visible {
    outline: 2px solid var(--mpb-color-accent);
    outline-offset: 4px;
}

/* =========================================================
   SPOTLIGHT LAYOUT
   ========================================================= */

.mpb-link-hub-layout-spotlight
.mpb-link-hub__shell {
    width: min(100%, 720px);
    padding-block:
        clamp(
            1rem,
            5vw,
            3rem
        );
}

.mpb-link-hub-layout-spotlight
.mpb-link-hub__identity {
    padding-inline: clamp(0rem, 4vw, 1rem);
}

.mpb-link-hub-layout-spotlight
.mpb-link-hub__profile {
    width: clamp(104px, 28vw, 144px);
}

.mpb-link-hub-layout-spotlight
.mpb-link-hub__content {
    gap: 0.85rem;
}

.mpb-link-hub-layout-spotlight
.mpb-link-hub__link--featured {
    margin-bottom: 0.35rem;
    min-height: 100px;
}

.mpb-link-hub-layout-spotlight
.mpb-link-hub__link--featured
.mpb-link-hub__link-icon {
    width: 46px;
    height: 46px;
}

.mpb-link-hub-layout-spotlight
.mpb-link-hub__link--featured
.mpb-link-hub__icon-svg {
    width: 23px;
    height: 23px;
}

/* =========================================================
   STACK LAYOUT
   ========================================================= */

.mpb-link-hub-layout-stack
.mpb-link-hub__shell {
    width: min(100%, 620px);
    padding-block:
        clamp(
            0.5rem,
            3vw,
            1.5rem
        );
}

.mpb-link-hub-layout-stack
.mpb-link-hub__identity {
    justify-items: start;
    text-align: left;
}

.mpb-link-hub-layout-stack
.mpb-link-hub__profile {
    width: 88px;
    margin-bottom: 1rem;
}

.mpb-link-hub-layout-stack
.mpb-link-hub__title {
    font-size:
        clamp(
            2.1rem,
            9vw,
            3.5rem
        );
}

.mpb-link-hub-layout-stack
.mpb-link-hub__tagline {
    max-width: 520px;
}

.mpb-link-hub-layout-stack
.mpb-link-hub__content {
    gap: 0.55rem;
    margin-top:
        clamp(
            1.75rem,
            6vw,
            2.75rem
        );
}

.mpb-link-hub-layout-stack
.mpb-link-hub__section-heading {
    margin-top: 1.35rem;
}

.mpb-link-hub-layout-stack
.mpb-link-hub__link {
    min-height: 58px;
    padding: 0.72rem 0.85rem;
    box-shadow: none;
}

.mpb-link-hub-layout-stack
.mpb-link-hub__link-icon {
    width: 34px;
    height: 34px;
}

.mpb-link-hub-layout-stack
.mpb-link-hub__link--featured {
    min-height: 72px;
}

.mpb-link-hub-layout-stack
.mpb-link-hub__social-list {
    justify-content: flex-start;
}

.mpb-link-hub-layout-stack
.mpb-link-hub__footer {
    text-align: left;
}

/* =========================================================
   POSTER LAYOUT
   ========================================================= */

.mpb-link-hub-layout-poster
.mpb-link-hub__shell {
    width: min(100%, 860px);
    padding-block:
        clamp(
            1rem,
            5vw,
            3rem
        );
}

.mpb-link-hub-layout-poster
.mpb-link-hub__identity {
    justify-items: start;
    padding:
        clamp(
            1.25rem,
            5vw,
            2.5rem
        )
        0
        clamp(
            1rem,
            4vw,
            2rem
        );
    text-align: left;
}

.mpb-link-hub-layout-poster
.mpb-link-hub__profile {
    width:
        clamp(
            120px,
            28vw,
            180px
        );
    margin-bottom:
        clamp(
            1.25rem,
            5vw,
            2rem
        );
}

.mpb-link-hub-layout-poster
.mpb-link-hub__title {
    max-width: 820px;
    font-family: var(--mpb-font-hero-heading);
    font-size:
        clamp(
            3.4rem,
            15vw,
            8rem
        );
    line-height: 0.78;
}

.mpb-link-hub-layout-poster
.mpb-link-hub__tagline {
    max-width: 650px;
    margin-top: 1.5rem;
    font-size:
        clamp(
            1rem,
            3vw,
            1.3rem
        );
}

.mpb-link-hub-layout-poster
.mpb-link-hub__content {
    gap: 0.9rem;
    margin-top: 1.5rem;
}

.mpb-link-hub-layout-poster
.mpb-link-hub__section-heading {
    margin-top: 2.5rem;
    padding-bottom: 0.55rem;
    border-bottom: 1px solid var(--mpb-border-divider);
    color: var(--mpb-color-text);
    font-size:
        clamp(
            0.8rem,
            2vw,
            0.95rem
        );
}

.mpb-link-hub-layout-poster
.mpb-link-hub__link {
    min-height: 72px;
    border-radius: var(--mpb-radius-card);
}

.mpb-link-hub-layout-poster
.mpb-link-hub__link--standard {
    background: transparent;
    border-color: var(--mpb-border-medium);
    box-shadow: none;
}

.mpb-link-hub-layout-poster
.mpb-link-hub__link--standard:hover {
    background: var(--mpb-fill-subtle);
    border-color: var(--mpb-border-strong);
}

.mpb-link-hub-layout-poster
.mpb-link-hub__link--featured {
    min-height:
        clamp(
            100px,
            16vw,
            132px
        );
    margin-bottom: 0.75rem;
}

.mpb-link-hub-layout-poster
.mpb-link-hub__link--featured
.mpb-link-hub__link-label {
    font-family: var(--mpb-font-heading);
    font-size:
        clamp(
            1.3rem,
            4vw,
            2rem
        );
    line-height: 1;
}

.mpb-link-hub-layout-poster
.mpb-link-hub__social-list {
    justify-content: flex-start;
}

.mpb-link-hub-layout-poster
.mpb-link-hub__footer {
    text-align: left;
}

/* =========================================================
   LINK HUB TABLET / DESKTOP
   ========================================================= */

@media (min-width: 768px) {
    .mpb-link-hub__main {
        padding:
            max(
                3rem,
                env(safe-area-inset-top)
            )
            max(
                2rem,
                env(safe-area-inset-right)
            )
            max(
                3rem,
                env(safe-area-inset-bottom)
            )
            max(
                2rem,
                env(safe-area-inset-left)
            );
    }

    .mpb-link-hub__link {
        padding-inline: 1.15rem;
    }

    .mpb-link-hub-layout-poster
    .mpb-link-hub__identity {
        padding-top: 3rem;
    }
}

/* =========================================================
   LINK HUB SMALL MOBILE
   ========================================================= */

@media (max-width: 430px) {
    .mpb-link-hub__main {
        padding-inline:
            max(
                0.9rem,
                env(safe-area-inset-left)
            );
    }

    .mpb-link-hub__link {
        grid-template-columns:
            auto
            minmax(0, 1fr)
            auto;
        gap: 0.7rem;
        min-height: 60px;
        padding:
            0.8rem
            0.85rem;
    }

    .mpb-link-hub__link-icon {
        width: 36px;
        height: 36px;
    }

    .mpb-link-hub__link-label {
        font-size: 0.95rem;
    }

    .mpb-link-hub__link-subtitle {
        font-size: 0.8rem;
    }

    .mpb-link-hub__external {
        width: 22px;
    }

    .mpb-link-hub-layout-poster
    .mpb-link-hub__title {
        font-size:
            clamp(
                3.2rem,
                17vw,
                5rem
            );
    }
}

@media (max-width: 340px) {
    .mpb-link-hub__main {
        padding-inline:
            max(
                0.75rem,
                env(safe-area-inset-left)
            );
    }

    .mpb-link-hub__link {
        gap: 0.6rem;
        padding-inline: 0.75rem;
    }

    .mpb-link-hub__link-icon {
        width: 34px;
        height: 34px;
    }

    .mpb-link-hub__external {
        display: none;
    }
}

/* =========================================================
   LINK HUB LANDSCAPE
   ========================================================= */

@media (
    max-height: 560px
)
and (
    orientation: landscape
) {
    .mpb-link-hub__main {
        padding-block:
            max(
                1.25rem,
                env(safe-area-inset-top)
            );
    }

    .mpb-link-hub__profile {
        width: 84px;
        margin-bottom: 0.85rem;
    }

    .mpb-link-hub__title {
        font-size:
            clamp(
                2.2rem,
                8vw,
                3.75rem
            );
    }

    .mpb-link-hub__tagline {
        margin-top: 0.7rem;
    }

    .mpb-link-hub__content {
        margin-top: 1.5rem;
    }

    .mpb-link-hub-layout-poster
    .mpb-link-hub__profile {
        width: 100px;
    }

    .mpb-link-hub-layout-poster
    .mpb-link-hub__title {
        font-size:
            clamp(
                3rem,
                11vw,
                5.5rem
            );
    }
}

/* =========================================================
   LINK HUB REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
    .mpb-link-hub__link,
    .mpb-link-hub__social-link {
        transition: none;
    }

    .mpb-link-hub__link:hover,
    .mpb-link-hub__link:active,
    .mpb-link-hub__social-link:hover {
        transform: none;
    }
}