/* Image-led page system. The approved homepage hero remains in site.css. */
:root {
  --studio-ink: #06243f;
  --studio-copy: #344d61;
  --studio-line: #dbe5ed;
  --studio-surface: #f4f7fa;
}
.site-header .main-nav > a,
.site-header .main-nav > a > span {
  color: #05213a;
  font-weight: 700;
}
.site-header .main-nav > a[aria-current="page"],
.site-header .main-nav > a[aria-current="page"] > span {
  color: #075cde;
}
.site-header .main-nav > .nav-contact,
.site-header .main-nav > .nav-contact > span {
  color: #fff;
}
.site-header .main-nav > .nav-home {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  min-height: 42px;
  padding: 10px;
}
.nav-home > svg {
  width: 19px;
  height: 19px;
  stroke-width: 1.8;
}
.nav-home > span {
  display: none;
}
.breadcrumbs {
  padding-top: 22px;
}
.studio-label {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.76rem;
  line-height: 1.5;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.065em;
  color: var(--navy);
  margin-bottom: 15px;
}
.studio-label > span {
  width: 7px;
  height: 7px;
  flex: none;
  border: 1px solid var(--cyan);
  background: var(--cyan);
  transform: rotate(45deg);
}
.studio-title {
  font-size: clamp(2.25rem, 4.2vw, 3.8rem);
  line-height: 1.1;
  letter-spacing: -0.057em;
  font-weight: 700;
  color: var(--studio-ink);
}
.studio-title > span {
  display: block;
}
.studio-photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.action {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 21px;
  min-height: 48px;
  padding: 13px 21px;
  border: 1px solid #075cde;
  border-radius: 9px;
  background: #075cde;
  color: #fff;
  font-size: 0.88rem;
  line-height: 1.4;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 6px 15px #075cde13;
  transition:
    background 0.22s,
    transform 0.22s,
    box-shadow 0.22s;
}
.action svg {
  width: 18px;
  height: 18px;
  transition: transform 0.22s;
}
.action:hover {
  background: #004bbd;
  transform: translateY(-2px);
  box-shadow: 0 8px 21px #075cde25;
}
.action:hover svg {
  transform: translateX(3px);
}
.action-secondary {
  background: #fff;
  color: var(--studio-ink);
  border-color: #bdccd8;
  box-shadow: none;
}
.action-secondary:hover {
  background: #f0f6fc;
  border-color: #83b6e9;
  box-shadow: none;
}
.studio-section-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 20px 45px;
  margin-bottom: 27px;
}
.studio-section-heading > .studio-label {
  width: 100%;
  margin-bottom: -8px;
}
.studio-section-heading h2,
.studio-cta h2 {
  font-size: clamp(1.7rem, 2.8vw, 2.65rem);
  line-height: 1.16;
  letter-spacing: -0.045em;
  max-width: 660px;
}
.media-zoom {
  overflow: hidden;
  isolation: isolate;
  position: relative;
}
.media-zoom > img {
  transition: transform 0.85s cubic-bezier(0.2, 0.7, 0.2, 1);
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .media-zoom:hover > img {
    transform: scale(1.035);
  }
}
.image-note {
  position: absolute;
  bottom: 22px;
  left: 22px;
  right: 22px;
  padding: 15px 18px;
  display: flex;
  gap: 13px;
  align-items: center;
  width: fit-content;
  max-width: calc(100% - 44px);
  background: #fff;
  border: 1px solid #dce6ee;
  color: var(--studio-ink);
  box-shadow: 0 8px 25px #001b3510;
  border-radius: 10px;
  font-size: 0.83rem;
  font-weight: 700;
}
.image-note svg {
  width: 22px;
  height: 22px;
  color: var(--blue);
}
.home-studio {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 54px;
  padding-block: 54px;
  align-items: center;
}
.home-studio-image {
  align-self: stretch;
  min-height: 480px;
  border-radius: 18px;
}
.home-studio-image > img {
  position: absolute;
  inset: 0;
  object-position: 55% 50%;
}
.home-studio-copy h2 {
  font-size: clamp(1.9rem, 3vw, 2.8rem);
  line-height: 1.17;
  letter-spacing: -0.045em;
  max-width: 500px;
}
.home-studio-copy > p:not(.studio-label) {
  color: var(--studio-copy);
  margin-top: 19px;
  font-size: 1rem;
  max-width: 500px;
}
.home-studio-copy > .action {
  margin-top: 24px;
}
.capability-links {
  margin-top: 23px;
  display: grid;
  gap: 9px;
}
.capability-links > a {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 16px 18px;
  border: 1px solid var(--studio-line);
  border-radius: 10px;
  color: var(--studio-ink);
  transition:
    border-color 0.25s,
    background 0.25s,
    transform 0.25s;
}
.capability-links > a:hover {
  border-color: #8cbae1;
  background: #f5f9ff;
  transform: translateX(4px);
}
.capability-symbol {
  width: 38px;
  height: 38px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  background: #eaf3ff;
  color: #075cde;
  flex: none;
}
.capability-symbol svg {
  width: 22px;
  height: 22px;
}
.capability-links > a > svg {
  margin-left: auto;
  width: 19px;
}
.capability-links strong {
  display: block;
  font-size: 1.02rem;
  letter-spacing: -0.025em;
}
.capability-links small {
  display: block;
  font-size: 0.82rem;
  color: var(--studio-copy);
  margin-top: 2px;
}
.home-product-section {
  padding: 34px;
  background: var(--studio-surface);
  border-radius: 20px;
  margin-block: 5px 50px;
}
.home-product-section .studio-section-heading h2 {
  max-width: 590px;
}
.product-deck {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.deck-product {
  background: #fff;
  border: 1px solid #dce5ec;
  border-radius: 13px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition:
    box-shadow 0.3s,
    transform 0.3s;
}
.deck-product:hover,
.deck-product:focus-within {
  transform: translateY(-5px);
  box-shadow: 0 17px 30px #001c350c;
}
.deck-logo {
  height: 132px;
  display: grid;
  place-items: center;
  padding: 28px;
  background: var(--product-bg);
}
.deck-logo img {
  max-width: 235px;
  width: 100%;
  max-height: 77px;
  height: auto;
  object-fit: contain;
}
.deck-content {
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.deck-category {
  color: var(--product-ink);
  font-size: 0.72rem;
  line-height: 1.5;
  font-weight: 700;
  margin-bottom: 13px;
}
.deck-content h3 {
  font-size: 1.45rem;
  letter-spacing: -0.04em;
  line-height: 1.22;
}
.deck-content p {
  font-size: 1rem;
  line-height: 1.65;
  margin-block: 15px 22px;
  color: var(--studio-copy);
}
.deck-content .action {
  margin-top: auto;
  width: 100%;
  font-size: 0.84rem;
}
.studio-process {
  padding-block: 8px 48px;
}
.process-track {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
  padding-top: 12px;
}
.process-track li {
  position: relative;
  padding: 0 12px 0 0;
}
.process-track li:not(:last-child)::after {
  content: "";
  height: 1px;
  background: #b9d1e5;
  left: 57px;
  right: 0;
  top: 22px;
  position: absolute;
}
.process-number {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid #aaccec;
  border-radius: 50%;
  color: #075cde;
  font-size: 0.84rem;
  font-weight: 700;
  background: #f5f9ff;
  margin-bottom: 18px;
}
.process-track h3 {
  font-size: 1.2rem;
  margin-bottom: 10px;
}
.process-track p {
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--studio-copy);
}
.studio-cta {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
  align-items: center;
  gap: 35px;
  border: 1px solid #d8e6f0;
  border-radius: 16px;
  padding: 31px 35px;
  margin-block: 20px 48px;
  background: #f5f9fd;
}
.studio-cta .studio-label {
  margin-bottom: 10px;
}
.studio-cta h2 {
  font-size: clamp(1.6rem, 2.5vw, 2.2rem);
  max-width: 630px;
}
.studio-cta p:not(.studio-label) {
  font-size: 0.97rem;
  margin-top: 14px;
  max-width: 640px;
  color: var(--studio-copy);
}
.cta-actions {
  justify-self: end;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.cta-phone {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 32px;
  font-size: 0.86rem;
  font-weight: 700;
}
.cta-phone svg {
  width: 17px;
  height: 17px;
  color: var(--blue);
}
.studio-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 48px;
  padding-block: 28px 35px;
}
.studio-hero-copy > p:not(.studio-label),
.saas-studio-hero > div > p:not(.studio-label),
.ai-stage-copy > p:not(.studio-label),
.cloud-studio-hero > div > p:not(.studio-label),
.about-studio-heading > p:not(.studio-label),
.studio-contact-intro > p:not(.studio-label) {
  font-size: 1.02rem;
  line-height: 1.75;
  color: var(--studio-copy);
  margin-block: 22px 25px;
  max-width: 610px;
}
.studio-hero-media {
  height: 420px;
  border-radius: 18px;
}
.service-shortcuts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-block: 0 30px;
}
.service-shortcuts a {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--studio-line);
  border-radius: 8px;
  padding: 15px;
  font-size: 0.8rem;
  line-height: 1.5;
  font-weight: 700;
  transition:
    border-color 0.2s,
    background 0.2s;
}
.service-shortcuts a:hover {
  border-color: #7eade2;
  background: #f3f8ff;
}
.service-shortcuts a > span {
  color: var(--blue);
  font-size: 0.72rem;
}
.service-shortcuts svg {
  margin-left: auto;
  width: 16px;
  height: 16px;
}
.studio-services {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  padding-block: 0 45px;
}
.service-sheet {
  padding: 30px;
  border: 1px solid var(--studio-line);
  border-radius: 13px;
  background: #fff;
  display: flex;
  flex-direction: column;
  align-items: start;
}
.service-sheet:nth-child(2),
.service-sheet:nth-child(3) {
  background: #f7fafc;
}
.service-sheet-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin-bottom: 20px;
}
.service-icon {
  background: #e7f2ff;
  color: var(--blue);
  border-radius: 10px;
  width: 43px;
  height: 43px;
  display: grid;
  place-items: center;
}
.service-icon svg {
  width: 23px;
  height: 23px;
}
.sheet-index {
  color: #71879b;
  font-size: 0.75rem;
}
.service-sheet h2 {
  font-size: 1.65rem;
  line-height: 1.2;
  letter-spacing: -0.035em;
}
.service-sheet > p {
  color: var(--studio-copy);
  font-size: 1rem;
  margin-top: 15px;
}
.service-sheet ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 11px 18px;
  margin-block: 22px 25px;
}
.service-sheet li {
  display: flex;
  gap: 9px;
  font-size: 0.86rem;
  line-height: 1.5;
  color: var(--studio-ink);
}
.service-sheet li svg {
  color: var(--blue);
  width: 15px;
  height: 18px;
}
.service-sheet > .action {
  margin-top: auto;
}
.engagement-studio {
  padding-block: 12px 35px;
}
.engagement-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 25px;
}
.engagement-cards article {
  border-left: 2px solid #a6d1f5;
  padding: 8px 0 8px 23px;
}
.engagement-cards article > span {
  color: #075cde;
  font-size: 0.73rem;
}
.engagement-cards h3 {
  font-size: 1.25rem;
  margin: 11px 0;
}
.engagement-cards p {
  font-size: 0.96rem;
  color: var(--studio-copy);
}
.saas-studio-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.9fr);
  align-items: center;
  gap: 70px;
  padding-block: 30px 40px;
}
.saas-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}
.saas-pills a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 44px;
  padding: 11px 15px;
  border: 1px solid #bfd1df;
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 700;
  background: #fff;
}
.saas-pills a:hover {
  background: #edf5ff;
}
.saas-pills span {
  color: var(--blue);
}
.saas-brand-stack {
  padding: 25px;
  background: #f3f7fb;
  border-radius: 18px;
  display: grid;
  gap: 13px;
}
.brand-stack-item {
  min-height: 92px;
  display: flex;
  align-items: center;
  gap: 25px;
  justify-content: space-between;
  padding: 21px 24px;
  border: 1px solid #dce7ef;
  background: #fff;
  border-radius: 12px;
  transition:
    transform 0.25s,
    border-color 0.25s;
}
.brand-stack-item:hover {
  transform: translateX(5px);
  border-color: #93bdf0;
}
.brand-stack-item img {
  width: 225px;
  max-height: 64px;
  object-fit: contain;
  object-position: left;
  height: auto;
}
.brand-stack-item > svg {
  width: 18px;
  color: var(--product-ink);
}
.saas-brand-stack > span {
  color: var(--studio-copy);
  text-align: center;
  font-size: 0.75rem;
  margin-top: 5px;
}
.studio-portfolio {
  display: grid;
  gap: 24px;
}
.product-story {
  display: grid;
  grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.4fr);
  border: 1px solid #dce5ec;
  border-radius: 16px;
  overflow: hidden;
}
.product-story-brand {
  background: var(--product-bg);
  padding: 28px 32px;
  display: flex;
  flex-direction: column;
  gap: 27px;
  justify-content: space-between;
  min-height: 310px;
}
.product-story-brand > span {
  font-size: 0.7rem;
  color: var(--product-ink);
  letter-spacing: 0.06em;
}
.product-story-brand > img {
  width: 100%;
  max-width: 300px;
  max-height: 105px;
  object-fit: contain;
  height: auto;
  margin-block: 7px;
}
.product-story-brand > p {
  font-size: 0.79rem;
  color: var(--product-ink);
  font-weight: 700;
}
.product-story-copy {
  padding: 32px 36px;
}
.product-story-copy h2 {
  font-size: 1.9rem;
  letter-spacing: -0.04em;
  line-height: 1.2;
}
.product-story-copy > p {
  font-size: 1rem;
  color: var(--studio-copy);
  margin-top: 14px;
}
.product-story-copy ul {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin-block: 20px 24px;
}
.product-story-copy li {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 0.82rem;
  line-height: 1.5;
}
.product-story-copy li svg {
  width: 15px;
  height: 15px;
  color: var(--product-ink);
}
.story-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.story-actions .action {
  font-size: 0.8rem;
  padding: 12px 17px;
  min-height: 45px;
}
.build-studio {
  padding-block: 42px 25px;
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr);
  gap: 45px;
  align-items: center;
}
.build-studio-image {
  height: 285px;
  border-radius: 14px;
}
.build-studio h2 {
  font-size: 2rem;
  line-height: 1.2;
  letter-spacing: -0.04em;
}
.build-studio p:not(.studio-label) {
  margin-block: 17px 23px;
  font-size: 1rem;
  color: var(--studio-copy);
}
.ai-studio-stage {
  position: relative;
  margin-top: 30px;
  margin-bottom: 25px;
  min-height: 460px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
}
.ai-stage-art {
  position: absolute;
  inset: 0 0 0 43%;
  overflow: hidden;
  border-radius: 18px;
}
.ai-stage-art > img {
  object-position: 60% center;
}
.ai-stage-copy {
  position: relative;
  z-index: 1;
  padding: 28px 35px 28px 0;
  background: #fff;
  margin-block: 25px;
  border-radius: 0 16px 16px 0;
  box-shadow: 18px 0 30px #00213e06;
}
.ai-stage-copy .studio-title {
  font-size: clamp(2.2rem, 3.9vw, 3.6rem);
}
.pipeline-studio {
  border: 1px solid var(--studio-line);
  border-radius: 13px;
  padding: 22px 28px;
  margin-bottom: 42px;
}
.pipeline-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #075cde;
  font-size: 0.8rem;
  font-weight: 700;
  margin-bottom: 22px;
}
.pipeline-heading > svg {
  width: 20px;
  height: 20px;
}
.pipeline-studio ol {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}
.pipeline-studio li {
  display: flex;
  align-items: start;
  gap: 12px;
}
.pipeline-dot {
  width: 29px;
  height: 29px;
  display: grid;
  place-items: center;
  color: #075cde;
  border: 1px solid #a6cbed;
  border-radius: 50%;
  font-size: 0.68rem;
  flex: none;
  background: #edf6ff;
}
.pipeline-studio h2 {
  font-size: 0.95rem;
  line-height: 1.4;
  letter-spacing: -0.02em;
}
.pipeline-studio li p {
  font-size: 0.8rem;
  margin-top: 4px;
}
.studio-faq {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.3fr);
  gap: 55px;
  padding-block: 8px 38px;
}
.studio-faq h2 {
  font-size: 2rem;
  line-height: 1.2;
  letter-spacing: -0.04em;
}
.studio-faq > div > p:not(.studio-label) {
  font-size: 1rem;
  margin-block: 17px 22px;
  color: var(--studio-copy);
}
.studio-faq .usecases {
  grid-column: auto;
  grid-row: auto;
  border-top: 0;
  display: grid;
  gap: 10px;
  align-content: start;
}
.studio-faq .usecases details {
  border: 1px solid var(--studio-line);
  border-radius: 10px;
  overflow: hidden;
}
.studio-faq .usecases summary {
  padding: 18px 20px;
}
.studio-faq .usecases .faq-question {
  font-size: 0.97rem;
  color: var(--studio-ink);
}
.studio-faq .usecases details[open] {
  border-color: #aacced;
  background: #f7fbff;
}
.studio-faq .usecase-content {
  padding: 0 20px 22px;
}
.studio-faq .faq-icon {
  width: 28px;
  height: 28px;
}
.trust-studio {
  padding-block: 15px 28px;
}
.trust-studio > h2 {
  font-size: 1.7rem;
  letter-spacing: -0.03em;
  margin-bottom: 23px;
}
.trust-studio > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.trust-studio article {
  border: 1px solid var(--studio-line);
  border-radius: 11px;
  padding: 24px;
}
.trust-studio article > span {
  color: #075cde;
  display: block;
  margin-bottom: 17px;
}
.trust-studio h3 {
  font-size: 1.13rem;
  margin-bottom: 12px;
}
.trust-studio p {
  font-size: 0.96rem;
  color: var(--studio-copy);
}
.cloud-studio-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr);
  gap: 50px;
  align-items: center;
  padding-block: 20px 30px;
}
.cloud-stage-image {
  position: relative;
  max-height: 470px;
  overflow: hidden;
  background: #f5f9fd;
  border-radius: 18px;
}
.cloud-stage-image > img {
  width: 100%;
  height: auto;
  mix-blend-mode: multiply;
}
.cloud-image-label {
  position: absolute;
  bottom: 23px;
  left: 28px;
  font-size: 0.69rem;
  letter-spacing: 0.08em;
  color: var(--studio-copy);
}
.cloud-mini-tags {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 15px;
  margin-top: 25px;
}
.cloud-mini-tags li {
  font-size: 0.8rem;
  display: flex;
  align-items: start;
  gap: 7px;
}
.cloud-mini-tags svg {
  width: 15px;
  height: 19px;
  color: #075cde;
}
.architecture-studio {
  padding-block: 10px 35px;
}
.architecture-studio .studio-section-heading {
  margin-bottom: 23px;
}
.architecture-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.architecture-cards article {
  border: 1px solid var(--studio-line);
  border-radius: 12px;
  padding: 23px;
  background: #f7fafd;
}
.architecture-cards article > span {
  font-size: 0.74rem;
  color: var(--blue);
}
.architecture-cards h2 {
  font-size: 1.3rem;
  line-height: 1.3;
  letter-spacing: -0.03em;
  margin-block: 13px 10px;
}
.architecture-cards p {
  font-size: 0.88rem;
  color: var(--studio-copy);
}
.cloud-detail-studio {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 50px;
  padding-block: 10px 25px;
  align-items: center;
}
.cloud-detail-intro h2 {
  font-size: 2.05rem;
  line-height: 1.2;
  margin-bottom: 23px;
}
.cloud-detail-intro > img {
  height: 225px;
  border-radius: 12px;
}
.cloud-detail-studio > div:last-child {
  border-top: 1px solid var(--studio-line);
}
.cloud-detail-studio article {
  padding-block: 21px;
  border-bottom: 1px solid var(--studio-line);
}
.cloud-detail-studio article > span {
  color: var(--blue);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.cloud-detail-studio h3 {
  font-size: 1.2rem;
  margin-block: 9px 8px;
}
.cloud-detail-studio article p {
  font-size: 0.96rem;
  color: var(--studio-copy);
}
.about-studio {
  padding-block: 28px 38px;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  align-items: center;
  gap: 50px;
}
.about-studio-image {
  height: 425px;
  border-radius: 18px;
}
.manifesto-studio {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 55px;
  border: 1px solid var(--studio-line);
  border-radius: 16px;
  padding: 30px 35px;
  background: #f6f9fc;
  margin-bottom: 40px;
}
.manifesto-studio h2 {
  font-size: 2rem;
  line-height: 1.23;
  letter-spacing: -0.04em;
}
.manifesto-studio p:not(.studio-label) {
  font-size: 1rem;
  color: var(--studio-copy);
}
.about-product-brands {
  display: flex;
  gap: 15px;
  align-items: center;
  margin-block: 20px;
}
.about-product-brands a {
  width: 33.333%;
  min-width: 0;
  padding: 12px;
  background: #fff;
  border: 1px solid #e0e9f0;
  border-radius: 7px;
}
.about-product-brands img {
  height: 32px;
  width: 100%;
  object-fit: contain;
}
.values-studio {
  padding-block: 2px 28px;
}
.values-studio > div:last-child {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
}
.values-studio article {
  border-top: 2px solid #97c7f0;
  padding-top: 20px;
}
.values-studio article > span {
  font-size: 0.75rem;
  color: var(--blue);
}
.values-studio h3 {
  font-size: 1.2rem;
  margin-block: 15px 11px;
}
.values-studio p {
  font-size: 0.96rem;
  color: var(--studio-copy);
}
.studio-contact {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 55px;
  padding-block: 28px 50px;
}
.studio-contact-intro .studio-title {
  font-size: clamp(2.3rem, 4.2vw, 3.8rem);
}
.contact-photo {
  height: 175px;
  overflow: hidden;
  border-radius: 12px;
  margin-bottom: 20px;
}
.contact-photo > img {
  object-position: 50% 55%;
}
.contact-methods {
  display: grid;
  gap: 9px;
}
.contact-methods > a,
.contact-methods > div {
  display: flex;
  gap: 14px;
  align-items: center;
  padding: 13px 16px;
  border: 1px solid var(--studio-line);
  border-radius: 9px;
  background: #fff;
}
.contact-methods > a:hover {
  background: #f3f8ff;
  border-color: #9dbfe4;
}
.contact-methods > a > svg:first-child,
.contact-methods > div > svg {
  color: var(--blue);
  width: 22px;
  height: 22px;
}
.contact-methods > a > svg:last-child {
  margin-left: auto;
  width: 17px;
}
.contact-methods small {
  display: block;
  font-size: 0.73rem;
  color: #50677a;
  margin-bottom: 2px;
}
.contact-methods strong {
  font-size: 0.96rem;
}
.contact-methods address {
  font-size: 0.84rem;
  line-height: 1.6;
  font-style: normal;
  color: var(--studio-ink);
}
.contact-methods address strong {
  font-size: inherit;
  font-weight: 800;
}
.studio-contact .form-panel {
  padding: 30px;
  border: 1px solid var(--studio-line);
  border-radius: 15px;
  background: #f7fafd;
  align-self: start;
}
.studio-contact .form-panel > h2 {
  font-size: 1.45rem;
}
.studio-contact #contact-form {
  gap: 19px;
}
.studio-contact #contact-form .button {
  box-shadow: 0 6px 15px #075cde17;
}
.studio-contact .form-note {
  font-size: 0.78rem;
  line-height: 1.6;
}
.form-security {
  display: grid;
  gap: 11px;
  padding: 16px 18px;
  border: 1px solid #dce7ef;
  border-radius: 12px;
  background: #fff;
}
.form-security-label {
  color: #173b57;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.form-security-widget {
  min-height: 65px;
  max-width: 100%;
}
.form-security-unavailable {
  margin: 0;
  color: #526b7e;
  font-size: 0.82rem;
  line-height: 1.55;
}
.form-security-unavailable[hidden] {
  display: none;
}
.form-security-unavailable a {
  color: #075cde;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.studio-contact #contact-form .button:disabled {
  cursor: not-allowed;
  opacity: 0.52;
  box-shadow: none;
}
.page-privacy .legal-hero .display,
.page-cookies .legal-hero .display {
  font-size: clamp(2.2rem, 4vw, 3.4rem);
}
.legal-body {
  max-width: 1170px;
}
.legal-content section {
  background: #f8fafc;
  border: 1px solid #dce6ee;
  border-radius: 10px;
  padding: 24px;
  margin-bottom: 16px;
}
.legal-content h2 {
  font-size: 1.3rem;
}
.legal-content p {
  margin-top: 15px;
  color: var(--studio-copy);
}
.legal-content .small-label {
  font-size: 0.7rem;
}
.legal-toc a {
  color: var(--studio-ink);
}
/* One concise navy footer, with a strong brand line and readable legal details. */
.site-footer.studio-footer {
  background: #061b2e;
  color: #fff;
  border: 0;
  padding: 32px 0 0;
}
.studio-footer-top {
  display: flex;
  align-items: center;
  gap: 35px;
  border-bottom: 1px solid #284053;
  padding-bottom: 27px;
}
.footer-brand {
  display: flex;
  align-items: center;
  background: #fff;
  width: 240px;
  height: 73px;
  padding: 0 10px;
  overflow: hidden;
  border-radius: 8px;
  flex: none;
}
.footer-brand > img {
  width: 100%;
  height: auto;
}
.studio-footer-top > p {
  color: #e2eef8;
  font-size: 0.94rem;
  margin-right: auto;
}
.studio-social {
  display: flex;
  gap: 9px;
}
.studio-social a {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid #526c80;
  border-radius: 9px;
  color: #fff;
  transition: background 0.2s;
}
.studio-social a:hover {
  background: #075cde;
}
.studio-social svg {
  width: 18px;
  height: 18px;
}
.studio-footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.3fr) minmax(0, 0.85fr);
  gap: 55px;
  padding-block: 28px;
}
.studio-footer-grid > div > span,
.studio-footer-grid > nav > span {
  display: block;
  color: #9eb7cc;
  font-size: 0.73rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 14px;
}
.footer-contact-block > a {
  display: flex;
  align-items: center;
  gap: 13px;
  width: fit-content;
  font-size: 1.03rem;
  font-weight: 700;
  color: #fff;
  min-height: 34px;
}
.footer-contact-block > a > svg {
  width: 17px;
}
.studio-footer-grid > nav > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 18px;
}
.studio-footer-grid > nav a {
  color: #e2edf6;
  font-size: 0.85rem;
  min-height: 24px;
}
.footer-product-links > a {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #e2edf6;
  min-height: 33px;
  font-size: 0.86rem;
}
.footer-product-links > a > i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--product-accent);
}
.footer-product-links > a > svg {
  width: 14px;
  margin-left: auto;
}
.studio-company {
  border-top: 1px solid #284053;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 45px;
  padding-block: 21px;
  font-size: 0.73rem;
  line-height: 1.85;
  color: #c3d4e3;
}
.studio-company strong {
  color: #fff;
  display: block;
  font-size: 0.82rem;
  margin-bottom: 3px;
}
.studio-company address {
  font-style: normal;
}
.studio-company > p {
  color: #c3d4e3;
}
.studio-company a {
  text-decoration: underline;
  text-decoration-color: #5e7a90;
  text-underline-offset: 3px;
}
.studio-footer-bottom {
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
  border-top: 1px solid #284053;
  padding-block: 17px;
  font-size: 0.7rem;
  color: #bfd2e2;
}
.studio-footer-bottom > span {
  margin-right: auto;
}
.studio-footer-bottom > div,
.studio-footer-bottom > nav {
  display: flex;
  align-items: center;
  gap: 15px;
}
.studio-footer-bottom a {
  min-height: 30px;
  display: inline-flex;
  align-items: center;
}
.studio-footer-bottom a[aria-current] {
  color: #fff;
  font-weight: 700;
}
.footer-up {
  justify-content: center;
  border: 1px solid #526c80;
  width: 31px;
  height: 31px;
  border-radius: 6px;
  font-size: 1.05rem;
}
.studio-footer :focus-visible {
  outline-color: #65dbff;
}
.studio-footer a:hover {
  color: #72daff;
}
@media (max-width: 1280px) {
  .site-header .main-nav > .nav-home {
    width: auto;
    display: flex;
    justify-content: flex-start;
    gap: 15px;
    padding: 20px 0;
  }
  .nav-home > span {
    display: inline;
  }
  .site-header .main-nav > .nav-contact {
    grid-column: 1 / -1;
  }
  .home-studio {
    gap: 35px;
  }
  .studio-title {
    font-size: clamp(2.15rem, 4.3vw, 3.5rem);
  }
  .studio-hero {
    gap: 35px;
  }
  .service-shortcuts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .saas-studio-hero {
    gap: 35px;
  }
  .product-story-copy {
    padding: 28px;
  }
  .studio-footer-grid {
    gap: 35px;
  }
}
@media (max-width: 960px) {
  .home-studio {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr);
    gap: 28px;
  }
  .home-studio-image {
    min-height: 460px;
  }
  .home-studio-copy h2 {
    font-size: 2rem;
  }
  .capability-links > a {
    padding: 13px;
    gap: 10px;
  }
  .capability-links small {
    font-size: 0.75rem;
  }
  .capability-symbol {
    width: 32px;
    height: 32px;
  }
  .home-product-section {
    padding: 26px;
  }
  .product-deck {
    gap: 14px;
  }
  .deck-content {
    padding: 20px;
  }
  .deck-content h3 {
    font-size: 1.3rem;
  }
  .deck-logo {
    height: 115px;
    padding: 20px;
  }
  .studio-hero-media {
    height: 390px;
  }
  .service-sheet {
    padding: 25px;
  }
  .service-sheet ul {
    grid-template-columns: 1fr;
  }
  .process-track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 40px;
  }
  .process-track li:nth-child(2)::after {
    display: none;
  }
  .saas-studio-hero {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
    gap: 28px;
  }
  .saas-brand-stack {
    padding: 18px;
  }
  .brand-stack-item {
    padding: 18px;
    min-height: 87px;
  }
  .brand-stack-item img {
    max-width: 210px;
    width: calc(100% - 25px);
  }
  .product-story {
    grid-template-columns: minmax(0, 0.65fr) minmax(0, 1fr);
  }
  .product-story-brand {
    padding: 25px;
  }
  .product-story-copy h2 {
    font-size: 1.6rem;
  }
  .pipeline-studio ol {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
  }
  .studio-faq {
    gap: 30px;
  }
  .cloud-studio-hero {
    gap: 28px;
  }
  .cloud-mini-tags {
    grid-template-columns: 1fr;
    gap: 7px;
  }
  .about-studio {
    gap: 30px;
  }
  .about-studio-image {
    height: 400px;
  }
  .values-studio > div:last-child {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 25px 40px;
  }
  .manifesto-studio {
    gap: 30px;
  }
  .studio-contact {
    gap: 30px;
  }
  .studio-contact .form-panel {
    padding: 25px;
  }
  .studio-contact .field-row {
    grid-template-columns: 1fr;
    gap: 19px;
  }
  .studio-footer-top {
    gap: 25px;
  }
  .footer-brand {
    width: 220px;
    height: 67px;
  }
  .studio-footer-grid {
    grid-template-columns: 1fr 1.1fr;
    gap: 28px 35px;
  }
  .footer-product-links {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
  }
  .studio-footer-grid .footer-product-links > span {
    margin: 0;
  }
  .footer-product-links > a {
    flex: 1;
    gap: 9px;
  }
}
@media (max-width: 720px) {
  .studio-title,
  .ai-stage-copy .studio-title,
  .studio-contact-intro .studio-title {
    font-size: clamp(2rem, 6.3vw, 2.8rem);
    letter-spacing: -0.05em;
  }
  .home-studio {
    grid-template-columns: 1fr;
    gap: 28px;
    padding-block: 32px;
  }
  .home-studio-image {
    min-height: 0;
    height: 310px;
  }
  .home-studio-image > img {
    object-position: 50% 46%;
  }
  .home-studio-copy h2 {
    max-width: 530px;
  }
  .capability-links small {
    font-size: 0.8rem;
  }
  .home-product-section {
    padding: 25px;
    margin-bottom: 35px;
  }
  .studio-section-heading {
    margin-bottom: 23px;
    align-items: start;
  }
  .studio-section-heading h2 {
    font-size: 1.85rem;
  }
  .product-deck {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .deck-product {
    display: grid;
    grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.2fr);
  }
  .deck-logo {
    height: 100%;
    min-height: 190px;
  }
  .deck-content h3 {
    font-size: 1.35rem;
  }
  .deck-content p {
    font-size: 0.96rem;
  }
  .studio-process {
    padding-bottom: 25px;
  }
  .studio-cta {
    grid-template-columns: 1fr;
    gap: 23px;
    padding: 27px;
    margin-block: 20px 35px;
  }
  .cta-actions {
    justify-self: start;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: start;
  }
  .studio-hero {
    grid-template-columns: 1fr;
    gap: 25px;
    padding-top: 26px;
  }
  .studio-hero-media {
    height: 315px;
  }
  .service-shortcuts {
    gap: 10px;
  }
  .service-shortcuts a {
    padding: 13px;
    font-size: 0.77rem;
    gap: 8px;
  }
  .studio-services {
    gap: 16px;
    padding-bottom: 30px;
  }
  .service-sheet {
    padding: 22px;
  }
  .service-sheet h2 {
    font-size: 1.4rem;
  }
  .service-sheet > p {
    font-size: 0.96rem;
  }
  .service-sheet ul {
    margin-block: 18px 23px;
  }
  .service-sheet .action {
    font-size: 0.8rem;
    gap: 12px;
    padding: 12px 14px;
  }
  .engagement-cards {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .saas-studio-hero {
    grid-template-columns: 1fr;
    gap: 27px;
    padding-block: 25px 30px;
  }
  .saas-brand-stack {
    padding: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
  }
  .brand-stack-item {
    min-height: 85px;
    padding: 14px;
  }
  .brand-stack-item img {
    width: 100%;
    max-height: 53px;
  }
  .brand-stack-item > svg {
    display: none;
  }
  .saas-brand-stack > span {
    grid-column: 1 / -1;
  }
  .product-story {
    grid-template-columns: 1fr;
  }
  .product-story-brand {
    min-height: 0;
    gap: 15px;
    padding: 25px;
  }
  .product-story-brand > img {
    width: 235px;
    max-height: 78px;
    margin-block: 5px;
  }
  .product-story-brand > p {
    font-size: 0.75rem;
  }
  .product-story-copy {
    padding: 26px;
  }
  .product-story-copy h2 {
    font-size: 1.8rem;
  }
  .build-studio {
    grid-template-columns: 1fr;
    gap: 25px;
    padding-block: 30px 15px;
  }
  .build-studio-image {
    height: 240px;
  }
  .ai-studio-stage {
    grid-template-columns: 1fr;
    margin-top: 25px;
    gap: 24px;
  }
  .ai-stage-art {
    position: relative;
    inset: auto;
    grid-row: 2;
    height: 290px;
  }
  .ai-stage-copy {
    grid-row: 1;
    margin: 0;
    padding: 0;
    box-shadow: none;
    background: none;
  }
  .pipeline-studio {
    padding: 23px;
    margin-bottom: 30px;
  }
  .studio-faq {
    grid-template-columns: 1fr;
    gap: 25px;
    padding-bottom: 25px;
  }
  .studio-faq > div:first-child {
    max-width: 590px;
  }
  .trust-studio > div {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .trust-studio article {
    display: grid;
    grid-template-columns: 28px 1fr;
    gap: 8px 16px;
    padding: 21px;
  }
  .trust-studio article > span {
    grid-row: 1 / 3;
    margin: 0;
  }
  .trust-studio h3 {
    margin: 0;
  }
  .trust-studio p {
    grid-column: 2;
  }
  .cloud-studio-hero {
    grid-template-columns: 1fr;
    gap: 25px;
    padding-top: 25px;
  }
  .cloud-stage-image {
    grid-row: 2;
    max-height: 350px;
  }
  .cloud-stage-image > img {
    width: 100%;
    max-height: 350px;
    object-fit: contain;
  }
  .cloud-mini-tags {
    grid-template-columns: 1fr 1fr;
  }
  .architecture-cards {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .architecture-cards article {
    display: grid;
    grid-template-columns: 30px 1fr;
    gap: 7px 13px;
    padding: 21px;
  }
  .architecture-cards article > span {
    grid-row: 1 / 3;
    padding-top: 2px;
  }
  .architecture-cards h2 {
    margin: 0;
  }
  .architecture-cards p {
    grid-column: 2;
  }
  .cloud-detail-studio {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .about-studio {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .about-studio-image {
    height: 315px;
  }
  .manifesto-studio {
    grid-template-columns: 1fr;
    gap: 23px;
    padding: 27px;
  }
  .manifesto-studio h2 {
    font-size: 1.85rem;
  }
  .studio-contact {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .studio-contact .field-row {
    grid-template-columns: 1fr 1fr;
  }
  .contact-photo {
    height: 195px;
  }
  .studio-footer-top {
    flex-wrap: wrap;
    gap: 20px;
  }
  .studio-footer-top > p {
    order: 3;
    width: 100%;
    font-size: 0.9rem;
  }
  .studio-social {
    margin-left: auto;
  }
  .studio-footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 25px;
  }
  .footer-contact-block {
    grid-column: 1 / -1;
  }
  .studio-footer-grid > nav > div {
    grid-template-columns: 1fr;
  }
  .footer-product-links {
    grid-column: auto;
    display: block;
  }
  .studio-footer-grid .footer-product-links > span {
    margin-bottom: 14px;
  }
  .studio-company {
    grid-template-columns: 1fr;
    gap: 12px;
    padding-block: 19px;
    font-size: 0.75rem;
  }
  .studio-footer-bottom {
    gap: 12px 20px;
  }
  .studio-footer-bottom > span {
    width: 100%;
  }
  .studio-footer-bottom > nav {
    margin-left: auto;
  }
}
@media (max-width: 480px) {
  .home-product-section {
    padding: 20px;
  }
  .deck-product {
    display: flex;
  }
  .deck-logo {
    min-height: 0;
    height: 118px;
  }
  .deck-logo img {
    max-height: 74px;
    max-width: 235px;
  }
  .deck-content {
    padding: 22px;
  }
  .deck-content h3 {
    font-size: 1.5rem;
  }
  .deck-content p {
    font-size: 1rem;
  }
  .studio-services {
    grid-template-columns: 1fr;
  }
  .service-sheet {
    padding: 25px;
  }
  .service-sheet h2 {
    font-size: 1.6rem;
  }
  .service-sheet > p {
    font-size: 1rem;
  }
  .process-track {
    gap: 28px 21px;
  }
  .process-track p {
    font-size: 0.9rem;
  }
  .process-track h3 {
    font-size: 1.08rem;
  }
  .studio-title,
  .ai-stage-copy .studio-title,
  .studio-contact-intro .studio-title {
    font-size: clamp(1.9rem, 8vw, 2.45rem);
  }
  .image-note {
    bottom: 16px;
    left: 16px;
    right: 16px;
    max-width: calc(100% - 32px);
    padding: 12px;
    font-size: 0.76rem;
    gap: 9px;
  }
  .home-studio-image,
  .studio-hero-media,
  .about-studio-image {
    height: 270px;
  }
  .home-studio-copy h2 {
    font-size: 1.85rem;
  }
  .capability-links > a {
    padding: 14px 11px;
  }
  .capability-links small {
    font-size: 0.74rem;
  }
  .capability-links strong {
    font-size: 0.94rem;
  }
  .capability-links > a > svg {
    width: 16px;
  }
  .studio-cta {
    padding: 24px;
  }
  .studio-cta h2 {
    font-size: 1.65rem;
  }
  .cta-actions {
    gap: 16px;
  }
  .service-shortcuts a {
    font-size: 0.75rem;
  }
  .service-shortcuts a > svg {
    display: none;
  }
  .saas-brand-stack {
    padding: 13px;
    gap: 8px;
  }
  .brand-stack-item {
    padding: 9px;
    min-height: 73px;
  }
  .brand-stack-item img {
    max-height: 46px;
  }
  .pipeline-studio ol {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .pipeline-studio li {
    align-items: center;
  }
  .pipeline-studio h2 {
    font-size: 1rem;
  }
  .cloud-mini-tags {
    grid-template-columns: 1fr;
  }
  .values-studio > div:last-child {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .studio-contact .field-row {
    grid-template-columns: 1fr;
  }
  .studio-contact .form-panel {
    padding: 24px;
  }
  .contact-methods strong {
    font-size: 0.86rem;
  }
  .contact-methods > a,
  .contact-methods > div {
    gap: 10px;
    padding-inline: 13px;
  }
  .contact-methods > a > svg:last-child {
    display: none;
  }
  .contact-methods address {
    font-size: 0.77rem;
  }
  .footer-brand {
    width: 190px;
    height: 61px;
  }
  .studio-social {
    gap: 7px;
  }
  .studio-social a {
    width: 34px;
    height: 34px;
  }
  .studio-footer-top {
    gap: 15px;
  }
  .studio-footer-grid {
    gap: 24px 20px;
  }
  .footer-contact-block > a {
    font-size: 1rem;
  }
  .studio-footer-bottom {
    gap: 10px 15px;
  }
  .studio-footer-bottom > div {
    gap: 13px;
  }
  .studio-footer-bottom > nav {
    gap: 12px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .action,
  .action svg,
  .media-zoom > img,
  .deck-product,
  .brand-stack-item,
  .capability-links > a {
    transition: none;
    transform: none;
  }
}
@media print {
  .studio-footer,
  .studio-cta {
    display: none;
  }
  .studio-hero,
  .home-studio,
  .studio-contact {
    display: block;
  }
  .studio-photo {
    max-height: 220px;
    width: auto;
  }
}

/* Typography: preserve descenders in large multilingual headings and gradients. */
h1,
.display,
.studio-title,
.display > span,
.studio-title > span,
.ink-gradient {
  overflow: visible;
}
.display > span,
.studio-title > span {
  padding-bottom: 0.12em;
  margin-bottom: -0.12em;
}
.studio-title {
  line-height: 1.14;
}

/* The approved home sculpture receives a calm, autonomous motion. */
.page-home .home-hero {
  padding-top: clamp(30px, 2.5vw, 36px);
}
.page-home .hero-copy > .eyebrow {
  margin-bottom: 26px;
}
.page-home .hero-copy > .home-title {
  margin-top: -0.16em;
}

@keyframes cloud-sculpture-float {
  0%,
  100% {
    transform: translate3d(0, 0, 0) rotate(-0.35deg);
  }
  50% {
    transform: translate3d(0, -10px, 0) rotate(0.45deg);
  }
}
.page-home .hero-sculpture {
  position: relative;
  top: -22px;
  animation: cloud-sculpture-float 8s ease-in-out infinite;
  transform-origin: 50% 55%;
  will-change: transform;
}
.page-home .art-caption-number {
  display: none;
}

/* Consistent contact controls and server-side form feedback. */
#contact-form input:not([type="checkbox"]),
#contact-form textarea,
#contact-form select {
  min-height: 54px;
  border: 1px solid #c8d6e1;
  border-radius: 8px;
  background-color: #fff;
  color: var(--studio-ink);
}
#contact-form input::placeholder,
#contact-form textarea::placeholder,
#contact-form select:invalid {
  color: #708394;
  opacity: 1;
}
.select-wrap {
  position: relative;
  display: block;
}
.select-wrap::after {
  content: "";
  position: absolute;
  right: 18px;
  bottom: 21px;
  width: 8px;
  height: 8px;
  border-right: 2px solid #31506a;
  border-bottom: 2px solid #31506a;
  transform: rotate(45deg);
  pointer-events: none;
}
#contact-form select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 48px;
}
.hp-field {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  min-height: 1px !important;
  padding: 0 !important;
  border: 0 !important;
  opacity: 0 !important;
}
#contact-form .button[disabled] {
  opacity: 0.65;
}
.email-result.is-success {
  border-color: #81c8ad;
  background: #f1fbf7;
}
.email-result.is-error {
  border-color: #e1a8a8;
  background: #fff5f5;
}

/* Brand-first footer: white logo, contact icons and social follow block. */
.studio-footer .studio-footer-grid {
  grid-template-columns: minmax(280px, 1.45fr) minmax(180px, 0.8fr) minmax(180px, 0.7fr);
  align-items: start;
  gap: 70px;
  padding-block: 42px 34px;
}
.footer-brand-block {
  max-width: 470px;
}
.studio-footer .footer-brand {
  display: block;
  width: min(320px, 100%);
  height: auto;
  padding: 0;
  background: transparent;
  overflow: visible;
  border-radius: 0;
}
.studio-footer .footer-brand img {
  width: 100%;
  height: auto;
}
.footer-brand-block > p {
  max-width: 420px;
  margin-top: 16px;
  color: #c9d9e7;
  font-size: 0.92rem;
  line-height: 1.7;
}
.studio-footer .footer-contact-block {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  margin-top: 21px;
}
.studio-footer .footer-contact-block > a {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  width: auto;
  min-height: 34px;
  color: #fff;
  font-size: 0.9rem;
  font-weight: 700;
}
.studio-footer .footer-contact-block svg {
  width: 17px;
  height: 17px;
  color: #63d9ff;
}
.follow-label {
  display: block;
  margin-top: 22px;
  color: #9eb7cc;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}
.footer-brand-block .studio-social {
  margin-top: 9px;
}
.footer-privacy-settings {
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  min-height: 30px;
}
.footer-privacy-settings:hover {
  color: #72daff;
}
.page-terms .legal-hero .display {
  font-size: clamp(2.2rem, 4vw, 3.4rem);
}
.legal-lead {
  max-width: 760px;
  margin: 16px 0 20px;
  font-size: 1.05rem;
}

/* Necessary-only privacy notice: no optional technology is loaded. */
.cookie-banner {
  position: fixed;
  z-index: 1000;
  left: 22px;
  right: 22px;
  bottom: 22px;
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) auto 34px;
  align-items: center;
  gap: 26px;
  max-width: 1180px;
  margin-inline: auto;
  padding: 24px 26px;
  border: 1px solid #324e64;
  border-radius: 14px;
  background: #061b2ef5;
  color: #fff;
  box-shadow: 0 22px 70px #00142538;
  backdrop-filter: blur(16px);
}
.cookie-banner[hidden] {
  display: none;
}
.cookie-status {
  color: #62d9ff;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.09em;
}
.cookie-banner h2 {
  margin-top: 4px;
  font-size: 1.25rem;
  letter-spacing: -0.03em;
}
.cookie-banner p {
  max-width: 670px;
  margin-top: 7px;
  color: #c7d8e6;
  font-size: 0.82rem;
  line-height: 1.6;
}
.cookie-actions {
  display: flex;
  gap: 10px;
}
.cookie-actions .action {
  min-height: 44px;
  padding: 11px 15px;
  white-space: nowrap;
  font-size: 0.78rem;
}
.cookie-actions .action-secondary {
  background: transparent;
  color: #fff;
  border-color: #587083;
}
.cookie-close {
  align-self: start;
  width: 34px;
  height: 34px;
  border: 1px solid #4b6579;
  border-radius: 7px;
  background: transparent;
  color: #fff;
  font-size: 1.25rem;
}

@media (max-width: 960px) {
  .studio-footer .studio-footer-grid {
    grid-template-columns: 1.2fr 0.8fr;
    gap: 35px;
  }
  .studio-footer .footer-product-links {
    grid-column: 2;
  }
  .cookie-banner {
    grid-template-columns: 1fr 34px;
  }
  .cookie-actions {
    grid-column: 1 / -1;
    grid-row: 2;
  }
  .cookie-close {
    grid-column: 2;
    grid-row: 1;
  }
}

@media (max-width: 640px) {
  .studio-footer .studio-footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 34px 24px;
  }
  .footer-brand-block {
    grid-column: 1 / -1;
  }
  .studio-footer .footer-product-links {
    grid-column: auto;
  }
  .cookie-banner {
    left: 12px;
    right: 12px;
    bottom: 12px;
    padding: 20px;
    gap: 17px;
  }
  .cookie-actions {
    flex-direction: column;
  }
  .cookie-actions .action {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-home .hero-sculpture {
    animation: none;
    will-change: auto;
  }
}

/* Editorial footer navigation: compact panels, numbered routes and product cards. */
.studio-footer .studio-footer-grid {
  grid-template-columns: minmax(300px, 1.18fr) minmax(360px, 1fr) minmax(270px, 0.78fr);
  align-items: stretch;
  gap: 26px;
}
.studio-footer-grid > nav,
.studio-footer-grid > .footer-product-links {
  min-width: 0;
  padding: 24px;
  border: 1px solid #294257;
  border-radius: 18px;
  background:
    linear-gradient(145deg, #ffffff09, transparent 55%),
    #0a2236;
}
.studio-footer-grid > nav > span,
.studio-footer-grid > .footer-product-links > span {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px;
  padding-bottom: 17px;
  border-bottom: 1px solid #294257;
  color: #b8ccdc;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
}
.studio-footer-grid > nav > span::before,
.studio-footer-grid > .footer-product-links > span::before {
  content: "";
  width: 18px;
  height: 2px;
  border-radius: 2px;
  background: #63d9ff;
}
.studio-footer-grid > nav > div {
  counter-reset: footer-route;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 22px;
}
.studio-footer-grid > nav > div > a {
  counter-increment: footer-route;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-height: 49px;
  padding: 9px 0;
  border-bottom: 1px solid #223b4f;
  color: #ecf5fc;
  font-size: 0.88rem;
  line-height: 1.35;
  transition: color 0.2s ease, padding-left 0.2s ease;
}
.studio-footer-grid > nav > div > a::before {
  content: "0" counter(footer-route);
  color: #67d9ff;
  font-size: 0.61rem;
  font-weight: 800;
  letter-spacing: 0.04em;
}
.studio-footer-grid > nav > div > a:hover {
  padding-left: 5px;
  color: #fff;
}
.studio-footer .footer-product-links {
  display: grid;
  grid-template-columns: 1fr;
  align-content: start;
  gap: 10px;
}
.studio-footer .footer-product-links > span {
  grid-column: 1 / -1;
}
.studio-footer .footer-product-links > a {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) 32px;
  align-items: center;
  gap: 12px;
  min-height: 58px;
  padding: 11px 12px 11px 15px;
  border: 1px solid #2a465d;
  border-radius: 12px;
  background: #ffffff05;
  color: #f1f7fc;
  font-size: 0.91rem;
  font-weight: 650;
  transition:
    border-color 0.2s ease,
    background 0.2s ease,
    transform 0.2s ease;
}
.studio-footer .footer-product-links > a > i {
  width: 9px;
  height: 9px;
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--product-accent) 15%, transparent);
}
.studio-footer .footer-product-links > a > svg {
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 8px;
  border: 1px solid #3b566b;
  border-radius: 50%;
  transition:
    border-color 0.2s ease,
    background 0.2s ease,
    transform 0.2s ease;
}
.studio-footer .footer-product-links > a:hover {
  border-color: #4c7593;
  background: #ffffff0b;
  color: #fff;
  transform: translateY(-2px);
}
.studio-footer .footer-product-links > a:hover > svg {
  border-color: #075cde;
  background: #075cde;
  transform: translateX(2px);
}

@media (max-width: 1000px) {
  .studio-footer .studio-footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }
  .studio-footer .footer-brand-block {
    grid-column: 1 / -1;
    max-width: 680px;
  }
  .studio-footer .footer-product-links {
    grid-column: auto;
  }
  .studio-footer-grid > nav > div {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .studio-footer .studio-footer-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .studio-footer-grid > nav,
  .studio-footer-grid > .footer-product-links {
    padding: 20px;
    border-radius: 15px;
  }
  .studio-footer-grid > nav > div {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 460px) {
  .studio-footer-grid > nav > div {
    grid-template-columns: 1fr;
  }
}

/* Circular local flag artwork for every language, including the active one. */
.language-select summary > .language-flag,
.language-options .language-flag {
  display: block;
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 0 0 1px #d5e2ed, 0 2px 5px #001d3314;
}
.language-select summary {
  gap: 9px;
  min-width: 64px;
  justify-content: center;
}
.language-options a {
  gap: 12px;
}

/* Consent manager: equal reject/accept visibility and granular opt-in. */
.cookie-banner {
  grid-template-columns: minmax(0, 1fr) auto 34px;
  max-height: min(85vh, 730px);
  overflow-y: auto;
}
.cookie-intro {
  min-width: 0;
}
.cookie-detail-panel {
  margin-top: 13px;
}
.cookie-detail-panel[hidden] {
  display: none;
}
.cookie-details-title {
  margin: 0;
  color: #70dfff;
  font-size: 0.78rem;
  font-weight: 800;
}
.cookie-detail-panel:focus-visible {
  outline: 2px solid #70dfff;
  outline-offset: 4px;
}
.cookie-categories {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  margin-top: 14px;
}
.cookie-categories > div,
.cookie-category-toggle {
  min-width: 0;
  padding: 12px;
  border: 1px solid #3d5a70;
  border-radius: 9px;
  background: #ffffff08;
}
.cookie-categories strong {
  display: block;
  color: #fff;
  font-size: 0.75rem;
  line-height: 1.35;
}
.cookie-categories > div > span {
  display: block;
  margin-top: 5px;
  color: #72dfff;
  font-size: 0.68rem;
  font-weight: 700;
}
.cookie-categories p {
  margin-top: 7px;
  color: #c9dbe9;
  font-size: 0.73rem;
  line-height: 1.5;
}
.cookie-actions .action {
  justify-content: center;
}
.cookie-actions .action-secondary {
  background: #ffffff08;
}
.cookie-actions .cookie-decision {
  min-width: 112px;
  border-color: #176de1;
  background: #176de1;
  color: #fff;
}
.cookie-actions .cookie-decision:hover {
  border-color: #3e91fa;
  background: #3e91fa;
  color: #fff;
}
.cookie-category-toggle {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 46px;
  align-items: center;
  gap: 12px;
  cursor: pointer;
}
.cookie-category-toggle small {
  display: block;
  margin-top: 7px;
  color: #c9dbe9;
  font-size: 0.71rem;
  line-height: 1.5;
}
.cookie-category-toggle input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}
.cookie-switch {
  position: relative;
  display: block;
  width: 46px;
  height: 26px;
  border: 1px solid #70869a;
  border-radius: 99px;
  background: #42596b;
  transition: background 0.2s ease;
}
.cookie-switch::before {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 5px #00142544;
  transition: transform 0.2s ease;
}
.cookie-category-toggle input:checked + .cookie-switch {
  border-color: #57cfff;
  background: #075cde;
}
.cookie-category-toggle input:checked + .cookie-switch::before {
  transform: translateX(20px);
}
.cookie-category-toggle input:focus-visible + .cookie-switch {
  outline: 2px solid #70dfff;
  outline-offset: 3px;
}
.cookie-category-toggle input:disabled + .cookie-switch {
  cursor: not-allowed;
  opacity: 0.45;
}
.cookie-detail-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 18px;
  margin-top: 14px;
}
.cookie-detail-actions .action {
  min-height: 40px;
  padding: 9px 14px;
  font-size: 0.77rem;
}
.cookie-detail-actions > a {
  color: #82e0ff;
  font-size: 0.76rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 850px) {
  .cookie-banner {
    grid-template-columns: minmax(0, 1fr) 34px;
  }
  .cookie-actions {
    grid-column: 1 / -1;
    grid-row: 2;
  }
  .cookie-close {
    grid-column: 2;
    grid-row: 1;
  }
}
@media (max-width: 600px) {
  .cookie-categories {
    grid-template-columns: 1fr;
  }
  .cookie-actions {
    flex-direction: column;
  }
  .cookie-actions .action {
    width: 100%;
  }
}
