/*
Theme Name: Triangle Technology Signals
Theme URI: https://triangletechsignals.com/
Description: Responsive editorial child theme for Triangle Technology Signals.
Author: Wayan Vota
Template: blocksy
Version: 1.0.2
Requires at least: 6.7
Requires PHP: 7.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: triangle-technology-signals
*/

@font-face {
  font-family: "IBM Plex Sans";
  src: url("assets/fonts/ibm-plex-sans-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Sans";
  src: url("assets/fonts/ibm-plex-sans-italic-latin.woff2") format("woff2");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}

:root {
  --tts-white: #ffffff;
  --tts-teal: #0f3b47;
  --tts-teal-dark: #082e38;
  --tts-amber: #d89a1c;
  --tts-sage: #aeb9a4;
  --tts-gray: #d9dede;
  --tts-gray-light: #eef1f1;
  --tts-slate: #28343a;
  --tts-muted: #5d6a6f;
  --tts-container: 1280px;
  --tts-reading: 760px;
  --tts-radius: 4px;
  --theme-font-family: "IBM Plex Sans", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --theme-text-color: var(--tts-slate);
  --theme-link-initial-color: var(--tts-teal);
  --theme-link-hover-color: #a96f00;
}

html {
  scroll-behavior: smooth;
}

body {
  background: var(--tts-white);
  color: var(--tts-slate);
  font-family: var(--theme-font-family);
  font-size: clamp(1.0625rem, 1rem + 0.18vw, 1.1875rem);
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}

body.tts-editorial-theme {
  background: var(--tts-white) !important;
}

body,
button,
input,
select,
textarea {
  font-family: var(--theme-font-family);
}

h1,
h2,
h3,
h4,
h5,
h6,
.entry-title,
.page-title {
  color: var(--tts-teal);
  font-family: var(--theme-font-family);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.08;
  text-wrap: balance;
}

h1,
.entry-title {
  font-size: clamp(2.35rem, 6vw, 5.25rem);
}

h2 {
  font-size: clamp(1.75rem, 3.2vw, 3rem);
}

h3 {
  font-size: clamp(1.3rem, 2vw, 1.75rem);
}

a {
  text-decoration-color: color-mix(in srgb, var(--tts-amber) 70%, transparent);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.16em;
}

a:hover,
a:focus-visible {
  color: #8b5c00;
  text-decoration-color: currentColor;
}

:focus-visible {
  outline: 3px solid var(--tts-amber);
  outline-offset: 3px;
}

::selection {
  background: #f5dcaa;
  color: var(--tts-teal-dark);
}

img {
  height: auto;
}

/* Blocksy shell */

#main,
[data-prefix="single_blog_post"] .site-main,
[data-prefix="blog"] .site-main,
[data-prefix="categories"] .site-main {
  background: var(--tts-white);
}

#header [data-row*="middle"] {
  background: rgba(255, 255, 255, 0.98);
  border-bottom: 1px solid var(--tts-gray);
  box-shadow: none;
}

#header [data-row*="middle"] > div,
.ct-container {
  width: min(calc(100% - 40px), var(--tts-container));
}

.site-logo-container img {
  width: min(100%, 390px);
  height: 88px !important;
  max-height: 96px;
  object-fit: contain;
  object-position: left center;
}

.site-title {
  color: var(--tts-teal);
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.site-branding .site-logo-container + .site-title-container {
  display: none;
}

#header-menu-1 .menu-item > a,
.mobile-menu .menu-item > a {
  color: var(--tts-teal);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

#header-menu-1 .current-menu-item > a,
#header-menu-1 .menu-item > a:hover {
  color: #9b6909;
}

.ct-header-trigger .ct-icon {
  color: var(--tts-teal);
}

.site-main {
  min-height: 55vh;
}

#footer {
  background: var(--tts-teal-dark);
  color: #f7f9f9;
  margin-top: clamp(4rem, 8vw, 8rem);
}

#footer a,
#footer h2,
#footer h3 {
  color: #ffffff;
}

#footer .ct-footer-copyright,
#footer .ct-footer-copyright a {
  color: #ffffff;
}

/* Homepage */

.tts-home {
  background: var(--tts-white);
}

.tts-home__inner {
  width: min(calc(100% - 40px), var(--tts-container));
  margin-inline: auto;
}

.tts-masthead {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 6rem);
  padding: clamp(3.5rem, 8vw, 8rem) 0 clamp(3rem, 6vw, 6rem);
  border-bottom: 1px solid var(--tts-gray);
}

