.cms-redesign {
    --cms-primary: #0B5A73;
    --cms-primary-ink: #06303E;
    --cms-accent: #C85A32;
    --cms-accent-soft: #F6E6DD;
    --cms-ground: #F6F1E7;
    --cms-surface: #FFFFFF;
    --cms-surface-tint: #EEE6D5;
    --cms-line: #DED2B8;
    --cms-ink: #1C1A17;
    --cms-ink-soft: #56503F;
    --cms-on-primary: #F3EFE2;
    font-family: 'IBM Plex Sans', sans-serif;
    color: var(--cms-ink);
    background: var(--cms-ground);
    /* content-wrapper's own 1.5rem padding on all sides otherwise shows the site's
       body background (black in dark theme) as a belt around this page: .full-bleed
       children only repaint that gutter where they're actually placed, leaving it
       exposed next to every plain .container section. Cancel it here, on the wrapper
       itself, and repaint the whole gutter with this page's own cream. Since the
       margin and padding match, .cms-redesign's content box stays in the same place,
       so nested .full-bleed children's own math is unaffected. */
    margin: -1.5rem;
    padding: 1.5rem;
}
@media (max-width: 991.98px) {
    .cms-redesign {
        margin: -1rem;
        padding: 1rem;
    }
}
/* Hero is the first section and now has its own (blue) background, so its
   top edge must sit flush against the navbar instead of showing a sliver of
   .cms-redesign's cream padding above it. */
