/* Gallery entry on a service card. The separate price link stays clickable. */
.service-card-open { position:absolute; inset:0; z-index:1; width:100%; border:0; padding:0; border-radius:inherit; background:transparent; color:inherit; cursor:pointer; }
.service-card-gallery .card-copy { z-index:2; pointer-events:none; }
.service-card-actions { display:flex; align-items:center; flex-wrap:wrap; gap:14px 24px; margin-top:22px; }
.service-card-actions > span { font-size:13px; font-weight:800; color:#ffad4d; }
.service-card-actions > a { position:relative; pointer-events:auto; padding:8px 0; }
.service-card-open:focus-visible { outline:3px solid #ffad4d; outline-offset:-6px; }
.service-card-actions > a:focus-visible { outline:2px solid #ffad4d; outline-offset:5px; }
body.service-gallery-open { overflow:hidden; }
.service-gallery { width:100%; max-width:none; height:100vh; height:100dvh; max-height:none; margin:0; padding:0; border:0; background:#090a0c; color:#fff; overscroll-behavior:contain; }
.service-gallery::backdrop, .service-photo-viewer::backdrop { background:#000e; }
.service-gallery-shell { max-width:1420px; min-height:100%; margin:0 auto; padding:0 clamp(18px,4vw,54px) 48px; }
.service-gallery-header { position:sticky; top:0; z-index:2; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:25px 0 22px; background:#090a0cf5; }
.service-gallery-header small { font-size:10px; letter-spacing:2px; color:#ffad4d; font-weight:700; }
.service-gallery-header h2 { margin:3px 0 4px; font:600 clamp(30px,4vw,48px) Oswald,sans-serif; }
.service-gallery-header p { margin:0; font-size:12px; color:#a3a4a9; }
.service-gallery-close, .service-viewer-close, .service-viewer-arrow { display:grid; place-items:center; flex-shrink:0; width:48px; height:48px; padding:0; border:1px solid #45464d; border-radius:50%; background:#15161a; color:#fff; cursor:pointer; }
.service-gallery-close, .service-viewer-close { font-size:29px; line-height:1; }
.service-gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px 18px; }
.service-gallery-item { display:block; width:100%; min-width:0; padding:0; overflow:hidden; border:1px solid #2c2d32; border-radius:14px; background:#131417; color:#fff; text-align:left; cursor:zoom-in; }
.service-gallery-item img { display:block; width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; }
.service-gallery-item span { display:block; padding:15px 16px; font-size:13px; font-weight:600; line-height:1.4; }
.service-gallery-item:hover { border-color:#ffad4d; }
.service-gallery-item[data-media-type="video"] { position:relative; cursor:pointer; }
.service-gallery-item .service-gallery-video-label { position:absolute; top:14px; left:14px; display:flex; align-items:center; gap:7px; padding:8px 12px; border:1px solid #ffffff30; border-radius:30px; background:#090a0ce6; color:#fff; font-size:12px; }
.service-gallery-video-label svg { width:16px; height:16px; fill:currentColor; }
.service-gallery button:focus-visible, .service-photo-viewer button:focus-visible { outline:3px solid #ffad4d; outline-offset:3px; }
.service-photo-viewer { width:100%; max-width:none; height:100vh; height:100dvh; max-height:none; margin:0; padding:0; border:0; background:#060708; color:#fff; overscroll-behavior:contain; }
.service-viewer-layout { display:grid; grid-template-rows:auto minmax(0,1fr) auto; height:100%; padding:16px clamp(12px,3vw,40px); gap:12px; }
.service-viewer-top { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.service-viewer-top > span { color:#b2b3b7; font-size:12px; letter-spacing:1.5px; }
.service-viewer-stage { position:relative; display:grid; place-items:center; min-height:0; overflow:hidden; touch-action:pan-y pinch-zoom; }
.service-viewer-stage img { display:block; width:100%; height:100%; min-height:0; object-fit:contain; user-select:none; -webkit-user-select:none; }
.service-viewer-stage img[hidden] { display:none; }
.service-viewer-stage video { display:block; width:100%; height:100%; min-height:0; object-fit:contain; background:#060708; touch-action:auto; }
.service-viewer-stage[aria-busy="true"] img { opacity:.4; }
.service-viewer-message { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); margin:0; padding:12px 18px; border-radius:10px; background:#101115ed; color:#fff; font-size:13px; text-align:center; }
.service-viewer-message[hidden] { display:none; }
.service-viewer-bottom { display:grid; grid-template-columns:48px minmax(0,1fr) 48px; align-items:center; gap:16px; padding-bottom:env(safe-area-inset-bottom,0px); }
.service-viewer-caption { text-align:center; }
.service-viewer-caption p { margin:0; font-size:13px; line-height:1.4; }
.service-viewer-caption span { display:block; margin-top:4px; color:#96989f; font-size:11px; }
.service-viewer-arrow svg { width:22px; height:22px; }
@media(max-width:900px) { .service-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:550px) {
  .service-gallery-grid { grid-template-columns:1fr; gap:18px; }
  .service-gallery-header { padding:18px 0; }
  .service-gallery-close, .service-viewer-close, .service-viewer-arrow { width:44px; height:44px; }
  .service-viewer-layout { padding:10px 10px; gap:8px; }
  .service-viewer-bottom { grid-template-columns:44px minmax(0,1fr) 44px; gap:10px; }
}
