/* Service tools use the same readable hierarchy as the website. */
.service-finder-entry { display:flex; align-items:center; gap:32px; margin:32px 0 40px; padding:28px 32px; border:1px solid #bddfe5; border-radius:12px; background:#edfafd; color:#0a2b35; text-align:left; }
.service-finder-entry > .finder-entry-copy { flex:1; min-width:0; }
.service-finder-entry h3 { margin:0 0 8px; font:600 26px/1.3 var(--display); letter-spacing:-.02em; }
.service-finder-entry p { margin:0; font-size:18px; line-height:1.6; color:#405d65; }
.service-finder-entry [data-open-explore] { display:inline-flex; align-items:center; justify-content:center; gap:20px; flex:0 0 auto; min-height:48px; padding:14px 22px; border:1px solid #0a2b35; border-radius:8px; background:#0a2b35; color:#fff; font-size:16px; line-height:1.3; font-weight:600; white-space:nowrap; }
.service-finder-entry [data-open-explore]:hover { background:#164a59; }
.service-finder-entry [data-open-explore] > span { margin:0; }
body.cls-explorer-open { overflow:hidden; }
dialog.cls-explorer { --finder-ink:#0a2b35; --finder-muted:#46616b; --finder-line:#d4e1e5; padding:0; width:min(980px,calc(100% - 48px)); max-width:none; max-height:calc(100dvh - 48px); overflow:hidden; border:1px solid #c0d6de; border-radius:16px; background:#fcfdfc; color:var(--finder-ink); box-shadow:0 24px 100px #021d3c66; text-align:left; font-family:var(--body); font-size:18px; }
.cls-explorer::backdrop { background:#031c2bc9; backdrop-filter:blur(6px); }
.cls-explorer-inner { display:flex; flex-direction:column; min-height:0; max-height:calc(100dvh - 50px); padding:28px 32px 0; }
.cls-explorer-top { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-shrink:0; margin-bottom:24px; }
.cls-explorer-eyebrow { margin:0 0 8px; font-size:14px; font-weight:600; line-height:1.4; color:#405d65; letter-spacing:0; }
.cls-explorer h2 { margin:0; font:600 36px/1.2 var(--display); letter-spacing:-.02em; color:var(--finder-ink); }
.cls-explorer-close { display:grid; place-items:center; flex:0 0 auto; width:44px; height:44px; padding:10px; border:1px solid var(--finder-line); border-radius:8px; color:#0a2b35; background:#fff; }
.cls-explorer-close:hover { background:#e8f8fb; }
.cls-explorer-close svg { display:block; width:22px; height:22px; }
.cls-explorer-search { display:flex; align-items:center; flex-shrink:0; gap:12px; margin:0; padding:0 16px; border:1px solid #9ebbc6; border-radius:8px; background:#fff; }
.cls-explorer-search:focus-within { border-color:#086172; box-shadow:0 0 0 3px #53d8e940; }
.cls-explorer-search > svg { width:22px; height:22px; flex:0 0 auto; color:#086172; }
.cls-explorer .cls-explorer-search input[type=search] { width:100%; min-width:0; height:56px; margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; color:#0a2b35; font:inherit; font-size:18px; letter-spacing:0; }
.cls-explorer .cls-explorer-search input[type=search]:focus-visible { outline:0; box-shadow:none; }
.cls-explorer-search input::placeholder { color:#566d72; opacity:1; font-size:16px; }
.cls-explorer-tabs { display:flex; gap:28px; flex-shrink:0; border-bottom:1px solid var(--finder-line); margin-top:8px; }
.cls-explorer-tabs button { position:relative; min-height:52px; padding:14px 0; border:0; border-radius:0; background:transparent; color:#405d65; font:inherit; font-size:16px; line-height:1.3; font-weight:500; }
.cls-explorer-tabs button[aria-selected=true] { color:#0a2b35; font-weight:700; }
.cls-explorer-tabs button[aria-selected=true]::after { content:''; position:absolute; left:0; right:0; bottom:-1px; height:3px; background:#086172; }
.cls-explorer-panel { flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#a5c7d0 transparent; }
.cls-explorer-filters { display:grid; grid-template-columns:1.25fr 1fr; gap:20px; padding-top:20px; }
.cls-explorer-filters[hidden] { display:none; }
.cls-explorer-filters label { display:block; min-width:0; margin:0; font-size:14px; line-height:1.4; font-weight:600; letter-spacing:0; color:#405d65; }
.cls-explorer-filters select { display:block; width:100%; height:46px; margin-top:8px; padding:10px 32px 10px 12px; border:1px solid #afc7d1; border-radius:8px; background-color:#fff; color:#0a2b35; font:inherit; font-size:16px; line-height:1.4; letter-spacing:0; }
.cls-explorer-results-header { display:flex; align-items:center; justify-content:space-between; min-height:56px; gap:16px; }
.cls-explorer-results-header p { min-width:0; margin:0; font-size:14px; line-height:1.5; color:#405d65; overflow-wrap:anywhere; }
.cls-explorer-reset { flex-shrink:0; padding:12px 0 12px 8px; border:0; background:transparent; color:#086172; font-size:15px; line-height:1.4; }
.cls-explorer-reset:hover { text-decoration:underline; }
.cls-explorer-reset[hidden] { display:none; }
.cls-explorer-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:max-content; align-content:start; gap:16px; padding:2px 3px 24px 1px; min-height:120px; }
.cls-explorer-result { position:relative; display:grid; grid-template-columns:64px minmax(0,1fr); align-items:start; gap:16px; min-height:176px; padding:20px 28px 20px 16px; border:1px solid #cbdce1; border-radius:10px; background:#fff; color:#0a2b35; text-align:left; text-decoration:none; font:inherit; }
.cls-explorer-result:hover { background:#eefafd; border-color:#7dbcca; }
.cls-explorer-result:focus-visible { outline:2px solid #086172; outline-offset:1px; }
.cls-explorer-result-image { display:grid; place-items:center; width:64px; height:80px; overflow:hidden; border-radius:6px; background:#e6f2f5; color:#086172; }
.cls-explorer-result-image img { display:block; width:100%; height:100%; object-fit:cover; }
.cls-explorer-result-image svg { width:26px; height:26px; }
.cls-explorer-result-copy { display:block; min-width:0; }
.cls-explorer-result-category { display:block; margin-bottom:8px; color:#405d65; font-size:14px; font-weight:500; line-height:1.4; letter-spacing:0; }
.cls-explorer-result strong { display:block; margin:0 0 10px; color:#0a2b35; font-size:20px; font-weight:650; line-height:1.3; letter-spacing:-.01em; overflow-wrap:anywhere; }
.cls-explorer-result-description { display:-webkit-box; overflow:hidden; -webkit-line-clamp:2; -webkit-box-orient:vertical; color:#405d65; font-size:18px; line-height:1.55; }
.cls-explorer-result-model { display:inline-block; margin-top:12px; padding:5px 8px; border-radius:4px; background:#eaf4f6; color:#2f5360; font-size:14px; font-weight:500; line-height:1.4; }
.cls-explorer-result-model.is-scoped { background:#fff3df; color:#72501f; }
.cls-explorer-result-arrow { position:absolute; right:12px; top:22px; width:14px; height:14px; color:#086172; }
.cls-explorer-empty { grid-column:1 / -1; padding:32px 24px; border:1px dashed #afc7d1; border-radius:10px; background:#eef7fa; color:#405d65; text-align:left; font-size:18px; line-height:1.6; }
.cls-explorer-empty h3 { margin:0 0 12px; color:#0a2b35; font-size:24px; font-weight:600; line-height:1.3; letter-spacing:-.02em; }
.cls-explorer-empty p { margin:0; font-size:18px; line-height:1.6; }
.cls-explorer-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-shrink:0; padding:16px 0 20px; border-top:1px solid var(--finder-line); color:#405d65; font-size:14px; line-height:1.4; }
.cls-explorer-keyhint { white-space:nowrap; }
.cls-service-dock { position:fixed; z-index:35; left:50%; bottom:20px; transform:translateX(-50%); display:flex; align-items:center; justify-content:space-between; gap:24px; width:calc(100% - 48px); max-width:960px; padding:20px 24px; border:1px solid #456775; border-radius:12px; background:#0a2b35; color:#fff; box-shadow:0 8px 32px #062d4929; }
.cls-service-dock[hidden] { display:none; }
.cls-service-dock-copy { min-width:0; }
.cls-service-dock-copy > span { display:block; margin-bottom:6px; color:#b5e9ef; font-size:14px; line-height:1.4; font-weight:500; letter-spacing:0; }
.cls-service-dock-copy > strong { display:block; color:#fff; font-size:20px; font-weight:600; line-height:1.35; letter-spacing:0; }
.cls-service-dock-actions { display:flex; align-items:center; gap:12px; flex:0 0 auto; }
.cls-service-copy, .cls-service-enquire { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:46px; padding:12px 18px; border-radius:8px; font:inherit; font-size:16px; font-weight:600; line-height:1.3; white-space:nowrap; }
.cls-service-copy { color:#fff; background:transparent; border:1px solid #7895a0; }
.cls-service-copy:hover { background:#204b5a; }
.cls-service-enquire { color:#0a2b35; background:#53d8e9; border:1px solid #53d8e9; text-decoration:none; }
.cls-service-enquire:hover { background:#91e9f3; }
.cls-service-copy svg, .cls-service-enquire svg { width:18px; height:18px; flex:0 0 auto; }
.cls-service-dock :focus-visible { outline:2px solid #a2f3ff; outline-offset:4px; }
body.cls-service-view .site-footer { padding-bottom:180px; }
.cls-copy-fallback { position:fixed; left:-10000px; top:0; width:1px; height:1px; opacity:0; }
@media(max-width:767px) {
  .service-finder-entry { flex-direction:column; align-items:stretch; gap:24px; padding:24px; }
  .service-finder-entry h3 { font-size:23px; }
  .service-finder-entry p { font-size:17px; }
  .service-finder-entry [data-open-explore] { width:100%; white-space:normal; }
  dialog.cls-explorer { width:calc(100% - 24px); max-height:calc(100dvh - 24px); border-radius:12px; }
  .cls-explorer-inner { max-height:calc(100dvh - 26px); padding:20px 20px 0; }
  .cls-explorer-top { margin-bottom:20px; gap:16px; }
  .cls-explorer h2 { font-size:30px; }
  .cls-explorer .cls-explorer-search input[type=search] { font-size:17px; height:52px; }
  .cls-explorer-search input::placeholder { font-size:16px; }
  .cls-explorer-tabs { gap:24px; }
  .cls-explorer-tabs button { font-size:16px; }
  .cls-explorer-results { grid-template-columns:1fr; gap:12px; }
  .cls-explorer-result { grid-template-columns:48px minmax(0,1fr); padding:18px 26px 18px 14px; gap:14px; }
  .cls-explorer-result-image { width:48px; height:64px; }
  .cls-explorer-result strong { font-size:19px; }
  .cls-explorer-result-description, .cls-explorer-empty, .cls-explorer-empty p { font-size:17px; }
  .cls-explorer-footer { padding-block:14px 16px; }
  .cls-explorer-keyhint { display:none; }
  .cls-service-dock { display:block; width:calc(100% - 24px); bottom:12px; padding:16px; }
  .cls-service-dock-copy > span { display:none; }
  .cls-service-dock-copy > strong { font-size:18px; }
  .cls-service-dock-actions { margin-top:14px; gap:12px; }
  .cls-service-dock-actions > * { flex:1; }
  body.cls-service-view .site-footer { padding-bottom:230px; }
}
@media(max-width:479px) {
  .cls-explorer-filters { grid-template-columns:1fr; gap:16px; }
  .cls-explorer-tabs { justify-content:space-between; gap:16px; }
  .cls-explorer-search { padding-inline:12px; gap:8px; }
  .cls-explorer-search input::placeholder { font-size:15px; }
}
