.btn{
display:inline-flex;
align-items:center;
justify-content:center;
gap:var(--space-1);
padding:14px 28px;
border-radius:var(--radius-button);
font-family:inherit;
font-size:var(--font-body);
font-weight:600;
text-decoration:none;
cursor:pointer;
border:2px solid transparent;
transition:background var(--transition-fast),color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast);
}

.btn--primary{
background:var(--color-primary);
color:var(--color-surface);
box-shadow:none;
}

.btn--primary:hover{
background:var(--color-primary-hover);
}

.btn--secondary{
background:transparent;
color:var(--color-dark);
border-color:var(--color-border);
}

.btn--secondary:hover{
border-color:var(--color-primary);
color:var(--color-primary);
}

.card{
background:var(--color-surface);
border-radius:var(--radius-card);
overflow:hidden;
box-shadow:var(--shadow-card);
border:1px solid var(--color-border);
transition:transform var(--transition-base),box-shadow var(--transition-base);
}

.card:hover{
transform:translateY(-6px);
box-shadow:var(--shadow-card-hover);
}

.product{
position:relative;
}

.product::before{
content:"";
position:absolute;
top:0;
left:0;
right:0;
height:3px;
background:linear-gradient(90deg,var(--color-primary),var(--color-dark));
opacity:0;
transition:opacity var(--transition-base);
z-index:2;
}

.product:hover::before{
opacity:1;
}

.product img{
width:100%;
height:180px;
object-fit:cover;
border-radius:var(--radius-image) var(--radius-image) 0 0;
transition:transform 0.45s ease-out;
}

.product:hover img{
transform:scale(1.04);
}

.product-body{
padding:var(--space-3) var(--space-2) var(--space-3);
}

.product-body h3{
margin:0 0 var(--space-1);
font-size:var(--font-subtitle);
font-weight:700;
color:var(--color-dark);
}

.product-body p{
margin:0;
color:var(--color-muted);
font-size:var(--font-small);
line-height:var(--line-height);
}

.price{
margin-top:var(--space-2);
font-weight:700;
color:var(--color-primary);
font-size:var(--font-body);
}

.inquiry-card{
max-width:none;
margin:0;
padding:var(--space-5);
background:var(--color-surface);
border-radius:var(--radius-card);
box-shadow:var(--shadow-card);
border:1px solid var(--color-border);
}

.inquiry-form{
display:grid;
gap:var(--space-2);
}

.inquiry-form label{
font-weight:600;
color:var(--color-dark);
font-size:var(--font-small);
}

.inquiry-form input,
.inquiry-form textarea{
width:100%;
padding:12px 14px;
border:1px solid var(--color-border);
border-radius:var(--radius-button);
font-size:var(--font-body);
font-family:inherit;
transition:border-color var(--transition-fast),box-shadow var(--transition-fast);
}

.inquiry-form input:focus,
.inquiry-form textarea:focus{
outline:none;
border-color:var(--color-primary);
box-shadow:var(--shadow-input);
}

.inquiry-form textarea{
resize:vertical;
min-height:120px;
}

.inquiry-form .btn--primary{
width:100%;
margin-top:var(--space-1);
}

.form-status{
margin:0 0 var(--space-2);
padding:0;
border-radius:var(--radius-button);
font-weight:600;
font-size:var(--font-small);
}

.form-status.success,
.form-status.error{
padding:var(--space-2);
}

.form-status.success{
background:#ecfdf5;
color:#065f46;
border:1px solid #6ee7b7;
}

.form-status.error{
background:#fef2f2;
color:#991b1b;
border:1px solid #fecaca;
}

.contact-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:var(--space-5);
align-items:start;
}

.contact-info p{
margin:0 0 var(--space-2);
padding-left:var(--space-3);
position:relative;
line-height:var(--line-height);
color:var(--color-muted);
font-size:var(--font-body);
}

.contact-info p::before{
content:"";
position:absolute;
left:0;
top:0.55em;
width:6px;
height:6px;
border-radius:50%;
background:var(--color-primary);
}

.contact-info strong{
color:var(--color-dark);
}

.contact-info a{
color:var(--color-primary);
font-weight:600;
text-decoration:none;
border-bottom:1px solid var(--color-primary-soft);
transition:color var(--transition-fast),border-color var(--transition-fast);
}

.contact-info a:hover{
color:var(--color-primary-hover);
border-bottom-color:var(--color-primary);
}

