/*
Theme Name: ZAS Dubai
Theme URI: https://zasgroupuae.com/
Author: ZAS Group
Description: A custom, responsive portfolio theme for ZAS Group Dubai, inspired by the visual system of ZAS Architects + Interiors and integrated with existing CPT UI and ACF content.
Version: 1.1.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: zas-dubai
*/

:root {
  --zas-bg: #f3f3f1;
  --zas-surface: #ffffff;
  --zas-text: #111111;
  --zas-muted: #626262;
  --zas-red: #aa2428;
  --zas-red-dark: #861b1f;
  --zas-line: rgba(170, 36, 40, 0.55);
  --zas-gutter: clamp(1.5rem, 2vw, 2.15rem);
  --zas-content: 1480px;
  --zas-copy: 760px;
  --zas-header-height: 9.5rem;
  --zas-ease: 220ms ease;
  --zas-motion-duration: 650ms;
  --zas-motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --zas-font-body: "Mozilla Text", Arial, Helvetica, sans-serif;
  --zas-font-project: "Michroma", "Mozilla Text", Arial, sans-serif;
}

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

html {
  scroll-behavior: smooth;
}

html.has-reveal-motion .zas-reveal {
  opacity: 0;
  transform: translate3d(0, 1.35rem, 0);
  transition:
    opacity var(--zas-motion-duration) var(--zas-motion-ease) var(--zas-reveal-delay, 0ms),
    transform var(--zas-motion-duration) var(--zas-motion-ease) var(--zas-reveal-delay, 0ms);
}

html.has-reveal-motion .zas-reveal--scale {
  transform: translate3d(0, 0.5rem, 0) scale(0.94);
  transform-origin: 50% 50%;
}

html.has-reveal-motion .zas-reveal.is-visible {
  opacity: 1;
  transform: none;
}

body {
  margin: 0;
  background: var(--zas-bg);
  color: var(--zas-text);
  font-family: var(--zas-font-body);
  font-size: 16px;
  line-height: 1.45;
  text-rendering: optimizeLegibility;
}

body.menu-open {
  overflow: hidden;
}

img {
  display: block;
  height: auto;
  max-width: 100%;
}

figure {
  margin: 0;
}

