.elementor-9023 .elementor-element.elementor-element-6dd2edba{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9023 .elementor-element.elementor-element-6dd2edba:not(.elementor-motion-effects-element-type-background), .elementor-9023 .elementor-element.elementor-element-6dd2edba > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FAF9F6;}.elementor-9023 .elementor-element.elementor-element-1d5b20b{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-post-info .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-text, .elementor-widget-post-info .elementor-icon-list-text a{color:var( --e-global-color-secondary );}.elementor-widget-post-info .elementor-icon-list-item{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );}.elementor-9023 .elementor-element.elementor-element-1b63bf6d .elementor-icon-list-icon{width:14px;}.elementor-9023 .elementor-element.elementor-element-1b63bf6d .elementor-icon-list-icon i{font-size:14px;}.elementor-9023 .elementor-element.elementor-element-1b63bf6d .elementor-icon-list-icon svg{--e-icon-list-icon-size:14px;}.elementor-widget-theme-post-title .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-widget-theme-post-excerpt .elementor-widget-container{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-9023 .elementor-element.elementor-element-7448465e{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-9023 .elementor-element.elementor-element-4f72a18b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9023 .elementor-element.elementor-element-4f72a18b:not(.elementor-motion-effects-element-type-background), .elementor-9023 .elementor-element.elementor-element-4f72a18b > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FAF9F6;}.elementor-9023 .elementor-element.elementor-element-503ed38b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-widget-theme-post-featured-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );}.elementor-9023 .elementor-element.elementor-element-4234747d{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9023 .elementor-element.elementor-element-4234747d:not(.elementor-motion-effects-element-type-background), .elementor-9023 .elementor-element.elementor-element-4234747d > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FAF9F6;}.elementor-widget-theme-post-content{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );}.elementor-9023 .elementor-element.elementor-element-66978a86{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9023 .elementor-element.elementor-element-66978a86:not(.elementor-motion-effects-element-type-background), .elementor-9023 .elementor-element.elementor-element-66978a86 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FAF9F6;}.elementor-9023 .elementor-element.elementor-element-6048e2d0{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-9023 .elementor-element.elementor-element-1b388456 .elementor-icon-list-icon{width:14px;}.elementor-9023 .elementor-element.elementor-element-1b388456 .elementor-icon-list-icon i{font-size:14px;}.elementor-9023 .elementor-element.elementor-element-1b388456 .elementor-icon-list-icon svg{--e-icon-list-icon-size:14px;}.elementor-9023 .elementor-element.elementor-element-2d4f6323{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;border-style:solid;--border-style:solid;border-width:3px 0px 0px 0px;--border-top-width:3px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;border-color:#00000A;--border-color:#00000A;}.elementor-9023 .elementor-element.elementor-element-2d4f6323:not(.elementor-motion-effects-element-type-background), .elementor-9023 .elementor-element.elementor-element-2d4f6323 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFF200;}.elementor-9023 .elementor-element.elementor-element-5ab29ab0{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-9023 .elementor-element.elementor-element-55c78e30{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9023 .elementor-element.elementor-element-55c78e30:not(.elementor-motion-effects-element-type-background), .elementor-9023 .elementor-element.elementor-element-55c78e30 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FAF9F6;}.elementor-9023 .elementor-element.elementor-element-52fd32d1{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9023 .elementor-element.elementor-element-2a80b59a{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-widget-posts .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-posts .elementor-post__title, .elementor-widget-posts .elementor-post__title a{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-posts .elementor-post__meta-data{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );text-transform:var( --e-global-typography-secondary-text-transform );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-widget-posts .elementor-post__excerpt p{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-posts .elementor-post__read-more{color:var( --e-global-color-accent );}.elementor-widget-posts a.elementor-post__read-more{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-posts .elementor-post__card .elementor-post__badge{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-posts .elementor-pagination{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );text-transform:var( --e-global-typography-secondary-text-transform );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-widget-posts .e-load-more-message{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );text-transform:var( --e-global-typography-secondary-text-transform );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-9023 .elementor-element.elementor-element-227e2ceb{--grid-row-gap:22px;--grid-column-gap:30px;}.elementor-9023 .elementor-element.elementor-element-227e2ceb .elementor-posts-container .elementor-post__thumbnail{padding-bottom:calc( 0.66 * 100% );}.elementor-9023 .elementor-element.elementor-element-227e2ceb:after{content:"0.66";}.elementor-9023 .elementor-element.elementor-element-227e2ceb .elementor-post__thumbnail__link{width:100%;}.elementor-9023 .elementor-element.elementor-element-227e2ceb .elementor-post__text{margin-top:20px;}.elementor-9023 .elementor-element.elementor-element-227e2ceb .elementor-post__badge{right:0;}.elementor-9023 .elementor-element.elementor-element-227e2ceb .elementor-post__card .elementor-post__badge{margin:20px;}body.elementor-page-9023:not(.elementor-motion-effects-element-type-background), body.elementor-page-9023 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FAF9F6;}@media(min-width:768px){.elementor-9023 .elementor-element.elementor-element-6dd2edba{--content-width:880px;}.elementor-9023 .elementor-element.elementor-element-4f72a18b{--content-width:1000px;}.elementor-9023 .elementor-element.elementor-element-4234747d{--content-width:720px;}.elementor-9023 .elementor-element.elementor-element-66978a86{--content-width:720px;}.elementor-9023 .elementor-element.elementor-element-5ab29ab0{--content-width:900px;}.elementor-9023 .elementor-element.elementor-element-52fd32d1{--content-width:1000px;}}@media(max-width:1024px){.elementor-widget-post-info .elementor-icon-list-item{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-theme-post-excerpt .elementor-widget-container{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-theme-post-featured-image .widget-image-caption{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-theme-post-content{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-posts .elementor-post__meta-data{letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-widget-posts .elementor-post__excerpt p{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-posts .elementor-pagination{letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-widget-posts .e-load-more-message{letter-spacing:var( --e-global-typography-secondary-letter-spacing );}}@media(max-width:767px){.elementor-widget-post-info .elementor-icon-list-item{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-theme-post-excerpt .elementor-widget-container{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-theme-post-featured-image .widget-image-caption{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-theme-post-content{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-posts .elementor-post__meta-data{letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-widget-posts .elementor-post__excerpt p{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-posts .elementor-pagination{letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-widget-posts .e-load-more-message{letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-9023 .elementor-element.elementor-element-227e2ceb .elementor-posts-container .elementor-post__thumbnail{padding-bottom:calc( 0.5 * 100% );}.elementor-9023 .elementor-element.elementor-element-227e2ceb:after{content:"0.5";}.elementor-9023 .elementor-element.elementor-element-227e2ceb .elementor-post__thumbnail__link{width:100%;}}/* Start custom CSS *//* ==========================================================================
   THIRD Street — Single Post template styles
   thirdstreet.vegas · WordPress + Elementor Pro (Theme Builder → Single Post)
   --------------------------------------------------------------------------
   Paste into: Elementor → Site Settings → Custom CSS  (or your child theme).
   Fonts: Korolev Compressed (Heavy/900) for display, Figtree for everything
   else. PUNTO IS NEVER USED anywhere in this file — by client instruction.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. TOKENS
   -------------------------------------------------------------------------- */
:root {
  /* brand */
  --ts-cyan:    #00AEEF;
  --ts-magenta: #EC008C;
  --ts-yellow:  #FFF200;
  --ts-ink:     #00000A;
  --ts-paper:   #FAF9F6;
  --ts-white:   #FFFFFF;

  /* pressed / active variants */
  --ts-cyan-press:    #0090C6;
  --ts-magenta-press: #C00072;
  --ts-yellow-press:  #E6DA00;

  /* grays */
  --ts-g900: #2A2A33;   /* body copy      */
  --ts-g700: #4A4A55;   /* standfirst     */
  --ts-g500: #7C7C88;   /* muted / meta   */
  --ts-g400: #A7A7B2;   /* hairline text  */

  /* type */
  --ts-display: "Korolev Compressed", "Korolev Compressed Heavy", "Arial Narrow", sans-serif;
  --ts-body:    "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;

  --ts-display-xl: clamp(3.25rem, 8vw, 6.5rem);
  --ts-display-lg: clamp(2.5rem, 6vw, 4.5rem);
  --ts-display-md: clamp(2rem, 4.5vw, 3.25rem);
  --ts-display-hero: clamp(4rem, 9vw, 9rem);   /* donate band */

  /* structure */
  --ts-border: 3px solid var(--ts-ink);
  --ts-pop:    5px 5px 0 var(--ts-ink);
  --ts-col:    720px;   /* article measure */
  --ts-wide:   1000px;  /* wide media      */
  --ts-bleed:  70px;    /* how far media escapes the article column */
}

/* Full-bleed sections use the 100vw trick; clip (not hidden) keeps
   position:sticky headers working. */
html, body { overflow-x: clip; }

/* --------------------------------------------------------------------------
   2. SHARED HELPERS
   -------------------------------------------------------------------------- */
.ts-fullbleed {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* Horizontal rows — forced here so the layout is identical in the editor,
   on the front end, and in any theme that fights Elementor's flex defaults. */
.ts-kicker, .ts-meta, .ts-tags__inner, .ts-more__head {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
}
.ts-kicker > .elementor-widget,
.ts-meta > .elementor-widget,
.ts-tags__inner > .elementor-widget,
.ts-more__head > .elementor-widget { width: auto; max-width: 100%; }

.ts-accent-m { color: var(--ts-magenta); }
.ts-accent-c { color: var(--ts-cyan); }
.ts-accent-y { color: var(--ts-yellow); }

/* Elementor wrappers we style through */
.ts-hero, .ts-featured, .ts-article, .ts-tags, .ts-more { background: var(--ts-paper); }

/* Column widths.
   Elementor "boxed" containers render as
   <div class="e-con e-con-boxed ts-hero"><div class="e-con-inner"> … </div></div>
   Padding sits on the outer element, measure + gap on .e-con-inner. */
.ts-hero  > .e-con-inner { max-width: 880px;  margin-inline: auto; gap: 18px; }
.ts-featured > .e-con-inner { max-width: 1000px; margin-inline: auto; gap: 0; }
.ts-article  > .e-con-inner { max-width: 720px;  margin-inline: auto; gap: 0; }
.ts-tags     > .e-con-inner { max-width: 720px;  margin-inline: auto; gap: 0; }
.ts-donate__inner > .e-con-inner { max-width: 900px; margin-inline: auto; gap: 20px;
                                   align-items: center; text-align: center; }
.ts-more__inner   > .e-con-inner { max-width: 1000px; margin-inline: auto; gap: 24px; }

.ts-hero .elementor-heading-title,
.ts-more .elementor-heading-title,
.ts-donate .elementor-heading-title { margin: 0; }

/* --------------------------------------------------------------------------
   3. HERO
   -------------------------------------------------------------------------- */
.ts-hero { padding: 48px 32px 0; }

.ts-kicker { gap: 12px; align-items: center; flex-wrap: wrap; }
.ts-kicker .elementor-heading-title,
.ts-kicker .elementor-widget-container {
  font-family: var(--ts-body);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 13px;
  line-height: 1.2;
}
.ts-kicker__back .elementor-heading-title a { color: var(--ts-g500); text-decoration: none; }
.ts-kicker__back .elementor-heading-title a:hover { color: var(--ts-magenta); }
.ts-kicker__sep .elementor-heading-title { color: var(--ts-g400); }
.ts-kicker__source .elementor-heading-title { color: var(--ts-ink); }

/* Category pill (post-info widget, terms = category) */
.ts-pill .elementor-inline-items,
.ts-pill .elementor-icon-list-items { margin: 0; padding: 0; list-style: none; display: flex; gap: 6px; }
.ts-pill .elementor-icon-list-icon { display: none; }
/* Elementor prints ", " text nodes between terms — zero them out and let each
   pill carry its own font-size. */
.ts-pill .elementor-post-info__terms-list,
.ts-tags__list .elementor-post-info__terms-list { font-size: 0; }
.ts-pill .elementor-post-info__terms-list { display: contents; }
.ts-pill .elementor-post-info__terms-list-item {
  background: var(--ts-cyan);
  color: var(--ts-ink);
  border-radius: 999px;
  padding: 5px 13px;
  text-decoration: none;
  font-family: var(--ts-body);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 13px;
  line-height: 1;
  display: inline-block;
}
.ts-pill .elementor-post-info__terms-list-item:hover { background: var(--ts-cyan-press); }

/* H1 — dynamic Post Title */
.ts-h1 .elementor-heading-title {
  font-family: var(--ts-display);
  font-weight: 900;
  text-transform: uppercase;
  font-size: var(--ts-display-xl);
  line-height: 0.86;
  letter-spacing: 0.005em;
  color: var(--ts-ink);
  margin: 0;
  text-wrap: balance;
}

/* Standfirst — dynamic Excerpt */
.ts-standfirst,
.ts-standfirst .elementor-widget-container,
.ts-standfirst p {
  font-family: var(--ts-body);
  font-weight: 500;
  font-size: 1.375rem;
  line-height: 1.45;
  color: var(--ts-g700);
  max-width: 640px;
  text-wrap: pretty;
  margin: 0;
}

/* Meta row — date ✺ read time ✺ author */
.ts-meta { gap: 14px; align-items: center; flex-wrap: wrap; }
.ts-meta .ts-meta__item .elementor-heading-title,
.ts-meta .ts-meta__item {
  font-family: var(--ts-body);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 13px;
  color: var(--ts-g500);
}
.ts-meta .ts-meta__item { display: flex; align-items: center; gap: 14px; }
.ts-meta .ts-meta__item + .ts-meta__item::before { content: "✺"; color: var(--ts-magenta); }
.ts-meta .ts-meta__item:nth-child(3)::before { color: var(--ts-cyan); }

/* --------------------------------------------------------------------------
   4. FEATURED PHOTO — YELLOW MAT
   -------------------------------------------------------------------------- */
.ts-featured { padding: 28px 32px 0; }

.ts-mat--yellow {
  background: var(--ts-yellow);
  border: var(--ts-border);
  padding: 18px;
}
/* No featured image on this post → collapse the whole block rather than
   leaving an empty yellow bar. It reappears the moment one is set. */
.ts-featured:not(:has(.ts-featured__img img)) { display: none; }
.ts-featured__img img {
  display: block;
  width: 100%;
  aspect-ratio: 21 / 9;
  object-fit: cover;
  border: var(--ts-border);
  background: var(--ts-white);
  border-radius: 0;
}
.ts-featured__img figure, .ts-featured__img .elementor-widget-container { margin: 0; line-height: 0; }

/* Caption line under the mat: "PHOTO" label + text */
.ts-figcaption { margin-top: 8px; padding: 0 4px; }
.ts-figcaption .elementor-heading-title {
  font-family: var(--ts-body);
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--ts-g500);
  line-height: 1.4;
  margin: 0;
}
.ts-figcaption .elementor-heading-title::before {
  content: "Photo";
  display: inline;
  margin-right: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 12px;
  color: var(--ts-ink);
}
/* hide the caption row entirely when the field is empty */
.ts-figcaption .elementor-heading-title:empty { display: none; }

/* --------------------------------------------------------------------------
   5. ARTICLE COLUMN + AUTO-STYLED GUTENBERG CONTENT
   Everything below styles NATIVE WordPress block output, so editors get the
   branded treatment with zero per-post design work.
   -------------------------------------------------------------------------- */
.ts-article { padding: 40px 32px 48px; }

.ts-content,
.ts-content .elementor-widget-container {
  font-family: var(--ts-body);
  font-weight: 400;
  font-size: 1.125rem;
  line-height: 1.55;
  color: var(--ts-g900);
}

/* vertical rhythm: 22px between blocks */
.ts-content .elementor-widget-container > * { margin-top: 0; margin-bottom: 0; }
.ts-content .elementor-widget-container > * + * { margin-top: 22px; }

/* lead paragraph */
.ts-content .elementor-widget-container > p:first-of-type:not(.ts-no-lead) {
  font-size: 1.375rem;
  line-height: 1.5;
  font-weight: 500;
  color: var(--ts-ink);
  text-wrap: pretty;
}

/* headings */
.ts-content h2,
.ts-content h3 {
  font-family: var(--ts-display);
  font-weight: 900;
  text-transform: uppercase;
  color: var(--ts-ink);
  letter-spacing: 0.005em;
}
.ts-content h2 { font-size: var(--ts-display-md); line-height: 0.9; }
.ts-content h3 { font-size: 1.75rem; line-height: 1.0; }
.ts-content .elementor-widget-container > h2 + *,
.ts-content .elementor-widget-container > h3 + * { margin-top: 18px; }
.ts-content .elementor-widget-container > * + h2 { margin-top: 32px; }
.ts-content .elementor-widget-container > * + h3 { margin-top: 28px; }

/* links */
.ts-content a {
  color: var(--ts-ink);
  text-decoration: underline;
  text-decoration-color: var(--ts-magenta);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
.ts-content a:hover { color: var(--ts-magenta); }

/* lists */
.ts-content ul, .ts-content ol { padding-left: 1.25em; }
.ts-content li + li { margin-top: 8px; }

/* strong/em keep body color */
.ts-content strong { font-weight: 800; color: var(--ts-ink); }

/* Gutenberg Button block → brand sticker button */
.ts-content .wp-block-button__link {
  display: inline-block;
  background: var(--ts-magenta);
  color: var(--ts-white);
  border: var(--ts-border);
  border-radius: 999px;
  padding: 14px 26px;
  font-family: var(--ts-body);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 0.9375rem;
  line-height: 1;
  text-decoration: none;
  box-shadow: var(--ts-pop);
  transition: transform 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
}
.ts-content .wp-block-button__link:hover { color: var(--ts-white); transform: translate(-1px, -1px); box-shadow: 6px 6px 0 var(--ts-ink); }
.ts-content .wp-block-button__link:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--ts-ink); background: var(--ts-magenta-press); }
.ts-content .wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent; color: var(--ts-ink);
}

