/* ==========================================================================
   Masahat — Custom Theme Styles
   ========================================================================== */

@font-face {
    font-family: 'VIP Hakim';
    src: url('../fonts/vip_hakm_regular_2016_webfont.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* Ensure [hidden] always wins over explicit display rules (e.g. display:grid) */
[hidden] { display: none !important; }

/* ---------- Brand color tokens ----------
   Defined here because Kadence's hybrid architecture does not output child
   theme.json palette as --wp--preset--color--* CSS variables.
   Source: Canva Brand Kit (extracted 2026-03-27).
   ------------------------------------------------------------------ */
:root {
    --wp--preset--color--black:      #000000;
    --wp--preset--color--off-white:  #FAFAF7;
    --wp--preset--color--warm-gray:  #666666; /* secondary text on light backgrounds — WCAG AA 4.5:1 on white (5.74:1) */
    --wp--preset--color--light-gray: #e6e6e6;
    --wp--preset--color--sand:       #D4CFC7;
    --wp--preset--color--bronze:     #c73a2d;  /* Brand Red */
    --wp--preset--color--deep-green: #129279;  /* Brand Teal (Mas 2024) */
    --wp--preset--color--mid-gray:   #999999;  /* dark-background text only (footer, overlays) — WCAG AA on black (5.39:1); do NOT use on light backgrounds */
    --wp--preset--color--white:      #FFFFFF;
}

/* ---------- Color utility classes ----------
   WordPress only auto-generates has-*-color rules for its default palette.
   Our custom tokens need their own rules.
   ------------------------------------------------------------------ */
.has-black-color            { color: var(--wp--preset--color--black)      !important; }
.has-off-white-color        { color: var(--wp--preset--color--off-white)   !important; }
.has-warm-gray-color        { color: var(--wp--preset--color--warm-gray)   !important; }
.has-light-gray-color       { color: var(--wp--preset--color--light-gray)  !important; }
.has-sand-color             { color: var(--wp--preset--color--sand)        !important; }
.has-bronze-color           { color: var(--wp--preset--color--bronze)      !important; }
.has-deep-green-color       { color: var(--wp--preset--color--deep-green)  !important; }
.has-white-color            { color: var(--wp--preset--color--white)       !important; }

.has-black-background-color      { background-color: var(--wp--preset--color--black)      !important; }
.has-off-white-background-color  { background-color: var(--wp--preset--color--off-white)  !important; }
.has-warm-gray-background-color  { background-color: var(--wp--preset--color--warm-gray)  !important; }
.has-light-gray-background-color { background-color: var(--wp--preset--color--light-gray) !important; }
.has-sand-background-color       { background-color: var(--wp--preset--color--sand)       !important; }
.has-bronze-background-color     { background-color: var(--wp--preset--color--bronze)     !important; }
.has-deep-green-background-color { background-color: var(--wp--preset--color--deep-green) !important; }
.has-white-background-color      { background-color: var(--wp--preset--color--white)      !important; }

.has-black-border-color      { border-color: var(--wp--preset--color--black)      !important; }
.has-off-white-border-color  { border-color: var(--wp--preset--color--off-white)  !important; }
.has-sand-border-color       { border-color: var(--wp--preset--color--sand)       !important; }
.has-light-gray-border-color { border-color: var(--wp--preset--color--light-gray) !important; }

/* Font family utility classes */
.has-latin-heading-font-family { font-family: var(--wp--preset--font-family--latin-heading) !important; }
.has-latin-body-font-family    { font-family: var(--wp--preset--font-family--latin-body)    !important; }
.has-arabic-font-family        { font-family: var(--wp--preset--font-family--arabic)        !important; }

/* ---------- Base ---------- */
* { box-sizing: border-box; }

body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img { display: block; }

/* ---------- Typography refinements ---------- */
h1, h2, h3, h4 {
    letter-spacing: -0.02em;
}

.has-display-font-size {
    letter-spacing: -0.04em;
    line-height: 1.05;
}

.has-xxl-font-size {
    letter-spacing: -0.03em;
    line-height: 1.08;
}


/* Generic image hover for query loop items */
.wp-block-post-template .wp-block-group {
    overflow: hidden;
}

.wp-block-post-featured-image {
    overflow: hidden;
}

.wp-block-post-featured-image img {
    transition: transform 0.6s cubic-bezier(0.23, 1, 0.32, 1),
                filter 0.4s ease;
}

.wp-block-post-template .wp-block-group:hover .wp-block-post-featured-image img {
    transform: scale(1.05);
}

/* Post title hover underline */
.wp-block-post-title a {
    text-decoration: none;
    background-image: linear-gradient(var(--wp--preset--color--bronze), var(--wp--preset--color--bronze));
    background-size: 0% 1.5px;
    background-position: left bottom;
    background-repeat: no-repeat;
    transition: background-size 0.4s cubic-bezier(0.23, 1, 0.32, 1),
                color 0.3s ease;
    padding-bottom: 2px;
}

.wp-block-post-template .wp-block-group:hover .wp-block-post-title a,
.wp-block-post-title a:hover {
    background-size: 100% 1.5px;
    color: var(--wp--preset--color--bronze);
}


/* ---------- Section dividers ---------- */
.masahat-section-label {
    font-size: var(--wp--preset--font-size--sm);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 500;
    color: var(--wp--preset--color--black);
    border-bottom: 1px solid var(--wp--preset--color--sand);
    padding-bottom: 0.5rem;
    margin-bottom: 1.5rem;
}

.masahat-section-label__link {
    color: inherit;
    text-decoration: none;
    transition: color 0.15s;
}

.masahat-section-label__link:hover {
    color: var(--wp--preset--color--bronze);
}


/* Taxonomy terms in archive grids */
.wp-block-post-terms {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.wp-block-post-terms a {
    text-decoration: none;
    color: var(--wp--preset--color--warm-gray);
    transition: color 0.25s ease;
}

.wp-block-post-terms a:hover {
    color: var(--wp--preset--color--bronze);
}

/* ---------- Buttons ---------- */
.masahat-btn {
    display: inline-block;
    padding: 0.9rem 2.4rem;
    font-size: 0.85rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-decoration: none;
    border: 1.5px solid var(--wp--preset--color--black);
    color: var(--wp--preset--color--black);
    background: transparent;
    transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
    cursor: pointer;
}

.masahat-btn:hover {
    background: var(--wp--preset--color--black);
    color: var(--wp--preset--color--off-white);
}


/* ---------- Footer — override colors for WCAG AA on black background ---------- */
/* Kadence default blue links fail contrast on black; warm-gray (#666) also fails */
.has-black-background-color a,
.has-black-background-color a:visited {
    color: var(--wp--preset--color--off-white);
    text-decoration: none;
}

.has-black-background-color a:hover {
    color: #aaaaaa;
}

/* warm-gray (#666) = 3.66:1 on black — override to #999 = 5.39:1 */
.has-black-background-color .has-warm-gray-color {
    color: #999999 !important;
}

/* ---------- Navigation ---------- */
.wp-block-navigation a {
    position: relative;
    text-decoration: none;
}

.wp-block-navigation a::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 1.5px;
    background: currentColor;
    transition: width 0.3s cubic-bezier(0.23, 1, 0.32, 1);
}

.wp-block-navigation a:hover::after {
    width: 100%;
}

/* ---------- Hero slow-zoom on load (Ken Burns) ---------- */
@keyframes masahat-hero-zoom {
    from { transform: scale(1.06); }
    to   { transform: scale(1); }
}

/* ---------- Scroll reveal (applied via JS) ----------
   Hidden state is scoped to `.js` so sections stay visible if the reveal
   script never runs (JS disabled or failed to load). */
.js .masahat-reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s cubic-bezier(0.23, 1, 0.32, 1),
                transform 0.8s cubic-bezier(0.23, 1, 0.32, 1);
}

.js .masahat-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ---------- Reduced motion ----------
   Honour the OS "reduce motion" preference: neutralise transitions, the hero
   Ken Burns zoom, and slider crossfade, and never leave reveal content hidden. */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    .js .masahat-reveal {
        opacity: 1 !important;
        transform: none !important;
    }
}

/* ---------- Archive grid refinements ---------- */
.wp-block-post-template.is-layout-grid {
    gap: var(--wp--preset--spacing--30) !important;
}


/* ---------- Separator / HR refinement ---------- */
.wp-block-separator {
    border-color: var(--wp--preset--color--sand);
    opacity: 1;
}

/* ---------- Responsive ---------- */
@media (max-width: 768px) {
    .wp-block-post-template.is-layout-grid {
        grid-template-columns: 1fr !important;
    }

    .masahat-footer-columns {
        flex-direction: column;
        gap: var(--wp--preset--spacing--30);
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .wp-block-post-template.is-layout-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* ==========================================================================
   Single Event — full-width image at natural ratio, narrow reading column.
   Inspired by nobelpeacecenter.org.
   ========================================================================== */

/* Image: full content width, natural proportions — no cropping */
.masahat-event__image-wrap {
    max-width: 1100px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20) 0;
}

.masahat-event__image {
    width: 100%;
    height: auto;
    display: block;
}

/* Body: narrow reading column below the image */
.masahat-event__body {
    max-width: 780px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20) var(--wp--preset--spacing--50);
}

/* Tags */
.masahat-event__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
}

.masahat-event__tag {
    display: inline-block;
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 600;
    color: var(--wp--preset--color--off-white);
    background: var(--wp--preset--color--bronze);
    padding: 0.2rem 0.6rem;
    line-height: 1.6;
}

.masahat-event__tag--festival {
    color: var(--wp--preset--color--black);
    background: var(--wp--preset--color--light-gray);
}

/* Title block */
.masahat-event__header {
    margin-bottom: var(--wp--preset--spacing--30);
}

.masahat-event__title-ar {
    font-family: var(--wp--preset--font-family--arabic-heading);
    font-size: var(--wp--preset--font-size--lg);
    font-weight: 400;
    line-height: 1.3;
    color: var(--wp--preset--color--warm-gray);
    margin: 0 0 0.5rem;
}

.masahat-event__title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: var(--wp--preset--font-size--xl);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.12;
    margin: 0 0 var(--wp--preset--spacing--30);
    color: var(--wp--preset--color--black);
}

/* Metadata bar */
.masahat-event__meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1.5rem 2rem;
    padding: var(--wp--preset--spacing--20) 0;
    border-top: 1px solid var(--wp--preset--color--black);
    border-bottom: 1px solid var(--wp--preset--color--light-gray);
    margin-bottom: var(--wp--preset--spacing--40);
}

.masahat-event__meta-label {
    display: block;
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 500;
    color: var(--wp--preset--color--warm-gray);
    margin-bottom: 0.35rem;
}

.masahat-event__meta-value {
    display: block;
    font-size: 0.95rem;
    font-weight: 500;
    color: var(--wp--preset--color--black);
    line-height: 1.4;
}

.masahat-event__meta-address {
    display: block;
    font-size: 0.8rem;
    color: var(--wp--preset--color--warm-gray);
    margin-top: 0.2rem;
    line-height: 1.4;
}

/* Ticket button in the meta bar */
.masahat-event__meta-item--ticket {
    display: flex;
    align-items: flex-end;
}

.masahat-event__ticket-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.7rem 1.6rem;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
    background: var(--wp--preset--color--black);
    color: var(--wp--preset--color--off-white);
    transition: background 0.3s ease;
    white-space: nowrap;
}

.masahat-event__ticket-btn:hover {
    background: var(--wp--preset--color--bronze);
    color: var(--wp--preset--color--white);
}

/* Content area */
.masahat-event__content {
    margin-bottom: var(--wp--preset--spacing--40);
}


.masahat-event__editor-content {
    margin-top: var(--wp--preset--spacing--20);
}

/* Speakers section */
.masahat-event__speakers {
    padding-top: var(--wp--preset--spacing--30);
    border-top: 1px solid var(--wp--preset--color--light-gray);
    margin-bottom: var(--wp--preset--spacing--40);
}

.masahat-event__speaker-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: var(--wp--preset--spacing--20);
}

.masahat-event__speaker-card {
    text-decoration: none;
    color: inherit;
    display: block;
}

.masahat-event__speaker-img {
    overflow: hidden;
    aspect-ratio: 1;
    margin-bottom: 0.6rem;
    background: var(--wp--preset--color--light-gray);
}

.masahat-event__speaker-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(100%);
    transition: filter 0.5s ease, transform 0.6s cubic-bezier(0.23, 1, 0.32, 1);
}

.masahat-event__speaker-card:hover .masahat-event__speaker-photo {
    filter: grayscale(0%);
    transform: scale(1.05);
}

.masahat-event__speaker-name {
    display: block;
    font-size: 0.85rem;
    font-weight: 500;
    line-height: 1.3;
}

/* Back navigation */
.masahat-event__nav {
    padding-top: var(--wp--preset--spacing--30);
    border-top: 1px solid var(--wp--preset--color--light-gray);
}

.masahat-event__back {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    font-weight: 500;
    text-decoration: none;
    color: var(--wp--preset--color--warm-gray);
    transition: color 0.25s ease;
}

.masahat-event__back:hover {
    color: var(--wp--preset--color--black);
}

.masahat-event__back svg {
    transition: transform 0.25s ease;
}

.masahat-event__back:hover svg {
    transform: translateX(-4px);
}

/* Mobile adjustments */
@media (max-width: 600px) {
    .masahat-event__meta {
        grid-template-columns: 1fr 1fr;
    }

    .masahat-event__meta-item--ticket {
        grid-column: 1 / -1;
    }

    .masahat-event__ticket-btn {
        width: 100%;
        justify-content: center;
    }

    .masahat-event__title {
        font-size: var(--wp--preset--font-size--lg);
    }

    .masahat-event__title-ar {
        font-size: var(--wp--preset--font-size--md);
    }
}

/* ============================================================
   Festival Landing Page (page-festival.php)
   ============================================================ */

/* ── Hero ────────────────────────────────────────────────── */

