/*
  同盟公开门户 V5：六页共享的空间、排版、媒体、标题动效与卡片深度契约。
  仅覆盖公开页；基础结构继续由 foundation.css / portal-unified.css 提供。
*/
.tm-public-v5 {
  --tm-v5-container: 1200px;
  --tm-v5-gutter: 24px;
  --tm-v5-ink: #0b1f3a;
  --tm-v5-heading: #172b4d;
  --tm-v5-body: #52647c;
  --tm-v5-muted: #71849d;
  --tm-v5-line: #d9e6f5;
  --tm-v5-line-strong: #bfd5ee;
  --tm-v5-canvas: #f4f8fe;
  --tm-v5-blue: #006eff;
  --tm-v5-blue-deep: #0052cc;
  --tm-v5-shadow: 0 18px 46px rgba(21, 65, 112, 0.1);
  --tm-v5-shadow-hover: 0 24px 58px rgba(19, 77, 143, 0.17);
  color: var(--tm-v5-ink);
  font-family: "TencentSans", "Tencent Sans", "PingFang SC", "Microsoft YaHei", sans-serif;
}

.tm-public-v5 main {
  overflow: clip;
}

.tm-public-v5 .tcwf-section,
.tm-public-v5 .tcwf-section--muted {
  padding-block: clamp(72px, 7.2vw, 104px);
}

.tm-public-v5 .tcwf-section__inner,
.tm-public-v5 .tm-section-bar,
.tm-public-v5 .tcwf-solution-hero__inner {
  width: min(calc(100% - (var(--tm-v5-gutter) * 2)), var(--tm-v5-container));
  margin-inline: auto;
}

.tm-public-v5 .tm-hero-divider {
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, transparent, #d4e2f2 10%, #d4e2f2 90%, transparent);
}

.tm-public-v5 .tcwf-section__header {
  max-width: 760px;
  margin: 0 0 40px;
  text-align: left !important;
}

.tm-public-v5 .tcwf-section__header .tcwf-section__description {
  max-width: 720px;
  margin: 10px 0 0;
  color: var(--tm-v5-body);
  font-size: 15px;
  line-height: 1.75;
  text-align: left;
}

.tm-public-v5 .tcwf-section__title {
  margin: 0;
  color: var(--tm-v5-ink);
  font-family: "TencentSans", "Tencent Sans", "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: clamp(34px, 3vw, 42px);
  font-weight: 650;
  line-height: 1.18;
  letter-spacing: -0.035em;
  text-align: left;
}

.tm-public-v5 .tm-section-bar {
  align-items: end;
}

.tm-public-v5 .tm-section-bar__title {
  color: var(--tm-v5-heading);
  font-family: "TencentSans", "Tencent Sans", "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: clamp(23px, 2vw, 28px);
  font-weight: 620;
  line-height: 1.3;
  letter-spacing: -0.02em;
  text-align: left;
}

.tm-public-v5 .tm-section-bar__hint {
  margin-top: 8px;
  color: var(--tm-v5-muted);
  line-height: 1.7;
  text-align: left;
}

.tm-public-v5 .tm-motion-title {
  position: relative;
}

.tm-public-v5 .tm-motion-title__token {
  display: inline-block;
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0);
  transition:
    opacity 680ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 680ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 680ms cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: var(--tm-title-delay, 0ms);
}

.tm-public-v5 .tm-hero-stage h1 .tm-motion-title__token {
  display: inline-block;
}

.tm-public-v5 .tm-motion-title__token--space {
  white-space: pre;
}

.tm-public-v5.tm-motion-ready .tm-motion-title[data-tm-reveal-state="hidden"] .tm-motion-title__token {
  opacity: 0;
  filter: blur(4px);
  transform: translate3d(0, 22px, 0);
}

.tm-public-v5 [data-tm-tilt-ready="true"] {
  --tm-tilt-x: 0deg;
  --tm-tilt-y: 0deg;
  --tm-tilt-lift: 0px;
  position: relative;
  transform: perspective(1200px) rotateX(var(--tm-tilt-x)) rotateY(var(--tm-tilt-y)) translate3d(0, var(--tm-tilt-lift), 0);
  transform-style: preserve-3d;
  transition:
    transform 260ms cubic-bezier(0.16, 1, 0.3, 1),
    border-color 260ms ease,
    box-shadow 260ms ease;
}

.tm-public-v5 [data-tm-tilt-ready="true"]:is(
  [data-tm-tilt-state="active"],
  [data-tm-tilt-state="settling"]
) {
  will-change: transform;
}

