/* site palette */
html:root {
    --bg: #100F0C;
    --surface: #232019;
    --surface-alt: #1A1811;
    --text: #F0EFEC;
    --text-muted: #BFBBB0;
    --border: #39352A;
    --primary: #D19F7F;
    --primary-hover: #C68861;
    --on-primary: #111111;
    --primary-text: #D19F7F;
    --accent: #7749C2;
    --on-accent: #FFFFFF;
    --accent-text: #B095DB;
    --dark-band: #1D122E;
    --on-dark: #FFFFFF;
    --on-dark-muted: #C3C0B6;
    --brand-btn-bg: #111111;
    --brand-btn-text: #D19F7F;
    --section-alt-bg: #1A1811;
    --dark-band-bg: radial-gradient(55% 130% at 18% 0%, #382653 0%, #302048 22%, #27193C 48%, #201432 74%, #1D122E 100%);
    --brand-band-bg: #D19F7F;
    --hero-bg: radial-gradient(70% 110% at 18% 0%, #552600 0%, #401F08 22%, #2A180C 48%, #19110D 74%, #100F0C 100%);
    --on-hero: #F0EFEC;
    --footer-bg: radial-gradient(55% 130% at 18% 0%, #382653 0%, #302048 22%, #27193C 48%, #201432 74%, #1D122E 100%);
    --on-footer: #FFFFFF;
    --on-footer-muted: #C3C0B6;
}

/* /site palette */

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

body {
    font-family: 'Proza Libre', sans-serif;
    background-color: var(--bg);
    color: var(--text);
    margin: 0;
    padding: 0;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
    text-decoration: none;
    transition: color 150ms ease-out, background-color 150ms ease-out, border-color 150ms ease-out;
}

button {
    font-family: inherit;
    border: none;
    cursor: pointer;
    transition: color 150ms ease-out, background-color 150ms ease-out, border-color 150ms ease-out;
}

.text-muted {
    color: var(--text-muted) !important;
}

.mg-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background-color: var(--primary);
    color: var(--on-primary);
    padding: 12px 24px;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border-radius: 0;
    text-decoration: none;
    border: 1px solid transparent;
    cursor: pointer;
}

.mg-btn:hover {
    background-color: var(--primary-hover);
    color: var(--on-primary);
}

.mg-btn-alt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background-color: transparent;
    color: var(--primary-text);
    padding: 12px 24px;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border-radius: 0;
    border: 1px solid var(--border);
    text-decoration: none;
    cursor: pointer;
}

.mg-btn-alt:hover {
    border-color: var(--primary);
    color: var(--primary);
}

.mg-card {
    --mg-card-pad: 24px;
    background-color: var(--surface);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 0;
    padding: var(--mg-card-pad);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: border-color 150ms ease-out, transform 150ms ease-out;
}

@media (max-width: 768px) {
    .mg-card {
        --mg-card-pad: 16px;
    }
}

.mg-card:hover {
    border-color: var(--primary);
    transform: translateY(-2px);
}

.mg-card:not([class*="row"]):not([class*="grid"]):not([class*="horizontal"])>.mg-media:first-child {
    margin: calc(-1 * var(--mg-card-pad)) calc(-1 * var(--mg-card-pad)) var(--mg-card-pad);
    border-radius: 0;
    border: 0;
}

.mg-media {
    display: block;
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    flex-shrink: 0;
    flex-grow: 0;
    border-radius: 0;
    overflow: hidden;
}

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

.mg-eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--primary);
    margin-bottom: 8px;
}

.mg-title {
    font-size: 36px;
    font-weight: 700;
    line-height: 1.25;
    color: var(--text);
    margin: 0 0 16px 0;
    letter-spacing: -0.02em;
}

@media (max-width: 768px) {
    .mg-title {
        font-size: 26px;
    }
}

.mg-badge {
    display: inline-flex;
    align-items: center;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    padding: 4px 8px;
    background-color: var(--surface-alt);
    color: var(--primary);
    border: 1px solid var(--border);
    border-radius: 0;
}

.mg-icon {
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0;
    background-color: var(--primary);
    color: var(--on-primary);
    font-size: 24px;
    flex-shrink: 0;
}

.mg-section {
    background-color: var(--bg);
    padding-top: 80px;
    padding-bottom: 80px;
}