.masahat-festival__hero {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 7;
    overflow: hidden;
    background: var(--wp--preset--color--black);
    display: flex;
    align-items: flex-end;
}

/* Blurred background fill — same image, scaled to cover blur edges */
.masahat-festival__hero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    filter: blur(24px) brightness(0.4);
    transform: scale(1.15);
}

/* Sharp foreground image, fully visible */
.masahat-festival__hero-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.masahat-festival__hero-content {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30) var(--wp--preset--spacing--20);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--wp--preset--spacing--20);
}

.masahat-festival__title-ar {
    font-family: var(--wp--preset--font-family--arabic-heading);
    font-size: clamp(1rem, 2vw, 1.4rem);
    font-weight: 400;
    color: var(--wp--preset--color--warm-gray);
    margin: 0;
    line-height: 1.4;
}

.masahat-festival__title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: clamp(2.2rem, 5.5vw, 4.5rem);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.05;
    margin: 0;
    color: var(--wp--preset--color--black);
}

.masahat-festival__brochure-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--wp--preset--color--black);
    border: 1px solid var(--wp--preset--color--black);
    padding: 0.55rem 1.1rem;
    text-decoration: none;
    transition: border-color 0.2s, color 0.2s, background 0.2s;
    margin-top: 0.5rem;
}

.masahat-festival__brochure-btn:hover {
    background: var(--wp--preset--color--black);
    color: var(--wp--preset--color--off-white);
}

/* ── Description ─────────────────────────────────────────── */

.masahat-festival__intro {
    max-width: 1100px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--wp--preset--spacing--40);
    border-bottom: 1px solid var(--wp--preset--color--light-gray);
}

/* Lang-tabs (multi or single language) spans both columns */
.masahat-festival__intro > .masahat-lang-tabs,
.masahat-festival__intro > .masahat-lang-tabs__single {
    grid-column: 1 / -1;
}


/* ── Programme ───────────────────────────────────────────── */

.masahat-festival__programme {
    max-width: 1100px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30) var(--wp--preset--spacing--60);
}

.masahat-festival__programme-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding-bottom: var(--wp--preset--spacing--20);
    margin-bottom: var(--wp--preset--spacing--30);
    border-bottom: 2px solid var(--wp--preset--color--black);
}

.masahat-festival__event-count {
    font-size: 0.78rem;
    color: var(--wp--preset--color--warm-gray);
    letter-spacing: 0.04em;
}

.masahat-festival__day {
    margin-bottom: var(--wp--preset--spacing--40);
}

.masahat-festival__date-heading {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--wp--preset--color--black);
    margin-bottom: var(--wp--preset--spacing--10);
    padding: 0.6rem 0;
    border-top: 1px solid var(--wp--preset--color--black);
}

/* ── Programme list (horizontal row per event) ───────────── */

.masahat-festival__event-list {
    display: flex;
    flex-direction: column;
}

.masahat-festival__event-card {
    display: grid;
    grid-template-columns: 160px 1fr auto;
    align-items: center;
    gap: 0;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--wp--preset--color--light-gray);
    transition: background 0.15s;
    min-height: 100px;
}

.masahat-festival__event-card:hover {
    background: var(--wp--preset--color--off-white);
}

.masahat-festival__event-card:hover .masahat-festival__event-arrow {
    transform: translateX(4px);
    color: var(--wp--preset--color--bronze);
}

.masahat-festival__event-img {
    width: 160px;
    height: 100px;
    overflow: hidden;
    flex-shrink: 0;
    position: relative;
}

.masahat-festival__event-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}

.masahat-festival__event-card:hover .masahat-festival__event-photo {
    transform: scale(1.06);
}

.masahat-festival__event-img-placeholder {
    width: 100%;
    height: 100%;
    background: var(--wp--preset--color--light-gray);
}

.masahat-festival__event-info {
    padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--20);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}

.masahat-festival__event-top {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-bottom: 0.15rem;
}

.masahat-festival__event-time {
    font-size: 0.75rem;
    color: var(--wp--preset--color--warm-gray);
    letter-spacing: 0.02em;
}

.masahat-festival__event-title-ar {
    font-family: var(--wp--preset--font-family--arabic);
    font-size: 0.85rem;
    color: var(--wp--preset--color--warm-gray);
    margin: 0;
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.masahat-festival__event-title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 1.05rem;
    font-weight: 500;
    letter-spacing: -0.01em;
    line-height: 1.25;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.masahat-festival__event-venue {
    font-size: 0.78rem;
    color: var(--wp--preset--color--warm-gray);
    margin-top: 0.1rem;
}

.masahat-festival__event-arrow {
    padding: 0 var(--wp--preset--spacing--20);
    color: var(--wp--preset--color--mid-gray);
    flex-shrink: 0;
    transition: transform 0.2s ease, color 0.2s ease;
}

.masahat-festival__no-events {
    color: var(--wp--preset--color--warm-gray);
    font-size: 0.9rem;
    padding: var(--wp--preset--spacing--30) 0;
}

/* ── Programme filters ───────────────────────────────────── */

.masahat-festival__filters {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding-bottom: var(--wp--preset--spacing--20);
    margin-bottom: var(--wp--preset--spacing--30);
    border-bottom: 1px solid var(--wp--preset--color--light-gray);
}

.masahat-festival__filter-select {
    appearance: none;
    background-color: transparent;
    border: 1px solid var(--wp--preset--color--light-gray);
    border-radius: 2px;
    padding: 0.35rem 2rem 0.35rem 0.75rem;
    font-family: var(--wp--preset--font-family--latin-body);
    font-size: 0.8rem;
    color: var(--wp--preset--color--black);
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23000'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.6rem center;
    transition: border-color 0.15s;
}

.masahat-festival__filter-select:hover,
.masahat-festival__filter-select:focus {
    border-color: var(--wp--preset--color--black);
    outline: none;
}

.masahat-festival__filter-reset {
    font-size: 0.78rem;
    color: var(--wp--preset--color--warm-gray);
    text-decoration: none;
    margin-left: auto;
    white-space: nowrap;
}

.masahat-festival__filter-reset:hover {
    color: var(--wp--preset--color--bronze);
}

/* ── Responsive ──────────────────────────────────────────── */

@media (max-width: 860px) {
    .masahat-festival__intro {
        grid-template-columns: 1fr;
        gap: var(--wp--preset--spacing--20);
    }
}

@media (max-width: 640px) {
    .masahat-festival__hero {
        aspect-ratio: 4 / 3;
    }

    .masahat-festival__event-card {
        grid-template-columns: 100px 1fr auto;
        min-height: 80px;
    }

    .masahat-festival__event-img {
        width: 100px;
        height: 80px;
    }

    .masahat-festival__event-title {
        font-size: 0.9rem;
        white-space: normal;
    }

    .masahat-festival__event-arrow {
        display: none;
    }
}

/* ============================================================
   Language tab panels: Arabic WYSIWYG content
   ============================================================ */

.masahat-lang-tabs__panel--ar h3,
.masahat-lang-tabs__panel--ar h4 {
    font-family: var(--wp--preset--font-family--arabic-heading);
    font-size: 1rem;
    font-weight: 600;
    color: var(--wp--preset--color--bronze);
    text-transform: none;
    letter-spacing: 0;
    margin: 0 0 0.5rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--wp--preset--color--light-gray);
}

.masahat-lang-tabs__panel--ar p,
.masahat-lang-tabs__panel--ar li {
    font-family: var(--wp--preset--font-family--arabic);
    font-size: 0.95rem;
    line-height: 1.7;
}

/* ============================================================
   Single Project (single-project.php)
   ============================================================ */

.masahat-project__hero {
    width: 100%;
    aspect-ratio: 21 / 9;
    overflow: hidden;
    background: var(--wp--preset--color--light-gray);
}

.masahat-project__hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    animation: masahat-hero-zoom 7s cubic-bezier(0.23, 1, 0.32, 1) forwards;
}

.masahat-project__body {
    max-width: 780px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20) var(--wp--preset--spacing--60);
}

.masahat-project__status {
    display: inline-block;
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 600;
    color: var(--wp--preset--color--bronze);
    margin-bottom: 0.6rem;
}

.masahat-project__title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: var(--wp--preset--font-size--xl);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.12;
    margin: 0 0 var(--wp--preset--spacing--30);
    color: var(--wp--preset--color--black);
}

.masahat-project__nav {
    padding-top: var(--wp--preset--spacing--30);
    border-top: 1px solid var(--wp--preset--color--light-gray);
}

.masahat-project__editions {
    margin-top: var(--wp--preset--spacing--50);
    padding-top: var(--wp--preset--spacing--40);
    border-top: 1px solid var(--wp--preset--color--light-gray);
}

.masahat-project__editions-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--wp--preset--spacing--30);
    margin-top: var(--wp--preset--spacing--30);
}
.masahat-project__editions-grid[data-columns="2"] { grid-template-columns: repeat(2, 1fr); }
.masahat-project__editions-grid[data-columns="4"] { grid-template-columns: repeat(4, 1fr); }

/* ─── Card image shared styles ──────────────────────────────────────────────
   Base image fit + hover zoom shared across all standard card types.
   Speaker card is intentionally excluded — it has its own grayscale transition.
   Add new card image selectors here when introducing new card types.
   ─────────────────────────────────────────────────────────────────────────── */
.masahat-edition-card__image,
.masahat-event-card__image,
.masahat-news-card__image,
.masahat-pub-card__image,
.masahat-project-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.masahat-event-card__image-wrap:hover .masahat-event-card__image,
.masahat-news-card__image-wrap:hover .masahat-news-card__image,
.masahat-pub-card__image-wrap:hover .masahat-pub-card__image,
.masahat-project-card__image-wrap:hover .masahat-project-card__image {
    transform: scale(1.03);
}

.masahat-edition-card {
    display: block;
    text-decoration: none;
    color: inherit;
}

.masahat-edition-card__image-wrap {
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--wp--preset--color--light-gray);
    margin-bottom: 0.75rem;
}

.masahat-edition-card__image-placeholder {
    width: 100%;
    height: 100%;
    background: var(--wp--preset--color--sand);
}

.masahat-edition-card:hover .masahat-edition-card__image {
    transform: scale(1.04);
}

.masahat-edition-card__title {
    font-size: var(--wp--preset--font-size--sm);
    font-weight: 500;
    line-height: 1.3;
    margin: 0;
    color: var(--wp--preset--color--black);
    transition: color 0.2s;
}

.masahat-edition-card:hover .masahat-edition-card__title {
    color: var(--wp--preset--color--bronze);
}

@media (max-width: 600px) {
    .masahat-project__hero { aspect-ratio: 16 / 9; }
    .masahat-project__editions-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ============================================================
   Participants Slider (single-project.php)
   ============================================================ */

.masahat-participants {
    margin-top: var(--wp--preset--spacing--50);
    border-top: 1px solid var(--wp--preset--color--light-gray);
    padding-top: var(--wp--preset--spacing--40);
}

.masahat-participants__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--wp--preset--spacing--30);
}

.masahat-participants__controls {
    display: flex;
    gap: 0.5rem;
}

.masahat-participants__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border: 1.5px solid var(--wp--preset--color--light-gray);
    border-radius: 50%;
    background: transparent;
    color: var(--wp--preset--color--black);
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s, color 0.2s;
    padding: 0;
}

.masahat-participants__btn:hover {
    border-color: var(--wp--preset--color--black);
    background: var(--wp--preset--color--black);
    color: var(--wp--preset--color--white);
}

.masahat-participants__btn:focus-visible {
    outline: 2px solid var(--wp--preset--color--bronze);
    outline-offset: 2px;
}

/* Viewport clips the track */
.masahat-participants__viewport {
    overflow: hidden;
}

.masahat-participants__track {
    display: flex;
    transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
}

/* Each slide takes exactly 100% of the viewport width */
.masahat-participants__slide {
    flex: 0 0 100%;
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: var(--wp--preset--spacing--40);
    align-items: start;
}

.masahat-participants__portrait-col {
    position: sticky;
    top: var(--wp--preset--spacing--30);
}

.masahat-participants__portrait-link {
    display: block;
}

.masahat-participants__portrait-img {
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    display: block;
}

.masahat-participants__portrait-placeholder {
    width: 100%;
    aspect-ratio: 3 / 4;
    background: var(--wp--preset--color--sand);
}

.masahat-participants__bio-col {
    padding-bottom: var(--wp--preset--spacing--30);
}

.masahat-participants__bio-header {
    margin-bottom: var(--wp--preset--spacing--20);
}

.masahat-participants__discipline {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
    color: var(--wp--preset--color--warm-gray);
    margin: 0 0 0.4rem;
}

.masahat-participants__name {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: var(--wp--preset--font-size--lg);
    font-weight: 500;
    letter-spacing: -0.02em;
    line-height: 1.15;
    margin: 0;
}

.masahat-participants__name-link {
    color: inherit;
    text-decoration: none;
}

.masahat-participants__name-link:hover {
    color: var(--wp--preset--color--bronze);
}

/* Bio read-more */
.masahat-participants__bio-wrap.is-collapsible {
    max-height: 7rem;
    overflow: hidden;
    position: relative;
}

.masahat-participants__bio-wrap.is-collapsible::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3rem;
    background: linear-gradient(transparent, var(--wp--preset--color--off-white));
    pointer-events: none;
}

.masahat-participants__bio-wrap.is-collapsible.is-expanded {
    max-height: none;
}

.masahat-participants__bio-wrap.is-collapsible.is-expanded::after {
    display: none;
}

.masahat-participants__read-more {
    display: inline-block;
    margin-top: 0.6rem;
    background: none;
    border: none;
    padding: 0;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--wp--preset--color--bronze);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.masahat-participants__read-more:hover {
    color: var(--wp--preset--color--black);
}

.masahat-participants__read-more:focus-visible {
    outline: 2px solid var(--wp--preset--color--bronze);
    outline-offset: 2px;
}

