/* Text/Tech Documents Manager 1.0.0 — isolated visual foundation. */
:root {
  --ttd-ink: rgb(25, 25, 26);
  --ttd-paper: rgb(138, 203, 255);
  --ttd-rule: rgba(25, 25, 26, .28);
  --ttd-page-frame: 1200px;
  --ttd-page-content: 850px;
  --ttd-page-gutter: 20px;
}

/* Documents identity and the site's existing blue-on-black palette. */
body.home .ttp-subsite-mark .elementor-heading-title {
  font-size: 0 !important;
}

body.home .ttp-subsite-mark .elementor-heading-title::after {
  content: "THE DOCUMENTS";
  display: inline;
  color: var(--ttd-paper) !important;
  font-family: "Neutral Sans Variable", sans-serif !important;
  font-size: 17.28px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: .11em !important;
  text-transform: uppercase;
  white-space: nowrap;
}

.elementor-location-footer .elementor-element-349d793 {
  background-color: var(--ttd-ink) !important;
}

.elementor-location-footer,
.elementor-location-footer h1,
.elementor-location-footer h2,
.elementor-location-footer h3,
.elementor-location-footer h4,
.elementor-location-footer h5,
.elementor-location-footer h6,
.elementor-location-footer p,
.elementor-location-footer li,
.elementor-location-footer a,
.elementor-location-footer a:visited,
.elementor-location-footer .elementor-heading-title,
.elementor-location-footer .elementor-widget-text-editor,
.elementor-location-footer .elementor-widget-text-editor * {
  color: var(--ttd-paper) !important;
}

.elementor-location-footer hr,
.elementor-location-footer [class*="divider"],
.elementor-location-footer [class*="separator"] {
  border-color: rgba(138, 203, 255, .38) !important;
}

.elementor-location-footer a:hover,
.elementor-location-footer a:focus-visible {
  color: var(--ttd-paper) !important;
  opacity: .72;
}

html body,
html body h1,
html body h2,
html body h3,
html body h4,
html body h5,
html body h6,
html body p,
html body a,
html body li,
html body strong,
html body em,
html body small,
html body label,
html body input,
html body textarea,
html body select,
html body button,
html body summary,
html body blockquote,
html body figcaption,
html body table,
html body caption,
html body th,
html body td,
html body code,
html body pre,
html body [class^="ttd-"],
html body [class*=" ttd-"],
html body .elementor-heading-title,
html body .elementor-widget-text-editor,
html body .elementor-widget-text-editor *,
html body .elementor-button,
html body .elementor-button *,
html body .elementor-nav-menu a {
  font-family: "Neutral Sans Variable", sans-serif !important;
}

.elementor-nav-menu a {
  font-weight: 600 !important;
  text-transform: uppercase !important;
}

.home .ttp-tab h2,
.home .ttp-tab .elementor-heading-title {
  font-size: 28px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: -.0114em !important;
}

.home .ttp-hero h1,
.home .ttp-hero h1.elementor-heading-title {
  font-size: 60px !important;
  font-weight: 500 !important;
  line-height: 1.04 !important;
  letter-spacing: -.025em !important;
}

/* The cloned Documents homepage stores its display title as an h2. */
body.page-id-22 .elementor-element-7c6775c1 .elementor-heading-title {
  font-size: 60px !important;
  font-weight: 500 !important;
  line-height: 1.04 !important;
  letter-spacing: -.025em !important;
  text-align: center !important;
}

body.page-id-22 .elementor-element-19d0c3d7 .elementor-heading-title {
  font-size: 24px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  letter-spacing: -.0167em !important;
  text-align: center !important;
}

.home .ttp-hero .elementor-widget-heading:not(.ttp-subsite-mark):not(.elementor-element-7c6775c1) h2,
.home .ttp-hero .elementor-widget-heading:not(.ttp-subsite-mark):not(.elementor-element-7c6775c1) .elementor-heading-title {
  font-size: 24px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  letter-spacing: -.0167em !important;
}

.home .ttp-home-divider {
  display: none !important;
}

