Odoo Trainer — Undercode
.job-wrap {
max-width: 1100px;
margin: 40px auto;
padding: 24px;
font-family: ‘Inter’, ‘Segoe UI’, Arial, sans-serif;
color: #0f172a;
}
.job-hero {
position: relative;
overflow: hidden;
background: linear-gradient(135deg, #0f172a 0%, #111827 50%, #1f2937 100%);
color: #fff;
border-radius: 28px;
padding: 44px;
box-shadow: 0 24px 70px rgba(0, 0, 0, .16);
transform: translateY(10px);
opacity: 0;
animation: fadeUp .8s ease forwards;
}
.job-hero::before,
.job-hero::after {
content: “”;
position: absolute;
border-radius: 999px;
filter: blur(10px);
opacity: .18;
pointer-events: none;
}
.job-hero::before {
width: 220px;
height: 220px;
background: #60a5fa;
top: -80px;
right: -60px;
animation: floaty 8s ease-in-out infinite;
}
.job-hero::after {
width: 160px;
height: 160px;
background: #a78bfa;
bottom: -60px;
left: -40px;
animation: floaty 10s ease-in-out infinite reverse;
}
.job-badge {
position: relative;
z-index: 1;
display: inline-block;
background: rgba(255, 255, 255, .12);
border: 1px solid rgba(255, 255, 255, .16);
padding: 8px 14px;
border-radius: 999px;
font-size: 14px;
margin-bottom: 18px;
backdrop-filter: blur(10px);
}
.job-title {
position: relative;
z-index: 1;
font-size: 46px;
line-height: 1.05;
margin: 0 0 14px;
letter-spacing: -.04em;
}
.job-subtitle {
position: relative;
z-index: 1;
font-size: 18px;
line-height: 1.75;
max-width: 760px;
color: rgba(255, 255, 255, .84);
margin: 0 0 24px;
}
.job-grid {
display: grid;
grid-template-columns: 1.1fr .9fr;
gap: 24px;
margin-top: 24px;
}
.card {
background: #fff;
border: 1px solid #e5e7eb;
border-radius: 24px;
padding: 28px;
box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
transform: translateY(10px);
opacity: 0;
animation: fadeUp .8s ease forwards;
transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.card:hover {
transform: translateY(-4px);
box-shadow: 0 18px 42px rgba(15, 23, 42, .10);
border-color: #cbd5e1;
}
.card h2 {
margin: 0 0 16px;
font-size: 24px;
color: #111827;
}
.card p,
.card li {
font-size: 16px;
line-height: 1.8;
color: #334155;
}
.spec {
display: grid;
gap: 14px;
margin-top: 8px;
}
.spec-item {
background: #f8fafc;
border: 1px solid #e2e8f0;
border-radius: 18px;
padding: 16px 18px;
transition: transform .2s ease, background .2s ease;
}
.spec-item:hover {
transform: translateX(3px);
background: #f1f5f9;
}
.spec-label {
display: block;
font-size: 13px;
color: #64748b;
text-transform: uppercase;
letter-spacing: .08em;
margin-bottom: 4px;
}
.spec-value {
font-size: 18px;
font-weight: 700;
color: #0f172a;
}
.cta-row {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 22px;
position: relative;
z-index: 1;
}
.btn {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 14px 20px;
border-radius: 14px;
text-decoration: none;
font-weight: 700;
font-size: 15px;
cursor: pointer;
transition: transform .25s cubic-bezier(.34, 1.56, .64, 1),
background .25s ease,
box-shadow .25s ease,
border-color .25s ease;
position: relative;
overflow: hidden;
white-space: nowrap;
}
.btn::after {
content: “”;
position: absolute;
inset: 0;
border-radius: 14px;
opacity: 0;
transition: opacity .35s ease;
pointer-events: none;
background: radial-gradient(circle at center, rgba(255, 255, 255, .25) 0%, transparent 70%);
}
.btn:hover::after {
opacity: 1;
}
.btn:hover {
transform: translateY(-3px) scale(1.02);
}
.btn:active {
transform: translateY(-1px) scale(.98);
transition: transform .1s ease;
}
.btn-primary {
background: #2563eb;
color: #fff;
box-shadow: 0 10px 22px rgba(37, 99, 235, .28);
animation: pulseGlow 2.6s ease-in-out infinite;
}
.btn-primary:hover {
background: #1d4ed8;
box-shadow: 0 16px 32px rgba(37, 99, 235, .40);
}
.btn-secondary {
background: #fff;
color: #111827;
border: 1px solid #cbd5e1;
}
.btn-secondary:hover {
background: #f8fafc;
border-color: #94a3b8;
box-shadow: 0 10px 22px rgba(15, 23, 42, .10);
}
.btn-linkedin {
background: #fff;
color: #0a66c2;
border: 1.5px solid #0a66c2;
font-weight: 700;
transition: all .3s cubic-bezier(.34, 1.56, .64, 1);
}
.btn-linkedin:hover {
background: #0a66c2;
color: #fff;
border-color: #0a66c2;
box-shadow: 0 14px 28px rgba(10, 102, 194, .32);
transform: translateY(-3px) scale(1.03);
}
.btn-linkedin::before {
content: “in”;
display: inline-flex;
align-items: center;
justify-content: center;
width: 22px;
height: 22px;
border-radius: 4px;
background: #0a66c2;
color: #fff;
font-weight: 900;
font-size: 13px;
line-height: 1;
transition: background .3s ease, color .3s ease;
flex-shrink: 0;
}
.btn-linkedin:hover::before {
background: #fff;
color: #0a66c2;
}
.list {
margin: 0;
padding-left: 18px;
}
.small-note {
font-size: 13px;
color: #64748b;
margin-top: 12px;
}
.apply-box {
background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
border: 1px solid #e2e8f0;
border-radius: 24px;
padding: 28px;
}
.apply-box h3 {
margin: 0 0 12px;
font-size: 22px;
}
.email-link {
font-size: 18px;
font-weight: 700;
color: #2563eb;
text-decoration: none;
word-break: break-word;
display: inline-block;
position: relative;
transition: color .25s ease;
background: linear-gradient(to right, #2563eb, #2563eb) 0 100% / 0% 2px no-repeat;
padding-bottom: 2px;
animation: emailHighlight 3s ease-in-out infinite;
}
.email-link:hover {
color: #1d4ed8;
background-size: 100% 2px;
transition: background-size .35s cubic-bezier(.34, 1.56, .64, 1), color .25s ease;
}
.email-link:active {
color: #1e40af;
transform: scale(.97);
transition: transform .1s ease;
}
.divider {
height: 1px;
background: #e2e8f0;
margin: 24px 0;
}
.reveal {
opacity: 0;
transform: translateY(16px);
animation: fadeUp .7s ease forwards;
}
.delay-1 { animation-delay: .12s; }
.delay-2 { animation-delay: .24s; }
.delay-3 { animation-delay: .36s; }
@keyframes fadeUp {
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes floaty {
0%,100% {
transform: translate3d(0,0,0) scale(1);
}
50% {
transform: translate3d(0,12px,0) scale(1.04);
}
}
@keyframes pulseGlow {
0%,100% {
box-shadow: 0 10px 22px rgba(37, 99, 235, .28);
}
50% {
box-shadow: 0 14px 34px rgba(37, 99, 235, .48),
0 0 0 6px rgba(37, 99, 235, .06);
}
}
@keyframes emailHighlight {
0%,100% {
background-size: 0% 2px;
}
50% {
background-size: 100% 2px;
}
}
@media (max-width: 900px) {
.job-grid {
grid-template-columns: 1fr;
}
.job-title {
font-size: 34px;
}
.job-hero {
padding: 28px;
}
.btn {
padding: 12px 16px;
font-size: 14px;
}
.email-link {
font-size: 16px;
}
}
@media (max-width: 480px) {
.cta-row {
flex-direction: column;
}
.btn {
width: 100%;
justify-content: center;
}
.job-title {
font-size: 26px;
}
.job-hero {
padding: 20px;
border-radius: 20px;
}
.card {
padding: 20px;
border-radius: 18px;
}
}
Remote Position
Odoo Trainer
We are looking for a professional Odoo Trainer to join our team remotely.
This role is ideal for someone who can train users clearly, work confidently in English,
and help teams adopt Odoo in a practical way.
📋 Job Requirements
- Minimum 2 Years of proven Odoo work experience
- Excellent English communication skills
- Strong ability to explain Odoo clearly and professionally
- Comfortable working remotely and independently
- Training or onboarding experience is a plus
🎯 Role Responsibilities
- Train users on Odoo modules and workflows
- Support team members during onboarding and daily usage
- Explain processes in a simple and practical way
- Help improve adoption and understanding of Odoo