/* Service pages v2 (owner's redesign), part 1: night hero, bento, partners, services, philosophy.
   Part 2: agentic-v2-2.css (split for the 300-line limit, rules unchanged). Built on the site tokens. */
/* stylelint-disable no-duplicate-selectors, property-no-vendor-prefix -- design export: later rules override earlier ones on purpose; Safari needs the -webkit- mask pair. */

/* page nav pills */
.pagenav { background: var(--sand); border-bottom: 1px solid var(--line); }
.pagenav__row { display: flex; flex-wrap: wrap; gap: 10px; padding-top: 22px; padding-bottom: 22px; }
.pagenav__pill { padding: 11px 20px; border: 1px solid var(--line-3); border-radius: 999px; background: var(--white); font-weight: 500; font-size: 14px; color: var(--ink-2); white-space: nowrap; transition: background-color .3s ease, color .3s ease, border-color .3s ease; }
.pagenav__pill:hover { border-color: var(--ink); background: var(--ink); color: var(--white); }

/* approach bento */
.bento { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: minmax(300px, auto); gap: 20px; }
.bento__card { position: relative; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: var(--white); transition: transform .35s var(--ease), box-shadow .35s ease; }
.bento__card:hover { transform: translateY(-4px); box-shadow: 0 30px 60px -36px rgb(26 33 48 / 35%); }
.bento__card--hero { grid-column: span 2; grid-row: span 2; border: 0; background: var(--night); color: var(--night-ink); }
.bento__card--wide { grid-column: span 2; flex-direction: row; }
.bento__media { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.bento__card--hero .bento__media { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; opacity: .92; }
.bento__card--hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgb(20 26 38 / 94%) 82%); }
.bento__card--hero .bento__body { position: relative; z-index: 1; margin-top: auto; max-width: 620px; padding: 40px; }
.bento__card--wide .bento__media { width: 46%; height: 100%; aspect-ratio: auto; }
.bento__body { display: flex; flex-direction: column; gap: 10px; padding: 26px 26px 30px; }
.bento__step { font-size: 12px; letter-spacing: .14em; color: var(--amber); }
.bento__card--hero .bento__step { color: var(--gold); }
.bento__label { font-weight: 600; font-size: 20px; line-height: 1.25; letter-spacing: -.4px; }
.bento__card--hero .bento__label { font-size: clamp(24px, 2vw, 32px); letter-spacing: -.9px; }
.bento__text { font-size: 15px; line-height: 1.6; color: var(--slate); text-wrap: pretty; }
.bento__card--hero .bento__text { font-size: 16px; color: var(--night-body); }

