/*
Theme Name: Boomeropia
Template: generatepress
Description: Child theme for Boomeropia — experiential travel for travelers over 55
Author: Boomeropia
Version: 0.2.0
*/

/* ==== Color tokens ==== */
:root {
    --bp-bg: #FAFAF7;
    --bp-text: #1A1A1A;
    --bp-muted: #6B6B6B;
    --bp-accent: #C75D2C;
    --bp-accent-dark: #9C4621;
    --bp-border: #E5E2DA;
    --bp-card: #FFFFFF;
    --bp-code: #F5F2EC;
    --bp-body-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --bp-heading-font: 'Fraunces', Georgia, 'Times New Roman', serif;
    --bp-body-size: 1.125rem;
    --bp-body-line: 1.7;
    --bp-content-width: 720px;
}

/* ==== Base ==== */

body {
    background-color: var(--bp-bg);
    color: var(--bp-text);
    font-family: var(--bp-body-font);
    font-size: var(--bp-body-size);
    line-height: var(--bp-body-line);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* ==== Headings ==== */

h1, h2, h3, h4, h5, h6,
.entry-title,
.wp-block-heading {
    font-family: var(--bp-heading-font);
    color: var(--bp-text);
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

h1, .entry-title {
    font-size: 2.75rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.15;
    margin-bottom: 1rem;
}

h2 {
    font-size: 2rem;
    margin-top: 2.5rem;
    margin-bottom: 1rem;
}

h3 {
    font-size: 1.5rem;
    margin-top: 2rem;
    margin-bottom: 0.75rem;
}

h4 {
    font-size: 1.2rem;
    margin-top: 1.5rem;
    margin-bottom: 0.5rem;
}

/* ==== Body text ==== */

p {
    margin: 0 0 1.5em 0;
}

/* Generous spacing between paragraphs in article body */
.entry-content > p,
.single-post .entry-content > p {
    margin-bottom: 1.5em;
}

/* ==== Links ==== */

a {
    color: var(--bp-accent);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color 0.15s ease, border-color 0.15s ease;
}

a:hover, a:focus {
    color: var(--bp-accent-dark);
    border-bottom-color: var(--bp-accent-dark);
}

/* ==== Article content width ==== */

.single-post .entry-content,
.single-post article .entry-content {
    max-width: var(--bp-content-width);
    margin-left: auto;
    margin-right: auto;
    font-size: var(--bp-body-size);
}

/* ==== Featured image spans the article column ==== */
/* GeneratePress wraps the single-post page-header image in a .grid-container
   capped at 1024px, which leaves empty space to the right on wider articles.
   Override the wrapper on single posts so the hero photo stretches edge to
   edge across the full article column. */
.single-post .page-header-image-single,
.single-post .page-header-image-single.grid-container {
    max-width: 1200px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    box-sizing: border-box;
}

.single-post .page-header-image-single img.wp-post-image {
    width: 100%;
    height: auto;
    display: block;
}

@media (max-width: 768px) {
    .single-post .page-header-image-single,
    .single-post .page-header-image-single.grid-container {
        padding-left: 1rem;
        padding-right: 1rem;
    }
}

/* ==== Meta / byline / metadata ==== */

.entry-meta,
.byline,
.posted-on,
.cat-links,
.tags-links {
    color: var(--bp-muted);
    font-size: 0.875rem;
    font-family: var(--bp-body-font);
    letter-spacing: 0.01em;
}

.entry-meta a,
.cat-links a,
.tags-links a {
    color: var(--bp-muted);
    border-bottom: 1px solid var(--bp-border);
}

.entry-meta a:hover,
.cat-links a:hover {
    color: var(--bp-accent);
    border-bottom-color: var(--bp-accent);
}

/* ==== Article header (title + meta) ==== */

.entry-header {
    text-align: left;
    max-width: var(--bp-content-width);
    margin: 2rem auto 2.5rem;
    padding: 0 1.5rem;
}

.entry-title {
    margin-top: 0;
}

.entry-header .entry-meta {
    margin-top: 1rem;
}

/* ==== Lists ==== */

.entry-content ul,
.entry-content ol {
    margin: 0 0 1.5em 0;
    padding-left: 1.5em;
}

.entry-content li {
    margin-bottom: 0.5em;
}

/* ==== Blockquotes (used sparingly) ==== */

blockquote {
    margin: 2em 0;
    padding: 0 0 0 1.5em;
    border-left: 3px solid var(--bp-accent);
    font-family: var(--bp-heading-font);
    font-style: italic;
    font-size: 1.25rem;
    color: var(--bp-text);
    line-height: 1.5;
}

/* ==== Code (rare, but available) ==== */

code {
    background: var(--bp-code);
    padding: 0.15em 0.35em;
    border-radius: 3px;
    font-size: 0.9em;
    color: var(--bp-text);
    font-family: 'SF Mono', Menlo, Consolas, monospace;
}

/* ==== Images ==== */

.entry-content img,
.entry-content figure {
    max-width: 100%;
    height: auto;
    border-radius: 2px;
    margin: 2em 0;
}

figure {
    margin: 2em 0;
}

figcaption {
    color: var(--bp-muted);
    font-size: 0.875rem;
    text-align: center;
    margin-top: 0.5em;
}

/* ==== Horizontal rules ==== */

hr {
    border: none;
    border-top: 1px solid var(--bp-border);
    margin: 3rem auto;
    max-width: 200px;
}

/* ==== Site header (GeneratePress default) ==== */

.site-header {
    background-color: var(--bp-bg);
    border-bottom: 1px solid var(--bp-border);
}

.site-header .main-navigation a,
.site-header .menu-toggle {
    color: var(--bp-text);
}

.main-title a,
.site-branding a {
    color: var(--bp-text);
    font-family: var(--bp-heading-font);
    font-weight: 700;
    font-size: 1.5rem;
    letter-spacing: -0.01em;
}

/* ==== Footer ==== */

.site-footer {
    background-color: var(--bp-bg);
    border-top: 1px solid var(--bp-border);
    color: var(--bp-muted);
    font-size: 0.875rem;
    padding: 3rem 1.5rem;
}

/* ==== Selection ==== */

::selection {
    background: var(--bp-accent);
    color: #FFFFFF;
}

/* ==== Affiliate disclosure styling ==== */

.entry-content em {
    color: var(--bp-muted);
    font-style: italic;
    font-size: 0.95em;
}

/* ==== Tables ==== */

.entry-content table {
    border-collapse: collapse;
    width: 100%;
    margin: 2em 0;
    font-size: 0.95em;
}

.entry-content th,
.entry-content td {
    padding: 0.5em 0.75em;
    border-bottom: 1px solid var(--bp-border);
    text-align: left;
}

.entry-content th {
    font-family: var(--bp-heading-font);
    font-weight: 600;
    color: var(--bp-text);
}

/* ==== Responsive tweaks ==== */

@media (max-width: 768px) {
    :root {
        --bp-body-size: 1.0625rem;
    }
    h1, .entry-title {
        font-size: 2rem;
    }
    h2 {
        font-size: 1.5rem;
    }
    h3 {
        font-size: 1.25rem;
    }
}

/* ==== Mobile nav ==== */

@media (max-width: 768px) {
    .main-navigation .menu-toggle {
        color: var(--bp-text);
    }
}

/* ==== Header ==== */
.bp-site-header {
    background-color: var(--bp-bg);
    border-bottom: 1px solid var(--bp-border);
    padding: 1.25rem 0;
    position: relative;
}

.bp-header-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.5rem;
    display: flex;
    align-items: center;
    gap: 2rem;
}

.bp-header-brand {
    flex: 0 0 auto;
}

.bp-site-title {
    margin: 0;
    font-family: var(--bp-heading-font);
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.bp-site-title a {
    color: var(--bp-text);
    border-bottom: none;
    text-decoration: none;
}

.bp-site-title a:hover {
    color: var(--bp-accent);
}

.bp-header-nav {
    flex: 1 1 auto;
    display: flex;
    justify-content: center;
}

.bp-nav-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 2rem;
}

.bp-nav-menu li {
    margin: 0;
}

.bp-nav-menu a {
    color: var(--bp-text);
    font-family: var(--bp-body-font);
    font-size: 0.95rem;
    font-weight: 500;
    border-bottom: 1px solid transparent;
    transition: color 0.15s ease, border-color 0.15s ease;
}

.bp-nav-menu a:hover {
    color: var(--bp-accent);
    border-bottom-color: var(--bp-accent);
}

.bp-header-search-toggle,
.bp-mobile-menu-toggle {
    background: none;
    border: none;
    padding: 0.5rem;
    color: var(--bp-text);
    cursor: pointer;
    transition: color 0.15s ease;
}

.bp-header-search-toggle:hover,
.bp-mobile-menu-toggle:hover {
    color: var(--bp-accent);
}

.bp-mobile-menu-toggle {
    display: none;
}

@media (max-width: 768px) {
    .bp-header-nav {
        display: none;
    }
    .bp-mobile-menu-toggle {
        display: block;
        margin-left: auto;
    }
    .bp-mobile-menu[hidden] {
        display: none;
    }
    .bp-mobile-menu {
        display: block;
        border-top: 1px solid var(--bp-border);
        padding: 1rem 1.5rem 2rem;
        background: var(--bp-bg);
    }
    .bp-mobile-menu-list {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
    }
    .bp-mobile-menu-list a {
        color: var(--bp-text);
        font-size: 1.0625rem;
        font-weight: 500;
    }
    /* Hide desktop Browse toggle on mobile — drawer handles it. */
    .bp-browse-toggle {
        display: none;
    }
}

/* ==== Header: Browse megamenu + mobile accordion ==== */

.bp-browse-toggle {
    background: none;
    border: 1px solid var(--bp-border);
    border-radius: 999px;
    padding: 0.5rem 1rem;
    color: var(--bp-text);
    font-family: var(--bp-body-font);
    font-size: 0.95rem;
    font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
    flex: 0 0 auto;
    margin-left: 0.5rem;
}

.bp-browse-toggle:hover,
.bp-browse-toggle[aria-expanded="true"] {
    color: var(--bp-accent);
    border-color: var(--bp-accent);
    background-color: rgba(199, 93, 44, 0.06);
}

.bp-browse-toggle svg {
    transition: transform 0.2s ease;
}

.bp-browse-toggle[aria-expanded="true"] svg {
    transform: rotate(180deg);
}

.bp-browse-panel[hidden] {
    display: none;
}

.bp-browse-panel {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--bp-card);
    border-top: 1px solid var(--bp-border);
    border-bottom: 1px solid var(--bp-border);
    box-shadow: 0 12px 32px -16px rgba(26, 26, 26, 0.18);
    z-index: 999;
    padding: 2.5rem 1.5rem;
}

