/* Ashewa Global Brand Book 2026 tokens - Poppins in all product UI, green
   primary/success, yellow warning-only, red error-only. See the platform's
   global engineering standard - this is customer-facing UI, not a
   marketing page, so the rules apply as-is. */
#sdc-app, #smp-app {
    --sdc-green: #15A34A;
    --sdc-green-shade: #0E7A38;
    --sdc-green-tint-10: #E6F5EC;
    --sdc-yellow: #F9ED1F;
    --sdc-yellow-tint-10: #FEFCE6;
    --sdc-red: #E30613;
    --sdc-red-shade: #A80410;
    --sdc-red-tint-10: #FBE5E7;
    --sdc-ink: #1F2A24;
    --sdc-ink-muted: #5B6B62;
    --sdc-border: #E1E8E4;

    font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
    color: var(--sdc-ink);
    max-width: 760px;
}

#sdc-app h1, #sdc-app h2, #sdc-app h3 {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
}

.sdc-h1 { font-size: 2rem; margin-bottom: 0.5rem; }
.sdc-h2 { font-size: 1.5rem; margin-bottom: 0.25rem; }
.sdc-lede { color: var(--sdc-ink-muted); margin-bottom: 1.5rem; }

/* Progress */
.sdc-progress-bar {
    height: 6px;
    border-radius: 999px;
    background: var(--sdc-border);
    overflow: hidden;
}
.sdc-progress-fill {
    height: 100%;
    width: 8%;
    background: var(--sdc-green);
    transition: width 0.25s ease;
}
.sdc-step-label {
    font-size: 0.85rem;
    color: var(--sdc-ink-muted);
    margin-top: 0.4rem;
}

/* Alerts - red reserved for errors only, per brand rule */
.sdc-alert {
    padding: 0.75rem 1rem;
    border-radius: 8px;
    margin-bottom: 1.25rem;
    font-size: 0.95rem;
}
.sdc-alert-error {
    background: var(--sdc-red-tint-10);
    color: var(--sdc-red-shade);
    border: 1px solid var(--sdc-red);
}
.sdc-alert-success {
    background: var(--sdc-green-tint-10);
    color: var(--sdc-green-shade);
    border: 1px solid var(--sdc-green);
}

/* Doors */
.sdc-door-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
    margin-top: 1.5rem;
}
.sdc-door-card {
    text-align: left;
    background: #fff;
    border: 1.5px solid var(--sdc-border);
    border-radius: 12px;
    padding: 1.25rem;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    transition: border-color 0.15s ease, transform 0.15s ease;
}
.sdc-door-card:hover {
    border-color: var(--sdc-green);
    transform: translateY(-2px);
}
.sdc-door-card-primary {
    border-color: var(--sdc-green);
    background: var(--sdc-green-tint-10);
}
.sdc-door-icon { font-size: 1.75rem; }
.sdc-door-title { font-weight: 600; }
.sdc-door-desc { color: var(--sdc-ink-muted); font-size: 0.9rem; }

/* Cards (industries, apps) */
.sdc-card-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}
.sdc-pick-card {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    background: #fff;
    border: 1.5px solid var(--sdc-border);
    border-radius: 10px;
    padding: 0.9rem;
    cursor: pointer;
}
.sdc-pick-card.sdc-selected {
    border-color: var(--sdc-green);
    background: var(--sdc-green-tint-10);
}
.sdc-pick-card.sdc-suggested:not(.sdc-selected) {
    border-style: dashed;
    border-color: var(--sdc-green);
}
.sdc-pick-card-icon { font-size: 1.3rem; }
.sdc-pick-card-title { font-weight: 500; }
.sdc-pick-card-desc { color: var(--sdc-ink-muted); font-size: 0.85rem; }
.sdc-pick-card { min-width: 0; }
.sdc-pick-card-price { color: var(--sdc-green-shade); font-weight: 600; font-size: 0.9rem; margin-left: auto; white-space: nowrap; }
/* Plan cards: the price takes its own first line so it is never clipped at the card edge, whatever the column width. */
.sdc-plan-card { flex-wrap: wrap; }
.sdc-plan-card > div:first-child { flex: 1 1 100%; min-width: 0; }
.sdc-plan-card .sdc-pick-card-price { order: -1; flex: 1 0 100%; margin-left: 0; font-size: 1.05rem; white-space: normal; }

