/* ====================================================================
   styles.css  •  2025-06-01
   Complete file – nothing omitted
   --------------------------------------------------------------------
   Sections
     0  Custom-property tokens (shared by both sites)
     1  Component styling (typography, buttons, cards…)
     2  Layout & Breakpoints  ◀◀◀ NEW – *all* responsive tweaks here
   ==================================================================== */

/* ─────────────────────────────────────────────────────────────────────
   0.  CUSTOM-PROPERTY TOKENS
   -------------------------------------------------------------------- */
:root {
  /* Base palette (Seek Ninja defaults) */
  --bg-page: #f8f9fa;
  --footer-bg: #f2f2f2;
  --footer-text: #70757a;
  --input-border: #dfe1e5;
  --border-light: #e0e0e0;
  
    --tab-color: #fff;

  --link: #1a0dab;
  --url-text: #006621;
  --body-text: #4d5156;
  --body-text-2: #1d2126;

  /* Accent & utility colours */
  --badge-border: #00f2;
  --badge-bg: #bbf1;
  --badge-alt-border: #7092;
  --badge-alt-bg: #b6d1;

  --panel-separator: #aaa1;
  --clarify-border: #aa44;
  --clarify-bg: #bb61;
  --highlight-bar-left: #76b1;
  --add-border: #aa44;
  --news-border: #0001;

  --article-date: #333;
  --article-site: #666;

  --result-background-1: #fff9;

  /* UI chrome */
  --modal-backdrop: rgba(0, 0, 0, 0.4);
  --modal-bg: #ffffff;
  --modal-border: #888;

  --spinner: #3498db;
  --creator-color: #555;

  --carousel-btn-bg: #ffffff;
  --carousel-btn-shadow: rgba(0, 0, 0, 0.25);

  /* NEW – break-point helpers                                                         */
  --bp-phone-s: 480px; /* small / narrow phones                                     */
  --bp-phone-l: 767px; /* wide / landscape phones                                   */
  --bp-tablet: 1024px; /* portrait & landscape tablets                              */
  --bp-desktop: 1025px; /* anything larger – traditional desktop layout              */
}

:root {
  --radius-s: 4px;
  --radius-m: 10px;
  --shadow-1: 0 0px 0px rgba(0, 0, 0, 0.05);
  --shadow-2: 0 4px 10px rgba(0, 0, 0, 0.15);
}




@media (prefers-color-scheme: dark) {
  :root {
    /* Base palette */
    --bg-page: #181a1b;
    --footer-bg: #242526;
    --footer-text: #b0b3b8;
    --input-border: #3a3b3c;
    --border-light: #3e4042;

    --tab-color: #000;

    --link: #8ab4f8;
    --url-text: #57d86f;
    --body-text: #e4e6eb;
    --body-text-2: #b0b2f5;

    /* Accent & utility colours */
    --badge-border: #8ab4f833;
    --badge-bg: #8ab4f81a;
    --badge-alt-border: #b0b3b833;
    --badge-alt-bg: #b0b3b81a;

    --panel-separator: #ffffff1a;
    --clarify-border: #f7b73144;
    --clarify-bg: #f7b73115;
    --highlight-bar-left: #8ab4f84d;
    --add-border: #aaaaaa44;
    --news-border: #ffffff1a;

    --article-date: #b0b3b8;
    --article-site: #e4e6eb;

    --result-background-1: #24252699;

    /* UI chrome */
    --modal-backdrop: rgba(0, 0, 0, 0.7);
    --modal-bg: #2d2e30;
    --modal-border: #444;

    --spinner: #8ab4f8;
    --creator-color: #b0b3b8;

    --carousel-btn-bg: #2d2e30;
    --carousel-btn-shadow: rgba(0, 0, 0, 0.5);

    /* Shadows */
    --shadow-1: 0 0 0 1px rgba(255, 255, 255, 0.05);
    --shadow-2: 0 4px 10px rgba(0, 0, 0, 0.3);
  }

  /* Invert icons that are dark by default */
  .search-button img,
  .clear-button img,
  .settings-icon-img {
    filter: invert(1);
  }

  /* Make form autofill readable in dark mode */
  .search-bar:-webkit-autofill,
  .search-bar:-webkit-autofill:hover,
  .search-bar:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0px 1000px #2a2d3a inset !important;
    -webkit-text-fill-color: #e4e6eb !important;
    color: #e4e6eb !important;
    caret-color: #e4e6eb !important;
    text-shadow: 0 0 0 #e4e6eb !important;
  }

  /* Adjustments for specific elements */
  .related-searches-title {
    color: #e4e6eb;
  }

  .badge-link {
    color: #e4e6eb;
  }

  .contact-form, .modal-content {
    background: var(--modal-bg);
  }

  .media-card {
    box-shadow: 0 2px 6px rgba(0,0,0,.25);
  }


  .creator {
    color: var(--creator-color);
  }

 
  #tab-main:checked  #tab-more  .panels-tabs label[for="tab-main"],
  #tab-more:checked  .panels-tabs label[for="tab-more"] {
    background: var(--bg-page, #181a1b);
    border-bottom-color: var(--bg-page, #181a1b);
  }

  
  .placeholder-image-main,
  .placeholder-image-side {
    filter: invert(1) brightness(0.7) contrast(1.2);
  }

}


