/* Section rules measured from the captured EFFEKT desktop/mobile pages. */
.k2y-effekt-pages { width: 100%; padding-top: var(--k2y-header-height, 6rem); }
.k2y-effekt-section { max-width: 2017px; margin: 0 auto; padding: 4.5rem 3rem; scroll-margin-top: calc(var(--k2y-header-height, 6rem) + 1rem); }
.k2y-effekt-section + .k2y-effekt-section { padding-top: 1.46rem; }
.k2y-effekt-section:last-child { padding-bottom: 5.84rem; }
.k2y-effekt-section > h2:first-child { margin-top: 0; margin-bottom: 2rem; }
.k2y-effekt-section p a { border-bottom: 1px solid rgba(113,111,111,.2); text-decoration: none; transition: border-color .14s ease; }
.k2y-effekt-section p a:hover { border-color: #716f6f; }
.k2y-effekt-section a:focus-visible, .k2y-effekt-section button:focus-visible, .k2y-effekt-section [tabindex]:focus-visible { outline: 2px solid #111; outline-offset: 4px; }
.k2y-effekt-office p, .k2y-effekt-contact p, .k2y-effekt-contact-details address { font-size: clamp(1.071rem,1.031rem + .176vw,1.19rem); line-height: 157%; }

/* Profile intro uses the existing office paragraph as its large lead. */
.k2y-effekt-office-intro { padding-top: calc(4.5rem + 68px); }
.k2y-effekt-office .k2y-effekt-office-lead { margin: 0; padding-right: 34px; font-family: "Helvetica Neue", Arial, sans-serif; font-weight: 400; line-height: 118%; font-size: clamp(1.925rem, 1.4rem + 2.333vw, 3.5rem); color: #111; }
/* Source profile has four 68px spacer blocks between 17px block edges. */
.k2y-effekt-office-images { display: grid; grid-template-columns: minmax(0,calc((100% - 68px) / 3)) minmax(0,1fr); align-items: start; gap: 34px; margin-top: 306px; }
.k2y-effekt-office-images figure { margin: 0; min-width: 0; }
.k2y-effekt-office-images a, .k2y-effekt-office-images img { display: block; width: 100%; }
.k2y-effekt-office-images img { height: auto; object-position: var(--k2y-project-focal, center); }
.k2y-effekt-office-images figcaption { padding-top: .68rem; font-size: clamp(.788rem,.759rem + .129vw,.875rem); line-height: 143%; color: #716f6f; }
.k2y-effekt-office-copy { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); gap: 34px; margin-top: 3rem; }
.k2y-effekt-office-copy > p { margin: 0; }
.k2y-effekt-service-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 34px; margin-top: 2.5rem; }
.k2y-effekt-service-grid h3 { margin: 0; font-size: clamp(1.778rem,1.641rem + .61vw,2.19rem); font-family: "Helvetica Neue", Arial, sans-serif; line-height: 126%; font-weight: 400; }
.k2y-effekt-awards-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2.5rem 34px; }
.k2y-effekt-award h3 { margin: 0 0 .62rem; }
.k2y-effekt-award p { margin: 0; font-size: clamp(1.071rem,1.031rem + .176vw,1.19rem); line-height: 157%; color: #111; }
.k2y-effekt-client-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 3rem 34px; list-style: none; padding: 0; margin: 0; }
.k2y-effekt-client-grid li { align-self: center; color: #111; font-size: clamp(1.116rem,1.075rem + .184vw,1.24rem); line-height: 120%; }

/* Current team images and biographies follow the source People grid. */
.k2y-effekt-people-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 3rem 34px; }
.k2y-effekt-person { min-width: 0; }
.k2y-effekt-person__portrait img { display: block; width: 100%; height: auto; }
.k2y-effekt-person h3 { margin: .68rem 0 .3rem; }
.k2y-effekt-person__role { margin: 0 0 .68rem; }
.k2y-effekt-person__bio p { margin: 0 0 .68rem; }

/* Native news: original image ratios and shortest-column packing. */
.k2y-effekt-news .k2y-effekt-resource-section:first-of-type { padding-top: 4.5rem; }
.k2y-effekt-news-masonry { position: relative; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 34px; }
.k2y-effekt-news-masonry.is-positioned { display: block; }
.k2y-effekt-news-card { min-width: 0; margin: 0; }
.k2y-effekt-news-masonry.is-positioned .k2y-effekt-news-card { position: absolute; top: 0; left: 0; width: calc((100% - 68px) / 3); }
.k2y-effekt-news-card__link { display: block; text-decoration: none; transition: opacity .24s ease-out; }
.k2y-effekt-news-card__link:hover { opacity: .75; }
.k2y-effekt-news-card__image img { width: 100%; height: auto; display: block; }
.k2y-effekt-news-card__meta { padding-top: .68rem; padding-right: 34px; }
.k2y-effekt-news-card__meta time { display: block; color: #716f6f; }
.k2y-effekt-news-card .k2y-effekt-news-card__meta h2 { font-family: "Helvetica Neue",Arial,sans-serif; font-size: clamp(1.778rem,1.641rem + .61vw,2.19rem); font-weight: 400; line-height: 126%; color: #111; margin: 1.095rem 0 .876rem; overflow-wrap: anywhere; }
.k2y-effekt-news-card__excerpt { margin: 0; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; overflow: hidden; }
.k2y-effekt-news-card__more { display: inline-block; margin-top: .876rem; border-bottom: 1px solid rgba(113,111,111,.2); color: #716f6f; transition: border .14s ease; }
.k2y-effekt-news-card__link:hover .k2y-effekt-news-card__more { border-color: #716f6f; }
.k2y-effekt-news-card__source { margin: .68rem 34px 0 0; }

/* Contact starts with source-style portrait gallery, then actual office/form. */
.k2y-effekt-contact-intro { padding-top: 4.5rem; padding-bottom: calc(4.5rem + .84rem); }
.k2y-effekt-portrait-carousel { position: relative; padding-top: 3rem; }
.k2y-effekt-portrait-track { display: flex; gap: 34px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
.k2y-effekt-portrait-track::-webkit-scrollbar { display: none; }
.k2y-effekt-portrait-track figure { flex: 0 0 calc((100% - 68px) / 3); min-width: 0; margin: 0; scroll-snap-align: start; }
.k2y-effekt-portrait-track img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: center; }
.k2y-effekt-carousel-controls { position: absolute; top: 0; right: -7px; display: flex; gap: 0; }
.k2y-effekt-carousel-controls button { background: none; border: 0; padding: 0; cursor: pointer; color: #716f6f; display: flex; align-items: center; justify-content: center; }
.k2y-effekt-carousel-controls svg { display: block; width: 2rem; height: 2rem; stroke: currentColor; transition: stroke .24s ease-out; }
.k2y-effekt-carousel-controls button:hover { color: #111; }
.k2y-effekt-carousel-controls button:disabled { opacity: .25; cursor: default; }
.k2y-effekt-contact-info { border-top: 1px solid #e2e2e2; }
.k2y-effekt-contact .k2y-effekt-contact-info { padding-top: calc(4.5rem + .84rem); }
.k2y-effekt-contact-info > h2:first-child { margin-bottom: 0; }
.k2y-effekt-contact-columns { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 34px; padding-top: 102px; }
.k2y-effekt-contact-details { min-width: 0; }
.k2y-effekt-contact-details h3 { margin: 0 0 .68rem; }
.k2y-effekt-contact-details p { margin: 0 0 .68rem; }
.k2y-effekt-contact-details address { font-style: normal; margin: 0 0 .68rem; }
.k2y-effekt-contact-details > p { overflow-wrap: anywhere; }
.k2y-effekt-contact-form { min-width: 0; }
.k2y-effekt-contact-form > h3 { margin: 0 0 1rem; }
.k2y-effekt-contact-form .wpcf7 form { margin: 0; }
.k2y-effekt-contact-form .wpcf7 p { margin: 0 0 1.25rem; }
.k2y-effekt-contact-form .wpcf7 label { display: block; color: #111; font-size: .95rem; line-height: 150%; margin-bottom: .25rem; }
.k2y-effekt-contact-form .wpcf7 label + br { display: none; }
.k2y-effekt-contact-form .wpcf7-form-control-wrap { display: block; }
.k2y-effekt-contact-form .wpcf7 .k2y-contact-required-note { margin-bottom: 1.25rem; font-size: .8rem; line-height: 150%; }
.k2y-effekt-contact-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), .k2y-effekt-contact-form textarea, .k2y-effekt-contact-form select { display: block; width: 100%; padding: .65rem 0 .45rem; border: 0; border-bottom: 1px solid #888; border-radius: 0; background: transparent; box-shadow: none; color: #111; font: inherit; font-size: 16px; }
.k2y-effekt-contact-form input::placeholder, .k2y-effekt-contact-form textarea::placeholder { color: #716f6f; opacity: 1; }
.k2y-effekt-contact-form textarea { height: 160px; min-height: 150px; resize: vertical; }
.k2y-effekt-contact-form input[type="submit"], .k2y-effekt-contact-form button[type="submit"] { border: 1px solid #111; border-radius: 0; color: #111; background: #fff; padding: .65rem 1.5rem; cursor: pointer; }
.k2y-effekt-contact-form input[type="submit"]:hover, .k2y-effekt-contact-form button[type="submit"]:hover { background: #111; color: #fff; }
.k2y-effekt-contact-form input[type="submit"]:disabled { opacity: .6; cursor: wait; }
.k2y-effekt-contact-form .wpcf7-not-valid-tip { color: #a31616; font-size: .85rem; }
.k2y-effekt-contact-form [aria-invalid="true"] { border-bottom-color: #a31616; }
.k2y-effekt-contact-form .wpcf7 .wpcf7-response-output { margin: 1rem 0 0; padding: .7rem 0; border-width: 0; }

/* Actual WordPress article title, metadata, featured image and body. */
.k2y-effekt-article-content { max-width: 1400px; padding-top: 3rem; }
.k2y-effekt-article-header { padding-bottom: 1rem; }
.k2y-effekt-article-meta { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-bottom: 1.25rem; color: #111; }
.k2y-effekt-article-meta a { text-decoration: none; }
.k2y-effekt-article-header h1 { margin: 0; }
.k2y-effekt-article-banner { margin: 0 0 1rem; }
.k2y-effekt-article-banner img { display: block; width: 100%; height: auto; }
.k2y-effekt-article-body img { max-width: 100%; height: auto; }
.k2y-effekt-article-body iframe { max-width: 100%; }
.k2y-effekt-article-pagination { display: flex; flex-wrap: wrap; gap: 1rem; margin: 1.5rem 3rem; }

@media (min-width:2030px) {
  .k2y-effekt-portrait-carousel { padding-top: 0; }
  .k2y-effekt-carousel-controls { display: contents; }
  .k2y-effekt-carousel-controls button { position: absolute; top: 50%; transform: translateY(-50%); }
  .k2y-effekt-carousel-controls [data-k2y-carousel-prev] { left: -3rem; }
  .k2y-effekt-carousel-controls [data-k2y-carousel-next] { right: -3rem; }
}
@media (max-width:1024px) {
  .k2y-effekt-news-masonry { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .k2y-effekt-news-masonry.is-positioned .k2y-effekt-news-card { width: calc((100% - 68px) / 2); }
  .k2y-effekt-client-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .k2y-effekt-portrait-track figure { flex-basis: calc((100% - 68px) / 2); }
}
@media (max-width:640px) {
  .k2y-effekt-section { padding: 1.5rem; }
  .k2y-effekt-section + .k2y-effekt-section { padding-top: 1.5rem; }
  .k2y-effekt-section:last-child { padding-bottom: 2.92rem; }
  .k2y-effekt-office-intro { padding-top: calc(1.5rem + 51px); }
  .k2y-effekt-office .k2y-effekt-office-lead { padding-right: 24px; hyphens: auto; }
  .k2y-effekt-office-images { display: block; margin-top: 4.5rem; }
  .k2y-effekt-office-images figure + figure { margin-top: 1.5rem; }
  .k2y-effekt-office-copy, .k2y-effekt-service-grid, .k2y-effekt-awards-grid, .k2y-effekt-people-grid, .k2y-effekt-contact-columns { grid-template-columns: minmax(0,1fr); gap: 2rem; }
  .k2y-effekt-client-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem 24px; }
  .k2y-effekt-news .k2y-effekt-resource-section:first-of-type { padding-top: calc(1.5rem + 17px); }
  .k2y-effekt-news-masonry { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .k2y-effekt-news-masonry.is-positioned .k2y-effekt-news-card { width: 100%; }
  .k2y-effekt-news-card__meta { padding-right: 24px; }
  .k2y-effekt-news-card__source { margin-right: 24px; }
  .k2y-effekt-news-card .k2y-effekt-news-card__meta h2 { hyphens: auto; }
  .k2y-effekt-contact-intro { padding-top: calc(1.5rem + 17px); padding-bottom: calc(1.5rem + 17px + .84rem); }
  .k2y-effekt-portrait-carousel { padding-top: 2.5rem; }
  .k2y-effekt-portrait-track { gap: 24px; }
  .k2y-effekt-portrait-track figure { flex-basis: calc((100% - 24px) / 2); }
  .k2y-effekt-carousel-controls svg { width: 1.75rem; height: 1.75rem; }
  .k2y-effekt-contact .k2y-effekt-contact-info { padding-top: calc(1.5rem + 17px + .84rem); }
  .k2y-effekt-contact-columns { padding-top: 51px; }
  .k2y-effekt-article-content { padding-top: 2.25rem; }
  .k2y-effekt-article-header { padding-bottom: 0; }
}
@media (prefers-reduced-motion:reduce) {
  .k2y-effekt-pages *, .k2y-effekt-pages *::before, .k2y-effekt-pages *::after { scroll-behavior: auto; transition: none; }
}