.btn--on-dark{
background:#fff;
color:#000;
}

.btn--on-dark:hover{
background:#f5f5f5;
}

.band--dark .contact-info p{
color:rgba(255,255,255,0.72);
padding-left:0;
}

.band--dark .contact-info p::before{
display:none;
}

.band--dark .contact-info strong,
.band--dark .contact-info a{
color:#fff;
}

.band--dark .contact-info a{
border-bottom-color:rgba(255,255,255,0.35);
}

.band--dark .contact-map{
background:#111;
border-color:#333;
}

.contact-cta{
margin-bottom:var(--space-5);
}

.contact-cta .section-title{
max-width:16ch;
}

.contact-offices{
margin-top:var(--space-5);
padding-top:var(--space-5);
border-top:1px solid rgba(255,255,255,0.14);
}

.contact-offices h3{
margin:0 0 12px;
font-size:1rem;
}

.contact-map{
width:100%;
height:320px;
background:#f5f5f5;
border-radius:var(--radius-card);
box-shadow:var(--shadow-card);
border:1px solid var(--color-border);
}

footer,
footer.site-footer{
position:relative;
background:#fff;
color:var(--color-text);
text-align:left;
}

footer.site-footer::before{
display:none;
}

.social-btn{
display:inline-flex;
align-items:center;
justify-content:center;
width:44px;
height:44px;
min-width:44px;
min-height:44px;
padding:0;
border:none;
border-radius:var(--radius-button);
text-decoration:none;
color:#fff;
box-shadow:var(--shadow-nav);
transition:transform var(--transition-fast),box-shadow var(--transition-fast),filter var(--transition-fast);
}

.social-btn:focus-visible{
outline:2px solid var(--color-surface);
outline-offset:2px;
}

.social-btn__icon{
display:block;
width:22px;
height:22px;
}

.social-btn--call svg,
.social-btn--email svg{
width:var(--icon-size);
height:var(--icon-size);
stroke-width:var(--icon-stroke);
color:#fff;
stroke:currentColor;
fill:none;
}

.social-btn--email{background:var(--color-dark);}
.social-btn--email:hover{background:#111820;transform:translateY(-2px);}
.social-btn--call{background:#16a34a;}
.social-btn--call:hover{background:#15803d;transform:translateY(-2px);box-shadow:0 8px 20px rgba(22,163,74,0.4);}

.local-captcha{
margin-top:var(--space-3);
}

.local-captcha__row{
display:flex;
flex-wrap:wrap;
align-items:center;
gap:var(--space-2);
margin:var(--space-2) 0;
}

.local-captcha__img{
display:block;
border:1px solid var(--color-border);
border-radius:var(--radius-sm,4px);
background:#fff;
}

.local-captcha__input{
max-width:12rem;
letter-spacing:0.08em;
font-weight:600;
}

.local-captcha__refresh{
white-space:nowrap;
}

.contact::before{
display:none;
}

.section-eyebrow{
display:block;
font-size:var(--font-small);
font-weight:600;
letter-spacing:0.08em;
text-transform:uppercase;
color:var(--color-primary);
margin-bottom:var(--space-2);
text-align:left;
}

.trust-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
gap:var(--space-3);
}

.trust-item{
display:flex;
gap:var(--space-3);
align-items:flex-start;
padding:var(--space-3);
background:var(--color-surface);
border-radius:var(--radius-card);
border:1px solid var(--color-border);
box-shadow:var(--shadow-card);
transition:transform var(--transition-base),box-shadow var(--transition-base);
}

.trust-item:hover{
transform:translateY(-4px);
box-shadow:var(--shadow-card-hover);
}

.trust-item__icon{
flex-shrink:0;
width:48px;
height:48px;
display:flex;
align-items:center;
justify-content:center;
background:var(--color-primary-soft);
border-radius:var(--radius-button);
color:var(--color-primary);
}

.trust-item__icon svg{
width:var(--icon-size);
height:var(--icon-size);
stroke-width:var(--icon-stroke);
color:var(--color-primary);
stroke:currentColor;
fill:none;
}

.trust-item h3{
margin:0 0 var(--space-1);
font-size:var(--font-body);
font-weight:700;
color:var(--color-dark);
}

.trust-item p{
margin:0;
font-size:var(--font-small);
color:var(--color-muted);
line-height:var(--line-height);
}

.advantage-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:var(--space-3);
}

.advantage-card{
padding:var(--space-4);
background:var(--color-surface);
border-radius:var(--radius-card);
border:1px solid var(--color-border);
box-shadow:var(--shadow-card);
transition:transform var(--transition-base),box-shadow var(--transition-base);
}

.advantage-card:hover{
transform:translateY(-6px);
box-shadow:var(--shadow-card-hover);
}

.advantage-card h3{
margin:0 0 var(--space-2);
font-size:var(--font-subtitle);
font-weight:700;
color:var(--color-dark);
display:flex;
align-items:center;
gap:var(--space-2);
}

.advantage-card h3 svg{
width:22px;
height:22px;
color:var(--color-primary);
stroke-width:var(--icon-stroke);
flex-shrink:0;
fill:none;
}

.advantage-card p{
margin:0;
font-size:var(--font-body);
color:var(--color-muted);
line-height:var(--line-height);
}

.project-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
gap:var(--space-3);
}