.mg-section-alt {
    background-color: var(--section-alt-bg, var(--surface-alt));
    padding-top: 80px;
    padding-bottom: 80px;
}

.mg-section-dark {
    background: var(--dark-band-bg, var(--dark-band));
    color: var(--on-dark);
    padding-top: 80px;
    padding-bottom: 80px;
}

.mg-section-brand {
    background: var(--brand-band-bg, var(--primary));
    color: var(--on-primary);
    padding-top: 80px;
    padding-bottom: 80px;
}

@media (max-width: 768px) {

    .mg-section,
    .mg-section-alt,
    .mg-section-dark,
    .mg-section-brand {
        padding-top: 48px;
        padding-bottom: 48px;
    }
}

.mg-section-brand .mg-btn {
    background-color: var(--brand-btn-bg);
    color: var(--brand-btn-text);
}

.mg-section-brand .mg-btn:hover {
    background-color: #000000;
}

.mg-section-brand .mg-btn-alt {
    border-color: var(--on-primary);
    color: var(--on-primary);
}

.mg-section-brand .mg-btn-alt:hover {
    background-color: rgba(0, 0, 0, 0.08);
}

.mg-on-dark,
.mg-section-dark {
    color: var(--on-dark);
}

.mg-on-dark h1,
.mg-on-dark h2,
.mg-on-dark h3,
.mg-on-dark h4,
.mg-on-dark p,
.mg-on-dark a,
.mg-section-dark h1,
.mg-section-dark h2,
.mg-section-dark h3,
.mg-section-dark h4,
.mg-section-dark p,
.mg-section-dark a {
    color: var(--on-dark);
}

.mg-on-dark .text-muted,
.mg-section-dark .text-muted {
    color: var(--on-dark-muted) !important;
}

.mg-on-dark .mg-title,
.mg-section-dark .mg-title {
    color: var(--on-dark);
}

.mg-on-dark .mg-eyebrow,
.mg-section-dark .mg-eyebrow {
    color: var(--primary);
}

.mg-on-dark .mg-btn-alt,
.mg-section-dark .mg-btn-alt {
    border-color: var(--on-dark);
    color: var(--on-dark);
}

.mg-on-dark .mg-btn-alt:hover,
.mg-section-dark .mg-btn-alt:hover {
    border-color: var(--primary);
    color: var(--primary);
}

.mg-section-dark .mg-card,
.mg-on-dark .mg-card {
    background-color: var(--surface);
    color: var(--text);
}

.mg-section-dark .mg-card h1,
.mg-section-dark .mg-card h2,
.mg-section-dark .mg-card h3,
.mg-section-dark .mg-card h4,
.mg-section-dark .mg-card p,
.mg-section-dark .mg-card a,
.mg-on-dark .mg-card h1,
.mg-on-dark .mg-card h2,
.mg-on-dark .mg-card h3,
.mg-on-dark .mg-card h4,
.mg-on-dark .mg-card p,
.mg-on-dark .mg-card a {
    color: var(--text);
}

.mg-section-dark .mg-card .text-muted,
.mg-on-dark .mg-card .text-muted {
    color: var(--text-muted) !important;
}

.mg-card:not([class*="row"]):not([class*="grid"]):not([class*="horizontal"]):not([class*="list"]):not([class*="side"]):not([class*="split"]):not([class*="wide"]):not([class*="inline"])>.mg-media:first-child {
    width: calc(100% + 2 * var(--mg-card-pad, 0px));
    max-width: none
}


/* ===== header ===== */
.dinera-header {
    font-family: var(--font-family-base, 'Proza Libre', sans-serif);
    background-color: var(--surface);
}

.dinera-header .dinera-header__nav-link {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text);
    padding: 8px 0;
    transition: color 150ms ease-out;
    cursor: pointer;
    background: transparent;
    border: none;
}

.dinera-header .dinera-header__nav-link:hover,
.dinera-header .dinera-header__nav-link:focus-visible {
    color: var(--primary);
    outline: none;
}

.dinera-header .dinera-header__mobile-link {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text);
    padding: 10px 12px;
    border-left: 2px solid transparent;
    transition: all 150ms ease-out;
    display: block;
}

