/* Self-contained calculator styles so the widget survives theme changes. */
.shpc-calculator-wrap {
    --shpc-accent: #d64f00;
    --shpc-panel: #f2eeee;
    --shpc-surface: #ffffff;
    --shpc-surface-alt: #f2f9ff;
    --shpc-text: #1d2327;
    --shpc-muted: #5f6773;
    --shpc-border: rgba(20, 24, 31, 0.08);
    --shpc-shadow: none;
    --shpc-radius-lg: 16px;
    --shpc-radius-md: 10px;
    --shpc-radius-sm: 8px;
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--shpc-text);
}

.shpc-calculator-wrap,
.shpc-calculator-wrap *,
.shpc-calculator-wrap *::before,
.shpc-calculator-wrap *::after {
    box-sizing: border-box;
}

.shpc-calculator-wrap a {
    text-decoration: none;
}

.shpc-calculator-wrap p,
.shpc-calculator-wrap h2,
.shpc-calculator-wrap h3,
.shpc-calculator-wrap h4,
.shpc-calculator-wrap h5,
.shpc-calculator-wrap ul {
    margin: 0;
}

.shpc-shell {
    width: min(100%, 1180px);
    margin: 0 auto;
}

.shpc-header {
    margin-bottom: 34px;
    display: none;
}

.shpc-header-copy {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}

.shpc-heading {
    color: var(--shpc-text);
    font-size: clamp(2rem, 2.8vw, 2.8rem);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.04em;
}

.shpc-subheading {
    margin-top: 10px;
    color: var(--shpc-muted);
    font-size: 0.98rem;
    line-height: 1.6;
}

.shpc-layout.calculator-con-inner {
    display: grid;
    grid-template-columns: minmax(0, 1.9fr) minmax(360px, 0.88fr);
    align-items: start;
    gap: 28px;
    padding: 28px 30px;
    border-radius: var(--shpc-radius-lg);
    background: #f4f4f4;
}

.shpc-main,
.shpc-sidebar {
    min-width: 0;
}

.shpc-calculator-wrap .calculator-bg,
.shpc-sidebar-card {
    height: 100%;
    border-radius: var(--shpc-radius-md);
    background: var(--shpc-surface);
    box-shadow: var(--shpc-shadow);
}

.shpc-sidebar-card {
    display: flex;
    flex-direction: column;
}

.container-calc-wrap {
    height: 100%;
}

.container-slides,
.container-calc-wrap .shpc-slides {
    height: 100%;
}

.container-calc-wrap .shpc-slides {
    display: flex;
    height: 430px;
    padding: 0;
    overflow: hidden;
    border-radius: var(--shpc-radius-md);
    background: transparent;
}

.container-calc-wrap .shpc-slide {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    height: 430px;
    list-style: none;
    overflow: hidden;
    cursor: pointer;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-blend-mode: multiply !important;
    transition: flex 500ms ease, filter 250ms ease;
}

.container-calc-wrap .shpc-slide.is-active {
    flex: 8 1 0;
}

.container-calc-wrap .shpc-slide:not(.is-active) {
    filter: saturate(0.92);
}

.container-calc-wrap .shpc-slide .shpc-slide-action {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    height: 100%;
    padding: 14px 0 0;
    color: #ffffff;
}

.container-calc-wrap .shpc-slide.is-active .shpc-slide-action {
    display: none;
}

.shpc-slide-tab-title {
    color: #ffffff;
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1;
    writing-mode: vertical-rl;
    text-orientation: mixed;
}

.container-calc-wrap .shpc-slide-content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 18px;
    width: 100%;
    height: 100%;
    min-height: 0;
    padding: 24px 28px 22px;
    color: #ffffff;
    opacity: 0;
    transform: translateX(20px);
    pointer-events: none;
    transition: opacity 220ms ease, transform 220ms ease;
}

.container-calc-wrap .shpc-slide.is-active .shpc-slide-content {
    opacity: 1;
    transform: translateX(0);
    pointer-events: auto;
}