.bp-browse-panel-inner {
    max-width: 1200px;
    margin: 0 auto;
}

.bp-browse-panel-heading {
    font-family: var(--bp-heading-font);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bp-muted);
    margin: 0 0 1.25rem;
}

.bp-browse-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.5rem 2rem;
}

.bp-browse-grid li {
    margin: 0;
}

.bp-browse-grid-link {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.625rem 0;
    border-bottom: 1px solid transparent;
    border-radius: 0;
    color: var(--bp-text);
    text-decoration: none;
}

.bp-browse-grid-link:hover {
    color: var(--bp-accent);
    border-bottom-color: var(--bp-accent);
}

.bp-browse-grid-name {
    font-family: var(--bp-body-font);
    font-size: 1.0625rem;
    font-weight: 500;
    line-height: 1.3;
}

.bp-browse-grid-count {
    font-size: 0.8125rem;
    color: var(--bp-muted);
    flex: 0 0 auto;
}

/* Mobile drawer accordion (inside .bp-mobile-menu). */

.bp-mobile-accordion {
    width: 100%;
    background: none;
    border: none;
    border-bottom: 1px solid var(--bp-border);
    padding: 1rem 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-family: var(--bp-body-font);
    font-size: 1.0625rem;
    font-weight: 600;
    color: var(--bp-text);
    cursor: pointer;
}

