@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap');

:root {
--primary-color: #2c3e50;
--secondary-color: #34495e;
--accent-color: #95a5a6;
--light-color: #ecf0f1;
--white-color: #ffffff;
--text-dark: #2c3e50;
--text-light: #7f8c8d;
--border-color: #bdc3c7;
--shadow-sm: 0 2px 8px rgba(0,0,0,0.08);
--shadow-md: 0 4px 16px rgba(0,0,0,0.12);
--shadow-lg: 0 8px 32px rgba(0,0,0,0.16);
--transition: all 0.3s ease;
--font-primary: 'Montserrat', sans-serif;
--font-secondary: 'Playfair Display', serif;
--max-width: 1200px;
}

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

html {
scroll-behavior: smooth;
}

body {
font-family: var(--font-primary);
color: var(--text-dark);
line-height: 1.6;
overflow-x: hidden;
}

.hidden {
display: none !important;
}

.pw4j_container {
max-width: var(--max-width);
margin: 0 auto;
padding: 0 20px;
}

.zx9k_header {
position: fixed;
top: 0;
left: 0;
width: 100%;
background: var(--white-color);
box-shadow: var(--shadow-sm);
z-index: 1000;
padding: 15px 0;
}

.zx9k_header .pw4j_container {
display: flex;
justify-content: space-between;
align-items: center;
}

.vb2m_logo {
font-family: var(--font-secondary);
font-size: 28px;
font-weight: 700;
color: var(--primary-color);
letter-spacing: 1px;
}

.qr8n_navigation {
display: none;
gap: 35px;
}

.qr8n_navigation a {
color: var(--text-dark);
text-decoration: none;
font-weight: 500;
font-size: 15px;
transition: var(--transition);
position: relative;
}

.qr8n_navigation a::after {
content: '';
position: absolute;
bottom: -5px;
left: 0;
width: 0;
height: 2px;
background: var(--primary-color);
transition: var(--transition);
}

.qr8n_navigation a:hover {
color: var(--primary-color);
}

.qr8n_navigation a:hover::after {
width: 100%;
}

.hg4s_burger {
display: flex;
flex-direction: column;
gap: 5px;
background: none;
border: none;
cursor: pointer;
padding: 5px;
z-index: 1001;
}

.hg4s_burger span {
width: 28px;
height: 3px;
background: var(--primary-color);
transition: var(--transition);
border-radius: 2px;
}

.hg4s_burger.active span:nth-child(1) {
transform: rotate(45deg) translate(8px, 8px);
}

.hg4s_burger.active span:nth-child(2) {
opacity: 0;
}

.hg4s_burger.active span:nth-child(3) {
transform: rotate(-45deg) translate(8px, -8px);
}

.km7p_mobile_menu {
position: fixed;
top: 68px;
left: 0;
width: 100%;
background: var(--white-color);
padding: 30px 20px;
transform: translateY(-120%);
transition: var(--transition);
z-index: 999;
box-shadow: var(--shadow-md);
display: flex;
flex-direction: column;
gap: 20px;
}

.km7p_mobile_menu.active {
transform: translateY(0);
}

.km7p_mobile_menu a {
color: var(--text-dark);
text-decoration: none;
font-weight: 500;
font-size: 18px;
padding: 10px 0;
border-bottom: 1px solid var(--light-color);
transition: var(--transition);
}

.km7p_mobile_menu a:hover {
color: var(--primary-color);
padding-left: 10px;
}

.wd8v_hero {
position: relative;
height: 100vh;
min-height: 600px;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
margin-top: 68px;
}

.ft2x_hero_image {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: 1;
}

.nq5y_hero_overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(135deg, rgba(44,62,80,0.85) 0%, rgba(52,73,94,0.75) 100%);
z-index: 2;
display: flex;
align-items: center;
justify-content: center;
}

.nq5y_hero_overlay .pw4j_container {
text-align: center;
color: var(--white-color);
}

.zk3m_hero_title {
font-family: var(--font-secondary);
font-size: 42px;
font-weight: 700;
margin-bottom: 20px;
line-height: 1.2;
}

.wc6r_hero_subtitle {
font-size: 18px;
margin-bottom: 35px;
font-weight: 300;
max-width: 600px;
margin-left: auto;
margin-right: auto;
}

.jt9d_cta_button {
display: inline-block;
background: var(--primary-color);
color: var(--white-color);
padding: 16px 40px;
text-decoration: none;
font-weight: 600;
font-size: 16px;
border-radius: 4px;
transition: var(--transition);
min-height: 50px;
border: none;
cursor: pointer;
text-align: center;
box-shadow: var(--shadow-md);
}

.jt9d_cta_button:hover {
background: var(--secondary-color);
transform: translateY(-2px);
box-shadow: var(--shadow-lg);
}

.pv3n_services {
padding: 80px 0;
background: var(--light-color);
}

.xm8k_section_title {
font-family: var(--font-secondary);
font-size: 38px;
text-align: center;
margin-bottom: 50px;
color: var(--primary-color);
font-weight: 600;
}

.rh4z_services_grid {
display: grid;
grid-template-columns: 1fr;
gap: 30px;
}

