/*
 Theme Name:   Motuihe Theme
 Theme URI:    https://www.motuihe.org.nz
 Description:  Custom child theme for the Motuihe Island Restoration Trust
 Author:       Motuihe Trust Volunteers
 Author URI:   https://www.motuihe.org.nz
 Template:     astra
 Version:      0.1.0
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  motuihe-theme
*/

/* ==========================================================================
   Variables
   ========================================================================== */

:root {
    /* Colour system — mapped to Astra Global Palette (Customizer → Colors)

       Slot mapping (change in Customizer to update whole site):
         0 = Brand       → --color-primary        (interactive: links, buttons, nav active)
         1 = Alt Brand   → --color-primary-dark    (heading text, hover states)
         2 = Heading     → --color-hero            (hero bg, CTA bg — NOT heading text)
         3 = Text        → --color-text            (body text)
         4 = Primary BG  → --color-surface         (page bg, card bg)
         5 = Secondary BG→ --color-surface-alt     (sand sections, callout bg)
         6 = Alt BG      → --color-text-muted      (captions, secondary text)
         7 = Supporting  → --color-secondary        (nature/volunteer green buttons)
         8 = Other       → --color-primary-light   (sidebar border, subtle highlights)

       Switch hero colour (D vs D-2): change slot 2 in Customizer
         #2d5016 = green heroes (Option D)
         #1b4570 = blue heroes (Option D-2)
    */

    /* Hardcoded colours — not in Astra palette */
    --color-secondary-light: #e8f4f8;  /* Light callout bg — only .motuihe-section-blue, .motuihe-alert-info */

    /* Typography */
    --font-heading: 'Source Sans Pro', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-body: 'Source Sans Pro', -apple-system, BlinkMacSystemFont, sans-serif;

    /* Spacing */
    --section-padding: 4rem 0;
    --container-max: 1140px;
}

/* Colour aliases — set on body so they re-evaluate after Astra's inline :root styles.
   This makes Customizer live preview work correctly. */