/* Dot navigation */
.masahat-participants__dots {
    display: flex;
    gap: 0.5rem;
    margin-top: var(--wp--preset--spacing--30);
    justify-content: center;
}

.masahat-participants__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: 1.5px solid var(--wp--preset--color--warm-gray);
    background: transparent;
    cursor: pointer;
    padding: 0;
    transition: background 0.2s, border-color 0.2s;
}

.masahat-participants__dot.is-active {
    background: var(--wp--preset--color--black);
    border-color: var(--wp--preset--color--black);
}

.masahat-participants__dot:focus-visible {
    outline: 2px solid var(--wp--preset--color--bronze);
    outline-offset: 2px;
}

@media (max-width: 700px) {
    .masahat-participants__slide {
        grid-template-columns: 1fr;
    }

    .masahat-participants__portrait-col {
        position: static;
    }

    .masahat-participants__portrait-img,
    .masahat-participants__portrait-placeholder {
        aspect-ratio: 1 / 1;
        max-height: 320px;
        width: 100%;
    }
}

/* ============================================================
   Projects Archive (archive-project.php)
   ============================================================ */

.masahat-projects {
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20) var(--wp--preset--spacing--60);
}

/* Shared archive header — projects, program, news, publications */
.masahat-projects__header,
.masahat-program__header,
.masahat-news__header,
.masahat-publications__header {
    margin-bottom: var(--wp--preset--spacing--40);
    border-bottom: 1px solid var(--wp--preset--color--sand);
    padding-bottom: var(--wp--preset--spacing--30);
}

.masahat-projects__title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: clamp(2rem, 1.5rem + 2vw, 3.5rem);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.1;
    margin: 0 0 0.25rem;
}

.masahat-projects__title-ar {
    font-family: var(--wp--preset--font-family--arabic-heading);
    font-size: 1.6rem;
    color: var(--wp--preset--color--warm-gray);
    margin: 0;
}

.masahat-projects__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
}

.masahat-project-card__image-wrap {
    display: block;
    overflow: hidden;
    aspect-ratio: 16/9;
    background: var(--wp--preset--color--light-gray);
}

.masahat-project-card__body {
    padding-top: 0.75rem;
}

.masahat-project-card__title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 1.3;
    margin: 0 0 0.4rem;
}

.masahat-project-card__title a {
    color: var(--wp--preset--color--black);
    text-decoration: none;
}

.masahat-project-card__title a:hover {
    color: var(--wp--preset--color--bronze);
}

.masahat-project-card__excerpt {
    font-size: 0.9rem;
    color: var(--wp--preset--color--warm-gray);
    line-height: 1.55;
    margin: 0;
}

/* Shared empty state — projects, program, news, publications */
.masahat-projects__empty,
.masahat-program__empty,
.masahat-news__empty,
.masahat-publications__empty {
    color: var(--wp--preset--color--warm-gray);
    padding: var(--wp--preset--spacing--40) 0;
}

.masahat-projects__pagination {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: var(--wp--preset--spacing--40);
    flex-wrap: wrap;
}

/* Shared pagination .page-numbers — all archive sections */
.masahat-projects__pagination .page-numbers,
.masahat-program__pagination .page-numbers,
.masahat-news__pagination .page-numbers,
.masahat-publications__pagination .page-numbers,
.masahat-speakers__pagination .page-numbers {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.8rem;
    font-weight: 500;
    padding: 0.4rem 0.8rem;
    border: 1px solid var(--wp--preset--color--sand);
    color: var(--wp--preset--color--black);
    text-decoration: none;
    transition: border-color 0.15s, background-color 0.15s;
}

.masahat-projects__pagination .page-numbers:hover,
.masahat-projects__pagination .page-numbers.current,
.masahat-program__pagination .page-numbers:hover,
.masahat-program__pagination .page-numbers.current,
.masahat-news__pagination .page-numbers:hover,
.masahat-news__pagination .page-numbers.current,
.masahat-publications__pagination .page-numbers:hover,
.masahat-publications__pagination .page-numbers.current,
.masahat-speakers__pagination .page-numbers:hover,
.masahat-speakers__pagination .page-numbers.current {
    background: var(--wp--preset--color--black);
    border-color: var(--wp--preset--color--black);
    color: var(--wp--preset--color--off-white);
}

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

/* ============================================================
   Single Speaker (single-speaker.php)
   ============================================================ */

.masahat-speaker {
    max-width: 1100px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--20) var(--wp--preset--spacing--60);
}

.masahat-speaker__layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: var(--wp--preset--spacing--50);
    align-items: start;
    margin-bottom: var(--wp--preset--spacing--60);
}

.masahat-speaker__portrait {
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--wp--preset--color--light-gray);
}

.masahat-speaker__portrait-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: grayscale(20%);
    transition: filter 0.6s ease;
}

.masahat-speaker__portrait-col:hover .masahat-speaker__portrait-img {
    filter: grayscale(0%);
}

.masahat-speaker__portrait--empty {
    width: 100%;
}

.masahat-speaker__disciplines {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 600;
    color: var(--wp--preset--color--bronze);
    margin: 0 0 0.6rem;
}

.masahat-speaker__name {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: var(--wp--preset--font-size--xl);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.12;
    margin: 0 0 var(--wp--preset--spacing--30);
}


/* ── Speaker events list ─────────────────────────────────── */

.masahat-speaker__events {
    border-top: 1px solid var(--wp--preset--color--light-gray);
    padding-top: var(--wp--preset--spacing--40);
}

.masahat-speaker__events-inner {
    max-width: 1100px;
    margin: 0 auto;
}

.masahat-speaker__events .masahat-section-label {
    margin-bottom: var(--wp--preset--spacing--20);
    display: block;
}

.masahat-speaker__event-list {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--wp--preset--color--light-gray);
}

.masahat-speaker__event-card {
    display: grid;
    grid-template-columns: 140px 1fr auto;
    align-items: center;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--wp--preset--color--light-gray);
    transition: background 0.15s;
    min-height: 90px;
}

.masahat-speaker__event-card:hover {
    background: var(--wp--preset--color--off-white);
}

.masahat-speaker__event-card:hover .masahat-speaker__event-arrow {
    transform: translateX(4px);
    color: var(--wp--preset--color--bronze);
}

.masahat-speaker__event-img {
    width: 140px;
    height: 90px;
    overflow: hidden;
    flex-shrink: 0;
}

.masahat-speaker__event-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}

.masahat-speaker__event-card:hover .masahat-speaker__event-photo {
    transform: scale(1.06);
}

.masahat-speaker__event-img-placeholder {
    width: 100%;
    height: 100%;
    background: var(--wp--preset--color--light-gray);
}

.masahat-speaker__event-info {
    padding: var(--wp--preset--spacing--20);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}

.masahat-speaker__event-title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: -0.01em;
    line-height: 1.3;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.masahat-speaker__event-meta {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    font-size: 0.75rem;
    color: var(--wp--preset--color--warm-gray);
    margin-top: 0.15rem;
}

.masahat-speaker__event-arrow {
    padding: 0 var(--wp--preset--spacing--20);
    color: var(--wp--preset--color--mid-gray);
    flex-shrink: 0;
    transition: transform 0.2s ease, color 0.2s ease;
}

@media (max-width: 860px) {
    .masahat-speaker__layout {
        grid-template-columns: 220px 1fr;
        gap: var(--wp--preset--spacing--30);
    }
}

@media (max-width: 600px) {
    .masahat-speaker__layout {
        grid-template-columns: 1fr;
    }

    .masahat-speaker__portrait {
        max-width: 240px;
    }

    .masahat-speaker__event-card {
        grid-template-columns: 90px 1fr auto;
        min-height: 70px;
    }

    .masahat-speaker__event-img {
        width: 90px;
        height: 70px;
    }

    .masahat-speaker__event-arrow {
        display: none;
    }
}

/* ============================================================
   Contact Page (page-contact.php)
   ============================================================ */

.masahat-contact {
    max-width: 720px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--20);
}

.masahat-contact__title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: var(--wp--preset--font-size--xxl);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.05;
    margin: 0 0 var(--wp--preset--spacing--40);
    text-transform: lowercase;
}

.masahat-contact__intro {
    margin-bottom: var(--wp--preset--spacing--50);
}

.masahat-contact__lead {
    line-height: 1.7;
    margin: 0 0 var(--wp--preset--spacing--20);
    color: var(--wp--preset--color--black);
}

.masahat-contact__lead--ar {
    font-family: var(--wp--preset--font-family--arabic);
    font-size: 1.05rem;
    line-height: 1.9;
    color: var(--wp--preset--color--warm-gray);
}

.masahat-contact__module {
    border-top: 1px solid var(--wp--preset--color--light-gray);
    padding-top: var(--wp--preset--spacing--30);
    margin-bottom: var(--wp--preset--spacing--40);
}

.masahat-contact__module-heading {
    font-size: var(--wp--preset--font-size--xs);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--wp--preset--color--warm-gray);
    margin: 0 0 var(--wp--preset--spacing--20);
}

.masahat-contact__email {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: var(--wp--preset--font-size--lg);
    font-weight: 400;
    letter-spacing: -0.01em;
    color: var(--wp--preset--color--black);
    text-decoration: none;
    border-bottom: 1px solid currentColor;
    transition: color 0.15s;
}

.masahat-contact__email:hover {
    color: var(--wp--preset--color--bronze);
}

.masahat-contact__social {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
}

.masahat-contact__social-link {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    color: var(--wp--preset--color--black);
    font-size: 0.95rem;
    transition: color 0.15s;
}

.masahat-contact__social-link:hover {
    color: var(--wp--preset--color--bronze);
}

.masahat-contact__social-link svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.masahat-contact__newsletter {
    max-width: 480px;
}

.masahat-contact__newsletter-fallback {
    font-size: 0.9rem;
    color: var(--wp--preset--color--warm-gray);
    margin: 0;
}

/* ============================================================
   About Page (page-about.php)
   ============================================================ */

/* ── Language tabs ─────────────────────────────────────── */

.masahat-about__page-title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: var(--wp--preset--font-size--xxl);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.05;
    margin: 0 0 var(--wp--preset--spacing--30);
}

.masahat-about__intro {
    max-width: 860px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
}

/* ── People section ────────────────────────────────────── */

.masahat-about__people {
    max-width: 860px;
    margin: 0 auto;
    padding: 0 var(--wp--preset--spacing--20) var(--wp--preset--spacing--60);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--wp--preset--spacing--40);
    align-items: start;
}

.masahat-about__people-group {
    border-top: 1px solid var(--wp--preset--color--light-gray);
    padding-top: var(--wp--preset--spacing--20);
}

.masahat-about__people-group .masahat-section-label {
    margin-bottom: var(--wp--preset--spacing--20);
}

.masahat-about__person-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.masahat-about__person {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--wp--preset--color--light-gray);
}

/* Name + role + bio stack */
.masahat-about__person-info {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    flex: 1;
}

.masahat-about__person-name {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.95rem;
    font-weight: 500;
    letter-spacing: -0.01em;
    color: var(--wp--preset--color--black);
    text-decoration: none;
}

.masahat-about__person-name:hover {
    color: var(--wp--preset--color--bronze);
}

.masahat-about__person-role {
    font-size: 0.8rem;
    color: var(--wp--preset--color--warm-gray);
}

/* Portrait — only visible when image is set */
.masahat-about__person-img {
    flex-shrink: 0;
    width: 72px;
    height: 72px;
    overflow: hidden;
    border-radius: 50%;
    background: var(--wp--preset--color--light-gray);
}

.masahat-about__person-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}


@media (max-width: 720px) {
    .masahat-about__tab-label {
        padding: 0.5rem 0.8rem 0.5rem 0;
        margin-right: 1rem;
        font-size: 0.65rem;
    }

    .masahat-about__people {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 480px) {
    .masahat-about__people {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   Front Page (front-page.php)
   ============================================================ */

/* ── Hero ────────────────────────────────────────────────── */

.masahat-home__hero {
    position: relative;
    background: var(--wp--preset--color--black);
    color: var(--wp--preset--color--white);
    min-height: 60vh;
    display: flex;
    align-items: flex-end;
    padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--20) var(--wp--preset--spacing--50);
    overflow: hidden;
}

/* ── Hero slider ──────────────────────────────────────────── */

.masahat-home__hero-slider {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.masahat-home__hero-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 1s ease;
}

.masahat-home__hero-slide.is-active {
    opacity: 1;
}

.masahat-home__hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.masahat-home__hero-dots {
    position: absolute;
    bottom: var(--wp--preset--spacing--20);
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    display: flex;
    gap: 0.5rem;
}

.masahat-home__hero-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: 1.5px solid rgba(255,255,255,0.6);
    background: transparent;
    cursor: pointer;
    padding: 0;
    transition: background 0.2s, border-color 0.2s;
}

.masahat-home__hero-dot.is-active {
    background: var(--wp--preset--color--white);
    border-color: var(--wp--preset--color--white);
}

.masahat-home__hero-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--wp--preset--color--off-white);
    border: 1px solid rgba(255,255,255,0.4);
    padding: 0.7rem 1.4rem;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s;
}

.masahat-home__hero-cta:hover {
    background: rgba(255,255,255,0.1);
    border-color: rgba(255,255,255,0.8);
}

/* ── Section chrome ──────────────────────────────────────── */

.masahat-home__section {
    max-width: 1100px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--20);
}

.masahat-home__section-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: var(--wp--preset--spacing--30);
    border-bottom: 1px solid var(--wp--preset--color--light-gray);
    padding-bottom: var(--wp--preset--spacing--20);
}

.masahat-home__see-all {
    display: inline-flex;
    align-items: center;
    gap: 0.3em;
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: var(--wp--preset--color--black);
    text-decoration: none;
    transition: color 0.15s, gap 0.2s ease;
}

.masahat-home__see-all:hover {
    color: var(--wp--preset--color--bronze);
    gap: 0.55em;
}

/* ── Featured event ──────────────────────────────────────── */

