
:root{
    --paper:#f4efe5;
    --paper-2:#fffaf0;
    --ink:#20302e;
    --muted:#69736d;
    --line:#d8d0c2;
    --leaf:#55725d;
    --leaf-dark:#385342;
    --clay:#be6248;
    --cobalt:#38567c;
    --mustard:#c49b3d;
    --shadow:0 22px 60px rgba(37,45,39,.10);
    --radius:22px;
    --radius-sm:14px;
    --max:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    margin:0;
    color:var(--ink);
    background:
        radial-gradient(circle at 8% 4%,rgba(196,155,61,.13),transparent 22rem),
        radial-gradient(circle at 96% 14%,rgba(190,98,72,.09),transparent 28rem),
        var(--paper);
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    line-height:1.55;
}
a{color:inherit}
button,input,select,textarea{font:inherit}
.shell{width:min(calc(100% - 36px),var(--max));margin-inline:auto}
.shell-narrow{width:min(calc(100% - 36px),760px);margin-inline:auto}
.public-header{
    min-height:104px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}
.brand{text-decoration:none;display:flex;flex-direction:column;line-height:1.05}
.brand-org,.brand-mini{font-size:.72rem;letter-spacing:.22em;font-weight:850}
.brand-project{font-family:Georgia,"Times New Roman",serif;font-size:1.46rem;margin-top:8px}
.brand-project em{font-weight:400}
.admin-link{font-size:.85rem;color:var(--muted);text-decoration:none;border-bottom:1px solid transparent}
.admin-link:hover{border-color:currentColor}
.form-shell{padding:16px 0 80px}
#candidate-form{position:relative}
.form-step{
    display:none;
    background:rgba(255,250,240,.84);
    border:1px solid rgba(32,48,46,.10);
    border-radius:var(--radius);
    padding:clamp(28px,5vw,64px);
    min-height:610px;
    box-shadow:var(--shadow);
    backdrop-filter:blur(8px);
}
.no-js .form-step{display:block;margin-bottom:22px;min-height:auto}
.form-step.is-active{display:block;animation:stepIn .25s ease-out}
@keyframes stepIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.hero-step{position:relative;overflow:hidden}
.hero-step:before{
    content:"";position:absolute;width:230px;height:230px;border:36px solid rgba(85,114,93,.11);
    border-radius:48% 52% 49% 51%;right:-65px;top:-75px;transform:rotate(18deg)
}
.eyebrow,.step-kicker{
    margin:0 0 12px;
    text-transform:uppercase;
    font-weight:800;
    letter-spacing:.13em;
    font-size:.72rem;
    color:var(--clay)
}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.07;font-weight:500;margin-top:0}
h1{font-size:clamp(2.7rem,7vw,5.7rem);letter-spacing:-.04em;max-width:900px;margin-bottom:26px}
h2{font-size:clamp(2rem,4vw,3.35rem);letter-spacing:-.025em;max-width:850px;margin-bottom:22px}
h3{font-size:1.7rem}
.hero-text,.lede{font-size:clamp(1.07rem,2vw,1.36rem);max-width:820px;color:#34433f}
.journey{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:38px 0 26px}
.journey article{padding:20px;border:1px solid var(--line);border-radius:var(--radius-sm);background:rgba(255,255,255,.37)}
.journey h2{font-size:1.5rem;margin:8px 0}
.journey p{margin:0;color:#4d5b56;font-size:.94rem}
.journey-number{font-size:.72rem;font-weight:800;letter-spacing:.1em;color:var(--leaf)}
.info-note,.circle2-box{
    padding:18px 20px;border-left:4px solid var(--mustard);
    border-radius:0 var(--radius-sm) var(--radius-sm) 0;
    background:rgba(196,155,61,.09);max-width:850px
}
.circle2-box{margin:26px 0;background:rgba(85,114,93,.07);border-color:var(--leaf)}
.circle2-box h3{margin:0 0 10px}
.circle2-box p:last-child{margin-bottom:0}
.step-actions{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:36px}
.start-actions{justify-content:flex-start}
.btn{
    appearance:none;border:1px solid transparent;border-radius:999px;padding:13px 20px;
    font-weight:780;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;
    justify-content:center;gap:9px;transition:.18s ease
}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:var(--ink);color:white}
.btn.primary:hover{background:var(--leaf-dark)}
.btn.ghost{background:transparent;border-color:#b9b0a2;color:var(--ink)}
.btn.danger{background:#8b3d35;color:white}
.btn.small-btn{font-size:.82rem;padding:8px 12px}
.btn.wide{width:100%}
.helper{max-width:760px;color:var(--muted);margin-top:-6px;margin-bottom:25px}
.small{font-size:.85rem}
.muted-text{color:var(--muted);font-weight:400}
label{display:block;font-weight:690;margin:20px 0 8px}
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=password],select,textarea{
    width:100%;margin-top:7px;padding:13px 14px;border:1px solid #c9c0b1;
    border-radius:12px;background:rgba(255,255,255,.72);color:var(--ink);outline:none;
    transition:border .15s,box-shadow .15s
}
input:focus,select:focus,textarea:focus{border-color:var(--leaf);box-shadow:0 0 0 3px rgba(85,114,93,.14)}
textarea{resize:vertical}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.span-2{grid-column:1/-1}
fieldset{border:1px solid var(--line);border-radius:15px;padding:18px 20px;margin:0}
legend{font-weight:800;padding:0 8px}
.stack-lg{display:grid;gap:22px}
.radio-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.radio-cards.compact{grid-template-columns:repeat(2,1fr)}
.radio-card{margin:0;cursor:pointer;position:relative}
.radio-card input{position:absolute;opacity:0}
.radio-card span{
    display:flex;flex-direction:column;min-height:110px;justify-content:center;padding:18px;
    border:1.5px solid var(--line);border-radius:15px;background:rgba(255,255,255,.42);
    transition:.16s ease
}
.radio-card small{color:var(--muted);font-weight:500;margin-top:4px}
.radio-card input:checked+span{border-color:var(--leaf);box-shadow:0 0 0 3px rgba(85,114,93,.13);background:rgba(85,114,93,.07)}
.radio-list{display:grid;gap:9px;margin:18px 0 24px}
.radio-list label{margin:0;padding:12px 14px;background:rgba(255,255,255,.45);border:1px solid var(--line);border-radius:12px;cursor:pointer}
.radio-list input{margin-right:8px}
.interest-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.interest-card{position:relative;margin:0;cursor:pointer;min-height:118px}
.interest-card input{position:absolute;opacity:0}
.interest-card>span:last-child{
    display:flex;flex-direction:column;height:100%;justify-content:center;padding:20px 20px 20px 54px;
    border:1.5px solid var(--line);border-radius:16px;background:rgba(255,255,255,.43);transition:.16s ease
}
.interest-card small{font-weight:500;color:var(--muted);margin-top:4px}
.interest-mark{
    position:absolute;z-index:2;left:18px;top:50%;transform:translateY(-50%);
    width:20px;height:20px;border:1.5px solid #a99f91;border-radius:6px
}
.interest-card input:checked~.interest-mark{background:var(--leaf);border-color:var(--leaf)}
.interest-card input:checked~.interest-mark:after{content:"✓";color:white;font-size:.8rem;position:absolute;left:4px;top:0}
.interest-card input:checked~span:last-child{border-color:var(--leaf);background:rgba(85,114,93,.07)}
.pill-choices{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0 28px}
.pill-choices label{margin:0;cursor:pointer}
.pill-choices input{position:absolute;opacity:0}
.pill-choices span{display:block;border:1px solid var(--line);border-radius:999px;padding:10px 15px;background:rgba(255,255,255,.42)}
.pill-choices input:checked+span{background:var(--ink);border-color:var(--ink);color:white}
.conditional{display:none;margin-top:22px}
.conditional.is-visible{display:block}
.consent-box{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.35)}
.consent-box input{margin-top:5px;flex:0 0 auto}
.privacy-details{margin-top:16px;color:var(--muted);font-size:.89rem}
.privacy-details summary{cursor:pointer;color:var(--ink);font-weight:700}
.progress-wrap{margin-top:18px;display:flex;align-items:center;gap:14px;padding:0 4px}
.progress-track{height:5px;background:rgba(32,48,46,.12);border-radius:99px;overflow:hidden;flex:1}
.progress-bar{height:100%;width:0;background:var(--clay);transition:width .25s ease}
.progress-label{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);white-space:nowrap}
.field-error{border-color:#a83e33!important;box-shadow:0 0 0 3px rgba(168,62,51,.12)!important}
.group-error{outline:2px solid rgba(168,62,51,.6);outline-offset:4px;border-radius:14px}
.error-message{color:#9b3e36;font-size:.84rem;font-weight:650;margin-top:7px}
.hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important}
.alert{padding:14px 16px;border-radius:13px;margin-bottom:18px;background:#eef2ed;border:1px solid #cfd8cf}
.alert.error{background:#f7e9e6;border-color:#e3b8b1;color:#7c302a}
.alert.success{background:#e8f2e8;border-color:#b8d3b9}
.alert.warning{background:#f8f0dc;border-color:#e3cd93}
.public-footer{display:flex;justify-content:space-between;gap:20px;padding:0 0 34px;font-size:.78rem;color:var(--muted)}
.install-page,.admin-page{min-height:100vh}
.install-page .shell-narrow{padding:48px 0}
.install-card,.admin-card{
    margin-top:16px;background:var(--paper-2);border:1px solid var(--line);
    border-radius:var(--radius);padding:clamp(24px,5vw,48px);box-shadow:var(--shadow)
}
.install-card h1{font-size:clamp(2.2rem,6vw,4rem)}
.choice-inline{display:flex;gap:20px;flex-wrap:wrap}
.choice-inline label{margin:5px 0}
code{background:#ebe4d7;padding:2px 6px;border-radius:5px}
.button-row{display:flex;gap:10px;flex-wrap:wrap}

/* Admin */
.admin-top{
    min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:18px;
    border-bottom:1px solid rgba(32,48,46,.09)
}
.admin-brand{text-decoration:none;font-weight:850;letter-spacing:.02em}
.admin-nav{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.admin-main{padding:32px 0 70px}
.admin-main h1{font-size:clamp(2.2rem,5vw,4rem);margin-bottom:24px}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}
.kpi{
    background:var(--paper-2);border:1px solid var(--line);border-radius:15px;padding:17px
}
.kpi strong{display:block;font-family:Georgia,serif;font-size:2.2rem;line-height:1}
.kpi span{font-size:.79rem;color:var(--muted)}
.filters{
    background:rgba(255,250,240,.75);border:1px solid var(--line);border-radius:16px;
    padding:14px;display:grid;grid-template-columns:1.6fr repeat(5,minmax(125px,1fr));gap:8px;margin-bottom:16px
}
.filters input,.filters select{margin:0;padding:9px 10px}
.table-wrap{overflow:auto;background:var(--paper-2);border:1px solid var(--line);border-radius:16px}
.admin-table{width:100%;border-collapse:collapse;min-width:900px}
.admin-table th,.admin-table td{text-align:left;padding:13px 14px;border-bottom:1px solid #e7dfd2;vertical-align:top}
.admin-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#eee7db}
.admin-table tr:last-child td{border-bottom:0}
.admin-table a{text-decoration:none;font-weight:750}
.badge{
    display:inline-block;border-radius:999px;padding:4px 8px;font-size:.72rem;font-weight:760;
    background:#e5ece8;color:#3d5947
}
.badge.success{background:#dfeee0;color:#2e5b34}
.badge.warning{background:#f4e9ca;color:#735912}
.badge.muted{background:#e9e6e0;color:#68635b}
.badge.info{background:#e1e9f2;color:#3a5371}
.tag{display:inline-block;font-size:.7rem;border:1px solid #d3cbbf;border-radius:999px;padding:2px 6px;margin:1px 2px 1px 0}
.detail-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:18px}
.detail-card{background:var(--paper-2);border:1px solid var(--line);border-radius:16px;padding:22px}
.detail-card h2{font-size:1.6rem}
.detail-list{display:grid;grid-template-columns:160px 1fr;gap:10px 16px;margin:0}
.detail-list dt{color:var(--muted);font-size:.82rem;font-weight:700}
.detail-list dd{margin:0}
.admin-form label{margin:14px 0}
.danger-zone{margin-top:18px;padding-top:18px;border-top:1px dashed #d0b8b1}
.login-wrap{width:min(calc(100% - 36px),500px);margin:10vh auto}
.login-wrap h1{font-size:3rem}
.empty-state{padding:38px;text-align:center;color:var(--muted)}
.pagination-note{font-size:.8rem;color:var(--muted);margin-top:10px}

@media (max-width:900px){
    .journey,.kpi-grid{grid-template-columns:1fr 1fr}
    .journey article:last-child{grid-column:1/-1}
    .filters{grid-template-columns:1fr 1fr}
    .filters input:first-child{grid-column:1/-1}
    .detail-grid{grid-template-columns:1fr}
}
@media (max-width:700px){
    .shell{width:min(calc(100% - 22px),var(--max))}
    .public-header{min-height:86px}
    .admin-link{display:none}
    .brand-project{font-size:1.12rem}
    .form-shell{padding-top:0}
    .form-step{padding:26px 20px;min-height:calc(100vh - 145px);border-radius:18px}
    h1{font-size:clamp(2.5rem,13vw,4.4rem)}
    h2{font-size:clamp(2rem,9vw,3rem)}
    .journey,.radio-cards,.radio-cards.compact,.interest-grid,.grid-2,.kpi-grid{grid-template-columns:1fr}
    .journey article:last-child{grid-column:auto}
    .radio-card span{min-height:86px}
    .step-actions{position:sticky;bottom:0;background:linear-gradient(transparent,var(--paper-2) 24%);padding-top:24px;margin-top:22px}
    .btn{padding:12px 16px}
    .progress-wrap{position:sticky;bottom:0}
    .public-footer{flex-direction:column}
    .filters{grid-template-columns:1fr}
    .filters input:first-child{grid-column:auto}
    .detail-list{grid-template-columns:1fr;gap:2px}
    .detail-list dd{margin-bottom:10px}
}


/* --- Instagram / carrousel style adaptation --- */
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&display=swap');
body.public-page{
    --cobalt:#0f49c9;
    --ink:#213250;
    --paper:#f5efe4;
    --paper-2:#fbf6ee;
    --clay:#c86a4c;
    position:relative;
    overflow-x:hidden;
    background:var(--paper);
    color:var(--ink);
}
body.public-page:before,
body.public-page:after{content:none}
.public-header,
.form-shell,
.public-footer{position:relative;z-index:1}
.public-header{min-height:88px;padding-top:16px}
.brand{gap:6px}
.brand-org,.brand-mini{
    font-size:.78rem;
    letter-spacing:.2em;
    font-weight:900;
    color:var(--cobalt);
}
.brand-project{
    font-family:'Barlow Condensed', 'Arial Narrow', 'Franklin Gothic Medium', Arial, sans-serif;
    font-size:1.42rem;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--cobalt);
}
.brand-project em{font-style:normal;font-weight:800}
.admin-link{color:var(--cobalt);font-weight:800}
.form-step{
    position:relative;
    overflow:hidden;
    background:rgba(255,255,255,.72);
    border:1px solid rgba(15,73,201,.10);
    box-shadow:0 18px 42px rgba(33,50,80,.08);
    backdrop-filter:none;
}
.form-step:before{
    content:'';
    position:absolute;
    left:0;top:0;bottom:0;width:8px;
    background:var(--cobalt);
    opacity:.95;
}
.form-step:after{content:none}
.hero-step:before{
    width:210px;height:190px;right:auto;left:-52px;top:-24px;
    background:
      linear-gradient(112deg, transparent 0 28%, rgba(15,73,201,.98) 29% 40%, transparent 41% 100%),
      linear-gradient(112deg, transparent 0 46%, rgba(15,73,201,.84) 47% 56%, transparent 57% 100%);
    border:none;border-radius:0;transform:rotate(-6deg);opacity:.9;
}
.eyebrow,.step-kicker{
    color:var(--clay);
    font-size:.78rem;
    letter-spacing:.14em;
    font-weight:900;
}
body.public-page h1,
body.public-page h2,
body.public-page h3{
    font-family:'Barlow Condensed', 'Arial Narrow', 'Franklin Gothic Medium', Arial, sans-serif;
    text-transform:uppercase;
    letter-spacing:.02em;
    line-height:.96;
    font-weight:700;
    color:var(--cobalt);
}
body.public-page h1{font-size:clamp(2.6rem,7vw,5rem);max-width:940px;margin-bottom:18px}
body.public-page h2{font-size:clamp(1.95rem,4.8vw,2.95rem);max-width:920px;margin-bottom:16px}
body.public-page h3{font-size:1.5rem}
.hero-text,.lede,.helper,
.journey p,
.small,
.muted-text,
label,
.privacy-details,
.public-footer,
.progress-label,
.radio-card small,
.interest-card small,
.journey-number,
.info-note,
.circle2-box,
.radio-list label,
.detail-list dt,
.detail-list dd,
.kpi span,
.admin-table th,
.admin-table td,
.filters input,
.filters select,
.pill-choices span,
input,select,textarea,button{
    font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Inter,Arial,sans-serif;
}
.hero-text,.lede{font-size:clamp(1.03rem,2vw,1.25rem);color:#263754;max-width:820px}
.journey{gap:14px}
.journey article,
.radio-card span,
.interest-card>span:last-child,
.radio-list label,
.consent-box,
.info-note,
.circle2-box{
    background:rgba(255,255,255,.84);
    border:1.5px solid rgba(15,73,201,.10);
    box-shadow:none;
}
.journey article{border-radius:16px}
.journey-number{color:var(--clay);font-weight:900;letter-spacing:.14em}
.journey h2{font-size:1.34rem;margin:10px 0 8px}
.info-note,.circle2-box{border-left:5px solid var(--clay);background:rgba(255,255,255,.86)}
.circle2-box h3{color:var(--cobalt)}
.btn{
    border-radius:999px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
}
.btn.primary{background:var(--cobalt);color:#fff;box-shadow:none}
.btn.primary:hover{background:#0b3da8}
.btn.ghost{background:rgba(255,255,255,.88);border-color:rgba(15,73,201,.22);color:var(--cobalt)}
label{font-weight:800;color:var(--cobalt)}
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=password],select,textarea{
    background:#fff;
    border:1.5px solid rgba(15,73,201,.16);
    color:#22324f;
    border-radius:14px;
}
input:focus,select:focus,textarea:focus{border-color:var(--cobalt);box-shadow:0 0 0 4px rgba(15,73,201,.10)}
.radio-card input:checked+span,
.interest-card input:checked~span:last-child{border-color:var(--cobalt);box-shadow:0 0 0 3px rgba(15,73,201,.10);background:rgba(15,73,201,.05)}
.interest-mark{border-color:rgba(15,73,201,.35);border-radius:50%}
.interest-card input:checked~.interest-mark{background:var(--cobalt);border-color:var(--cobalt)}
.pill-choices span{background:#fff;border:1.5px solid rgba(15,73,201,.15);color:var(--cobalt);font-weight:700}
.pill-choices input:checked+span{background:var(--cobalt);border-color:var(--cobalt);color:#fff}
.progress-track{height:8px;background:rgba(15,73,201,.08)}
.progress-bar{background:var(--cobalt)}
.progress-label{color:var(--cobalt);font-weight:800;letter-spacing:.14em}
.public-footer{color:#40506b;padding-top:8px}
.public-footer span:first-child{font-weight:700}
@media (max-width:700px){
    body.public-page h1{font-size:clamp(2.2rem,12vw,3.8rem)}
    body.public-page h2{font-size:clamp(1.8rem,9vw,2.5rem)}
    .form-step:before{width:6px}
}
