/* The banner owns its backdrop; each overlay owns its text, media and link. */
.v4-body .v4-banner-composable .v4-banner-components { display:flex; flex-direction:column; gap:22px; min-width:0; z-index:1; }
.v4-body .v4-banner-composable[data-banner-background="brand"] { height:auto; min-height:var(--v4-brand-banner-height,380px); }
.v4-body .v4-banner-composable[data-banner-background="brand"] .v4-banner-components { position:relative; width:100%; max-width:1100px; }
.v4-banner-composable[data-banner-align="left"] .v4-banner-components { align-items:flex-start; text-align:left; }
.v4-banner-composable[data-banner-align="center"] .v4-banner-components { align-items:center; text-align:center; }
.v4-banner-composable[data-banner-align="right"] .v4-banner-components { align-items:flex-end; text-align:right; }
.v4-body .v4-banner-composable[data-banner-align] .v4-banner-element :is(h1,p) { text-align:inherit; }
.v4-banner-element { position:relative; min-width:0; max-width:100%; --module-title-size:initial; --module-body-size:initial; }
.v4-body .v4-banner-element--banner-title h1 { margin:0; font-size:var(--module-title-size,clamp(28px,3.2vw,52px)); line-height:1.4; overflow-wrap:anywhere; }
.v4-body .v4-banner-element--banner-text .v4-banner-prose { font-size:var(--module-body-size,clamp(18px,1.55vw,28px)); line-height:1.8; overflow-wrap:anywhere; }
.v4-body .v4-banner-element--banner-text p { margin:0; font-size:inherit; line-height:inherit; letter-spacing:inherit; }
.v4-body .v4-banner-element--banner-text p+p { margin-top:.65em; }
.v4-body .v4-banner-prose>:first-child { margin-top:0; }
.v4-body .v4-banner-prose>:last-child { margin-bottom:0; }
.v4-body .v4-banner-components>.v4-banner-element { margin:0; }
.v4-body .v4-banner-element--banner-image { width:var(--hero-image-width,100%); max-width:827px; line-height:0; }
.v4-body .v4-banner-element--banner-image :is(a,picture) { display:block; position:static; width:100%; }
.v4-body .v4-banner-element--banner-image picture>img { position:static; display:block; width:100%; max-width:100%; height:auto; max-height:340px; object-fit:contain; }
.v4-body .v4-banner-button { display:inline-flex; font-size:var(--module-body-size,16px); max-width:100%; }
.v4-body .v4-banner-button>img { position:static; display:block; width:var(--home-button-width,190px); max-width:100%; height:auto; object-fit:contain; }
.v4-component-canvas .v4-banner-element:empty::before { content:'空内容组件 · 点击编辑'; display:block; min-width:120px; padding:12px; border:1px dashed currentColor; font-size:14px; line-height:1.5; }
@media(min-width:1200px) and (pointer:fine) {
  .v4-body .v4-banner-composable .v4-banner-components { gap:var(--banner-desktop-gap,24px); }
  .v4-banner-composable[data-banner-background="photo"] { --banner-copy-start:20%; --banner-copy-width:60%; }
  .v4-banner-composable[data-banner-background="photo"][data-banner-position="left"] { --banner-copy-start:8%; --banner-copy-width:34%; }
  .v4-banner-composable[data-banner-background="photo"][data-banner-position="right"] { --banner-copy-start:62%; --banner-copy-width:32%; }
  .v4-body .v4-banner-composable[data-banner-background="photo"] .v4-banner-components {
    left:clamp(24px,calc(var(--banner-copy-start) + var(--banner-desktop-offset-x,0px)),calc(100% - var(--banner-copy-width) - 24px));
    right:auto; width:var(--banner-copy-width); top:calc(50% + var(--banner-desktop-offset-y,0px)); bottom:auto; transform:translateY(-50%);
  }
  .v4-body .v4-banner-composable[data-banner-background="brand"] { display:grid; align-items:center; justify-items:center; padding:48px 8%; }
  .v4-body .v4-banner-composable[data-banner-background="brand"] .v4-banner-components {
    transform:translate(clamp(-6vw,var(--banner-desktop-offset-x,0px),6vw),var(--banner-desktop-offset-y,0px));
  }
  .v4-banner-composable[data-banner-position="left"] .v4-hero-shade { background:linear-gradient(90deg,#b50323b3,#c5042440 42%,transparent 65%); }
  .v4-banner-composable[data-banner-position="center"] .v4-hero-shade { background:linear-gradient(90deg,transparent,#b5032380,transparent); }
}
@media(max-width:1199px),(pointer:coarse) {
  .v4-body .v4-banner-composable .v4-banner-components { gap:14px; }
  .v4-body .v4-banner-element--banner-title h1 { font-size:var(--module-title-size,28px); }
  .v4-body .v4-banner-element--banner-text .v4-banner-prose { font-size:var(--module-body-size,17px); }
  .v4-body .v4-banner-composable[data-banner-background="photo"] .v4-banner-components { left:8%; right:8%; top:auto; bottom:55px; }
  /* Keep right-positioned photo overlays on the right when the copy spans a phone. */
  .v4-banner-composable[data-banner-background="photo"][data-banner-position="right"] .v4-banner-components { align-items:flex-end; text-align:right; }
  .v4-body [data-module-kind="banner"][style*="--v4-mobile-text-align:"] .v4-banner-components { text-align:var(--v4-mobile-text-align); }
  .v4-body [data-module-kind="banner"][style*="--v4-mobile-text-align:left;"] .v4-banner-components { align-items:flex-start; }
  .v4-body [data-module-kind="banner"][style*="--v4-mobile-text-align:center;"] .v4-banner-components { align-items:center; }
  .v4-body [data-module-kind="banner"][style*="--v4-mobile-text-align:right;"] .v4-banner-components { align-items:flex-end; }
  .v4-body .v4-banner-element--banner-image picture>img { max-height:240px; }
}