.masahat-home__event-featured {
    display: block;
    text-decoration: none;
    color: inherit;
    margin-bottom: var(--wp--preset--spacing--30);
}

.masahat-home__event-featured-img {
    overflow: hidden;
}

.masahat-home__event-featured-img .masahat-home__event-photo {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.5s ease;
}

.masahat-home__event-featured:hover .masahat-home__event-photo {
    transform: scale(1.02);
}

.masahat-home__event-featured-info {
    padding: var(--wp--preset--spacing--20) 0 0;
}

.masahat-home__event-featured-title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: var(--wp--preset--font-size--lg);
    font-weight: 500;
    letter-spacing: -0.02em;
    line-height: 1.2;
    margin: 0 0 0.35rem;
}

.masahat-home__event-featured-meta {
    font-size: 0.85rem;
    color: var(--wp--preset--color--warm-gray);
}

/* ── Event cards grid ───────────────────────────────────── */

.masahat-home__event-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--wp--preset--spacing--20);
}

/* Stagger reveal on grid items */
.masahat-home__event-card:nth-child(1) { transition-delay: 0s; }
.masahat-home__event-card:nth-child(2) { transition-delay: 0.08s; }
.masahat-home__event-card:nth-child(3) { transition-delay: 0.16s; }

.masahat-home__event-card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
}

.masahat-home__event-img {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    position: relative;
}

.masahat-home__event-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}

.masahat-home__event-card:hover .masahat-home__event-photo {
    transform: scale(1.04);
}

.masahat-home__event-info {
    padding: 0.75rem 0 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.masahat-home__event-title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 1.05rem;
    font-weight: 500;
    letter-spacing: -0.01em;
    line-height: 1.3;
    margin: 0;
}

.masahat-home__event-meta {
    font-size: 0.8rem;
    color: var(--wp--preset--color--warm-gray);
}

/* ── News list ───────────────────────────────────────────── */

.masahat-home__news-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--wp--preset--spacing--30);
}

/* Stagger reveal on news items */
.masahat-home__news-item:nth-child(1) { transition-delay: 0s; }
.masahat-home__news-item:nth-child(2) { transition-delay: 0.08s; }
.masahat-home__news-item:nth-child(3) { transition-delay: 0.16s; }
.masahat-home__news-item:nth-child(4) { transition-delay: 0.24s; }
.masahat-home__news-item:nth-child(5) { transition-delay: 0.32s; }
.masahat-home__news-item:nth-child(6) { transition-delay: 0.40s; }

.masahat-home__news-item {
    display: flex;
    flex-direction: column;
    gap: var(--wp--preset--spacing--10);
    text-decoration: none;
    color: inherit;
}

.masahat-home__news-img {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    position: relative;
}

.masahat-home__news-img::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0);
    transition: background 0.3s ease;
}

.masahat-home__news-item:hover .masahat-home__news-img::after {
    background: rgba(0,0,0,0.12);
}

.masahat-home__news-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

.masahat-home__news-item:hover .masahat-home__news-photo {
    transform: scale(1.03);
}

.masahat-home__news-info {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.masahat-home__news-title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.95rem;
    font-weight: 500;
    letter-spacing: -0.01em;
    line-height: 1.35;
    margin: 0;
    transition: color 0.15s;
}

.masahat-home__news-item:hover .masahat-home__news-title {
    color: var(--wp--preset--color--bronze);
}

.masahat-home__news-date {
    font-size: 0.75rem;
    color: var(--wp--preset--color--warm-gray);
}

/* ── About statement ─────────────────────────────────────── */

.masahat-home__about {
    background: var(--wp--preset--color--black);
    color: var(--wp--preset--color--off-white);
    padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--20);
}

.masahat-home__about-inner {
    max-width: 860px;
    margin: 0 auto;
    text-align: center;
}

.masahat-home__about-no {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: clamp(1.6rem, 3.5vw, 2.8rem);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 1.15;
    margin: 0 0 0.5rem;
}

.masahat-home__about-ar {
    font-family: var(--wp--preset--font-family--arabic-heading);
    font-size: clamp(1.2rem, 2.5vw, 2rem);
    font-weight: 400;
    line-height: 1.5;
    color: var(--wp--preset--color--warm-gray);
    margin: 0 0 var(--wp--preset--spacing--30);
}

.masahat-home__about-link {
    display: inline-block;
    font-size: 0.85rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--wp--preset--color--off-white);
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,0.3);
    padding-bottom: 2px;
    transition: border-color 0.15s;
}

.masahat-home__about-link:hover {
    border-color: var(--wp--preset--color--off-white);
}

/* ── Connect (newsletter + social) ──────────────────────── */

.masahat-home__connect {
    background: var(--wp--preset--color--white);
    border-top: 1px solid var(--wp--preset--color--light-gray);
    padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--20);
}

.masahat-home__connect-inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--wp--preset--spacing--50);
    align-items: start;
}

/* Newsletter column */
.masahat-home__connect-newsletter .masahat-section-label {
    display: block;
    margin-bottom: var(--wp--preset--spacing--20);
}

.masahat-home__connect-lead {
    font-size: 0.95rem;
    line-height: 1.65;
    color: var(--wp--preset--color--warm-gray);
    margin-bottom: var(--wp--preset--spacing--20);
    max-width: 42ch;
}

/* mc4wp form overrides — shared across home and contact pages */
.mc4wp-form-fields {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

/* Title and label rows span full width */
.mc4wp-form-fields h4,
.mc4wp-form-fields > div:first-of-type {
    flex: 0 0 100%;
}

/* Email wrapper stretches; submit wrapper shrinks to button */
.mc4wp-form-fields > div:last-of-type {
    flex: 1 1 220px;
    display: flex;
}

.mc4wp-form-fields > p {
    flex: 0 0 auto;
    margin: 0;
    display: flex;
}

.mc4wp-form-fields input[type="email"] {
    flex: 1;
    padding: 0.65rem 0.9rem;
    border: 1px solid var(--wp--preset--color--light-gray);
    background: var(--wp--preset--color--white);
    font-family: var(--wp--preset--font-family--latin-body);
    font-size: 0.9rem;
    color: var(--wp--preset--color--black);
    border-radius: 0;
    outline: none;
    transition: border-color 0.15s;
}

.mc4wp-form-fields input[type="email"]:focus {
    border-color: var(--wp--preset--color--black);
}

.mc4wp-form-fields input[type="submit"] {
    padding: 0.65rem 1.4rem;
    background: var(--wp--preset--color--black) !important;
    color: var(--wp--preset--color--off-white) !important;
    font-family: var(--wp--preset--font-family--latin-heading) !important;
    font-size: 0.8rem !important;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border: none;
    cursor: pointer;
    transition: background 0.15s;
}

.mc4wp-form-fields input[type="submit"]:hover {
    background: var(--wp--preset--color--bronze) !important;
}

.masahat-home__connect-fallback {
    font-size: 0.9rem;
    color: var(--wp--preset--color--warm-gray);
}

.masahat-home__connect-fallback a {
    color: var(--wp--preset--color--black);
    text-decoration: underline;
}

/* Social column */
.masahat-home__connect-social .masahat-section-label {
    display: block;
    margin-bottom: var(--wp--preset--spacing--20);
}

.masahat-home__connect-social-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.masahat-home__connect-social-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.55rem 0;
    font-size: 0.95rem;
    font-weight: 500;
    color: var(--wp--preset--color--black);
    text-decoration: none;
    border-bottom: 1px solid var(--wp--preset--color--light-gray);
    transition: color 0.15s;
}

.masahat-home__connect-social-link:hover {
    color: var(--wp--preset--color--bronze);
}

.masahat-home__connect-social-link svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

/* ── Responsive ──────────────────────────────────────────── */

@media (max-width: 900px) {
    /* News grid: 3 → 2 columns at tablet */
    .masahat-home__news-list {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Event grid: 2 columns on tablet */
    .masahat-home__event-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .masahat-home__hero {
        min-height: 50vh;
        align-items: center;
    }

    .masahat-home__event-grid {
        grid-template-columns: 1fr;
    }

    .masahat-home__news-list {
        grid-template-columns: 1fr;
    }

    .masahat-home__section-header {
        flex-direction: column;
        gap: 0.5rem;
    }

    .masahat-home__connect-inner {
        grid-template-columns: 1fr;
        gap: var(--wp--preset--spacing--40);
    }
}

/* ==========================================================================
   Single Member page (/team/{slug}/)
   ========================================================================== */

.masahat-member {
    max-width: 720px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20) var(--wp--preset--spacing--60);
}

.masahat-member__breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8rem;
    color: var(--wp--preset--color--warm-gray);
    margin-bottom: var(--wp--preset--spacing--30);
}

.masahat-member__breadcrumb a {
    color: var(--wp--preset--color--warm-gray);
    text-decoration: none;
}

.masahat-member__breadcrumb a:hover {
    color: var(--wp--preset--color--black);
}

.masahat-member__header {
    display: flex;
    gap: 2rem;
    align-items: flex-start;
    margin-bottom: var(--wp--preset--spacing--30);
}

.masahat-member__portrait {
    flex-shrink: 0;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--wp--preset--color--light-gray);
}

.masahat-member__portrait-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.masahat-member__header-text {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding-top: 0.5rem;
}

.masahat-member__name {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    font-weight: 500;
    letter-spacing: -0.02em;
    line-height: 1.15;
    margin: 0;
}

.masahat-member__role {
    font-size: 0.9rem;
    color: var(--wp--preset--color--warm-gray);
    margin: 0;
}

.masahat-member__bio {
    border-top: 1px solid var(--wp--preset--color--light-gray);
    padding-top: var(--wp--preset--spacing--30);
    font-size: 1rem;
    line-height: 1.7;
}

.masahat-member__back {
    margin-top: var(--wp--preset--spacing--40);
    padding-top: var(--wp--preset--spacing--20);
    border-top: 1px solid var(--wp--preset--color--light-gray);
}

.masahat-member__back a {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--wp--preset--color--warm-gray);
    text-decoration: none;
}

.masahat-member__back a:hover {
    color: var(--wp--preset--color--black);
}

@media (max-width: 500px) {
    .masahat-member__header {
        flex-direction: column;
        gap: 1rem;
    }

    .masahat-member__portrait {
        width: 100px;
        height: 100px;
    }
}

/* ==========================================================================
   Language tabs — shared CSS-only component
   Used on: single event (description), single speaker (bio)
   IDs: #lang-tab-{no|en|ar}  #lang-panel-{no|en|ar}
   ========================================================================== */

.masahat-lang-tabs__input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.masahat-lang-tabs__labels {
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--wp--preset--color--light-gray);
    margin-bottom: var(--wp--preset--spacing--20);
}

.masahat-lang-tabs__label {
    padding: 0.6rem 1.2rem 0.6rem 0;
    margin-right: 1.5rem;
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--wp--preset--color--warm-gray);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    transition: color 0.15s, border-color 0.15s;
    user-select: none;
}

.masahat-lang-tabs__label:hover {
    color: var(--wp--preset--color--black);
}

/* Active tab label — positional, works for any number of instances */
.masahat-lang-tabs:has(.masahat-lang-tabs__input:nth-of-type(1):checked)
    .masahat-lang-tabs__labels .masahat-lang-tabs__label:nth-of-type(1),
.masahat-lang-tabs:has(.masahat-lang-tabs__input:nth-of-type(2):checked)
    .masahat-lang-tabs__labels .masahat-lang-tabs__label:nth-of-type(2),
.masahat-lang-tabs:has(.masahat-lang-tabs__input:nth-of-type(3):checked)
    .masahat-lang-tabs__labels .masahat-lang-tabs__label:nth-of-type(3) {
    color: var(--wp--preset--color--black);
    border-bottom-color: var(--wp--preset--color--black);
}

/* All panels hidden by default */
.masahat-lang-tabs__panel {
    display: none;
    line-height: 1.75;
}

.masahat-lang-tabs__panel p { margin-bottom: 1.2em; }
.masahat-lang-tabs__panel p:last-child { margin-bottom: 0; }

/* Show active panel — positional, works for any number of instances */
.masahat-lang-tabs:has(.masahat-lang-tabs__input:nth-of-type(1):checked)
    .masahat-lang-tabs__panels .masahat-lang-tabs__panel:nth-of-type(1),
.masahat-lang-tabs:has(.masahat-lang-tabs__input:nth-of-type(2):checked)
    .masahat-lang-tabs__panels .masahat-lang-tabs__panel:nth-of-type(2),
.masahat-lang-tabs:has(.masahat-lang-tabs__input:nth-of-type(3):checked)
    .masahat-lang-tabs__panels .masahat-lang-tabs__panel:nth-of-type(3) {
    display: block;
}

/* Arabic panel typography */
.masahat-lang-tabs__panel--ar {
    font-family: var(--wp--preset--font-family--arabic);
    font-size: 1.05rem;
    line-height: 1.9;
}

/* Single-language (no tabs) — same body styling without the tab chrome */
.masahat-lang-tabs__single {
    line-height: 1.75;
}
.masahat-lang-tabs__single p { margin-bottom: 1.2em; }
.masahat-lang-tabs__single p:last-child { margin-bottom: 0; }

/* ==========================================================================
   Program / events archive  (archive-masahat_event.php)
   ========================================================================== */

.masahat-program {
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20) var(--wp--preset--spacing--50);
}

/* Header */
.masahat-program__title-row {
    display: flex;
    align-items: baseline;
    gap: 1.5rem;
    margin-bottom: var(--wp--preset--spacing--20);
}

.masahat-program__title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: var(--wp--preset--font-size--xxl);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.05;
    margin: 0;
}

.masahat-program__title-ar {
    font-family: var(--wp--preset--font-family--arabic-heading);
    font-size: 1.6rem;
    color: var(--wp--preset--color--warm-gray);
    margin: 0;
}

