/* OLO 1.9 — editorial portfolio. All styles belong to plugin wrappers. */
.olo-case-shell,.olo-archive,.olo-shortcode-wrap,.olo-case-carousel-shell,.olo-case-filter{
 --olo-orange:#f15a24;--olo-black:#0b0c0e;--olo-paper:#f5f2ed;--olo-line:rgba(255,255,255,.13);--olo-muted:#b3b3b8;
 --olo-heading-font:var(--e-global-typography-primary-font-family,Arial),sans-serif;
 --olo-body-font:var(--e-global-typography-text-font-family,Arial),sans-serif;
 font-family:var(--olo-body-font);box-sizing:border-box;min-width:0;
}
:is(.olo-case-shell,.olo-archive,.olo-shortcode-wrap,.olo-case-carousel-shell,.olo-case-filter) *{box-sizing:border-box}
:is(.olo-case-shell,.olo-archive,.olo-shortcode-wrap,.olo-case-carousel-shell,.olo-case-filter) :is(h1,h2,h3){font-family:var(--olo-heading-font);font-weight:var(--e-global-typography-primary-font-weight,700);letter-spacing:-.045em;text-wrap:balance}
:is(.olo-case-shell,.olo-archive,.olo-shortcode-wrap,.olo-case-carousel-shell,.olo-case-filter) a{text-decoration:none;box-shadow:none}
:is(.olo-case-shell,.olo-archive,.olo-shortcode-wrap,.olo-case-carousel-shell,.olo-case-filter) :is(a,button,[role=link]):focus-visible{outline:2px solid var(--olo-orange);outline-offset:4px}
.olo-case-container{width:min(1280px,calc(100% - 80px));margin-inline:auto}
.olo-case-kicker,.olo-case-section-label{font:600 11px/1.5 var(--olo-body-font);text-transform:uppercase;letter-spacing:.16em;color:var(--olo-orange);margin:0 0 16px}
/* Project collection */
.olo-shortcode-wrap,.olo-case-filter{width:100%;margin:0;padding:0}
.olo-case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.olo-grid-cols-1{grid-template-columns:1fr}.olo-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.olo-case-card{position:relative;min-width:0;background:#111215;border:1px solid #28292d;border-radius:16px;overflow:hidden;color:#fff;cursor:pointer;transition:border-color .3s,box-shadow .3s,transform .3s}
.olo-case-card-media{position:relative;display:block;aspect-ratio:1.5;overflow:hidden;background:#18191d;isolation:isolate;color:white}
.olo-card-image{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.olo-case-card-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.52));pointer-events:none}
.olo-case-arrow{position:absolute;z-index:2;right:22px;bottom:22px;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#111;font:26px/1 Arial,sans-serif;transition:background .25s,transform .25s}
.olo-media-caption{position:absolute;z-index:2;left:24px;bottom:34px;color:#fff;font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.olo-case-card-copy{padding:28px}
.olo-case-card-copy .olo-case-kicker{font-size:10px;letter-spacing:.1em;margin-bottom:13px;line-height:1.7;overflow-wrap:anywhere;color:#ff875b}
.olo-case-card-copy h3{font-size:clamp(26px,2.5vw,38px);line-height:1.08;margin:0 0 14px;color:#fff}
.olo-case-card-copy h3 a{color:inherit}
.olo-case-subtitle,.olo-case-card-intro{font-size:14px;line-height:1.75;color:#c2c2c7;margin:0;max-width:56ch}
.olo-case-card-intro{margin-top:12px}
.olo-card-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--olo-line);padding-top:19px;margin-top:26px;font-size:10px;line-height:1.5;letter-spacing:.025em;color:#b3b3b8}
.olo-card-footer>span:last-child{color:#fff;flex-shrink:0}.olo-card-footer>span:last-child span{color:#ff875b;margin-left:6px}
@media(hover:hover){.olo-case-card:hover{border-color:#695044;transform:translateY(-4px);box-shadow:0 18px 40px #0002}.olo-case-card:hover .olo-card-image{transform:scale(1.045)}.olo-case-card:hover .olo-case-arrow{background:var(--olo-orange);transform:translate(2px,-2px)}}
/* Image-free covers use the real project title, never admin instructions. */
.olo-cover-art{position:absolute;inset:0;padding:28px;overflow:hidden;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(ellipse at 100% 0%,#b243263d,transparent 70%),#181719}
.olo-cover-art:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#ffffff07 1px,transparent 1px),linear-gradient(90deg,#ffffff07 1px,transparent 1px);background-size:40px 40px;mask-image:linear-gradient(90deg,transparent,#000)}
.olo-cover-orbit{position:absolute;width:75%;aspect-ratio:1;border:1px solid #f15a2455;border-radius:50%;right:-28%;top:-15%;box-shadow:0 0 0 32px #f15a2408,0 0 0 64px #f15a2408,0 0 0 96px #f15a2408}
.olo-cover-label{position:relative;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#ff9a76;margin-bottom:16px}
.olo-cover-title{position:relative;font-family:var(--olo-heading-font);font-size:clamp(26px,3.1vw,48px);font-weight:700;line-height:1.04;letter-spacing:-.05em;max-width:85%;color:#fff;text-wrap:balance}
.olo-case-card:nth-child(3n+2) .olo-cover-art{background:radial-gradient(ellipse at 100% 0%,#54657650,transparent 70%),#171b20}
.olo-case-card:nth-child(3n+2) .olo-cover-orbit{border-color:#91a9bd55;box-shadow:0 0 0 32px #91a9bd08,0 0 0 64px #91a9bd08,0 0 0 96px #91a9bd08}
.olo-case-card:nth-child(3n) .olo-cover-art{background:radial-gradient(ellipse at 100% 0%,#77745040,transparent 70%),#1b1d18}
/* Service selector */
.olo-filter-tabs{display:flex;gap:5px;padding:7px;background:#111215;border:1px solid #2a2a2d;border-radius:12px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#555 #111215;margin-bottom:24px}
.olo-filter-tabs .olo-filter-tab{appearance:none;display:flex;align-items:center;justify-content:center;gap:9px;flex:1 0 auto;min-height:50px;margin:0;padding:12px 17px;border:1px solid transparent;border-radius:7px;background:transparent;color:#bdbdc2;box-shadow:none;cursor:pointer;transition:color .2s,background .2s;font-family:var(--olo-body-font);text-transform:none;line-height:1.2}
.olo-filter-no{font-size:9px;font-weight:500;opacity:.65}.olo-filter-name{font-size:12px;font-weight:600;white-space:nowrap;letter-spacing:.02em}
.olo-filter-tabs .olo-filter-tab:hover{color:#fff;background:#242529}.olo-filter-tabs .olo-filter-tab.is-active{background:var(--olo-orange);color:#0b0c0e}.olo-filter-tab.is-active .olo-filter-no{opacity:.8}
.olo-work-status{display:flex;justify-content:space-between;align-items:center;padding:0 2px 18px;color:inherit;font-size:10px;letter-spacing:.12em;text-transform:uppercase;opacity:.75}
.olo-filter-grid .olo-case-card[hidden],.olo-filter-empty[hidden]{display:none}
.olo-filter-empty{padding:32px;border:1px solid #7775;border-radius:12px;color:inherit;font-size:14px}
.olo-case-card.olo-filter-enter{animation:olo-appear .35s ease both}@keyframes olo-appear{from{opacity:.3;transform:translateY(10px)}to{opacity:1;transform:none}}
/* Homepage carousel: section spacing remains controlled by Elementor. */
.olo-case-carousel-shell{width:100%;padding:0;margin:0;color:inherit}
.olo-case-carousel-head{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:32px}
.olo-case-carousel-head h2{color:inherit;font-size:clamp(36px,4.8vw,70px);line-height:1.02;margin:0;max-width:800px}
.olo-carousel-head-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:24px;flex-shrink:0}
.olo-work-link{display:inline-flex;align-items:center;gap:12px;color:inherit;font-size:10px;letter-spacing:.1em;font-weight:600}.olo-work-link span{color:var(--olo-orange);font-size:22px}
.olo-carousel-nav{display:flex;gap:8px}.olo-carousel-nav button{appearance:none;display:grid;place-items:center;width:48px;height:48px;min-width:48px;border-radius:50%;border:1px solid #70707566;background:transparent;color:inherit;padding:0;cursor:pointer;transition:background .2s,color .2s}
.olo-carousel-nav button:hover{background:var(--olo-orange);border-color:var(--olo-orange);color:#111}.olo-carousel-nav button:disabled{opacity:.3;cursor:default}.olo-carousel-nav button svg{width:18px;height:18px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.olo-carousel-viewport{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;cursor:grab;padding:5px 0 8px;user-select:none}.olo-carousel-viewport::-webkit-scrollbar{display:none}.olo-carousel-viewport.is-dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.olo-carousel-track{display:flex;gap:24px}.olo-carousel-card{flex:0 0 calc((100% - 48px)/3);scroll-snap-align:start}.olo-carousel-card .olo-case-card-media{aspect-ratio:1.2}.olo-carousel-card .olo-case-card-copy{padding:24px}.olo-carousel-card .olo-case-card-copy h3{font-size:clamp(24px,2.3vw,34px)}.olo-carousel-card .olo-cover-title{font-size:clamp(26px,2.7vw,42px)}
.olo-carousel-progress{height:2px;background:#7774;margin-top:24px;overflow:hidden}.olo-carousel-progress span{height:100%;display:block;background:var(--olo-orange);width:0;transition:width .2s}
.olo-carousel-controls{display:flex;justify-content:flex-end;margin-bottom:20px}
/* Archive and single project */
.olo-archive{background:var(--olo-black);color:#fff;min-height:100vh}.olo-archive-hero{padding:100px 0 64px;border-bottom:1px solid var(--olo-line)}
.olo-archive-hero h1{font-size:clamp(52px,8vw,112px);line-height:.96;margin:20px 0 30px;color:#fff}.olo-archive-hero p{max-width:540px;color:#b3b3b8;font-size:16px;line-height:1.8}.olo-archive-body{padding-block:48px 100px}
.olo-case-shell{background:var(--olo-paper);color:#18191c;overflow:hidden}.olo-case-hero{padding:48px 0 0;background:var(--olo-black);color:#fff}.olo-back-link{display:inline-block;font-size:12px;letter-spacing:.02em;color:#b3b3b8;margin-bottom:64px}.olo-back-link:hover{color:#fff}
.olo-case-hero h1{font-size:clamp(48px,7.6vw,108px);line-height:.98;color:#fff;margin:16px 0 28px;max-width:1120px;overflow-wrap:anywhere}.olo-case-hero-sub{max-width:700px;font-size:clamp(17px,2vw,23px);line-height:1.65;color:#bdbdc3}.olo-case-meta{display:flex;flex-wrap:wrap;gap:10px 30px;margin-top:36px;padding-top:24px;border-top:1px solid var(--olo-line)}.olo-case-meta span{font-size:11px;line-height:1.7;letter-spacing:.035em;color:#ccc}
.olo-case-hero-media{margin-top:48px;aspect-ratio:16/8;overflow:hidden;border-radius:14px 14px 0 0;background:#18191d}.olo-case-hero-media img{width:100%;height:100%;object-fit:cover;display:block}
.olo-case-placeholder{display:flex;align-items:center;justify-content:center;text-align:center;height:100%;padding:40px;background:radial-gradient(ellipse at 80% 20%,#f15a2426,transparent 65%),repeating-linear-gradient(90deg,transparent 0 59px,#ffffff06 60px),#161619;color:#fff;font-family:var(--olo-heading-font);font-size:clamp(28px,5vw,70px);font-weight:700;line-height:1.1;letter-spacing:-.04em}
.olo-case-section{padding:100px 0}.olo-case-section.white{background:var(--olo-paper);color:#18191c}.olo-case-section.dark{background:#101113;color:#fff}.olo-case-split{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(40px,7vw,110px);align-items:start}.olo-case-section h2{font-size:clamp(32px,4vw,55px);line-height:1.08;margin:0;color:inherit}.olo-case-section-label{margin-bottom:24px}.olo-case-copy{font-size:17px;line-height:1.9;color:inherit;overflow-wrap:anywhere}.olo-case-copy p{color:inherit}.olo-case-copy p:first-child{margin-top:0}.olo-case-copy p:last-child{margin-bottom:0}.olo-case-section.dark .olo-case-copy{color:#c4c4c9}.olo-case-section.white :is(h2,h3,h4,p,li){color:#18191c}
.olo-case-image{margin-top:54px;border-radius:12px;overflow:hidden}.olo-case-image img{display:block;width:100%;height:auto}.olo-case-gallery{display:grid;grid-template-columns:1fr 1fr;gap:24px}.olo-gallery-item{overflow:hidden;border-radius:12px;background:#17181b;aspect-ratio:4/3}.olo-gallery-item img{display:block;width:100%;height:100%;object-fit:cover}
.olo-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:38px}.olo-result{border-top:1px solid #f15a2477;padding:22px 0;min-width:0}.olo-result strong{display:block;color:#ff875b;font-family:var(--olo-heading-font);font-size:clamp(23px,2.6vw,40px);line-height:1.15;letter-spacing:-.035em;overflow-wrap:anywhere}.olo-result span{display:block;color:#bdbdc4;font-size:11px;line-height:1.6;margin-top:14px}
.olo-next{display:block;background:var(--olo-orange);color:#111;padding:64px 0}.olo-next-row{display:flex;justify-content:space-between;align-items:center;gap:24px}.olo-next small{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:#111}.olo-next h3{font-size:clamp(32px,5vw,72px);line-height:1.05;margin:16px 0 0;color:#111}.olo-next-arrow{display:grid;place-items:center;border:1px solid #1116;width:80px;height:80px;border-radius:50%;flex-shrink:0;font-size:42px;transition:background .25s,transform .25s}.olo-next:hover .olo-next-arrow{background:#fff3;transform:translate(3px,-3px)}
@media(max-width:1100px){.olo-case-container{width:calc(100% - 48px)}.olo-carousel-card{flex-basis:calc((100% - 24px)/2)}.olo-case-carousel-head{align-items:flex-start;flex-direction:column}.olo-carousel-head-actions{justify-content:space-between;width:100%}.olo-grid-cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}.olo-filter-tabs .olo-filter-tab{padding-inline:15px}.olo-case-split{gap:40px}}
@media(max-width:767px){.olo-case-container{width:calc(100% - 36px)}.olo-case-grid,.olo-grid-cols-3{grid-template-columns:1fr;gap:24px}.olo-case-card-copy{padding:23px}.olo-case-card-copy h3{font-size:30px}.olo-filter-tabs{border-radius:10px;margin-bottom:20px}.olo-filter-tabs .olo-filter-tab{min-height:46px;padding:12px 15px}.olo-filter-no{display:none}.olo-filter-name{font-size:12px}.olo-work-status{font-size:9px}.olo-case-card-media{aspect-ratio:1.4}.olo-cover-title{font-size:38px}.olo-carousel-card{flex-basis:86%}.olo-carousel-track{gap:16px}.olo-carousel-card .olo-cover-title{font-size:34px}.olo-carousel-card .olo-case-card-copy h3{font-size:28px}.olo-carousel-nav button{width:44px;height:44px;min-width:44px}.olo-case-carousel-head{gap:24px;margin-bottom:24px}.olo-case-split{grid-template-columns:1fr;gap:28px}.olo-case-section{padding:64px 0}.olo-case-section h2{max-width:14ch}.olo-case-copy{font-size:16px}.olo-case-section-label{margin-bottom:14px}.olo-case-hero{padding-top:28px}.olo-back-link{margin-bottom:44px}.olo-case-hero-media{aspect-ratio:4/3;margin-top:32px}.olo-case-meta{gap:10px 20px}.olo-case-gallery{grid-template-columns:1fr;gap:16px}.olo-results{gap:14px}.olo-result strong{font-size:25px}.olo-archive-hero{padding:64px 0 36px}.olo-archive-body{padding-block:28px 64px}.olo-next{padding:44px 0}.olo-next-arrow{width:52px;height:52px;font-size:28px}.olo-card-footer{font-size:9px}.olo-case-arrow{width:44px;height:44px}.olo-case-image{margin-top:32px}}
@media(max-width:380px){.olo-case-card-copy{padding:20px}.olo-cover-title{font-size:31px}.olo-results{grid-template-columns:1fr}.olo-card-footer{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){:is(.olo-case-shell,.olo-archive,.olo-shortcode-wrap,.olo-case-carousel-shell,.olo-case-filter) *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Elementor may set widget-level heading/text colours with higher specificity.
   These bounded overrides protect contrast only inside plugin-owned surfaces. */
.olo-case-card .olo-case-card-copy h3,.olo-case-card .olo-case-card-copy h3 a{color:#fff!important}
.olo-case-card .olo-case-subtitle,.olo-case-card .olo-case-card-intro{color:#c2c2c7!important}
.olo-case-shell .olo-case-section.white :is(h2,h3,h4,p,li){color:#18191c!important}
.olo-case-shell .olo-case-hero h1,.olo-archive .olo-archive-hero h1,.olo-case-shell .olo-case-section.dark h2{color:#fff!important}
.olo-case-shell .olo-case-section.dark .olo-case-copy p{color:#c4c4c9!important}
/* 1.9.1 — targeted protection against live Elementor/theme typography.
   !important is intentional here: theme anchor and SVG rules were overriding
   the component in production, including font size, colour and line height. */
.olo-case-shell .olo-case-container{width:calc(100% - 64px);max-width:none;margin-inline:auto}
.olo-case-shell .olo-case-hero{padding-top:32px}
.olo-case-shell .olo-back-link{margin-bottom:40px;color:#ff875b!important}
.olo-case-carousel-shell .olo-case-carousel-head h2{
 color:#111215!important;font-family:var(--olo-heading-font)!important;
 font-size:clamp(36px,4.8vw,70px)!important;font-weight:700!important;
 line-height:1.06!important;letter-spacing:-.025em!important;
 margin:0!important;opacity:1!important;visibility:visible!important;
 -webkit-text-fill-color:#111215!important;
}
.olo-case-card .olo-case-card-copy h3{
 font-family:var(--olo-heading-font)!important;font-size:clamp(26px,2.4vw,36px)!important;
 line-height:1.15!important;font-weight:700!important;letter-spacing:0!important;
 text-transform:none!important;white-space:normal!important;margin:0 0 16px!important;
 color:#fff!important;opacity:1!important;visibility:visible!important;
}
.olo-case-card .olo-case-card-copy h3 a{
 display:inline!important;font-family:inherit!important;font-size:inherit!important;
 font-weight:inherit!important;line-height:inherit!important;letter-spacing:inherit!important;
 text-transform:inherit!important;color:#fff!important;-webkit-text-fill-color:#fff!important;
 opacity:1!important;visibility:visible!important;text-decoration:none!important;
}
.olo-case-card .olo-case-card-copy :is(.olo-case-subtitle,.olo-case-card-intro){
 color:#e2e2e5!important;font-family:var(--olo-body-font)!important;
 font-size:15px!important;font-weight:400!important;line-height:1.75!important;
 letter-spacing:normal!important;opacity:1!important;visibility:visible!important;
}
.olo-case-carousel-shell .olo-work-link{color:#111215!important;font-size:12px!important;line-height:1.5!important}
.olo-case-carousel-shell .olo-carousel-nav button{
 display:flex!important;align-items:center!important;justify-content:center!important;
 width:48px!important;height:48px!important;min-width:48px!important;
 padding:0!important;margin:0!important;border-radius:50%!important;
 background:#f15a24!important;color:#111215!important;border:1px solid #f15a24!important;
 box-shadow:none!important;line-height:0!important;font-size:0!important;
}
.olo-case-carousel-shell .olo-carousel-nav button:disabled{opacity:.45!important}
.olo-case-carousel-shell .olo-carousel-nav button:hover:not(:disabled){background:#111215!important;border-color:#111215!important;color:#fff!important}
.olo-case-carousel-shell .olo-carousel-nav button svg,
.olo-case-shell .olo-next-arrow svg{
 display:block!important;width:20px!important;height:20px!important;
 margin:0!important;padding:0!important;fill:none!important;stroke:currentColor!important;
 stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important;
 opacity:1!important;visibility:visible!important;transform:none!important;
}
.olo-case-carousel-shell .olo-carousel-nav button svg path,
.olo-case-shell .olo-next-arrow svg path{fill:none!important;stroke:currentColor!important;stroke-width:2!important}
.olo-case-card .olo-case-arrow{
 display:flex!important;align-items:center!important;justify-content:center!important;
 color:#111215!important;background:#fff!important;line-height:1!important;
 font-family:Arial,sans-serif!important;font-size:26px!important;padding:0!important;
 opacity:1!important;visibility:visible!important;
}
.olo-case-shell .olo-next--visual{background:#17181b!important;color:#fff!important;padding:48px 0!important;border-top:1px solid #ffffff20}
.olo-case-shell .olo-next--visual .olo-next-row{display:grid;grid-template-columns:minmax(200px,.85fr) minmax(0,1.15fr) 72px;gap:40px;align-items:center}
.olo-next-media{aspect-ratio:16/10;overflow:hidden;border-radius:12px;background:#222;min-width:0}
.olo-next-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.olo-next--visual:hover .olo-next-media img{transform:scale(1.035)}
.olo-next-media .olo-case-placeholder{font-size:clamp(22px,2.5vw,40px)}
.olo-case-shell .olo-next--visual small{color:#ff875b!important;font:600 11px/1.5 var(--olo-body-font)!important;letter-spacing:.12em!important;text-transform:uppercase}
.olo-case-shell .olo-next--visual h3{color:#fff!important;-webkit-text-fill-color:#fff!important;font-family:var(--olo-heading-font)!important;font-size:clamp(30px,4vw,56px)!important;line-height:1.12!important;letter-spacing:0!important;margin:16px 0 24px!important}
.olo-next-cta{color:#e2e2e5!important;font:500 13px/1.5 var(--olo-body-font)!important}
.olo-case-shell .olo-next--visual .olo-next-arrow{width:64px;height:64px;background:#f15a24!important;color:#111215!important;border:0;display:flex;align-items:center;justify-content:center;padding:0}
@media(max-width:767px){
 .olo-case-shell .olo-case-container{width:calc(100% - 36px)}
 .olo-case-shell .olo-case-hero{padding-top:24px}
 .olo-case-shell .olo-back-link{margin-bottom:32px}
 .olo-case-card .olo-case-card-copy h3{font-size:28px!important}
 .olo-case-shell .olo-next--visual .olo-next-row{grid-template-columns:minmax(0,1fr) 52px;gap:24px}
 .olo-next-media{grid-column:1/-1;aspect-ratio:16/9}
 .olo-case-shell .olo-next--visual .olo-next-arrow{width:52px;height:52px}
 .olo-case-shell .olo-next--visual h3{font-size:32px!important}
}