/* ---- 5a. QUOTE BLOCK → full-bleed intertitle band --------------------------
   Alternates cyan → magenta down the post. Add class ts-band--yellow /
   ts-band--cyan / ts-band--magenta on the block (Advanced → Additional CSS
   class) to force a specific colour. */
.ts-content blockquote,
.ts-content .wp-block-quote,
.ts-content .wp-block-pullquote {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: 36px;
  margin-bottom: 36px;
  padding: 52px 32px;
  border: 0;
  border-radius: 0;
  quotes: none;
  background: var(--ts-cyan);
  color: var(--ts-ink);
  text-align: center;
  box-sizing: border-box;
}
/* keep the 36px band rhythm ahead of the generic 22px block rhythm */
.ts-content .elementor-widget-container > blockquote,
.ts-content .elementor-widget-container > .wp-block-quote,
.ts-content .elementor-widget-container > .wp-block-pullquote { margin-top: 36px; margin-bottom: 36px; }
.ts-content .elementor-widget-container > blockquote + * { margin-top: 36px; }

.ts-content blockquote > p,
.ts-content .wp-block-quote p,
.ts-content .wp-block-pullquote p {
  font-family: var(--ts-display);
  font-weight: 900;
  text-transform: uppercase;
  font-size: var(--ts-display-lg);
  line-height: 0.88;
  letter-spacing: 0.005em;
  max-width: 900px;
  margin: 0 auto;
  text-wrap: balance;
  color: inherit;
}
.ts-content blockquote p + p { margin-top: 18px; }