.bp-mobile-accordion svg {
    transition: transform 0.2s ease;
    flex: 0 0 auto;
}

/* Search panel under header search button */
.bp-search-panel {
    position: absolute;
    top: 100%;
    right: 0;
    left: auto;
    margin-top: 0.5rem;
    min-width: 360px;
    max-width: calc(100vw - 2rem);
    background: var(--bp-bg, #fff);
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 8px;
    padding: 1rem 1rem 1.25rem;
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
    z-index: 100;
}
.bp-search-panel[hidden] { display: none; }

.bp-search-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.bp-search-row {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
}

.bp-search-input {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0.625rem 0.875rem;
    border: 1px solid rgba(0,0,0,0.18);
    border-radius: 6px;
    background: var(--bp-bg, #fff);
    color: var(--bp-text, #1a1a1a);
    font-family: inherit;
    font-size: 1rem;
    line-height: 1.4;
    outline: none;
}
.bp-search-input:focus {
    border-color: var(--bp-accent, #c75a3a);
    box-shadow: 0 0 0 3px rgba(199, 90, 58, 0.15);
}

.bp-search-submit {
    flex: 0 0 auto;
    padding: 0 0.875rem;
    background: var(--bp-accent, #c75a3a);
    color: #fff;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.bp-search-submit:hover {
    filter: brightness(0.95);
}

/* Mobile: search panel goes full-width under the header row */
@media (max-width: 768px) {
    .bp-search-panel {
        position: static;
        min-width: 0;
        max-width: none;
        margin-top: 0.75rem;
        width: 100%;
    }
}
.bp-mobile-accordion[aria-expanded="true"] svg {
    transform: rotate(180deg);
}

.bp-mobile-categories[hidden] {
    display: none;
}

.bp-mobile-categories {
    list-style: none;
    margin: 0;
    padding: 0.25rem 0 0;
    display: flex;
    flex-direction: column;
}

.bp-mobile-categories li {
    margin: 0;
}

.bp-mobile-categories a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.875rem 0.25rem;
    border-bottom: 1px solid var(--bp-border);
    color: var(--bp-text);
    font-size: 1.0625rem;
    font-weight: 500;
    text-decoration: none;
    min-height: 44px;
}

.bp-mobile-categories a:hover,
.bp-mobile-categories a:focus {
    color: var(--bp-accent);
}

.bp-mobile-cat-name {
    flex: 1 1 auto;
}

.bp-mobile-cat-count {
    font-size: 0.875rem;
    color: var(--bp-muted);
    background: var(--bp-code);
    border-radius: 999px;
    padding: 0.125rem 0.625rem;
    flex: 0 0 auto;
}

@media (min-width: 769px) {
    /* Desktop hides the accordion button entirely; drawer has its own layout. */
    .bp-mobile-accordion {
        display: none;
    }
    .bp-mobile-categories {
        display: none;
    }
}


/* ==== Footer ==== */
.bp-footer {
    background-color: var(--bp-bg);
    border-top: 1px solid var(--bp-border);
    padding: 4rem 1.5rem 2rem;
    margin-top: 4rem;
}

.bp-footer-inner {
    max-width: 1200px;
    margin: 0 auto;
}

.bp-footer-brand {
    margin-bottom: 3rem;
    max-width: 480px;
}

.bp-footer-title {
    font-family: var(--bp-heading-font);
    font-size: 1.875rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
    color: var(--bp-text);
}

.bp-footer-tagline {
    font-family: var(--bp-heading-font);
    font-size: 1.25rem;
    color: var(--bp-accent);
    margin: 0 0 1rem;
    font-style: italic;
}

.bp-footer-desc {
    color: var(--bp-muted);
    font-size: 0.95rem;
    line-height: 1.6;
    margin: 0;
}

.bp-footer-cols {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem;
    margin-bottom: 3rem;
    padding-bottom: 3rem;
    border-bottom: 1px solid var(--bp-border);
}

@media (max-width: 768px) {
    .bp-footer-cols {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}

.bp-footer-col-title {
    font-family: var(--bp-body-font);
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--bp-text);
    margin: 0 0 1rem;
}

.bp-footer-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.bp-footer-list a {
    color: var(--bp-muted);
    font-size: 0.95rem;
    border-bottom: none;
    transition: color 0.15s ease;
}

.bp-footer-list a:hover {
    color: var(--bp-accent);
    border-bottom-color: transparent;
}

.bp-footer-disclosure {
    background: var(--bp-card);
    border: 1px solid var(--bp-border);
    border-radius: 4px;
    padding: 1.25rem 1.5rem;
    margin-bottom: 2rem;
    font-size: 0.875rem;
    line-height: 1.6;
    color: var(--bp-muted);
}

.bp-footer-disclosure p {
    margin: 0;
}

.bp-footer-disclosure strong {
    color: var(--bp-text);
    font-weight: 600;
}

.bp-footer-disclosure a {
    color: var(--bp-accent);
    border-bottom: none;
}

.bp-footer-disclosure a:hover {
    border-bottom: 1px solid var(--bp-accent);
}

.bp-footer-bottom {
    text-align: center;
    color: var(--bp-muted);
    font-size: 0.875rem;
}

.bp-footer-bottom p {
    margin: 0;
}

/* ==== Hide default GeneratePress header/footer bits we're replacing ==== */
.site-header .header-widget-area,
.site-header .site-branding,
.site-header .main-navigation:not(.bp-header-nav),
.inside-footer-widgets,
.site-footer .footer-widgets,
.site-footer .site-info {
    display: none;
}


/* ==== Homepage hero ==== */
.bp-home {
    margin-top: 0;
}

.bp-hero {
    padding: 4rem 1.5rem 3rem;
    border-bottom: 1px solid var(--bp-border);
}

.bp-hero-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
    align-items: center;
}

@media (min-width: 900px) {
    .bp-hero-inner {
        grid-template-columns: 1fr 1.2fr;
        gap: 4rem;
    }
}

.bp-hero-tagline {
    text-align: left;
}

.bp-hero-eyebrow {
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--bp-muted);
    margin-bottom: 1rem;
}

.bp-hero-headline {
    font-family: var(--bp-heading-font);
    font-size: 3.5rem;
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -0.025em;
    color: var(--bp-text);
    margin: 0 0 1.25rem;
}

@media (max-width: 768px) {
    .bp-hero-headline {
        font-size: 2.5rem;
    }
}

.bp-hero-sub {
    font-size: 1.125rem;
    line-height: 1.6;
    color: var(--bp-muted);
    max-width: 480px;
    margin: 0;
}

.bp-hero-card {
    background: var(--bp-card);
    border: 1px solid var(--bp-border);
    border-radius: 4px;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.bp-hero-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
}

.bp-hero-card-link {
    text-decoration: none;
    color: inherit;
    border-bottom: none;
    display: block;
}

.bp-hero-card-image {
    aspect-ratio: 16/9;
    overflow: hidden;
    background: var(--bp-code);
}

.bp-hero-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    margin: 0;
}

.bp-hero-card-body {
    padding: 2rem;
}

.bp-hero-card-title {
    font-family: var(--bp-heading-font);
    font-size: 1.75rem;
    font-weight: 600;
    line-height: 1.2;
    color: var(--bp-text);
    margin: 0.5rem 0 1rem;
}

.bp-hero-card-excerpt {
    color: var(--bp-text);
    font-size: 1rem;
    line-height: 1.6;
    margin: 0 0 1.25rem;
}

.bp-card-eyebrow {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--bp-accent);
    font-weight: 600;
    margin: 0;
}

