/* Content Builder — public theme. Tokens come from the inline <style> the
   Theme emits (--cb-accent, --cb-page-bg, --cb-surface, --cb-ink, etc.).
   System fonts only. */

*, *::before, *::after { box-sizing: border-box; }
.cb-public { margin: 0; line-height: 1.65; color: var(--cb-ink, #1d2939);
             background: var(--cb-page-bg, #fff);
             font-family: var(--cb-font-body, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);
             -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
.cb-public h1, .cb-public h2, .cb-public h3 {
             font-family: var(--cb-font-heading, Georgia, serif); line-height: 1.18; color: var(--cb-ink); }
.cb-public img { max-width: 100%; }
.cb-public a { color: var(--cb-accent, #2563eb); }
.cb-page { max-width: 820px; margin: 0 auto; padding: 3rem 1.25rem; }

/* Buttons */
.cb-public .cb-btn { display: inline-block; padding: .8rem 1.7rem; border-radius: var(--cb-radius, 10px);
                     text-decoration: none; font-weight: 600; border: 0; cursor: pointer; transition: background .15s, transform .15s; }
.cb-public .cb-btn-primary { background: var(--cb-accent, #2563eb); color: #fff; }
.cb-public .cb-btn-primary:hover { background: var(--cb-accent-dark, #1d4ed8); transform: translateY(-1px); }
.cb-public .cb-btn-outline { background: transparent; color: var(--cb-accent); box-shadow: inset 0 0 0 1.5px var(--cb-accent); }
.cb-public .cb-btn-outline:hover { background: var(--cb-accent); color: #fff; }

/* Shared section shell + eyebrow + divider */
.cb-section { padding: 4.5rem 1.25rem; }
.cb-section-inner { max-width: 1100px; margin: 0 auto; }
.cb-eyebrow { display: block; text-align: center; text-transform: uppercase; letter-spacing: .14em;
              font-size: .78rem; font-weight: 600; color: var(--cb-accent); margin-bottom: .6rem; }
.cb-section-title { font-size: 2.1rem; text-align: center; margin: 0 0 .5rem; }
.cb-divider { width: 54px; height: 3px; border-radius: 3px; background: var(--cb-accent); margin: 0 auto 2.5rem; opacity: .8; }
.cb-section-title + .cb-divider { margin-top: 1rem; }

/* ---- Basic blocks ---- */
.cb-heading { margin: 1.4em 0 .5em; }
.cb-paragraph { margin: 0 0 1em; }
.cb-image { margin: 1.25em 0; }
.cb-image img { display: block; border-radius: var(--cb-radius, 8px); }
.cb-image-full img { width: 100%; height: auto; }
.cb-image-wide img { width: 100%; max-width: 900px; height: auto; }
.cb-image-normal img { max-width: 100%; height: auto; }
.cb-button { margin: 1.25em 0; }
.cb-button .btn, .cb-button .cb-btn { display: inline-block; padding: .7rem 1.4rem; border-radius: var(--cb-radius,8px); text-decoration: none; font-weight: 600; }
.cb-button .btn-primary { background: var(--cb-accent,#2563eb); color: #fff; }
.cb-button .btn-secondary { background: var(--cb-surface); color: var(--cb-accent); }
.cb-columns { display: grid; gap: 1.5rem; margin: 1.25em 0; }
.cb-cols-2 { grid-template-columns: 1fr 1fr; }
.cb-cols-3 { grid-template-columns: 1fr 1fr 1fr; }
@media (max-width: 640px) { .cb-columns { grid-template-columns: 1fr; } }
.cb-post-list { list-style: none; padding: 0; margin: 1.25em 0; display: flex; flex-direction: column; gap: 1rem; }
.cb-post-list-item a { font-size: 1.1rem; font-weight: 600; text-decoration: none; }
.cb-post-list-excerpt { margin: .25rem 0 0; color: var(--cb-muted); }

/* ---- Header / nav ---- */
.cb-site-header { border-bottom: 1px solid rgba(0,0,0,.06); background: var(--cb-page-bg); }
.cb-site-header-inner { max-width: 1100px; margin: 0 auto; padding: 1.15rem 1.25rem;
                        display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.cb-brand { text-decoration: none; color: var(--cb-ink); display: flex; flex-direction: column; line-height: 1.2; }
.cb-brand-name { font-size: 1.3rem; font-weight: 700; font-family: var(--cb-font-heading); }
.cb-brand-tagline { font-size: .8rem; color: var(--cb-muted); }
.cb-brand-logo { max-height: 44px; width: auto; display: block; }
.cb-nav { display: flex; gap: 1.6rem; flex-wrap: wrap; }
.cb-nav-link { text-decoration: none; color: var(--cb-ink); font-weight: 500; opacity: .85; }
.cb-nav-link:hover { color: var(--cb-accent); opacity: 1; }
.cb-header-centered .cb-site-header-inner { flex-direction: column; text-align: center; }
.cb-header-centered .cb-nav { justify-content: center; }
.cb-header-minimal .cb-brand-name { font-size: 1.05rem; }

/* ---- Footer ---- */
.cb-site-footer { border-top: 1px solid rgba(0,0,0,.06); background: var(--cb-surface); margin-top: 0; }
.cb-site-footer-inner { max-width: 1100px; margin: 0 auto; padding: 2.5rem 1.25rem; text-align: center; }
.cb-footer-nav { display: flex; gap: 1.4rem; justify-content: center; flex-wrap: wrap; margin-bottom: 1rem; }
.cb-footer-link { text-decoration: none; color: var(--cb-ink); opacity: .8; }
.cb-footer-link:hover { color: var(--cb-accent); opacity: 1; }
.cb-footer-copy { color: var(--cb-muted); font-size: .85rem; margin: 0; }
.cb-footer-minimal .cb-footer-nav { display: none; }

.cb-preview-banner { background: #fef3c7; color: #92400e; padding: .5rem 1rem; text-align: center; font: 14px system-ui, sans-serif; }

/* ---- HERO: split (default) + image overlay variants ---- */
.cb-hero { padding: 4.5rem 1.25rem; background: var(--cb-page-bg); }
.cb-hero-inner { max-width: 1100px; margin: 0 auto; }

/* Split hero: image + text side by side */
.cb-hero-split .cb-hero-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.cb-hero-split .cb-hero-media img { width: 100%; height: 100%; max-height: 460px; object-fit: cover; border-radius: var(--cb-radius); display: block; }
.cb-hero-split.cb-hero-media-right .cb-hero-media { order: 2; }
.cb-hero-title { font-size: 2.8rem; letter-spacing: -.01em; margin: 0 0 .6rem; }
.cb-hero-sub { font-size: 1.15rem; color: var(--cb-muted); margin: 0 0 1.6rem; }
.cb-hero-actions { display: flex; gap: .75rem; flex-wrap: wrap; }
@media (max-width: 800px){ .cb-hero-split .cb-hero-inner { grid-template-columns: 1fr; } .cb-hero-split.cb-hero-media-right .cb-hero-media { order: 0; } .cb-hero-title { font-size: 2.1rem; } }

/* Banner hero: text over background image */
.cb-hero-banner { background-size: cover; background-position: center; color: #fff; position: relative; }
.cb-hero-banner::before { content: ""; position: absolute; inset: 0; }
.cb-hero-banner.cb-overlay-light::before  { background: rgba(0,0,0,.28); }
.cb-hero-banner.cb-overlay-medium::before { background: rgba(0,0,0,.48); }
.cb-hero-banner.cb-overlay-dark::before   { background: rgba(0,0,0,.66); }
.cb-hero-banner .cb-hero-inner { position: relative; text-align: center; max-width: 760px; }
.cb-hero-banner .cb-hero-title, .cb-hero-banner .cb-hero-sub { color: #fff; }
.cb-hero-banner .cb-hero-actions { justify-content: center; }
.cb-hero-h-short  { padding: 3rem 1.25rem; }
.cb-hero-h-tall   { padding: 8rem 1.25rem; }

/* ---- Section backgrounds ---- */
.cb-bg-page { background: var(--cb-page-bg); }
.cb-bg-white { background: #fff; }
.cb-bg-tint  { background: var(--cb-surface); }
.cb-bg-tint2 { background: var(--cb-surface-2); }
.cb-bg-dark  { background: #0f172a; }
.cb-bg-dark .cb-section-title, .cb-bg-dark .cb-card-title { color: #f8fafc; }
.cb-bg-dark .cb-card { background: #1e293b; }
.cb-bg-dark .cb-card-text { color: #cbd5e1; }

/* ---- Grids ---- */
.cb-grid { display: grid; gap: 1.6rem; }
.cb-grid-2 { grid-template-columns: repeat(2,1fr); }
.cb-grid-3 { grid-template-columns: repeat(3,1fr); }
.cb-grid-4 { grid-template-columns: repeat(4,1fr); }
@media (max-width:820px){ .cb-grid-2,.cb-grid-3,.cb-grid-4 { grid-template-columns: 1fr; } }
@media (min-width:821px) and (max-width:1024px){ .cb-grid-4 { grid-template-columns: repeat(2,1fr); } }

/* ---- Cards (icon + image), SS2-style ---- */
.cb-card { background: var(--cb-surface); border-radius: var(--cb-radius); padding: 2rem 1.6rem;
           transition: transform .15s ease, box-shadow .15s ease; }
.cb-card:hover { transform: translateY(-3px); box-shadow: 0 10px 30px rgba(0,0,0,.07); }
.cb-card-icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px;
                border-radius: 50%; background: var(--cb-page-bg); color: var(--cb-accent); margin-bottom: 1.1rem; }
.cb-card-title { font-size: 1.2rem; margin: 0 0 .5rem; color: var(--cb-accent); font-family: var(--cb-font-heading); }
.cb-card-text { color: var(--cb-muted); margin: 0 0 1rem; }
.cb-card-link { font-weight: 600; text-decoration: none; color: var(--cb-accent); text-transform: uppercase;
                letter-spacing: .06em; font-size: .8rem; }
.cb-card-link:hover { color: var(--cb-accent-dark); }
.cb-icon-grid .cb-card { text-align: center; }
.cb-icon-grid .cb-card-icon { margin-left: auto; margin-right: auto; }

/* Image cards */
.cb-image-card { display: block; text-decoration: none; color: inherit; background: var(--cb-surface);
                 border-radius: var(--cb-radius); overflow: hidden; transition: transform .15s ease, box-shadow .15s ease; }
.cb-image-card:hover { transform: translateY(-3px); box-shadow: 0 10px 30px rgba(0,0,0,.08); }
.cb-image-card-img { width: 100%; height: 210px; object-fit: cover; display: block; }
.cb-image-card-body { padding: 1.3rem 1.4rem; }
.cb-image-card-title { font-size: 1.2rem; margin: 0 0 .35rem; color: var(--cb-ink); font-family: var(--cb-font-heading); }
.cb-image-card-text { color: var(--cb-muted); margin: 0; }

/* ---- CTA ---- */
.cb-cta { padding: 4.5rem 1.25rem; background: var(--cb-accent); }
.cb-cta-inner { max-width: 700px; margin: 0 auto; text-align: center; color: #fff; }
.cb-cta-title { font-size: 2.1rem; margin: 0 0 .5rem; color: #fff; }
.cb-cta-text { margin: 0 0 1.6rem; opacity: .92; }
.cb-cta .cb-btn-primary { background: #fff; color: var(--cb-accent-dark); }
.cb-cta .cb-btn-primary:hover { background: rgba(255,255,255,.9); }

/* ---- Testimonial ---- */
.cb-testimonial { padding: 4.5rem 1.25rem; background: var(--cb-surface-2); }
.cb-testimonial-inner { max-width: 760px; margin: 0 auto; text-align: center; }
.cb-testimonial-quote { font-size: 1.5rem; line-height: 1.5; font-style: italic; margin: 0 0 1.4rem; color: var(--cb-ink);
                        font-family: var(--cb-font-heading); }
.cb-testimonial-cite { display: flex; align-items: center; justify-content: center; gap: .75rem; }
.cb-testimonial-avatar { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; }
.cb-testimonial-author { font-weight: 700; }
.cb-testimonial-role { display: block; color: var(--cb-muted); font-size: .9rem; }

/* ============================================================
   v1.5.0 — page width, type scale, button shape, section pad
   ============================================================ */

/* Global type scale (set via --cb-scale on :root) */
.cb-public { font-size: calc(1rem * var(--cb-scale, 1)); }

/* Button shape (square / rounded / pill via --cb-btn-radius) */
.cb-public .cb-btn { border-radius: var(--cb-btn-radius, var(--cb-radius, 10px)); }

/* ---- Page width presets ---- */
/* boxed: standard max-width containers (default, already set per-section).
   full:  sections span full width, inner content still constrained.
   canvas: everything edge-to-edge, no max-width — for full-bleed designs. */
.cb-w-boxed  .cb-section-inner,
.cb-w-boxed  .cb-hero-inner,
.cb-w-boxed  .cb-cta-inner,
.cb-w-boxed  .cb-testimonial-inner { /* defaults already apply */ }

.cb-w-full .cb-section-inner,
.cb-w-full .cb-hero-inner { max-width: 1320px; }

.cb-w-canvas .cb-section,
.cb-w-canvas .cb-hero,
.cb-w-canvas .cb-cta,
.cb-w-canvas .cb-testimonial { padding-left: 0; padding-right: 0; }
.cb-w-canvas .cb-section-inner,
.cb-w-canvas .cb-hero-inner,
.cb-w-canvas .cb-cta-inner,
.cb-w-canvas .cb-testimonial-inner { max-width: none; padding-left: 2rem; padding-right: 2rem; }
.cb-w-canvas .cb-hero-split .cb-hero-media img { border-radius: 0; }

/* ---- Per-section spacing ---- */
.cb-pad-compact.cb-section, .cb-pad-compact.cb-hero, .cb-pad-compact.cb-cta, .cb-pad-compact.cb-testimonial { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.cb-pad-normal.cb-section,  .cb-pad-normal.cb-hero,  .cb-pad-normal.cb-cta,  .cb-pad-normal.cb-testimonial  { padding-top: 4.5rem; padding-bottom: 4.5rem; }
.cb-pad-spacious.cb-section,.cb-pad-spacious.cb-hero,.cb-pad-spacious.cb-cta,.cb-pad-spacious.cb-testimonial { padding-top: 7rem; padding-bottom: 7rem; }
