/* ============================================================
   Casa Verde — Careers page (loaded only on /careers)
   Mobile-first. Uses site tokens from styles.css.
   ============================================================ */
.cr-page{
    --cr-accent:var(--orange,#e25b2d);
    --cr-accent-dark:#c4461c;
    --cr-green:var(--primary,#2D7A4F);
    --cr-surface:var(--card-bg,#fff);
    --cr-bg-alt:#faf7f2;
    --cr-text:var(--text,#1a1a1a);
    --cr-muted:var(--text-light,#666);
    --cr-line:var(--border,#e0e0e0);
    --cr-error:#c62828;
    --cr-radius:14px;
    color:var(--cr-text);
    font-family:'Montserrat',sans-serif;
    overflow-x:hidden;
}
[data-theme="dark"] .cr-page{--cr-bg-alt:#181818;--cr-line:#333}
.cr-page [hidden]{display:none!important}

.cr-page h1,.cr-page h2,.cr-page h3{font-family:'Playfair Display',serif;line-height:1.15;margin:0}
.cr-page p{margin:0}
.cr-section{padding:56px 0}
.cr-section-alt{background:var(--cr-bg-alt)}
.cr-muted{color:var(--cr-muted);font-size:14px;margin-top:14px}
.cr-muted a{color:var(--cr-green);font-weight:600}

/* ---------- Buttons ---------- */
.cr-btn{
    display:inline-flex;align-items:center;justify-content:center;gap:10px;
    min-height:48px;padding:12px 24px;border-radius:999px;border:2px solid transparent;
    font:700 15px/1 'Montserrat',sans-serif;letter-spacing:.3px;text-decoration:none;cursor:pointer;
    transition:background .2s,color .2s,border-color .2s,transform .1s;
}
.cr-btn:active{transform:scale(.98)}
.cr-btn[disabled]{opacity:.6;cursor:wait}
.cr-btn-primary{background:var(--cr-accent);color:#fff}
.cr-btn-primary:hover{background:var(--cr-accent-dark);color:#fff}
.cr-btn-ghost{background:transparent;color:var(--cr-text);border-color:var(--cr-line)}
.cr-btn-ghost:hover{border-color:var(--cr-text)}
.cr-link{background:none;border:0;color:var(--cr-accent);font-weight:700;text-decoration:underline;cursor:pointer;padding:4px;font-size:inherit}

/* ---------- Hero ---------- */
.cr-hero{background:linear-gradient(180deg,#fff7f1 0%,var(--cr-surface) 100%);padding:28px 0 0}
[data-theme="dark"] .cr-hero{background:linear-gradient(180deg,#1d1612 0%,var(--body-bg,#121212) 100%)}
.cr-hero-inner{display:grid;gap:24px;align-items:end}
.cr-hero-text{padding-bottom:8px}
.cr-script{font-family:'Crustaceans Signature','Playfair Display',serif;color:var(--cr-accent);font-size:44px;line-height:1;transform:rotate(-4deg);display:inline-block}
.cr-hero h1{font-family:'Montserrat',sans-serif;font-weight:700;text-transform:uppercase;font-size:clamp(40px,11vw,72px);letter-spacing:-1px;line-height:.95}
.cr-hero-tag{display:inline-block;margin-top:12px;background:var(--cr-accent);color:#fff;font-weight:700;text-transform:uppercase;padding:6px 14px;border-radius:4px;transform:rotate(-2deg);font-size:15px;letter-spacing:.5px}
.cr-hero-count{font-weight:700;text-transform:uppercase;font-size:22px;margin-top:14px}
.cr-hero-count strong{font-size:40px;color:var(--cr-accent);vertical-align:-4px;margin-right:6px}
.cr-hero-lead{margin-top:14px;font-size:16px;line-height:1.6;color:var(--cr-muted);max-width:520px}
.cr-hero-lead strong{color:var(--cr-text)}
.cr-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.cr-hero-actions .cr-btn{flex:1 1 160px}
.cr-hero-media{position:relative;justify-self:center;max-width:460px;width:100%}
.cr-hero-media img{display:block;width:100%;height:auto;border-radius:var(--cr-radius) var(--cr-radius) 0 0}
.cr-free-badge{
    position:absolute;left:-6px;bottom:22px;background:#fff;color:var(--cr-accent);
    border:3px solid var(--cr-accent);border-radius:50%;width:104px;height:104px;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    font:700 12px/1.1 'Montserrat',sans-serif;text-transform:uppercase;text-align:center;
    box-shadow:0 8px 24px rgba(0,0,0,.15);transform:rotate(-8deg);
}
.cr-free-badge span{font-size:26px;font-family:'Playfair Display',serif}

/* ---------- Headings / program ---------- */
.cr-heading{text-align:center;max-width:640px;margin:0 auto 32px}
.cr-heading h1,.cr-heading h2{font-size:clamp(28px,6vw,40px);color:var(--cr-green)}
.cr-back-link{display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;color:var(--cr-muted);font-weight:600;font-size:14px;text-decoration:none}
.cr-back-link:hover{color:var(--cr-accent)}
.cr-page-apply>.cr-section:first-child{padding-top:32px}
.cr-heading p:not(.cr-eyebrow){margin-top:12px;color:var(--cr-muted);line-height:1.6}
.cr-eyebrow{color:var(--cr-accent);font-weight:700;text-transform:uppercase;letter-spacing:1.5px;font-size:12px;margin-bottom:8px}
.cr-roles{display:grid;gap:16px}
.cr-role{background:var(--cr-surface);border:1px solid var(--cr-line);border-radius:var(--cr-radius);padding:24px;text-align:center}
.cr-role-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:#fff1ea;color:var(--cr-accent);font-size:26px;margin-bottom:14px}
[data-theme="dark"] .cr-role-icon{background:#2a1c15}
.cr-role h3{font-family:'Montserrat',sans-serif;text-transform:uppercase;font-size:18px;letter-spacing:1px}
.cr-role p{margin-top:8px;color:var(--cr-muted);line-height:1.6;font-size:15px}

/* ---------- Requirements / how it works ---------- */
.cr-two-col{display:grid;gap:20px}
.cr-card{background:var(--cr-surface);border:1px solid var(--cr-line);border-radius:var(--cr-radius);padding:26px}
.cr-card h2{font-size:26px;color:var(--cr-green);margin-bottom:16px}
.cr-requirements{background:#1c1c1c;color:#fff;border-color:#1c1c1c}
.cr-requirements h2{color:var(--cr-accent);font-family:'Montserrat',sans-serif;text-transform:uppercase;font-size:22px}
.cr-requirements .cr-muted{color:#bbb}
.cr-checklist{list-style:none;margin:0;padding:0;display:grid;gap:14px;font-size:17px}
.cr-checklist i{color:var(--cr-accent);margin-right:10px;font-size:20px;vertical-align:-2px}
.cr-steps-list{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.cr-steps-list li{display:flex;gap:14px;align-items:flex-start;line-height:1.5}
.cr-steps-list li>span{flex:0 0 34px;height:34px;border-radius:50%;background:var(--cr-green);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center}
.cr-steps-list li div{color:var(--cr-muted);font-size:15px}
.cr-steps-list strong{color:var(--cr-text)}

/* ---------- Application form ---------- */
.cr-apply-wrap{max-width:760px}
.cr-form{background:var(--cr-surface);border:1px solid var(--cr-line);border-radius:var(--cr-radius);padding:20px 16px;box-shadow:0 10px 30px rgba(0,0,0,.05)}
.cr-req{color:var(--cr-accent);font-weight:700}
.cr-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.cr-progress{list-style:none;margin:0 0 22px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;counter-reset:none}
.cr-progress li{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--cr-muted);text-align:center;position:relative}
.cr-progress li span{width:32px;height:32px;border-radius:50%;border:2px solid var(--cr-line);background:var(--cr-surface);display:flex;align-items:center;justify-content:center;font-weight:700;z-index:1}
.cr-progress li em{font-style:normal}
.cr-progress li:not(:last-child)::after{content:"";position:absolute;top:16px;left:calc(50% + 18px);right:calc(-50% + 18px);height:2px;background:var(--cr-line)}
.cr-progress li.is-active{color:var(--cr-text)}
.cr-progress li.is-active span{border-color:var(--cr-accent);color:var(--cr-accent)}
.cr-progress li.is-done span{background:var(--cr-green);border-color:var(--cr-green);color:#fff}
.cr-progress li.is-done::after{background:var(--cr-green)}
.cr-form:not(.cr-js) .cr-progress{display:none}

.cr-step{border:0;margin:0;padding:0;min-width:0}
.cr-step legend{padding:0;margin-bottom:18px;width:100%}
.cr-step legend .cr-en{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--cr-green);display:block}
.cr-step legend .cr-fr{font-size:13px}
.cr-form.cr-js .cr-step:not(.is-active){display:none}
.cr-form:not(.cr-js) .cr-step+.cr-step{margin-top:36px;padding-top:28px;border-top:1px solid var(--cr-line)}

.cr-row{display:grid;gap:0 16px}
.cr-field{margin-bottom:18px}
.cr-label{display:block;margin-bottom:8px;font-weight:600;font-size:15px}
.cr-en{display:block}
.cr-fr{display:block;font-weight:400;font-size:12.5px;color:var(--cr-muted);font-style:italic;margin-top:1px}
.cr-label .cr-en,.cr-label .cr-fr{display:inline}
.cr-label .cr-fr::before{content:" · "}
.cr-fr-inline{font-weight:400;font-size:12.5px;color:var(--cr-muted);font-style:italic}
.cr-hint{font-size:12.5px;color:var(--cr-muted);margin-top:6px}

.cr-form input[type=text],.cr-form input[type=tel],.cr-form input[type=email],
.cr-form input[type=date],.cr-form input[type=number],.cr-form textarea{
    width:100%;min-height:48px;padding:12px 14px;border:1.5px solid var(--cr-line);border-radius:10px;
    background:var(--cr-surface);color:var(--cr-text);font:400 16px/1.4 'Montserrat',sans-serif; /* 16px avoids iOS zoom */
    transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none;
}
.cr-form textarea{resize:vertical;min-height:96px}
.cr-form input:focus,.cr-form textarea:focus{outline:none;border-color:var(--cr-green);box-shadow:0 0 0 3px rgba(45,122,79,.15)}
.cr-field.has-error input:not([type=radio]):not([type=checkbox]),.cr-field.has-error textarea{border-color:var(--cr-error);box-shadow:0 0 0 3px rgba(198,40,40,.12)}
.cr-error{color:var(--cr-error);font-size:13px;font-weight:600;margin-top:6px;min-height:0}
.cr-error:empty{display:none}

/* Choice cards & segmented buttons (radio/checkbox styled as buttons) */
.cr-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.cr-choice,.cr-seg label{position:relative;cursor:pointer;display:block}
.cr-choice input,.cr-seg input,.cr-confirm input{position:absolute;opacity:0;width:1px;height:1px}
.cr-choice-card>span{
    display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;
    padding:14px 6px;border:1.5px solid var(--cr-line);border-radius:12px;min-height:96px;justify-content:center;
    font-weight:700;font-size:14px;transition:all .15s;
}
.cr-choice-card i{font-size:22px;color:var(--cr-muted)}
.cr-choice-card .cr-en,.cr-choice-card .cr-fr{display:block}
.cr-choice-card .cr-fr{font-size:11px}
.cr-choice-card input:checked+span{border-color:var(--cr-accent);background:#fff4ee;box-shadow:inset 0 0 0 1px var(--cr-accent)}
[data-theme="dark"] .cr-choice-card input:checked+span{background:#2a1c15}
.cr-choice-card input:checked+span i{color:var(--cr-accent)}
.cr-choice-card input:checked+span::after{content:"\f00c";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;top:8px;right:10px;color:var(--cr-accent);font-size:13px}

.cr-seg{display:grid;gap:8px}
.cr-seg-2{grid-template-columns:1fr 1fr}
.cr-seg-3{grid-template-columns:repeat(3,1fr);gap:6px}
.cr-seg-wrap{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.cr-seg label>span{
    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
    min-height:48px;padding:8px 10px;border:1.5px solid var(--cr-line);border-radius:10px;
    font-weight:600;font-size:14px;transition:all .15s;line-height:1.25;
}
.cr-seg input:checked+span{border-color:var(--cr-green);background:var(--cr-green);color:#fff}
.cr-seg input:focus-visible+span,.cr-choice input:focus-visible+span,.cr-confirm input:focus-visible+span{outline:2px solid var(--cr-accent);outline-offset:2px}
.cr-seg-3 label>span{min-height:52px;padding:6px 4px}
.cr-seg-3 b{font-size:16px}
.cr-seg-3 small{font-size:10.5px;font-weight:500;opacity:.85}
.cr-field.has-error .cr-seg label>span,.cr-field.has-error .cr-choice-card>span{border-color:var(--cr-error)}

/* Languages */
.cr-langs{margin-top:6px}
.cr-lang{border:1px solid var(--cr-line);border-radius:12px;padding:14px;margin-top:12px}
.cr-lang-name{margin-bottom:10px;font-size:16px}
.cr-lang-other .cr-lang-name .cr-field{margin-bottom:0}
.cr-lang-skill{margin-bottom:10px}
.cr-lang-skill:last-child{margin-bottom:0}
.cr-skill-label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--cr-muted)}

/* File upload */
.cr-file-input{position:absolute;opacity:0;width:1px;height:1px}
.cr-file{
    display:flex;align-items:center;gap:12px;padding:16px;border:2px dashed var(--cr-line);border-radius:12px;
    cursor:pointer;color:var(--cr-muted);font-size:14px;transition:border-color .15s;
}
.cr-file i{font-size:24px;color:var(--cr-green)}
.cr-file:hover,.cr-file-input:focus-visible+.cr-file{border-color:var(--cr-green)}
.cr-file.has-file{border-style:solid;border-color:var(--cr-green);color:var(--cr-text)}

/* Review + confirm */
.cr-review{background:var(--cr-bg-alt);border-radius:12px;padding:16px;margin:4px 0 20px}
.cr-review h3{font-size:18px;margin-bottom:10px}
.cr-review-group{border-top:1px solid var(--cr-line);padding-top:10px;margin-top:10px}
.cr-review-group:first-child{border-top:0;margin-top:0;padding-top:0}
.cr-review-head{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:14px;margin-bottom:6px}
.cr-review dl{display:grid;grid-template-columns:minmax(110px,40%) 1fr;gap:4px 12px;margin:0;font-size:14px}
.cr-review dt{color:var(--cr-muted)}
.cr-review dd{margin:0;word-break:break-word;white-space:pre-line}
.cr-confirm{display:flex;gap:12px;align-items:flex-start;cursor:pointer;padding:14px;border:1.5px solid var(--cr-line);border-radius:12px;position:relative}
.cr-confirm>span:last-child{flex:1}
.cr-confirm::before{
    content:"";flex:0 0 24px;height:24px;border:2px solid var(--cr-line);border-radius:6px;margin-top:1px;
    background:var(--cr-surface) center/14px no-repeat;
}
.cr-confirm:has(input:checked){border-color:var(--cr-green)}
.cr-confirm:has(input:checked)::before{border-color:var(--cr-green);background-color:var(--cr-green);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.5' d='M3 8.5l3.2 3L13 4.5'/%3E%3C/svg%3E")}
.cr-field.has-error .cr-confirm{border-color:var(--cr-error)}

/* Nav bar */
.cr-nav{display:flex;align-items:center;gap:10px;margin-top:8px;padding-top:18px;border-top:1px solid var(--cr-line)}
.cr-step-count{flex:1;text-align:center;font-size:13px;color:var(--cr-muted);font-weight:600}
.cr-form:not(.cr-js) #crNext,.cr-form:not(.cr-js) #crBack,.cr-form:not(.cr-js) .cr-step-count{display:none}
.cr-form:not(.cr-js) #crSubmit{width:100%}
.cr-nav .cr-btn{padding:12px 18px}

/* Messages */
.cr-alert{background:#fdecea;color:#8e1c1c;border:1px solid #f5c2c0;border-radius:10px;padding:12px 14px;margin-bottom:16px;font-weight:600;font-size:14px}
.cr-draft-note{background:#eef7f1;color:#1f5738;border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:14px}
[data-theme="dark"] .cr-draft-note{background:#15261c;color:#bfe3cc}
.cr-success,.cr-closed{text-align:center;background:var(--cr-surface);border:1px solid var(--cr-line);border-radius:var(--cr-radius);padding:36px 22px}
.cr-success>i{font-size:56px;color:var(--cr-green)}
.cr-closed>i{font-size:48px;color:var(--cr-muted)}
.cr-success h3,.cr-closed h3{font-size:24px;margin:14px 0 8px}
.cr-success p,.cr-closed p{color:var(--cr-muted);line-height:1.6;margin-top:6px}
.cr-closed a{color:var(--cr-accent);font-weight:700}
.cr-cta{text-align:center;background:var(--cr-surface);border:1px solid var(--cr-line);border-radius:var(--cr-radius);padding:36px 22px}
.cr-cta h2{font-size:clamp(26px,5vw,34px);color:var(--cr-green)}
.cr-cta p{color:var(--cr-muted);line-height:1.6;margin:10px auto 22px;max-width:460px}
.cr-ref{font-size:18px;color:var(--cr-text)!important;margin:16px 0!important}
.cr-ref strong{color:var(--cr-accent);letter-spacing:1px}
.cr-success .cr-btn{margin-top:18px}
.cr-conditional{animation:crFade .2s ease}
@keyframes crFade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* FAQ */
.cr-faq-wrap{max-width:760px}
.cr-faq details{background:var(--cr-surface);border:1px solid var(--cr-line);border-radius:12px;margin-bottom:10px}
.cr-faq summary{cursor:pointer;list-style:none;padding:16px 48px 16px 18px;font-weight:700;position:relative}
.cr-faq summary::-webkit-details-marker{display:none}
.cr-faq summary::after{content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:22px;color:var(--cr-accent)}
.cr-faq details[open] summary::after{content:"–"}
.cr-faq details p{padding:0 18px 16px;color:var(--cr-muted);line-height:1.6}
.cr-faq a{color:var(--cr-green);font-weight:600}

/* ---------- Small phones ---------- */
@media (max-width:360px){
    .cr-choice-card>span{font-size:12.5px;min-height:88px}
    .cr-nav .cr-btn{padding:12px 14px;font-size:14px}
    .cr-step-count{display:none}
}

/* ---------- Tablet & up ---------- */
@media (min-width:640px){
    .cr-row{grid-template-columns:1fr 1fr}
    .cr-form{padding:32px}
    .cr-roles{grid-template-columns:repeat(3,1fr)}
    .cr-progress li{font-size:12px}
    .cr-lang{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
    .cr-lang-name{grid-column:1/-1;margin-bottom:0}
    .cr-lang-skill{margin-bottom:0}
}
@media (min-width:900px){
    .cr-section{padding:80px 0}
    .cr-hero{padding-top:48px}
    .cr-hero-inner{grid-template-columns:1.05fr .95fr;gap:40px}
    .cr-hero-text{padding-bottom:56px}
    .cr-hero-actions .cr-btn{flex:0 0 auto}
    .cr-two-col{grid-template-columns:1fr 1fr;align-items:stretch}
    .cr-free-badge{left:-30px;width:120px;height:120px}
}

@media (prefers-reduced-motion:reduce){
    .cr-page *{animation:none!important;transition:none!important}
}