.home .elementor-page .elementor-widget-text-editor p {
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
}

.elementor-location-footer .elementor-widget-text-editor,
.elementor-location-footer .elementor-widget-text-editor p {
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
}

/* Shared page-frame grammar for native search and future document records. */
.ttd-page-frame {
  box-sizing: border-box;
  width: min(100%, var(--ttd-page-frame));
  margin-inline: auto;
  padding-inline: var(--ttd-page-gutter);
}

.ttd-page-column,
body.search #content.site-main,
body.post-type-archive-ttd_document #content.site-main,
body.single-ttd_document #content.site-main,
body.tax-ttd_collection #content.site-main,
body.tax-ttd_document_type #content.site-main {
  box-sizing: border-box;
  width: min(calc(100% - (2 * var(--ttd-page-gutter))), var(--ttd-page-content));
  max-width: var(--ttd-page-content);
  margin-inline: auto;
  padding: 20px 0 96px;
}

body.search #content h1.entry-title,
body.post-type-archive-ttd_document #content h1.entry-title,
body.single-ttd_document #content h1.entry-title,
body.tax-ttd_collection #content h1.entry-title,
body.tax-ttd_document_type #content h1.entry-title {
  margin: 0;
  color: var(--ttd-ink);
  font-size: 60px !important;
  font-weight: 500 !important;
  line-height: 1.04 !important;
  letter-spacing: -.025em !important;
}

body.search #content .page-content > article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 160px;
  gap: 12px 28px;
  align-items: start;
  margin: 0;
  padding: 30px 0;
  border-top: 1px solid var(--ttd-rule);
}

body.search #content .page-content > article:last-of-type {
  border-bottom: 1px solid var(--ttd-rule);
}

body.search #content article .entry-title {
  grid-column: 1;
  margin: 0;
  font-size: 28px !important;
  font-weight: 600 !important;
  line-height: 1.06 !important;
  letter-spacing: -.015em !important;
}

body.search #content article .entry-title a,
body.search #content article .entry-title a:visited {
  color: var(--ttd-ink);
  text-decoration: none;
}

body.search #content article > a:has(img) {
  grid-column: 2;
  grid-row: 1 / span 2;
}

body.search #content article img {
  display: block;
  width: 160px;
  height: 160px;
  object-fit: cover;
}

.ttd-section-tab {
  display: inline-block;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0 0 18px;
  padding: 14px 24px;
  border-radius: 0 12px 12px 0;
  background: var(--ttd-ink);
  color: var(--ttd-paper);
  font-size: 32px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -.0125em;
}

.ttd-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 42px 30px;
}

.ttd-card {
  min-width: 0;
  margin: 0;
}

.ttd-card img {
  display: block;
  width: min(100%, 250px);
  height: auto;
  margin: 0 auto 14px;
}

.ttd-button,
.ttd-button:visited,
.ttd-pill,
.ttd-pill:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  box-sizing: border-box;
  border: 1px solid var(--ttd-ink);
  color: var(--ttd-ink);
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.15;
  text-decoration: none !important;
}

.ttd-button {
  padding: 10px 16px;
  border-radius: 999px;
  background: transparent;
  text-transform: uppercase;
}

.ttd-button:hover,
.ttd-button:focus-visible {
  background: var(--ttd-ink);
  color: var(--ttd-paper);
}

.ttd-details {
  margin: 18px 0 0;
}

.ttd-details > summary {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 52px;
  box-sizing: border-box;
  padding: 14px 48px 14px 16px;
  border-radius: 0 12px 12px 0;
  background: var(--ttd-ink);
  color: var(--ttd-paper);
  font-size: .88rem;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1;
  list-style: none;
  text-transform: uppercase;
  cursor: pointer;
}

.ttd-details > summary::-webkit-details-marker {
  display: none;
}

.ttd-details > summary::after {
  content: "+";
  position: absolute;
  right: 16px;
  font-size: 1.25rem;
}

.ttd-details[open] > summary::after {
  content: "−";
}