/* emphasised phrase inside a quote picks up the contrast colour */
.ts-content blockquote strong,
.ts-content blockquote em,
.ts-content blockquote b { font-style: normal; font-weight: inherit; color: var(--ts-white); }

/* attribution (<cite>) */
.ts-content blockquote cite,
.ts-content .wp-block-quote__citation,
.ts-content .wp-block-pullquote__citation {
  display: block;
  max-width: 900px;
  margin: 18px auto 0;
  font-family: var(--ts-body);
  font-style: normal;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 14px;
  color: inherit;
}
.ts-content blockquote cite::before { content: "— "; }

/* alternation: 1st cyan, 2nd magenta, 3rd yellow, then repeat */
.ts-content blockquote:nth-of-type(3n + 2),
.ts-content .ts-band--magenta {
  background: var(--ts-magenta);
  color: var(--ts-white);
}
.ts-content blockquote:nth-of-type(3n + 2) strong,
.ts-content blockquote:nth-of-type(3n + 2) em,
.ts-content .ts-band--magenta strong,
.ts-content .ts-band--magenta em { color: var(--ts-yellow); }

.ts-content blockquote:nth-of-type(3n + 3),
.ts-content .ts-band--yellow {
  background: var(--ts-yellow);
  color: var(--ts-ink);
}
.ts-content blockquote:nth-of-type(3n + 3) strong,
.ts-content blockquote:nth-of-type(3n + 3) em,
.ts-content .ts-band--yellow strong,
.ts-content .ts-band--yellow em { color: var(--ts-magenta); }