/* Choice options (questionnaire) */
.sdc-option-list { display: flex; flex-direction: column; gap: 0.5rem; margin: 1rem 0; }
.sdc-option {
    border: 1.5px solid var(--sdc-border);
    border-radius: 8px;
    padding: 0.7rem 1rem;
    cursor: pointer;
    background: #fff;
}
.sdc-option.sdc-selected {
    border-color: var(--sdc-green);
    background: var(--sdc-green-tint-10);
}

/* Form fields */
.sdc-field-row { margin-bottom: 1rem; display: flex; flex-direction: column; gap: 0.35rem; max-width: 420px; }
.sdc-field-row label { font-size: 0.9rem; font-weight: 500; }
.sdc-field-row input, .sdc-field-row select {
    font-family: 'Poppins', sans-serif;
    border: 1.5px solid var(--sdc-border);
    border-radius: 8px;
    padding: 0.55rem 0.75rem;
    font-size: 1rem;
}
.sdc-field-row input:focus, .sdc-field-row select:focus {
    outline: none;
    border-color: var(--sdc-green);
}
.sdc-subdomain-input { display: flex; align-items: center; gap: 0.4rem; }
.sdc-subdomain-input span { color: var(--sdc-ink-muted); }

/* Buttons - green is the only primary-action color, per brand rule */
.sdc-btn {
    font-family: 'Poppins', sans-serif;
    font-weight: 500;
    border: none;
    border-radius: 8px;
    padding: 0.65rem 1.4rem;
    font-size: 1rem;
    cursor: pointer;
}
/* White text on green uses the shade step, not the base hex - base green
   with white text is ~3.3:1, below WCAG AA at button-label size. */
