/*
 * Interslide 6.3 — modèles publics
 * Une seule grammaire pour les archives, les articles, les produits et le compte.
 */

/* Shared page headers */
.archive-head,
.search-hero,
.standard-page-hero,
.library-hero,
.reviews-hero,
.account-hero,
.country-hero,
.media-profile-hero,
.dossier-hero,
.story-hero,
.event-page-hero,
.service-hero {
  position: relative;
  padding: clamp(4rem, 10vw, 9rem) var(--is-pad) clamp(2rem, 5vw, 4rem);
  border-bottom: 1px solid var(--is-line);
  background: var(--is-black);
  color: var(--is-white);
}

.archive-head .shell,
.search-hero .shell,
.standard-page-hero .shell-narrow,
.library-hero .shell,
.reviews-hero .shell,
.account-hero .shell,
.country-hero .shell,
.media-profile-hero .shell,
.dossier-hero .shell,
.story-hero .shell,
.event-page-hero .shell,
.service-hero .shell {
  width: 100%;
  padding: 0;
}

.archive-head::before,
.search-hero::before,
.standard-page-hero::before,
.library-hero::before,
.reviews-hero::before,
.account-hero::before {
  position: absolute;
  top: 1rem;
  right: var(--is-pad);
  color: var(--is-grey);
  content: "INTERSLIDE / SYSTEM";
  font-size: 0.56rem;
}

.archive-head h1,
.search-hero h1,
.standard-page-hero h1,
.library-hero h1,
.reviews-hero h1,
.account-hero h1,
.country-hero h1,
.media-profile-hero h1,
.dossier-hero h1,
.story-hero h1,
.event-page-hero h1,
.service-hero h1 {
  max-width: 14ch;
  margin: 1rem 0 0;
  font-family: var(--is-display);
  font-size: clamp(3.5rem, 9vw, 10rem);
  font-weight: 900;
  letter-spacing: -0.045em;
  line-height: 0.82;
  text-transform: uppercase;
}

.archive-description,
.standard-page-hero .dek,
.search-hero > .shell > p:last-child,
.country-hero .dek,
.dossier-hero .dek,
.story-hero .dek,
.event-page-hero .dek {
  max-width: 62ch;
  margin: 1.8rem 0 0;
  color: var(--is-grey);
  font-size: clamp(0.82rem, 1.3vw, 1rem);
  line-height: 1.65;
}

.eyebrow-light {
  color: var(--is-red);
}

.archive-toolbar,
.topic-hub-toolbar,
.dossier-archive-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
  min-height: 4rem;
  margin: 0;
  padding-block: 0.75rem;
  border-bottom: 1px solid var(--is-line);
}

.archive-toolbar > p,
.topic-hub-toolbar > p {
  margin: 0;
  color: var(--is-grey);
  font-size: 0.62rem;
  text-transform: uppercase;
}

.archive-toolbar-links,
.archive-content-switcher,
.topic-child-nav,
.library-tabs,
.media-profile-nav,
.media-profile-category-nav,
.country-page nav,
.dossier-term-list,
.event-term-list {
  display: flex;
  flex-wrap: wrap;
  gap: 1px;
}

.archive-toolbar-links a,
.archive-content-switcher a,
.topic-child-nav a,
.library-tabs a,
.media-profile-nav a,
.media-profile-category-nav a,
.country-page nav a,
.dossier-term-list a,
.event-term-list a {
  padding: 0.52rem 0.7rem;
  border: 1px solid var(--is-grey-dark);
  color: var(--is-white);
  font-size: 0.62rem;
  text-decoration: none;
  text-transform: uppercase;
}

.archive-toolbar-links a:hover,
.archive-toolbar-links a.is-active,
.archive-content-switcher a.is-active,
.topic-child-nav a:hover,
.library-tabs a:hover,
.library-tabs a.is-active,
.media-profile-nav a:hover,
.media-profile-category-nav a:hover,
.media-profile-category-nav a.is-active,
.country-page nav a:hover {
  background: var(--is-white);
  color: var(--is-black);
  text-decoration: none;
}

.section-space {
  padding-top: clamp(2rem, 4vw, 4rem);
  padding-bottom: clamp(4rem, 8vw, 8rem);
}

.section-heading,
.section-heading-numbered,
.media-profile-section-head,
.for-you-section-head,
.reviews-workspace-head,
.directory-search,
.media-directory-head,
.event-directory-controls {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 1.4rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--is-line);
}

.section-heading h2,
.section-heading-numbered h2,
.media-profile-section-head h2,
.for-you-section-head h2,
.reviews-workspace-head h2,
.media-directory-head h2,
.events-directory-head h1,
.reference-head h1,
.pro-head h1 {
  margin: 0.4rem 0 0;
  font-family: var(--is-display);
  font-size: clamp(2.2rem, 5vw, 5.5rem);
  font-weight: 900;
  letter-spacing: -0.035em;
  line-height: 0.86;
  text-transform: uppercase;
}

.section-number,
.section-count {
  color: var(--is-red);
  font-family: var(--is-display);
  font-size: clamp(3rem, 6vw, 6rem);
  line-height: 0.8;
}

/* Unified cards */
.card-grid,
.card-grid-editorial,
.directory-grid,
.country-grid,
.event-result-grid,
.reference-grid,
.pro-service-grid,
.radar-issue-grid,
.account-library-grid {
  gap: 1px;
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.story-card,
.editorial-card {
  display: flex;
  min-height: 35rem;
  flex-direction: column;
  overflow: hidden;
  border: 0;
  background: var(--is-black);
}

.card-media {
  position: relative;
  display: block;
  min-height: 13rem;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-bottom: 1px solid var(--is-line);
  background: var(--is-white);
  color: var(--is-black);
  text-decoration: none;
}

.card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.12);
  transition: filter 200ms ease, transform 400ms ease;
}

.story-card:hover .card-media img {
  filter: grayscale(0.2) contrast(1.04);
  transform: scale(1.018);
}

.image-placeholder {
  display: grid;
  width: 100%;
  height: 100%;
  min-height: 13rem;
  place-items: center;
}

.image-placeholder i {
  font-family: var(--is-display);
  font-size: clamp(7rem, 15vw, 15rem);
  font-style: normal;
  line-height: 0.7;
}

.card-product {
  position: absolute;
  top: 0.7rem;
  left: 0.7rem;
  padding: 0.28rem 0.4rem;
  border: 1px solid currentColor;
  background: var(--is-black);
  color: var(--is-white);
  font-size: 0.56rem;
  text-transform: uppercase;
}

.card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 1rem;
}

.card-topline {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.card-body h3 {
  margin: 2rem 0 0.9rem;
  font-family: var(--is-mono) !important;
  font-size: clamp(1.1rem, 1.7vw, 1.45rem) !important;
  font-weight: 650;
  line-height: 1.15 !important;
}

.card-body h3 a {
  text-decoration: none;
}

.card-body h3 a:hover {
  color: var(--is-red);
}

.card-body > p {
  margin-bottom: 1.5rem;
  color: var(--is-grey);
  font-size: 0.74rem;
}

.card-keywords {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 1rem;
}

.card-keywords a {
  color: var(--is-grey);
  font-size: 0.58rem;
  text-decoration: none;
}

.card-footer {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.55rem 1rem;
  align-items: center;
  margin-top: auto;
  padding-top: 0.8rem;
  border-top: 1px solid var(--is-line);
}

.card-country {
  color: var(--is-red);
  font-size: 0.58rem;
  text-transform: uppercase;
}

.card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  grid-column: 1 / -1;
}

.card-actions button,
.save-button,
.remove-save,
.js-follow,
.js-unfollow,
.js-unsave {
  min-height: 2rem !important;
  padding: 0.4rem 0.55rem !important;
  background: transparent !important;
  color: var(--is-grey) !important;
  font-size: 0.56rem !important;
}

.card-actions button:hover,
.card-actions button.is-complete,
.save-button:hover,
.save-button.is-complete {
  border-color: var(--is-white) !important;
  color: var(--is-white) !important;
}

.card-arrow {
  grid-row: 1;
  grid-column: 2;
}

.country-card,
.directory-result-card,
.event-result-card,
.reference-card,
.pro-service-card,
.radar-issue-number {
  border: 0;
  background: var(--is-black);
}

.country-card a {
  display: flex;
  min-height: 20rem;
  flex-direction: column;
  padding: 1rem;
  color: inherit;
  text-decoration: none;
}

.country-card-top {
  display: flex;
  justify-content: space-between;
  color: var(--is-grey);
  font-size: 0.62rem;
}

.country-card h3 {
  margin: auto 0 1rem;
  font-family: var(--is-display);
  font-size: clamp(2.5rem, 5vw, 5rem);
  line-height: 0.86;
  text-transform: uppercase;
}

.country-card p,
.country-card small {
  color: var(--is-grey);
  font-size: 0.68rem;
}

.country-card:hover,
.directory-result-card:hover,
.event-result-card:hover,
.reference-card:hover {
  background: var(--is-white);
  color: var(--is-black);
}

.directory-result-card {
  display: grid;
  min-height: 18rem;
  grid-template-columns: minmax(8rem, 0.35fr) minmax(0, 1fr);
}

.directory-result-visual {
  display: grid;
  min-height: 100%;
  place-items: center;
  overflow: hidden;
  border-right: 1px solid var(--is-line);
  background: var(--is-white);
  color: var(--is-black);
  text-decoration: none;
}

.directory-result-visual img {
  width: 76%;
  max-height: 8rem;
  object-fit: contain;
  filter: grayscale(1);
}

.directory-result-visual > span {
  font-family: var(--is-display);
  font-size: clamp(4rem, 9vw, 8rem);
}

.directory-result-copy {
  display: flex;
  flex-direction: column;
  padding: 1rem;
}

.directory-result-copy h3 {
  margin: 1.5rem 0 0.7rem;
  font-size: clamp(1.1rem, 2vw, 1.6rem);
  line-height: 1.1;
}

.directory-result-copy h3 a,
.directory-result-copy footer a {
  text-decoration: none;
}

.directory-result-copy > p:not(.eyebrow) {
  color: var(--is-grey);
  font-size: 0.7rem;
}

.directory-result-copy footer {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: auto;
  padding-top: 0.7rem;
  border-top: 1px solid var(--is-line);
  color: var(--is-grey);
  font-size: 0.58rem;
  text-transform: uppercase;
}

.event-result-card {
  display: grid;
  grid-template-columns: 7rem minmax(0, 1fr);
  gap: 1rem;
  padding: 1rem;
}

.event-result-count {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-right: 1px solid var(--is-line);
}

.event-result-count strong {
  font-family: var(--is-display);
  font-size: 4rem;
  line-height: 0.8;
}

.event-result-count span,
.event-result-card footer {
  color: var(--is-grey);
  font-size: 0.58rem;
  text-transform: uppercase;
}