.project-card{
background:var(--color-surface);
border-radius:var(--radius-card);
overflow:hidden;
border:1px solid var(--color-border);
box-shadow:var(--shadow-card);
transition:transform var(--transition-base),box-shadow var(--transition-base);
}

.project-card:hover{
transform:translateY(-6px);
box-shadow:var(--shadow-card-hover);
}

.project-card img{
width:100%;
height:200px;
object-fit:cover;
display:block;
}

.project-card figcaption{
padding:var(--space-3);
font-size:var(--font-body);
font-weight:600;
color:var(--color-dark);
}

.process-steps{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
gap:var(--space-4);
counter-reset:step;
}

.process-step{
position:relative;
padding:var(--space-4) var(--space-3) var(--space-3);
background:var(--color-surface);
border-radius:var(--radius-card);
border:1px solid var(--color-border);
box-shadow:var(--shadow-card);
}

.process-step::before{
counter-increment:step;
content:counter(step);
position:absolute;
top:var(--space-3);
left:var(--space-3);
width:40px;
height:40px;
display:flex;
align-items:center;
justify-content:center;
background:var(--color-primary);
color:var(--color-surface);
font-weight:700;
font-size:var(--font-body);
border-radius:var(--radius-button);
}

.process-step h3{
margin:var(--space-5) 0 var(--space-2);
font-size:var(--font-body);
font-weight:700;
color:var(--color-dark);
}

.process-step p{
margin:0;
font-size:var(--font-small);
color:var(--color-muted);
line-height:var(--line-height);
}

.stats-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
gap:var(--space-3);
}

.stat-card{
text-align:center;
padding:var(--space-4) var(--space-3);
background:var(--color-surface);
border-radius:var(--radius-card);
border:1px solid var(--color-border);
box-shadow:var(--shadow-card);
}

.stat-card__value{
font-size:clamp(2rem,4vw,2.75rem);
font-weight:700;
color:var(--color-primary);
line-height:1.1;
margin-bottom:var(--space-1);
}

.stat-card__label{
font-size:var(--font-small);
color:var(--color-muted);
line-height:var(--line-height);
max-width:16rem;
margin:0 auto;
}

