:root {
    --twikz-navy: #050e33;
    --twikz-navy-hover: #142458;
    --twikz-navy-soft: #eef1f7;
    --twikz-text: #20283a;
    --twikz-muted: #667085;
    --twikz-border: #cfd5e1;
    --twikz-surface: #ffffff;
    --twikz-error: #b42318;
}

/* Editing calculator */
form#editing-calculator-form {
    box-sizing: border-box;
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    padding: clamp(24px, 4vw, 38px);
    color: var(--twikz-text);
    background: var(--twikz-surface);
    border: 1px solid #e1e5ed;
    border-radius: 10px;
    box-shadow: 0 12px 34px rgba(5, 14, 51, 0.08);
    font-family: inherit;
    font-size: 15px;
    line-height: 1.5;
    text-align: left;
}

form#editing-calculator-form *,
form#editing-calculator-form *::before,
form#editing-calculator-form *::after {
    box-sizing: border-box;
}

form#editing-calculator-form .twikz-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 20px;
    margin: 0;
}

form#editing-calculator-form .twikz-field {
    min-width: 0;
    margin: 0;
}

form#editing-calculator-form .twikz-field--wide {
    grid-column: 1 / -1;
}

form#editing-calculator-form label {
    display: block;
    margin: 0 0 7px;
    color: var(--twikz-navy);
    font: inherit;
    font-size: 14px;
    font-weight: 650;
    line-height: 1.35;
}

form#editing-calculator-form .twikz-required {
    color: var(--twikz-error);
}

form#editing-calculator-form .twikz-optional {
    color: var(--twikz-muted);
    font-size: 12.5px;
    font-weight: 400;
}

form#editing-calculator-form input[type="text"],
form#editing-calculator-form input[type="email"],
form#editing-calculator-form input[type="number"],
form#editing-calculator-form input[type="file"],
form#editing-calculator-form textarea,
form#editing-calculator-form select {
    display: block;
    width: 100%;
    min-height: 46px;
    margin: 0;
    padding: 10px 12px;
    color: var(--twikz-text);
    background-color: var(--twikz-surface);
    border: 1px solid var(--twikz-border);
    border-radius: 6px;
    box-shadow: none;
    font: inherit;
    font-size: 15px;
    line-height: 1.4;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

form#editing-calculator-form input::placeholder,
form#editing-calculator-form textarea::placeholder {
    color: #9299a8;
    opacity: 1;
}

form#editing-calculator-form input:hover,
form#editing-calculator-form textarea:hover,
form#editing-calculator-form select:hover {
    border-color: #aeb7c7;
}

form#editing-calculator-form input:focus,
form#editing-calculator-form textarea:focus,
form#editing-calculator-form select:focus {
    outline: 0;
    border-color: var(--twikz-navy);
    box-shadow: 0 0 0 3px rgba(5, 14, 51, 0.14);
}

form#editing-calculator-form textarea {
    min-height: 116px;
    resize: vertical;
}

/* One deliberate arrow replaces both the theme arrow and the browser arrow. */
form#editing-calculator-form select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 42px;
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.25 6 6.25l5-5' fill='none' stroke='%23050e33' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 12px 8px;
}

form#editing-calculator-form select::-ms-expand {
    display: none;
}

form#editing-calculator-form select option[disabled] {
    color: #8c94a4;
}

form#editing-calculator-form input[type="file"] {
    min-height: 48px;
    padding: 5px;
    color: var(--twikz-muted);
    cursor: pointer;
}

form#editing-calculator-form input[type="file"]::file-selector-button {
    min-height: 36px;
    margin-right: 10px;
    padding: 7px 12px;
    color: var(--twikz-navy);
    background: var(--twikz-navy-soft);
    border: 0;
    border-radius: 4px;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

form#editing-calculator-form input[type="file"]::file-selector-button:hover {
    background: #e1e6f0;
}

form#editing-calculator-form .twikz-help {
    display: block;
    margin: 6px 0 0;
    color: var(--twikz-muted);
    font-size: 12.5px;
    line-height: 1.45;
}

form#editing-calculator-form .twikz-price-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    width: 100%;
    margin: 24px 0 0;
    padding: 14px 16px;
    text-align: left;
    background: var(--twikz-navy-soft);
    border-left: 3px solid var(--twikz-navy);
    border-radius: 0 6px 6px 0;
}

