/* =========================================================
   ALCORA REFORMAS
   FORMULARIO PRESUPUESTO ONLINE V2
   VERSIÓN VISUAL REFINADA
   ========================================================= */


/* =========================================================
   VARIABLES
   ========================================================= */

.alcora-budget-form {

    --alcora-primary: #4a403b;
    --alcora-primary-hover: #332c28;

    --alcora-accent: #a97858;
    --alcora-accent-soft: #f5ece6;

    --alcora-text: #4c4c4c;
    --alcora-heading: #403833;
    --alcora-muted: #756f6b;

    --alcora-border: #b8aca5;
    --alcora-border-dark: #92847c;

    --alcora-bg: #ffffff;
    --alcora-bg-soft: #f7f3f0;

    --alcora-form-bg: #f7f4f1;

    --alcora-error: #b42318;
    --alcora-error-bg: #fff2f0;

    --alcora-radius: 7px;
    --alcora-form-radius: 14px;

    width: 100%;
    max-width: 100%;

    box-sizing: border-box;

    color: var(--alcora-text);

    background: var(--alcora-form-bg);

    border: 1px solid #e2d9d3;

    border-radius: var(--alcora-form-radius);

    padding: 34px 38px;

    box-shadow:
        0 10px 35px rgba(74, 64, 59, 0.06);

}


/* =========================================================
   COLUMNAS
   ========================================================= */

.alcora-budget-form .columns_wrap {

    display: flex;

    flex-wrap: wrap;

    gap: 24px;

    width: 100%;

    margin: 0 0 8px 0 !important;

}


.alcora-budget-form .column-1_1 {

    float: none !important;

    width: auto !important;

    flex: 1 1 100%;

    min-width: 0;

}


.alcora-budget-form .column-1_2 {

    float: none !important;

    width: auto !important;

    flex: 1 1 calc(50% - 12px);

    min-width: 0;

}


.alcora-budget-form .column-1_3 {

    float: none !important;

    width: auto !important;

    flex: 1 1 calc(33.333% - 16px);

    min-width: 0;

}


/* =========================================================
   INTRO
   ========================================================= */

.alcora-form-intro {

    margin-bottom: 24px;

}


.alcora-main-caption {

    display: block;

    margin-bottom: 8px;

}


/* =========================================================
   LABELS
   ========================================================= */

.alcora-budget-form .caption-form {

    display: block;

    margin-bottom: 7px;

    color: var(--alcora-heading);

    font-size: 16px;

    line-height: 1.4;

    font-weight: 600;

}


.alcora-budget-form .subtitle-form {

    display: block;

    margin-bottom: 9px;

    color: var(--alcora-muted);

    font-size: 14px;

    line-height: 1.55;

}


.alcora-budget-form .form-section-title {

    margin-bottom: 10px;

    color: var(--alcora-heading);

    font-size: 23px;

    line-height: 1.25;

    font-weight: 600;

}


.alcora-step-heading {

    margin-bottom: 30px;

}


/* =========================================================
   PROGRESO
   ========================================================= */

.alcora-progress {

    margin: 24px 0 38px;

}


.alcora-progress-info {

    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-bottom: 9px;

    font-size: 13px;

    color: var(--alcora-muted);

}


.alcora-progress-label {

    font-weight: 600;

    font-size: 32px;

    color: var(--alcora-heading);

}


.alcora-progress-percent {

    font-weight: 600;

    color: var(--alcora-muted);

}


.alcora-progress-track {

    width: 100%;

    height: 7px;

    overflow: hidden;

    border-radius: 999px;

    background: #ded5cf;

}


.alcora-progress-bar {

    display: block;

    width: 0;

    height: 100%;

    border-radius: 999px;

    background: var(--alcora-accent);

    transition: width 0.35s ease;

}


/* =========================================================
   PASOS
   ========================================================= */

.alcora-budget-form .alcora-step {

    display: none;

}


.alcora-budget-form:not(.is-multistep-ready)
.alcora-step[data-step="vivienda"] {

    display: block;

}


.alcora-budget-form.is-multistep-ready
.alcora-step {

    display: none !important;

}


.alcora-budget-form.is-multistep-ready
.alcora-step.is-active {

    display: block !important;

    animation: alcoraStepIn 0.25s ease;

}