/* Filter nav */
.masahat-program__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.masahat-program__filter {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.35rem 0.8rem;
    border: 1px solid var(--wp--preset--color--sand);
    color: var(--wp--preset--color--warm-gray);
    text-decoration: none;
    transition: border-color 0.15s, color 0.15s, background-color 0.15s;
}

.masahat-program__filter:hover,
.masahat-program__filter.is-active {
    border-color: var(--wp--preset--color--black);
    color: var(--wp--preset--color--off-white);
    background-color: var(--wp--preset--color--black);
}

/* Sections — "Kommende" above "Tidligere arrangementer". Both headings only
   appear when there is something upcoming; otherwise the page is one grid. */
.masahat-program__section-label {
    display: block;
    margin-bottom: var(--wp--preset--spacing--20);
}

.masahat-program__section--upcoming {
    padding-bottom: var(--wp--preset--spacing--20);
    border-bottom: 1px solid var(--wp--preset--color--light-gray);
    margin-bottom: var(--wp--preset--spacing--40);
}

/* Grid */
.masahat-program__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--20);
    margin-bottom: var(--wp--preset--spacing--40);
}

/* Card */
.masahat-event-card__image-wrap {
    display: block;
    overflow: hidden;
    aspect-ratio: 5/3;
    background: var(--wp--preset--color--light-gray);
}

.masahat-event-card__image--placeholder {
    width: 100%;
    height: 100%;
    background: var(--wp--preset--color--sand);
}

.masahat-event-card__body {
    padding-top: 0.75rem;
}

.masahat-event-card__meta {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.masahat-event-card__title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 1.05rem;
    font-weight: 500;
    line-height: 1.3;
    margin: 0.35rem 0 0.4rem;
}

.masahat-event-card__title a {
    color: var(--wp--preset--color--black);
    text-decoration: none;
}

.masahat-event-card__title a:hover {
    color: var(--wp--preset--color--bronze);
}

.masahat-event-card__date {
    font-size: 0.75rem;
    color: var(--wp--preset--color--warm-gray);
}

/* Pagination */
.masahat-program__pagination {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* Responsive */
@media (max-width: 1024px) {
    .masahat-program__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
    .masahat-program__grid { grid-template-columns: 1fr; }
    .masahat-program__title-row { flex-direction: column; gap: 0.25rem; }
}

/* ==========================================================================
   News / blog archive  (home.php — page_for_posts at /news/)
   ========================================================================== */

.masahat-news {
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20) var(--wp--preset--spacing--50);
}

/* Header */
.masahat-news__title-row {
    display: flex;
    align-items: baseline;
    gap: 1.5rem;
    margin-bottom: var(--wp--preset--spacing--20);
}

.masahat-news__title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: var(--wp--preset--font-size--xxl);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.05;
    margin: 0;
}

.masahat-news__title-ar {
    font-family: var(--wp--preset--font-family--arabic-heading);
    font-size: 1.6rem;
    color: var(--wp--preset--color--warm-gray);
    margin: 0;
}

/* Filter nav */
.masahat-news__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.masahat-news__filter {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.35rem 0.8rem;
    border: 1px solid var(--wp--preset--color--sand);
    color: var(--wp--preset--color--warm-gray);
    text-decoration: none;
    transition: border-color 0.15s, color 0.15s, background-color 0.15s;
}

.masahat-news__filter:hover,
.masahat-news__filter.is-active {
    border-color: var(--wp--preset--color--black);
    color: var(--wp--preset--color--off-white);
    background-color: var(--wp--preset--color--black);
}

/* Grid */
.masahat-news__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--20);
    margin-bottom: var(--wp--preset--spacing--40);
}

/* Card */
.masahat-news-card__image-wrap {
    display: block;
    overflow: hidden;
    aspect-ratio: 16/10;
    background: var(--wp--preset--color--light-gray);
}

.masahat-news-card__body {
    padding-top: 0.75rem;
}

.masahat-news-card__cat {
    display: inline-block;
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--wp--preset--color--bronze);
    margin-bottom: 0.35rem;
}

.masahat-news-card__title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.35;
    margin: 0 0 0.4rem;
}

.masahat-news-card__title a {
    color: var(--wp--preset--color--black);
    text-decoration: none;
}

.masahat-news-card__title a:hover {
    color: var(--wp--preset--color--bronze);
}

.masahat-news-card__date {
    font-size: 0.75rem;
    color: var(--wp--preset--color--warm-gray);
}

/* Pagination */
.masahat-news__pagination {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* Responsive */
@media (max-width: 1024px) {
    .masahat-news__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
    .masahat-news__grid { grid-template-columns: 1fr; }
    .masahat-news__title-row { flex-direction: column; gap: 0.25rem; }
}

/* ==========================================================================
   Publications archive
   ========================================================================== */

.masahat-publications {
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20) var(--wp--preset--spacing--50);
}

/* Header */
.masahat-publications__title-row {
    display: flex;
    align-items: baseline;
    gap: 1.5rem;
    margin-bottom: var(--wp--preset--spacing--20);
}

.masahat-publications__title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: clamp(2rem, 1.5rem + 2vw, 3.5rem);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.1;
    margin: 0;
}

.masahat-publications__title-ar {
    font-family: var(--wp--preset--font-family--arabic-heading);
    font-size: 1.6rem;
    color: var(--wp--preset--color--warm-gray);
    margin: 0;
}

/* Filter nav */
.masahat-publications__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.masahat-publications__filter {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.35rem 0.8rem;
    border: 1px solid var(--wp--preset--color--sand);
    color: var(--wp--preset--color--warm-gray);
    text-decoration: none;
    transition: border-color 0.15s, color 0.15s, background-color 0.15s;
}

.masahat-publications__filter:hover,
.masahat-publications__filter.is-active {
    border-color: var(--wp--preset--color--black);
    color: var(--wp--preset--color--off-white);
    background-color: var(--wp--preset--color--black);
}

/* Grid */
.masahat-publications__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--20);
}

/* Card */
.masahat-pub-card__image-wrap {
    display: block;
    position: relative;
    overflow: hidden;
    aspect-ratio: 3/4;
    background: var(--wp--preset--color--light-gray);
}

.masahat-pub-card__image--placeholder {
    width: 100%;
    height: 100%;
    background: var(--wp--preset--color--sand);
}

.masahat-pub-card__badge {
    position: absolute;
    top: 0.6rem;
    right: 0.6rem;
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: var(--wp--preset--color--bronze);
    color: var(--wp--preset--color--off-white);
    padding: 0.2rem 0.5rem;
}

.masahat-pub-card__info {
    padding-top: 0.75rem;
}

.masahat-pub-card__title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.3;
    margin: 0 0 0.3rem;
}

.masahat-pub-card__title a {
    color: var(--wp--preset--color--black);
    text-decoration: none;
}

.masahat-pub-card__title a:hover {
    color: var(--wp--preset--color--bronze);
}

.masahat-pub-card__author {
    font-size: 0.8rem;
    color: var(--wp--preset--color--warm-gray);
    margin: 0 0 0.2rem;
}

.masahat-pub-card__meta {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.7rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--wp--preset--color--warm-gray);
    margin: 0;
}

/* Pagination */
.masahat-publications__pagination {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: var(--wp--preset--spacing--40);
    flex-wrap: wrap;
}

/* Responsive */
@media (max-width: 1024px) {
    .masahat-publications__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 640px) {
    .masahat-publications__grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .masahat-publications__title-row {
        flex-direction: column;
        gap: 0.25rem;
    }
}

/* ============================================================
   Speaker Card — shared component
   Used in: archive-speaker.php, page-festival.php
   ============================================================ */

.masahat-speaker-card {
    display: block;
    text-decoration: none;
    color: inherit;
}

.masahat-speaker-card__img-wrap {
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--wp--preset--color--sand);
    margin-bottom: 0.75rem;
}

.masahat-speaker-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: grayscale(100%);
    transition: filter 0.3s ease, transform 0.4s ease;
}

.masahat-speaker-card:hover .masahat-speaker-card__img {
    filter: grayscale(0%);
    transform: scale(1.03);
}

.masahat-speaker-card__img-placeholder {
    width: 100%;
    height: 100%;
    background: var(--wp--preset--color--sand);
}

.masahat-speaker-card__meta {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.masahat-speaker-card__discipline {
    font-size: 0.65rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--wp--preset--color--bronze);
}

.masahat-speaker-card__name {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.95rem;
    font-weight: 500;
    letter-spacing: -0.01em;
    line-height: 1.3;
}

/* ============================================================
   Speakers Archive (/speakers/)
   ============================================================ */

.masahat-speakers {
    max-width: 1100px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--20);
}

.masahat-speakers__header {
    margin-bottom: var(--wp--preset--spacing--40);
    border-bottom: 1px solid var(--wp--preset--color--sand);
    padding-bottom: var(--wp--preset--spacing--20);
}

.masahat-speakers__header-inner {
    display: flex;
    align-items: baseline;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.masahat-speakers__title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: var(--wp--preset--font-size--xxl);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.05;
    margin: 0;
}

.masahat-speakers__title-ar {
    font-family: var(--wp--preset--font-family--arabic-heading);
    font-size: var(--wp--preset--font-size--lg);
    color: var(--wp--preset--color--warm-gray);
    margin: 0;
    line-height: 1.4;
}

.masahat-speakers__filter {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: var(--wp--preset--spacing--40);
}

.masahat-speakers__filter-btn {
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    padding: 0.45rem 1rem;
    border: 1px solid var(--wp--preset--color--sand);
    color: var(--wp--preset--color--warm-gray);
    text-decoration: none;
    transition: border-color 0.15s, color 0.15s, background-color 0.15s;
}

.masahat-speakers__filter-btn:hover,
.masahat-speakers__filter-btn.is-active {
    background: var(--wp--preset--color--black);
    border-color: var(--wp--preset--color--black);
    color: var(--wp--preset--color--off-white);
}

.masahat-speakers__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem 1.5rem;
    margin-bottom: var(--wp--preset--spacing--40);
    width: 100%;
}

.masahat-speakers__grid > * {
    min-width: 0;
}

.masahat-speakers__empty {
    color: var(--wp--preset--color--warm-gray);
    font-size: 0.9rem;
    padding: var(--wp--preset--spacing--40) 0;
}

.masahat-speakers__pagination {
    display: flex;
    gap: 0.5rem;
    margin-top: var(--wp--preset--spacing--40);
    flex-wrap: wrap;
}

@media (max-width: 1024px) {
    .masahat-speakers__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 640px) {
    .masahat-speakers__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ── Festival page: speakers preview section ──────────────── */

.masahat-festival__speakers {
    max-width: 1100px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--20);
    border-top: 1px solid var(--wp--preset--color--sand);
}

.masahat-festival__speakers-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--wp--preset--spacing--30);
}

.masahat-festival__speakers-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--wp--preset--color--black);
    border-bottom: 1px solid currentColor;
    padding-bottom: 0.1rem;
    transition: color 0.15s, border-color 0.15s;
}

.masahat-festival__speakers-link:hover {
    color: var(--wp--preset--color--bronze);
    border-color: var(--wp--preset--color--bronze);
}

.masahat-festival__speakers-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 2rem 1.5rem;
    width: 100%;
}

.masahat-festival__speakers-grid > * {
    min-width: 0; /* prevent blowout in constrained contexts */
}

@media (max-width: 1024px) {
    .masahat-festival__speakers-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 640px) {
    .masahat-festival__speakers-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ── Festival: Related posts ─────────────────────────────────────────────── */

.masahat-festival__posts {
    max-width: 1100px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
    border-top: 1px solid var(--wp--preset--color--light-gray);
}

.masahat-festival__posts .masahat-section-label {
    display: block;
    margin-bottom: var(--wp--preset--spacing--30);
}

/* ── Festival: Partners & Donors ─────────────────────────────────────────── */

.masahat-festival__partners,
.masahat-festival__donors {
    max-width: 1100px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
    border-top: 1px solid var(--wp--preset--color--light-gray);
}

.masahat-festival__partners-logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2rem 3rem;
    margin-top: var(--wp--preset--spacing--20);
}

.masahat-festival__partner-logo {
    height: 80px;
    width: auto;
    max-width: 220px;
    object-fit: contain;
    filter: grayscale(1);
    opacity: 0.7;
    transition: opacity 0.2s, filter 0.2s;
}

.masahat-festival__partner-logo:hover {
    filter: grayscale(0);
    opacity: 1;
}

.masahat-festival__donors-list {
    list-style: none;
    padding: 0;
    margin: var(--wp--preset--spacing--20) 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0;
}

.masahat-festival__donors-list li {
    font-size: 0.85rem;
    color: var(--wp--preset--color--warm-gray);
}

.masahat-festival__donors-list li::after {
    content: '·';
    margin: 0 0.6rem;
    color: var(--wp--preset--color--light-gray);
}

.masahat-festival__donors-list li:last-child::after {
    content: '';
    margin: 0;
}

/* ==========================================================================
   Sticky header
   ========================================================================== */

/* The header block renders as <header class="wp-block-group ..."> inside
   #page.site. Make it sticky so it stays at the top while scrolling. */
.site > header.wp-block-group {
    position: sticky;
    top: 0;
    z-index: 500;
    /* Re-declare background so the sticky bar isn't transparent over content */
    background-color: var(--wp--preset--color--off-white) !important;
}

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

.masahat-header {
    position: sticky;
    top: 0;
    z-index: 500;
    background-color: var(--wp--preset--color--white);
    border-bottom: 1px solid var(--wp--preset--color--sand);
}

/* ── Bar (logo + nav + actions) ─────────────────────────────────────────── */

.masahat-header__bar {
    display: flex;
    align-items: center;
    gap: 2rem;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--wp--preset--spacing--30);
    height: 72px;
}

/* ── Logo ───────────────────────────────────────────────────────────────── */

.masahat-header__logo {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    line-height: 0;
}

.masahat-header__logo img {
    height: 40px;
    width: auto;
    display: block;
}

/* ── Primary nav ────────────────────────────────────────────────────────── */

.masahat-header__nav {
    flex: 1;
    display: flex;
    justify-content: flex-end;
}