.event-result-card h3 {
  font-size: 1.35rem;
  line-height: 1.15;
}

.event-result-card h3 a {
  text-decoration: none;
}

/* Search and directories */
.search-hero {
  padding-bottom: clamp(3rem, 7vw, 6rem);
}

.search-command {
  display: grid;
  max-width: 70rem;
  grid-template-columns: 1fr auto;
  margin-top: 2.5rem;
  border: 1px solid var(--is-grey-dark);
}

.search-command input {
  min-width: 0;
  min-height: 4rem;
  padding: 1rem !important;
  border: 0 !important;
  font-size: clamp(0.9rem, 2vw, 1.25rem);
}

.search-command button {
  border: 0 !important;
  border-left: 1px solid var(--is-grey-dark) !important;
}

.search-page,
.library-page,
.reviews-app,
.account-page,
.subscription-page {
  padding-top: clamp(2rem, 5vw, 4rem) !important;
  padding-bottom: clamp(4rem, 8vw, 8rem) !important;
}

.search-type-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 1px;
  margin-bottom: 2rem;
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.search-type-tabs a {
  flex: 1 1 8rem;
  padding: 0.75rem;
  background: var(--is-black);
  color: var(--is-grey);
  font-size: 0.62rem;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
}

.search-type-tabs a:hover,
.search-type-tabs a.is-active {
  background: var(--is-white);
  color: var(--is-black);
}

.search-workspace,
.library-layout,
.reviews-layout,
.account-content-v2,
.article-reading-layout,
.story-layout,
.dossier-layout,
.event-page-layout,
.service-layout {
  display: grid;
  grid-template-columns: minmax(14rem, 0.28fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}

.search-filters,
.library-follows,
.reviews-sidebar,
.account-sidebar,
.article-tools,
.story-aside,
.event-page-aside,
.sticky-panel,
.legal-aside,
.entity-facts,
.radar-issue-meta {
  position: sticky;
  top: 1rem;
  padding: 1rem;
  border: 1px solid var(--is-line);
}

.search-filters form,
.directory-search form,
.media-directory-search,
.event-directory-controls form {
  display: grid;
  gap: 0.8rem;
}

.search-filters label,
.directory-search label,
.media-directory-search label,
.event-directory-controls label {
  display: grid;
  gap: 0.35rem;
  color: var(--is-grey);
  font-size: 0.58rem;
  text-transform: uppercase;
}

.search-filter-head {
  margin: 0 0 0.8rem;
}

.search-filter-head a {
  color: var(--is-red);
  font-size: 0.58rem;
}

.search-results-head {
  margin-bottom: 1rem;
}

.search-results-head h2 {
  margin: 0.35rem 0 0;
  font-family: var(--is-display);
  font-size: clamp(2rem, 4vw, 4rem);
  line-height: 0.9;
  text-transform: uppercase;
}

.search-active-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.search-active-filters span {
  padding: 0.35rem 0.5rem;
  border: 1px solid var(--is-red);
  color: var(--is-red);
  font-size: 0.58rem;
  text-transform: uppercase;
}

.search-discovery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--is-line);
}

.search-discovery > div {
  min-height: 28rem;
  padding: var(--is-pad);
  border-right: 1px solid var(--is-line);
}

.search-discovery > div:last-child {
  border-right: 0;
}

.search-discovery h2 {
  margin: 2rem 0;
  font-family: var(--is-display);
  font-size: clamp(2.5rem, 6vw, 6rem);
  line-height: 0.85;
  text-transform: uppercase;
}

.search-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.search-suggestions a {
  padding: 0.45rem 0.6rem;
  border: 1px solid var(--is-grey-dark);
  font-size: 0.62rem;
  text-decoration: none;
  text-transform: uppercase;
}

.search-suggestions a:hover {
  background: var(--is-white);
  color: var(--is-black);
}

.media-directory,
.event-directory,
.reference-directory,
.pro-services,
.radar-issue-directory {
  width: min(100%, 94rem);
  margin-inline: auto;
  padding: clamp(3rem, 6vw, 6rem) var(--is-pad);
}

.media-directory-head,
.events-directory-head,
.reference-head,
.pro-head,
.radar-archive-head {
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--is-line);
}

.media-directory-controls,
.event-directory-controls,
.coverage-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  padding: 1px;
  margin-bottom: 2rem;
  background: var(--is-line);
}

.media-directory-controls > *,
.event-directory-controls > *,
.coverage-filters > * {
  background: var(--is-black);
}

.media-directory-results,
.event-result-grid,
.reference-grid,
.pro-service-grid,
.radar-issue-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Article and standard editorial pages */
.reading-progress {
  position: fixed;
  z-index: 220;
  top: 0;
  left: var(--is-rail);
  width: 0;
  height: 3px;
  background: var(--is-red);
}

.article-breadcrumb,
.page-breadcrumb,
.media-profile-breadcrumb,
.ia-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  padding-top: 1rem;
  color: var(--is-grey);
  font-size: 0.58rem;
  text-transform: uppercase;
}

.article-breadcrumb a,
.page-breadcrumb a,
.media-profile-breadcrumb a {
  text-decoration: none;
}

.article-header {
  width: min(100%, 90rem);
  margin-inline: auto;
  padding: clamp(4rem, 9vw, 9rem) var(--is-pad) clamp(2.5rem, 5vw, 4rem);
}

.article-header h1 {
  max-width: 13ch !important;
  margin: 1rem 0 1.8rem !important;
  font-size: clamp(3.4rem, 8.5vw, 9rem) !important;
}

.article-header .dek {
  max-width: 60ch;
  margin: 0 0 1.5rem;
  color: var(--is-grey);
  font-size: clamp(0.92rem, 1.5vw, 1.18rem);
  line-height: 1.6;
}

.byline {
  color: var(--is-grey);
  font-size: 0.62rem;
  text-transform: uppercase;
}

.article-taxonomies,
.article-keywords,
.story-tags,
.story-keywords {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 1.4rem;
}

.article-taxonomies a,
.article-keywords a,
.story-tags a,
.story-keywords a,
.keyword-link {
  padding: 0.4rem 0.55rem;
  border: 1px solid var(--is-grey-dark);
  font-size: 0.58rem;
  text-decoration: none;
  text-transform: uppercase;
}

.article-taxonomies .country-link {
  border-color: var(--is-red);
  color: var(--is-red);
}

.article-header .save-button {
  margin-top: 1rem;
}

.article-hero {
  width: 100%;
  max-height: 85vh;
  margin: 0;
  overflow: hidden;
  border-block: 1px solid var(--is-line);
}

.article-hero img {
  width: 100%;
  max-height: 80vh;
  object-fit: cover;
  filter: grayscale(1) contrast(1.08);
}

.article-hero figcaption {
  padding: 0.55rem var(--is-pad);
  color: var(--is-grey);
  font-size: 0.58rem;
}

.article-reading-layout,
.story-layout,
.dossier-layout,
.event-page-layout {
  grid-template-columns: minmax(12rem, 0.27fr) minmax(0, 1fr);
  padding-top: clamp(3rem, 7vw, 7rem);
  padding-bottom: clamp(4rem, 8vw, 8rem);
}

.article-content,
.story-main,
.dossier-main,
.event-page-main,
.prose,
.legal-content {
  max-width: 50rem;
  font-family: var(--is-mono);
  font-size: clamp(0.98rem, 1.2vw, 1.12rem);
  line-height: 1.78;
}

.article-content > p:first-child::first-letter,
.prose > p:first-child::first-letter {
  float: left;
  margin: 0.06em 0.12em 0 0;
  color: var(--is-red);
  font-family: var(--is-display);
  font-size: 4.4em;
  line-height: 0.78;
}

.article-content h2,
.article-content h3,
.story-main h2,
.dossier-main h2,
.event-page-main h2,
.prose h2,
.legal-content h2 {
  margin: 3rem 0 1rem;
  font-family: var(--is-display);
  font-size: clamp(2.3rem, 5vw, 4.8rem);
  line-height: 0.9;
  text-transform: uppercase;
}

.article-content h3,
.story-main h3,
.dossier-main h3,
.prose h3,
.legal-content h3 {
  font-size: clamp(1.6rem, 3vw, 2.7rem);
}

.article-content img,
.prose img {
  margin-block: 2rem;
  filter: grayscale(1) contrast(1.05);
}

.article-tools-sticky {
  position: sticky;
  top: 1rem;
}

.article-tools p,
.article-share p,
.article-toc > p {
  color: var(--is-grey);
  font-size: 0.58rem;
  text-transform: uppercase;
}

.article-toc ol {
  padding-left: 1.1rem;
}

.article-toc a,
.article-share a {
  font-size: 0.65rem;
}

.article-trust,
.related-reading,
.article-end {
  width: min(100%, 94rem);
  margin-inline: auto;
  padding: clamp(2rem, 5vw, 5rem) var(--is-pad);
  border-top: 1px solid var(--is-line);
}

.article-end-mark {
  color: var(--is-red);
  font-family: var(--is-display);
  font-size: clamp(5rem, 14vw, 14rem);
  line-height: 0.7;
}

.standard-page-body,
.legal-page,
.contact-directory {
  width: min(100%, 64rem);
  margin-inline: auto;
  padding: clamp(3rem, 7vw, 7rem) var(--is-pad);
}

.standard-page-children {
  display: grid;
  gap: 1px;
  margin-top: 3rem;
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.standard-page-children a {
  display: flex;
  justify-content: space-between;
  padding: 1rem;
  background: var(--is-black);
  text-decoration: none;
}

.standard-page-children a:hover {
  background: var(--is-white);
  color: var(--is-black);
}

.standard-page-meta,
.legal-updated {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 4rem;
  padding-top: 0.8rem;
  border-top: 1px solid var(--is-line);
  color: var(--is-grey);
  font-size: 0.58rem;
  text-transform: uppercase;
}

.legal-page {
  display: grid;
  grid-template-columns: minmax(12rem, 0.3fr) minmax(0, 1fr);
  gap: 3rem;
  width: min(100%, 82rem);
}

.legal-addendum,
.fact-box,
.relation-box,
.dossier-change-panel,
.event-change,
.coverage-proof,
.subscription-panel,
.premium-gate {
  padding: 1.2rem;
  border: 1px solid var(--is-line);
  border-left: 5px solid var(--is-red);
  background: var(--is-black-soft);
}

.contact-head,
.pro-head,
.events-directory-head,
.reference-head {
  padding: clamp(4rem, 9vw, 8rem) 0 2rem;
}

.contact-directory {
  width: min(100%, 94rem);
}

.contact-directory > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.contact-directory article {
  min-height: 16rem;
  padding: 1rem;
  background: var(--is-black);
}

.error-page {
  display: grid;
  min-height: 80vh;
  grid-template-columns: minmax(0, 0.75fr) minmax(0, 1fr);
  border-bottom: 1px solid var(--is-line);
}

.error-code {
  display: grid;
  place-items: center;
  border-right: 1px solid var(--is-line);
  color: var(--is-red);
  font-family: var(--is-display);
  font-size: clamp(9rem, 25vw, 26rem);
  line-height: 0.7;
}

.error-page > div:last-child {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--is-pad);
}

