/* Photograph-led service selection; the gallery holds the longer explanations. */
.service-catalog{background:#fff;color:#004463;--line:#d9e3e5;padding-top:100px;padding-bottom:100px}
.catalog-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:44px}
.catalog-heading .eyebrow{font-size:11px;letter-spacing:1.8px;color:#52737e;margin-bottom:16px}
.catalog-heading h2{font-size:clamp(36px,4.2vw,62px);font-weight:500;line-height:1.08;letter-spacing:-.045em}
.catalog-heading>p{font-size:15px;line-height:1.7;color:#52737e;margin-bottom:3px}
.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 26px}
.catalog-card{display:block;min-width:0;width:100%;padding:0;border:0;border-radius:0;background:none;color:inherit;text-align:left;cursor:pointer}
.catalog-card-image{display:block;position:relative;aspect-ratio:4/3;overflow:hidden;background:#edf1f1}
.catalog-card-image>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1)}
.catalog-card[data-catalog="0"] .catalog-card-image>img{object-position:50% 47%}
.catalog-card[data-catalog="1"] .catalog-card-image>img{object-position:50% 42%}
.catalog-card[data-catalog="5"] .catalog-card-image>img{object-position:50% 40%}
.catalog-card-count{position:absolute;left:14px;bottom:14px;padding:8px 11px;background:#fff;color:#004463;font-size:10px;line-height:1.2;letter-spacing:.3px;box-shadow:0 1px 8px #001d2c0d}
.catalog-card-label{display:flex;justify-content:space-between;gap:14px;padding:20px 0 16px;border-bottom:1px solid var(--line)}
.catalog-card-label strong{display:block;font-size:clamp(19px,1.75vw,25px);font-weight:500;line-height:1.22;letter-spacing:-.6px}
.catalog-card-label>span>span{display:block;font-size:12px;color:#52737e;line-height:1.5;margin-top:7px}
.catalog-card-arrow{font-size:25px;line-height:1.3;font-weight:400;flex-shrink:0;transition:transform .25s}
.catalog-card:hover .catalog-card-image>img{transform:scale(1.035)}
.catalog-card:hover .catalog-card-arrow{transform:translate(3px,-3px)}
.catalog-card:focus-visible{outline:2px solid #007a91;outline-offset:6px}
body.catalog-open{overflow:hidden}
.catalog-dialog{position:fixed;inset:24px;margin:auto;width:min(1180px,calc(100vw - 48px));max-width:none;height:max-content;max-height:calc(100dvh - 48px);padding:0;border:0;border-radius:0;overflow:auto;overscroll-behavior:contain;background:#fff;color:#004463;box-shadow:0 24px 100px #00222c40}
.catalog-dialog::backdrop{background:#002c3ce0}
.catalog-dialog[open]{animation:catalog-enter .32s ease-out}
.catalog-dialog-top{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid #d9e3e5;background:#fff}
.catalog-dialog-top>span{font-size:10px;letter-spacing:1.5px}
.catalog-close{display:grid;place-items:center;width:44px;height:44px;padding:0;background:none;border:1px solid #d9e3e5;border-radius:50%;color:inherit;font-size:28px;line-height:1}
.catalog-close:hover{background:#edf4f5}
.catalog-dialog-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(250px,.85fr);gap:44px;padding:28px}
.catalog-gallery{min-width:0}
.catalog-main-photo{display:grid;place-items:center;height:clamp(300px,54svh,590px);width:100%;background:#f3f5f4;overflow:hidden}
.catalog-main-photo>img{display:block;width:100%;height:100%;min-height:0;object-fit:contain;animation:catalog-image-enter .25s ease-out}
.catalog-gallery-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:77px;padding:12px 0}
.catalog-gallery-bar>div:first-child{min-width:0}
.catalog-photo-count{display:block;font-size:10px;letter-spacing:1.2px;color:#52737e;margin-bottom:5px;font-variant-numeric:tabular-nums}
.catalog-photo-caption{font-size:13px;line-height:1.45;margin:0}
.catalog-photo-arrows{display:flex;flex-shrink:0;gap:7px}
.catalog-photo-arrows button{width:44px;height:44px;padding:0;border:1px solid #cedde0;border-radius:50%;background:none;color:inherit;font-size:22px}
.catalog-photo-arrows button:hover:not(:disabled){background:#004463;color:#fff;border-color:#004463}
.catalog-photo-arrows button:disabled{opacity:.28;cursor:default}
.catalog-thumbnails{display:flex;gap:9px;overflow-x:auto;scrollbar-width:thin;padding:3px 3px 8px;scroll-snap-type:x proximity}
.catalog-thumbnail{flex:0 0 68px;width:68px;height:68px;padding:0;overflow:hidden;border:0;background:#edf1f1;opacity:.65;scroll-snap-align:start}
.catalog-thumbnail img{display:block;width:100%;height:100%;object-fit:cover}
.catalog-thumbnail[aria-pressed=true]{outline:2px solid #007a91;outline-offset:2px;opacity:1}
.catalog-thumbnail:hover{opacity:1}
.catalog-detail{padding:30px 8px 20px 0;align-self:center}
.catalog-detail .eyebrow{font-size:10px;letter-spacing:1.6px;color:#52737e;margin-bottom:18px}
.catalog-detail h2{font-size:clamp(30px,3.2vw,44px);font-weight:500;line-height:1.08;letter-spacing:-1.6px;margin:0 0 25px;overflow-wrap:anywhere;hyphens:auto}
.catalog-detail>p:not(.eyebrow){font-size:16px;line-height:1.75;color:#52737e;margin:0 0 28px}
.catalog-download{display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:12px;line-height:1.55;border-bottom:1px solid #d9e3e5;padding:0 0 16px;margin-bottom:26px}
.catalog-download>span{font-size:22px;flex-shrink:0}
.catalog-inquiry,.catalog-repair{display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;padding:16px 18px;background:#004463;color:#fff;border:1px solid #004463;border-radius:0;font-size:14px;line-height:1.4;text-align:left;cursor:pointer}
.catalog-inquiry:hover,.catalog-repair:hover{background:#126478;border-color:#126478}
.catalog-inquiry>span,.catalog-repair>span{font-size:23px;line-height:1}
.catalog-dialog [hidden]{display:none!important}
.catalog-dialog button:focus-visible,.catalog-dialog a:focus-visible{outline:2px solid #007a91;outline-offset:4px}
@keyframes catalog-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes catalog-image-enter{from{opacity:.4}to{opacity:1}}
@media(max-width:1000px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 22px}.catalog-card-label strong{font-size:23px}.catalog-heading>p{max-width:230px}.catalog-dialog-layout{gap:26px;grid-template-columns:minmax(0,1.2fr) minmax(230px,.8fr)}.catalog-detail h2{font-size:33px}}
@media(max-width:760px){.service-catalog{padding-top:65px;padding-bottom:65px}.catalog-heading{display:block;margin-bottom:32px}.catalog-heading h2{font-size:clamp(34px,7.2vw,47px)}.catalog-heading>p{margin-top:20px;max-width:none;font-size:14px}.catalog-heading>p br{display:none}.catalog-heading>p br:after{content:' '}.catalog-dialog{inset:0;width:100%;height:100dvh;max-height:100dvh}.catalog-dialog-top{padding:10px 20px;padding-top:max(10px,env(safe-area-inset-top))}.catalog-dialog-layout{display:flex;flex-direction:column;padding:22px 20px 32px;gap:30px}.catalog-main-photo{height:clamp(270px,49svh,500px)}.catalog-detail{padding:0;align-self:stretch}.catalog-detail h2{font-size:clamp(28px,8vw,35px);max-width:420px;margin-bottom:19px}.catalog-detail>p:not(.eyebrow){font-size:15px;margin-bottom:24px}.catalog-detail .eyebrow{margin-bottom:12px}.catalog-thumbnail{flex-basis:61px;width:61px;height:61px}.catalog-gallery-bar{gap:12px}.catalog-photo-caption{font-size:12px}.catalog-photo-arrows{gap:5px}}
@media(max-width:640px){.catalog-grid{grid-template-columns:1fr;gap:30px}.catalog-card-image{aspect-ratio:4/3}.catalog-card-label{padding-top:17px}.catalog-card-label strong{font-size:24px}.catalog-card-label>span>span{font-size:13px}.catalog-card-count{font-size:11px}.catalog-card-image>img{object-position:center}}
@media(prefers-reduced-motion:reduce){.catalog-dialog[open],.catalog-main-photo>img{animation:none}.catalog-card-image>img,.catalog-card-arrow{transition:none}}
