/* The service catalogue reuses the Core shell and current service-page content. */
.core-catalogue{--catalogue-ink:#192125;--catalogue-muted:#a7b4b4;--catalogue-paper:#f6f7f1;--catalogue-red:#bd192a}
.catalogue-hero{position:relative;isolation:isolate;min-height:650px;background:#192125;color:#fff;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.catalogue-landscape{position:absolute;inset:0;z-index:-2;overflow:hidden}
.catalogue-landscape img{width:100%;height:100%;object-fit:cover;object-position:50% 53%;filter:saturate(.7);animation:catalogue-landscape-in 1.8s ease-out both}
.catalogue-landscape:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,26,29,.97),rgba(16,26,29,.86) 35%,rgba(16,26,29,.24) 80%),linear-gradient(0deg,#192125,transparent 50%)}
.catalogue-hero-content{padding:70px 6vw 130px;max-width:860px;animation:catalogue-copy-in .8s ease-out both}
.core-catalogue .eyebrow{font-size:10px;letter-spacing:1.9px;text-transform:uppercase;font-weight:600;line-height:1.6}
.catalogue-hero .eyebrow{display:flex;align-items:center;gap:16px;color:#e3e9e6;margin:0 0 28px}
.catalogue-hero h1{font-size:clamp(64px,7.9vw,122px);font-weight:500;line-height:.98;letter-spacing:-.055em;margin:0 0 30px}
.catalogue-hero h1>span{display:block;color:#b6c1c1}
.catalogue-intro{max-width:540px;font-size:15px;line-height:1.85;color:#d2dbd7;margin:0 0 30px}
.catalogue-actions{display:flex;align-items:center;gap:30px;flex-wrap:wrap}
.catalogue-actions .button{font-size:12px;min-height:54px;gap:38px;margin:0;padding:15px 23px}
.catalogue-secondary{display:inline-flex;align-items:center;gap:16px;font-size:12px;min-height:48px;border-bottom:1px solid #7f918a80}
.catalogue-secondary svg,.catalogue-hero-index svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.4;flex:none;transition:transform .25s}
.catalogue-secondary:hover svg,.catalogue-hero-index a:hover svg{transform:translate(3px,-3px)}
.catalogue-hero-signature{position:absolute;right:6vw;top:41%;width:250px;border-top:1px solid #ffffff60;padding-top:20px;color:#e1e9e4}
.catalogue-hero-signature span{display:block;text-transform:uppercase;font-size:10px;letter-spacing:2px;margin-bottom:7px}
.catalogue-hero-signature strong{font-size:29px;font-weight:500;letter-spacing:-1px}
.catalogue-hero-signature i{display:block;width:40px;height:3px;background:#bd192a;margin-top:22px}
.catalogue-hero-index{position:absolute;bottom:0;left:6vw;right:6vw;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ffffff40}
.catalogue-hero-index a{padding:27px 22px;display:flex;align-items:center;gap:20px;font-size:12px;border-right:1px solid #ffffff25;transition:background .25s}
.catalogue-hero-index a:first-child{padding-left:0}.catalogue-hero-index a:last-child{border-right:0;padding-right:0}
.catalogue-hero-index a>span{font-size:10px;color:#a9b9b3;font-variant-numeric:tabular-nums}.catalogue-hero-index a svg{margin-left:auto}
.catalogue-hero-index a:hover{background:#ffffff08;color:#fff}
.catalogue-directory{padding:88px 6vw 90px;background:#f6f7f1}
.catalogue-heading{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:34px}
.catalogue-heading .eyebrow{color:#6c797a;margin:0 0 16px}
.core-catalogue .catalogue-heading h2{font-size:clamp(36px,4.4vw,68px);margin:0;letter-spacing:-.05em}
.catalogue-heading h2 span{color:#6f7d7f}
.catalogue-heading>p{font-size:12px;line-height:1.7;color:#627072;text-align:right;margin:0;letter-spacing:.2px}
.catalogue-heading strong{font-size:20px;font-weight:500;letter-spacing:-.6px;color:#192125}
.catalogue-mini-rule{display:block;width:32px;height:2px;background:#bd192a;margin:13px 0 0 auto}
.catalogue-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #cbd2cd;border-bottom:1px solid #cbd2cd;padding:17px 0;margin-bottom:34px}
.catalogue-toolbar[hidden]{display:none}
.catalogue-filters{display:flex;gap:8px;flex-wrap:wrap}
.catalogue-filters button{display:flex;align-items:center;gap:13px;border:1px solid transparent;border-radius:3px;background:transparent;color:#526165;padding:12px 15px;font:inherit;font-size:11px;line-height:1.5;min-height:44px;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.catalogue-filters button:hover{border-color:#a4afaa;color:#192125}.catalogue-filters button[aria-pressed=true]{background:#192125;color:#fff;border-color:#192125}
.catalogue-filters button span{font-size:9px;opacity:.65;font-variant-numeric:tabular-nums}
.catalogue-count{font-size:10px;color:#6d7a7d;margin:0;white-space:nowrap}
.catalogue-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:28px}
.catalogue-card{grid-column:span 4;min-width:0;background:#fff;border:1px solid #d8dfd8;transition:border-color .3s,box-shadow .3s}
.catalogue-card[hidden]{display:none}.catalogue-featured{grid-column:span 6}
.catalogue-card>a{display:flex;flex-direction:column;height:100%}
.catalogue-card-media{aspect-ratio:1.6;overflow:hidden;position:relative;background:#25393b}
.catalogue-featured .catalogue-card-media{aspect-ratio:1.85}
.catalogue-card-media:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,29,32,.45),transparent 45%);pointer-events:none}
.catalogue-card-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .6s;filter:saturate(.9)}
.catalogue-card-tag{position:absolute;bottom:20px;left:22px;right:70px;z-index:1;font-size:9px;line-height:1.5;letter-spacing:1.25px;text-transform:uppercase;color:#fff;text-shadow:0 1px 5px #101a1d}
.catalogue-card-arrow{position:absolute;right:20px;bottom:17px;z-index:1;width:36px;height:36px;border:1px solid #ffffff75;display:grid;place-items:center;border-radius:50%;color:#fff;background:#19212533;transition:background .3s,border-color .3s,transform .3s}
.catalogue-card-arrow svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.5}
.catalogue-card-copy{padding:26px 27px 24px;display:flex;flex-direction:column;flex:1}
.catalogue-card h3{font-size:clamp(23px,2.1vw,32px);font-weight:500;line-height:1.12;letter-spacing:-.8px;margin:0 0 16px;color:#192125;text-wrap:balance}
.catalogue-featured h3{font-size:clamp(28px,2.9vw,42px)}
.catalogue-card-copy p{font-size:13px;line-height:1.85;color:#5b6b6e;margin:0 0 24px;max-width:600px}
.catalogue-card-link{margin-top:auto;display:flex;gap:16px;align-items:center;text-transform:uppercase;font-size:9px;font-weight:600;letter-spacing:1.2px;color:#313e41}
.catalogue-card-link span{font-size:20px;color:#bd192a;line-height:1}
.catalogue-card:hover,.catalogue-card:focus-within{border-color:#9bab9e;box-shadow:0 12px 30px #1921250a}
.catalogue-card:hover img,.catalogue-card:focus-within img{transform:scale(1.035);filter:saturate(1)}
.catalogue-card:hover .catalogue-card-arrow,.catalogue-card:focus-within .catalogue-card-arrow{background:#bd192a;border-color:#bd192a;transform:rotate(6deg)}
.catalogue-grid.is-filtered .catalogue-featured{grid-column:span 4}.catalogue-grid.is-filtered .catalogue-featured .catalogue-card-media{aspect-ratio:1.6}.catalogue-grid.is-filtered .catalogue-featured h3{font-size:clamp(23px,2.1vw,32px)}
.catalogue-guide{padding:62px 6vw;display:grid;grid-template-columns:125px 1fr auto;align-items:center;gap:45px;background:#e8ede6;border-top:1px solid #d4ddd3;border-bottom:1px solid #d4ddd3}
.catalogue-guide-mark svg{width:102px;height:114px;stroke:#899d91;stroke-width:1}.catalogue-guide-mark path:nth-child(2){stroke:#bac8bd}.catalogue-guide-mark .catalogue-shield-check{stroke:#bd192a;stroke-width:2}
.catalogue-guide .eyebrow{color:#5a6f64;margin:0 0 16px}
.core-catalogue .catalogue-guide h2{font-size:clamp(28px,3.4vw,49px);margin:0 0 20px}.catalogue-guide h2 span{color:#65766c}
.catalogue-guide-copy{font-size:13px;line-height:1.8;color:#52645a;max-width:510px;margin:0}
.catalogue-guide .button{background:#192125;color:#fff;padding:17px 24px;gap:38px;font-size:12px;border:1px solid #192125}
.core-catalogue :is(a,button):focus-visible{outline:3px solid #bd192a;outline-offset:5px}
@keyframes catalogue-landscape-in{from{transform:scale(1.025)}to{transform:scale(1)}}
@keyframes catalogue-copy-in{from{transform:translateY(10px);opacity:.5}to{transform:translateY(0);opacity:1}}
@media(min-width:1700px){.catalogue-hero-content{max-width:980px}.catalogue-directory{padding-left:max(6vw,calc((100vw - 1560px)/2));padding-right:max(6vw,calc((100vw - 1560px)/2))}}
@media(max-width:1100px){.catalogue-hero-signature{right:5vw;width:180px}.catalogue-hero-signature strong{font-size:24px}.catalogue-hero-content{max-width:700px}.catalogue-hero-index a{font-size:10px;gap:14px;padding:25px 15px}.catalogue-directory{padding:65px 5vw}.catalogue-count{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.catalogue-card-copy{padding:22px}.catalogue-grid{gap:20px}.catalogue-guide{grid-template-columns:80px 1fr;gap:30px}.catalogue-guide-mark svg{width:75px}.catalogue-guide .button{grid-column:2;justify-self:start}.catalogue-guide>div:nth-child(2){grid-row:span 2}}
@media(max-width:800px){.catalogue-hero{min-height:610px}.catalogue-hero-content{padding:55px 6vw 125px;max-width:650px}.catalogue-hero-signature{display:none}.catalogue-hero-index a{gap:10px;font-size:10px;padding:22px 12px}.catalogue-hero-index a>span{display:none}.catalogue-card,.catalogue-featured,.catalogue-grid.is-filtered .catalogue-featured{grid-column:span 6}.catalogue-featured .catalogue-card-media{aspect-ratio:1.6}.catalogue-featured h3{font-size:27px}.catalogue-card h3,.catalogue-grid.is-filtered .catalogue-featured h3{font-size:27px}.catalogue-filters button{padding:10px 12px}.catalogue-heading>p{display:none}.catalogue-guide{padding:50px 6vw;grid-template-columns:1fr;gap:25px}.catalogue-guide-mark{display:none}.catalogue-guide>div:nth-child(2){grid-row:auto}.catalogue-guide .button{grid-column:1}}
@media(max-width:540px){.catalogue-hero{min-height:0}.catalogue-hero-content{padding:49px 6vw 40px}.catalogue-hero h1{font-size:clamp(58px,17vw,80px);margin-bottom:25px}.catalogue-hero .eyebrow{margin-bottom:25px;font-size:9px}.catalogue-intro{font-size:13px;line-height:1.85}.catalogue-actions{gap:12px}.catalogue-actions .button{gap:26px;padding:15px 17px;font-size:11px;min-height:50px}.catalogue-secondary{font-size:11px;gap:10px}.catalogue-landscape img{object-position:60% center}.catalogue-landscape:after{background:linear-gradient(90deg,#101a1ded,#101a1dbb),linear-gradient(0deg,#192125,transparent)}.catalogue-hero-index{position:relative;left:auto;right:auto;margin:0 6vw;grid-template-columns:1fr}.catalogue-hero-index a,.catalogue-hero-index a:first-child,.catalogue-hero-index a:last-child{padding:15px 0;font-size:11px;min-height:49px;border-right:0;border-bottom:1px solid #ffffff22}.catalogue-hero-index a:last-child{border-bottom:0}.catalogue-hero-index a>span{display:block}.catalogue-directory{padding:49px 6vw}.catalogue-heading{margin-bottom:25px}.core-catalogue .catalogue-heading h2{font-size:36px}.catalogue-heading .eyebrow{font-size:9px;margin-bottom:12px}.catalogue-toolbar{padding:14px 0;margin-bottom:25px}.catalogue-filters{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%}.catalogue-filters button{justify-content:space-between;padding:10px 8px;font-size:11px;gap:7px;min-height:52px;border-color:#dce2db;letter-spacing:0}.catalogue-card,.catalogue-featured,.catalogue-grid.is-filtered .catalogue-featured{grid-column:span 12}.catalogue-grid{gap:24px}.catalogue-card-copy{padding:23px}.catalogue-card h3{font-size:28px}.catalogue-card-copy p{font-size:12px;line-height:1.85;margin-bottom:22px}.catalogue-card-tag{left:18px;font-size:8px}.catalogue-card-arrow{right:18px}.core-catalogue .catalogue-guide h2{font-size:32px}.catalogue-guide-copy{font-size:12px}}
@media(prefers-reduced-motion:reduce){.catalogue-landscape img,.catalogue-hero-content{animation:none}.core-catalogue .service-pulse:after{animation:none;opacity:.6}.core-catalogue :is(.catalogue-card,.catalogue-card img,.catalogue-card-arrow,.catalogue-secondary svg,.catalogue-hero-index svg){transition:none}}

.core-catalogue .catalogue-hero a:focus-visible,.core-catalogue .header :is(a,summary):focus-visible,.core-catalogue .catalogue-guide .button:focus-visible{outline:3px solid #dbe7dc;outline-offset:5px;box-shadow:0 0 0 7px #192125}

/* Shared block/letter title motion; the fixed line and accessible name stay stable. */
.catalogue-hero h1>.catalogue-title-fixed{color:#fff}
.catalogue-hero h1>.home-title-rotator{display:grid;perspective:850px;overflow:hidden;isolation:isolate;line-height:1.08;padding:.1em .02em;margin:-.1em -.02em}
.catalogue-hero .home-title-rotator>span{font:inherit;letter-spacing:inherit}
@media(max-width:540px){.catalogue-hero h1{font-size:clamp(52px,16vw,80px)}}

/* Location states expand in normal document flow as coverage grows. */
.core-location-catalogue .catalogue-hero-content{padding-bottom:50px}
.catalogue-state-picker{margin:auto 6vw 0;border-top:1px solid #ffffff40;color:#eef3ef}
.catalogue-state-picker summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:78px;padding:22px 0;cursor:pointer;font-size:13px}
.catalogue-state-picker summary::-webkit-details-marker{display:none}
.catalogue-state-meta{display:flex;align-items:center;gap:24px;color:#bac9c1;font-size:11px}
.catalogue-state-meta svg{width:23px;height:23px;stroke:currentColor;stroke-width:1.3;transition:transform .25s}
.catalogue-state-picker[open] .catalogue-state-meta svg{transform:rotate(45deg)}
.catalogue-state-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0 30px;padding:0 0 24px}
.catalogue-state-options a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:54px;padding:15px 0;font-size:12px;border-top:1px solid #ffffff24;color:#dce6df;transition:color .2s}
.catalogue-state-options a:hover{color:#fff}
.catalogue-state-options svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.4;flex:none}
.catalogue-state-picker summary:focus-visible{outline:3px solid #dbe7dc;outline-offset:4px}
@media(max-width:540px){.core-location-catalogue .catalogue-hero-content{padding-bottom:30px}.catalogue-state-picker summary{min-height:66px;font-size:12px;padding:18px 0}.catalogue-state-meta{font-size:10px;gap:16px}.catalogue-state-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;padding-bottom:18px}.catalogue-state-options a{font-size:11px;min-height:52px;overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.catalogue-state-meta svg,.catalogue-state-options a{transition:none}}

/* Isolate the state disclosure from the legacy FAQ's generic summary-span rules. */
.catalogue-state-picker>summary>span,.catalogue-state-picker[open]>summary>span{flex:0 1 auto;font-size:inherit;font-weight:inherit;color:inherit;transform:none;transition:none}
.catalogue-state-picker>summary>.catalogue-state-meta{flex:none;font-size:11px;color:#bac9c1}
@media(max-width:540px){.catalogue-state-picker>summary>.catalogue-state-meta{font-size:10px}}