form#editing-calculator-form .twikz-price-label {
    color: var(--twikz-navy);
    font-size: 14px;
    font-weight: 650;
}

form#editing-calculator-form .twikz-price-total {
    flex: 0 0 auto;
    color: var(--twikz-navy);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}

form#editing-calculator-form #total_cost[aria-busy="true"] {
    opacity: 0.55;
}

form#editing-calculator-form #editing-calculator-message {
    min-height: 0;
    margin: 12px 0 0;
    color: var(--twikz-navy);
    font-size: 13.5px;
    line-height: 1.45;
}

form#editing-calculator-form #editing-calculator-message:empty {
    display: none;
}

form#editing-calculator-form #editing-calculator-message.is-error {
    color: var(--twikz-error);
}

form#editing-calculator-form .twikz-actions {
    display: flex;
    justify-content: flex-start;
    margin: 20px 0 0;
}

form#editing-calculator-form button[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 176px;
    min-height: 46px;
    margin: 0;
    padding: 11px 22px;
    color: #ffffff;
    background: var(--twikz-navy);
    border: 1px solid var(--twikz-navy);
    border-radius: 6px;
    box-shadow: 0 5px 14px rgba(5, 14, 51, 0.16);
    font: inherit;
    font-size: 15px;
    font-weight: 650;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

form#editing-calculator-form button[type="submit"]:hover {
    color: #ffffff;
    background: var(--twikz-navy-hover);
    border-color: var(--twikz-navy-hover);
    box-shadow: 0 7px 18px rgba(5, 14, 51, 0.2);
    transform: translateY(-1px);
}

form#editing-calculator-form button[type="submit"]:focus-visible {
    outline: 3px solid rgba(5, 14, 51, 0.22);
    outline-offset: 3px;
}

form#editing-calculator-form button[type="submit"]:disabled {
    opacity: 0.62;
    cursor: wait;
    transform: none;
}

/*
 * Keep the principal WooCommerce journey buttons in the same navy as the
 * Twikz wordmark. These selectors are deliberately limited to cart, checkout
 * and the order-confirmation return button.
 */
body.woocommerce-cart .checkout-button,
body.woocommerce-cart .wc-block-cart__submit-button,
body.twikz-cart-page .checkout-button,
body.twikz-cart-page .wc-block-cart__submit-button,
body.woocommerce-checkout #place_order,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button,
body.woocommerce-order-received a.twikz-return-home {
    min-height: 46px;
    padding: 11px 22px !important;
    color: #ffffff !important;
    background-color: var(--twikz-navy) !important;
    border-color: var(--twikz-navy) !important;
    border-radius: 6px !important;
    box-shadow: none !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 650 !important;
    line-height: 1.25 !important;
    text-decoration: none !important;
    transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

body.woocommerce-cart .checkout-button:hover,
body.woocommerce-cart .wc-block-cart__submit-button:hover,
body.twikz-cart-page .checkout-button:hover,
body.twikz-cart-page .wc-block-cart__submit-button:hover,
body.woocommerce-checkout #place_order:hover,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
body.woocommerce-order-received a.twikz-return-home:hover {
    color: #ffffff !important;
    background-color: var(--twikz-navy-hover) !important;
    border-color: var(--twikz-navy-hover) !important;
    transform: translateY(-1px);
}

body.woocommerce-cart .checkout-button:focus-visible,
body.woocommerce-cart .wc-block-cart__submit-button:focus-visible,
body.twikz-cart-page .checkout-button:focus-visible,
body.twikz-cart-page .wc-block-cart__submit-button:focus-visible,
body.woocommerce-checkout #place_order:focus-visible,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:focus-visible,
body.woocommerce-order-received a.twikz-return-home:focus-visible {
    outline: 3px solid rgba(5, 14, 51, 0.22) !important;
    outline-offset: 3px !important;
}

body.woocommerce-cart input[type="checkbox"],
body.woocommerce-cart input[type="radio"],
body.twikz-cart-page input[type="checkbox"],
body.twikz-cart-page input[type="radio"],
body.woocommerce-checkout input[type="checkbox"],
body.woocommerce-checkout input[type="radio"] {
    accent-color: var(--twikz-navy);
}

body.woocommerce-checkout .wc-block-components-radio-control__input:checked {
    border-color: var(--twikz-navy) !important;
}

body.woocommerce-checkout .wc-block-components-radio-control__input:checked::before {
    background: var(--twikz-navy) !important;
}

body.woocommerce-checkout .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
    box-shadow: inset 0 0 0 1px var(--twikz-navy) !important;
}

