/*
 * ArtPlus v26 — Kuvitellaan hetki.
 * A brand layer built around imagination, clarity and hands-on execution.
 */

:root {
  --ap-brand-ink: #101515;
  --ap-brand-orange: #ff4b12;
  --ap-brand-paper: #f8faf8;
  --ap-brand-mist: #e9f0ef;
  --ap-brand-line: rgba(24, 55, 53, .16);
}

/* The slogan is the first pause, not a list of capabilities. */
body.home .apb-hero.home-hero.apb-hero--text {
  min-height: min(820px, calc(100svh - 78px));
  padding-top: clamp(96px, 11vw, 170px);
  padding-bottom: clamp(96px, 11vw, 170px);
}

body.home .apb-hero--text .home-hero-copy {
  width: min(1240px, 100%);
  max-width: none;
}

body.home .apb-hero .home-hero-copy h1 {
  max-width: 1180px;
  font-size: clamp(68px, 7.2vw, 124px);
  line-height: 1.03;
  letter-spacing: 0em;
  text-wrap: balance;
}

body.home .apb-hero .home-hero-copy > p {
  max-width: 790px;
  margin-top: clamp(38px, 4vw, 58px);
  font-size: clamp(18px, 1.4vw, 23px);
  line-height: 1.62;
}

body.home .apb-hero .home-kicker {
  margin-bottom: clamp(34px, 3.8vw, 52px);
}

.apb-hero .scribble-word {
  position: relative;
  color: inherit;
  white-space: nowrap;
}

.apb-hero .scribble-word::after {
  display: block !important;
  content: "";
  position: absolute;
  left: .03em;
  right: -.02em;
  bottom: 0.14em;
  height: .055em;
  border-radius: 999px;
  background: var(--ap-brand-orange);
  transform: rotate(-1deg);
  transform-origin: left center;
}

/* The manifesto acts like a large sketchbook note between promise and services. */
body.home .apb-big-type {
  color: #fff;
  background-color: var(--ap-brand-ink);
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 45px 45px;
}

body.home .apb-big-type p {
  max-width: 1500px;
  font-size: clamp(56px, 8.6vw, 142px);
  line-height: .88;
}

/* Five branded service thoughts: two large, three compact. */
body.home .ap-services-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

body.home .ap-service-card {
  grid-column: span 2;
}

body.home .ap-service-card:nth-child(-n+2) {
  grid-column: span 3;
}

.ap-service-card-link {
  height: 100%;
}

.ap-service-copy h3 {
  text-wrap: balance;
}

.ap-service-copy p {
  max-width: 46ch;
}

/* Service pages retain familiar service names as kickers and lead with the idea. */
body:not(.home) .apb-hero.home-hero.apb-hero--text {
  min-height: clamp(510px, 70svh, 760px);
  padding: clamp(88px, 10vw, 150px) var(--pad);
  display: flex !important;
  align-items: center;
}

body:not(.home) .apb-hero--text .home-hero-copy {
  width: min(1180px, 100%);
  max-width: none;
  margin: 0 auto;
  padding: 0;
}

body:not(.home) .apb-hero .home-hero-copy h1 {
  max-width: 1050px;
  font-size: clamp(72px, 9vw, 146px);
  line-height: .84 !important;
}

body:not(.home) .apb-hero .home-hero-copy > p {
  max-width: 780px;
  font-size: clamp(18px, 1.55vw, 24px);
  line-height: 1.5;
  color: #566361;
}

body:not(.home) .apb-text-wide .apb-richtext {
  columns: 2;
  column-gap: clamp(42px, 6vw, 96px);
}

body:not(.home) .apb-text-wide .apb-richtext p {
  break-inside: avoid;
  margin-top: 0;
}

body:not(.home) .home-skills .ap-services-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body:not(.home) .home-skills .ap-service-visual {
  aspect-ratio: 1.85 / 1;
}

body:not(.home) .home-skills .ap-service-copy {
  min-height: 190px;
}

#tuotteet .apb-image-text-media:empty::before {
  content: "TUOTE";
}

#artplus .apb-image-text-media:empty::before {
  content: "TEKIJÄ";
}

/* Work is proof. Keep it editorial and remove the old generic reference labels. */
.apb-reference::before {
  display: none !important;
  content: none !important;
}

.home-work .simple-section-head > a {
  color: var(--ap-brand-orange);
  border-bottom-color: currentColor;
}

.home-work .simple-section-head > a::after {
  display: none !important;
  content: none !important;
}

/* A quieter shared ending: one invitation, then contact details in the footer. */
.artplus-contact-prompt h2 {
  text-wrap: balance;
}

.site-footer .footer-tagline {
  color: #fff;
}

@media (max-width: 980px) {
  body.home .ap-services-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.home .ap-service-card,
  body.home .ap-service-card:nth-child(-n+2) {
    grid-column: span 1;
  }

  body.home .ap-service-card:last-child {
    grid-column: 1 / -1;
  }

  body:not(.home) .home-skills .ap-services-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  body.home .apb-hero.home-hero.apb-hero--text,
  body:not(.home) .apb-hero.home-hero.apb-hero--text {
    min-height: 0;
    padding: 72px clamp(24px, 7vw, 34px) 84px;
  }

  body.home .apb-hero .home-hero-copy h1,
  body:not(.home) .apb-hero .home-hero-copy h1 {
    max-width: 100%;
    font-size: clamp(54px, 15vw, 76px);
    line-height: 1.02 !important;
    letter-spacing: -.03em;
  }

  body.home .apb-hero .home-hero-copy > p {
    margin-top: 32px;
    font-size: 17px;
    line-height: 1.58;
  }

  body.home .ap-services-grid {
    grid-template-columns: 1fr;
  }

  body.home .ap-service-card,
  body.home .ap-service-card:nth-child(-n+2),
  body.home .ap-service-card:last-child {
    grid-column: 1;
  }

  body:not(.home) .apb-text-wide .apb-richtext {
    columns: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .apb-hero .scribble-word::after {
    animation: none !important;
  }
}