.tts-masthead__copy {
  max-width: 680px;
}

.tts-eyebrow,
.tts-card__label,
.tts-section-heading__label,
.tts-entry-label,
.entry-meta,
.ct-post-meta-data {
  color: #6d560f;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  line-height: 1.35;
  text-transform: uppercase;
}

.tts-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0 0 1.3rem;
}

.tts-eyebrow::before {
  width: 0.62rem;
  height: 0.62rem;
  background: var(--tts-amber);
  border-radius: 50%;
  box-shadow: 0 0 0 5px rgba(216, 154, 28, 0.13);
  content: "";
}

.tts-masthead h1 {
  margin: 0;
  font-size: clamp(2.65rem, 5.7vw, 5.6rem);
  max-width: 14ch;
}

.tts-masthead__dek {
  max-width: 60ch;
  margin: 1.5rem 0 0;
  color: var(--tts-muted);
  font-size: clamp(1.1rem, 1.5vw, 1.35rem);
  line-height: 1.55;
}

.tts-masthead__art {
  position: relative;
  margin: 0;
}

.tts-masthead__art::after {
  position: absolute;
  right: 10%;
  bottom: 12%;
  width: 0.8rem;
  height: 0.8rem;
  background: var(--tts-amber);
  border: 5px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--tts-amber), 0 0 0 12px rgba(216, 154, 28, 0.1);
  content: "";
}

.tts-masthead__art img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.tts-section {
  padding: clamp(3.75rem, 7vw, 7.5rem) 0;
  border-bottom: 1px solid var(--tts-gray);
}

.tts-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

.tts-section-heading h2 {
  max-width: 18ch;
  margin: 0.4rem 0 0;
}

.tts-section-heading p {
  max-width: 52ch;
  margin: 0;
  color: var(--tts-muted);
}

.tts-lead-story {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}

.tts-lead-story__image img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.tts-lead-story__content h2 {
  margin: 0.6rem 0 1rem;
  font-size: clamp(2rem, 4vw, 3.75rem);
}

.tts-lead-story__content h2 a,
.tts-card h3 a {
  color: inherit;
  text-decoration: none;
}

.tts-lead-story__content h2 a:hover,
.tts-card h3 a:hover {
  color: #8b5c00;
}

.tts-lead-story__excerpt {
  color: var(--tts-muted);
  font-size: 1.06rem;
}

.tts-story-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 3rem);
}

.tts-card {
  display: flex;
  flex-direction: column;
  padding-top: 1rem;
  border-top: 3px solid var(--tts-teal);
}

.tts-card:nth-child(2) {
  border-top-color: var(--tts-sage);
}

.tts-card:nth-child(3) {
  border-top-color: var(--tts-amber);
}

.tts-card__image {
  margin: -1rem 0 1.2rem;
}

.tts-card__image img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.tts-card h3 {
  margin: 0.55rem 0 0.75rem;
}

.tts-card p {
  margin-top: 0;
  color: var(--tts-muted);
  font-size: 0.98rem;
}

.tts-method {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: clamp(2rem, 6vw, 6.5rem);
}

.tts-method img {
  width: 100%;
}

.tts-method__copy {
  max-width: 590px;
}

.tts-method__copy h2 {
  margin: 0.45rem 0 1.2rem;
}

.tts-signal-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 2rem 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--tts-gray);
}

.tts-signal-list li {
  position: relative;
  padding: 1.2rem 1.5rem 1.2rem 1.6rem;
  border-bottom: 1px solid var(--tts-gray);
  color: var(--tts-teal);
  font-weight: 600;
}

.tts-signal-list li::before {
  position: absolute;
  top: 1.75rem;
  left: 0;
  width: 0.45rem;
  height: 0.45rem;
  background: var(--tts-amber);
  border-radius: 50%;
  content: "";
}

.tts-launch-note {
  display: grid;
  grid-template-columns: 0.65fr 1.35fr;
  gap: clamp(2rem, 5vw, 6rem);
  align-items: start;
}

.tts-launch-note h2 {
  margin: 0;
}

.tts-launch-note__body {
  max-width: 720px;
}

.tts-launch-note__body p:first-child {
  margin-top: 0;
  font-size: 1.25rem;
}

.tts-launch-cities {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  margin-top: 1.8rem;
  color: var(--tts-teal);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.tts-launch-cities span {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
}

.tts-launch-cities span::before {
  width: 0.45rem;
  height: 0.45rem;
  background: var(--tts-teal);
  border: 2px solid white;
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--tts-teal);
  content: "";
}