.masahat-header__menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.masahat-header__menu .menu-item {
    position: relative;
}

.masahat-header__menu .menu-item > a {
    display: block;
    padding: 0.5rem 0.75rem;
    font-family: 'VIP Hakim', var(--wp--preset--font-family--latin-heading);
    font-size: 0.95rem;
    font-weight: normal;
    text-transform: none;
    letter-spacing: 0.01em;
    color: var(--wp--preset--color--black);
    text-decoration: none;
    white-space: nowrap;
    position: relative;
}

/* Underline grows from left on hover — koro.no style */
.masahat-header__menu .menu-item > a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0.75rem;
    right: 0.75rem;
    height: 1px;
    background: var(--wp--preset--color--black);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.2s ease;
}

.masahat-header__menu .menu-item > a:hover::after,
.masahat-header__menu .menu-item > a:focus-visible::after,
.masahat-header__menu .current-menu-item > a::after,
.masahat-header__menu .current-menu-ancestor > a::after {
    transform: scaleX(1);
}

.masahat-header__menu .menu-item > a:focus-visible {
    outline: 2px solid var(--wp--preset--color--bronze);
    outline-offset: 2px;
    border-radius: 2px;
}

/* ── Dropdown sub-menu ──────────────────────────────────────────────────── */

.masahat-header__menu .sub-menu {
    list-style: none;
    margin: 0;
    padding: 0.5rem 0;
    position: absolute;
    top: calc(100% + 1px);
    left: 0;
    min-width: 200px;
    background: var(--wp--preset--color--white);
    border: 1px solid var(--wp--preset--color--light-gray);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-6px);
    transition: opacity 0.15s, transform 0.15s;
    z-index: 100;
}

.masahat-header__menu .menu-item-has-children:hover .sub-menu,
.masahat-header__menu .menu-item-has-children:focus-within .sub-menu {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.masahat-header__menu .sub-menu .menu-item > a {
    font-size: 0.72rem;
    padding: 0.5rem 1rem;
    letter-spacing: 0.05em;
}

.masahat-header__menu .sub-menu .menu-item > a::after {
    left: 1rem;
    right: 1rem;
}

/* Caret on parent items that have children */
.masahat-header__menu .menu-item-has-children > a::before {
    display: none;
}

/* ── Action buttons (search + hamburger) ────────────────────────────────── */

.masahat-header__actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
    margin-left: auto;
}

.masahat-header__search-btn,
.masahat-header__menu-btn {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--wp--preset--color--black);
    padding: 0.4rem 0.5rem;
    border-radius: 2px;
    transition: opacity 0.15s;
}

.masahat-header__search-btn:hover,
.masahat-header__menu-btn:hover {
    opacity: 0.6;
}

.masahat-header__search-btn:focus-visible,
.masahat-header__menu-btn:focus-visible {
    outline: 2px solid var(--wp--preset--color--bronze);
    outline-offset: 2px;
}

.masahat-header__menu-label {
    font-family: 'VIP Hakim', var(--wp--preset--font-family--latin-heading);
    font-size: 0.95rem;
    font-weight: normal;
    text-transform: none;
    letter-spacing: 0.01em;
}

/* Hamburger hidden on desktop (nav visible instead) */
.masahat-header__menu-btn {
    display: none;
}

/* ── Search panel ───────────────────────────────────────────────────────── */

.masahat-header__search {
    border-top: 1px solid var(--wp--preset--color--light-gray);
    background: var(--wp--preset--color--white);
}

.masahat-header__search-form {
    display: flex;
    align-items: center;
    max-width: 680px;
    margin: 0 auto;
    padding: 1rem var(--wp--preset--spacing--30);
    gap: 0.75rem;
}

.masahat-header__search-input {
    flex: 1;
    border: none;
    border-bottom: 1.5px solid var(--wp--preset--color--black);
    background: transparent;
    font-family: var(--wp--preset--font-family--latin-body);
    font-size: 1rem;
    padding: 0.4rem 0;
    color: var(--wp--preset--color--black);
    outline: none;
}

.masahat-header__search-input::placeholder {
    color: var(--wp--preset--color--warm-gray);
}

.masahat-header__search-submit,
.masahat-header__search-close {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--wp--preset--color--black);
    padding: 0.3rem;
    display: flex;
    align-items: center;
    opacity: 0.7;
    transition: opacity 0.15s;
}

.masahat-header__search-submit:hover,
.masahat-header__search-close:hover {
    opacity: 1;
}

/* ── Mobile ─────────────────────────────────────────────────────────────── */

@media (max-width: 768px) {
    .masahat-header__nav {
        display: none;
        position: fixed;
        inset: 72px 0 0 0;
        background: var(--wp--preset--color--black);
        overflow-y: auto;
        padding: 2rem var(--wp--preset--spacing--30) 3rem;
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        z-index: 490;
    }

    .masahat-header__nav.is-open {
        display: flex;
    }

    .masahat-header__menu {
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
        width: 100%;
    }

    .masahat-header__menu .menu-item > a {
        font-size: 1.2rem;
        color: var(--wp--preset--color--off-white);
        padding: 0.75rem 0;
        letter-spacing: 0.04em;
    }

    .masahat-header__menu .menu-item > a::after {
        display: none;
    }

    .masahat-header__menu .menu-item-has-children > a::before {
        display: none;
    }

    .masahat-header__menu .sub-menu {
        position: static;
        opacity: 1;
        pointer-events: auto;
        transform: none;
        box-shadow: none;
        border: none;
        background: transparent;
        padding: 0 0 0.5rem 1rem;
    }

    .masahat-header__menu .sub-menu .menu-item > a {
        font-size: 0.85rem;
        color: rgba(255, 255, 255, 0.6);
        padding: 0.35rem 0;
    }

    .masahat-header__menu-btn {
        display: flex;
    }
}

@media (max-width: 480px) {
    .masahat-header__logo img {
        height: 28px;
    }
}

/* ==========================================================================
   Single article — editorial layout (posts + publications)
   Inspired by koro.no: full-bleed hero → narrow header → constrained body
   ========================================================================== */

/* Breadcrumb */
.masahat-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.68rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--wp--preset--color--warm-gray);
    margin-bottom: var(--wp--preset--spacing--30);
}

.masahat-breadcrumb a {
    color: var(--wp--preset--color--warm-gray);
    text-decoration: none;
    transition: color 0.15s;
}

.masahat-breadcrumb a:hover {
    color: var(--wp--preset--color--black);
}

.masahat-breadcrumb [aria-current="page"] {
    color: var(--wp--preset--color--black);
    /* truncate long titles */
    max-width: 30ch;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Hero image — full-bleed, 16:9 */
.masahat-article__hero {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--wp--preset--color--light-gray);
}

.masahat-article__hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* Publication cover variant: narrower, centered, not full-bleed */
.masahat-article__hero--cover {
    max-width: 380px;
    margin: var(--wp--preset--spacing--40) auto 0;
    aspect-ratio: unset;
    box-shadow: 0 6px 32px rgba(0, 0, 0, 0.12);
}

.masahat-article__hero-img--cover {
    height: auto;
    object-fit: unset;
}

/* Content wrapper — constrained, centered */
.masahat-article__inner {
    max-width: 680px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30) var(--wp--preset--spacing--60);
}

/* Header — meta row + title */
.masahat-article__meta {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.masahat-article__category {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.68rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--wp--preset--color--bronze);
}

.masahat-article__date {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.68rem;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--wp--preset--color--warm-gray);
}

/* Separator dot between category and date */
.masahat-article__meta > * + *::before {
    content: '·';
    margin-right: 1rem;
    color: var(--wp--preset--color--light-gray);
}

.masahat-article__title-ar {
    font-family: var(--wp--preset--font-family--arabic-heading);
    font-size: clamp(1.2rem, 1rem + 1vw, 1.8rem);
    font-weight: 400;
    line-height: 1.4;
    color: var(--wp--preset--color--warm-gray);
    margin: 0 0 0.35em;
}

.masahat-article__title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: clamp(1.75rem, 1.4rem + 1.5vw, 2.6rem);
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -0.03em;
    color: var(--wp--preset--color--black);
    margin: 0 0 var(--wp--preset--spacing--20);
}

.masahat-article__author {
    font-size: 0.9rem;
    color: var(--wp--preset--color--warm-gray);
    margin: 0 0 var(--wp--preset--spacing--20);
}

.masahat-article__pdf-btn {
    margin-top: var(--wp--preset--spacing--20);
    display: inline-flex;
}

/* Divider between header and body */
.masahat-article__body {
    border-top: 1px solid var(--wp--preset--color--light-gray);
    padding-top: var(--wp--preset--spacing--30);
    margin-top: var(--wp--preset--spacing--20);
    font-size: 1.05rem;
    line-height: 1.75;
    color: var(--wp--preset--color--black);
}

.masahat-article__body p {
    margin-bottom: 1.4em;
}

.masahat-article__body p:last-child {
    margin-bottom: 0;
}

.masahat-article__body h2 {
    font-size: 1.3rem;
    font-weight: 500;
    letter-spacing: -0.02em;
    margin: 2em 0 0.6em;
}

.masahat-article__body h3 {
    font-size: 1.1rem;
    font-weight: 500;
    margin: 1.6em 0 0.5em;
}

.masahat-article__body a {
    color: var(--wp--preset--color--black);
    text-decoration: underline;
    text-decoration-color: var(--wp--preset--color--light-gray);
    text-underline-offset: 3px;
    transition: text-decoration-color 0.15s;
}

.masahat-article__body a:hover {
    text-decoration-color: var(--wp--preset--color--bronze);
}

.masahat-article__body blockquote {
    border-left: 3px solid var(--wp--preset--color--bronze);
    margin: 1.8em 0;
    padding: 0.4em 0 0.4em 1.4em;
    font-size: 1.15rem;
    color: var(--wp--preset--color--warm-gray);
    font-style: italic;
}

/* Footer — tags */
.masahat-article__footer {
    margin-top: var(--wp--preset--spacing--40);
    padding-top: var(--wp--preset--spacing--20);
    border-top: 1px solid var(--wp--preset--color--light-gray);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.masahat-article__footer-label {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.68rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--wp--preset--color--warm-gray);
    margin-right: 0.25rem;
}

.masahat-article__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.masahat-article__tag {
    font-size: 0.7rem;
    font-family: var(--wp--preset--font-family--latin-heading);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--wp--preset--color--warm-gray);
    border: 1px solid var(--wp--preset--color--light-gray);
    padding: 0.25rem 0.6rem;
    text-decoration: none;
    transition: border-color 0.15s, color 0.15s;
}

.masahat-article__tag:hover {
    border-color: var(--wp--preset--color--black);
    color: var(--wp--preset--color--black);
}

/* Related articles */
.masahat-related {
    margin-top: var(--wp--preset--spacing--40);
    padding-top: var(--wp--preset--spacing--30);
    border-top: 1px solid var(--wp--preset--color--light-gray);
}

.masahat-related__heading {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.68rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--wp--preset--color--warm-gray);
    margin: 0 0 var(--wp--preset--spacing--20);
}

.masahat-related__list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.masahat-related__item {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 1rem;
    align-items: start;
    padding: 0.9rem 0;
    border-bottom: 1px solid var(--wp--preset--color--light-gray);
    text-decoration: none;
    color: inherit;
    transition: opacity 0.15s;
}

.masahat-related__item:last-child {
    border-bottom: none;
}

.masahat-related__item:hover {
    opacity: 0.7;
}

.masahat-related__thumb {
    width: 72px;
    height: 52px;
    overflow: hidden;
    flex-shrink: 0;
    background: var(--wp--preset--color--light-gray);
}

.masahat-related__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.masahat-related__body {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.masahat-related__cat {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.62rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--wp--preset--color--bronze);
}

.masahat-related__title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.9rem;
    font-weight: 500;
    line-height: 1.3;
    color: var(--wp--preset--color--black);
    margin: 0;
}

.masahat-related__date {
    font-size: 0.65rem;
    color: var(--wp--preset--color--warm-gray);
    font-family: var(--wp--preset--font-family--latin-heading);
}

/* Remove Gutenberg default block padding inside article body */
.masahat-article__body .wp-block-group,
.masahat-article__body .wp-block-cover {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* ==========================================================================
   Accordion (masahat/accordion pattern)
   ========================================================================== */

.masahat-accordion {
    border-top: 1px solid var(--wp--preset--color--light-gray);
}

.masahat-accordion__item {
    border-bottom: 1px solid var(--wp--preset--color--light-gray);
    list-style: none;
}

.masahat-accordion__item summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1.1rem 0;
    font-family: var(--wp--preset--font-family--latin-heading);
    font-weight: 500;
    font-size: 1rem;
    cursor: pointer;
    user-select: none;
    list-style: none;
}

/* Remove default browser marker */
.masahat-accordion__item summary::-webkit-details-marker { display: none; }
.masahat-accordion__item summary::marker { content: none; }

/* Chevron via pseudo-element */
.masahat-accordion__item summary::after {
    content: '';
    display: block;
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: contain;
    transition: transform 0.2s ease;
}

.masahat-accordion__item[open] > summary::after {
    transform: rotate(180deg);
}

.masahat-accordion__item summary:hover {
    color: var(--wp--preset--color--bronze);
}

.masahat-accordion__content {
    padding-bottom: 1.25rem;
    color: var(--wp--preset--color--warm-gray);
    line-height: 1.65;
}

.masahat-accordion__content p:first-child { margin-top: 0; }
.masahat-accordion__content p:last-child  { margin-bottom: 0; }

/* Fade in on open */
.masahat-accordion__item[open] > .masahat-accordion__content {
    animation: masahat-accordion-open 0.18s ease;
}

