/* 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;
  font-size: 14px;
  padding: 0 8px;
  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;
  --caret-pad: 0px;
  position: relative;
  padding: 0px;
  z-index: 1;
  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;
  color: #fff;
  font-size: 12px;
  height: 32px;
  line-height: normal;
  padding-left: 8px;
  padding-right: 0;
  box-sizing: border-box;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 4px;
  background-clip: padding-box;
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
  width: auto;
  max-width: none;
}

.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; }
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-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;
}

/* Generic truncation utility (non-result-specific) */
.truncate{
  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;
  }
}

/* Mobile off-canvas behavior */
@media (max-width: 991.98px){
  .sn-sidebar{
    position: fixed !important;
    top: 0;
    left: 0;
    right: auto;
    height: var(--vh, 100vh);
    width: var(--sn-oc-width);
    max-width: var(--sn-oc-maxw);
    transform: translateX(-100%) !important;
    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;
  }
  body.sn-oc-open{
    overflow: hidden;
    touch-action: none;
  }
}

/* Desktop resets */
@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;
}

/* 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;
}

/* 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); }

/* ============================================================
   CLEAN RESPONSIVE DESCRIPTION + IMAGE SIZING
   XS: ≤400px      → 7 lines
   SM: 401–576px   → 6 lines
   MD: 577–768px   → 5 lines
   LG: 769–1200px  → 4 lines
   XL: ≥1201px     → 4 lines
   ============================================================ */

/* Base .rdesc.truncate (no fixed line count here) */
.rdesc.truncate {
  line-height: 1.5;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  position: relative;
}

/* Desktop fade under image (hidden on mobile in MQs) */
.rdesc.truncate::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 18%;
  height: 1.5em;
  background: linear-gradient(to right, rgba(250, 251, 253, 0), #fafbfd 70%);
  pointer-events: none;
  z-index: 0;
}

/* Base image style (desktop-ish default, overridden on smaller screens) */
.rdesc.truncate .image-featured {
  float: right;
  display: block;
  width: auto !important;
  height: 100% !important;
  object-fit: contain;
  margin-left: 10px;
  margin-bottom: 0;
  border-radius: 10px !important;
  overflow: hidden;
  z-index: 1;
  -webkit-mask-image: linear-gradient(#fff, #fff);
          mask-image: linear-gradient(#fff, #fff);
  clip-path: inset(0 round 10px);
}

/* XS — Smallest Mobile (≤400px) — 7 lines */
@media (max-width: 400px) {
  .rdesc.truncate {
    -webkit-line-clamp: 7 !important;
    height: calc(1.5em * 7) !important;
  }

  .rdesc.truncate .image-featured {
    float: none;
    display: inline-block;
    width: auto !important;
    height: auto !important;
    max-width: clamp(45px, 20vw, 80px) !important;
    margin: 0 0 .35rem 0;
    clip-path: none;
    -webkit-mask-image: none;
            mask-image: none;
    transform: none;
  }

  .rdesc.truncate::after {
    display: none;
  }
}

/* SM — Full-Size Mobile (401–576px) — 6 lines */
@media (min-width: 401px) and (max-width: 576px) {
  .rdesc.truncate {
    -webkit-line-clamp: 6 !important;
    height: calc(1.5em * 6) !important;
  }

  .rdesc.truncate .image-featured {
    float: none;
    display: inline-block;
    width: auto !important;
    height: auto !important;
    max-width: clamp(60px, 24vw, 105px) !important;
    margin: 0 0 .35rem 0;
    clip-path: none;
    -webkit-mask-image: none;
            mask-image: none;
    transform: none;
  }

  .rdesc.truncate::after {
    display: none;
  }
}

/* MD — Tablet (577–768px) — 5 lines */
@media (min-width: 577px) and (max-width: 768px) {
  .rdesc.truncate {
    -webkit-line-clamp: 5 !important;
    height: calc(1.5em * 5) !important;
  }

  .rdesc.truncate .image-featured {
    float: none;
    display: inline-block;
    width: auto !important;
    height: auto !important;
    max-width: clamp(90px, 22vw, 150px) !important;
    margin: 0 0 .35rem 0;
    clip-path: none;
    -webkit-mask-image: none;
            mask-image: none;
    transform: none;
  }

  .rdesc.truncate::after {
    display: none;
  }
}

/* LG — Desktop (769–1200px) — 4 lines */
@media (min-width: 769px) and (max-width: 1200px) {
  .rdesc.truncate {
    -webkit-line-clamp: 4 !important;
    height: calc(1.5em * 4) !important;
  }

  .rdesc.truncate .image-featured {
    max-width: clamp(120px, 18vw, 200px) !important;
    height: 100% !important;
    float: right;
    clip-path: inset(0 round 10px);
  }
}

/* XL — Large Desktop (≥1201px) — 4 lines */
@media (min-width: 1201px) {
  .rdesc.truncate {
    -webkit-line-clamp: 4 !important;
    height: calc(1.5em * 4) !important;
  }

  .rdesc.truncate .image-featured {
    max-width: clamp(150px, 14vw, 260px) !important;
    height: 100% !important;
    float: right;
    clip-path: inset(0 round 10px);
  }
}

/* Google CSE overrides */
.gcsc-find-more-on-google-root {
  display: none !important;
}

.gsc-cursor-box {
  display: none !important;
}
