/* Triplan public editorial pages: About, Blog, Article and Contact. */

.tp-editorial-shell {
  box-sizing: border-box;
  width: min(1440px, 100%);
  margin-inline: auto;
  padding-inline: clamp(42px, 5vw, 76px);
}

.tp-about-page,
.tp-blog-page,
.tp-article-page,
.tp-contact-page {
  overflow: hidden;
  background: #fff;
  color: var(--tp-ink);
  font-family: var(--tp-body-font, "Poppins", sans-serif);
}

.tp-about-page *,
.tp-blog-page *,
.tp-article-page *,
.tp-contact-page * {
  box-sizing: border-box;
}

.tp-about-page h1,
.tp-about-page h2,
.tp-about-page h3,
.tp-blog-page h1,
.tp-blog-page h2,
.tp-blog-page h3,
.tp-article-page h1,
.tp-article-page h2,
.tp-article-page h3,
.tp-contact-page h1,
.tp-contact-page h2,
.tp-contact-page h3 {
  overflow-wrap: anywhere;
}

.tp-editorial-eyebrow {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 30px;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgb(64 161 183 / 12%);
  color: var(--tp-primary-dark);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .1em;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
}

.tp-editorial-eyebrow--light {
  border: 1px solid rgb(255 255 255 / 22%);
  background: rgb(255 255 255 / 12%);
  color: #fff;
}

.tp-editorial-heading {
  max-width: 760px;
  margin: 0 auto 38px;
  text-align: center;
}

.tp-editorial-heading--left {
  margin-inline: 0;
  text-align: left;
}

.tp-editorial-heading h2,
.tp-blog-list__header h2 {
  margin: 12px 0 10px;
  color: var(--tp-ink);
  font: 800 clamp(1.85rem, 2.8vw, 2.55rem)/1.12 var(--tp-heading-font, "Poppins", sans-serif);
  letter-spacing: -.025em;
}

.tp-editorial-heading p {
  margin: 0;
  color: var(--tp-muted);
  font-size: 16px;
  line-height: 1.65;
}

.tp-editorial-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  border: 0;
  border-radius: 10px;
  padding: 13px 20px;
  background: var(--tp-primary);
  color: #fff !important;
  cursor: pointer;
  font: 800 15px/1 var(--tp-action-font, "Lato", sans-serif);
  text-decoration: none !important;
  transition: background-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.tp-editorial-button--accent {
  background: var(--tp-accent);
  box-shadow: 0 10px 24px rgb(27 186 202 / 28%);
}

.tp-editorial-button:hover,
.tp-editorial-button:focus-visible {
  background: var(--tp-primary-dark);
  box-shadow: 0 12px 30px rgb(15 27 45 / 18%);
  color: #fff !important;
  transform: translateY(-2px);
}

.tp-editorial-button--accent:hover,
.tp-editorial-button--accent:focus-visible {
  background: var(--tp-primary-dark);
  color: #fff !important;
}

.tp-editorial-button:focus-visible,
.tp-editorial-text-link:focus-visible,
.tp-blog-page a:focus-visible,
.tp-article-page a:focus-visible,
.tp-contact-page a:focus-visible,
.tp-contact-page button:focus-visible,
.tp-contact-page input:focus-visible,
.tp-contact-page select:focus-visible,
.tp-contact-page textarea:focus-visible {
  outline: 3px solid rgb(64 161 183 / 48%);
  outline-offset: 3px;
}

.tp-editorial-text-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  width: fit-content;
  color: var(--tp-primary-dark) !important;
  font-weight: 800;
  text-decoration: none !important;
}

.tp-editorial-text-link i {
  transition: transform 180ms ease;
}

.tp-editorial-text-link:hover i {
  transform: translateX(3px);
}

.tp-editorial-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 450px;
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(125deg, #183b46, var(--tp-primary-dark));
}

.tp-editorial-hero::before,
.tp-editorial-hero::after {
  position: absolute;
  inset: 0;
  z-index: -1;
  content: "";
  pointer-events: none;
}

.tp-editorial-hero::before {
  background:
    linear-gradient(90deg, rgb(15 27 45 / 88%), rgb(15 27 45 / 54%) 58%, rgb(15 27 45 / 42%)),
    var(--tp-hero-image, none) center / cover no-repeat;
}

