/* ORA V5 — section rhythm, type floor, richer Selected Work */
:root{--sy:clamp(56px,6vw,96px);--fs-label:12px;--fs-body:17px}

/* Section rhythm: one scale instead of 140–155px per side */
.intro-section,.work-section,.services-section,.proof-section{padding-block:var(--sy)!important}
.clients-section{padding-block:var(--sy) calc(var(--sy) * .8)!important}
.section-intro{margin-bottom:clamp(28px,3vw,44px)}
.services-section .section-intro{margin-bottom:8px}
.intro-section{gap:clamp(28px,4vw,56px)}

/* Type floor: nothing readable below 11–12px, body at 17px */
.eyebrow,.showcase-category,.proof-card-label,.proof-minor,.bts-caption{font-size:var(--fs-label)}
.showcase-overline,.screen-toolbar,.intro-bottom{font-size:11px}
.text-link{font-size:13px}
.nav-link{font-size:13px}
.service-row{font-size:14px}
.disclosure{font-size:13px}
.hero-copy p,.section-intro-bottom p,.service-switcher p,.bts-copy p,.portal-content p{font-size:var(--fs-body);line-height:1.65}
.intro-copy{font-size:clamp(17px,1.35vw,20px);line-height:1.6;max-width:62ch}
.intro-main h2{font-size:clamp(60px,8vw,120px)}
.portal-content h2{font-size:clamp(64px,9vw,136px)}
.section-intro h2,.intro-main h2,.bts-copy h2,.portal-content h2{text-wrap:balance}
.section-intro-bottom p,.bts-copy p,.intro-copy{text-wrap:pretty}
.locale-ar .eyebrow,.locale-ar .showcase-category,.locale-ar .showcase-overline,.locale-ar .proof-card-label,.locale-ar .bts-caption,.locale-ar .sp-label{font-family:'Cairo',sans-serif;letter-spacing:0}
.locale-ar .hero-copy p,.locale-ar .section-intro-bottom p,.locale-ar .service-switcher p,.locale-ar .bts-copy p,.locale-ar .portal-content p,.locale-ar .intro-copy{font-size:17px;line-height:1.85}
.locale-ar .service-row{font-size:15px}

/* Arrow icons point the reading direction */
.locale-ar .i-arrow{transform:scaleX(-1)}

