/* Catalogue components use the shared website palette, fonts and page shell. */
.catalogue-page{background:var(--navy-primary);color:var(--slate-300)}
.cat-shell{width:100%;max-width:var(--container);padding:0 32px;margin:auto}
.cat-hero{padding:36px 0 64px;background:radial-gradient(ellipse at top, var(--navy-light),var(--navy-primary) 75%)}
.cat-hero-grid{display:grid;grid-template-columns:1fr;gap:36px;text-align:center}
.cat-hero .section-header{margin-bottom:0}.cat-hero .section-header h1{max-width:850px;margin:12px auto 0}.cat-hero .section-header p{max-width:760px}
.cat-hero-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;margin-top:28px}
.cat-hero-art{position:relative;max-width:950px;width:100%;margin:0 auto;overflow:hidden;border:1px solid var(--gold-border);border-radius:20px;background:var(--navy-deep)}
.cat-hero-art img{width:100%;height:320px;object-fit:cover;filter:sepia(.45) saturate(.65);opacity:.88}
.cat-art-note{position:absolute;bottom:20px;left:24px;padding:16px 22px;border:1px solid var(--gold-border);background:rgba(4,18,32,.94);border-radius:12px;text-align:left}
.cat-art-note strong{display:block;color:var(--gold-primary);font:700 30px var(--font-heading)}.cat-art-note span{font:10px var(--font-mono);letter-spacing:2px;text-transform:uppercase;color:var(--slate-300)}
.cat-eyebrow{display:block;color:var(--gold-primary);font:10px var(--font-mono);letter-spacing:3px;text-transform:uppercase}
.cat-metrics-grid{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;border-top:1px solid var(--gold-border);border-bottom:1px solid var(--gold-border)}
.cat-metric{padding:28px 15px}.cat-metric strong{display:block;font:800 38px var(--font-heading);color:var(--gold-primary)}.cat-metric span{display:block;font:9px var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--slate-400);margin-top:6px}
.cat-intro{padding:64px 0 32px}.cat-intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.cat-intro-card{position:relative;padding:32px 43% 32px 28px;min-height:260px;overflow:hidden;background:var(--navy-card);border:1px solid var(--gold-border);border-radius:var(--radius-lg)}
.cat-intro-card h2{font-size:28px;margin:14px 0}.cat-intro-card p{font-size:14px;color:var(--slate-400)}.cat-intro-card img{position:absolute;right:0;top:0;width:39%;height:100%;object-fit:cover;filter:sepia(.5) saturate(.6);opacity:.85}
.cat-controls{position:sticky;top:var(--nav-h);z-index:40;padding:24px 0 14px;background:rgba(8,28,52,.98);border-bottom:1px solid var(--gold-border);scroll-margin-top:var(--nav-h)}
.cat-search-row{display:grid;grid-template-columns:1fr auto;gap:16px}.cat-search{position:relative}.cat-search input{width:100%;height:54px;background:var(--navy-deep);border:1px solid var(--gold-border);border-radius:10px;padding:0 45px 0 18px;color:#fff;font-size:14px}.cat-search span{position:absolute;right:18px;top:10px;color:var(--gold-primary);font-size:22px}.cat-count{display:flex;align-items:center;justify-content:center;padding:12px 20px;color:var(--gold-primary);font:11px var(--font-mono);border:1px solid var(--gold-border);border-radius:10px}
.cat-letters{display:flex;gap:7px;overflow-x:auto;padding:12px 0 5px;scrollbar-width:thin}.cat-letter{flex:0 0 35px;height:35px;border:1px solid var(--gold-border);border-radius:7px;background:var(--navy-light);color:var(--slate-300);font:600 12px var(--font-mono);cursor:pointer}.cat-letter:hover,.cat-letter.active{color:var(--navy-deep);background:var(--gold-primary);border-color:var(--gold-primary)}
.cat-section{padding:52px 0;border-bottom:1px solid var(--gold-border);scroll-margin-top:220px}.cat-section-head{display:grid;grid-template-columns:65px 1fr auto;gap:24px;margin-bottom:26px;align-items:start}.cat-section-letter{font:700 54px/1 var(--font-heading);color:var(--gold-primary)}.cat-section-title h2{font-size:30px;margin-bottom:12px}.cat-section-title p{color:var(--slate-400);font-size:14px;max-width:730px}.cat-range{font:10px var(--font-mono);letter-spacing:1px;color:var(--gold-primary);padding-top:8px;white-space:nowrap}
.cat-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.cat-service{position:relative;min-height:175px;padding:26px 24px 58px;border:1px solid var(--gold-border);border-radius:var(--radius-lg);background:var(--navy-card);transition:transform .2s,border-color .2s}.cat-service:hover{transform:translateY(-3px);border-color:var(--gold-primary)}.cat-service.selected{border-color:var(--gold-primary);background:rgba(198,168,93,.09)}.cat-service-id{font:10px var(--font-mono);letter-spacing:1.5px;color:var(--gold-primary)}.cat-service h3{font-size:21px;line-height:1.25;margin:14px 0 0}.cat-service button{position:absolute;bottom:20px;left:24px;padding:0;background:none;border:0;color:var(--gold-primary);font:600 12px var(--font-body);cursor:pointer}.cat-service button::before{content:'＋';margin-right:7px}.cat-service.selected button::before{content:'✓'}
.cat-empty{display:none;text-align:center;padding:64px 24px}.cat-empty.show{display:block}.cat-empty p{margin-top:14px;color:var(--slate-400)}
.cat-selection{position:fixed;right:24px;bottom:24px;z-index:900;width:min(390px,calc(100% - 48px));border:1px solid var(--gold-border);border-radius:14px;background:var(--navy-deep);box-shadow:var(--shadow-card);transform:translateY(calc(100% + 60px));transition:transform .25s}.cat-selection.show{transform:translateY(0)}.cat-selection-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px}.cat-selection-summary strong{font:700 19px var(--font-heading);color:#fff}.cat-selection-summary span{display:block;font-size:11px;color:var(--slate-400);margin-top:5px}.cat-selection-summary button{border:0;border-radius:8px;padding:11px 16px;background:var(--gold-primary);color:var(--navy-deep);font-weight:700;cursor:pointer}
.cat-dialog{width:min(760px,calc(100% - 28px));max-height:90dvh;overflow:auto;margin:auto;padding:0;border:1px solid var(--gold-border);border-radius:20px;background:var(--navy-primary);color:var(--slate-300)}.cat-dialog::backdrop{background:rgba(4,18,32,.85);backdrop-filter:blur(5px)}.cat-dialog-head{display:flex;justify-content:space-between;gap:20px;padding:28px 32px;border-bottom:1px solid var(--gold-border);background:var(--navy-light)}.cat-dialog-head h2{font-size:30px;margin-top:10px}.cat-dialog-close{width:38px;height:38px;flex:none;background:transparent;border:1px solid var(--gold-border);border-radius:8px;color:#fff;font-size:24px;cursor:pointer}.cat-form{padding:28px 32px}.cat-selected-list{display:flex;flex-wrap:wrap;gap:8px;max-height:120px;overflow:auto;margin-bottom:22px}.cat-chip{padding:7px 10px;border:1px solid var(--gold-border);border-radius:7px;background:var(--gold-dim);color:var(--gold-light);font-size:11px}.cat-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.cat-field{display:grid;gap:8px;min-width:0}.cat-field-full{grid-column:1/-1}.cat-field label{font:10px var(--font-mono);letter-spacing:1px;color:var(--gold-primary);text-transform:uppercase}.cat-field input,.cat-field textarea,.cat-field select{width:100%;padding:12px 14px;border:1px solid var(--gold-border);border-radius:8px;background:var(--navy-deep);color:#fff;font-size:14px}.cat-field textarea{min-height:110px;resize:vertical}.cat-form-actions{display:flex;align-items:center;gap:20px;margin-top:24px}.cat-form-note{flex:1;font-size:11px;color:var(--slate-400)}.cat-form-note a{color:var(--gold-primary)}.cat-status{font-size:13px;margin-top:16px}.cat-status.error{color:#fca5a5}.cat-status.success{color:#86efac}.cat-noscript{padding:24px;text-align:center}.catalogue-page .footer{margin-top:70px}
@media(max-width:980px){.cat-intro-grid{grid-template-columns:1fr}.cat-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cat-section-head{grid-template-columns:55px 1fr}.cat-range{grid-column:2}.cat-section-title h2{font-size:28px}}
@media(max-width:680px){.cat-shell{padding:0 20px}.cat-hero{padding-top:112px}.cat-hero-art img{height:240px}.cat-metric{padding:22px 5px}.cat-metric strong{font-size:30px}.cat-metric span{font-size:8px;letter-spacing:.6px}.cat-intro-card{padding:26px 24px 190px}.cat-intro-card img{top:auto;bottom:0;width:100%;height:165px}.cat-search-row{grid-template-columns:1fr}.cat-count{padding:9px}.cat-service-grid{grid-template-columns:1fr}.cat-section-head{gap:14px;grid-template-columns:40px 1fr}.cat-section-letter{font-size:42px}.cat-section-title h2{font-size:25px}.cat-dialog-head,.cat-form{padding:22px}.cat-form-grid{grid-template-columns:1fr}.cat-field-full{grid-column:auto}.cat-form-actions{flex-direction:column;align-items:stretch}.cat-selection{bottom:16px;right:16px;width:calc(100% - 32px)}}
@media(prefers-reduced-motion:reduce){.cat-selection,.cat-service{transition:none}}
@media(max-width:680px){.cat-hero{padding-top:28px}}
.cat-letters{flex-wrap:wrap;overflow-x:visible;gap:8px}
.cat-search-section{padding:24px 0 8px;scroll-margin-top:calc(var(--nav-h) + 12px)}
.cat-controls{padding:6px 0;background:var(--navy-primary)}
.cat-letters{gap:5px;padding:4px 0;justify-content:center}
.cat-letter{flex:0 0 26px;width:26px;height:26px;border-radius:5px;font-size:10px}
.cat-service{scroll-margin-top:calc(var(--nav-h) + 110px)}
.cat-letters{scroll-margin-top:calc(var(--nav-h) + 12px)}
.cat-related-link,.cat-permalink{display:block;font-size:12px;color:var(--gold-primary);margin-top:14px}
.cat-permalink{color:var(--slate-400);font-size:11px}
.cat-breadcrumb{font-size:12px;margin-bottom:22px;color:var(--slate-400)}.cat-breadcrumb a{color:var(--gold-primary)}
.cat-related-pages{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 22px;margin-top:24px;font-size:12px}.cat-related-pages a{color:var(--gold-primary)}
.cat-service-grid{align-items:start}.cat-service{padding:0;min-height:0}.cat-service summary{padding:26px 24px 22px;min-height:175px;cursor:pointer;list-style:none}.cat-service summary::-webkit-details-marker{display:none}.cat-service summary:focus-visible{outline-offset:4px}.cat-service-toggle{display:flex;justify-content:space-between;align-items:center;color:var(--gold-primary);font:600 12px var(--font-body);margin-top:20px}.cat-read-less{display:none}.cat-service[open]{border-color:var(--gold-primary)}.cat-service[open] .cat-read-less{display:inline}.cat-service[open] .cat-read-more{display:none}.cat-service[open] .cat-detail-icon{transform:rotate(45deg)}.cat-service-description{padding:0 24px 24px;color:var(--slate-300);font-size:14px;line-height:1.75}.cat-service-description p{border-top:1px solid var(--gold-border);padding-top:18px}