.error-page h1 {
  margin: 1rem 0;
  font-family: var(--is-display);
  font-size: clamp(3rem, 7vw, 7rem);
  line-height: 0.85;
  text-transform: uppercase;
}

.error-shortcuts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 1rem;
}

/* Product pages: For You and Prisme */
.for-you-public,
.prisme-public-hero {
  min-height: 92vh;
  border-bottom: 1px solid var(--is-line);
}

.for-you-public-grid,
.prisme-public-hero .shell {
  display: grid;
  min-height: inherit;
  grid-template-columns: minmax(0, 1fr) minmax(22rem, 0.75fr);
  padding: 0;
}

.for-you-public-copy,
.prisme-public-hero > .shell > div:first-child {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--is-pad);
  border-right: 1px solid var(--is-line);
}

.for-you-public-copy h1,
.prisme-public-hero h1 {
  max-width: 10ch;
  margin: 1rem 0 1.5rem;
  font-family: var(--is-display);
  font-size: clamp(4rem, 9vw, 10rem);
  letter-spacing: -0.045em;
  line-height: 0.8;
  text-transform: uppercase;
}

.for-you-public-copy > p:not(.eyebrow),
.prisme-public-hero .dek {
  max-width: 56ch;
  color: var(--is-grey);
  font-size: 0.84rem;
}

.for-you-public-actions,
.prisme-public-actions,
.prisme-follow-actions,
.account-actions,
.account-action-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1.5rem;
}

.for-you-public-preview,
.prisme-public-mark {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  overflow: hidden;
  padding: var(--is-pad);
  background: var(--is-white);
  color: var(--is-black);
}

.for-you-public-preview header {
  display: flex;
  justify-content: space-between;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid var(--is-black);
  font-size: 0.58rem;
}

.for-you-public-preview article {
  display: grid;
  grid-template-columns: 6rem 1fr;
  gap: 0.8rem;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.25);
}

.for-you-public-preview article.is-lead {
  grid-template-columns: 1fr;
}

.for-you-public-preview img {
  width: 100%;
  height: 5rem;
  object-fit: cover;
  filter: grayscale(1);
}

.for-you-public-preview h2 {
  margin: 0.35rem 0;
  font-family: var(--is-mono);
  font-size: 1rem;
  line-height: 1.1;
}

.for-you-public-preview p,
.for-you-public-preview small {
  margin: 0;
  font-size: 0.6rem;
}

.for-you-explainer,
.prisme-how-it-works,
.prisme-type-guide,
.prisme-frontier,
.prisme-premium-offer {
  padding-top: clamp(3rem, 7vw, 7rem);
  padding-bottom: clamp(3rem, 7vw, 7rem);
}

.for-you-explainer > header h2,
.prisme-how-it-works h2,
.prisme-type-guide h2,
.prisme-frontier h2,
.prisme-premium-offer h2 {
  max-width: 12ch;
  margin: 1rem 0 2rem;
  font-family: var(--is-display);
  font-size: clamp(3rem, 7vw, 7rem);
  line-height: 0.84;
  text-transform: uppercase;
}

.for-you-explainer > div,
.prisme-how-it-works > div,
.prisme-type-guide-list,
.prisme-frontier-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.for-you-explainer article,
.prisme-how-it-works article,
.prisme-type-guide-list article,
.prisme-frontier-grid > * {
  min-height: 18rem;
  padding: 1rem;
  background: var(--is-black);
}

.for-you-explainer article span,
.prisme-step,
.prisme-side-tag {
  color: var(--is-red);
  font-size: 0.58rem;
}

.for-you-explainer h3,
.prisme-how-it-works h3,
.prisme-type-guide h3 {
  margin-top: 6rem;
  font-family: var(--is-display);
  font-size: 2.6rem;
  line-height: 0.85;
  text-transform: uppercase;
}

.for-you-app,
.prisme-reader {
  width: 100%;
  padding: 0 !important;
}

.for-you-nav,
.prisme-app-nav,
.reviews-top-nav {
  display: grid;
  grid-template-columns: auto 1fr minmax(12rem, 0.35fr) auto;
  align-items: center;
  gap: 1rem;
  min-height: 4rem;
  padding: 0.65rem var(--is-pad);
  border-bottom: 1px solid var(--is-line);
}

.for-you-brand,
.prisme-app-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  text-transform: uppercase;
}

.for-you-brand > span,
.prisme-app-brand > span {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border: 1px solid var(--is-white);
}

.for-you-nav-links,
.prisme-app-links {
  display: flex;
  justify-content: center;
  gap: 0.3rem;
}

.for-you-nav-links a,
.prisme-app-links a {
  padding: 0.4rem 0.55rem;
  border: 1px solid transparent;
  color: var(--is-grey);
  font-size: 0.58rem;
  text-decoration: none;
  text-transform: uppercase;
}

.for-you-nav-links a:hover,
.for-you-nav-links a.is-current,
.prisme-app-links a:hover,
.prisme-app-links a.is-current {
  border-color: var(--is-grey-dark);
  color: var(--is-white);
}

.for-you-search,
.prisme-app-search {
  display: grid;
  grid-template-columns: 1fr auto;
}

.for-you-search input,
.prisme-app-search input {
  min-width: 0;
  min-height: 2.4rem;
  border-right: 0 !important;
}

.for-you-search button,
.prisme-app-search button {
  min-height: 2.4rem !important;
}

.for-you-avatar,
.prisme-app-account {
  display: grid;
  width: 2.4rem;
  height: 2.4rem;
  place-items: center;
  border: 1px solid var(--is-red);
  color: var(--is-red);
  text-decoration: none;
}

.for-you-masthead,
.prisme-reader-head {
  display: flex;
  min-height: 23rem;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  padding: var(--is-pad);
  border-bottom: 1px solid var(--is-line);
}

.for-you-masthead h1,
.prisme-reader-head h2,
.prisme-reader-title {
  margin: 0.5rem 0;
  font-family: var(--is-display);
  font-size: clamp(4rem, 10vw, 11rem);
  line-height: 0.78;
  text-transform: uppercase;
}

.for-you-masthead > div > p:last-child,
.prisme-reader-head > div > p:last-child {
  color: var(--is-grey);
  font-size: 0.75rem;
}

.for-you-date,
.prisme-reader-profile {
  display: grid;
  min-width: 13rem;
  gap: 0.35rem;
  padding: 1rem;
  border: 1px solid var(--is-line);
  font-size: 0.62rem;
  text-transform: uppercase;
}

.for-you-date span,
.prisme-reader-profile span {
  color: var(--is-red);
}

.for-you-onboarding,
.prisme-onboarding {
  display: grid;
  grid-template-columns: minmax(0, 0.75fr) minmax(0, 1fr);
  gap: 1px;
  margin: var(--is-pad);
  border: 1px solid var(--is-red);
  background: var(--is-red);
}

.for-you-onboarding > *,
.prisme-onboarding > * {
  padding: var(--is-pad);
  background: var(--is-black);
}

.for-you-onboarding h2,
.prisme-onboarding h2 {
  margin: 0.8rem 0;
  font-family: var(--is-display);
  font-size: clamp(2.3rem, 5vw, 5rem);
  line-height: 0.86;
  text-transform: uppercase;
}

.for-you-controls,
.prisme-mode-tabs,
.prisme-reader-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.8rem var(--is-pad);
  border-bottom: 1px solid var(--is-line);
}

.for-you-modes,
.prisme-mode-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 1px;
  padding: 0;
  margin: 0;
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.for-you-modes button,
.prisme-mode-tabs button,
.prisme-reader-nav a {
  min-height: 2.6rem !important;
  padding: 0.65rem 0.8rem !important;
  border: 0 !important;
  background: var(--is-black) !important;
  color: var(--is-grey) !important;
  font-size: 0.58rem !important;
  text-decoration: none;
  text-transform: uppercase;
}

.for-you-modes button:hover,
.for-you-modes button.is-active,
.prisme-mode-tabs button:hover,
.prisme-mode-tabs button.is-active,
.prisme-reader-nav a:hover,
.prisme-reader-nav a.is-current {
  background: var(--is-white) !important;
  color: var(--is-black) !important;
}

.for-you-tune summary,
.prisme-filter-drawer summary {
  cursor: pointer;
  font-size: 0.62rem;
  text-transform: uppercase;
}

.for-you-tune-panel,
.prisme-filter-drawer[open] > *:not(summary) {
  margin-top: 0.8rem;
  padding: 1rem;
  border: 1px solid var(--is-line);
}

.prisme-interest-chips,
.prisme-current-interests,
.prisme-explore-examples {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.prisme-interest-chips button,
.prisme-current-interests button,
.prisme-explore-examples a {
  min-height: 2.2rem !important;
  padding: 0.45rem 0.6rem !important;
  border: 1px solid var(--is-grey-dark) !important;
  background: transparent !important;
  color: var(--is-grey) !important;
  font-size: 0.58rem !important;
  text-decoration: none;
}

.prisme-interest-chips button:hover,
.prisme-interest-chips button[aria-pressed="true"],
.prisme-current-interests button:hover {
  border-color: var(--is-red) !important;
  color: var(--is-red) !important;
}

.for-you-natural-tuning {
  display: grid;
  gap: 0.8rem;
  margin-top: 1rem;
}

.for-you-layout,
.prisme-reader-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.34fr);
  gap: 1px;
  padding: var(--is-pad);
  background: var(--is-line);
}

.for-you-main,
.prisme-reader-main,
.for-you-rail,
.prisme-reader-rail {
  padding: var(--is-pad);
  background: var(--is-black);
}

.for-you-rail > section,
.prisme-reader-rail > section {
  margin-bottom: 1rem;
  padding: 1rem;
  border: 1px solid var(--is-line);
}

.for-you-rail-head,
.prisme-rail-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.for-you-rail-head h2,
.prisme-rail-head h2 {
  margin: 0.35rem 0 0;
  font-family: var(--is-display);
  font-size: 2rem;
  line-height: 0.9;
  text-transform: uppercase;
}

.for-you-dossiers article,
.prisme-review-list article {
  display: grid;
  grid-template-columns: 2rem 1fr;
  gap: 0.7rem;
  padding: 0.8rem 0;
  border-top: 1px solid var(--is-line);
}

.for-you-dossiers article > span {
  color: var(--is-red);
  font-size: 0.58rem;
}

.for-you-dossiers h3 {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.25;
}

.for-you-dossiers h3 a {
  text-decoration: none;
}

.for-you-dossiers small {
  color: var(--is-grey);
  font-size: 0.55rem;
}

