
  /* Base & typography */
  html,
  body {
    height: 100%;
    margin: 0;
    font-family:
      -apple-system,
      BlinkMacSystemFont,
      "Segoe UI",
      Roboto,
      "Helvetica Neue",
      Arial,
      sans-serif;
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
  }
  body { display: flex; flex-direction: column; }
  main { flex: 1; }
  footer { background: #343a40; color: #fff; }

  h1,h2,h3,h4,h5 { line-height: 1.25; }
  h1 { font-size: 1.5rem; }
  h2 { font-size: 1.2rem; }
  h3 { font-size: 1.15rem; }
  h4 { font-size: 1.1rem; }
  h5 { font-size: 1.05rem; }

  .content { min-height: 100%; display: flex; flex-direction: column; }
  .aboutshort { font-size: 15px; font-weight: 400; color: #353748; }
  .aboutshort a { color: #0060a9; }

  /* Link styling — scoped for light backgrounds */
  body:not(.bg-dark):not(.dark) a:link    { color: #0060a9; }
  body:not(.bg-dark):not(.dark) a:visited { color: #5a3a8b; }
  a:hover, a:active { text-decoration: underline; font-weight: inherit; }

  .nlnk {
    font-size: .9375rem; line-height: 1.125rem;
    color: #e8eef3 !important; text-decoration: none;
    transition: color .2s ease; padding: 6px;
  }
  .nlnk:hover { color: #fff !important; }

  :focus-visible { outline: 2px solid #1ABC9C; outline-offset: 2px; }
  .footer { margin-top: auto; }

  #scrollButton {
    position: fixed; bottom: 20px; left: 50%;
    transform: translateX(-50%); z-index: 1000;
  }

  /* ------------------------------
     Search controls & typeahead
  -------------------------------*/
  .form-row-scroll { display: flex; overflow-x: auto; white-space: nowrap; }
  .form-row-scroll select, .form-row-scroll input[type="text"] { margin-right: 10px; }

/* Base height + colors */
.custom-height,
.form-select.custom-height,
.tnf {
  height: 32px;
  line-height: normal;            /* lets browser center text properly */
  font-size: 14px;
  padding: 0 8px;                 /* minimal default; overridden below */
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 4px;
  box-sizing: border-box;
}

/* Wrapper + caret (drop-in) */
.custom-height-select {
  --caret-w: 16px;
  --caret-r: 8px;
  /* JS will account for caret space; no extra CSS pad needed */
  --caret-pad: 0px;
  position: relative;
  padding: 0px;
  z-index: 1;

  /* shrink-wrap container so select grows only to its content */
  display: inline-flex;
  align-items: center;
}

/* Select (drop-in) */
.custom-height-select select.form-select {
  appearance: none; -webkit-appearance: none; -moz-appearance: none;
  background-image: none; /* disable Bootstrap's default caret */
  color: #fff;
  font-size: 12px;
  height: 32px;

  /* let browser vertically center text naturally */
  line-height: normal;

  padding-left: 8px;               /* small left gap */
  padding-right: 0;                /* IMPORTANT: avoid double-reserving caret space */
  box-sizing: border-box;          /* width includes borders/padding */

  border: 1px solid rgba(255,255,255,.25);
  border-radius: 4px;
  
  background-clip: padding-box;

  /* render full value; JS autosizer will set exact width */
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;

  width: auto;                     /* allow content-based width */
  max-width: none;                 /* no premature clipping */
}




.custom-height-select::after {
  content: '';
  position: absolute;
  right: var(--caret-r);
  top: 50%;
  transform: translateY(-50%);
  width: var(--caret-w);
  height: var(--caret-w);
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" width="20" fill="%23e8eaed"><path d="M480-384 288-576h384L480-384Z"/></svg>') no-repeat center;
  pointer-events: none;
}

/* Dropdown panel colors (where supported) */
select option,
select optgroup {  color:#fff; }
select optgroup { font-weight: bold; }

/* Optional: normalize option indent a bit (limited cross-browser effect) */
select option { text-indent: 0; }


  /* Scrollable chip row + arrows (tight spacing) */
  .scroll-container{
    position: relative; display:flex; align-items:center;
    margin-top:0; padding:0 12px;
  }
  .scroll-row{
    display:flex; flex-wrap:nowrap; overflow-x:auto; overflow-y:hidden;
    scroll-behavior:smooth; -webkit-overflow-scrolling:touch;
    gap:6px; margin:0 6px; padding:0 2px; scrollbar-width:thin;
  }
  .scroll-row::-webkit-scrollbar{ height:4px; }
  .scroll-row::-webkit-scrollbar-thumb{ background:#888; border-radius:10px; }
  .scroll-row::-webkit-scrollbar-track{  }
  .scroll-button{
     color:#fff; border:0; width:18px;
    position:absolute; top:50%; transform:translateY(-50%);
    font-size:16px; cursor:pointer; padding:0; margin:0; z-index:2;
  }
  .scroll-button.left{ left:2px; }
  .scroll-button.right{ right:2px; }

  /* Typeahead */
  .tt-menu{
    position:absolute; z-index:1050; width:100%;
    background:#f8f9fa; border:1px solid rgba(0,0,0,.15);
    border-radius:.375rem; box-shadow:0 .5rem 1rem rgba(0,0,0,.175);
    margin-top:.25rem;
  }
  .tt-suggestion{ padding:.5rem 1rem; cursor:pointer; line-height:1.5; color:#000; }
  .tt-suggestion:hover, .tt-suggestion.tt-cursor{ color:#fff; background:#0d6efd; }
  .input-group{ flex-wrap:nowrap; }
  .input-group > .twitter-typeahead{ width:100% !important; min-width:0; flex-grow:1; display:block !important; }
  .input-group .twitter-typeahead .form-control{ width:100%; padding:.375rem .75rem; height:auto; border-radius:0; }
  .input-group-lg .form-control, .input-group-lg .tt-input{ height:48px; line-height:48px; font-size:1rem; }
  .input-group > .twitter-typeahead:first-child .form-control{ border-top-right-radius:0; border-bottom-right-radius:0; }
  .input-group > .twitter-typeahead:last-child  .form-control{ border-top-left-radius:0;  border-bottom-left-radius:0; }


  /* ------------------------------
     “Custom sidebar” (legacy menu)
  -------------------------------*/
  .custom-sidebar-menu{
    position:relative; font-size:14px; font-weight:500; color:#dee2e6;
    background:#f8f9fa; border-right:1px solid #dee2e6; padding:0;
  }
  .custom-menu, .custom-submenu, ul.mtac{ list-style:none; margin:0; padding:0; }
  .custom-menu-item{ margin-bottom:2px; }
  .custom-menu-item-header{ display:flex; justify-content:space-between; align-items:center; }
  .custom-menu-item-header a{ text-decoration:none; color:#000; padding:5px; display:block; }
  .custom-submenu{ padding-left:15px; display:none; }
  .custom-submenu-item a{ text-decoration:none; color:#333; padding:5px; display:block; }
  .custom-submenu-toggle{ background:none; border:0; cursor:pointer; font-size:12px; line-height:1; }

  /* ------------------------------
     Search results list
  -------------------------------*/
  .rtitle{ font-size:16px; font-weight:500; line-height:1.5; color:#1155CC; text-decoration:none; }
  .rdesc{ font-size:14px; line-height:1.5; color:#333; text-decoration:none; margin-top:-15px; }
  .rSN{ font-size:13px; line-height:17px; color:#333; font-weight:600; text-decoration:none;
        display:inline-block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
        margin-bottom:-5px; padding:0; }
  .rURL{ font-size:12px; line-height:16px; color:#009933; text-decoration:none;
         display:inline-block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
         margin:0; padding:0; }
  .rdate{ font-size:14px; line-height:1.5; color:#333; text-decoration:none; }
  .clstree{ font-size:14px; font-weight:400; line-height:1.5; color:#1155CC; text-decoration:none; }

  .truncate{
    display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:6;
    overflow:hidden; text-overflow:ellipsis;
  }
  .clearfix::after{ content:""; display:table; clear:both; }
  .rTS{ font-size:13px; line-height:14px; }
  .no-arrow::after{ display:none; }
  .rFQD{ overflow:hidden; margin:0; padding:0; position:relative; }
  .favicon{ float:left; margin:0 10px 0 0; }
  .dropdown-container{ float:right; margin-top:-40px; position:relative; }
  .dropdown-menu-custom{ margin-top:-10px; border:1px solid #ccc; box-shadow:0 4px 8px rgba(0,0,0,.1); }

  .badge-secondary-custom{ font-size:10px; margin-bottom:10px; padding:2px; }
  .description-container{ overflow:hidden; }
  .svg-icon{
    width:24px; height:24px; display:inline-block; background-size:cover; background-repeat:no-repeat;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 -960 960 960' width='24' fill='%23434343'%3E<path d='M480-160q-33 0-56.5-23.5T400-240q0-33 23.5-56.5T480-320q33 0 56.5 23.5T560-240q0 33-23.5 56.5T480-160Zm0-240q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm0-240q-33 0-56.5-23.5T400-720q0-33 23.5-56.5T480-800q33 0 56.5 23.5T560-720q0 33-23.5 56.5T480-640Z'/></svg>");
  }
  .custom-btn-group .btn{
    height:23px; line-height:18px; padding:0 5px; font-size:13px; margin-bottom:5px;
    background:transparent; border:0;
  }

  .search-indexes-icon, .search-keywords-icon, .search-people-icon, .search-organziations-icon, .search-places-icon{
    display:inline-block; width:1em; height:1em; vertical-align:-0.125em;
    background-repeat:no-repeat; background-position:center; background-size:contain;
  }

  /* ------------------------------
     Buttons
  -------------------------------*/
  .btn-secondary.btn-secondary--search{
    --bs-btn-bg:#d9dee4; --bs-btn-border-color:#cbd2d9;
    --bs-btn-hover-bg:#cbd3db; --bs-btn-hover-border-color:#bec7d0;
    --bs-btn-active-bg:#bcc6cf; --bs-btn-active-border-color:#b0bac4;
    --bs-btn-disabled-bg:#e6eaee; --bs-btn-disabled-border-color:#d9dee4;
  }

  /* ------------------------------
     Off-canvas / Sidebar
  -------------------------------*/
  :root{
    --sn-oc-width: 86vw;
    --sn-oc-maxw: 380px;
    --sn-oc-z: 1075;
    --sn-oc-bp: 991.98px;
  }

  /* Backdrop (stays underneath the panel) */
  .sn-oc-backdrop{
    position:fixed; inset:0; background:rgba(0,0,0,.35);
    opacity:0; visibility:hidden; transition:opacity .22s ease, visibility 0s linear .22s;
    z-index: calc(var(--sn-oc-z) - 1);
    pointer-events: none;
  }
  body.sn-oc-open .sn-oc-backdrop{
    opacity:1; visibility:visible; transition:opacity .22s ease, visibility 0s;
    pointer-events: auto;
  }

  /* Collapse left column container on mobile so it doesn't push content */
  @media (max-width: 991.98px){
    .custom-sidebar-menu{
      flex:0 0 0 !important; width:0 !important; max-width:0 !important;
      padding:0 !important; margin:0 !important; border:0 !important; min-width:0 !important;
    }
  }

  /* IMPORTANT: Mobile off-canvas behavior
     - CLOSED by default (translateX(+100%))
     - Anchored to the RIGHT (right:0; left:auto)
     - Opens only when body has .sn-oc-open
  */
  @media (max-width: 991.98px){
    .sn-sidebar{
      position: fixed !important;
      top: 0;
      left: 0;     /* anchor to right */
      right: auto;   /* ensure left isn't used */
      height: var(--vh, 100vh);
      width: var(--sn-oc-width);
      max-width: var(--sn-oc-maxw);
      transform: translateX(-100%) !important;              /* CLOSED by default */
      transition: transform .22s ease-in-out;
      z-index: var(--sn-oc-z);
      will-change: transform;
    }
    body.sn-oc-open .sn-sidebar{
      transform: translateX(0) !important;                /* OPEN when toggled */
    }
    body.sn-oc-open{
      overflow: hidden;
      touch-action: none;
    }
  }

  /* Desktop resets (avoid “stuck open” if class persists) */
  @media (min-width: 992px){
    .sn-sidebar{
      position: relative !important;
      right: auto; left: auto;
      transform: none !important;
      width: auto; max-width: none;
      height: calc(var(--vh, 100vh) - var(--search-header-height, 0px));
    }
    .sn-oc-backdrop{
      opacity: 0 !important;
      visibility: hidden !important;
      pointer-events: none !important;
    }
    body.sn-oc-open{ overflow: auto; }
  }

  /* Sticky close header inside the panel */
  .sn-oc-header{
    position: sticky; top: 0; z-index: 2; 
    display: flex; align-items: center; justify-content: space-between;
    min-height: 48px; padding: 8px 12px; box-shadow: 0 1px 0 rgba(255,255,255,.08);
  }
  .sn-oc-title{ color:#ECF0F1; font-size:14px; font-weight:600; letter-spacing:.3px; }
  .sn-oc-close-btn{
    border:0; background:transparent; color:#ECF0F1;
    width:36px; height:36px; border-radius:8px; display:inline-flex; align-items:center; justify-content:center; cursor:pointer;
  }
  .sn-oc-close-btn:hover{ color:#1ABC9C; background:rgba(255,255,255,.06); }
  .sn-oc-close-btn svg{ width:18px; height:18px; display:block; }
  @media (min-width: 992px){ .sn-oc-header{ display:none; } }

  /* Sidebar look & submenu animation */
  .sn-sidebar{
    position: relative;
    height: calc(var(--vh, 100vh) - var(--search-header-height, 0px));
    overflow-y: auto; margin: 0; 
    box-shadow: 2px 0 5px rgba(0,0,0,.1); scrollbar-width:thin;
    scrollbar-color: rgba(255,255,255,.4) transparent;
  }
  .sn-sidebar::-webkit-scrollbar{ width:6px; }
  .sn-sidebar::-webkit-scrollbar-track{ background:transparent; }
  .sn-sidebar::-webkit-scrollbar-thumb{
    background-color: rgba(255,255,255,.4); border-radius:3px; border:1px solid transparent;
  }
  .sn-sidebar ul{ list-style:none; margin:0; padding:0; }
  .sn-sidebar li{ border-bottom:1px solid rgba(255,255,255,.1); }

  .sn-menu-item{ display:flex; align-items:center; justify-content:space-between; padding:0 15px; }
  .sn-link{ display:flex; align-items:center; flex:1; text-decoration:none; color:#ECF0F1; padding:5px 0; transition:color .3s; }
  .sn-link:hover{ color:#1ABC9C; }
  .sn-icon{ width:18px; margin-right:12px; text-align:center; color:#ECF0F1; }
  .sn-text{ flex:1; color:#ECF0F1; }
  .sn-sidebar > ul > li > .sn-menu-item .sn-text{ font-size:14px; font-weight:500; }

  .sn-submenu{
    max-height:0; overflow:hidden; transition:max-height .25s ease; 
  }
  .sn-sidebar li.open > .sn-submenu{ max-height:800px; }
  .sn-submenu li a{
    display:flex; align-items:center; padding:5px 15px 5px 25px;
    text-decoration:none; color:#ECF0F1; transition:background .3s;
  }
  .sn-submenu li a:hover{ background:#3A556E; }
  .sn-submenu a .sn-text{ font-size:13px; color:#ECF0F1; }

  .sn-submenu-icon{ cursor:pointer; color:#ECF0F1; transition:transform .3s, color .3s; }
  .sn-submenu-icon:hover{ color:#1ABC9C; }
  .sn-sidebar li.open > .sn-menu-item .sn-submenu-icon:not(.ajax-toggle){ transform:rotate(180deg); }
  .sn-sidebar li.open > .sn-menu-item .ajax-toggle{ transform:none; }

  .sn-sidebar li.active-row > .sn-menu-item{ background:#1ABC9C; }
  .sn-sidebar li.active-row > .sn-menu-item .sn-link,
  .sn-sidebar li.active-row > .sn-menu-item .sn-icon,
  .sn-sidebar li.active-row > .sn-menu-item .sn-submenu-icon{ color:#fff; }

  .sn-active-link{ background:#1ABC9C !important; color:#fff !important; }
  .sn-submenu .sn-submenu{ margin-left:15px; }
  .sn-divider{ height:1px; margin:0 0 15px; background:rgba(255,255,255,.15); list-style:none; }

  .ajax-toggle{ cursor:pointer; transition:transform .2s ease; pointer-events:auto; }
  .ajax-toggle:hover{ opacity:.7; }
  .sn-submenu.ajax-submenu{ transition:all .3s ease; }
  .ajax-loading-placeholder .sn-text{ font-style:italic; opacity:.7; }
  .error .sn-text{ color:#dc3545; }

  @keyframes spin{ from{ transform:rotate(0); } to{ transform:rotate(360deg); } }
  .fa-spinner.fa-spin{ animation:spin 1s linear infinite; }

  /* Meta badges */
  .sn-meta{ display:flex; flex-wrap:wrap; gap:6px; margin:4px 0 6px 28px; }
  .sn-badge{
    display:inline-flex; align-items:center; padding:2px 6px; border-radius:10px;
    font-size:11px; line-height:1; color:#0f1419; background:#e5efff; border:1px solid rgba(255,255,255,.16);
  }
  .sn-badge--ok{ background:#c9f7d1; } .sn-badge--warn{ background:#ffe9a8; }
  .sn-badge--alert{ background:#ffcdc9; } .sn-badge--muted{ background:#e7eaef; }
  .sn-badge code{ font-family:inherit; font-size:11px; background:transparent; padding:0; }
  .ajax-toggle, .sn-submenu-icon{ -webkit-tap-highlight-color:transparent; touch-action:manipulation; }

  /* ------------------------------
     Header tabs & dark dropdowns
  -------------------------------*/
  .custom-nav-tabs-container .custom-nav-link{
    color:#DCDCDC !important; background:transparent !important; padding:0; font-size:13px;
  }
  .custom-nav-tabs-container .custom-nav-link.active{
    color:#fff !important; background:transparent !important; border-bottom:1px solid #fff; font-weight:700;
  }
  .custom-nav-tabs-container .custom-nav-link:hover{ color:#fff !important; }
  .custom-nav-tabs-container .custom-nav-item{ margin-right:0; padding:0; }
  .custom-nav-tabs-container .dropdown-item{ color:#000 !important; }
  .custom-nav-tabs-container .dropdown-item:hover{ color:#fff !important; background:#232F3E !important; }

/* === Drop-in replacement: .menu-dark dropdown with white links that underline on hover === */
.dropdown-menu.menu-dark{
  background:#000;
  color:#fff;
  border:1px solid #222;
}

/* Section header & divider */
.dropdown-menu.menu-dark .dropdown-header{ color:#bdbdbd; }
.dropdown-menu.menu-dark .dropdown-divider{ border-top-color:#333; }

/* Base/visited/active: always white, no underline by default */
.dropdown-menu.menu-dark .dropdown-item,
.dropdown-menu.menu-dark .dropdown-item:link,
.dropdown-menu.menu-dark .dropdown-item:visited,
.dropdown-menu.menu-dark .dropdown-item:active{
  color:#fff !important;
  text-decoration:none !important;
}

/* Icons mirror link color in all states */
.dropdown-menu.menu-dark .dropdown-item i,
.dropdown-menu.menu-dark .dropdown-item:link i,
.dropdown-menu.menu-dark .dropdown-item:visited i,
.dropdown-menu.menu-dark .dropdown-item:active i{
  color:#fff !important;
  text-decoration:none !important; /* prevent icon underline quirks */
}

/* Hover/Focus: underline + dark hover bg */
.dropdown-menu.menu-dark .dropdown-item:hover,
.dropdown-menu.menu-dark .dropdown-item:focus,
.dropdown-menu.menu-dark .dropdown-item:focus-visible{
  background:#111 !important;
  color:#fff !important;
  text-decoration:underline !important;
}
.dropdown-menu.menu-dark .dropdown-item:hover i,
.dropdown-menu.menu-dark .dropdown-item:focus i,
.dropdown-menu.menu-dark .dropdown-item:focus-visible i{
  color:#fff !important;
  text-decoration:none !important;
}

/* Active/selected item */
.dropdown-menu.menu-dark .dropdown-item.active,
.dropdown-menu.menu-dark .dropdown-item.active:visited{
  background:#111 !important;
  color:#fff !important;
  text-decoration:underline !important; /* keep underline for clarity */
}

/* Disabled item */
.dropdown-menu.menu-dark .dropdown-item.disabled,
.dropdown-menu.menu-dark .dropdown-item:disabled{
  color:rgba(255,255,255,.5) !important;
  pointer-events:none;
  text-decoration:none !important;
}


  /* Install helper overlay */
  #installHelp{
    position:fixed; inset:0; z-index:1055; display:none; align-items:center; justify-content:center;
    backdrop-filter:blur(2px); background:rgba(0,0,0,.55);
  }
  #installHelp .card{
    background:#fff; border-radius:12px; max-width:520px; width:92%;
    padding:16px 18px; color:#111; line-height:1.45; box-shadow:0 10px 30px rgba(0,0,0,.35);
  }

  /* Share popup */
  .share-pop{
    position:fixed; z-index:1061; min-width:240px; max-width:320px; border-radius:.75rem;
    box-shadow:0 10px 30px rgba(0,0,0,.25); padding:.5rem; background:#111; color:#fff;
  }
  .share-pop-light{ background:#fff; color:#111; box-shadow:0 10px 30px rgba(0,0,0,.15); border:1px solid rgba(0,0,0,.08); }
  .share-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.5rem; }
  .share-btn{
    display:flex; align-items:center; justify-content:center; gap:.5rem; border-radius:.5rem;
    padding:.5rem .55rem; text-decoration:none; font-size:.9rem; border:1px solid rgba(255,255,255,.15);
    background:rgba(255,255,255,.06); color:inherit; white-space:nowrap;
  }
  .share-pop-light .share-btn{ border:1px solid rgba(0,0,0,.1); background:rgba(0,0,0,.03); }
  .share-btn:hover{ filter:brightness(1.1); }
  .copy-row{ display:flex; gap:.5rem; margin-top:.5rem; }
  .copy-input{
    flex:1; border-radius:.5rem; border:1px solid rgba(255,255,255,.2);
    background:rgba(255,255,255,.08); color:inherit; padding:.4rem .55rem; font-size:.85rem;
  }
  .share-pop-light .copy-input{ border-color:rgba(0,0,0,.15); background:#fafafa; }
  .copy-btn{
    border-radius:.5rem; padding:.4rem .65rem; border:1px solid rgba(255,255,255,.2);
    background:rgba(255,255,255,.08); color:inherit;
  }
  .share-pop-light .copy-btn{ border-color:rgba(0,0,0,.15); background:rgba(0,0,0,.03); }
  .header{ display:flex; align-items:center; justify-content:space-between; margin-bottom:.5rem; font-weight:600; font-size:.95rem; }
  .close-x{ cursor:pointer; padding:.15rem .35rem; border-radius:.375rem; }
  .close-x:hover{ background:rgba(255,255,255,.1); }
  .share-pop-light .close-x:hover{ background:rgba(0,0,0,.06); }


  /* --- A) 4-line truncation (force back on if something earlier overrides it) --- */
  .rdesc.truncate {
    --rdesc-lh: 1.5;         /* line-height (in em) */
    --rdesc-lines: 4;        /* visible lines */
    line-height: var(--rdesc-lh);
    display: -webkit-box !important;        /* required for -webkit-line-clamp */
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: var(--rdesc-lines) !important;
    overflow: hidden !important;
    height: calc(var(--rdesc-lh) * 1em * var(--rdesc-lines)) !important; /* definite height */
    position: relative;
    isolation: isolate;      /* predictable z-index layers */
  }

  /* Fallback when -webkit-line-clamp isn’t supported */
  @supports not (-webkit-line-clamp: 1) {
    .rdesc.truncate {
      max-height: calc(var(--rdesc-lh) * 1em * var(--rdesc-lines)) !important;
    }
  }

  /* --- B) Desktop thumbnail inside clamped paragraph --- */
  .rdesc.truncate .image-featured {
    float: right;
    display: block;
    height: 100% !important;                  /* match clamped paragraph height */
    width: auto !important;                   /* preserve aspect ratio (beats .w-25 etc.) */
    max-width: min(180px, 30%);
    max-height: none !important;              /* avoid earlier 120px cap clipping */
    margin-left: 10px;
    margin-bottom: 0;
    object-fit: contain;                      /* no cropping */
    border-radius: 10px !important;           /* keep rounding */
    overflow: hidden;                         /* actually clip pixels to the radius */
    position: relative;
    z-index: 1;                               /* above any ::after fade */

    /* Harden the clipping across engines */
    -webkit-mask-image: linear-gradient(#fff, #fff);
            mask-image: linear-gradient(#fff, #fff);
    clip-path: inset(0 round 10px);
    backface-visibility: hidden;
    transform: translateZ(0);                 /* isolate compositing for clean edges */
  }

  /* Keep the (optional) fade UNDER the image so it can’t square corners */
  .rdesc.truncate::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    width: 18%;
    height: calc(var(--rdesc-lh) * 1em);
    background: linear-gradient(to right, rgba(250, 251, 253, 0), #fafbfd 70%);
    pointer-events: none;
    z-index: 0;
  }

  /* --- C) Mobile: keep clamp at 4 lines and prevent the image from blowing up --- */
  @media (max-width: 576px) {
    /* Re-assert 4 lines on mobile (overrides any earlier `.truncate { -webkit-line-clamp: 10; }`) */
    .rdesc.truncate {
      -webkit-line-clamp: 4 !important;
      height: calc(var(--rdesc-lh) * 1em * 4) !important;
    }

    .rdesc.truncate .image-featured {
      float: none;
      display: inline-block;                   /* sit above or inline without full width */
      width: auto !important;                  /* don’t stretch to 100% */
      max-width: clamp(120px, 55vw, 220px);    /* responsive cap (no screen-wide blowup) */
      height: auto !important;                 /* natural height */
      margin: 0 0 .5rem 0;
      object-fit: contain;

      /* Remove desktop-only hardening for simpler small-screen rendering */
      -webkit-mask-image: none;
              mask-image: none;
      clip-path: none;
      transform: none;
    }
  }

  /* mobile tweak: make the thumbnail much smaller on phones.
     Paste AFTER your current CSS so these rules win. */

  @media (max-width: 576px) {
    .rdesc.truncate {
      -webkit-line-clamp: 4 !important;
      height: calc(1.5em * 4) !important; /* keep 4-line clamp */
    }

    .rdesc.truncate .image-featured {
      float: none;
      display: inline-block;
      width: auto !important;
      /* Much smaller cap: about ~1/3 of the screen max, with sane min/max bounds */
      max-width: clamp(80px, 32vw, 140px) !important;
      height: auto !important;
      margin: 0 0 .35rem 0;
      object-fit: contain;

      /* simplify mobile rendering */
      -webkit-mask-image: none;
              mask-image: none;
      clip-path: none;
      transform: none;
    }
  }
  

.gcsc-find-more-on-google-root {
    display: none !important;
}

.gsc-cursor-box {
    display: none !important;
}