/* CV builder pages aligned with the purchased Jobaway visual system. */

:root {
    --op-cv-green: var(--theme-color, #78eb54);
    --op-cv-green-2: var(--theme-color-2, #45a735);
    --op-cv-dark: var(--secondary-color, #26472b);
    --op-cv-title: var(--title-color, #111111);
    --op-cv-text: var(--text-color, #666666);
    --op-cv-soft: #eff2e6;
    --op-cv-border: #e5e5e5;
    --op-cv-shadow: 0 0 80px rgba(0, 0, 0, .06);
    --op-cv-shadow-hover: 0 10px 70px rgba(0, 0, 0, .13);
}

.op-page-content > .cv-choice,
.op-page-content > .cvi {
    margin-top: -110px !important;
}

.cvw,
.cv-choice,
.cvi,
.cvb {
    background: #fff !important;
    color: var(--op-cv-text) !important;
}

.cvw__bg,
.cvi__bg,
.cvw__blob,
.cvw__grid,
.cvi__blob,
.cvi__grid,
.cvi__spark {
    display: none !important;
}

.cvw {
    padding: 142px 20px 86px !important;
    overflow: visible !important;
}

.cvw__inner {
    max-width: 1200px !important;
}

.cvw__hero,
.cv-choice__hero,
.cvi__hero {
    max-width: 780px !important;
    margin: 0 auto 44px !important;
    text-align: center !important;
}

.cvw__chip,
.cv-choice__chip,
.cvi__chip {
    position: relative !important;
    display: inline-block !important;
    margin: 0 0 14px !important;
    padding: 0 0 0 34px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--op-cv-green-2) !important;
    font-family: var(--title-font, "Outfit", sans-serif) !important;
    font-size: 16px !important;
    line-height: 24px !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

.cvw__chip:before,
.cv-choice__chip:before,
.cvi__chip:before {
    position: absolute !important;
    content: '' !important;
    left: 0 !important;
    top: 12px !important;
    width: 24px !important;
    height: 2px !important;
    border-radius: 2px !important;
    background: var(--op-cv-green-2) !important;
}

.cvw__chip-dot,
.cvi__chip-dot {
    display: none !important;
}

.cvw__hero h1,
.cv-choice__hero h1,
.cvi__hero h1 {
    margin: 0 0 18px !important;
    color: var(--op-cv-title) !important;
    font-family: var(--title-font, "Outfit", sans-serif) !important;
    /* Nom adaptatif : se reduit sur les ecrans/pages etroits, et un nom tres long
       passe a la ligne au lieu de deborder sur le bloc contact a droite. */
    font-size: clamp(30px, 4.4vw, 54px) !important;
    line-height: 1.06 !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    overflow-wrap: break-word !important;
    word-break: break-word !important;
    hyphens: auto !important;
    min-width: 0 !important;
}

.cvw__hero h1 span,
.cvi__hero h1 span {
    color: var(--op-cv-dark) !important;
    background: none !important;
    -webkit-text-fill-color: currentColor !important;
}

.cvw__hero > p,
.cv-choice__hero p,
.cvi__hero p {
    max-width: 700px !important;
    margin: 0 auto !important;
    color: var(--op-cv-text) !important;
    font-size: 18px !important;
    line-height: 30px !important;
}

.cvw__quick {
    display: flex !important;
    justify-content: center !important;
    gap: 10px 22px !important;
    margin-top: 24px !important;
}

.cvw__quick > div {
    gap: 8px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--op-cv-title) !important;
    font-size: 15px !important;
    line-height: 24px !important;
}

.cvw__quick i {
    color: var(--op-cv-green-2) !important;
}

.cvw__choices,
.cv-choice__grid,
.cvi__layout {
    display: grid !important;
    gap: 30px !important;
}

.cvw__choices {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    margin: 0 0 34px !important;
}

.cvw-choice,
.cv-mode-card,
.cvi__drop,
.cvi__side-card,
.cvi__panel,
.cvi__results,
.cvi__error,
.cvb__main,
.cvb-side-card {
    border: 1px solid var(--op-cv-border) !important;
    border-radius: 10px !important;
    background: #fff !important;
    box-shadow: var(--op-cv-shadow) !important;
}

.cvw-choice {
    overflow: hidden !important;
    transform: none !important;
}

.cvw-choice:hover,
.cv-mode-card:hover,
.cvi__drop:hover,
.cvb-side-card:hover {
    border-color: var(--op-cv-border) !important;
    box-shadow: var(--op-cv-shadow-hover) !important;
    transform: none !important;
}

.cvw-choice__visual {
    height: 118px !important;
    background: var(--op-cv-soft) !important;
}

.cvw-choice__visual--alt {
    background: #f6f8f1 !important;
}

.cvw-choice__shape {
    display: none !important;
}

.cvw-choice__icon {
    width: 74px !important;
    height: 74px !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: var(--op-cv-dark) !important;
    color: var(--op-cv-green) !important;
    font-size: 32px !important;
    backdrop-filter: none !important;
    transform: translate(-50%, -50%) !important;
}

.cvw-choice:hover .cvw-choice__icon {
    transform: translate(-50%, -50%) !important;
}

.cvw-choice__body {
    gap: 13px !important;
    padding: 30px !important;
}

.cvw-choice__pill,
.cvw-choice__pill--alt {
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--op-cv-green-2) !important;
    font-family: var(--title-font, "Outfit", sans-serif) !important;
    font-size: 15px !important;
    line-height: 22px !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

.cvw-choice h3,
.cv-mode-card h3,
.cvi__drop-title,
.cvi__side-card h4,
.cvi__panel h4 {
    color: var(--op-cv-title) !important;
    font-family: var(--title-font, "Outfit", sans-serif) !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
}

.cvw-choice h3 {
    font-size: 30px !important;
    line-height: 38px !important;
}

.cvw-choice__body > p,
.cvw-choice li,
.cv-mode-card p,
.cv-mode-card li,
.cvi__side-card li {
    color: var(--op-cv-text) !important;
    font-size: 16px !important;
    line-height: 26px !important;
}

.cvw-choice li {
    gap: 10px !important;
    padding: 3px 0 !important;
}

.cvw-choice li i {
    color: var(--op-cv-green-2) !important;
}

.cvw-choice__cta,
.cvw-perso__btn,
.cv-mode-card__btn,
.cvi__btn,
.cvb__head-btn,
.cvb-dl-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    min-height: 46px !important;
    padding: 11px 28px !important;
    border: 1px solid var(--op-cv-green-2) !important;
    border-radius: 40px !important;
    background: transparent !important;
    color: var(--op-cv-green-2) !important;
    font-family: var(--title-font, "Outfit", sans-serif) !important;
    font-size: 15px !important;
    line-height: 22px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    box-shadow: none !important;
}

.cvw-choice__cta:hover,
.cvw-perso__btn:hover,
.cv-mode-card__btn:hover,
.cvi__btn:hover,
.cvb__head-btn:hover,
.cvb-dl-btn:hover {
    border-color: var(--op-cv-dark) !important;
    background: var(--op-cv-dark) !important;
    color: #fff !important;
}

.cvw-perso {
    grid-template-columns: auto 1fr auto !important;
    margin: 0 0 68px !important;
    padding: 24px 30px !important;
    border: 1px solid var(--op-cv-border) !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: var(--op-cv-title) !important;
    box-shadow: var(--op-cv-shadow) !important;
    transform: none !important;
}

.cvw-perso:hover {
    color: var(--op-cv-title) !important;
    transform: none !important;
    box-shadow: var(--op-cv-shadow-hover) !important;
}

.cvw-perso__icon {
    width: 56px !important;
    height: 56px !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: var(--op-cv-soft) !important;
    color: var(--op-cv-dark) !important;
}

.cvw-perso__body strong {
    color: var(--op-cv-title) !important;
    font-family: var(--title-font, "Outfit", sans-serif) !important;
    font-size: 20px !important;
    line-height: 28px !important;
    font-weight: 600 !important;
}

.cvw-perso__body span {
    color: var(--op-cv-text) !important;
    font-size: 15px !important;
    line-height: 24px !important;
}

.cvw__benefits {
    margin-bottom: 30px !important;
}

.cvw__benefits h2 {
    margin: 0 0 32px !important;
    color: var(--op-cv-title) !important;
    font-size: 40px !important;
    line-height: 48px !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
}

.cvw__benefits-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 24px !important;
}

.cvw-benefit {
    padding: 30px 24px !important;
    border: 1px solid var(--op-cv-border) !important;
    border-radius: 10px !important;
    background: #fff !important;
    box-shadow: none !important;
    transform: none !important;
}

.cvw-benefit:hover {
    border-color: var(--op-cv-border) !important;
    box-shadow: var(--op-cv-shadow) !important;
    transform: none !important;
}

.cvw-benefit__icon {
    width: 58px !important;
    height: 58px !important;
    border-radius: 50% !important;
    background: var(--op-cv-soft) !important;
    color: var(--op-cv-dark) !important;
    box-shadow: none !important;
}

.cvw-benefit h4 {
    color: var(--op-cv-title) !important;
    font-size: 20px !important;
    line-height: 28px !important;
    font-weight: 600 !important;
}

.cvw-benefit p,
.cvw__foot {
    color: var(--op-cv-text) !important;
    font-size: 15px !important;
    line-height: 24px !important;
}

.cv-choice {
    padding: 142px 20px 88px !important;
}

.cv-choice__inner {
    max-width: 1080px !important;
}

.cv-choice__back,
.cvi__back {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin-bottom: 26px !important;
    color: var(--op-cv-green-2) !important;
    font-family: var(--title-font, "Outfit", sans-serif) !important;
    font-weight: 600 !important;
}

.cv-choice__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.cv-mode-card {
    padding: 34px !important;
}

.cv-mode-card__icon,
.cvi__side-icon {
    width: 64px !important;
    height: 64px !important;
    border-radius: 50% !important;
    background: var(--op-cv-soft) !important;
    color: var(--op-cv-dark) !important;
    font-size: 26px !important;
}

.cv-mode-card h3 {
    margin-top: 18px !important;
    font-size: 30px !important;
    line-height: 38px !important;
}

.cv-mode-card ul {
    margin: 10px 0 26px !important;
}

.cv-mode-card li::before {
    color: var(--op-cv-green-2) !important;
}

.cvi {
    padding: 142px 20px 88px !important;
    overflow: visible !important;
}

.cvi__inner {
    max-width: 1200px !important;
}

.cvi__layout {
    grid-template-columns: minmax(0, 1fr) 360px !important;
    align-items: start !important;
}

.cvi__drop {
    padding: 42px !important;
}

.cvi__drop-visual {
    height: 150px !important;
    margin-bottom: 24px !important;
}

.cvi__cloud {
    width: 96px !important;
    height: 96px !important;
    border-radius: 50% !important;
    background: var(--op-cv-soft) !important;
    color: var(--op-cv-dark) !important;
    box-shadow: none !important;
}

.cvi__cloud i {
    font-size: 40px !important;
}

.cvi__cloud-ring {
    display: none !important;
}

.cvi__drop-doc {
    border: 1px solid var(--op-cv-border) !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: var(--op-cv-dark) !important;
    box-shadow: var(--op-cv-shadow) !important;
}

.cvi__drop-title {
    font-size: 30px !important;
    line-height: 38px !important;
}

.cvi__drop-sub,
.cvi__drop-hint,
.cvi__progress-steps li,
.cvi__summary p {
    color: var(--op-cv-text) !important;
}

.cvi__badges {
    gap: 10px !important;
}

.cvi__badges li {
    border: 1px solid var(--op-cv-border) !important;
    border-radius: 40px !important;
    background: #fff !important;
    color: var(--op-cv-title) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}

.cvi__btn--primary,
.cvi__btn--ai {
    background: var(--op-cv-green) !important;
    border-color: var(--op-cv-green) !important;
    color: var(--op-cv-title) !important;
}

.cvi__btn--ghost {
    background: #fff !important;
}

.cvi__side {
    gap: 18px !important;
}

.cvi__side-card {
    padding: 30px !important;
}

.cvi__side-card h4,
.cvi__panel h4 {
    margin: 16px 0 14px !important;
    font-size: 22px !important;
    line-height: 30px !important;
}

.cvi__side-card li i,
.cvi__panel h4 i {
    color: var(--op-cv-green-2) !important;
}

.cvi__results {
    margin-top: 34px !important;
    padding: 34px !important;
}

.cvi__results-head,
.cvi__grid3,
.cvi__grid2 {
    gap: 24px !important;
}

.cvi__panel {
    padding: 26px !important;
    box-shadow: none !important;
}

.cvi__modal-box {
    border-radius: 10px !important;
}

.cvb {
    padding: 132px 20px 70px !important;
    min-height: 80vh !important;
    background: #fff !important;
}

body.font-outfit .cvb {
    padding: 0 !important;
    min-height: auto !important;
    background: transparent !important;
}

.cvb__wrap {
    max-width: 1240px !important;
    grid-template-columns: minmax(0, 1fr) 318px !important;
    gap: 24px !important;
}

body.font-outfit .cvb__wrap {
    max-width: none !important;
}

.cvb__main {
    overflow: hidden !important;
}

.cvb__head {
    padding: 20px 28px !important;
    border-bottom: 1px solid rgba(255, 255, 255, .14) !important;
    background: var(--op-cv-dark) !important;
    color: #fff !important;
}

.cvb__avatar {
    width: 48px !important;
    height: 48px !important;
    border-radius: 50% !important;
    background: rgba(120, 235, 84, .16) !important;
    color: var(--op-cv-green) !important;
}

.cvb__head-meta strong {
    color: #fff !important;
    font-family: var(--title-font, "Outfit", sans-serif) !important;
    font-size: 18px !important;
    line-height: 24px !important;
    font-weight: 600 !important;
}

.cvb__head-meta span {
    color: rgba(255, 255, 255, .72) !important;
}

.cvb__dot {
    background: var(--op-cv-green) !important;
    box-shadow: none !important;
}

.cvb__head-btn {
    min-height: 40px !important;
    padding: 8px 18px !important;
    border-color: rgba(255, 255, 255, .28) !important;
    color: #fff !important;
}

.cvb__head-btn:not(.cvb__head-btn--ghost) {
    background: var(--op-cv-green) !important;
    border-color: var(--op-cv-green) !important;
    color: var(--op-cv-title) !important;
}

.cvb-mode-switch {
    padding: 18px 28px !important;
    border-bottom: 1px solid var(--op-cv-border) !important;
    gap: 12px !important;
}

.cvb-mode-switch__btn {
    min-height: 44px !important;
    padding: 10px 20px !important;
    border: 1px solid var(--op-cv-border) !important;
    border-radius: 40px !important;
    background: #fff !important;
    color: var(--op-cv-title) !important;
    font-family: var(--title-font, "Outfit", sans-serif) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}

.cvb-mode-switch__btn.is-active {
    border-color: var(--op-cv-green-2) !important;
    background: var(--op-cv-soft) !important;
    color: var(--op-cv-dark) !important;
}

.cvb-msg {
    margin: 24px 28px 0 !important;
    padding: 18px 20px !important;
    border: 1px solid var(--op-cv-border) !important;
    border-left: 4px solid var(--op-cv-green-2) !important;
    border-radius: 10px !important;
    background: #fff !important;
}

.cvb-msg__body p {
    color: var(--op-cv-text) !important;
    font-size: 15px !important;
    line-height: 24px !important;
}

.cvb-msg__body strong {
    color: var(--op-cv-title) !important;
}

.cvb-form {
    padding: 24px 28px 30px !important;
}

.cvb-section {
    margin-bottom: 18px !important;
    padding: 24px !important;
    border: 1px solid var(--op-cv-border) !important;
    border-radius: 10px !important;
    background: #fff !important;
}

.cvb-section legend {
    margin-bottom: 16px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--op-cv-title) !important;
    font-family: var(--title-font, "Outfit", sans-serif) !important;
    font-size: 20px !important;
    line-height: 28px !important;
    font-weight: 600 !important;
}

.cvb-section legend i {
    color: var(--op-cv-green-2) !important;
}

.cvb-row,
.cvb-item__row {
    gap: 16px !important;
}

.cvb-section label {
    color: var(--op-cv-title) !important;
    font-family: var(--title-font, "Outfit", sans-serif) !important;
    font-size: 14px !important;
    line-height: 22px !important;
    font-weight: 600 !important;
}

.cvb-section label > span {
    margin-bottom: 8px !important;
}

.cvb-section input[type="text"],
.cvb-section input[type="email"],
.cvb-section input[type="tel"],
.cvb-section input[type="url"],
.cvb-section input[type="date"],
.cvb-section textarea,
.cvb-ai__composer input {
    min-height: 52px !important;
    border: 1px solid var(--op-cv-border) !important;
    border-radius: 10px !important;
    padding: 12px 16px !important;
    background: #fff !important;
    color: var(--op-cv-title) !important;
    font-size: 15px !important;
    line-height: 24px !important;
}

.cvb-section textarea {
    min-height: 116px !important;
}

.cvb-section input:focus,
.cvb-section textarea:focus,
.cvb-ai__composer input:focus {
    border-color: var(--op-cv-green-2) !important;
    box-shadow: 0 0 0 3px rgba(120, 235, 84, .18) !important;
}

.cvb-add-btn {
    margin-top: 14px !important;
    min-height: 42px !important;
    padding: 9px 18px !important;
    border: 1px dashed var(--op-cv-green-2) !important;
    border-radius: 40px !important;
    background: #fff !important;
    color: var(--op-cv-green-2) !important;
    font-family: var(--title-font, "Outfit", sans-serif) !important;
    font-weight: 600 !important;
}

.cvb-item {
    margin-bottom: 12px !important;
    padding: 18px !important;
    border: 1px solid var(--op-cv-border) !important;
    border-radius: 10px !important;
    background: #fafafa !important;
}

.cvb-item__remove {
    border-radius: 50% !important;
}

.cvb-save__status {
    color: var(--op-cv-green-2) !important;
}

.cvb-ai {
    padding: 24px 28px 30px !important;
}

.cvb-ai__messages {
    min-height: 440px !important;
    border: 1px solid var(--op-cv-border) !important;
    border-radius: 10px !important;
    background: #fbfbfb !important;
}

.cvb-ai__msg {
    border-radius: 10px !important;
    font-size: 15px !important;
    line-height: 24px !important;
}

.cvb-ai__msg--assistant {
    border: 1px solid var(--op-cv-border) !important;
    background: #fff !important;
    color: var(--op-cv-title) !important;
}

.cvb-ai__msg--user {
    border: 1px solid var(--op-cv-green-2) !important;
    background: var(--op-cv-soft) !important;
    color: var(--op-cv-dark) !important;
}

.cvb-ai__composer {
    gap: 10px !important;
}

.cvb-ai__composer button {
    width: 52px !important;
    height: 52px !important;
    border-radius: 50% !important;
    background: var(--op-cv-green) !important;
    color: var(--op-cv-title) !important;
}

.cvb-ai__hint {
    color: var(--op-cv-text) !important;
}

.cvb__side {
    top: 24px !important;
    gap: 16px !important;
}

body.font-outfit .cvb__side {
    top: 84px !important;
}

.cvb-side-card {
    padding: 20px !important;
}

.cvb-user__avatar {
    background: var(--op-cv-dark) !important;
    color: var(--op-cv-green) !important;
}

.cvb-user strong,
.cvb-progress__head,
.cvb-level__info strong,
.cvb-badges h4 {
    color: var(--op-cv-title) !important;
    font-family: var(--title-font, "Outfit", sans-serif) !important;
    font-weight: 600 !important;
}

.cvb-user span,
.cvb-level__info span,
.cvb-level__next,
.cvb-badges__count,
.cvb-badge span {
    color: var(--op-cv-text) !important;
}

.cvb-progress__head strong {
    color: var(--op-cv-green-2) !important;
}

.cvb-progress__fill {
    background: var(--op-cv-green-2) !important;
}

.cvb-level__icon {
    border-radius: 50% !important;
    background: var(--op-cv-soft) !important;
    color: var(--op-cv-dark) !important;
}

.cvb-badges__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.cvb-badge {
    border: 1px solid var(--op-cv-border) !important;
    border-radius: 8px !important;
    background: #fff !important;
}

.cvb-badge.is-owned {
    border-color: rgba(69, 167, 53, .35) !important;
    background: var(--op-cv-soft) !important;
}

.cvb-dl-btn {
    width: 100% !important;
    min-height: 48px !important;
}

.cvb-dl-btn--preview {
    border-color: var(--op-cv-dark) !important;
    color: var(--op-cv-dark) !important;
}

.cv-paper-preview {
    padding: 132px 20px 70px !important;
    background: #fff !important;
    min-height: 80vh !important;
}

body.font-outfit .cv-paper-preview {
    padding: 0 !important;
    min-height: auto !important;
    background: transparent !important;
}

.cv-paper-toolbar {
    max-width: 960px !important;
    margin-bottom: 22px !important;
    padding: 18px 20px !important;
    border: 1px solid var(--op-cv-border) !important;
    border-radius: 10px !important;
    background: #fff !important;
    box-shadow: var(--op-cv-shadow) !important;
}

body.font-outfit .cv-paper-toolbar {
    max-width: none !important;
}

.cv-paper-toolbar h2 {
    color: var(--op-cv-title) !important;
    font-family: var(--title-font, "Outfit", sans-serif) !important;
    font-size: 28px !important;
    line-height: 36px !important;
    font-weight: 600 !important;
}

.cv-template-switch {
    border: 1px solid var(--op-cv-border) !important;
    border-radius: 40px !important;
    background: #fff !important;
    color: var(--op-cv-title) !important;
    font-family: var(--title-font, "Outfit", sans-serif) !important;
}

.cv-template-switch select {
    border: 1px solid var(--op-cv-border) !important;
    border-radius: 30px !important;
}

.btn-lite,
.btn-main {
    border-radius: 40px !important;
    font-family: var(--title-font, "Outfit", sans-serif) !important;
    font-weight: 600 !important;
}

.btn-lite {
    border-color: var(--op-cv-border) !important;
    background: #fff !important;
    color: var(--op-cv-title) !important;
}

.btn-main {
    border-color: var(--op-cv-green-2) !important;
    background: var(--op-cv-green) !important;
    color: var(--op-cv-title) !important;
}

.cv-paper {
    border-color: var(--op-cv-border) !important;
    box-shadow: var(--op-cv-shadow) !important;
}

.cv-paper-header {
    border-bottom-color: var(--op-cv-green-2) !important;
}

.cv-role,
.cv-paper-section h3 {
    color: var(--op-cv-green-2) !important;
}

.js .op-cv-reveal {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
    transition:
        opacity .55s ease,
        transform .55s ease,
        box-shadow .25s ease,
        border-color .25s ease;
    transition-delay: var(--op-cv-delay, 0ms);
    will-change: opacity, transform;
}

.js .op-cv-reveal.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.cvb-section.is-active {
    border-color: rgba(69, 167, 53, .45) !important;
    box-shadow: 0 0 0 3px rgba(120, 235, 84, .14) !important;
}

.cvi__drop.is-dragging {
    border-color: var(--op-cv-green-2) !important;
    box-shadow: var(--op-cv-shadow-hover) !important;
}

.cvw-choice.is-pressed,
.cv-mode-card.is-pressed,
.cvi__drop.is-pressed,
.cvb-side-card.is-pressed {
    transform: translateY(-2px) !important;
}

@media (prefers-reduced-motion: reduce) {
    .js .op-cv-reveal {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

@media (max-width: 991px) {
    .cvw,
    .cv-choice,
    .cvi {
        padding: 120px 16px 70px !important;
    }

    .op-page-content > .cv-choice,
    .op-page-content > .cvi {
        margin-top: -90px !important;
    }

    .cvw__hero h1,
    .cv-choice__hero h1,
    .cvi__hero h1 {
        font-size: 40px !important;
        line-height: 48px !important;
    }

    .cvw__choices,
    .cv-choice__grid,
    .cvi__layout,
    .cvb__wrap {
        grid-template-columns: 1fr !important;
    }

    .cvw__benefits-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .cvb {
        padding: 118px 16px 60px !important;
    }

    .cv-paper-preview {
        padding: 118px 16px 60px !important;
    }

    .cvb__side {
        position: static !important;
    }
}

@media (max-width: 575px) {
    .cvw__hero h1,
    .cv-choice__hero h1,
    .cvi__hero h1 {
        font-size: 32px !important;
        line-height: 40px !important;
    }

    .cvw__hero > p,
    .cv-choice__hero p,
    .cvi__hero p {
        font-size: 16px !important;
        line-height: 26px !important;
    }

    .cvw__choices,
    .cv-choice__grid,
    .cvi__layout,
    .cvw__benefits-grid {
        grid-template-columns: 1fr !important;
    }

    .cvw-choice__body,
    .cv-mode-card,
    .cvi__drop,
    .cvi__side-card,
    .cvb-form,
    .cvb-ai,
    .cvb__head,
    .cvb-mode-switch {
        padding-left: 18px !important;
        padding-right: 18px !important;
    }

    .cvw-perso {
        grid-template-columns: 1fr !important;
        text-align: center !important;
    }

    .cvw-perso__icon {
        margin: 0 auto !important;
    }

    .cvb__head {
        align-items: flex-start !important;
    }

    .cvb__head-btn {
        width: 100% !important;
    }
}

/* ==========================================================================
   Page "Comment ça marche" (cv-builder/how-it-works) — correctif layout.
   Le markup utilise un design (decor de fond, etapes, animations data-reveal)
   dont le CSS manquait : sans le JS de revele du dashboard, les elements
   data-reveal restaient invisibles (opacity:0) et le decor, non positionne,
   cassait le flux -> superposition des sections.
   ========================================================================== */

/* 1. Le JS de revele n'est pas charge sur le site public : on force la
   visibilite pour ne jamais dependre de l'animation. */
.cv-choice [data-reveal],
.cv-choice [data-reveal-group] > * {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
}

/* 2. Decor de fond sorti du flux (sinon il pousse/chevauche le contenu). */
.cv-choice {
    position: relative !important;
    overflow: hidden !important;
}
.cv-choice__bg {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    pointer-events: none !important;
    overflow: hidden !important;
}
.cv-choice__inner {
    position: relative !important;
    z-index: 1 !important;
}
.cv-choice__blob {
    position: absolute !important;
    border-radius: 50% !important;
    filter: blur(60px) !important;
    opacity: 0.5 !important;
}
.cv-choice__blob--1 {
    width: 320px !important;
    height: 320px !important;
    top: -80px !important;
    left: -60px !important;
    background: rgba(120, 235, 84, 0.18) !important;
}
.cv-choice__blob--2 {
    width: 360px !important;
    height: 360px !important;
    bottom: -120px !important;
    right: -80px !important;
    background: rgba(69, 167, 53, 0.14) !important;
}

/* 3. Etapes 01/02/03 : grille de cartes (etaient non stylees). */
.cv-choice__steps {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 22px !important;
    margin: 0 0 40px !important;
}
.cv-step {
    position: relative !important;
    padding: 28px !important;
    border: 1px solid var(--op-cv-border) !important;
    border-radius: 14px !important;
    background: #fff !important;
    box-shadow: var(--op-cv-shadow) !important;
    text-align: center !important;
}
.cv-step__num {
    font-family: var(--title-font, "Outfit", sans-serif) !important;
    font-weight: 700 !important;
    color: var(--op-cv-green-2) !important;
    font-size: 14px !important;
    letter-spacing: 0.12em !important;
    margin-bottom: 12px !important;
}
.cv-step__icon {
    width: 56px !important;
    height: 56px !important;
    margin: 0 auto 16px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 14px !important;
    background: var(--op-cv-green-2, #45a735) !important;
    color: #fff !important;
    font-size: 22px !important;
}
.cv-step h4 {
    margin: 0 0 8px !important;
    color: var(--op-cv-title) !important;
    font-family: var(--title-font, "Outfit", sans-serif) !important;
    font-size: 18px !important;
    font-weight: 600 !important;
}
.cv-step p {
    margin: 0 !important;
    color: var(--op-cv-text) !important;
    font-size: 14.5px !important;
    line-height: 23px !important;
}

@media (max-width: 768px) {
    .cv-choice__steps {
        grid-template-columns: 1fr !important;
    }
}

/* ==========================================================================
   Accessibilite : focus clavier visible.
   La couche ne posait aucun :focus-visible sur les elements interactifs
   (cartes, boutons, liens, chips) -> navigation clavier invisible.
   ========================================================================== */
.cvw-choice:focus-visible,
.cvw-perso:focus-visible,
.cv-mode-card:focus-visible,
.cv-choice__back:focus-visible,
.cvi__back:focus-visible,
.cv-mode-card__btn:focus-visible,
.cvi__btn:focus-visible,
.cvb__head-btn:focus-visible,
.cvb-dl-btn:focus-visible,
.cvb-mode-switch__btn:focus-visible,
.cvb-add-btn:focus-visible,
.cvb-ai__composer button:focus-visible,
.cv-template-chip:focus-visible,
.btn-lite:focus-visible,
.btn-main:focus-visible {
    outline: 3px solid rgba(120, 235, 84, .55) !important;
    outline-offset: 2px !important;
}

/* ==========================================================================
   Dark mode (layouts.candidate).
   jobaway-cv.css forcait tout en blanc (background:#fff !important) sans
   variante sombre : le theme sombre du candidat etait casse sur tout le
   parcours CV. On porte ici le palette sombre deja concu dans les <style>
   inline (que la couche ecrasait) : #0f1d13 fond, #1a2620 surfaces,
   #2a3a30 bordures, texte clair.
   ========================================================================== */
[data-theme="dark"] {
    --op-cv-soft: rgba(120, 235, 84, .12);
    --op-cv-border: #2a3a30;
    --op-cv-title: #f5f7f5;
    --op-cv-text: #a9b8ae;
    --op-cv-shadow: 0 0 80px rgba(0, 0, 0, .45);
    --op-cv-shadow-hover: 0 12px 70px rgba(0, 0, 0, .55);
}

/* Fond de page */
[data-theme="dark"] .cvw,
[data-theme="dark"] .cv-choice,
[data-theme="dark"] .cvi,
[data-theme="dark"] .cvb,
[data-theme="dark"] .cv-paper-preview {
    background: #0f1d13 !important;
    color: var(--op-cv-text) !important;
}

/* Surfaces : cartes, panneaux, boutons clairs */
[data-theme="dark"] .cvw-choice,
[data-theme="dark"] .cv-mode-card,
[data-theme="dark"] .cvi__drop,
[data-theme="dark"] .cvi__side-card,
[data-theme="dark"] .cvi__panel,
[data-theme="dark"] .cvi__results,
[data-theme="dark"] .cvi__error,
[data-theme="dark"] .cvb__main,
[data-theme="dark"] .cvb-side-card,
[data-theme="dark"] .cvw-perso,
[data-theme="dark"] .cvw-benefit,
[data-theme="dark"] .cvi__drop-doc,
[data-theme="dark"] .cvi__badges li,
[data-theme="dark"] .cvi__btn--ghost,
[data-theme="dark"] .cvb-mode-switch__btn,
[data-theme="dark"] .cvb-msg,
[data-theme="dark"] .cvb-section,
[data-theme="dark"] .cvb-ai__msg--assistant,
[data-theme="dark"] .cvb-badge,
[data-theme="dark"] .cv-paper-toolbar,
[data-theme="dark"] .cv-template-switch,
[data-theme="dark"] .btn-lite,
[data-theme="dark"] .cvb-add-btn,
[data-theme="dark"] .cv-step {
    background: #1a2620 !important;
}

/* Champs de saisie, items, fil de discussion : un cran plus sombre */
[data-theme="dark"] .cvb-section input[type="text"],
[data-theme="dark"] .cvb-section input[type="email"],
[data-theme="dark"] .cvb-section input[type="tel"],
[data-theme="dark"] .cvb-section input[type="url"],
[data-theme="dark"] .cvb-section input[type="date"],
[data-theme="dark"] .cvb-section textarea,
[data-theme="dark"] .cvb-ai__composer input,
[data-theme="dark"] .cvb-item,
[data-theme="dark"] .cvb-ai__messages {
    background: #131c16 !important;
    color: var(--op-cv-title) !important;
}

/* Visuels d'en-tete des cartes welcome */
[data-theme="dark"] .cvw-choice__visual,
[data-theme="dark"] .cvw-choice__visual--alt {
    background: #202b22 !important;
}

/* Icones/textes sur fond vert clair (--op-cv-soft) : passer au vert vif
   sinon le vert fonce (--op-cv-dark) est illisible sur la teinte sombre. */
[data-theme="dark"] .cvw-perso__icon,
[data-theme="dark"] .cvw-benefit__icon,
[data-theme="dark"] .cv-mode-card__icon,
[data-theme="dark"] .cvi__side-icon,
[data-theme="dark"] .cvi__cloud,
[data-theme="dark"] .cvb-level__icon,
[data-theme="dark"] .cvb-ai__msg--user,
[data-theme="dark"] .cvb-mode-switch__btn.is-active {
    color: var(--op-cv-green) !important;
}

/* Boutons a fond vert : garder un texte sombre (lisible sur vert clair). */
[data-theme="dark"] .cvi__btn--primary,
[data-theme="dark"] .cvi__btn--ai,
[data-theme="dark"] .cvb__head-btn:not(.cvb__head-btn--ghost),
[data-theme="dark"] .btn-main,
[data-theme="dark"] .cvb-ai__composer button {
    color: #0f1d13 !important;
}