.for-you-why,
.prisme-rail-premium,
.prisme-premium-offer {
  border-color: var(--is-red) !important;
}

.prisme-public-mark {
  isolation: isolate;
  align-items: flex-start;
  justify-content: flex-end;
  font-family: var(--is-display);
}

.prisme-public-mark > span {
  position: absolute;
  inset: 50% auto auto 50%;
  z-index: -1;
  color: var(--is-black);
  font-size: clamp(20rem, 37vw, 40rem);
  line-height: 0.65;
  transform: translate(-50%, -49%);
}

.prisme-public-mark > strong {
  max-width: 100%;
  color: var(--is-red);
  font-size: clamp(4rem, 8vw, 9rem);
  letter-spacing: -0.035em;
  line-height: 0.76;
}

.prisme-public-mark > small {
  margin-top: 0.75rem;
  font-family: var(--is-mono);
  font-size: 0.58rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.prisme-type-guide-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.prisme-frontier-grid {
  grid-template-columns: minmax(0, 1fr) minmax(8rem, 0.28fr) minmax(0, 1fr);
}

.prisme-frontier-bridge {
  display: grid;
  place-items: center;
  color: var(--is-red);
  font-family: var(--is-display);
  font-size: clamp(4rem, 10vw, 10rem);
}

.prisme-explore-builder,
.prisme-filter-drawer,
.prisme-feed-toolbar {
  margin-bottom: 1rem;
  padding: 1rem;
  border: 1px solid var(--is-line);
  background: var(--is-black);
}

.prisme-explore-builder-head {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 1rem;
}

.prisme-explore-builder-head h2 {
  margin: 0.35rem 0 0;
  font-family: var(--is-display);
  font-size: clamp(2rem, 4vw, 4rem);
  line-height: 0.9;
  text-transform: uppercase;
}

.curator-filters {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
}

.curator-filters label {
  display: grid;
  gap: 0.3rem;
  color: var(--is-grey);
  font-size: 0.58rem;
  text-transform: uppercase;
}

/* Auth, pricing, account */
.auth-page {
  min-height: 100vh;
}

.auth-layout {
  display: grid;
  min-height: 100vh;
  grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.7fr);
  padding: 0;
}

.auth-card,
.auth-aside {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2rem, 6vw, 6rem);
}

.auth-card {
  border-right: 1px solid var(--is-line);
}

.auth-product {
  align-self: flex-start;
  margin-bottom: 3rem;
  padding: 0.45rem 0.55rem;
  border: 1px solid var(--is-grey-dark);
  font-size: 0.62rem;
  text-decoration: none;
  text-transform: uppercase;
}

.auth-card h1,
.auth-aside h2 {
  max-width: 10ch;
  margin: 0.8rem 0 1.2rem;
  font-family: var(--is-display);
  font-size: clamp(3rem, 7vw, 7rem);
  line-height: 0.84;
  text-transform: uppercase;
}

.auth-intro {
  max-width: 50ch;
  color: var(--is-grey);
  font-size: 0.78rem;
}

.auth-form {
  display: grid;
  max-width: 34rem;
  gap: 0.9rem;
  margin-top: 2rem;
}

.auth-form > label:not(.auth-check) {
  display: grid;
  gap: 0.35rem;
  color: var(--is-grey);
  font-size: 0.58rem;
  text-transform: uppercase;
}

.auth-form-row,
.auth-check {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  color: var(--is-grey);
  font-size: 0.62rem;
}

.auth-check {
  justify-content: flex-start;
}

.auth-form .button {
  width: 100%;
}

.auth-notice {
  max-width: 34rem;
  padding: 0.8rem;
  border: 1px solid var(--is-red);
  color: var(--is-red);
  font-size: 0.68rem;
}

.auth-notice.is-success {
  border-color: var(--is-white);
  color: var(--is-white);
}

.auth-switch {
  margin-top: 1rem;
  color: var(--is-grey);
  font-size: 0.65rem;
}

.auth-aside {
  background: var(--is-red);
}

.auth-aside .eyebrow-light,
.auth-aside small {
  color: rgba(255, 255, 255, 0.75);
}

.auth-aside ol {
  padding: 0;
  margin: 2rem 0 0;
  list-style: none;
}

.auth-aside li {
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  gap: 0.8rem;
  padding: 1rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.45);
}

.pricing-promise {
  border-bottom: 1px solid var(--is-line);
}

.pricing-promise .shell {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  padding: 0;
}

.pricing-promise span {
  padding: 1rem;
  border-right: 1px solid var(--is-line);
  color: var(--is-grey);
  font-size: 0.58rem;
  text-align: center;
  text-transform: uppercase;
}

.pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.pricing-card {
  position: relative;
  display: flex;
  min-height: 44rem;
  flex-direction: column;
  padding: var(--is-pad);
  border: 0;
  background: var(--is-black);
}

.pricing-card.pricing-featured {
  background: var(--is-red);
  color: var(--is-white);
}

.pricing-badge {
  position: absolute;
  top: 1rem;
  right: 1rem;
  padding: 0.3rem 0.45rem;
  border: 1px solid currentColor;
  font-size: 0.55rem;
  text-transform: uppercase;
}

.pricing-card h2 {
  margin: 2rem 0 1rem;
  font-family: var(--is-display);
  font-size: clamp(2.8rem, 5vw, 5.5rem);
  line-height: 0.84;
  text-transform: uppercase;
}

.pricing-price {
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
  padding-block: 1rem;
  border-block: 1px solid currentColor;
}

.pricing-price b {
  font-family: var(--is-display);
  font-size: clamp(2.8rem, 5vw, 5rem);
  line-height: 0.8;
}

.pricing-price span,
.pricing-perday,
.pricing-reassure {
  font-size: 0.58rem;
  text-transform: uppercase;
}

.pricing-copy {
  margin-top: 1.5rem;
  color: var(--is-grey);
  font-size: 0.72rem;
}

.pricing-featured .pricing-copy {
  color: rgba(255, 255, 255, 0.8);
}

.pricing-card ul {
  padding: 0;
  margin: 1rem 0 2rem;
  list-style: none;
}

.pricing-card li {
  padding: 0.55rem 0;
  border-top: 1px solid currentColor;
  font-size: 0.65rem;
}

.pricing-card li::before {
  margin-right: 0.5rem;
  color: var(--is-red);
  content: "+";
}

.pricing-featured li::before {
  color: var(--is-white);
}

.pricing-card .button {
  width: 100%;
  margin-top: auto;
}

.pricing-faq {
  margin-top: clamp(4rem, 8vw, 8rem);
}

.faq-item {
  border-top: 1px solid var(--is-line);
}

.faq-item > button {
  display: flex;
  width: 100%;
  min-height: 4rem !important;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--is-white) !important;
  text-align: left;
}

.faq-answer {
  max-width: 60rem;
  color: var(--is-grey);
  font-size: 0.78rem;
}

.account-dashboard-v2,
.subscription-dashboard {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.35fr);
  gap: 1px;
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.account-dashboard-v2 > *,
.subscription-dashboard > * {
  padding: var(--is-pad);
  background: var(--is-black);
}

.account-profile-grid {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  align-items: center;
}

.account-avatar {
  display: grid;
  width: 5rem;
  height: 5rem;
  place-items: center;
  border: 1px solid var(--is-red);
  color: var(--is-red);
  font-family: var(--is-display);
  font-size: 3rem;
}

.account-metrics-v2,
.account-interest-list,
.account-follow-list,
.access-feature-list,
.subscription-capabilities {
  display: grid;
  gap: 1px;
  margin-top: 1rem;
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.account-metrics-v2 {
  grid-template-columns: repeat(3, 1fr);
}

.account-metrics-v2 > *,
.account-interest-list > *,
.account-follow-list > *,
.access-feature-list > *,
.subscription-capabilities > * {
  padding: 1rem;
  background: var(--is-black);
}

.account-metrics-v2 strong {
  display: block;
  font-family: var(--is-display);
  font-size: 3rem;
  line-height: 0.8;
}

.account-metrics-v2 span,
.account-plan span,
.account-radar-status span {
  color: var(--is-grey);
  font-size: 0.58rem;
  text-transform: uppercase;
}

.account-entry,
.account-radar-status,
.account-plan,
.subscription-current,
.account-access-v2 {
  margin-bottom: 1rem;
  padding: 1rem;
  border: 1px solid var(--is-line);
}

.account-logout {
  color: var(--is-red);
}

/* Library, reviews and Radar */
.library-layout,
.reviews-layout {
  grid-template-columns: minmax(16rem, 0.3fr) minmax(0, 1fr);
}

.library-follow-list,
.reviews-list {
  display: grid;
  gap: 1px;
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.library-follow-list article,
.reviews-item {
  padding: 1rem;
  background: var(--is-black);
}

.reviews-item-grid {
  display: grid;
  grid-template-columns: 7rem 1fr auto;
  gap: 1rem;
  align-items: center;
}

.reviews-item-image {
  display: grid;
  aspect-ratio: 1;
  place-items: center;
  overflow: hidden;
  background: var(--is-white);
  color: var(--is-black);
}

.reviews-item-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1);
}

.reviews-create,
.reviews-settings,
.reviews-premium-notice,
.radar-signup,
.radar-access-status {
  padding: 1rem;
  border: 1px solid var(--is-line);
}

.radar-page-grid {
  display: grid;
  min-height: 85vh;
  grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.75fr);
}

.radar-letter,
.radar-signup {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--is-pad);
}

.radar-letter {
  border-right: 1px solid var(--is-line);
}

.radar-letter h1,
.radar-signup h2 {
  max-width: 10ch;
  margin: 0.8rem 0 1.2rem;
  font-family: var(--is-display);
  font-size: clamp(3.5rem, 9vw, 10rem);
  line-height: 0.8;
  text-transform: uppercase;
}

.radar-signup {
  border: 0;
  background: var(--is-red);
}

.radar-signup form,
.newsletter-form {
  display: grid;
  gap: 0.8rem;
  margin-top: 1rem;
}

.radar-signup input {
  border-color: rgba(255, 255, 255, 0.6) !important;
  background: transparent !important;
}

.radar-issue-number {
  min-height: 18rem;
  padding: 1rem;
}

.radar-issue-number > span {
  display: block;
  color: var(--is-red);
  font-family: var(--is-display);
  font-size: 6rem;
  line-height: 0.8;
}

/* Atlas, countries and media profiles */
.atlas-page-embed {
  min-height: 80vh;
}

.country-overview,
.country-coverage,
.country-media-directory,
.media-profile-overview,
.media-profile-coverage,
.media-profile-stories {
  width: min(100%, 94rem);
  margin-inline: auto;
  padding: clamp(3rem, 7vw, 7rem) var(--is-pad);
}

.country-stats,
.media-profile-facts,
.ia-facts-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.country-stats > *,
.media-profile-facts > *,
.ia-facts-grid > * {
  min-height: 9rem;
  padding: 1rem;
  background: var(--is-black);
}