body {
    --color-primary: var(--ast-global-color-0, #2563a0);
    --color-primary-dark: var(--ast-global-color-1, #1b4570);
    --color-primary-light: var(--ast-global-color-8, #5a93c8);
    --color-hero: var(--ast-global-color-2, #2d5016);
    --color-text: var(--ast-global-color-3, #333333);
    --color-surface: var(--ast-global-color-4, #ffffff);
    --color-surface-alt: var(--ast-global-color-5, #f5f0e8);
    --color-text-muted: var(--ast-global-color-6, #666666);
    --color-secondary: var(--ast-global-color-7, #4a7c28);
}

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

body {
    font-family: var(--font-body);
    color: var(--color-text);
    line-height: 1.7;
    overflow-x: clip;
    overflow-y: visible;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    /* Heading colour controlled by Astra Customizer → Heading (slot 2) */
    font-weight: 600;
}

/* Hero headings are always white regardless of heading colour */
.motuihe-inner-hero h1,
.motuihe-inner-hero h2,
.motuihe-inner-hero p,
.motuihe-page-hero h1,
.motuihe-page-hero p {
    color: var(--color-surface);
}

a {
    color: var(--color-primary);
    text-decoration: none;
}

a:hover {
    color: var(--color-hero);
    text-decoration: underline;
}

/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
    background: var(--color-surface);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.site-header .site-title a {
    color: var(--color-hero);
}

/* ==========================================================================
   Navigation
   ========================================================================== */

.main-navigation a {
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
}

/* Bold the active page + parent ancestor in header nav */
.main-navigation .current-menu-item > .menu-link,
.main-navigation .current-menu-ancestor > .menu-link {
    font-weight: 700;
}

/* Mobile header: show site title text next to logo when hamburger is active */
.ast-header-break-point .site-title {
    display: block !important;
    font-size: 1.2rem;
}

/* Pull hamburger icon closer to right edge */
.ast-header-break-point .site-primary-header-wrap {
    padding-right: 50px !important;
}

/* Show mobile menu when hamburger is toggled open */
.ast-main-header-nav-open .ast-builder-menu-mobile .main-navigation {
    display: block !important;
}

/* Mobile dropdown: narrower panel, right-aligned, with shadow */
.ast-header-break-point .ast-mobile-header-content {
    width: 280px !important;
    right: 1rem !important;
    left: auto !important;
    border-radius: 0 0 8px 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    border: 1px solid var(--color-surface-alt);
    border-top: none;
}

/* ==========================================================================
   Hero section (homepage) — left-aligned, matching original site
   ========================================================================== */

.motuihe-hero {
    position: relative;
    min-height: 70vh;
    display: flex;
    align-items: center;
    color: var(--color-surface);
    background-size: cover;
    background-position: center;
}

.motuihe-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to right,
        rgba(0, 0, 0, 0.55) 0%,
        rgba(0, 0, 0, 0.2) 60%,
        transparent 100%
    );
}

.motuihe-hero > .motuihe-container {
    position: relative;
    z-index: 1;
    width: 100%;
}

.motuihe-hero-content.motuihe-hero-left {
    max-width: 600px;
    text-align: left;
}

.motuihe-hero h1 {
    color: var(--color-surface);
    font-size: 2.8rem;
    margin-bottom: 0.75rem;
    line-height: 1.15;
}

.motuihe-hero p {
    font-size: 1.3rem;
    margin-bottom: 1.5rem;
    letter-spacing: 0.05em;
}

.motuihe-hero-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
}

.motuihe-btn-outline {
    background: transparent;
    color: var(--color-surface);
    border: 2px solid var(--color-surface);
}

.motuihe-btn-outline:hover {
    background: var(--color-surface);
    color: var(--color-hero);
    text-decoration: none;
}

.motuihe-btn-donate {
    background: var(--color-secondary);
    color: var(--color-surface);
    border-radius: 28px;
    padding: 0.8rem 1.5rem;
}

.motuihe-btn-donate:hover {
    background: var(--color-primary-dark);
    color: var(--color-surface);
    text-decoration: none;
}

/* ==========================================================================
   Section headers — centered text above content
   ========================================================================== */

.motuihe-section-header {
    text-align: center;
    max-width: 800px;
    margin: 0 auto 2.5rem;
}

.motuihe-section-header h2 {
    margin-bottom: 0.75rem;
}

.motuihe-section-header p {
    color: var(--color-text-muted);
}

/* ==========================================================================
   Feature grid — 4-column cards with images (Plan Your Visit)
   ========================================================================== */

.motuihe-feature-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
}

.motuihe-feature-card {
    background: var(--color-surface);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

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

.motuihe-feature-img {
    width: 100%;
    height: 180px;
    overflow: hidden;
    background: var(--color-surface-alt);
}

.motuihe-feature-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.motuihe-feature-card h3 {
    padding: 1rem 1.25rem 0;
    margin: 0;
    font-size: 1.1rem;
}

.motuihe-feature-card ul {
    padding: 0.5rem 1.25rem 1.25rem 2.25rem;
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.8;
}

.motuihe-feature-card li {
    color: var(--color-text-muted);
}

.motuihe-feature-card li a {
    color: var(--color-secondary);
}

/* ==========================================================================
   Two-column layout (video + text)
   ========================================================================== */

.motuihe-two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
}

.motuihe-video-wrapper {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    height: 0;
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
}

.motuihe-video-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.motuihe-text-small {
    font-size: 0.85rem;
    color: var(--color-text-muted);
    font-style: italic;
}

/* ==========================================================================
   Blog grid (homepage)
   ========================================================================== */

.motuihe-blog-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}

.motuihe-blog-item {
    background: var(--color-surface-alt);
    border-radius: 8px;
    overflow: hidden;
}

.motuihe-blog-featured {
    grid-row: span 2;
}

.motuihe-blog-featured .motuihe-blog-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-height: 420px;
}

.motuihe-blog-small {
    display: grid;
    grid-template-columns: 240px 1fr;
    min-height: 160px;
}

.motuihe-blog-small .motuihe-blog-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.motuihe-blog-text {
    padding: 1.25rem;
}

.motuihe-blog-text h3 {
    margin-top: 0;
    font-size: 1.1rem;
}

.motuihe-blog-text h3 a {
    color: var(--color-hero);
}

.motuihe-read-more {
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--color-secondary);
}

/* ==========================================================================
   CTA buttons
   ========================================================================== */

.motuihe-cta-row {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.motuihe-btn {
    display: inline-block;
    padding: 0.8rem 2rem;
    border-radius: 4px;
    font-weight: 600;
    font-size: 1rem;
    transition: background-color 0.2s ease, transform 0.1s ease;
    cursor: pointer;
    text-decoration: none;
}

.motuihe-btn:hover {
    text-decoration: none;
    transform: translateY(-1px);
}

.motuihe-btn-primary {
    background-color: var(--color-primary);
    color: var(--color-surface);
}

.motuihe-btn-primary:hover {
    background-color: var(--color-primary-dark);
    color: var(--color-surface);
}

.motuihe-btn-secondary {
    background-color: transparent;
    color: var(--color-surface);
    border: 2px solid var(--color-surface);
}

.motuihe-btn-secondary:hover {
    background-color: var(--color-surface);
    color: var(--color-hero);
}

/* ==========================================================================
   Upcoming volunteer trips [next_volunteer_day]
   ========================================================================== */

.motuihe-upcoming-trips {
    background: var(--color-secondary-light, #e8f5e1);
    padding: 1.5rem;
    border-radius: 6px;
    margin: 1.5rem 0;
}

.motuihe-upcoming-trips .trips-label {
    margin: 0 0 0.75rem;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--color-text-muted, #666);
}

.motuihe-trip-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 0;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.motuihe-trip-card .trip-date {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--color-primary-dark, #1b4570);
}

.motuihe-trip-card .trip-description {
    margin: 0.25rem 0 0;
    font-size: 0.9rem;
    color: var(--color-text-muted, #555);
}

.motuihe-no-trips {
    color: var(--color-text-muted, #666);
    font-style: italic;
}

@media (max-width: 480px) {
    .motuihe-trip-card {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
}

/* ==========================================================================
   Content sections
   ========================================================================== */

.motuihe-section {
    padding: 15px 0 0;
}

.motuihe-section-alt {
    background-color: var(--color-surface-alt);
}

.motuihe-section-blue {
    background-color: var(--color-secondary-light);
}

.motuihe-container {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 1.5rem;
}

/* ==========================================================================
   Content — narrow width for reading
   ========================================================================== */

.motuihe-content-narrow {
    max-width: 800px;
    margin: 0 auto;
}

.motuihe-content-narrow .wp-block-buttons {
    padding: 0;
}

.motuihe-content-narrow .wp-block-button {
    padding: 0;
}

/* ==========================================================================
   Card grid (homepage, volunteer activities)
   ========================================================================== */

.motuihe-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
}

.motuihe-card {
    text-align: center;
    padding: 2rem;
    background: var(--color-surface);
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    transition: box-shadow 0.2s ease;
}

.motuihe-card:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.motuihe-card h3,
.motuihe-card__title {
    margin-top: 0;
    font-size: 1.17em;
    font-weight: 600;
    color: var(--color-text);
}

/* WP Columns block used as card grid */
.motuihe-card-grid.wp-block-columns > .wp-block-column {
    background: var(--color-surface-alt);
    border-radius: 8px;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
}

.motuihe-card-grid.wp-block-columns > .wp-block-column .motuihe-card__title,
.motuihe-card-grid.wp-block-columns > .wp-block-column h3 {
    margin-top: 0;
    margin-bottom: 0.25rem;
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--color-hero);
}

.motuihe-card-grid.wp-block-columns > .wp-block-column > p {
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--color-text);
}

/* ==========================================================================
   Info cards (ferry services, donation methods)
   ========================================================================== */

.motuihe-info-card {
    background: var(--color-surface-alt);
    border-left: 4px solid var(--color-primary);
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    border-radius: 0 8px 8px 0;
    display: flex;
    flex-direction: column;
}

.motuihe-info-card__link {
    margin-top: auto;
    margin-bottom: 0;
}

.motuihe-info-card h3,
.motuihe-content-narrow .motuihe-info-card h3 {
    margin-top: 0;
    margin-bottom: 0.25rem;
}

.motuihe-info-card p:last-child {
    margin-bottom: 0;
}

.motuihe-info-card-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    align-items: stretch;
}

.motuihe-info-card-grid > .motuihe-info-card {
    display: grid;
    grid-row: span 3;
    grid-template-rows: subgrid;
    margin-bottom: 0;
}

@media (max-width: 768px) {
    .motuihe-info-card-grid {
        grid-template-columns: 1fr;
    }
}

/* Camping callout */
.motuihe-camping-callout {
    background: var(--color-surface-alt);
    border-radius: 8px;
    padding: 1.5rem 2rem;
    margin-top: 1rem;
}

.motuihe-camping-callout ul {
    margin: 1rem 0;
    padding-left: 1.25rem;
}

.motuihe-camping-callout li {
    margin-bottom: 0.4rem;
}

/* ==========================================================================
   Visit page — highlights strip
   ========================================================================== */

.motuihe-visit-highlights {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    margin: 2rem 0 2.5rem;
}

.motuihe-visit-highlight {
    background: var(--color-surface-alt);
    border-radius: 8px;
    padding: 1.25rem;
    text-align: center;
}

.motuihe-visit-highlight strong {
    display: block;
    font-size: 1.05rem;
    margin-bottom: 0.4rem;
    color: var(--color-hero);
}

.motuihe-visit-highlight p {
    font-size: 0.9rem;
    color: var(--color-text-muted);
    margin: 0;
    line-height: 1.5;
}

.motuihe-visit-highlight a {
    color: var(--color-primary);
    font-weight: 600;
}

@media (max-width: 768px) {
    .motuihe-visit-highlights { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 480px) {
    .motuihe-visit-highlights { grid-template-columns: 1fr; }
}

/* ==========================================================================
   About page — timeline strip
   ========================================================================== */

/* Timeline — rendered by [timeline] shortcode.
   Edit in the WP editor as plain text:
   >2000
   >>Project begins
   >2005
   >>Island declared predator-free */
.motuihe-timeline {
    display: flex;
    justify-content: center;
    gap: 0;
    margin: 2.5rem 0;
    position: relative;
}

.motuihe-timeline::before {
    content: '';
    position: absolute;
    top: 1.1rem;
    left: 10%;
    right: 10%;
    height: 2px;
    background: var(--color-primary-light);
}

.motuihe-timeline__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    position: relative;
    text-align: center;
}

.motuihe-timeline__year {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 50%;
    background: var(--color-primary);
    color: var(--color-surface);
    font-weight: 700;
    font-size: 0.7rem;
    margin-bottom: 0.6rem;
    position: relative;
    z-index: 1;
}

.motuihe-timeline__text {
    font-size: 0.9rem;
    color: var(--color-text);
    max-width: 140px;
    line-height: 1.4;
}

@media (max-width: 480px) {
    .motuihe-timeline {
        flex-direction: column;
        align-items: flex-start;
        gap: 1.25rem;
        padding-left: 2rem;
    }
    .motuihe-timeline::before {
        top: 0;
        bottom: 0;
        left: 1rem;
        right: auto;
        width: 2px;
        height: auto;
    }
    .motuihe-timeline__item {
        flex-direction: row;
        gap: 0.75rem;
        text-align: left;
    }
    .motuihe-timeline__year {
        margin-bottom: 0;
        flex-shrink: 0;
    }
    .motuihe-timeline__text {
        max-width: none;
    }
}

.motuihe-text-left {
    text-align: left !important;
}

/* ==========================================================================
   About page — simple link list
   ========================================================================== */

.motuihe-about-links {
    list-style: none;
    padding: 0;
    margin: 1.5rem 0 0;
}

.motuihe-about-links li {
    padding: 1rem 0;
    border-bottom: 1px solid var(--color-surface-alt);
}

.motuihe-about-links li:first-child {
    border-top: 1px solid var(--color-surface-alt);
}

.motuihe-about-links a {
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--color-primary);
    text-decoration: none;
}

.motuihe-about-links a:hover {
    color: var(--color-hero);
}

.motuihe-about-links span {
    display: block;
    font-size: 0.95rem;
    color: var(--color-text-muted);
    margin-top: 0.2rem;
}

/* ==========================================================================
   Alert boxes (biosecurity warnings, safety notes)
   ========================================================================== */

.motuihe-alert {
    padding: 1.25rem 1.5rem;
    border-radius: 8px;
    margin-bottom: 2rem;
    line-height: 1.6;
    text-align: center;
}

.motuihe-alert-warning {
    background-color: #fff8e1;
    border: 1px solid #ffcc02;
    color: #5d4e00;
}

.motuihe-alert-info {
    background-color: var(--color-secondary-light);
    border: 1px solid #b3d9e8;
    color: #0d4a5e;
}

/* ==========================================================================
   Team grid
   ========================================================================== */

.motuihe-team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1.5rem;
    margin-bottom: 2rem;
}

.motuihe-team-member {
    padding: 1rem;
    margin-bottom: 0.5rem;
}

.motuihe-team-member h3 {
    margin-bottom: 0.25rem;
    font-size: 1.05rem;
}

.motuihe-team-member p {
    color: var(--color-text-muted);
    font-size: 0.95rem;
    margin-top: 0;
}

/* ==========================================================================
   Contact page grid
   ========================================================================== */

.motuihe-contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    max-width: 900px;
    margin: 0 auto;
}

.motuihe-contact-grid h3 {
    font-size: 1rem;
    margin-top: 1.5rem;
    margin-bottom: 0.25rem;
}

/* ==========================================================================
   Sponsor Marquee — infinite scrolling logo strip
   ========================================================================== */

.motuihe-sponsor-marquee {
    overflow: hidden;
    padding: 1.5rem 0;
}

.motuihe-sponsor-track {
    display: flex;
    width: max-content;
    animation: motuihe-marquee 35s linear infinite;
}

.motuihe-sponsor-set {
    display: flex;
    align-items: center;
    gap: 3rem;
    padding-right: 3rem; /* matches gap so sets join seamlessly */
    flex-shrink: 0;
}

.motuihe-sponsor-logo {
    height: 90px;
    width: 220px;
    object-fit: contain;
    flex-shrink: 0;
}