.dinera-header .dinera-header__mobile-link:hover,
.dinera-header .dinera-header__mobile-link:focus-visible {
    color: var(--primary);
    background-color: var(--surface-alt);
    border-left-color: var(--primary);
}

.dinera-header .dinera-header__cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding: 10px 18px;
}

/* ===== hero ===== */
.hero-dinera-block {
    background: var(--hero-bg);
    color: var(--on-hero);
}

.hero-dinera-block .hero-watermark {
    z-index: 0;
}

.hero-dinera-block .hero-action-btn {
    border-radius: 0;
    min-height: 48px;
}

.hero-dinera-block .hero-action-btn-alt {
    border-radius: 0;
    min-height: 48px;
}

.hero-dinera-block .hero-photo-frame {
    aspect-ratio: 4 / 5;
    width: 100%;
    border-radius: 0;
}

.hero-dinera-block .hero-slide {
    width: 100%;
    height: 100%;
}

.hero-dinera-block .hero-slide-caption {
    backdrop-filter: blur(4px);
}

.hero-dinera-block .hero-slider-dot {
    height: 9px;
    width: 9px;
    border-radius: 9999px;
    background-color: var(--border);
    transition: width 150ms ease-out, background-color 150ms ease-out;
    border: none;
    padding: 0;
    cursor: pointer;
}

.hero-dinera-block .hero-slider-dot-active {
    width: 28px;
    background-color: var(--primary);
}

@media (max-width: 767px) {
    .hero-dinera-block .hero-photo-frame {
        max-height: 420px;
    }
}

/* ===== online_report ===== */
.dinera-live-report {
    color: var(--text);
    background: var(--bg);
}

.dinera-live-report .dinera-filter-pill {
    border-radius: 9999px;
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 600;
    padding: 6px 14px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: color 150ms ease-out, background-color 150ms ease-out, border-color 150ms ease-out;
    cursor: pointer;
}

.dinera-live-report .dinera-filter-pill:hover {
    border-color: var(--primary);
    color: var(--text);
}

.dinera-live-report .dinera-filter-pill.active {
    background: var(--primary);
    color: var(--on-primary);
    border-color: var(--primary);
}

.dinera-live-report .dinera-action-btn {
    border-radius: 9999px;
    border: 1px solid var(--border);
    background: var(--surface-alt);
    color: var(--text);
    font-size: 12px;
    font-weight: 600;
    padding: 6px 14px;
    transition: border-color 150ms ease-out, background-color 150ms ease-out;
    cursor: pointer;
}

.dinera-live-report .dinera-action-btn:hover {
    border-color: var(--primary);
    background: var(--surface);
}

.dinera-live-report .dinera-marker-square {
    position: absolute;
    left: -21px;
    top: 24px;
    width: 10px;
    height: 10px;
    background: var(--primary);
    border: 2px solid var(--bg);
}

@media (min-width: 768px) {
    .dinera-live-report .dinera-marker-square {
        left: -37px;
    }
}

.dinera-live-report .dinera-timeline-entry:last-child {
    margin-bottom: 0;
}

/* ===== opinions_and_columns ===== */
.opinions-block {
    position: relative;
    overflow: hidden;
}

.opinions-block .opinions-container {
    width: 100%;
    max-width: 1240px;
    margin-left: auto;
    margin-right: auto;
}

.opinions-block .opinions-filter-btn {
    transition: color 150ms ease-out, background-color 150ms ease-out, border-color 150ms ease-out;
    color: var(--text-muted);
    background-color: var(--surface);
    border: 1px solid var(--border);
}

.opinions-block .opinions-filter-btn:hover {
    color: var(--text);
    border-color: var(--primary);
}

.opinions-block .opinions-filter-btn.opinions-filter-active {
    background-color: var(--primary);
    color: var(--on-primary);
    border-color: var(--primary);
}

.opinions-block .opinions-card {
    border-radius: 0;
    transition: transform 150ms ease-out, border-color 150ms ease-out;
}

.opinions-block .opinions-card:hover {
    transform: translateY(-2px);
}

.opinions-block .opinions-card-hidden {
    display: none !important;
}

@media (max-width: 767px) {
    .opinions-block .opinions-grid {
        grid-template-columns: 1fr;
    }
}

/* ===== event_poster ===== */
.dinera-poster-block .dinera-event-card {
    border-radius: 0;
    transition: border-color 0.15s ease-out;
}

