/* ============================================================
   CAROUSEL — slide transition machinery
   Bootstrap JS toggles: .item .active .next .prev .left .right
   ============================================================ */
.carousel { position: relative; }

.carousel-inner { position: relative; width: 100%; overflow: hidden; }

.carousel-inner > .item {
    position: relative;
    display: none;
    -webkit-transition: .6s ease-in-out left;
    -o-transition:      .6s ease-in-out left;
    transition:         .6s ease-in-out left;
}
.carousel-inner > .item > img { width: 100%; line-height: 1; }

/* 3D transform path (modern browsers) */
@media all and (transform-3d), (-webkit-transform-3d) {
    .carousel-inner > .item {
        -webkit-transition: -webkit-transform .6s ease-in-out;
        -o-transition:      -o-transform .6s ease-in-out;
        transition:         transform .6s ease-in-out;
        -webkit-backface-visibility: hidden; backface-visibility: hidden;
        -webkit-perspective: 1000; perspective: 1000px;
    }
    .carousel-inner > .item.active.right,
    .carousel-inner > .item.next {
        left: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform:         translate3d(100%, 0, 0);
    }
    .carousel-inner > .item.active.left,
    .carousel-inner > .item.prev {
        left: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform:         translate3d(-100%, 0, 0);
    }
    .carousel-inner > .item.active,
    .carousel-inner > .item.next.left,
    .carousel-inner > .item.prev.right {
        left: 0;
        -webkit-transform: translate3d(0, 0, 0);
        transform:         translate3d(0, 0, 0);
    }
}

.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev { display: block; }
.carousel-inner > .active  { left: 0; }
.carousel-inner > .next,
.carousel-inner > .prev    { position: absolute; top: 0; width: 100%; }
.carousel-inner > .next    { left:  100%; }
.carousel-inner > .prev    { left: -100%; }
.carousel-inner > .next.left,
.carousel-inner > .prev.right { left: 0; }
.carousel-inner > .active.left  { left: -100%; }
.carousel-inner > .active.right { left:  100%; }

/* ============================================================
   CAROUSEL INDICATORS — dot nav
   Bootstrap JS toggles .active on the <li> elements
   ============================================================ */
.carousel-indicators {
    position: absolute;
    bottom: 1px;          /* site override: original Bootstrap has 10px */
    left: 50%;
    z-index: 15;
    width: 96%;
    padding-left: 0;
    margin-left: -48%;
    text-align: center;
    list-style: none;
}
.carousel-indicators li {
    display: inline-block;
    width: 10px; height: 10px;
    margin: 1px;
    text-indent: -999px;
    cursor: pointer;
    background-color: rgba(0,0,0,0);
    border: 1px solid #fff;
    border-radius: 10px;
}
.carousel-indicators .active {
    width: 12px; height: 12px;
    margin: 0;
    background-color: #fff;
}
@media screen and (min-width: 768px) {
    .carousel-indicators { bottom: 1px; }
}

/* ============================================================
   MODAL — Bootstrap JS toggles .fade .in .modal-open
   ============================================================ */
.fade { opacity: 0; transition: opacity .15s linear; }
.fade.in { opacity: 1; }

.modal-open { overflow: hidden; }
.modal {
    position: fixed; top: 0; right: 0; bottom: 0; left: 0;
    z-index: 1050; display: none; overflow: hidden;
    -webkit-overflow-scrolling: touch; outline: 0;
}
.modal.fade .modal-dialog {
    -webkit-transition: -webkit-transform .3s ease-out;
    -o-transition:      -o-transform .3s ease-out;
    transition:         transform .3s ease-out;
    -webkit-transform: translate(0, -25%);
    -ms-transform:     translate(0, -25%);
    transform:         translate(0, -25%);
}
.modal.in .modal-dialog {
    -webkit-transform: translate(0, 0);
    -ms-transform:     translate(0, 0);
    transform:         translate(0, 0);
}
.modal-open .modal { overflow-x: hidden; overflow-y: auto; }

.modal-dialog   { position: relative; width: auto; margin: 10px; }
.modal-content  {
    position: relative; background-color: #fff;
    border: 1px solid rgba(0,0,0,.2); border-radius: 6px; outline: 0;
    box-shadow: 0 3px 9px rgba(0,0,0,.5);
}
.modal-backdrop {
    position: fixed; top: 0; right: 0; bottom: 0; left: 0;
    z-index: 1040; background-color: #000;
}
.modal-backdrop.fade { opacity: 0; }
.modal-backdrop.in   { opacity: .5; }

.modal-header { min-height: 16.43px; padding: 15px; border-bottom: 1px solid #e5e5e5; }
.modal-body   { position: relative; padding: 15px; }
.modal-footer { padding: 15px; text-align: right; border-top: 1px solid #e5e5e5; }

@media (min-width: 768px) {
    .modal-dialog {
        width: 600px;
        margin: 30px auto;
    }
    .modal-content { box-shadow: 0 5px 15px rgba(0,0,0,.5); }
}