@keyframes motuihe-marquee {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

/* Pause on hover for accessibility */
.motuihe-sponsor-marquee:hover .motuihe-sponsor-track {
    animation-play-state: paused;
}

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

/*
 * Astra footer builder — styled via Customizer → Footer Builder.
 * Content is fully editable from the Astra footer builder UI.
 */
.site-footer {
    background-color: var(--color-footer, #242424);
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.9rem;
    line-height: 1.6;
}

.site-footer a {
    color: rgba(255, 255, 255, 0.9);
    text-decoration: none;
}

.site-footer a:hover {
    color: var(--color-surface);
}

/* Primary footer row — 3 columns, vertically centred */
.site-footer .site-primary-footer-wrap {
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.site-footer .site-primary-footer-inner-wrap.ast-builder-grid-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    align-items: center;
}

@media (max-width: 768px) {
    .site-footer .site-primary-footer-inner-wrap.ast-builder-grid-row {
        grid-template-columns: 1fr;
        gap: 2rem;
        text-align: center;
    }
}

.site-footer .site-footer-section {
    text-align: center;
}

.site-footer .ast-builder-html-element p {
    color: rgba(255, 255, 255, 0.85);
    margin: 0 0 0.5rem;
}

/* Footer nav menu — vertical list */
.site-footer .astra-footer-horizontal-menu {
    flex-direction: column;
    gap: 0.25rem;
}

.site-footer .footer-nav-wrap .menu-link {
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.9rem;
}

.site-footer .footer-nav-wrap .menu-link:hover {
    color: var(--color-surface);
}

.site-footer .dropdown-menu-toggle {
    display: none;
}


/* Newsletter subscribe form */
.motuihe-footer-subscribe {
    display: flex;
    gap: 0;
    margin-top: 0.5rem;
    max-width: 320px;
    margin-left: auto;
    margin-right: auto;
}

.motuihe-footer-subscribe input[type="email"] {
    flex: 1;
    padding: 0.5rem 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-right: none;
    border-radius: 4px 0 0 4px;
    background: rgba(255, 255, 255, 0.1);
    color: var(--color-surface);
    font-size: 0.85rem;
}

.motuihe-footer-subscribe input[type="email"]::placeholder {
    color: rgba(255, 255, 255, 0.5);
}

.motuihe-footer-subscribe button {
    padding: 0.5rem 1rem;
    background: var(--color-primary);
    color: var(--color-surface);
    border: none;
    border-radius: 0 4px 4px 0;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s ease;
}

.motuihe-footer-subscribe button:hover {
    background: var(--color-hero);
}

/* Social icons */
.site-footer .ast-footer-social-wrap {
    justify-content: center;
}

.site-footer .ast-builder-social-element svg {
    fill: rgba(255, 255, 255, 0.85);
}

.site-footer .ast-builder-social-element:hover svg {
    fill: var(--color-surface);
}

/* Below footer — copyright row */
.site-footer .site-below-footer-wrap {
    padding: 0.75rem 1.5rem;
    font-size: 0.8rem;
}

.site-footer .ast-footer-copyright p {
    color: rgba(255, 255, 255, 0.6);
    margin: 0;
}

/* ==========================================================================
   Ferry list — aligned two-column layout
   ========================================================================== */

.motuihe-ferry-list {
    display: table;
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 0.5rem;
}

.motuihe-ferry-list p {
    display: table-row;
}

.motuihe-ferry-list p strong {
    display: table-cell;
    white-space: nowrap;
    padding-right: 1rem;
    vertical-align: top;
}

.motuihe-ferry-list .motuihe-ferry-desc {
    display: table-cell;
    vertical-align: top;
}

/* ==========================================================================
   Facility grid — 2-col cards with h3 headings
   ========================================================================== */

.motuihe-facility-grid h3 {
    font-size: 1.1rem;
    color: var(--color-hero);
    margin: 0 0 0.5rem;
}

.motuihe-facility-grid .wp-block-column {
    background: var(--color-surface-alt);
    padding: 1.25rem 1.5rem;
    border-radius: 6px;
}

.motuihe-facility-grid .wp-block-column p {
    font-size: 0.95rem;
    margin: 0;
}

/* ==========================================================================
   Sand callout box
   ========================================================================== */

.motuihe-callout-sand {
    background: var(--color-surface-alt);
    padding: 1.5rem 2rem;
    border-radius: 6px;
    border-left: 4px solid var(--color-primary);
}

.motuihe-callout-sand ul {
    margin: 0;
    padding-left: 1.25rem;
}

.motuihe-callout-sand li {
    margin-bottom: 0.35rem;
    font-size: 0.95rem;
}

/* ==========================================================================
   Inner Page Hero
   ========================================================================== */

.motuihe-page-hero {
    background: var(--color-hero);
    background-size: cover;
    background-position: center;
    padding: 3rem 0 2rem;
    color: var(--color-surface);
    text-align: center;
    position: relative;
}

.motuihe-page-hero-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
}

.motuihe-page-hero .motuihe-container {
    position: relative;
    z-index: 1;
}

.motuihe-page-hero h1 {
    color: var(--color-surface);
    font-size: 2.2rem;
    margin: 0 0 0.5rem;
}

.motuihe-page-hero p {
    font-size: 1.1rem;
    margin: 0.25rem 0 0;
    opacity: 0.9;
}

/* Inner Page Hero — Cover Block variant (editor-controlled with focal point)
   Add class "motuihe-inner-hero" to a Cover block to use this style.
   Falls back to solid green when no image is set on the Cover block.
   -------------------------------------------------------------------------- */

.motuihe-inner-hero {
    min-height: 250px;
    padding: 3rem 2rem 2rem;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    /* Break out of narrow content container to go full width */
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-top: 0;
    margin-bottom: 2rem;
}

/* Hero background — controlled globally by --color-hero (Customizer slot 2).
   Overrides inline customOverlayColor so all heroes change with one palette value.
   Overlay opacity is NOT forced: the editor's dim level applies, so a Cover
   photo shows through the green tint (forcing opacity:1 hid every hero photo). */
.motuihe-inner-hero:not(.has-background-dim) {
    background: var(--color-hero) !important;
}

.motuihe-inner-hero .wp-block-cover__background {
    background-color: var(--color-hero) !important;
}

.motuihe-inner-hero .wp-block-cover__inner-container {
    max-width: var(--motuihe-container-width, 1140px);
    width: 100%;
}

.motuihe-inner-hero h1 {
    color: var(--color-surface) !important;
    font-size: 2.2rem;
    margin: 0 0 0.5rem;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.motuihe-inner-hero p {
    color: var(--color-surface) !important;
    font-size: 1.1rem;
    margin: 0.25rem 0 0;
    opacity: 0.9;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
}

/* ==========================================================================
   Inner-page nav cards (Get Involved, Support Us, etc.)
   ========================================================================== */

.motuihe-content-narrow .motuihe-nav-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    max-width: 960px;
    margin-left: calc((800px - 960px) / 2);
    width: 960px;
}

.motuihe-content-narrow .motuihe-nav-card {
    background: var(--color-surface-alt);
    border-radius: 8px;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
}

.motuihe-content-narrow .motuihe-nav-card h3 {
    margin-top: 0;
    margin-bottom: 0.25rem;
    font-size: 1.15rem;
    color: var(--color-hero);
}

.motuihe-content-narrow .motuihe-nav-card > p,
.motuihe-content-narrow .motuihe-nav-card > .wp-block-paragraph {
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--color-text);
}

.motuihe-content-narrow .motuihe-nav-card .motuihe-card-link {
    margin-top: auto;
    padding-top: 0.75rem;
}

.motuihe-content-narrow .motuihe-nav-card .motuihe-card-link a {
    font-weight: 600;
    color: var(--color-primary);
}

.motuihe-content-narrow .motuihe-nav-card .motuihe-card-link a:hover {
    color: var(--color-hero);
}

.motuihe-content-narrow .motuihe-nav-card .motuihe-nav-card-link {
    margin-top: auto;
    padding-top: 0.75rem;
    font-weight: 600;
    color: var(--color-primary);
}

.motuihe-content-narrow .motuihe-nav-card:hover .motuihe-nav-card-link {
    color: var(--color-hero);
}

