/* Diagnòstic IA: experiència de formulari autònoma. */
.questionnaire-page { background: var(--color-bg-gradient); color: #fff; min-height: 100vh; }
.questionnaire-shell { min-height: 100vh; overflow: hidden; position: relative; padding: 138px 0 80px; }
.questionnaire-noise { background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); inset: 0; mix-blend-mode: overlay; opacity: .055; pointer-events: none; position: absolute; }
.questionnaire-container { max-width: 100%; position: relative; z-index: 1; }
.questionnaire-brand { margin-bottom: clamp(36px, 7vh, 72px); }
.questionnaire-brand-link { display: inline-block; }
.questionnaire-brand img { filter: brightness(0) invert(1); height: auto; max-width: 170px; }
.questionnaire-screen { display: none; }
.questionnaire-screen.is-active { animation: questionari-in .32s ease both; display: block; }
@keyframes questionari-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.questionnaire-intro, .questionnaire-complete { max-width: 900px; padding: 32px 0; }
.questionnaire-eyebrow { color: var(--color-primary); font-family: var(--font-main); font-size: 14px; font-weight: 700; letter-spacing: .06em; margin-bottom: 20px; text-transform: uppercase; }
.questionnaire-intro h1, .questionnaire-complete h2, .questionnaire-card h2 { color: #fff; font-family: var(--font-heading); font-size: clamp(42px, 6vw, 78px); font-weight: 700; letter-spacing: -.035em; line-height: .98; margin: 0; }
.questionnaire-card h2, .questionnaire-complete h2 { font-size: clamp(34px, 4vw, 54px); }
.questionnaire-lead { color: var(--color-cream); font-family: var(--font-main); font-size: clamp(19px, 2vw, 25px); line-height: 1.52; margin: 32px 0 0; max-width: 760px; }
.questionnaire-facts { display: flex; flex-wrap: wrap; gap: 12px 28px; margin: 28px 0 38px; }
.questionnaire-facts span { border-left: 2px solid var(--color-primary); font-size: 14px; padding-left: 12px; }
.questionnaire-card { background: rgba(44,44,68,.88); border: 1px solid rgba(255,255,255,.18); border-radius: 16px; box-shadow: 0 20px 70px rgba(0,0,0,.15); margin: 0 auto; max-width: 850px; padding: clamp(28px, 5vw, 56px); }
.questionnaire-card--profile, .questionnaire-card--capture { max-width: 680px; }
.questionnaire-card > p:not(.questionnaire-eyebrow), .questionnaire-complete > p:not(.questionnaire-eyebrow) { color: var(--color-cream); font-size: 18px; line-height: 1.55; }
.questionnaire-fields { display: grid; gap: 20px; margin-top: 32px; }
.questionnaire-fields label { color: #fff; display: grid; font-size: 15px; font-weight: 700; gap: 9px; }
.questionnaire-fields input, .questionnaire-fields select { background: #fff; border: 2px solid transparent; border-radius: 8px; color: var(--color-dark); font: inherit; min-height: 52px; padding: 12px 14px; width: 100%; }
.questionnaire-fields input:focus, .questionnaire-fields select:focus { border-color: var(--color-primary); box-shadow: 0 0 0 4px rgba(222,245,97,.22); outline: none; }
.questionnaire-progress { margin: 0 auto 22px; max-width: 850px; }
.questionnaire-progress-meta { display: flex; font-size: 14px; justify-content: space-between; margin-bottom: 10px; }
.questionnaire-progress-meta span { color: var(--color-cream); }
.questionnaire-progress-track { background: rgba(255,255,255,.24); border-radius: 999px; height: 5px; overflow: hidden; }
.questionnaire-progress-track span { background: var(--color-primary); border-radius: inherit; display: block; height: 100%; transition: width .25s ease; }
.questionnaire-card--question { max-width: 850px; }
.questionnaire-card--question legend { color: #fff; font-family: var(--font-heading); font-size: clamp(26px, 3vw, 38px); font-weight: 700; line-height: 1.15; padding: 0; width: 100%; }
.questionnaire-card--question legend span { color: var(--color-primary); display: block; font-family: var(--font-main); font-size: 13px; letter-spacing: .05em; margin-bottom: 12px; text-transform: uppercase; }
.questionnaire-options { display: grid; gap: 12px; margin-top: 30px; }
.questionnaire-option { align-items: flex-start; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.22); border-radius: 10px; cursor: pointer; display: grid; font-size: 16px; gap: 14px; grid-template-columns: auto 1fr; line-height: 1.4; padding: 16px; transition: border-color .2s ease, background-color .2s ease, transform .2s ease; }
.questionnaire-option:hover { border-color: var(--color-primary); transform: translateX(4px); }
.questionnaire-option:has(input:checked) { background: rgba(222,245,97,.14); border-color: var(--color-primary); }
.questionnaire-option input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.questionnaire-option-key { align-items: center; background: rgba(255,255,255,.14); border-radius: 50%; display: inline-flex; font-size: 13px; font-weight: 700; height: 28px; justify-content: center; width: 28px; }
.questionnaire-option:has(input:checked) .questionnaire-option-key { background: var(--color-primary); color: var(--color-dark); }
.questionnaire-option:has(input:focus-visible) { box-shadow: 0 0 0 4px rgba(222,245,97,.35); }
.questionnaire-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 18px; justify-content: space-between; margin-top: 32px; }
.questionnaire-button { align-items: center; background: var(--color-primary); border: 0; border-radius: 100px; color: var(--color-dark); display: inline-flex; font-family: var(--font-main); font-size: 16px; font-weight: 700; gap: 14px; padding: 15px 24px; transition: transform .2s ease, background-color .2s ease; }
.questionnaire-button-arrow { display: flex; }
.questionnaire-button-arrow :is(i, svg) { height: 18px; width: 18px; }
.questionnaire-button:hover, .questionnaire-button:focus-visible { background: #fff; color: var(--color-dark); transform: translateY(-2px); }
.questionnaire-back { background: none; border: 0; color: #fff; font: inherit; font-weight: 700; padding: 8px 0; text-decoration: underline; text-underline-offset: 4px; }
.questionnaire-back:hover, .questionnaire-back:focus-visible { color: var(--color-primary); }
.questionnaire-consents { display: grid; gap: 14px; margin-top: 26px; }
.questionnaire-consents label { align-items: flex-start; display: flex; font-size: 14px; gap: 10px; line-height: 1.45; }
.questionnaire-consents input { accent-color: var(--color-primary); flex: 0 0 auto; margin-top: 3px; }
.questionnaire-consents a { color: var(--color-primary); }
.questionnaire-error { color: #fff; font-weight: 700; margin: 20px 0 0; min-height: 1.4em; }
.questionnaire-error:not(:empty) { border-left: 3px solid var(--color-primary); padding-left: 10px; }
.questionnaire-actions--complete { justify-content: flex-start; }
.questionnaire-home-link { display: inline-block; }
@media (max-width: 767.98px) { .questionnaire-shell { padding: 112px 0 52px; } .questionnaire-brand { margin-bottom: 36px; } .questionnaire-card { border-radius: 12px; } .questionnaire-actions { align-items: stretch; flex-direction: column-reverse; } .questionnaire-button { justify-content: center; width: 100%; } .questionnaire-actions--complete { flex-direction: column; } .questionnaire-option { font-size: 15px; } }
@media (prefers-reduced-motion: reduce) { .questionnaire-screen.is-active { animation: none; } .questionnaire-option, .questionnaire-button { transition: none; } }
