/**
 * 精选新闻网格布局前端样式
 *
 * @package NewsWire_Pro
 */

/* 网格容器 */
.header-grid-container {
    width: 100%;
    margin: 0 auto;
    max-width: var(--header-normal-width, 1200px);
    padding: 0 var(--header-content-padding, 20px);
    box-sizing: border-box;
    overflow: visible;
}

.header-grid-container.header-grid-full {
    width: 100%;
    max-width: var(--header-full-width, 1400px);
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
}

.header-grid-layout {
    display: grid;
    grid-template-columns: repeat(33, 1fr);
    grid-template-rows: repeat(9, 120px);
    gap: 0;
    row-gap: 0;
    column-gap: 15px;
    align-content: start;
    overflow: visible;
}

.header-block {
    padding: 0;
}

.header-block-inner {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: stretch;
}

.header-block-inner.align-left {
    justify-content: flex-start;
}

.header-block-inner.align-center {
    justify-content: center;
}

.header-block-inner.align-right {
    justify-content: flex-end;
}

.header-block-inner.align-space-between {
    justify-content: space-between;
}

.header-block-content {
    display: block;
    width: 100%;
    max-width: 100%;
}

.header-block.valign-top {
    align-self: start;
}

.header-block.valign-center {
    align-self: center;
}

.header-block.valign-bottom {
    align-self: end;
}

.header-block.row-full {
    position: relative;
    width: var(--header-full-width, 1400px);
    max-width: 100%;
    left: 0;
    transform: none;
    margin-left: calc((var(--header-normal-width, 1200px) - var(--header-full-width, 1400px)) / 2 - var(--header-content-padding, 20px));
    margin-right: calc((var(--header-normal-width, 1200px) - var(--header-full-width, 1400px)) / 2 - var(--header-content-padding, 20px));
    justify-self: stretch;
}

.header-grid-container.header-grid-full .header-block.row-full {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
}

.site-wrapper {
    overflow: visible;
}

.site-header,
.site-branding {
    overflow: visible;
}

.site-branding {
    padding: 0;
}

/* 通用区块样式 */
.grid-block {
    overflow: hidden;
    background: var(--surface-color, #fff);
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    transition: all 0.3s;
}

.grid-block:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
    transform: translateY(-2px);
}

/* ==================== 焦点区块样式 ==================== */
.focus-block-content {
    height: 100%;
    display: flex;
    overflow: hidden;
    position: relative;
}

/* 1. 只显示图片 */
.focus-block-content.focus-image-image-only {
    padding: 0;
}

.focus-block-content.focus-image-image-only .focus-carousel-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
}

.focus-image-only {
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: var(--bg-dark, #000);
}

.focus-image-only img {
    width: 100%;
    height: auto;
    min-height: 100%;
    object-fit: cover;
    object-position: center;
}

/* 2. 背景图，标题在下部 */
.focus-block-content.focus-image-background-bottom {
    padding: 0;
}

.focus-block-content.focus-image-background-bottom .focus-carousel-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
}

.focus-background {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    display: flex;
    align-items: flex-end;
    position: relative;
}

.focus-info-overlay {
    width: 100%;
    padding: 20px;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent);
}

.focus-info-overlay .focus-title,
.focus-info-overlay .focus-date {
    color: var(--white, #fff) !important;
}

.focus-info-overlay .focus-title a {
    color: inherit !important;
}

/* 3. 图片在上，标题在下 */
.focus-block-content.focus-image-top {
    flex-direction: column;
}

.focus-block-content.focus-image-top .focus-carousel-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
}

.focus-block-content.focus-image-top .focus-carousel-item {
    flex-direction: column;
}

.focus-block-content.focus-image-top .focus-image {
    flex: 0 0 65%;
}

.focus-block-content.focus-image-top .focus-info {
    flex: 1;
    padding: 15px;
}

/* 4. 图片在左，标题在右 */
.focus-block-content.focus-image-left {
    flex-direction: row;
}

.focus-block-content.focus-image-left .focus-carousel-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
}

.focus-block-content.focus-image-left .focus-carousel-item {
    flex-direction: row;
}

.focus-block-content.focus-image-left .focus-image {
    flex: 0 0 55%;
}

.focus-block-content.focus-image-left .focus-info {
    flex: 1;
    padding: 15px;
}

/* 5. 图片在右，标题在左 */
.focus-block-content.focus-image-right {
    flex-direction: row;
}

.focus-block-content.focus-image-right .focus-carousel-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
}