/* ── Selected Work: portrait screens that fit the artwork ── */
.showcase-viewport{height:clamp(560px,46vw,700px)}
.showcase-slide{width:min(30vw,440px);height:auto;aspect-ratio:440/600}
.screen-art img{width:100%;height:100%;object-fit:cover;object-position:top center;max-height:none}
.screen-toolbar span:last-child{letter-spacing:.08em;text-transform:uppercase;opacity:.85}
.locale-ar .screen-toolbar span:last-child{font-family:'Cairo',sans-serif;letter-spacing:0;font-size:12px}
.screen-bottom{font-size:14px}
.locale-ar .screen-bottom{font-family:'Cairo',sans-serif}
.screen-go{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(236,97,57,.14);color:var(--ora-orange);transition:background .3s,color .3s}
.screen-go svg{width:16px;height:16px}
.showcase-slide.is-current:hover .screen-go{background:var(--ora-orange);color:#fff}

/* Detail panel under the reel */
.showcase-panel{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) auto;gap:clamp(24px,3.2vw,56px);align-items:start;padding:30px 4px 26px;border-bottom:1px solid var(--line)}
.sp-id{display:flex;gap:22px;align-items:flex-start;min-width:0}
.showcase-panel .showcase-count{font-size:64px;line-height:.9}
.showcase-panel .showcase-count small{font-size:14px}
.showcase-panel .showcase-title-wrap h3{font-size:clamp(30px,3vw,46px);letter-spacing:-.03em;line-height:1.05;text-wrap:balance}
.showcase-panel .showcase-lead{font-size:16px;color:#b5c1c7;margin-top:10px;max-width:40ch}
.showcase-panel .showcase-category{margin-bottom:8px}
.sp-detail{display:grid;gap:20px;min-width:0}
.sp-label{display:block;font:700 11px var(--body);letter-spacing:.16em;text-transform:uppercase;color:#8f9ca3;margin-bottom:10px}
.sp-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.sp-chips li{padding:7px 13px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.03);font-size:13px;font-weight:600;color:#e3e6e4}
.locale-ar .sp-chips li{font-family:'Cairo',sans-serif}
.sp-stats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.sp-stats li{display:flex;flex-direction:column;gap:4px;padding-top:10px;border-top:1px solid rgba(236,97,57,.45)}
.sp-stats strong{font:700 clamp(26px,2.4vw,36px)/1 var(--display);letter-spacing:.01em;font-variant-numeric:tabular-nums}
.sp-stats span{font-size:12px;color:#9eabb2;line-height:1.35}
.locale-ar .sp-stats span{font-family:'Cairo',sans-serif;font-size:13px}
.sp-what{margin:0;font-size:15px;line-height:1.6;color:#aeb9bf;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sp-what[hidden],.sp-stats-block[hidden]{display:none}
.showcase-panel .showcase-actions{display:flex;align-items:center;gap:12px;align-self:center}
.showcase-panel .showcase-visit{display:inline-flex;align-items:center;gap:10px;padding:14px 18px 14px 22px;border:0;border-radius:999px;background:var(--ora-orange);color:#fff;font-size:14px;font-weight:700;white-space:nowrap;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s}
.locale-ar .showcase-panel .showcase-visit{padding:14px 22px 14px 18px;font-family:'Cairo',sans-serif}
.showcase-panel .showcase-visit svg{width:18px;height:18px}
.showcase-panel .showcase-visit:hover{color:#fff;transform:translateY(-2px);box-shadow:0 12px 28px rgba(236,97,57,.35)}
.showcase-panel .showcase-buttons button{width:50px;height:50px;font-size:0}
.showcase-panel .showcase-buttons svg{width:20px;height:20px}
[data-showcase-prev] .i-arrow{transform:scaleX(-1)}
.locale-ar [data-showcase-prev] .i-arrow{transform:none}
.showcase-buttons button:focus-visible,.showcase-visit:focus-visible,.rail-item:focus-visible{outline:2px solid #fff;outline-offset:3px}

/* Project rail: overview + direct navigation + live progress */
.showcase-rail{list-style:none;margin:0;padding:0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}
.showcase-rail::-webkit-scrollbar{display:none}
.showcase-rail li{flex:1 0 130px;scroll-snap-align:start}
.rail-item{position:relative;width:100%;display:flex;gap:8px;align-items:baseline;padding:16px 2px 6px;background:none;border:0;color:#7f8c93;text-align:start;cursor:pointer;transition:color .3s}
.rail-item:before,.rail-fill{content:'';position:absolute;top:0;left:0;height:2px;width:100%;background:rgba(255,255,255,.12);border-radius:2px}
.rail-fill{background:var(--ora-orange);transform:scaleX(var(--p,0));transform-origin:left;transition:none}
.locale-ar .rail-fill{transform-origin:right}
.rail-item:hover{color:#e7eaea}
.rail-item.is-current{color:#fff}
.rail-num{font:700 11px var(--body);color:var(--ora-orange);letter-spacing:.06em}
.rail-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.locale-ar .rail-name{font-family:'Cairo',sans-serif}

@media(max-width:1100px){
  .showcase-slide{width:min(40vw,400px)}
  .showcase-panel{grid-template-columns:1fr 1fr}
  .showcase-panel .showcase-actions{grid-column:1/-1;justify-content:space-between}
}
@media(max-width:700px){
  :root{--fs-body:16px}
  .showcase-viewport{height:min(118vw,470px)}
  .showcase-slide{width:min(66vw,290px)}
  .showcase-panel{grid-template-columns:1fr;gap:20px;padding:22px 0 20px}
  .sp-id{gap:14px}
  .showcase-panel .showcase-count{font-size:44px}
  .showcase-panel .showcase-title-wrap h3{font-size:26px;max-width:none}
  .showcase-panel .showcase-lead{font-size:15px;max-width:none}
  .showcase-panel .showcase-visit{display:inline-flex}
  .showcase-panel .showcase-buttons button{width:46px;height:46px}
  .sp-stats strong{font-size:26px}
  .showcase-rail li{flex:0 0 118px}
  .screen-toolbar{font-size:9px}
  .screen-bottom{font-size:12px}
  .intro-copy{font-size:17px}
}

/* Pointer vs touch instructions */
.hint-touch{display:none}
@media (hover:none){.hint-pointer{display:none}.hint-touch{display:inline}}
.showcase-overline>span:last-child{text-align:end}

/* Readability floor for small numbers and labels (detector pass) */
.orbit .orbit-node .node-number,.pillar-num,.sr-index,.rail-num,.orbit-core small{font-size:11px}
.hero-edge,.hero-edge span{font-size:11px}
@media(max-width:700px){.screen-toolbar{font-size:10px}.hero-edge,.hero-edge span{font-size:10px}}

/* Phones use the service list, not the orbit (restores the original behaviour) */
@media(max-width:600px){.orbit-wrap{display:none}}