.motuihe-content-narrow a.motuihe-nav-card {
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.motuihe-content-narrow a.motuihe-nav-card:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

.motuihe-content-narrow .motuihe-nav-cards--2col {
    grid-template-columns: 1fr 1fr;
}

@media (max-width: 992px) {
    .motuihe-content-narrow .motuihe-nav-cards {
        max-width: 100%;
        width: 100%;
        margin-left: 0;
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 768px) {
    .motuihe-content-narrow .motuihe-nav-cards {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Section Navigation — accordion sidebar for About pages
   ========================================================================== */

.motuihe-section-nav {
    position: sticky;
    top: 5rem;
    padding: 0 0 0 1.25rem;
    border-left: 3px solid var(--color-primary-light);
    width: 240px;
    text-align: left;
    justify-self: start;
    align-self: start;
}

.motuihe-section-nav__label {
    display: block;
    font-weight: 700;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    text-decoration: none;
    color: var(--color-hero);
    margin-bottom: 0.75rem;
}

.motuihe-section-nav__list,
.motuihe-section-nav__sub,
.motuihe-section-nav__headings,
.motuihe-section-nav__heading-sub {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Top-level items */
.motuihe-section-nav__item {
    position: relative;
    line-height: 1.4;
    padding: 0.3rem 0;
}

.motuihe-section-nav__item > a {
    color: var(--color-text-muted);
    text-decoration: none;
    transition: color 0.2s ease;
}

.motuihe-section-nav__item > a:hover {
    color: var(--color-primary);
}

.motuihe-section-nav__item.is-current > a {
    color: var(--color-primary);
    font-weight: 600;
}

/* Toggle button */
.motuihe-section-nav__toggle {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0 0 0 0.3rem;
    font-size: 0.8rem;
    color: var(--color-text-muted);
    vertical-align: middle;
    line-height: 1;
}

.motuihe-section-nav__toggle:hover {
    color: var(--color-primary);
}

/* Top-level section pages — distinct style */
.motuihe-section-nav__item > a {
    font-size: 1rem !important;
    font-weight: 600;
    color: var(--color-text);
}

.motuihe-section-nav__item > a:hover {
    color: var(--color-primary);
}

.motuihe-section-nav__item.is-current > a {
    color: var(--color-primary);
}

/* Sub-pages (indented) */
.motuihe-section-nav__sub {
    padding-left: 0.75rem;
    margin-top: 0.2rem;
    border-left: 2px solid var(--color-surface-alt);
}

.motuihe-section-nav__item--child,
.motuihe-section-nav__item--child > a {
    font-size: 0.9rem !important;
    padding: 0.25rem 0;
}

.motuihe-section-nav__item--child > a {
    font-weight: 400;
    color: var(--color-text-muted);
}

.motuihe-section-nav__item--child > a:hover {
    color: var(--color-primary);
}

.motuihe-section-nav__item--child.is-current > a {
    color: var(--color-primary);
    font-weight: 600;
}

/* Separator line between heritage sub-page groups */
.motuihe-section-nav__item--child.has-separator {
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--color-surface-alt);
}

/* Headings within current page — smallest, lightest */
.motuihe-section-nav__headings {
    padding-left: 0.75rem;
    margin-top: 0.2rem;
    border-left: 2px solid var(--color-surface-alt);
}

.motuihe-section-nav__heading {
    font-size: 0.9rem !important;
    padding: 0.2rem 0;
}

.motuihe-section-nav__heading > a {
    color: var(--color-text-muted);
    text-decoration: none;
    font-weight: 400;
    opacity: 0.8;
    transition: color 0.2s ease, opacity 0.2s ease;
}

.motuihe-section-nav__heading > a:hover,
.motuihe-section-nav__heading > a.is-active {
    color: var(--color-primary);
    font-weight: 600;
    opacity: 1;
}

/* h3 sub-headings — collapsed by default, expand on hover or when active */
.motuihe-section-nav__heading-sub {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    padding-left: 0.5rem;
}

.motuihe-section-nav__heading.has-children:hover .motuihe-section-nav__heading-sub,
.motuihe-section-nav__heading.has-children.is-active-parent .motuihe-section-nav__heading-sub {
    max-height: 500px;
}

.motuihe-section-nav__heading-sub li {
    font-size: 0.8rem;
    padding: 0.15rem 0;
}

.motuihe-section-nav__heading-sub a {
    color: var(--color-text-muted);
    text-decoration: none;
    opacity: 0.7;
}

.motuihe-section-nav__heading-sub a:hover,
.motuihe-section-nav__heading-sub a.is-active {
    color: var(--color-primary);
    opacity: 1;
}

/* Responsive — floating TOC button + slide-in panel on tablet/mobile */
@media (max-width: 992px) {
    /* Hide desktop sidebar */
    .motuihe-section-nav {
        display: none;
    }

    /* Grid becomes single column */
    .motuihe-content-with-outline {
        display: block;
        transform: none;
        margin: 0 auto;
    }
}

/* Floating TOC button — only visible on tablet/mobile */
.motuihe-toc-fab {
    display: none;
}

@media (max-width: 992px) {
    .motuihe-toc-fab {
        display: flex;
        align-items: center;
        gap: 0.4rem;
        position: fixed;
        bottom: 30px;
        left: 30px;
        z-index: 999;
        background: var(--color-hero);
        color: var(--color-surface);
        border: none;
        border-radius: 28px;
        padding: 0.6rem 1rem;
        font-size: 0.8rem;
        font-weight: 600;
        font-family: inherit;
        cursor: pointer;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
        transition: background 0.2s ease, transform 0.2s ease;
        max-width: 200px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .motuihe-toc-fab:hover,
    .motuihe-toc-fab:active {
        background: var(--color-primary);
        transform: scale(1.05);
    }

    .motuihe-toc-fab__icon {
        font-size: 1rem;
        flex-shrink: 0;
    }

    .motuihe-toc-fab__label {
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

/* Popover panel — anchored above the FAB button */
.motuihe-toc-panel {
    display: none;
}

.motuihe-toc-backdrop {
    display: none;
}

@media (max-width: 992px) {
    .motuihe-toc-panel {
        display: block;
        position: fixed;
        bottom: 5rem;
        left: 30px;
        z-index: 1001;
        background: var(--color-surface);
        border-radius: 12px;
        box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2), 0 2px 8px rgba(0, 0, 0, 0.1);
        max-height: 60vh;
        max-width: 260px;
        width: max-content;
        min-width: 200px;
        overflow-y: auto;
        padding: 1rem 1.25rem;
        opacity: 0;
        visibility: hidden;
        transform: translateY(10px) scale(0.95);
        transform-origin: bottom left;
        transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
    }

    .motuihe-toc-panel.is-open {
        opacity: 1;
        visibility: visible;
        transform: translateY(0) scale(1);
    }

    .motuihe-toc-panel .motuihe-section-nav {
        display: block;
        position: static;
        border-left: none;
        padding: 0;
        width: auto;
        text-align: left;
    }

    .motuihe-toc-panel .motuihe-section-nav__label {
        font-size: 0.85rem;
        margin-bottom: 0.75rem;
    }

    .motuihe-toc-panel .motuihe-section-nav__item {
        padding: 0.3rem 0;
    }

    .motuihe-toc-panel .motuihe-section-nav__item > a {
        font-size: 1rem;
    }

    .motuihe-toc-panel .motuihe-section-nav__item--child {
        font-size: 0.9rem;
    }

    .motuihe-toc-panel .motuihe-section-nav__heading {
        font-size: 0.85rem;
        padding: 0.2rem 0;
    }

    /* No close button needed — tap outside to dismiss */
    .motuihe-toc-panel__close {
        display: none;
    }

    /* Backdrop — transparent, just catches taps to close */
    .motuihe-toc-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 1000;
        background: transparent;
        opacity: 0;
        visibility: hidden;
    }

    .motuihe-toc-backdrop.is-open {
        opacity: 1;
        visibility: visible;
    }
}

/* ==========================================================================
   Page Outline — sticky sidebar (table of contents)
   ========================================================================== */

html {
    scroll-behavior: smooth;
    overflow-x: hidden;
}

#page {
    overflow-x: clip;
}

.motuihe-content-narrow p {
    margin-top: 0.5rem;
    margin-bottom: 1rem;
}

.motuihe-content-narrow > p:first-child {
    text-align: center;
}

.motuihe-content-narrow h2 {
    margin-top: 2rem;
    margin-bottom: 0.75rem;
    text-align: center;
}

.motuihe-content-narrow h3 {
    margin-top: 1.5rem;
    margin-bottom: 0.5rem;
}

.motuihe-content-narrow h2[id],
.motuihe-content-narrow h3[id] {
    scroll-margin-top: 5rem;
}

/* Two-column grid: sidebar | content — shifted left so content column is screen-centered
   Sidebar (240px) + gap (2rem/32px) = 272px. Offset left by half = 136px. */
.motuihe-content-with-outline {
    display: grid;
    grid-template-columns: 240px 1fr;
    column-gap: 2rem;
    max-width: 1140px;
    margin: 0 auto;
    transform: translateX(-136px);
    align-items: start;
}

/* Prevent horizontal overflow from the left shift */
.motuihe-section > .motuihe-content-with-outline {
    overflow: visible;
}

/* Medium screens: reduce the shift as space shrinks */
@media (max-width: 1400px) {
    .motuihe-content-with-outline {
        transform: translateX(-100px);
    }
}

@media (max-width: 1200px) {
    .motuihe-content-with-outline {
        transform: none;
        margin: 0 1rem;
    }
}

.motuihe-content-with-outline > .motuihe-content-narrow {
    grid-column: 2;
    max-width: 800px;
    order: 2;
}


.motuihe-content-with-outline > .motuihe-page-outline,
.motuihe-content-with-outline > .motuihe-section-nav {
    grid-column: 1;
    align-self: start;
    order: 1;
}

/* Sidebar outline */
.motuihe-page-outline {
    position: sticky;
    top: 5rem;
    padding: 0 1.25rem 0 0;
    border-right: 3px solid var(--color-primary-light);
    width: 160px;
    text-align: right;
    justify-self: end;
}

.motuihe-page-outline__label {
    display: block;
    font-weight: 700;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-hero);
    margin-bottom: 0.75rem;
}

.motuihe-page-outline ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.motuihe-page-outline li {
    font-size: 0.84rem;
    line-height: 1.4;
}

.motuihe-page-outline a {
    color: var(--color-text-muted);
    text-decoration: none;
    transition: color 0.2s ease;
}

.motuihe-page-outline a:hover {
    color: var(--color-primary);
}

/* Nested h3 sub-items — collapsed by default, expand on hover */
.motuihe-outline-sub {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, opacity 0.3s ease;
    opacity: 0;
    padding-left: 0.75rem;
    margin-top: 0;
}

.motuihe-outline-h2.has-children > a {
    display: inline;
}

.motuihe-outline-h2.has-children > a::after {
    content: "\203A";
    margin-left: 0.3rem;
    font-size: 0.9em;
    opacity: 0.5;
}

.motuihe-outline-h2.has-children:hover > a::after {
    opacity: 1;
}

/* Scroll-spy active state */
.motuihe-page-outline a.is-active {
    color: var(--color-primary);
    font-weight: 600;
}

/* Auto-expand h3 sub-list when its section is active */
.motuihe-outline-h2.is-active-section > .motuihe-outline-sub {
    max-height: 20rem;
    opacity: 1;
    margin-top: 0.35rem;
}

.motuihe-outline-h2:hover > .motuihe-outline-sub {
    max-height: 20rem;
    opacity: 1;
    margin-top: 0.35rem;
}

.motuihe-outline-sub li {
    font-size: 0.78rem;
    line-height: 1.35;
    padding-left: 0.5rem;
    border-left: 2px solid var(--color-surface-alt);
}

.motuihe-outline-sub a {
    color: var(--color-text-muted);
}

/* Tablet: collapse sidebar into inline bar above content */
@media (max-width: 992px) {
    .motuihe-content-with-outline {
        display: block;
    }

    .motuihe-page-outline {
        position: static;
        border-left: none;
        padding-left: 0;
        background: var(--color-surface-alt);
        border-radius: 8px;
        padding: 1rem 1.25rem;
        margin-bottom: 2rem;
    }

    .motuihe-page-outline__label {
        margin-bottom: 0.5rem;
    }

    .motuihe-page-outline ul {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 0.25rem 0;
    }

    .motuihe-page-outline li {
        display: inline;
        font-size: 0.9rem;
    }

    .motuihe-page-outline li:not(:last-child)::after {
        content: "\00b7";
        margin: 0 0.5rem;
        color: var(--color-text-muted);
    }

    .motuihe-page-outline a {
        color: var(--color-primary);
        font-weight: 500;
    }

    .motuihe-outline-sub {
        display: none;
    }

    .motuihe-outline-h2.has-children > a::after {
        display: none;
    }
}

/* Phone: vertical list */
@media (max-width: 480px) {
    .motuihe-page-outline {
        padding: 0.75rem 1rem;
    }

    .motuihe-page-outline ul {
        flex-direction: column;
        gap: 0.3rem;
    }

    .motuihe-page-outline li:not(:last-child)::after {
        display: none;
    }
}

/* ==========================================================================
   CTA Block
   ========================================================================== */

/* CTA Cover blocks — full viewport width */
.motuihe-cta-cover {
    min-height: 260px;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

.motuihe-cta-cover .wp-block-cover__inner-container {
    max-width: 800px;
    margin: 0 auto;
}

/* Equal height cards — any Group block inside a Columns block stretches to match siblings */
.wp-block-columns > .wp-block-column > .wp-block-group {
    height: 100%;
}

/* Only push buttons to the bottom of equal-height cards */
.wp-block-columns > .wp-block-column > .wp-block-group .wp-block-buttons:last-child,
.wp-block-columns > .wp-block-column > .wp-block-group .wp-block-button:last-child {
    margin-top: auto;
}

/* Biosecurity notice — content width by default (avoids grid shift overlap) */
.motuihe-bio-notice {
    border-radius: 6px !important;
    max-width: none !important;
}

/* Visit landing page — bio notice stays within content */

.motuihe-cta-block {
    padding: 3rem 0;
    margin-top: 3rem;
    text-align: center;
}

.motuihe-cta-block--green {
    background: var(--color-hero);
    color: var(--color-surface);
}

.motuihe-cta-block--navy {
    background: var(--color-primary-dark);
    color: var(--color-surface);
}

.motuihe-cta-block--navy h2 {
    color: var(--color-surface);
}

.motuihe-cta-block--blue {
    background: var(--color-primary-dark);
    color: var(--color-surface);
}

.motuihe-cta-block--sand {
    background: var(--color-surface-alt);
    color: var(--color-text);
}

.motuihe-cta-block--compact {
    padding: 1.5rem 0;
}

.motuihe-cta-block--compact .motuihe-container {
    max-width: 700px;
    border-radius: 8px;
    padding: 1.5rem 2rem;
    background: var(--color-surface-alt);
}

.motuihe-cta-block--compact.motuihe-cta-block--sand {
    background: none;
}

.motuihe-cta-block--compact h2 {
    font-size: 1.2rem;
}

.motuihe-cta-block--compact p {
    font-size: 0.95rem;
    margin-bottom: 1rem;
}

.motuihe-cta-block h2 {
    margin-bottom: 0.5rem;
}

.motuihe-cta-block--green h2,
.motuihe-cta-block--blue h2 {
    color: var(--color-surface);
}

.motuihe-cta-block--sand h2 {
    color: var(--color-text);
}

.motuihe-cta-block p {
    font-size: 1.1rem;
    margin-bottom: 1.5rem;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* ==========================================================================
   Homepage Hero — Cover Block (editor-controlled, CSS only for text-shadow)
   ========================================================================== */

.motuihe-homepage-wp .motuihe-hero-block h1 {
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

.motuihe-homepage-wp .motuihe-hero-block p {
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}



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

@media (max-width: 992px) {
    .motuihe-feature-grid {
        grid-template-columns: 1fr 1fr;
    }

    .motuihe-two-col {
        grid-template-columns: 1fr;
    }

    .motuihe-blog-grid {
        grid-template-columns: 1fr;
    }

    .motuihe-blog-featured {
        grid-row: span 1;
    }

    .motuihe-blog-small {
        grid-template-columns: 200px 1fr;
    }

    /* Reset narrowed sections on smaller screens */
    .motuihe-homepage-wp .wp-block-group.has-background:not(.motuihe-nav-cards-section):not(.motuihe-volunteer-cta) {
        max-width: 100% !important;
        padding-left: 5% !important;
        padding-right: 5% !important;
    }
    .motuihe-homepage-wp .motuihe-blog-section > .motuihe-container,
    .motuihe-homepage-wp .motuihe-blog-section {
        max-width: 100%;
    }

    /* Video embed: ensure it stays within column at medium widths */
    .motuihe-homepage-wp .wp-block-embed {
        max-width: 100% !important;
    }
}

@media (max-width: 768px) {
    .motuihe-hero {
        min-height: 55vh;
    }

    .motuihe-hero h1 {
        font-size: 2rem;
    }

    .motuihe-hero-buttons {
        flex-direction: column;
        align-items: flex-start;
    }

    .motuihe-cta-row {
        flex-direction: column;
        align-items: center;
    }

    .motuihe-feature-grid {
        grid-template-columns: 1fr;
    }

    .motuihe-contact-grid {
        grid-template-columns: 1fr;
    }

    .motuihe-card-grid {
        grid-template-columns: 1fr;
    }

    .motuihe-team-grid {
        grid-template-columns: 1fr 1fr;
    }

    .motuihe-blog-small {
        grid-template-columns: 1fr;
    }

    /* Hero height controlled by editor; CSS only adjusts padding */

    .motuihe-homepage-wp .wp-block-cover h1 {
        font-size: 2rem !important;
    }

    .motuihe-homepage-wp .wp-block-cover p {
        font-size: 1rem !important;
    }

    /* Reduce bottom padding so hero isn't too tall on tablet */
    .motuihe-homepage-wp .wp-block-cover {
        padding-bottom: 3rem !important;
    }

    /* Buttons stack vertically and shrink on tablet */
    .motuihe-homepage-wp .wp-block-cover .wp-block-buttons {
        flex-wrap: wrap !important;
        gap: 0.5rem !important;
    }

    /* Inner page hero — tablet */
    .motuihe-page-hero {
        padding: 3rem 0;
    }

    .motuihe-page-hero h1 {
        font-size: 1.8rem;
    }

    /* Inner hero Cover block — tablet */
    .motuihe-inner-hero {
        min-height: 200px;
        padding: 2.5rem 1.5rem !important;
    }

    .motuihe-inner-hero h1 {
        font-size: 1.8rem;
    }

    /* Homepage hero block — tablet */
    .motuihe-homepage-wp .motuihe-hero-block h1 {
        font-size: 2rem !important;
    }

    .motuihe-homepage-wp .motuihe-hero-block p {
        font-size: 1rem !important;
    }

    /* CTA block — tablet */
    .motuihe-cta-block {
        padding: 2.5rem 1rem;
    }
}

@media (max-width: 480px) {
    .motuihe-hero h1 {
        font-size: 1.6rem;
    }

    .motuihe-team-grid {
        grid-template-columns: 1fr;
    }

    /* Hero height controlled by editor; CSS only adjusts padding */

    .motuihe-homepage-wp .wp-block-cover h1 {
        font-size: 1.5rem !important;
    }

    .motuihe-homepage-wp .wp-block-cover p {
        font-size: 0.9rem !important;
    }

    /* Tighter padding on phone */
    .motuihe-homepage-wp .wp-block-cover {
        padding-bottom: 1.5rem !important;
        padding-top: 1.5rem !important;
    }

    /* Buttons stack vertically on phone */
    .motuihe-homepage-wp .wp-block-cover .wp-block-buttons {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 0.4rem !important;
    }

    .motuihe-homepage-wp .wp-block-cover .wp-block-button__link {
        font-size: 0.85rem !important;
        padding: 0.5rem 1.2rem !important;
    }

    /* Inner page hero — mobile */
    .motuihe-page-hero {
        padding: 2.5rem 1rem;
    }

    .motuihe-page-hero h1 {
        font-size: 1.5rem;
    }

    .motuihe-page-hero p {
        font-size: 1rem;
    }

    /* Inner hero Cover block — mobile */
    .motuihe-inner-hero {
        min-height: 160px;
        padding: 2rem 1rem !important;
    }

    .motuihe-inner-hero h1 {
        font-size: 1.5rem;
    }

    .motuihe-inner-hero p {
        font-size: 1rem;
    }

    /* Homepage hero block — mobile */
    .motuihe-homepage-wp .motuihe-hero-block h1 {
        font-size: 1.5rem !important;
    }

    .motuihe-homepage-wp .motuihe-hero-block p {
        font-size: 0.9rem !important;
    }

    /* CTA block — mobile */
    .motuihe-cta-block {
        padding: 2rem 1rem;
    }

    .motuihe-cta-block p {
        font-size: 1rem;
    }
}

/* ==========================================================================
   Astra overrides — force block layout so sections stack vertically
   ========================================================================== */

.ast-page-builder-template .site-content > .ast-container {
    display: block;
    max-width: 100%;
    padding: 0;
}

/* Full-width sections need to break out of any remaining container */
.ast-page-builder-template .motuihe-hero,
.ast-page-builder-template .motuihe-section {
    width: 100%;
    max-width: 100%;
}

/* ==========================================================================
   Homepage (Visual Editor) — block-based homepage styles
   ========================================================================== */

/* Feature card columns: white bg, rounded, shadow, hover lift */
.motuihe-homepage-wp .motuihe-feature-card-block {
    background: var(--color-surface);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    transition: box-shadow 0.3s ease, transform 0.3s ease;
    padding: 0;
}

.motuihe-homepage-wp .motuihe-feature-card-block:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    transform: translateY(-4px);
}

/* Feature card image (native wp:image block) */
.motuihe-homepage-wp .motuihe-feature-card-block .wp-block-image {
    margin: 0;
}

.motuihe-homepage-wp .motuihe-feature-card-block .wp-block-image img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    border-radius: 0;
}

/* Feature card image placeholder when no image exists */
.motuihe-homepage-wp .motuihe-feature-card-block .wp-block-image.motuihe-card-img {
    background: var(--color-surface-alt);
    min-height: 180px;
}

/* Feature card heading */
.motuihe-homepage-wp .motuihe-feature-card-block h3 {
    padding: 0.75rem 1.25rem 0;
}

/* Feature card list */
.motuihe-homepage-wp .motuihe-feature-card-block .wp-block-list {
    padding: 0 1.25rem 1.25rem 2.25rem;
    margin: 0;
    line-height: 1.8;
}

.motuihe-homepage-wp .motuihe-feature-card-block .wp-block-list li {
    color: var(--color-text-muted);
}


/* All buttons in homepage-wp: no underline */
.motuihe-homepage-wp .wp-block-button__link,
.motuihe-homepage-wp .wp-block-button__link:hover,
.motuihe-homepage-wp .wp-block-button__link:focus {
    text-decoration: none;
}

/* ==========================================================================
   Homepage v2 — Navigation Cards Section
   ========================================================================== */

/* Override WP constrained layout so all homepage sections go edge-to-edge */
.motuihe-homepage-wp .is-layout-constrained > * {
    max-width: 100% !important;
}

.motuihe-homepage-wp .motuihe-nav-cards-section {
    padding: 2.5rem 6rem;
    background: var(--color-surface-alt);
    max-width: 100%;
}

.motuihe-homepage-wp .motuihe-nav-cards {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 1.5rem !important;
    max-width: 80vw !important;
    margin: 0 auto;
}

.motuihe-homepage-wp .motuihe-nav-card {
    background: var(--color-surface);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    transition: box-shadow 0.3s ease, transform 0.3s ease;
    padding: 0;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.motuihe-homepage-wp .motuihe-nav-card:hover {
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.14);
    transform: translateY(-5px);
}

.motuihe-homepage-wp .motuihe-nav-card .motuihe-nav-card-img {
    margin: 0;
}

/* Card images — support both wp:image and wp:cover */
.motuihe-homepage-wp .motuihe-nav-card .motuihe-nav-card-img img {
    width: 100%;
    object-fit: cover;
    display: block;
}

/* wp:image fallback height (pages without Cover blocks) */
.motuihe-homepage-wp .motuihe-nav-card .motuihe-nav-card-img:not(.wp-block-cover) img {
    height: 180px;
}

/* wp:cover as card image — editor controls height, focal point */
.motuihe-homepage-wp .motuihe-nav-card .motuihe-nav-card-img.wp-block-cover {
    padding: 0 !important;
    border-radius: 0;
}

.motuihe-homepage-wp .motuihe-nav-card .motuihe-nav-card-img.wp-block-cover .wp-block-cover__inner-container {
    padding: 0;
    min-height: 0;
}

.motuihe-homepage-wp .motuihe-nav-card .motuihe-nav-card-img.wp-block-cover .wp-block-cover__inner-container p:empty {
    display: none;
}

.motuihe-homepage-wp .motuihe-nav-card h3 {
    padding: 1.5rem 1.5rem 0;
    margin: 0;
}

.motuihe-homepage-wp .motuihe-nav-card h3 a {
    color: var(--color-hero);
    text-decoration: none;
    transition: color 0.2s ease;
}

.motuihe-homepage-wp .motuihe-nav-card h3 a:hover {
    color: var(--color-primary);
}

/* Make entire card clickable feel */
.motuihe-homepage-wp .motuihe-nav-card {
    cursor: pointer;
}

.motuihe-homepage-wp .motuihe-nav-card > p,
.motuihe-homepage-wp .motuihe-nav-card > .wp-block-paragraph {
    padding: 0.75rem 1.5rem 1.5rem;
    margin: 0;
    line-height: 1.6;
    align-self: start;
}

.motuihe-homepage-wp .motuihe-nav-card .wp-block-buttons {
    padding: 0.75rem 1.5rem 1.5rem;
    margin: 0;
}

.motuihe-homepage-wp .motuihe-nav-card .wp-block-button__link {
    padding: 0.4rem 1rem;
}

/* Nav cards: 4 columns in one row on wide desktop */
@media (min-width: 1050px) {
    .motuihe-homepage-wp .motuihe-nav-cards {
        grid-template-columns: repeat(4, 1fr) !important;
    }

}

/* Nav cards: 2x2 on tablet, smaller images */
@media (max-width: 768px) {
    .motuihe-homepage-wp .motuihe-nav-cards-section {
        padding: 2rem 2rem;
    }

    .motuihe-homepage-wp .motuihe-nav-card .motuihe-nav-card-img img {
        height: 140px;
    }
}

/* Nav cards: single column on phone */
@media (max-width: 480px) {
    .motuihe-homepage-wp .motuihe-nav-cards {
        grid-template-columns: 1fr !important;
    }

    .motuihe-homepage-wp .motuihe-nav-card .motuihe-nav-card-img img {
        height: 160px;
    }

    /* Blog section — readable text on small phones */
    .motuihe-homepage-wp .motuihe-blog-section h2 {
        font-size: 1.6rem;
    }

    .motuihe-homepage-wp .motuihe-blog-section > p {
        font-size: 1rem;
    }

    .motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__post-title {
        font-size: 1.05rem;
    }

    .motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__post-date {
        font-size: 0.85rem;
    }

    .motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__post-excerpt {
        font-size: 0.9rem;
    }
}

/* ==========================================================================
   Homepage v2 — Volunteer CTA Banner
   ========================================================================== */

.motuihe-homepage-wp .motuihe-volunteer-cta {
    margin: 0 5% !important;
    border-radius: 12px;
    overflow: hidden;
    min-height: 280px !important;
}

.motuihe-homepage-wp .motuihe-volunteer-cta h2 {
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.motuihe-homepage-wp .motuihe-volunteer-cta p {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    font-size: 1.05rem;
    line-height: 1.6;
}

/* ==========================================================================
   Volunteer CTA Banner — on Get Involved page (full width)
   ========================================================================== */

/* On Get Involved page: reduce hero bottom padding so CTA banner sits close */
.page-id-52 .motuihe-page-hero {
    padding-bottom: 1.5rem !important;
}

.motuihe-volunteer-cta {
    margin: 0 0 2.5rem 0 !important;
    border-radius: 8px;
    min-height: 300px !important;
    max-width: 960px !important;
    width: 960px !important;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    overflow: hidden;
}

@media (max-width: 992px) {
    .motuihe-volunteer-cta {
        width: 100% !important;
        max-width: 100% !important;
        left: auto;
        transform: none;
    }
}

@media (max-width: 800px) {
    .motuihe-volunteer-cta {
        border-radius: 0;
        width: 100vw !important;
        max-width: none !important;
        left: 50%;
        transform: translateX(-50%);
    }
}

.motuihe-volunteer-cta h2 {
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.motuihe-volunteer-cta p {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    font-size: 1.05rem;
    line-height: 1.6;
}

/* ==========================================================================
   Homepage v2 — Blog / News Section (narrowed to ~70%)
   ========================================================================== */

.motuihe-homepage-wp .motuihe-blog-section {
    padding: 3rem 2rem;
    max-width: var(--container-max);
    margin-left: auto;
    margin-right: auto;
}

.motuihe-homepage-wp .motuihe-blog-section h2 {
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.motuihe-homepage-wp .motuihe-blog-section h2 a {
    color: var(--color-hero);
    text-decoration: none;
}

.motuihe-homepage-wp .motuihe-blog-section > p {
    font-size: 1.15rem;
    line-height: 1.7;
    max-width: 750px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 2rem;
    color: var(--color-text);
}

.motuihe-homepage-wp .motuihe-blog-section h2 a:hover {
    color: var(--color-primary);
}

/* Blog grid: 1 featured left + 2 stacked right */
.motuihe-homepage-wp .motuihe-blog-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    column-gap: 1rem;
    row-gap: 1.25rem; /* space between the two right cards */
    max-width: 100%;
    margin: 1.5rem auto !important;
    padding: 0 !important;
    list-style: none !important;
    align-items: stretch;
}

/* All cards: horizontal layout (image left, text right) via inner grid */
.motuihe-homepage-wp .motuihe-blog-grid li {
    background: var(--color-surface);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(120px, 180px) 1fr;
    grid-template-rows: auto auto 1fr;
    min-height: 0;
    align-self: stretch;
}

/* Featured card (first): spans both rows, vertical/stacked card layout */
.motuihe-homepage-wp .motuihe-blog-grid li:first-child {
    grid-row: 1 / 3;
    grid-column: 1;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto auto 1fr !important;
}

/* Right cards: one per row */
.motuihe-homepage-wp .motuihe-blog-grid li:nth-child(2) {
    grid-row: 1;
    grid-column: 2;
    margin-top: 5px;
    margin-bottom: 0px;
}
.motuihe-homepage-wp .motuihe-blog-grid li:nth-child(3) {
    grid-row: 2;
    grid-column: 2;
    margin-top: 0px;
    margin-bottom: 12px;
}

/* Image: spans all rows in the left column of each card */
.motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__featured-image {
    grid-column: 1;
    grid-row: 1 / -1;
    margin: 0 !important;
    overflow: hidden;
}

.motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__featured-image a {
    display: block;
    height: 100%;
}

.motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__featured-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 0;
}

/* Text items in right column */
.motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__post-title,
.motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__post-date,
.motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__post-excerpt {
    grid-column: 2;
}

/* Featured card: stacked layout — image on top, text below */
.motuihe-homepage-wp .motuihe-blog-grid li:first-child .wp-block-latest-posts__featured-image {
    grid-column: 1;
    grid-row: 1;
    order: -1;
}

.motuihe-homepage-wp .motuihe-blog-grid li:first-child .wp-block-latest-posts__featured-image a {
    height: auto;
}

.motuihe-homepage-wp .motuihe-blog-grid li:first-child .wp-block-latest-posts__featured-image img {
    height: 280px;
    width: 100%;
    object-fit: cover;
}

.motuihe-homepage-wp .motuihe-blog-grid li:first-child .wp-block-latest-posts__post-title {
    grid-column: 1;
    grid-row: 2;
}

.motuihe-homepage-wp .motuihe-blog-grid li:first-child .wp-block-latest-posts__post-date {
    grid-column: 1;
    grid-row: 3;
}

.motuihe-homepage-wp .motuihe-blog-grid li:first-child .wp-block-latest-posts__post-excerpt {
    grid-column: 1;
    grid-row: 4;
}

/* Title */
.motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__post-title {
    padding: 0.75rem 1rem 0;
    margin: 0;
    font-size: 1.15rem;
    font-weight: 600;
    display: block;
    color: var(--color-hero);
    line-height: 1.35;
}

.motuihe-homepage-wp .motuihe-blog-grid li:first-child .wp-block-latest-posts__post-title {
    padding: 0.75rem 1.15rem 0;
    font-size: 1.4rem;
}

/* Date */
.motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__post-date {
    padding: 0.2rem 1rem 0.15rem;
    margin: 0;
    font-size: 0.85rem;
    color: var(--color-text-muted);
}

.motuihe-homepage-wp .motuihe-blog-grid li:first-child .wp-block-latest-posts__post-date {
    padding: 0.15rem 1.15rem 0;
}

/* Excerpt — clamp keeps cards compact; featured card overrides below */
.motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__post-excerpt {
    padding: 0.25rem 0.75rem 0.5rem;
    margin-top: 0px;
    margin-left: 0.3rem;
    margin-bottom: 0.05rem;
    font-size: 1rem;
    color: var(--color-text-muted);
    line-height: 1.55;
    display: -webkit-box !important;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 0;
    overflow-wrap: break-word;
    word-break: break-word;
}

.motuihe-homepage-wp .motuihe-blog-grid li:first-child .wp-block-latest-posts__post-excerpt {
    padding: 0.25rem 1.15rem 0.75rem;
    font-size: 1rem;
    line-height: 1.55;
    -webkit-line-clamp: 6;
}

/* Desktop only: featured card — stacked layout with larger excerpt text */
@media (min-width: 769px) {
    .motuihe-homepage-wp .motuihe-blog-grid li:first-child {
        align-content: start;
        grid-template-rows: auto auto auto 1fr;
    }

    .motuihe-homepage-wp .motuihe-blog-grid li:first-child .wp-block-latest-posts__post-excerpt {
        font-size: 1.05rem;
        line-height: 1.6;
        -webkit-line-clamp: 8;
    }
}

.motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__post-excerpt .wp-block-latest-posts__post-excerpt-more {
    display: inline-block;
    margin-top: 0.3rem;
    color: var(--color-primary);
    font-weight: 500;
    text-decoration: none;
}

/* Intermediate breakpoint: right-side cards switch to stacked layout */
@media (max-width: 992px) and (min-width: 769px) {
    .motuihe-homepage-wp .motuihe-blog-grid li:nth-child(2),
    .motuihe-homepage-wp .motuihe-blog-grid li:nth-child(3) {
        grid-template-columns: 1fr !important;
        grid-template-rows: auto auto auto 1fr !important;
    }

    /* Image sits on top for right-side cards at intermediate widths */
    .motuihe-homepage-wp .motuihe-blog-grid li:nth-child(2) .wp-block-latest-posts__featured-image,
    .motuihe-homepage-wp .motuihe-blog-grid li:nth-child(3) .wp-block-latest-posts__featured-image {
        grid-column: 1;
        grid-row: 1;
    }

    .motuihe-homepage-wp .motuihe-blog-grid li:nth-child(2) .wp-block-latest-posts__featured-image a,
    .motuihe-homepage-wp .motuihe-blog-grid li:nth-child(3) .wp-block-latest-posts__featured-image a {
        height: auto;
    }

    .motuihe-homepage-wp .motuihe-blog-grid li:nth-child(2) .wp-block-latest-posts__featured-image img,
    .motuihe-homepage-wp .motuihe-blog-grid li:nth-child(3) .wp-block-latest-posts__featured-image img {
        height: 160px;
        width: 100%;
        object-fit: cover;
    }

    /* Text stacks below image for right-side cards */
    .motuihe-homepage-wp .motuihe-blog-grid li:nth-child(2) .wp-block-latest-posts__post-title,
    .motuihe-homepage-wp .motuihe-blog-grid li:nth-child(2) .wp-block-latest-posts__post-date,
    .motuihe-homepage-wp .motuihe-blog-grid li:nth-child(2) .wp-block-latest-posts__post-excerpt,
    .motuihe-homepage-wp .motuihe-blog-grid li:nth-child(3) .wp-block-latest-posts__post-title,
    .motuihe-homepage-wp .motuihe-blog-grid li:nth-child(3) .wp-block-latest-posts__post-date,
    .motuihe-homepage-wp .motuihe-blog-grid li:nth-child(3) .wp-block-latest-posts__post-excerpt {
        grid-column: 1;
    }
}

/* "View all Newsletters" link / button below the blog grid */
.motuihe-homepage-wp .motuihe-blog-section > .wp-block-buttons .wp-block-button__link,
.motuihe-homepage-wp .motuihe-blog-section > p:last-of-type a,
.motuihe-homepage-wp .motuihe-blog-section > a {
    font-size: 1rem;
    font-weight: 600;
}

/* Blog grid: responsive — stack on mobile */
@media (max-width: 768px) {
    .motuihe-homepage-wp .motuihe-blog-section {
        padding: 2.5rem 2rem;
    }

    .motuihe-homepage-wp .motuihe-blog-grid {
        grid-template-columns: 1fr !important;
        grid-template-rows: auto !important;
        gap: 1rem;
    }

    .motuihe-homepage-wp .motuihe-blog-grid li {
        grid-template-columns: 1fr !important;
        grid-template-rows: auto auto auto auto !important; /* image, title, date, excerpt */
    }

    /* Reset image row span on mobile so it doesn't stretch all rows */
    .motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__featured-image {
        grid-row: auto !important;
        grid-column: 1 !important;
    }

    .motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__post-excerpt,
    .motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__post-date,
    .motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__post-title {
        grid-column: 1 !important;
        min-height: 0;
        margin: 0 !important;
        align-self: start;
    }

    .motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__post-title {
        padding: 0.35rem 0.75rem 0.1rem !important;
        font-size: 1.1rem;
        line-height: 1.3;
        margin-bottom: 0 !important;
    }

    .motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__post-date {
        padding: 0.1rem 0.75rem 0.1rem !important;
        font-size: 0.85rem;
        margin-bottom: 0 !important;
    }

    .motuihe-homepage-wp .motuihe-blog-grid li:first-child {
        grid-row: auto;
        grid-column: auto;
    }

    .motuihe-homepage-wp .motuihe-blog-grid li:nth-child(2),
    .motuihe-homepage-wp .motuihe-blog-grid li:nth-child(3) {
        grid-row: auto;
        grid-column: auto;
    }

    .motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__featured-image img {
        height: 200px;
        min-height: auto;
    }

    /* Excerpt on mobile — readable size, natural height */
    .motuihe-homepage-wp .motuihe-blog-grid li .wp-block-latest-posts__post-excerpt {
        font-size: 0.95rem;
        line-height: 1.5;
    }
}

/* ==========================================================================
   Newsletter Archive Page (custom template)
   ========================================================================== */

/* Newsletter "View all" top bar */
.motuihe-newsletter-topbar {
    background: var(--color-surface-alt);
    padding: 0.75rem 0;
    text-align: center;
}

.motuihe-newsletter-topbar .motuihe-btn {
    display: inline-block;
    padding: 0.5rem 1.5rem;
    font-size: 0.9rem;
}

/* Newsletter quick-jump dropdown bar */
.newsletter-jump-bar {
    background: var(--color-surface-alt);
    border-bottom: 1px solid var(--color-surface-alt);
    padding: 0.75rem 0;
}

.newsletter-jump-bar .ast-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    position: relative;
}

.newsletter-jump-bar label {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--color-hero);
    white-space: nowrap;
}

.newsletter-jump-bar select {
    padding: 0.4rem 2rem 0.4rem 0.75rem;
    border: 1px solid var(--color-surface-alt);
    border-radius: 6px;
    font-size: 0.88rem;
    color: var(--color-text);
    background: var(--color-surface);
    cursor: pointer;
    max-width: 400px;
    width: 100%;
    appearance: auto;
}

.newsletter-jump-bar select:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 2px rgba(74, 124, 40, 0.15);
}

@media (max-width: 600px) {
    .newsletter-jump-bar .ast-container {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.4rem;
    }
    .newsletter-jump-bar select {
        max-width: 100%;
    }
}

/* Force newsletter container to stack vertically */
.ast-blog-layout-3-grid.ast-grid-3 ~ .ast-pagination,
.ast-blog-layout-3-grid.ast-grid-3 {
    flex-basis: 100%;
}

/* The parent ast-container needs to wrap */
#primary .ast-container {
    flex-wrap: wrap;
}

/* 3-column grid for newsletter archive */
.ast-blog-layout-3-grid.ast-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    padding: 1.5rem 0;
}

