
:root {
    --ki-gold: #d1aa45;
    --ki-gold-dark: #a67817;
    --ki-gold-soft: #faf5e9;
    --ki-ink: #1d2939;
    --ki-text: #344054;
    --ki-muted: #667085;
    --ki-line: #e4e7ec;
    --ki-surface: #ffffff;
    --ki-page: #f4f6f8;
    --ki-green: #16a34a;
    --ki-green-soft: #effaf3;
    --ki-orange: #ea7a16;
    --ki-orange-soft: #fff6eb;
    --ki-red: #dc3545;
    --ki-red-soft: #fff1f2;
    --ki-radius-xl: 30px;
    --ki-radius-lg: 18px;
    --ki-radius-md: 14px;
    --ki-shadow: 0 24px 60px rgba(29, 41, 57, 0.10);
    --ki-shadow-hover: 0 16px 32px rgba(29, 41, 57, 0.12);
    --ki-transition: 180ms ease;
}

.ki-wrapper,
.ki-wrapper * {
    box-sizing: border-box;
}

.ki-wrapper {
    width: 100%;
    max-width: 1320px;
    margin: 0 auto;
    color: var(--ki-text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

.ki-screen[hidden] {
    display: none !important;
}

.ki-screen {
    position: relative;
    min-height: 560px;
    padding: clamp(38px, 6vw, 76px);
    overflow: hidden;
    background: var(--ki-surface);
    border: 1px solid rgba(228, 231, 236, 0.9);
    border-radius: var(--ki-radius-xl);
    box-shadow: var(--ki-shadow);
    animation: ki-screen-in 280ms ease both;
}

.ki-screen::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 95% 0%, rgba(209, 170, 69, 0.06), transparent 28%),
        linear-gradient(180deg, rgba(255,255,255,0.5), rgba(255,255,255,0));
}

.ki-screen > * {
    position: relative;
    z-index: 1;
}