.dinera-poster-block .dinera-event-card:hover {
    border-color: var(--primary);
}

.dinera-poster-block .dinera-tab-btn {
    background-color: var(--surface);
    color: var(--text);
    border-color: var(--border);
    outline: none;
    cursor: pointer;
}

.dinera-poster-block .dinera-tab-btn:hover {
    border-color: var(--primary);
    color: var(--primary-text);
}

.dinera-poster-block .dinera-tab-btn.dinera-tab-active {
    background-color: var(--primary);
    color: var(--on-primary);
    border-color: var(--primary);
}

.dinera-poster-block .dinera-card-hidden {
    display: none !important;
}

/* ===== news_grid ===== */
.dinera-news-stream-section {
    background-color: var(--bg);
}

.dinera-news-stream-section .dinera-stream-card {
    position: relative;
    border-radius: 0;
    transition: border-color 150ms ease-out;
}

.dinera-news-stream-section .dinera-stream-card:hover {
    border-color: var(--primary);
}

.dinera-news-stream-section .dinera-stream-media img {
    transition: transform 150ms ease-out;
}

.dinera-news-stream-section .dinera-stream-card:hover .dinera-stream-media img {
    transform: scale(1.02);
}

.dinera-news-stream-section .dinera-card-title a {
    overflow-wrap: anywhere;
    hyphens: auto;
}

.dinera-news-stream-section .dinera-stream-desc {
    overflow-wrap: anywhere;
}

.dinera-news-stream-section .dinera-card-btn {
    border-radius: 0;
}

.dinera-news-stream-section .dinera-stream-browse-btn {
    border-radius: 0;
}

@media (max-width: 767px) {
    .dinera-news-stream-section .dinera-card-footer {
        flex-direction: row;
        align-items: center;
    }
}