.tp-editorial-hero::after {
  opacity: .42;
  background-image: repeating-linear-gradient(45deg, rgb(255 255 255 / 2%) 0, rgb(255 255 255 / 2%) 1px, transparent 1px, transparent 34px);
}

.tp-editorial-hero__inner {
  display: grid;
  justify-items: start;
  padding-block: 76px;
}

.tp-editorial-hero h1 {
  max-width: 900px;
  margin: 15px 0 16px;
  color: #fff;
  font: 800 clamp(2.65rem, 5vw, 5rem)/1.02 var(--tp-heading-font, "Poppins", sans-serif);
  letter-spacing: -.045em;
}

.tp-editorial-hero p {
  max-width: 680px;
  margin: 0;
  color: rgb(255 255 255 / 84%);
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.65;
}

.tp-editorial-hero .tp-editorial-button {
  margin-top: 28px;
}

/* About */

.tp-about-story,
.tp-about-values,
.tp-about-team,
.tp-about-reasons,
.tp-about-reviews {
  padding-block: 84px;
}

.tp-about-story__grid {
  display: grid;
  grid-template-columns: minmax(340px, .88fr) minmax(0, 1.12fr);
  gap: clamp(48px, 7vw, 104px);
  align-items: center;
}

.tp-about-story__visual {
  position: relative;
  min-height: 570px;
  margin: 0;
}

.tp-about-story__visual::before {
  position: absolute;
  top: -18px;
  left: -18px;
  z-index: 0;
  width: 54%;
  height: 44%;
  border-radius: 24px;
  background: #dff2f6;
  content: "";
}

.tp-about-story__visual img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 570px;
  display: block;
  border-radius: 14px;
  object-fit: cover;
  box-shadow: 0 20px 46px rgb(15 27 45 / 16%);
}

.tp-about-story__visual figcaption {
  position: absolute;
  right: -22px;
  bottom: 28px;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: 280px;
  border: 1px solid rgb(255 255 255 / 72%);
  border-radius: 12px;
  padding: 14px 17px;
  background: rgb(255 255 255 / 94%);
  box-shadow: 0 12px 30px rgb(15 27 45 / 14%);
  color: var(--tp-primary-dark);
  font-size: 13px;
  font-weight: 700;
}

.tp-about-story__visual figcaption i {
  color: var(--tp-accent);
}

.tp-about-story__content h2 {
  margin: 14px 0 24px;
  color: var(--tp-ink);
  font: 800 clamp(2rem, 3.5vw, 3.55rem)/1.08 var(--tp-heading-font, "Poppins", sans-serif);
  letter-spacing: -.04em;
}

.tp-about-story__content p {
  margin: 0 0 18px;
  color: #586b78;
  font-size: 16px;
  line-height: 1.78;
}

.tp-about-story__content strong {
  color: var(--tp-ink);
}

.tp-about-story__content blockquote {
  margin: 28px 0 0;
  border-left: 4px solid var(--tp-primary);
  border-radius: 0 12px 12px 0;
  padding: 20px 22px;
  background: #f3f8f9;
  color: var(--tp-primary-dark);
  font-size: 18px;
  font-style: normal;
  font-weight: 800;
  line-height: 1.5;
}

.tp-about-vision {
  padding-block: 78px;
  color: #fff;
  background:
    radial-gradient(circle at 85% 12%, rgb(64 161 183 / 28%), transparent 32%),
    var(--tp-midnight);
}

.tp-about-vision__inner {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: clamp(48px, 8vw, 120px);
  align-items: start;
}

.tp-about-vision h2 {
  margin: 16px 0 0;
  color: #fff;
  font: 800 clamp(2.3rem, 4.5vw, 4.5rem)/1.02 var(--tp-heading-font, "Poppins", sans-serif);
  letter-spacing: -.045em;
}

.tp-about-vision__copy {
  display: grid;
  gap: 18px;
  padding-top: 42px;
}

.tp-about-vision__copy p {
  max-width: 720px;
  margin: 0;
  color: rgb(255 255 255 / 78%);
  font-size: 17px;
  line-height: 1.78;
}

.tp-about-values {
  background: #f7fafb;
}