/* ─────────────────────────────────────────────────────────────────────
     1.  COMPONENT STYLING (unchanged – copied verbatim)
     -------------------------------------------------------------------- */
body {
  font-family: var(--font-body);
  background-color: var(--bg-page);
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
  color: var(--body-text);
}

h1,
h2,
h3,
h4 {
  font-family: var(--font-heading);
}

.wholecontent {
  width: 100%;
  display: flex;
  align-items: center;
  flex-direction: column;
  min-height: 100vh;
}

.bodycontent {
  flex: 1;
  display: flex;
}

.logo {
  margin-top: 150px;
  display: flex;
  justify-content: center;
}

.search-container {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 10px;
}

.search-bar {
  width: 584px;
  height: 40px;
  padding: 10px 20px;
  border: 1px solid var(--input-border);
  border-radius: 24px;
  box-shadow: none;
  font-size: 16px;
  outline: none;
}

.footer {
  width: 100%;
  text-align: center;
  padding: 8px 16px 16px;
  background-color: var(--footer-bg);
  color: var(--footer-text);
  font-size: 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-sizing: border-box;
}

.footer a {
  color: var(--footer-text);
  text-decoration: none;
  margin: 0 15px;
}

.footer a:hover {
  text-decoration: underline;
}

.footer div {
  display: flex;
  gap: 20px;
}

.feedback-placement {
  position: fixed;
  top: 10px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 999;
}

.feedback-link {
  display: none;
  background: var(--tab-color);
  border: 1px solid #7774;
  padding: 4px;
  margin: 3px;
  border-radius: 6px;
  color: #7779;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 1px 1px 1px #777;
  white-space: nowrap;
}

.feedback-link:hover {
  text-decoration: underline;

  background: #ffe;
}

.search-bar-container {
  position: relative;
  width: 584px;
  display: flex;
  align-items: center;
}

.search-button {
  position: absolute;
  right: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}

.search-button[disabled] {
  cursor: default;
  opacity: 0.2;
}

.clear-button {
  position: absolute;
  right: 40px;
  border: none;
  background: transparent;
  cursor: pointer;
  display: none;
}

.clear-button img {
  width: 18px;
  height: 18px;
}

/* Smaller search bar in the header */
.header .search-bar-container {
  width: 400px;
}

.header .search-bar {
  height: 30px;
  padding: 5px 35px;
}

.search-button img {
  width: 26px;
  height: 26px;
  padding-left: 6px;
  padding-right: 6px;
}

.clear-button img {
  width: 26px;
  height: 26px;
  padding-left: 2px;
  padding-right: 2px;
}

.search-result,
.news-result {
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border-light);
  box-shadow: var(--shadow-1);
  background-color: var(--result-background-1);
}

.dead-result {
  display: none;
}

.result-title {
  font-size: 18px;
  color: var(--link);
  text-decoration: none;
  display: block;
  margin-bottom: 5px;
}

.secondaryPanel .result-title {
  font-size: 16px;
}

.result-title:hover {
  text-decoration: underline;
}

.result-url {
  color: var(--url-text);
  font-size: 14px;
  margin-bottom: 5px;
  overflow-wrap: break-word;
}