.shpc-slide-header {
    max-width: 440px;
}

.shpc-plan-title {
    font-size: clamp(2rem, 2.7vw, 3rem);
    font-weight: 800;
    line-height: 1.02;
    color: #ffffff;
}

.calc-title {
    margin-top: 12px;
    max-width: 360px;
    color: rgba(255, 255, 255, 0.98);
    font-size: 0.98rem;
    line-height: 1.45;
}

.calc-from {
    display: inline-block;
    margin-top: 18px;
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
}

.shpc-slide-header h3 {
    margin-top: 3px;
}

.shpc-pill {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    padding: 5px 14px;
    border-radius: 8px;
    background: #000000;
    color: #ffffff;
    font-size: 1rem;
    font-weight: 800;
    box-shadow: none;
}

.shpc-pill small {
    font-size: 0.78rem;
    font-weight: 700;
}

.shpc-slide-footer {
    max-width: 100%;
}

.shpc-price-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.calc-bg.shpc-price-card {
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.85);
    border-radius: var(--shpc-radius-sm);
    background: transparent;
}

.calc-header {
    background: #ffffff;
    color: #111111;
    text-align: center;
}

.calc-header small {
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
}

.calc-header-price {
    padding: 3px;
    text-align: center;
    color: #ffffff;
    background: rgba(0, 0, 0, 0.33);
}

.calc-header-price p {
    font-size: 0.95rem;
    font-weight: 700;
}

.shpc-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 1px solid transparent;
    border-radius: 10px;
    transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.shpc-cta:hover,
.shpc-cta:focus {
    transform: translateY(-1px);
}

.shpc-cta-secondary {
    margin-top: 18px;
    padding: 12px 18px;
    background: var(--shpc-plan-color, rgba(0, 0, 0, 0.35));
    border: none;
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: 700;
    box-shadow: none;
}

.shpc-cta-secondary:hover,
.shpc-cta-secondary:focus {
    background: var(--shpc-plan-color, rgba(0, 0, 0, 0.35));
    box-shadow: inset 0 0 0 999px rgba(0, 0, 0, 0.12);
    color: #ffffff;
}

.shpc-arrow {
    font-size: 1rem;
    line-height: 1;
}

.calculator-container {
    height: 100%;
}

.shpc-sidebar-inner {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 26px 26px 18px;
}

.shpc-sidebar-header {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.calculator-title {
    color: var(--shpc-text);
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.1;
}

.shpc-sidebar-header small {
    color: var(--shpc-muted);
    font-size: 0.92rem;
    line-height: 1.5;
}

.shpc-selected-plan {
    padding: 5px 10px;
    border-radius: 6px;
    color: #ffffff;
    box-shadow: none;
}

.shpc-selected-plan-name {
    color: #ffffff;
    font-size: 0.98rem;
    line-height: 1.25;
}
.shpc-slide-header h3 span.shpc-pill {
    color: #000000;
    background: #fff;
}
.calculator-dependant.shpc-total-row {
    margin-top: 10px;
}
.shpc-band,
.shpc-total-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 2px 10px;
    border-radius: 6px;
    background: #f4f4f4;
}

.calculator-dependant p.title,
.calculator-controls-title,
.shpc-total-label p {
    color: var(--shpc-text);
    font-size: 0.9rem;
    font-weight: 700;
}

.shpc-counter-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.shpc-counter-label {
    min-width: 0;
}

.shpc-counter-label small {
    display: block;
    color: var(--shpc-text);
    font-size: 0.95rem;
    line-height: 1.45;
}

.shpc-counter-controls {
    display: flex;
    align-items: center;
    gap: 5px;
}

.shpc-counter-button {
    width: 20px;
    height: 20px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--shpc-accent);
    color: #ffffff;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    box-shadow: none;
}

.shpc-counter-button:hover,
.shpc-counter-button:focus {
    background: #b94400;
}

