.service-card.featured {
  overflow: hidden;
}

.featured-content {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.service-photo {
  margin: 28px -36px -36px;
  height: 260px;
  overflow: hidden;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.service-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 55% center;
  transition: transform 0.45s ease;
}

.service-card.featured:hover .service-photo img {
  transform: scale(1.025);
}

@media (max-width: 800px) {
  .service-card.featured {
    min-height: 640px;
  }

  .service-photo {
    margin-top: 24px;
    height: 250px;
  }
}

.service-card.with-photo {
  overflow: hidden;
  padding-bottom: 184px;
}

.card-photo {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 158px;
  margin: 0;
  overflow: hidden;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.card-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 47%;
  transition: transform 0.45s ease;
}

.service-card.with-photo:hover .card-photo img {
  transform: scale(1.025);
}

/* Editorial, image-led services layout */
.service-showcase { border-top: 1px solid var(--line); }
.service-item { display: grid; grid-template-columns: minmax(90px,.45fr) minmax(300px,1.2fr) minmax(300px,1fr); gap: clamp(28px,5vw,78px); align-items: center; padding: 30px 0; border-bottom: 1px solid var(--line); }
.service-item:nth-child(even) .service-visual { order: 3; }
.service-item:nth-child(even) .service-copy { order: 2; }
.service-index { align-self: stretch; display: flex; flex-direction: column; justify-content: space-between; padding: 6px 0; }
.service-index span { font: 600 13px 'Manrope',sans-serif; color: #777382; }
.service-index p { margin: 0; color: var(--gold); font: 700 11px/1.3 'Manrope',sans-serif; text-transform: uppercase; letter-spacing: .16em; }
.service-visual { height: clamp(260px,29vw,410px); margin: 0; overflow: hidden; border-radius: 2px; }
.service-visual img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease,filter .55s ease; }
.service-item:hover .service-visual img { transform: scale(1.025); filter: saturate(1.08); }
.service-copy { padding-right: clamp(0px,2vw,28px); }
.service-copy h3 { font: 700 clamp(2rem,3.7vw,4.2rem)/1.04 'Manrope',sans-serif; letter-spacing: -.05em; margin: 0; }
.service-copy p { max-width: 520px; margin: 22px 0 0; color: var(--muted); font-size: 1.05rem; }
.service-item:first-child .service-visual img { object-position: 54% center; }
.service-item:nth-child(2) .service-visual img { object-position: center 46%; }
.service-item:nth-child(3) .service-visual img { object-position: center 55%; }
.service-item:nth-child(4) .service-visual img { object-position: center 48%; }

@media (max-width: 800px) {
  .service-item { grid-template-columns: 48px 1fr; gap: 18px 22px; padding: 28px 0; }
  .service-index { grid-row: 1 / span 2; }
  .service-visual,.service-item:nth-child(even) .service-visual { order: initial; grid-column: 2; height: clamp(230px,58vw,360px); }
  .service-copy,.service-item:nth-child(even) .service-copy { order: initial; grid-column: 2; padding: 0; }
  .service-copy p { margin-top: 14px; }
}

/* Who we are */
.who-we-are { display: grid; grid-template-columns: minmax(300px,1fr) minmax(360px,1fr); gap: clamp(50px,10vw,150px); padding: 105px 8vw 120px; background: linear-gradient(135deg,#111018 0%,#0b0b10 72%); border-bottom: 1px solid var(--line); }
.who-heading h2 { margin-top: 24px; font: 700 clamp(2.6rem,4.8vw,5rem)/1.04 'Manrope',sans-serif; letter-spacing: -.055em; }
.who-heading h2 span { color: var(--violet2); }
.who-portrait { position: relative; max-width: 520px; aspect-ratio: 4/5; margin: 48px 0 0; overflow: hidden; border: 1px solid rgba(255,255,255,.16); border-radius: 2px; background: #e9ebea; }
.who-portrait::after { content: ''; position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 0 1px rgba(176,92,255,.16); }
.who-portrait img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 44%; }
.who-story { align-self: end; max-width: 650px; padding-left: clamp(24px,4vw,62px); border-left: 1px solid rgba(176,92,255,.55); }
.who-story p { margin: 0 0 22px; color: var(--muted); font-size: 1.06rem; }
.who-cta { display: inline-flex; align-items: center; gap: 18px; margin-top: 8px; color: var(--gold); font: 700 0.9rem/1.5 'Manrope',sans-serif; text-transform: uppercase; letter-spacing: .08em; }
.who-cta span { color: var(--violet2); font-size: 1.1rem; transition: transform .2s ease; }
.who-cta:hover span { transform: translateX(4px); }

@media (max-width: 800px) {
  .who-we-are { grid-template-columns: 1fr; gap: 42px; padding: 80px 6vw; }
  .who-portrait { max-width: 100%; margin-top: 34px; }
  .who-story { padding-left: 22px; }
}

/* Event portfolio carousel */
.event-carousel { position: relative; background: #08080d; overflow: hidden; }
.carousel-track { position: relative; height: clamp(420px,68vw,820px); }
.carousel-slide { position: absolute; inset: 0; margin: 0; opacity: 0; transform: scale(1.025); transition: opacity .9s ease,transform 1.3s ease; pointer-events: none; }
.carousel-slide.is-active { opacity: 1; transform: scale(1); pointer-events: auto; z-index: 1; }
.carousel-slide img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.carousel-slide::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg,rgba(5,5,10,.72),transparent 36%); }
.carousel-ui { position: absolute; z-index: 3; right: 5vw; bottom: 30px; left: 5vw; display: grid; grid-template-columns: auto minmax(100px,320px) auto; align-items: center; gap: 22px; }
.carousel-ui p { margin: 0; color: #fff; font: 700 13px 'Manrope',sans-serif; letter-spacing: .12em; }
.carousel-progress { height: 2px; background: rgba(255,255,255,.28); overflow: hidden; }
.carousel-progress span { display: block; width: 0; height: 100%; background: var(--gold); }
.event-carousel.is-playing .carousel-progress span { animation: carouselProgress 5s linear forwards; }
.carousel-buttons { display: flex; gap: 8px; }
.carousel-buttons button { width: 48px; height: 48px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: rgba(8,8,13,.38); color: #fff; font-size: 20px; cursor: pointer; transition: background .2s,border-color .2s; }
.carousel-buttons button:hover,.carousel-buttons button:focus-visible { background: var(--violet); border-color: var(--violet); outline: none; }
@keyframes carouselProgress { from { width: 0; } to { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .carousel-slide { transition: none; } .event-carousel.is-playing .carousel-progress span { animation: none; width: 100%; } }
@media (max-width: 600px) { .carousel-track { height: 68vh; min-height: 480px; max-height: 680px; } .carousel-ui { right: 6vw; bottom: 20px; left: 6vw; grid-template-columns: auto 1fr auto; gap: 13px; } .carousel-buttons button { width: 42px; height: 42px; } }