.secondaryPanel .result-url {
  font-size: 12px;
}

.result-image img {
  max-width: 180px;
  max-height: 140px;
  border: 1px solid var(--img-border);
  border-radius: var(--radius-s);
  padding: 4px;
  margin-left: 5px;
  margin-right: 5px;
}

.secondaryPanel .result-image img {
  max-width: 110px;
  max-height: 110px;
}

.result-blurb,
.article-blurb {
  color: var(--body-text);
  font-size: 14px;
  margin-top: 10px;
}

.secondaryPanel .result-blurb {
  font-size: 12px;
}

.result-meta {
  color: var(--footer-text);
  font-size: 12px;
  margin-top: 5px;
}

.header {
  width: 100%;
  padding: 20px 0;
  background-color: var(--bg-page);
  display: flex;
  justify-content: center;
}

.header .search-container {
  flex-direction: row;
  justify-content: center;
}

.header .search-bar {
  width: 400px;
  height: 30px;
  font-size: 14px;
  border-radius: 20px;
}

.panels {
  width: 100%;
  display: flex;
}

/* keep the visual divider, just remove the width */
.secondaryPanel {
  border-left: 2px solid var(--panel-separator);
  padding-left: 20px;
  margin-left: 0; /* leave desktop to re-add */
}

.meta-container {
  padding: 5px;
  margin-top: 5px;
  margin-bottom: 20px;
}

.badge-link {
  padding-left: 7px;
  border: 1px solid var(--badge-border);
  background-color: var(--badge-bg);
  padding-top: 3px;
  margin: 3px;
  border-radius: var(--radius-m);
  margin-bottom: 10px;
  padding-right: 7px;
  padding-bottom: 3px;
  font-size: 12px;
  font-weight: bold;
  text-decoration: none;
  color: var(--body-text-2);
  cursor: pointer;
}

.badge-alternate {
  border: 1px solid var(--badge-alt-border);
  background-color: var(--badge-alt-bg);
}

.related-searches-wrapper {
  padding: 6px;
  background-color: var(--tab-color);
  border: solid 1px var(--news-border);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  margin-bottom: 4px;
}

.related-searches-title {
  font-size: 16px;
  font-weight: bold;
  color: var(--body-text-2);
  margin-bottom: 10px;
}

.related-searches-content {
  display: flex;
  flex-wrap: wrap;
}

.show-search {
  padding-top: 3px;
  max-width: 800px;
  margin-bottom: 10px;
  border: 1px solid var(--clarify-border);
  border-radius: 14px;
  padding-bottom: 3px;
  padding-left: 7px;
  padding-right: 7px;
  font-size: 14px;
  background-color: var(--clarify-bg);
}

#betalabel {
  position: absolute;
  width: 50px;
  right: 0px;
  rotate: 30deg;
  top: -75px;
  z-index: -100;
  opacity: 0.4;
}

.show-explanation,
.search-results-highlights {
  padding-left: 8px;
  margin-left: -10px;
  border-left: 3px solid var(--highlight-bar-left);
  font-size: 16px;
}

.search-factor-blurb {
  font-weight: bold;
}

.additional-results-box {
  padding: 6px;
  margin: 2px;
  border: 1px solid var(--add-border);
  border-radius: 5px;
}

.additional-results-title {
  font-size: 12px;
  font-weight: bold;
  padding-bottom: 10px;
}

#search-results {
  margin-top: 10px;
}

.search-results-highlights .search-result {
  margin-bottom: 4px;
  padding-bottom: 5px;
  padding-top: 5px;
  border-bottom: 0;
}

@media (max-width: 900px) {
  .search-result-highlight {
    flex: 1 1 calc(50% - 16px);
  }
}

@media (max-width: 600px) {
  .search-result-highlight {
    flex: 1 1 100%;
  }
}

.result-title.subtitle {
  font-size: 0.85em;
  margin-top: 2px;
  margin-bottom: 2px;
}

.result-blurb.subtitle {
  font-size: 0.85em;
  margin-top: 2px;
  margin-bottom: 2px;
}

#global-loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.4);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