.bp-card-meta {
    font-size: 0.875rem;
    color: var(--bp-muted);
    margin: 0;
}

/* ==== Sections ==== */
.bp-section {
    padding: 4rem 1.5rem;
}

.bp-section-inner {
    max-width: 1200px;
    margin: 0 auto;
}

.bp-section-title {
    font-family: var(--bp-heading-font);
    font-size: 2.25rem;
    font-weight: 600;
    color: var(--bp-text);
    margin: 0 0 0.5rem;
    text-align: left;
}

.bp-section-sub {
    font-size: 1.125rem;
    color: var(--bp-muted);
    margin: 0 0 3rem;
    max-width: 600px;
}

.bp-section-recent {
    border-bottom: 1px solid var(--bp-border);
}

/* ==== Article grid (Latest section) ==== */
.bp-article-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 2rem;
}

@media (max-width: 768px) {
    .bp-article-grid {
        grid-template-columns: 1fr;
    }
}

/* ==== Article cards ==== */
.bp-card {
    background: var(--bp-card);
    border: 1px solid var(--bp-border);
    border-radius: 4px;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.bp-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}

.bp-card-link {
    text-decoration: none;
    color: inherit;
    border-bottom: none;
    display: block;
}

.bp-card-image {
    aspect-ratio: 16/9;
    overflow: hidden;
    background: var(--bp-code);
}

