/* ==========================================================================
   Artistic Dimension — Shared inner-page sections
   Page hero, banded panels, spaces strip, CTA banner, filter bar
   ========================================================================== */

/* --------------------------------------------------------------------------
   Inner page hero
   -------------------------------------------------------------------------- */

.ad-hero {
  position: relative;
  isolation: isolate;
  padding-block: clamp(1.4rem, .9rem + 2vw, 2.8rem) clamp(2.2rem, 1.4rem + 2.6vw, 3.6rem);
}

.ad-hero__media {
  position: absolute;
  inset: 0 0 0 auto;
  width: 68%;
  z-index: -1;
}

.ad-hero__media img { animation: ad-hero-fade 1.4s var(--ad-ease-out) both; }

@keyframes ad-hero-fade {
  from { opacity: 0; transform: scale(1.06); }
  to { opacity: 1; transform: none; }
}

.ad-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 42%) minmax(0, 1fr);
  align-items: center;
  min-height: clamp(430px, 38vw, 590px);
}

.ad-hero__content { max-width: 33rem; }
.ad-hero__lead { max-width: 34ch; margin-bottom: clamp(1.2rem, 2vw, 1.8rem); }

.ad-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
}

.ad-hero__served {
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  margin-top: clamp(1.4rem, 2.4vw, 2.2rem);
}

.ad-hero__served .ad-icon { width: clamp(34px, 2.6vw, 40px); }
.ad-hero__served .ad-icon svg { width: 48%; height: 48%; }

.ad-hero__served-title {
  font-family: var(--ad-font-sans);
  font-size: var(--ad-fs-small);
  font-weight: 500;
  color: var(--ad-ink);
  margin-bottom: .18rem;
}

.ad-hero__served-list {
  font-size: var(--ad-fs-label);
  color: var(--ad-body);
  letter-spacing: .02em;
}

/* --------------------------------------------------------------------------
   Panel band (soft card that floats over the page)
   -------------------------------------------------------------------------- */

.ad-band {
  background: var(--ad-surface);
  border: 1px solid var(--ad-line-soft);
  border-radius: var(--ad-r-lg);
  box-shadow: var(--ad-shadow-sm);
  padding: clamp(1.5rem, 1rem + 2.2vw, 3rem) clamp(1.1rem, .7rem + 1.8vw, 2.6rem);
}

.ad-band__head { text-align: center; margin-bottom: clamp(1.6rem, 2.6vw, 2.6rem); }

/* Numbered three-up */
.ad-numbered {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ad-numbered > * {
  padding-inline: clamp(.8rem, 1.8vw, 2rem);
  border-left: 1px solid var(--ad-line);
}

.ad-numbered > *:first-child { border-left: 0; padding-left: 0; }

.ad-numcard {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .3rem clamp(.8rem, 1.4vw, 1.25rem);
  align-items: start;
}

.ad-numcard .ad-icon { grid-row: 1 / span 3; }

.ad-numcard__num {
  font-family: var(--ad-font-sans);
  font-size: var(--ad-fs-label);
  font-weight: 500;
  letter-spacing: .14em;
  color: var(--ad-muted);
}

.ad-numcard__title {
  font-family: var(--ad-font-display);
  font-size: var(--ad-fs-h3);
  font-weight: 500;
  color: var(--ad-ink);
  line-height: 1.2;
}

.ad-numcard__text {
  font-size: var(--ad-fs-small);
  line-height: 1.8;
  color: var(--ad-body);
  max-width: 30ch;
}

/* --------------------------------------------------------------------------
   Process panel (5 / 7 steps)
   -------------------------------------------------------------------------- */

.ad-processband { margin-block: clamp(1.2rem, 2vw, 2rem); }
.ad-processband__head { text-align: center; margin-bottom: clamp(1.5rem, 2.4vw, 2.2rem); }
.ad-processband__rail { grid-template-columns: repeat(5, minmax(0, 1fr)); }

/* --------------------------------------------------------------------------
   Spaces strip
   -------------------------------------------------------------------------- */

.ad-strip__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: clamp(1rem, 1.8vw, 1.6rem);
}

