
.devis-modal {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.8);
z-index: 9999;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
.devis-modal.active {
display: flex;
align-items: flex-start;
justify-content: center;
padding: 20px;
}
.devis-modal-content {
background: white;
width: 100%;
max-width: 900px;
margin: 40px auto;
border-radius: 10px;
box-shadow: 0 10px 50px rgba(0, 0, 0, 0.3);
position: relative;
animation: modalSlideIn 0.3s ease;
}
@keyframes modalSlideIn {
from {
opacity: 0;
transform: translateY(-30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.devis-modal-close {
position: absolute;
top: 15px;
right: 15px;
background: var(--primary-color);
color: white;
border: none;
width: 40px;
height: 40px;
border-radius: 50%;
font-size: 24px;
line-height: 1;
cursor: pointer;
transition: var(--transition);
z-index: 10;
}
.devis-modal-close:hover {
background: var(--secondary-color);
transform: rotate(90deg);
}
#devisModalBody {
padding: 60px 40px 40px;
min-height: 400px;
}
#devisModalBody .loading {
text-align: center;
font-size: 18px;
color: var(--gray-dark);
padding: 100px 20px;
}
@media (max-width: 768px) {
.devis-modal.active {
display: block;
padding: 0;
}
.devis-modal-content {
margin: 0;
border-radius: 0;
min-height: 100vh;
width: 100%;
height: auto;
}
#devisModalBody {
padding: 60px 20px 40px;
}
}
.sticky-cta {
display: none;
}
@media (max-width: 768px) {
body.n28vbo {
padding-bottom: 76px;
}
body.n28vbo .sticky-cta {
display: block;
position: fixed;
left: 0;
right: 0;
bottom: 0;
z-index: 900;
padding: 10px 12px;
background: #FFFFFF;
border-top: 1px solid var(--line);
transform: translateY(110%);
transition: transform .2s ease;
}
body.n28vbo .sticky-cta.visible {
transform: translateY(0);
}
body.n28vbo .sticky-cta a {
display: block;
padding: 15px 16px;
border-radius: var(--btn-radius);
background: var(--cta-bg);
color: #FFFFFF;
font-weight: 700;
font-size: 1.05rem;
text-align: center;
text-decoration: none;
}
body.n28vbo.modal-open .sticky-cta {
display: none;
}
body.n28vbo .devis-modal.active {
padding-top: 24px;
}
body.n28vbo .devis-modal-content {
min-height: calc(100vh - 24px);
border-radius: 16px 16px 0 0;
animation: devisSheetUp .25s ease;
}
body.n28vbo .devis-modal-close {
width: 44px;
height: 44px;
top: 10px;
right: 10px;
}
}
@media (max-width: 768px) {
body.cwaw3h {
padding-bottom: 104px;
}
body.cwaw3h .sticky-cta {
border-top: none;
border-radius: 22px 22px 0 0;
box-shadow: 0 -10px 26px rgba(20,26,33,.14);
padding: 8px 14px 12px;
}
body.cwaw3h .sticky-cta-grip {
display: block;
width: 38px;
height: 4px;
margin: 0 auto 8px;
border-radius: 4px;
background: #D3D9E0;
}
body.cwaw3h .sticky-cta a {
background: var(--primary-color);
color: var(--peps-fg);
font-weight: 800;
border-radius: 14px;
}
body.cwaw3h .sticky-cta small {
display: block;
margin-top: 6px;
text-align: center;
font-size: 0.8rem;
color: var(--gray-dark);
}
}
@keyframes devisSheetUp {
from { transform: translateY(40px); opacity: 0; }
to { transform: translateY(0); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
body.n28vbo .sticky-cta,
body.n28vbo .devis-modal-content {
transition: none;
animation: none;
}
}
body.modal-open {
overflow: hidden;
}
