/* =========================================================
RESET + BASE
========================================================= */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
}
html, body {
width: 100%;
height: 100%;
}
body {
background: var(--bg);
color: var(--text);
transition: background 0.25s ease, color 0.25s ease;
font-size: 16px;
}
/* =========================================================
LIGHT / DARK THEMES
========================================================= */
html[data-theme="light"] {
--bg: #f5f5f7;
--text: #1d1d1f;
--text-light: #3a3a3c;
--card-bg: #ffffff;
--border: #dedede;
--nav-bg: #ffffff;
--nav-shadow: rgba(0,0,0,0.06);
}
html[data-theme="dark"] {
--bg: #1c1c1e;
--text: #f2f2f7;
--text-light: #d1d1d6;
--card-bg: #2c2c2e;
--border: #3a3a3c;
--nav-bg: #2c2c2e;
--nav-shadow: rgba(0,0,0,0.45);
}
/* =========================================================
NAVBAR
========================================================= */
.navbar {
width: 100%;
background: var(--nav-bg);
padding: 14px 32px;
display: flex;
justify-content: space-between;
align-items: center;
box-shadow: 0 2px 6px var(--nav-shadow);
position: sticky;
top: 0;
z-index: 999;
}
.nav-left {
display: flex;
align-items: center;
gap: 32px;
}
.logo {
display: flex;
align-items: center;
gap: 10px;
color: var(--text);
font-size: 20px;
font-weight: 600;
text-decoration: none;
}
.logo img {
height: 32px;
}
.nav-links {
display: flex;
gap: 22px;
}
.nav-links a {
color: var(--text-light);
text-decoration: none;
font-size: 16px;
transition: color .2s;
}
.nav-links a:hover {
color: var(--text);
font-weight: 600;
}
.nav-right {
display: flex;
align-items: center;
gap: 18px;
}
/* LANGUAGE SWITCH */
.lang-switch a {
margin: 0 4px;
text-decoration: none;
font-weight: 600;
color: var(--text-light);
}
.lang-switch a.active {
color: var(--text);
text-decoration: underline;
}
/* THEME TOGGLE */
.theme-toggle {
color: var(--text);
font-size: 18px;
text-decoration: none;
}
.theme-toggle i {
transition: transform .2s ease;
}
.theme-toggle:hover i {
transform: rotate(20deg);
}
/* LOGIN / REGISTER BUTTONS */
.btn-login,
.btn-register {
padding: 8px 16px;
border-radius: 8px;
font-weight: 600;
text-decoration: none;
transition: background .2s, color .2s;
}
.btn-login {
color: var(--text-light);
}
.btn-login:hover {
color: var(--text);
}
.btn-register {
background: #0071e3;
color: #fff;
}
.btn-register:hover {
background: #0c82ff;
}
/* =========================================================
MOBILE NAVIGATION
========================================================= */
.mobile-menu-btn {
display: none;
background: none;
border: none;
font-size: 22px;
color: var(--text);
}
.mobile-nav {
display: none;
}
.mobile-nav.open {
display: flex;
flex-direction: column;
background: var(--nav-bg);
padding: 20px;
box-shadow: 0 4px 15px var(--nav-shadow);
}
.mobile-nav a {
padding: 12px 0;
color: var(--text-light);
text-decoration: none;
font-size: 18px;
}
.mobile-nav hr {
border: none;
border-bottom: 1px solid var(--border);
margin: 14px 0;
}
.mobile-lang a {
padding: 10px;
}
/* =========================================================
RESPONSIVE
========================================================= */
@media (max-width: 950px) {
.nav-links {
display: none;
}
.mobile-menu-btn {
display: block;
}
}
/* =========================================================
FOOTER
========================================================= */
.footer {
margin-top: 60px;
padding: 40px 20px;
background: var(--card-bg);
border-top: 1px solid var(--border);
}
.footer-content {
max-width: 1200px;
margin: auto;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
gap: 40px;
}
.footer-info img {
height: 34px;
margin-bottom: 8px;
}
.footer-info p {
color: var(--text-light);
font-size: 14px;
}
.footer-links a {
display: block;
margin: 6px 0;
color: var(--text-light);
text-decoration: none;
}
.footer-links a:hover {
color: var(--text);
}
.footer-social a {
margin-right: 12px;
font-size: 20px;
color: var(--text-light);
}
.footer-social a:hover {
color: var(--text);
}
/* =========================================================
MAIN CONTENT WRAPPER
========================================================= */
.content {
padding: 40px;
max-width: 1200px;
margin: auto;
}
/* =========================================================
PAGE TITLE HEADERS
========================================================= */
.page-title {
font-size: 42px;
font-weight: 700;
margin-bottom: 16px;
}
.page-subtitle {
font-size: 18px;
color: var(--text-light);
max-width: 700px;
}
/* =========================================================
HERO SECTION (Home)
========================================================= */
.hero {
text-align: center;
padding: 80px 20px;
}
.hero h1 {
font-size: 52px;
font-weight: 700;
}
.hero p {
font-size: 20px;
margin-top: 12px;
color: var(--text-light);
}
/* Features Section */
.features {
padding: 60px 20px;
text-align: center;
}
.features .subtitle {
max-width: 700px;
margin: 0 auto 40px;
color: var(--text-light);
font-size: 18px;
}
.feature-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 30px;
margin-top: 40px;
}
.feature-item {
background: var(--card-bg);
padding: 30px 20px;
border-radius: 12px;
border: 1px solid var(--border);
transition: transform .2s, box-shadow .2s;
text-align: left;
}
.feature-item i {
font-size: 40px;
color: var(--text);
margin-bottom: 12px;
}
.feature-item h3 {
font-size: 22px;
margin: 12px 0;
}
.feature-item p {
color: var(--text-light);
font-size: 16px;
line-height: 1.5;
}
.feature-item:hover {
transform: translateY(-4px);
box-shadow: 0 6px 18px rgba(0,0,0,0.12);
}
/* Services Preview */
.services-preview {
padding: 60px 20px;
text-align: center;
}
.services-preview h2 {
margin-bottom: 40px;
}
/* Grid */
.services-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 30px;
margin-bottom: 40px;
}
/* Cards */
.service-card {
background: var(--card-bg);
padding: 30px 20px;
border-radius: 12px;
border: 1px solid var(--border);
transition: transform .2s, box-shadow .2s;
text-align: left;
}
.service-card i {
font-size: 40px;
margin-bottom: 12px;
color: var(--text);
}
.service-card h3 {
font-size: 22px;
margin: 12px 0;
}
.service-card p {
font-size: 16px;
line-height: 1.5;
color: var(--text-light);
}
/* Hover */
.service-card:hover {
transform: translateY(-4px);
box-shadow: 0 6px 18px rgba(0,0,0,0.12);
}
/* Center button */
.center-btn {
margin-top: 20px;
}
.center-btn .btn-primary {
padding: 12px 28px;
font-size: 18px;
}
/* CTA matching the minimalist site style */
.cta {
background: var(--card-bg);
border: 1px solid var(--border);
padding: 50px 25px;
border-radius: 12px;
text-align: center;
margin: 60px auto;
max-width: 900px;
}
.cta h2 {
font-size: 30px;
margin-bottom: 15px;
color: var(--text);
}
.cta p {
font-size: 17px;
color: var(--text-light);
max-width: 700px;
margin: 0 auto 30px auto;
line-height: 1.5;
}
/* Primary Button – theme-aware */
.btn-primary {
display: inline-block;
background: var(--text); /* în light este închis, în dark este deschis */
color: var(--card-bg); /* contrast perfect cu background-ul */
padding: 10px 22px;
border-radius: 8px;
font-size: 16px;
font-weight: 600;
text-decoration: none;
transition: opacity .2s ease, transform .2s ease, background .2s ease;
}
.btn-primary:hover {
opacity: 0.85;
transform: translateY(-2px);
}
/* Secondary Button – theme-aware */
.btn-secondary {
display: inline-block;
background: transparent;
border: 1px solid var(--border);
color: var(--text);
padding: 10px 22px;
border-radius: 8px;
font-size: 16px;
font-weight: 600;
text-decoration: none;
transition: background .2s ease, transform .2s ease, border-color .2s ease;
}
.btn-secondary:hover {
background: var(--border);
transform: translateY(-2px);
}
/* Page Hero */
.page-hero {
background: var(--card-bg);
border-bottom: 1px solid var(--border);
padding: 60px 20px;
text-align: center;
}
.page-hero.small {
padding: 40px 20px;
}
.page-hero-inner h1 {
font-size: 36px;
color: var(--text);
margin-bottom: 10px;
}
.page-hero-inner p {
font-size: 18px;
color: var(--text-light);
max-width: 700px;
margin: 0 auto;
}
/* About Intro Section */
.about-intro {
padding: 60px 20px;
}
/* Grid 2 col, responsive */
.about-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
align-items: center;
max-width: 1100px;
margin: 0 auto;
}
/* Text styling */
.about-text h2 {
font-size: 28px;
color: var(--text);
margin-bottom: 15px;
}
.about-text p {
font-size: 17px;
color: var(--text-light);
line-height: 1.6;
margin-bottom: 15px;
}
/* Image container */
.about-img img {
width: 100%;
border-radius: 12px;
display: block;
border: 1px solid var(--border);
background: var(--card-bg);
}
@media (max-width: 850px) {
.about-grid {
grid-template-columns: 1fr;
text-align: center;
}
.about-img img {
max-width: 90%;
margin: 0 auto;
}
}
/* About Values Section */
.about-values {
padding: 60px 20px;
text-align: center;
}
.about-values h2 {
font-size: 30px;
color: var(--text);
margin-bottom: 40px;
}
/* Grid */
.values-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
gap: 30px;
max-width: 1100px;
margin: 0 auto;
}
/* Each Value Card */
.value-item {
background: var(--card-bg);
border: 1px solid var(--border);
border-radius: 12px;
padding: 30px 20px;
text-align: left;
transition: transform .2s ease, box-shadow .2s ease;
}
.value-item:hover {
transform: translateY(-4px);
box-shadow: 0 6px 18px rgba(0,0,0,0.10);
}
/* Icon */
.value-item i {
font-size: 42px;
color: var(--text);
margin-bottom: 15px;
display: block;
}
/* Title */
.value-item h3 {
font-size: 22px;
color: var(--text);
margin-bottom: 10px;
}
/* Text */
.value-item p {
font-size: 16px;
color: var(--text-light);
line-height: 1.55;
}
@media (max-width: 850px) {
.value-item {
text-align: center;
}
.value-item i {
margin: 0 auto 15px auto;
}
}
/* About CTA Section */
.about-cta {
background: var(--card-bg);
border: 1px solid var(--border);
padding: 55px 25px;
border-radius: 12px;
text-align: center;
max-width: 900px;
margin: 60px auto;
}
.about-cta h2 {
font-size: 30px;
color: var(--text);
margin-bottom: 15px;
}
.about-cta p {
font-size: 17px;
color: var(--text-light);
max-width: 700px;
margin: 0 auto 30px auto;
line-height: 1.55;
}
@media (max-width: 850px) {
.about-cta {
padding: 45px 20px;
}
.about-cta h2 {
font-size: 26px;
}
.about-cta p {
font-size: 16px;
}
}
// SERVICES – New Premium Design
.services-section {
padding: 80px 20px;
max-width: 1200px;
margin: 0 auto;
}
// GRID
.services-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 40px;
}
// CARD – GLASS PREMIUM
.service-box {
background: rgba(255,255,255,0.65);
backdrop-filter: blur(14px);
border-radius: 18px;
padding: 40px 30px;
border: 1px solid rgba(0,0,0,0.08);
transition: transform .35s cubic-bezier(.25,.46,.45,.94),
box-shadow .35s ease;
}
/* Dark mode glass correction */
html[data-theme="dark"] .service-box {
background: rgba(40,40,40,0.35);
border: 1px solid rgba(255,255,255,0.08);
}
.service-box:hover {
transform: translateY(-8px);
box-shadow: 0 18px 35px rgba(0,0,0,0.15);
}
/* ICON – ROUND WITH SOFT GRADIENT */
.service-box i {
width: 70px;
height: 70px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 32px;
background: linear-gradient(
145deg,
var(--card-bg),
var(--bg)
);
border: 1px solid var(--border);
color: var(--text);
margin-bottom: 22px;
box-shadow: 0 4px 14px rgba(0,0,0,0.07);
transition: transform .35s ease, box-shadow .35s ease;
}
.service-box:hover i {
transform: scale(1.10);
box-shadow: 0 10px 28px rgba(0,0,0,0.15);
}
/* TITLE */
.service-box h3 {
font-size: 22px;
font-weight: 700;
color: var(--text);
margin-bottom: 12px;
}
/* DESCRIPTION */
.service-box p {
font-size: 16px;
color: var(--text-light);
line-height: 1.65;
}
/* CTA SECTION – PREMIUM */
.services-cta {
margin: 90px auto 40px auto;
padding: 70px 30px;
text-align: center;
background: linear-gradient(
to bottom right,
var(--card-bg),
var(--bg)
);
border-radius: 20px;
border: 1px solid var(--border);
box-shadow: 0 14px 32px rgba(0,0,0,0.08);
max-width: 900px;
}
.services-cta h2 {
font-size: 34px;
margin-bottom: 18px;
color: var(--text);
}
.services-cta p {
font-size: 17px;
color: var(--text-light);
max-width: 650px;
margin: 0 auto 35px auto;
line-height: 1.6;
}
/* RESPONSIVE */
@media (max-width: 850px) {
.service-box {
text-align: center;
padding: 32px 25px;
}
.service-box i {
margin-left: auto;
margin-right: auto;
}
.services-cta {
padding: 50px 22px;
}
.services-cta h2 {
font-size: 28px;
}
}
// CONTACT – Premium Layout
.contact-info,
.contact-form {
background: var(--card-bg);
border: 1px solid var(--border);
border-radius: 18px;
padding: 35px 30px;
margin-bottom: 40px;
box-shadow: 0 10px 20px rgba(0,0,0,0.06);
}
.contact-info h2,
.contact-form h2 {
font-size: 28px;
margin-bottom: 25px;
color: var(--text);
}
// CONTACT – Info List
.contact-list {
list-style: none;
padding: 0;
margin: 0;
}
.contact-list li {
display: flex;
align-items: center;
gap: 14px;
margin-bottom: 18px;
font-size: 17px;
color: var(--text);
}
/* Icon Circle */
.contact-list i {
width: 38px;
height: 38px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(
145deg,
var(--card-bg),
var(--bg)
);
border: 1px solid var(--border);
box-shadow: 0 3px 9px rgba(0,0,0,0.07);
font-size: 17px;
color: var(--text);
}
/* Links in Contact Info */
.contact-list a {
color: var(--text);
font-weight: 500;
text-decoration: none;
transition: opacity .2s ease;
}
.contact-list a:hover {
opacity: 0.7;
}
// CONTACT – Form UI
.contact-form form {
display: flex;
flex-direction: column;
gap: 20px;
}
/* Form Group */
.form-group {
display: flex;
flex-direction: column;
gap: 6px;
}
.form-group label {
font-size: 16px;
color: var(--text);
}
/* INPUTS & TEXTAREA */
.form-group input,
.form-group textarea {
width: 100%;
padding: 12px 16px;
background: var(--bg);
border: 1px solid var(--border);
border-radius: 10px;
font-size: 16px;
color: var(--text);
transition: border .2s ease, box-shadow .2s ease;
}
/* Focus */
.form-group input:focus,
.form-group textarea:focus {
border-color: var(--text);
box-shadow: 0 0 0 3px rgba(120,120,120,0.15);
outline: none;
}
/* Textarea height */
.form-group textarea {
height: 130px;
resize: vertical;
}
/* Submit Button */
.contact-form .btn-primary {
align-self: flex-start;
padding: 12px 26px;
font-size: 17px;
margin-top: 10px;
}
/* CONTACT – Responsive */
@media (max-width: 850px) {
.contact-info,
.contact-form {
padding: 25px 20px;
}
.contact-info h2,
.contact-form h2 {
font-size: 24px;
}
.contact-list li {
font-size: 16px;
}
}
/* MAP SECTION */
.map-section {
padding: 70px 20px;
text-align: center;
max-width: 1100px;
margin: 0 auto;
}
.map-section h2 {
font-size: 28px;
color: var(--text);
margin-bottom: 25px;
}
/* Map container – modern card */
.map-container {
width: 100%;
height: 380px;
background: var(--card-bg);
border: 1px solid var(--border);
border-radius: 18px;
overflow: hidden;
box-shadow: 0 14px 30px rgba(0,0,0,0.06);
transition: box-shadow .3s ease, transform .3s ease;
}
.map-container:hover {
transform: translateY(-4px);
box-shadow: 0 20px 40px rgba(0,0,0,0.12);
}
.map-container iframe {
width: 100%;
height: 100%;
border: none;
}
/* FAQ MINI SECTION */
.faq-mini {
padding: 70px 20px;
max-width: 1100px;
margin: 0 auto;
}
.faq-mini h2 {
font-size: 28px;
color: var(--text);
text-align: center;
margin-bottom: 40px;
}
/* FAQ GRID */
.faq-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 35px;
}
/* FAQ ITEM – elegant card */
.faq-item {
background: var(--card-bg);
border-radius: 16px;
border: 1px solid var(--border);
padding: 28px 24px;
transition: transform .3s ease, box-shadow .3s ease;
box-shadow: 0 10px 20px rgba(0,0,0,0.05);
}
.faq-item:hover {
transform: translateY(-6px);
box-shadow: 0 16px 36px rgba(0,0,0,0.10);
}
/* FAQ title */
.faq-item h3 {
font-size: 19px;
color: var(--text);
margin-bottom: 10px;
font-weight: 700;
}
/* FAQ text */
.faq-item p {
font-size: 16px;
color: var(--text-light);
line-height: 1.6;
}
/* RESPONSIVE */
@media (max-width: 850px) {
.map-section {
padding: 50px 20px;
}
.map-container {
height: 300px;
}
.faq-mini {
padding: 50px 20px;
}
}
/* =========================================================
SERVICE CARDS
========================================================= */
.card-container {
display: flex;
gap: 25px;
margin-top: 40px;
flex-wrap: wrap;
}
.card {
flex: 1;
min-width: 260px;
background: var(--card-bg);
border: 1px solid var(--border);
border-radius: 12px;
padding: 25px;
transition: transform .2s, box-shadow .2s;
}
.card:hover {
transform: translateY(-3px);
box-shadow: 0 6px 18px rgba(0,0,0,0.12);
}
.card h3 {
font-size: 22px;
margin-bottom: 12px;
}
.card p {
color: var(--text-light);
}
/* AUTH PAGES */
.auth-container {
display: flex;
justify-content: center;
padding: 4rem 1rem;
}
.auth-card {
width: 100%;
max-width: 440px;
background: var(--surface);
padding: 2.5rem;
border-radius: 18px;
box-shadow: var(--shadow-lg);
animation: fadeUp 0.35s ease;
}
.auth-card h1 {
font-size: 2rem;
margin-bottom: .5rem;
color: var(--text-primary);
}
.auth-sub {
color: var(--text-secondary);
margin-bottom: 2rem;
}
.auth-alt {
margin-top: 1.5rem;
text-align: center;
}
.auth-alt a {
font-weight: 600;
}
/* FORM UI */
.form-ui .form-group {
margin-bottom: 1.3rem;
}
.form-ui label {
font-size: .95rem;
font-weight: 600;
color: var(--text-primary);
display: flex;
align-items: center;
gap: 8px;
margin-bottom: .4rem;
}
.form-ui input,
.form-ui textarea {
width: 100%;
padding: .75rem 1rem;
border-radius: 12px;
border: 1px solid var(--border);
background: var(--surface-2);
color: var(--text-primary);
}
.flash-msg {
padding: .8rem 1rem;
border-radius: 12px;
background: var(--warning-bg);
color: var(--warning-text);
margin-bottom: 1rem;
font-size: .9rem;
}
/* PAGE HEADER */
.page-header {
text-align: center;
padding: 3rem 1rem 2rem;
}
.page-header h1 {
font-size: 2.4rem;
margin-bottom: .5rem;
color: var(--text-primary);
}
.page-header p {
color: var(--text-secondary);
font-size: 1.1rem;
}
/* JOB GRID */
.jobs-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
gap: 1.6rem;
padding: 2rem 1rem 4rem;
}
.job-card {
background: var(--surface);
border-radius: 16px;
padding: 1.8rem;
box-shadow: var(--shadow-md);
color: var(--text-primary);
text-decoration: none;
transition: transform .2s ease, box-shadow .2s ease;
}
.job-card:hover {
transform: translateY(-4px);
box-shadow: var(--shadow-lg);
}
.job-card-header h2 {
font-size: 1.4rem;
margin-bottom: .3rem;
}
.job-location {
color: var(--text-secondary);
font-size: .9rem;
}
.job-desc {
margin: 1rem 0;
color: var(--text-secondary);
font-size: .95rem;
}
.job-meta {
display: flex;
justify-content: space-between;
font-size: .85rem;
color: var(--text-secondary);
}
/* JOB VIEW PAGE */
.job-view {
max-width: 820px;
margin: 0 auto;
padding: 3rem 1rem;
}
.job-view-header h1 {
font-size: 2.3rem;
}
.job-view-meta {
display: flex;
gap: 1.3rem;
margin: 1rem 0 2rem;
color: var(--text-secondary);
}
.job-view-body {
background: var(--surface);
padding: 2rem;
border-radius: 18px;
box-shadow: var(--shadow-lg);
line-height: 1.7;
color: var(--text-primary);
margin-bottom: 2.5rem;
}
.job-view-apply {
text-align: center;
}