.tp-about-values__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.tp-about-value {
  min-height: 245px;
  border: 1px solid #e0eaec;
  border-radius: 14px;
  padding: 26px;
  background: #fff;
  box-shadow: 0 6px 18px rgb(15 27 45 / 6%);
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.tp-about-value:hover {
  border-color: #b9d9df;
  box-shadow: 0 12px 30px rgb(15 27 45 / 11%);
  transform: translateY(-2px);
}

.tp-about-value__icon,
.tp-about-reasons__grid article > span {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: #e8f6f8;
  color: var(--tp-primary-dark);
  font-size: 21px;
}

.tp-about-value h3 {
  margin: 22px 0 10px;
  color: var(--tp-ink);
  font: 700 18px/1.35 var(--tp-heading-font, "Poppins", sans-serif);
}

.tp-about-value p {
  margin: 0;
  color: var(--tp-muted);
  font-size: 14px;
  line-height: 1.65;
}

.tp-about-team__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.tp-about-member {
  position: relative;
  overflow: hidden;
  min-height: 350px;
  border-radius: 14px;
  background: var(--tp-primary-dark);
  box-shadow: 0 6px 18px rgb(15 27 45 / 9%);
}

.tp-about-member::after {
  position: absolute;
  inset: 42% 0 0;
  background: linear-gradient(transparent, rgb(15 27 45 / 88%));
  content: "";
}

.tp-about-member img {
  width: 100%;
  height: 350px;
  display: block;
  object-fit: cover;
  filter: saturate(.92);
  transition: filter 220ms ease, transform 220ms ease;
}

.tp-about-member:hover img {
  filter: saturate(1.05);
  transform: scale(1.025);
}

.tp-about-member > div {
  position: absolute;
  right: 18px;
  bottom: 18px;
  left: 18px;
  z-index: 1;
}

.tp-about-member h3 {
  margin: 0;
  color: #fff;
  font: 800 19px/1.2 var(--tp-heading-font, "Poppins", sans-serif);
}

.tp-about-member p {
  margin: 5px 0 0;
  color: rgb(255 255 255 / 76%);
  font-size: 13px;
}

.tp-about-reasons {
  background: #f3f8f9;
}

.tp-about-reasons__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px;
}

.tp-about-reasons__grid article {
  display: grid;
  justify-items: center;
  min-height: 168px;
  border: 1px solid #dce9ec;
  border-radius: 14px;
  padding: 22px 14px;
  background: #fff;
  text-align: center;
}

.tp-about-reasons__grid article > span {
  background: #fff2e7;
  color: #e87812;
}

.tp-about-reasons__grid h3 {
  margin: 17px 0 0;
  color: var(--tp-ink);
  font: 700 14px/1.4 var(--tp-heading-font, "Poppins", sans-serif);
}

.tp-about-reviews .tp-google-reviews {
  padding: 0;
}

.tp-editorial-cta {
  padding-block: 66px;
  color: #fff;
  background: linear-gradient(115deg, var(--tp-primary-dark), #183b46);
}

.tp-editorial-cta__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

.tp-editorial-cta h2 {
  margin: 12px 0 0;
  color: #fff;
  font: 800 clamp(2rem, 3.8vw, 3.5rem)/1.08 var(--tp-heading-font, "Poppins", sans-serif);
  letter-spacing: -.035em;
}

/* Blog */

.tp-blog-hero {
  min-height: 420px;
  text-align: center;
  background:
    radial-gradient(circle at 12% 18%, rgb(64 161 183 / 34%), transparent 30%),
    radial-gradient(circle at 88% 75%, rgb(251 142 40 / 18%), transparent 28%),
    var(--tp-midnight);
}

.tp-blog-hero .tp-editorial-hero__inner {
  justify-items: center;
}

.tp-blog-search {
  width: min(680px, 100%);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin-top: 30px;
  border: 1px solid rgb(255 255 255 / 32%);
  border-radius: 12px;
  padding: 7px;
  background: rgb(255 255 255 / 96%);
  box-shadow: 0 16px 40px rgb(0 0 0 / 18%);
}

.tp-blog-search > i {
  margin-left: 10px;
  color: var(--tp-primary);
}

.tp-blog-search input {
  min-width: 0;
  min-height: 46px;
  border: 0;
  padding: 9px 2px;
  background: transparent;
  color: var(--tp-ink);
  font: 500 14px/1.2 var(--tp-body-font, "Poppins", sans-serif);
  outline: 0;
}

.tp-blog-search button {
  min-height: 46px;
  border: 0;
  border-radius: 9px;
  padding: 0 20px;
  background: var(--tp-accent);
  color: var(--tp-midnight);
  cursor: pointer;
  font-weight: 800;
}

.tp-blog-categories {
  border-bottom: 1px solid #e4ecee;
  background: #fff;
}

.tp-blog-categories .tp-editorial-shell {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-block: 16px;
  scrollbar-width: none;
}

.tp-blog-categories .tp-editorial-shell::-webkit-scrollbar {
  display: none;
}

.tp-blog-categories a {
  flex: 0 0 auto;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  border: 1px solid #d9e5e8;
  border-radius: 999px;
  padding: 9px 15px;
  color: #526a72;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}

.tp-blog-categories a:hover,
.tp-blog-categories a.is-active {
  border-color: var(--tp-primary);
  background: var(--tp-primary);
  color: var(--tp-midnight);
}

.tp-blog-featured {
  padding-block: 72px 38px;
}

.tp-blog-featured article {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr);
  overflow: hidden;
  border: 1px solid #e0e9eb;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 12px 30px rgb(15 27 45 / 10%);
}

.tp-blog-featured__image {
  min-height: 0;
  aspect-ratio: 1 / 1;
  display: block;
  overflow: hidden;
  background: #eaf4f6;
}

.tp-blog-featured__image img,
.tp-blog-card__image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 220ms ease, filter 220ms ease;
}