.loader .spinner {
  width: 50px;
  height: 50px;
  border: 5px solid rgba(0, 0, 0, 0.1);
  border-top-color: var(--spinner);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.pagination {
  text-align: center;
  font-family: Arial, sans-serif;
  margin: 20px 0;
}

.pagination-buttons {
  margin-top: 10px;
}

.pagination-link {
  padding-left: 8px;
  border: 1px solid var(--badge-border);
  background-color: var(--badge-bg);
  padding-top: 4px;
  margin: 3px;
  border-radius: 14px;
  margin-bottom: 10px;
  padding-right: 8px;
  padding-bottom: 4px;
  font-size: 14px;
  font-weight: bold;
  text-decoration: none;
  color: var(--body-text-2);
  cursor: pointer;
}

.inspirational-blurb {
  display: block;
  font-size: 0.8rem;
  opacity: 0.6;
  text-align: center;
  cursor: pointer;
  transition: opacity 1s ease-in-out;

  position: absolute;
  bottom: 55px;

  max-width: 50vw;
  border: 1px solid #4444;
  border-radius: 6px;
  left: 50%;
  padding: 4px;
  transform: translateX(-50%);

    color: var(--body-text);
}
.inspirational-blurb:hover {
  opacity: 1;
}

.loading-placeholder {
  min-height: 180px;
  width: 100%;
  border-radius: var(--radius-m);
  margin-bottom: 20px;
 /* Animation: fade in only */
  animation: placeholder-fade-in 0.5s ease-out;

  /* New layout styles for blurred images */
  display: flex;
  gap: 16px;
 align-items: center;
  justify-content: space-around;
  padding: 10px;
  background: transparent;
}

.placeholder-image-main {
  width: 100%;
  opacity: 0.8;
  border-radius: var(--radius-m);
  animation: image-opacity-pulse 2.2s infinite ease-in-out;
 }

.placeholder-image-side {
  width: 100%;
  opacity: 0.8;
  border-radius: var(--radius-m);
  animation: image-opacity-pulse 2.2s infinite ease-in-out;
 }

@keyframes placeholder-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes image-opacity-pulse {
  0% { opacity: 0.5; }
  50% { opacity: 1; }
  100% { opacity: 0.5; }
 }

.result-url {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 6px;
  align-items: start;
}

/* hide until ready, styling per earlier step */
.search-result:not(.has-favicon) .favicon {
  display: none;
}
.search-result.has-favicon .favicon {
  display: block;
  width: 28px;
  height: 28px;
  grid-column: 1;
  grid-row: 1;
}

.search-result .lazy-thumb {
  display: none;
} /* already inlined via style */
.search-result.has-thumb .lazy-thumb {
  display: block;
}

/* URL text in second column */
.url-text {
  grid-column: 2;
  grid-row: 1;
  /* allow long URLs to wrap at reasonable points: */
  word-break: break-all; /* or use break-word if you prefer */
}

.search-result.vanish {
  /* animated fade  vertical collapse */
  opacity: 0;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  transition: opacity 350ms ease-out, max-height 350ms ease-out,
    margin 350ms ease-out, padding 350ms ease-out;
}

.news-results {
  padding-left: 10px;
  border-left: 1px solid var(--news-border);
}

.article-info {
  display: flex;
  justify-content: space-between;
  font-weight: bold;
  margin-bottom: 2px;
}

.article-date {
  color: var(--article-date);
  font-size: 14px;
}

.article-site {
  color: var(--article-site);
  text-align: right;
  font-size: 14px;
}

.article-blurb {
  display: block;
}

.modal {
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: var(--modal-backdrop);
}

.modal-content {
  background-color: var(--modal-bg);
  margin: 15% auto;
  padding: 20px;
  border: 1px solid var(--modal-border);
  max-width: 400px;
  border-radius: 4px;
}

.close {
  float: right;
  font-size: 28px;
  font-weight: bold;
  cursor: pointer;
}

#settings-section {
  top: 15px;
  right: 15px;
  position: absolute;
  display: flex;
  align-items: center;
  gap: 10px;
}

.settings-icon {
  background: transparent;
  border: none;
  cursor: pointer;
}

.settings-icon-img {
  width: 25px;
}