.country-stats span,
.media-profile-facts span,
.ia-facts-grid span {
  display: block;
  margin-bottom: 2rem;
  color: var(--is-grey);
  font-size: 0.58rem;
  text-transform: uppercase;
}

.country-stats strong,
.media-profile-facts strong,
.ia-facts-grid strong {
  font-size: 1rem;
}

.country-media-grid,
.media-profile-article-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.media-card,
.media-profile-article {
  display: flex;
  min-height: 22rem;
  flex-direction: column;
  padding: 1rem;
  background: var(--is-black);
}

.media-card-logo,
.media-profile-logo {
  display: grid;
  min-height: 9rem;
  place-items: center;
  margin-bottom: 1rem;
  background: var(--is-white);
  color: var(--is-black);
}

.media-card-logo img,
.media-profile-logo img {
  max-width: 70%;
  max-height: 6rem;
  object-fit: contain;
  filter: grayscale(1);
}

.media-profile-hero-grid {
  display: grid;
  grid-template-columns: minmax(10rem, 0.24fr) minmax(0, 1fr) minmax(10rem, 0.2fr);
  gap: var(--is-pad);
  align-items: end;
}

.media-profile-intro h1 {
  font-size: clamp(3rem, 7vw, 8rem);
}

.media-profile-intro > p:last-of-type {
  max-width: 52ch;
  color: var(--is-grey);
  font-size: 0.74rem;
}

.media-profile-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1rem;
}

.media-profile-primary {
  display: inline-flex;
  padding: 0.65rem 0.8rem;
  border: 1px solid var(--is-white);
  font-size: 0.62rem;
  text-decoration: none;
  text-transform: uppercase;
}

.media-profile-stamp {
  padding: 1rem;
  border: 1px solid var(--is-red);
  color: var(--is-red);
}

.media-profile-stamp span,
.media-profile-stamp small {
  display: block;
  font-size: 0.55rem;
  text-transform: uppercase;
}

.media-profile-stamp strong {
  display: block;
  margin-block: 0.6rem;
  font-family: var(--is-display);
  font-size: 4rem;
  line-height: 0.8;
}

.media-profile-nav {
  padding-block: 1rem;
  border-bottom: 1px solid var(--is-line);
}

.media-profile-about {
  display: grid;
  grid-template-columns: minmax(14rem, 0.35fr) minmax(0, 1fr);
  gap: 3rem;
  margin-top: 3rem;
}

.media-profile-about h2 {
  margin: 0.6rem 0 0;
  font-family: var(--is-display);
  font-size: clamp(2.5rem, 5vw, 5rem);
  line-height: 0.86;
  text-transform: uppercase;
}

.media-profile-countries {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 2rem;
}

.media-profile-disclaimer {
  margin-top: 2rem;
  color: var(--is-grey);
  font-size: 0.62rem;
}

.media-profile-article {
  padding: 0;
}

.media-profile-article-image {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-bottom: 1px solid var(--is-line);
  background: var(--is-white);
}

.media-profile-article-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1);
}

.media-profile-article > div {
  padding: 1rem;
}

.media-profile-article h3 {
  font-size: 1rem;
  line-height: 1.2;
}

.media-profile-gate {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: var(--is-pad);
  border: 1px solid var(--is-red);
}

/* Dossiers, events, entities and services */
.story-scope,
.dossier-overview,
.dossier-sequences,
.dossier-open-questions,
.dossier-sources,
.event-analysis,
.event-sources,
.event-timeline,
.entity-grid,
.service-page {
  margin-bottom: 3rem;
}

.dossier-overview-grid,
.dossier-sequence-map,
.dossier-source-group,
.story-sources,
.event-source-list,
.service-deliverables {
  display: grid;
  gap: 1px;
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.dossier-overview-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dossier-overview-grid > *,
.dossier-sequence-map > *,
.dossier-source-group > *,
.story-sources > *,
.event-source-list > *,
.service-deliverables > * {
  padding: 1rem;
  background: var(--is-black);
}

.dossier-timeline,
.story-timeline,
.event-timeline ol {
  padding: 0;
  margin: 1.5rem 0 0;
  list-style: none;
}

.dossier-timeline li,
.story-timeline li,
.event-timeline li {
  display: grid;
  grid-template-columns: 8rem 1fr;
  gap: 1.5rem;
  padding: 1.2rem 0;
  border-top: 1px solid var(--is-line);
}

.dossier-timeline time,
.story-timeline time,
.event-timeline time {
  color: var(--is-red);
  font-size: 0.6rem;
  text-transform: uppercase;
}

.entity-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(15rem, 0.35fr);
  gap: 3rem;
}

.entity-facts > div {
  padding: 0.8rem 0;
  border-top: 1px solid var(--is-line);
}

.entity-facts span {
  display: block;
  color: var(--is-grey);
  font-size: 0.58rem;
  text-transform: uppercase;
}

.service-layout {
  width: min(100%, 94rem);
  margin-inline: auto;
  padding: clamp(3rem, 7vw, 7rem) var(--is-pad);
}

.pro-service-card {
  min-height: 24rem;
  padding: 1rem;
}

.pro-service-card h2 {
  margin: 5rem 0 1rem;
  font-family: var(--is-display);
  font-size: clamp(2.4rem, 4vw, 4rem);
  line-height: 0.86;
  text-transform: uppercase;
}

.pro-contact-strip {
  padding: clamp(3rem, 6vw, 6rem) var(--is-pad);
  border-block: 1px solid var(--is-line);
  background: var(--is-red);
}

/* Reference profiles and professional services — pass 6.2 */
.entity-directory-filters {
  display: grid;
  grid-template-columns: minmax(16rem, 1.4fr) repeat(2, minmax(10rem, 0.7fr)) auto;
  gap: 1px;
  max-width: 78rem;
  margin-top: 2.5rem;
  margin-bottom: 0;
  padding: 1px;
  border: 0;
  background: var(--is-line);
}

.entity-directory-filters label {
  display: grid;
  gap: 0.35rem;
  padding: 0.65rem;
  background: var(--is-black);
  color: var(--is-grey);
  font-size: 0.56rem;
  text-transform: uppercase;
}

.entity-directory-filters input,
.entity-directory-filters select {
  min-height: 2.6rem;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.entity-directory-filters button {
  border: 0 !important;
  background: var(--is-red) !important;
  color: var(--is-white) !important;
}

.entity-filter-reset {
  grid-column: 1 / -1;
  padding: 0.55rem;
  background: var(--is-black);
  color: var(--is-red);
  font-size: 0.58rem;
  text-align: right;
  text-transform: uppercase;
}

.reference-card {
  display: grid;
  min-height: 20rem;
  grid-template-columns: minmax(9rem, 0.35fr) minmax(0, 1fr);
}

.reference-card-media {
  display: grid;
  min-height: 100%;
  place-items: center;
  overflow: hidden;
  border-right: 1px solid var(--is-line);
  background: var(--is-white);
  color: var(--is-black);
  text-decoration: none;
}

.reference-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.08);
}

.reference-card-media > span {
  font-family: var(--is-display);
  font-size: clamp(6rem, 12vw, 12rem);
  line-height: 0.7;
}

.reference-card > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: 1rem;
}

.reference-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.reference-card h2 {
  margin: 3rem 0 0.8rem;
  font-family: var(--is-display);
  font-size: clamp(2rem, 4vw, 4rem);
  line-height: 0.86;
  text-transform: uppercase;
}

.reference-card h2 a {
  text-decoration: none;
}

.reference-card > div > p:not(.eyebrow) {
  color: var(--is-grey);
  font-size: 0.7rem;
}

.reference-card small {
  margin-top: auto;
  padding-top: 0.7rem;
  border-top: 1px solid var(--is-line);
  color: var(--is-red);
  font-size: 0.58rem;
  text-transform: uppercase;
}

.entity-hero {
  padding-right: 0;
  padding-bottom: 0;
}

.entity-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.42fr);
  align-items: stretch;
}

.entity-hero-grid > div:first-child {
  display: flex;
  min-height: 42rem;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0 var(--is-pad) clamp(3rem, 6vw, 6rem) 0;
}

.entity-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1.5rem;
}

.entity-portrait {
  display: grid;
  min-height: 42rem;
  place-items: center;
  overflow: hidden;
  margin: 0;
  border-left: 1px solid var(--is-line);
  background: var(--is-white);
  color: var(--is-black);
}

.entity-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.08);
}

.entity-portrait > span {
  font-family: var(--is-display);
  font-size: clamp(14rem, 27vw, 28rem);
  line-height: 0.65;
}

.entity-main {
  min-width: 0;
}

.entity-intro,
.service-intro {
  margin-bottom: 3rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--is-line);
}

.entity-intro h2,
.service-intro h2 {
  max-width: 12ch;
  margin: 0.8rem 0 0;
  font-family: var(--is-display);
  font-size: clamp(3rem, 6vw, 6rem);
  line-height: 0.84;
  text-transform: uppercase;
}

.entity-aliases {
  margin-top: 3rem;
  padding-top: 1rem;
  border-top: 1px solid var(--is-line);
}

.entity-aliases > div {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.8rem;
}

.entity-aliases span {
  padding: 0.4rem 0.55rem;
  border: 1px solid var(--is-grey-dark);
  color: var(--is-grey);
  font-size: 0.58rem;
  text-transform: uppercase;
}

.entity-facts ul {
  padding-left: 1rem;
  margin-bottom: 0;
  font-size: 0.68rem;
}

.entity-related,
.service-method {
  padding: clamp(3rem, 7vw, 7rem) 0;
  border-top: 1px solid var(--is-line);
}

.entity-related > .shell,
.service-method > .shell {
  width: min(100%, 94rem);
}

.pro-process {
  border-bottom: 1px solid var(--is-line);
}

.pro-process > .shell {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  padding-block: 1px;
  background: var(--is-line);
}

.pro-process article {
  min-height: 15rem;
  padding: 1rem;
  background: var(--is-black);
}

.pro-process article > span {
  color: var(--is-red);
  font-size: 0.58rem;
}

.pro-process h2 {
  margin: 4rem 0 0.6rem;
  font-family: var(--is-display);
  font-size: 2.6rem;
  line-height: 0.85;
  text-transform: uppercase;
}

.pro-process p,
.pro-service-card p {
  color: var(--is-grey);
  font-size: 0.7rem;
}

.pro-service-card {
  display: flex;
  flex-direction: column;
}

.pro-service-card h2 a {
  text-decoration: none;
}

.pro-service-card footer {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: auto;
  padding-top: 0.8rem;
  border-top: 1px solid var(--is-line);
  color: var(--is-grey);
  font-size: 0.58rem;
  text-transform: uppercase;
}

.pro-service-card footer a {
  color: var(--is-red);
  text-decoration: none;
}

.service-hero {
  padding-right: 0;
  padding-bottom: 0;
}