.ttd-details-body {
  padding: 24px 16px 10px;
  border-bottom: 1px solid var(--ttd-rule);
}

.ttd-pagination {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 54px;
  padding-top: 30px;
  border-top: 1px solid var(--ttd-rule);
}

@media (max-width: 767px) {
  html,
  body {
    max-width: 100%;
    overflow-x: clip;
  }

  body {
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
  }

  .ttd-page-frame {
    padding-left: max(16px, env(safe-area-inset-left));
    padding-right: max(16px, env(safe-area-inset-right));
  }

  .ttd-page-column,
  body.search #content.site-main,
  body.post-type-archive-ttd_document #content.site-main,
  body.single-ttd_document #content.site-main,
  body.tax-ttd_collection #content.site-main,
  body.tax-ttd_document_type #content.site-main {
    width: calc(100% - 32px);
    padding-top: 12px;
    padding-bottom: 64px;
  }

  .elementor-location-header .ttp-wide,
  .home .ttp-wide {
    box-sizing: border-box;
    width: 100% !important;
    margin-inline: 0 !important;
    padding-left: max(16px, env(safe-area-inset-left)) !important;
    padding-right: max(16px, env(safe-area-inset-right)) !important;
  }

  .elementor-location-header .ttp-tab,
  .home .ttp-tab {
    box-sizing: border-box;
    max-width: calc(100% - 58px);
    padding: 11px 14px !important;
  }

  .elementor-location-header .ttp-tab h2,
  .elementor-location-header .ttp-tab .elementor-heading-title,
  .home .ttp-tab h2,
  .home .ttp-tab .elementor-heading-title {
    font-size: .9rem !important;
    line-height: 1.05 !important;
    letter-spacing: .01em !important;
  }

  .elementor-location-header .elementor-menu-toggle,
  .home .elementor-menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 10px !important;
  }

  .elementor-location-header .elementor-nav-menu--dropdown a,
  .home .elementor-nav-menu--dropdown a {
    display: flex;
    align-items: center;
    min-height: 48px;
    box-sizing: border-box;
  }

  .home .ttp-hero {
    min-height: 430px;
    padding: 54px 18px !important;
  }

  .home .ttp-hero h1,
  .home .ttp-hero h1.elementor-heading-title,
  body.home.page-id-22 .ttp-hero .elementor-element-7c6775c1 .elementor-heading-title {
    font-size: clamp(2.45rem, 11.5vw, 3.1rem) !important;
    line-height: .98 !important;
    letter-spacing: -.035em !important;
    text-align: center !important;
    text-wrap: balance;
  }

  body.page-id-22 .elementor-element-19d0c3d7 .elementor-heading-title,
  .home .ttp-hero .elementor-widget-heading:not(.ttp-subsite-mark):not(.elementor-element-7c6775c1) h2,
  .home .ttp-hero .elementor-widget-heading:not(.ttp-subsite-mark):not(.elementor-element-7c6775c1) .elementor-heading-title {
    font-size: 1.08rem !important;
    line-height: 1.25 !important;
    letter-spacing: -.0167em !important;
    text-align: center !important;
    text-wrap: balance;
  }

  .home .elementor-page .elementor-widget-text-editor p {
    font-size: 1.03rem !important;
    line-height: 1.58 !important;
  }

  .ttd-grid {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 46px;
  }

  .ttd-card {
    width: 100%;
    max-width: 290px;
  }

  .ttd-section-tab {
    padding: 12px 16px;
    font-size: clamp(1.28rem, 6.5vw, 1.65rem);
    line-height: 1.08;
  }

  .ttd-pagination {
    grid-template-columns: minmax(0, 1fr);
  }

  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea,
  button,
  .elementor-button {
    font-size: 16px !important;
  }

  button,
  .elementor-button {
    min-height: 44px;
  }

  .elementor-location-footer {
    padding-top: 48px !important;
  }

  .elementor-location-footer .e-con-inner {
    box-sizing: border-box;
    padding-inline: 18px;
  }
}