.focus-block-content.focus-image-right .focus-carousel-item {
    flex-direction: row;
}

.focus-block-content.focus-image-right .focus-image {
    order: 2;
    flex: 0 0 55%;
}

.focus-block-content.focus-image-right .focus-info {
    order: 1;
    flex: 1;
    padding: 15px;
}

/* 6. 图片在下，标题在上 */
.focus-block-content.focus-image-bottom {
    flex-direction: column;
}

.focus-block-content.focus-image-bottom .focus-carousel-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
}

.focus-block-content.focus-image-bottom .focus-carousel-item {
    flex-direction: column;
}

.focus-block-content.focus-image-bottom .focus-image {
    order: 2;
    flex: 0 0 65%;
}

.focus-block-content.focus-image-bottom .focus-info {
    order: 1;
    flex: 1;
    padding: 15px;
}

/* 焦点图片 */
.focus-image {
    overflow: hidden;
    background: var(--bg-dark, #000);
    position: relative;
}

.focus-image a {
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.focus-image img {
    width: 100%;
    height: auto;
    min-height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.3s;
}

.focus-image:hover img {
    transform: scale(1.05);
}

/* 焦点信息 */
.focus-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.focus-title {
    font-size: 18px;
    line-height: 1.4;
    margin: 0 0 10px 0;
    font-weight: 600;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

.focus-title a {
    text-decoration: none;
    transition: opacity 0.3s;
}

.focus-title a:hover {
    opacity: 0.8;
}

.focus-date {
    font-size: 13px;
    color: var(--text-light, #666);
}

/* ==================== 焦点区块走马灯样式 ==================== */
.focus-carousel-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
}

.focus-carousel-item {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
    pointer-events: none;
}

.focus-carousel-item.active {
    opacity: 1;
    pointer-events: auto;
}

/* 轮播控制按钮 */
.focus-carousel-controls {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex !important;
    align-items: center;
    gap: 15px;
    z-index: 100;
}

.focus-carousel-prev,
.focus-carousel-next {
    display: none;
}

/* 圆点指示器 */
.focus-carousel-dots {
    display: flex;
    gap: 10px;
    align-items: center;
}

.focus-carousel-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.6);
    cursor: pointer;
    transition: all 0.3s;
    flex-shrink: 0;
}

.focus-carousel-dot:hover {
    background: rgba(255, 255, 255, 0.9);
    transform: scale(1.2);
}

.focus-carousel-dot.active {
    background: var(--white, #fff);
    width: 32px;
    border-radius: 6px;
}

/* ==================== 列表区块样式 ==================== */
.carousel-block-content {
    height: 100%;
    padding: 10px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.carousel-list {
    list-style: none;
    margin: 0;
    padding: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
}

.carousel-item {
    flex: 1;
    min-height: 0;
    display: flex;
    align-items: center;
}

.carousel-item a {
    display: flex;
    align-items: center;
    text-decoration: none;
    padding: 6px 8px;
    border-radius: 4px;
    transition: background 0.3s;
    width: 100%;
    height: 100%;
}

.carousel-item a:hover {
    background: var(--bg-light, #f5f5f5);
}

/* 图片+文字样式 */
.carousel-image-text .carousel-image {
    flex: 0 0 60px;
    height: 50px;
    margin-right: 10px;
    overflow: hidden;
    border-radius: 4px;
}

.carousel-image-text .carousel-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.carousel-image-text .carousel-info {
    flex: 1;
    min-width: 0;
}

/* 小图片样式 */
.carousel-small-image .carousel-image {
    flex: 0 0 50px;
    height: 50px;
    margin-right: 10px;
    overflow: hidden;
    border-radius: 50%;
}

.carousel-small-image .carousel-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.carousel-small-image .carousel-info {
    flex: 1;
    min-width: 0;
}

/* 纯文字样式 */
.carousel-text-only .carousel-info {
    width: 100%;
}

/* 列表标题和日期 */
.carousel-title {
    font-size: 13px;
    line-height: 1.3;
    margin: 0 0 3px 0;
    font-weight: 600;
    color: var(--text-color, #333);
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

.carousel-date {
    font-size: 11px;
    color: var(--muted-color, #999);
}

/* 列表控制按钮 */
.carousel-controls {
    position: absolute;
    bottom: 10px;
    right: 10px;
    display: flex;
    gap: 5px;
}

.carousel-controls button {
    width: 30px;
    height: 30px;
    border: none;
    background: rgba(0, 0, 0, 0.5);
    color: var(--white, #fff);
    border-radius: 50%;
    cursor: pointer;
    transition: background 0.3s;
}

.carousel-controls button:hover {
    background: rgba(0, 0, 0, 0.7);
}

/* ==================== 装饰区块样式 ==================== */
.decoration-block-content {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.decoration-text {
    font-size: 16px;
    line-height: 1.6;
    color: var(--text-light, #666);
    text-align: center;
}

.decoration-image {
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: 4px;
}

.decoration-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.decoration-html {
    width: 100%;
    height: 100%;
    overflow: auto;
}

/* ==================== Logo区块样式 ==================== */
.logo-block-content {
    height: 100%;
    display: flex;
    align-items: center;
    padding: 0;
}

.logo-block-content.logo-cover-mode {
    padding: 0;
    width: 100%;
    overflow: hidden;
}

.logo-block-content.logo-cover-mode .logo-link {
    display: block;
    width: 100%;
    height: 100%;
}

.logo-block-content.logo-cover-mode .logo-image.logo-size-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.logo-block-content.logo-align-left {
    justify-content: flex-start;
}

.logo-block-content.logo-align-center {
    justify-content: center;
}

.logo-block-content.logo-align-right {
    justify-content: flex-end;
}

.logo-block-content.logo-align-space-between {
    justify-content: space-between;
}

.logo-image {
    display: block;
}

/* Logo图片大小 - 自动适配（默认） */
.logo-image.logo-size-auto {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}

/* Logo图片大小 - 原始大小 */
.logo-image.logo-size-original {
    max-width: none;
    max-height: none;
    width: auto;
    height: auto;
}

/* Logo图片大小 - 拉伸填满 */
.logo-image.logo-size-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.logo-text {
    font-weight: bold;
    line-height: 1.2;
    text-decoration: none;
    display: block;
}

/* ==================== 菜单区块样式 ==================== */
.header-block.header-block-menu {
    width: 100%;
}

.header-block.header-block-menu .menu-block-content {
    width: 100%;
    flex: 1 1 auto;
}

.menu-block-content {
    height: 100%;
    display: block;
    text-align: center;
    padding: 0;
}

/* 靠左对齐 */
.menu-block-content.menu-align-left {
    text-align: left;
}

/* 靠右对齐 */
.menu-block-content.menu-align-right {
    text-align: right;
}

/* 两端对齐时去除左右padding，并使用flex布局 */
.menu-block-content.menu-align-space-between {
    padding-left: 0;
    padding-right: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.menu-block-content .header-navigation {
    display: inline-block;
    vertical-align: middle;
    text-align: left;
}

.menu-block-content .header-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: inline-flex;
    gap: var(--menu-gap, 24px);
    column-gap: var(--menu-gap, 24px);
    row-gap: var(--menu-gap, 24px);
}

/* 横向菜单 */
.menu-block-content.menu-horizontal .header-menu {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    --menu-gap: 24px;
}

.menu-block-content.menu-horizontal .header-menu>li {
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    flex-shrink: 0;
    position: relative;
}

.menu-block-content.menu-horizontal .header-menu>li>a {
    display: block;
    padding: 0;
    text-decoration: none;
    transition: color 0.3s, background-color 0.3s, box-shadow 0.3s;
    white-space: nowrap;
    color: var(--text-color, #000000);
}

.menu-block-content.menu-horizontal .header-menu>li>a:hover {
    color: var(--primary-color, #c8102e);
}

/* 横向菜单两端对齐时，菜单项平均分布 */
.menu-block-content.menu-horizontal.menu-align-space-between .header-navigation {
    display: block;
    width: 100%;
}

.menu-block-content.menu-horizontal.menu-align-space-between .header-menu {
    display: flex;
    justify-content: space-between;
    width: 100%;
    gap: 0;
    --menu-gap: 24px;
}

.menu-block-content.menu-horizontal.menu-align-space-between .header-menu>li {
    flex: 1 1 0;
    text-align: center;
    justify-content: center;
}

.menu-block-content.menu-horizontal.menu-align-space-between .header-menu>li>a {
    padding: 0;
    width: 100%;
    justify-content: center;
    text-align: center;
}

/* 横向菜单居中时，减小菜单项间距 */
.menu-block-content.menu-horizontal.menu-align-center .header-menu>li>a {
    padding: 0;
}

.menu-block-content.menu-horizontal.menu-align-center .header-menu {
    --menu-gap: 16px;
}

/* 纵向菜单 */
.menu-block-content.menu-vertical .header-menu {
    flex-direction: column;
}

.menu-block-content.menu-vertical .header-menu>li {
    margin: 0;
    padding: 0;
}

.menu-block-content.menu-vertical .header-menu>li>a {
    display: block;
    padding: 0;
    text-decoration: none;
    transition: color 0.3s, background-color 0.3s, box-shadow 0.3s;
    color: var(--text-color, #000000);
}

.menu-block-content.menu-vertical .header-menu>li>a:hover {
    color: var(--primary-color, #c8102e);
}

/* 菜单对齐方式 - 纵向菜单 */
.menu-block-content.menu-vertical.menu-align-left .header-menu {
    align-items: flex-start;
}

.menu-block-content.menu-vertical.menu-align-center .header-menu {
    align-items: center;
}

.menu-block-content.menu-vertical.menu-align-right .header-menu {
    align-items: flex-end;
}

/* 横向菜单分隔符 */
.menu-block-content.menu-horizontal.menu-divider-vertical-line .header-menu>li:not(:last-child)::after {
    content: '|';
    display: inline-block;
    margin: 0;
    color: var(--menu-divider-color, #ddd);
    vertical-align: middle;
    line-height: 1;
}

.menu-block-content.menu-horizontal.menu-divider-dot .header-menu>li:not(:last-child)::after {
    content: '•';
    display: inline-block;
    margin: 0;
    color: var(--menu-divider-color, #ddd);
    font-size: 0.8em;
    vertical-align: middle;
    line-height: 1;
}

.menu-block-content.menu-horizontal.menu-divider-slash .header-menu>li:not(:last-child)::after {
    content: '/';
    display: inline-block;
    margin: 0;
    color: var(--menu-divider-color, #ddd);
    vertical-align: middle;
    line-height: 1;
}

.menu-block-content.menu-horizontal.menu-divider-diamond .header-menu>li:not(:last-child)::after {
    content: '◆';
    display: inline-block;
    margin: 0;
    color: var(--menu-divider-color, #ddd);
    font-size: 0.7em;
    vertical-align: middle;
    line-height: 1;
}

.menu-block-content.menu-horizontal.menu-divider-square .header-menu>li:not(:last-child)::after {
    content: '■';
    display: inline-block;
    margin: 0;
    color: var(--menu-divider-color, #ddd);
    font-size: 0.6em;
    vertical-align: middle;
    line-height: 1;
}

.menu-block-content.menu-horizontal.menu-divider-circle-dot .header-menu>li:not(:last-child)::after {
    content: '◉';
    display: inline-block;
    margin: 0;
    color: var(--menu-divider-color, #ddd);
    font-size: 0.8em;
    vertical-align: middle;
    line-height: 1;
}

/* 居中对齐时减小分隔符间距 */
.menu-block-content.menu-horizontal.menu-align-center .header-menu>li:not(:last-child)::after {
    margin: 0;
}

/* 分隔符居中位置与颜色 */
.menu-block-content.menu-horizontal .header-menu>li:not(:last-child)::after {
    position: absolute;
    top: 50%;
    right: calc(var(--menu-gap, 24px) / -2);
    transform: translate(50%, -50%);
    color: var(--menu-divider-color, #ddd);
}

/* 两端对齐时，分隔符位于菜单项中间 */
.menu-block-content.menu-horizontal.menu-align-space-between .header-menu>li:not(:last-child)::after {
    left: auto;
    right: 0;
    transform: translate(50%, -50%);
}

/* 两端对齐时隐藏分隔符 */
.menu-block-content.menu-horizontal.menu-align-space-between .header-menu>li:not(:last-child)::after {
    display: none;
}

/* 纵向菜单前置图标 */
.menu-block-content.menu-vertical.menu-icon-circle .header-menu>li>a::before {
    content: '●';
    display: inline-block;
    margin-right: 8px;
    font-size: 0.6em;
    vertical-align: middle;
}

.menu-block-content.menu-vertical.menu-icon-arrow .header-menu>li>a::before {
    content: '➤';
    display: inline-block;
    margin-right: 8px;
    font-size: 0.8em;
}

.menu-block-content.menu-vertical.menu-icon-chevron .header-menu>li>a::before {
    content: '›';
    display: inline-block;
    margin-right: 8px;
    font-size: 1.2em;
    font-weight: bold;
}

.menu-block-content.menu-vertical.menu-icon-dash .header-menu>li>a::before {
    content: '—';
    display: inline-block;
    margin-right: 8px;
    font-size: 0.8em;
}

.menu-block-content.menu-vertical.menu-icon-plus .header-menu>li>a::before {
    content: '+';
    display: inline-block;
    margin-right: 8px;
    font-size: 1em;
    font-weight: bold;
}

.menu-block-content.menu-vertical.menu-icon-star .header-menu>li>a::before {
    content: '★';
    display: inline-block;
    margin-right: 8px;
    font-size: 0.8em;
}

/* 纵向菜单悬停效果 */
.menu-block-content.menu-vertical .header-menu>li>a:hover::before {
    transform: translateX(3px);
}

/* ==================== 走马灯区块样式 ==================== */
.carousel-block-content {
    height: 100%;
    width: 100%;
    display: flex;
    align-items: center;
    overflow: hidden;
    padding: 6px 10px;
}

.carousel-block-content.carousel-align-left {
    justify-content: flex-start;
}

.carousel-block-content.carousel-align-center {
    justify-content: center;
}

.carousel-block-content.carousel-align-right {
    justify-content: flex-end;
}

.carousel-block-content.carousel-align-space-between {
    justify-content: space-between;
}

.carousel-marquee {
    width: 100%;
    overflow: hidden;
    color: var(--marquee-text-color, #333);
    height: 100%;
    display: flex;
    align-items: center;
}

.carousel-marquee-track {
    display: flex;
    width: max-content;
    animation: header-marquee-scroll var(--marquee-speed, 18s) linear infinite;
}

.carousel-marquee-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 24px;
}

.carousel-marquee-item a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: inherit;
    text-decoration: none;
    white-space: nowrap;
}

.carousel-marquee-item a:hover {
    opacity: 0.85;
}

.carousel-icon {
    display: inline-flex;
    font-size: 0.75em;
    opacity: 0.8;
}

.carousel-thumb {
    width: 26px;
    height: 26px;
    overflow: hidden;
    border-radius: 4px;
    flex-shrink: 0;
}

.carousel-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.carousel-title {
    font-size: 14px;
    line-height: 1.2;
}

/* ==================== 搜索区块样式 ==================== */
.search-block-content {
    height: 100%;
    width: 100%;
    display: flex;
    align-items: center;
    padding: 0;
}

.search-block-content.search-align-left {
    justify-content: flex-start;
}

.search-block-content.search-align-center {
    justify-content: center;
}

.search-block-content.search-align-right {
    justify-content: flex-end;
}

.search-block-content.search-align-space-between {
    justify-content: space-between;
}

.header-search-form {
    display: flex;
    align-items: center;
    gap: 6px;
}

.header-search-form.search-style-input-only .header-search-button {
    display: none;
}

.header-search-input {
    border: 1px solid var(--border-color, #ddd);
    padding: 6px 10px;
    font-size: 14px;
    border-radius: 4px;
}

.header-search-button {
    border: 1px solid var(--border-color, #ddd);
    background: var(--surface-color, #fff);
    padding: 6px 10px;
    border-radius: 4px;
    cursor: pointer;
}

.header-search-button i {
    font-size: 14px;
}

/* ==================== 水平线区块样式 ==================== */
.divider-block-content {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
}

.divider-line {
    width: 100%;
}

@keyframes header-marquee-scroll {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

/* ==================== Banner区块样式 ==================== */
.banner-block-content {
    height: 100%;
    width: 100%;
    display: flex;
    align-items: center;
    padding: 0;
    overflow: hidden;
}

.banner-block-content.banner-align-left {
    justify-content: flex-start;
}

.banner-block-content.banner-align-center {
    justify-content: center;
}

.banner-block-content.banner-align-right {
    justify-content: flex-end;
}

.banner-block-content.banner-align-space-between {
    justify-content: space-between;
}

.banner-block-content .banner-image {
    display: block;
}

/* Banner图片大小 - 自动适配（默认） */
.banner-image.banner-size-auto {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}

/* Banner图片大小 - 原始大小 */
.banner-image.banner-size-original {
    max-width: none;
    max-height: none;
    width: auto;
    height: auto;
}

/* Banner图片大小 - 拉伸填满 */
.banner-image.banner-size-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.banner-block-content .banner-html {
    width: 100%;
    height: 100%;
}

/* ==================== 自定义区块样式 ==================== */
.custom-block-content {
    height: 100%;
    display: flex;
    align-items: center;
    padding: 15px;
}

.custom-block-content.custom-align-left {
    justify-content: flex-start;
}

.custom-block-content.custom-align-center {
    justify-content: center;
}

.custom-block-content.custom-align-right {
    justify-content: flex-end;
}

.custom-block-content.custom-align-space-between {
    justify-content: space-between;
}

/* ==================== 社交媒体区块样式 ==================== */
.social-block-content {
    height: 100%;
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    color: var(--social-icon-color, #333);
}

.social-block-content.social-layout-vertical {
    flex-direction: column;
    align-items: flex-start;
}

.social-block-content.social-layout-vertical.social-align-center {
    align-items: center;
}

.social-block-content.social-layout-vertical.social-align-right {
    align-items: flex-end;
}

.social-block-content.social-align-left {
    justify-content: flex-start;
}

.social-block-content.social-align-center {
    justify-content: center;
}

.social-block-content.social-align-right {
    justify-content: flex-end;
}

.social-block-content.social-align-space-between {
    justify-content: space-between;
}

.social-block-content .social-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    font-size: var(--social-icon-size, 14px);
    color: inherit;
    text-decoration: none;
    opacity: 1;
    transition: opacity 0.2s ease, filter 0.2s ease, transform 0.2s ease;
}

.social-block-content .social-label {
    font-size: 11px;
    line-height: 1;
    color: inherit;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.social-block-content .social-icon:hover {
    transform: translateY(-1px);
}

.social-block-content.social-effect-opacity .social-icon {
    opacity: 0.65;
}

.social-block-content.social-effect-grayscale .social-icon {
    filter: grayscale(1);
}

.social-block-content.social-effect-both .social-icon {
    filter: grayscale(1);
    opacity: 0.65;
}

/* ==================== 标题区块样式 ==================== */
.title-block-content {
    height: 100%;
    width: 100%;
    display: flex;
    padding: 10px 15px;
    gap: 0;
}

.title-block-content.title-display-one-line {
    flex-direction: row;
}

.title-block-content.title-display-two-lines {
    flex-direction: column;
    gap: 0;
}

.title-block-inner {
    display: flex;
    width: fit-content;
    max-width: 100%;
    gap: 8px;
}

.title-block-content.title-display-one-line .title-block-inner {
    flex-direction: row;
    align-items: center;
}

.title-block-content.title-display-two-lines .title-block-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
}

.title-block-content.title-align-left {
    justify-content: flex-start;
    align-items: flex-start;
    text-align: left;
}

.title-block-content.title-align-center {
    justify-content: center;
    align-items: center;
    text-align: center;
}

.title-block-content.title-align-right {
    justify-content: flex-end;
    align-items: flex-end;
    text-align: right;
}

.title-block-content.title-align-space-between {
    justify-content: space-between;
    align-items: stretch;
    text-align: left;
}

.title-block-content .site-title-text {
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
}

.title-block-content .site-tagline-text {
    line-height: 1.2;
    opacity: 0.9;
}

.custom-text {
    line-height: 1.5;
}

.custom-image {
    max-width: 100%;
    max-height: 100%;
    height: auto;
    display: block;
}

.custom-html {
    width: 100%;
}

.custom-social {
    display: flex;
    gap: 15px;
    align-items: center;
}

.custom-social a {
    font-size: 24px;
    color: var(--text-color, #333);
    transition: color 0.3s;
    text-decoration: none;
}

.custom-social a:hover {
    color: var(--primary-color, #c8102e);
}

/* ==================== 响应式布局 ==================== */
@media (max-width: 1200px) {
    .header-grid-layout {
        grid-template-rows: repeat(6, 100px);
        gap: 10px;
    }

    .focus-title {
        font-size: 16px;
    }

    .carousel-title {
        font-size: 13px;
    }
}

@media (max-width: 768px) {
    .header-grid-layout {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }

    .grid-block {
        grid-column: 1 !important;
        grid-row: auto !important;
        min-height: 200px;
    }

    /* 移动端强制使用垂直布局 */
    .focus-block-content {
        flex-direction: column !important;
    }

    .focus-block-content .focus-image {
        flex: 0 0 auto !important;
        height: 200px !important;
        order: 1 !important;
    }

    .focus-block-content .focus-info {
        order: 2 !important;
    }
}

@media (max-width: 480px) {
    .carousel-image-text .carousel-image {
        flex: 0 0 60px;
        height: 45px;
    }

    .carousel-title {
        font-size: 12px;
        -webkit-line-clamp: 1;
    }

    .focus-title {
        font-size: 15px;
    }
}