/* Shared presentation for the TEST theme: readable text and clear sections. */
:root { --rm-soft: #e6f2f1; --rm-soft-alt: #edf4f2; }

.topline, .site-header .brand small, .site-header .search-toggle,
.site-header .language-switcher a, .site-header .language-switcher span,
.site-header .primary-menu a, .site-header .menu-toggle {
  font-size: 15px;
}
@media (min-width: 1361px) and (hover: hover) and (pointer: fine) {
  .site-header .primary-menu .submenu-toggle { display: none; }
  .site-header .primary-menu li.has-submenu-control > a {
    border-radius: 5px;
    border-right: 1px solid transparent;
  }
}
.eyebrow, .section-head .eyebrow { font-size: 13px; letter-spacing: .08em; }
.page-heading p { font-size: 18px; line-height: 1.6; }
.search-form .search-field, .search-form .search-submit, .button { font-size: 16px; }

/* Home, article archives, projects, SWL and other lists share these cards. */
.pathway { border-left: 4px solid var(--teal); }
.pathway strong { font-size: 18px; }
.pathway small { font-size: 15px; line-height: 1.5; }
.pathway-number { font-size: 15px; }
.post-card .card-body h3 { font-size: clamp(21px, 2vw, 25px); }
.post-card .card-body p, .feature-project p { font-size: 17px; line-height: 1.6; color: var(--ink); }
.post-card .card-more, .feature-project a, .section-head a { font-size: 16px; }
.post-card .tag, .post-card .card-meta { font-size: 14px; }
.feature-project { border: 1px solid #b8d9d8; }

/* Sidebars and editor-added widget areas follow the same palette. */
.sidebar .widget, .rm-home-extra-widgets .widget { border: 2px solid #d1e1df; }
.sidebar .widget h2, .sidebar .widget h3,
.rm-home-extra-widgets .widget h2, .rm-home-extra-widgets .widget h3 { font-size: 20px; }
.sidebar .widget li, .rm-home-extra-widgets .widget li,
.sidebar .widget p, .rm-home-extra-widgets .widget p { font-size: 16px; line-height: 1.55; }
.sidebar .widget a, .rm-home-extra-widgets .widget a { text-underline-offset: 3px; }
.sidebar .clock-widget, .rm-home-extra-widgets .clock-widget { background: var(--navy); color: #fff; }
.sidebar .clock-widget h2, .sidebar .clock-widget h3,
.rm-home-extra-widgets .clock-widget h2, .rm-home-extra-widgets .clock-widget h3 { color: #fff; }
.sidebar .clock-widget a, .rm-home-extra-widgets .clock-widget a { color: #fff; }
.mini-event h3 { font-size: 17px; }
.mini-event small, .widget-link, .weather-values small, .clock-date { font-size: 14px; }
.weather-empty { font-size: 16px; }

/* Content pages and Gutenberg content retain editor-chosen backgrounds. */
.article-content, .rm-block-page__content, .rm-contest-page__editor-content { font-size: 17px; line-height: 1.7; }
.article-content .source-box, .article-meta, .empty-state p,
.filter-pill, .notice-inline, .nav-links, .page-numbers { font-size: 16px; }
.article-content table { font-size: 16px; }
.article-content td, .article-content th { padding: 12px; }
.empty-state { background: var(--rm-soft-alt); border-color: #b8d9d8; }
.filter-pill[aria-pressed="true"] { background: var(--navy); }

/* Header tools and footer must remain legible on dark surfaces. */
.rm-header-weather__heading a { font-size: 16px; }
.rm-header-forecast__day { font-size: 14px; }
.rm-header-forecast__temps, .rm-header-forecast__rain,
.rm-header-forecast__source { font-size: 13px; }
.rm-dx-ribbon, .rm-dx-ribbon__source, .rm-dx-ribbon__message { font-size: 14px; }
.rm-dx-ribbon__time, .rm-dx-ribbon__mode { font-size: 14px; }
.site-footer, .site-footer p, .site-footer a,
.site-footer li, .site-footer h2, .site-footer h3 { font-size: 16px; }
.site-footer .footer-bottom, .site-footer .footer-bottom a { font-size: 14px; }
.site-footer .widget { background: none; border: 0; }

/* The header forecast sets explicit sizes on each child, so style the children. */
.site-header .rm-header-weather__station,
.site-header .rm-header-weather__metric dt,
.site-header .rm-header-weather__metric dd small,
.site-header .rm-header-weather__status { font-size: 14px; line-height: 1.35; }
.site-header .rm-header-forecast__day { background: #f3f8f8; border-color: #c8d9da; }
.site-header .rm-header-forecast__day > strong { font-size: 15px; }
.site-header .rm-header-forecast__condition,
.site-header .rm-header-forecast__temps,
.site-header .rm-header-forecast__temps b,
.site-header .rm-header-forecast__rain,
.site-header .rm-header-forecast__source { font-size: 14px; line-height: 1.35; }
.site-header .rm-header-forecast__source { text-align: left; }

/* Align the current conditions with all three forecast cards. Keep their
   update notes together below the cards so they cannot offset either side. */
@media (min-width: 601px) {
  .site-header .rm-header-weather__body {
    grid-template-columns: 190px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 12px;
    row-gap: 5px;
    align-items: stretch;
  }
  .site-header .rm-header-weather__observations,
  .site-header .rm-header-forecast { display: contents; }
  .site-header .rm-header-weather__values {
    grid-column: 1;
    grid-row: 1;
    align-self: stretch;
    padding: 9px;
    border: 1px solid #c8d9da;
    border-radius: 9px;
    background: #f3f8f8;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 6px;
  }
  .site-header .rm-header-weather__metric { min-width: 0; }
  .site-header .rm-header-weather__metric dd { letter-spacing: 0; }
  .site-header .rm-header-forecast__days { grid-column: 2; grid-row: 1; }
  .site-header .rm-header-weather__status {
    grid-column: 1;
    grid-row: 2;
    margin: 0;
    max-width: none;
  }
  .site-header .rm-header-forecast__source {
    grid-column: 2;
    grid-row: 2;
    margin: 0;
  }
}

@media (max-width: 600px) {
  .site-header .rm-header-weather__values {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 12px;
  }
  .site-header .rm-header-weather__metric--temperature {
    grid-column: 1 / -1;
    grid-row: auto;
  }
  .site-header .rm-header-weather__metric { min-width: 0; }
  .site-header .rm-header-weather__metric dt { white-space: normal; }
}

/* Sidebar contest and activation rows include their own small text rules. */
.sidebar .mini-event h3, .rm-home-extra-widgets .mini-event h3 { font-size: 18px; }
.sidebar .mini-event small, .rm-home-extra-widgets .mini-event small,
.sidebar .rm-home-activations li small { font-size: 14px; }

/* Shared front-end headings, including archives/categories and future widgets. */
main .page-heading, main .rm-block-page__head, main .rm-posts-index__header,
main .section-head, main .rm-home-extra-widgets > h2 {
  background: var(--navy);
  color: #fff;
  border-radius: 10px;
  padding: 18px 22px;
  margin-block: 20px 22px;
}
main .page-heading :is(h1,p,a), main .rm-block-page__head :is(h1,p,a),
main .rm-posts-index__header :is(h1,p,a), main .section-head :is(h2,p,a),
main .rm-home-extra-widgets > h2 { color: #fff; }
main .page-heading .eyebrow, main .rm-block-page__head .eyebrow,
main .section-head .eyebrow { color: #badce0; }
main .section-head a:hover { color: #badce0; }
.sidebar .widget > :is(h2,h3), .rm-home-extra-widgets .widget > :is(h2,h3),
.sidebar .widget-heading, .rm-home-extra-widgets .widget-heading {
  background: var(--navy);
  color: #fff;
  padding: 11px 13px;
  border-radius: 8px;
  margin: 0 0 16px;
  line-height: 1.3;
}
.sidebar .widget-heading :is(h2,h3,span,a),
.rm-home-extra-widgets .widget-heading :is(h2,h3,span,a) { color: #fff; margin: 0; }
.sidebar .clock-widget > :is(h2,h3),
.rm-home-extra-widgets .clock-widget > :is(h2,h3) { background: transparent; padding: 0; }
main :is(.article-content,.rm-block-page__content,.rm-contest-page__editor-content)
  > :is(h2,h2.wp-block-heading),
main .wp-block-group:not(.has-background) > h2.wp-block-heading:first-child {
  background: var(--navy);
  color: #fff;
  border-radius: 8px;
  padding: 11px 15px;
  font-size: clamp(21px, 2vw, 27px);
  line-height: 1.3;
}
main :is(.article-content,.rm-block-page__content) :is(h3,.wp-block-heading) { line-height: 1.35; }

/* Keep rows neutral; borders separate items without alternating fills. */
.sidebar .mini-event, .rm-home-extra-widgets .mini-event,
.sidebar .rm-home-activations li { background: transparent; }
.site-header .brand small, .site-header .primary-menu a,
.site-header .language-switcher :is(a,span), .site-header .rm-header-weather__heading a,
.site-header .rm-header-forecast__day > strong { font-size: 15px; }
.site-header .rm-header-weather__metric--temperature dd small,
.site-header .rm-header-forecast__temps b { font-size: 14px; }
.post-card .card-meta, .pathway-number, .eyebrow,
.sidebar .weather-values small, .sidebar .clock-date,
.rm-home-activations li small, .home .section-head a { font-size: 14px; }
.home .hero-actions .button, .home .hero-caption { font-size: 14px; }

@media (max-width: 760px) {
  .site-header .primary-menu a { font-size: 16px; }
  .sidebar .widget, .rm-home-extra-widgets .widget { min-width: 0; }
}
