/* =========================================================
   INDUSTRY PAGES, V2 LAYOUT  (main.ind--v2)
   Loaded after css/industries.css, only by pages built with the v2 layout
   (hotel-marketing-revenue-management.html first, 2026-11-11).
   Light pages with magenta bands and no black anywhere: headings in deep
   berry, body text in muted plum. Patterns from the newest
   digitalforhotels.com type pages: split hero, a choice of Services designs (stack, list, sticky, panels), two-column FAQ.
   ========================================================= */
.ind--v2 {
  --ind-ink: #5c1f4c;
  --ind-muted: #6b4a62;
  --ind-line: #f3dbe8;
  --ind-blush: #fdf3f8;
  --v2-grad: linear-gradient(135deg, #8f2a72 0%, #b33f86 50%, #c73689 100%);
  color: var(--ind-muted);
}
.ind--v2 h1, .ind--v2 h2, .ind--v2 h3 { color: var(--ind-ink); }
.ind--v2 .ind-eyebrow { color: var(--ind-magenta); }

/* buttons for light backgrounds */
.ind .v2-btn--outline {
  color: var(--ind-rose);
  border: 1.5px solid rgba(199, 54, 137, .55);
  background: #fff;
}
.ind .v2-btn--outline:hover { color: #fff !important; border-color: var(--ind-magenta); background: var(--ind-magenta); }
.ind .v2-btn--wa { color: #17834a; border: 1.5px solid rgba(37, 211, 102, .55); background: #effaf3; }
.ind .v2-btn--wa:hover { color: #fff !important; background: #25b05f; border-color: #25b05f; }
.ind .v2-btn--white { color: var(--ind-rose); background: #fff; box-shadow: 0 12px 30px rgba(91, 26, 74, .25); }
.ind .v2-btn--white:hover { color: #8f2a72 !important; }

/* sections */
.v2-sec { position: relative; padding: 104px 0; }
.v2-sec--white { background: #fff; }
.v2-sec--blush { background: var(--ind-blush); }
.v2-sec--tight { padding: 64px 0; }
.v2-sec--magenta {
  color: #fff;
  background:
    radial-gradient(70% 80% at 100% 0%, rgba(242, 140, 195, .35), transparent 60%),
    var(--v2-grad);
}
.ind--v2 .v2-sec--magenta h2 { color: #fff; }
.ind--v2 .v2-sec--magenta .v2-head p { color: rgba(255, 255, 255, .85); }
.ind--v2 .v2-sec--magenta .ind-eyebrow { color: #ffd6ec; }
.v2-head { max-width: 760px; margin-bottom: 52px; }
.v2-head h2 { font-size: clamp(32px, 3.6vw, 50px); }
.v2-head p { margin-top: 16px !important; font-size: 17px; }
.v2-head--center { margin-right: auto; margin-left: auto; text-align: center; }
.v2-head--center .ind-eyebrow::after { content: ""; width: 34px; height: 1px; background: currentColor; opacity: .7; }
.v2-head__btns { justify-content: center; margin-top: 24px; }

/* hero: split, light */
.v2-hero {
  position: relative;
  overflow: hidden;
  /* the theme header is position:absolute over the top ~150px of the page */
  padding: 196px 0 72px;
  background:
    radial-gradient(55% 70% at 90% 25%, rgba(242, 140, 195, .38), transparent 62%),
    radial-gradient(45% 60% at 0% 100%, rgba(199, 54, 137, .12), transparent 60%),
    var(--ind-blush);
}
.v2-hero__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 64px; align-items: center; }
.ind--v2 .ind-crumbs { color: #9a7a90; }
.ind--v2 .ind-crumbs a { color: var(--ind-rose); }
.v2-hero h1 { font-size: clamp(40px, 4.8vw, 66px); line-height: 1.04; }
.v2-hero__sub { margin: 22px 0 32px !important; color: var(--ind-muted); font-size: 18px; }
.ind .v2-hero__sub a { color: var(--ind-rose); }
.v2-hero__media { position: relative; padding: 18px 18px 0 0; }
.v2-hero__shape {
  position: absolute;
  top: 0;
  right: 0;
  width: 72%;
  height: 78%;
  border-radius: 34px;
  background: var(--v2-grad);
  opacity: .9;
  transform: rotate(4deg);
}
.v2-hero__img {
  position: relative;
  overflow: hidden;
  margin: 0;
  border-radius: 28px;
  aspect-ratio: 5 / 4;
  box-shadow: 0 40px 70px -34px rgba(91, 26, 74, .55);
}
.v2-hero__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.v2-hero__ic {
  position: absolute;
  bottom: -26px;
  left: -26px;
  display: flex;
  width: 84px;
  height: 84px;
  align-items: center;
  justify-content: center;
  border: 6px solid var(--ind-blush);
  border-radius: 50%;
  color: #fff;
  background: var(--v2-grad);
  box-shadow: 0 18px 36px -12px rgba(143, 42, 114, .55);
}
.v2-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 72px 0 0;
  padding: 8px;
  border: 1px solid var(--ind-line);
  border-radius: 22px;
  background: rgba(255, 255, 255, .85);
  box-shadow: 0 24px 50px -30px rgba(91, 26, 74, .35);
  list-style: none;
}
.v2-stats li { padding: 20px 24px; }
.v2-stats li + li { border-left: 1px solid var(--ind-line); }
.v2-stats b { display: block; color: var(--ind-magenta); font-family: var(--hm-heading-font); font-size: 42px; font-weight: 600; line-height: 1; }
.v2-stats span { display: block; margin-top: 6px; color: #8a6a80; font-size: 13.5px; }

/* quick answer */
.v2-answer { padding: 72px 0 0; background: #fff; }
.v2-answer__card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 22px;
  align-items: start;
  padding: 34px 40px;
  border: 1.5px solid transparent;
  border-radius: 22px;
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(135deg, #f28cc3, #c73689) border-box;
  box-shadow: 0 30px 60px -38px rgba(91, 26, 74, .4);
}
.v2-answer__card p { color: #5f3d55; font-size: 17px; line-height: 1.7; }

/* overview */
.v2-overview { display: grid; grid-template-columns: .95fr 1.05fr; gap: 72px; align-items: center; }
.v2-overview__media { position: relative; }
.v2-overview__media figure {
  position: relative;
  z-index: 1;
  overflow: hidden;
  margin: 0;
  border-radius: 26px;
  aspect-ratio: 4 / 3.6;
  box-shadow: 0 40px 70px -36px rgba(91, 26, 74, .5);
}
.v2-overview__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.v2-overview__dots {
  position: absolute;
  bottom: -30px;
  left: -30px;
  width: 160px;
  height: 160px;
  background-image: radial-gradient(rgba(199, 54, 137, .45) 2px, transparent 2.5px);
  background-size: 16px 16px;
}
.v2-overview__text h2 { margin-bottom: 22px; }
.v2-overview__text p { font-size: 17px; }
.v2-for { margin-top: 28px; padding: 24px 26px; border-radius: 18px; background: var(--ind-blush); }
.v2-for__title {
  display: block;
  margin-bottom: 10px;
  color: var(--ind-magenta);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.v2-for ul { margin: 0; padding: 0; list-style: none; }
.v2-for li { display: flex; gap: 10px; align-items: flex-start; padding: 6px 0; color: var(--ind-ink); font-size: 15.5px; line-height: 1.5; }
.v2-for li svg { flex: 0 0 auto; margin-top: 2px; color: var(--ind-magenta); }

/* hotel types */
.v2-types { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.v2-type {
  display: flex;
  overflow: hidden;
  flex-direction: column;
  border: 1px solid var(--ind-line);
  border-radius: 22px;
  background: #fff;
  transition: transform .35s var(--ind-ease), box-shadow .35s ease, border-color .35s ease;
}
.ind .v2-type:hover {
  color: inherit !important;
  border-color: rgba(199, 54, 137, .35);
  transform: translateY(-6px);
  box-shadow: 0 30px 56px -30px rgba(91, 26, 74, .4);
}
.v2-type__img { position: relative; display: block; aspect-ratio: 16 / 10; }
.v2-type__img img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; transition: filter .4s ease; }
.v2-type__img img { border-radius: 0; }
.v2-type:hover .v2-type__img img { filter: saturate(1.08) brightness(1.03); }
.v2-type__ic {
  position: absolute;
  bottom: -23px;
  left: 24px;
  z-index: 2;
  display: flex;
  width: 46px;
  height: 46px;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  color: #fff;
  background: var(--v2-grad);
  box-shadow: 0 12px 24px -10px rgba(143, 42, 114, .6);
}
.v2-type__body { display: flex; flex: 1; flex-direction: column; padding: 38px 26px 26px; }
.v2-type__body h3 { margin-bottom: 10px; }
.v2-type__body p { color: var(--ind-muted); font-size: 15px; }
.v2-type__body .ind-arrow { margin-top: auto; padding-top: 18px; color: var(--ind-magenta); }

/* challenges: editorial rows beside a sticky heading */
.v2-split { display: grid; grid-template-columns: .85fr 1.15fr; gap: 72px; align-items: start; }
.v2-split__side { position: sticky; top: 130px; }
.v2-split__side .v2-head { margin-bottom: 0; }
.v2-rows { border-top: 1px solid var(--ind-line); }
.v2-row {
  display: grid;
  grid-template-columns: 84px 1fr;
  gap: 20px;
  padding: 28px 0;
  border-bottom: 1px solid var(--ind-line);
}
.ind--v2 .v2-row .ind-num {
  margin: 0;
  color: transparent;
  font-size: 56px;
  -webkit-text-stroke: 1.2px var(--ind-magenta);
  transition: color .3s ease;
}
.ind--v2 .v2-row:hover .ind-num { color: rgba(199, 54, 137, .16); }
.v2-row h3 { margin-bottom: 8px; }
.v2-row p { font-size: 15.5px; }

/* icon cards (how we help, why choose) */
.v2-cards { display: grid; gap: 22px; }
.v2-cards--4 { grid-template-columns: repeat(4, 1fr); }
.v2-cards--5 { grid-template-columns: repeat(5, 1fr); }
.v2-card {
  position: relative;
  overflow: hidden;
  padding: 32px 26px 30px;
  border: 1px solid var(--ind-line);
  border-radius: 22px;
  background: #fff;
  transition: transform .35s var(--ind-ease), box-shadow .35s ease;
}
.v2-sec--white .v2-card { border-color: transparent; background: var(--ind-blush); }
.v2-card::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 3px;
  background: var(--v2-grad);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .45s var(--ind-ease);
}
.v2-card:hover { transform: translateY(-5px); box-shadow: 0 28px 50px -30px rgba(91, 26, 74, .4); }
.v2-card:hover::after { transform: scaleX(1); }
.v2-card__ic {
  display: flex;
  width: 58px;
  height: 58px;
  align-items: center;
  justify-content: center;
  margin-bottom: 24px;
  border-radius: 18px;
  color: #fff;
  background: var(--v2-grad);
  box-shadow: 0 14px 26px -12px rgba(143, 42, 114, .6);
}
.v2-card h3 { margin-bottom: 10px; font-size: 22px; }
.v2-card p { font-size: 15px; }

/* services: expanding panels.
   Without JS: plain magenta cards, all open. With JS, 992px and up: a row of tall panels with the
   names running vertically, one open (hover, focus or click). Below 992px: a stacked accordion. */
.v2-acc { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.v2-acc__item {
  position: relative;
  overflow: hidden;
  border-radius: 22px;
  color: #fff;
  background:
    radial-gradient(120% 60% at 0% 0%, rgba(242, 140, 195, .35), transparent 60%),
    linear-gradient(165deg, #8f2a72 0%, #b33f86 60%, #c73689 100%);
  box-shadow: 0 24px 50px -34px rgba(91, 26, 74, .55);
  outline: none;
}
.v2-acc__item:nth-child(3n+2) {
  background:
    radial-gradient(120% 60% at 0% 0%, rgba(242, 140, 195, .35), transparent 60%),
    linear-gradient(165deg, #a3357c 0%, #c73689 60%, #d6479a 100%);
}
.v2-acc__item:nth-child(3n) {
  background:
    radial-gradient(120% 60% at 0% 0%, rgba(242, 140, 195, .3), transparent 60%),
    linear-gradient(165deg, #7a2363 0%, #9b3079 60%, #b33f86 100%);
}
.v2-acc__item:focus-visible { box-shadow: 0 0 0 3px #fff, 0 0 0 6px var(--ind-magenta); }
.v2-acc__head { display: flex; align-items: center; gap: 14px; padding: 24px 24px 0; }
.v2-acc__ic {
  display: flex;
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, .4);
  border-radius: 14px;
  background: rgba(255, 255, 255, .14);
}
.ind--v2 .v2-acc__item h3 { color: #fff; font-size: 23px; line-height: 1.2; }
.v2-acc__body { padding: 16px 24px 24px; }
.ind--v2 .v2-acc__body p { color: rgba(255, 255, 255, .92); font-size: 15.5px; }
.ind--v2 .v2-acc__body p a { color: #fff; }
.ind--v2 .v2-acc__item .ind-svc__brand { margin-top: 14px; color: rgba(255, 255, 255, .9); border-color: rgba(255, 255, 255, .45); }
.ind--v2 .v2-acc__item .ind-svc__brand a { color: #fff; }
.ind--v2 .v2-acc__item a:not(.ind-btn):hover { color: #ffd6ec !important; }
.v2-acc__body .ind-btn { display: flex; width: max-content; min-height: 46px; margin-top: 20px; padding: 0 22px; font-size: 14px; }
.v2-acc__art {
  position: relative;
  overflow: hidden;
  margin: 0 24px 24px;
  border-radius: 16px;
  background: #fff;
  aspect-ratio: 16 / 9;
}
.v2-acc__art img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }

@media (min-width: 992px) {
  .ind-js .v2-acc { display: flex; gap: 10px; height: 560px; }
  .ind-js .v2-acc__item {
    flex: 1 1 0;
    min-width: 0;
    cursor: pointer;
    transition: flex-grow .6s var(--ind-ease), box-shadow .4s ease, filter .3s ease;
  }
  .ind-js .v2-acc__item:not(.is-active):hover { filter: brightness(1.1); }
  .ind-js .v2-acc__item.is-active { flex-grow: 9; cursor: default; box-shadow: 0 40px 70px -36px rgba(143, 42, 114, .65); }
  .ind-js .v2-acc__head {
    position: absolute;
    top: 22px;
    right: 0;
    bottom: 26px;
    left: 0;
    flex-direction: column;
    gap: 22px;
    padding: 0;
  }
  .ind-js .ind--v2 .v2-acc__item:not(.is-active) h3 {
    overflow: hidden;
    max-height: 100%;
    font-size: 20px;
    white-space: nowrap;
    text-overflow: ellipsis;
    transform: rotate(180deg);
    writing-mode: vertical-rl;
  }
  /* the open panel: heading and text flow normally, so a two-line name pushes the text down */
  .ind-js .v2-acc__item.is-active .v2-acc__head { position: static; flex-direction: row; gap: 16px; padding: 32px 32px 0; }
  .ind-js .ind--v2 .v2-acc__item.is-active h3 { font-size: 30px; }
  .ind-js .v2-acc__body {
    position: absolute;
    top: 108px;
    right: 32px;
    left: 32px;
    padding: 0;
    opacity: 0;
    pointer-events: none;
    transform: translateY(12px);
    transition: opacity .2s ease, transform .2s ease;
  }
  .ind-js .ind--v2 .v2-acc__body p { max-width: 460px; font-size: 16.5px; }
  .ind-js .v2-acc__art {
    position: absolute;
    right: 26px;
    bottom: 26px;
    width: 44%;
    max-width: 250px;
    margin: 0;
    opacity: 0;
    transform: translateY(16px) scale(.96);
    transition: opacity .2s ease, transform .2s ease;
  }
  .ind-js .v2-acc__item.is-active .v2-acc__body { position: static; padding: 18px 32px 0; }
  .ind-js .v2-acc__item.is-active .v2-acc__body,
  .ind-js .v2-acc__item.is-active .v2-acc__art {
    opacity: 1;
    pointer-events: auto;
    transform: none;
    transition: opacity .45s ease .3s, transform .45s var(--ind-ease) .3s;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .ind-js .v2-acc { height: 600px; }
  .ind-js .v2-acc__art { width: 40%; }
}
@media (max-width: 991px) {
  .v2-acc { grid-template-columns: 1fr; gap: 12px; }
  .ind-js .v2-acc__item:not(.is-active) .v2-acc__body,
  .ind-js .v2-acc__item:not(.is-active) .v2-acc__art { display: none; }
  .ind-js .v2-acc__item:not(.is-active) .v2-acc__head { padding-bottom: 24px; cursor: pointer; }
  .ind-js .v2-acc__head::after {
    content: "";
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    margin-left: auto;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>") center / contain no-repeat;
    transition: transform .3s ease;
  }
  .ind-js .v2-acc__item.is-active .v2-acc__head::after { transform: rotate(180deg); }
}
@media (prefers-reduced-motion: reduce) {
  .ind-js .v2-acc__item, .ind-js .v2-acc__body, .ind-js .v2-acc__art { transition: none !important; }
}

/* services, design "stack": wide cards that stick near the top and stack as you scroll */
.v2-stack { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
.v2-stack__card {
  position: sticky;
  /* the theme's sticky header is about 105px tall */
  top: calc(124px + var(--i) * 16px);
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: 44px;
  align-items: center;
  min-height: 420px;
  padding: 48px 52px;
  border: 1px solid var(--ind-line);
  border-radius: 30px;
  background: #fff;
  box-shadow: 0 -12px 40px -26px rgba(91, 26, 74, .35), 0 30px 60px -40px rgba(91, 26, 74, .45);
}
.v2-stack__card:nth-child(3n+2) { background: linear-gradient(135deg, #fff 0%, #fbe9f2 100%); }
.v2-stack__card:nth-child(3n) {
  border: 0;
  color: #fff;
  background:
    radial-gradient(70% 80% at 100% 0%, rgba(242, 140, 195, .4), transparent 60%),
    var(--v2-grad);
}
.v2-stack__ic {
  display: flex;
  width: 62px;
  height: 62px;
  align-items: center;
  justify-content: center;
  margin-bottom: 24px;
  border-radius: 18px;
  color: #fff;
  background: var(--v2-grad);
  box-shadow: 0 14px 26px -12px rgba(143, 42, 114, .6);
}
.v2-stack__card:nth-child(3n) .v2-stack__ic { border: 1px solid rgba(255, 255, 255, .45); background: rgba(255, 255, 255, .16); box-shadow: none; }
.ind--v2 .v2-stack__card h3 { margin-bottom: 14px; font-size: clamp(28px, 2.6vw, 38px); }
.v2-stack__card p { max-width: 520px; font-size: 17px; }
.ind--v2 .v2-stack__card .ind-svc__brand { margin-top: 16px; color: #8a6a80; border-color: var(--ind-line); }
.ind--v2 .v2-stack__card .ind-svc__brand a { color: var(--ind-magenta); }
.v2-stack__text .ind-btn { display: flex; width: max-content; max-width: 100%; margin-top: 26px; }
.ind--v2 .v2-stack__card:nth-child(3n) h3 { color: #fff; }
.ind--v2 .v2-stack__card:nth-child(3n) p { color: rgba(255, 255, 255, .92); }
.ind--v2 .v2-stack__card:nth-child(3n) p a,
.ind--v2 .v2-stack__card:nth-child(3n) .ind-svc__brand a { color: #fff; }
.ind--v2 .v2-stack__card:nth-child(3n) .ind-svc__brand { color: rgba(255, 255, 255, .9); border-color: rgba(255, 255, 255, .45); }
.ind--v2 .v2-stack__card:nth-child(3n) a:not(.ind-btn):hover { color: #ffd6ec !important; }
.ind .v2-stack__card:nth-child(3n) .ind-btn--solid { color: var(--ind-rose); background: #fff; box-shadow: 0 12px 30px rgba(60, 14, 48, .25); }
.ind .v2-stack__card:nth-child(3n) .ind-btn--solid:hover { color: #8f2a72 !important; }
.v2-stack__art {
  position: relative;
  overflow: hidden;
  border-radius: 22px;
  background: #fff;
  aspect-ratio: 6 / 5;
  box-shadow: inset 0 0 0 1px var(--ind-line);
}
.v2-stack__art img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }

/* services, design "list": numbered editorial rows; the hovered row's illustration follows the cursor */
.v2-list { position: relative; border-top: 1px solid var(--ind-line); counter-reset: svc; }
.v2-list__row {
  position: relative;
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr) minmax(0, 1.3fr) 220px;
  gap: 28px;
  align-items: center;
  padding: 30px 20px;
  border-bottom: 1px solid var(--ind-line);
  counter-increment: svc;
  transition: background .3s ease;
}
.v2-list__row::before {
  content: counter(svc, decimal-leading-zero);
  color: transparent;
  font-family: var(--hm-heading-font);
  font-size: 40px;
  font-weight: 600;
  line-height: 1;
  -webkit-text-stroke: 1.2px var(--ind-magenta);
  transition: color .3s ease;
}
.v2-list__row:hover { background: var(--ind-blush); }
.v2-list__row:hover::before { color: var(--ind-magenta); }
.v2-list__thumb { display: none; }
.v2-list__title { display: flex; gap: 14px; align-items: center; }
.v2-list__ic {
  display: flex;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  color: var(--ind-magenta);
  background: var(--ind-blush);
  transition: background .3s ease, color .3s ease;
}
.v2-list__row:hover .v2-list__ic { color: #fff; background: var(--v2-grad); }
.ind--v2 .v2-list__title h3 { font-size: 25px; transition: color .3s ease; }
.ind--v2 .v2-list__row:hover h3 { color: var(--ind-magenta); }
.v2-list__text p { font-size: 15.5px; }
.ind--v2 .v2-list__text .ind-svc__brand { margin-top: 10px; color: #8a6a80; border-color: var(--ind-line); }
.ind--v2 .v2-list__text .ind-svc__brand a { color: var(--ind-magenta); }
.v2-list__go {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  justify-self: end;
  padding: 12px 18px;
  border: 1.5px solid rgba(199, 54, 137, .45);
  border-radius: 999px;
  color: var(--ind-rose);
  font-size: 13.5px;
  font-weight: 700;
  line-height: 1.3;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.v2-list__go svg { flex: 0 0 auto; }
.ind .v2-list__go:hover { border-color: var(--ind-magenta); color: #fff !important; background: var(--ind-magenta); }
.v2-list__float {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 5;
  overflow: hidden;
  width: 250px;
  border-radius: 20px;
  background: #fff;
  aspect-ratio: 6 / 5;
  box-shadow: 0 30px 60px -24px rgba(91, 26, 74, .5);
  opacity: 0;
  pointer-events: none;
  transform: translate(var(--x, 0), var(--y, 0)) scale(.85) rotate(-4deg);
  transition: opacity .25s ease, transform .3s ease-out;
}
.v2-list.is-hovering .v2-list__float { opacity: 1; transform: translate(var(--x, 0), var(--y, 0)) scale(1) rotate(-4deg); }
.v2-list__float img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
@media (hover: none), (max-width: 991px) {
  .v2-list__float { display: none; }
}

/* services, design "sticky": a pinned illustration that follows the service in view */
.v2-sticky { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 64px; align-items: start; }
.v2-sticky__visual { position: sticky; top: 130px; }
.v2-sticky__frame {
  position: relative;
  overflow: hidden;
  border-radius: 32px;
  background:
    radial-gradient(70% 70% at 100% 0%, rgba(242, 140, 195, .45), transparent 60%),
    var(--v2-grad);
  aspect-ratio: 1 / 1;
  box-shadow: 0 40px 70px -36px rgba(143, 42, 114, .6);
}
.v2-sticky__frame::before {
  content: "";
  position: absolute;
  inset: 28px;
  border-radius: 24px;
  background: #fff;
}
.v2-sticky__img {
  position: absolute;
  top: 28px;
  left: 28px;
  width: calc(100% - 56px);
  height: calc(100% - 56px);
  border-radius: 24px;
  object-fit: cover;
  object-position: center 55%;
  opacity: 0;
  transform: scale(.96) translateY(10px);
  transition: opacity .5s ease, transform .6s var(--ind-ease);
}
.v2-sticky__img.is-active { opacity: 1; transform: none; }
.v2-sticky__list { display: grid; gap: 18px; }
.v2-sticky__item {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 20px;
  padding: 30px;
  border: 1px solid var(--ind-line);
  border-radius: 22px;
  background: #fff;
  transition: opacity .4s ease, box-shadow .4s ease, border-color .4s ease;
}
.ind-js .v2-sticky__item { opacity: .5; }
.ind-js .v2-sticky__item.is-active { opacity: 1; border-color: rgba(199, 54, 137, .35); box-shadow: 0 30px 56px -32px rgba(91, 26, 74, .45); }
.v2-sticky__ic {
  display: flex;
  width: 56px;
  height: 56px;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  color: #fff;
  background: var(--v2-grad);
}
.ind--v2 .v2-sticky__item h3 { margin-bottom: 8px; font-size: 25px; }
.v2-sticky__item p { font-size: 15.5px; }
.ind--v2 .v2-sticky__item .ind-svc__brand { margin-top: 12px; color: #8a6a80; border-color: var(--ind-line); }
.ind--v2 .v2-sticky__item .ind-svc__brand a { color: var(--ind-magenta); }
.v2-sticky__item .ind-arrow { display: flex; margin-top: 14px; color: var(--ind-magenta); }
.v2-sticky__thumb { display: none; }

/* case studies */
.v2-cases { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.v2-case {
  display: flex;
  overflow: hidden;
  flex-direction: column;
  border: 1px solid var(--ind-line);
  border-radius: 22px;
  background: #fff;
  transition: transform .35s var(--ind-ease), box-shadow .35s ease;
}
.v2-case:hover { transform: translateY(-5px); box-shadow: 0 30px 56px -32px rgba(91, 26, 74, .4); }
.v2-case__stat {
  display: flex;
  gap: 14px;
  align-items: baseline;
  padding: 24px 30px;
  color: #fff;
  background:
    radial-gradient(80% 120% at 100% 0%, rgba(242, 140, 195, .4), transparent 60%),
    var(--v2-grad);
}
.v2-case__stat b { color: #fff; font-family: var(--hm-heading-font); font-size: 48px; font-weight: 700; line-height: .95; white-space: nowrap; }
.v2-case__stat span { color: rgba(255, 255, 255, .9); font-size: 12.5px; font-weight: 700; letter-spacing: .06em; line-height: 1.35; text-transform: uppercase; }
.v2-case__stat--ic { align-items: center; padding: 22px 30px; }
.v2-case__body { display: flex; flex: 1; flex-direction: column; padding: 26px 30px 30px; }
.v2-case__body h3 { margin-bottom: 6px; }
.ind--v2 .v2-case__body .ind-case__loc { margin: 0 0 12px; color: var(--ind-magenta); }
.v2-case__body p { font-size: 15.5px; }
.v2-case__body .ind-arrow { margin-top: auto; padding-top: 18px; color: var(--ind-magenta); }
.ind--v2 .v2-case mark { color: var(--ind-ink); }

/* FAQ: two balanced columns */
.v2-faq { column-count: 2; column-gap: 48px; }
.v2-faq__item { break-inside: avoid; border-bottom: 1px solid var(--ind-line); }
.v2-faq__item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 0;
  cursor: pointer;
  list-style: none;
}
.v2-faq__item summary::-webkit-details-marker { display: none; }
.ind--v2 .v2-faq__item summary h3 { font-size: 21px; line-height: 1.3; transition: color .2s ease; }
.ind--v2 .v2-faq__item summary:hover h3 { color: var(--ind-magenta); }
.ind--v2 .v2-faq__item .ind-faq__plus { border-color: #f0cfe0; }
.ind--v2 .v2-faq__item .ind-faq__plus::before,
.ind--v2 .v2-faq__item .ind-faq__plus::after { background: var(--ind-magenta); }
.ind--v2 .v2-faq__item[open] .ind-faq__plus { border-color: var(--ind-magenta); background: var(--ind-magenta); transform: rotate(45deg); }
.ind--v2 .v2-faq__item[open] .ind-faq__plus::before,
.ind--v2 .v2-faq__item[open] .ind-faq__plus::after { background: #fff; }
.v2-faq__a { padding: 0 48px 24px 0; font-size: 15.5px; }

/* CTA: a magenta panel inside the page width */
.v2-cta { padding: 104px 0; background: #fff; }
.v2-cta__box {
  position: relative;
  display: grid;
  overflow: hidden;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
  padding: 64px;
  border-radius: 34px;
  color: #fff;
  background:
    radial-gradient(60% 80% at 0% 0%, rgba(242, 140, 195, .45), transparent 60%),
    var(--v2-grad);
}
.ind--v2 .v2-cta .ind-eyebrow { color: #ffd6ec; }
.ind--v2 .v2-cta h2 { color: #fff; font-size: clamp(34px, 4vw, 54px); }
.ind--v2 .v2-cta h2 em { color: #ffd6ec; }
.v2-cta__text p { margin: 20px 0 30px !important; color: rgba(255, 255, 255, .9); font-size: 18px; }
.ind--v2 .v2-cta .ind-btn--ghost:hover,
.ind--v2 .v2-cta .ind-btn--wa:hover { color: #fff !important; }
.ind--v2 .ind-form { box-shadow: 0 40px 80px -30px rgba(60, 14, 48, .5); }
.ind--v2 .ind-form__head { color: var(--ind-ink); }

/* responsive */
@media (max-width: 1199px) {
  .v2-cards--4 { grid-template-columns: repeat(2, 1fr); }
  .v2-cards--5 { grid-template-columns: repeat(3, 1fr); }
  .v2-cta__box { gap: 40px; padding: 48px; }
}
@media (max-width: 991px) {
  .v2-sec, .v2-cta { padding: 76px 0; }
  .v2-hero { padding-top: 170px; }
  .v2-hero__grid, .v2-overview, .v2-split, .v2-cta__box { grid-template-columns: 1fr; }
  .v2-hero__media { max-width: 620px; }
  .v2-split__side { position: static; }
  .v2-types { grid-template-columns: repeat(2, 1fr); }
  .v2-stats { grid-template-columns: repeat(2, 1fr); }
  .v2-stats li:nth-child(3) { border-left: 0; }
  .v2-stats li:nth-child(n+3) { border-top: 1px solid var(--ind-line); }
  .v2-faq { column-count: 1; }
}
@media (max-width: 767px) {
  .v2-sec, .v2-cta { padding: 60px 0; }
  .v2-sec--tight { padding: 44px 0; }
  .v2-head { margin-bottom: 34px; }
  .v2-hero { padding: 140px 0 52px; }
  .v2-hero__sub { font-size: 16.5px; }
  .v2-hero__ic { bottom: -18px; left: -6px; width: 66px; height: 66px; }
  .v2-stats { margin-top: 52px; }
  .v2-stats li { padding: 16px 14px; }
  .v2-stats b { font-size: 34px; }
  .v2-answer { padding-top: 48px; }
  .v2-answer__card { grid-template-columns: 1fr; gap: 14px; padding: 26px 22px; }
  .v2-answer__card p { font-size: 16px; }
  .v2-overview { gap: 48px; }
  .v2-overview__dots { bottom: -18px; left: -12px; width: 110px; height: 110px; }
  .v2-types, .v2-cards--4, .v2-cards--5, .v2-cases { grid-template-columns: 1fr; }
  .v2-row { grid-template-columns: 60px 1fr; gap: 14px; padding: 22px 0; }
  .ind--v2 .v2-row .ind-num { font-size: 42px; }
  .ind--v2 .v2-acc__item h3 { font-size: 21px; }
  .v2-acc__head { padding: 20px 20px 0; }
  .v2-acc__body { padding: 14px 20px 20px; }
  .v2-acc__art { margin: 0 20px 20px; }
  .v2-case__stat { padding: 20px 22px; }
  .v2-case__stat b { font-size: 40px; }
  .v2-case__body { padding: 22px; }
  .v2-faq__a { padding-right: 0; }
  .v2-cta__box { padding: 32px 20px; border-radius: 26px; }
}

/* 992-1199px: the theme header wraps its button onto a second row (about 220px tall) */
@media (min-width: 992px) and (max-width: 1199px) {
  .v2-hero { padding-top: 250px; }
}

/* the three extra Services designs on tablets and phones */
@media (max-width: 991px) {
  .v2-stack__card { position: relative; top: auto; grid-template-columns: minmax(0, 1fr); gap: 26px; min-height: 0; padding: 32px 26px; }
  .v2-stack__text .ind-btn { width: auto; min-height: 50px; padding: 12px 22px; line-height: 1.3; }
  .v2-stack__art { order: -1; max-width: 380px; }
  .v2-list__row { grid-template-columns: 1fr; gap: 14px; padding: 26px 4px; }
  .v2-list__row::before { font-size: 32px; }
  .v2-list__thumb { position: relative; display: block; overflow: hidden; max-width: 340px; border-radius: 16px; background: #fff; aspect-ratio: 16 / 9; box-shadow: inset 0 0 0 1px var(--ind-line); }
  .v2-list__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
  .v2-list__go { justify-self: start; }
  .v2-sticky { grid-template-columns: 1fr; }
  .v2-sticky__visual { display: none; }
  .ind-js .v2-sticky__item { opacity: 1; }
  .v2-sticky__thumb { position: relative; display: block; overflow: hidden; grid-column: 1 / -1; border-radius: 16px; background: #fff; aspect-ratio: 16 / 9; box-shadow: inset 0 0 0 1px var(--ind-line); }
  .v2-sticky__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
}
@media (max-width: 767px) {
  .v2-stack__card { padding: 26px 20px; border-radius: 24px; }
  .v2-sticky__item { grid-template-columns: 1fr; gap: 14px; padding: 24px 20px; }
}

/* v2 on every industry page (2026-11-11): extra card grids, card links, hub overview */
.v2-cards--2 { grid-template-columns: repeat(2, 1fr); }
.v2-cards--3 { grid-template-columns: repeat(3, 1fr); }
.v2-card .ind-arrow { display: flex; margin-top: 16px; color: var(--ind-magenta); }
.ind--v2 .v2-card .ind-svc__brand { margin-top: 12px; color: #8a6a80; border-color: var(--ind-line); }
.ind--v2 .v2-card .ind-svc__brand a { color: var(--ind-magenta); }
.v2-overview--hub .v2-overview__media { order: -1; }
.ind--v2 .v2-foot { margin-top: 64px; }
.ind--v2 .v2-sec--white .v2-foot { background: var(--ind-blush); border-color: transparent; }
.ind--v2 .ind-step__n { background: #fff; }
.ind--v2 .v2-sec--white .ind-step__n { background: var(--ind-blush); }
@media (max-width: 991px) {
  .v2-cards--3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .v2-cards--2, .v2-cards--3 { grid-template-columns: 1fr; }
}

/* hub overview: the "One team, every segment" card overlaps the bottom of the photo; the photo has
   z-index 1, so the card needs to sit above it or its first line is hidden */
.v2-overview__media .ind-for { z-index: 2; }

/* v2 turns h1-h3 deep berry; headings that sit on photos or magenta must stay white */
.ind--v2 .ind-flip__body h3,
.ind--v2 .ind-flip__back h3,
.ind--v2 .ind-imgcard h3 { color: #fff; }
/* links sitting on magenta or berry: the general .ind link colour (magenta) would vanish */
.ind--v2 .v2-cta__text p a,
.ind .ind-flip__back p a { color: #fff; }
.ind--v2 .v2-cta__text p a:hover,
.ind .ind-flip__back p a:hover { color: #ffd6ec !important; }
.ind .ind-chip--all { color: #fff; }