@keyframes masahat-accordion-open {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ==========================================================================
   Global <details> / <summary> — editorial collapsible
   Applies to bare elements in post content, WYSIWYG fields, and templates.
   The .masahat-accordion variant above takes precedence where that class is used.
   ========================================================================== */

details {
    border-top: 1px solid var(--wp--preset--color--light-gray);
    border-bottom: 1px solid var(--wp--preset--color--light-gray);
    margin-bottom: -1px; /* collapse adjacent borders when stacked */
}

details + details {
    border-top: none; /* neighbouring <details> share one border */
}

summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1.1rem 0;
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: -0.01em;
    cursor: pointer;
    user-select: none;
    list-style: none;
    transition: color 0.15s ease;
}

/* Remove browser default marker */
summary::-webkit-details-marker { display: none; }
summary::marker               { content: none; }

/* Chevron — same SVG as the accordion */
summary::after {
    content: '';
    display: block;
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: contain;
    transition: transform 0.2s ease;
}

details[open] > summary::after {
    transform: rotate(180deg);
}

summary:hover {
    color: var(--wp--preset--color--bronze);
}

summary:focus-visible {
    outline: 2px solid var(--wp--preset--color--bronze);
    outline-offset: 3px;
    border-radius: 2px;
}

/* Content area inside open <details> */
details > *:not(summary) {
    padding-bottom: 1.25rem;
    color: var(--wp--preset--color--warm-gray);
    line-height: 1.65;
    animation: masahat-accordion-open 0.18s ease;
}

details > *:not(summary) p:first-child { margin-top: 0; }
details > *:not(summary) p:last-child  { margin-bottom: 0; }

/* ==========================================================================
   Festival takeover homepage (front-page-festival.php) — masahat-fhome
   Poster hero on black, then focused programme / artists / news sections.
   ========================================================================== */

/* Accessible heading — the title/dates are baked into the poster pixels, so
   this carries them for screen readers and SEO without rendering visually. */
.masahat-fhome__sr-title {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ---------- Poster hero ----------
   The designed festival poster rendered complete at its natural aspect ratio
   on the black backdrop — no crop, no scrim, no overlaid text — then the CTAs. */
.masahat-fhome__hero {
    background: var(--wp--preset--color--black);
    color: var(--wp--preset--color--off-white);
    padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--20);
}

.masahat-fhome__poster {
    display: block;
    max-width: 1200px;
    margin: 0 auto;
}

.masahat-fhome__poster-img {
    display: block;
    width: 100%;
    height: auto;
}

/* CTA row sits on the light page background, below the black poster hero. */
.masahat-fhome__cta-row {
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
}

.masahat-fhome__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    background: var(--wp--preset--color--bronze);
    color: var(--wp--preset--color--off-white);
    padding: 0.9rem 1.6rem;
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    text-decoration: none;
    border: 1px solid transparent;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.masahat-fhome__cta:hover,
.masahat-fhome__cta:focus-visible {
    background: var(--wp--preset--color--black);
    color: var(--wp--preset--color--off-white);
}

.masahat-fhome__cta--ghost {
    background: transparent;
    color: var(--wp--preset--color--black);
    border-color: var(--wp--preset--color--warm-gray);
}

.masahat-fhome__cta--ghost:hover,
.masahat-fhome__cta--ghost:focus-visible {
    background: var(--wp--preset--color--black);
    color: var(--wp--preset--color--off-white);
    border-color: var(--wp--preset--color--black);
}

/* ---------- Programme highlights ----------
   Curated events as square-image cards. 3-up grid on desktop; the mobile rail
   override lives in the responsive block below. A quarter-circle corner accent
   (rotating through the palette) and magenta hover carry the 2026 language;
   the --fest-* vars fall back so the block is safe outside the 2026 skin. */
.masahat-fhome__hl-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem 1.5rem;
}

.masahat-fhome__hl {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
}

.masahat-fhome__hl-media {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 14px;
    background: var(--fest-dark, var(--wp--preset--color--black));
}

.masahat-fhome__hl-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.masahat-fhome__hl:hover .masahat-fhome__hl-img,
.masahat-fhome__hl:focus-visible .masahat-fhome__hl-img {
    transform: scale(1.04);
}

/* Placeholder when an event has no image — festival wordmark on navy. */
.masahat-fhome__hl-fallback {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--wp--preset--font-family--arabic-heading);
    font-size: clamp(2rem, 6vw, 3rem);
    color: var(--fest-yellow, var(--wp--preset--color--off-white));
    opacity: 0.85;
}

/* Quarter-circle collage accent, bottom-inline-start corner of the image. */
.masahat-fhome__hl-media::after {
    content: "";
    position: absolute;
    bottom: 0;
    inset-inline-start: 0;
    width: 36px;
    height: 36px;
    background: var(--fest-red, var(--wp--preset--color--bronze));
    border-start-end-radius: 100%;
}

.masahat-fhome__hl:nth-child(4n+2) .masahat-fhome__hl-media::after { background: var(--fest-magenta, var(--wp--preset--color--bronze)); }
.masahat-fhome__hl:nth-child(4n+3) .masahat-fhome__hl-media::after { background: var(--fest-salmon, var(--wp--preset--color--sand)); }
.masahat-fhome__hl:nth-child(4n+4) .masahat-fhome__hl-media::after { background: var(--fest-yellow, var(--wp--preset--color--deep-green)); }

/* Type tag pinned to the image top-inline-start (base tag styling applies). */
.masahat-fhome__hl-tag {
    position: absolute;
    top: 0.75rem;
    inset-inline-start: 0.75rem;
}

.masahat-fhome__hl-body {
    padding-top: 0.9rem;
}

.masahat-fhome__hl-title-ar {
    font-family: var(--wp--preset--font-family--arabic);
    font-size: 0.9rem;
    color: var(--wp--preset--color--warm-gray);
    margin: 0 0 0.15rem;
}

.masahat-fhome__hl-title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: var(--wp--preset--font-size--md);
    font-weight: 500;
    letter-spacing: -0.01em;
    line-height: 1.25;
    margin: 0 0 0.4rem;
    transition: color 0.15s;
}

.masahat-fhome__hl:hover .masahat-fhome__hl-title,
.masahat-fhome__hl:focus-visible .masahat-fhome__hl-title {
    color: var(--fest-magenta, var(--wp--preset--color--bronze));
}

.masahat-fhome__hl-meta {
    display: block;
    font-size: var(--wp--preset--font-size--xs);
    color: var(--wp--preset--color--warm-gray);
}

/* ---------- Artists grid ---------- */
.masahat-fhome__artists-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem 1.5rem;
}

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
    .masahat-fhome__artists-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .masahat-fhome__hl-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    /* Highlights become a swipeable, edge-bleeding scroll-snap rail. */
    .masahat-fhome__hl-grid {
        grid-auto-flow: column;
        grid-template-columns: none;
        grid-auto-columns: 72%;
        gap: 1rem;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        margin-inline: calc(-1 * var(--wp--preset--spacing--20));
        padding-inline: var(--wp--preset--spacing--20);
        scroll-padding-inline: var(--wp--preset--spacing--20);
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .masahat-fhome__hl-grid::-webkit-scrollbar {
        display: none;
    }

    .masahat-fhome__hl {
        scroll-snap-align: start;
    }

    /* Artists become the same swipeable, edge-bleeding scroll-snap rail. */
    .masahat-fhome__artists-grid {
        grid-auto-flow: column;
        grid-template-columns: none;
        grid-auto-columns: 42%;
        gap: 1rem;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        margin-inline: calc(-1 * var(--wp--preset--spacing--20));
        padding-inline: var(--wp--preset--spacing--20);
        scroll-padding-inline: var(--wp--preset--spacing--20);
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .masahat-fhome__artists-grid::-webkit-scrollbar {
        display: none;
    }

    .masahat-fhome__artists-grid .masahat-speaker-card {
        scroll-snap-align: start;
    }

    /* Festival "Aktuelt" news becomes the same rail; the homepage grid
       (.masahat-home__news-list outside .masahat-fhome__news) is untouched. */
    .masahat-fhome__news .masahat-home__news-list {
        grid-auto-flow: column;
        grid-template-columns: none;
        grid-auto-columns: 72%;
        gap: 1rem;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        margin-inline: calc(-1 * var(--wp--preset--spacing--20));
        padding-inline: var(--wp--preset--spacing--20);
        scroll-padding-inline: var(--wp--preset--spacing--20);
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .masahat-fhome__news .masahat-home__news-list::-webkit-scrollbar {
        display: none;
    }

    .masahat-fhome__news .masahat-home__news-item {
        scroll-snap-align: start;
    }

    .masahat-fhome__cta-row {
        flex-direction: column;
        align-items: stretch;
    }

    .masahat-fhome__cta {
        justify-content: center;
    }
}

/* ==========================================================================
   Festival takeover — 2026 edition skin (masahat-fhome--2026)
   A scoped colour + accent layer over the neutral masahat-fhome structure.
   Everything here is namespaced to .masahat-fhome--2026 so the palette can't
   leak into the rest of the site; a future edition is a new modifier (or wire
   these vars to ACF colour pickers on the festival page).
   Design language: the full-bleed poster is the one bold moment; below it a
   dark ticker band, vivid date blocks, and a recurring quarter-circle motif
   extend the cover's geometric collage without competing with it.
   ========================================================================== */
.masahat-fhome--2026 {
    --fest-yellow:  #F2C744;
    --fest-red:     #D0342C;
    --fest-magenta: #E0187E;
    --fest-mauve:   #C88FA6;
    --fest-salmon:  #D9A08C;
    --fest-dark:    #1A1030;
}

/* ---------- Hero: full-bleed poster ----------
   Each breakpoint gets a native crop, so no letterbox — drop the black box
   and centring the neutral base applies, and let the artwork span edge to edge. */
.masahat-fhome--2026 .masahat-fhome__hero {
    background: none;
    padding: 0;
}

.masahat-fhome--2026 .masahat-fhome__poster {
    max-width: none;
}

/* ---------- CTAs: yellow pill + navy ghost ---------- */
.masahat-fhome--2026 .masahat-fhome__cta-row {
    padding-top: var(--wp--preset--spacing--50);
}

.masahat-fhome--2026 .masahat-fhome__cta {
    background: var(--fest-yellow);
    color: var(--fest-dark);
    border-color: transparent;
    border-radius: 999px;
}

.masahat-fhome--2026 .masahat-fhome__cta:hover,
.masahat-fhome--2026 .masahat-fhome__cta:focus-visible {
    background: var(--fest-magenta);
    color: #fff;
}

.masahat-fhome--2026 .masahat-fhome__cta--ghost {
    background: transparent;
    color: var(--fest-dark);
    border-color: var(--fest-dark);
}

.masahat-fhome--2026 .masahat-fhome__cta--ghost:hover,
.masahat-fhome--2026 .masahat-fhome__cta--ghost:focus-visible {
    background: var(--fest-dark);
    color: var(--fest-yellow);
    border-color: var(--fest-dark);
}

/* ---------- Lead intro ----------
   Short blurb about the edition's theme, between the ticker and the programme.
   Centred, narrow measure, larger than body — with a short festival-magenta
   rule above it echoing the collage accents. */
.masahat-fhome__lead {
    text-align: center;
}

.masahat-fhome__lead-inner {
    max-width: 680px;
    margin: 0 auto;
}

.masahat-fhome__lead-inner::before {
    content: "";
    display: block;
    width: 44px;
    height: 3px;
    margin: 0 auto 1.5rem;
    background: var(--fest-magenta, var(--wp--preset--color--bronze));
}

.masahat-fhome__lead-inner > :first-child { margin-top: 0; }
.masahat-fhome__lead-inner > :last-child  { margin-bottom: 0; }

.masahat-fhome__lead-inner p {
    font-size: var(--wp--preset--font-size--md);
    line-height: 1.65;
    color: var(--wp--preset--color--black);
}

.masahat-fhome__lead-inner p + p {
    margin-top: 1rem;
}

/* Multilingual intro: the shared language tabs are left-aligned by default,
   which reads as a misalignment inside this centred lead. Centre the labels
   and let the panel text follow the section's own alignment. */
.masahat-fhome__lead-inner .masahat-lang-tabs__labels {
    justify-content: center;
    border-bottom: 0;
    margin-bottom: 1.25rem;
}

.masahat-fhome__lead-inner .masahat-lang-tabs__label {
    padding-inline: 0.9rem;
    margin-right: 0;
}

.masahat-fhome__lead-inner .masahat-lang-tabs__panel > :first-child,
.masahat-fhome__lead-inner .masahat-lang-tabs__single > :first-child {
    margin-top: 0;
}

.masahat-fhome__lead-inner .masahat-lang-tabs__panel > :last-child,
.masahat-fhome__lead-inner .masahat-lang-tabs__single > :last-child {
    margin-bottom: 0;
}

/* ---------- Ticker ----------
   Dark band running the festival tagline. The track holds two identical
   groups; translating it by -50% loops seamlessly. */
.masahat-fhome__ticker {
    background: var(--fest-dark);
    overflow: hidden;
    padding: 0.85rem 0;
    /* pull flush against the page edges regardless of any inherited padding */
    margin-inline: 0;
}

.masahat-fhome__ticker-track {
    display: flex;
    width: max-content;
    animation: masahat-fhome-ticker 32s linear infinite;
}

.masahat-fhome__ticker-group {
    display: flex;
    flex-shrink: 0;
}

.masahat-fhome__ticker-item {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--fest-yellow);
    white-space: nowrap;
    padding: 0 1.6rem;
    display: inline-flex;
    align-items: center;
}

/* Diamond separator between phrases, in the collage magenta. */
.masahat-fhome__ticker-item::after {
    content: "";
    width: 7px;
    height: 7px;
    margin-inline-start: 3.2rem;
    background: var(--fest-magenta);
    transform: rotate(45deg);
}

.masahat-fhome__ticker:hover .masahat-fhome__ticker-track {
    animation-play-state: paused;
}

@keyframes masahat-fhome-ticker {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

/* ---------- Section labels: quarter-circle motif ----------
   A small quarter-circle leads each section label, rotating through the
   collage palette — the cover's geometry, carried down the page. */
.masahat-fhome--2026 .masahat-section-label {
    position: relative;
    color: var(--fest-red);
    padding-inline-start: 1.35rem;
}

.masahat-fhome--2026 .masahat-section-label::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 0.05em;
    width: 0.8em;
    height: 0.8em;
    background: var(--fest-magenta);
    /* quarter circle: round only the top-inline-start corner fully */
    border-start-start-radius: 100%;
}

.masahat-fhome--2026 .masahat-fhome__artists .masahat-section-label::before { background: var(--fest-red); }
.masahat-fhome--2026 .masahat-fhome__news    .masahat-section-label::before { background: var(--fest-salmon); }
.masahat-fhome--2026 .masahat-fhome__support .masahat-section-label::before { background: var(--fest-mauve); }

/* Event/category tag pill in festival magenta rather than the site bronze.
   Off-white text on magenta clears WCAG AA. */
.masahat-fhome--2026 .masahat-event__tag {
    background: var(--fest-magenta);
    color: var(--wp--preset--color--off-white);
}

/* ---------- Partners & donors ---------- */
.masahat-fhome__support {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
    align-items: start;
    border-top: 1px solid var(--wp--preset--color--light-gray);
    padding-top: var(--wp--preset--spacing--50);
}

.masahat-fhome__partners-logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.75rem 2.25rem;
    margin-top: 1.1rem;
}