body.woocommerce-checkout .wc-block-components-checkbox__input:checked {
    background-color: var(--twikz-navy) !important;
    border-color: var(--twikz-navy) !important;
    color: #ffffff !important;
}

/*
 * WooCommerce Blocks draws the check mark as a separate SVG. Its colour does
 * not follow the checkbox background, so set both currentColor and the path
 * stroke explicitly for a crisp white tick.
 */
body.woocommerce-checkout .wc-block-components-checkbox__mark {
    color: #ffffff !important;
    fill: none !important;
}

body.woocommerce-checkout .wc-block-components-checkbox__mark path {
    stroke: #ffffff !important;
}

body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input:focus {
    border-color: var(--twikz-navy) !important;
    box-shadow: 0 0 0 1px var(--twikz-navy) !important;
}

/*
 * The PayPal merchant connection stays active behind the scenes, but shoppers
 * see only the separate Advanced Card Processing gateway.
 */
body.twikz-hide-paypal-wallet .payment_method_ppcp-gateway,
body.twikz-hide-paypal-wallet .twikz-paypal-wallet-option {
    display: none !important;
}

.twikz-paypal-processing-note {
    display: block;
    margin: 12px 0 0 1px;
    color: var(--twikz-muted);
    font-family: inherit;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.4;
}

img.twikz-card-logo {
    display: inline-block !important;
    width: auto !important;
    height: 18px !important;
    max-width: 64px !important;
    margin: 0 2px !important;
    object-fit: contain;
    vertical-align: middle;
}

.twikz-local-card-logos {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 4px;
    margin-left: 12px;
    vertical-align: middle;
}

/*
 * If PayPal supplies a broken icon URL, suppress only that broken native
 * image. Embedded repaired and fallback card marks retain the
 * .twikz-card-logo class and remain visible.
 */
body.twikz-card-gateway-ready .ppcp-card-icon:not(.twikz-card-logo) {
    display: none !important;
}

/*
 * PayPal builds its three PCI-hosted fields in separate frames. Reserve the
 * finished form's space and reveal the fields together, so customers see one
 * calm loading state instead of Card number, Expiry and CVV appearing one at
 * a time. The JavaScript removes this state as soon as all three frames exist,
 * with a fail-safe timeout if PayPal changes its markup.
 */
body.twikz-checkout-payment-pending
    .wc-block-components-radio-control__option:has(input[value="ppcp-credit-card-gateway"])
    .wc-block-components-radio-control-accordion-content,
body.twikz-checkout-payment-pending
    li.wc_payment_method:has(input[value="ppcp-credit-card-gateway"])
    .payment_box,
.twikz-card-fields-loading .wc-block-components-radio-control-accordion-content,
.twikz-card-fields-loading .payment_box {
    position: relative;
    min-height: 210px;
}

body.twikz-checkout-payment-pending
    .wc-block-components-radio-control__option:has(input[value="ppcp-credit-card-gateway"])
    .wc-block-components-radio-control-accordion-content > *,
body.twikz-checkout-payment-pending
    li.wc_payment_method:has(input[value="ppcp-credit-card-gateway"])
    .payment_box > *,
