.dcg-gallery-wrapper { width:100%; margin:0 auto; padding:clamp(35px,6vw,85px) 0; position:relative; overflow:hidden; box-sizing:border-box; }
.dcg-gallery-group { width:100%; margin:0 auto; padding:clamp(35px,6vw,85px) 0; position:relative; overflow:hidden; box-sizing:border-box; }
.dcg-gallery-group *, .dcg-gallery-group *::before, .dcg-gallery-group *::after { box-sizing:inherit; }
.dcg-gallery-group > .dcg-gallery-wrapper { padding:0; overflow:visible; }
.dcg-gallery-wrapper[hidden] { display:none !important; }
.dcg-gallery-wrapper *, .dcg-gallery-wrapper *::before, .dcg-gallery-wrapper *::after { box-sizing:inherit; }
.dcg-gallery-title { text-align:center; font-family:'EB Garamond','Playfair Display',Georgia,serif; font-size:clamp(28px,3vw,62px); font-weight:300 !important; font-style:normal; letter-spacing:.035em; line-height:.82; margin:0 0 clamp(-30px,-2vw,-14px); position:relative; z-index:3; color:#625e5b; text-transform:uppercase; text-shadow:none; pointer-events:none; }
.dcg-carousel { width:100%; height:clamp(400px,55vw,700px); position:relative; overflow:hidden; outline:none; touch-action:pan-y; cursor:grab; }
.dcg-carousel:active { cursor:grabbing; }
.dcg-carousel-track { height:100%; display:flex; align-items:center; gap:clamp(55px,12vw,160px); will-change:transform; transition:transform .85s cubic-bezier(.22,.61,.36,1); }
.dcg-carousel-track.dcg-no-transition, .dcg-carousel-track.dcg-dragging { transition:none; }
.dcg-carousel-cell { height:70%; flex:0 0 auto; display:flex; align-items:center; justify-content:center; opacity:.72; transition:height .85s cubic-bezier(.22,.61,.36,1), opacity .6s ease; }
.dcg-carousel-cell.is-selected { height:100%; opacity:1; }
.dcg-carousel-cell-inner { height:100%; width:auto; position:relative; }
.dcg-img { height:100%; width:auto; max-width:none; object-fit:cover; display:block; user-select:none; -webkit-user-drag:none; }
.dcg-nav-arrows { position:absolute; z-index:5; left:0; right:0; top:54%; height:0; pointer-events:none; }
.dcg-arrow { pointer-events:auto; position:absolute; width:clamp(62px,7vw,100px); height:clamp(62px,7vw,100px); top:0; transform:translateY(-50%); background:rgba(255,255,255,.18); border:1px solid rgba(25,25,25,.45); border-radius:50%; cursor:pointer; color:#272421; padding:0; display:flex; align-items:center; justify-content:center; transition:background .3s,color .3s,transform .3s; }
.dcg-arrow-prev { left:clamp(18px,12.5vw,200px); }
.dcg-arrow-next { right:clamp(18px,12.5vw,200px); }
.dcg-arrow:hover { background:#272421; color:#fff; transform:translateY(-50%) scale(1.04); }
.dcg-arrow:focus-visible, .dcg-carousel:focus-visible { outline:2px solid #272421; outline-offset:4px; }
.dcg-arrow svg { width:30%; height:30%; stroke-width:1; }
.dcg-empty { text-align:center; padding:60px; color:#888; font-style:italic; font-family:serif; }
.dcg-category-nav { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:clamp(22px,4vw,58px); padding:clamp(28px,4vw,52px) 24px 0; color:#403d3a; }
.dcg-category-prefix { font-family:'EB Garamond','Playfair Display',Georgia,serif; font-size:17px; font-style:italic; text-transform:lowercase; }
.dcg-category-button { appearance:none; border:0; border-bottom:1px solid transparent; background:transparent; color:inherit; cursor:pointer; padding:5px 0 7px; font:500 11px/1.2 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; letter-spacing:.18em; text-transform:uppercase; transition:border-color .25s ease,opacity .25s ease; }
.dcg-category-button:hover { opacity:.65; }
.dcg-category-button.is-active { border-bottom-color:currentColor; }
.dcg-category-button:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
@media (max-width:767px) {
    .dcg-gallery-wrapper { padding:35px 0 55px; }
    .dcg-gallery-group { padding:35px 0 55px; }
    .dcg-gallery-group > .dcg-gallery-wrapper { padding:0; }
    .dcg-gallery-title { font-size:clamp(32px,8vw,44px); line-height:.84; margin-bottom:-10px; }
    .dcg-carousel { height:82svh; min-height:520px; max-height:760px; }
    .dcg-carousel-track { gap:28px; }
    .dcg-carousel-cell { height:72%; }
    .dcg-carousel-cell.is-selected { height:100%; }
    .dcg-arrow { width:58px; height:58px; }
    .dcg-arrow-prev { left:10px; }
    .dcg-arrow-next { right:10px; }
    .dcg-category-nav { gap:16px 24px; padding-top:30px; }
    .dcg-category-prefix { flex-basis:100%; text-align:center; }
}
@media (prefers-reduced-motion:reduce) { .dcg-carousel-track, .dcg-carousel-cell, .dcg-arrow { transition-duration:.01ms !important; } }