.shpc-counter-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 25px;
    height: 25px;
    padding: 0 8px;
    border: 1px solid #e3e3e3;
    border-radius: 8px;
    background: #ffffff;
    color: var(--shpc-text);
    font-size: 0.9rem;
    font-weight: 700;
}

.shpc-total-label,
.shpc-total-value {
    min-width: 0;
}

.shpc-total-value {
    text-align: right;
}

.shpc-total-value p,
.shpc-summary-row strong {
    color: var(--shpc-text);
}

.shpc-total-value p {
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.1;
}

.shpc-total-value small {
    margin-left: 2px;
    font-size: 0.82rem;
}

.shpc-summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.shpc-summary-row small {
    color: var(--shpc-muted);
    font-size: 0.92rem;
    line-height: 1.45;
}

.shpc-summary-row small:last-child {
    text-align: right;
}

.shpc-divider {
    width: 100%;
    margin: 2px 0 0;
    border: 0;
    border-top: 1px solid var(--shpc-border);
}

.shpc-cta-primary {
    width: auto;
    align-self: flex-start;
    margin-top: 2px;
    padding: 11px 16px;
    justify-content: center;
    gap: 10px;
    background: #000000;
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: 800;
    border-radius: 6px;
    box-shadow: none;
}

.shpc-cta-primary:hover,
.shpc-cta-primary:focus {
    background: var(--shpc-accent);
    color: #ffffff;
}

.shpc-compare {
    padding: 4px 26px 24px;
}

.shpc-compare h3 {
    color: var(--shpc-text);
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.55;
}

.shpc-compare a {
    color: var(--shpc-accent);
}

.shpc-compare a:hover,
.shpc-compare a:focus {
    color: #b94400;
}

/* Elementor kit styles target bare elements like h4, h5, a and small.
   Repeat the calculator's key typography/button rules inside the widget scope
   so the plugin wins without leaking outside the calculator. */
.shpc-calculator-wrap .shpc-heading {
    color: var(--shpc-text);
    font-size: clamp(2rem, 2.8vw, 2.8rem);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.04em;
}

.shpc-calculator-wrap .shpc-subheading {
    color: var(--shpc-muted);
    font-size: 0.98rem;
    line-height: 1.6;
}

.shpc-calculator-wrap .shpc-slide-tab-title {
    color: #ffffff;
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1;
}

.shpc-calculator-wrap .shpc-plan-title {
    font-size: 32px;
    font-weight: 800;
    line-height: 1.02;
    color: #ffffff;
}

.shpc-calculator-wrap .calc-title {
    color: rgba(255, 255, 255, 0.98);
    font-size: 0.98rem;
    line-height: 1.45;
}

.shpc-calculator-wrap .calc-from {
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.8rem;
    font-weight: 700;
    text-transform:capitalize;
}

.shpc-calculator-wrap .shpc-pill {
    background: #000000;
    color: #ffffff;
    font-size: 22px;
    font-weight: 800;
}

.shpc-calculator-wrap .shpc-pill small {
    font-size: 0.78rem;
    font-weight: 700;
}

.shpc-calculator-wrap .calc-header small {
    font-size: 11px;
    font-weight: 300;
    text-transform: uppercase;
}

.shpc-calculator-wrap .calc-header-price p {
    font-size: 0.95rem;
    font-weight: 700;
}

.shpc-calculator-wrap .calculator-title {
    color: var(--shpc-text);
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.1;
}

.shpc-calculator-wrap .shpc-sidebar-header small {
    font-size: 13px;
    line-height: 1.5;
    font-weight: 300;
}

.shpc-calculator-wrap .shpc-selected-plan-name {
    color: #ffffff;
    font-size: 0.98rem;
    line-height: 1.25;
}

.shpc-calculator-wrap .calculator-dependant p.title,
.shpc-calculator-wrap .calculator-controls-title,
.shpc-calculator-wrap .shpc-total-label p {
    color: var(--shpc-text);
    font-size: 0.9rem;
    font-weight: 700;
}