.twikz-card-fields-loading .wc-block-components-radio-control-accordion-content > *,
.twikz-card-fields-loading .payment_box > * {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

body.twikz-checkout-payment-pending
    .wc-block-components-radio-control__option:has(input[value="ppcp-credit-card-gateway"])
    .wc-block-components-radio-control-accordion-content::before,
body.twikz-checkout-payment-pending
    li.wc_payment_method:has(input[value="ppcp-credit-card-gateway"])
    .payment_box::before,
.twikz-card-fields-loading .wc-block-components-radio-control-accordion-content::before,
.twikz-card-fields-loading .payment_box::before {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;
    width: max-content;
    max-width: calc(100% - 32px);
    color: var(--twikz-muted);
    content: "Loading secure card fields…";
    font-family: inherit;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.4;
    text-align: center;
    transform: translate(-50%, -50%);
}

/*
 * Let the theme and WooCommerce own their outer page/container geometry.
 * Previous versions forced the Cart block and classic form to 1500px, which
 * could expand the page grid and make the header/logo hierarchy look wrong.
 * Only the Cart title scale is normalized here; no logo selector is touched.
 */
body.twikz-cart-page h1.entry-title,
body.twikz-cart-page h1.wp-block-post-title,
body.twikz-cart-page h1.wp-block-heading.alignwide {
    font-size: clamp(34px, 3vw, 42px) !important;
    line-height: 1.15 !important;
}

/* Retire every historical two-link navigation row. */
body.twikz-cart-page .twikz-cart-checkout-nav,
body.twikz-cart-page .twikz-cart-nav,
body.woocommerce-checkout .twikz-cart-checkout-nav,
body.woocommerce-checkout .twikz-cart-nav,
body.woocommerce-order-received .twikz-cart-checkout-nav,
body.woocommerce-order-received .twikz-cart-nav {
    display: none !important;
}

/*
 * The cart gets one deliberately simple, genuine link. It has no arrow and no
 * Home companion. PHP places it after the complete cart, outside
 * WooCommerce's internal items/totals grid.
 */
body.twikz-cart-page .twikz-calculator-return {
    display: block;
    clear: both;
    box-sizing: border-box;
    width: auto;
    max-width: none;
    margin: 24px 0 0;
    padding: 0;
    text-align: left;
}

body.twikz-cart-page .twikz-calculator-return a {
    color: var(--twikz-navy) !important;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

body.twikz-cart-page .twikz-calculator-return a:hover,
body.twikz-cart-page .twikz-calculator-return a:focus {
    color: var(--twikz-navy-hover) !important;
    text-decoration-thickness: 2px;
}

/* Remove classic empty-cart controls that lead away from this service flow. */
body.twikz-cart-page .return-to-shop {
    display: none !important;
}

body.twikz-cart-page .cart-empty.woocommerce-info::before {
    content: none !important;
    display: none !important;
}

body.twikz-cart-page .cart-empty.woocommerce-info {
    padding-left: 20px !important;
}

/*
 * WooCommerce's empty Checkout component is client-rendered and includes a
 * generic Browse store action. Conceal that native action from first paint;
 * the script inserts one Twikz calculator action immediately after the
 * explanatory text.
 */
body.woocommerce-checkout .wc-block-checkout-empty .wp-block-button {
    display: none !important;
}

body.woocommerce-checkout a.twikz-empty-checkout-action {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 42px;
    margin: 10px auto 0;
    padding: 10px 20px !important;
    color: #ffffff !important;
    background: var(--twikz-navy) !important;
    border: 1px solid var(--twikz-navy) !important;
    border-radius: 4px !important;
    box-shadow: none !important;
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 650 !important;
    line-height: 1.4 !important;
    text-decoration: none !important;
}

body.woocommerce-checkout a.twikz-empty-checkout-action:hover,
body.woocommerce-checkout a.twikz-empty-checkout-action:focus {
    color: #ffffff !important;
    background: var(--twikz-navy-hover) !important;
    border-color: var(--twikz-navy-hover) !important;
}

body.woocommerce-checkout a.twikz-empty-checkout-action:focus-visible {
    outline: 3px solid rgba(5, 14, 51, 0.22) !important;
    outline-offset: 3px !important;
}

/* JavaScript measures the live form edge and applies this small title shift. */
body.woocommerce-checkout:not(.woocommerce-order-received) h1.entry-title,
body.woocommerce-checkout:not(.woocommerce-order-received) .wp-block-post-title {
    box-sizing: border-box;
    padding-right: 0 !important;
    padding-left: 0 !important;
    text-align: left !important;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .twikz-checkout-title-aligned {
    transform: translateX(var(--twikz-checkout-title-shift, 0));
}

/*
 * Some themes output WooCommerce's notice icon character but omit the matching
 * icon font. That is the empty square shown before the success message.
 */
body.woocommerce-order-received .woocommerce-thankyou-order-received::before,
body.woocommerce-order-received .woocommerce-notice--success::before {
    content: none !important;
    display: none !important;
}

body.woocommerce-order-received .woocommerce-thankyou-order-received {
    padding-left: 20px !important;
}

body.woocommerce-order-received .twikz-return-home-wrap {
    margin-top: 32px;
    text-align: left;
}

body.woocommerce-order-received a.twikz-return-home {
    color: var(--twikz-navy) !important;
    background: transparent !important;
    border: 1px solid var(--twikz-navy) !important;
    box-shadow: none !important;
}

body.woocommerce-order-received a.twikz-return-home:hover,
body.woocommerce-order-received a.twikz-return-home:focus {
    color: #ffffff !important;
    background: var(--twikz-navy) !important;
    border-color: var(--twikz-navy) !important;
}

@media (max-width: 640px) {
    form#editing-calculator-form {
        padding: 22px 18px;
        border-radius: 8px;
    }

    form#editing-calculator-form .twikz-form-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    form#editing-calculator-form .twikz-field--wide {
        grid-column: auto;
    }

    form#editing-calculator-form input[type="text"],
    form#editing-calculator-form input[type="email"],
    form#editing-calculator-form input[type="number"],
    form#editing-calculator-form input[type="file"],
    form#editing-calculator-form textarea,
    form#editing-calculator-form select {
        font-size: 16px;
    }

    form#editing-calculator-form .twikz-actions,
    form#editing-calculator-form button[type="submit"] {
        width: 100%;
    }

    form#editing-calculator-form .twikz-price-total {
        font-size: 19px;
    }

    body.twikz-cart-page .twikz-calculator-return {
        margin-top: 20px;
    }
}