/* Articles and archives */

[data-prefix="single_blog_post"] .entry-header,
[data-prefix="single_page"] .entry-header {
  max-width: 960px;
  margin-inline: auto;
}

[data-prefix="single_blog_post"] .entry-title,
[data-prefix="single_page"] .entry-title {
  max-width: 16ch;
}

.entry-content {
  color: var(--tts-slate);
}

[data-prefix="single_blog_post"] .entry-content {
  max-width: var(--tts-reading);
  margin-inline: auto;
}

.entry-content > p,
.entry-content > ul,
.entry-content > ol,
.entry-content > blockquote {
  max-width: var(--tts-reading);
}

.entry-content p {
  margin-bottom: 1.35em;
}

.entry-content h2,
.entry-content h3 {
  margin-top: 1.75em;
}

.entry-content blockquote {
  margin: 2.25rem 0;
  padding: 0.25rem 0 0.25rem 1.5rem;
  border-left: 4px solid var(--tts-amber);
  color: var(--tts-teal);
  font-size: 1.2em;
}

.entry-content figcaption,
.wp-element-caption {
  color: var(--tts-muted);
  font-size: 0.8rem;
  line-height: 1.45;
}

.entry-content table {
  border-collapse: collapse;
  font-size: 0.92rem;
}

.entry-content th {
  background: var(--tts-teal);
  color: #fff;
  text-align: left;
}

.entry-content th,
.entry-content td {
  padding: 0.85rem;
  border: 1px solid var(--tts-gray);
}

.wp-block-group.is-style-tts-evidence,
.wp-block-group.is-style-tts-watch,
.wp-block-group.is-style-tts-sources {
  position: relative;
  max-width: 900px;
  margin: 2.75rem auto;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  background: #fff;
  border: 1px solid var(--tts-gray);
  border-top: 4px solid var(--tts-teal);
  border-radius: var(--tts-radius);
}

.wp-block-group.is-style-tts-watch {
  border-top-color: var(--tts-amber);
}

.wp-block-group.is-style-tts-sources {
  border-top-color: var(--tts-sage);
  font-size: 0.94rem;
}

.wp-block-separator {
  border-color: var(--tts-gray);
}

.wp-block-button__link,
button,
input[type="submit"] {
  min-height: 44px;
  padding: 0.75rem 1.15rem;
  background: var(--tts-teal);
  border: 1px solid var(--tts-teal);
  border-radius: var(--tts-radius);
  box-shadow: none;
  color: #fff;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.wp-block-button__link:hover,
button:hover,
input[type="submit"]:hover {
  background: var(--tts-teal-dark);
  border-color: var(--tts-teal-dark);
  color: #fff;
}

[data-archive="default"] .entry-card {
  background: #fff;
  border: 0;
  border-top: 1px solid var(--tts-gray);
  border-radius: 0;
  box-shadow: none;
}

[data-archive="default"] .entry-card .entry-title {
  font-size: clamp(1.35rem, 2.1vw, 2rem);
}

[data-archive="default"] .entry-card .entry-excerpt {
  color: var(--tts-muted);
}

.post-navigation,
.ct-related-posts {
  border-top-color: var(--tts-gray);
}

@media (max-width: 1024px) {
  .tts-masthead,
  .tts-method {
    grid-template-columns: 1fr;
  }

  .tts-masthead__copy,
  .tts-method__copy {
    max-width: 780px;
  }

  .tts-masthead__art {
    max-width: 900px;
  }

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

  .tts-lead-story {
    grid-template-columns: 1fr;
  }

  .site-logo-container img {
    height: 72px !important;
    max-height: 78px;
  }
}

@media (max-width: 689px) {
  #header [data-row*="middle"] > div,
  .ct-container,
  .tts-home__inner {
    width: min(calc(100% - 28px), var(--tts-container));
  }

  .tts-masthead {
    gap: 2rem;
    padding-top: 2.75rem;
  }

  .tts-masthead h1 {
    font-size: clamp(2.35rem, 12vw, 4rem);
  }

  .tts-section-heading,
  .tts-launch-note {
    display: block;
  }

  .tts-section-heading p,
  .tts-launch-note__body {
    margin-top: 1.25rem;
  }

  .tts-story-grid,
  .tts-signal-list {
    grid-template-columns: 1fr;
  }

  .tts-card + .tts-card {
    margin-top: 1rem;
  }

  .site-logo-container img {
    width: 260px;
    height: 66px !important;
    max-height: 70px;
  }

  .entry-content table {
    display: block;
    overflow-x: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