.tp-blog-featured article:hover .tp-blog-featured__image img,
.tp-blog-card:hover .tp-blog-card__image img {
  filter: saturate(1.04);
  transform: scale(1.025);
}

.tp-blog-featured__content {
  display: grid;
  align-content: center;
  justify-items: start;
  padding: clamp(32px, 5vw, 66px);
}

.tp-blog-card__category {
  display: inline-flex;
  width: fit-content;
  border-radius: 999px;
  padding: 6px 10px;
  background: #e8f6f8;
  color: var(--tp-primary-dark);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.tp-blog-featured h2 {
  margin: 18px 0 14px;
  font: 800 clamp(1.8rem, 3vw, 3rem)/1.12 var(--tp-heading-font, "Poppins", sans-serif);
  letter-spacing: -.03em;
}

.tp-blog-featured h2 a,
.tp-blog-card h3 a {
  color: var(--tp-ink);
  text-decoration: none;
}

.tp-blog-featured__content > p {
  margin: 0 0 18px;
  color: var(--tp-muted);
  font-size: 15px;
  line-height: 1.7;
}

.tp-blog-card__meta,
.tp-article-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  color: var(--tp-muted);
  font-size: 12px;
}

.tp-blog-featured .tp-editorial-text-link {
  margin-top: 24px;
}

.tp-blog-list {
  padding-block: 42px 92px;
}

.tp-blog-list__header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 30px;
}

.tp-blog-list__header h2 {
  margin-bottom: 0;
}

.tp-blog-list__header > span {
  color: var(--tp-muted);
  font-size: 13px;
}

.tp-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.tp-blog-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #e0e9eb;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 6px 18px rgb(15 27 45 / 7%);
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.tp-blog-card:hover {
  border-color: #bdd9df;
  box-shadow: 0 12px 30px rgb(15 27 45 / 11%);
  transform: translateY(-2px);
}

.tp-blog-card__image {
  display: block;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background: #eaf4f6;
}

.tp-blog-card__fallback {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #29525d, var(--tp-primary));
  color: rgb(255 255 255 / 66%);
  font-size: 42px;
}

.tp-blog-card__body {
  padding: 20px;
}

.tp-blog-card h3 {
  min-height: 50px;
  margin: 13px 0 10px;
  font: 700 17px/1.45 var(--tp-heading-font, "Poppins", sans-serif);
}