.cms-redesign > .full-bleed:first-child { margin-top: -1.5rem; }
@media (max-width: 991.98px) {
    .cms-redesign > .full-bleed:first-child { margin-top: -1rem; }
}
.cms-redesign .cms-serif { font-family: 'Fraunces', serif; }
.cms-redesign .cms-eyebrow {
    color: var(--cms-accent); font-weight: 700; font-size: 0.8rem;
    letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 0.9rem;
}
.cms-redesign .cms-ink-text { color: var(--cms-ink) !important; }
.cms-redesign .cms-soft-text { color: var(--cms-ink-soft) !important; }
.cms-redesign .cms-heading { color: var(--cms-primary-ink); }
.cms-redesign .cms-primary-text { color: var(--cms-primary); }
.cms-redesign .cms-muted-on-dark { color: #B9D4DB; }
.cms-redesign .cms-hero { padding-top: clamp(1.25rem, 3vw, 2.5rem); padding-bottom: 2.5rem; background: var(--cms-primary); }
.cms-redesign .cms-hero .cms-eyebrow { color: #FFC9A8; }
.cms-redesign .cms-hero .cms-heading { color: var(--cms-on-primary); }
.cms-redesign .cms-hero .cms-soft-text { color: #B9D4DB !important; }
.cms-redesign .cms-hero .cms-btn-primary { background: var(--cms-on-primary); color: var(--cms-primary-ink); }
.cms-redesign .cms-hero .cms-btn-primary:hover { background: #ffffff; color: var(--cms-primary-ink); }
.cms-redesign .cms-hero .cms-btn-outline { border-color: var(--cms-on-primary); color: var(--cms-on-primary); }
.cms-redesign .cms-hero .cms-btn-outline:hover { background: rgba(243, 239, 226, 0.12); color: var(--cms-on-primary); }
.cms-redesign .cms-hero-title { font-size: clamp(2rem, 4vw, 2.9rem); font-weight: 600; line-height: 1.15; }
.cms-redesign .cms-hero-art-svg { max-width: 420px; filter: drop-shadow(0 18px 30px rgba(28,26,23,0.22)); }
.cms-redesign .cms-h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); }
.cms-redesign .cms-band-primary { background: var(--cms-primary); color: var(--cms-on-primary); }
.cms-redesign .cms-tint { background: var(--cms-surface-tint); }
.cms-redesign .cms-line-top { border-top: 1px solid var(--cms-line); }
.cms-redesign .cms-line-bottom { border-bottom: 1px solid var(--cms-line); }
.cms-redesign .cms-google-btn-wrap {
    display: inline-flex; border: none; background: none; padding: 2px; border-radius: 999px;
    cursor: pointer; box-shadow: 0 1px 3px rgba(28,26,23,0.18), 0 0 0 1px var(--cms-line);
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.cms-redesign .cms-google-btn-wrap:hover {
    box-shadow: 0 4px 10px rgba(28,26,23,0.22), 0 0 0 1px var(--cms-line);
    transform: translateY(-1px);
}
.cms-redesign .cms-google-btn-wrap img { height: 36px; width: auto; display: block; border-radius: 999px; }
.cms-redesign .cms-btn-primary {
    background: var(--cms-primary); color: var(--cms-on-primary); border-radius: 0.5rem;
    padding: 0.8rem 1.6rem; font-weight: 600; display: inline-flex; align-items: center;
    justify-content: center; border: none; text-decoration: none;
}
.cms-redesign .cms-btn-primary:hover { background: #094a60; color: var(--cms-on-primary); }
.cms-redesign .cms-btn-outline {
    border: 1.5px solid var(--cms-ink); color: var(--cms-ink); border-radius: 0.5rem;
    padding: 0.8rem 1.6rem; font-weight: 600; display: inline-flex; align-items: center;
    justify-content: center; text-decoration: none; background: transparent;
}
.cms-redesign .cms-btn-outline:hover { background: var(--cms-surface-tint); color: var(--cms-ink); }
.cms-redesign .cms-btn-inverse {
    background: var(--cms-on-primary); color: var(--cms-primary-ink); border-radius: 0.5rem;
    padding: 0.8rem 1.6rem; font-weight: 600; display: inline-flex; align-items: center;
    justify-content: center; text-decoration: none;
}
.cms-redesign .cms-btn-inverse:hover { background: #ffffff; color: var(--cms-primary-ink); }
.cms-redesign .cms-card {
    background: var(--cms-surface); border: 1px solid var(--cms-line); border-radius: 0.625rem;
}
.cms-redesign .cms-card--dark { background: var(--cms-primary-ink); border-radius: 0.625rem; color: var(--cms-on-primary); }
.cms-redesign .cms-divider-accent { border-top: 2px solid var(--cms-accent); padding-top: 1.1rem; }
.cms-redesign .cms-numeral {
    font-family: 'Fraunces', serif; font-weight: 700; font-size: 0.8rem; color: var(--cms-primary-ink);
    border: 1px solid var(--cms-primary); border-radius: 50%; width: 1.65rem; height: 1.65rem;
    display: flex; align-items: center; justify-content: center;
}
.cms-redesign .cms-numeral-accent { font-family: 'Fraunces', serif; font-weight: 700; font-size: 0.8rem; color: var(--cms-accent); }
.cms-redesign .cms-pill-group { display: inline-flex; border: 1.5px solid var(--cms-ink); border-radius: 999px; padding: 0.25rem; }
.cms-redesign .cms-pill-btn {
    border: none; border-radius: 999px; padding: 0.55rem 1.25rem; font-size: 0.875rem;
    font-weight: 600; cursor: pointer; background: transparent; color: var(--cms-ink);
}
.cms-redesign .cms-pill-btn.active { background: var(--cms-ink); color: var(--cms-on-primary); }
.cms-redesign .cms-badge-soft {
    display: inline-block; background: var(--cms-accent-soft); color: #8A3B22; font-size: 0.7rem;
    font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; padding: 0.2rem 0.55rem;
    border-radius: 0.3rem;
}
.cms-redesign .cms-badge-flagship {
    display: inline-block; background: var(--cms-primary); color: var(--cms-on-primary); font-size: 0.7rem;
    font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.2rem 0.6rem;
    border-radius: 0.3rem;
}
.cms-redesign .cms-pricing-card:hover { transform: translateY(-3px); }
.cms-redesign .cms-pricing-card { transition: transform 0.15s ease; }
.cms-redesign .cms-mono { color: var(--cms-primary); }
.cms-redesign .cms-faq-item {
    border: 1px solid var(--cms-line); border-radius: 0.625rem; margin-bottom: 0.75rem;
    overflow: hidden; background: var(--cms-surface);
}
.cms-redesign .cms-faq-button {
    font-family: 'Fraunces', serif; font-weight: 600; font-size: 1.05rem; color: var(--cms-ink);
    background: var(--cms-surface); box-shadow: none;
}
.cms-redesign .cms-faq-button:not(.collapsed) { background: var(--cms-surface-tint); color: var(--cms-ink); box-shadow: none; }
.cms-redesign .cms-faq-button:focus { box-shadow: none; border-color: var(--cms-line); }
.cms-redesign .cms-faq-body { background: var(--cms-surface); color: var(--cms-ink-soft); font-size: 0.95rem; line-height: 1.6; }