.ql6w_service_card {
background: var(--white-color);
border-radius: 8px;
overflow: hidden;
box-shadow: var(--shadow-sm);
transition: var(--transition);
display: flex;
flex-direction: column;
}

.ql6w_service_card:hover {
transform: translateY(-8px);
box-shadow: var(--shadow-lg);
}

.ql6w_service_card img {
width: 100%;
height: 240px;
object-fit: cover;
}

.ql6w_service_card h3 {
font-family: var(--font-secondary);
font-size: 24px;
margin: 25px 25px 15px;
color: var(--primary-color);
}

.ql6w_service_card p {
padding: 0 25px 25px;
color: var(--text-light);
flex-grow: 1;
}

.bc7t_portfolio {
padding: 80px 0;
background: var(--white-color);
}

.yn2p_portfolio_grid {
display: grid;
grid-template-columns: 1fr;
gap: 25px;
}

.kf5x_portfolio_item {
position: relative;
overflow: hidden;
border-radius: 8px;
height: 320px;
cursor: pointer;
box-shadow: var(--shadow-sm);
}

.kf5x_portfolio_item img {
width: 100%;
height: 100%;
object-fit: cover;
transition: var(--transition);
}

.dw9m_portfolio_overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(to top, rgba(44,62,80,0.95) 0%, rgba(44,62,80,0.3) 100%);
display: flex;
flex-direction: column;
justify-content: flex-end;
padding: 30px;
color: var(--white-color);
opacity: 0;
transition: var(--transition);
}

.kf5x_portfolio_item:hover .dw9m_portfolio_overlay {
opacity: 1;
}

.kf5x_portfolio_item:hover img {
transform: scale(1.1);
}

.dw9m_portfolio_overlay h3 {
font-family: var(--font-secondary);
font-size: 26px;
margin-bottom: 10px;
}

.dw9m_portfolio_overlay p {
font-size: 15px;
font-weight: 300;
}

.gx4w_process {
padding: 80px 0;
background: var(--light-color);
}

.tk8v_process_steps {
display: grid;
grid-template-columns: 1fr;
gap: 30px;
}

.mp2q_step {
background: var(--white-color);
padding: 35px;
border-radius: 8px;
text-align: center;
box-shadow: var(--shadow-sm);
transition: var(--transition);
}

.mp2q_step:hover {
box-shadow: var(--shadow-md);
transform: translateY(-5px);
}

.nr7c_step_number {
font-family: var(--font-secondary);
font-size: 48px;
font-weight: 700;
color: var(--accent-color);
margin-bottom: 20px;
}

.mp2q_step h3 {
font-family: var(--font-secondary);
font-size: 24px;
margin-bottom: 15px;
color: var(--primary-color);
}

.mp2q_step p {
color: var(--text-light);
line-height: 1.7;
}

.hw5k_contact {
padding: 80px 0;
background: var(--white-color);
}

.vz3p_contact_wrapper {
display: grid;
grid-template-columns: 1fr;
gap: 40px;
}

.qs8n_contact_info h2 {
font-family: var(--font-secondary);
font-size: 36px;
margin-bottom: 20px;
color: var(--primary-color);
}

.qs8n_contact_info > p {
margin-bottom: 30px;
color: var(--text-light);
line-height: 1.8;
}

.fx6m_contact_details {
display: flex;
flex-direction: column;
gap: 20px;
}

.jw9t_contact_item {
display: flex;
flex-direction: column;
gap: 8px;
}

.jw9t_contact_item strong {
color: var(--primary-color);
font-weight: 600;
}

.jw9t_contact_item a {
color: var(--text-dark);
text-decoration: none;
transition: var(--transition);
}

.jw9t_contact_item a:hover {
color: var(--primary-color);
}

.pd7x_contact_form {
background: var(--light-color);
padding: 35px;
border-radius: 8px;
box-shadow: var(--shadow-sm);
}

.lz5q_form {
display: flex;
flex-direction: column;
gap: 20px;
}

.yn8p_input,
.yn8p_textarea {
width: 100%;
padding: 15px;
border: 2px solid var(--border-color);
border-radius: 4px;
font-family: var(--font-primary);
font-size: 15px;
transition: var(--transition);
min-height: 48px;
background: var(--white-color);
}

.yn8p_input:focus,
.yn8p_textarea:focus {
outline: none;
border-color: var(--primary-color);
box-shadow: 0 0 0 3px rgba(44,62,80,0.1);
}

.yn8p_input:invalid:not(:placeholder-shown),
.yn8p_textarea:invalid:not(:placeholder-shown) {
border-color: #e74c3c;
}

.yn8p_input:valid:not(:placeholder-shown),
.yn8p_textarea:valid:not(:placeholder-shown) {
border-color: #27ae60;
}

.yn8p_textarea {
resize: vertical;
min-height: 120px;
}

.bm3w_footer {
background: var(--primary-color);
color: var(--white-color);
padding: 60px 0 30px;
}

.xq7k_footer_content {
display: grid;
grid-template-columns: 1fr;
gap: 35px;
margin-bottom: 40px;
}