.service-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.34fr);
  padding-right: 0 !important;
}

.service-hero-grid > div:first-child {
  display: flex;
  min-height: 42rem;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0 var(--is-pad) clamp(3rem, 6vw, 6rem) 0;
}

.service-hero-facts {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: var(--is-pad);
  border-left: 1px solid var(--is-line);
  background: var(--is-white);
  color: var(--is-black);
}

.service-hero-facts > div {
  padding: 1rem 0;
  border-top: 1px solid rgba(0, 0, 0, 0.24);
}

.service-hero-facts span {
  display: block;
  margin-bottom: 0.35rem;
  color: #666;
  font-size: 0.56rem;
  text-transform: uppercase;
}

.service-hero-facts strong {
  font-size: 0.76rem;
  line-height: 1.35;
}

.service-deliverables {
  position: sticky;
  top: 1rem;
  align-content: start;
  padding: 1rem;
  border: 1px solid var(--is-red);
  background: var(--is-black);
}

.service-deliverables > * {
  padding: 0;
  background: transparent;
}

.service-deliverables h2 {
  margin: 0.8rem 0 1.5rem;
  font-family: var(--is-display);
  font-size: 2.8rem;
  line-height: 0.85;
  text-transform: uppercase;
}

.service-deliverables ul {
  display: grid;
  gap: 1px;
  padding: 1px;
  margin: 0 0 1rem;
  background: var(--is-line);
  list-style: none;
}

.service-deliverables li {
  display: grid;
  grid-template-columns: 1.3rem 1fr;
  gap: 0.5rem;
  padding: 0.8rem;
  background: var(--is-black);
  font-size: 0.66rem;
}

.service-deliverables li span {
  color: var(--is-red);
}

.service-method ol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  padding: 1px;
  background: var(--is-line);
  list-style: none;
}

.service-method li {
  min-height: 18rem;
  padding: 1rem;
  background: var(--is-black);
}

.service-method li > span {
  color: var(--is-red);
  font-size: 0.58rem;
}

.service-method li strong {
  display: block;
  margin: 6rem 0 0.7rem;
  font-family: var(--is-display);
  font-size: 2.2rem;
  line-height: 0.86;
  text-transform: uppercase;
}

.service-method li p {
  color: var(--is-grey);
  font-size: 0.68rem;
}

.pro-contact-strip > .shell {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
}

.pro-contact-strip h2 {
  max-width: 14ch;
  margin: 0.7rem 0 0;
  font-family: var(--is-display);
  font-size: clamp(2.8rem, 6vw, 6rem);
  line-height: 0.84;
  text-transform: uppercase;
}

@media (max-width: 900px) {
  .entity-directory-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .entity-hero-grid,
  .service-hero-grid {
    grid-template-columns: 1fr;
  }

  .entity-hero-grid > div:first-child,
  .service-hero-grid > div:first-child {
    min-height: 34rem;
  }

  .entity-portrait {
    min-height: 28rem;
    border-top: 1px solid var(--is-line);
    border-left: 0;
  }

  .service-hero-facts {
    border-top: 1px solid var(--is-line);
    border-left: 0;
  }

  .service-deliverables {
    position: static;
  }
}

@media (max-width: 640px) {
  .entity-directory-filters,
  .reference-card,
  .pro-process > .shell,
  .service-method ol {
    grid-template-columns: 1fr;
  }

  .reference-card-media {
    min-height: 14rem;
    border-right: 0;
    border-bottom: 1px solid var(--is-line);
  }

  .pro-contact-strip > .shell {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* 6.3 — structural alignment and secondary product surfaces */
.reading-progress {
  width: var(--reading-progress, 0%);
  max-width: calc(100vw - var(--is-rail));
  transition: width 80ms linear;
}

.story-layout,
.dossier-layout,
.event-page-layout {
  grid-template-columns: minmax(0, 1fr) minmax(15rem, 0.32fr);
}

.story-main,
.event-page-main {
  max-width: none;
}

.event-page-proof {
  display: flex;
  flex-wrap: wrap;
  gap: 1px;
  margin-top: 1.5rem;
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.event-page-proof > * {
  padding: 0.55rem 0.7rem;
  background: var(--is-black);
  color: var(--is-grey);
  font-size: 0.64rem;
  text-transform: uppercase;
}

.event-page-proof > :first-child {
  background: var(--is-red);
  color: var(--is-black);
}

.event-source-list {
  border-top: 1px solid var(--is-line);
}

.event-source-list > article {
  padding: 1.2rem 0;
  border-bottom: 1px solid var(--is-line);
}

.event-source-origin {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 0.65rem;
  color: var(--is-grey);
  font-size: 0.64rem;
  text-transform: uppercase;
}

.event-source-origin img {
  width: 2.25rem;
  height: 2.25rem;
  flex: 0 0 2.25rem;
  padding: 0.25rem;
  background: var(--is-white);
  object-fit: contain;
  filter: grayscale(1);
}

.event-source-origin time {
  margin-left: auto;
}

.event-source-list h3 {
  margin: 0.85rem 0 0.45rem;
  font-size: clamp(1rem, 2vw, 1.45rem);
  line-height: 1.25;
}

.event-source-list h3 a,
.event-story-link {
  text-decoration: none;
}

.event-story-link {
  display: grid;
  gap: 0.25rem;
  padding: 0.8rem 0;
  border-top: 1px solid var(--is-line);
}

.event-story-link span {
  color: var(--is-red);
  font-size: 0.62rem;
  text-transform: uppercase;
}

.media-directory-head__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1.5rem;
}

.media-directory-head__links a {
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--is-grey-dark);
  font-size: 0.66rem;
  text-decoration: none;
  text-transform: uppercase;
}

.media-directory-controls {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  padding: 0;
  margin-block: 0;
  border-bottom: 1px solid var(--is-line);
  background: var(--is-black);
}

.media-directory-controls form {
  display: grid;
  grid-template-columns: minmax(15rem, 1.8fr) repeat(4, minmax(9rem, 1fr)) auto;
  gap: 1px;
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.media-directory-controls label {
  display: grid;
  align-content: center;
  gap: 0.35rem;
  min-width: 0;
  padding: 0.75rem;
  background: var(--is-black);
  color: var(--is-grey);
  font-size: 0.64rem;
  text-transform: uppercase;
}

.media-directory-controls input,
.media-directory-controls select {
  width: 100%;
  min-width: 0;
  min-height: 2.8rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--is-grey-dark);
  background: var(--is-black);
  color: var(--is-white);
}

.media-directory-controls button {
  min-width: 8rem;
  border: 0;
  background: var(--is-white);
  color: var(--is-black);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
}

.media-directory-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.8rem 0;
  color: var(--is-grey);
  font-size: 0.66rem;
  text-transform: uppercase;
}

.media-directory-summary p {
  margin: 0;
}

.media-directory-summary a {
  color: var(--is-red);
}

.media-directory-results {
  display: block;
}

.media-directory-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.media-directory-grid .media-card {
  min-width: 0;
  min-height: 29rem;
  padding: 1rem;
}

.media-card h2 {
  margin: 0.55rem 0 0.7rem;
  font-family: var(--is-display);
  font-size: clamp(2rem, 3.2vw, 3.5rem);
  line-height: 0.9;
  text-transform: uppercase;
}

.media-card h2 a {
  text-decoration: none;
}

.media-card > p:not(.eyebrow) {
  color: var(--is-grey);
  font-size: 0.72rem;
  line-height: 1.6;
}

.media-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: auto;
  padding-top: 1rem;
}

.media-card-meta > * {
  padding: 0.35rem 0.45rem;
  border: 1px solid var(--is-grey-dark);
  font-size: 0.6rem;
  text-decoration: none;
  text-transform: uppercase;
}

.media-card-detail {
  display: flex;
  justify-content: space-between;
  margin-top: 0.8rem;
  padding-top: 0.8rem;
  border-top: 1px solid var(--is-line);
  color: var(--is-red);
  font-size: 0.65rem;
  text-decoration: none;
  text-transform: uppercase;
}

.country-stats {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 2rem;
}

.country-media-grid > article {
  min-width: 0;
  background: var(--is-black);
}

.country-media-grid > article > a {
  display: grid;
  min-height: 12rem;
  grid-template-rows: 1fr auto;
  padding: 1rem;
  text-decoration: none;
}

.country-media-grid > article > a > span {
  display: grid;
  min-height: 7rem;
  place-items: center;
  background: var(--is-white);
  color: var(--is-black);
  font-family: var(--is-display);
  font-size: 4rem;
}

.country-media-grid img {
  width: min(70%, 9rem);
  max-height: 4.5rem;
  object-fit: contain;
  filter: grayscale(1);
}

.country-media-grid strong,
.country-media-grid small {
  display: block;
}

.country-media-grid strong {
  margin-top: 0.8rem;
  font-size: 0.88rem;
}

.country-media-grid small {
  margin-top: 0.25rem;
  color: var(--is-grey);
  font-size: 0.6rem;
  text-transform: uppercase;
}

.coverage-filters {
  grid-template-columns: repeat(2, minmax(12rem, 1fr)) auto;
  margin: 0 0 3rem;
}

.coverage-filters label {
  display: grid;
  gap: 0.35rem;
  padding: 0.8rem;
  color: var(--is-grey);
  font-size: 0.64rem;
  text-transform: uppercase;
}

.coverage-filters select {
  min-height: 2.75rem;
  padding: 0.55rem;
  border: 1px solid var(--is-grey-dark);
  background: var(--is-black);
}

.coverage-group + .coverage-group {
  margin-top: clamp(3rem, 6vw, 6rem);
}

.coverage-title {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
  padding-bottom: 0.8rem;
  border-bottom: 1px solid var(--is-line);
}

.coverage-title h3 {
  margin: 0;
  font-family: var(--is-display);
  font-size: clamp(2.3rem, 5vw, 5rem);
  line-height: 0.85;
  text-transform: uppercase;
}

.coverage-title > span {
  color: var(--is-red);
  font-family: var(--is-display);
  font-size: clamp(3rem, 6vw, 6rem);
  line-height: 0.75;
}

.coverage-list {
  border-top: 1px solid var(--is-line);
}

.coverage-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.5rem;
  padding: 1.1rem 0;
  border-bottom: 1px solid var(--is-line);
}

.coverage-item-main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1rem;
}

.coverage-item-image {
  width: 9rem;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  filter: grayscale(1);
}

.coverage-item h4 {
  margin: 0.5rem 0;
  font-size: clamp(1rem, 2vw, 1.35rem);
  line-height: 1.25;
}

.coverage-item h4 a {
  text-decoration: none;
}

.coverage-item p,
.coverage-item time,
.coverage-proof,
.coverage-empty {
  color: var(--is-grey);
  font-size: 0.68rem;
  line-height: 1.55;
}

.coverage-item time {
  white-space: nowrap;
}

