    /* --- TYPOGRAPHY --- */
    .waoc-item-title {
      display: block;
      font-weight: 600;
      font-size: 18px;
      line-height: 1.2;
      margin-bottom: 4px;
      color: var(--waoc-very-dark-gray);
    }

    .waoc-item-title.inline {
      display: inline-block;
    }

    .waoc-item-subtitle {
      display: block;
      font-size: 0.85em;
      color: var(--waoc-red);
      line-height: 1.3;
      margin-bottom: 4px;
    }

    .mask-text {
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 4;
      /* Number of lines to show */
      overflow: hidden;
      /* Remove fixed max-height */
      height: auto;

      position: relative;
    }

    /* Tablet and Desktop: Keep it tight */
    .mask-text {
      -webkit-line-clamp: 4;
    }

    /* Mobile: Allow a bit more context since the screen is narrow */
    @media (max-width: 600px) {
      .mask-text {
        -webkit-line-clamp: 8;
      }
    }

    .mask-text::after {
      content: "";
      position: absolute;
      bottom: 0;
      right: 0;
      width: 100%;
      height: 25px;
      /* Slightly shorter for a cleaner look */
      /* Fade to the background color of the card */
      /*  background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,1));*/
      pointer-events: none;
    }


    /* If the card has NO image, let it show 7 lines of text */
    .waoc-news-entry:not(:has(.waoc-news-body-img-full)) .mask-text {
      -webkit-line-clamp: 8;
    }

    /* --- CARD COMPONENT --- */

    .waoc-anchor {
      scroll-margin-top: var(--menu-height);
      /* Modern, preferred method */
    }


    .waoc-card .w3-container:last-child {
      margin-top: auto;
      padding-bottom: 16px !important;
    }



    /* --- NEWS GRID & IMAGE SUPPORT --- */
    .waoc-events-grid,
    .waoc-result-grid,
    .waoc-news-grid {
      display: grid;
      /* Mobile: 1 col, Tablet: 2 col, Desktop: 3 col */
      grid-template-columns: 1fr;
      gap: 16px;
      /* Slightly larger gap for 3 columns */
      padding: 16px;
    }

    @media (max-width: 600px) {

      .waoc-events-grid,
      .waoc-result-grid,
      .waoc-news-grid {
        grid-template-columns: 1fr !important;
        /* Force single column */
        display: flex;
        flex-direction: column;
        padding: 8px;
      }

      img {
        max-width: 100%;
        height: auto;
      }
    }

    @media (min-width: 601px) {
      .waoc-news-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    @media (min-width: 701px) {

      .waoc-events-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-template-areas:
          "next-event-card next-event-card"
          ". ."
          "club-event_explanation club-event_explanation"
          "events-list-map events-list-map";
      }

      #next-event-card {
        grid-area: next-event-card;
      }

      #club-event_explanation {
        grid-area: club-event_explanation;
      }

      #events-list-map {
        grid-area: events-list-map;
      }

      .waoc-result-grid {
        grid-template-columns: repeat(3, 1fr);
        grid-template-areas:
          "result-list result-list right-panel";
      }

      #result-list {
        grid-area: result-list;
      }

      #right-panel {
        grid-area: right-panel;
      }
    }

    @media (min-width: 1120px) {
      .waoc-news-grid {
        grid-template-columns: repeat(3, 1fr);

        grid-template-areas:
          ".  . bo-card"
          ".  . bo-card";
      }

      #bo-card {
        grid-area: bo-card;
      }

      .waoc-result-grid {
        grid-template-columns: repeat(7, 1fr);

        grid-template-areas:
          "result-list result-list result-list result-list result-list right-panel right-panel";
      }

      #result-list {
        grid-area: result-list;
      }

      #right-panel {
        grid-area: right-panel;
      }
    }


    @media (min-width: 1141px) {
      .waoc-events-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-template-areas:
          "next-event-card next-event-card"
          ". ."
          "club-event_explanation club-event_explanation"
          "events-list-map events-list-map";
      }

      #next-event-card {
        grid-area: next-event-card;
      }

      #club-event_explanation {
        grid-area: club-event_explanation;
      }

      #events-list-map {
        grid-area: events-list-map;
      }

      .waoc-news-grid {
        grid-template-columns: repeat(4, 1fr);

        grid-template-areas:
          ". . . bo-card"
          ". . . bo-card";
      }

      #bo-card {
        grid-area: bo-card;
      }

      .waoc-result-grid {
        grid-template-columns: repeat(4, 1fr);

        grid-template-areas:
          "result-list result-list result-list right-panel";
      }

      #result-list {
        grid-area: result-list;
      }

      #right-panel {
        grid-area: right-panel;
      }
    }


    #bo-card-container {
      padding-bottom: 16px;
    }

    .waoc-events-entry,
    .waoc-news-entry {
      padding: 24px;
      border: 1px solid var(--waoc-border);
      border-radius: 8px;
      text-decoration: none;
      color: inherit;
      display: flex;
      flex-direction: column;
      transition: transform 0.2s ease-out, background-color 0.2s ease, box-shadow 0.2s ease;
      background: white;
      /* Remove manual margins; the 'gap' in the grid handles spacing much better */
      margin: 0;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    }

    @media (max-width: 700px) {

      .waoc-events-entry,
      .waoc-news-entry {
        padding: 8px;
      }
    }

    .waoc-news-entry:hover {
      background-color: var(--waoc-gray98);
      transform: translateX(4px);
    }

    /* NEW: Layout for image next to text */
    /* Container for text and image */
    .waoc-news-body-flex {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      margin-top: 4px;
      min-height: 100px;
      /* Ensures enough space for the square image */

      padding-bottom: 8px;
      /* Move padding here to protect the bottom space */
    }

    /* The text column next to the image */
    .waoc-news-text-content {
      flex: 1;
      /* Takes up remaining space */
      min-width: 0;
      /* Prevents text from breaking flexbox width */
    }

    /* The Square Image Container */
    .waoc-news-img-square {
      flex-shrink: 0;
      width: 90px;
      height: 90px;
      border-radius: 6px;
      overflow: hidden;
      border: 1px solid var(--waoc-border);
    }

    /* Ensure the image fills the square without stretching */
    .waoc-news-img-square img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      /* This creates the perfect square crop */
    }

    .waoc-news-body-img {
      width: min(20vh, 20vw, 4lh, 160px);
      height: min(20vh, 20vw, 4lh, 160px);
      flex-shrink: 0;
      border-radius: 4px;
      object-fit: cover;
      border: 1px solid var(--waoc-border);
    }

    .waoc-news-body-img-full {
      width: 100%;
      height: 100px;
      /* Fixed height to keep card gaps aligned */
      object-fit: cover;
      border-radius: 4px;
      margin: 10px 0 0 0;
      /* Space above the image */
      display: block;
    }

    .waoc-img-keep-aspect-ratio {
      height: auto;
    }

    .waoc-img-full-width {
      width: 100%;
    }

    .waoc-news-grid .bo-logo {
      max-height: 150px;
    }

    /* New Dashboard Grid logic */
    .main-dashboard {
      display: grid;
      gap: 16px;
      grid-template-columns: 1fr;
      max-width: var(--container-max-width);
      margin: 0px auto;
      /*      padding: 0 16px;  */
    }

    @media (max-width: 1119px) {
      .main-dashboard {
        padding: 0;
      }
    }

    @media (min-width: 1120px) {
      .main-dashboard {
        grid-template-columns: repeat(2, 1fr);
        grid-template-areas:
          "events results "
          "club   club"
          "news   news    ";

      }

      #events .waoc-card,
      #results .waoc-card {
        height: 100%;
      }

      #events {
        grid-area: events;
      }

      #results {
        grid-area: results;
      }

      #news {
        grid-area: news;
      }

      #club {
        grid-area: club;
      }

      #events,
      #results,
      #club {
        height: 100%;
        display: flex;
        flex-direction: column;
      }
    }


    @media (min-width: 1141px) {
      .main-dashboard {
        grid-template-columns: repeat(3, 1fr);
        grid-template-areas:
          "events results club"
          "news   news    news";
      }

      #events .waoc-card,
      #results .waoc-card {
        height: 100%;
      }

      #events {
        grid-area: events;
      }

      #results {
        grid-area: results;
      }

      #news {
        grid-area: news;
      }

      #club {
        grid-area: club;
      }

      #events,
      #results,
      #club {
        height: 100%;
        display: flex;
        flex-direction: column;
      }
    }

    .main-dashboard .dashboard-section {
      min-height: auto !important;
      padding-top: 0 !important;
    }

    /* Pinned / Important News Style */
    .pinned-card {
      border: 2px solid var(--waoc-red) !important;
      background-color: #fff5f5 !important;
      box-shadow: 0 4px 12px rgba(237, 28, 36, 0.08) !important;
      position: relative;
      /* <--- ADD THIS to anchor the bookmark icon */
      overflow: visible;
      /* <--- ADD THIS to prevent the icon from being clipped */
    }

    /* Optional: Add a "Featured" badge or icon to the top corner */
    .pinned-card::after {
      content: '\f02e';
      font-family: 'Font Awesome 7 Free';
      font-weight: 900;
      position: absolute;
      top: -5px;
      /* Adjusted so it sits perfectly on the border */
      left: 15px;
      color: var(--waoc-red);
      font-size: 1.1rem;
      /* Made slightly larger for better visibility */
      z-index: 10;
      /* Ensure it stays on top of all content */
    }

    /* Ensure the hover state still feels interactive */
    .pinned-card:hover {
      background-color: #ffeaea;
      /*      transform: translateX(4px);*/
      box-shadow: 0 6px 15px rgba(237, 28, 36, 0.15);
    }

    /******* WAOC Previous CSS - Start *******/

    .waoc-previous-content .small {
      font-size: .8em
    }


    .waoc-previous-content .backgroundLightPrime {
      background-color: #feeff0;
    }

    .waoc-previous-content .backgroundMidPrime {
      background-color: #fbcdcf;
    }

    .waoc-previous-content .backgroundLightSecond {
      background-color: var(--waoc-gray98);
    }

    .waoc-previous-content h2 {
      margin-top: 0.8em;
      margin-left: 0;
    }

    .waoc-previous-content h2:first-child {
      margin-top: 0.5em;
    }

    .meta,
    .waoc-previous-content .meta {
      font-size: 0.8em;
      color: var(--waoc-dark-gray);
    }

    .waoc-previous-content .toggleLink {
      font-size: .8em;
    }

    .waoc-previous-content .summary img {
      display: block;
      margin-left: auto;
      margin-right: auto;
      margin-bottom: .5rem
    }

    .waoc-previous-content img {
      width: auto;
      max-width: 100%;
      max-width: max(50vw, min(600px, 100%));
      height: auto;
      margin: 0;
      margin: auto;
    }

    .waoc-previous-content h1:first-child {
      text-align: center;
      padding-bottom: 1em;
    }

    @media (max-width: 400px) {
      .wideTable thead {
        display: none;
        /* Hide the headers */
      }

      .wideTable,
      .wideTable tbody,
      .wideTable tr,
      .wideTable td {
        display: block;
        width: 100%;
      }

      .wideTable tr {
        margin-bottom: 15px;
        border: 1px solid var(--waoc-red);
        padding: 8px;
        border-radius: 4px;

        background-color: var(--waoc-white) !important;
      }

      .wideTable td {
        padding-left: 0 !important;
        position: relative;
        padding: 2px;
      }

      .wideTable tr td:first-child::before {
        content: "Date: ";
        font-weight: bold;
      }

      .wideTable tr td:nth-child(3)::before {
        content: "Club: ";
        font-weight: bold;
      }

      .wideTable tr td:nth-child(4)::before {
        content: "Near: ";
        font-weight: bold;
      }

      .wideTable tr td:nth-child(5)::before {
        content: "Level: ";
        font-weight: bold;
      }

      .wideTable .table-row-year {
        border: 0;
        padding: 0;
        margin-bottom: 0;
      }

      .wideTable .table-row-year td:first-child::before {
        content: "Year: ";
      }

      .wideTable table {
        border: 0 !important;
      }
    }

    .titleImage,
    .waoc-previous-content .titleImage {
      float: none;
      border: 1px solid #ddd;
      background-color: #fff;
      padding: .5rem;
      margin-bottom: 1rem;

      width: fit-content;
      display: block;
      margin: auto;
    }

    #result-list table {
      font-size: 0.7em;
    }

    @media only screen and (min-width: 37em) {

      #result-list table {
        font-size: 0.9em;
      }

      .titleImage,
      .waoc-previous-content .titleImage {
        width: fit-content;
        display: block;
        margin: auto;
      }
    }

    @media only screen and (min-width: 50em) {

      #result-list table,
      .waoc-previous-content table {
        font-size: 1em;
      }

      .titleImage,
      .waoc-previous-content .titleImage {
        float: right;
        margin-left: .5rem;
        /*      max-width: 50%;*/
        margin-top: -.5rem;

        max-width: max(35vw, 350px);
      }
    }

    @media only screen and (min-width: 88em) {

      .titleImage,
      .waoc-previous-content .titleImage {
        /*    max-width: 50%;*/

      }
    }

    .titleImage img,
    .waoc-previous-content .titleImage img {
      display: block;
      margin-left: auto;
      margin-right: auto;
      margin-bottom: .5rem;
      max-width: 100%;
    }

    .titleMap img,
    .waoc-previous-content .titleMap img {
      display: block;
      margin-left: auto;
      margin-right: auto;
      margin-bottom: .3rem;
      max-width: 330px;
    }

    @media (max-width: 480px) {

      .titleImage img,
      .waoc-previous-content .titleMap img {
        width: 100%;
        max-width: 100vw;
      }
    }

    @media only screen and (min-width: 1020px) {

      .titleMap,
      .waoc-previous-content .titleMap {
        float: right
      }
    }



    .waoc-previous-content .insertedImage {
      border: 1px solid #ddd;
      background-color: #fff;
      padding: .5rem;
      margin-bottom: 1rem;
      max-width: 100%;
    }

    .waoc-previous-content .insertedImage img {
      display: block;
      margin-left: auto;
      margin-right: auto;
      margin-bottom: .5rem;
    }

    .waoc-previous-content .insertedImage.left {
      float: none;
    }

    @media only screen and (min-width: 37em) {
      .waoc-previous-content .insertedImage.left {
        float: left;
        clear: left;
        margin: 1rem 1rem 1rem 0;
        max-width: 24em;
        max-width: max(40vw, 400px);
      }
    }

    .waoc-previous-content .insertedImage.right {
      float: none;
    }

    @media only screen and (min-width: 37em) {
      .waoc-previous-content .insertedImage.right {
        float: right;
        clear: right;
        margin: 1rem 0 1rem 1rem;
        max-width: 24em;
      }
    }

    .waoc-previous-content .insertedImage.full {
      max-width: 50em;
      clear: both;
      margin: 1rem auto;
    }

    .waoc-previous-content>*,
    .waoc-previous-content .textBlock {
      max-width: 50em;
      max-width: max(850px, 70vw);
      margin-left: auto;
      margin-right: auto;
      display: block;
    }

    .waoc-previous-content .textBlock {
      text-align: left;
    }

    .waoc-previous-content .leftTextBlock {
      text-align: left;
    }

    @media only screen and (min-width: 50em) {
      .waoc-previous-content .leftTextBlock {
        float: left;
        clear: left;
      }
    }

    .waoc-previous-content {
      display: block !important;
      /* Overrides any inherited Flex/Grid */
      overflow: visible;
      /* Contains the float so it doesn't leak out */
    }

    .waoc-previous-content h1 span,
    .waoc-previous-content h2 span,
    .waoc-previous-content h3 span {
      display: block;
      /*      font-size: .7em; */
      font-size: 18px;
      font-weight: 400;
    }

    .waoc-previous-content h1:not(:has(a)) span,
    .waoc-previous-content h2:not(:has(a)) span,
    .waoc-previous-content h3:not(:has(a)) span {
      color: var(--waoc-black);
    }

    .waoc-previous-content .caption {
      text-align: center;
      font-size: 0.9em;
      line-height: 2em;
      margin: 0;
    }

    .waoc-previous-content .video-container {
      height: 0;
      padding-bottom: 56.25%;
      position: relative;
      margin-bottom: 16px;
    }

    .waoc-previous-content .video-container iframe,
    .waoc-previous-content .video-container object,
    .waoc-previous-content .video-container embed {
      position: absolute;
      top: 0;
      left: 0;
      width: 100% !important;
      height: 100% !important;
    }

    /******* WAOC Previous CSS - End *******/