/* Service cards and their shared category navigator. */
.catalog-grid.flow-ready{display:block;position:relative;height:var(--flow-height);isolation:isolate}
.service-flow-stage{position:sticky;top:var(--flow-top,125px);height:var(--stage-height,570px);overflow:clip;border-radius:36px}
.flow-ready .catalog-card{position:absolute;left:50%;top:16px;width:min(660px,78%);min-height:400px;margin:0;padding:40px;border:1px solid #183e3510;border-radius:36px;box-shadow:0 2px 4px #183e3503,0 18px 50px #183e350c;transform:translate(calc(-50% + var(--card-x,0px)),var(--card-y,0px)) rotate(var(--card-angle,0deg));opacity:var(--card-opacity,1);transition:none;will-change:transform,opacity}
.flow-ready .catalog-card:nth-child(3n+1){background:#fffdf4}.flow-ready .catalog-card:nth-child(3n+2){background:#e7dfee}.flow-ready .catalog-card:nth-child(3n){background:#efddc7}
.flow-ready .catalog-card h3{font-size:clamp(1.55rem,2.3vw,2rem);line-height:1.2;letter-spacing:-.015em}.flow-ready .catalog-headline{font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.3}.flow-ready .catalog-headline strong{font-weight:500}.flow-ready .catalog-card>p:not(.catalog-headline){font-size:1.15rem;line-height:1.6;max-width:52ch}.flow-ready .catalog-card .text-link{padding-top:28px}.catalog-card h3:focus{outline:none}
.service-flow-controls{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 16px);display:flex;align-items:center;gap:12px;z-index:30;background:#faf8ef;border:1px solid #183e3520;border-radius:36px;padding:10px 12px;box-shadow:0 6px 24px #183e350d;white-space:normal;color:#183e35}
.service-flow-label{display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;min-width:0;line-height:1.2}.service-flow-counter{font-size:.83rem;letter-spacing:.025em;color:#52665d;font-variant-numeric:tabular-nums}
.service-flow-arrow{flex-shrink:0;width:40px;height:40px;border-radius:50%;border:1px solid #183e35;background:#183e35;color:#faf8ef;font-size:1.3rem;cursor:pointer;transition:background-color .2s,transform .2s}.service-flow-arrow:hover:not(:disabled){background:#2e594c;transform:translateY(-2px)}.service-flow-arrow:disabled{background:transparent;color:#183e35;opacity:.3;cursor:default}.service-flow-arrow:focus-visible{outline:2px solid #183e35;outline-offset:3px}
.service-category-picker{width:280px;min-width:0;max-width:340px}.service-flow-category{appearance:none;display:block;position:relative;width:100%;height:auto;box-sizing:border-box;padding:11px 36px 11px 16px;border:1px solid #183e3533;border-radius:22px 22px 22px 9px;background:#f4f2e4;color:#183e35;font-family:inherit;font-weight:600;font-size:.95rem;line-height:1.25;text-align:left;text-wrap:balance;cursor:pointer;transition:background-color .2s,border-color .2s}.service-flow-category:hover,.service-category-picker.is-expanded .service-flow-category{background:#eaf0d3;border-color:#183e3566}.service-flow-category:focus-visible{outline:2px solid #183e35;outline-offset:3px}.service-flow-category::after{content:'';position:absolute;right:15px;top:50%;width:8px;height:8px;border-right:1.8px solid currentColor;border-bottom:1.8px solid currentColor;transform:translateY(-70%) rotate(45deg);transition:transform .24s cubic-bezier(.22,.7,.25,1);pointer-events:none}.is-expanded .service-flow-category::after{transform:translateY(-20%) rotate(225deg)}
.service-category-menu{position:absolute;bottom:calc(100% + 10px);left:0;right:0;background:#faf8ef;border:1px solid #183e3526;border-radius:26px;padding:9px;box-shadow:0 14px 40px #183e3520;display:flex;flex-direction:column;gap:4px;max-height:min(380px,55vh);overflow-y:auto;text-align:left;transform-origin:bottom center}.service-category-menu[hidden]{display:none}.service-category-menu a{display:block;position:relative;padding:13px 36px 13px 16px;border-radius:17px;color:#183e35;font-size:1rem;line-height:1.3;text-decoration:none;transition:background-color .18s}.service-category-menu a:hover,.service-category-menu a:focus-visible{background:#eaf0d3;outline:2px solid #183e3530;outline-offset:-2px}.service-category-menu a[aria-current]{background:#183e35;color:#faf8ef}.service-category-menu a[aria-current]::after{content:'✓';position:absolute;right:16px;top:50%;transform:translateY(-50%)}
.catalog-grid:not(.flow-ready)>.service-flow-controls{grid-column:1/-1;position:relative;bottom:auto;left:auto;transform:none;margin:0 auto 20px}.catalog-grid:not(.flow-ready) .service-flow-arrow{display:none}.catalog-grid:not(.flow-ready) .service-category-menu{bottom:auto;top:calc(100% + 10px);transform-origin:top center}
@media(max-width:700px){.flow-ready .catalog-card{width:88%;padding:26px;min-height:0;border-radius:28px}.flow-ready .catalog-card h3{font-size:1.35rem}.flow-ready .catalog-headline{font-size:1.45rem}.flow-ready .catalog-card>p:not(.catalog-headline){font-size:1.05rem}.service-flow-stage{border-radius:22px}}
@media(max-width:520px){.service-flow-controls{padding:9px;gap:8px}.service-category-picker{width:190px;max-width:210px}.service-flow-category{font-size:.85rem;padding:10px 28px 10px 11px}.service-flow-category::after{right:11px}.service-flow-arrow{width:36px;height:36px}.service-category-menu a{font-size:.95rem;padding:12px 32px 12px 12px}}
@media(prefers-reduced-motion:reduce){.service-flow-category,.service-flow-category::after,.service-flow-arrow,.service-category-menu a{transition:none}}
html[data-motion='off'] .service-flow-category,html[data-motion='off'] .service-flow-category::after,html[data-motion='off'] .service-flow-arrow,html[data-motion='off'] .service-category-menu a{transition:none}
/* Centre the category with equal room for the decorative chevron. */
.service-flow-controls .service-flow-category{text-align:center;padding-inline:36px}
@media(max-width:520px){.service-flow-controls .service-flow-category{padding-inline:28px}}
/* The picker belongs to its section's palette. */
.catalog-group{--picker-surface:#edf0e4;--picker-ink:#183e35}
.group-1{--picker-surface:#e3daed}.group-2{--picker-surface:#e8edc6}.group-3{--picker-surface:#efdfd0}.group-4{--picker-surface:#dfe9e1}
.service-flow-controls{background:var(--picker-surface);color:var(--picker-ink);box-shadow:none;border-color:color-mix(in srgb,var(--picker-ink) 15%,transparent);width: min(500px,calc(100% - 16px))}
.service-flow-controls .service-flow-label{flex:1}
.service-flow-controls .service-category-picker{width:100%;max-width:none}
.service-flow-controls .service-flow-category{background:transparent;color:inherit;font-size:.875rem;white-space:nowrap;text-wrap:nowrap;padding-inline:28px;min-height:44px}
.service-category-name{display:block;white-space:nowrap}
.service-flow-controls .service-flow-counter{color:inherit;opacity:.75}
.service-category-menu{background:var(--picker-surface)}
.service-category-menu a{color:var(--picker-ink)}
.service-flow-category:hover,.service-category-picker.is-expanded .service-flow-category,.service-category-menu a:hover{background:color-mix(in srgb,var(--picker-ink) 7%,var(--picker-surface))}
.service-category-menu a[aria-current]{background:var(--picker-ink);color:var(--picker-surface)}
.service-flow-arrow{background:var(--picker-ink);color:var(--picker-surface)}
@media(max-width:520px){
 .service-flow-controls{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;gap:8px;padding:10px;border-radius:26px}
 .service-flow-controls .service-flow-label{display:contents}
 .service-flow-controls .service-category-picker{grid-column:1/-1;grid-row:1;width:100%;max-width:none}
 .service-flow-controls .service-flow-counter{grid-column:2;grid-row:2;text-align:center}
 .service-flow-controls .service-flow-arrow:first-child{grid-column:1;grid-row:2}
 .service-flow-controls .service-flow-arrow:last-child{grid-column:3;grid-row:2}
 .service-flow-controls .service-flow-category{font-size:.8125rem;padding-inline:26px}
}
/* Side arrows and a readable, single-line category label. */
.service-flow-controls{width:min(680px,calc(100% - 16px));display:flex;align-items:flex-start;gap:10px;padding:10px 12px}
.service-flow-controls .service-flow-label{display:flex;flex:1;min-width:0;gap:6px}
.service-flow-controls .service-flow-category{font-size:1rem;padding-inline:24px;line-height:1.25}
.service-flow-controls .service-flow-arrow{margin-top:2px;display:block}
@media(max-width:520px){
 .service-flow-controls{display:flex;padding:8px;gap:6px;border-radius:26px}
 .service-flow-controls .service-flow-label{display:flex;min-width:0}
 .service-flow-controls .service-flow-category{font-size:.9375rem;padding-inline:20px;min-height:44px}
 .service-flow-controls .service-flow-category::after{right:8px;width:6px;height:6px}
 .service-flow-controls .service-flow-arrow{width:36px;height:44px;margin-top:0}
}
@media(max-width:360px){.service-flow-controls .service-flow-category{padding-inline:14px}.service-flow-controls .service-flow-category::after{right:5px}}

/* The category and its card deck share one viewport and remain together as it flows. */
.catalog-group.category-flow-ready{height:var(--category-scroll-height);padding-block:24px;margin-top:0;scroll-margin-top:112px}
.category-flow-ready>.wrap{position:sticky;top:var(--category-top);height:var(--category-height);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:max-content max-content;gap:clamp(16px,2.5vh,24px);align-content:center}
.category-flow-ready .catalog-group-heading{min-height:0;height:auto;display:grid;grid-template-columns:42px minmax(0,1fr) clamp(140px,21vh,200px);align-items:center;gap:20px;margin:0;padding:0}
.category-flow-ready .catalog-index{margin:8px 0 0;align-self:start;font-size:1.4rem;letter-spacing:.04em;line-height:1;opacity:.45}
.category-flow-ready .catalog-group-heading h2{font-size:clamp(2rem,3vw,3rem);line-height:1.08;text-wrap:balance;max-width:24ch}
.category-flow-ready .catalog-group-heading p{font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.45;margin-top:12px;max-width:48ch}
.category-flow-ready .catalog-art{width:100%;height:clamp(140px,21vh,200px);min-height:0;margin:0;align-self:center;max-height:none}
.category-flow-ready .catalog-art svg{width:100%;height:100%;max-height:100%;object-fit:contain;transform:scale(1.32);transform-origin:50% 60%}
.category-flow-ready .catalog-grid.flow-ready{height:var(--flow-stage-height,1px);min-width:0;min-height:0}
.category-flow-ready .service-flow-stage{position:relative;top:auto;height:100%;border-radius:30px}
.category-flow-ready .flow-ready .catalog-card{top:8px;width:min(800px,82%);min-height:0;height:auto;padding:clamp(24px,2.5vw,32px);border-radius:30px;box-shadow:0 2px 4px #183e3503,0 16px 36px #183e350a}
.category-flow-ready .flow-ready .catalog-card h3{font-size:clamp(1.5rem,2vw,2rem);line-height:1.18;max-width:none}
.category-flow-ready .flow-ready .catalog-headline{font-size:clamp(1.2rem,1.6vw,1.5rem);line-height:1.4;margin-top:16px}
.category-flow-ready .flow-ready .catalog-card>p:not(.catalog-headline){font-size:clamp(1.05rem,1.45vw,1.25rem);line-height:1.5;margin-top:18px}
.category-flow-ready .flow-ready .catalog-card .text-link{margin-top:22px;padding-top:0;font-size:1rem}
.category-flow-ready .service-flow-controls{bottom:0;width:min(620px,82%);max-width:94%;padding:8px 10px}
.category-flow-ready .service-category-menu{max-height:min(380px,calc(var(--flow-card-height) - 12px))}
.category-flow-ready .service-flow-controls .service-flow-category{font-size:1rem;min-height:40px;padding-block:8px}
.category-flow-ready .service-category-name{white-space:normal;text-wrap:balance}
.category-flow-ready .service-flow-label{gap:4px}
.category-flow-ready .service-flow-counter{font-size:.85rem}
@media(min-width:850px) and (max-height:800px){
 .category-flow-ready .catalog-group-heading h2{font-size:clamp(1.8rem,2.8vw,2.5rem)}
 .category-flow-ready .catalog-group-heading p{font-size:1.05rem;margin-top:10px}
 .category-flow-ready .flow-ready .catalog-card{padding:25px}
 .category-flow-ready .flow-ready .catalog-card h3{font-size:1.6rem}
 .category-flow-ready .flow-ready .catalog-headline{font-size:1.25rem;margin-top:16px}
 .category-flow-ready .flow-ready .catalog-card>p:not(.catalog-headline){font-size:1.1rem;margin-top:14px}
}
@media(max-width:849px){
 .category-flow-ready>.wrap{gap:16px}
 .category-flow-ready .catalog-group-heading{display:grid;grid-template-columns:minmax(0,1fr) 135px;grid-template-rows:auto auto;column-gap:16px;row-gap:7px;height:auto;padding:0;align-items:start}
 .category-flow-ready .catalog-index{font-size:.9rem;grid-column:1;grid-row:1}
 .category-flow-ready .catalog-group-heading>div:not(.catalog-art){grid-column:1;grid-row:2}
 .category-flow-ready .catalog-group-heading h2{font-size:clamp(1.7rem,4vw,2.2rem);max-width:100%;line-height:1.12}
 .category-flow-ready .catalog-group-heading p{font-size:1rem;line-height:1.4;margin-top:9px;max-width:38ch}
 .category-flow-ready .catalog-art{grid-column:2;grid-row:1/3;width:135px;height:135px;max-height:none;margin:0;align-self:center}
 .category-flow-ready .flow-ready .catalog-card{width:92%;padding:23px;border-radius:26px}
 .category-flow-ready .flow-ready .catalog-card h3{font-size:1.4rem}
 .category-flow-ready .flow-ready .catalog-headline{font-size:1.15rem;line-height:1.4;margin-top:14px}
 .category-flow-ready .flow-ready .catalog-card>p:not(.catalog-headline){font-size:1.05rem;line-height:1.45;margin-top:12px}
 .category-flow-ready .flow-ready .catalog-card .text-link{margin-top:20px;padding-top:0}
 .category-flow-ready .service-flow-controls{width:92%;max-width:92%}
}
@media(max-width:480px){
 .category-flow-ready>.wrap{gap:12px;padding-inline:18px}
 .category-flow-ready .catalog-group-heading{grid-template-columns:minmax(0,1fr) 90px;column-gap:10px}
 .category-flow-ready .catalog-group-heading h2{font-size:1.5rem}
 .category-flow-ready .catalog-group-heading p{font-size:.9rem;line-height:1.35;margin-top:7px}
 .category-flow-ready .catalog-art{width:90px;height:100px}
 .category-flow-ready .service-flow-controls .service-flow-category{font-size:.875rem}
 .category-flow-ready .flow-ready .catalog-card{width:96%;padding:19px}
 .category-flow-ready .service-flow-controls{width:96%;max-width:96%}
 .category-flow-ready .flow-ready .catalog-card h3{font-size:1.3rem}
 .category-flow-ready .flow-ready .catalog-headline{font-size:1.1rem}
 .category-flow-ready .flow-ready .catalog-card>p:not(.catalog-headline){font-size:1rem}
}

/* A quiet arrival cue sits over the border without disturbing the flowing deck. */
.catalog-card{position:relative}
.catalog-card::after{content:'';position:absolute;inset:1px;z-index:1;border:2px solid #2f6856a8;border-radius:inherit;box-shadow:0 0 0 4px #426e5512,inset 0 0 22px #7598670c;opacity:0;pointer-events:none}
.catalog-card.service-arrival::after{opacity:1;animation:service-arrival-highlight 3.2s ease-in-out both}
@keyframes service-arrival-highlight{0%{opacity:0}20%,62%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.catalog-card.service-arrival::after{animation:none;opacity:1}}
html[data-motion='off'] .catalog-card.service-arrival::after{animation:none;opacity:1}
