/* CSP global premium dark system — applies automatically to current and future pages. */
body.page.csp-premium-page:not(.woocommerce-page),
body.blog,
body.search,
body.error404 {
    background: #030507 !important;
    color: #f3f7fa !important;
}

body.page.csp-premium-page:not(.woocommerce-page) #page,
body.page.csp-premium-page:not(.woocommerce-page) #content,
body.page.csp-premium-page:not(.woocommerce-page) .site-content,
body.page.csp-premium-page:not(.woocommerce-page) .content-area,
body.page.csp-premium-page:not(.woocommerce-page) .site-main,
body.page.csp-premium-page:not(.woocommerce-page) main,
body.page.csp-premium-page:not(.woocommerce-page) .page-shell {
    color: #f3f7fa !important;
    background:
        radial-gradient(circle at 13% 5%, rgba(0, 148, 235, .18), transparent 30rem),
        radial-gradient(circle at 89% 26%, rgba(226, 35, 54, .11), transparent 27rem),
        linear-gradient(145deg, #080b0f 0%, #030507 57%, #080b10 100%) !important;
}

body.page.csp-premium-page:not(.woocommerce-page) .page-shell {
    position: relative;
    overflow: hidden;
    min-height: 72vh;
}

body.page.csp-premium-page:not(.woocommerce-page) .page-shell::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset: 0;
    pointer-events: none;
    opacity: .3;
    background-image:
        linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: linear-gradient(to bottom, #000, transparent 88%);
}

body.page.csp-premium-page:not(.woocommerce-page) .page-shell > * {
    position: relative;
    z-index: 1;
}

body.page.csp-premium-page:not(.woocommerce-page) main h1,
body.page.csp-premium-page:not(.woocommerce-page) main h2,
body.page.csp-premium-page:not(.woocommerce-page) main h3,
body.page.csp-premium-page:not(.woocommerce-page) main h4,
body.page.csp-premium-page:not(.woocommerce-page) .entry-title {
    color: #fff !important;
    text-shadow: 0 0 32px rgba(0, 148, 235, .16);
}

body.page.csp-premium-page:not(.woocommerce-page) main p,
body.page.csp-premium-page:not(.woocommerce-page) main li,
body.page.csp-premium-page:not(.woocommerce-page) main address,
body.page.csp-premium-page:not(.woocommerce-page) .entry-content {
    color: #b6c0c9;
}

body.page.csp-premium-page:not(.woocommerce-page) main a:not(.button):not(.elementor-button):not(.ff-btn) {
    color: #66c3fa;
}

body.page.csp-premium-page:not(.woocommerce-page) main hr,
body.page.csp-premium-page:not(.woocommerce-page) main table,
body.page.csp-premium-page:not(.woocommerce-page) main th,
body.page.csp-premium-page:not(.woocommerce-page) main td {
    border-color: #29333c !important;
}

body.page.csp-premium-page:not(.woocommerce-page) main th {
    background: #111820 !important;
    color: #fff !important;
}

body.page.csp-premium-page:not(.woocommerce-page) main td {
    background: rgba(10,14,18,.72) !important;
    color: #c4cdd4 !important;
}

/* Elementor content remains editable while inheriting the site-wide dark canvas. */
body.page.csp-premium-page:not(.woocommerce-page) .elementor,
body.page.csp-premium-page:not(.woocommerce-page) .elementor-location-single,
body.page.csp-premium-page:not(.woocommerce-page) .elementor-widget-container {
    color: inherit;
}

body.page.csp-premium-page:not(.woocommerce-page) .elementor-widget-text-editor,
body.page.csp-premium-page:not(.woocommerce-page) .elementor-widget-paragraph {
    color: #b6c0c9 !important;
}

body.page.csp-premium-page:not(.woocommerce-page) .elementor-button,
body.page.csp-premium-page:not(.woocommerce-page) a.button {
    border: 1px solid rgba(91,194,255,.34) !important;
    border-radius: 4px !important;
    background: linear-gradient(135deg,#138dce,#075487) !important;
    color: #fff !important;
    box-shadow: 0 12px 30px rgba(0,132,210,.25) !important;
}

body.page.csp-premium-page:not(.woocommerce-page) .elementor-button:hover,
body.page.csp-premium-page:not(.woocommerce-page) a.button:hover {
    transform: translateY(-2px);
    background: linear-gradient(135deg,#17a4ef,#0870b5) !important;
    box-shadow: 0 18px 40px rgba(0,151,235,.38) !important;
}

/* Fluent Forms: premium black illuminated quotation panel. */
body:not(.csp-elementor-page) .fluentform {
    position: relative;
    overflow: hidden;
    max-width: 1080px;
    margin: 20px auto 40px !important;
    padding: clamp(24px,4vw,54px) !important;
    border: 1px solid #273845;
    border-radius: 12px;
    background:
        radial-gradient(circle at 8% 0%, rgba(0,151,240,.2), transparent 25rem),
        radial-gradient(circle at 100% 100%, rgba(221,32,52,.1), transparent 24rem),
        linear-gradient(145deg,#111820,#05080b 68%) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.065),
        0 28px 70px rgba(0,0,0,.58),
        0 0 42px rgba(0,135,220,.12);
}

body:not(.csp-elementor-page) .fluentform::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(115deg, transparent 20%, rgba(255,255,255,.04) 43%, transparent 62%);
    transform: translateX(-100%);
    animation: csp-form-shine 7s ease-in-out infinite;
}

@keyframes csp-form-shine {
    0%,55% { transform: translateX(-100%); }
    78%,100% { transform: translateX(100%); }
}

body:not(.csp-elementor-page) .fluentform form,
body:not(.csp-elementor-page) .fluentform .frm-fluent-form {
    position: relative;
    z-index: 1;
}

body:not(.csp-elementor-page) .fluentform .ff-el-input--label label,
body:not(.csp-elementor-page) .fluentform label {
    color: #eef5fa !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .025em;
}

body:not(.csp-elementor-page) .fluentform .ff-el-form-control,
body:not(.csp-elementor-page) .fluentform input:not([type="checkbox"]):not([type="radio"]),
body:not(.csp-elementor-page) .fluentform select,
body:not(.csp-elementor-page) .fluentform textarea {
    min-height: 50px;
    border: 1px solid #334451 !important;
    border-radius: 5px !important;
    outline: 0 !important;
    background: rgba(4,8,12,.84) !important;
    color: #f5f8fa !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.025) !important;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

body:not(.csp-elementor-page) .fluentform textarea.ff-el-form-control,
body:not(.csp-elementor-page) .fluentform textarea {
    min-height: 145px;
}

body:not(.csp-elementor-page) .fluentform .ff-el-form-control:focus,
body:not(.csp-elementor-page) .fluentform input:focus,
body:not(.csp-elementor-page) .fluentform select:focus,
body:not(.csp-elementor-page) .fluentform textarea:focus {
    border-color: #159ee9 !important;
    background: #070d12 !important;
    box-shadow: 0 0 0 3px rgba(0,151,235,.14),0 0 24px rgba(0,151,235,.13) !important;
}

body:not(.csp-elementor-page) .fluentform input::placeholder,
body:not(.csp-elementor-page) .fluentform textarea::placeholder {
    color: #687681 !important;
}

body:not(.csp-elementor-page) .fluentform select option {
    background: #080d12;
    color: #f5f8fa;
}

body:not(.csp-elementor-page) .fluentform .ff-el-help-message,
body:not(.csp-elementor-page) .fluentform .ff-el-form-check-label,
body:not(.csp-elementor-page) .fluentform .ff-el-description {
    color: #929faa !important;
}

body:not(.csp-elementor-page) .fluentform .ff-el-is-error .text-danger,
body:not(.csp-elementor-page) .fluentform .error,
body:not(.csp-elementor-page) .fluentform .ff-el-is-error label {
    color: #ff6571 !important;
}

body:not(.csp-elementor-page) .fluentform .ff-btn-submit,
body:not(.csp-elementor-page) .fluentform button[type="submit"],
body:not(.csp-elementor-page) .fluentform input[type="submit"] {
    min-height: 54px !important;
    padding: 0 30px !important;
    border: 1px solid #3fa7e1 !important;
    border-radius: 4px !important;
    background: linear-gradient(135deg,#138dce,#075487) !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    letter-spacing: .11em !important;
    text-transform: uppercase !important;
    box-shadow: 0 12px 30px rgba(0,132,210,.3) !important;
}

body:not(.csp-elementor-page) .fluentform .ff-btn-submit:hover,
body:not(.csp-elementor-page) .fluentform button[type="submit"]:hover,
body:not(.csp-elementor-page) .fluentform input[type="submit"]:hover {
    transform: translateY(-2px);
    background: linear-gradient(135deg,#17a4ef,#0870b5) !important;
    box-shadow: 0 18px 40px rgba(0,151,235,.44) !important;
}

body:not(.csp-elementor-page) .fluentform .ff-message-success {
    border: 1px solid #218b68 !important;
    border-radius: 5px;
    background: rgba(16,110,80,.16) !important;
    color: #b9f5df !important;
}

@media (prefers-reduced-motion: reduce) {
    body:not(.csp-elementor-page) .fluentform::before { animation: none; }
}

@media (max-width: 700px) {
    body:not(.csp-elementor-page) .fluentform { padding: 24px 18px !important; }
}
