:root{
    --mac-primary:#8b6a3f;
    --mac-primary-dark:#6f5433;
	--mac-primary-light:#F5F3E9;

}

.gallery-section{
background:#f8f5ef;
}
.gallery-card{
cursor:pointer;
background:#fff;
border-radius:12px;
overflow:hidden;
box-shadow:0 8px 24px rgba(0,0,0,.08);
transition:.25s;
height:100%;
}
.gallery-card:hover{
transform:translateY(-6px);
box-shadow:0 14px 32px rgba(0,0,0,.18);
}
.gallery-card img{
width:100%;
aspect-ratio:4/5;
object-fit:cover;
display:block;
}
.gallery-body{
padding:1.2rem;
}
.gallery-body h3{
margin:0 0 .4rem;
font-size:1.15rem;
font-weight:600;
}
.gallery-body p{
margin:0;
font-size:.95rem;
color:#666;
line-height:1.45;
}
.gallery-modal{
border:none;
border-radius:14px;
overflow:hidden;
}
.gallery-modal .modal-header{
padding:.65rem 1rem;
border-bottom:1px solid #ececec;
background:#faf8f4;
}
.gallery-modal .modal-body{
padding:.75rem;
}
.gallery-modal .modal-footer{
padding:.65rem .9rem;
border-top:1px solid #ececec;
background:#faf8f4;
display:flex;
align-items:center;
gap:.75rem;
}
.gallery-header{
flex:1;
}
.gallery-title{
margin:0;
font-size:1.35rem;
font-weight:600;
}

.gallery-title{
    margin:0;
    font-family:
        "Cinzel",
        serif;
    font-size:clamp(2.3rem,5vw,4rem);
    color:var(--mac-primary);
}

.gallery-title-light
{
	 color:var(--mac-primary-light);
}


.gallery-project-description{
margin-top:.15rem;
font-size:.9rem;
color:#777;
}
.gallery-viewer{
display:grid;
grid-template-columns:120px 1fr;
gap:1rem;
align-items:stretch;
}
.gallery-sidebar{
overflow-y:auto;
max-height:72vh;
padding-right:.25rem;
}
.gallery-timeline{
display:flex;
flex-direction:column;
gap:.6rem;
}
.gallery-stage{
display:flex;
align-items:center;
justify-content:center;
}
.gallery-image-container{
width:100%;
height:72vh;
display:flex;
justify-content:center;
align-items:center;
background:#f2efe9;
border-radius:10px;
overflow:hidden;
}
.gallery-image{
    max-width:100%;
    max-height:100%;
    object-fit:contain;
    transition:transform .15s ease;
    transform-origin:center center;
    user-select:none;
    -webkit-user-drag:none;
    will-change:transform;
}
.gallery-item{
cursor:pointer;
background:#fff;
border:2px solid transparent;
border-radius:10px;
overflow:hidden;
transition:.25s;
position:relative;
}
.gallery-item:hover{
border-color:#b48a43;
}
.gallery-item.active{
border-color:#8b6a2b;
box-shadow:0 0 0 2px rgba(180,138,67,.2);
}
.gallery-item.active::before{
content:"";
position:absolute;
left:0;
top:0;
bottom:0;
width:4px;
background:#8b6a2b;
}
.gallery-item img{
width:100%;
aspect-ratio:4/5;
object-fit:cover;
display:block;
}
.gallery-item-title{
padding:.35rem;
font-size:.78rem;
font-weight:600;
text-align:center;
}
.gallery-item.active .gallery-item-title{
color:#8b6a2b;
}
.gallery-nav{
width:36px;
height:36px;
border:none;
border-radius:50%;
background:#8b6a2b;
color:#fff;
display:flex;
align-items:center;
justify-content:center;
transition:.2s;
}
.gallery-nav:hover{
background:#6f531f;
}
.gallery-counter{
min-width:70px;
text-align:center;
font-weight:600;
}
.gallery-step-info{
flex:1;
overflow:hidden;
white-space:nowrap;
text-overflow:ellipsis;
}
.gallery-step-title{
font-weight:600;
}
.gallery-step-separator{
margin:0 .35rem;
color:#999;
}
.gallery-step-description{
color:#666;
}
.gallery-sidebar::-webkit-scrollbar{
width:6px;
height:6px;
}
.gallery-sidebar::-webkit-scrollbar-thumb{
background:#b48a43;
border-radius:20px;
}
.gallery-sidebar::-webkit-scrollbar-track{
background:transparent;
}
.gallery-image.zoom{
cursor:grab;
}
.gallery-image.dragging{
cursor:grabbing;
}

@media (max-width:991px){
.gallery-viewer{
grid-template-columns:95px 1fr;
}
}
@media (max-width:767px){
.gallery-modal .modal-dialog{
margin:.5rem;
}
.gallery-modal .modal-body{
padding:.5rem;
}
.gallery-viewer{
display:flex;
flex-direction:column;
gap:.75rem;
}
.gallery-stage{
order:1;
}
.gallery-sidebar{
order:2;
max-height:none;
overflow-x:auto;
overflow-y:hidden;
padding:0;
}
.gallery-timeline{
flex-direction:row;
gap:.5rem;
padding-bottom:.25rem;
}
.gallery-item{
flex:0 0 82px;
}
.gallery-item-title{
font-size:.72rem;
line-height:1.2;
}
.gallery-image-container{
height:58vh;
}
.gallery-modal .modal-footer{
flex-wrap:wrap;
justify-content:center;
gap:.5rem;
}
.gallery-counter{
min-width:auto;
}
.gallery-step-info{
width:100%;
text-align:center;
white-space:normal;
font-size:.82rem;
}
}
/*  RIBETE SPONSOR */
.gallery-card{
    position:relative;
    overflow:visible;
}

.gallery-sponsored-badge{
    position:absolute;
    top:-27px;
    right:-18px;
    width:112px;
    height:112px;
    border-radius:50%;
    background:#7b1e2b;
    color:#e6d3a1;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    font-size:11px;
    font-weight:700;
    line-height:1.12;
    padding:8px;
    border:4px solid #d7b15b;
    box-shadow:
        0 8px 20px rgba(0,0,0,.35);
    transform:rotate(15deg);
    z-index:20;
    pointer-events:none;
}
    position:absolute;
    top:-18px;
    right:-18px;
    width:92px;
    height:92px;
    border-radius:50%;
    background:#7b1e2b;
    color:#e6d3a1;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    font-size:10px;
    font-weight:700;
    line-height:1.15;
    box-shadow:
        0 6px 18px rgba(0,0,0,.35);
    border:4px solid #d7b15b;
    z-index:20;
    transform:rotate(14deg);
    pointer-events:none;
}

.gallery-sponsored-badge span{
    font-size:24px;
    margin-bottom:4px;
    line-height:1;
}

.gallery-sponsored-badge::after{
    content:"";
    position:absolute;
    inset:8px;
    border:1px dashed rgba(255,255,255,.25);
    border-radius:50%;
}

/*  RESPONSIVE */
@media (max-width:768px){

.gallery-sponsored-badge{

    width:72px;
    height:72px;

    font-size:8px;

    top:-12px;
    right:-12px;

}

.gallery-sponsored-badge span{

    font-size:16px;

}

}