/* Only the service directory: graphite, frosted metal, colour-coded tasks. */
.page--service-directory { --directory-text:#f2f5fc; --directory-muted:#b9c6da; --directory-border:#34435c; --directory-card:#121c2e; --directory-surface:#0f1727; --directory-accent:#8ee5ef; --directory-tint:#193542; }
.page--service-directory .page-hero { padding-bottom:26px; }
.page--service-directory .page-hero__panel { display:grid; grid-template-columns:1.15fr .85fr; align-items:center; gap:30px; overflow:hidden; padding:36px; background:radial-gradient(ellipse at 90% 5%,#27335980,transparent 65%),linear-gradient(130deg,#192238,#101625); border-color:#3b4664; box-shadow:0 22px 70px #00000026; }
.page--service-directory .page-hero__copy { min-width:0; }
.page--service-directory .page-hero__eyebrow { min-height:0; padding:8px 11px; line-height:1.5; font-size:10px; letter-spacing:.075em; border-radius:9px; }
.page--service-directory .page-hero__title { max-width:20ch; font-size:clamp(32px,3.4vw,49px); line-height:1.09; letter-spacing:-.035em; text-wrap:balance; overflow-wrap:normal; hyphens:none; }
.page--service-directory .page-hero__lead { max-width:560px; color:var(--directory-muted); font-size:17px; line-height:1.6; }
.page--service-directory .page-hero__actions { gap:10px; }
.page--service-directory .page-hero__actions .btn { padding:14px 19px; min-height:49px; font-size:14px; }
.directory-hero-art { position:relative; min-width:0; overflow:hidden; margin:0; border-radius:24px; border:1px solid #687ca64a; background:#101629; box-shadow:0 18px 48px #03081665,inset 0 1px #c1d6ff30; }
.directory-hero-art img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:contain; }
.directory-hero-art__caption { position:absolute; inset:auto 0 0; display:flex; align-items:center; justify-content:center; gap:9px; padding:30px 10px 14px; background:linear-gradient(transparent,#0a1226ed); color:#dfeaf8; font-size:11px; font-weight:600; letter-spacing:.025em; }
.directory-hero-art__caption > span:first-child { display:flex; color:#9fe8f2; }
.service-directory { padding-top:8px; padding-bottom:32px; }
.service-directory [hidden] { display:none !important; }
.service-directory__controls { margin-bottom:32px; padding:24px; border:1px solid var(--directory-border); border-radius:24px; background:linear-gradient(135deg,#1d2c413d,transparent 65%),var(--directory-surface); box-shadow:0 12px 32px #00000014; }
.service-directory__label { display:block; margin-bottom:14px; color:var(--directory-text); font-size:20px; font-weight:750; letter-spacing:-.02em; }
.service-directory__search-row { display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.service-directory__search-field { position:relative; flex:1; min-width:0; }
.service-directory__search-field > svg { position:absolute; left:17px; top:50%; transform:translateY(-50%); color:var(--directory-accent); pointer-events:none; }
.service-directory__search { display:block; width:100%; min-width:0; min-height:52px; padding:13px 15px 13px 50px; color:var(--directory-text); background:var(--directory-card); border:1px solid var(--directory-border); border-radius:14px; font:inherit; font-size:16px; box-shadow:inset 0 1px 4px #00000014; }
.service-directory__search::placeholder { color:var(--directory-muted); opacity:1; }
.service-directory__reset { flex-shrink:0; min-height:48px; font-size:13px; }
.service-directory__topics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px; }
.service-directory__topic { display:flex; align-items:center; gap:8px; min-height:58px; min-width:0; padding:10px 12px; color:var(--directory-text); background:var(--directory-card); border:1px solid var(--directory-border); border-radius:13px; box-shadow:inset 0 1px #cfe5ff08; font:inherit; font-size:13px; font-weight:550; line-height:1.4; text-align:left; cursor:pointer; transition:border-color .18s,background .18s,box-shadow .18s; }
.service-directory__topic > svg { flex:0 0 20px; color:var(--directory-muted); }
.service-directory__topic-label { min-width:0; flex:1; }
.service-directory__topic-count { flex-shrink:0; min-width:23px; padding:2px 4px; text-align:center; border-radius:6px; font-size:11px; font-weight:700; font-variant-numeric:tabular-nums; color:var(--directory-muted); background:#899eba14; }
.service-directory__topic:hover { border-color:var(--directory-accent); background:var(--directory-tint); }
.service-directory__topic[aria-pressed="true"] { color:#061f29; background:linear-gradient(125deg,#b0f3f5,#7fd2e7); border-color:#b0eef3; box-shadow:0 3px 14px #79d6e11a,inset 0 1px #ffffff80; }
.service-directory__topic[aria-pressed="true"] > svg { color:#145567; }
.service-directory__topic[aria-pressed="true"] .service-directory__topic-count { color:#123b46; background:#ffffff50; }
.service-directory__status { align-self:stretch; display:flex; align-items:center; justify-content:center; gap:8px; margin:0; padding:10px 9px; border:1px dashed #527587; border-radius:13px; color:var(--directory-accent); background:var(--directory-tint); font-size:12px; font-weight:650; font-variant-numeric:tabular-nums; white-space:nowrap; }
.service-directory__status::before { content:''; flex:0 0 6px; height:6px; border-radius:50%; background:currentColor; box-shadow:0 0 0 4px #71d7e316; }
.service-directory__group { --topic-color:#91ddf0; --topic-tint:#193341; }
.service-directory__group[data-directory-group="checks"] { --topic-color:#ab9ff3; --topic-tint:#2a254b; }
.service-directory__group[data-directory-group="customers"] { --topic-color:#efc583; --topic-tint:#3d3124; }
.service-directory__group[data-directory-group="accounting"] { --topic-color:#9de1c7; --topic-tint:#1d3935; }
.service-directory__group[data-directory-group="finance"] { --topic-color:#aac4fa; --topic-tint:#263353; }
.service-directory__group[data-directory-group="fleet"] { --topic-color:#e8b794; --topic-tint:#3c2d27; }
.service-directory__group[data-directory-group="insurance"] { --topic-color:#8ee0cd; --topic-tint:#1c3935; }
.service-directory__group[data-directory-group="customs"] { --topic-color:#c7b2f1; --topic-tint:#302743; }
.service-directory__group + .service-directory__group { margin-top:36px; }
.service-directory__group-head { display:flex; align-items:center; gap:12px; margin:0 0 16px; }
.service-directory__group-icon { display:flex; color:var(--topic-color); flex-shrink:0; }
.service-directory__heading { margin:0; color:var(--directory-text); font-size:25px; font-weight:750; line-height:1.25; letter-spacing:-.025em; }
.service-directory__group-count { display:grid; place-items:center; min-width:28px; height:28px; padding:0 7px; border:1px solid var(--directory-border); border-radius:9px; color:var(--directory-muted); font-size:12px; font-variant-numeric:tabular-nums; }
.service-directory__group-head::after { content:''; flex:1; height:1px; background:linear-gradient(90deg,var(--directory-border),transparent); margin-left:5px; }
.service-directory__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.service-directory__card { position:relative; display:flex; align-items:flex-start; gap:14px; min-width:0; padding:21px 42px 21px 20px; border:1px solid var(--directory-border); border-radius:20px; background:linear-gradient(145deg,#ffffff05,transparent 60%),var(--directory-card); box-shadow:0 5px 14px #00000014,inset 0 1px #ffffff04; transition:transform .2s,border-color .2s,box-shadow .2s; }
.service-directory__card:hover { transform:translateY(-3px); border-color:var(--topic-color); box-shadow:0 12px 26px #00000026,inset 0 1px #ffffff0c; }
.service-directory__card-icon { display:grid; place-items:center; flex:0 0 49px; height:49px; color:var(--topic-color); border:1px solid #cedbff21; border-radius:15px; background:linear-gradient(135deg,#ffffff13,transparent 65%),var(--topic-tint); box-shadow:inset 0 1px #ffffff26,0 5px 9px #00000022; }
.service-directory__card-copy { flex:1; min-width:0; }
.service-directory__card h3 { margin:0 0 7px; font-size:16px; font-weight:700; line-height:1.4; letter-spacing:-.015em; overflow-wrap:break-word; }
.service-directory__card h3 a { color:var(--directory-text); text-decoration:none; }
.service-directory__card h3 a::after { content:''; position:absolute; inset:0; border-radius:20px; z-index:1; }
.service-directory__card p { margin:0; color:var(--directory-muted); font-size:13px; line-height:1.6; overflow-wrap:break-word; }
.service-directory__card-open { position:absolute; right:11px; top:21px; display:grid; place-items:center; width:25px; height:25px; border:1px solid var(--directory-border); border-radius:50%; color:var(--directory-muted); background:#ffffff04; transition:color .2s,border-color .2s,background .2s; }
.service-directory__card:hover .service-directory__card-open { color:var(--topic-color); border-color:var(--topic-color); background:var(--topic-tint); }
.service-directory__card:focus-within,.service-directory__topic:focus-visible,.service-directory__search:focus-visible,.page--service-directory .faq-item__question:focus-visible { outline:3px solid var(--directory-accent); outline-offset:3px; }
.service-directory__empty { padding:24px; border:1px solid var(--directory-border); border-radius:20px; color:var(--directory-muted); background:var(--directory-surface); }
.page--service-directory .faq-heading { margin-bottom:22px; font-size:32px; letter-spacing:-.035em; }
.page--service-directory .faq-list { gap:12px; }
.page--service-directory .faq-item { border-radius:20px; border-color:var(--directory-border); background:var(--directory-card); box-shadow:0 4px 18px #0000000d; }
.page--service-directory .faq-item__question { display:grid; grid-template-columns:48px minmax(0,1fr) 32px; gap:18px; padding:19px 23px; color:var(--directory-text); font-size:18px; font-weight:650; letter-spacing:-.02em; line-height:1.5; }
.directory-faq-icon { display:grid; place-items:center; width:48px; height:48px; color:#bcadff; border:1px solid #a99bda40; border-radius:15px; background:linear-gradient(135deg,#ffffff12,transparent),#2a2746; box-shadow:inset 0 1px #ffffff20; }
.page--service-directory .faq-item__icon { display:grid; place-items:center; width:32px; height:32px; border:1px solid var(--directory-border); border-radius:50%; color:var(--directory-accent); transition:background .2s; }
.page--service-directory .faq-item__icon svg { display:none; }
.page--service-directory .faq-item__icon::before { content:'+'; font-size:25px; font-weight:400; line-height:1; }
.page--service-directory .faq-item.is-open { border-color:#839ac3; }
.page--service-directory .faq-item.is-open .faq-item__icon { transform:none; background:var(--directory-tint); }
.page--service-directory .faq-item.is-open .faq-item__icon::before { content:'−'; }
.page--service-directory .faq-item__answer { padding:0 73px 24px 89px; }
.page--service-directory .faq-item__answer p { color:var(--directory-muted); font-size:15px; line-height:1.75; max-width:960px; }
.theme-light.page--service-directory { --directory-text:#142238; --directory-muted:#4b5c72; --directory-border:#c8d3e2; --directory-card:#fff; --directory-surface:#f7f9fc; --directory-accent:#126679; --directory-tint:#e8f5f7; }
body.theme-light.page--service-directory .page-hero__panel { background:linear-gradient(115deg,#fff 25%,#eaf0fa); border-color:#cad6e6; box-shadow:0 18px 48px #33496310; }
.theme-light.page--service-directory .page-hero__eyebrow { color:#584196; border-color:#d6ccef; background:#f0eafa; }
.theme-light .service-directory__topic[aria-pressed="true"] { background:linear-gradient(125deg,#d6f3f7,#bce6ee); border-color:#5598a7; color:#103441; }
.theme-light .service-directory__status { border-color:#91b3bf; }
.theme-light .service-directory__controls { background:linear-gradient(135deg,#fff,#f2f7fd); box-shadow:0 8px 30px #34436209; }
.theme-light .service-directory__card { box-shadow:0 5px 14px #304a7010; }
.theme-light .service-directory__card:hover { box-shadow:0 12px 25px #304a701a; }
.theme-light .service-directory__group { --topic-color:#176d87; --topic-tint:#e4f1f7; }
.theme-light .service-directory__group[data-directory-group="checks"] { --topic-color:#6c4dab; --topic-tint:#eee9f9; }
.theme-light .service-directory__group[data-directory-group="customers"] { --topic-color:#98621d; --topic-tint:#fbefd9; }
.theme-light .service-directory__group[data-directory-group="accounting"] { --topic-color:#216c54; --topic-tint:#e3f1ec; }
.theme-light .service-directory__group[data-directory-group="finance"] { --topic-color:#3a60a0; --topic-tint:#e8effb; }
.theme-light .service-directory__group[data-directory-group="fleet"] { --topic-color:#925630; --topic-tint:#faece2; }
.theme-light .service-directory__group[data-directory-group="insurance"] { --topic-color:#156d62; --topic-tint:#e0f3ed; }
.theme-light .service-directory__group[data-directory-group="customs"] { --topic-color:#784a9a; --topic-tint:#f1e9f8; }
.theme-light .service-directory__card-icon { border-color:#ffffffc9; box-shadow:inset 0 1px #fff,0 4px 9px #273b5714; }
.theme-light .directory-faq-icon { color:#6b4ca8; border-color:#d8ccef; background:linear-gradient(135deg,#faf6ff,#e9dff7); }
@media (min-width:1600px) { .page--service-directory .page-hero__panel { padding:42px; } }
@media (max-width:1199px) {
 .service-directory__topics { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .service-directory__topic { padding:10px 9px; gap:6px; font-size:12px; }
 .service-directory__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .page--service-directory .page-hero__panel { gap:20px; padding:28px; grid-template-columns:1.2fr .8fr; }
 .page--service-directory .page-hero__title { font-size:37px; }
}
@media (max-width:759px) {
 .page--service-directory .page-hero__panel { grid-template-columns:minmax(0,1fr); gap:24px; padding:24px; }
 .page--service-directory .page-hero__title { font-size:clamp(30px,6.5vw,39px); letter-spacing:-.03em; text-wrap:initial; }
 .page--service-directory .page-hero__lead { font-size:16px; }
 .page--service-directory .page-hero__actions { display:flex; }
 .page--service-directory .page-hero__actions .btn { width:auto; flex:1 1 190px; }
 .page--service-directory .page-hero__actions > .partner-action { width:100%; flex:1 1 190px; }
 .page--service-directory .page-hero__actions > .partner-action .btn { width:100%; }
 .directory-hero-art { width:100%; max-width:430px; justify-self:center; border-radius:20px; }
 .service-directory__controls { padding:17px; border-radius:20px; margin-bottom:26px; }
 .service-directory__topics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
 .service-directory__topic { padding:9px; min-height:56px; gap:6px; font-size:12px; }
 .service-directory__topic > svg { flex-basis:18px; width:18px; height:18px; }
 .service-directory__topic-count { min-width:20px; font-size:10px; padding:2px 3px; }
 .service-directory__status { gap:7px; padding:9px 6px; font-size:11px; }
 .service-directory__search-row { flex-wrap:wrap; }
 .service-directory__search-field { flex-basis:100%; }
 .service-directory__search { font-size:16px; padding-left:40px; }
 .service-directory__search-field > svg { left:12px; width:19px; }
 .service-directory__grid { grid-template-columns:minmax(0,1fr); gap:10px; }
 .service-directory__card { gap:12px; padding:18px 36px 18px 16px; border-radius:18px; }
 .service-directory__card h3 { font-size:16px; }
 .service-directory__card-icon { flex-basis:44px; height:44px; border-radius:13px; }
 .service-directory__card-open { right:8px; top:18px; width:23px; height:23px; }
 .service-directory__card p { font-size:13px; }
 .service-directory__heading { font-size:22px; }
 .service-directory__group-head { gap:9px; }
 .service-directory__group-head::after { display:none; }
 .service-directory__group + .service-directory__group { margin-top:30px; }
 .page--service-directory .faq-heading { font-size:28px; }
 .page--service-directory .faq-item__question { grid-template-columns:38px minmax(0,1fr) 28px; gap:10px; padding:17px 14px; font-size:16px; }
 .directory-faq-icon { width:38px; height:38px; border-radius:12px; }
 .directory-faq-icon svg { width:24px; height:24px; }
 .page--service-directory .faq-item__icon { width:28px; height:28px; }
 .page--service-directory .faq-item__answer { padding:0 18px 21px; }
}
@media (max-width:359px) {
 .page--service-directory .page-hero__panel { padding:19px; }
 .service-directory__controls { padding:12px; }
 .service-directory__topic > svg { display:none; }
 .service-directory__card { gap:10px; padding-left:12px; }
 .service-directory__card-icon { flex-basis:38px; height:40px; }
 .service-directory__card-icon svg { width:25px; height:25px; }
}
@media (prefers-reduced-motion:reduce) { .page--service-directory *,.page--service-directory *::before,.page--service-directory *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; } .service-directory__card:hover { transform:none; } }
@media print { .service-directory__controls,.directory-hero-art { display:none !important; } .service-directory__card { break-inside:avoid; } }