.wn4z_footer_col h3,
.wn4z_footer_col h4 {
font-family: var(--font-secondary);
margin-bottom: 20px;
font-size: 22px;
}

.wn4z_footer_col p {
color: var(--accent-color);
line-height: 1.8;
}

.wn4z_footer_col a {
display: block;
color: var(--accent-color);
text-decoration: none;
margin-bottom: 12px;
transition: var(--transition);
}

.wn4z_footer_col a:hover {
color: var(--white-color);
padding-left: 5px;
}

.tv8x_footer_bottom {
text-align: center;
padding-top: 30px;
border-top: 1px solid rgba(255,255,255,0.1);
color: var(--accent-color);
}

.xt2w_cookie_banner {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background: rgba(44,62,80,0.96);
color: var(--white-color);
padding: 20px;
z-index: 9999;
box-shadow: 0 -4px 16px rgba(0,0,0,0.2);
animation: slideUp 0.4s ease-out;
}

@keyframes slideUp {
from {
transform: translateY(100%);
}
to {
transform: translateY(0);
}
}

.nc6p_cookie_content {
max-width: var(--max-width);
margin: 0 auto;
display: flex;
flex-direction: column;
gap: 20px;
align-items: center;
}

.nc6p_cookie_content p {
font-size: 14px;
line-height: 1.6;
text-align: center;
}

.qw5m_cookie_buttons {
display: flex;
gap: 15px;
flex-wrap: wrap;
justify-content: center;
}

.fk3r_cookie_btn {
padding: 12px 30px;
border: none;
border-radius: 4px;
font-weight: 600;
cursor: pointer;
transition: var(--transition);
font-size: 14px;
min-height: 44px;
}

.fk3r_accept {
background: var(--white-color);
color: var(--primary-color);
}

.fk3r_accept:hover {
background: var(--light-color);
transform: translateY(-2px);
}

.fk3r_decline {
background: transparent;
color: var(--white-color);
border: 2px solid var(--white-color);
}

.fk3r_decline:hover {
background: rgba(255,255,255,0.1);
}

.zm4t_modal {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0,0,0,0.7);
z-index: 10000;
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}

.ry8w_modal_content {
background: var(--white-color);
max-width: 700px;
width: 100%;
max-height: 80vh;
overflow-y: auto;
border-radius: 8px;
padding: 40px;
position: relative;
box-shadow: var(--shadow-lg);
animation: slideDown 0.3s ease;
}

@keyframes slideDown {
from {
transform: translateY(-50px);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}

.hv6n_close_modal {
position: absolute;
top: 15px;
right: 15px;
background: none;
border: none;
font-size: 32px;
cursor: pointer;
color: var(--text-light);
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
transition: var(--transition);
}

.hv6n_close_modal:hover {
background: var(--light-color);
color: var(--primary-color);
}

#dx3k_modal_body h2 {
font-family: var(--font-secondary);
font-size: 28px;
margin-bottom: 20px;
color: var(--primary-color);
}

#dx3k_modal_body h3 {
font-size: 20px;
margin-top: 25px;
margin-bottom: 12px;
color: var(--primary-color);
}

#dx3k_modal_body p {
margin-bottom: 15px;
line-height: 1.8;
color: var(--text-light);
}

#dx3k_modal_body ul {
margin-left: 20px;
margin-bottom: 15px;
}

#dx3k_modal_body li {
margin-bottom: 8px;
color: var(--text-light);
line-height: 1.7;
}

@media (min-width: 576px) {
.zk3m_hero_title {
font-size: 52px;
}

.wc6r_hero_subtitle {
font-size: 20px;
}

.rh4z_services_grid {
grid-template-columns: repeat(2, 1fr);
}

.yn2p_portfolio_grid {
grid-template-columns: repeat(2, 1fr);
}

.tk8v_process_steps {
grid-template-columns: repeat(2, 1fr);
}

.xq7k_footer_content {
grid-template-columns: repeat(2, 1fr);
}

.nc6p_cookie_content {
flex-direction: row;
justify-content: space-between;
}

.nc6p_cookie_content p {
text-align: left;
flex: 1;
}

.qw5m_cookie_buttons {
flex-wrap: nowrap;
}
}

@media (min-width: 768px) {
.qr8n_navigation {
display: flex;
}

.hg4s_burger {
display: none;
}

.km7p_mobile_menu {
display: none;
}

.zk3m_hero_title {
font-size: 64px;
}

.wc6r_hero_subtitle {
font-size: 22px;
}

.vz3p_contact_wrapper {
grid-template-columns: 1fr 1fr;
}

.xq7k_footer_content {
grid-template-columns: repeat(3, 1fr);
}
}

@media (min-width: 1024px) {
.rh4z_services_grid {
grid-template-columns: repeat(4, 1fr);
}

.yn2p_portfolio_grid {
grid-template-columns: repeat(3, 1fr);
}

.tk8v_process_steps {
grid-template-columns: repeat(4, 1fr);
}

.zk3m_hero_title {
font-size: 72px;
}

.xq7k_footer_content {
grid-template-columns: 2fr 1fr 1fr;
}
}