.ast-blog-layout-3-grid.ast-grid-3 article {
    background: var(--color-surface);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
}

.ast-blog-layout-3-grid.ast-grid-3 .post-thumb-img-content {
    overflow: hidden;
}

.ast-blog-layout-3-grid.ast-grid-3 .post-thumb-img-content img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
}

.ast-blog-layout-3-grid.ast-grid-3 .post-content {
    padding: 0.75rem 1.25rem 1.25rem;
}

.ast-blog-layout-3-grid.ast-grid-3 .entry-header {
    margin: 0 0 0.25rem;
}

.ast-blog-layout-3-grid.ast-grid-3 .cat-links a {
    color: var(--color-primary);
    font-size: 0.82rem;
    font-weight: 600;
    text-decoration: none;
}

.ast-blog-layout-3-grid.ast-grid-3 .entry-title {
    font-size: 1.15rem;
    font-weight: 600;
    margin: 0.3rem 0;
    line-height: 1.4;
}

.ast-blog-layout-3-grid.ast-grid-3 .entry-title a {
    color: var(--color-text);
    text-decoration: none;
}

.ast-blog-layout-3-grid.ast-grid-3 .entry-title a:hover {
    color: var(--color-primary);
}

.ast-blog-layout-3-grid.ast-grid-3 .entry-meta {
    font-size: 0.82rem;
    color: var(--color-text-muted);
    margin-bottom: 0.5rem;
}