@media (prefers-reduced-motion: reduce) {
    form#editing-calculator-form input,
    form#editing-calculator-form textarea,
    form#editing-calculator-form select,
    form#editing-calculator-form button[type="submit"],
    body.woocommerce-cart .checkout-button,
    body.woocommerce-cart .wc-block-cart__submit-button,
    body.twikz-cart-page .checkout-button,
    body.twikz-cart-page .wc-block-cart__submit-button,
    body.woocommerce-checkout #place_order,
    body.woocommerce-checkout .wc-block-components-checkout-place-order-button,
    body.woocommerce-checkout a.twikz-empty-checkout-action,
    body.woocommerce-order-received a.twikz-return-home {
        transition: none;
    }
}


/* Executive CV / Résumé fixed-price form */
form#executive-cv-form {
    box-sizing: border-box;
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    padding: clamp(24px, 4vw, 38px);
    color: var(--twikz-text);
    background: var(--twikz-surface);
    border: 1px solid #e1e5ed;
    border-radius: 10px;
    box-shadow: 0 12px 34px rgba(5, 14, 51, 0.08);
    font-family: inherit;
    font-size: 15px;
    line-height: 1.5;
    text-align: left;
}

form#executive-cv-form *,
form#executive-cv-form *::before,
form#executive-cv-form *::after {
    box-sizing: border-box;
}

form#executive-cv-form .twikz-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 20px;
    margin: 0;
}

form#executive-cv-form .twikz-field {
    min-width: 0;
    margin: 0;
}

form#executive-cv-form .twikz-field--wide {
    grid-column: 1 / -1;
}

form#executive-cv-form label {
    display: block;
    margin: 0 0 7px;
    color: var(--twikz-navy);
    font: inherit;
    font-size: 14px;
    font-weight: 650;
    line-height: 1.35;
}

form#executive-cv-form .twikz-required {
    color: var(--twikz-error);
}

form#executive-cv-form .twikz-optional {
    color: var(--twikz-muted);
    font-size: 12.5px;
    font-weight: 400;
}

form#executive-cv-form input[type="text"],
form#executive-cv-form input[type="email"],
form#executive-cv-form input[type="file"],
form#executive-cv-form textarea {
    display: block;
    width: 100%;
    min-height: 46px;
    margin: 0;
    padding: 10px 12px;
    color: var(--twikz-text);
    background-color: var(--twikz-surface);
    border: 1px solid var(--twikz-border);
    border-radius: 6px;
    box-shadow: none;
    font: inherit;
    font-size: 15px;
    line-height: 1.4;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

form#executive-cv-form input::placeholder,
form#executive-cv-form textarea::placeholder {
    color: #9299a8;
    opacity: 1;
}

form#executive-cv-form input:hover,
form#executive-cv-form textarea:hover {
    border-color: #aeb7c7;
}