.origin {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.3rem 0.42rem;
  border: 1px solid var(--is-grey-dark);
  font-size: 0.6rem;
  text-transform: uppercase;
}

.origin-interslide {
  border-color: var(--is-white);
  color: var(--is-white);
}

.origin-prisme,
.origin-event {
  border-color: var(--is-red);
  color: var(--is-red);
}

.origin-source-logo {
  width: 1.4rem;
  height: 1.4rem;
  padding: 0.15rem;
  background: var(--is-white);
  object-fit: contain;
}

.contact-directory {
  display: grid;
  width: min(100%, 94rem);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  padding: 1px;
  margin-block: clamp(2rem, 5vw, 5rem);
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.contact-directory article {
  display: flex;
  min-height: 21rem;
  flex-direction: column;
  padding: var(--is-pad);
}

.contact-directory article > span:first-child {
  color: var(--is-red);
  font-family: var(--is-display);
  font-size: clamp(4rem, 8vw, 8rem);
  line-height: 0.75;
}

.contact-directory h2 {
  margin: 1rem 0;
  font-family: var(--is-display);
  font-size: clamp(2.2rem, 4vw, 4rem);
  line-height: 0.88;
  text-transform: uppercase;
}

.contact-directory article > p:not(.eyebrow) {
  max-width: 48ch;
  color: var(--is-grey);
  font-size: 0.74rem;
  line-height: 1.65;
}

.contact-directory article > a {
  margin-top: auto;
  color: var(--is-red);
  font-size: 0.68rem;
  text-transform: uppercase;
}

.error-page {
  grid-template-columns: minmax(17rem, 0.72fr) minmax(0, 1fr);
}

.error-code {
  min-width: 0;
  padding: 2rem;
  overflow: hidden;
}

.error-content {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2rem, 7vw, 7rem) var(--is-pad);
}

.error-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  margin-top: 1.5rem;
  border: 1px solid var(--is-line);
}

.error-search input {
  min-width: 0;
  padding: 0.8rem;
  border: 0;
  background: transparent;
}

.auth-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.faq-answer {
  display: none;
  padding: 0 0 1rem;
}

.faq-item.is-open .faq-answer {
  display: block;
}

.faq-item.is-open > button > span:last-child {
  transform: rotate(45deg);
}

.for-you-mobile-nav {
  display: none;
}

.account-profile-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}

.account-profile-grid > form {
  display: grid;
  align-content: start;
  gap: 0.8rem;
  padding: 1rem;
  border: 1px solid var(--is-line);
}

.account-radar-status {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid var(--is-line);
}

.account-radar-mark {
  display: grid;
  width: 4rem;
  height: 4rem;
  place-items: center;
  background: var(--is-red);
  color: var(--is-black);
  font-family: var(--is-display);
  font-size: 2.8rem;
}

.account-radar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.account-radar-actions > * {
  min-height: 2.75rem;
  padding: 0.7rem;
  border: 1px solid var(--is-grey-dark);
  background: transparent;
  color: var(--is-white);
  font-size: 0.64rem;
  text-decoration: none;
  text-transform: uppercase;
}

.editorial-hub-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(15rem, 0.32fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}

.editorial-collection-intro {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  padding: 1px;
  margin-block: clamp(2rem, 5vw, 5rem);
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.editorial-collection-intro article {
  display: grid;
  min-height: 22rem;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1rem;
  padding: var(--is-pad);
  background: var(--is-black);
}

.editorial-collection-intro article > span {
  color: var(--is-red);
  font-family: var(--is-display);
  font-size: clamp(4rem, 8vw, 8rem);
  line-height: 0.75;
}

.editorial-collection-intro h2 {
  margin: 1rem 0;
  font-family: var(--is-display);
  font-size: clamp(2.4rem, 5vw, 5rem);
  line-height: 0.86;
  text-transform: uppercase;
}

.editorial-collection-intro article p:not(.eyebrow) {
  max-width: 48ch;
  color: var(--is-grey);
  font-size: 0.74rem;
  line-height: 1.65;
}

.editorial-collection-intro article a {
  color: var(--is-red);
  font-size: 0.66rem;
  text-transform: uppercase;
}

.editorial-collection-toolbar {
  border-top: 0;
}

.hub-promise,
.hub-curator-note {
  padding: 1rem;
  border: 1px solid var(--is-line);
}

.hub-promise {
  margin-bottom: 2rem;
  border-left: 5px solid var(--is-red);
}

.hub-curator-note {
  position: sticky;
  top: 1rem;
}

.prose,
.legal-content,
.standard-page-body,
.media-card,
.coverage-item,
.event-source-list {
  overflow-wrap: anywhere;
}

.prose table,
.article-content table,
.legal-content table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
}

