/* Sección de oficinas (mapa con puntos). Se adapta al tema de cada diseño. */
.ofc{--o-accent:#D37C15;--o-radius:22px;--o-head:inherit;position:relative;padding:110px 0;color:var(--o-fg);font-family:inherit}
.ofc-light{--o-fg:#162338;--o-mut:#5f6876;--o-card:#fff;--o-line:rgba(22,35,56,.13);--o-sea:#dfe4e9;--o-land:#f1efec;--o-mex:#fbfaf8;--o-stroke:#c3cad4;--o-grat:rgba(22,35,56,.07);--o-soft:rgba(35,61,100,.09);--o-btn:#233D64}
.ofc-dark{--o-fg:#fff;--o-mut:#9fb0c8;--o-card:rgba(255,255,255,.05);--o-line:rgba(255,255,255,.14);--o-sea:#142036;--o-land:#1f2e49;--o-mex:#2c4266;--o-stroke:#3d5379;--o-grat:rgba(255,255,255,.06);--o-soft:rgba(255,255,255,.07);--o-btn:#D37C15}
.ofc *{box-sizing:border-box}
.ofc-wrap,.ofc-cards{max-width:1240px;margin:0 auto;padding:0 28px}
.ofc-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center}
.ofc-eyebrow{display:block;font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--o-accent);margin-bottom:16px}
.ofc-title{font-family:var(--o-head);font-weight:var(--o-weight,400);font-size:clamp(38px,5vw,68px);line-height:1.02;letter-spacing:-.02em;margin:0}
.ofc-lead{color:var(--o-mut);font-size:18px;margin:18px 0 30px;max-width:460px}
.ofc-list{display:grid;gap:12px;max-width:480px}
.ofc-item{display:flex;align-items:center;gap:16px;text-align:left;padding:14px 18px;border:1px solid var(--o-line);border-left:4px solid transparent;border-radius:calc(var(--o-radius) * .6);background:var(--o-card);color:inherit;font:inherit;cursor:pointer;transition:.25s}
.ofc-item:hover{transform:translateX(4px)}
.ofc-item.on{border-left-color:var(--o-accent);border-color:var(--o-accent);background:var(--o-soft)}
.ofc-ico{flex:none;width:46px;height:46px;border-radius:50%;border:1px solid var(--o-line);display:grid;place-items:center;transition:.25s}
.ofc-ico svg{width:20px;height:20px;fill:var(--o-accent)}
.ofc-item.on .ofc-ico{background:var(--o-accent);border-color:var(--o-accent)}.ofc-item.on .ofc-ico svg{fill:#fff}
.ofc-txt b{display:block;font-size:16px;letter-spacing:.04em;text-transform:uppercase}
.ofc-txt small{display:block;color:var(--o-mut);font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-top:3px}
/* mapa */
.ofc-mapwrap{position:relative}
.ofc-mapwrap:before{content:"";position:absolute;left:-18px;top:-18px;width:78%;height:78%;border-radius:calc(var(--o-radius) * .3);background:repeating-linear-gradient(135deg,var(--o-soft) 0 6px,transparent 6px 13px)}
.ofc-map{position:relative;border-radius:calc(var(--o-radius) * .25);overflow:hidden;aspect-ratio:1000/629;box-shadow:0 40px 80px -40px rgba(10,20,40,.5);background:var(--o-sea)}
.ofc-map svg{display:block;width:100%;height:100%}
.ofc-sea{fill:var(--o-sea)}.ofc-grat{fill:none;stroke:var(--o-grat);stroke-width:1}
.ofc-land{fill:var(--o-land);stroke:var(--o-stroke);stroke-width:.8;stroke-linejoin:round}
.ofc-mex{fill:var(--o-mex);stroke:var(--o-stroke);stroke-width:1.1;stroke-linejoin:round}
.ofc-city circle{fill:var(--o-mut);opacity:.55}.ofc-city text{font:500 13px Inter,system-ui,sans-serif;fill:var(--o-mut);opacity:.75}
.ofc-pin{position:absolute;width:0;height:0;padding:0;border:0;background:none;transform:translate(0,0);cursor:pointer;z-index:2}
.ofc-pin i{position:absolute;left:-11px;top:-11px;width:22px;height:22px;border-radius:50%;background:var(--o-accent);border:3px solid #fff;box-shadow:0 4px 14px rgba(0,0,0,.35);transition:.3s}
.ofc-pin i:after{content:"";position:absolute;inset:-9px;border-radius:50%;border:2px solid var(--o-accent);opacity:0}
.ofc-pin.on i{transform:scale(1.35)}
.ofc-pin.on i:after{animation:ofcPulse 1.8s ease-out infinite}
@keyframes ofcPulse{0%{transform:scale(.6);opacity:.8}100%{transform:scale(1.9);opacity:0}}
.ofc-tip{position:absolute;left:50%;bottom:24px;transform:translate(-50%,6px);white-space:nowrap;background:#162338;color:#fff;font:600 13px Inter,system-ui,sans-serif;padding:8px 14px;border-radius:10px;opacity:0;pointer-events:none;transition:.25s;text-align:center}
.ofc-tip small{display:block;font-weight:400;font-size:11px;color:#aab8cc;letter-spacing:.04em}
.ofc-pin.on .ofc-tip,.ofc-pin:hover .ofc-tip{opacity:1;transform:translate(-50%,0)}
.ofc-pin[data-id="qroo"] .ofc-tip{left:auto;right:-8px;transform:translate(0,6px)}.ofc-pin[data-id="qroo"].on .ofc-tip,.ofc-pin[data-id="qroo"]:hover .ofc-tip{transform:none}
/* tarjetas de dirección */
.ofc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:70px}
.ofc-card{padding:30px;border:1px solid var(--o-line);border-radius:var(--o-radius);background:var(--o-card);transition:.3s}
.ofc-card.on{border-color:var(--o-accent);box-shadow:0 24px 50px -28px rgba(10,20,40,.45);transform:translateY(-4px)}
.ofc-card h3{font-family:var(--o-head);font-weight:var(--o-weight,400);font-size:clamp(26px,2.6vw,34px);line-height:1.05;margin:0 0 4px;letter-spacing:-.01em}
.ofc-city-name{display:block;color:var(--o-accent);font-weight:700;font-size:14px;letter-spacing:.06em;margin-bottom:16px}
.ofc-card address{font-style:normal;color:var(--o-mut);font-size:15px;line-height:1.65}.ofc-card address span{display:block}
.ofc-card a{display:inline-block;margin-top:18px;font-weight:600;font-size:14px;color:var(--o-fg);border-bottom:1px solid var(--o-accent);padding-bottom:2px;transition:.2s}
.ofc-card a:hover{color:var(--o-accent)}
@media(max-width:1000px){.ofc{padding:80px 0}.ofc-wrap{grid-template-columns:1fr;gap:46px}.ofc-cards{grid-template-columns:1fr;margin-top:50px}.ofc-mapwrap:before{left:-10px;top:-10px}}
@media(max-width:600px){.ofc-wrap,.ofc-cards{padding:0 20px}.ofc-city text{display:none}.ofc-tip{font-size:12px;padding:6px 10px}}
@media(prefers-reduced-motion:reduce){.ofc-pin.on i:after{animation:none}}

.ofc-pin i{display:grid;place-items:center}.ofc-pin i svg{width:11px;height:11px;fill:#fff}
.ofc-hq{display:inline-block;margin-bottom:12px;padding:5px 12px;border-radius:999px;background:var(--o-accent);color:#fff;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