.mini-button {
  padding-left: 7px;
  padding-right: 7px;
  border: 1px solid var(--badge-border);
  background-color: var(--badge-bg);
  padding-top: 2px;
  padding-bottom: 2px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: bold;
  text-decoration: none;
  color: var(--body-text-2);

  cursor: pointer;
}

.media-carousel {
  position: relative;
  margin: 24px 0;
}

.carousel-track {
  display: flex;
  overflow-x: auto;
  scroll-behavior: smooth;
  gap: 16px;
  padding: 8px 0;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.carousel-track::-webkit-scrollbar {
  display: none;
}

.carousel-btn.hidden {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

.media-wrapper{
  /* pick a value that matches one full tile  its gap;
     adjust until you see exactly 1¾ rows. */
  --row-h: 222px;
  position: relative;
}

.media-wrapper.collapsed{
  max-height: calc(var(--row-h) * 1.75);
  overflow: hidden;
}

.toggle-more{
  position: absolute;
  bottom:1.75rem;
  left: 50%;
  transform: translate(-50%, 50%);   /* half outside the box */
  width: 3.5rem;
  height: 3.5rem;
  border: none;
  border-radius: 50%;
  background: var(--footer-bg);
  color:  var(--footer-text);
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  font-size: 1.25rem;   /* ▼ */
  line-height: 1;
  cursor: pointer;
}

/* Click block margin */
.toggle-more::after{
  content:"";
  position:absolute;
  inset:-1rem;   
  border-radius:50%;     
  background:transparent;   
  pointer-events:auto;   
}

/* vanish the button once opened */
.media-wrapper.expanded .toggle-more{ display:none; }

.media-list{
  /* make the list itself a grid */
  display:grid;
  grid-template-columns:repeat(2, 1fr);   /* 2 equal-width columns */
  gap:1rem;                               /* space between tiles */
}

/* make the heading span the full grid width (optional) */
.media-list > h3{
  grid-column:1 / -1;   /* start at first line, end at last line */
  margin:0 0 .75rem;
}

/* --- individual tiles --- */
.media-card{
  background:var(--tab-color);
  border-radius:8px;
  overflow:hidden;        /* keeps images neatly clipped to rounded corners */
  display:flex;           /* lets you stack thumb  meta vertically */
  flex-direction:column;
  box-shadow:0 2px 6px rgba(0,0,0,.08);
}

.media-thumb{
  position:relative;     /* Establishes the containing block */
  aspect-ratio: 16 / 9;  /* Give the container a fixed aspect ratio */
  background-color: var(--footer-bg); /* Fallback bg for the container */
}

.duration{
  position:absolute;
  bottom:4px;
  right:4px;
  z-index: 3; /* Above image and placeholder */
  padding:2px 4px;
  font-size:.8rem;
  font-weight:900;
  color:#fff;            /* white text */
  background:rgba(0,0,0,.5); 
  border-radius:3px;
  line-height:1;
  pointer-events:none;   
}

/* Common styles for both placeholder and image */
.media-thumb-placeholder,
.media-thumb img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity 0.4s ease-in-out;
}

/* Placeholder styling */
.media-thumb-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2; /* Sits on top of the hidden image */
}

.media-thumb-placeholder::before {
  content: '';
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 15px 0 15px 25px;
  border-color: transparent transparent transparent var(--footer-text);
  opacity: 0.5;
}

/* Image styling (initially hidden via opacity) */
.media-thumb img {
  opacity: 0;
  z-index: 1;
}

/* --- Loading states --- */
.media-thumb.is-loaded img { opacity: 1; }
.media-thumb.is-loaded .media-thumb-placeholder { opacity: 0; pointer-events: none; }
.no-thumb-available::before { opacity: 0.2;
}

/* meta area */
.media-meta{
  padding:.5rem;
  font-size:.8rem;
}

/* make the title occupy its own line and truncate if too long */
.media-title{
  display:block;
  font-weight:600; 
  color: var(--body-text-2);
  text-decoration:none;
  margin-bottom:.25rem;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* creator or other metadata */
.creator{
  color: var(--body-text-2);
  font-size:.75rem;
}

.carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  border: none;
  border-radius: 50%;
  background: var(--carousel-btn-bg);
  box-shadow: 0 0 6px var(--carousel-btn-shadow);
  cursor: pointer;
  z-index: 2;
}

