/* Shared responsive layer for every file-based theme pack. */
.cms-theme {
  overflow-x: hidden;
}

.cms-theme *,
.cms-theme *::before,
.cms-theme *::after {
  box-sizing: border-box;
}

.cms-theme img,
.cms-theme video,
.cms-theme iframe,
.cms-theme embed,
.cms-theme object {
  max-width: 100%;
}

.cms-theme img,
.cms-theme svg,
.cms-theme video,
.cms-theme canvas {
  height: auto;
}

.cms-theme .section,
.cms-theme .cms-section,
.cms-theme .theme-main > section {
  max-width: 100%;
}

.cms-theme .wrap,
.cms-theme .theme-main,
.cms-theme .theme-main > *,
.cms-theme .cms-section,
.cms-theme .cms-section > *,
.cms-theme .section,
.cms-theme .section > *,
.cms-theme .intro-grid,
.cms-theme .contact-experience,
.cms-theme .executive-hero-grid,
.cms-theme .editorial-hero-grid,
.cms-theme .creative-hero-grid,
.cms-theme .conversion-grid,
.cms-theme .inner-grid,
.cms-theme .clarity-hero-grid,
.cms-theme .footer-care,
.cms-theme .footer-corporate,
.cms-theme .footer-editorial,
.cms-theme .footer-portfolio,
.cms-theme .footer-conversion,
.cms-theme .theme-cta-card,
.cms-theme .cms-public-form,
.cms-theme .form-grid,
.cms-theme .post-content,
.cms-theme .blog-grid,
.cms-theme .services-stage,
.cms-theme .mini-cards,
.cms-theme .grid,
.cms-theme .cards-grid,
.cms-theme .services-grid {
  min-width: 0;
}

.cms-theme .service-card,
.cms-theme .review-card,
.cms-theme .mini-card,
.cms-theme .blog-card,
.cms-theme .feature-card,
.cms-theme .card {
  min-width: 0;
}

.cms-theme .theme-main table,
.cms-theme .theme-main pre,
.cms-theme .theme-main code {
  max-width: 100%;
}

.cms-theme .theme-main table {
  display: block;
  width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
  -webkit-overflow-scrolling: touch;
}

.cms-theme .theme-main td,
.cms-theme .theme-main th {
  min-width: 0;
  overflow-wrap: anywhere;
}