.tp-blog-card__body > p {
  display: -webkit-box;
  min-height: 67px;
  overflow: hidden;
  margin: 0 0 18px;
  color: var(--tp-muted);
  font-size: 13px;
  line-height: 1.65;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.tp-blog-pagination {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 44px;
}

.tp-blog-pagination .page-numbers {
  min-width: 44px;
  height: 44px;
  display: inline-grid;
  place-items: center;
  border: 1px solid #d9e5e8;
  border-radius: 10px;
  color: var(--tp-primary-dark);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

.tp-blog-pagination .current,
.tp-blog-pagination a:hover {
  border-color: var(--tp-primary);
  background: var(--tp-primary);
  color: var(--tp-midnight);
}

.tp-blog-empty {
  display: grid;
  justify-items: center;
  border: 1px solid #dde8ea;
  border-radius: 14px;
  padding: 64px 24px;
  background: #f7fafb;
  text-align: center;
}

.tp-blog-empty > i {
  color: var(--tp-primary);
  font-size: 42px;
}

.tp-blog-empty h2 {
  margin: 18px 0 6px;
}

.tp-blog-empty p {
  margin: 0 0 22px;
  color: var(--tp-muted);
}

/* Article */

.tp-article-hero {
  padding-block: 64px 54px;
  color: #fff;
  background:
    radial-gradient(circle at 82% 12%, rgb(64 161 183 / 30%), transparent 33%),
    var(--tp-midnight);
}

.tp-article-hero__inner {
  max-width: 1120px;
}

.tp-article-breadcrumb {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 32px;
  color: rgb(255 255 255 / 58%);
  font-size: 12px;
}

.tp-article-breadcrumb a {
  color: rgb(255 255 255 / 76%);
  text-decoration: none;
}

.tp-article-breadcrumb span {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.tp-article-hero .tp-blog-card__category {
  border: 1px solid rgb(255 255 255 / 22%);
  background: rgb(255 255 255 / 12%);
  color: #fff;
}

.tp-article-hero h1 {
  max-width: 1050px;
  margin: 18px 0;
  color: #fff;
  font: 800 clamp(2.35rem, 4.7vw, 4.75rem)/1.05 var(--tp-heading-font, "Poppins", sans-serif);
  letter-spacing: -.045em;
}

.tp-article-hero__lead {
  max-width: 780px;
  margin: 0;
  color: rgb(255 255 255 / 76%);
  font-size: 17px;
  line-height: 1.68;
}

.tp-article-meta {
  gap: 18px;
  margin-top: 28px;
  color: rgb(255 255 255 / 70%);
}

.tp-article-meta > * {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.tp-article-meta i {
  color: var(--tp-cyan-soft);
}

.tp-article-cover {
  max-width: 1250px;
  margin-top: 54px;
}

.tp-article-cover img {
  width: 100%;
  max-height: 720px;
  display: block;
  border-radius: 14px;
  object-fit: cover;
  box-shadow: 0 12px 30px rgb(15 27 45 / 12%);
}

.tp-article-layout {
  max-width: 1100px;
  display: grid;
  grid-template-columns: 70px minmax(0, 780px);
  justify-content: center;
  gap: 44px;
  padding-block: 68px 84px;
}

.tp-article-share {
  position: sticky;
  top: 112px;
  align-self: start;
  display: grid;
  justify-items: center;
  gap: 10px;
}

.tp-article-share > span {
  margin-bottom: 4px;
  color: var(--tp-muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.tp-article-share a {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid #dce7e9;
  border-radius: 50%;
  color: var(--tp-primary-dark);
  text-decoration: none;
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}

.tp-article-share a:hover {
  border-color: var(--tp-primary);
  background: var(--tp-primary);
  color: var(--tp-midnight);
}

.tp-article-content {
  min-width: 0;
  color: #344e57;
  font-size: 17px;
  line-height: 1.82;
}

.tp-article-content > *:first-child {
  margin-top: 0;
}

.tp-article-content h2,
.tp-article-content h3,
.tp-article-content h4 {
  color: var(--tp-ink);
  font-family: var(--tp-heading-font, "Poppins", sans-serif);
  letter-spacing: -.02em;
}

.tp-article-content h2 {
  margin: 50px 0 16px;
  font-size: clamp(1.65rem, 2.6vw, 2.25rem);
  line-height: 1.2;
}

.tp-article-content h3 {
  margin: 38px 0 13px;
  font-size: 1.35rem;
}

.tp-article-content p,
.tp-article-content ul,
.tp-article-content ol {
  margin-block: 0 22px;
}

.tp-article-content li + li {
  margin-top: 8px;
}

.tp-article-content a {
  color: #287f93;
  text-underline-offset: 3px;
}

.tp-article-content img,
.tp-article-content figure {
  max-width: 100%;
  height: auto;
}

.tp-article-content img {
  border-radius: 12px;
}

.tp-article-content figure {
  margin: 34px 0;
}

.tp-article-content figcaption {
  margin-top: 8px;
  color: var(--tp-muted);
  font-size: 12px;
  text-align: center;
}

.tp-article-content blockquote {
  margin: 34px 0;
  border-left: 4px solid var(--tp-primary);
  border-radius: 0 12px 12px 0;
  padding: 21px 24px;
  background: #f1f8f9;
  color: var(--tp-primary-dark);
  font-size: 18px;
  font-weight: 700;
}

.tp-article-footer {
  padding-block: 44px;
  background: #f3f8f9;
}

.tp-article-footer__inner {
  max-width: 1100px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.tp-article-footer h2 {
  margin: 10px 0 0;
  font: 800 clamp(1.55rem, 2.8vw, 2.35rem)/1.15 var(--tp-heading-font, "Poppins", sans-serif);
}

.tp-related-posts {
  padding-block: 78px 92px;
}

/* Contact */

.tp-contact-hero {
  min-height: 380px;
  text-align: center;
  background:
    radial-gradient(circle at 18% 20%, rgb(64 161 183 / 38%), transparent 32%),
    radial-gradient(circle at 86% 76%, rgb(251 142 40 / 20%), transparent 26%),
    var(--tp-midnight);
}

.tp-contact-hero .tp-editorial-hero__inner {
  justify-items: center;
}

.tp-contact-main {
  padding-block: 82px;
}

.tp-contact-main__grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(440px, 1.1fr);
  gap: clamp(46px, 7vw, 96px);
  align-items: start;
}

.tp-contact-details > h2,
.tp-contact-form-card h2 {
  margin: 14px 0 14px;
  color: var(--tp-ink);
  font: 800 clamp(2rem, 3.3vw, 3.25rem)/1.1 var(--tp-heading-font, "Poppins", sans-serif);
  letter-spacing: -.035em;
}

.tp-contact-details > p,
.tp-contact-form-card header > p {
  max-width: 630px;
  margin: 0;
  color: var(--tp-muted);
  font-size: 15px;
  line-height: 1.7;
}

.tp-contact-cards {
  display: grid;
  gap: 12px;
  margin-top: 30px;
}

.tp-contact-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr) auto;
  align-items: center;
  gap: 15px;
  min-height: 94px;
  border: 1px solid #dfe9eb;
  border-radius: 14px;
  padding: 16px;
  background: #fff;
  color: var(--tp-ink) !important;
  text-decoration: none !important;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.tp-contact-card:hover {
  border-color: #abd2da;
  box-shadow: 0 12px 30px rgb(15 27 45 / 10%);
  transform: translateY(-2px);
}

.tp-contact-card__icon {
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: #e8f6f8;
  color: var(--tp-primary-dark);
  font-size: 19px;
}

.tp-contact-card > span:nth-child(2) {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.tp-contact-card small {
  color: var(--tp-primary);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.tp-contact-card strong {
  overflow-wrap: anywhere;
  color: var(--tp-ink);
  font-size: 14px;
}

.tp-contact-card em {
  color: var(--tp-muted);
  font-size: 11px;
  font-style: normal;
  line-height: 1.4;
}

.tp-contact-card > i {
  color: var(--tp-primary);
}

.tp-contact-socials {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 28px;
}

.tp-contact-socials > span {
  margin-right: 4px;
  color: var(--tp-muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.tp-contact-socials a {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: var(--tp-primary-dark);
  color: #fff;
  text-decoration: none;
  transition: background-color 180ms ease, transform 180ms ease;
}

.tp-contact-socials a:hover {
  background: var(--tp-primary);
  transform: translateY(-2px);
}

.tp-contact-form-card {
  border: 1px solid #deeaec;
  border-radius: 14px;
  padding: clamp(26px, 4vw, 44px);
  background: #f7fafb;
  box-shadow: 0 12px 30px rgb(15 27 45 / 8%);
}

.tp-contact-form-card h2 {
  font-size: clamp(1.7rem, 2.8vw, 2.45rem);
}

.tp-contact-form {
  position: relative;
  display: grid;
  gap: 17px;
  margin-top: 28px;
}

.tp-contact-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.tp-contact-form label {
  display: grid;
  gap: 7px;
}

.tp-contact-form label > span {
  color: #324e57;
  font-size: 12px;
  font-weight: 700;
}

.tp-contact-form label em {
  color: var(--tp-accent-dark);
  font-style: normal;
}

.tp-contact-form input,
.tp-contact-form select,
.tp-contact-form textarea {
  width: 100%;
  min-height: 50px;
  border: 1px solid #cfdde0;
  border-radius: 10px;
  padding: 12px 14px;
  background: #fff;
  color: var(--tp-ink);
  font: 500 14px/1.4 var(--tp-body-font, "Poppins", sans-serif);
  transition: border-color 180ms ease, box-shadow 180ms ease;
}

.tp-contact-form textarea {
  min-height: 142px;
  resize: vertical;
}

.tp-contact-form input:focus,
.tp-contact-form select:focus,
.tp-contact-form textarea:focus {
  border-color: var(--tp-primary);
  box-shadow: 0 0 0 4px rgb(64 161 183 / 14%);
  outline: 0;
}

.tp-contact-form button {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 0;
  border-radius: 10px;
  padding: 13px 20px;
  background: var(--tp-accent);
  color: var(--tp-midnight);
  cursor: pointer;
  font: 800 15px/1 var(--tp-action-font, "Lato", sans-serif);
  transition: background-color 180ms ease, box-shadow 180ms ease;
}

.tp-contact-form button:hover {
  background: var(--tp-primary-dark);
  color: #fff;
  box-shadow: 0 10px 24px rgb(27 186 202 / 25%);
}

.tp-contact-form button:disabled {
  cursor: wait;
  opacity: .68;
}

.tp-contact-form > small {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  color: var(--tp-muted);
  font-size: 11px;
  text-align: center;
}

.tp-contact-form__status {
  min-height: 20px;
  margin: 0;
  color: var(--tp-muted);
  font-size: 12px;
  font-weight: 600;
}

.tp-contact-form__status.is-error {
  color: #a33e31;
}

.tp-contact-form__status.is-success {
  border-radius: 9px;
  padding: 10px 12px;
  background: #e8f7ee;
  color: #176b3a;
}

.tp-contact-form__honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.tp-contact-map {
  padding-block: 0 84px;
}

.tp-contact-map__card {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) auto;
  align-items: center;
  gap: 22px;
  border-radius: 14px;
  padding: 28px;
  background: var(--tp-midnight);
  color: #fff;
}

.tp-contact-map__card > span {
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: rgb(64 161 183 / 18%);
  color: var(--tp-cyan-soft);
  font-size: 25px;
}

.tp-contact-map__card small {
  color: var(--tp-cyan-soft);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.tp-contact-map__card h2 {
  margin: 4px 0;
  color: #fff;
  font: 700 22px/1.3 var(--tp-heading-font, "Poppins", sans-serif);
}

.tp-contact-map__card p {
  margin: 0;
  color: rgb(255 255 255 / 68%);
  font-size: 13px;
  line-height: 1.5;
}

@media (max-width: 1100px) {
  .tp-about-story__grid,
  .tp-about-vision__inner,
  .tp-blog-featured article,
  .tp-contact-main__grid {
    grid-template-columns: 1fr;
  }

  .tp-about-story__visual {
    min-height: 500px;
  }

  .tp-about-story__visual img {
    height: 500px;
  }

  .tp-about-vision__copy {
    padding-top: 0;
  }

  .tp-about-values__grid,
  .tp-blog-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tp-about-team__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .tp-about-reasons__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .tp-blog-featured__image {
    min-height: 390px;
  }

  .tp-contact-main__grid {
    gap: 52px;
  }
}

@media (max-width: 767px) {
  .tp-editorial-shell {
    padding-inline: 18px;
  }

  .tp-editorial-hero {
    min-height: 390px;
  }

  .tp-editorial-hero__inner {
    padding-block: 54px;
  }

  .tp-editorial-hero h1 {
    max-width: 100%;
    font-size: clamp(2rem, 9.2vw, 2.8rem);
    letter-spacing: -.035em;
  }

  .tp-editorial-hero p {
    font-size: 15px;
  }

  .tp-editorial-heading {
    margin-bottom: 28px;
    text-align: left;
  }

  .tp-editorial-heading p {
    font-size: 14px;
  }

  .tp-about-story,
  .tp-about-values,
  .tp-about-team,
  .tp-about-reasons,
  .tp-about-reviews,
  .tp-contact-main {
    padding-block: 56px;
  }

  .tp-about-story__grid {
    gap: 38px;
  }

  .tp-about-story__visual {
    min-height: 370px;
  }

  .tp-about-story__visual img {
    height: 370px;
  }

  .tp-about-story__visual::before {
    top: -10px;
    left: -10px;
  }

  .tp-about-story__visual figcaption {
    right: 12px;
    bottom: 12px;
    left: 12px;
    max-width: none;
  }

  .tp-about-story__content h2 {
    font-size: 1.85rem;
  }

  .tp-about-story__content p,
  .tp-about-vision__copy p {
    font-size: 15px;
  }

  .tp-about-vision {
    padding-block: 56px;
  }

  .tp-about-vision__inner {
    gap: 28px;
  }

  .tp-about-values__grid,
  .tp-about-team__grid,
  .tp-about-reasons__grid,
  .tp-blog-grid {
    grid-template-columns: 1fr;
  }

  .tp-about-value {
    min-height: 0;
  }

  .tp-about-member,
  .tp-about-member img {
    min-height: 380px;
    height: 380px;
  }

  .tp-about-reasons__grid article {
    min-height: 100px;
    grid-template-columns: 52px minmax(0, 1fr);
    align-items: center;
    justify-items: start;
    gap: 16px;
    text-align: left;
  }

  .tp-about-reasons__grid h3 {
    margin: 0;
  }

  .tp-editorial-cta__inner,
  .tp-article-footer__inner {
    align-items: stretch;
    flex-direction: column;
  }

  .tp-editorial-cta .tp-editorial-button,
  .tp-article-footer .tp-editorial-button {
    width: 100%;
  }

  .tp-blog-search {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .tp-blog-search button {
    grid-column: 1 / -1;
    width: 100%;
  }

  .tp-blog-featured {
    padding-block: 42px 18px;
  }

  .tp-blog-featured article {
    display: block;
  }

  .tp-blog-featured__image {
    min-height: 245px;
  }

  .tp-blog-featured__content {
    padding: 24px 20px 28px;
  }

  .tp-blog-list {
    padding-block: 32px 62px;
  }

  .tp-blog-list__header {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }

  .tp-blog-card h3,
  .tp-blog-card__body > p {
    min-height: 0;
  }

  .tp-article-hero {
    padding-block: 44px;
  }

  .tp-article-hero h1 {
    font-size: clamp(2rem, 10vw, 3rem);
  }

  .tp-article-hero__lead {
    font-size: 15px;
  }

  .tp-article-breadcrumb {
    margin-bottom: 24px;
  }

  .tp-article-cover {
    margin-top: 24px;
    padding-inline: 0;
  }

  .tp-article-cover img {
    border-radius: 0;
  }

  .tp-article-layout {
    display: block;
    padding-block: 42px 58px;
  }

  .tp-article-share {
    position: static;
    display: flex;
    justify-content: flex-start;
    margin-bottom: 28px;
  }

  .tp-article-share > span {
    margin: 0 5px 0 0;
    writing-mode: initial;
    transform: none;
  }

  .tp-article-content {
    font-size: 16px;
    line-height: 1.75;
  }

  .tp-related-posts {
    padding-block: 56px 64px;
  }

  .tp-contact-main__grid {
    gap: 42px;
  }

  .tp-contact-details > h2,
  .tp-contact-form-card h2 {
    font-size: 1.85rem;
  }

  .tp-contact-form-card {
    margin-inline: -18px;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
    padding-inline: 18px;
  }

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

  .tp-contact-map {
    padding-bottom: 58px;
  }

  .tp-contact-map__card {
    grid-template-columns: 52px minmax(0, 1fr);
    padding: 22px 18px;
  }

  .tp-contact-map__card > span {
    width: 52px;
    height: 52px;
  }

  .tp-contact-map__card .tp-editorial-button {
    grid-column: 1 / -1;
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tp-editorial-button,
  .tp-editorial-text-link i,
  .tp-about-value,
  .tp-about-member img,
  .tp-blog-card,
  .tp-blog-card__image img,
  .tp-blog-featured__image img,
  .tp-contact-card,
  .tp-contact-socials a {
    transition: none;
  }
}