.ad-strip__head .ad-eyebrow { margin-bottom: 0; }

.ad-strip__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--ad-gap);
}

.ad-tile { display: flex; flex-direction: column; gap: .65rem; }

.ad-tile__media {
  aspect-ratio: 4 / 3;
  border-radius: var(--ad-r);
  overflow: hidden;
  background: var(--ad-surface-2);
}

.ad-tile__media img { width: 100%; height: 100%; object-fit: cover; }

.ad-tile__title {
  font-family: var(--ad-font-sans);
  font-size: var(--ad-fs-small);
  font-weight: 500;
  color: var(--ad-ink);
}

.ad-tile__text {
  font-size: var(--ad-fs-label);
  line-height: 1.7;
  color: var(--ad-body);
}

/* --------------------------------------------------------------------------
   CTA banner
   -------------------------------------------------------------------------- */

.ad-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: var(--ad-r-lg);
  border: 1px solid var(--ad-line-soft);
  background: var(--ad-surface);
  min-height: clamp(230px, 22vw, 300px);
  display: flex;
  align-items: center;
}

.ad-cta__media {
  position: absolute;
  inset: 0 0 0 38%;
  z-index: -1;
}

.ad-cta__media img { width: 100%; height: 100%; object-fit: cover; }

.ad-cta__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, var(--ad-surface) 0%, rgba(250, 248, 245, .82) 26%, rgba(250, 248, 245, 0) 62%);
}

.ad-cta__content {
  position: relative;
  z-index: 1;
  padding: clamp(1.5rem, 1rem + 2.2vw, 2.8rem) clamp(1.2rem, .8rem + 1.8vw, 2.6rem);
  max-width: 40rem;
}

.ad-cta__title { margin-bottom: .7rem; }
.ad-cta__text { font-size: var(--ad-fs-small); max-width: 40ch; margin-bottom: 1.2rem; }

/* --------------------------------------------------------------------------
   Filter bar
   -------------------------------------------------------------------------- */

.ad-filterbar {
  background: var(--ad-surface);
  border: 1px solid var(--ad-line-soft);
  border-radius: var(--ad-r);
  padding: clamp(.6rem, 1vw, .95rem);
}

.ad-filterbar__scroll {
  display: flex;
  justify-content: center;
  gap: clamp(.4rem, .7vw, .7rem);
  flex-wrap: wrap;
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 1180px) {
  .ad-strip__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
  .ad-hero__inner { grid-template-columns: 1fr; min-height: 0; }
  .ad-hero__media {
    position: relative;
    inset: auto;
    width: 100%;
    height: clamp(280px, 44vw, 420px);
    margin-top: clamp(1.6rem, 3vw, 2.4rem);
    border-radius: var(--ad-r-lg);
    overflow: hidden;
    z-index: 0;
  }
  .ad-hero__content { max-width: 40rem; }
  .ad-numbered { grid-template-columns: 1fr; row-gap: clamp(1.3rem, 2.4vw, 1.8rem); }
  .ad-numbered > * { border-left: 0; padding-left: 0; padding-inline: 0; }
  .ad-processband__rail { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ad-processband__rail::before { display: none; }
  .ad-cta__media { inset: 0 0 0 30%; }
}

@media (max-width: 767px) {
  .ad-strip__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ad-strip__head { flex-direction: column; align-items: flex-start; gap: .5rem; }
  .ad-cta { flex-direction: column; align-items: stretch; }
  .ad-cta__media { position: relative; inset: auto; height: clamp(180px, 40vw, 240px); order: 2; }
  .ad-cta__media::after { background: linear-gradient(to bottom, rgba(250, 248, 245, .55), rgba(250, 248, 245, 0) 45%); }
  .ad-cta__content { order: 1; max-width: none; }
}

@media (max-width: 560px) {
  .ad-processband__rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ad-hero__actions .ad-btn { flex: 1 1 auto; }
}

@media (max-width: 420px) {
  .ad-strip__grid { grid-template-columns: 1fr; }
}