.ast-blog-layout-3-grid.ast-grid-3 .entry-meta a {
    color: var(--color-primary);
    text-decoration: none;
}

.ast-blog-layout-3-grid.ast-grid-3 .entry-content {
    font-size: 0.9rem;
    color: var(--color-text-muted);
    line-height: 1.6;
}

/* Pagination */
.ast-pagination {
    text-align: center;
    padding: 2rem 0;
}

.ast-pagination .page-numbers {
    display: inline-block;
    padding: 0.5rem 0.9rem;
    margin: 0 0.2rem;
    border-radius: 6px;
    text-decoration: none;
    color: var(--color-text);
    font-size: 0.9rem;
}

.ast-pagination .page-numbers.current {
    background: var(--color-primary);
    color: var(--color-surface);
}

.ast-pagination .page-numbers:hover:not(.current) {
    background: var(--color-surface-alt);
}

/* Editor content area above posts */
.newsletter-page-content {
    padding: 2rem 0 0;
}

/* Responsive: 2 columns on tablet, 1 on mobile */
@media (max-width: 1024px) {
    .ast-blog-layout-3-grid.ast-grid-3 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .ast-blog-layout-3-grid.ast-grid-3 {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .ast-blog-layout-3-grid.ast-grid-3 article .blog-layout-3 {
        display: grid;
        grid-template-columns: 120px 1fr;
        gap: 0;
    }

    .ast-blog-layout-3-grid.ast-grid-3 .post-thumb-img-content {
        height: 100%;
    }

    .ast-blog-layout-3-grid.ast-grid-3 .post-thumb-img-content img {
        height: 100%;
        width: 120px;
        object-fit: cover;
        border-radius: 10px 0 0 10px;
    }

    .ast-blog-layout-3-grid.ast-grid-3 .post-content {
        padding: 0.6rem 0.75rem;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    .ast-blog-layout-3-grid.ast-grid-3 .entry-title {
        font-size: 0.95rem;
        margin: 0.15rem 0;
    }

    .ast-blog-layout-3-grid.ast-grid-3 .entry-meta {
        font-size: 0.75rem;
        margin-bottom: 0.25rem;
    }

    .ast-blog-layout-3-grid.ast-grid-3 .entry-content {
        font-size: 0.8rem;
        line-height: 1.4;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .ast-blog-layout-3-grid.ast-grid-3 .cat-links a {
        font-size: 0.72rem;
    }
}

/* ==========================================================================
   Homepage v2 — Experience / Explore & Sponsors Sections
   ========================================================================== */

/* Add horizontal padding to all full-width group blocks on the homepage */
.motuihe-homepage-wp .wp-block-group.has-background {
    padding-left: 5% !important;
    padding-right: 5% !important;
}

/* Experience / Explore sections: full-width background, content aligned with newsletter */
.motuihe-homepage-wp .wp-block-group.has-background:not(.motuihe-nav-cards-section):not(.motuihe-volunteer-cta) {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.motuihe-homepage-wp .wp-block-group.has-background:not(.motuihe-nav-cards-section):not(.motuihe-volunteer-cta) > .wp-block-columns {
    max-width: var(--container-max) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 2rem;
}

/* Our Sponsors section: white background to separate from Experience section */
.motuihe-homepage-wp .wp-block-group.has-background:has(.motuihe-sponsor-marquee) {
    background-color: var(--color-surface) !important;
}

/* Columns layout: let them fill the narrowed parent */
.motuihe-homepage-wp .wp-block-group.has-background .wp-block-columns {
    max-width: 100% !important;
    margin: 0 auto !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 1.5rem !important;
    align-items: stretch !important;
}

/* Video column wider (60%), text column narrower (40%) */
.motuihe-homepage-wp .wp-block-group.has-background .wp-block-column:first-child {
    flex: 3 1 0% !important;
    min-width: 0 !important;
}

.motuihe-homepage-wp .wp-block-group.has-background .wp-block-column:last-child {
    flex: 2 1 0% !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-self: stretch !important;
}

/* Push the button to the bottom of the text column */
.motuihe-homepage-wp .wp-block-group.has-background .wp-block-column:last-child .wp-block-buttons {
    margin-top: auto !important;
}

/* Responsive video embed: 16:9 aspect ratio using padding technique.
   Targets both wp-has-aspect-ratio and wp-block-embed-youtube. */
.motuihe-homepage-wp .wp-block-embed {
    max-width: 100% !important;
    width: 100% !important;
}

.motuihe-homepage-wp .wp-block-embed .wp-block-embed__wrapper {
    position: relative !important;
    padding-top: 56.25% !important;
    height: 0 !important;
    overflow: hidden !important;
    width: 100% !important;
}

.motuihe-homepage-wp .wp-block-embed .wp-block-embed__wrapper iframe {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
}

/* Stack video on top, text below on small screens */
@media (max-width: 768px) {
    .motuihe-homepage-wp .wp-block-group.has-background .wp-block-columns {
        display: block !important;
    }

    .motuihe-homepage-wp .wp-block-group.has-background .wp-block-column {
        width: 100% !important;
        max-width: 100% !important;
        margin-bottom: 1.5rem !important;
    }
}
