/* Hawe CMS content blocks — published alongside any page that uses one.
   Neutral by design: inherits the site's fonts and colours, with a small set
   of variables a site stylesheet may override. */

.cms-block { margin: 2.5rem 0; }

.cmsb {
    --cmsb-accent: var(--accent, var(--primary, var(--mustard, var(--rust, #3aafa9))));
    /* small accent text needs a darker shade to pass 4.5:1 on a light surface;
       solid buttons follow the site's own (ink) rather than the accent */
    --cmsb-accent-deep: var(--accent-deep, var(--mustard-deep, var(--cmsb-accent)));
    --cmsb-button-bg: var(--ink, var(--navy, var(--cmsb-accent)));
    --cmsb-on-dark-accent: var(--sun, var(--cmsb-accent));
    --cmsb-serif: var(--serif, inherit);
    --cmsb-line: var(--line, var(--border, rgba(0,0,0,.14)));
    --cmsb-surface: var(--paper, var(--surface, rgba(255,255,255,.55)));
    --cmsb-radius: 10px;
    max-width: 780px;
    margin: 0 auto;
    padding: 0 1rem;
    box-sizing: border-box;
}
.cmsb *, .cmsb *::before, .cmsb *::after { box-sizing: inherit; }
.cmsb-title { margin: 0 0 .5rem; font: normal clamp(1.6rem, 3.4vw, 2.4rem)/1.05 var(--cmsb-serif); letter-spacing: -.02em; }
.cmsb-eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 .7rem; color: var(--cmsb-accent-deep); font: 500 11px/1 var(--mono, monospace); letter-spacing: .12em; text-transform: uppercase; }
.cmsb-eyebrow::before { content: ''; width: 28px; height: 1px; background: currentColor; }
.cmsb-intro { margin: 0 0 1.5rem; opacity: .8; }

/* ── forms ─────────────────────────────────────────────── */
.cmsb-fields { display: flex; flex-direction: column; gap: 1rem; }
.cmsb-row { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.cmsb-field { display: flex; flex-direction: column; gap: .35rem; font-size: .92rem; }
.cmsb-field--narrow { max-width: 140px; }
.cmsb-field > span { font-weight: 600; }
.cmsb-field em { color: var(--cmsb-accent); font-style: normal; }
.cmsb-field input, .cmsb-field textarea {
    width: 100%;
    padding: .7rem .85rem;
    border: 1px solid var(--cmsb-line);
    border-radius: var(--cmsb-radius);
    background: var(--cmsb-surface);
    color: inherit;
    font: inherit;
}
.cmsb-field input:focus, .cmsb-field textarea:focus {
    outline: 2px solid var(--cmsb-accent);
    outline-offset: 1px;
}
.cmsb-field.cmsb-invalid input, .cmsb-field.cmsb-invalid textarea { border-color: #d44; }
.cmsb-honeypot { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.cmsb-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.cmsb-button {
    padding: .8rem 1.4rem;
    border: 1px solid var(--cmsb-accent);
    border-radius: var(--cmsb-radius);
    background: var(--cmsb-accent);
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}
.cmsb-button:hover { filter: brightness(1.08); }
.cmsb-button[disabled] { opacity: .6; cursor: progress; }
.cmsb-status { font-size: .9rem; }
.cmsb-status.is-error { color: #d44; }
.cmsb-status.is-ok { color: var(--cmsb-accent); font-weight: 600; }
.cmsb-form.is-sent .cmsb-fields > :not(.cmsb-actions) { display: none; }
.cmsb-form.is-sent .cmsb-button { display: none; }

.cmsb-products { display: grid; gap: .6rem; margin: 0; padding: 0; border: 0; }
.cmsb-products legend { font-weight: 600; font-size: .92rem; padding: 0; margin-bottom: .3rem; }
.cmsb-products legend em { color: var(--cmsb-accent); font-style: normal; }
.cmsb-product {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: .8rem;
    align-items: center;
    padding: .8rem 1rem;
    border: 1px solid var(--cmsb-line);
    border-radius: var(--cmsb-radius);
    background: var(--cmsb-surface);
    cursor: pointer;
}
.cmsb-product:has(input:checked) { border-color: var(--cmsb-accent); box-shadow: 0 0 0 1px var(--cmsb-accent) inset; }
.cmsb-product-body { display: flex; flex-direction: column; gap: .15rem; }
.cmsb-product-name { font-weight: 600; }
.cmsb-product-desc { font-size: .85rem; opacity: .75; }
.cmsb-product-price { white-space: nowrap; font-weight: 700; }
.cmsb-product-price small { font-weight: 400; opacity: .7; }

/* ── map ───────────────────────────────────────────────── */
.cmsb-map { max-width: 1080px; }
.cmsb-map-canvas {
    width: 100%;
    min-height: 240px;
    border-radius: var(--cmsb-radius);
    overflow: hidden;
    border: 1px solid var(--cmsb-line);
    background: var(--cmsb-surface);
}
.cmsb-map-fallback { padding: 1rem 1.25rem; margin: 0; }
.cmsb-map-legend {
    display: flex; flex-wrap: wrap; gap: .5rem 1.25rem;
    margin: .8rem 0 0; padding: 0; list-style: none; font-size: .9rem;
}
.cmsb-map-jump {
    padding: 0; border: 0; background: none; color: var(--cmsb-accent);
    font: inherit; font-weight: 600; cursor: pointer; text-decoration: underline;
}
.cmsb-map-legend span { opacity: .75; }

/* Preview inside the editor: make blocks recognisable and clickable. */
.cms-block[data-cms-preview] { position: relative; outline: 1px dashed rgba(58,175,169,.55); outline-offset: 6px; cursor: pointer; }
.cms-block[data-cms-preview]::before {
    content: attr(data-block);
    position: absolute; top: -1.35rem; left: 0;
    padding: .1rem .5rem; border-radius: 4px 4px 0 0;
    background: rgba(58,175,169,.9); color: #fff;
    font: 600 .65rem/1.4 system-ui, sans-serif; letter-spacing: .06em; text-transform: uppercase;
    pointer-events: none;
}
.cms-block--unavailable { padding: 1rem; border: 1px dashed #d44; color: #d44; border-radius: 8px; }

/* ── partner logos ───────────────────────────────────────── */
.cmsb-partners { max-width: 1080px; }
.cmsb-partner-grid {
    --cmsb-logo-h: 44px;
    display: grid; gap: .75rem;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    margin: 1.5rem 0 0; padding: 0; list-style: none;
}
.cmsb-partner {
    display: flex; align-items: center; justify-content: center;
    width: 100%; min-height: calc(var(--cmsb-logo-h) + 2.4rem); padding: 1.1rem 1.25rem;
    border: 1px solid var(--cmsb-line); border-radius: var(--cmsb-radius);
    background: var(--cmsb-surface); color: inherit; cursor: pointer; font: inherit;
    transition: border-color .2s, transform .2s, box-shadow .2s;
}
.cmsb-partner:hover, .cmsb-partner:focus-visible { border-color: var(--cmsb-accent); transform: translateY(-2px); outline: none; }
.cmsb-partner[aria-expanded="true"] { border-color: var(--cmsb-accent); box-shadow: 0 0 0 1px var(--cmsb-accent) inset; }
.cmsb-partner img { max-height: var(--cmsb-logo-h); max-width: 100%; width: auto; object-fit: contain; transition: filter .25s, opacity .25s; }
/* a square or portrait mark reads tiny at the height that suits a wide wordmark */
.cmsb-partner img.is-portrait { max-height: calc(var(--cmsb-logo-h) * 1.75); }
.cmsb-partner { min-height: calc(var(--cmsb-logo-h) * 1.75 + 2.2rem); }
.cmsb-partners--grayscale .cmsb-partner img { filter: grayscale(1); opacity: .72; }
.cmsb-partners--grayscale .cmsb-partner:hover img,
.cmsb-partners--grayscale .cmsb-partner[aria-expanded="true"] img { filter: none; opacity: 1; }
.cmsb-partner-name { font-weight: 700; letter-spacing: -.01em; }
.cmsb-partner-detail {
    position: relative; margin-top: 1rem; padding: 1.25rem 3rem 1.25rem 1.5rem;
    border-left: 3px solid var(--cmsb-accent); border-radius: 0 var(--cmsb-radius) var(--cmsb-radius) 0;
    background: var(--cmsb-surface);
}
.cmsb-partner-detail strong { display: block; margin-bottom: .35rem; font-size: 1.05rem; }
.cmsb-partner-detail p { margin: 0 0 .6rem; opacity: .85; }
.cmsb-partner-detail a { color: var(--cmsb-accent); font-weight: 700; text-decoration: none; }
.cmsb-partner-detail a:hover { text-decoration: underline; }
.cmsb-partner-close { position: absolute; top: .6rem; right: .7rem; border: 0; background: none; color: inherit; opacity: .55; font: inherit; font-size: 1rem; cursor: pointer; }
.cmsb-partner-close:hover { opacity: 1; }

/* dark theme: a full-width navy band, like the client's previous site */
.cmsb-partners--theme-dark {
    --cmsb-line: rgba(255,255,255,.18);
    --cmsb-surface: rgba(255,255,255,.05);
    --cmsb-accent: var(--sun, var(--mustard, #e5ab45));
    max-width: none; padding: 4.5rem 1.5rem;
    background: var(--ink, #13263d); color: #f8f4ed;
}
.cmsb-partners-inner { max-width: 1080px; margin: 0 auto; }
.cmsb-partners--theme-dark .cmsb-intro { color: #cbd5d5; opacity: 1; }
.cmsb-partners--theme-dark .cmsb-partner:hover,
.cmsb-partners--theme-dark .cmsb-partner:focus-visible,
.cmsb-partners--theme-dark .cmsb-partner[aria-expanded="true"] { background: rgba(255,255,255,.09); }
.cmsb-partners--theme-dark.cmsb-partners--grayscale .cmsb-partner img { filter: none; opacity: .78; }
.cmsb-partners--theme-dark.cmsb-partners--grayscale .cmsb-partner:hover img,
.cmsb-partners--theme-dark.cmsb-partners--grayscale .cmsb-partner[aria-expanded="true"] img { opacity: 1; }
.cmsb-partners--theme-dark .cmsb-partner-detail { background: rgba(255,255,255,.06); }
.cmsb-partners--theme-dark .cmsb-partner-detail p { color: #d9e0e1; opacity: 1; }
/* the block wrapper's vertical margin would show the page background above a
   full-bleed band; the band carries its own spacing instead */
.cms-block--partner-logos:has(.cmsb-partners--theme-dark) { margin: 0; }

/* ── shared for the content blocks ─────────────────────── */
.cmsb--wide { max-width: 1100px; }
.cmsb-button { display: inline-block; padding: .8rem 1.4rem; border: 0; border-radius: var(--cmsb-radius); background: var(--cmsb-button-bg); color: #fff; font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; }
.cmsb-button:hover { filter: brightness(1.08); }
.cmsb h3 { margin: 0 0 .35rem; font-size: 1.1rem; line-height: 1.3; }

/* ── faq ───────────────────────────────────────────────── */
.cmsb-faq-list { border-top: 1px solid var(--cmsb-line); }
.cmsb-faq-item { border-bottom: 1px solid var(--cmsb-line); }
.cmsb-faq-item summary { position: relative; padding: 1rem 2.4rem 1rem 0; font-weight: 600; cursor: pointer; list-style: none; }
.cmsb-faq-item summary::-webkit-details-marker { display: none; }
.cmsb-faq-item summary::after { content: '+'; position: absolute; right: .2rem; top: 50%; transform: translateY(-50%); width: 26px; height: 26px; display: grid; place-items: center; border: 1px solid var(--cmsb-line); border-radius: 50%; color: var(--cmsb-accent); font-weight: 400; transition: transform .2s; }
.cmsb-faq-item[open] summary::after { content: '−'; }
.cmsb-faq-answer { padding: 0 2.4rem 1.1rem 0; opacity: .85; line-height: 1.6; }

/* ── pricing table ─────────────────────────────────────── */
.cmsb-plans { display: grid; gap: 1.2rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); align-items: stretch; margin-top: 1.5rem; }
.cmsb-plan { position: relative; display: flex; flex-direction: column; padding: 1.6rem 1.5rem; border: 1px solid var(--cmsb-line); border-radius: 14px; background: var(--cmsb-surface); }
.cmsb-plan.is-highlight { border-color: var(--cmsb-accent); box-shadow: 0 12px 40px -20px var(--cmsb-accent); }
.cmsb-plan.is-highlight::before { content: '★'; position: absolute; top: -12px; right: 1.2rem; padding: .1rem .6rem; border-radius: 999px; background: var(--cmsb-button-bg); color: #fff; font-size: .75rem; }
.cmsb-plan h3 { font-size: 1.25rem; }
.cmsb-plan-desc { margin: 0 0 1rem; font-size: .9rem; opacity: .7; }
.cmsb-plan-price { margin: 0 0 1.2rem; display: flex; align-items: baseline; gap: .4rem; }
.cmsb-plan-price strong { font-size: 2.2rem; line-height: 1; letter-spacing: -.03em; font-family: var(--cmsb-serif); }
.cmsb-plan-price .cmsb-plan-quote { font-size: 1.4rem; }
.cmsb-plan-price small { opacity: .7; }
.cmsb-plan-features { list-style: none; margin: 0 0 1.5rem; padding: 0; flex: 1; }
.cmsb-plan-features li { position: relative; padding: .35rem 0 .35rem 1.5rem; font-size: .95rem; border-bottom: 1px dashed var(--cmsb-line); }
.cmsb-plan-features li::before { content: '✓'; position: absolute; left: 0; color: var(--cmsb-accent); font-weight: 700; }
.cmsb-plan .cmsb-button { text-align: center; }

/* ── features / steps ──────────────────────────────────── */
.cmsb-feature-list { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.cmsb-feature { padding: 1.4rem 1.3rem; border: 1px solid var(--cmsb-line); border-radius: 14px; background: var(--cmsb-surface); }
.cmsb-feature-mark { display: block; margin-bottom: .8rem; font-size: 1.7rem; line-height: 1; }
.cmsb-features--steps .cmsb-feature { border: 0; border-top: 2px solid var(--cmsb-line); border-radius: 0; background: none; padding: 1.2rem 0 0; }
.cmsb-features--steps .cmsb-feature-mark { color: var(--cmsb-accent-deep); font: 500 13px/1 var(--mono, monospace); letter-spacing: .1em; }
.cmsb-feature p { margin: 0; opacity: .8; line-height: 1.55; }

/* ── testimonials ──────────────────────────────────────── */
.cmsb-quotes { display: grid; gap: 1.2rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); margin-top: 1.5rem; }
.cmsb-quote { margin: 0; padding: 1.5rem; border-radius: 14px; background: var(--cmsb-surface); border: 1px solid var(--cmsb-line); display: flex; flex-direction: column; }
.cmsb-quote blockquote { margin: 0 0 1.2rem; flex: 1; font-family: var(--cmsb-serif); font-size: 1.15rem; line-height: 1.5; }
.cmsb-quote blockquote::before { content: '“'; color: var(--cmsb-accent); font-size: 2rem; line-height: 0; margin-right: .1em; vertical-align: -.35em; }
.cmsb-quote figcaption { display: flex; align-items: center; gap: .8rem; font-size: .9rem; }
.cmsb-quote figcaption img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.cmsb-quote figcaption span { display: flex; flex-direction: column; }
.cmsb-quote figcaption small { opacity: .65; }

/* ── team ──────────────────────────────────────────────── */
.cmsb-people { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.cmsb-person img, .cmsb-person-initials { display: grid; place-items: center; width: 120px; height: 120px; margin-bottom: .9rem; border-radius: 50%; object-fit: cover; background: var(--cmsb-accent); color: #fff; font: 700 2rem/1 var(--cmsb-serif); }
.cmsb-person h3 a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--cmsb-accent); }
.cmsb-person .cmsb-person-role { margin: 0 0 .5rem; opacity: 1; color: var(--cmsb-accent-deep); font: 500 11px/1 var(--mono, monospace); letter-spacing: .1em; text-transform: uppercase; }
.cmsb-person p { margin: 0; font-size: .95rem; opacity: .8; }

/* ── stats ─────────────────────────────────────────────── */
.cmsb-stat-list { list-style: none; margin: 0; padding: 1.6rem 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); border-top: 1px solid var(--cmsb-line); border-bottom: 1px solid var(--cmsb-line); text-align: center; }
.cmsb-stat strong { display: block; font: 700 clamp(2rem, 4vw, 3rem)/1 var(--cmsb-serif); letter-spacing: -.03em; color: var(--cmsb-accent); }
.cmsb-stat-label { display: block; margin-top: .4rem; font-size: .9rem; opacity: .75; }

/* ── cta ───────────────────────────────────────────────── */
.cmsb-cta-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 2.4rem 2rem; border-radius: 18px; }
.cmsb-cta .cmsb-title { margin-bottom: .3rem; }
.cmsb-cta p { margin: 0; opacity: .85; max-width: 60ch; }
.cmsb-cta--dark .cmsb-cta-inner { background: var(--navy, var(--ink, #1b2430)); color: #fff; }
.cmsb-cta--dark .cmsb-button { background: var(--cmsb-on-dark-accent); color: var(--ink, #1b2430); }
.cmsb-cta--accent .cmsb-cta-inner { background: var(--cmsb-accent-deep); color: #fff; }
.cmsb-cta--accent .cmsb-button { background: #fff; color: var(--ink, #1b2430); }
.cmsb-cta--light .cmsb-cta-inner { background: var(--cmsb-surface); border: 1px solid var(--cmsb-line); }

/* ── gallery + lightbox ────────────────────────────────── */
.cmsb-gallery-grid { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .8rem; grid-template-columns: repeat(var(--cmsb-cols, 3), 1fr); }
.cmsb-gallery-grid li { margin: 0; }
.cmsb-gallery-grid a { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 10px; }
.cmsb-gallery-grid img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.cmsb-gallery-grid a:hover img { transform: scale(1.04); }
.cmsb-gallery-grid figcaption { margin-top: .35rem; font-size: .85rem; opacity: .7; }
@media (max-width: 640px) { .cmsb-gallery-grid { grid-template-columns: repeat(2, 1fr); } }
.cmsb-lightbox { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; background: rgba(0,0,0,.88); padding: 2rem; }
.cmsb-lightbox img { max-width: 100%; max-height: 82vh; object-fit: contain; border-radius: 6px; }
.cmsb-lightbox figcaption { margin-top: .8rem; color: #fff; text-align: center; font-size: .95rem; }
.cmsb-lightbox button { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; font-size: 1.4rem; cursor: pointer; }
.cmsb-lightbox button:hover { background: rgba(255,255,255,.25); }
.cmsb-lightbox .cmsb-lb-prev { left: 1rem; } .cmsb-lightbox .cmsb-lb-next { right: 1rem; }
.cmsb-lightbox .cmsb-lb-close { top: 1rem; right: 1rem; transform: none; }

/* ── video ─────────────────────────────────────────────── */
.cmsb-video-frame { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 14px; background: #000; }
.cmsb-video-frame img, .cmsb-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.cmsb-video-play { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(0,0,0,.15); cursor: pointer; }
.cmsb-video-play span { display: block; width: 74px; height: 74px; margin: 0 auto; border-radius: 50%; background: var(--cmsb-accent); box-shadow: 0 10px 40px rgba(0,0,0,.4); position: relative; transition: transform .2s; }
.cmsb-video-play span::after { content: ''; position: absolute; left: 30px; top: 23px; border-style: solid; border-width: 14px 0 14px 22px; border-color: transparent transparent transparent #fff; }
.cmsb-video-play:hover span { transform: scale(1.06); }

/* ── price calculator ──────────────────────────────────── */
.cmsb-calc-layout { display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr) 320px; align-items: start; margin-top: 1rem; }
@media (max-width: 860px) { .cmsb-calc-layout { grid-template-columns: 1fr; } }
.cmsb-calc-presets { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: 1.2rem; font-size: .9rem; }
.cmsb-calc-presets button { padding: .4rem .9rem; border: 1px solid var(--cmsb-line); border-radius: 999px; background: var(--cmsb-surface); color: inherit; font: inherit; font-size: .88rem; cursor: pointer; }
.cmsb-calc-presets button:hover, .cmsb-calc-presets button.is-active { border-color: var(--cmsb-accent); color: var(--cmsb-accent); }
.cmsb-calc-group { margin: 0 0 1.4rem; padding: 0; border: 0; min-width: 0; }
.cmsb-calc-group legend { padding: 0; margin-bottom: .6rem; font-weight: 600; }
.cmsb-calc-help { margin: -.3rem 0 .6rem; font-size: .88rem; opacity: .7; }
.cmsb-calc-choices { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.cmsb-calc-choice { position: relative; display: flex; align-items: flex-start; gap: .7rem; padding: .8rem .9rem; border: 1px solid var(--cmsb-line); border-radius: var(--cmsb-radius); background: var(--cmsb-surface); cursor: pointer; font-size: .95rem; transition: border-color .15s, box-shadow .15s; }
.cmsb-calc-choice:has(input:checked) { border-color: var(--cmsb-accent); box-shadow: 0 0 0 1px var(--cmsb-accent) inset; }
.cmsb-calc-choice input { margin: .2rem 0 0; accent-color: var(--cmsb-accent); flex: none; }
.cmsb-calc-choice-body { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.cmsb-calc-choice-body small { opacity: .7; font-size: .82rem; }
.cmsb-calc-hint, .cmsb-calc-badge { flex: none; font: 500 11px/1 var(--mono, monospace); letter-spacing: .04em; white-space: nowrap; }
.cmsb-calc-hint { opacity: .8; padding-top: .3rem; }
.cmsb-calc-badge { padding: .3rem .5rem; border-radius: 999px; background: var(--cmsb-button-bg); color: #fff; }
.cmsb-calc-qty { display: grid; gap: .8rem; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.cmsb-calc-qty input[type=range] { width: 100%; accent-color: var(--cmsb-accent); }
.cmsb-calc-qty label { display: flex; align-items: center; gap: .4rem; }
.cmsb-calc-qty input[type=number], .cmsb-calc-select { padding: .55rem .7rem; border: 1px solid var(--cmsb-line); border-radius: var(--cmsb-radius); background: var(--cmsb-surface); color: inherit; font: inherit; }
.cmsb-calc-qty input[type=number] { width: 7.5em; }
.cmsb-calc-unit { font-size: .9rem; opacity: .7; }
.cmsb-calc-summary { position: sticky; top: 1.5rem; padding: 1.5rem; border-radius: 16px; background: var(--navy, var(--ink, #1b2430)); color: #fff; }
.cmsb-calc-summary-label { margin: 0 0 .3rem; font: 500 11px/1 var(--mono, monospace); letter-spacing: .12em; text-transform: uppercase; opacity: .7; }
.cmsb-calc-total { margin: 0 0 1rem; display: flex; align-items: baseline; gap: .5rem; flex-wrap: wrap; }
.cmsb-calc-total span { font: 700 2.4rem/1 var(--cmsb-serif); letter-spacing: -.03em; color: var(--sun, var(--cmsb-accent)); }
.cmsb-calc-total small { opacity: .75; }
.cmsb-calc-lines { list-style: none; margin: 0 0 1rem; padding: 0; font-size: .86rem; }
.cmsb-calc-lines li { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.cmsb-calc-lines li span:last-child { white-space: nowrap; opacity: .9; }
.cmsb-calc-lines li.is-discount span:last-child { color: #8fd694; }
.cmsb-calc-note { margin: 0 0 1rem; font-size: .8rem; opacity: .65; }
.cmsb-calc-summary .cmsb-button { background: var(--cmsb-on-dark-accent); color: var(--ink, #1b2430); }
.cmsb-calc-inquiry summary { display: block; text-align: center; list-style: none; }
.cmsb-calc-inquiry summary::-webkit-details-marker { display: none; }
.cmsb-calc-inquiry[open] summary { display: none; }
.cmsb-calc-inquiry .cmsb-fields { margin-top: 1rem; }
.cmsb-calc-inquiry .cmsb-field input, .cmsb-calc-inquiry .cmsb-field textarea { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.2); color: #fff; }
.cmsb-calc-inquiry .cmsb-field em { color: var(--sun, var(--cmsb-accent)); }
.cmsb-calc-form.is-sent .cmsb-calc-inquiry { display: none; }

/* labels on the dark partner band: the deep accent is for light surfaces only */
.cmsb-partners--theme-dark .cmsb-eyebrow { color: var(--cmsb-on-dark-accent); }