.ts-content .ts-band--cyan { background: var(--ts-cyan); color: var(--ts-ink); }
.ts-content .ts-band--cyan strong, .ts-content .ts-band--cyan em { color: var(--ts-white); }

/* quote inside the band never gets the default WP left border */
.ts-content blockquote::before, .ts-content blockquote::after { content: none; }

/* ---- 5b. EMBEDS (YouTube / oEmbed) → cyan mat ------------------------------ */
.ts-content .wp-block-embed,
.ts-content figure.wp-block-embed,
.ts-content .wp-embed-aspect-16-9 {
  margin-left: calc(var(--ts-bleed) * -1);
  margin-right: calc(var(--ts-bleed) * -1);
}
.ts-content .wp-block-embed .wp-block-embed__wrapper {
  background: var(--ts-cyan);
  border: var(--ts-border);
  padding: 16px;
  position: relative;
}
.ts-content .wp-block-embed .wp-block-embed__wrapper::before { padding-top: 0; }
.ts-content .wp-block-embed iframe,
.ts-content .wp-block-embed video,
.ts-content .elementor-widget-container > iframe {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  border: var(--ts-border);
  background: var(--ts-white);
}
/* bare iframe pasted straight into content */
.ts-content > .elementor-widget-container > iframe,
.ts-content p > iframe {
  margin-left: calc(var(--ts-bleed) * -1);
  margin-right: calc(var(--ts-bleed) * -1);
  width: calc(100% + var(--ts-bleed) * 2);
}
.ts-content .wp-block-embed figcaption { margin-top: 8px; }