.bp-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    margin: 0;
}

.bp-card-body {
    padding: 1.5rem;
}

.bp-card-title {
    font-family: var(--bp-heading-font);
    font-size: 1.375rem;
    font-weight: 600;
    line-height: 1.25;
    color: var(--bp-text);
    margin: 0.5rem 0 0.75rem;
}

.bp-card-excerpt {
    color: var(--bp-text);
    font-size: 0.95rem;
    line-height: 1.55;
    margin: 0 0 1rem;
}

.bp-empty {
    color: var(--bp-muted);
    font-style: italic;
    text-align: center;
    padding: 2rem;
}

/* ==== Category rows (Experience section) ==== */
.bp-category-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.bp-category-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding: 2.5rem 0;
    border-top: 1px solid var(--bp-border);
}

.bp-category-row:last-child {
    border-bottom: 1px solid var(--bp-border);
}

@media (min-width: 800px) {
    .bp-category-row {
        grid-template-columns: 1fr 1fr;
        align-items: start;
    }
}

.bp-category-info {
    padding-right: 1rem;
}

.bp-category-name {
    font-family: var(--bp-heading-font);
    font-size: 1.875rem;
    font-weight: 600;
    color: var(--bp-text);
    margin: 0 0 0.5rem;
}

.bp-category-name a {
    color: var(--bp-text);
    border-bottom: none;
}

