/* Project Friction - Block Styles */ /* Styles for all 8 content block types rendered by BlockRenderer */ /* ── Shared block spacing ────────────────────────────────────────────────── */ .block { margin-bottom: 1.5rem; } /* ── Heading Block ───────────────────────────────────────────────────────── */ .block-heading-1 { font-size: 26px; font-weight: normal; color: var(--color-primary); font-family: var(--font-primary); border-bottom: 3px solid var(--theme-color, var(--color-accent)); padding-bottom: 0.5rem; margin-top: 0.5rem; margin-bottom: 1.25rem; } .block-heading-2 { font-size: 20px; font-weight: normal; color: var(--color-primary); font-family: var(--font-primary); border-bottom: 2px solid var(--color-gray); padding-bottom: 0.4rem; margin-top: 1.5rem; margin-bottom: 1rem; } .block-heading-3 { font-size: 16px; font-weight: 600; color: var(--color-secondary); font-family: var(--font-secondary); margin-top: 1rem; margin-bottom: 0.75rem; text-transform: uppercase; letter-spacing: 0.5px; } /* ── Paragraph Block ─────────────────────────────────────────────────────── */ .block-paragraph { font-size: 15px; line-height: 1.75; color: #2d3748; font-family: var(--font-secondary); margin-bottom: 1rem; } /* ── Image Block ─────────────────────────────────────────────────────────── */ .block-image { margin: 1.25rem 0; border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-md); } .block-image img { width: 100%; display: block; object-fit: cover; max-height: 320px; } .block-image figcaption { background: #f0f3f6; color: var(--color-dark-gray); font-size: 12px; font-family: var(--font-secondary); padding: 0.5rem 0.75rem; font-style: italic; border-top: 1px solid var(--color-gray); } /* ── Quote Block ─────────────────────────────────────────────────────────── */ /* Uses existing .quote-block, .quote-text, .quote-attribution from components.css */ /* ── Gallery Block ───────────────────────────────────────────────────────── */ .block-gallery { margin: 1.25rem 0; } .gallery-scroll { display: flex; gap: 0.75rem; overflow-x: auto; padding-bottom: 0.5rem; scrollbar-width: thin; scrollbar-color: var(--color-gray) transparent; } .gallery-scroll::-webkit-scrollbar { height: 4px; } .gallery-scroll::-webkit-scrollbar-thumb { background: var(--color-gray); border-radius: 4px; } .gallery-item { flex: 0 0 200px; border-radius: var(--radius-sm); overflow: hidden; box-shadow: var(--shadow-sm); position: relative; } .gallery-item img { width: 100%; height: 140px; object-fit: cover; display: block; } .gallery-item-caption { background: rgba(0, 0, 0, 0.7); color: #fff; font-size: 11px; font-family: var(--font-secondary); padding: 0.3rem 0.5rem; position: absolute; bottom: 0; left: 0; right: 0; } /* ── 4-Image Grid Block ──────────────────────────────────────────────────── */ .block-grid4 { margin: 1.25rem 0; } .grid4-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.5rem; } .grid4-item { position: relative; border-radius: var(--radius-sm); overflow: hidden; box-shadow: var(--shadow-sm); } .grid4-item img { width: 100%; height: 120px; object-fit: cover; display: block; transition: transform 0.2s ease; } .grid4-item:hover img { transform: scale(1.04); } .grid4-caption { background: rgba(0, 0, 0, 0.65); color: #fff; font-size: 10px; font-family: var(--font-secondary); padding: 0.25rem 0.4rem; position: absolute; bottom: 0; left: 0; right: 0; } /* ── Statistics Block ────────────────────────────────────────────────────── */ .block-statistics { margin: 1.25rem 0; } .block-stats-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem; } /* ── Map Button Block ────────────────────────────────────────────────────── */ .block-map-button-wrap { margin: 0.75rem 0; } /* ── Section Content Container ───────────────────────────────────────────── */ .section-content-container { flex: 1; overflow-y: auto; padding: 1.5rem; }