.carousel-btn.prev {
  left: -16px;
}

.carousel-btn.next {
  right: -16px;
}

.site-switch-notice,
.site-bumper {
  font-size: 12px;
  line-height: 1.3;
  color: var(--body-text);
  opacity: 0.8;
}

.site-switch-notice a,
.site-bumper a {
  font-weight: 600;
  text-decoration: none;
  color: var(--link);
}

.site-switch-notice a:hover,
.site-bumper a:hover {
  text-decoration: underline;
  color: var(--link-hover);
}

.site-switch-notice {
  position: fixed;
  bottom: calc(8px +  6.5rem); 
  right: 8px;
  max-width: 30vw;
    left: 50%;

    transform: translateX(-50%);
  z-index: 5; /* sits above content but **below** footer */
}

@media (min-width: 480px) and (max-width: 600px) {
  .site-switch-notice {
    bottom: calc(8px +  8rem); 
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    text-align: center;
    max-width: 90vw;
  }
  #about-link {
    display: none;
  }
}

@media (max-width: 480px) {
  .site-switch-notice {
    bottom: calc(10px +  10rem);
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    text-align: center;
    max-width: 90vw;
  }
  #about-link {
    display: none;
  }
}

.site-bumper {
  position: absolute;
  top: 5px;
  left: 5px;
  margin: 6px 0 0 60px;
  max-width: 70vw;
}

@media (max-width: 600px) {
  .site-bumper {
    margin-left: 0;
    text-align: center;
    left: 50%;
    transform: translateX(-50%);
  }
}

/* ─── Contact form —──────────────────────────────────────── */
.contact-form {
  max-width: 540px;
  margin: 32px auto;
  background: var(--tab-color);
  padding: 24px;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-m);
  box-shadow: var(--shadow-2);
   color: var(--body-text-2);
}

.contact-form h2 {
  margin-top: 0;
  font-family: var(--font-heading);
}
.contact-form .blurb {
  color: var(--body-text);
  margin: 0 0 1.25rem;
}
.contact-form label {
  display: block;
  margin-bottom: 14px;
  font-weight: 600;
}
.contact-form input,
.contact-form textarea {
  width: 100%;
  padding: 10px;
  border: 1px solid var(--input-border);
  border-radius: var(--radius-s);
  font-size: 1rem;
  box-sizing: border-box;
}
.contact-form button {
  padding: 10px 24px;
  font-size: 1rem;
  background: var(--primary-1, #335aff);
  color: #fff;
  border: none;
  border-radius: var(--radius-s);
  cursor: pointer;
}
.contact-form button:disabled {
  background: #999;
  cursor: not-allowed;
}

/* PoW spinner – reuse .spinner animation but scale down */
.pow-loader {
  display: flex;
  justify-content: center;
  margin-bottom: 12px;
}
.pow-loader .spinner {
  width: 26px;
  height: 26px;
  border: 4px solid rgba(0, 0, 0, 0.1);
  border-top-color: var(--spinner);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

/* ====================================================================
     2.  LAYOUT & BREAKPOINTS  –  “the only moving pieces”
     --------------------------------------------------------------------
     •  All layout overrides live here so you can skim a single section
        whenever you need to tweak how columns behave.
     •  Strategy:   Mobile-first single column  →  add columns stepwise.
     ==================================================================== */

/* radio buttons invisible */
.panels-tab {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* tab bar */
.panels-tabs {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin: 4px 0 12px;
  font-family: var(--font-heading);
  font-size: 15px;
  font-weight: 600;
}

/* individual tab labels */
.panels-tabs label {
  cursor: pointer;
  padding: 6px 18px;
  border-radius: var(--radius-m);
  border: 1px solid var(--link);
  background: var(--tab-color);
  transition: all 0.15s ease;
}

/* active tab (fill  bold) */
#tab-main:checked  #tab-more  .panels-tabs label[for="tab-main"],
#tab-more:checked  .panels-tabs label[for="tab-more"] {
  background: var(--link);
  color: #fff;
  border-color: color-mix(in srgb, var(--link) 20%, transparent);
}

/* hide / show panels */
.mainPanel,
.secondaryPanel {
  display: none;
}

#tab-main:checked ~ .mainPanel {
  display: block;
}
#tab-more:checked ~ .secondaryPanel {
  display: block;
}