/* ---- 5c. GALLERY → magenta / yellow mats ----------------------------------- */
.ts-content .wp-block-gallery {
  margin-left: calc(var(--ts-bleed) * -1);
  margin-right: calc(var(--ts-bleed) * -1);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  list-style: none;
  padding: 0;
}
.ts-content .wp-block-gallery.columns-3 { grid-template-columns: repeat(3, 1fr); }
.ts-content .wp-block-gallery.columns-1 { grid-template-columns: 1fr; }
.ts-content .wp-block-gallery .wp-block-image,
.ts-content .wp-block-gallery .blocks-gallery-item {
  margin: 0;
  width: auto !important;
  background: var(--ts-magenta);
  border: var(--ts-border);
  padding: 12px;
}
.ts-content .wp-block-gallery .wp-block-image:nth-child(even),
.ts-content .wp-block-gallery .blocks-gallery-item:nth-child(even) { background: var(--ts-yellow); }
.ts-content .wp-block-gallery .wp-block-image:nth-child(4n + 3),
.ts-content .wp-block-gallery .blocks-gallery-item:nth-child(4n + 3) { background: var(--ts-cyan); }
.ts-content .wp-block-gallery img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: var(--ts-border);
  background: var(--ts-white);
  border-radius: 0;
  /* photos stay natural — no duotone */
  filter: none;
}
.ts-content .wp-block-gallery figcaption { color: var(--ts-ink); }