a {
  color: inherit;
  text-decoration-color: currentColor;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

a:hover,
a:focus-visible {
  color: var(--zas-red);
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  color: inherit;
}

:focus-visible {
  outline: 2px solid var(--zas-red);
  outline-offset: 4px;
}

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

.screen-reader-text:focus {
  background: var(--zas-surface);
  clip: auto !important;
  clip-path: none;
  color: var(--zas-text);
  display: block;
  height: auto;
  left: 1rem;
  padding: 0.8rem 1rem;
  top: 1rem;
  width: auto;
  z-index: 100000;
}

.site-shell,
.content-shell {
  margin-inline: auto;
  max-width: var(--zas-content);
  padding-inline: var(--zas-gutter);
  width: 100%;
}

.site-main {
  min-height: 60vh;
}

.site-header {
  align-items: flex-start;
  display: flex;
  height: var(--zas-header-height);
  inset: 0 0 auto;
  justify-content: space-between;
  padding: clamp(1.6rem, 3vw, 2.8rem) var(--zas-gutter);
  position: relative;
  z-index: 100;
}

.site-header--overlay {
  color: #ffffff;
  position: absolute;
}

.site-branding {
  flex: 0 0 auto;
  max-width: clamp(120px, 12vw, 170px);
  position: relative;
  z-index: 102;
}

.site-branding img {
  max-height: 86px;
  object-fit: contain;
  object-position: left top;
  width: auto;
}

.site-title {
  color: var(--zas-red);
  display: inline-block;
  font-size: clamp(1.6rem, 2.4vw, 2.5rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1;
  text-decoration: none;
}

.site-description {
  color: currentColor;
  font-size: 0.66rem;
  font-weight: 700;
  margin: 0.35rem 0 0;
  text-transform: uppercase;
}

.primary-navigation {
  align-items: center;
  display: flex;
  min-height: 3.2rem;
}

.primary-navigation ul,
.footer-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.primary-navigation > div > ul,
.primary-navigation > ul {
  align-items: center;
  display: flex;
  gap: clamp(1.25rem, 2vw, 2.25rem);
}

.primary-navigation li {
  position: relative;
}

.primary-navigation a {
  color: inherit;
  display: block;
  font-size: 0.92rem;
  text-decoration: none;
}

.primary-navigation .current-menu-item > a,
.primary-navigation .current-menu-ancestor > a,
.primary-navigation a[aria-current="page"] {
  text-decoration: underline;
  text-underline-offset: 0.35em;
}

.primary-navigation .sub-menu {
  background: var(--zas-surface);
  box-shadow: 0 10px 35px rgba(0, 0, 0, 0.1);
  color: var(--zas-text);
  display: none;
  min-width: 220px;
  padding: 0.8rem 0;
  position: absolute;
  right: 0;
  top: 100%;
}

.primary-navigation li:hover > .sub-menu,
.primary-navigation li:focus-within > .sub-menu {
  display: block;
}

.primary-navigation .sub-menu a {
  padding: 0.5rem 1rem;
}

.menu-toggle {
  align-items: center;
  background: transparent;
  border: 0;
  cursor: pointer;
  display: none;
  height: 48px;
  justify-content: center;
  padding: 0;
  position: relative;
  width: 52px;
  z-index: 103;
}

.menu-toggle span,
.menu-toggle::before {
  background: currentColor;
  content: "";
  height: 1px;
  position: absolute;
  transition: transform var(--zas-ease), top var(--zas-ease);
  width: 38px;
}

.menu-toggle::before {
  top: 17px;
}

.menu-toggle span {
  top: 30px;
}

.menu-open .menu-toggle {
  color: var(--zas-red);
}

.menu-open .menu-toggle::before {
  top: 24px;
  transform: rotate(45deg);
}

.menu-open .menu-toggle span {
  top: 24px;
  transform: rotate(-45deg);
}

.hero {
  background: #1a1a1a;
  color: #ffffff;
  min-height: 100svh;
  overflow: hidden;
  position: relative;
}

.hero::after {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.15), transparent 38%, rgba(0, 0, 0, 0.18));
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.hero img,
.hero .media-placeholder {
  height: 100%;
  inset: 0;
  object-fit: cover;
  position: absolute;
  width: 100%;
}

.hero__caption {
  bottom: 2.5rem;
  left: var(--zas-gutter);
  position: absolute;
  z-index: 2;
}

.hero__caption a {
  color: #ffffff;
  font-size: 0.95rem;
  font-style: italic;
}

.home-intro {
  margin: clamp(4rem, 8vw, 9rem) auto;
  max-width: 1300px;
}

.home-intro__copy {
  font-size: clamp(1.2rem, 1.35vw, 1.45rem);
  line-height: 1.3;
  margin: 0;
}

.home-intro__copy a,
.text-link,
.section-title a {
  color: var(--zas-red);
}

.eyebrow-link {
  color: var(--zas-red);
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  margin-top: 4rem;
  padding-inline: 1.25rem;
  text-transform: uppercase;
}

.section-block {
  padding-block: clamp(4rem, 8vw, 8rem);
}

.section-title,
.page-title,
.entry-title {
  color: var(--zas-red);
  font-weight: 400;
  line-height: 1.05;
  margin: 0;
}

.section-title {
  font-size: clamp(1.7rem, 2vw, 2rem);
  margin-bottom: clamp(2rem, 4vw, 4rem);
}

.page-title,
.entry-title {
  font-size: clamp(1.9rem, 2.65vw, 2.65rem);
}

.page-header {
  padding: clamp(2rem, 5vw, 5rem) var(--zas-gutter) clamp(3rem, 6vw, 7rem);
  text-align: center;
}

.page-header--left {
  margin-inline: auto;
  max-width: var(--zas-content);
  padding-inline: var(--zas-gutter);
  text-align: left;
}

.featured-projects {
  display: grid;
  gap: 10px;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: repeat(3, minmax(0, 1fr));
  height: clamp(760px, 62vw, 1080px);
  margin-inline: auto;
  max-width: 1300px;
}

.featured-project-card {
  background: #151515;
  color: #ffffff;
  min-height: 300px;
  overflow: hidden;
  position: relative;
}

.featured-project-card:nth-child(1) {
  grid-column: 1;
  grid-row: 1 / span 3;
}

.featured-project-card:nth-child(2) {
  grid-column: 2 / span 2;
  grid-row: 1;
}

.featured-project-card:nth-child(3) {
  grid-column: 2;
  grid-row: 2;
}

.featured-project-card:nth-child(4) {
  grid-column: 3;
  grid-row: 2 / span 2;
}

.featured-project-card:nth-child(5) {
  grid-column: 2;
  grid-row: 3;
}

.featured-project-card a {
  color: #ffffff;
  display: block;
  height: 100%;
  text-decoration: none;
}

.featured-project-card img,
.featured-project-card .media-placeholder {
  height: 100%;
  object-fit: cover;
  transition: opacity var(--zas-ease), transform 500ms ease;
  width: 100%;
}

.featured-project-card::after {
  background: linear-gradient(180deg, transparent 55%, rgba(0, 0, 0, 0.62));
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.featured-project-card:hover img {
  transform: scale(1.015);
}

.featured-project-card__title {
  bottom: 1rem;
  font-size: 0.92rem;
  font-style: italic;
  left: 1.15rem;
  margin: 0;
  position: absolute;
  right: 1rem;
  z-index: 1;
}

.card-grid {
  display: grid;
  gap: clamp(2.2rem, 4vw, 5rem) clamp(1rem, 2vw, 2rem);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.card img,
.card .media-placeholder {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  width: 100%;
}

.card__date {
  font-size: 0.78rem;
  margin: 1.3rem 0 0.8rem;
  text-align: center;
}

.card__title {
  color: var(--zas-red);
  font-size: clamp(1.2rem, 1.6vw, 1.7rem);
  font-weight: 400;
  line-height: 1.1;
  margin: 0;
  text-align: center;
}

.card__title a {
  text-decoration: none;
}

.card__link {
  color: var(--zas-red);
  display: block;
  font-size: 0.88rem;
  margin-top: 1rem;
  text-align: center;
}

.sector-grid {
  display: grid;
  gap: clamp(1.5rem, 4vw, 4.5rem);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sector-card {
  aspect-ratio: 1 / 1;
  background: #777;
  color: #ffffff;
  overflow: hidden;
  position: relative;
}

.sector-card a {
  align-items: center;
  color: #ffffff;
  display: flex;
  height: 100%;
  justify-content: center;
  text-decoration: none;
}

.sector-card img,
.sector-card .media-placeholder {
  height: 100%;
  inset: 0;
  object-fit: cover;
  position: absolute;
  transition: transform 500ms ease;
  width: 100%;
}

.sector-card::after {
  background: rgba(0, 0, 0, 0.35);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.sector-card:hover img {
  transform: scale(1.02);
}

.sector-card__title {
  font-size: clamp(1.8rem, 3vw, 3.2rem);
  font-weight: 400;
  margin: 0;
  position: relative;
  text-align: center;
  z-index: 1;
}

.project-grid {
  display: grid;
  gap: clamp(2.5rem, 4vw, 5rem) clamp(1rem, 2vw, 2rem);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.project-archive .archive-navigation {
  margin-inline: calc(50% - 50vw + var(--zas-gutter));
  width: calc(100vw - (2 * var(--zas-gutter)));
}

.archive-navigation .nav-next {
  margin-left: auto;
  text-align: right;
}

.project-card img,
.project-card .media-placeholder {
  aspect-ratio: 1.45 / 1;
  object-fit: cover;
  width: 100%;
}

.project-card__title {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.25;
  margin: 0.9rem 0 0;
}

.project-card__title a {
  text-decoration: none;
}

.archive-navigation,
.post-navigation {
  align-items: center;
  display: flex;
  font-size: clamp(1.35rem, 1.5vw, 1.55rem);
  justify-content: space-between;
  margin-top: clamp(4rem, 8vw, 8rem);
}

.archive-navigation a,
.post-navigation a {
  text-decoration: none;
}

.service-list {
  display: grid;
  gap: clamp(5rem, 7vw, 7.5rem);
}

.service-row {
  align-items: start;
  display: grid;
  gap: clamp(3rem, 6vw, 6rem);
  grid-template-columns: minmax(0, 1.55fr) minmax(280px, 0.8fr);
}

.service-row:nth-child(even) {
  grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.55fr);
}

.service-row:nth-child(even) .service-row__media {
  order: 2;
}

.service-row img,
.service-row .media-placeholder {
  aspect-ratio: 16 / 10;
  object-fit: cover;
  width: 100%;
}

.service-row__title {
  color: var(--zas-red);
  font-size: clamp(1.8rem, 2.1vw, 2.2rem);
  line-height: 1;
  margin: 0 0 2.5rem;
}

.service-row__title a {
  text-decoration: none;
}

.service-row__copy {
  font-size: 1.05rem;
}

.practice-intro {
  align-items: start;
  display: grid;
  gap: clamp(3rem, 7vw, 8rem);
  grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.65fr);
}

.practice-intro__copy {
  font-size: 1.05rem;
}

.practice-intro__quote {
  color: var(--zas-red);
  font-size: clamp(1.8rem, 2vw, 2.1rem);
  font-style: italic;
  line-height: 1.05;
  margin-top: 4rem;
}

.practice-intro img,
.practice-intro .media-placeholder {
  aspect-ratio: 16 / 11;
  object-fit: cover;
  width: 100%;
}

.timeline-list,
.process-list {
  border-top: 1px solid var(--zas-line);
}

.timeline-item,
.process-item {
  border-bottom: 1px solid var(--zas-line);
  display: grid;
  gap: 2rem;
  grid-template-columns: minmax(150px, 0.6fr) minmax(0, 1.4fr);
  padding-block: 2.5rem;
}

.timeline-item__title,
.process-item__title {
  color: var(--zas-red);
  font-size: clamp(1.5rem, 2.5vw, 2.5rem);
  font-weight: 400;
  line-height: 1.05;
  margin: 0;
}

.team-grid {
  display: grid;
  gap: clamp(2rem, 4vw, 4.5rem) clamp(1rem, 2.5vw, 3rem);
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.team-card {
  text-align: center;
}

.team-card img,
.team-card .media-placeholder {
  aspect-ratio: 0.75 / 1;
  filter: grayscale(1);
  object-fit: cover;
  width: 100%;
}

.team-card__name {
  color: var(--zas-red);
  font-size: 1.05rem;
  font-weight: 400;
  line-height: 1.1;
  margin: 0.9rem 0 0.25rem;
}

.team-card__name a {
  text-decoration: none;
}

.team-card__role {
  font-size: 0.82rem;
  line-height: 1.25;
  margin: 0;
}

.team-section-title {
  color: var(--zas-red);
  font-size: 1.45rem;
  font-weight: 400;
  margin: clamp(12rem, 24vw, 26rem) 0 4rem;
  text-align: center;
}

.award-table {
  border-top: 1px solid var(--zas-line);
}

.award-table__head {
  display: grid;
  font-weight: 700;
  gap: clamp(2rem, 4vw, 4.5rem);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding-block: 0 2rem;
}

.award-row {
  border-bottom: 1px solid var(--zas-line);
  display: grid;
  gap: clamp(2rem, 4vw, 4.5rem);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding-block: clamp(2rem, 3vw, 3rem);
}

.award-row__project {
  color: var(--zas-red);
  font-size: clamp(1.55rem, 1.8vw, 1.8rem);
  font-weight: 400;
  line-height: 1.05;
  margin: 0;
}

.award-row__items > *:first-child {
  margin-top: 0;
}

.award-row__items > *:last-child {
  margin-bottom: 0;
}

.project-hero img,
.project-hero .media-placeholder,
.entry-hero img,
.entry-hero .media-placeholder {
  max-height: 74vw;
  object-fit: cover;
  width: 100%;
}

.project-details {
  display: grid;
  gap: clamp(3rem, 7vw, 9rem);
  grid-template-columns: minmax(200px, 0.55fr) minmax(0, 1.45fr);
  margin-block: clamp(3rem, 6vw, 7rem) clamp(6rem, 12vw, 12rem);
}

.project-meta {
  display: grid;
  gap: 2.6rem;
  margin: 0;
}

.project-meta__item dt {
  font-size: 0.9rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.project-meta__item dd {
  margin: 0;
}

.entry-content,
.project-copy {
  font-size: 1.04rem;
}

.entry-content > *:first-child,
.project-copy > *:first-child {
  margin-top: 0;
}

.entry-content > *:last-child,
.project-copy > *:last-child {
  margin-bottom: 0;
}

.entry-content h2,
.entry-content h3,
.project-copy h2,
.project-copy h3 {
  color: var(--zas-red);
  line-height: 1.1;
}

.project-gallery {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  margin-bottom: clamp(5rem, 10vw, 10rem);
}

.project-gallery__item {
  grid-column: span 8;
}

.project-gallery__item:nth-child(4n + 1) {
  grid-column: 5 / span 7;
}

.project-gallery__item:nth-child(4n + 2) {
  grid-column: 2 / span 7;
}

.project-gallery__item:nth-child(4n + 3) {
  grid-column: 5 / span 4;
}

.project-gallery__item:nth-child(4n + 4) {
  grid-column: 9 / span 4;
}

.project-gallery__item:nth-child(6n) {
  grid-column: 2 / span 10;
}

.project-gallery__item img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.single-entry {
  margin-inline: auto;
  max-width: 1260px;
  padding: clamp(2rem, 5vw, 5rem) var(--zas-gutter) clamp(5rem, 10vw, 10rem);
}

.single-entry__date {
  display: block;
  font-size: 0.85rem;
  margin-bottom: 2rem;
}

.single-entry .entry-title {
  margin-bottom: clamp(2.5rem, 5vw, 5rem);
}

.single-entry .entry-content {
  max-width: 1200px;
}

.single-entry .post-navigation {
  margin-inline: calc(50% - 50vw + var(--zas-gutter));
  width: calc(100vw - (2 * var(--zas-gutter)));
}

.post-navigation .nav-links {
  justify-content: space-between;
  width: 100%;
}

.post-navigation .nav-next {
  margin-left: auto;
  text-align: right;
}

.post-navigation .nav-previous a::before {
  content: "‹";
  font-size: 1.5em;
  margin-right: 0.75rem;
}

.post-navigation .nav-next a::after {
  content: "›";
  font-size: 1.5em;
  margin-left: 0.75rem;
}

.location-grid {
  display: grid;
  gap: clamp(2.5rem, 5vw, 5rem);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.location-card__title {
  font-size: 1.1rem;
  margin: 0 0 0.6rem;
}

.location-card p {
  margin: 0;
}

.global-presence {
  display: grid;
  gap: clamp(3rem, 7vw, 8rem);
  grid-template-columns: minmax(260px, 0.65fr) minmax(0, 1.35fr);
}

.global-presence img,
.global-presence .media-placeholder {
  min-height: 420px;
  object-fit: cover;
  width: 100%;
}

.global-presence__offices {
  display: grid;
  gap: 1.5rem;
  margin-top: 2rem;
}

.media-placeholder {
  align-items: center;
  background: #dededb;
  color: #70706e;
  display: flex;
  justify-content: center;
  min-height: 240px;
  padding: 2rem;
  text-align: center;
}

.pagination,
.posts-navigation {
  margin-top: clamp(4rem, 8vw, 8rem);
}

.nav-links {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-content: flex-end;
}

.page-numbers {
  color: var(--zas-red);
}

.empty-state {
  color: var(--zas-muted);
  font-size: 1.1rem;
  padding-block: 4rem;
}

.site-footer {
  margin-top: clamp(4rem, 8vw, 9rem);
  padding: 2.5rem var(--zas-gutter) 3.5rem;
}

.site-footer__inner {
  align-items: center;
  display: flex;
  gap: 2rem;
  justify-content: space-between;
  margin-inline: auto;
  max-width: var(--zas-content);
}

.footer-navigation ul {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem;
}

.footer-navigation a {
  color: var(--zas-red);
}

.social-links {
  align-items: center;
  display: flex;
  gap: 0.7rem;
}

.social-links a {
  align-items: center;
  display: inline-flex;
  height: 28px;
  justify-content: center;
  text-decoration: none;
  width: 28px;
}

.social-links svg {
  fill: currentColor;
  height: 23px;
  width: 23px;
}

.home-featured {
  margin-bottom: clamp(10rem, 20vw, 22rem);
  padding-block: 0;
}

.home-news {
  max-width: 1368px;
}

.home-news .card img,
.home-news .card .media-placeholder {
  aspect-ratio: 1.45 / 1;
}

.home-news .card-grid {
  column-gap: 10px;
}

.home-news .card__date {
  display: none;
}

.home-news .card__title {
  color: var(--zas-text);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.15;
  margin-top: 0.8rem;
  text-align: left;
}

.home-news .card__link {
  font-style: italic;
  text-align: left;
}

.archive-grid--news {
  padding-top: 2.25rem;
}

.archive-grid--news .card-grid {
  gap: clamp(4rem, 7vw, 8rem) clamp(2rem, 3vw, 3.2rem);
  margin-inline: auto;
  max-width: 1232px;
}

.archive-grid--news .card img,
.archive-grid--news .card .media-placeholder {
  aspect-ratio: 1 / 1;
}

.archive-grid--news .card__title {
  font-size: clamp(1.2rem, 1.45vw, 1.5rem);
}

.project-sector-landing {
  padding-top: clamp(6rem, 7vw, 7.5rem);
}

.sector-grid {
  gap: clamp(3rem, 4vw, 4.3rem);
  margin-inline: auto;
  max-width: 1232px;
}

.project-archive {
  padding-top: 2.25rem;
}

.project-grid {
  column-gap: 1.5rem;
  margin-inline: calc(50% - 50vw + var(--zas-gutter));
  width: calc(100vw - (2 * var(--zas-gutter)));
}

.project-card__title {
  font-size: 0.82rem;
}

.project-entry > .page-header {
  padding-block: 1.25rem 1.7rem;
}

.project-entry .entry-title {
  font-weight: 700;
}

.project-entry .project-details {
  gap: clamp(3rem, 4vw, 4rem);
  max-width: 1400px;
}

.project-entry .project-copy {
  font-size: 1rem;
}

.team-intro {
  max-width: 1368px;
  padding-top: 2rem;
}

.team-intro .page-title {
  margin-bottom: 2.5rem;
}

.team-intro__copy {
  max-width: none;
}

.team-intro__copy > * {
  max-width: none;
}

.team-intro + .section-block {
  padding-top: 13rem;
}

.award-table {
  border-top: 0;
  margin-inline: auto;
  max-width: 1120px;
}

.awards-hero {
  position: relative;
}

.awards-hero img {
  height: clamp(32rem, 45vw, 49rem);
  object-fit: cover;
  width: 100%;
}

.awards-hero__caption {
  color: var(--zas-text);
  font-size: 0.75rem;
  font-style: italic;
  margin: 0.5rem var(--zas-gutter) 0;
  text-align: right;
}

.awards-hero + .section-block {
  padding-top: 5rem;
}

.contact-page > .page-header,
.contact-page > .single-entry,
.contact-page > .content-shell {
  max-width: 1258px;
}

.contact-page .page-header,
.practice-page .page-header {
  margin-inline: auto;
}

.practice-page > article,
.practice-page > .section-block {
  max-width: 1368px;
}

.practice-page > article {
  padding-top: 8.6rem;
}

.practice-page .practice-intro {
  gap: clamp(3rem, 5vw, 5rem);
}

.contact-page > .page-header {
  padding-block: 8rem 3rem;
}

.contact-page > .section-block {
  padding-top: 2rem;
}

.search-form {
  display: flex;
  gap: 0.75rem;
  margin-top: 2rem;
  max-width: 42rem;
}

.search-form label {
  flex: 1;
}

.search-field,
.search-submit,
.comment-form input,
.comment-form textarea {
  background: var(--zas-surface);
  border: 1px solid rgba(17, 17, 17, 0.3);
  border-radius: 0;
  padding: 0.75rem;
  width: 100%;
}

.search-submit {
  background: var(--zas-red);
  color: #ffffff;
  cursor: pointer;
  width: auto;
}

.comments-area {
  margin-block: 4rem;
}

.comment-list {
  padding-left: 1.5rem;
}

@media (min-width: 781px) {
  .team-grid {
    column-gap: clamp(3rem, 4vw, 4.25rem);
    margin-inline: calc(50% - 50vw + 3.7rem);
    width: calc(100vw - 7.4rem);
  }
}

.alignwide {
  margin-left: min(-6vw, -3rem);
  margin-right: min(-6vw, -3rem);
  max-width: none;
}

.alignfull {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  max-width: 100vw;
  width: 100vw;
}

@media (max-width: 1100px) {
  :root {
    --zas-header-height: 7.5rem;
  }

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

  .primary-navigation > div > ul,
  .primary-navigation > ul {
    gap: 1.1rem;
  }

  .primary-navigation a {
    font-size: 0.82rem;
  }
}

@media (max-width: 780px) {
  :root {
    --zas-gutter: 1.5rem;
    --zas-header-height: 7.25rem;
  }

  body {
    font-size: 15px;
  }

  .site-header {
    align-items: flex-start;
    height: var(--zas-header-height);
    padding-top: 1.4rem;
  }

  .site-branding {
    max-width: 118px;
  }

  .site-branding img {
    max-height: 58px;
  }

  .menu-toggle {
    display: flex;
  }

  .primary-navigation {
    align-items: center;
    background: var(--zas-bg);
    color: var(--zas-red);
    display: none;
    inset: 0;
    justify-content: center;
    min-height: 100svh;
    overflow-y: auto;
    padding: 7rem 2rem 3rem;
    position: fixed;
    text-align: center;
    z-index: 101;
  }

  .menu-open .primary-navigation {
    display: flex;
  }

  .primary-navigation > div > ul,
  .primary-navigation > ul {
    display: grid;
    gap: 0.7rem;
  }

  .primary-navigation a {
    color: var(--zas-red);
    font-size: clamp(1.7rem, 8vw, 2.4rem);
    line-height: 1.25;
  }

  .primary-navigation .sub-menu {
    background: transparent;
    box-shadow: none;
    display: block;
    min-width: 0;
    padding: 0.5rem 0;
    position: static;
  }

  .primary-navigation .sub-menu a {
    font-size: 1rem;
    padding: 0.25rem;
  }

  .site-header--overlay .site-branding,
  .menu-open .site-header--overlay .site-branding {
    color: var(--zas-red);
  }

  .hero {
    min-height: 100svh;
  }

  .hero img {
    object-position: center;
  }

  .home-intro {
    margin-block: 2.5rem 6rem;
  }

  .home-intro__copy {
    font-size: 1.2rem;
  }

  .eyebrow-link {
    margin-top: 2.5rem;
  }

  .featured-projects,
  .card-grid,
  .service-row,
  .service-row:nth-child(even),
  .practice-intro,
  .project-details,
  .award-row,
  .location-grid,
  .global-presence {
    grid-template-columns: 1fr;
  }

  .featured-projects {
    display: grid;
    grid-auto-rows: auto;
    grid-template-rows: none;
    height: auto;
    margin-inline: var(--zas-gutter);
    max-width: none;
  }

  .home-featured {
    margin-bottom: 2rem;
  }

  .featured-project-card,
  .featured-project-card:nth-child(n) {
    grid-column: auto;
    grid-row: auto;
    min-height: 0;
  }

  .featured-project-card:nth-child(1) {
    aspect-ratio: 1.55 / 1;
    order: 4;
  }

  .featured-project-card:nth-child(2) {
    aspect-ratio: 2.74 / 1;
    order: 5;
  }

  .featured-project-card:nth-child(3) {
    aspect-ratio: 2.57 / 1;
    order: 1;
  }

  .featured-project-card:nth-child(4) {
    aspect-ratio: 1.78 / 1;
    order: 3;
  }

  .featured-project-card:nth-child(5) {
    aspect-ratio: 2.93 / 1;
    order: 2;
  }

  .service-row:nth-child(even) .service-row__media {
    order: 0;
  }

  .project-grid,
  .team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sector-grid {
    gap: 3.1rem;
    grid-template-columns: 1fr;
  }

  .sector-card__title {
    font-size: clamp(2rem, 9vw, 3rem);
  }

  .project-grid {
    gap: 1.6rem 0.45rem;
  }

  .project-card__title {
    font-size: 0.73rem;
  }

  .practice-intro__quote {
    margin-top: 2.5rem;
  }

  .timeline-item,
  .process-item {
    grid-template-columns: 1fr;
  }

  .project-meta {
    gap: 2rem;
  }

  .project-gallery {
    display: block;
  }

  .project-gallery__item {
    margin-bottom: 5px;
  }

  .project-gallery__item img {
    width: 100%;
  }

  .page-header {
    padding-top: 1.5rem;
  }

  .page-title,
  .entry-title {
    font-size: 1.65rem;
  }

  .archive-navigation,
  .post-navigation {
    font-size: 1.55rem;
    margin-top: 7rem;
  }

  .site-footer__inner {
    align-items: center;
    flex-direction: column;
    text-align: center;
  }

  .footer-navigation ul {
    justify-content: center;
  }

  .footer-navigation a {
    font-size: 1.25rem;
  }

  .global-presence img,
  .global-presence .media-placeholder {
    aspect-ratio: 1.43 / 1;
    min-height: 0;
  }

  .project-entry > .page-header {
    padding-block: 0.5rem 0.9rem;
  }

  .contact-page > .page-header {
    padding-block: 2rem 1.5rem;
  }

  .practice-page > article {
    padding-top: 2rem;
  }

  .project-entry .project-copy {
    font-size: 1.125rem;
  }

  .project-sector-landing {
    padding-top: 3rem;
  }

  .project-archive {
    padding-top: 0.5rem;
  }

  .project-archive .archive-navigation {
    font-size: clamp(2rem, 10vw, 2.6rem);
  }

  .team-intro {
    padding-top: 1rem;
  }

  .team-intro + .section-block {
    padding-top: 5rem;
  }

  .team-section-title {
    margin-top: 10rem;
  }

  .awards-hero {
    height: auto;
  }

  .awards-hero img {
    height: 62svh;
  }

  .award-table__head {
    display: none;
  }
}

@media (max-width: 480px) {
  .team-grid {
    gap: 2.5rem 0.8rem;
  }

  .team-card__name {
    font-size: 0.95rem;
  }

  .team-card__role {
    font-size: 0.72rem;
  }

  .award-row__project {
    font-size: 1.45rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

[dir="rtl"] .site-branding img {
  object-position: right top;
}

[dir="rtl"] .primary-navigation .sub-menu {
  left: 0;
  right: auto;
}

/* --------------------------------------------------------------------------
   ZASA reference pass — 1.0.3
   -------------------------------------------------------------------------- */

:root {
  --zas-bg: #f2f2f2;
  --zas-header-height: 8.45rem;
  --zas-reference-width: 1245px;
  --zas-ease: 260ms cubic-bezier(0.22, 1, 0.36, 1);
}

body {
  background: var(--zas-bg);
}

a,
button,
input,
textarea,
select,
.site-logo,
.menu-toggle::before,
.menu-toggle span {
  transition:
    color var(--zas-ease),
    background-color var(--zas-ease),
    border-color var(--zas-ease),
    opacity var(--zas-ease),
    transform var(--zas-ease);
}

.site-header {
  padding: clamp(1.75rem, 2.65vw, 2.45rem) clamp(1.75rem, 2.2vw, 2.5rem);
}

.site-branding {
  max-width: clamp(118px, 10.5vw, 158px);
}

.site-branding a:hover .site-logo,
.site-branding a:focus-visible .site-logo {
  transform: scale(1.015);
}

.primary-navigation a {
  position: relative;
}

.primary-navigation > ul > li > a::after,
.primary-navigation > div > ul > li > a::after {
  background: currentColor;
  bottom: -0.33rem;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 360ms var(--zas-motion-ease);
  width: 100%;
}

.primary-navigation > ul > li > a:hover::after,
.primary-navigation > ul > li > a:focus-visible::after,
.primary-navigation > ul > li.current-menu-item > a::after,
.primary-navigation > div > ul > li > a:hover::after,
.primary-navigation > div > ul > li > a:focus-visible::after,
.primary-navigation > div > ul > li.current-menu-item > a::after {
  transform: scaleX(1);
  transform-origin: left center;
}

.primary-navigation .current-menu-item > a,
.primary-navigation .current-menu-ancestor > a,
.primary-navigation a[aria-current="page"] {
  text-decoration: none;
}

.hero {
  aspect-ratio: 1.91 / 1;
  min-height: 0;
}

.hero__link {
  display: block;
  height: 100%;
}

.hero__image {
  transition: transform 1.1s var(--zas-motion-ease);
}

.hero:hover .hero__image {
  transform: scale(1.008);
}

.home-intro {
  margin-block: clamp(4.5rem, 6vw, 6rem) clamp(5rem, 7vw, 7rem);
  max-width: 1180px;
}

.home-intro__copy {
  font-size: clamp(1rem, 1.2vw, 1.12rem);
  line-height: 1.32;
}

.home-intro__copy p {
  margin: 0;
}

.home-intro__copy em a,
.home-intro__copy a {
  color: var(--zas-red);
}

.eyebrow-link {
  font-size: 0.68rem;
  margin-top: 2.65rem;
  padding-inline: 1.65rem;
  position: relative;
  text-decoration: none;
}

.eyebrow-link::before {
  background: currentColor;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  top: 50%;
  transition: width var(--zas-ease);
  width: 1.15rem;
}

.eyebrow-link:hover::before,
.eyebrow-link:focus-visible::before {
  width: 1.4rem;
}

.featured-projects {
  gap: 6px;
  height: clamp(710px, 62vw, 850px);
  max-width: 1180px;
}

.featured-project-card {
  min-height: 0;
}

.featured-project-card img,
.featured-project-card .media-placeholder {
  transition: filter 500ms ease, transform 800ms var(--zas-motion-ease);
}

.featured-project-card:hover img,
.featured-project-card:focus-within img {
  filter: brightness(0.92);
  transform: scale(1.025);
}

.featured-project-card__title {
  bottom: 0.72rem;
  font-size: 0.72rem;
  left: 0.72rem;
}

.home-featured {
  margin-bottom: clamp(9rem, 16vw, 13rem);
}

.home-news {
  max-width: 1180px;
  padding-block: 0;
}

.home-news .section-title,
.home-story .section-title {
  font-size: clamp(1.25rem, 1.45vw, 1.55rem);
  margin-bottom: 1.65rem;
}

.home-news .card-grid {
  column-gap: 6px;
}

.home-news .card__title {
  font-size: 0.78rem;
  margin-top: 0.65rem;
}

.home-news .card__link {
  font-size: 0.72rem;
  margin-top: 0.55rem;
}

.card > a:first-child,
.project-card > a:first-child {
  display: block;
  overflow: hidden;
}

.card img,
.project-card img {
  transition: filter 450ms ease, transform 700ms var(--zas-motion-ease);
}

.card:hover img,
.card:focus-within img,
.project-card:hover img,
.project-card:focus-within img {
  filter: brightness(0.92);
  transform: scale(1.025);
}

.home-story {
  margin-top: clamp(9rem, 16vw, 14rem);
  max-width: 1180px;
}

.home-story__intro {
  font-size: 0.8rem;
  line-height: 1.25;
  margin-bottom: 1.15rem;
}

.home-story__intro p {
  margin: 0;
}

.home-story__grid {
  align-items: stretch;
  display: grid;
  gap: 6px;
  grid-template-columns: minmax(230px, 0.6fr) minmax(0, 1.4fr);
}

.home-story__copy {
  font-size: 0.75rem;
  line-height: 1.28;
  padding-right: clamp(1rem, 2.5vw, 2.5rem);
}

.home-story__copy p {
  margin: 0 0 1.15rem;
}

.home-story__media img,
.home-story__media .media-placeholder {
  height: 100%;
  min-height: 390px;
  object-fit: cover;
  width: 100%;
}

/* Contact */
.contact-page {
  min-height: calc(100svh - var(--zas-header-height));
}

.contact-hero,
.contact-offices {
  max-width: 1200px;
}

.contact-hero {
  padding-block: clamp(6rem, 8.25vw, 7.1rem) clamp(4rem, 5.5vw, 5rem);
}

.contact-hero__title {
  color: var(--zas-red);
  font-size: clamp(2rem, 2.95vw, 2.5rem);
  font-weight: 400;
  line-height: 1.05;
  margin: 0;
}

.contact-hero__intro {
  margin-top: 2rem;
  max-width: 760px;
}

.contact-offices {
  padding-bottom: clamp(7rem, 12vw, 12rem);
}

.contact-office-grid {
  display: grid;
  gap: clamp(3rem, 8vw, 7.5rem);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.contact-office {
  font-size: clamp(0.95rem, 1.1vw, 1.05rem);
  line-height: 1.28;
}

.contact-office__title,
.contact-office__group h4 {
  font-size: inherit;
  line-height: inherit;
  margin: 0;
}

.contact-office__title em {
  font-weight: 700;
}

.contact-office__address p,
.contact-office__group p {
  margin: 0;
}

.contact-office a {
  text-decoration-color: var(--zas-red);
}

.contact-office__group {
  margin-top: 2.25rem;
}

.contact-office__group a {
  color: var(--zas-red);
}

/* Project category landing */
.project-category-landing {
  max-width: none;
  padding: clamp(5.25rem, 6.6vw, 5.75rem) clamp(2rem, 3.75vw, 4rem) clamp(8rem, 13vw, 13rem);
}

.project-category-grid {
  display: grid;
  gap: clamp(2.75rem, 5vw, 4.3rem);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-inline: auto;
  max-width: var(--zas-reference-width);
}

.project-category-card {
  aspect-ratio: 1 / 1;
  background: #888;
  overflow: hidden;
  position: relative;
  transition: transform 600ms var(--zas-motion-ease);
}

.project-category-card a {
  align-items: center;
  color: #fff;
  display: flex;
  height: 100%;
  justify-content: center;
  text-decoration: none;
}

.project-category-card img,
.project-category-card .media-placeholder {
  height: 100%;
  inset: 0;
  object-fit: cover;
  position: absolute;
  transition: filter 500ms ease, transform 800ms var(--zas-motion-ease);
  width: 100%;
}

.project-category-card .media-placeholder span {
  opacity: 0;
}

.project-category-card__shade {
  background: rgba(0, 0, 0, 0.42);
  inset: 0;
  position: absolute;
  transition: background-color 500ms ease;
}

.project-category-card__title {
  font-size: clamp(2rem, 2.8vw, 2.75rem);
  font-weight: 400;
  line-height: 1;
  margin: 0;
  position: relative;
  z-index: 1;
}

.project-category-card:hover,
.project-category-card:focus-within {
  transform: translateY(-3px);
}

.project-category-card:hover img,
.project-category-card:focus-within img {
  transform: scale(1.035);
}

.project-category-card:hover .project-category-card__shade,
.project-category-card:focus-within .project-category-card__shade {
  background: rgba(0, 0, 0, 0.28);
}

/* Project archive and single */
.project-archive {
  max-width: none;
  padding: 1.25rem clamp(1.6rem, 2vw, 2.25rem) clamp(5rem, 8vw, 8rem);
}

.project-grid {
  column-gap: clamp(1rem, 1.35vw, 1.5rem);
  margin-inline: 0;
  row-gap: clamp(2.2rem, 3.2vw, 3.4rem);
  width: 100%;
}

.project-card__title {
  font-size: clamp(0.72rem, 0.78vw, 0.84rem);
  margin-top: 0.72rem;
}

.project-category-navigation {
  font-size: clamp(1.75rem, 2.25vw, 2.5rem);
  margin-inline: 0 !important;
  width: 100% !important;
}

.project-category-navigation a span {
  display: inline-block;
  transition: transform var(--zas-ease);
}

.project-category-navigation .nav-previous:hover span,
.project-category-navigation .nav-previous:focus-visible span {
  transform: translateX(-0.25rem);
}

.project-category-navigation .nav-next:hover span,
.project-category-navigation .nav-next:focus-visible span {
  transform: translateX(0.25rem);
}

.project-entry > .page-header {
  padding-block: 1.35rem 1.9rem;
}

.project-entry .entry-title {
  font-size: clamp(1.65rem, 2.35vw, 2.25rem);
}

.project-meta__item dt {
  margin-bottom: 0.65rem;
}

.project-gallery__item {
  overflow: hidden;
}

.project-gallery__item img {
  transition: transform 900ms var(--zas-motion-ease);
}

.project-gallery__item:hover img {
  transform: scale(1.012);
}

/* Footer */
.site-footer {
  margin-top: clamp(4rem, 7vw, 7rem);
  padding-bottom: 2.25rem;
}

.site-footer__copyright:empty {
  display: none;
}

.site-footer__copyright {
  display: none;
}

.site-footer__inner {
  justify-content: flex-end;
}

.site-footer__logo,
.footer-navigation {
  display: none;
}

.footer-navigation a,
.social-links a {
  transition: color var(--zas-ease), opacity var(--zas-ease), transform var(--zas-ease);
}

.social-links a:hover,
.social-links a:focus-visible {
  transform: translateY(-2px);
}

/* Reveal motion follows document order. Content remains visible without JS. */
html.has-reveal-motion .zas-reveal {
  opacity: 0;
  transform: translate3d(0, 1.25rem, 0);
  transition:
    opacity var(--zas-motion-duration) var(--zas-motion-ease) var(--zas-reveal-delay, 0ms),
    transform var(--zas-motion-duration) var(--zas-motion-ease) var(--zas-reveal-delay, 0ms);
  will-change: opacity, transform;
}

html.has-reveal-motion .zas-reveal--scale {
  transform: translate3d(0, 0.5rem, 0) scale(0.94);
}

html.has-reveal-motion .zas-reveal.is-visible {
  opacity: 1;
  transform: none;
  will-change: auto;
}

@media (max-width: 780px) {
  :root {
    --zas-gutter: 1.25rem;
    --zas-header-height: 5.75rem;
    --zas-motion-duration: 700ms;
  }

  body {
    font-size: 14px;
  }

  .site-header {
    height: var(--zas-header-height);
    padding: 1.2rem 1.25rem;
  }

  .site-branding {
    max-width: 106px;
  }

  .site-branding img {
    max-height: 48px;
  }

  .menu-toggle {
    height: 38px;
    width: 43px;
  }

  .menu-toggle::before,
  .menu-toggle span {
    width: 31px;
  }

  .menu-toggle::before {
    top: 12px;
  }

  .menu-toggle span {
    top: 25px;
  }

  .menu-open .menu-toggle::before,
  .menu-open .menu-toggle span {
    top: 19px;
  }

  .primary-navigation {
    display: flex;
    opacity: 0;
    pointer-events: none;
    transform: translate3d(0, -1rem, 0);
    transition:
      opacity 420ms var(--zas-motion-ease),
      transform 420ms var(--zas-motion-ease),
      visibility 0s linear 420ms;
    visibility: hidden;
  }

  .menu-open .primary-navigation {
    opacity: 1;
    pointer-events: auto;
    transform: none;
    transition-delay: 0s;
    visibility: visible;
  }

  .primary-navigation > ul > li,
  .primary-navigation > div > ul > li {
    opacity: 0;
    transform: translateY(0.8rem);
    transition: opacity 420ms var(--zas-motion-ease), transform 420ms var(--zas-motion-ease);
  }

  .menu-open .primary-navigation > ul > li,
  .menu-open .primary-navigation > div > ul > li {
    opacity: 1;
    transform: none;
  }

  .menu-open .primary-navigation li:nth-child(1) { transition-delay: 80ms; }
  .menu-open .primary-navigation li:nth-child(2) { transition-delay: 120ms; }
  .menu-open .primary-navigation li:nth-child(3) { transition-delay: 160ms; }
  .menu-open .primary-navigation li:nth-child(4) { transition-delay: 200ms; }
  .menu-open .primary-navigation li:nth-child(5) { transition-delay: 240ms; }
  .menu-open .primary-navigation li:nth-child(6) { transition-delay: 280ms; }
  .menu-open .primary-navigation li:nth-child(7) { transition-delay: 320ms; }

  .hero {
    aspect-ratio: auto;
    min-height: 100svh;
  }

  .hero img {
    object-position: 50% 50%;
  }

  .home-intro {
    margin-block: 2.35rem 4.75rem;
  }

  .home-intro__copy {
    font-size: 1rem;
  }

  .eyebrow-link {
    font-size: 0.62rem;
    margin-top: 2.2rem;
  }

  .featured-projects {
    gap: 5px;
    margin-inline: var(--zas-gutter);
  }

  .featured-project-card__title {
    bottom: 0.45rem;
    font-size: 0.62rem;
    left: 0.42rem;
  }

  .home-featured {
    margin-bottom: 6.75rem;
  }

  .home-news .section-title,
  .home-story .section-title {
    font-size: 1.18rem;
    margin-bottom: 1.2rem;
  }

  .home-news .card-grid {
    gap: 2.15rem;
  }

  .home-news .card__title {
    font-size: 0.73rem;
  }

  .home-news .card__link {
    font-size: 0.66rem;
  }

  .home-story {
    margin-top: 7rem;
  }

  .home-story__intro {
    font-size: 0.72rem;
  }

  .home-story__grid {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  .home-story__copy {
    font-size: 0.72rem;
    order: 2;
    padding-right: 0;
  }

  .home-story__media {
    order: 1;
  }

  .home-story__media img,
  .home-story__media .media-placeholder {
    aspect-ratio: 1.42 / 1;
    min-height: 0;
  }

  .contact-hero {
    padding-block: 2.7rem 3.5rem;
  }

  .contact-hero__title {
    font-size: 1.8rem;
  }

  .contact-offices {
    padding-bottom: 5rem;
  }

  .contact-office-grid {
    gap: 3.8rem;
    grid-template-columns: 1fr;
  }

  .contact-office {
    font-size: 1rem;
  }

  .contact-office__group {
    margin-top: 1.8rem;
  }

  .project-category-landing {
    padding: 1.25rem 1.3rem 5rem;
  }

  .project-category-grid {
    gap: 3rem;
    grid-template-columns: 1fr;
  }

  .project-category-card__title {
    font-size: clamp(2rem, 9vw, 2.6rem);
  }

  .project-archive {
    padding: 3.25rem 1.25rem 4rem;
  }

  .project-grid {
    column-gap: 0.65rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 2.25rem;
  }

  .project-card__title {
    font-size: 0.82rem;
    line-height: 1.28;
    margin-top: 0.75rem;
  }

  .project-category-navigation {
    font-size: clamp(2rem, 10vw, 2.8rem);
    margin-top: 6.5rem;
  }

  .project-entry > .page-header {
    padding-block: 0.25rem 1.15rem;
  }

  .project-entry .entry-title {
    font-size: 1.65rem;
    text-align: left;
  }

  .project-details {
    gap: 3.6rem;
    margin-block: 3rem 5rem;
  }

  .project-meta__item dt {
    font-size: 0.78rem;
  }

  .project-meta__item dd,
  .project-entry .project-copy {
    font-size: 0.93rem;
  }

  .site-footer {
    margin-top: 4rem;
    padding-inline: 1.25rem;
  }

  .site-footer__inner {
    gap: 2.35rem;
  }

  .footer-navigation {
    display: block;
  }

  .footer-navigation ul {
    gap: 0.75rem 1.1rem;
  }

  .footer-navigation a {
    font-size: 1.05rem;
  }

  html.has-reveal-motion .zas-reveal {
    transform: translate3d(0, 1.6rem, 0);
  }

  html.has-reveal-motion .zas-reveal--scale {
    transform: translate3d(0, 0.65rem, 0) scale(0.93);
  }

  html.has-reveal-motion .zas-reveal.is-visible {
    transform: none;
  }
}

@media (max-width: 480px) {
  .home-story__copy,
  .home-story__intro {
    font-size: 0.68rem;
  }

  .project-archive {
    padding-inline: 0.9rem;
  }

  .project-grid {
    column-gap: 0.45rem;
  }

  .project-card__title {
    font-size: 0.73rem;
  }
}

/* --------------------------------------------------------------------------
   ZAS design system — 1.0.5
   Shared typography, title alignment, metadata, contact, and responsive rules.
   -------------------------------------------------------------------------- */

:root {
  --zas-space-1: clamp(0.75rem, 1vw, 1rem);
  --zas-space-2: clamp(1.25rem, 2vw, 2rem);
  --zas-space-3: clamp(2rem, 4vw, 4rem);
  --zas-space-4: clamp(4rem, 8vw, 8rem);
  --zas-readable: 760px;
}

body,
button,
input,
select,
textarea {
  font-family: var(--zas-font-body);
}

.site-logo--fallback {
  height: auto;
  max-height: 86px;
  width: clamp(118px, 10.5vw, 158px);
}

.page-header,
.page-header--left,
.team-intro,
.contact-hero {
  text-align: center;
}

.page-header--left {
  max-width: none;
}

.page-header .page-title,
.page-header .entry-title,
.team-intro > .page-title,
.contact-hero__title {
  margin-inline: auto;
  text-align: center;
}

.team-intro__copy {
  text-align: left;
}

.team-card {
  cursor: default;
}

.team-card__portrait {
  margin: 0;
  overflow: hidden;
}

.team-card__portrait img {
  transition: filter var(--zas-ease), transform 520ms var(--zas-motion-ease);
}

.project-entry .entry-title {
  font-family: var(--zas-font-project);
  font-size: clamp(1.3rem, 2vw, 2.15rem);
  font-weight: 400;
  letter-spacing: 0.015em;
  line-height: 1.35;
  margin-inline: auto;
  max-width: min(92vw, 1100px);
  text-align: center;
}

.project-details > *,
.practice-intro > *,
.service-row > * {
  min-width: 0;
}

.project-meta__item {
  overflow-wrap: anywhere;
}

.project-meta__item dd > p:first-child {
  margin-top: 0;
}

.project-meta__item dd > p:last-child {
  margin-bottom: 0;
}

.project-meta__item dd a,
.project-meta__subitem strong {
  color: var(--zas-red);
}

.project-meta__subitem {
  display: inline-block;
  margin-bottom: 0.25rem;
}

.contact-hero {
  padding-block: clamp(4rem, 7vw, 7rem) clamp(3rem, 5vw, 5rem);
}

.contact-intro {
  margin-bottom: var(--zas-space-3);
  max-width: var(--zas-readable);
  text-align: center;
}

.contact-offices {
  max-width: 1200px;
  padding-bottom: clamp(5rem, 10vw, 10rem);
}

.contact-office-grid {
  align-items: start;
}

.contact-office__website {
  margin-top: 2.25rem;
}

.contact-office__website a {
  color: var(--zas-red);
  font-weight: 600;
}

.service-row img,
.service-row .media-placeholder,
.practice-intro img,
.practice-intro .media-placeholder,
.project-hero img,
.project-gallery img {
  max-width: 100%;
}

@media (max-width: 1100px) {
  .service-row,
  .service-row:nth-child(even),
  .practice-intro {
    gap: var(--zas-space-2);
    grid-template-columns: 1fr;
  }

  .service-row:nth-child(even) .service-row__media {
    order: 0;
  }

  .service-row__copy,
  .practice-intro__copy {
    max-width: var(--zas-readable);
  }

  .practice-page > article {
    padding-top: var(--zas-space-2);
  }

  .contact-office-grid {
    gap: var(--zas-space-3);
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 780px) {
  :root {
    --zas-gutter: 1.25rem;
  }

  .page-header,
  .page-header--left,
  .team-intro,
  .contact-hero {
    padding-block: 2.25rem 2.75rem;
  }

  .page-header .page-title,
  .team-intro > .page-title,
  .contact-hero__title {
    font-size: clamp(1.65rem, 7vw, 2rem);
  }

  .project-entry > .page-header {
    padding-block: 0.6rem 1.2rem;
  }

  .project-entry .entry-title {
    font-size: clamp(1.05rem, 5.1vw, 1.45rem);
    line-height: 1.45;
    padding-inline: 0.5rem;
    text-align: center;
  }

  .project-details {
    gap: 3rem;
    grid-template-columns: 1fr;
    margin-block: 3rem 5rem;
  }

  .project-meta {
    gap: 1.9rem;
  }

  .project-meta__item dt {
    margin-bottom: 0.55rem;
  }

  .team-intro + .section-block {
    padding-top: 3.5rem;
  }

  .team-card__portrait img,
  .team-card__portrait .media-placeholder {
    width: 100%;
  }

  .service-list {
    gap: 4.5rem;
  }

  .service-row {
    gap: 1.5rem;
  }

  .service-row__title {
    font-size: clamp(1.55rem, 7vw, 2rem);
    margin-bottom: 1.25rem;
  }

  .service-row__copy,
  .practice-intro__copy,
  .entry-content,
  .project-copy {
    font-size: 1rem;
    overflow-wrap: anywhere;
  }

  .practice-page > article {
    padding-top: 0;
  }

  .practice-intro {
    gap: 1.75rem;
  }

  .practice-intro__quote {
    font-size: 1.45rem;
    margin-top: 2rem;
  }

  .contact-intro {
    margin-bottom: 2.5rem;
    text-align: left;
  }

  .contact-office-grid {
    gap: 4rem;
    grid-template-columns: 1fr;
  }

  .contact-office {
    font-size: 1rem;
  }

  .contact-office__group,
  .contact-office__website {
    margin-top: 1.75rem;
  }
}

@media (max-width: 420px) {
  .team-grid {
    gap-inline: 0.65rem;
  }

  .team-card__name {
    font-size: 0.88rem;
  }

  .team-card__role {
    font-size: 0.7rem;
  }
}

/* --------------------------------------------------------------------------
   Archive and footer refinements — 1.0.6
   -------------------------------------------------------------------------- */

.archive-grid--news.content-shell {
  max-width: none;
  padding-inline: var(--zas-gutter);
  width: 100%;
}

.archive-grid--news .card-grid {
  margin-inline: 0;
  max-width: none;
  width: 100%;
}

.project-category-landing.content-shell {
  max-width: none;
  padding-inline: var(--zas-gutter);
  width: 100%;
}

.project-category-grid {
  margin-inline: 0;
  max-width: none;
  width: 100%;
}

.project-category-card__title {
  font-size: clamp(1.45rem, 2.35vw, 2.75rem);
  max-width: 100%;
  overflow-wrap: anywhere;
  padding: 1rem;
  text-align: center;
}

html.has-endless-scroll .has-endless-archive .pagination,
html.has-endless-scroll .has-endless-archive .posts-navigation {
  display: none;
}

.zas-infinite-sentinel {
  align-items: center;
  display: flex;
  height: clamp(4rem, 8vw, 7rem);
  justify-content: center;
  width: 100%;
}

.zas-infinite-sentinel__mark {
  animation: zas-infinite-pulse 1.25s ease-in-out infinite alternate;
  background: var(--zas-red);
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  height: 0.58rem;
  opacity: 0.65;
  padding: 0;
  transform: scale(0.72);
  width: 0.58rem;
}

.zas-infinite-sentinel__mark:disabled {
  cursor: progress;
}

.zas-infinite-sentinel__mark:focus-visible {
  outline-offset: 6px;
}

@keyframes zas-infinite-pulse {
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.site-footer {
  display: block;
}

.site-footer__inner {
  flex-wrap: wrap;
  justify-content: space-between;
}

.site-footer__logo,
.footer-navigation,
.site-footer__copyright {
  display: block;
}

.post-navigation .nav-links,
.archive-navigation {
  flex-wrap: wrap;
  gap: 1rem 2rem;
}

.post-navigation .nav-previous,
.post-navigation .nav-next,
.archive-navigation > .nav-previous,
.archive-navigation > .nav-next {
  flex: 1 1 18rem;
  min-width: 0;
  overflow-wrap: anywhere;
}

.post-navigation .nav-next,
.archive-navigation > .nav-next {
  margin-left: auto;
  text-align: right;
}

@media (max-width: 780px) {
  .archive-grid--news.content-shell,
  .project-category-landing.content-shell {
    padding-inline: 1.25rem;
  }

  .post-navigation,
  .archive-navigation,
  .project-category-navigation {
    font-size: clamp(0.98rem, 4.2vw, 1.2rem);
    line-height: 1.3;
  }

  .post-navigation .nav-previous,
  .post-navigation .nav-next,
  .archive-navigation > .nav-previous,
  .archive-navigation > .nav-next {
    flex-basis: 12rem;
  }

  .post-navigation .nav-previous a::before {
    font-size: 1.1em;
    margin-right: 0.4rem;
  }

  .post-navigation .nav-next a::after {
    font-size: 1.1em;
    margin-left: 0.4rem;
  }

  .site-footer__inner {
    justify-content: center;
  }

  .site-footer__copyright {
    margin: 0;
    text-align: center;
  }
}

@media (max-width: 420px) {
  .post-navigation .nav-previous,
  .post-navigation .nav-next,
  .archive-navigation > .nav-previous,
  .archive-navigation > .nav-next {
    flex-basis: 100%;
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .zas-infinite-sentinel__mark {
    animation: none;
  }
}

/* --------------------------------------------------------------------------
   Homepage, Contact, and Awards refinement — 1.0.7
   -------------------------------------------------------------------------- */

/* Homepage: ZASA composition with ZAS Group content. */
.home-page .home-intro {
  margin-block: clamp(4.25rem, 6vw, 6.25rem) clamp(4.75rem, 7vw, 7rem);
  min-height: 0;
}

.home-page .home-intro__copy {
  font-size: clamp(1rem, 1.18vw, 1.12rem);
  line-height: 1.35;
  max-width: none;
}

.home-page .home-intro__copy img,
.home-page .home-intro__copy picture,
.home-page .home-intro__copy figure {
  display: none;
}

.home-page .featured-projects {
  height: clamp(660px, 62vw, 850px);
  width: min(1180px, calc(100% - (2 * var(--zas-gutter))));
}

.home-page .home-featured {
  margin-bottom: clamp(7.5rem, 13vw, 11rem);
}

.home-page .home-news,
.home-page .home-story {
  max-width: 1180px;
}

.home-page .home-story {
  margin-block: clamp(8rem, 13vw, 11rem) clamp(5rem, 9vw, 8rem);
}

.home-page .home-story__media {
  background: #dededb;
  overflow: hidden;
}

.home-page .home-story__media img {
  transition: filter 500ms ease, transform 850ms var(--zas-motion-ease);
}

.home-page .home-story__media:hover img {
  filter: brightness(0.94);
  transform: scale(1.012);
}

/* Contact: quiet divisions and reusable spacing/color tokens. */
.contact-page .contact-hero {
  max-width: 1180px;
  padding-block: clamp(5rem, 7vw, 7rem) clamp(3.5rem, 5vw, 5rem);
}

.contact-page .contact-intro {
  margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.contact-offices {
  max-width: 1180px;
  padding-bottom: clamp(6rem, 10vw, 10rem);
}

.contact-offices__heading {
  border-top: 1px solid var(--zas-line);
  display: grid;
  gap: var(--zas-space-2);
  grid-template-columns: minmax(150px, 0.55fr) minmax(0, 1.45fr);
  margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
  padding-top: var(--zas-space-2);
}

.contact-offices__eyebrow {
  color: var(--zas-red);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  margin: 0;
  text-transform: uppercase;
}

.contact-offices__heading h2 {
  color: var(--zas-red);
  font-size: clamp(1.35rem, 2vw, 2rem);
  font-weight: 400;
  line-height: 1.15;
  margin: 0 0 0.8rem;
}

.contact-offices__heading p:last-child {
  line-height: 1.4;
  margin: 0;
  max-width: 700px;
}

.contact-office-grid {
  border-bottom: 1px solid rgba(17, 17, 17, 0.2);
  border-top: 1px solid rgba(17, 17, 17, 0.2);
  gap: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.contact-office {
  min-width: 0;
  padding: clamp(1.75rem, 3vw, 2.75rem);
}

.contact-office + .contact-office {
  border-left: 1px solid rgba(17, 17, 17, 0.2);
}

.contact-office__region,
.contact-office__label {
  color: var(--zas-red);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.055em;
  margin: 0 0 0.7rem;
  text-transform: uppercase;
}

.contact-office__title {
  font-size: clamp(1.08rem, 1.35vw, 1.28rem);
}

.contact-office__title em {
  font-size: 0.82em;
}

.contact-office__section {
  border-top: 1px solid rgba(17, 17, 17, 0.14);
  margin-top: 1.8rem;
  padding-top: 1.25rem;
}

.contact-office__group,
.contact-office__website {
  margin-top: 1.8rem;
}

.contact-office__website {
  margin-bottom: 0;
}

/* Awards: image-led landing followed by the ZASA project/award table. */
.awards-hero {
  aspect-ratio: auto;
  background: #1a1a1a;
  min-height: 0;
  overflow: hidden;
}

.awards-hero img,
.awards-hero .media-placeholder {
  aspect-ratio: 1.91 / 1;
  display: block;
  height: auto;
  object-fit: cover;
  overflow: hidden;
  transition: transform 1.1s var(--zas-motion-ease);
  width: 100%;
}

.awards-hero:hover img {
  transform: scale(1.008);
}

.awards-hero__caption {
  background: var(--zas-bg);
  font-size: 0.67rem;
  margin: 0;
  padding: 0.45rem var(--zas-gutter) 0;
}

.awards-list.section-block {
  max-width: 1240px;
  padding-block: clamp(4rem, 7vw, 6.5rem) clamp(6rem, 11vw, 10rem);
}

.awards-list .award-table {
  border-top: 0;
  max-width: none;
  width: 100%;
}

.awards-list .award-table__head,
.awards-list .award-row {
  gap: clamp(2rem, 5vw, 5.5rem);
  grid-template-columns: minmax(190px, 0.8fr) minmax(0, 1.7fr);
}

.awards-list .award-table__head {
  border-bottom: 1px solid var(--zas-line);
  color: var(--zas-text);
  display: grid;
  font-size: 0.72rem;
  padding-bottom: 1.6rem;
}

.awards-list .award-row {
  border-bottom: 1px solid var(--zas-line);
  padding-block: clamp(2rem, 3.5vw, 3.4rem);
}

.awards-list .award-row__project {
  font-size: clamp(1.05rem, 1.35vw, 1.3rem);
  line-height: 1.13;
}

.awards-list .award-row__project a {
  color: var(--zas-red);
}

.award-row__list {
  font-size: clamp(0.78rem, 0.9vw, 0.9rem);
  line-height: 1.4;
  list-style: none;
  margin: 0;
  padding: 0;
}

.award-row__list li + li {
  margin-top: 0.65rem;
}

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

  .contact-office:nth-child(3) {
    border-left: 0;
    border-top: 1px solid rgba(17, 17, 17, 0.2);
    grid-column: 1 / -1;
  }
}

@media (max-width: 780px) {
  .home-page .home-intro {
    margin-block: 2.75rem 4.5rem;
  }

  .home-page .featured-projects {
    height: auto;
    width: calc(100% - (2 * var(--zas-gutter)));
  }

  .home-page .home-featured {
    margin-bottom: 5.5rem;
  }

  .home-page .home-story {
    margin-block: 6.5rem 4rem;
  }

  .contact-offices__heading {
    gap: 1rem;
    grid-template-columns: 1fr;
  }

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

  .contact-office,
  .contact-office:nth-child(3) {
    border-left: 0;
    grid-column: auto;
  }

  .contact-office + .contact-office,
  .contact-office:nth-child(3) {
    border-top: 1px solid rgba(17, 17, 17, 0.2);
  }

  .awards-hero img,
  .awards-hero .media-placeholder {
    aspect-ratio: 4 / 3;
  }

  .awards-list .award-table__head {
    display: none;
  }

  .awards-list .award-row {
    gap: 1.5rem;
    grid-template-columns: 1fr;
    padding-block: 2.25rem;
  }

  .awards-list .award-row__project {
    font-size: 1.15rem;
  }

  .award-row__list {
    font-size: 0.88rem;
  }
}

/* --------------------------------------------------------------------------
   Dark mode, curated imagery, and minimal Project landing — 1.0.8
   -------------------------------------------------------------------------- */

/* Compact, accessible color-mode control. */
.site-header__controls {
  align-items: center;
  display: flex;
  gap: clamp(0.7rem, 1.2vw, 1.1rem);
  min-width: 0;
}

.theme-toggle {
  align-items: center;
  background: transparent;
  border: 0;
  cursor: pointer;
  display: inline-flex;
  flex: 0 0 auto;
  height: 2rem;
  justify-content: center;
  padding: 0;
  position: relative;
  width: 2.45rem;
  z-index: 103;
}

html[data-theme="dark"] {
  color-scheme: dark;
  --zas-bg: #000000;
  --zas-surface: #0d0d0d;
  --zas-text: #ffffff;
  --zas-muted: #b8b8b8;
  --zas-line: rgba(255, 255, 255, 0.28);
}

body,
.site-header,
.primary-navigation,
.site-footer,
.awards-hero__caption,
.contact-office,
.search-field,
.comment-form input,
.comment-form textarea {
  transition:
    background-color 360ms var(--zas-motion-ease),
    border-color 360ms var(--zas-motion-ease),
    color 360ms var(--zas-motion-ease);
}

html[data-theme="dark"] body,
html[data-theme="dark"] .site-main,
html[data-theme="dark"] .site-header:not(.site-header--overlay),
html[data-theme="dark"] .site-footer {
  background-color: #000000;
  color: #ffffff;
}

html[data-theme="dark"] .primary-navigation .sub-menu,
html[data-theme="dark"] .search-field,
html[data-theme="dark"] .comment-form input,
html[data-theme="dark"] .comment-form textarea {
  background-color: var(--zas-surface);
  color: #ffffff;
}

html[data-theme="dark"] .primary-navigation {
  background-color: transparent;
  color: #ffffff;
}

html[data-theme="dark"] .search-field,
html[data-theme="dark"] .search-submit,
html[data-theme="dark"] .comment-form input,
html[data-theme="dark"] .comment-form textarea,
html[data-theme="dark"] .contact-office-grid,
html[data-theme="dark"] .contact-office,
html[data-theme="dark"] .contact-office__section {
  border-color: rgba(255, 255, 255, 0.26);
}

html[data-theme="dark"] .media-placeholder,
html[data-theme="dark"] .home-story__media {
  background: #151515;
  color: var(--zas-muted);
}

html[data-theme="dark"] .awards-hero__caption {
  background: #000000;
  color: #ffffff;
}

html[data-theme="dark"] .empty-state,
html[data-theme="dark"] .card__date {
  color: var(--zas-muted);
}

/* Who We Are: a quiet portfolio strip using approved ZAS imagery. */
.practice-showcase {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: clamp(3rem, 6vw, 6rem);
  max-width: 1368px;
}

.practice-showcase__item {
  background: #151515;
  overflow: hidden;
}

.practice-showcase__item img {
  aspect-ratio: 16 / 9;
  height: 100%;
  object-fit: cover;
  transition: filter 500ms ease, transform 850ms var(--zas-motion-ease);
  width: 100%;
}

.practice-showcase__item:hover img {
  filter: brightness(0.94);
  transform: scale(1.012);
}

.practice-page .service-row img,
.service-list .service-row img {
  aspect-ratio: 16 / 9;
}

/* Projects: smaller labels, deliberate imagery, and less visual noise. */
.project-category-landing.content-shell {
  padding-block: clamp(3rem, 5vw, 5rem) clamp(6rem, 10vw, 9rem);
}

.project-category-grid {
  gap: clamp(0.75rem, 1.3vw, 1.25rem);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.project-category-card {
  aspect-ratio: 4 / 3;
  transform: none;
}

.project-category-card a {
  align-items: flex-end;
  justify-content: flex-start;
}

.project-category-card__shade {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.04) 45%, rgba(0, 0, 0, 0.72) 100%);
}

.project-category-card__title {
  font-size: clamp(0.92rem, 1.08vw, 1.15rem);
  font-weight: 500;
  line-height: 1.22;
  max-width: 26rem;
  padding: clamp(0.9rem, 1.3vw, 1.25rem);
  text-align: left;
}

.project-category-card:hover,
.project-category-card:focus-within {
  transform: none;
}

.project-category-card:hover .project-category-card__shade,
.project-category-card:focus-within .project-category-card__shade {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 38%, rgba(0, 0, 0, 0.62) 100%);
}

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

@media (max-width: 780px) {
  .site-header__controls {
    align-items: center;
    gap: 0.2rem;
  }

  .theme-toggle {
    height: 2.15rem;
    width: 2.2rem;
  }

  .menu-open .theme-toggle {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
  }

  html[data-theme="dark"] .primary-navigation {
    background-color: #000000;
  }

  .practice-showcase {
    grid-template-columns: 1fr;
    margin-top: 2.75rem;
  }

  .practice-showcase__item img {
    aspect-ratio: 4 / 3;
  }

  .project-category-grid {
    gap: 1.15rem;
    grid-template-columns: 1fr;
  }

  .project-category-card {
    aspect-ratio: 4 / 3;
  }

  .project-category-card__title {
    font-size: 1rem;
    padding: 1rem;
  }
}

/* --------------------------------------------------------------------------
   ZASA width, integrated Team, and compact media controls — 1.0.9
   -------------------------------------------------------------------------- */

:root {
  --zas-content: 1300px;
  --zas-reference-width: 1300px;
}

/* One consistent reference width across public templates. */
.home-page .home-intro,
.home-page .featured-projects,
.home-page .home-news,
.home-page .home-story,
.contact-page .contact-hero,
.contact-page .contact-intro,
.contact-offices,
.awards-list.section-block,
.team-intro,
.practice-page > article,
.practice-page > .section-block,
.practice-showcase,
.single-entry,
.project-entry .project-details,
.archive-grid--news.content-shell,
.project-category-landing.content-shell {
  max-width: var(--zas-content);
}

.home-page .featured-projects {
  width: min(var(--zas-content), calc(100% - (2 * var(--zas-gutter))));
}

.archive-grid--news.content-shell,
.project-category-landing.content-shell {
  margin-inline: auto;
  padding-inline: var(--zas-gutter);
}

.archive-grid--news .card-grid,
.project-category-grid,
.project-archive .project-grid {
  margin-inline: 0;
  max-width: none;
  width: 100%;
}

.project-archive .project-grid {
  column-gap: clamp(0.75rem, 1.4vw, 1.3rem);
}

/* The supplied ZAS mark stays present without overpowering the navigation. */
.site-branding,
.site-logo--fallback {
  max-width: clamp(98px, 7.7vw, 126px);
}

.site-branding img,
.site-logo--fallback {
  max-height: 70px;
}

/* Compact sun/moon switch with the same quiet geometry as the site controls. */
.theme-toggle {
  height: 2rem;
  width: 3.1rem;
}

.theme-toggle__icon {
  align-items: center;
  display: inline-flex;
  height: 0.72rem;
  justify-content: center;
  position: relative;
  width: 0.72rem;
  z-index: 2;
}

.theme-toggle__icon svg {
  fill: none;
  height: 100%;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  width: 100%;
}

/* Team now belongs to the Who We Are narrative, directly before Timeline. */
.practice-team {
  border-top: 1px solid var(--zas-line);
  margin-top: clamp(3rem, 6vw, 6rem);
}

.practice-team > .section-title {
  text-align: center;
}

.practice-team__intro {
  margin: 0 auto clamp(3rem, 5vw, 5rem);
  max-width: var(--zas-readable);
  text-align: center;
}

.practice-team .team-section-title {
  margin-top: clamp(6rem, 10vw, 10rem);
}

@media (max-width: 780px) {
  .site-branding,
  .site-logo--fallback {
    max-width: 104px;
  }

  .site-branding img,
  .site-logo--fallback {
    max-height: 58px;
  }

  .theme-toggle {
    height: 2rem;
    width: 3rem;
  }

  /* Mobile News cards are landscape instead of tall square panels. */
  .home-news .card img,
  .home-news .card .media-placeholder,
  .archive-grid--news .card img,
  .archive-grid--news .card .media-placeholder {
    aspect-ratio: 16 / 9;
    object-fit: cover;
    width: 100%;
  }

  .practice-team {
    margin-top: 2rem;
  }

  .practice-team__intro {
    margin-bottom: 2.5rem;
    text-align: left;
  }
}

/* --------------------------------------------------------------------------
   Minimal mode button and homepage proportion refinements — 1.0.10
   -------------------------------------------------------------------------- */

:root {
  --zas-home-wide: 1480px;
}

/* A single, background-free icon replaces the pill-style mode switch. */
.theme-toggle {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  color: inherit;
  display: inline-flex;
  height: 1.75rem;
  justify-content: center;
  opacity: 0.82;
  padding: 0;
  width: 1.75rem;
}

.theme-toggle:hover,
.theme-toggle:focus-visible {
  background: transparent;
  box-shadow: none;
  opacity: 1;
}

.theme-toggle__icon {
  display: block;
  height: 0.95rem;
  position: relative;
  width: 0.95rem;
}

.theme-toggle__glyph {
  display: block;
  fill: none;
  height: 100%;
  inset: 0;
  position: absolute;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  transition: opacity 220ms ease, transform 360ms var(--zas-motion-ease);
  width: 100%;
}

.theme-toggle__glyph--moon {
  opacity: 0;
  transform: rotate(-24deg) scale(0.72);
}

html[data-theme="dark"] .theme-toggle__glyph--sun {
  opacity: 0;
  transform: rotate(24deg) scale(0.72);
}

html[data-theme="dark"] .theme-toggle__glyph--moon {
  opacity: 1;
  transform: none;
}

/* Project-category neighbours read as small text buttons, not display titles. */
.project-category-navigation {
  align-items: flex-start;
  font-size: 0.86rem;
  gap: 0.85rem 1.5rem;
  line-height: 1.3;
  margin-top: clamp(2.5rem, 5vw, 4.5rem);
}

.project-category-navigation > .nav-previous,
.project-category-navigation > .nav-next {
  flex: 0 1 calc(50% - 0.75rem);
  max-width: calc(50% - 0.75rem);
  width: auto;
}

.project-category-navigation > a {
  align-items: baseline;
  border-bottom: 1px solid currentColor;
  display: inline-flex;
  font-weight: 600;
  gap: 0.35rem;
  padding-block: 0.45rem;
  text-decoration: none;
}

.project-category-navigation > .nav-next {
  justify-content: flex-end;
  margin-left: auto;
}

@media (min-width: 781px) {
  /* News and the closing story now share the wider ZASA homepage measure. */
  .home-page .home-news,
  .home-page .home-story {
    max-width: var(--zas-home-wide);
  }

  .home-news .section-title,
  .home-story .section-title {
    font-size: clamp(1.75rem, 2vw, 2.25rem);
    margin-bottom: clamp(2rem, 3vw, 2.75rem);
  }

  .home-news .card__title {
    font-size: clamp(0.88rem, 0.9vw, 1rem);
    line-height: 1.25;
  }

  .home-news .card__link {
    font-size: 0.86rem;
  }

  .home-page .home-story {
    margin-top: clamp(9rem, 13vw, 13rem);
  }

  .home-story__intro {
    font-size: clamp(1rem, 1.08vw, 1.15rem);
    line-height: 1.42;
    margin-bottom: clamp(1.5rem, 2.5vw, 2.25rem);
  }

  .home-story__grid {
    align-items: start;
    gap: clamp(2rem, 3.5vw, 4.25rem);
    grid-template-columns: minmax(280px, 0.58fr) minmax(0, 1.42fr);
  }

  .home-story__copy {
    font-size: clamp(1rem, 1.04vw, 1.12rem);
    line-height: 1.45;
    padding-right: 0;
  }

  .home-story__media img,
  .home-story__media .media-placeholder {
    aspect-ratio: 1.5 / 1;
    height: auto;
    min-height: 0;
    width: 100%;
  }
}

@media (max-width: 780px) {
  .theme-toggle {
    height: 1.65rem;
    width: 1.65rem;
  }

  .theme-toggle__icon {
    height: 0.9rem;
    width: 0.9rem;
  }

  /* Every featured project uses one consistent landscape frame on mobile. */
  .home-page .featured-project-card,
  .home-page .featured-project-card:nth-child(n) {
    aspect-ratio: 16 / 9;
    height: auto;
    min-height: 0;
  }

  .project-category-navigation {
    font-size: 0.8rem;
    gap: 0.75rem 1rem;
  }

  .project-category-navigation > .nav-previous,
  .project-category-navigation > .nav-next {
    flex: 0 1 calc(50% - 0.5rem);
    max-width: calc(50% - 0.5rem);
    width: auto;
  }
}

@media (max-width: 340px) {
  .project-category-navigation > .nav-previous,
  .project-category-navigation > .nav-next {
    flex-basis: 100%;
    max-width: 100%;
  }
}

/* --------------------------------------------------------------------------
   Mobile containment and requested interface refinements — 1.0.11
   -------------------------------------------------------------------------- */

/* Michroma is the theme's established display face for page-level headings. */
.page-title,
.entry-title {
  font-family: var(--zas-font-project);
  letter-spacing: 0.015em;
}

/* Keep imported post content inside the responsive single-entry shell. */
.site-main > .single-entry {
  min-width: 0;
  width: 100%;
}

.single-entry .entry-title,
.single-entry .entry-hero,
.single-entry .entry-content {
  min-width: 0;
  max-width: 100%;
}

.single-entry .entry-hero img,
.single-entry .entry-content img,
.single-entry .entry-content picture,
.single-entry .entry-content video,
.single-entry .entry-content iframe,
.single-entry .entry-content embed,
.single-entry .entry-content object,
.single-entry .entry-content table {
  max-width: 100%;
}

/* Award singles use the existing spacing, line, and brand-color tokens. */
.single-entry--award {
  max-width: 1120px;
}

.single-entry--award .entry-title,
.single-entry--award .entry-content {
  max-width: var(--zas-readable);
}

.single-entry--award .single-entry__date,
.single-entry--award .single-entry__project,
.single-entry--award .single-entry__project a {
  color: var(--zas-red);
}

.single-entry--award .single-entry__project {
  border-bottom: 1px solid var(--zas-line);
  margin: 0 0 var(--zas-space-2);
  padding-bottom: var(--zas-space-2);
}

.single-entry--award .post-navigation {
  border-top: 1px solid var(--zas-line);
  padding-top: var(--zas-space-2);
}

.awards-list .award-row--generic-title .award-row__items {
  grid-column: 2;
}

.awards-list .award-row--generic-title .award-row__list {
  font-size: clamp(0.95rem, 1.05vw, 1.05rem);
}

@media (max-width: 780px) {
  /* Keep the mode control beside the burger/close control in the mobile menu. */
  .theme-toggle,
  .menu-open .theme-toggle {
    height: 2.75rem;
    opacity: 0.82;
    pointer-events: auto;
    visibility: visible;
    width: 2.75rem;
  }

  .menu-open .theme-toggle {
    color: var(--zas-red);
  }

  /* Category neighbours stack and use the full phone width. */
  .project-archive .project-category-navigation {
    align-items: stretch;
    flex-direction: column;
    font-size: clamp(0.82rem, 3.6vw, 1rem);
    gap: 0.65rem;
    margin-top: 3rem;
  }

  .project-archive .project-category-navigation > .nav-previous,
  .project-archive .project-category-navigation > .nav-next {
    flex: 0 0 100%;
    max-width: 100%;
    overflow-wrap: normal;
    width: 100%;
  }

  .project-archive .project-category-navigation > .nav-next {
    margin-left: 0;
  }

  .project-archive .project-category-navigation > span:empty {
    display: none;
  }

  /* The registered 4:5 crop shortens Who We Are portraits without fixed heights. */
  .practice-team .team-card__portrait img,
  .practice-team .team-card__portrait .media-placeholder {
    aspect-ratio: 4 / 5;
  }

  .practice-team .team-card__portrait .media-placeholder {
    min-height: 0;
  }

  .single-entry--news,
  .single-entry--award {
    overflow-x: hidden;
    overflow-x: clip;
    padding: 2rem var(--zas-gutter) 5rem;
  }

  .single-entry--news .entry-title,
  .single-entry--award .entry-title {
    font-size: clamp(1.2rem, 5.4vw, 1.55rem);
    line-height: 1.35;
    margin-bottom: 2rem;
  }

  .single-entry--news .entry-content,
  .single-entry--award .entry-content {
    overflow-x: auto;
    overflow-wrap: anywhere;
  }

  .single-entry--news .entry-title,
  .single-entry--award .entry-title,
  .single-entry--news .entry-content > *,
  .single-entry--award .entry-content > * {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .single-entry--news .entry-content .alignwide,
  .single-entry--news .entry-content .alignfull,
  .single-entry--award .entry-content .alignwide,
  .single-entry--award .entry-content .alignfull {
    margin-inline: 0;
    max-width: 100%;
    width: 100%;
  }

  .single-entry--news .post-navigation,
  .single-entry--award .post-navigation {
    margin: 4rem 0 0;
    max-width: 100%;
    width: 100%;
  }

  .single-entry--news .post-navigation .nav-links,
  .single-entry--award .post-navigation .nav-links {
    align-items: stretch;
    flex-direction: column;
  }

  .single-entry--news .post-navigation .nav-previous,
  .single-entry--news .post-navigation .nav-next,
  .single-entry--award .post-navigation .nav-previous,
  .single-entry--award .post-navigation .nav-next {
    flex: 0 0 auto;
    max-width: 100%;
    width: 100%;
  }

  .awards-list .award-row__list {
    font-size: 1rem;
  }

  .awards-list .award-row--generic-title .award-row__items {
    grid-column: 1;
  }

  .awards-list .award-row--generic-title .award-row__list {
    font-size: 1rem;
  }
}