.tm-public-v5 [data-tm-tilt-ready="true"][data-tm-tilt-state="active"] {
  --tm-tilt-lift: -2px;
  border-color: var(--tm-v5-line-strong);
  box-shadow: var(--tm-v5-shadow-hover);
}

.tm-public-v5 [data-tm-tilt-ready="true"] > img,
.tm-public-v5 [data-tm-tilt-ready="true"] > figure,
.tm-public-v5 [data-tm-tilt-ready="true"] > .tcwf-benefit__icon {
  transform: translateZ(12px);
}

.tm-public-v5 :where(a, button, input, select, [tabindex]):focus-visible {
  outline: 2px solid var(--tm-v5-blue);
  outline-offset: 3px;
}

/* 沙龙：真实活动封面保持横向比例，不再被旧样式撑成近方形。 */
.tm-public-v5 .tm-event-gallery .tcwf-case-grid {
  align-items: stretch;
  gap: 24px;
}

.tm-public-v5 .tm-event-gallery .tcwf-case-card {
  display: flex;
  min-width: 0;
  overflow: hidden;
  flex-direction: column;
  border-radius: 14px;
  box-shadow: 0 14px 34px rgba(36, 77, 124, 0.08);
}

.tm-public-v5 .tm-event-gallery .tcwf-case-card__image {
  display: block;
  width: 100%;
  height: auto !important;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center;
}

.tm-public-v5 .tm-event-gallery .tcwf-case-card__body {
  display: flex;
  min-height: 176px;
  padding: 24px;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
}

.tm-public-v5 .tm-event-gallery .tcwf-case-card__description {
  margin-bottom: 20px;
}

.tm-public-v5 .tm-event-gallery .tcwf-case-card__body .tcwf-text-link {
  margin-top: auto;
}

/* CTA 的内容从容器左边界起排，修复左侧空槽和按钮挤压。 */
.tm-public-v5 .tm-join-band {
  width: min(calc(100% - (var(--tm-v5-gutter) * 2)), var(--tm-v5-container));
  overflow: hidden;
  margin-inline: auto;
  border-radius: 16px;
  box-shadow: 0 22px 50px rgba(0, 70, 164, 0.2);
}

.tm-public-v5 .tm-join-band .tcwf-solution-cta__inner {
  width: 100%;
  max-width: none;
  min-height: 196px;
  margin: 0;
  padding: 40px;
}

.tm-public-v5 .tm-join-band .tcwf-solution-cta__copy {
  max-width: 760px;
  margin: 0;
  text-align: left;
}

.tm-public-v5 .tm-join-band .tcwf-solution-cta__copy h2 {
  margin: 0;
  font-size: clamp(26px, 2.4vw, 34px);
  line-height: 1.25;
}

.tm-public-v5 .tm-join-band .tcwf-solution-cta__copy p {
  margin: 12px 0 0;
  line-height: 1.75;
}

.tm-public-v5 .tm-join-band .tcwf-solution-cta__actions {
  margin-top: 24px;
}

@media (max-width: 1023px) {
  .tm-public-v5 .tcwf-section,
  .tm-public-v5 .tcwf-section--muted {
    padding-block: 76px;
  }

  .tm-public-v5 .tm-event-gallery .tcwf-case-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .tm-public-v5 {
    --tm-v5-gutter: 20px;
  }

  .tm-public-v5 .tcwf-section,
  .tm-public-v5 .tcwf-section--muted {
    padding-block: 60px;
  }

  .tm-public-v5 .tcwf-section__header {
    margin-bottom: 32px;
  }

  .tm-public-v5 .tcwf-section__title {
    font-size: clamp(30px, 9vw, 34px);
  }

  .tm-public-v5 .tm-section-bar__title {
    font-size: 23px;
  }

  .tm-public-v5 .tm-event-gallery .tcwf-case-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .tm-public-v5 .tm-event-gallery .tcwf-case-card__body {
    min-height: 164px;
    padding: 22px;
  }

  .tm-public-v5 .tm-join-band .tcwf-solution-cta__inner {
    min-height: 0;
    padding: 32px 24px;
  }
}

@media (prefers-reduced-motion: reduce), (hover: none), (pointer: coarse) {
  .tm-public-v5 [data-tm-tilt-ready="true"] {
    transform: none !important;
    transition: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tm-public-v5 .tm-motion-title__token {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    transition: none !important;
  }
}