@keyframes alcoraStepIn {

    from {

        opacity: 0;

        transform: translateY(7px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}


/* =========================================================
   CAMPOS
   ========================================================= */

.alcora-budget-form .field-wrap {

    position: relative;

    margin-top: 8px;

    margin-bottom: 26px;

}


.alcora-budget-form input[type="text"],
.alcora-budget-form input[type="email"],
.alcora-budget-form input[type="tel"],
.alcora-budget-form input[type="number"],
.alcora-budget-form input[type="date"],
.alcora-budget-form select,
.alcora-budget-form textarea {

    width: 100% !important;

    max-width: 100% !important;

    box-sizing: border-box;

    padding: 13px 15px;

    border:
        1.5px solid
        var(--alcora-border) !important;

    border-radius:
        var(--alcora-radius) !important;

    background:
        #ffffff !important;

    color:
        var(--alcora-text);

    font-family:
        inherit;

    font-size:
        14px;

    line-height:
        1.4;

    box-shadow:
        0 1px 2px
        rgba(74, 64, 59, 0.04) !important;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background 0.2s ease;

}


.alcora-budget-form input[type="text"],
.alcora-budget-form input[type="email"],
.alcora-budget-form input[type="tel"],
.alcora-budget-form input[type="number"],
.alcora-budget-form input[type="date"],
.alcora-budget-form select {

    min-height: 48px;

}


.alcora-budget-form textarea {

    min-height: 120px;

    resize: vertical;

}


/* =========================================================
   HOVER DE CAMPOS
   ========================================================= */

.alcora-budget-form input[type="text"]:hover,
.alcora-budget-form input[type="email"]:hover,
.alcora-budget-form input[type="tel"]:hover,
.alcora-budget-form input[type="number"]:hover,
.alcora-budget-form input[type="date"]:hover,
.alcora-budget-form select:hover,
.alcora-budget-form textarea:hover {

    border-color:
        var(--alcora-border-dark) !important;

}


/* =========================================================
   FOCUS DE CAMPOS
   ========================================================= */

.alcora-budget-form input:focus,
.alcora-budget-form select:focus,
.alcora-budget-form textarea:focus {

    outline: none !important;

    border-color:
        var(--alcora-accent) !important;

    background:
        #ffffff !important;

    box-shadow:
        0 0 0 3px
        rgba(169, 120, 88, 0.14),
        0 2px 6px
        rgba(74, 64, 59, 0.06) !important;

}


/* =========================================================
   PLACEHOLDER
   ========================================================= */

.alcora-budget-form ::placeholder {

    color: #938d88;

    opacity: 1;

}


/* =========================================================
   SELECT
   ========================================================= */

.alcora-budget-form select {

    cursor: pointer;

}


/* =========================================================
   SUFIJO m²
   ========================================================= */

.alcora-budget-form .field-with-suffix {

    position: relative;

}


.alcora-budget-form .field-with-suffix input {

    padding-right: 55px !important;

}


.alcora-budget-form .field-suffix {

    position: absolute;

    right: 17px;

    top: 50%;

    transform: translateY(-50%);

    color: var(--alcora-muted);

    font-size: 14px;

    pointer-events: none;

}


/* =========================================================
   RADIO / CHECKBOX
   ========================================================= */

.alcora-budget-form
.options-grid
.wpcf7-form-control {

    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px;

    width: 100%;

}


.alcora-budget-form
.options-grid-services
.wpcf7-form-control {

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

}


.alcora-budget-form
.options-grid-main
.wpcf7-form-control {

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

}


.alcora-budget-form
.options-grid-compact
.wpcf7-form-control {

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

}


.alcora-budget-form
.wpcf7-list-item {

    margin: 0 !important;

}


.alcora-budget-form
.options-grid
.wpcf7-list-item label {

    display: flex;

    align-items: flex-start;

    gap: 9px;

    height: 100%;

    box-sizing: border-box;

    padding: 13px 14px;

    border:
        1.5px solid
        var(--alcora-border);

    border-radius:
        var(--alcora-radius);

    background:
        #ffffff;

    box-shadow:
        0 1px 2px
        rgba(74, 64, 59, 0.04);

    cursor: pointer;

    transition:
        border-color 0.2s ease,
        background 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.15s ease;

}


/* =========================================================
   HOVER RADIO / CHECKBOX
   ========================================================= */

.alcora-budget-form
.options-grid
.wpcf7-list-item label:hover {

    border-color:
        var(--alcora-accent);

    background:
        #fbf8f6;

    box-shadow:
        0 3px 10px
        rgba(74, 64, 59, 0.06);

}


/* =========================================================
   INPUT RADIO / CHECKBOX
   ========================================================= */

.alcora-budget-form
.options-grid
input[type="radio"],

.alcora-budget-form
.options-grid
input[type="checkbox"] {

    width: 17px;

    min-width: 17px;

    height: 17px;

    margin: 2px 0 0 0;

    accent-color:
        var(--alcora-accent);

}


/* =========================================================
   TEXTO SELECCIONADO
   ========================================================= */

.alcora-budget-form
.options-grid
input:checked +
.wpcf7-list-item-label {

    color:
        var(--alcora-primary);

    font-weight: 600;

}


/* =========================================================
   TARJETA SELECCIONADA
   ========================================================= */

.alcora-budget-form
.options-grid
.wpcf7-list-item label:has(input:checked) {

    border-color:
        var(--alcora-accent);

    background:
        var(--alcora-accent-soft);

    box-shadow:
        inset 0 0 0 1px
        var(--alcora-accent),
        0 2px 7px
        rgba(74, 64, 59, 0.05);

}


/* =========================================================
   CONDICIONALES
   ========================================================= */

.alcora-budget-form
.alcora-conditional {

    display: none !important;

}


.alcora-budget-form
.alcora-conditional.is-condition-hidden {

    display: none !important;

}


.alcora-budget-form
.alcora-conditional.is-condition-visible {

    display: block !important;

}


.alcora-budget-form
.column-1_2.alcora-conditional.is-condition-visible,

.alcora-budget-form
.column-1_3.alcora-conditional.is-condition-visible {

    display: block !important;

}


/* =========================================================
   SUBSECCIONES
   ========================================================= */

.alcora-subsection {

    margin: 15px 0 24px;

    padding: 11px 0;

    border-bottom:
        1.5px solid
        var(--alcora-border);

}


.alcora-budget-form
.alcora-subsection-title {

    margin: 0;

    color:
        var(--alcora-heading);

    font-size: 20px;

    font-weight: 600;

}


/* =========================================================
   ARCHIVOS
   ========================================================= */

.alcora-budget-form
input[type="file"] {

    width: 100%;

    box-sizing: border-box;

    padding: 12px;

    border:
        1.5px dashed
        var(--alcora-border-dark);

    border-radius:
        var(--alcora-radius);

    background:
        #ffffff;

    box-shadow:
        0 1px 2px
        rgba(74, 64, 59, 0.03);

    transition:
        border-color 0.2s ease,
        background 0.2s ease;

}


.alcora-budget-form
input[type="file"]:hover {

    border-color:
        var(--alcora-accent);

    background:
        #fbf8f6;

}


.alcora-budget-form
.alcora-files
.wpcf7-form-control-wrap {

    display: block;

    margin-bottom: 9px;

}


/* =========================================================
   PRIVACIDAD
   ========================================================= */

.alcora-budget-form
.wpcf7-acceptance label {

    display: flex;

    align-items: flex-start;

    gap: 8px;

}


.alcora-budget-form
.wpcf7-acceptance input[type="checkbox"] {

    flex: 0 0 auto;

    margin-top: 4px;

    accent-color:
        var(--alcora-accent);

}


.alcora-budget-form
.form-privacy {

    margin-top: 10px;

}


/* =========================================================
   ERRORES
   ========================================================= */

.alcora-budget-form
.alcora-step-error {

    margin: 18px 0;

    padding: 12px 15px;

    border-left:
        3px solid
        var(--alcora-error);

    border-radius:
        4px;

    background:
        var(--alcora-error-bg);

    color:
        var(--alcora-error);

    font-size: 14px;

    line-height: 1.5;

}


.alcora-budget-form
.alcora-step-error[hidden] {

    display: none !important;

}


.alcora-budget-form
.alcora-step-error:not([hidden]) {

    display: block !important;

}


.alcora-budget-form
.has-error input,

.alcora-budget-form
.has-error select,

.alcora-budget-form
.has-error textarea {

    border-color:
        var(--alcora-error) !important;

    box-shadow:
        0 0 0 2px
        rgba(180, 35, 24, 0.08) !important;

}


.alcora-budget-form
.options-grid.has-error
.wpcf7-list-item label,

.alcora-budget-form
.alcora-required-group.has-error
.wpcf7-list-item label {

    border-color:
        var(--alcora-error) !important;

}


.alcora-budget-form
[data-required-visible="true"].has-error {

    padding: 10px;

    border-radius:
        var(--alcora-radius);

    background:
        var(--alcora-error-bg);

}


/* =========================================================
   ERRORES CF7
   ========================================================= */

.alcora-budget-form
.wpcf7-not-valid-tip {

    margin-top: 5px;

    color:
        var(--alcora-error);

    font-size: 13px;

    font-weight: 500;

}


.alcora-budget-form
.wpcf7-response-output {

    margin:
        24px 0 0 !important;

    padding:
        14px 18px !important;

    border-radius:
        var(--alcora-radius);

    background:
        #ffffff;

}


/* =========================================================
   BOTONES
   ========================================================= */

.alcora-step-nav {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 14px;

    margin-top: 30px;

    padding-top: 22px;

    border-top:
        1.5px solid
        #d8cec8;

}


.alcora-step-nav-first {

    justify-content: flex-end;

}


.alcora-next,
.alcora-prev,
.alcora-budget-form
.alcora-submit {

    position: relative;

    z-index: 2;

    min-height: 49px;

    box-sizing: border-box;

    padding: 12px 25px;

    border-radius:
        var(--alcora-radius);

    font-family: inherit;

    font-size: 14px;

    line-height: 1.2;

    font-weight: 600;

    cursor: pointer;

    pointer-events: auto;

    transition:
        background 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease,
        transform 0.15s ease,
        box-shadow 0.2s ease;

}


/* =========================================================
   SIGUIENTE / SUBMIT
   ========================================================= */

.alcora-next,
.alcora-budget-form
.alcora-submit {

    border:
        1.5px solid
        var(--alcora-primary) !important;

    background:
        var(--alcora-primary) !important;

    color:
        #ffffff !important;

    box-shadow:
        0 4px 12px
        rgba(74, 64, 59, 0.13);

}


.alcora-next:hover,
.alcora-budget-form
.alcora-submit:hover {

    border-color:
        var(--alcora-primary-hover) !important;

    background:
        var(--alcora-primary-hover) !important;

    box-shadow:
        0 6px 16px
        rgba(74, 64, 59, 0.17);

    transform:
        translateY(-1px);

}


/* =========================================================
   ANTERIOR
   ========================================================= */

.alcora-prev {

    border:
        1.5px solid
        var(--alcora-border-dark);

    background:
        #ffffff;

    color:
        var(--alcora-text);

    box-shadow:
        0 1px 3px
        rgba(74, 64, 59, 0.04);

}


.alcora-prev:hover {

    border-color:
        var(--alcora-primary);

    color:
        var(--alcora-primary);

    background:
        #fbf8f6;

}


/* =========================================================
   SUBMIT
   ========================================================= */

.alcora-submit-nav {

    align-items: center;

}


.alcora-budget-form
.alcora-submit {

    margin: 0 !important;

}


.alcora-budget-form
.wpcf7-spinner {

    margin:
        0 0 0 10px;

}


.form-submit-note {

    display: block;

    margin-top: 13px;

    text-align: right;

}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 980px) {

    .alcora-budget-form {

        padding:
            30px 28px;

    }


    .alcora-budget-form
    .column-1_3 {

        flex:
            1 1 calc(50% - 12px);

    }


    .alcora-budget-form
    .options-grid-services
    .wpcf7-form-control {

        grid-template-columns:
            repeat(2, minmax(0, 1fr));

    }


    .alcora-budget-form
    .options-grid-compact
    .wpcf7-form-control {

        grid-template-columns:
            1fr;

    }

}


/* =========================================================
   MÓVIL
   ========================================================= */

@media (max-width: 767px) {

    .alcora-budget-form {

        padding:
            22px 18px;

        border-radius:
            10px;

        box-shadow:
            0 5px 22px
            rgba(74, 64, 59, 0.05);

    }


    .alcora-budget-form
    .columns_wrap {

        display: block;

    }


    .alcora-budget-form
    .column-1_1,

    .alcora-budget-form
    .column-1_2,

    .alcora-budget-form
    .column-1_3 {

        width:
            100% !important;

        max-width:
            100% !important;

        margin:
            0 !important;

    }


    .alcora-budget-form
    .form-section-title {

        font-size:
            21px;

    }


    .alcora-progress-label {

        font-size:
            24px;

    }


    .alcora-budget-form
    .options-grid
    .wpcf7-form-control,

    .alcora-budget-form
    .options-grid-services
    .wpcf7-form-control,

    .alcora-budget-form
    .options-grid-main
    .wpcf7-form-control,

    .alcora-budget-form
    .options-grid-compact
    .wpcf7-form-control {

        grid-template-columns:
            1fr;

    }


    .alcora-step-nav {

        flex-direction:
            column-reverse;

        align-items:
            stretch;

    }


    .alcora-step-nav-first {

        flex-direction:
            column;

    }


    .alcora-next,
    .alcora-prev,
    .alcora-budget-form
    .alcora-submit {

        width:
            100%;

    }


    .alcora-submit-nav {

        flex-direction:
            column-reverse;

    }


    .form-submit-note {

        text-align:
            center;

    }


    .alcora-progress {

        margin-bottom:
            28px;

    }

}

.alcora-progress-percent{
	font-size:30px !important;

    }

/* Base de la versión independiente */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  color: #4c4c4c;
  background: linear-gradient(180deg, #f4efeb 0, #fbfaf9 420px, #fff 100%);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
button, input, select, textarea { font: inherit; }
.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: 22px 0;
  border-bottom: 1px solid rgba(74, 64, 59, .12);
}
.brand { display: inline-flex; align-items: center; gap: 11px; color: #403833; text-decoration: none; letter-spacing: .08em; }
.brand-mark { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: #fff; background: #4a403b; font-family: Georgia, serif; font-size: 24px; }
.brand strong, .brand small { display: block; line-height: 1.05; }
.brand small { margin-top: 4px; color: #a97858; font-size: 10px; letter-spacing: .22em; }
.header-note { color: #756f6b; font-size: 13px; }
.page-shell { width: min(1060px, calc(100% - 40px)); margin: 0 auto; padding: 68px 0 54px; }
.page-heading { max-width: 760px; margin: 0 auto 34px; text-align: center; }
.eyebrow { margin: 0 0 10px; color: #a97858; font-size: 12px; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.page-heading h1, .request-result h2 { margin: 0; color: #403833; font-family: Georgia, "Times New Roman", serif; font-weight: 500; }
.page-heading h1 { font-size: clamp(34px, 6vw, 58px); line-height: 1.05; }
.page-heading > p:last-child { max-width: 680px; margin: 18px auto 0; color: #756f6b; font-size: 17px; line-height: 1.65; }
.budget-request { margin: 0 auto; }
.alcora-budget-form { max-width: 920px !important; margin: 0 auto; }
.wpcf7-form-control-wrap { display: block; width: 100%; }
.alcora-files .wpcf7-form-control-wrap { margin-bottom: 9px; }
.request-result { max-width: 760px; margin: 0 auto; padding: 52px; text-align: center; background: #f7f4f1; border: 1px solid #e2d9d3; border-radius: 16px; box-shadow: 0 14px 40px rgba(74,64,59,.08); }
.result-icon { display: grid; place-items: center; width: 58px; height: 58px; margin: 0 auto 20px; color: #fff; background: #4a403b; border-radius: 50%; font-size: 28px; }
.request-result h2 { font-size: clamp(30px, 5vw, 44px); }
.request-result > p:not(.eyebrow) { color: #756f6b; line-height: 1.6; }
.request-result dl { display: grid; grid-template-columns: minmax(130px, .45fr) 1fr; gap: 0; margin: 28px 0; text-align: left; border: 1px solid #ddd2cb; border-radius: 10px; overflow: hidden; }
.request-result dt, .request-result dd { margin: 0; padding: 12px 14px; border-bottom: 1px solid #e6ddd8; }
.request-result dt { color: #756f6b; background: #efe8e3; font-weight: 650; }
.request-result dd { background: #fff; overflow-wrap: anywhere; }
.request-result dt:last-of-type, .request-result dd:last-of-type { border-bottom: 0; }
.result-actions { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }
.site-footer { display: flex; justify-content: space-between; gap: 20px; width: min(1060px, calc(100% - 40px)); margin: 0 auto; padding: 26px 0 34px; color: #756f6b; border-top: 1px solid #e2d9d3; font-size: 12px; }
@media (max-width: 700px) {
  .site-header, .site-footer { align-items: flex-start; flex-direction: column; }
  .page-shell { width: min(100% - 24px, 1060px); padding-top: 42px; }
  .header-note { display: none; }
  .request-result { padding: 34px 20px; }
  .request-result dl { grid-template-columns: 1fr; }
  .request-result dt, .request-result dd { border-bottom: 1px solid #e6ddd8; }
}

/* =========================================================
   REDISEÑO PREMIUM · VERSIÓN INDEPENDIENTE
   ========================================================= */

:root {
  color-scheme: light;
  --alcora-ink: #342d29;
  --alcora-brown: #4a403b;
  --alcora-brown-deep: #2f2926;
  --alcora-clay: #a97858;
  --alcora-clay-dark: #8e5f42;
  --alcora-sand: #e8d8cc;
  --alcora-cream: #f7f1ec;
  --alcora-paper: #fffdfb;
  --alcora-line: #ded2ca;
  --alcora-copy: #655d58;
  --alcora-shadow: 0 28px 70px rgba(65, 49, 40, .12);
}

body {
  position: relative;
  min-height: 100vh;
  overflow-x: hidden;
  color: var(--alcora-copy);
  background:
    radial-gradient(circle at 8% 7%, rgba(169, 120, 88, .13), transparent 24rem),
    radial-gradient(circle at 92% 22%, rgba(74, 64, 59, .08), transparent 28rem),
    linear-gradient(180deg, #f7f2ee 0, #fcfaf8 38rem, #f7f3ef 100%);
}

body::before {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  content: "";
  opacity: .32;
  background-image:
    linear-gradient(rgba(74, 64, 59, .028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(74, 64, 59, .028) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(to bottom, #000, transparent 72%);
}

::selection {
  color: #fff;
  background: var(--alcora-clay);
}

.site-header {
  position: sticky;
  top: 14px;
  z-index: 20;
  width: min(1180px, calc(100% - 32px));
  margin-top: 14px;
  padding: 13px 16px;
  border: 1px solid rgba(222, 210, 202, .88);
  border-radius: 18px;
  background: rgba(255, 253, 251, .83);
  box-shadow: 0 10px 32px rgba(65, 49, 40, .07);
  backdrop-filter: blur(18px);
}

.brand {
  gap: 12px;
  letter-spacing: .11em;
}

.brand-mark {
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255, 255, 255, .4);
  border-radius: 14px 14px 14px 4px;
  background: linear-gradient(145deg, #5d514a, var(--alcora-brown-deep));
  box-shadow: 0 8px 18px rgba(52, 45, 41, .2);
  font-size: 23px;
}

.brand strong {
  color: var(--alcora-ink);
  font-size: 15px;
}

.brand small {
  color: var(--alcora-clay-dark);
  font-weight: 750;
}

.header-note {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 9px 13px;
  border: 1px solid rgba(169, 120, 88, .18);
  border-radius: 999px;
  color: #746b66;
  background: rgba(247, 241, 236, .72);
  font-size: 12px;
  font-weight: 600;
}

.header-note::before {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  content: "";
  background: #7e9b72;
  box-shadow: 0 0 0 4px rgba(126, 155, 114, .13);
}

.page-shell {
  width: min(1120px, calc(100% - 40px));
  padding: clamp(64px, 8vw, 104px) 0 70px;
}

.page-heading {
  max-width: 900px;
  margin-bottom: clamp(38px, 5vw, 58px);
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  padding: 8px 12px;
  border: 1px solid rgba(169, 120, 88, .22);
  border-radius: 999px;
  color: var(--alcora-clay-dark);
  background: rgba(255, 253, 251, .65);
  font-size: 11px;
  letter-spacing: .19em;
}

.eyebrow::before {
  width: 18px;
  height: 1px;
  content: "";
  background: var(--alcora-clay);
}

.page-heading h1 {
  max-width: 850px;
  margin-inline: auto;
  color: var(--alcora-ink);
  font-size: clamp(42px, 6.2vw, 72px);
  line-height: .99;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.page-heading > p:last-child {
  max-width: 650px;
  margin-top: 24px;
  color: #756b65;
  font-size: clamp(15px, 1.8vw, 18px);
  line-height: 1.75;
  text-wrap: balance;
}

.alcora-budget-form {
  --alcora-primary: var(--alcora-brown);
  --alcora-primary-hover: var(--alcora-brown-deep);
  --alcora-accent: var(--alcora-clay);
  --alcora-accent-soft: #f7ece5;
  --alcora-text: var(--alcora-copy);
  --alcora-heading: var(--alcora-ink);
  --alcora-muted: #7c736e;
  --alcora-border: var(--alcora-line);
  --alcora-border-dark: #b8a79c;
  --alcora-form-bg: rgba(255, 253, 251, .96);
  --alcora-radius: 13px;
  --alcora-form-radius: 28px;
  position: relative;
  max-width: 980px !important;
  overflow: hidden;
  padding: clamp(28px, 5vw, 54px) clamp(22px, 5vw, 58px);
  border: 1px solid rgba(222, 210, 202, .92);
  background: rgba(255, 253, 251, .94);
  box-shadow: var(--alcora-shadow), inset 0 1px 0 rgba(255, 255, 255, .9);
  backdrop-filter: blur(10px);
}

.alcora-budget-form::before {
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  content: "";
  background: linear-gradient(90deg, var(--alcora-brown) 0 22%, var(--alcora-clay) 22% 68%, #cfb29f 68% 100%);
}

.alcora-budget-form::after {
  position: absolute;
  top: -90px;
  right: -100px;
  width: 250px;
  height: 250px;
  border-radius: 50%;
  content: "";
  pointer-events: none;
  background: radial-gradient(circle, rgba(169, 120, 88, .1), transparent 68%);
}

.alcora-form-intro {
  position: relative;
  z-index: 1;
}

.alcora-progress {
  position: relative;
  z-index: 1;
  margin: 0 0 42px;
  padding: 20px 22px;
  border: 1px solid rgba(222, 210, 202, .74);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(247, 241, 236, .92), rgba(255, 253, 251, .92));
  box-shadow: inset 0 1px 0 #fff, 0 8px 24px rgba(65, 49, 40, .045);
}

.alcora-progress-info {
  margin-bottom: 13px;
}

.alcora-progress-label {
  color: var(--alcora-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(21px, 3vw, 28px);
  font-weight: 500;
  letter-spacing: -.02em;
}

.alcora-progress-percent {
  min-width: 52px;
  padding: 6px 9px;
  border-radius: 999px;
  color: var(--alcora-clay-dark);
  background: rgba(169, 120, 88, .11);
  font-size: 13px !important;
  font-weight: 750;
  text-align: center;
}

.alcora-progress-track {
  height: 8px;
  border: 1px solid rgba(169, 120, 88, .08);
  background: #e9dfd8;
  box-shadow: inset 0 1px 2px rgba(65, 49, 40, .08);
}

.alcora-progress-bar {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--alcora-clay-dark), #bd8a68);
  box-shadow: 0 2px 8px rgba(169, 120, 88, .28);
  transition: width .45s cubic-bezier(.2, .8, .2, 1);
}

.alcora-step-heading {
  margin-bottom: 32px;
  padding: 0 0 24px 20px;
  border-bottom: 1px solid #e9e0da;
  border-left: 3px solid var(--alcora-clay);
}

.alcora-budget-form .form-section-title {
  margin-bottom: 8px;
  color: var(--alcora-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(27px, 4vw, 35px);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -.025em;
}

.alcora-budget-form .caption-form {
  margin-bottom: 7px;
  color: #403733;
  font-size: 14px;
  font-weight: 720;
  letter-spacing: -.005em;
}

.alcora-budget-form .subtitle-form {
  margin-bottom: 11px;
  color: #827872;
  font-size: 13px;
  line-height: 1.55;
}

.alcora-budget-form .columns_wrap {
  gap: 26px;
  margin-bottom: 9px !important;
}

.alcora-budget-form .field-wrap {
  margin-top: 9px;
  margin-bottom: 28px;
}

.alcora-budget-form input[type="text"],
.alcora-budget-form input[type="email"],
.alcora-budget-form input[type="tel"],
.alcora-budget-form input[type="number"],
.alcora-budget-form input[type="date"],
.alcora-budget-form select,
.alcora-budget-form textarea {
  padding: 15px 16px;
  border: 1px solid #d8ccc4 !important;
  border-radius: 13px !important;
  color: #403733;
  background-color: #fff !important;
  box-shadow: 0 3px 12px rgba(65, 49, 40, .045), inset 0 1px 0 rgba(255, 255, 255, .7) !important;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.alcora-budget-form input[type="text"],
.alcora-budget-form input[type="email"],
.alcora-budget-form input[type="tel"],
.alcora-budget-form input[type="number"],
.alcora-budget-form input[type="date"],
.alcora-budget-form select {
  min-height: 54px;
}

.alcora-budget-form textarea {
  min-height: 128px;
  line-height: 1.6;
}

.alcora-budget-form select {
  padding-right: 42px;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238e5f42' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 15px center !important;
}

.alcora-budget-form input:hover,
.alcora-budget-form select:hover,
.alcora-budget-form textarea:hover {
  border-color: #bda89a !important;
  box-shadow: 0 5px 16px rgba(65, 49, 40, .07) !important;
}

.alcora-budget-form input:focus,
.alcora-budget-form select:focus,
.alcora-budget-form textarea:focus {
  border-color: var(--alcora-clay) !important;
  box-shadow: 0 0 0 4px rgba(169, 120, 88, .13), 0 7px 20px rgba(65, 49, 40, .07) !important;
  transform: translateY(-1px);
}

.alcora-budget-form :focus-visible {
  outline: 3px solid rgba(169, 120, 88, .22);
  outline-offset: 3px;
}

.alcora-budget-form .options-grid .wpcf7-form-control {
  gap: 12px;
}

.alcora-budget-form .options-grid .wpcf7-list-item label {
  position: relative;
  align-items: center;
  min-height: 56px;
  padding: 14px 42px 14px 15px;
  border: 1px solid #d8ccc4;
  border-radius: 14px;
  color: #5c534e;
  background: linear-gradient(180deg, #fff, #fdfbf9);
  box-shadow: 0 3px 12px rgba(65, 49, 40, .04);
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease;
}

.alcora-budget-form .options-grid .wpcf7-list-item label:hover {
  border-color: #b88b6e;
  background: #fffaf7;
  box-shadow: 0 7px 18px rgba(65, 49, 40, .08);
  transform: translateY(-2px);
}

.alcora-budget-form .options-grid .wpcf7-list-item label:has(input:checked) {
  border-color: var(--alcora-clay);
  color: var(--alcora-ink);
  background: linear-gradient(135deg, #fbf1eb, #fffaf7);
  box-shadow: inset 0 0 0 1px rgba(169, 120, 88, .38), 0 7px 18px rgba(169, 120, 88, .12);
}

.alcora-budget-form .options-grid .wpcf7-list-item label:has(input:checked)::after {
  position: absolute;
  right: 13px;
  display: grid;
  place-items: center;
  width: 21px;
  height: 21px;
  border-radius: 50%;
  content: "✓";
  color: #fff;
  background: var(--alcora-clay);
  box-shadow: 0 3px 8px rgba(169, 120, 88, .25);
  font-size: 12px;
  font-weight: 800;
}

.alcora-budget-form .options-grid input[type="radio"],
.alcora-budget-form .options-grid input[type="checkbox"] {
  width: 18px;
  min-width: 18px;
  height: 18px;
  accent-color: var(--alcora-clay-dark);
}

.alcora-subsection {
  position: relative;
  margin: 24px 0 26px;
  padding: 15px 18px;
  overflow: hidden;
  border: 1px solid #e4d9d2;
  border-radius: 13px;
  background: linear-gradient(90deg, #f4ebe5, rgba(255, 253, 251, .9));
}

.alcora-subsection::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  content: "";
  background: var(--alcora-clay);
}

.alcora-budget-form .alcora-subsection-title {
  color: var(--alcora-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 21px;
  font-weight: 500;
}

.alcora-budget-form input[type="file"] {
  min-height: 62px;
  padding: 14px;
  border: 1.5px dashed #bca79a;
  border-radius: 14px;
  background: #fdfaf8;
}

.alcora-budget-form input[type="file"]::file-selector-button {
  margin-right: 12px;
  padding: 9px 13px;
  border: 0;
  border-radius: 9px;
  color: #fff;
  background: var(--alcora-brown);
  cursor: pointer;
}

.alcora-budget-form .alcora-privacy-wrap,
.form-marketing-consent {
  padding: 17px 18px;
  border: 1px solid #e2d7cf;
  border-radius: 14px;
  background: #f9f5f2;
}

.alcora-budget-form .wpcf7-acceptance label {
  gap: 11px;
  line-height: 1.55;
}

.alcora-budget-form .wpcf7-acceptance input[type="checkbox"] {
  width: 18px;
  height: 18px;
}

.alcora-budget-form .wpcf7-acceptance a {
  color: var(--alcora-clay-dark);
  font-weight: 700;
  text-underline-offset: 3px;
}

.alcora-budget-form .alcora-step-error {
  padding: 14px 16px;
  border: 1px solid rgba(180, 35, 24, .16);
  border-left: 4px solid var(--alcora-error);
  border-radius: 11px;
  box-shadow: 0 5px 14px rgba(180, 35, 24, .05);
}

.alcora-step-nav {
  margin-top: 34px;
  padding-top: 25px;
  border-top: 1px solid #e8dfd9;
}

.alcora-next,
.alcora-prev,
.alcora-budget-form .alcora-submit,
.request-result .alcora-submit,
.request-result .alcora-prev {
  min-height: 52px;
  padding: 14px 24px;
  border-radius: 12px;
  font-size: 13px;
  font-weight: 750;
  letter-spacing: .025em;
}

.alcora-next,
.alcora-budget-form .alcora-submit,
.request-result .alcora-submit {
  border: 1px solid var(--alcora-brown) !important;
  color: #fff !important;
  background: linear-gradient(135deg, #574b45, var(--alcora-brown-deep)) !important;
  box-shadow: 0 9px 20px rgba(52, 45, 41, .18);
}

.alcora-next:hover,
.alcora-budget-form .alcora-submit:hover,
.request-result .alcora-submit:hover {
  border-color: var(--alcora-brown-deep) !important;
  background: linear-gradient(135deg, #443a35, #211d1a) !important;
  box-shadow: 0 12px 25px rgba(52, 45, 41, .24);
  transform: translateY(-2px);
}

.alcora-prev,
.request-result .alcora-prev {
  border: 1px solid #cab9ae;
  color: #5b504a;
  background: rgba(255, 255, 255, .82);
  box-shadow: 0 4px 12px rgba(65, 49, 40, .04);
}

.alcora-prev:hover,
.request-result .alcora-prev:hover {
  border-color: var(--alcora-clay);
  color: var(--alcora-clay-dark);
  background: #fff8f4;
  transform: translateY(-1px);
}

.form-submit-note {
  margin-top: 16px;
  color: #8a817c !important;
  font-size: 12px !important;
}

.request-result {
  position: relative;
  max-width: 820px;
  overflow: hidden;
  padding: clamp(36px, 6vw, 64px);
  border: 1px solid rgba(222, 210, 202, .92);
  border-radius: 28px;
  background: rgba(255, 253, 251, .96);
  box-shadow: var(--alcora-shadow);
}

.request-result::before {
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  content: "";
  background: linear-gradient(90deg, var(--alcora-brown), var(--alcora-clay));
}

.result-icon {
  width: 68px;
  height: 68px;
  margin-bottom: 24px;
  border: 7px solid #eee3dc;
  background: linear-gradient(145deg, var(--alcora-clay), var(--alcora-clay-dark));
  box-shadow: 0 10px 25px rgba(169, 120, 88, .25);
}

.request-result h2 {
  color: var(--alcora-ink);
  font-size: clamp(34px, 5vw, 50px);
  letter-spacing: -.025em;
}

.request-result dl {
  border-color: #ded2ca;
  border-radius: 16px;
  box-shadow: 0 8px 25px rgba(65, 49, 40, .055);
}

.request-result dt {
  color: #655a54;
  background: #f2e9e3;
}

.site-footer {
  width: min(1120px, calc(100% - 40px));
  padding: 30px 0 38px;
  border-color: rgba(202, 185, 174, .68);
  color: #857a74;
  letter-spacing: .025em;
}

@media (max-width: 980px) {
  .alcora-budget-form {
    padding: 38px 32px;
  }

  .alcora-budget-form .options-grid-services .wpcf7-form-control {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  body::before {
    background-size: 32px 32px;
  }

  .site-header {
    top: 8px;
    flex-direction: row;
    align-items: center;
    width: calc(100% - 20px);
    margin-top: 8px;
    padding: 11px 12px;
    border-radius: 15px;
  }

  .header-note {
    display: none;
  }

  .brand-mark {
    width: 40px;
    height: 40px;
  }

  .page-shell {
    width: calc(100% - 20px);
    padding-top: 52px;
  }

  .page-heading {
    margin-bottom: 32px;
  }

  .page-heading h1 {
    font-size: clamp(38px, 12vw, 52px);
  }

  .page-heading > p:last-child {
    margin-top: 18px;
    font-size: 15px;
  }

  .alcora-budget-form {
    padding: 26px 17px;
    border-radius: 21px;
  }

  .alcora-progress {
    margin-bottom: 30px;
    padding: 16px;
    border-radius: 15px;
  }

  .alcora-step-heading {
    margin-bottom: 27px;
    padding: 0 0 20px 14px;
  }

  .alcora-budget-form .form-section-title {
    font-size: 27px;
  }

  .alcora-budget-form .columns_wrap {
    display: block;
  }

  .alcora-budget-form .options-grid .wpcf7-form-control,
  .alcora-budget-form .options-grid-services .wpcf7-form-control,
  .alcora-budget-form .options-grid-main .wpcf7-form-control,
  .alcora-budget-form .options-grid-compact .wpcf7-form-control {
    grid-template-columns: 1fr;
  }

  .alcora-budget-form .options-grid .wpcf7-list-item label {
    min-height: 54px;
  }

  .alcora-step-nav,
  .alcora-submit-nav {
    gap: 10px;
    margin-top: 26px;
    padding-top: 20px;
  }

  .alcora-next,
  .alcora-prev,
  .alcora-budget-form .alcora-submit {
    width: 100%;
  }

  .request-result {
    padding: 36px 18px;
    border-radius: 21px;
  }

  .site-footer {
    width: calc(100% - 24px);
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Elementos funcionales del backend Python. */
.form-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.alcora-submit[disabled] {
  cursor: wait;
  opacity: .68;
  transform: none !important;
}

.alcora-budget-form[aria-busy="true"] {
  cursor: progress;
}