.section--cta{
background:linear-gradient(145deg,var(--color-dark) 0%,#2d3a47 55%,#1f2933 100%);
color:var(--color-surface);
}

.section--cta .section-title{
color:var(--color-surface);
}

.section--cta .section-title::after{
background:var(--color-primary);
}

.section--cta .section-subtitle{
color:rgba(255,255,255,0.88);
}

.cta-actions{
display:flex;
flex-wrap:wrap;
gap:var(--space-2);
justify-content:center;
margin-top:var(--space-4);
}

.section--cta .btn--secondary{
color:var(--color-surface);
border-color:rgba(255,255,255,0.45);
}

.section--cta .btn--secondary:hover{
border-color:var(--color-primary);
color:var(--color-primary-hover);
background:rgba(255,255,255,0.06);
}

.contact-block--form{
margin-top:0;
padding-top:0;
border-top:0;
}

.contact-form-heading{
font-size:var(--font-section);
font-weight:700;
color:var(--color-dark);
text-align:left;
margin:0 0 var(--space-2);
}

.contact-form-lead{
text-align:left;
font-size:var(--font-body);
color:var(--color-muted);
margin:0 0 var(--space-4);
max-width:none;
}

.floating-cta{
position:fixed;
bottom:max(30px,env(safe-area-inset-bottom,0px));
right:max(30px,env(safe-area-inset-right,0px));
z-index:1000;
opacity:0;
visibility:hidden;
transform:translateY(20px);
pointer-events:none;
transition:opacity 0.35s ease,transform 0.25s ease,visibility 0.35s ease;
}

.floating-cta.visible{
opacity:1;
visibility:visible;
transform:translateY(0);
pointer-events:auto;
}

.floating-cta__inner{
display:flex;
flex-direction:column;
align-items:flex-end;
gap:10px;
}

.floating-cta__panel{
display:flex;
flex-direction:column;
align-items:flex-end;
gap:10px;
opacity:0;
transform:translateY(15px);
pointer-events:none;
transition:opacity 0.25s ease,transform 0.25s ease;
}

@media (hover:hover) and (pointer:fine){
.floating-cta:hover .floating-cta__panel,
.floating-cta:focus-within .floating-cta__panel{
opacity:1;
transform:translateY(0);
pointer-events:auto;
}
}

.floating-cta--open .floating-cta__panel{
opacity:1;
transform:translateY(0);
pointer-events:auto;
}

.floating-cta__trigger{
display:inline-flex;
align-items:center;
justify-content:center;
gap:8px;
padding:16px 26px;
border-radius:50px;
font-size:16px;
font-weight:600;
font-family:inherit;
color:#fff;
background:linear-gradient(135deg,#ff6a00,#ff8c3a);
box-shadow:0 10px 25px rgba(0,0,0,0.25);
border:none;
cursor:pointer;
animation:floatingCtaPulse 3.2s ease-in-out infinite;
animation-play-state:paused;
transition:transform 0.25s ease,box-shadow 0.25s ease;
}

.floating-cta.visible .floating-cta__trigger{
animation-play-state:running;
}

.floating-cta__trigger:hover{
transform:translateY(-3px);
box-shadow:0 15px 30px rgba(0,0,0,0.3);
animation-play-state:paused;
}

.floating-cta__trigger:focus-visible{
outline:2px solid var(--color-surface);
outline-offset:3px;
}

.floating-cta__action{
display:inline-flex;
align-items:center;
justify-content:center;
gap:8px;
padding:14px 22px;
border-radius:50px;
font-size:16px;
font-weight:600;
font-family:inherit;
text-decoration:none;
transition:transform 0.25s ease,box-shadow 0.25s ease,background 0.25s ease;
}

.floating-cta__action--primary{
color:#fff;
background:linear-gradient(135deg,#ff6a00,#ff8c3a);
border:2px solid transparent;
box-shadow:0 8px 20px rgba(0,0,0,0.18);
}

.floating-cta__action--primary:hover{
transform:translateY(-2px);
box-shadow:0 12px 26px rgba(0,0,0,0.22);
}

.floating-cta__action--secondary{
background:var(--color-surface);
color:var(--color-primary);
border:2px solid var(--color-primary);
box-shadow:0 6px 16px rgba(0,0,0,0.1);
}

.floating-cta__action--secondary:hover{
transform:translateY(-2px);
background:var(--color-bg);
}

.floating-cta__icon{
flex-shrink:0;
width:18px;
height:18px;
display:block;
}

.floating-cta__text{
white-space:nowrap;
}

@keyframes floatingCtaPulse{
0%,100%{
box-shadow:0 10px 25px rgba(0,0,0,0.25);
}
50%{
box-shadow:0 10px 25px rgba(0,0,0,0.25),0 0 0 8px rgba(255,106,0,0.2);
}
}

@media(max-width:800px){
.contact-grid{grid-template-columns:1fr;}
.inquiry-card{padding:var(--space-3);}
.floating-cta{
bottom:max(20px,env(safe-area-inset-bottom,0px));
right:max(20px,env(safe-area-inset-right,0px));
}
.floating-cta__trigger,
.floating-cta__action{
padding:14px 22px;
font-size:15px;
}
}

@media (prefers-reduced-motion: reduce){
.floating-cta__trigger{
animation:none;
}
.floating-cta__panel{
transition:opacity 0.2s ease;
}
.floating-cta__trigger:hover,
.floating-cta__action--primary:hover,
.floating-cta__action--secondary:hover{
transform:none;
}
.btn--primary:hover,.btn--secondary:hover,.card:hover,.product:hover img,.social-btn:hover{transform:none;}
}