.cms-theme .theme-main pre,
.cms-theme .theme-main code {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.cms-theme .service-card h3,
.cms-theme .review-card h3,
.cms-theme .mini-card h3,
.cms-theme .blog-card h3,
.cms-theme .theme-cta-card h2,
.cms-theme .site-footer h2,
.cms-theme .site-footer h3,
.cms-theme .section h2,
.cms-theme h1,
.cms-theme h2,
.cms-theme h3,
.cms-theme p,
.cms-theme a,
.cms-theme li {
  overflow-wrap: anywhere;
}

.cms-theme .service-image img,
.cms-theme .contact-image img,
.cms-theme .inner-grid figure img,
.cms-theme .exec-panel img,
.cms-theme .editorial-hero-grid img,
.cms-theme .creative-showcase img,
.cms-theme .conversion-card-stack img,
.cms-theme .blog-image img {
  width: 100%;
  object-fit: cover;
}

.cms-theme .theme-main :where(figure, picture, iframe, video, .media, .media-frame) {
  max-width: 100%;
}

.cms-theme .contact-form input,
.cms-theme .contact-form textarea,
.cms-theme .cms-public-form input,
.cms-theme .cms-public-form select,
.cms-theme .cms-public-form textarea,
.cms-theme .newsletter input,
.cms-theme .newsletter button {
  width: 100%;
  max-width: 100%;
}

.cms-theme .cms-public-form .form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cms-theme .cms-public-form .span-2,
.cms-theme .cms-public-form .form-field.span-2 {
  grid-column: 1 / -1;
}

.cms-theme .footer-links,
.cms-theme .newsletter,
.cms-theme .newsletter div,
.cms-theme .socials,
.cms-theme .footer-bottom {
  min-width: 0;
}

@media (max-width: 1180px) {
  .cms-theme .wrap,
  .cms-theme .theme-main .wrap,
  .cms-theme .cms-section .wrap,
  .cms-theme .section,
  .cms-theme .section.sage > *,
  .cms-theme .section.sage .intro-grid {
    width: min(100% - 32px, 1180px);
  }

  .cms-theme .hero-copy h1,
  .cms-theme .conversion-grid h1,
  .cms-theme .executive-hero-grid h1,
  .cms-theme .editorial-hero-grid h1,
  .cms-theme .creative-hero-grid h1,
  .cms-theme .clarity-hero-copy h1 {
    max-width: 100%;
  }
}

@media (max-width: 980px) {
  .cms-theme .intro-grid,
  .cms-theme .contact-experience,
  .cms-theme .inner-grid,
  .cms-theme .executive-hero-grid,
  .cms-theme .editorial-hero-grid,
  .cms-theme .creative-hero-grid,
  .cms-theme .conversion-grid,
  .cms-theme .clarity-hero-grid {
    grid-template-columns: 1fr !important;
  }

  .cms-theme .inner-grid figure,
  .cms-theme .exec-panel,
  .cms-theme .editorial-hero-grid figure,
  .cms-theme .creative-showcase,
  .cms-theme .conversion-card-stack,
  .cms-theme .contact-image,
  .cms-theme .clarity-hero-media {
    order: -1;
  }

  .cms-theme .services-stage,
  .cms-theme .mini-cards,
  .cms-theme .grid,
  .cms-theme .services-grid,
  .cms-theme .blog-grid,
  .cms-theme .cards-grid,
  .cms-theme .related-posts {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .cms-theme .service-image {
    grid-row: auto !important;
    grid-column: auto !important;
    min-height: 340px;
  }

  .cms-theme .theme-cta-card,
  .cms-theme .footer-care,
  .cms-theme .footer-corporate,
  .cms-theme .footer-editorial,
  .cms-theme .footer-portfolio,
  .cms-theme .footer-conversion {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 760px) {
  .cms-theme .site-header {
    position: sticky;
  }

  .cms-theme .nav-shell {
    width: min(100% - 20px, 1180px);
    gap: 10px;
  }

  .cms-theme .brand {
    min-width: 0;
  }

  .cms-theme .brand-copy {
    min-width: 0;
  }

  .cms-theme .brand-copy strong {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 52vw;
  }

  .cms-theme .main-menu {
    max-height: calc(100dvh - 96px);
    overflow: auto;
    overscroll-behavior: contain;
  }

  .cms-theme .hero-cinematic {
    min-height: 620px;
    padding-top: 52px;
  }

  .cms-theme .hero-copy h1,
  .cms-theme .inner-grid h1,
  .cms-theme .conversion-grid h1,
  .cms-theme .executive-hero-grid h1,
  .cms-theme .editorial-hero-grid h1,
  .cms-theme .creative-hero-grid h1,
  .cms-theme .clarity-hero-copy h1,
  .cms-theme .section h2,
  .cms-theme .section-heading h2,
  .cms-theme .theme-cta-card h2,
  .cms-theme .site-footer h2 {
    font-size: clamp(34px, 10vw, 50px) !important;
    line-height: 1.08;
  }

  .cms-theme .hero-copy p,
  .cms-theme .inner-grid p,
  .cms-theme .clarity-hero-copy p,
  .cms-theme .section p,
  .cms-theme .section li {
    font-size: 16px;
  }

  .cms-theme .hero-actions,
  .cms-theme .theme-cta-card {
    align-items: stretch;
  }

  .cms-theme .hero-actions .btn,
  .cms-theme .theme-cta-card .btn {
    width: 100%;
  }

  .cms-theme .services-stage,
  .cms-theme .mini-cards,
  .cms-theme .grid,
  .cms-theme .services-grid,
  .cms-theme .blog-grid,
  .cms-theme .cards-grid,
  .cms-theme .form-grid,
  .cms-theme .contact-row,
  .cms-theme .related-posts,
  .cms-theme .cms-public-form .form-grid {
    grid-template-columns: 1fr !important;
  }

  .cms-theme .cms-public-form {
    padding: clamp(18px, 6vw, 28px);
  }

  .cms-theme .newsletter div {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px;
  }

  .cms-theme .newsletter input,
  .cms-theme .newsletter button {
    border-radius: 14px !important;
  }

  .cms-theme .stat-bubbles {
    height: auto !important;
    min-height: 0 !important;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }

  .cms-theme .bubble {
    position: static !important;
    width: auto !important;
    height: auto !important;
    min-height: 160px;
  }

  .cms-theme .bubble strong {
    font-size: clamp(34px, 12vw, 46px) !important;
  }

  .cms-theme .value-strip {
    grid-template-columns: 1fr !important;
  }

  .cms-theme .value-strip div {
    border-right: 0 !important;
    border-bottom: 1px solid color-mix(in srgb, var(--t-primary) 14%, transparent);
  }

  .cms-theme .value-strip div:last-child {
    border-bottom: 0;
  }

  .cms-theme .review-grid {
    columns: 1 !important;
  }

  .cms-theme .contact-image img,
  .cms-theme .service-image img,
  .cms-theme .inner-grid figure img,
  .cms-theme .exec-panel img,
  .cms-theme .editorial-hero-grid img,
  .cms-theme .creative-showcase img,
  .cms-theme .conversion-card-stack img,
  .cms-theme .clarity-hero-media img {
    height: 320px !important;
  }

  .cms-theme .socials {
    flex-wrap: wrap;
  }

  .cms-theme .footer-bottom {
    flex-direction: column;
  }
}

@media (max-width: 460px) {
  .cms-theme .wrap,
  .cms-theme .theme-main .wrap,
  .cms-theme .cms-section .wrap,
  .cms-theme .section,
  .cms-theme .section.sage > *,
  .cms-theme .section.sage .intro-grid {
    width: min(100% - 24px, 1180px);
  }

  .cms-theme .nav-shell {
    width: min(100% - 14px, 1180px);
  }

  .cms-theme .brand-copy small {
    display: none;
  }

  .cms-theme .stat-bubbles {
    grid-template-columns: 1fr;
  }

  .cms-theme .btn,
  .cms-theme .nav-cta,
  .cms-theme .newsletter button {
    white-space: normal;
  }

  .cms-theme .cms-public-form {
    padding-inline: 14px;
  }

  .cms-theme .contact-image img,
  .cms-theme .service-image img,
  .cms-theme .inner-grid figure img,
  .cms-theme .exec-panel img,
  .cms-theme .editorial-hero-grid img,
  .cms-theme .creative-showcase img,
  .cms-theme .conversion-card-stack img,
  .cms-theme .clarity-hero-media img {
    height: 260px !important;
  }
}