.shpc-calculator-wrap .shpc-counter-label small {
    color: var(--shpc-text);
    font-size: 13px;
    font-weight: 300;
    line-height: 1.45;
}

.shpc-calculator-wrap .shpc-counter-count {
    color: var(--shpc-text);
    font-size: 0.9rem;
    font-weight: 700;
}

.shpc-calculator-wrap .shpc-total-value p,
.shpc-calculator-wrap .shpc-summary-row strong {
    color: var(--shpc-text);
}

.shpc-calculator-wrap .shpc-total-value p {
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.1;
}

.shpc-calculator-wrap .shpc-total-value small {
    font-size: 0.82rem;
}

.shpc-calculator-wrap .shpc-summary-row small {
    font-size: 13px;
    font-weight: 300;
    line-height: 1.45;
}

.shpc-calculator-wrap .shpc-cta,
.shpc-calculator-wrap .shpc-cta:visited {
    text-decoration: none;
}

.shpc-calculator-wrap .shpc-cta-secondary,
.shpc-calculator-wrap .shpc-cta-secondary:visited {
    background: var(--shpc-plan-color, rgba(0, 0, 0, 0.35));
    border: none;
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: 700;
}

.shpc-calculator-wrap .shpc-cta-secondary:hover,
.shpc-calculator-wrap .shpc-cta-secondary:focus {
    background: var(--shpc-plan-color, rgba(0, 0, 0, 0.35));
    box-shadow: inset 0 0 0 999px rgba(0, 0, 0, 0.12);
    color: #ffffff;
}

.shpc-calculator-wrap .shpc-cta-primary,
.shpc-calculator-wrap .shpc-cta-primary:visited {
    background: #000000;
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: 800;
}

.shpc-calculator-wrap .shpc-cta-primary:hover,
.shpc-calculator-wrap .shpc-cta-primary:focus {
    background: var(--shpc-accent);
    color: #ffffff;
}

.shpc-calculator-wrap .shpc-compare h3 {
    color: var(--shpc-text);
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.55;
}

.shpc-calculator-wrap .shpc-compare a,
.shpc-calculator-wrap .shpc-compare a:visited {
    color: var(--shpc-accent);
}

.shpc-calculator-wrap .shpc-compare a:hover,
.shpc-calculator-wrap .shpc-compare a:focus {
    color: #b94400;
}

@media (max-width: 1100px) {
    .shpc-layout.calculator-con-inner {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .shpc-shell {
        padding: 12px 0;
    }

    .shpc-layout.calculator-con-inner {
        gap: 18px;
        padding: 16px;
        border-radius: 12px;
    }

    .container-calc-wrap .shpc-slides,
    .container-calc-wrap .shpc-slide-content {
        height: 430px;
    }

    .container-calc-wrap .shpc-slide {
        height: 430px;
    }

    .container-calc-wrap .shpc-slide.is-active {
        flex: 11 1 0;
    }

    .container-calc-wrap .shpc-slide-content {
        padding: 22px 18px;
    }

    .shpc-plan-title {
        font-size: 1.7rem;
    }

    .calc-title {
        font-size: 0.95rem;
    }

    .shpc-price-grid {
        grid-template-columns: 1fr;
    }

    .shpc-sidebar-inner,
    .shpc-compare {
        padding-left: 16px;
        padding-right: 16px;
    }
}

@media (max-width: 575px) {
    .shpc-heading {
        font-size: 1.75rem;
    }

    .container-calc-wrap .shpc-slides,
    .container-calc-wrap .shpc-slide-content {
        height: 430px;
    }

    .container-calc-wrap .shpc-slide.is-active {
        flex: 13 1 0;
    }

    .shpc-slide-tab-title {
        font-size: 0.88rem;
    }

    .shpc-counter-row,
    .shpc-summary-row,
    .shpc-total-row {
        gap: 10px;
    }

    .shpc-total-value p {
        font-size: 1.05rem;
    }
}
