.catalogue-hero{background:linear-gradient(180deg,#fff 0%,var(--mist) 100%);border-bottom:1px solid var(--stone)}
.catalogue-hero>.shell{padding:76px 56px 64px}
.catalogue-hero h1{font-size:clamp(42px,6vw,72px);line-height:1.06;letter-spacing:-.015em;max-width:900px;margin:0 0 24px}
.catalogue-hero .lede{max-width:820px}
.service-note{max-width:760px;color:var(--muted);margin:18px 0 0}
.service-directory{background:#fff}
.service-jump{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 34px;margin-top:28px;border-top:1px solid var(--line)}
.service-jump a{display:block;padding:15px 0;border-bottom:1px solid var(--line);font-weight:800;text-decoration:none}
.service-jump a:hover{text-decoration:underline}
.family-head{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr);gap:52px;align-items:start;margin-bottom:32px}
.family-head .eyebrow{margin-bottom:8px}
.family-head h2{margin-bottom:0}
.family-intro{font-size:19px;line-height:1.55;color:#31404A;max-width:650px;margin:0}
.service-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 34px;border-top:1px solid var(--line)}
.service-entry{padding:24px 0 26px;border-bottom:1px solid var(--line);min-width:0}
.service-entry h3{margin:0 0 9px;font-size:21px;line-height:1.25}

.service-entry h3 a{text-decoration:none}
.service-entry h3 a:hover{text-decoration:underline}
.service-entry h3 a:focus-visible{outline:4px solid var(--claret);outline-offset:3px}
.service-entry p{margin:0;max-width:64ch;color:#3B4A54}
.service-entry .service-for{font-size:14px;color:var(--muted);margin:0 0 8px}
.back-top{margin:24px 0 0;font-size:14px;font-weight:800}
.back-top a{text-decoration:none}
.back-top a:hover{text-decoration:underline}
.nav-cta{border:2px solid #fff!important;padding:8px 12px!important;border-radius:2px}
.footer-identity{margin-top:8px!important}
@media(max-width:860px){.family-head{grid-template-columns:1fr;gap:12px}.service-list{grid-template-columns:1fr}.service-jump{grid-template-columns:1fr}}
@media(max-width:760px){.catalogue-hero>.shell{padding:48px 24px 50px}.catalogue-hero h1{font-size:clamp(38px,10vw,50px)}.family-intro{font-size:18px}.service-entry{padding:21px 0 23px}.service-entry h3{font-size:20px}.nav-cta{width:auto!important;text-align:left!important}}

.catalogue-breadcrumbs{font-size:14px;font-weight:800;color:var(--muted);margin:0 0 26px}
.catalogue-breadcrumbs a{text-decoration:none}.catalogue-breadcrumbs a:hover{text-decoration:underline}
.area-directory{border-top:1px solid var(--line);margin-top:30px}
.area-entry{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr);gap:52px;padding:28px 0;border-bottom:1px solid var(--line);align-items:start}
.area-entry h3{font-size:25px;margin:0}.area-entry h3 a{text-decoration:none}.area-entry h3 a:hover{text-decoration:underline}
.area-entry p{margin:0 0 12px;color:#3B4A54;max-width:64ch}
.area-entry .eyebrow{color:var(--claret);margin-bottom:8px}
@media(min-width:861px){
  .area-catalogue .service-list{display:block}
  .area-catalogue .service-entry{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);grid-template-rows:auto 1fr;column-gap:56px;row-gap:4px;padding:26px 0}
  .area-catalogue .service-entry h3{grid-column:1;grid-row:1;margin:0;font-size:21px;line-height:1.25}
  .area-catalogue .service-entry .service-for{grid-column:1;grid-row:2;margin:4px 0 0}
  .area-catalogue .service-entry>p:not(.service-for){grid-column:2;grid-row:1 / span 2;align-self:start;margin:0;font-size:17px;line-height:1.6}
}
@media(max-width:860px){
  .area-entry{grid-template-columns:1fr;gap:8px}
  .area-catalogue .service-entry{display:block}
}


/* Catalogue colour rhythm */
.area-entry:nth-child(odd){background:#fff}
.area-entry:nth-child(even){background:var(--pale)}

@media(min-width:761px){
  .area-directory{margin-left:-56px;margin-right:-56px}
  .area-entry{padding-left:56px;padding-right:56px}
}

.area-catalogue-page .catalogue-hero{
  background:var(--pale);
}
.area-catalogue-page .area-catalogue{
  background:#fff;
}
.area-catalogue-page .area-catalogue .service-entry{
  background:#fff;
}

@media(max-width:760px){
  .area-directory{margin-left:-24px;margin-right:-24px}
  .area-entry{padding-left:24px;padding-right:24px}
}


/* Real clickable catalogue cards and service rows */
.area-entry,.service-entry{position:relative}
.area-entry{padding:0}
.area-card-link{
  display:grid;
  grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr);
  gap:52px;
  padding:28px 56px;
  color:inherit;
  text-decoration:none;
}
.area-card-link h3{font-size:25px;margin:0;color:var(--carol-blue)}
.area-card-link p{margin:0 0 12px;color:#3B4A54;max-width:64ch}
.area-card-link .eyebrow{color:var(--claret);margin-bottom:8px}
.service-card-link{
  display:block;
  color:inherit;
  text-decoration:none;
}
.area-cue,.service-cue{
  display:inline-block;
  margin-top:12px;
  font-weight:800;
  color:var(--carol-blue);
  border-bottom:2px solid var(--carol-blue);
  line-height:1.35;
}
.area-card-link:focus-visible{
  box-shadow:inset 4px 0 0 var(--claret);
}
.area-card-link:focus-visible,
.service-card-link:focus-visible{
  outline:4px solid var(--claret);
  outline-offset:-4px;
}
@media (hover:hover) and (pointer:fine){
  .area-card-link:hover{
    box-shadow:inset 4px 0 0 var(--claret);
  }
  .service-card-link:hover{
    background:var(--pale);
  }
}
@media(min-width:861px){
  .area-catalogue .service-entry{display:block;padding:0}
  .area-catalogue .service-card-link{
    display:grid;
    grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);
    grid-template-rows:auto 1fr auto;
    column-gap:56px;
    row-gap:4px;
    padding:26px 0;
  }
  .area-catalogue .service-card-link h3{grid-column:1;grid-row:1;margin:0;font-size:21px;line-height:1.25}
  .area-catalogue .service-card-link .service-for{grid-column:1;grid-row:2;margin:4px 0 0}
  .area-catalogue .service-card-link>p:not(.service-for){grid-column:2;grid-row:1 / span 2;align-self:start;margin:0;font-size:17px;line-height:1.6}
  .area-catalogue .service-cue{grid-column:2;grid-row:3;justify-self:start}
}
@media(max-width:860px){
  .area-entry{display:block;padding:0}
  .area-card-link{grid-template-columns:1fr;gap:8px;padding:28px 24px}
  .area-catalogue .service-entry{display:block;padding:0}
  .area-catalogue .service-card-link{display:block;padding:21px 0 23px}
  .service-cue{margin-top:16px}
}


/* Touch interaction cleanup */
@media (hover:none) and (pointer:coarse){
  .area-card-link,
  .service-card-link{
    -webkit-tap-highlight-color:rgba(8,29,45,.08);
  }
  .area-card-link:focus-visible,
  .service-card-link:focus-visible{
    outline:none;
    box-shadow:none;
  }
  .area-card-link:active,
  .service-card-link:active{
    background:var(--pale);
  }
}

/* HOC-017 bounded mobile/product-page layout correction — 2026-09-15 */
@media (min-width:761px){
  body.hoc-017-layout-fix .product-hero-identity{
    align-self:stretch;
    display:flex;
    flex-direction:column;
  }
  body.hoc-017-layout-fix .product-hero-identity .product-audience{
    margin-top:auto;
    margin-bottom:0;
    padding-top:28px;
  }
}
body.hoc-017-layout-fix .generic-deliverables>.product-card:last-child{
  grid-column:auto;
  max-width:none;
}
@media(max-width:760px){
  body.hoc-017-layout-fix .generic-deliverables{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
  }
  body.hoc-017-layout-fix .generic-deliverables>.product-card:last-child{
    grid-column:auto;
    max-width:none;
  }
}
@media(max-width:420px){
  body.hoc-017-layout-fix .generic-deliverables{
    gap:12px;
  }
}

/* HOC-016 bounded responsive layout correction — 2026-09-15 */
@media(max-width:1100px){
  body.hoc-016-page .product-audience{margin-top:22px}
  body.hoc-016-page .deliverable-groups{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}
  body.hoc-016-page .deliverable-groups article,
  body.hoc-016-page .deliverable-groups article:last-child{grid-column:auto!important;width:auto!important;max-width:none!important}
}
@media(max-width:420px){
  body.hoc-016-page .deliverable-groups{gap:14px!important}
  body.hoc-016-page .deliverable-groups .product-card{padding:16px}
  body.hoc-016-page .deliverable-groups h3{font-size:18px;line-height:1.3}
}
@media(max-width:340px){
  body.hoc-016-page .deliverable-groups{grid-template-columns:minmax(0,1fr)!important}
}

/* HOC-018 uses the common product-page stylesheet contract. */
body.hoc-018-page .deliverable-groups article:last-child{
  grid-column:auto;
  max-width:none;
}

/* Customer decision routes shared by catalogue, product and worked-example pages. */
.customer-pathways{background:#fff}
.customer-pathways .pathway-intro{max-width:820px;font-size:19px;line-height:1.6;color:#31404A;margin:0 0 30px}
.customer-pathway-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:30px}
.customer-pathway-card{min-width:0;padding:26px 24px;border:1px solid var(--stone);border-top:4px solid var(--carol-blue);background:#fff}
.customer-pathway-card h3{font-size:22px;line-height:1.3;margin:8px 0 12px}
.customer-pathway-card p{color:#31404A}
.customer-pathway-stage{display:block;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--claret)}
.customer-pathway-links{margin:18px 0 0;padding-top:16px;border-top:1px solid var(--line);font-size:15px;line-height:1.6}
.customer-pathway-links a{font-weight:800;text-decoration-thickness:2px;text-underline-offset:3px}
.customer-pathway-note{max-width:860px;margin:26px 0 0;padding:18px 20px;border-left:4px solid var(--claret);background:var(--pale);color:#31404A}
.commercial-route{border-top:1px solid var(--stone);background:var(--pale)}
.commercial-route .route-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:26px}
.commercial-route .route-step{min-width:0;background:#fff;border:1px solid var(--stone);padding:22px 22px 24px}
.commercial-route .route-step strong{display:block;color:var(--carol-blue);font-size:18px;margin-bottom:7px}
.commercial-route .route-step p{margin:0 0 12px;color:#31404A}
.commercial-route .route-step a{font-weight:800}
.next-service-panel{max-width:940px;margin:0 auto;padding:28px 30px;border-left:4px solid var(--claret);background:var(--pale)}
.next-service-panel h2{margin-bottom:14px}
.next-service-panel p{max-width:780px;color:#31404A}
.next-service-links{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:18px}
.next-service-links a{font-weight:800;text-decoration-thickness:2px;text-underline-offset:3px}
@media(max-width:860px){
  .customer-pathway-grid,.commercial-route .route-flow{grid-template-columns:1fr}
}
@media(max-width:760px){
  .customer-pathways .pathway-intro{font-size:18px}
  .customer-pathway-card,.commercial-route .route-step,.next-service-panel{padding:22px 20px}
}

/* Canonical compact product contract — all product pages must recompose rather than compress. */
@media(max-width:1100px){
  body.canonical-product-page .product-hero>.shell{
    grid-template-columns:minmax(0,1fr)!important;
    row-gap:28px;
  }
  body.canonical-product-page .recognition-grid,
  body.canonical-product-page .deliverable-groups,
  body.canonical-product-page .generic-deliverables{
    grid-template-columns:minmax(0,1fr)!important;
    gap:16px;
  }
  body.canonical-product-page .recognition-grid>article,
  body.canonical-product-page .deliverable-groups>article,
  body.canonical-product-page .deliverable-groups>article:last-child,
  body.canonical-product-page .generic-deliverables>article,
  body.canonical-product-page .generic-deliverables>article:last-child{
    grid-column:auto!important;
    width:auto!important;
    max-width:none!important;
  }
  body.canonical-product-page .cta-panel{
    grid-template-columns:minmax(0,1fr)!important;
    gap:18px;
    align-items:start;
  }
}