/* ===== footer ===== */
.dinera-footer {
    background: var(--footer-bg, radial-gradient(55% 130% at 18% 0%, #382653 0%, #302048 22%, #27193C 48%, #201432 74%, #1D122E 100%));
    border-top: 1px solid var(--border, #39352A);
}

.dinera-footer__logo {
    max-width: 45px;
    max-height: 45px;
}

.dinera-footer__address,
.dinera-footer__mandate,
.dinera-footer__contact-link {
    overflow-wrap: anywhere;
    hyphens: auto;
}

.dinera-footer__nav-link:hover,
.dinera-footer__contact-link:hover {
    color: var(--primary, #D19F7F);
}

.dinera-footer__legal-link {
    color: var(--on-primary, #111111);
    text-decoration: none;
}

.dinera-footer__legal-link:hover {
    text-decoration: underline;
}

@media (max-width: 767px) {
    .dinera-footer__grid {
        display: flex;
        flex-direction: column;
    }

    .dinera-footer__col {
        width: 100%;
    }
}

/* ===== PAGE: news-and-releases ===== */
.dn-news-feed {
  background-color: var(--bg);
  color: var(--text);
}

.dn-news-feed .dn-tab {
  background-color: var(--surface);
  color: var(--text-muted);
  border: 1px solid var(--border);
  cursor: pointer;
}

.dn-news-feed .dn-tab:hover {
  color: var(--text);
  border-color: var(--primary);
}

.dn-news-feed .dn-tab.active {
  background-color: var(--primary);
  color: var(--on-primary);
  border-color: var(--primary);
}

.dn-news-feed .dn-featured-card,
.dn-news-feed .dn-compact-card {
  background-color: var(--surface);
  border: 1px solid var(--border);
  padding: 24px;
  box-sizing: border-box;
}

.dn-news-feed .dn-featured-card:hover,
.dn-news-feed .dn-compact-card:hover {
  border-color: var(--accent);
}

.dn-news-feed .dn-card-link {
  color: var(--primary-text);
}

.dn-news-feed .dn-card-link:hover {
  color: var(--primary-hover);
}

@media (max-width: 767px) {
  .dn-news-feed .dn-featured-card,
  .dn-news-feed .dn-compact-card {
    padding: 16px;
  }
}

/* ===== PAGE: reviews-and-previews ===== */
.dn-reviews-block .dn-row-card { border-radius: 0; position: relative; border-bottom: 3px solid var(--border); } .dn-reviews-block .dn-row-card:hover { border-color: var(--primary); border-bottom-color: var(--primary); } .dn-reviews-block .dn-filter-pill { border-radius: 9999px; background: var(--surface); color: var(--text-muted); border-color: var(--border); } .dn-reviews-block .dn-filter-pill:hover { border-color: var(--primary); color: var(--text); } .dn-reviews-block .dn-filter-pill.active { background: var(--primary); color: var(--on-primary); border-color: var(--primary); }

/* ===== PAGE: programs-and-guides ===== */
.dn-guides-section .dn-guide-card {
  position: relative;
  display: flex;
  flex-direction: column;
}
.dn-guides-section .dn-guide-panel {
  position: relative;
  margin-top: -56px;
  margin-left: 18px;
  margin-right: 18px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
  min-height: 180px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media (max-width: 767px) {
  .dn-guides-section .dn-guide-panel {
    margin-top: -42px;
    margin-left: 12px;
    margin-right: 12px;
    min-height: auto;
  }
}
.dn-guides-section .dn-tab-active {
  background-color: var(--primary) !important;
  color: var(--on-primary) !important;
  border-color: var(--primary) !important;
}

/* ===== PAGE: about ===== */
.dinera-about-root .dinera-portrait-wrap {
  box-shadow: 0 0 0 1px var(--border);
}
.dinera-pillars-root .dinera-pillar-card {
  transition: border-color 0.15s ease-out, background-color 0.15s ease-out;
}
.dinera-pillars-root .dinera-pillar-card:hover {
  border-color: var(--primary);
}
.dinera-team-root .mg-card {
  transition: border-color 0.15s ease-out;
}
.dinera-team-root .mg-card:hover {
  border-color: var(--primary);
}
.dinera-faq-root .dinera-accordion-item.is-active {
  border-color: var(--primary);
}
.dinera-faq-root .dinera-accordion-item.is-active .js-accordion-toggle {
  background-color: var(--surface-alt);
  color: var(--primary-text);
}
.dinera-faq-root .dinera-accordion-item.is-active .js-accordion-icon {
  transform: rotate(45deg);
}

/* ===== PAGE: contact ===== */
.contact-info-section .contact-card { transition: border-color 0.15s ease-out, transform 0.15s ease-out; min-height: 100%; } .contact-info-section .contact-card:hover { transform: translateY(-2px); } .contact-info-section .contact-card--primary { border-bottom: 3px solid var(--primary); } .contact-info-section .contact-card--accent { border-bottom: 3px solid var(--accent); } .contact-info-section .contact-card--dark { border-bottom: 3px solid var(--dark-band); } @media (max-width: 767px) { .contact-info-section .contact-card { margin-bottom: 0.5rem; } }

/* ===== PAGE: privacy ===== */
.legal-content { font-family: var(--font-family-base, 'Proza Libre', sans-serif); color: var(--text); background-color: var(--bg); overflow-wrap: anywhere; }
.legal-content h2, .legal-content h3, .legal-content h4 { font-family: var(--font-family-headings, 'Proza Libre', sans-serif); }
.legal-content__sidebar { border-top: 3px solid var(--accent); }
.legal-content__nav-link.is-active { background-color: var(--surface-alt); border-left-color: var(--primary); color: var(--primary-text); font-weight: 600; }
@media (max-width: 767px) {
  .legal-content table thead { display: none; }
  .legal-content table, .legal-content table tbody, .legal-content table tr, .legal-content table td { display: block; width: 100%; }
  .legal-content table tr { margin-bottom: 12px; border: 1px solid var(--border); padding: 8px; }
  .legal-content table td { padding: 6px 0; border: none; }
  .legal-content table td:first-child { font-weight: bold; color: var(--primary-text); }
}

/* ===== PAGE: terms ===== */
.terms-page {
  background-color: var(--bg);
  color: var(--text);
}
.terms-page .terms-article {
  position: relative;
  border-left: 3px solid var(--border);
  transition: border-color 0.15s ease-out;
}
.terms-page .terms-article:hover {
  border-left-color: var(--primary);
}
.terms-page .js-nav-link.active {
  background-color: var(--surface);
  border-color: var(--primary);
  color: var(--primary);
}
@media (max-width: 767px) {
  .terms-page aside {
    position: static;
  }
}

/* ===== PAGE: disclaimer ===== */
.dinera-disclaimer {
  background-color: var(--bg);
  color: var(--text);
  font-family: 'Proza Libre', sans-serif;
  overflow-wrap: anywhere;
}

.dinera-disclaimer a {
  transition: color 150ms ease-out, border-color 150ms ease-out;
}

.dinera-disclaimer article {
  transition: border-color 150ms ease-out;
}

.dinera-disclaimer article:hover {
  border-color: var(--primary);
}

@media (max-width: 767px) {
  .dinera-disclaimer .grid {
    grid-template-columns: 1fr;
  }
}

/* ===== PAGE TEMPLATE: reviews-and-previews-list ===== */
.dinera-header {
    font-family: var(--font-family-base, 'Proza Libre', sans-serif);
    background-color: var(--surface);
}

.dinera-header .dinera-header__nav-link {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text);
    padding: 8px 0;
    transition: color 150ms ease-out;
    cursor: pointer;
    background: transparent;
    border: none;
}

.dinera-header .dinera-header__nav-link:hover,
.dinera-header .dinera-header__nav-link:focus-visible {
    color: var(--primary);
    outline: none;
}

.dinera-header .dinera-header__mobile-link {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text);
    padding: 10px 12px;
    border-left: 2px solid transparent;
    transition: all 150ms ease-out;
    display: block;
}

.dinera-header .dinera-header__mobile-link:hover,
.dinera-header .dinera-header__mobile-link:focus-visible {
    color: var(--primary);
    background-color: var(--surface-alt);
    border-left-color: var(--primary);
}

.dinera-header .dinera-header__cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding: 10px 18px;
}

.dinera-article-template .dinera-article-hero {
    background: var(--hero-bg, radial-gradient(70% 110% at 18% 0%, #552600 0%, #401F08 22%, #2A180C 48%, #19110D 74%, #100F0C 100%));
}

.dinera-article-template .dinera-article-media-wrap {
    position: relative;
}

.dinera-article-template .dinera-article-media-offset {
    position: absolute;
    inset: 8px -8px -8px 8px;
    border: 2px solid var(--accent, #7749C2);
    background: var(--surface-alt, #1A1811);
    z-index: 0;
    pointer-events: none;
}

.dinera-article-template .dinera-fact-tile {
    border-bottom: 3px solid var(--primary, #D19F7F);
}

.dinera-article-template .dinera-tab-btn {
    background: var(--surface-alt);
    color: var(--text-muted);
}

.dinera-article-template .dinera-tab-btn.active {
    background: var(--primary);
    color: var(--on-primary);
    border-color: var(--primary);
}

.dinera-article-template .dinera-related-card {
    border-bottom: 3px solid var(--primary, #D19F7F);
}

.dinera-article-template .dinera-article-body p {
    overflow-wrap: anywhere;
    hyphens: auto;
}

.dinera-footer {
    background: var(--footer-bg, radial-gradient(55% 130% at 18% 0%, #382653 0%, #302048 22%, #27193C 48%, #201432 74%, #1D122E 100%));
    border-top: 1px solid var(--border, #39352A);
}

.dinera-footer__logo {
    max-width: 45px;
    max-height: 45px;
}

.dinera-footer__address,
.dinera-footer__mandate,
.dinera-footer__contact-link {
    overflow-wrap: anywhere;
    hyphens: auto;
}

.dinera-footer__nav-link:hover,
.dinera-footer__contact-link:hover {
    color: var(--primary, #D19F7F);
}

.dinera-footer__legal-link {
    color: var(--on-primary, #111111);
    text-decoration: none;
}

.dinera-footer__legal-link:hover {
    text-decoration: underline;
}

@media (max-width: 767px) {
    .dinera-article-template .dinera-article-media-offset {
        inset: 4px -4px -4px 4px;
    }

    .dinera-footer__grid {
        display: flex;
        flex-direction: column;
    }

    .dinera-footer__col {
        width: 100%;
    }
}

/* ===== PAGE TEMPLATE: programs-and-guides-list ===== */
.dinera-header {
    font-family: var(--font-family-base, 'Proza Libre', sans-serif);
    background-color: var(--surface);
}

.dinera-header .dinera-header__nav-link {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text);
    padding: 8px 0;
    transition: color 150ms ease-out;
    cursor: pointer;
    background: transparent;
    border: none;
}

.dinera-header .dinera-header__nav-link:hover,
.dinera-header .dinera-header__nav-link:focus-visible {
    color: var(--primary);
    outline: none;
}

.dinera-header .dinera-header__mobile-link {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text);
    padding: 10px 12px;
    border-left: 2px solid transparent;
    transition: all 150ms ease-out;
    display: block;
}

.dinera-header .dinera-header__mobile-link:hover,
.dinera-header .dinera-header__mobile-link:focus-visible {
    color: var(--primary);
    background-color: var(--surface-alt);
    border-left-color: var(--primary);
}

.dinera-header .dinera-header__cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding: 10px 18px;
}

.dinera-article-hero {
    background: var(--hero-bg, radial-gradient(70% 110% at 18% 0%, #552600 0%, #401F08 22%, #2A180C 48%, #19110D 74%, #100F0C 100%));
}

.dinera-bento-card {
    position: relative;
    transition: border-color 150ms ease-out;
}

.dinera-bento-card--lead .dinera-bento-accent-line {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background-color: var(--primary);
}

.dinera-bento-card .dinera-cta-accent-bottom {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background-color: var(--accent);
}

.dinera-facts-table tr {
    transition: background-color 150ms ease-out;
}

.dinera-facts-table tr:hover {
    background-color: rgba(209, 159, 127, 0.08);
}

.dinera-prose h2,
.dinera-prose h3,
.dinera-prose p {
    overflow-wrap: anywhere;
}

.dinera-footer {
    background: var(--footer-bg, radial-gradient(55% 130% at 18% 0%, #382653 0%, #302048 22%, #27193C 48%, #201432 74%, #1D122E 100%));
    border-top: 1px solid var(--border, #39352A);
}

.dinera-footer__logo {
    max-width: 45px;
    max-height: 45px;
}

.dinera-footer__address,
.dinera-footer__mandate,
.dinera-footer__contact-link {
    overflow-wrap: anywhere;
    hyphens: auto;
}

.dinera-footer__nav-link:hover,
.dinera-footer__contact-link:hover {
    color: var(--primary, #D19F7F);
}

.dinera-footer__legal-link {
    color: var(--on-primary, #111111);
    text-decoration: none;
}

.dinera-footer__legal-link:hover {
    text-decoration: underline;
}

@media (max-width: 767px) {
    .dinera-bento-grid {
        grid-template-columns: 1fr;
    }

    .dinera-footer__grid {
        display: flex;
        flex-direction: column;
    }

    .dinera-footer__col {
        width: 100%;
    }
}

/* mobile-text-guard */
@media (max-width: 767px) {
  h1, h2, h3, h4, h5, h6, p, li, dt, dd, blockquote, figcaption, td, th, label {
    overflow-wrap: anywhere;
  }
  a, button, .btn {
    overflow-wrap: anywhere;
    white-space: normal;
  }
  img, video, iframe {
    max-width: 100%;
  }
}

/* Shared page shell: keep the legal bar at the very bottom of every page. */
body { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
body > main { flex: 1 0 auto; min-width: 0; }
.dinera-header { position: sticky; top: 0; z-index: 50; flex: 0 0 auto; width: 100%; }
.dinera-footer { flex: 0 0 auto; margin-top: auto; padding-top: 0; padding-bottom: 0; }
.dinera-header > div:nth-child(2) > div { min-height: 76px; }
.dinera-header .js-mobile-menu-toggle { flex: 0 0 40px; }
@media (max-width: 639px) {
    .dinera-header__cta-btn.hidden { display: none; }
}
@media (max-width: 1023px) {
    .dinera-header .js-mobile-menu {
        position: absolute; top: 100%; left: 0; right: 0;
        width: 100%; max-height: calc(100vh - 114px); max-height: calc(100dvh - 114px);
        overflow-y: auto; overscroll-behavior: contain;
    }
}
@media (max-width: 767px) {
    .dinera-header > div:nth-child(2) > div { gap: 12px; }
    .dinera-article-template .grid > * { min-width: 0; }
    .dinera-article-template .dinera-fact-tile .truncate { white-space: normal; }
}