@media (max-width: 1120px) {
  .media-directory-controls form {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .media-directory-controls button {
    min-height: 4rem;
  }
}

@media (max-width: 900px) {
  .story-layout,
  .dossier-layout,
  .event-page-layout,
  .editorial-hub-grid,
  .account-profile-grid,
  .account-radar-status {
    grid-template-columns: 1fr;
  }

  .media-directory-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .contact-directory {
    grid-template-columns: 1fr;
  }

  .editorial-collection-intro {
    grid-template-columns: 1fr;
  }

  .hub-curator-note {
    position: static;
  }
}

@media (max-width: 640px) {
  .media-directory-controls form,
  .media-directory-grid,
  .coverage-filters,
  .country-stats {
    grid-template-columns: 1fr;
  }

  .media-directory-controls button {
    min-height: 3.2rem;
  }

  .coverage-item,
  .coverage-item-main {
    grid-template-columns: 1fr;
  }

  .coverage-item time {
    white-space: normal;
  }

  .coverage-item-image {
    width: 100%;
    max-height: 13rem;
  }

  .event-source-origin {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .event-source-origin time {
    width: 100%;
    margin-left: 0;
  }

  .error-page {
    grid-template-columns: 1fr;
  }

  .error-code {
    min-height: 15rem;
    border-right: 0;
    border-bottom: 1px solid var(--is-line);
    font-size: clamp(9rem, 48vw, 15rem);
  }

  .error-search {
    grid-template-columns: 1fr;
  }

  .for-you-mobile-nav {
    position: sticky;
    z-index: 90;
    bottom: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--is-line);
    background: var(--is-black);
  }

  .for-you-mobile-nav a {
    display: grid;
    min-height: 3.5rem;
    place-items: center;
    gap: 0.15rem;
    padding: 0.45rem 0.2rem;
    color: var(--is-grey);
    font-size: 0.56rem;
    text-decoration: none;
    text-transform: uppercase;
  }

  .for-you-mobile-nav a span {
    font-size: 1rem;
  }

  .for-you-mobile-nav a.is-current {
    color: var(--is-white);
  }
}

@media (max-width: 1100px) {
  .pricing-grid,
  .country-media-grid,
  .media-profile-article-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pricing-card:last-child {
    grid-column: 1 / -1;
  }

  .media-directory-controls,
  .event-directory-controls,
  .coverage-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .for-you-nav,
  .prisme-app-nav,
  .reviews-top-nav {
    grid-template-columns: auto 1fr auto;
  }

  .for-you-search,
  .prisme-app-search {
    grid-column: 1 / -1;
    grid-row: 2;
  }
}

@media (max-width: 900px) {
  .archive-toolbar,
  .topic-hub-toolbar,
  .section-heading,
  .section-heading-numbered,
  .media-profile-section-head,
  .for-you-section-head,
  .reviews-workspace-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .search-workspace,
  .library-layout,
  .reviews-layout,
  .account-content-v2,
  .article-reading-layout,
  .story-layout,
  .dossier-layout,
  .event-page-layout,
  .service-layout,
  .legal-page,
  .entity-grid,
  .media-profile-about {
    grid-template-columns: 1fr;
  }

  .search-filters,
  .library-follows,
  .reviews-sidebar,
  .account-sidebar,
  .article-tools,
  .story-aside,
  .event-page-aside,
  .sticky-panel,
  .legal-aside,
  .entity-facts,
  .radar-issue-meta {
    position: static;
  }

  .for-you-public-grid,
  .prisme-public-hero .shell,
  .auth-layout,
  .radar-page-grid,
  .error-page,
  .home-atlas,
  .account-dashboard-v2,
  .subscription-dashboard,
  .media-profile-hero-grid {
    grid-template-columns: 1fr;
  }

  .for-you-public-copy,
  .prisme-public-hero > .shell > div:first-child,
  .auth-card,
  .radar-letter,
  .error-code {
    border-right: 0;
    border-bottom: 1px solid var(--is-line);
  }

  .for-you-public-preview,
  .prisme-public-mark {
    min-height: 32rem;
  }

  .for-you-layout,
  .prisme-reader-layout {
    grid-template-columns: 1fr;
  }

  .for-you-onboarding,
  .prisme-onboarding {
    grid-template-columns: 1fr;
  }

  .for-you-masthead,
  .prisme-reader-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .for-you-explainer > div,
  .prisme-how-it-works > div,
  .prisme-type-guide-list,
  .prisme-frontier-grid {
    grid-template-columns: 1fr;
  }

  .pricing-promise .shell {
    grid-template-columns: repeat(2, 1fr);
  }

  .country-stats,
  .media-profile-facts,
  .ia-facts-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .archive-head,
  .search-hero,
  .standard-page-hero,
  .library-hero,
  .reviews-hero,
  .account-hero,
  .country-hero,
  .media-profile-hero,
  .dossier-hero,
  .story-hero,
  .event-page-hero,
  .service-hero {
    padding-top: 4.5rem;
  }

  .archive-head h1,
  .search-hero h1,
  .standard-page-hero h1,
  .library-hero h1,
  .reviews-hero h1,
  .account-hero h1,
  .country-hero h1,
  .media-profile-hero h1,
  .dossier-hero h1,
  .story-hero h1,
  .event-page-hero h1,
  .service-hero h1,
  .article-header h1 {
    font-size: clamp(3rem, 15vw, 5.5rem) !important;
  }

  .search-command,
  .home-radar-form > div {
    grid-template-columns: 1fr;
  }

  .search-command button,
  .home-radar-form button {
    border-top: 1px solid var(--is-grey-dark) !important;
    border-left: 0 !important;
  }

  .search-discovery,
  .media-directory-results,
  .event-result-grid,
  .reference-grid,
  .pro-service-grid,
  .radar-issue-grid,
  .pricing-grid,
  .country-media-grid,
  .media-profile-article-grid,
  .contact-directory > div {
    grid-template-columns: 1fr;
  }

  .search-discovery > div {
    border-right: 0;
    border-bottom: 1px solid var(--is-line);
  }

  .directory-result-card,
  .event-result-card,
  .reviews-item-grid {
    grid-template-columns: 1fr;
  }

  .directory-result-visual {
    min-height: 12rem;
    border-right: 0;
    border-bottom: 1px solid var(--is-line);
  }

  .event-result-count {
    border-right: 0;
    border-bottom: 1px solid var(--is-line);
  }

  .for-you-nav,
  .prisme-app-nav,
  .reviews-top-nav {
    grid-template-columns: 1fr auto;
  }

  .for-you-nav-links,
  .prisme-app-links {
    grid-column: 1 / -1;
    grid-row: 2;
    overflow-x: auto;
    justify-content: flex-start;
  }

  .for-you-search,
  .prisme-app-search {
    grid-row: 3;
  }

  .for-you-avatar,
  .prisme-app-account {
    grid-column: 2;
    grid-row: 1;
  }

  .for-you-layout,
  .prisme-reader-layout,
  .for-you-main,
  .prisme-reader-main,
  .for-you-rail,
  .prisme-reader-rail {
    padding: 1rem;
  }

  .pricing-promise .shell,
  .pricing-grid,
  .country-stats,
  .media-profile-facts,
  .ia-facts-grid,
  .account-metrics-v2,
  .media-directory-controls,
  .event-directory-controls,
  .coverage-filters {
    grid-template-columns: 1fr;
  }

  .pricing-card:last-child {
    grid-column: auto;
  }

  .dossier-overview-grid {
    grid-template-columns: 1fr;
  }

  .dossier-timeline li,
  .story-timeline li,
  .event-timeline li {
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }

  .error-code {
    min-height: 17rem;
  }

  .reading-progress {
    left: 0;
  }
}

/* Keep the media filter shell one-dimensional; only its inner form reflows. */
.media-directory-controls {
  grid-template-columns: 1fr;
}

@media (min-width: 641px) and (max-width: 1120px) {
  .media-directory-controls form {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Events archive: keep plugin and theme templates visually identical whatever
 * the WordPress enqueue order. */
.event-directory-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(10rem, auto);
  gap: 1px;
  align-items: stretch;
  width: min(100%, 94rem);
  padding: 1px var(--is-pad);
  margin: 0 auto;
  border: 0;
  border-bottom: 1px solid var(--is-line);
  background: var(--is-line);
}

.event-directory-controls form {
  display: grid;
  grid-template-columns: repeat(2, minmax(12rem, 1fr));
  gap: 1px;
  min-width: 0;
  background: var(--is-line);
}

.event-directory-controls label,
.event-directory-controls > div {
  display: grid;
  gap: 0.35rem;
  padding: 0.9rem;
  background: var(--is-black);
}

.event-directory-controls > div {
  min-width: 10rem;
  align-content: center;
  justify-items: end;
}

.event-directory-controls > div strong {
  color: var(--is-red);
  font-family: var(--is-display);
  font-size: clamp(2.2rem, 4vw, 3.6rem);
  line-height: 0.75;
}

.event-result-grid > .empty-state {
  grid-column: 1 / -1;
  min-height: 18rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 0;
  background: var(--is-black);
}

.event-result-grid > .empty-state h2 {
  max-width: 26ch;
  margin-block: 1rem;
}

@media (max-width: 760px) {
  .event-directory-controls,
  .event-directory-controls form,
  .event-result-grid {
    grid-template-columns: 1fr;
  }

  .event-directory-controls > div {
    min-width: 0;
    justify-items: start;
  }
}

/* 6.5 — shared Premium product orientation */
.product-context-nav {
  display: grid;
  grid-template-columns: minmax(9rem, auto) minmax(0, 1fr) minmax(9rem, auto);
  min-width: 0;
  border-bottom: 1px solid var(--is-line);
  background: var(--is-black);
}

.product-context-brand,
.product-access-pill,
.product-context-links a {
  min-width: 0;
  text-decoration: none;
}

.product-context-brand {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.65rem var(--is-pad);
  border-right: 1px solid var(--is-line);
  text-transform: uppercase;
}

.product-context-brand > span:first-child {
  display: grid;
  width: 2rem;
  height: 2rem;
  flex: 0 0 2rem;
  place-items: center;
  border: 1px solid var(--is-white);
  font-family: var(--is-display);
  font-size: 1.25rem;
}

.product-context-brand > span:last-child,
.product-access-pill {
  display: grid;
  gap: 0.1rem;
}

.product-context-brand strong,
.product-access-pill strong {
  font-size: 0.65rem;
  line-height: 1.1;
}

.product-context-brand small,
.product-access-pill small,
.product-context-links small {
  color: var(--is-grey);
  font-size: 0.52rem;
  line-height: 1.2;
  text-transform: uppercase;
}

.product-context-links {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(5, minmax(7rem, 1fr));
}

.product-context-links a {
  display: grid;
  align-content: center;
  gap: 0.2rem;
  min-height: 4rem;
  padding: 0.65rem 0.75rem;
  border-right: 1px solid var(--is-line);
  color: var(--is-grey);
}

.product-context-links a strong {
  color: var(--is-white);
  font-size: 0.62rem;
  line-height: 1.15;
  text-transform: uppercase;
}

.product-context-links a:hover,
.product-context-links a:focus-visible {
  background: var(--is-black-soft);
  text-decoration: none;
}

.product-context-links a.is-current {
  background: var(--is-white);
  color: var(--is-black);
}

.product-context-links a.is-current strong,
.product-context-links a.is-current small {
  color: var(--is-black);
}

.product-context-links a.is-atlas {
  border-left: 3px solid var(--is-red);
}

.product-access-pill {
  position: relative;
  align-content: center;
  padding: 0.65rem var(--is-pad) 0.65rem 2rem;
}

.product-access-pill > span {
  position: absolute;
  top: 50%;
  left: 0.9rem;
  width: 0.55rem;
  height: 0.55rem;
  border: 1px solid var(--is-grey);
  transform: translateY(-50%);
}

.product-access-pill.is-premium > span {
  border-color: var(--is-red);
  background: var(--is-red);
}

.product-access-pill.is-free > span {
  border-color: var(--is-white);
  background: var(--is-white);
}

.product-context-tools {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.45fr);
  gap: var(--is-pad);
  align-items: center;
  padding: 0.7rem var(--is-pad);
  border-bottom: 1px solid var(--is-line);
}

.product-context-tools > p {
  display: flex;
  min-width: 0;
  gap: 0.65rem;
  align-items: baseline;
  margin: 0;
}

.product-context-tools > p strong {
  color: var(--is-red);
  font-size: 0.62rem;
  text-transform: uppercase;
}

.product-context-tools > p span {
  color: var(--is-grey);
  font-size: 0.62rem;
}

.product-context-tools .for-you-search,
.product-context-tools .prisme-app-search {
  width: 100%;
}

.product-context-tools .prisme-app-search {
  grid-template-columns: auto minmax(0, 1fr) auto;
}

.product-context-tools .prisme-app-search > span {
  display: grid;
  min-width: 2.5rem;
  place-items: center;
  border: 1px solid var(--is-grey-dark);
  border-right: 0;
}

.product-empty-state {
  display: grid;
  min-height: 16rem;
  align-content: center;
}

.product-empty-state h2 {
  max-width: 24ch;
  margin: 0.5rem 0;
}

.product-empty-state > p:not(.eyebrow) {
  max-width: 58ch;
  color: var(--is-grey);
}

.product-empty-state > div,
.product-rail-empty,
.product-inline-empty {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.product-empty-state > div {
  margin-top: 0.8rem;
}

.product-rail-empty,
.product-inline-empty {
  justify-content: space-between;
  padding: 0.85rem;
  border: 1px dashed var(--is-grey-dark);
  color: var(--is-grey);
  font-size: 0.64rem;
}

.product-rail-empty p,
.product-inline-empty p {
  margin: 0;
}

.product-rail-empty a,
.product-inline-empty a,
.prisme-rail-empty a {
  color: var(--is-red);
  font-size: 0.58rem;
  text-transform: uppercase;
}

.prisme-rail-empty {
  display: grid;
  gap: 0.35rem;
}

.library-definition {
  max-width: 76ch;
  padding: 0.75rem 0;
  margin: 0;
  color: var(--is-grey);
  font-size: 0.62rem;
}

.library-definition strong {
  color: var(--is-white);
  text-transform: uppercase;
}

.reviews-top-nav {
  display: flex;
  min-height: 0;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 1px;
  padding: 1px;
  border: 1px solid var(--is-line);
  background: var(--is-line);
}

.reviews-top-nav a {
  display: grid;
  gap: 0.15rem;
  min-width: 10rem;
  padding: 0.65rem 0.8rem;
  background: var(--is-black);
  font-size: 0.62rem;
  text-decoration: none;
  text-transform: uppercase;
}

.reviews-top-nav a small {
  color: var(--is-grey);
  font-size: 0.5rem;
}

.reviews-top-nav a.is-active {
  background: var(--is-white);
  color: var(--is-black);
}

.reviews-top-nav a.is-active small {
  color: var(--is-grey-dark);
}

#for-you-tuning:target {
  outline: 2px solid var(--is-red);
  outline-offset: 4px;
}

.prisme-mobile-nav {
  display: none;
}

@media (max-width: 1040px) {
  .product-context-nav {
    grid-template-columns: minmax(9rem, 1fr) auto;
  }

  .product-context-brand {
    grid-column: 1;
    grid-row: 1;
  }

  .product-access-pill {
    grid-column: 2;
    grid-row: 1;
  }

  .product-context-links {
    grid-column: 1 / -1;
    grid-row: 2;
    overflow-x: auto;
    border-top: 1px solid var(--is-line);
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
  }

  .product-context-links a {
    scroll-snap-align: start;
  }
}

@media (max-width: 640px) {
  .product-context-brand,
  .product-access-pill {
    padding-block: 0.55rem;
  }

  .product-context-brand {
    padding-left: 1rem;
  }

  .product-access-pill {
    padding-right: 1rem;
  }

  .product-context-links {
    display: flex;
  }

  .product-context-links a {
    min-width: 8.25rem;
  }

  .product-context-tools {
    grid-template-columns: 1fr;
    gap: 0.65rem;
    padding: 0.75rem 1rem;
  }

  .product-context-tools > p {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.2rem;
  }

  .product-empty-state {
    min-height: 14rem;
  }

  .for-you-mobile-nav,
  .prisme-mobile-nav {
    position: sticky;
    z-index: 90;
    bottom: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    border-top: 1px solid var(--is-line);
    background: var(--is-black);
  }

  .for-you-mobile-nav a,
  .prisme-mobile-nav a {
    display: grid;
    min-width: 0;
    min-height: 3.75rem;
    place-items: center;
    gap: 0.1rem;
    padding: 0.4rem 0.1rem;
    color: var(--is-grey);
    font-size: 0.5rem;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
  }

  .for-you-mobile-nav a span,
  .prisme-mobile-nav a span {
    font-size: 0.9rem;
  }

  .for-you-mobile-nav a.is-current,
  .prisme-mobile-nav a.is-current {
    color: var(--is-white);
  }
}