@media (min-width: 980px) {
  .panels-tabs {
    display: none;
  }
  .mainPanel,
  .secondaryPanel {
    display: block;
  } /* restore default */
}

/* ───────────────────────────────
     2.1  Base layout  (≤ 480 px)
     ─────────────────────────────── */
body {
  padding: 0 12px;
} /* small gutter on phones */

.logo {
  margin-top: 80px;
} /* tighter vertical rhythm */
.header {
  width: 100%;
  max-width: 100%;
}

.search-bar-container {
  width: 90vw;
}
.search-bar {
  width: 90vw;
}

.search-bar {
  font-size: 1rem;
} /* keep tap-targets large */

.panels {
  width: 100%;
  flex-direction: column;
  gap: 24px; /* vertical spacing between panels */
}

.mainPanel,
.secondaryPanel {
  width: 95vw;
  margin: 0;
  padding: 0;
  border: none;
}

.secondaryPanel {
  order: 2;
} /* results first, meta second */

/* Carousel buttons hide on tiny screens (swipe instead) */
@media (max-width: var(--bp-phone-s)) {
  .carousel-btn {
    display: none;
  }
}

.panels-tabs {
  display: flex;
  width: 100%;
  position: relative;
  border-bottom: 2px solid color-mix(in srgb, var(--link) 6%, transparent); /* 4 ▸ horizontal rule */
}

.panels-tabs::after {
  left: 0;
  width: 100%;
  transform: none;
  content: "";
  position: absolute;
  bottom: -2px;
  height: 2px;
  background: color-mix(in srgb, var(--link) 20%, transparent);
  pointer-events: none;
  z-index: -1;
}

.panels-tabs label {
  flex: 1 1 50%;
  text-align: center;
  padding: 10px 0; /* a bit taller */
  border: 1px solid color-mix(in srgb, var(--link) 20%, transparent);
  border-bottom: none; /* sits on top of the rule */
  border-radius: var(--radius-m) var(--radius-m) 0 0; /* “tab” shape */
  font-size: 15px;
  font-weight: 600;
  transition: background 0.15s ease, color 0.15s ease;
}


#tab-main:not(:checked) ~ .panels-tabs label[for="tab-main"],
#tab-more:not(:checked) ~ .panels-tabs label[for="tab-more"] {
  color: var(--link);
  background: color-mix(in srgb, var(--tab-color) 50%,transparent);
  border-color: color-mix(in srgb, var(--link) 25%, transparent);
}


#tab-main:checked  #tab-more  .panels-tabs label[for="tab-main"],
#tab-more:checked  .panels-tabs label[for="tab-more"] {
  background: var(--link);
  color:var(--tab-color);
  border-color: color-mix(in srgb, var(--link) 20%, transparent);
}

/* 3 ▸ When the tab-bar is visible, let the “More” panel stretch full width */
.panels-tabs ~ .secondaryPanel {
  /* remove desktop-style gutter only while stacked layout is active */
  border-left: none;
  padding-left: 0;
  margin-left: 0;
}