@keyframes ki-screen-in {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.ki-title,
.ki-package-title,
.ki-result-heading {
    color: var(--ki-ink);
    font-family: Georgia, "Times New Roman", serif;
}

.ki-title {
    max-width: 980px;
    margin: 30px 0 14px;
    font-size: clamp(2.25rem, 5vw, 4.3rem);
    line-height: 1.08;
    letter-spacing: -0.035em;
}

.ki-package-title {
    margin: 0 0 12px;
    font-size: clamp(1.25rem, 2.5vw, 2rem);
    line-height: 1.2;
}

.ki-subtitle,
.ki-question-help,
.ki-loading-text {
    color: var(--ki-muted);
    font-size: clamp(1rem, 1.6vw, 1.3rem);
    line-height: 1.6;
}

.ki-subtitle {
    margin: 0 0 34px;
}

.ki-question-help {
    margin: -2px 0 28px;
}

.ki-label {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 10px 18px;
    color: var(--ki-gold-dark);
    background: var(--ki-gold-soft);
    border: 1px solid rgba(209, 170, 69, 0.18);
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.ki-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 56px;
    padding: 15px 26px;
    border: 1px solid transparent;
    border-radius: var(--ki-radius-md);
    font: inherit;
    font-weight: 800;
    letter-spacing: 0.035em;
    text-decoration: none;
    text-transform: uppercase;
    cursor: pointer;
    transition:
        transform var(--ki-transition),
        box-shadow var(--ki-transition),
        background-color var(--ki-transition),
        border-color var(--ki-transition),
        color var(--ki-transition);
}

.ki-btn-primary {
    color: #fff;
    background: linear-gradient(135deg, #d7b456, #c4962e);
    border-color: #c89c35;
    box-shadow: 0 8px 20px rgba(196, 150, 46, 0.22);
}

.ki-btn-secondary {
    color: var(--ki-gold-dark);
    background: #fff;
    border-color: var(--ki-gold);
}

.ki-btn:focus-visible,
.ki-answer:focus-visible,
.ki-input:focus-visible {
    outline: 3px solid rgba(209, 170, 69, 0.28);
    outline-offset: 3px;
}

.ki-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    box-shadow: none;
}

.ki-navigation {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 16px;
    margin-top: 34px;
}

.ki-navigation-end {
    justify-content: flex-end;
}

.ki-input {
    width: 100%;
    min-height: 76px;
    padding: 18px 22px;
    color: var(--ki-ink);
    background: #fff;
    border: 2px solid var(--ki-line);
    border-radius: var(--ki-radius-md);
    font: inherit;
    font-size: 1.1rem;
    transition:
        border-color var(--ki-transition),
        box-shadow var(--ki-transition);
}

.ki-input::placeholder {
    color: #98a2b3;
}

.ki-input:focus {
    border-color: var(--ki-gold);
    box-shadow: 0 0 0 4px rgba(209, 170, 69, 0.11);
}

.ki-progress {
    margin-bottom: 42px;
}

.ki-progress-top {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 14px;
    color: var(--ki-ink);
    font-size: 1rem;
    font-weight: 800;
}

.ki-percent {
    color: var(--ki-gold-dark);
}

.ki-progress-track {
    width: 100%;
    height: 13px;
    overflow: hidden;
    background: #ececec;
    border-radius: 999px;
}

.ki-progress-fill {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, #d8b65b, #be8d22);
    border-radius: inherit;
    transition: width 420ms cubic-bezier(.2,.8,.2,1);
}

.ki-answers {
    display: grid;
    gap: 14px;
}

.ki-answer {
    position: relative;
    width: 100%;
    min-height: 82px;
    padding: 18px 24px 18px 70px;
    color: var(--ki-ink);
    background: #fff;
    border: 2px solid var(--ki-line);
    border-radius: var(--ki-radius-lg);
    text-align: left;
    font: inherit;
    font-size: 1rem;
    font-weight: 750;
    letter-spacing: 0.025em;
    cursor: pointer;
    transition:
        transform var(--ki-transition),
        border-color var(--ki-transition),
        background-color var(--ki-transition),
        box-shadow var(--ki-transition);
}

.ki-answer::before {
    content: "";
    position: absolute;
    left: 24px;
    top: 50%;
    width: 22px;
    height: 22px;
    border: 2px solid #cfd5dd;
    border-radius: 50%;
    transform: translateY(-50%);
    transition: inherit;
}

.ki-answer[aria-checked="true"],
.ki-answer.is-selected {
    color: #8b6712;
    background: var(--ki-gold-soft);
    border-color: var(--ki-gold);
    box-shadow: 0 10px 28px rgba(166, 120, 23, 0.12);
}

.ki-answer[aria-checked="true"]::before,
.ki-answer.is-selected::before {
    border: 7px solid var(--ki-gold);
    background: #fff;
}

.ki-loading-screen {
    display: flex;
    min-height: 520px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.ki-loader {
    width: 104px;
    height: 104px;
    margin-bottom: 26px;
    border: 12px solid #ededed;
    border-top-color: var(--ki-gold);
    border-radius: 50%;
    animation: ki-spin 900ms linear infinite;
}

@keyframes ki-spin {
    to { transform: rotate(360deg); }
}

.ki-loading-screen .ki-title {
    margin: 14px 0 8px;
}

.ki-result-screen {
    --ki-result-color: var(--ki-gold);
    --ki-result-soft: var(--ki-gold-soft);
}

.ki-result-screen.ki-result-green {
    --ki-result-color: var(--ki-green);
    --ki-result-soft: var(--ki-green-soft);
}

.ki-result-screen.ki-result-gold {
    --ki-result-color: var(--ki-gold);
    --ki-result-soft: var(--ki-gold-soft);
}

.ki-result-screen.ki-result-orange {
    --ki-result-color: var(--ki-orange);
    --ki-result-soft: var(--ki-orange-soft);
}

.ki-result-screen.ki-result-red {
    --ki-result-color: var(--ki-red);
    --ki-result-soft: var(--ki-red-soft);
}

.ki-result-header {
    text-align: center;
}

.ki-score-circle {
    position: relative;
    display: grid;
    width: clamp(170px, 22vw, 230px);
    aspect-ratio: 1;
    place-items: center;
    margin: 8px auto 30px;
    border-radius: 50%;
    background:
        radial-gradient(circle closest-side, #fff 79%, transparent 80% 100%),
        conic-gradient(var(--ki-result-color) calc(var(--score) * 1%), #ececec 0);
    color: var(--ki-result-color);
    filter: drop-shadow(0 14px 24px rgba(29,41,57,0.10));
    transition: background 500ms ease, color 250ms ease;
}

.ki-score-value {
    font-size: clamp(3.4rem, 8vw, 5.6rem);
    font-weight: 850;
    line-height: 1;
}

.ki-result-header .ki-title {
    margin: 0 auto 10px;
}

.ki-result-header .ki-subtitle {
    margin-bottom: 38px;
}

.ki-result-section {
    max-width: 980px;
    margin: 34px auto 0;
}

.ki-result-heading {
    margin: 0 0 14px;
    font-size: clamp(1.35rem, 2.4vw, 1.9rem);
}

.ki-result-card,
.ki-recommendation-item {
    padding: 24px 28px;
    color: var(--ki-text);
    background: linear-gradient(135deg, var(--ki-result-soft), #fff 72%);
    border: 1px solid var(--ki-line);
    border-left: 6px solid var(--ki-result-color);
    border-radius: var(--ki-radius-lg);
    font-size: 1rem;
    line-height: 1.7;
}

.ki-recommendations {
    display: grid;
    gap: 14px;
}

.ki-recommendation-item {
    position: relative;
    padding-left: 58px;
}

.ki-recommendation-item::before {
    content: "✓";
    position: absolute;
    left: 24px;
    top: 24px;
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    color: #fff;
    background: var(--ki-result-color);
    border-radius: 50%;
    font-size: 0.78rem;
    font-weight: 900;
}

.ki-result-actions {
    display: flex;
    justify-content: center;
    margin-top: 38px;
}

.screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (hover: hover) and (pointer: fine) {
    .ki-btn:not(:disabled):hover {
        transform: translateY(-2px);
        box-shadow: var(--ki-shadow-hover);
    }

    .ki-btn-primary:not(:disabled):hover {
        background: linear-gradient(135deg, #cda33c, #ad7c17);
    }

    .ki-btn-secondary:not(:disabled):hover {
        color: #7a580f;
        background: var(--ki-gold-soft);
    }

    .ki-answer:not(:disabled):hover {
        color: #6f510d;
        transform: translateY(-2px);
        border-color: #c49325;
        background: #f3e7c7;
        box-shadow:
            0 12px 30px rgba(29, 41, 57, 0.12),
            inset 0 0 0 1px rgba(196, 147, 37, 0.12);
    }

    .ki-answer:not(:disabled):hover::before {
        border-color: #c49325;
        background: #fff9eb;
    }
}

@media (max-width: 700px) {
    .ki-screen {
        min-height: auto;
        padding: 28px 20px;
        border-radius: 22px;
    }

    .ki-title {
        margin-top: 24px;
        font-size: clamp(2rem, 10vw, 3rem);
    }

    .ki-label {
        min-height: 36px;
        padding: 8px 13px;
        font-size: 0.7rem;
    }

    .ki-progress {
        margin-bottom: 30px;
    }

    .ki-answer {
        min-height: 70px;
        padding: 15px 16px 15px 56px;
        border-radius: 14px;
    }

    .ki-answer::before {
        left: 18px;
        width: 20px;
        height: 20px;
    }

    .ki-navigation {
        align-items: stretch;
    }

    .ki-btn {
        min-height: 52px;
        padding: 13px 18px;
        font-size: 0.86rem;
    }

    .ki-input {
        min-height: 62px;
    }

    .ki-result-card,
    .ki-recommendation-item {
        padding: 20px;
    }

    .ki-recommendation-item {
        padding-left: 52px;
    }

    .ki-recommendation-item::before {
        left: 18px;
        top: 20px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ki-screen,
    .ki-loader,
    .ki-progress-fill,
    .ki-btn,
    .ki-answer,
    .ki-score-circle {
        animation: none !important;
        transition: none !important;
    }
}


/* V1.5 automatic answer transition */
.ki-answer:disabled {
    cursor: default;
    opacity: 1;
}

.ki-answer.is-selected:disabled,
.ki-answer[aria-checked="true"]:disabled {
    color: #6f510d;
    background: #f1e3bd;
    border-color: #b98212;
    box-shadow:
        0 12px 30px rgba(166, 120, 23, 0.18),
        inset 0 0 0 1px rgba(185, 130, 18, 0.12);
}

/* =========================================================
   TOUCH DEVICES
   Prevent sticky hover/focus on phones, tablets and hybrids.
   The selected answer still keeps its gold state briefly
   before the questionnaire advances automatically.
   ========================================================= */
@media (any-pointer: coarse) {

    .ki-answer {
        -webkit-tap-highlight-color: transparent;
        touch-action: manipulation;
    }

    .ki-answer:not(.is-selected):not([aria-checked="true"]):hover,
    .ki-answer:not(.is-selected):not([aria-checked="true"]):focus,
    .ki-answer:not(.is-selected):not([aria-checked="true"]):active {
        color: var(--ki-ink) !important;
        transform: none !important;
        background: #ffffff !important;
        border-color: var(--ki-line) !important;
        box-shadow: none !important;
        outline: none !important;
    }

    .ki-answer:not(.is-selected):not([aria-checked="true"]):hover::before,
    .ki-answer:not(.is-selected):not([aria-checked="true"]):focus::before,
    .ki-answer:not(.is-selected):not([aria-checked="true"]):active::before {
        border: 2px solid #cfd5dd !important;
        background: transparent !important;
    }

    .ki-btn {
        -webkit-tap-highlight-color: transparent;
        touch-action: manipulation;
    }

    .ki-btn:not(:disabled):hover,
    .ki-btn:not(:disabled):focus,
    .ki-btn:not(:disabled):active {
        transform: none !important;
    }
}