/* partner panels */
.partners { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.partner { position: relative; display: flex; flex-direction: column; gap: 24px; overflow: hidden; padding: 44px 40px; border-radius: 24px; }
.partner--night { background: radial-gradient(700px 360px at 95% 0%, rgb(76 134 240 / 32%), transparent 60%), var(--night-2); color: var(--night-ink); --muted: rgb(240 238 232 / 76%); }
.partner--blue { background: radial-gradient(700px 360px at 95% 100%, rgb(245 200 66 / 22%), transparent 60%), var(--blue); color: var(--white); --muted: rgb(255 255 255 / 86%); }
.partner--strip { grid-column: 1 / -1; display: grid; grid-template-columns: 180px minmax(0, 1fr) auto; align-items: center; gap: 40px; padding: 32px 40px; border: 1px solid rgb(20 20 22 / 12%); background: var(--white); color: var(--ink); --muted: var(--slate); }
.partner__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.partner__logo { width: auto; height: 34px; }
.partner__logo--invert { filter: invert(1); }
.partner__badge { padding: 6px 14px; border: 1px solid rgb(255 255 255 / 22%); border-radius: 999px; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.partner__title { font-weight: 600; font-size: clamp(24px, 2.1vw, 34px); line-height: 1.2; letter-spacing: -.9px; text-wrap: pretty; }
.partner--strip .partner__title { font-size: 22px; letter-spacing: -.5px; }
.partner__text { margin-top: 8px; font-size: 15px; line-height: 1.6; color: var(--muted); }
.partner__list { display: flex; flex-direction: column; gap: 12px; }
.partner__list li { display: flex; gap: 12px; font-size: 15.5px; line-height: 1.55; color: var(--muted); }
.partner__list li::before { content: '✓'; flex: none; font-size: 13px; color: var(--gold); }
.partner--blue .partner__list li::before { color: var(--white); }
.partner__best { margin-top: auto; padding-top: 20px; border-top: 1px solid rgb(255 255 255 / 16%); font-size: 13px; color: var(--muted); }
.partner--strip .partner__best { margin: 0; padding: 0; border: 0; white-space: nowrap; }

/* services on deep gradient */
.practices--deep { background: linear-gradient(180deg, var(--night) 0%, var(--night-2) 30%, var(--blue-deep) 100%); }
.practices--deep .practice__num span { background: rgb(255 255 255 / 6%); }
.practices--deep .practice__link:hover { border-color: var(--gold); }
.practices__foot { display: flex; justify-content: center; margin-top: 64px; }

/* philosophy kicker */
.philo__kicker { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--amber); }
.philo { gap: 12px; }
.philo__media { margin-bottom: 8px; }

/* recognition cards */
.recog .head-center { margin-bottom: 44px; }
.recog__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.recog__card { display: flex; align-items: center; justify-content: center; min-height: 150px; padding: 28px; border: 1px solid var(--night-line); border-radius: 20px; background: var(--night-card); transition: border-color .25s ease, transform .35s var(--ease); }
.recog__card:hover { border-color: #47421f; transform: translateY(-6px); }
.recog__card img { max-width: 80%; max-height: 64px; }

@media (max-width: 1100px) {
  .bento { grid-template-columns: 1fr 1fr; grid-auto-rows: auto; }
  .bento__card--hero { grid-column: 1 / -1; grid-row: auto; min-height: 460px; }
  .bento__card--wide { grid-column: 1 / -1; }
  .partners { grid-template-columns: 1fr; }
  .partner--strip { grid-template-columns: 1fr; gap: 18px; }
  .recog__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .bento { grid-template-columns: 1fr; }
  .bento__card--wide { flex-direction: column; }
  .bento__card--wide .bento__media { width: 100%; aspect-ratio: 4 / 3; }
  .bento__card--hero .bento__body { padding: 28px 22px; }
  .partner { padding: 32px 24px; }
  .recog__grid { grid-template-columns: 1fr 1fr; }
}

/* ---------- v3: night hero ---------- */
.hero.hero--night { background: linear-gradient(180deg, var(--night) 0, rgb(20 26 38 / 0%) 240px), radial-gradient(1000px 620px at 72% 55%, rgb(76 134 240 / 20%), transparent 62%), var(--night); color: var(--night-ink); }
.hero--night .hero__glow, .hero--night .hero__rules { display: none; }
.hero--night .hero__inner { background: transparent; }
.hero--night .crumbs { color: var(--night-muted); }
.hero--night .crumbs [aria-current] { color: var(--night-ink); }
.hero--night .display-1 { color: var(--night-ink); }
.hero--night .display-1 .accent { color: var(--blue-soft); }
.hero--night .hero__lead { color: rgb(240 238 232 / 74%); }
.hero--night .hero__checks li { color: var(--night-soft); }
.hero--night .hero__checks strong { color: var(--white); }
.hero--night .tick-circle { background: rgb(245 200 66 / 16%); color: var(--gold); }
.hero--night .btn--ghost { border-color: var(--night-line); color: var(--night-ink); }
.hero--night .btn--ghost:hover { background: var(--night-ink); color: var(--ink); }
.hero--night .scene-chip { border-color: var(--night-line); background: rgb(30 38 54 / 92%); color: var(--night-ink); box-shadow: 0 10px 30px rgb(0 0 0 / 30%); }
.hero--night + .stat-band { border-top: 1px solid var(--night-line); }

/* ---------- v3: compact bento ---------- */
.bento--compact { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: minmax(190px, auto); gap: 16px; }
.bento--compact .bento__card--hero { grid-column: span 2; grid-row: span 2; }
.bento--compact .bento__card--hero .bento__body { padding: 32px; }
.bento--compact .bento__card--hero .bento__label { font-size: clamp(22px, 1.7vw, 28px); }
.bento--compact .bento__card--wide { grid-column: span 2; flex-direction: column; }
.bento--compact .bento__body { gap: 8px; padding: 24px; justify-content: center; }
.bento--compact .bento__label { font-size: 18px; }
.bento--compact .bento__text { font-size: 14.5px; }

/* ---------- v3: services list + detail ---------- */
.svc { background: linear-gradient(180deg, var(--night) 0%, var(--night-2) 40%, #0f2d66 100%); }
.svc .lead { color: var(--night-muted); }
.svc__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 24px 56px; align-items: start; }
.svc__list { display: flex; flex-direction: column; border-top: 1px solid rgb(255 255 255 / 10%); }
.svc__tab { display: grid; grid-template-columns: 44px minmax(0, 1fr) 20px; align-items: center; gap: 16px; padding: 18px 8px; border: 0; border-bottom: 1px solid rgb(255 255 255 / 10%); background: none; text-align: left; color: var(--night-muted); cursor: pointer; transition: color .3s ease, padding-left .3s var(--ease); }
.svc__tab:hover { color: var(--night-soft); }
.svc__tab[aria-selected='true'] { color: var(--night-ink); padding-left: 16px; }
.svc__num { font-size: 13px; letter-spacing: .08em; color: inherit; opacity: .7; }
.svc__tab[aria-selected='true'] .svc__num { color: var(--gold); opacity: 1; }
.svc__name { font-weight: 600; font-size: clamp(18px, 1.5vw, 24px); letter-spacing: -.5px; line-height: 1.2; }
.svc__arrow { width: 18px; height: 18px; background: currentColor; opacity: 0; transform: translateX(-6px); transition: opacity .3s ease, transform .3s var(--ease); }
.svc__tab[aria-selected='true'] .svc__arrow { opacity: 1; transform: none; color: var(--gold); }
.svc__panels { position: sticky; top: 104px; }
.svc__panel { display: flex; flex-direction: column; gap: 22px; padding: 44px 40px; border: 1px solid var(--night-line); border-radius: 24px; background: radial-gradient(600px 300px at 90% 0%, rgb(76 134 240 / 28%), transparent 60%), var(--night-card); animation: eco-in .5s var(--ease); }
.svc__panel-num { font-size: 12px; letter-spacing: .14em; color: var(--gold); }
.svc__title { font-weight: 600; font-size: clamp(26px, 2.2vw, 36px); line-height: 1.12; letter-spacing: -1.1px; color: var(--night-ink); }
.svc__items { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; }
.svc__items li { display: flex; gap: 11px; font-size: 15px; line-height: 1.5; color: var(--night-soft); }
.svc__items li::before { content: '✓'; flex: none; font-size: 13px; color: var(--gold); }
.svc__panel .btn { align-self: flex-start; margin-top: 10px; }

@media (max-width: 1100px) {
  .bento--compact { grid-template-columns: 1fr 1fr; }
  .bento--compact .bento__card--hero { grid-column: 1 / -1; grid-row: auto; min-height: 400px; }
  .svc__grid { grid-template-columns: minmax(0, 1fr); }
  .svc__panels { position: static; }
  .svc__items { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .bento--compact { grid-template-columns: 1fr; }
  .bento--compact .bento__card--wide { grid-column: auto; }
  .svc__panel { padding: 28px 22px; }
}

/* ---------- v3: stats inside the hero ---------- */
.hero--night .hero__inner { padding-bottom: 0; }
.hero--night .hero__stats { position: relative; z-index: 3; margin: 40px auto 0; padding: 36px var(--gutter) 56px; border-top: 1px solid var(--night-line); gap: 28px; justify-items: center; text-align: center; }
.hero--night .hero__stats .stat { padding-top: 0; border-top: 0; }
.hero--night .hero__stats .stat__label { text-align: center; }
.hero--night .hero__stats .stat__value { font-size: clamp(30px, 2.6vw, 44px); }
.hero--night + .stat-band { border-top: 0; }

/* ---------- v3: three partner cards ---------- */
.partners { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.partner { padding: 40px 34px; }
.partner__title { font-size: clamp(22px, 1.6vw, 28px); }
.partner--light { border: 1px solid rgb(20 20 22 / 12%); background: var(--white); color: var(--ink); --muted: var(--slate); }
.partner--light .partner__badge { border-color: rgb(20 20 22 / 16%); }
.partner--light .partner__list li::before { color: var(--blue); }
.partner--light .partner__best { border-top-color: rgb(20 20 22 / 10%); }

@media (max-width: 1100px) { .partners { grid-template-columns: 1fr; } }

/* ---------- v3: review badges inside testimonials ---------- */
.recog-inline { margin-top: 56px; padding-top: 44px; border-top: 1px solid #263148; }
.recog-inline__label { margin-bottom: 22px; text-align: center; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: var(--night-muted); }
.recog-inline .recog__card { min-height: 110px; padding: 20px; border-radius: 16px; }
.recog-inline .recog__card img { max-height: 48px; }

/* ---------- v3: philosophy on dark video ---------- */
.philo-dark { position: relative; overflow: hidden; background: var(--night); color: var(--night-ink); }
.philo-dark__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.philo-dark__veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgb(20 26 38 / 88%) 0%, rgb(20 26 38 / 78%) 45%, rgb(20 26 38 / 92%) 100%); }
.philo-dark__inner { position: relative; z-index: 1; }
.philo-dark .display-2 { color: var(--night-ink); }
.philo-dark .philo { padding: 14px 14px 26px; border: 1px solid rgb(255 255 255 / 12%); border-radius: 24px; background: rgb(30 38 54 / 62%); backdrop-filter: blur(10px); }
.philo-dark .philo__media { border-radius: 16px; }
.philo-dark .philo__kicker, .philo-dark .philo__title, .philo-dark .philo p { padding: 0 10px; }
.philo-dark .philo__kicker { color: var(--gold); }
.philo-dark .philo__title { color: var(--night-ink); }
.philo-dark .philo p { color: var(--night-soft); }

@media (prefers-reduced-motion: reduce) { .philo-dark__video { display: none; } }