/* 4 ▸ Give the active tab the visual illusion of being connected */
#tab-main:checked  #tab-more  .panels-tabs label[for="tab-main"],
#tab-more:checked  .panels-tabs label[for="tab-more"] {
  margin-bottom: -2px; /* overlap the rule so the panel looks attached */
  background: var(--bg-page, #ffffff); /* matches panel below   */
  color: var(--link); /* keeps brand colour    */
  font-weight: 700; /* slight emphasis       */
  border-color: color-mix(in srgb, var(--link) 25%, transparent);
  border-bottom-color: var(--bg-page, #ffffff); /* hides lower edge   */
}

/* ───── Disable all the tweaks above once the 2-column view returns ───── */
@media (min-width: 980px) {
  .panels-tabs {
    display: none;
  }
  .panels-tabs ~ .secondaryPanel {
    border-left: 2px solid var(--panel-separator);
    padding-left: 20px;
    margin-left: 0; /* the desktop MQ re-adds the 60 px gap */
  }
}

@media (max-width: 480px) {
  .search-container {
    margin-top: 56px;
  }
}

/* ───────────────────────────────
     2.2  Wide phones  
     ─────────────────────────────── */
@media (min-width: 481px) and (max-width: 980px) {
  body {
    padding: 0 20px;
  }

  .feedback-link {
    display: block;
  }

  .logo {
    margin-top: 100px;
  }

  .media-list{
  display:grid;
  grid-template-columns:repeat(3, 1fr);  
  gap:1rem;                             
}
  .media-list.with-four{
  display:grid;
  grid-template-columns:repeat(4, 1fr);  
  gap:1rem;                             
}

  .search-bar-container {
    width: 450px;
    margin-top: 56px;
  }
  .search-bar {
    font-size: 1.05rem;
    width: 450px;
  }

  /* still single column but give the secondary panel a subtle separator */
  .secondaryPanel {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 2px solid var(--panel-separator);
  }

  .mainPanel,
  .secondaryPanel {
    width: 95vw;
  }

  .site-switch-notice,
  .site-bumper {
    max-width: 24vw;
  }
}

/* ───────────────────────────────
     2.3  Tablets  
     ─────────────────────────────── */
@media (min-width: 980px) and (max-width: 1150px) {
  body {
    padding: 0 28px;
  }
  .logo {
    margin-top: 120px;
  }

  .search-bar-container {
    width: 584px;
  }
  .search-bar {
    width: 584px;
  }
  .feedback-link {
    display: block;
  }

  /* side-by-side, full-width container */
  .panels {
    width: 100%;
    flex-direction: row;
    align-items: flex-start;
    gap: 24px; /* a little tighter than 32px */
  }

  /* let each column flex freely */
  .mainPanel,
  .secondaryPanel {
    flex: 1 1 0; /* grow  shrink, base 0 */
    width: auto; /* override the earlier 550/340px */
    min-width: 0; /* allow content to shrink below intrinsic size */
  }

  .inspirational-blurb {
    max-width: 40vw;
  }

  #betalabel {
    position: absolute;
    width: 70px;
    right: -60px;
    rotate: 30deg;
    top: -50px;
    z-index: -100;
    opacity: 0.45;
  }

  .site-switch-notice,
  .site-bumper {
    max-width: 30vw;
  }

  .secondaryPanel {
    border-left: 2px solid var(--panel-separator);
    padding-left: 20px;
  }
}

/* ───────────────────────────────
     2.4  Desktop
     ─────────────────────────────── */
@media (min-width: 1150px) {
  body {
    padding: 0;
  }

  .logo {
    margin-top: 150px;
  }

  /* full-size search box */
  .search-bar-container {
    width: 584px;
  }
  .search-bar {
    width: 584px;
  }
  .feedback-link {
    display: block;
  }

  .inspirational-blurb {
    max-width: 30vw;
  }

  #betalabel {
    position: absolute;
    width: 70px;
    right: -60px;
    rotate: 30deg;
    top: -50px;
    z-index: -100;
    opacity: 0.45;
  }

  /* PANELS: side-by-side again */
  .panels {
    width: 970px;
    margin: 0 auto;
    flex-direction: row;
  }

  .mainPanel {
    width: 550px;
  }
  .secondaryPanel {
    width: 340px;
    margin-left: 60px;
    border-left: 2px solid var(--panel-separator);
    padding-left: 20px;
  }

  .site-switch-notice,
  .site-bumper {
    max-width: 350px;
  }
}




.static-page-header {
  width: 100%;
  padding: 12px 24px;
  background-color: var(--bg-page);
  border-bottom: 1px solid var(--border-light);
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-bottom: 24px;
}

.static-logo-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: var(--link);
  font-weight: 600;
  font-size: 1rem;
}

.static-logo-link:hover {
    text-decoration: underline;
}

.static-logo-link img {
  height: 35px;
  margin-right: 12px;
}

.contact-form input.is-valid,
.contact-form textarea.is-valid {
  border-color: #28a745; /* A standard 'success' green */
  box-shadow: 0 0 0 1px #28a74544;
}

.contact-form input.is-invalid,
.contact-form textarea.is-invalid {
  border-color: #dc3545; /* A standard 'error' red */
  box-shadow: 0 0 0 1px #dc354544;
}

.contact-form input,
.contact-form textarea {
    transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}