/* OSM Casos de Éxito • Editorial firm ledger v0.9 */
:root{--oc-green:#2f4f4f;--oc-night:#132c2b;--oc-ink:#142827;--oc-soft:#f3f6f4;--oc-mute:#688078;--oc-line:rgba(47,79,79,.18)}
.oc-container{width:min(1220px,calc(100% - 72px));margin:0 auto}
.oc-eyebrow{font-size:10px;letter-spacing:.28em;font-weight:900;color:var(--oc-green);text-transform:uppercase}
.oc-lead{position:relative;background:linear-gradient(110deg,#183a38,#284d49 70%,#315851);color:white;overflow:hidden;padding:78px 0 88px}
.oc-lead-pattern{position:absolute;inset:0;opacity:.14;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0 83px,#c6e1d6 84px 85px),repeating-linear-gradient(0deg,transparent 0 83px,#c6e1d6 84px 85px);transform:rotate(-10deg) scale(1.35);mask-image:linear-gradient(100deg,transparent 17%,#000)}
.oc-lead-inner{position:relative;display:grid;grid-template-columns:1fr 230px;gap:60px;align-items:center}
.oc-lead-eyebrow{color:#bbd3c9;font-size:10px;letter-spacing:.3em;font-weight:900}
.oc-lead h2{font-size:clamp(38px,5.1vw,70px);line-height:1.04;letter-spacing:-.072em;margin:19px 0 24px;font-weight:900}
.oc-lead h2 span{-webkit-text-stroke:1.1px #d8e9e2;color:transparent}
.oc-lead p{max-width:600px;font-size:16px;line-height:1.75;margin:0;color:#d2e2dc}
.oc-stat-block{padding:5px 0 8px 36px;border-left:1px solid rgba(255,255,255,.32);display:flex;flex-direction:column;align-items:flex-start}
.oc-stat{font-size:clamp(48px,6vw,86px);font-weight:800;line-height:.94;letter-spacing:-.07em;color:white}
.oc-stat-label{font-size:9px;color:#c0d9cf;letter-spacing:.19em;font-weight:900;margin-top:7px}
.oc-stat-divider{height:1px;width:100%;background:rgba(255,255,255,.22);margin:23px 0}
.oc-index-section{background:#fff;padding:35px 0 36px;border-bottom:1px solid var(--oc-line)}
.oc-index-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:19px;border-bottom:1px solid var(--oc-line)}
.oc-index-heading>span:last-child{font-size:9px;font-weight:800;color:#95a9a2;letter-spacing:.12em;text-align:right}
.oc-index-nav{display:flex;flex-wrap:wrap;gap:6px 17px;padding-top:16px}
.oc-index-nav a{display:inline-flex;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid transparent;color:#52736a;font-size:10px;font-weight:900;letter-spacing:.055em;transition:color .25s,border-color .25s;text-transform:uppercase}
.oc-index-nav a:hover,.oc-index-nav a:focus-visible{color:#182e2b;border-color:var(--oc-green)}
.oc-index-nav a span{color:#abc2b7;font-weight:400;font-size:13px}
.oc-directory{background:#f7f9f8;padding:72px 0 100px}
.oc-directory-heading{margin:0 0 34px}
.oc-directory-heading h2{margin:14px 0 0;color:var(--oc-ink);font-size:clamp(30px,4.2vw,55px);font-weight:900;line-height:1.05;letter-spacing:-.063em}
.oc-directory-heading h2 em{font-style:normal;color:var(--oc-green)}
.oc-firms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.oc-firm{position:relative;background:#fff;border:1px solid rgba(47,79,79,.16);padding:29px 30px 20px;overflow:hidden;isolation:isolate;scroll-margin-top:30px;transition:border-color .3s,box-shadow .3s;min-width:0}
.oc-firm:hover{border-color:rgba(47,79,79,.68);box-shadow:0 18px 40px rgba(47,79,79,.06)}
.oc-firm::before{content:"";position:absolute;top:0;left:0;width:42px;height:4px;background:var(--oc-green);z-index:2;transition:width .8s cubic-bezier(.17,.76,.25,1)}
.oc-firm:hover::before{width:100%}
.oc-firm[data-reveal]{opacity:0;transform:translateY(27px);transition:opacity .7s,transform .75s,border-color .3s,box-shadow .3s}
.oc-firm[data-reveal].is-visible{opacity:1;transform:translateY(0)}
.oc-firm-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;position:relative;z-index:1;padding-bottom:24px}
.oc-firm-label{font-size:9px;letter-spacing:.17em;color:#7e988e;font-weight:900}
.oc-firm h3{margin:11px 0 0;font-size:clamp(25px,3vw,39px);font-weight:900;letter-spacing:-.05em;line-height:1.08;text-transform:uppercase;color:var(--oc-green);overflow-wrap:anywhere}
.oc-firm-count{white-space:nowrap;display:flex;flex-direction:column;align-items:flex-end;font-size:27px;line-height:1;font-weight:300;letter-spacing:-.07em;color:#90b1a6}
.oc-firm-count small{font-size:8px;font-weight:900;letter-spacing:.12em;color:#9fb0ab;margin-top:7px}
.oc-projects-list{list-style:none;padding:0;margin:0;position:relative;z-index:1}
.oc-project-row{display:grid;grid-template-columns:31px minmax(0,1fr);gap:14px;border-top:1px solid var(--oc-line);padding:15px 0 15px;transition:background .25s;color:var(--oc-ink)}
.oc-row-index{font-weight:800;letter-spacing:.04em;font-size:10px;color:#9eb3aa;padding-top:4px}
.oc-project-name{display:block;font-weight:800;font-size:14px;line-height:1.4;letter-spacing:-.015em;color:#243936}
.oc-row-meta{display:flex;flex-wrap:wrap;gap:5px 14px;margin-top:6px;font-size:11px;color:#81948d;line-height:1.5}
.oc-area{font-weight:800;color:#547c71}
.oc-firm-watermark{position:absolute;bottom:-32px;right:-12px;font-size:200px;line-height:1;font-weight:900;letter-spacing:-.15em;color:rgba(47,79,79,.032);z-index:0;pointer-events:none}
.oc-firm--featured{background:#fff}
.oc-firm--featured h3{font-size:clamp(29px,3.8vw,48px)}
.oc-firm--featured::before{height:5px;width:68px}
.oc-outro{background:#e4eeea;color:var(--oc-green);padding:82px 0 88px;overflow:hidden}
.oc-outro h2{font-weight:900;font-size:clamp(39px,5.2vw,68px);letter-spacing:-.065em;line-height:1.02;margin:17px 0 32px}
.oc-outro h2 span{color:transparent;-webkit-text-stroke:1px var(--oc-green)}
.oc-outro a{display:inline-flex;align-items:center;gap:24px;font-size:11px;font-weight:900;letter-spacing:.16em;border-bottom:1px solid var(--oc-green);padding-bottom:15px}
.oc-outro a span{font-size:21px;font-weight:400}
@media(max-width:880px){.oc-container{width:calc(100% - 42px)}.oc-lead-inner{grid-template-columns:1fr 170px;gap:30px}.oc-firm{padding:23px 21px 15px}.oc-firm h3{font-size:clamp(23px,3.3vw,32px)}.oc-project-row{grid-template-columns:24px 1fr;gap:10px}.oc-index-heading>span:last-child{display:none}}
@media(max-width:650px){.oc-container{width:calc(100% - 30px)}.oc-lead{padding:52px 0}.oc-lead-inner{grid-template-columns:1fr;gap:31px}.oc-lead h2{font-size:clamp(38px,10.2vw,55px)}.oc-lead p{font-size:14px}.oc-stat-block{border:0;border-top:1px solid rgba(255,255,255,.26);padding:23px 0 0;display:grid;grid-template-columns:max-content 1fr max-content 1fr;column-gap:10px;align-items:end}.oc-stat{font-size:45px}.oc-stat-label{align-self:center;font-size:8px;line-height:1.5;margin:0}.oc-stat-divider{display:none}.oc-index-section{padding:23px 0}.oc-index-nav{gap:4px 13px}.oc-index-nav a{font-size:9px}.oc-directory{padding:49px 0 62px}.oc-directory-heading{margin-bottom:25px}.oc-firms{grid-template-columns:1fr;gap:13px}.oc-firm{padding:25px 22px 15px}.oc-firm h3,.oc-firm--featured h3{font-size:clamp(27px,8vw,37px)}.oc-project-name{font-size:14px}.oc-outro{padding:62px 0}.oc-outro h2{font-size:clamp(34px,9vw,55px)}}
@media(prefers-reduced-motion:reduce){.oc-firm[data-reveal]{opacity:1;transform:none;transition:none}}
/* Independent masonry-like columns: no oversized empty gaps beside long firm histories. */
.oc-firms{display:block;columns:2;column-gap:18px}
.oc-firm{display:inline-block;width:100%;margin:0 0 18px;break-inside:avoid;page-break-inside:avoid;vertical-align:top}
@media(max-width:650px){.oc-firms{columns:1}.oc-firm{margin-bottom:13px}}