.masahat-fhome__partner-logo {
    max-height: 56px;
    width: auto;
    height: auto;
    opacity: 0.75;
    transition: opacity 0.2s ease;
}

.masahat-fhome__partner-logo:hover {
    opacity: 1;
}

.masahat-fhome__donors-list {
    list-style: none;
    margin: 1.1rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    font-size: var(--wp--preset--font-size--sm);
    color: var(--wp--preset--color--warm-gray);
}

/* ---------- Motion: freeze the ticker when the user prefers reduced motion. */
@media (prefers-reduced-motion: reduce) {
    .masahat-fhome__ticker-track {
        animation: none;
        /* show a single, non-scrolling group */
        width: 100%;
        justify-content: center;
    }
    .masahat-fhome__ticker-group:nth-child(2) {
        display: none;
    }
}

/* ---------- Responsive ---------- */
@media (max-width: 600px) {
    .masahat-fhome__support {
        grid-template-columns: 1fr;
        gap: var(--wp--preset--spacing--40);
    }
}

/* ==========================================================================
   Mini Masahat — children's festival (page-mini-masahat.php)
   A playful sub-brand of the main identity. Everything is scoped under
   .masahat-mini so the brighter palette never leaks into the rest of the
   site. The page also carries .masahat-festival, so the shared tail sections
   (speakers, related posts, partners, donors) keep their base layout and are
   only re-tinted here.
   ========================================================================== */

.masahat-mini {
    --mini-yellow:   #F2C744;
    --mini-teal:     #2FB5B8;
    --mini-lavender: #8B7FC9;
    --mini-magenta:  #D6247E;
    --mini-coral:    #E8735A;
    --mini-green:    #3FA876;
    --mini-navy:     #35306B;
    --mini-radius:   22px;
}

/* ---------- Hero: playful frame ----------
   Reuse the festival hero structure but trade the black letterbox for a soft
   collage-tinted gradient and round the lower corners. */
.masahat-mini__hero-wrap {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--20) 0;
}

.masahat-mini .masahat-festival__hero {
    background: linear-gradient(120deg,
        color-mix(in srgb, var(--mini-teal) 22%, white),
        color-mix(in srgb, var(--mini-lavender) 22%, white) 45%,
        color-mix(in srgb, var(--mini-yellow) 28%, white));
    border-radius: var(--mini-radius);
    aspect-ratio: 16 / 8;
}

.masahat-mini .masahat-festival__hero-bg {
    filter: blur(30px) brightness(1.02);
    opacity: 0.55;
    transform: scale(1.2);
}

/* Round date sticker overlapping the hero — the promo-card "13. sep" motif. */
.masahat-mini__date-sticker {
    position: absolute;
    top: calc(var(--wp--preset--spacing--20) - 14px);
    inset-inline-end: calc(var(--wp--preset--spacing--20) + 12px);
    z-index: 2;
    display: grid;
    place-content: center;
    width: 92px;
    height: 92px;
    padding: 0 0.4rem;
    border-radius: 50%;
    background: var(--mini-yellow);
    color: var(--mini-navy);
    font-family: var(--wp--preset--font-family--latin-heading);
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.1;
    text-align: center;
    transform: rotate(-8deg);
    box-shadow: 0 8px 22px rgba(53, 48, 107, 0.22);
}

.masahat-mini__hero-content {
    padding-top: var(--wp--preset--spacing--30);
}

/* Rounder, friendlier headline — drop the main identity's tight tracking. */
.masahat-mini .masahat-festival__title {
    color: var(--mini-navy);
    letter-spacing: -0.01em;
}

.masahat-mini .masahat-festival__title-ar {
    color: color-mix(in srgb, var(--mini-navy) 70%, white);
}

.masahat-mini .masahat-festival__brochure-btn {
    color: var(--mini-navy);
    border-color: var(--mini-navy);
    border-radius: 999px;
    letter-spacing: 0.06em;
}

.masahat-mini .masahat-festival__brochure-btn:hover {
    background: var(--mini-navy);
    color: #fff;
}

/* ---------- Section labels: full-circle "sun" dot ---------- */
.masahat-mini .masahat-section-label {
    position: relative;
    border-bottom: none;
    color: var(--mini-navy);
    letter-spacing: 0.1em;
    padding-inline-start: 1.4rem;
}

.masahat-mini .masahat-section-label::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 0.05em;
    width: 0.85em;
    height: 0.85em;
    border-radius: 50%;
    background: var(--mini-magenta);
}

.masahat-mini__programme .masahat-section-label::before          { background: var(--mini-magenta); }
.masahat-mini .masahat-festival__speakers .masahat-section-label::before { background: var(--mini-coral); }
.masahat-mini .masahat-festival__posts .masahat-section-label::before    { background: var(--mini-green); }
.masahat-mini__faq .masahat-section-label::before                { background: var(--mini-lavender); }

/* ---------- Practical info strip: pill badges ---------- */
.masahat-mini__practical {
    max-width: 1100px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--20) 0;
}

.masahat-mini__badges {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 0.75rem;
}

.masahat-mini__badge {
    --c: var(--mini-lavender);
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--c) 15%, white);
    color: color-mix(in srgb, var(--c) 74%, black);
    font-size: 0.85rem;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    transition: transform 0.15s ease, background 0.15s ease;
}

a.masahat-mini__badge:hover {
    background: color-mix(in srgb, var(--c) 24%, white);
    transform: translateY(-2px);
}

.masahat-mini__badge-icon {
    color: var(--c);
    flex-shrink: 0;
}

.masahat-mini__badge--date  { --c: var(--mini-lavender); }
.masahat-mini__badge--time  { --c: var(--mini-teal); }
.masahat-mini__badge--place { --c: var(--mini-magenta); }
.masahat-mini__badge--entry { --c: var(--mini-green); }
.masahat-mini__badge--age   { --c: var(--mini-coral); }
.masahat-mini__badge--food  { --c: var(--mini-navy); }

/* ---------- Intro ---------- */
.masahat-mini__intro {
    border-bottom: none;
}

/* ---------- Programme / Høydepunkter ---------- */
.masahat-mini__programme {
    max-width: 1100px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20) var(--wp--preset--spacing--50);
}

.masahat-mini__programme-header {
    margin-bottom: var(--wp--preset--spacing--30);
}

.masahat-mini__cards {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--wp--preset--spacing--30);
}

.masahat-mini__card {
    --mini-c: var(--mini-lavender);
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: var(--mini-radius);
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--mini-c) 26%, white);
    box-shadow: 0 10px 26px rgba(53, 48, 107, 0.07);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.masahat-mini__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 34px rgba(53, 48, 107, 0.14);
}

.masahat-mini__card--verksted     { --mini-c: var(--mini-magenta); }
.masahat-mini__card--forestilling { --mini-c: var(--mini-coral); }
.masahat-mini__card--kurs         { --mini-c: var(--mini-teal); }
.masahat-mini__card--mat          { --mini-c: var(--mini-yellow); }
.masahat-mini__card--fortelling   { --mini-c: var(--mini-lavender); }

.masahat-mini__card-img {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: color-mix(in srgb, var(--mini-c) 16%, white);
}

.masahat-mini__card-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}

.masahat-mini__card:hover .masahat-mini__card-photo {
    transform: scale(1.05);
}

.masahat-mini__card-body {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding: var(--wp--preset--spacing--20);
    /* colour key when the card has no image */
    border-top: 4px solid var(--mini-c);
}

.masahat-mini__card-img + .masahat-mini__card-body {
    border-top: none;
}

.masahat-mini__card-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.masahat-mini__type-tag {
    display: inline-block;
    padding: 0.22rem 0.7rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--mini-c) 16%, white);
    color: color-mix(in srgb, var(--mini-c) 72%, black);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.masahat-mini__dropin-tag {
    display: inline-block;
    padding: 0.22rem 0.7rem;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--mini-navy) 30%, white);
    color: var(--mini-navy);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.masahat-mini__card-title {
    font-family: var(--wp--preset--font-family--latin-heading);
    font-size: 1.15rem;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: var(--mini-navy);
    margin: 0;
}

.masahat-mini__card-title-ar {
    font-family: var(--wp--preset--font-family--arabic-heading);
    font-size: 1rem;
    line-height: 1.4;
    color: color-mix(in srgb, var(--mini-navy) 70%, white);
    margin: 0;
}

.masahat-mini__card-meta {
    list-style: none;
    margin: 0.15rem 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.9rem;
}

.masahat-mini__card-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.82rem;
    color: var(--wp--preset--color--warm-gray);
}

.masahat-mini__card-meta-item svg {
    color: var(--mini-c);
    flex-shrink: 0;
}

.masahat-mini__card-age {
    padding: 0.1rem 0.55rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--mini-navy) 8%, white);
    color: var(--mini-navy);
    font-weight: 600;
}

.masahat-mini__card-desc {
    font-size: 0.88rem;
    line-height: 1.55;
    color: var(--wp--preset--color--warm-gray);
    margin: 0.15rem 0 0;
}

.masahat-mini__card-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    margin-top: 0.5rem;
}

.masahat-mini__signup-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 1.1rem;
    border-radius: 999px;
    background: var(--mini-c);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-decoration: none;
    transition: filter 0.15s ease, transform 0.15s ease;
}

/* Yellow needs dark text to stay legible. */
.masahat-mini__card--mat .masahat-mini__signup-btn {
    color: var(--mini-navy);
}

.masahat-mini__signup-btn:hover {
    filter: brightness(0.93);
    transform: translateX(2px);
}

.masahat-mini__read-more {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--mini-navy);
    text-decoration: none;
    border-bottom: 1px solid color-mix(in srgb, var(--mini-navy) 35%, white);
    padding-bottom: 1px;
    transition: color 0.15s ease, border-color 0.15s ease;
}

.masahat-mini__read-more svg {
    transition: transform 0.15s ease;
}

.masahat-mini__read-more:hover {
    color: var(--mini-c);
    border-color: var(--mini-c);
}

.masahat-mini__read-more:hover svg {
    transform: translateX(2px);
}

/* ---------- For the grown-ups (FAQ) ---------- */
.masahat-mini__faq {
    max-width: 760px;
    margin: 0 auto;
    padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20);
}

.masahat-mini__faq-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.masahat-mini__faq-item {
    background: #fff;
    border: 1px solid color-mix(in srgb, var(--mini-lavender) 24%, white);
    border-radius: 16px;
    padding: 0.35rem 1.15rem;
}

.masahat-mini__faq-q {
    cursor: pointer;
    list-style: none;
    padding: 0.75rem 0;
    font-weight: 600;
    color: var(--mini-navy);
    position: relative;
    padding-inline-end: 1.75rem;
}

.masahat-mini__faq-q::-webkit-details-marker { display: none; }

.masahat-mini__faq-q::after {
    content: "+";
    position: absolute;
    inset-inline-end: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.3rem;
    font-weight: 400;
    color: var(--mini-magenta);
    transition: transform 0.2s ease;
}

.masahat-mini__faq-item[open] .masahat-mini__faq-q::after {
    content: "–";
}

.masahat-mini__faq-a {
    padding: 0 0 0.85rem;
    color: var(--wp--preset--color--warm-gray);
    line-height: 1.6;
}

.masahat-mini__faq-a > :first-child { margin-top: 0; }
.masahat-mini__faq-a > :last-child  { margin-bottom: 0; }

/* ---------- Re-tint inherited festival tail sections ---------- */
.masahat-mini .masahat-festival__speakers,
.masahat-mini .masahat-festival__posts,
.masahat-mini .masahat-festival__partners,
.masahat-mini .masahat-festival__donors {
    border-top-color: color-mix(in srgb, var(--mini-lavender) 22%, white);
}

.masahat-mini .masahat-speaker-card__img-wrap {
    border-radius: 16px;
    overflow: hidden;
}

/* ---------- Responsive ---------- */
@media (max-width: 640px) {
    .masahat-mini .masahat-festival__hero {
        aspect-ratio: 4 / 3;
    }
    .masahat-mini__date-sticker {
        width: 74px;
        height: 74px;
        font-size: 0.9rem;
    }
    .masahat-mini__cards {
        grid-template-columns: 1fr;
    }
}

/* Respect reduced-motion: drop the decorative hover shifts.
   `a.masahat-mini__badge:hover` must keep the element selector — the transform
   it overrides is declared at that specificity. */
@media (prefers-reduced-motion: reduce) {
    .masahat-mini__card:hover,
    a.masahat-mini__badge:hover,
    .masahat-mini__signup-btn:hover,
    .masahat-mini__read-more:hover svg,
    .masahat-mini__card:hover .masahat-mini__card-photo {
        transform: none;
    }
}