form#executive-cv-form input:focus,
form#executive-cv-form textarea:focus {
    outline: 0;
    border-color: var(--twikz-navy);
    box-shadow: 0 0 0 3px rgba(5, 14, 51, 0.14);
}

form#executive-cv-form textarea {
    min-height: 116px;
    resize: vertical;
}

form#executive-cv-form input[type="file"] {
    min-height: 48px;
    padding: 5px;
    color: var(--twikz-muted);
    cursor: pointer;
}

form#executive-cv-form input[type="file"]::file-selector-button {
    min-height: 36px;
    margin-right: 10px;
    padding: 7px 12px;
    color: var(--twikz-navy);
    background: var(--twikz-navy-soft);
    border: 0;
    border-radius: 4px;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

form#executive-cv-form input[type="file"]::file-selector-button:hover {
    background: #e1e6f0;
}

form#executive-cv-form .twikz-help {
    display: block;
    margin: 6px 0 0;
    color: var(--twikz-muted);
    font-size: 12.5px;
    line-height: 1.45;
}

form#executive-cv-form .twikz-price-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    width: 100%;
    margin: 24px 0 0;
    padding: 14px 16px;
    text-align: left;
    background: var(--twikz-navy-soft);
    border-left: 3px solid var(--twikz-navy);
    border-radius: 0 6px 6px 0;
}

form#executive-cv-form .twikz-price-label {
    color: var(--twikz-navy);
    font-size: 14px;
    font-weight: 650;
}

form#executive-cv-form .twikz-price-total {
    flex: 0 0 auto;
    color: var(--twikz-navy);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}

form#executive-cv-form .twikz-price-total .woocommerce-Price-amount,
form#executive-cv-form .twikz-price-total .woocommerce-Price-currencySymbol {
    color: inherit;
    font: inherit;
}

form#executive-cv-form #executive-cv-message {
    min-height: 0;
    margin: 12px 0 0;
    color: var(--twikz-navy);
    font-size: 13.5px;
    line-height: 1.45;
}

form#executive-cv-form #executive-cv-message:empty {
    display: none;
}

form#executive-cv-form #executive-cv-message.is-error {
    color: var(--twikz-error);
}

form#executive-cv-form .twikz-actions {
    display: flex;
    justify-content: flex-start;
    margin: 20px 0 0;
}

form#executive-cv-form button[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 176px;
    min-height: 46px;
    margin: 0;
    padding: 11px 22px;
    color: #ffffff;
    background: var(--twikz-navy);
    border: 1px solid var(--twikz-navy);
    border-radius: 6px;
    box-shadow: 0 5px 14px rgba(5, 14, 51, 0.16);
    font: inherit;
    font-size: 15px;
    font-weight: 650;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

form#executive-cv-form button[type="submit"]:hover {
    color: #ffffff;
    background: var(--twikz-navy-hover);
    border-color: var(--twikz-navy-hover);
    box-shadow: 0 7px 18px rgba(5, 14, 51, 0.2);
    transform: translateY(-1px);
}

form#executive-cv-form button[type="submit"]:focus-visible {
    outline: 3px solid rgba(5, 14, 51, 0.22);
    outline-offset: 3px;
}

form#executive-cv-form button[type="submit"]:disabled {
    opacity: 0.62;
    cursor: wait;
    transform: none;
}

.twikz-form-unavailable {
    color: var(--twikz-error);
}

@media (max-width: 640px) {
    form#executive-cv-form {
        padding: 22px 18px;
        border-radius: 8px;
    }

    form#executive-cv-form .twikz-form-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    form#executive-cv-form .twikz-field--wide {
        grid-column: auto;
    }

    form#executive-cv-form input[type="text"],
    form#executive-cv-form input[type="email"],
    form#executive-cv-form input[type="file"],
    form#executive-cv-form textarea {
        font-size: 16px;
    }

    form#executive-cv-form .twikz-actions,
    form#executive-cv-form button[type="submit"] {
        width: 100%;
    }

    form#executive-cv-form .twikz-price-summary {
        align-items: flex-start;
    }

    form#executive-cv-form .twikz-price-total {
        font-size: 19px;
    }
}

@media (prefers-reduced-motion: reduce) {
    form#executive-cv-form input,
    form#executive-cv-form textarea,
    form#executive-cv-form button[type="submit"] {
        transition: none;
    }
}
