/* Visual services: photographs, diagrams and progressive detail */
#servicios .section-head{margin-bottom:36px}
#servicios .services-visual{border:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
.service-card{min-width:0;background:#fff;border:1px solid #dddeda;border-radius:4px;overflow:hidden;transition:border-color .2s,box-shadow .2s}
.service-card:hover,.service-card:focus-within{border-color:#b8bcb6;box-shadow:0 8px 26px #292d330a}
.service-media{height:auto;aspect-ratio:4/3;position:relative;overflow:hidden;background:#e9e9e2}
.service-media img{display:block;width:100%;height:100%;object-fit:cover}
.service-media img.portrait{object-fit:contain;background:#e9e9e2}
.service-media img.diagram{object-fit:contain;padding:10px;background:#fff}
.service-photo{border:0;background:transparent;display:block;width:100%;height:100%;padding:0;cursor:zoom-in;position:absolute;inset:0}
.service-zoom{position:absolute;right:14px;top:14px;width:31px;height:31px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#292d33bf;font-size:20px}
.service-gallery,.lightbox-stage{touch-action:pan-y}
.service-gallery-controls{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;padding:4px;border-radius:30px;background:#202428e8;color:#fff;box-shadow:0 2px 12px #0002}
.service-gallery-controls[hidden]{display:none}
.service-gallery-controls button{width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:white;font-size:21px;cursor:pointer}
.service-gallery-controls button:hover{background:#ffffff20}
.service-gallery-count{min-width:43px;text-align:center;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}
.service-gallery button:focus-visible,.service-lightbox button:focus-visible{outline:3px solid #ed292f;outline-offset:-3px}
.service-number{position:absolute;top:14px;left:16px;display:grid;place-items:center;width:31px;height:31px;background:#f7f6f3f0;color:#292d33;font-size:11px;font-weight:700;border-radius:50%}
.service-body{padding:23px 24px 0}
.service-category{display:block;color:#b72025;font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase}
.service-card h3{font-size:22px;line-height:1.2;font-weight:500;letter-spacing:-.5px;margin:13px 0 12px;min-height:80px;max-width:330px}
.service-intro{font-size:14px;line-height:1.65;color:#61706b;margin:0 0 22px;min-height:70px}
.service-details{border-top:1px solid #e5e6e1}
.service-details summary{list-style:none;cursor:pointer;min-height:57px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px;font-weight:700;color:#292d33}
.service-details summary::-webkit-details-marker{display:none}
.service-details summary:focus-visible{outline:3px solid #ed292f;outline-offset:3px}
.service-details summary:hover{color:#c72429}
.service-details summary::after{content:'+';font-size:23px;font-weight:400;color:#ed292f}
.service-details[open] summary::after{content:'−'}
.service-details .when-open,.service-details[open] .when-closed{display:none}
.service-details[open] .when-open{display:inline}
.service-details p{font-size:13px;line-height:1.75;color:#61706b;margin:4px 0 16px}
.service-details ul{margin:0 0 24px;padding:0 0 0 17px;color:#56615e;font-size:13px;line-height:1.7}
.service-details li{padding-left:3px;margin-bottom:9px}
.service-details li::marker{color:#ed292f}
.gallery-modal-open{overflow:hidden}
.service-lightbox{width:min(1120px,94vw);max-width:94vw;max-height:95dvh;padding:52px 20px 16px;border:0;border-radius:8px;background:#1d2226;color:#fff;overflow:auto}
.service-lightbox::backdrop{background:#101418df;backdrop-filter:blur(4px)}
.lightbox-close{position:absolute;top:8px;right:12px;width:38px;height:38px;border:0;background:transparent;color:#fff;font-size:34px;cursor:pointer}
.lightbox-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:180px}
.lightbox-stage img{display:block;width:100%;height:calc(86dvh - 110px);max-height:760px;object-fit:contain}
.lightbox-stage img.diagram{background:#fff}
.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%);border:1px solid #ffffff4d;background:#1d2226c9;color:white;width:44px;height:44px;border-radius:50%;font-size:24px;cursor:pointer}
.lightbox-prev{left:8px}.lightbox-next{right:8px}
.service-lightbox [hidden]{display:none}
.lightbox-footer{display:flex;gap:20px;align-items:center;justify-content:space-between;padding:14px 4px 0}
.lightbox-caption{margin:0;color:#f0f2f0;font-size:14px;line-height:1.5}.lightbox-count{white-space:nowrap;font-size:12px;font-variant-numeric:tabular-nums}
@media(max-width:1000px){#servicios .services-visual{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){#servicios .services-visual{grid-template-columns:1fr;gap:24px}.service-media{height:auto}.service-body{padding:22px 22px 0}.service-card h3{min-height:0;max-width:none;font-size:24px}.service-intro{min-height:0;margin-bottom:21px}.service-lightbox{padding:48px 8px 12px}.lightbox-caption{font-size:12px}.lightbox-footer{padding-inline:8px}.lightbox-prev,.lightbox-next{width:38px;height:38px}}
@media(prefers-reduced-motion:reduce){.service-card{transition:none}}