.sdc-btn-primary { background: var(--sdc-green-shade); color: #fff; }
.sdc-btn-primary:hover { background: var(--sdc-green-shade); color: #fff; filter: brightness(0.92); }
.sdc-btn-primary:disabled { opacity: 0.6; cursor: not-allowed; }
.sdc-btn-block { width: 100%; margin-top: 1rem; }
.sdc-btn-link { background: none; color: var(--sdc-green-shade); text-decoration: underline; padding: 0.5rem; }
.sdc-actions { margin-top: 1.5rem; }

/* Package layout */
.sdc-package-layout { display: grid; grid-template-columns: 1fr 280px; gap: 2rem; }
.sdc-package-summary {
    background: #fff;
    border: 1.5px solid var(--sdc-border);
    border-radius: 12px;
    padding: 1.25rem;
    align-self: start;
    position: sticky;
    top: 1rem;
}
.sdc-package-summary h2, .sdc-package-summary h3 { font-size: 1.05rem; margin-bottom: 0.75rem; }
.sdc-summary-line { display: flex; justify-content: space-between; padding: 0.35rem 0; font-size: 0.9rem; color: var(--sdc-ink-muted); }
.sdc-summary-total { border-top: 1px solid var(--sdc-border); margin-top: 0.4rem; padding-top: 0.6rem; font-weight: 600; color: var(--sdc-ink); font-size: 1rem; }

/* Badges - yellow reserved for warning/pending state only, never a button */
.sdc-badge { display: inline-block; padding: 0.15rem 0.6rem; border-radius: 999px; font-size: 0.8rem; font-weight: 500; }
.sdc-badge-warning { background: var(--sdc-yellow-tint-10); color: #7A6A00; border: 1px solid var(--sdc-yellow); }

.sdc-success-card {
    background: #fff;
    border: 1.5px solid var(--sdc-border);
    border-radius: 12px;
    padding: 1.25rem;
    max-width: 420px;
    margin-bottom: 1rem;
}

@media (max-width: 700px) {
    .sdc-package-layout { grid-template-columns: 1fr; }
    .sdc-package-summary { position: static; }
}

/* Real Odoo module icons alongside the emoji fallback */
.sdc-pick-card-icon-img { width: 32px; height: 32px; object-fit: contain; flex: none; }

/* Category-grouped app catalog */
.sdc-category-section { margin-bottom: 1.75rem; }
.sdc-category-heading {
    font-size: 1.05rem;
    font-weight: 600;
    margin-bottom: 0.6rem;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid var(--sdc-border);
}

/* Compact card list for the implementation-level chooser */
.sdc-card-list-compact { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }

/* Small badge line on plan/package cards (e.g. "Recommended for 51-199 FTE") */
.sdc-pick-card-badge {
    display: inline-block;
    margin-top: 0.3rem;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 500;
    background: var(--sdc-green-tint-10);
    color: var(--sdc-green-shade);
}

/* Master pricing page - wider than the single-column onboarding flow */
#smp-app { max-width: 1080px; }
.sdc-pill-row { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.sdc-pill {
    border: 1.5px solid var(--sdc-border);
    border-radius: 999px;
    padding: 0.35rem 0.9rem;
    font-size: 0.85rem;
    cursor: pointer;
    background: #fff;
}
.sdc-pill.sdc-selected { border-color: var(--sdc-green); background: var(--sdc-green-tint-10); color: var(--sdc-green-shade); }
.sdc-matrix-wrap { overflow-x: auto; }
.sdc-matrix { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.sdc-matrix th, .sdc-matrix td { border: 1px solid var(--sdc-border); padding: 0.6rem 0.75rem; text-align: left; vertical-align: top; }
.sdc-matrix th { background: var(--sdc-green-tint-10); font-weight: 600; }
.sdc-matrix td.sdc-matrix-price { font-weight: 600; color: var(--sdc-green-shade); white-space: nowrap; }

/* Optional services (add-ons) in the Package Builder */
.sdc-addon-section { margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid var(--sdc-border); }
.sdc-addon-title { font-size: 1.05rem; margin-bottom: 0.2rem; }
.sdc-addon-hint { color: var(--sdc-ink-muted); font-size: 0.9rem; margin-bottom: 0.75rem; }
.sdc-addon-group-heading { font-size: 0.95rem; font-weight: 600; margin: 1rem 0 0.5rem; }
.sdc-addon-card { width: 100%; font: inherit; color: inherit; text-align: left; flex-direction: column; }
.sdc-addon-card .sdc-pick-card-price { margin-left: 0; margin-top: 0.5rem; white-space: normal; }
.sdc-addon-card:focus-visible { outline: 2px solid var(--sdc-green-shade); outline-offset: 2px; }

/* Estimate summary: monthly block and one-time block kept apart */
.sdc-summary-group {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--sdc-ink);
    margin: 0.9rem 0 0.1rem;
}
.sdc-summary-group:first-of-type { margin-top: 0; }
.sdc-summary-line { gap: 0.75rem; }
.sdc-summary-line > span:last-child { white-space: nowrap; text-align: right; }
.sdc-summary-note { font-size: 0.8rem; color: var(--sdc-ink-muted); margin: 0.75rem 0; }

/* ---------- Journey navigation: Back / Start over / resume note ---------- */
.sdc-progress-row { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.sdc-progress-nav { display: flex; gap: 0.25rem; }
.sdc-back, .sdc-start-over { font-size: 0.85rem; padding: 0.35rem 0.5rem; text-decoration: none; }
.sdc-back:hover, .sdc-start-over:hover { text-decoration: underline; }
.sdc-note {
    background: var(--sdc-green-tint-10);
    border: 1px solid var(--sdc-green);
    color: var(--sdc-green-shade);
    border-radius: 8px;
    padding: 0.6rem 1rem;
    font-size: 0.9rem;
    margin-bottom: 1rem;
}
.sdc-fineprint { font-size: 0.85rem; color: var(--sdc-ink-muted); margin-top: 1rem; }
.sdc-optional { font-weight: 400; color: var(--sdc-ink-muted); }

/* ---------- Pricing-model choice ---------- */
.sdc-model-grid { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.sdc-door-meta { margin-top: 0.4rem; font-size: 0.85rem; font-weight: 600; color: var(--sdc-green-shade); }

/* ---------- Industry edition comparison (3 cards) ---------- */
#sdc-app:has(#sdc-step-edition:not(.d-none)),
#sdc-app:has(#sdc-step-package:not(.d-none)) { max-width: 1080px; }
.sdc-edition-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
    margin-top: 1.25rem;
    align-items: stretch;
}
.sdc-edition-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1.5px solid var(--sdc-border);
    border-radius: 14px;
    padding: 1.5rem 1.25rem 1.25rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.sdc-edition-card.sdc-recommended { border-color: var(--sdc-green); box-shadow: 0 8px 24px rgba(14, 122, 56, 0.10); }
.sdc-edition-card.sdc-selected { border-color: var(--sdc-green-shade); background: var(--sdc-green-tint-10); }
.sdc-edition-badge {
    position: absolute;
    top: -0.7rem;
    left: 1rem;
    font-size: 0.72rem;
    font-weight: 600;
    background: var(--sdc-green-shade);
    color: #fff;
    border-radius: 999px;
    padding: 0.15rem 0.7rem;
}
.sdc-edition-badge:empty { display: none; }
.sdc-edition-tier { font-size: 0.8rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--sdc-green-shade); }
.sdc-edition-price { margin: 0.35rem 0 0.25rem; }
.sdc-edition-amount { font-size: 1.6rem; font-weight: 700; color: var(--sdc-ink); }
.sdc-edition-per { color: var(--sdc-ink-muted); font-size: 0.9rem; }
.sdc-edition-tagline { color: var(--sdc-ink-muted); font-size: 0.9rem; min-height: 2.6em; }
.sdc-edition-band { font-size: 0.85rem; font-weight: 500; margin: 0.5rem 0 0.75rem; }
.sdc-edition-features, .sdc-edition-apps { list-style: none; padding: 0; margin: 0 0 0.75rem; font-size: 0.875rem; }
.sdc-edition-features li::before, .sdc-edition-apps li::before { content: "\2713"; color: var(--sdc-green-shade); font-weight: 700; margin-right: 0.45rem; }
.sdc-edition-features li, .sdc-edition-apps li { padding: 0.15rem 0; }
.sdc-edition-apps-label { font-size: 0.78rem; font-weight: 600; color: var(--sdc-ink-muted); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.3rem; }
.sdc-edition-more { color: var(--sdc-ink-muted); }
.sdc-edition-more::before { content: "" !important; margin: 0 !important; }
.sdc-edition-select { margin-top: auto; width: 100%; }
.sdc-btn-secondary { background: #fff; border: 1.5px solid var(--sdc-green-shade); color: var(--sdc-green-shade); }
.sdc-btn-secondary:hover { background: var(--sdc-green-tint-10); }

/* ---------- Edition summary inside the package step ---------- */
.sdc-edition-summary {
    background: var(--sdc-green-tint-10);
    border: 1px solid var(--sdc-green);
    border-radius: 12px;
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
}
.sdc-edition-summary-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.sdc-edition-summary-name { font-weight: 600; font-size: 1.05rem; }
.sdc-edition-summary-meta { color: var(--sdc-ink-muted); font-size: 0.9rem; }
.sdc-edition-summary-label { margin-top: 0.75rem; font-size: 0.78rem; font-weight: 600; color: var(--sdc-ink-muted); text-transform: uppercase; letter-spacing: 0.05em; }
.sdc-chip-list { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.4rem; }
.sdc-chip { background: #fff; border: 1px solid var(--sdc-border); border-radius: 999px; padding: 0.2rem 0.65rem; font-size: 0.8rem; }

/* ---------- App cards: Essential (locked) vs Recommended (optional) ---------- */
.sdc-pick-card.sdc-essential { cursor: default; border-color: var(--sdc-green); background: var(--sdc-green-tint-10); }
.sdc-pick-card-badge.sdc-badge-essential { background: var(--sdc-green-shade); color: #fff; }
.sdc-pick-card-lock { font-size: 0.75rem; color: var(--sdc-green-shade); margin-left: auto; white-space: nowrap; }
.sdc-plan-card-contact { cursor: default; }

/* ---------- Checkout summary + success ---------- */
.sdc-checkout-summary { max-width: 420px; margin: 1rem 0; background: #fff; border: 1.5px solid var(--sdc-border); border-radius: 12px; padding: 0.9rem 1.1rem; }
.sdc-checkout-summary:empty { display: none; }
.sdc-badge-success { background: var(--sdc-green-tint-10); color: var(--sdc-green-shade); border: 1px solid var(--sdc-green); }
.sdc-success-progress { display: flex; align-items: center; gap: 0.6rem; color: var(--sdc-ink-muted); margin: 0.75rem 0 1.25rem; }
.sdc-spinner {
    width: 18px; height: 18px; flex: none;
    border: 2.5px solid var(--sdc-border);
    border-top-color: var(--sdc-green);
    border-radius: 50%;
    animation: sdc-spin 0.9s linear infinite;
}
@keyframes sdc-spin { to { transform: rotate(360deg); } }
#sdc-success-ready .sdc-btn { display: inline-block; text-decoration: none; }

/* ---------- Trust strip ---------- */
.sdc-trust { display: flex; flex-wrap: wrap; gap: 0.6rem 1.5rem; margin: 1.25rem 0 0; padding: 0; list-style: none; font-size: 0.85rem; color: var(--sdc-ink-muted); }
.sdc-trust li::before { content: "\2713"; color: var(--sdc-green-shade); font-weight: 700; margin-right: 0.4rem; }

@media (prefers-reduced-motion: reduce) { .sdc-spinner { animation: none; } }

/* ---------- Two-door start ---------- */
.sdc-door-grid-2 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.sdc-door-grid-2 .sdc-door-card { padding: 1.5rem 1.35rem; }

/* ---------- App cards without per-app prices: a choice, not a price tag ---------- */
.sdc-pick-card-toggle { color: var(--sdc-green-shade); font-weight: 600; font-size: 0.85rem; }
.sdc-pick-card:not(.sdc-selected) .sdc-pick-card-toggle { color: var(--sdc-ink-muted); font-weight: 500; }

/* ---------- Services: one per category (radio behaviour) ---------- */
.sdc-addon-card { position: relative; padding-left: 2.6rem; }
.sdc-addon-card::before {
    content: "";
    position: absolute; left: 1rem; top: 1.15rem;
    width: 18px; height: 18px; border-radius: 50%;
    border: 2px solid var(--sdc-border); background: #fff;
    box-sizing: border-box;
}
.sdc-addon-card.sdc-selected::before { border: 6px solid var(--sdc-green-shade); }

/* ---------- Field hint beneath an input (inline, plain-language) ---------- */
.sdc-field-hint { font-size: 0.85rem; margin-top: 0.35rem; min-height: 1.2em; color: var(--sdc-ink-muted); }
.sdc-field-hint-ok { color: var(--sdc-green-shade); }
.sdc-field-hint-error { color: var(--sdc-red-shade); }

/* ---------- Welcome screen ---------- */
#sdc-app:has(#sdc-step-success:not(.d-none)) { max-width: 1000px; }
.sdc-eyebrow { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--sdc-green-shade); margin-bottom: 0.5rem; }
.sdc-welcome-hero { padding: 0.5rem 0 1.25rem; }
.sdc-welcome-title { font-size: 2.4rem; font-weight: 700; line-height: 1.15; }
.sdc-welcome-lede { font-size: 1.05rem; max-width: 640px; }
.sdc-welcome-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, 1fr); gap: 1.5rem; align-items: start; }
.sdc-welcome-main { background: #fff; border: 1.5px solid var(--sdc-border); border-radius: 14px; padding: 1.5rem; }
.sdc-stepper { list-style: none; margin: 0 0 1rem; padding: 0; }
.sdc-stepper-item { display: flex; align-items: center; gap: 0.85rem; padding: 0.55rem 0; color: var(--sdc-ink-muted); position: relative; }
.sdc-stepper-item + .sdc-stepper-item::before { content: ""; position: absolute; left: 11px; top: -0.45rem; height: 0.9rem; border-left: 2px solid var(--sdc-border); }
.sdc-stepper-item.is-done + .sdc-stepper-item::before, .sdc-stepper-item.is-done + .sdc-stepper-item.is-done::before { border-color: var(--sdc-green); }
.sdc-stepper-dot { width: 24px; height: 24px; border-radius: 50%; border: 2px solid var(--sdc-border); background: #fff; flex: none; display: inline-flex; align-items: center; justify-content: center; font-size: 0.8rem; box-sizing: border-box; }
.sdc-stepper-item.is-done { color: var(--sdc-ink); }
.sdc-stepper-item.is-done .sdc-stepper-dot { background: var(--sdc-green-shade); border-color: var(--sdc-green-shade); color: #fff; }
.sdc-stepper-item.is-done .sdc-stepper-dot::before { content: "\2713"; font-weight: 700; }
.sdc-stepper-item.is-current { color: var(--sdc-ink); font-weight: 600; }
.sdc-stepper-item.is-current .sdc-stepper-dot { border-color: var(--sdc-green); animation: sdc-pulse 1.4s ease-in-out infinite; }
@keyframes sdc-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(21, 163, 74, 0.35); } 50% { box-shadow: 0 0 0 6px rgba(21, 163, 74, 0); } }
.sdc-welcome-ready { margin-top: 0.5rem; }
.sdc-welcome-countdown { font-weight: 600; color: var(--sdc-green-shade); margin-bottom: 0.75rem; }
.sdc-welcome-side .sdc-success-card { max-width: none; }
.sdc-welcome-order { display: inline-block; padding-left: 0; margin-top: 0.5rem; }
.sdc-welcome-tip { background: var(--sdc-green-tint-10); border: 1px solid var(--sdc-green); border-radius: 12px; padding: 1rem 1.25rem; min-height: 6.5rem; }
.sdc-welcome-tip-label { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--sdc-green-shade); margin-bottom: 0.35rem; }
.sdc-welcome-tip-text { font-size: 0.95rem; color: var(--sdc-ink); transition: opacity 0.3s ease; }
.sdc-welcome-tip-text.is-fading { opacity: 0; }
@media (max-width: 760px) {
    .sdc-welcome-layout { grid-template-columns: 1fr; }
    .sdc-welcome-title { font-size: 1.8rem; }
}
@media (prefers-reduced-motion: reduce) { .sdc-stepper-item.is-current .sdc-stepper-dot { animation: none; } }

/* ---------- Implementation packs (journey + pricing page) ---------- */
.sdc-pack-section { margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid var(--sdc-border); }
.sdc-pack-list { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.sdc-pack-hours { font-size: 0.8rem; color: var(--sdc-green-shade); font-weight: 600; margin-top: 0.35rem; }
.smp-section-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; }
.smp-section-head .sdc-btn { flex: none; }
.smp-pack-table th:first-child { width: 220px; background: #fff; font-weight: 500; color: var(--sdc-ink-muted); }
.smp-pack-table thead th { text-align: center; vertical-align: top; }
.smp-pack-table thead th:first-child { background: #fff; }
.smp-pack-table td { text-align: center; }
.smp-pack-name { display: block; font-size: 1.05rem; font-weight: 700; color: var(--sdc-ink); }
.smp-pack-tagline { display: block; font-size: 0.78rem; font-weight: 400; color: var(--sdc-ink-muted); margin-top: 0.2rem; }
.smp-pack-hours-row td { font-weight: 600; color: var(--sdc-green-shade); background: var(--sdc-green-tint-10); }
.smp-tick { color: var(--sdc-green-shade); font-weight: 700; }
.smp-dash { color: var(--sdc-border); }
.smp-pack-price-row td { font-size: 1.05rem; }

/* ---------- Estimators ---------- */
.smp-estimator { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 380px); gap: 1.5rem; align-items: start; margin-top: 1rem; }
.smp-estimator-controls label { display: block; font-weight: 500; margin: 0.6rem 0 0.3rem; }
.smp-estimator-controls input[type="number"], .smp-est-grid input, .smp-est-grid select {
    width: 100%; padding: 0.55rem 0.75rem; border: 1.5px solid var(--sdc-border); border-radius: 8px; font: inherit; background: #fff;
}
.smp-estimator-controls input[type="range"] { width: 100%; accent-color: var(--sdc-green-shade); }
.smp-range-scale { display: flex; justify-content: space-between; font-size: 0.75rem; color: var(--sdc-ink-muted); }
.smp-estimator-result, .smp-est-result { background: #fff; border: 1.5px solid var(--sdc-border); border-radius: 12px; padding: 1rem 1.25rem; }
.smp-estimator-result .sdc-btn, .smp-est-result .sdc-btn { display: inline-block; margin-top: 0.75rem; text-decoration: none; }
.smp-positive { color: var(--sdc-green-shade); }
/* A net below zero is a caution, not an error: the Brand Book keeps red for
   errors and destructive actions, and yellow is a fill, never text. So the
   figure stays in ink on a caution-tinted chip. */
.smp-negative { color: var(--sdc-ink); background: var(--sdc-yellow-tint-10); border: 1px solid var(--sdc-yellow); border-radius: 6px; padding: 0.05rem 0.4rem; }
.smp-advisor-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.smp-advisor-grid .sdc-door-card { text-decoration: none; color: inherit; }
.smp-faq { border: 1.5px solid var(--sdc-border); border-radius: 10px; padding: 0.7rem 1rem; margin-bottom: 0.5rem; background: #fff; }
.smp-faq summary { font-weight: 600; cursor: pointer; }
.smp-faq p { margin: 0.6rem 0 0; color: var(--sdc-ink-muted); }
.smp-modal { position: fixed; inset: 0; background: rgba(31, 42, 36, 0.55); display: flex; align-items: flex-start; justify-content: center; padding: 3rem 1rem; z-index: 1050; overflow: auto; }
.smp-modal-card { background: #fff; border-radius: 16px; max-width: 900px; width: 100%; padding: 1.5rem 1.75rem 1.75rem; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25); }
.smp-modal-head { display: flex; justify-content: space-between; align-items: center; }
.smp-est-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 360px); gap: 1.5rem; }
.smp-est-grid label { display: block; font-weight: 500; margin: 0.6rem 0 0.3rem; }
@media (max-width: 760px) { .smp-estimator, .smp-est-grid { grid-template-columns: 1fr; } }

/* ---------- Estimate step in the journey ---------- */
#sdc-app:has(#sdc-step-estimate:not(.d-none)) { max-width: 1080px; }
.sdc-estimate-layout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(300px, 380px); gap: 1.5rem; align-items: start; }
.sdc-estimate-form select { width: 100%; padding: 0.55rem 0.75rem; border: 1.5px solid var(--sdc-border); border-radius: 8px; font: inherit; background: #fff; }
.sdc-est-packs { margin: 0.5rem 0 1.5rem; }
.sdc-est-packs summary { cursor: pointer; font-weight: 600; color: var(--sdc-green-shade); }
.sdc-est-packs .sdc-matrix-wrap { margin-top: 0.75rem; }
.sdc-est-roi-title { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--sdc-border); }
.sdc-estimate-summary { position: sticky; top: 1rem; }
@media (max-width: 760px) { .sdc-estimate-layout { grid-template-columns: 1fr; } .sdc-estimate-summary { position: static; } }


/* Checkout: terms acceptance */
.sdc-terms-row { margin: 16px 0 12px; }
.sdc-checkbox { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: #3F4F46; cursor: pointer; }
.sdc-checkbox input { margin-top: 4px; width: 18px; height: 18px; accent-color: #15A34A; flex: none; }
/* Legal pages and demo form */
.sdc-legal p { max-width: 76ch; }
.sdc-legal .sdc-h2 { margin-top: 28px; font-size: 20px; }
.sdc-demo-form { max-width: 560px; }
/* Honeypot field: moved off-screen rather than display:none/visibility:hidden -
   some bots specifically skip those two, off-screen positioning is harder to
   detect programmatically while staying invisible and unreachable by tab to a
   real visitor. */
.sdc-hp { position: absolute; left: -9999px; top: -9999px; }

/* Plan cards: the tier definition as a short feature list */
.sdc-plan-features { list-style: none; margin: 6px 0 0; padding: 0; font-size: 0.82rem; color: var(--sdc-ink-muted); }
.sdc-plan-features li { padding-left: 16px; position: relative; line-height: 1.45; }
.sdc-plan-features li::before { content: "\2713"; position: absolute; left: 0; color: var(--sdc-green); font-weight: 600; }
.sdc-cadence-row { margin: 14px 0 4px; }

.sdc-legal-nav { font-size: 14px; margin: 4px 0 18px; }
.sdc-legal-nav a { color: #0E7A38; }

/* ---------- Legal and policy pages: simple data table ---------- */
.sdc-legal .sdc-table { width: 100%; border-collapse: collapse; margin: 0.75rem 0 1rem; font-size: 0.95rem; }
.sdc-legal .sdc-table th, .sdc-legal .sdc-table td { border: 1px solid var(--sdc-border); padding: 0.55rem 0.75rem; text-align: left; vertical-align: top; }
.sdc-legal .sdc-table th { background: var(--sdc-green-tint-10); color: var(--sdc-ink); font-weight: 600; }
@media (max-width: 640px) { .sdc-legal .sdc-table { display: block; overflow-x: auto; } }

/* ---------- ROI analysis: "What could it save you?" (/pricing #roi) ---------- */
.smp-roi { scroll-margin-top: 5rem; }
.smp-roi-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 400px); gap: 1.75rem; align-items: start; }
.smp-roi-form .sdc-field-row { margin-bottom: 1rem; }
.smp-roi-subhead { margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid var(--sdc-border); }
.smp-roi-result {
    border: 1.5px solid var(--sdc-green);
    border-radius: 16px;
    padding: 1.5rem;
    background: #fff;
    box-shadow: 0 10px 30px rgba(14, 122, 56, 0.08);
    position: sticky;
    top: 1.5rem;
}
.smp-roi-empty-title { font-weight: 600; margin-bottom: 0.4rem; }
.smp-roi-empty p { color: var(--sdc-ink-muted); font-size: 0.9rem; margin: 0; }
.smp-roi-headline {
    background: var(--sdc-green-tint-10);
    border-radius: 12px;
    padding: 1rem 1.15rem;
    margin-bottom: 1.1rem;
}
.smp-roi-headline-label { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--sdc-green-shade); }
.smp-roi-headline-value { font-size: 1.9rem; font-weight: 700; line-height: 1.2; color: var(--sdc-ink); margin-top: 0.2rem; }
.smp-roi-result .sdc-summary-line { display: flex; justify-content: space-between; gap: 1rem; padding: 0.45rem 0; font-size: 0.95rem; }
.smp-roi-result .sdc-summary-line > span:last-child { font-weight: 600; text-align: right; white-space: nowrap; }
.smp-roi-result .sdc-summary-total { border-top: 1px solid var(--sdc-border); margin-top: 0.35rem; padding-top: 0.7rem; font-size: 1.05rem; }
.smp-roi-basis { font-size: 0.78rem; color: var(--sdc-ink-muted); margin: 0.9rem 0 0; }
.smp-roi-cta { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.1rem; }
.smp-roi-cta .sdc-btn { flex: 1 1 auto; text-align: center; }
@media (max-width: 860px) {
    .smp-roi-layout { grid-template-columns: 1fr; }
    .smp-roi-result { position: static; }
    .smp-roi-headline-value { font-size: 1.6rem; }
}
.smp-roi-note { font-size: 0.85rem; color: var(--sdc-ink); background: var(--sdc-yellow-tint-10); border-left: 3px solid var(--sdc-yellow); border-radius: 6px; padding: 0.6rem 0.75rem; margin: 0.9rem 0 0; }

/* Header colour and body-link style were "site-wide" rules here (a11y scan, 2026-09-13). They now live in theme_smarterp (header, links, mega-menus), where they are
   scoped and do not repaint the header green on the pages that load this stylesheet. Contrast of the theme header is checked there. */

/* Failure state of the welcome screen: calm, plain, with a way forward */
#sdc-success-failed { border: 1px solid var(--sdc-border); border-left: 4px solid var(--sdc-yellow); border-radius: 10px; background: #fff; padding: 1rem 1.25rem; }
#sdc-success-failed .sdc-failed-title { margin: 0 0 0.4rem; font-size: 1.15rem; font-weight: 600; color: var(--sdc-ink); }
#sdc-success-failed .sdc-failed-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.75rem 0; }

/* 2026-10-02: plans and edition prices are choices (they open the journey with that choice made); the package step shows what is on the package and keeps the catalogue behind "add or remove". */
.sdc-plan-buy { order: -1; flex: 1 0 100%; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.6rem; }
.sdc-plan-card .sdc-plan-buy .sdc-pick-card-price { order: 0; flex: 0 1 auto; }
.sdc-plan-cta { white-space: nowrap; text-decoration: none; }
.sdc-matrix-choose { display: flex; flex-direction: column; gap: 0.15rem; color: inherit; text-decoration: none; border-radius: 6px; padding: 0.25rem 0.4rem; margin: -0.25rem -0.4rem; }
.sdc-matrix-choose-cta { font-size: 0.78rem; font-weight: 600; color: var(--sdc-green-shade); }
.sdc-matrix-choose:hover, .sdc-matrix-choose:focus-visible { background: var(--sdc-green-tint-10); outline: none; }
.sdc-matrix-choose:focus-visible { box-shadow: 0 0 0 2px var(--sdc-green-shade); }
.sdc-matrix-choose:hover .sdc-matrix-choose-cta { text-decoration: underline; }
.sdc-customise { border: 1px solid var(--sdc-border); border-radius: 10px; padding: 0.75rem 1rem; margin: 1rem 0; background: #fff; }
.sdc-customise > summary { cursor: pointer; font-weight: 600; }
.sdc-customise[open] > summary { margin-bottom: 0.5rem; }
.sdc-door-icon img { display: block; }
.sdc-sep { color: var(--sdc-ink-muted); }
