/* Services index + detail shared styles */
.svc-hero{padding:20px 0 26px;display:flex;flex-direction:column;gap:14px}
@media (min-width:1024px){.svc-hero{padding:30px 0 40px}}
.svc-h1{font-size:30px;font-weight:700;margin:0;color:var(--burgundy)}
@media (min-width:1024px){.svc-h1{font-size:44px}}
.svc-hero-value{font-size:16px;font-weight:600;margin:0}
@media (min-width:1024px){.svc-hero-value{font-size:18px}}

.svc-grid{display:grid;grid-template-columns:1fr;gap:18px}
@media (min-width:640px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.svc-grid{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1360px){.svc-grid{grid-template-columns:repeat(4,1fr)}}
.svc-card{display:flex;flex-direction:column;gap:12px;border:1px solid var(--border);border-radius:4px;padding:24px;text-decoration:none;color:inherit;background:#fff}
.svc-card-icon{width:50px;height:50px;border-radius:4px;background:var(--bg-soft);display:flex;align-items:center;justify-content:center}
.svc-card h2{font-size:17px;font-weight:700;margin:0;line-height:1.35}
.svc-card p{font-size:14px;line-height:var(--lh-body);color:var(--gray);margin:0;flex:1}
.svc-card .explore{display:inline-flex;align-items:center;gap:6px;color:var(--burgundy);font-weight:600;font-size:14px}

.together-grid{display:grid;grid-template-columns:1fr;gap:24px}
@media (min-width:1024px){.together-grid{grid-template-columns:1fr 1fr;gap:48px}}
.pair-list{list-style:none;margin:0;padding:0}
.pair-item{font-size:14.5px;line-height:var(--lh-body);color:var(--ink);padding:12px 0;border-bottom:1px solid var(--border)}
.chip-row{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.chip{border:1px solid var(--border);border-radius:999px;padding:10px 18px;font-size:14px;color:var(--ink);background:#fff}

.journey-grid-svc{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:18px}
@media (min-width:640px){.journey-grid-svc{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.journey-grid-svc{grid-template-columns:repeat(5,1fr);gap:24px}}
.journey-step-svc{border-top:3px solid var(--burgundy);padding-top:14px;display:flex;flex-direction:column;gap:6px}
.journey-num-svc{color:var(--burgundy);font-weight:700;font-size:15px}
.journey-step-svc h3{font-size:15px;font-weight:600;margin:0}
.journey-step-svc p{font-size:13.5px;color:var(--gray);line-height:var(--lh-body);margin:0}

.faq-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:4px;overflow:hidden;max-width:900px}
.faq-item{border-bottom:1px solid var(--border)}
.faq-item:last-child{border-bottom:none}
.faq-q{margin:0;font-size:inherit;font-weight:inherit;line-height:inherit}
.faq-btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:start;background:#fff;border:none;padding:16px 18px;font-family:inherit;font-size:15px;font-weight:600;line-height:1.5;cursor:pointer;color:var(--ink);min-height:52px;transition:background-color var(--dur-fast) var(--ease-std)}
@media (hover:hover){.faq-btn:hover{background:#FAF7F8}}
.faq-btn:focus-visible{outline-offset:-3px}
.faq-answer{margin:0;padding:0 18px 18px;font-size:14.5px;color:var(--gray);line-height:var(--lh-body);max-width:68ch;display:none}
.faq-item.is-open .faq-answer{display:block}
.faq-answer[hidden]{display:none!important}
.faq-item.is-open .faq-chevron{transform:rotate(180deg)}
.faq-chevron{transition:transform var(--dur-fast);flex-shrink:0;color:var(--burgundy)}

/* service detail */
.sd-hero-grid{display:grid;grid-template-columns:1fr;gap:24px;align-items:center}
@media (min-width:1024px){.sd-hero-grid{grid-template-columns:1fr 1fr;gap:52px}}
.sd-icon-wrap{width:58px;height:58px;border-radius:4px;border:1.5px solid var(--burgundy);display:flex;align-items:center;justify-content:center}
.sd-h1{font-size:27px;font-weight:700;margin:0;color:var(--burgundy)}
@media (min-width:1024px){.sd-h1{font-size:40px}}
.sd-hero-img{width:100%;height:230px;border-radius:4px;object-fit:cover;background:#EDEFF2}
@media (min-width:1024px){.sd-hero-img{height:380px}}

/* sticks directly under the header while it is shown and moves to the top of
   the viewport when the header slides away (--sfh-sticky-top from js/site.js) */
.sd-section-nav{position:sticky;top:var(--sfh-sticky-top,0px);z-index:900;background:#fff;border-top:1px solid var(--border);border-bottom:1px solid transparent;transition:top var(--dur-slow) var(--ease-std)}
@media (prefers-reduced-motion:reduce){.sd-section-nav{transition:none}}
.sd-section-nav.is-stuck{border-bottom-color:var(--border);box-shadow:0 1px 6px rgba(20,22,25,.06)}
.sd-section-nav-inner{position:relative;max-width:1360px;margin:0 auto;padding:9px 20px}
@media (min-width:1024px){.sd-section-nav-inner{padding:12px 40px}}
/* 5px of inner padding keeps the focus ring (2px + 2px offset) inside the clipping edge; the negative margin preserves the layout */
.sd-scroller{display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;padding:5px;margin:-5px -5px -3px;overscroll-behavior-x:contain}
.sd-scroller::-webkit-scrollbar{display:none}
/* section links: resting / subtle hover / unmistakable active state */
.sd-pill{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;white-space:nowrap;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--ink);padding:10px 16px;font-size:13.5px;font-weight:600;text-decoration:none;min-height:44px;box-sizing:border-box;cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent;transition:border-color var(--dur-fast) var(--ease-std),color var(--dur-fast) var(--ease-std),background-color var(--dur-fast) var(--ease-std)}
/* invisible bold copy of the label: every link is as wide as its active (bold) state, so the row never shifts */
.sd-pill::after{content:attr(data-label);font-weight:700;height:0;overflow:hidden;visibility:hidden;pointer-events:none;user-select:none}
.sd-pill:focus-visible{outline:2px solid var(--burgundy);outline-offset:2px}
.sd-pill.is-active,.sd-pill[aria-current="location"]{border-color:#A21E36;background:#A21E36;color:#fff;font-weight:700}
/* hover: only for real pointers, and never the active look. data-input="touch"
   (js/service-detail.js) drops it after a tap on a touch screen that also has a mouse */
@media (hover:hover) and (pointer:fine){
  .sd-scroller:not([data-input="touch"]) .service-section-link:not([aria-current="location"]):hover{background:#FAF4F5;border-color:rgba(162,30,54,.32);color:var(--ink)}
}
/* sections land exactly under the sticky header + section navigation; the
   offset is measured from the real heights by js/service-detail.js (without
   script, the site-wide [id] offset applies) */
.service-detail-section{scroll-margin-top:var(--service-navigation-offset,calc(var(--sfh-header-h) + 16px))}
/* a column has no section padding above its heading: more room in the no-script fallback */
.service-nav-anchor{scroll-margin-top:var(--service-navigation-offset,calc(var(--sfh-header-h) + 32px))}
.service-detail-section h2[tabindex="-1"]:focus,.service-nav-anchor h2[tabindex="-1"]:focus{outline:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.sd-two-col{display:grid;grid-template-columns:1fr;gap:30px}
@media (min-width:1024px){.sd-two-col{grid-template-columns:1fr 1fr;gap:52px}}
.sd-scope-grid{display:grid;grid-template-columns:1fr;gap:20px}
@media (min-width:640px){.sd-scope-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.sd-scope-grid{grid-template-columns:repeat(3,1fr);gap:32px}}
.sd-scope-item{border-top:2px solid var(--burgundy);padding-top:14px}
.sd-scope-item h3{font-size:15.5px;font-weight:700;margin:0 0 6px}
.sd-scope-item p{font-size:14.5px;line-height:var(--lh-body);color:var(--gray);margin:0}
.sd-plain-list{list-style:none;margin:0;padding:0}
.sd-plain-item{font-size:14.5px;line-height:var(--lh-body);color:var(--gray);padding:12px 0;border-bottom:1px solid var(--border)}
.sd-note{font-size:13.5px;line-height:var(--lh-body);color:var(--gray);margin:18px 0 0;padding-inline-start:12px;border-inline-start:2px solid var(--border);max-width:68ch}
.sd-benefit-grid{display:grid;grid-template-columns:1fr;gap:20px}
@media (min-width:640px){.sd-benefit-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.sd-benefit-grid{grid-template-columns:repeat(4,1fr);gap:32px}}
.sd-benefit-item{border-top:1px solid var(--border);padding-top:14px}
.sd-benefit-item h3{font-size:15.5px;font-weight:700;margin:0 0 6px}
.sd-benefit-item p{font-size:14.5px;line-height:var(--lh-body);color:var(--gray);margin:0}
/* optional per-service blocks (js/service-detail.js renders them only for records that supply them) */
.sd-intro{margin:0 0 8px;max-width:68ch}
.sd-intro + .sd-scope-grid{margin-top:22px}
.sd-consider-list{max-width:900px}
.sd-two-col.sd-one-col{grid-template-columns:1fr}
.sd-one-col > .sd-plain-list{max-width:900px}
.sd-item-title{color:var(--ink);font-weight:700}
.cta-btn-col.cta-btn-pair{display:flex;flex-direction:column;gap:12px}
.cta-btn.cta-btn-secondary{background:transparent;color:#fff;border-color:rgba(255,255,255,.75)}
@media (hover:hover){.cta-btn.cta-btn-secondary:hover{background:var(--burgundy-deep);border-color:#fff}}
.cta-btn.cta-btn-secondary:focus-visible{background:var(--burgundy-deep)}
.sd-related-list{list-style:none;margin:0;padding:0}
.sd-related-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;font-size:15px;font-weight:600;color:var(--burgundy);text-decoration:none;border-bottom:1px solid var(--border);min-height:44px}

/* department profile (PDF), data pathway, equipment and assignments — optional blocks,
   rendered only for records that supply them (Surveying Engineering) */
/* hero: a quiet text link under the enquiry button, never a second button */
.sd-profile-link{display:flex;flex-wrap:wrap;align-items:center;column-gap:16px;row-gap:0;margin:0;font-size:14px;line-height:1.5}
.sd-profile-link[hidden]{display:none}
.sd-profile-dl,.sd-profile-view{display:inline-flex;align-items:center;gap:7px;min-height:44px;font-weight:600;color:var(--burgundy);text-decoration:underline;text-decoration-color:rgba(162,30,54,.35);text-underline-offset:4px;text-decoration-thickness:1px}
.sd-profile-view{font-size:13.5px}
@media (hover:hover){.sd-profile-dl:hover,.sd-profile-view:hover{color:var(--burgundy-deep);text-decoration-color:currentColor}}
.sd-profile-dl svg,.sd-profile-view svg{flex-shrink:0}
.sd-profile-meta{font-size:13px;color:var(--gray);margin:0}
[dir="rtl"] .sd-profile-view svg,[dir="rtl"] .sd-assign-link svg{scale:-1 1}
/* closing card: outlined, so the burgundy banner below stays the main call to action */
.sd-profile-aside{border-top:none;padding-top:0}
.sd-profile-card{display:grid;grid-template-columns:auto 1fr;gap:14px 18px;align-items:start;max-width:900px;padding:20px;background:#fff;border:1px solid var(--border);border-inline-start:3px solid var(--burgundy);border-radius:4px}
.sd-profile-card-icon{width:48px;height:48px;border-radius:4px;background:var(--bg-soft);display:flex;align-items:center;justify-content:center}
.sd-profile-card-title{font-size:17px;font-weight:700;margin:0 0 4px;line-height:1.4}
.sd-profile-card-text{font-size:14.5px;line-height:var(--lh-body);color:var(--gray);margin:0}
.sd-profile-card .sd-profile-meta{margin-top:6px}
.sd-profile-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px}
.sd-profile-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border:1.5px solid var(--burgundy);border-radius:4px;background:#fff;color:var(--burgundy);font-size:14px;font-weight:600;text-decoration:none;transition:color var(--dur-fast),background-color var(--dur-fast)}
@media (hover:hover){.sd-profile-btn:hover{color:#fff;background:var(--burgundy)}}
@media (min-width:900px){.sd-profile-card{grid-template-columns:auto 1fr auto;align-items:center;padding:22px 26px}.sd-profile-actions{grid-column:auto;justify-content:flex-end}}
/* small screens: the (decorative) icon gives its width to the text, and the long download label gets a full-width button */
@media (max-width:519px){
  .sd-profile-card{grid-template-columns:1fr;padding:18px 16px}
  .sd-profile-card-icon{display:none}
  .sd-profile-btn{width:100%;justify-content:center;text-align:center;padding:10px 14px;line-height:1.4}
}

/* sub-blocks inside a section (data pathway, equipment, assignments) */
.sd-sub-h{font-size:17px;font-weight:700;margin:0 0 14px;line-height:1.4;color:var(--ink)}
@media (min-width:1024px){.sd-sub-h{font-size:19px}}
.sd-sub-h + .sd-intro{margin-bottom:18px}
.sd-tag-row{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.sd-tag{font-size:12.5px;font-weight:600;line-height:1.5;color:var(--charcoal);background:var(--bg-soft);border:1px solid var(--border);border-radius:999px;padding:3px 11px}

/* digital data pathway: stacked with downward arrows, one row from 1024px */
.sd-path-block{margin-top:40px}
.sd-path{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:26px;max-width:520px}
.sd-path-step{position:relative;display:flex;flex-direction:column;gap:2px;padding:12px 16px;background:#fff;border:1px solid var(--border);border-radius:4px;font-size:14.5px;font-weight:600;line-height:1.45;color:var(--ink)}
.sd-path-step:last-child{border-color:var(--burgundy)}
.sd-path-num{font-size:12.5px;font-weight:700;color:var(--burgundy)}
.sd-path-sub{font-size:13px;font-weight:500;color:var(--gray)}
.sd-path-step:not(:last-child)::after{content:"";position:absolute;left:50%;bottom:-18px;width:8px;height:8px;border-right:2px solid var(--burgundy);border-bottom:2px solid var(--burgundy);transform:translateX(-50%) rotate(45deg)}
@media (min-width:1024px){
  .sd-path{grid-template-columns:repeat(6,1fr);gap:30px;max-width:none}
  .sd-path-step:not(:last-child)::after{left:auto;bottom:auto;top:50%;inset-inline-end:-20px;transform:translateY(-50%) rotate(-45deg)}
  [dir="rtl"] .sd-path-step:not(:last-child)::after{transform:translateY(-50%) rotate(135deg)}
}
.sd-path-note{margin-top:18px;max-width:68ch}

/* equipment and technologies */
.sd-equip-block{margin-top:44px}
.sd-equip-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:16px}
@media (min-width:640px){.sd-equip-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1200px){.sd-equip-grid{grid-template-columns:repeat(4,1fr)}}
.sd-equip-card{padding:18px;background:#fff;border:1px solid var(--border);border-radius:4px}
.sd-equip-card h4{font-size:15.5px;font-weight:700;margin:0 0 6px;line-height:1.4}
.sd-equip-card p{font-size:14px;line-height:var(--lh-body);color:var(--gray);margin:0}
.sd-equip-named{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:16px;font-size:13.5px;color:var(--gray)}
.sd-equip-named[hidden]{display:none}

/* selected assignments */
.sd-assign-block{margin-top:44px}
/* overflow-anchor: the script keeps the "show fewer" button in place itself */
.sd-assign-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:16px;overflow-anchor:none}
@media (min-width:640px){.sd-assign-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1200px){.sd-assign-grid{grid-template-columns:repeat(4,1fr)}}
.sd-assign{display:flex;flex-direction:column;gap:8px;padding:18px;background:#fff;border:1px solid var(--border);border-top:2px solid var(--burgundy);border-radius:4px}
.sd-assign[hidden]{display:none}
.sd-assign-type{margin:0;font-size:12.5px;font-weight:700;line-height:1.5;color:var(--burgundy)}
.sd-assign-name{font-size:15.5px;font-weight:700;margin:0;line-height:1.45}
.sd-assign-meta{margin:2px 0 0;display:grid;gap:5px;font-size:13.5px;line-height:1.5}
.sd-assign-meta > div{display:flex;flex-wrap:wrap;gap:0 6px}
.sd-assign-meta dt{color:var(--gray)}
.sd-assign-meta dt::after{content:":"}
.sd-assign-meta dd{margin:0;color:var(--ink);font-weight:600}
.sd-assign-meta .sd-assign-area{flex-direction:column;margin-bottom:2px}
.sd-assign-meta .sd-assign-area dt::after{content:none}
.sd-assign-meta .sd-assign-area dd{font-size:24px;font-weight:700;line-height:1.3;font-variant-numeric:tabular-nums}
.sd-assign-area-note{display:block;font-size:13px;font-weight:500;color:var(--gray)}
.sd-assign-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin-top:auto;font-size:13.5px;font-weight:600;color:var(--burgundy);text-decoration:none}
@media (hover:hover){.sd-assign-link:hover{color:var(--burgundy-deep);text-decoration:underline;text-underline-offset:4px}}
.sd-assign-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:18px;padding:0 20px;border:1.5px solid var(--burgundy);border-radius:4px;background:#fff;color:var(--burgundy);font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:color var(--dur-fast),background-color var(--dur-fast)}
@media (hover:hover){.sd-assign-toggle:hover{color:#fff;background:var(--burgundy)}}
.sd-assign-toggle[hidden]{display:none}