.bp-category-name a:hover {
    color: var(--bp-accent);
}

.bp-category-desc {
    color: var(--bp-muted);
    font-size: 1rem;
    line-height: 1.5;
    margin: 0 0 1rem;
}

.bp-category-meta {
    font-size: 0.875rem;
    margin: 0;
}

.bp-category-meta a {
    color: var(--bp-accent);
    font-weight: 500;
}

.bp-category-feature {
    background: var(--bp-card);
    border: 1px solid var(--bp-border);
    border-radius: 4px;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.bp-category-feature:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}

.bp-category-feature .bp-card-image {
    aspect-ratio: 16/9;
}

.bp-category-feature .bp-card-title {
    font-size: 1.125rem;
    margin: 1rem 1rem 0.5rem;
}

.bp-category-feature .bp-card-meta {
    padding: 0 1rem 1rem;
    margin: 0;
}


/* ==== Related articles (bottom of single posts) ==== */
.bp-related {
    padding: 4rem 1.5rem;
    border-top: 1px solid var(--bp-border);
    margin-top: 4rem;
    background-color: var(--bp-bg);
}

.bp-related-inner {
    max-width: 1200px;
    margin: 0 auto;
}

.bp-related .bp-section-title {
    font-family: var(--bp-heading-font);
    font-size: 2rem;
    font-weight: 600;
    color: var(--bp-text);
    margin: 0 0 0.5rem;
}

.bp-related .bp-section-sub {
    font-size: 1rem;
    color: var(--bp-muted);
    margin: 0 0 2rem;
    max-width: 600px;
}

.bp-related-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 2rem;
    margin-bottom: 3rem;
}

@media (max-width: 768px) {
    .bp-related-grid {
        grid-template-columns: 1fr;
    }
}

/* ==== Affiliate product slot (placeholder for now) ==== */
.bp-affiliate-slot {
    background: var(--bp-card);
    border: 1px solid var(--bp-border);
    border-left: 3px solid var(--bp-accent);
    border-radius: 4px;
    padding: 1.5rem 2rem;
    margin-top: 2rem;
}

.bp-affiliate-eyebrow {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--bp-accent);
    font-weight: 600;
    margin: 0 0 0.5rem;
}

.bp-affiliate-title {
    font-family: var(--bp-heading-font);
    font-size: 1.375rem;
    font-weight: 600;
    color: var(--bp-text);
    margin: 0 0 0.5rem;
}

.bp-affiliate-desc {
    color: var(--bp-muted);
    font-size: 0.95rem;
    line-height: 1.5;
    margin: 0;
}

.bp-affiliate-desc em {
    color: var(--bp-text);
    font-style: italic;
}

/* ==== Hide default category + comment display ==== */
/* Boomeropia uses its own custom experience/destination/audience taxonomies
   for content classification. The default WP categories ("Uncategorized") and
   comment links ("Leave a comment") are vestigial and confusing. */

/* Category links on single posts and archive cards */
.cat-links,
.entry-meta .cat-links,
.comments-link,
.entry-footer .cat-links,
.entry-footer .comments-link {
    display: none !important;
}

/* Comment form / comment area on single posts */
#comments,
.comments-area,
.comment-respond {
    display: none !important;
}


/* ==== Season date display ==== */
.bp-season-date {
    color: var(--bp-muted);
    font-size: 0.875rem;
    line-height: 1.5;
}

.bp-season-published,
.bp-season-updated {
    color: var(--bp-muted);
}

.bp-season-sep {
    margin: 0 0.4em;
    color: var(--bp-border);
}


/* ==== Hide redundant updated time on entry meta ==== */
/* GP shows two <time> elements when post is updated:
   - <time class="updated"> for dateModified
   - <time class="entry-date published"> for datePublished
   The updated one is the literal "July 19, 2026" we want to replace.
   Hide it - the season date in our custom display is the source of truth. */
.entry-meta time.updated,
.entry-header time.updated,
.posted-on time.updated {
    display: none !important;
}


/* ==== Season date separator ==== */
/* Add a small right margin so the date doesn't run into subsequent content
   (e.g., "by Author Name" in the byline) */
.bp-season-date {
    margin-right: 0.4em;
}