/* ---- 5d. SINGLE IMAGE in content ------------------------------------------- */
.ts-content .wp-block-image img {
  display: block;
  width: 100%;
  height: auto;
  border: var(--ts-border);
  border-radius: 0;
}
.ts-content .wp-block-image.alignwide,
.ts-content .alignwide {
  margin-left: calc(var(--ts-bleed) * -1);
  margin-right: calc(var(--ts-bleed) * -1);
}
.ts-content .alignfull {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* ---- 5e. CAPTIONS ---------------------------------------------------------- */
.ts-content figcaption,
.ts-content .wp-element-caption,
.ts-content .wp-caption-text {
  font-family: var(--ts-body);
  font-size: 0.875rem;
  line-height: 1.4;
  color: var(--ts-g500);
  text-align: left;
  margin-top: 8px;
  padding: 0 4px;
}
.ts-content figcaption::before {
  content: "Photo";
  margin-right: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 12px;
  color: var(--ts-ink);
}
/* video captions say VIDEO, not PHOTO */
.ts-content .wp-block-embed figcaption::before { content: "Video"; }
/* opt out on any single caption with the ts-caption--bare class */
.ts-content .ts-caption--bare::before { content: none; }

/* --------------------------------------------------------------------------
   6. TAGS ROW
   -------------------------------------------------------------------------- */
.ts-tags {
  padding: 0 32px 8px;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}
.ts-tags__inner {
  border-top: var(--ts-border);
  padding-top: 20px;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}
.ts-tags__label .elementor-heading-title {
  font-family: var(--ts-body);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 12px;
  color: var(--ts-g500);
}
.ts-tags__list .elementor-post-info,
.ts-tags__list .elementor-inline-items,
.ts-tags__list .elementor-icon-list-items {
  margin: 0; padding: 0; list-style: none;
  display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
}
.ts-tags__list .elementor-icon-list-icon { display: none; }
.ts-tags__list .elementor-post-info__terms-list { display: contents; }
.ts-tags__list .elementor-post-info__terms-list-item {
  font-family: var(--ts-body);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 12px;
  line-height: 1;
  padding: 6px 13px;
  border-radius: 999px;
  border: 2px solid var(--ts-ink);
  text-decoration: none;
  display: inline-block;
  background: var(--ts-cyan);
  color: var(--ts-ink);
}
.ts-tags__list .elementor-post-info__terms-list-item:nth-child(4n + 2) {
  background: var(--ts-magenta); color: var(--ts-white);
}
.ts-tags__list .elementor-post-info__terms-list-item:nth-child(4n + 3) {
  background: var(--ts-yellow); color: var(--ts-ink);
}
.ts-tags__list .elementor-post-info__terms-list-item:nth-child(4n + 4) {
  background: transparent; color: var(--ts-ink);
}
/* the separator Elementor prints between terms */
.ts-tags__list .elementor-post-info__terms-list-item + .elementor-post-info__terms-list-item::before { content: none; }

.ts-tags__link { margin-left: auto; }
.ts-tags__link .elementor-heading-title,
.ts-tags__link .elementor-heading-title a {
  font-family: var(--ts-body);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 14px;
  white-space: nowrap;
  color: var(--ts-ink);
  text-decoration: underline;
  text-decoration-color: var(--ts-magenta);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
.ts-tags__link .elementor-heading-title a:hover { color: var(--ts-magenta); }

/* --------------------------------------------------------------------------
   7. DONATE BAND
   -------------------------------------------------------------------------- */
.ts-donate {
  background: var(--ts-yellow);
  border-top: var(--ts-border);
  padding: 56px 32px;
}
.ts-donate__inner { gap: 20px; align-items: center; text-align: center; }
.ts-donate__eyebrow .elementor-heading-title {
  font-family: var(--ts-body);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 14px;
  color: var(--ts-ink);
}
.ts-donate__title .elementor-heading-title {
  font-family: var(--ts-display);
  font-weight: 900;
  text-transform: uppercase;
  font-size: var(--ts-display-hero);
  line-height: 0.86;
  letter-spacing: 0.005em;
  color: var(--ts-ink);
  text-wrap: balance;
}
.ts-donate__sub,
.ts-donate__sub .elementor-widget-container,
.ts-donate__sub p {
  font-family: var(--ts-body);
  font-size: 1.125rem;
  line-height: 1.5;
  color: var(--ts-ink);
  max-width: 560px;
  margin: 0 auto;
}

/* sticker button with hard pop shadow */
.ts-btn-pop .elementor-button,
a.ts-btn-pop {
  display: inline-block;
  background: var(--ts-magenta);
  color: var(--ts-white);
  border: var(--ts-border);
  border-radius: 999px;
  padding: 16px 30px;
  font-family: var(--ts-body);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 1rem;
  line-height: 1;
  text-decoration: none;
  box-shadow: var(--ts-pop);
  transition: transform 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
  fill: var(--ts-white);
}
.ts-btn-pop .elementor-button:hover,
a.ts-btn-pop:hover { background: var(--ts-magenta); color: var(--ts-white); transform: translate(-1px, -1px); box-shadow: 6px 6px 0 var(--ts-ink); }
.ts-btn-pop .elementor-button:active,
a.ts-btn-pop:active {
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0 var(--ts-ink);
  background: var(--ts-magenta-press);
}
.ts-btn-pop .elementor-button-content-wrapper { justify-content: center; }

/* --------------------------------------------------------------------------
   8. MORE FROM THE LATEST
   -------------------------------------------------------------------------- */
.ts-more { padding: 48px 32px 64px; }
.ts-more__head { gap: 20px; align-items: baseline; justify-content: space-between; flex-wrap: wrap; }
.ts-more__title { flex: 1 1 0%; min-width: 0; }
.ts-more__all { flex: 0 0 auto; }
.ts-more__title .elementor-heading-title {
  font-family: var(--ts-display);
  font-weight: 900;
  text-transform: uppercase;
  font-size: var(--ts-display-lg);
  line-height: 0.86;
  letter-spacing: 0.005em;
  color: var(--ts-ink);
}
.ts-more__all .elementor-heading-title a,
.ts-more__all .elementor-heading-title {
  font-family: var(--ts-body);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 14px;
  white-space: nowrap;
  color: var(--ts-ink);
  text-decoration: underline;
  text-decoration-color: var(--ts-magenta);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
.ts-more__all .elementor-heading-title a:hover { color: var(--ts-magenta); }

/* Posts widget — Cards skin */
.ts-cards .elementor-posts-container,
.ts-cards .elementor-posts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
.ts-cards .elementor-post,
.ts-cards .elementor-post__card {
  background: var(--ts-white);
  border: var(--ts-border);
  border-radius: 12px;
  box-shadow: var(--ts-pop);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
  transition: transform 160ms ease, box-shadow 160ms ease;
  margin: 0;
}
.ts-cards .elementor-post:hover {
  transform: translate(-2px, -2px);
  box-shadow: 7px 7px 0 var(--ts-ink);
}
.ts-cards .elementor-post__card { border: 0; border-radius: 0; box-shadow: none; }
.ts-cards .elementor-post { padding: 0; }

.ts-cards .elementor-post__thumbnail__link { order: 1; margin: 0; }
.ts-cards .elementor-post__thumbnail {
  height: 130px;
  padding: 0 !important;
  border-bottom: var(--ts-border);
  overflow: hidden;
}
.ts-cards .elementor-post__thumbnail img {
  position: static;
  width: 100%;
  height: 130px;
  object-fit: cover;
  transform: none;
  display: block;
}

/* category badge → pill under the image */
.ts-cards .elementor-post__badge {
  order: 2;
  position: static;
  align-self: flex-start;
  margin: 18px 20px 0;
  background: var(--ts-cyan);
  color: var(--ts-ink);
  border-radius: 999px;
  padding: 4px 11px;
  font-family: var(--ts-body);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 11px;
  line-height: 1.3;
}

.ts-cards .elementor-post__text { order: 3; padding: 8px 20px 0; margin: 0; }
.ts-cards .elementor-post__title,
.ts-cards .elementor-post__title a {
  font-family: var(--ts-body);
  font-weight: 800;
  font-size: 1.125rem;
  line-height: 1.15;
  text-transform: none;
  letter-spacing: 0;
  color: var(--ts-ink);
  text-decoration: none;
  margin: 0;
}
.ts-cards .elementor-post__meta-data {
  order: 4;
  padding: 8px 20px 22px;
  margin: 0;
  border: 0;
  font-family: var(--ts-body);
  font-size: 0.875rem;
  color: var(--ts-g500);
}
.ts-cards .elementor-post__excerpt, .ts-cards .elementor-post__read-more { display: none; }

/* --------------------------------------------------------------------------
   9. RESPONSIVE
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  .ts-cards .elementor-posts-container,
  .ts-cards .elementor-posts { grid-template-columns: repeat(2, 1fr); }
  :root { --ts-bleed: 24px; }
}

@media (max-width: 768px) {
  :root { --ts-bleed: 0px; }
  .ts-hero { padding: 32px 20px 0; }
  .ts-featured { padding: 20px 20px 0; }
  .ts-article { padding: 28px 20px 32px; }
  .ts-tags { padding: 0 20px 8px; }
  .ts-donate { padding: 40px 20px; }
  .ts-more { padding: 36px 20px 48px; }

  .ts-mat--yellow { padding: 12px; }
  .ts-content blockquote,
  .ts-content .wp-block-quote,
  .ts-content .wp-block-pullquote { padding: 36px 20px; margin-top: 28px; margin-bottom: 28px; }
  .ts-content .wp-block-gallery { grid-template-columns: 1fr; }
  .ts-content .wp-block-embed .wp-block-embed__wrapper { padding: 10px; }

  .ts-cards .elementor-posts-container,
  .ts-cards .elementor-posts { grid-template-columns: 1fr; }
  .ts-cards .elementor-post__thumbnail,
  .ts-cards .elementor-post__thumbnail img { height: 180px; }
  .ts-tags__link { margin-left: 0; width: 100%; }
  .ts-more__head { flex-direction: column; align-items: flex-start; }
}

/* --------------------------------------------------------------------------
   10. OPTIONAL — self-hosted fonts
   Only needed if Korolev / Figtree are NOT already registered under
   Elementor → Site Settings → Theme Style, or via the Adobe Fonts /
   Google Fonts integrations. Upload the files with Elementor → Custom Fonts
   instead of using this block whenever possible.
   -------------------------------------------------------------------------- */
/*
@font-face {
  font-family: "Korolev Compressed";
  src: url("/wp-content/uploads/fonts/korolev-compressed-heavy.woff2") format("woff2");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Figtree";
  src: url("/wp-content/uploads/fonts/figtree-variable.woff2") format("woff2-variations");
  font-weight: 300 900;
  font-style: normal;
  font-display: swap;
}
*//* End custom CSS */