/* ===== 展览 / 研究 公开页面 ===== */
:root {
    --cp-max-width: 900px;
    --cp-bg: #ebebeb;
    --cp-text: #1a1a1a;
    --cp-text-muted: #666666;
    --cp-text-soft: #888888;
    --cp-border: #e0e0e0;
    --cp-nav-h: 56px;
}
body.cp-body { background: var(--cp-bg); }
.cp-page { background: var(--cp-bg); color: var(--cp-text); min-height: 100vh; }

.cp-preview-banner {
    position: sticky; top: 0; z-index: 90; text-align: center; font-size: 12.5px;
    background: #b06a00; color: #fff; padding: 6px 10px;
}

/* ---- 导航 ---- */
.cp-nav {
    position: absolute; top: 0; left: 0; right: 0; z-index: 30; height: var(--cp-nav-h);
    display: flex; align-items: center; gap: 0.75rem; padding: 0 max(1rem, env(safe-area-inset-left));
    color: #fff; background: linear-gradient(to bottom, rgba(0,0,0,0.4), transparent);
}
.cp-nav.cp-nav-plain { position: static; color: var(--cp-text); background: #fff; border-bottom: 1px solid var(--cp-border); }
.cp-nav-back { color: inherit; text-decoration: none; font-size: 1.3rem; line-height: 1; padding: 0.4rem; border-radius: 50%; }
.cp-nav-back:hover { background: rgba(255,255,255,0.15); }
.cp-nav-plain .cp-nav-back:hover { background: #f0f0f0; }
.cp-nav-brand { font-weight: 600; letter-spacing: 0.02em; font-size: 0.95rem; }
.cp-nav-spacer { flex: 1; }
.cp-nav-title { font-size: 0.9rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 45vw; }

/* ---- 列表页 ---- */
.cp-list-hero { padding: 90px 20px 30px; text-align: center; }
.cp-list-hero h1 { font-size: 2rem; margin: 0 0 6px; letter-spacing: 0.02em; }
.cp-list-hero p { color: var(--cp-text-muted); margin: 0; }
.cp-list-grid {
    max-width: 1280px; margin: 0 auto; padding: 10px 24px 80px;
    display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 26px;
}
.cp-card { background: #fff; border-radius: 10px; overflow: hidden; text-decoration: none; color: inherit; box-shadow: 0 2px 10px rgba(0,0,0,0.06); transition: transform 0.2s, box-shadow 0.2s; }
.cp-card:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0,0,0,0.1); }
.cp-card-cover { aspect-ratio: 16/9; background: #ddd center/cover no-repeat; position: relative; }
.cp-card-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cp-badge {
    position: absolute; left: 10px; top: 10px; font-size: 11px; font-weight: 600; padding: 3px 10px;
    border-radius: 999px; background: rgba(0,0,0,0.65); color: #fff; letter-spacing: 0.02em;
}
.cp-badge.cp-badge-current, .cp-badge.cp-badge-ongoing { background: #1f9d55; }
.cp-badge.cp-badge-upcoming, .cp-badge.cp-badge-draft_note { background: #b06a00; }
.cp-badge.cp-badge-past, .cp-badge.cp-badge-complete { background: #555; }
.cp-card-body { padding: 16px 18px 18px; }
.cp-card-title { font-size: 16px; font-weight: 700; margin: 0 0 4px; line-height: 1.4; }
.cp-card-subtitle { font-size: 12.5px; color: var(--cp-text-muted); margin: 0 0 8px; }
.cp-card-meta { font-size: 12px; color: var(--cp-text-soft); display: flex; gap: 10px; flex-wrap: wrap; }
.cp-empty { text-align: center; padding: 80px 20px; color: var(--cp-text-muted); }

/* ---- 详情页 Hero ---- */
.cp-hero { position: relative; height: 68vh; min-height: 380px; max-height: 720px; overflow: hidden; background: #2a2f36; }
.cp-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.cp-hero-placeholder { position: absolute; inset: 0; background: linear-gradient(135deg,#3a3f47,#20242a); }
.cp-hero-gradient { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.72), rgba(0,0,0,0.05) 55%, transparent); }
.cp-hero-content { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 24px 34px; color: #fff; max-width: var(--cp-max-width); margin: 0 auto; }
.cp-hero-badges { display: flex; gap: 8px; margin-bottom: 10px; }
.cp-hero-title { font-size: 2.1rem; margin: 0 0 8px; letter-spacing: 0.01em; }
.cp-hero-subtitle { font-size: 1rem; opacity: 0.92; margin: 0 0 10px; }
.cp-hero-meta { font-size: 0.85rem; opacity: 0.8; display: flex; gap: 14px; flex-wrap: wrap; }

/* ---- 简介 / 摘要 ---- */
.cp-intro { max-width: var(--cp-max-width); margin: 0 auto; padding: 34px 24px 10px; }
.cp-intro-body { font-size: 15.5px; line-height: 1.85; color: #333; white-space: pre-wrap; }

/* ---- 章节/单元 ---- */
.cp-section { max-width: var(--cp-max-width); margin: 0 auto; padding: 46px 24px 10px; scroll-margin-top: 20px; }
.cp-section-head { margin-bottom: 22px; }
.cp-section-number { font-size: 12px; color: var(--cp-text-soft); letter-spacing: 0.08em; text-transform: uppercase; }
.cp-section-title { font-size: 1.55rem; margin: 4px 0 6px; font-weight: 700; }
.cp-section-subtitle { font-size: 1rem; color: var(--cp-text-muted); margin: 0 0 10px; }
.cp-section-summary { font-size: 14.5px; color: #444; line-height: 1.75; }
.cp-section-divider-line { border: none; border-top: 1px solid var(--cp-border); max-width: var(--cp-max-width); margin: 50px auto 0; }

/* ---- 内容块通用 ---- */
.cp-block { margin: 22px 0; }
.cp-text { font-size: 16px; line-height: 1.9; color: #262626; }
.cp-text p { margin: 0 0 1em; }
.cp-text h2, .cp-text h3, .cp-text h4 { margin: 1.4em 0 0.6em; font-weight: 700; }
.cp-text a { color: #1f6fc9; }
.cp-text blockquote { border-left: 3px solid #ccc; padding-left: 14px; color: #555; font-style: italic; }
.cp-text .ql-align-center { text-align: center; }
.cp-text .ql-align-right { text-align: right; }
.cp-text .ql-align-justify { text-align: justify; }

.cp-heading { font-weight: 700; line-height: 1.4; }
.cp-heading-2 { font-size: 1.5rem; margin: 1.6em 0 0.6em; }
.cp-heading-3 { font-size: 1.22rem; margin: 1.4em 0 0.5em; }
.cp-heading-4 { font-size: 1.05rem; margin: 1.2em 0 0.4em; color: #444; }

.cp-quote { border-left: 3px solid #1a1a1a; padding: 4px 0 4px 18px; margin: 32px 0; }
.cp-quote p { font-size: 1.15rem; font-style: italic; line-height: 1.7; margin: 0 0 8px; color: #222; }
.cp-quote cite { font-size: 0.85rem; color: var(--cp-text-muted); font-style: normal; }

.cp-divider { border: none; border-top: 1px solid var(--cp-border); margin: 34px 0; }
.cp-spacer-sm { height: 20px; }
.cp-spacer-md { height: 48px; }
.cp-spacer-lg { height: 96px; }

/* 图片 / 藏品 */
.cp-figure { margin: 28px 0; text-align: center; }
.cp-figure.cp-align-left { text-align: left; }
.cp-figure.cp-align-right { text-align: right; }
.cp-figure img { max-width: 100%; border-radius: 4px; background: #eee; display: inline-block; }
.cp-figure.cp-layout-standard img { max-height: 560px; }
.cp-figure.cp-layout-wide, .cp-figure.cp-layout-full { margin-left: calc(-1 * (100vw - var(--cp-max-width)) / 2 + 24px); margin-right: calc(-1 * (100vw - var(--cp-max-width)) / 2 + 24px); }
.cp-figure.cp-layout-wide img, .cp-figure.cp-layout-full img { width: 100%; max-height: 640px; object-fit: contain; }
@media (max-width: 960px) {
    .cp-figure.cp-layout-wide, .cp-figure.cp-layout-full { margin-left: -24px; margin-right: -24px; }
}
.cp-figure figcaption { margin-top: 10px; font-size: 12.5px; color: var(--cp-text-muted); display: flex; flex-direction: column; gap: 2px; }
.cp-collection-link { display: inline-block; }
.cp-collection-title { font-size: 14px; font-weight: 600; color: #222; }
.cp-collection-meta { font-size: 12px; color: var(--cp-text-muted); }
.cp-collection-credit { font-size: 11.5px; color: var(--cp-text-soft); }

/* 音视频 */
.cp-video video, .cp-audio audio { width: 100%; border-radius: 4px; background: #000; }
.cp-video-embed { position: relative; width: 100%; aspect-ratio: 16/9; }
.cp-video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 4px; }
.cp-media-caption { margin-top: 8px; font-size: 12.5px; color: var(--cp-text-muted); display: flex; gap: 8px; flex-wrap: wrap; }
.cp-audio-transcript { margin-top: 8px; font-size: 13px; color: #444; }
.cp-audio-transcript summary { cursor: pointer; color: #1f6fc9; }

/* ---- 页脚 ---- */
.cp-footer { text-align: center; padding: 60px 20px 50px; color: var(--cp-text-soft); font-size: 12.5px; }

/* ---- 研究：概览页目录 ---- */
.cp-toc { max-width: var(--cp-max-width); margin: 0 auto; padding: 10px 24px 40px; }
.cp-toc-heading { font-size: 1.1rem; font-weight: 700; margin-bottom: 14px; }
.cp-toc-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--cp-border); }
.cp-toc-item { border-bottom: 1px solid var(--cp-border); }
.cp-toc-link { display: flex; align-items: baseline; gap: 12px; padding: 16px 4px; text-decoration: none; color: var(--cp-text); }
.cp-toc-link:hover .cp-toc-title { color: #1f6fc9; }
.cp-toc-num { font-size: 12px; color: var(--cp-text-soft); flex-shrink: 0; width: 26px; }
.cp-toc-title { font-weight: 600; flex: 1; }
.cp-toc-summary { font-size: 12.5px; color: var(--cp-text-muted); }
.cp-start-reading { display: inline-block; margin: 6px 24px 0; padding: 12px 30px; background: #1a1a1a; color: #fff; text-decoration: none; border-radius: 999px; font-size: 14px; font-weight: 600; }

/* ---- 研究：章节页 ---- */
.cp-chapter-nav {
    position: sticky; top: 0; z-index: 40; background: rgba(255,255,255,0.96); backdrop-filter: blur(6px);
    border-bottom: 1px solid var(--cp-border); display: flex; align-items: center; gap: 12px;
    padding: 0 max(1rem, env(safe-area-inset-left)); height: var(--cp-nav-h);
}
.cp-progress-bar { position: absolute; left: 0; bottom: -1px; height: 2px; background: #1a1a1a; transition: width 0.2s; }
.cp-chapter-toc-select { border: 1px solid var(--cp-border); border-radius: 6px; padding: 5px 8px; font-size: 12.5px; background: #fff; max-width: 46vw; }
.cp-chapter-body { max-width: var(--cp-max-width); margin: 0 auto; padding: 40px 24px 20px; }
.cp-chapter-pagination { display: flex; justify-content: center; gap: 10px; padding: 20px 24px; max-width: var(--cp-max-width); margin: 0 auto; }
.cp-page-btn { padding: 7px 16px; border: 1px solid var(--cp-border); border-radius: 999px; background: #fff; text-decoration: none; color: var(--cp-text); font-size: 13px; }
.cp-page-btn.is-disabled { opacity: 0.4; pointer-events: none; }
.cp-chapter-footer-nav {
    max-width: var(--cp-max-width); margin: 30px auto 0; padding: 24px; border-top: 1px solid var(--cp-border);
    display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
}
.cp-chapter-footer-nav a { text-decoration: none; color: var(--cp-text); flex: 1; max-width: 46%; }
.cp-chapter-footer-nav .cp-nav-next { text-align: right; margin-left: auto; }
.cp-chapter-footer-nav .cp-nav-label { display: block; font-size: 11px; color: var(--cp-text-soft); margin-bottom: 3px; }
.cp-chapter-footer-nav .cp-nav-title { font-size: 14.5px; font-weight: 600; }
.cp-chapter-footer-nav .cp-nav-title:hover { color: #1f6fc9; }

/* ---- 入口页 Page Builder：Hero大图 / 展览卡片 / 研究卡片 / 精选列表 ----
   第一阶段只要求编辑+预览可用，样式先给出基础可用的展示效果，
   后续要做 Rijksmuseum 式无缝大图时可以在不改数据结构的前提下单独重做。 */
.cp-empty-page { max-width: var(--cp-max-width); margin: 0 auto; padding: 60px 24px; color: var(--cp-text-muted); text-align: center; }
.cp-image-link { display: inline-block; }

.cp-ref-card { display: flex; flex-direction: column; text-align: left; }
.cp-ref-card-link { position: relative; display: block; border-radius: 6px; overflow: hidden; background: #eee; }
.cp-ref-card-link img { width: 100%; display: block; max-height: 420px; object-fit: cover; }
.cp-ref-card-badge { position: absolute; top: 10px; left: 10px; background: rgba(0,0,0,0.6); color: #fff; font-size: 11px; padding: 3px 9px; border-radius: 999px; letter-spacing: 0.03em; }
.cp-ref-card-title { display: block; margin-top: 12px; font-size: 1.05rem; font-weight: 700; color: var(--cp-text); text-decoration: none; }
.cp-ref-card-title:hover { color: #1f6fc9; }
.cp-ref-card-summary { display: block; margin-top: 4px; font-size: 13px; color: var(--cp-text-muted); line-height: 1.6; }

/* ---- 入口页：覆盖式导航（首个 Hero 为满屏时） ---- */
.cp-nav.cp-nav-overlay {
    position: absolute; top: 0; left: 0; right: 0; z-index: 30;
    color: #fff; background: linear-gradient(to bottom, rgba(0,0,0,0.45), transparent);
    border-bottom: none;
}
.cp-page-builder.has-lead-fullscreen-hero { position: relative; }
.cp-page-builder .cp-page-section.is-lead-hero-section {
    max-width: none; margin: 0; padding: 0;
}
.cp-page-builder .cp-page-section.is-lead-hero-section .cp-hero-block { margin: 0; border-radius: 0; }

/* ---- Hero 大图（正式前端） ----
   高度模式用 svh；图片绝对定位 + object-fit:cover，避免 img 撑高容器。
   满屏不叠加导航占位：导航覆盖在 Hero 上。 */
.cp-hero-block {
    position: relative; box-sizing: border-box; width: 100%;
    overflow: hidden; border-radius: 0; background: #2a2f36;
    margin-left: 0; margin-right: 0;
}
.cp-hero-block *, .cp-hero-block *::before, .cp-hero-block *::after { box-sizing: border-box; }
.cp-hero-block-picture, .cp-hero-block-img, .cp-hero-block-placeholder {
    position: absolute; inset: 0; width: 100%; height: 100%; display: block;
}
.cp-hero-block-img { object-fit: cover; object-position: center; }
.cp-hero-block-placeholder { background: linear-gradient(135deg,#3a3f47,#20242a); }

.cp-hero-height-fullscreen { height: 100svh; min-height: 560px; }
.cp-hero-height-large { height: clamp(560px, 75svh, 900px); }
.cp-hero-height-standard { height: clamp(420px, 55svh, 680px); }

.cp-hero-block-gradient { position: absolute; inset: 0; pointer-events: none; }
.cp-hero-overlay-none .cp-hero-block-gradient { background: none; }
.cp-hero-overlay-light .cp-hero-block-gradient { background: linear-gradient(to top, rgba(0,0,0,0.28), transparent 55%); }
.cp-hero-overlay-medium .cp-hero-block-gradient { background: linear-gradient(to top, rgba(0,0,0,0.55), transparent 62%); }
.cp-hero-overlay-deep .cp-hero-block-gradient { background: linear-gradient(to top, rgba(0,0,0,0.72), rgba(0,0,0,0.18) 55%, transparent 75%); }

.cp-hero-pos-left-bottom.cp-hero-overlay-light .cp-hero-block-gradient,
.cp-hero-pos-left-bottom.cp-hero-overlay-medium .cp-hero-block-gradient,
.cp-hero-pos-left-bottom.cp-hero-overlay-deep .cp-hero-block-gradient {
    background: linear-gradient(to top right, rgba(0,0,0,0.62), transparent 58%);
}
.cp-hero-pos-right-bottom.cp-hero-overlay-light .cp-hero-block-gradient,
.cp-hero-pos-right-bottom.cp-hero-overlay-medium .cp-hero-block-gradient,
.cp-hero-pos-right-bottom.cp-hero-overlay-deep .cp-hero-block-gradient {
    background: linear-gradient(to top left, rgba(0,0,0,0.62), transparent 58%);
}
.cp-hero-pos-center.cp-hero-overlay-light .cp-hero-block-gradient,
.cp-hero-pos-center.cp-hero-overlay-medium .cp-hero-block-gradient,
.cp-hero-pos-center.cp-hero-overlay-deep .cp-hero-block-gradient {
    background: radial-gradient(ellipse at center, rgba(0,0,0,0.45) 0%, transparent 70%);
}
.cp-hero-overlay-deep.cp-hero-pos-left-bottom .cp-hero-block-gradient { background: linear-gradient(to top right, rgba(0,0,0,0.78), transparent 60%); }
.cp-hero-overlay-deep.cp-hero-pos-right-bottom .cp-hero-block-gradient { background: linear-gradient(to top left, rgba(0,0,0,0.78), transparent 60%); }
.cp-hero-overlay-deep.cp-hero-pos-center .cp-hero-block-gradient { background: radial-gradient(ellipse at center, rgba(0,0,0,0.62) 0%, transparent 72%); }
.cp-hero-overlay-light.cp-hero-pos-left-bottom .cp-hero-block-gradient { background: linear-gradient(to top right, rgba(0,0,0,0.32), transparent 55%); }
.cp-hero-overlay-light.cp-hero-pos-right-bottom .cp-hero-block-gradient { background: linear-gradient(to top left, rgba(0,0,0,0.32), transparent 55%); }
.cp-hero-overlay-light.cp-hero-pos-center .cp-hero-block-gradient { background: radial-gradient(ellipse at center, rgba(0,0,0,0.28) 0%, transparent 70%); }

.cp-hero-block-content {
    position: absolute; z-index: 2; display: flex; flex-direction: column; gap: 0.45em;
    max-width: min(900px, 78vw);
    padding:
        max(clamp(28px, 7vh, 96px), env(safe-area-inset-top))
        clamp(28px, 5vw, 96px)
        max(clamp(28px, 7vh, 96px), env(safe-area-inset-bottom))
        clamp(28px, 5vw, 96px);
    color: #fff;
}
.cp-hero-color-white .cp-hero-block-content,
.cp-hero-color-auto .cp-hero-block-content { color: #fff; text-shadow: 0 1px 18px rgba(0,0,0,0.35); }
.cp-hero-color-black .cp-hero-block-content { color: #111; text-shadow: 0 1px 12px rgba(255,255,255,0.35); }

.cp-hero-align-left .cp-hero-block-content { text-align: left; align-items: flex-start; }
.cp-hero-align-center .cp-hero-block-content { text-align: center; align-items: center; }
.cp-hero-align-right .cp-hero-block-content { text-align: right; align-items: flex-end; }

.cp-hero-pos-left-top .cp-hero-block-content { inset: 0 auto auto 0; }
.cp-hero-pos-left-center .cp-hero-block-content { top: 50%; left: 0; transform: translateY(-50%); }
.cp-hero-pos-left-bottom .cp-hero-block-content { inset: auto auto 0 0; }
.cp-hero-pos-center .cp-hero-block-content,
.cp-hero-pos-center-center .cp-hero-block-content {
    top: 50%; left: 50%; transform: translate(-50%, -50%);
    text-align: center; align-items: center; width: min(900px, 78vw);
}
.cp-hero-pos-right-top .cp-hero-block-content { inset: 0 0 auto auto; }
.cp-hero-pos-right-center .cp-hero-block-content { top: 50%; right: 0; transform: translateY(-50%); }
.cp-hero-pos-right-bottom .cp-hero-block-content { inset: auto 0 0 auto; }

.cp-hero-block-title {
    margin: 0; font-weight: 700; line-height: 1.2; word-break: break-word;
    max-width: min(900px, 78vw);
}
.cp-hero-block-subtitle {
    margin: 0; opacity: 0.94; line-height: 1.55; word-break: break-word;
    max-width: min(720px, 70vw); font-weight: 400;
}

.cp-hero-size-small .cp-hero-block-title { font-size: clamp(30px, 3.2vw, 52px); }
.cp-hero-size-medium .cp-hero-block-title { font-size: clamp(40px, 4.5vw, 72px); }
.cp-hero-size-large .cp-hero-block-title { font-size: clamp(52px, 6vw, 96px); }
.cp-hero-size-xlarge .cp-hero-block-title { font-size: clamp(64px, 8vw, 128px); }
.cp-hero-size-small .cp-hero-block-subtitle { font-size: clamp(14px, 1.4vw, 18px); }
.cp-hero-size-medium .cp-hero-block-subtitle { font-size: clamp(15px, 1.6vw, 20px); }
.cp-hero-size-large .cp-hero-block-subtitle { font-size: clamp(16px, 1.8vw, 22px); }
.cp-hero-size-xlarge .cp-hero-block-subtitle { font-size: clamp(17px, 2vw, 24px); }

.cp-hero-font-system-sans .cp-hero-block-content {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}
.cp-hero-font-source-han-sans .cp-hero-block-content {
    font-family: "Source Han Sans SC", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
}
.cp-hero-font-source-han-serif .cp-hero-block-content {
    font-family: "Source Han Serif SC", "Noto Serif SC", "Songti SC", serif;
}
.cp-hero-font-lxgw-wenkai .cp-hero-block-content {
    font-family: "LXGW WenKai", "Kaiti SC", "STKaiti", serif;
}

.cp-featured-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 20px; }
.cp-featured-card { display: flex; flex-direction: column; text-decoration: none; color: var(--cp-text); }
.cp-featured-card img, .cp-featured-card-placeholder { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 6px; background: #eee; }
.cp-featured-card-title { margin-top: 8px; font-size: 14px; font-weight: 600; }
.cp-featured-card-subtitle { font-size: 12px; color: var(--cp-text-muted); }

/* ---- 手机预览强制视口（后台预览用） ---- */
.cp-force-mobile-wrap { max-width: 420px; margin: 30px auto; border: 1px solid #ccc; border-radius: 18px; overflow: hidden; box-shadow: 0 10px 40px rgba(0,0,0,0.25); }
.cp-force-mobile-wrap .cp-hero { height: 56vh; }
.cp-force-mobile-wrap .cp-hero-height-fullscreen { height: 100svh; min-height: 520px; }
.cp-force-mobile-wrap .cp-figure.cp-layout-wide, .cp-force-mobile-wrap .cp-figure.cp-layout-full { margin-left: -24px; margin-right: -24px; }

@media (max-width: 768px) {
    .cp-hero-height-fullscreen { height: 100svh; min-height: 520px; }
    .cp-hero-height-large { height: clamp(480px, 72svh, 760px); }
    .cp-hero-height-standard { height: clamp(360px, 52svh, 560px); }
    .cp-hero-block-content {
        max-width: calc(100vw - 40px);
        padding:
            max(28px, env(safe-area-inset-top))
            24px
            max(40px, env(safe-area-inset-bottom))
            24px;
    }
    .cp-hero-block-title { max-width: calc(100vw - 40px); }
    .cp-hero-block-subtitle { max-width: calc(100vw - 48px); }
    .cp-hero-size-small .cp-hero-block-title { font-size: clamp(28px, 8vw, 38px); }
    .cp-hero-size-medium .cp-hero-block-title { font-size: clamp(32px, 10vw, 46px); }
    .cp-hero-size-large .cp-hero-block-title { font-size: clamp(38px, 12vw, 56px); }
    .cp-hero-size-xlarge .cp-hero-block-title { font-size: clamp(44px, 14vw, 68px); }
}
