.product-page{
    padding:0px 0 70px;
}

.product-layout{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:start;
}

.product-gallery{
    background:white;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 10px 30px rgba(0,0,0,.06);
}

.product-main-image img{
    display:block;
    width:100%;
    height:auto;
}


.product-thumbnail{
    width:90px !important;
    height:90px !important;
    object-fit:cover;
    border-radius:12px;
    cursor:pointer;
    background:white;
}

.product-info h1{
    font-size:clamp(2rem,4vw,3rem);
    line-height:1.15;
    margin-bottom:20px;
}

.product-short{
    font-size:1.05rem;
    line-height:1.7;
    color:#64748b;
    margin-bottom:30px;
}

.product-price-box{
    display:flex;
    flex-direction:column;
    margin-bottom:30px;
}

.price-label{
    font-size:.85rem;
    color:#64748b;
}

.price-value{
    font-size:2.5rem;
    font-weight:700;
    color:var(--secondary);
    line-height: 1;
}

.product-actions{
    display:flex;
    gap:15px;
    flex-wrap:wrap;
}

.btn-outline{
    border:2px solid var(--primary);
    color:var(--primary);
    background:white;
}

.btn-outline:hover{
    background:var(--primary);
    color:white;
}

.product-description{
    padding:0px 0 70px;
}

.product-content-text{
    background:white;
    border-radius:20px;
    padding:35px;
    box-shadow:0 10px 30px rgba(0,0,0,.05);

    line-height:1.8;
}

.product-content-text h2,
.product-content-text h3{
    margin-top:25px;
    margin-bottom:10px;
}

.product-content-text h3{
    margin-top:30px;
    margin-bottom:15px;
    font-size:1.35rem;
    color:var(--primary);
}

.product-content-text p{
    margin-bottom:15px;
}

.product-content-text ul,
.product-content-text ol{
    margin:15px 0 20px 25px;
    padding-left:10px;
}

.product-content-text li{
    margin-bottom:10px;
    line-height:1.8;
}

.product-content-text li:last-child{
    margin-bottom:0;
}

/* Sous-listes */
.product-content-text li ul,
.product-content-text li ol{
    margin-top:10px;
    margin-bottom:10px;
    margin-left:15px;
}

/* Évite les espaces inutiles créés par les éditeurs WYSIWYG */
.product-content-text li p{
    margin-bottom:0;
}

.product-content-text hr{
    border:none;
    height:1px;
    background:#e2e8f0;
    margin:30px 0;
}

.product-content-text strong{
    color:var(--primary);
}

.product-content-text a{
    color:var(--secondary);
    font-weight:600;
}

.product-content-text a:hover{
    text-decoration:none;
}

.product-prices{
    padding:0 0 70px;
}

.price-table{
    background:white;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 10px 30px rgba(0,0,0,.05);
}

.price-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:18px 25px;
    border-bottom:1px solid #e2e8f0;
    flex:1;
    padding-right:15px;
}

.price-row:last-child{
    border-bottom:none;
}

.price-row strong{
    color:var(--secondary);
    font-size:1.1rem;
    white-space:nowrap;
    flex-shrink:0;
}

.product-main-image img{
    width:100%;
    display:block;
}


.product-thumbnails{

    display:flex;
    gap:15px;
    margin-top:20px;
    flex-wrap:wrap;

}


.product-thumbnail:hover{
    opacity:.7;
}

.product-shortcuts{
    padding:20px 0 30px;
    position:sticky;
    top:100px;
    z-index:10;
}


.shortcut-tabs{
    display:flex;
    justify-content:center;
    width:max-content;
    margin:auto;
    background:white;
    border-radius:20px;
    border:1px solid #e2e8f0;
    overflow:hidden;
    box-shadow:0 5px 20px rgba(0,0,0,.06);
}


.shortcut-tabs a{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:10px 25px;
    color:var(--primary);
    font-weight:600;
    text-decoration:none;
    transition:.2s;
    white-space:nowrap;
}


.shortcut-tabs a + a{
    border-left:1px solid rgba(148,163,184,.4);
}


.shortcut-tabs a:hover{
    background:var(--secondary);
    color:white;
}

#description,
#tarifs{
    scroll-margin-top:120px;
}

.phone-action{
    display:flex;
    align-items:center;
    gap:15px;
}


.phone-number{
    display:none;
    flex-direction:column;
    justify-content:center;
    border:2px solid var(--primary);
    border-radius:8px;
    padding:8px 25px;
    min-height:48px;
    background:white;
}


.phone-number span{
    font-size:.75rem;
    color:#64748b;
    line-height:1;
}


.phone-number strong{
    font-size:1rem;
    color:var(--primary);
    line-height:1.3;
}

@media(max-width:900px){
    .product-layout{
        grid-template-columns:1fr;
        gap:30px;
    }

    .product-info h1{
        font-size:2rem;
    }

    .price-value{
        font-size:2rem;
    }

    .product-actions{
        gap:12px;
    }

    .product-actions .btn{
        width:calc(50% - 6px);
        max-width:none;
        text-align:center;
    }
}

@media(max-width:700px){
    .product-page{
        padding:40px 0;
    }

    .product-content-text{
        padding:20px;
    }

    .price-row{
        padding:15px;
        font-size:.9rem;
    }

    .product-shortcuts{
        top:70px;
    }

        .phone-action{
        flex:1;
    }

    .phone-action .btn{
        width:100%;
    }
}

@media(max-width:380px){

    .product-actions .btn{
        width:100%;
    }

}

@media (hover: none) and (pointer: coarse) {
    .shortcut-tabs a:hover {
        background: none;
        color: var(--primary);
    }
}