/* JB Technologies — open photographic service timeline; scoped to the services page. */
.jbsd .jbtl-timeline{position:relative;padding:25px 0 45px;isolation:isolate}
.jbsd .jbtl-timeline:before{content:"";position:absolute;z-index:0;left:50%;top:25px;bottom:45px;width:1px;background:linear-gradient(to bottom,transparent,#bbcadb 4%,#bbcadb 96%,transparent);transform:translateX(-50%)}
.jbsd .jbsd-card-grid{display:none}
.jbsd .jbtl-entry{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;column-gap:clamp(55px,8vw,140px);min-height:340px;margin:0;padding:clamp(30px,5vw,68px) 0;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important;transform:none!important;max-width:none!important}
.jbsd .jbtl-entry:nth-child(odd) .jbtl-content{grid-column:1;grid-row:1;justify-self:end}
.jbsd .jbtl-entry:nth-child(odd) .jbtl-visual{grid-column:2;grid-row:1}
.jbsd .jbtl-entry:nth-child(even) .jbtl-content{grid-column:2;grid-row:1;justify-self:start}
.jbsd .jbtl-entry:nth-child(even) .jbtl-visual{grid-column:1;grid-row:1}
.jbsd .jbtl-marker{position:absolute;top:50%;left:50%;width:15px;height:15px;background:#fff;border:2px solid #216bb1;border-radius:50%;transform:translate(-50%,-50%);z-index:3;box-shadow:0 0 0 8px #f9fbfe}
.jbsd .jbtl-marker span{display:block;width:5px;height:5px;margin:3px;background:#216bb1;border-radius:50%}
.jbsd .jbtl-content{width:100%;max-width:460px;position:relative;padding:4px 0!important;min-height:0;color:#102a4b}
.jbsd .jbtl-heading{display:flex;align-items:center;gap:12px;margin-bottom:17px;color:#357fbc;font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.jbsd .jbtl-dash{height:1px;width:30px;background:#b9cbdc}.jbsd .jbtl-label{color:#647a92}
.jbsd .jbtl-content h3{margin:0 0 16px!important;color:#102a4b;font-size:clamp(25px,2.6vw,38px)!important;line-height:1.18!important;letter-spacing:-.042em;font-weight:800}
.jbsd .jbtl-description{font-size:clamp(14px,1.1vw,17px)!important;line-height:1.75!important;color:#586c82!important;max-width:440px;margin:0 0 22px!important}
.jbsd .jbtl-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}
.jbsd .jbtl-tags span{display:inline-block;background:#f0f6fc;border:1px solid #dfebf6;padding:7px 11px;border-radius:20px;color:#416a91;font-size:11px;font-weight:600}
.jbsd .jbtl-more{width:auto!important;display:inline-flex!important;align-items:center;gap:18px;border:0!important;border-bottom:1px solid #bfd4e8!important;border-radius:0!important;padding:11px 0!important;background:transparent!important;font-weight:700!important;color:#216cae!important;cursor:pointer;text-align:left}
.jbsd .jbtl-more span{font-size:23px;line-height:1;transition:transform .25s}.jbsd .jbtl-more[aria-expanded="true"] span{transform:rotate(45deg)}
.jbsd .jbtl-details{margin-top:15px;max-width:440px;border-top:1px solid #e1eaf3;padding-top:16px}.jbsd .jbtl-details[hidden]{display:none!important}
.jbsd .jbtl-visual{display:block;width:100%;margin:0;aspect-ratio:1.34;position:relative;min-width:0;border:0!important;border-radius:16px;overflow:hidden;background:#e6eef7;box-shadow:0 22px 52px rgba(15,44,77,.1)}
.jbsd .jbtl-visual img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .85s cubic-bezier(.2,.7,.2,1)}
.jbsd .jbtl-entry:hover .jbtl-visual img{transform:scale(1.045)}
.jbsd .jbtl-visual-fallback{height:100%;display:flex;flex-direction:column;justify-content:space-between;padding:9%;background:linear-gradient(125deg,#102e4f,#2175b6 74%,#82b6d8);color:#fff}
.jbsd .jbtl-visual-fallback>span,.jbsd .jbtl-visual-fallback small{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#d5eafa}
.jbsd .jbtl-visual-fallback strong{font-size:clamp(22px,3vw,42px);line-height:1.1;letter-spacing:-.04em;max-width:390px}
.jbsd .jbtl-visual-fallback small{display:flex;justify-content:space-between}
.jbsd .jbtl-entry[hidden]{display:none!important}
/* Reset legacy card hover rules exclusively on these timeline entries. */
.jbsd .jbtl-entry:after,.jbsd .jbtl-entry:before{display:none!important}
.jbsd .jbtl-entry .jbtl-visual:after{display:none!important}
.jbsd .jbtl-entry:hover{background:transparent!important;box-shadow:none!important}
@media(prefers-reduced-motion:no-preference){.jbsd .jbtl-enabled .jbtl-entry:not(.jbtl-is-visible) [data-jbtl-reveal]{opacity:0;transform:translateY(34px)}.jbsd .jbtl-enabled .jbtl-entry [data-jbtl-reveal]{transition:opacity .7s ease,transform .7s cubic-bezier(.2,.65,.25,1)}.jbsd .jbtl-enabled .jbtl-entry.jbtl-is-visible [data-jbtl-reveal]{opacity:1;transform:translateY(0)}.jbsd .jbtl-enabled .jbtl-entry .jbtl-visual{transition-delay:.12s}}
@media(max-width:800px){.jbsd .jbtl-timeline:before{left:9px}.jbsd .jbtl-entry{grid-template-columns:minmax(0,1fr);gap:20px;padding:27px 0 40px 34px;min-height:0}.jbsd .jbtl-entry:nth-child(n) .jbtl-content,.jbsd .jbtl-entry:nth-child(n) .jbtl-visual{grid-column:1;justify-self:stretch}.jbsd .jbtl-entry:nth-child(n) .jbtl-visual{grid-row:1}.jbsd .jbtl-entry:nth-child(n) .jbtl-content{grid-row:2}.jbsd .jbtl-marker{left:9px;top:26%;width:13px;height:13px;box-shadow:0 0 0 5px #f9fbfe}.jbsd .jbtl-marker span{margin:2px}.jbsd .jbtl-content{max-width:none}.jbsd .jbtl-visual{aspect-ratio:1.5}.jbsd .jbtl-content h3{font-size:26px!important}}
@media(max-width:480px){.jbsd .jbtl-entry{padding-left:25px}.jbsd .jbtl-visual{aspect-ratio:1.3;border-radius:12px}.jbsd .jbtl-content h3{font-size:24px!important}.jbsd .jbtl-tags{gap:6px}}
