:root { --obs:#000018; --obs2:#0b0d29; --gold:#C9A84C; --gold2:#e3c76e; --goldd:#a8853b; --mut:#5b6478; --line:#e7eaf2; --soft:#f6f7fa; }
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Nunito Sans',sans-serif; font-size:16px; line-height:1.6; color:#26314f; background:#fff; }
.topbar { background:linear-gradient(120deg,var(--goldd),var(--gold2) 45%,var(--goldd)); color:var(--obs); font-family:'Montserrat',sans-serif; font-weight:600; font-size:.78rem; letter-spacing:.06em; text-align:center; padding:8px 14px; }
nav.top { background:var(--obs); border-bottom:1px solid rgba(201,168,76,.28); position:sticky; top:0; z-index:50; }
nav.top .in { max-width:1400px; margin:0 auto; padding:12px 44px; display:flex; align-items:center; gap:26px; }
nav.top img { height:46px; }
nav.top .sp { flex:1; }
nav.top .links { display:flex; gap:26px; align-items:center; }
nav.top .logo { display:flex; align-items:center; }
nav.top a { color:#fff; text-decoration:none; font-family:'Montserrat',sans-serif; font-weight:600; font-size:.93rem; }
nav.top a:hover { color:var(--gold2); }
.pill { display:inline-block; background:linear-gradient(120deg,var(--gold),var(--gold2)); border-radius:999px; padding:11px 22px; color:var(--obs) !important; font-family:'Montserrat',sans-serif; font-weight:700; font-size:.9rem; text-decoration:none; }
.pill.line { background:none; border:1.5px solid rgba(255,255,255,.55); color:#fff !important; }
.eyebrow { font-family:'Montserrat',sans-serif; font-weight:700; letter-spacing:.2em; font-size:.75rem; color:var(--goldd); text-transform:uppercase; }
.hero { background:linear-gradient(150deg,var(--obs) 55%,var(--obs2)); color:#fff; position:relative; overflow:hidden; border-bottom:2px solid var(--gold); }
.hgrid { position:absolute; inset:0; background-image:linear-gradient(rgba(201,168,76,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(201,168,76,.055) 1px, transparent 1px); background-size:46px 46px; }
.hero .in { max-width:1400px; margin:0 auto; padding:56px 44px 46px; display:flex; gap:60px; align-items:center; position:relative; }
.hero .eyebrow { color:var(--gold2); }
.hero h1 { font-family:'Montserrat',sans-serif; font-size:3.4rem; font-weight:800; line-height:1.08; letter-spacing:-.025em; margin-top:8px; }
.hero h1 i { font-style:normal; color:var(--gold2); }
.hero p.lead { color:#b9c2d8; font-size:1.05rem; line-height:1.9; max-width:640px; margin:16px 0 24px; }
.ctas { display:flex; gap:14px; flex-wrap:wrap; }
.hud { width:520px; flex-shrink:0; position:relative; height:380px; }
.hud .frame i { position:absolute; width:30px; height:30px; border:2.5px solid var(--gold2); }
.hud .frame i:nth-child(1) { top:0; left:0; border-right:none; border-bottom:none; }
.hud .frame i:nth-child(2) { top:0; right:0; border-left:none; border-bottom:none; }
.hud .frame i:nth-child(3) { bottom:0; left:0; border-right:none; border-top:none; }
.hud .frame i:nth-child(4) { bottom:0; right:0; border-left:none; border-top:none; }
.hud .ph { position:absolute; inset:24px; }
.hud .ph img { position:absolute; inset:0; margin:auto; max-width:100%; max-height:100%; object-fit:contain; filter:drop-shadow(0 26px 32px rgba(0,0,0,.55)); }
.hud .scan { position:absolute; left:8px; right:8px; top:55%; height:3px; background:linear-gradient(90deg,transparent,var(--gold2),transparent); box-shadow:0 0 18px 4px rgba(227,199,110,.4); }
.htag { position:absolute; white-space:nowrap; font-family:'Montserrat',sans-serif; font-size:.64rem; letter-spacing:.1em; color:var(--gold2); border:1px solid rgba(201,168,76,.5); background:rgba(0,0,24,.72); border-radius:6px; padding:3px 8px; }
.hudcap { text-align:center; color:var(--gold2); font-size:.78rem; margin-top:10px; }
.hnums { background:#fff; border-top:3px solid var(--gold); position:relative; display:grid; grid-template-columns:repeat(4,1fr); max-width:1400px; margin:0 auto; padding:30px 44px 32px; }
.hnums .hn { text-align:center; border-left:1px solid var(--line); padding:4px 10px; }
.hnums .hn:first-child { border-left:none; }
.hnums .hn b { font-family:'Montserrat',sans-serif; font-weight:800; font-size:3.6rem; line-height:1.05; letter-spacing:-.02em; color:var(--obs2); display:block; }
.hnums .hn > span { color:var(--mut); font-size:.92rem; display:block; margin-top:6px; }
.hero > .hnums { max-width:none; }
section { padding:60px 44px; }
.in14 { max-width:1400px; margin:0 auto; }
h2.sec { font-family:'Montserrat',sans-serif; font-weight:800; color:var(--obs2); font-size:2.25rem; line-height:1.15; letter-spacing:-.02em; margin:6px 0 14px; }
p.sub { color:var(--mut); font-size:1rem; }
.cta { background:linear-gradient(150deg,var(--obs2),var(--obs)); padding:38px 44px; }
.cta .in14 { display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.cta h2 { color:#fff; font-family:'Montserrat',sans-serif; font-weight:800; font-size:1.6rem; flex:1; min-width:240px; }
footer { background:var(--obs); color:#8d97b4; padding:52px 44px 26px; font-size:.86rem; border-top:1px solid rgba(201,168,76,.28); }
footer .fgrid4 { display:grid; grid-template-columns:1.3fr 1fr 1fr 1.1fr; gap:36px; }
footer .fcol img { height:44px; margin-bottom:14px; }
footer .fcol p { color:#8d97b4; line-height:1.6; margin:0 0 6px; }
footer .fcol h4 { font-family:'Montserrat',sans-serif; font-weight:700; font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold2); margin:6px 0 14px; }
footer .fcol a { display:block; color:#d6dcf0; text-decoration:none; padding:4px 0; line-height:1.45; }
footer .fcol a:hover { color:var(--gold2); }
footer .fcol a.pill { display:inline-block; color:var(--obs) !important; padding:10px 18px; margin-top:10px; font-size:.84rem; }
footer .fbottom { border-top:1px solid rgba(255,255,255,.08); margin-top:36px; padding-top:18px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:.78rem; color:#6f7995; }
footer .fbottom a { color:#8d97b4; text-decoration:none; }
.opt-label { background:#111; color:#fff; font-family:'Montserrat',sans-serif; font-weight:800; padding:14px 44px; font-size:1.05rem; }

/* extras corporativa v2 */
.search { display:flex; max-width:560px; border-radius:999px; overflow:hidden; box-shadow:0 14px 36px rgba(0,0,0,.4); }
.search input { flex:1; border:none; padding:16px 24px; font-size:.98rem; font-family:'Nunito Sans',sans-serif; outline:none; }
.search .btn { background:linear-gradient(120deg,var(--gold),var(--gold2)); display:flex; align-items:center; padding:0 26px; font-family:'Montserrat',sans-serif; font-weight:700; font-size:.93rem; color:var(--obs); }
.hstatus { margin-top:14px; font-family:'Montserrat',sans-serif; font-size:.76rem; color:var(--gold2); letter-spacing:.08em; }
.dots { display:flex; justify-content:center; gap:7px; margin-top:8px; }
.dots i { width:9px; height:9px; border-radius:50%; background:rgba(201,168,76,.35); display:inline-block; }
.dots i.on { background:var(--gold2); }
/* quienes somos home */
.qs2 { display:flex; gap:54px; align-items:center; }
.qs2 .foto { width:46%; flex-shrink:0; border-radius:24px; overflow:hidden; box-shadow:0 24px 60px rgba(10,20,60,.14); }
.qs2 .foto img { width:100%; display:block; }
.qs2 h2 { font-family:'Montserrat',sans-serif; font-weight:800; color:var(--obs2); font-size:2.1rem; line-height:1.15; letter-spacing:-.02em; margin:8px 0 14px; }
.qs2 p { color:#4a5670; margin-bottom:12px; line-height:1.75; }
.firma { font-family:Georgia,serif; font-style:italic; color:var(--goldd); font-size:1.05rem; margin-top:6px; }
/* sinfin panel obsidiana */
.sinfin { background:linear-gradient(150deg,var(--obs) 55%,var(--obs2)); border-radius:26px; padding:44px 40px 40px; text-align:center; }
.sinfin h2 { font-family:'Montserrat',sans-serif; font-weight:800; color:#fff; font-size:2.1rem; letter-spacing:-.02em; }
.sinfin .mat { color:var(--gold2); font-size:1.02rem; margin:8px 0 28px; }
.singrid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; text-align:left; }
.sc { background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 16px 40px rgba(0,0,0,.35); }
.sc .im { background:#fff; height:190px; display:flex; align-items:center; justify-content:center; padding:14px; }
.sc img { max-height:170px; max-width:100%; object-fit:contain; }
.sc b { font-family:'Montserrat',sans-serif; color:var(--obs2); font-size:.92rem; display:block; padding:12px 16px 14px; }
.sc b u { display:block; text-decoration:none; color:var(--goldd); font-weight:600; font-size:.78rem; margin-top:4px; }
/* cada trabajo grid */
.tgrid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; max-width:1300px; margin:30px auto 0; }
.tcard { background:#fff; border:1px solid var(--line); border-radius:20px; text-align:center; padding:24px 20px; box-shadow:0 12px 30px rgba(10,20,60,.06); text-decoration:none; display:block; }
.chip { display:inline-block; background:linear-gradient(120deg,var(--gold),var(--gold2)); color:var(--obs); font-family:'Montserrat',sans-serif; font-weight:700; font-size:.64rem; letter-spacing:.12em; border-radius:999px; padding:4px 13px; margin-bottom:12px; }
.tcard .im { height:130px; display:flex; align-items:center; justify-content:center; margin-bottom:12px; }
.tcard img { max-height:125px; max-width:100%; object-fit:contain; border-radius:10px; }
.tcard b { font-family:'Montserrat',sans-serif; color:var(--obs2); font-size:.95rem; display:block; }
.tcard p { color:var(--mut); font-size:.8rem; margin:5px 0 10px; }
.tcard u { text-decoration:none; color:var(--goldd); font-family:'Montserrat',sans-serif; font-weight:600; font-size:.8rem; }
.thead { text-align:center; }
.thead h2 { font-family:'Montserrat',sans-serif; font-weight:800; color:var(--obs2); font-size:2.1rem; letter-spacing:-.02em; margin:6px 0 6px; }
/* pagina interior generica */
.shero { background:linear-gradient(150deg,var(--obs) 55%,var(--obs2)); color:#fff; position:relative; overflow:hidden; }
.shero .in14 { display:flex; gap:50px; align-items:center; position:relative; padding:44px 44px 44px; }
.bc { color:#8d97b4; font-size:.8rem; margin-bottom:12px; }
.bc b { color:var(--gold2); font-weight:600; }
.shero h1 { font-family:'Montserrat',sans-serif; font-weight:800; font-size:3rem; letter-spacing:-.02em; line-height:1.05; margin:6px 0 10px; }
.shero p.d { color:#b9c2d8; max-width:520px; margin:10px 0 20px; }
.shero .im { width:460px; height:320px; background:#fff; border-radius:26px; display:flex; align-items:center; justify-content:center; padding:22px; flex-shrink:0; box-shadow:0 26px 60px rgba(0,0,0,.45); overflow:hidden; }
.shero .im img { max-width:100%; max-height:100%; object-fit:contain; }
.hand { position:absolute; top:38px; right:44px; color:var(--gold2); font-style:italic; font-size:1.05rem; text-align:right; line-height:1.4; font-family:Georgia,serif; }


/* ================= iconos dorados ================= */
.ic { stroke:var(--gold2); fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
/* ================= menu movil ================= */
.mburger { display:none; flex-direction:column; justify-content:center; gap:5px; background:none; border:none; cursor:pointer; padding:8px 6px; }
.mburger span { width:22px; height:2px; background:#fff; border-radius:2px; display:block; }
.mmenu { display:none; background:var(--obs); border-top:1px solid rgba(201,168,76,.25); padding:6px 22px 12px; }
.mmenu.open { display:block; }
.mmenu a { display:block; color:#fff; text-decoration:none; font-family:'Montserrat',sans-serif; font-weight:600; font-size:.95rem; padding:11px 4px; border-bottom:1px solid rgba(255,255,255,.07); }
.mmenu a:last-child { border-bottom:none; }
/* ================= responsive ================= */
@media (max-width:999px) {
  nav.top .in { padding:10px 14px 10px 18px; gap:10px; }
  nav.top .in > a:not(.pill):not(.logo), nav.top .in > .links { display:none; }
  .mburger { display:flex; }
  nav.top img { height:36px; }
  nav.top .pill { white-space:nowrap; font-size:.8rem; padding:9px 14px; }
}
@media (max-width:899px) {
  section { padding:30px 20px; }
  .hero .in, .shero .in14 { flex-direction:column; padding:34px 20px 30px; gap:30px; }
  .hero h1 { font-size:2.2rem; }
  .shero h1 { font-size:2rem; }
  .hud { width:100%; height:250px; }
  .shero .im { width:100%; height:auto; min-height:220px; }
  .hand { display:none; }
  .hnums { grid-template-columns:1fr 1fr; padding:16px 10px 20px; row-gap:6px; }
  .hnums .hn { padding:12px 6px; }
  .hnums .hn:nth-child(odd) { border-left:none; }
  .hnums .hn b { font-size:2.5rem; }
  .hnums .hn > span { font-size:.8rem; }
  .novgrid, .tpgrid, .pqgrid, .rgrid, .vgrid, .egrid, .fgrid, .comun, .loggrid, .rutas, .mgrid, .ejgrid, .tgrid, .singrid, .stats, .vals { grid-template-columns:1fr !important; }
  .egrid, .fgrid, .singrid, .stats { grid-template-columns:1fr 1fr !important; }
  .qs2, .hist, .fundador, .que2, .tech, .esqc { flex-direction:column; }
  .qs2 .foto, .hist .foto2, .fund-card, .anot, .tech .shot, .vid { width:100% !important; }
  .pres .ph { flex-direction:column; align-items:flex-start; }
  .pres .ph .im { width:100%; }
  .pres .que.two { grid-template-columns:1fr; }
  .vents { grid-template-columns:1fr !important; padding-left:18px; padding-right:18px; }
  .icorow .in14 { flex-wrap:wrap; gap:14px 18px; justify-content:flex-start; padding:16px 20px 20px; }
  .tiempos .in14 { flex-direction:column; align-items:flex-start; }
  .tl { grid-template-columns:1fr 1fr; gap:30px 16px; }
  .tl::before { display:none; }
  .vrow, .vrow:nth-child(even) { flex-direction:column; gap:14px; margin-bottom:30px; }
  .vrow .vp { width:100%; }
  .vrow .vnum { position:static; transform:none; margin:0 auto; }
  .vline::before { display:none; }
  .paso::after { content:''; }
  .cta .in14 { flex-direction:column; align-items:flex-start; }
  .logos { gap:22px; }
  .logos img { height:22px; }
  footer { padding:40px 20px 22px; }
  footer .fgrid4 { grid-template-columns:1fr 1fr; gap:26px 18px; }
  footer .fcol:first-child, footer .fcol:last-child { grid-column:1 / -1; }
  footer .fbottom { flex-direction:column; gap:6px; }
}
@media (max-width:899px) {
  /* materiales compactos en movil: foto pequena a la izquierda */
  .mgrid { grid-template-columns:1fr !important; gap:10px; }
  .mc { display:flex; gap:14px; align-items:center; padding:14px 16px; }
  .mc .mim { width:86px; height:74px; flex-shrink:0; margin-bottom:0; padding:6px; }
  .mc .mim img { max-height:62px; }
  .mc b { margin-bottom:2px; }
  .mc p { font-size:.8rem; }
}
@media (max-width:520px) {
  .hero h1 { font-size:1.9rem; }
  h2.sec, .novh h2, .mhead h2, .rhead h2, .pq h2, .envio h2 { font-size:1.6rem !important; }
  .egrid, .fgrid, .singrid { grid-template-columns:1fr !important; }
  .stats { grid-template-columns:1fr 1fr !important; }
}


/* ================= despiece de producto: tarjetas con foto y diagrama de llamadas ================= */
/* --- tarjetas de tipo con foto (marco dorado + titulo sobre la foto) --- */
.tpph { background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:0 14px 34px rgba(10,20,60,.07); transition:transform .35s ease, box-shadow .35s ease; display:flex; flex-direction:column; }
.tpph:hover { transform:translateY(-6px); box-shadow:0 24px 50px rgba(10,20,60,.13); }
.tpph .ph3 { position:relative; margin:12px 12px 0; aspect-ratio:1/1; border:1px solid rgba(201,168,76,.45); border-radius:14px; background:#fff; display:flex; flex-direction:column; padding:14px 14px 0; overflow:hidden; }
.tpph .pic { display:block; position:relative; flex:1 1 auto; min-height:0; margin:0 0 12px; }
.tpph .pic img { position:absolute; top:0; left:0; width:100%; height:100%; max-width:none; object-fit:contain; object-position:50% 50%; margin:0; display:block; }
.tpph .cap3 { flex:0 0 auto; }
.tpph .nb { position:absolute; bottom:9px; left:14px; background:linear-gradient(120deg,var(--gold),var(--gold2)); color:var(--obs); font-family:'Montserrat',sans-serif; font-weight:800; font-size:.7rem; padding:3px 11px; border-radius:999px; z-index:3; }
.tpph .cap3 { margin:0 -14px; background:linear-gradient(150deg,var(--obs2),var(--obs)); color:#fff; font-family:'Montserrat',sans-serif; font-weight:600; font-size:.95rem; line-height:1.3; padding:10px 64px; text-align:center; }
.tpph .bd { padding:16px 22px 22px; }
.tpph p { color:var(--mut); font-size:.88rem; line-height:1.6; margin-bottom:12px; }
/* --- diagrama de materiales con lineas de llamada --- */
.mat3 { background:linear-gradient(180deg,#fff 0%,var(--soft) 100%); color:#26314f; position:relative; overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.mat3 .egrid2 { background-image:linear-gradient(rgba(201,168,76,.10) 1px, transparent 1px), linear-gradient(90deg, rgba(201,168,76,.10) 1px, transparent 1px); }
.mat3 .in14 { position:relative; z-index:2; }
.mat3 .mhead2 { text-align:center; margin-bottom:10px; }
.mat3 h2 { font-family:'Montserrat',sans-serif; font-weight:800; font-size:2.3rem; line-height:1.1; letter-spacing:-.025em; color:var(--obs2); margin:10px 0 12px; }
.mat3 h2 em { font-style:normal; color:var(--goldd); }
.mat3 .msub { color:var(--mut); max-width:640px; margin:0 auto 18px; text-align:center; }
.diag { display:flex; align-items:center; justify-content:center; gap:0; max-width:1240px; margin:0 auto; }
.dcol { flex:1 1 340px; display:flex; flex-direction:column; gap:30px; max-width:340px; }
.dcol.l { align-items:flex-end; text-align:right; }
.dcol.r { align-items:flex-start; text-align:left; }
.cal { display:flex; align-items:center; gap:10px; opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease; }
.cal.on { opacity:1; transform:none; }
.dcol.r .cal { flex-direction:row; }
.cal .tx { max-width:210px; }
.cal b { font-family:'Montserrat',sans-serif; font-size:.92rem; color:var(--obs2); display:block; line-height:1.25; }
.cal span { color:var(--mut); font-size:.78rem; line-height:1.45; display:block; margin-top:2px; }
.cal .ln { flex-shrink:0; display:flex; align-items:center; }
.dcol.l .ln { flex-direction:row; }
.cal .ln::before { content:''; width:96px; height:0; border-top:2px dotted rgba(168,133,59,.7); display:block; }
.cal .ln::after { content:''; width:11px; height:11px; border-radius:50%; border:2px solid var(--goldd); background:#fff; display:block; flex-shrink:0; }
.dcol.r .cal .ln { flex-direction:row-reverse; }
.dphoto { flex-shrink:0; width:400px; position:relative; margin:0 -14px; }
.dphoto img { width:100%; display:block; filter:drop-shadow(0 20px 34px rgba(10,20,60,.22)); }
.dphoto .halo { position:absolute; inset:-8% -4%; background:radial-gradient(ellipse at center, rgba(201,168,76,.18), transparent 70%); z-index:-1; }
.dphoto.oncard { background:#fff; border-radius:22px; padding:16px; box-shadow:0 22px 48px rgba(10,20,60,.14); }
.dphoto.oncard img { filter:none; border-radius:12px; }
.dphoto.oncard .fr i { position:absolute; width:26px; height:26px; border:2.5px solid var(--gold); z-index:2; }
.dphoto.oncard .fr i:nth-child(1) { top:-10px; left:-10px; border-right:none; border-bottom:none; }
.dphoto.oncard .fr i:nth-child(2) { top:-10px; right:-10px; border-left:none; border-bottom:none; }
.dphoto.oncard .fr i:nth-child(3) { bottom:-10px; left:-10px; border-right:none; border-top:none; }
.dphoto.oncard .fr i:nth-child(4) { bottom:-10px; right:-10px; border-left:none; border-top:none; }
/* cajas de materiales */
.mboxes { display:grid; grid-template-columns:1fr 1fr; gap:18px; max-width:900px; margin:18px auto 0; }
.mbox { border:1px solid var(--line); border-top:3px solid var(--gold); border-radius:18px; padding:22px 24px; background:#fff; box-shadow:0 12px 30px rgba(10,20,60,.05); }
.mbox h4 { font-family:'Montserrat',sans-serif; font-weight:700; font-size:.72rem; letter-spacing:.18em; color:var(--goldd); margin-bottom:12px; }
.mbox ul { list-style:none; }
.mbox li { color:var(--obs2); font-size:.92rem; padding:6px 0 6px 20px; position:relative; border-bottom:1px solid var(--line); }
.mbox li:last-child { border-bottom:none; }
.mbox li::before { content:''; position:absolute; left:0; top:14px; width:7px; height:7px; border-radius:50%; background:var(--gold); }
.mbox li u { display:block; text-decoration:none; color:var(--mut); font-size:.78rem; }
@media (max-width:899px) {
  .tp2grid.ph { grid-template-columns:1fr !important; }
  .tpph .ph3 { aspect-ratio:16/10; margin:10px 10px 0; padding:10px 10px 0; }
  .tpph .cap3 { margin:0 -10px; font-size:.88rem; padding:9px 16px; }
  .tpph .nb { bottom:7px; }
  .mat3 h2 { font-size:1.6rem; }
  .diag { flex-direction:column; gap:20px; }
  .dphoto { width:62%; max-width:240px; order:-1; margin:0 auto; }
  .dcol, .dcol.l, .dcol.r { flex:0 0 auto; max-width:100%; width:100%; align-items:stretch; text-align:left; gap:10px; }
  .dcol.r .cal { flex-direction:row; }
  .dcol.l .cal { flex-direction:row-reverse; }
  .dcol.l .cal, .dcol.r .cal { gap:12px; border:1px solid var(--line); border-left:3px solid var(--gold); border-radius:12px; padding:11px 14px; background:#fff; box-shadow:0 8px 20px rgba(10,20,60,.05); justify-content:flex-end; }
  .dcol.l .cal .tx, .dcol.r .cal .tx { flex:1; }
  .cal .tx { max-width:none; }
  .cal .ln::before { display:none; }
  .dcol.l .ln, .dcol.r .ln { flex-direction:row; }
  .mboxes { grid-template-columns:1fr; gap:12px; margin-top:26px; }
}


/* ================= menu desplegable de trabajos ================= */
.ddwrap { position:relative; display:inline-block; }
.ddwrap > a::after { content:' \25BE'; font-size:.72em; opacity:.8; }
.dd { position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(8px); min-width:520px; background:var(--obs2); border:1px solid rgba(201,168,76,.35); border-radius:16px; padding:10px; box-shadow:0 26px 60px rgba(0,0,0,.55); opacity:0; visibility:hidden; transition:opacity .22s ease, transform .22s ease, visibility .22s; z-index:60; display:grid; grid-template-columns:1fr 1fr; gap:2px; }
.ddwrap:hover .dd, .ddwrap:focus-within .dd { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.dd a { display:block; padding:10px 14px; border-radius:10px; font-size:.87rem !important; font-weight:600; color:#fff; }
.dd a:hover { background:rgba(201,168,76,.14); color:var(--gold2); }
.dd a small { display:block; color:#8d97b4; font-weight:400; font-size:.75rem; margin-top:1px; }
.dd a:hover small { color:#a8b2cd; }
.dd.dd3 { min-width:300px; grid-template-columns:1fr; }
.dd .ddall { grid-column:1 / -1; border-top:1px solid rgba(255,255,255,.1); margin-top:6px; padding-top:12px; color:var(--gold2); }
.mmenu .sub { display:block; padding:8px 4px 8px 20px; color:#c7cdea; font-size:.86rem; border-bottom:1px solid rgba(255,255,255,.06); }
.mmenu .sub:hover { color:var(--gold2); }
/* ================= FAQ en acordeon ================= */
details.fq { border:1px solid var(--line); border-radius:9px; margin-bottom:3px; background:#fff; overflow:hidden; }
details.fq summary { font-family:'Montserrat',sans-serif; color:var(--obs2); font-weight:600; font-size:.88rem; line-height:1.3; padding:7px 34px 7px 15px; cursor:pointer; list-style:none; position:relative; }
details.fq summary::-webkit-details-marker { display:none; }
details.fq summary::after { content:''; position:absolute; right:14px; top:50%; width:6px; height:6px; border-right:2px solid var(--goldd); border-bottom:2px solid var(--goldd); transform:translateY(-70%) rotate(45deg); transition:transform .25s ease; }
details.fq[open] summary::after { transform:translateY(-30%) rotate(225deg); }
details.fq[open] summary { background:var(--soft); }
details.fq p { color:#4a5670; font-size:.85rem; line-height:1.55; padding:0 15px 10px; }
details.fq summary:hover { color:var(--goldd); }
/* ================= fotos numeradas ================= */
.pc .nump { position:absolute; top:12px; left:12px; z-index:2; width:30px; height:30px; border-radius:50%; background:linear-gradient(120deg,var(--gold),var(--gold2)); color:var(--obs); font-family:'Montserrat',sans-serif; font-weight:800; font-size:.82rem; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 16px rgba(0,0,0,.3); }
@media (max-width:999px) { .ddwrap .dd { display:none; } }


/* ================= compatibilidad de escaneres ================= */
.compat { background:linear-gradient(180deg,#fff 0%,var(--soft) 100%); border-top:1px solid var(--line); }
.compat h2 { font-family:'Montserrat',sans-serif; font-weight:800; font-size:2.2rem; line-height:1.12; letter-spacing:-.025em; color:var(--obs2); margin:10px 0 12px; }
.compat h2 em { font-style:normal; color:var(--goldd); }
.csplit { display:flex; gap:56px; align-items:center; }
.clft { flex:1; min-width:0; }
.clft p { color:var(--mut); max-width:520px; margin-bottom:14px; }
.clft p b { color:var(--obs2); }
.clft .anal { border-left:3px solid var(--gold); padding:10px 0 10px 16px; background:#fff; border-radius:0 10px 10px 0; margin:18px 0 22px; }
.clft .anal b { display:block; font-family:'Montserrat',sans-serif; color:var(--obs2); font-size:.92rem; margin-bottom:3px; }
.clft .anal span { color:var(--mut); font-size:.86rem; }
/* tarjeta del archivo, con el marco y la linea de escaneo de la portada */
.stlcard { flex-shrink:0; width:340px; position:relative; background:linear-gradient(150deg,var(--obs),var(--obs2)); border-radius:22px; padding:34px 28px 28px; box-shadow:0 26px 60px rgba(10,20,60,.3); overflow:hidden; text-align:center; }
.stlcard .fr i { position:absolute; width:26px; height:26px; border:2.5px solid var(--gold2); z-index:2; }
.stlcard .fr i:nth-child(1) { top:14px; left:14px; border-right:none; border-bottom:none; }
.stlcard .fr i:nth-child(2) { top:14px; right:14px; border-left:none; border-bottom:none; }
.stlcard .fr i:nth-child(3) { bottom:14px; left:14px; border-right:none; border-top:none; }
.stlcard .fr i:nth-child(4) { bottom:14px; right:14px; border-left:none; border-top:none; }
.stlcard .sgrid { position:absolute; inset:0; background-image:linear-gradient(rgba(201,168,76,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(201,168,76,.06) 1px, transparent 1px); background-size:34px 34px; }
.stlcard .scanline { position:absolute; left:16px; right:16px; height:3px; background:linear-gradient(90deg,transparent,var(--gold2),transparent); box-shadow:0 0 18px 4px rgba(227,199,110,.4); animation:sweep2 5s ease-in-out infinite; }
@keyframes sweep2 { 0%,100% { top:16%; } 50% { top:80%; } }
.stlcard .ext { position:relative; z-index:2; font-family:'Montserrat',sans-serif; font-weight:800; font-size:3.4rem; line-height:1; color:var(--gold2); letter-spacing:.02em; }
.stlcard .lbl { position:relative; z-index:2; color:#a8b2cd; font-size:.78rem; letter-spacing:.14em; margin-top:8px; font-family:'Montserrat',sans-serif; }
.stlcard .sep { position:relative; z-index:2; height:1px; background:rgba(201,168,76,.3); margin:18px 8px; }
.stlcard .note { position:relative; z-index:2; color:#dfe4f5; font-size:.86rem; line-height:1.5; }
.stlcard .note b { color:var(--gold2); }
/* marcas compatibles */
.chips { display:flex; flex-wrap:wrap; gap:10px; margin-top:34px; justify-content:center; }
.chip2 { display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--line); border-radius:999px; padding:9px 18px 9px 12px; box-shadow:0 8px 20px rgba(10,20,60,.05); opacity:0; transform:translateY(10px); transition:opacity .45s ease, transform .45s ease; }
.chip2.on { opacity:1; transform:none; }
.chip2:hover { border-color:var(--gold); }
.chip2 .ck { width:20px; height:20px; border-radius:50%; background:linear-gradient(120deg,var(--gold),var(--gold2)); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.chip2 .ck svg { width:11px; height:11px; stroke:var(--obs); stroke-width:3; fill:none; }
.chip2 img { max-height:18px; max-width:76px; object-fit:contain; }
.chip2 b { font-family:'Montserrat',sans-serif; font-size:.88rem; color:var(--obs2); }
.chip2 i { font-style:normal; color:var(--mut); font-size:.8rem; }
@media (max-width:899px) {
  .compat h2 { font-size:1.6rem; }
  .csplit { flex-direction:column; gap:26px; align-items:stretch; }
  .stlcard { width:100%; padding:26px 20px 22px; }
  .stlcard .ext { font-size:2.6rem; }
  .chips { margin-top:22px; gap:8px; justify-content:flex-start; }
  .chip2 { padding:8px 14px 8px 10px; }
}

/* preguntas frecuentes: bloque compacto */
.faq, .faq2 { padding-top:34px; padding-bottom:40px; }
.faq h2, .faq2 h2.big2 { margin-bottom:14px; font-size:1.9rem; }
@media (max-width:899px) { .faq, .faq2 { padding-top:26px; padding-bottom:30px; } }


/* ================= recorrido del caso ================= */
.ruta { background:#fff; }
.rutax { position:relative; display:grid; grid-template-columns:repeat(5,1fr); gap:20px; margin-top:34px; }
.rline { position:absolute; top:33px; left:9%; right:9%; height:3px; background:var(--line); border-radius:3px; overflow:hidden; }
.rfill { display:block; height:100%; width:0; background:linear-gradient(90deg,var(--gold),var(--gold2)); transition:width 2.2s cubic-bezier(.4,0,.2,1); }
.rutax.go .rfill { width:100%; }
.rstop { text-align:center; position:relative; z-index:2; opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s ease; }
.rstop.on { opacity:1; transform:none; }
.rico { width:66px; height:66px; border-radius:50%; background:#fff; border:2px solid var(--gold); display:flex; align-items:center; justify-content:center; margin:0 auto 14px; box-shadow:0 10px 24px rgba(10,20,60,.1); }
.rico svg { width:26px; height:26px; stroke:var(--goldd); }
.rstop b { font-family:'Montserrat',sans-serif; color:var(--obs2); display:block; font-size:1rem; margin-bottom:5px; }
.rstop > span:last-child { color:var(--mut); font-size:.84rem; line-height:1.5; display:block; padding:0 6px; }
.rextra { display:grid; grid-template-columns:1fr; gap:16px; margin-top:40px; }
.rx { display:flex; gap:16px; align-items:flex-start; background:var(--soft); border:1px solid var(--line); border-radius:16px; padding:20px 22px; }
.rxi { width:44px; height:44px; border-radius:12px; background:linear-gradient(120deg,var(--gold),var(--gold2)); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.rxi svg { width:22px; height:22px; stroke:var(--obs); }
.rx b { font-family:'Montserrat',sans-serif; color:var(--obs2); display:block; margin-bottom:4px; font-size:.95rem; }
.rx p { color:var(--mut); font-size:.86rem; line-height:1.55; }
@media (max-width:899px) {
  .rutax { grid-template-columns:1fr; gap:0; margin-top:26px; }
  .rline { top:10px; bottom:34px; left:32px; right:auto; width:3px; height:auto; }
  .rfill { width:100%; height:0; transition:height 2.2s cubic-bezier(.4,0,.2,1); }
  .rutax.go .rfill { height:100%; }
  .rstop { text-align:left; display:grid; grid-template-columns:66px 1fr; column-gap:16px; padding-bottom:22px; }
  .rico { margin:0; grid-row:span 2; }
  .rstop b { align-self:center; margin-bottom:2px; }
  .rstop > span:last-child { padding:0; }
  .rextra { grid-template-columns:1fr; gap:12px; margin-top:26px; }
}


/* ================= envia tu caso: video + pasos ================= */
.envsplit { display:flex; gap:40px; align-items:center; margin-top:26px; }
.envsplit .egrid { flex:1; display:grid !important; grid-template-columns:1fr; gap:14px; margin-top:0 !important; }
.envvid { width:400px; flex-shrink:0; position:relative; }
.envvid video { width:100%; border-radius:18px; display:block; box-shadow:0 22px 50px rgba(10,20,60,.22); }
.envvid .fr i { position:absolute; width:26px; height:26px; border:2.5px solid var(--gold); z-index:2; }
.envvid .fr i:nth-child(1) { top:-9px; left:-9px; border-right:none; border-bottom:none; }
.envvid .fr i:nth-child(2) { top:-9px; right:-9px; border-left:none; border-bottom:none; }
.envvid .fr i:nth-child(3) { bottom:25px; left:-9px; border-right:none; border-top:none; }
.envvid .fr i:nth-child(4) { bottom:25px; right:-9px; border-left:none; border-top:none; }
.envvid .cap { text-align:center; color:var(--goldd); font-size:.78rem; margin-top:10px; font-family:'Montserrat',sans-serif; letter-spacing:.05em; }
@media (max-width:899px) {
  .envsplit { flex-direction:column; gap:22px; }
  .envvid { width:100%; }
}


/* ================= envia tu caso: foto grande + pasos ================= */
.envh { display:flex; gap:42px; align-items:center; margin-top:26px; }
.envfoto { width:44%; flex-shrink:0; border-radius:20px; overflow:hidden; box-shadow:0 24px 54px rgba(0,0,0,.45); }
.envfoto img { width:100%; height:330px; object-fit:cover; display:block; }
.envlista { flex:1; display:flex; flex-direction:column; gap:14px; }
.envp { display:flex; gap:16px; align-items:flex-start; background:rgba(255,255,255,.05); border:1px solid rgba(201,168,76,.3); border-left:3px solid var(--gold); border-radius:12px; padding:16px 20px; }
.envp i { font-style:normal; font-family:'Montserrat',sans-serif; font-weight:800; color:var(--gold2); font-size:1.3rem; min-width:32px; line-height:1.2; }
.envp b { font-family:'Montserrat',sans-serif; color:#fff; display:block; margin-bottom:3px; font-size:.98rem; }
.envp p { color:#9aa3bd; font-size:.86rem; line-height:1.5; }
@media (max-width:899px) {
  .envh { flex-direction:column; gap:20px; }
  .envfoto { width:100%; }
  .envfoto img { height:210px; }
}

/* --- plegar texto secundario en movil --- */
.vermas { display:none; }
@media (max-width:760px) {
  .vermas { display:inline-flex; align-items:center; gap:9px; margin:4px 0 2px; background:none; border:0; padding:8px 0; color:var(--goldd); font-family:'Montserrat',sans-serif; font-weight:700; font-size:.82rem; letter-spacing:.03em; text-transform:uppercase; cursor:pointer; }
  .vermas::after { content:''; width:7px; height:7px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:translateY(-3px) rotate(45deg); transition:transform .25s ease; }
  .vermas.on::after { transform:translateY(1px) rotate(-135deg); }
  .plegable { display:none !important; }
  .plegable.on { display:grid !important; }
  .diag:not(.on) .cal .tx span { display:none; }
  .diag:not(.on) .cal .tx b { margin-bottom:0; }
}

/* --- sello de antiguedad en la portada --- */
.sello { display:inline-flex; align-items:baseline; gap:11px; white-space:nowrap; }
.sello b { font-family:'Montserrat',sans-serif; font-weight:800; font-size:1.15rem; line-height:1; color:var(--gold2); letter-spacing:.01em; }
.sello span { font-family:'Montserrat',sans-serif; font-weight:600; font-size:.82rem; color:rgba(255,255,255,.88); border-left:1px solid rgba(201,168,76,.45); padding-left:11px; }
@media (max-width:760px) {
  .sello { gap:9px; white-space:normal; }
  .sello b { font-size:1.05rem; }
  .sello span { font-size:.76rem; padding-left:9px; }
}

/* --- variante de tarjeta con foto de ambiente, a sangre dentro del marco --- */
.tpph .ph3.llena { padding:0; }
.tpph .ph3.llena .pic { margin:0; }
.tpph .ph3.llena .pic img { object-fit:cover; }
.tpph .ph3.llena .cap3 { margin:0; }
@media (max-width:760px) { .tpph .ph3.llena { padding:0; } .tpph .ph3.llena .cap3 { margin:0; } }

/* --- nuestros trabajos: tarjeta horizontal en movil --- */
@media (max-width:760px) {
  .tgrid { gap:12px !important; }
  .tcard { display:grid; grid-template-columns:106px 1fr; column-gap:14px; align-items:center; text-align:left; padding:12px; border-radius:18px; }
  .tcard .im { grid-column:1; grid-row:1 / span 4; width:106px; height:106px; border:1px solid rgba(201,168,76,.45); border-radius:13px; padding:8px; margin:0; }
  .tcard img { max-height:100%; max-width:100%; }
  .tcard .chip { grid-column:2; grid-row:1; justify-self:start; margin:0 0 4px; font-size:.58rem; padding:3px 10px; }
  .tcard b { grid-column:2; grid-row:2; font-size:.98rem; line-height:1.25; }
  .tcard p { grid-column:2; grid-row:3; font-size:.78rem; line-height:1.45; margin:3px 0 5px; }
  .tcard u { grid-column:2; grid-row:4; font-size:.74rem; }
}

/* --- tiempos de entrega (nuestros trabajos) --- */
.plazos { background:var(--soft); border-top:1px solid var(--line); }
.plazos .phead { text-align:center; max-width:760px; margin:0 auto 30px; }
.plazos .phead h2 { font-family:'Montserrat',sans-serif; font-weight:800; color:var(--obs2); font-size:2.1rem; letter-spacing:-.02em; margin:6px 0 10px; }
.plazos .phead h2 em { font-style:normal; color:var(--goldd); }
.plazos .phead p { color:var(--mut); font-size:.98rem; }
.plazos .pgrid { display:grid; grid-template-columns:1fr 1fr; gap:0 44px; max-width:1100px; margin:0 auto; background:#fff; border:1px solid var(--line); border-radius:20px; padding:10px 34px; box-shadow:0 12px 30px rgba(10,20,60,.06); }
.plazos .prow { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:15px 0; border-bottom:1px solid var(--line); }
.plazos .pgrid .prow:nth-last-child(-n+2) { border-bottom:none; }
.plazos .prow span { color:var(--obs2); font-size:.95rem; line-height:1.35; }
.plazos .prow b { flex-shrink:0; font-family:'Montserrat',sans-serif; font-weight:800; font-size:.86rem; letter-spacing:.02em; color:var(--obs); background:linear-gradient(120deg,var(--gold),var(--gold2)); border-radius:999px; padding:6px 14px; white-space:nowrap; }
.plazos .pnota { max-width:1100px; margin:18px auto 0; color:var(--mut); font-size:.84rem; line-height:1.6; }
.plazos .pnota::before { content:'\2139'; color:var(--goldd); font-weight:700; margin-right:7px; }
.plazos .pnota b { color:var(--obs2); font-weight:700; }
.plazos .pextra { display:flex; justify-content:center; gap:14px; flex-wrap:wrap; max-width:1100px; margin:26px auto 0; }
.plazos .pextra > div { flex:1 1 240px; display:flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--line); border-radius:14px; padding:14px 16px; }
.plazos .pextra .b { width:40px; height:40px; border-radius:50%; border:1.5px solid var(--gold); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.plazos .pextra .b svg { width:20px; height:20px; }
.plazos .pextra b { font-family:'Montserrat',sans-serif; font-weight:700; color:var(--obs2); font-size:.9rem; display:block; }
.plazos .pextra small { color:var(--mut); font-size:.8rem; }
@media (max-width:760px) {
  .plazos .phead h2 { font-size:1.55rem; }
  .plazos .pgrid { grid-template-columns:1fr; gap:0; padding:4px 18px; border-radius:16px; }
  .plazos .pgrid .prow:nth-last-child(2) { border-bottom:1px solid var(--line); }
  .plazos .prow { padding:13px 0; }
  .plazos .prow span { font-size:.9rem; }
  .plazos .prow b { font-size:.8rem; padding:5px 12px; }
}

/* --- donde estamos (mapa) --- */
.donde { background:#fff; border-top:1px solid var(--line); }
.donde .dgrid { display:grid; grid-template-columns:1fr 1.15fr; gap:44px; align-items:center; max-width:1200px; margin:0 auto; }
.donde h2 { font-family:'Montserrat',sans-serif; font-weight:800; color:var(--obs2); font-size:2.1rem; letter-spacing:-.02em; margin:6px 0 12px; }
.donde h2 em { font-style:normal; color:var(--goldd); }
.donde p { color:var(--mut); font-size:.98rem; line-height:1.7; margin:0 0 14px; }
.donde .dir { display:flex; gap:12px; align-items:flex-start; margin:18px 0 6px; }
.donde .dir .b { width:42px; height:42px; border-radius:50%; border:1.5px solid var(--gold); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.donde .dir .b svg { width:21px; height:21px; }
.donde .dir b { font-family:'Montserrat',sans-serif; font-weight:700; color:var(--obs2); font-size:1rem; display:block; }
.donde .dir span { color:var(--mut); font-size:.92rem; display:block; line-height:1.5; }
.donde .dbtn { display:flex; gap:12px; flex-wrap:wrap; margin-top:20px; }
.donde .dbtn .pill.line2 { background:none; border:1.5px solid var(--gold); color:var(--goldd) !important; }
.donde .mapa { position:relative; border:1px solid rgba(201,168,76,.5); border-radius:20px; overflow:hidden; box-shadow:0 14px 34px rgba(10,20,60,.09); background:var(--soft); aspect-ratio:16/11; }
.donde .mapa iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.donde .mapbtn { position:absolute; inset:0; width:100%; border:0; cursor:pointer; background:linear-gradient(150deg,#eef1f8,#f8f9fc); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:24px; text-align:center; }
.donde .mapbtn b { font-family:'Montserrat',sans-serif; font-weight:700; color:var(--obs); background:linear-gradient(120deg,var(--gold),var(--gold2)); border-radius:999px; padding:12px 22px; font-size:.92rem; }
.donde .mapbtn span { color:var(--mut); font-size:.8rem; max-width:320px; line-height:1.5; }
.donde .mapbtn span a { color:var(--goldd); }
.donde .mapa .tag { position:absolute; left:14px; bottom:14px; background:linear-gradient(150deg,var(--obs2),var(--obs)); color:#fff; font-family:'Montserrat',sans-serif; font-weight:600; font-size:.8rem; padding:8px 14px; border-radius:999px; pointer-events:none; }
@media (max-width:760px) {
  .donde .dgrid { grid-template-columns:1fr; gap:22px; }
  .donde h2 { font-size:1.55rem; }
  .donde .mapa { aspect-ratio:4/3; border-radius:16px; }
}

/* --- paginas legales --- */
.legal { background:#fff; }
.legal .in14 { max-width:860px; }
.legal h2 { font-family:'Montserrat',sans-serif; font-weight:800; color:var(--obs2); font-size:1.35rem; margin:34px 0 10px; }
.legal p, .legal li { color:#3b4560; font-size:.96rem; line-height:1.75; margin:0 0 12px; }
.legal ul { padding-left:22px; margin:0 0 12px; }
.legal .fecha { color:var(--mut); font-size:.82rem; }
footer .fbottom .flegal a { color:#a9b2cc; margin-right:12px; }

/* --- Ofertas del mes --- */
nav.top .links a.nofer { color:var(--gold2); }
nav.top .links a.nofer:hover { color:#fff; }
.ofhome { background:linear-gradient(150deg,var(--obs) 55%,var(--obs2)); border-radius:26px; padding:38px 40px 36px; color:#fff; position:relative; overflow:hidden; }
.ofhome::before { content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(201,168,76,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(201,168,76,.07) 1px,transparent 1px); background-size:34px 34px; pointer-events:none; }
.ofhome .in { position:relative; display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:22px; align-items:stretch; }
.ofhome h2 { font-family:'Montserrat',sans-serif; font-weight:800; font-size:2rem; letter-spacing:-.02em; line-height:1.1; margin:6px 0 10px; }
.ofhome h2 em { font-style:normal; color:var(--gold2); }
.ofhome p.d { color:#b9c2d8; max-width:380px; margin:0 0 18px; }
.ofc { background:#fff; color:var(--obs2); border-radius:18px; padding:22px 22px 20px; display:flex; flex-direction:column; gap:8px; border-top:4px solid var(--gold); }
.ofc .k { font-family:'Montserrat',sans-serif; font-weight:700; letter-spacing:.16em; font-size:.66rem; text-transform:uppercase; color:var(--goldd); }
.ofc b { font-family:'Montserrat',sans-serif; font-weight:800; font-size:1.55rem; line-height:1.1; letter-spacing:-.01em; }
.ofc p { color:var(--mut); font-size:.9rem; line-height:1.45; margin:0; flex:1; }
.ofc .pill { align-self:flex-start; padding:9px 18px; font-size:.82rem; margin-top:6px; }
.ofc .cond { font-size:.72rem; color:#8d97b4; }
@media (max-width:900px) { .ofhome .in { grid-template-columns:1fr; } .ofhome { padding:28px 20px 26px; } }
/* pop-up */
.ofpop { position:fixed; inset:0; z-index:200; display:none; align-items:center; justify-content:center; padding:18px; background:rgba(0,0,24,.66); backdrop-filter:blur(3px); }
.ofpop.on { display:flex; }
.ofpop .box { background:#fff; border-radius:22px; width:min(560px,100%); box-shadow:0 30px 80px rgba(0,0,0,.5); overflow:hidden; position:relative; animation:ofin .35s ease; }
@keyframes ofin { from { opacity:0; transform:translateY(16px) scale(.97); } to { opacity:1; transform:none; } }
.ofpop .top { background:linear-gradient(150deg,var(--obs) 55%,var(--obs2)); color:#fff; padding:24px 26px 20px; }
.ofpop .top .eyebrow { color:var(--gold2); }
.ofpop .top h3 { font-family:'Montserrat',sans-serif; font-weight:800; font-size:1.55rem; letter-spacing:-.02em; line-height:1.1; margin:6px 0 0; }
.ofpop .body { padding:18px 26px 22px; display:grid; gap:12px; }
.ofpop .it { display:flex; gap:14px; align-items:flex-start; border:1px solid var(--line); border-radius:14px; padding:12px 14px; }
.ofpop .it .n { width:34px; height:34px; border-radius:50%; background:linear-gradient(120deg,var(--gold),var(--gold2)); display:flex; align-items:center; justify-content:center; font-family:'Montserrat',sans-serif; font-weight:800; color:var(--obs); flex-shrink:0; font-size:.9rem; }
.ofpop .it b { font-family:'Montserrat',sans-serif; font-weight:800; color:var(--obs2); font-size:1.02rem; display:block; }
.ofpop .it span { color:var(--mut); font-size:.86rem; line-height:1.4; }
.ofpop .acts { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:4px; }
.ofpop .acts a.sec { color:var(--goldd); font-family:'Montserrat',sans-serif; font-weight:700; font-size:.86rem; text-decoration:none; }
.ofpop .x { position:absolute; top:12px; right:12px; width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.35); background:rgba(0,0,24,.35); color:#fff; font-size:20px; line-height:1; cursor:pointer; }
.ofpop .x:hover { background:var(--gold2); color:var(--obs); }

/* --- Tarjetas de tipos: misma medida en todas las paginas de trabajos --- */
@media (min-width:1101px) {
  .tipos2 .in14 { max-width:1640px; }
  .tp2grid.ph { justify-content:center; gap:14px; grid-template-columns:repeat(4,minmax(0,250px)); }
  .tp2grid.ph.tp3 { grid-template-columns:repeat(3,minmax(0,250px)); }
  .tp2grid.ph.tp5 { grid-template-columns:repeat(5,minmax(0,250px)); }
  .tp2grid.ph.tp6 { grid-template-columns:repeat(6,minmax(0,250px)); }
  .tp2grid.ph .tpph { min-width:0; }
  .tp2grid.ph .ph3:not(.llena) { margin:8px 8px 0; padding:8px 8px 0; }
  .tp2grid.ph .ph3.llena { margin:8px 8px 0; }
  .tp2grid.ph .ph3:not(.llena) .pic { margin:0 0 6px; }
  .tp2grid.ph .bd { padding:12px 14px 16px; }
  .tp2grid.ph .bd p { font-size:.82rem; }
  .tp2grid.ph .cap3 { font-size:.76rem; padding:5px 16px 5px 56px; min-height:48px; box-sizing:border-box; display:flex; align-items:center; justify-content:center; margin:0 -8px; }
  .tp2grid.ph .ph3.llena .cap3 { margin:0; }
  .tp2grid.ph .nb { bottom:14px; font-size:.64rem; padding:3px 9px; }
  .tp2grid.ph .tag { font-size:.6rem; }
}
@media (max-width:1100px) and (min-width:900px) { .tp2grid.ph { grid-template-columns:repeat(2,1fr); } .tp2grid.ph.tp5, .tp2grid.ph.tp6 { grid-template-columns:repeat(3,1fr); } }
