/* Original illustration and composition pass. Colours inherit the approved palette. */
.site-header{min-height:110px}
.hero{padding-top:56px}
.technical-illustration{display:block;width:100%;height:auto;overflow:visible;color:var(--rust)}
.diagram-labels{font-family:'Source Sans 3',sans-serif;font-size:10px;letter-spacing:1.7px}
.diagram-guides{color:var(--ink);opacity:.16;fill:none;stroke:currentColor;stroke-width:1}
.hero-figure{min-width:0}
.hero-figure figcaption{line-height:1.5}
.home-page .hero-figure{padding:0 0 0 32px}
.order-links{opacity:.25}
.order-point{transform-origin:center;transform-box:fill-box}
.order-visual{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;align-items:end}
.order-visual>svg{min-width:0}
.home-page .consulting-approach .order-visual>svg{max-height:none}
.diagram-replay{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:0 0 2px;padding:0;background:none;border:0;color:var(--muted);cursor:pointer}
.diagram-replay[hidden]{display:none}
.diagram-replay:hover{color:var(--rust)}
.diagram-replay span{font-size:18px}

/* RabbitMQ: a strong typographic opening and an ink-coloured routing field. */
.rabbitmq-page .hero{grid-template-columns:1fr 1.08fr;gap:0 48px;align-items:center}
.rabbitmq-page .hero h1{font-size:clamp(72px,7.8vw,112px);line-height:1.02;letter-spacing:-.065em}
.rabbitmq-page .hero-description{max-width:390px}
.rabbitmq-page .routing-figure{background:var(--ink);color:var(--paper);padding:28px 28px 20px;align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.routing-figure .technical-illustration{color:var(--paper)}
.routing-figure .diagram-grid{opacity:.12;stroke-width:1}
.routing-figure .queue-messages,.routing-figure .routing-marker{color:var(--rust)}
.routing-figure .routing-lines{color:var(--paper);stroke-width:1.5;opacity:.7}
.routing-figure .diagram-labels{opacity:.72}
.routing-figure figcaption{color:var(--paper);border-color:var(--dark-line);margin-top:20px;opacity:.75}
.rabbitmq-page .scope-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.rabbitmq-page .scope-row{display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:24px 0 0;border-bottom:0}
.rabbitmq-page .scope-row h3{font-size:30px;line-height:1.15}
.rabbitmq-page .scope-row>p{font-size:17px}
.rabbitmq-page .scope-row .service-number{margin:0 0 12px}

/* Payments: a landscape title, integration schematic and a sequential scope. */
.payments-page .hero{grid-template-columns:1.3fr 1fr;gap:40px 72px}
.payments-page .hero-copy{grid-column:1/-1}
.payments-page .hero h1{white-space:normal;font-size:clamp(60px,7.6vw,110px);line-height:1.03;margin-top:24px}
.payments-page .payment-figure{grid-column:1;grid-row:2;padding:0;align-self:center}
.payments-page .hero-aside{grid-column:2;grid-row:2;align-self:center;padding-left:24px}
.payments-page .hero-aside .hero-description{margin:0;font-size:21px;max-width:330px}
.payments-page .hero-aside .button{gap:24px}
.payments-page .hero-foot{margin-top:0;padding-top:20px}
.payment-figure .technical-illustration{color:var(--ink)}
.payment-figure .payment-message{color:var(--rust)}
.payment-figure .diagram-labels{font-size:10px}
.payments-page #payments-scope{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px}
.payments-page #payments-scope .section-heading{display:flex;flex-direction:column;gap:24px;margin:0}
.payments-page #payments-scope h2{font-size:clamp(36px,3.5vw,48px)}
.payments-page #payments-scope .section-heading>div>p{font-size:18px;max-width:350px}
.payments-page .scope-row{grid-template-columns:28px 1fr;gap:12px 24px;padding-block:28px}
.payments-page .scope-row>p{grid-column:2;max-width:none}
.payments-page .scope-row h3{font-size:28px}
.payments-page .approach{background:var(--soft);color:var(--ink)}
.payments-page .approach .eyebrow,.payments-page .step-number{color:var(--rust)}
.payments-page .approach-intro>p:not(.eyebrow),.payments-page .steps p{color:var(--muted)}
.payments-page .steps li,.payments-page .text-link.light{border-color:var(--line)}
.payments-page .text-link.light{color:var(--ink)}
.payments-page .text-link.light:hover{color:var(--rust)}
.payments-page .text-link.light small{color:var(--muted)}

/* Distributed systems: the diagram leads; boundaries shape the reading rhythm. */
.distributed-systems-page .hero{grid-template-columns:1fr 1fr;gap:0 40px;align-items:center}
.distributed-systems-page .hero-copy{grid-column:2;grid-row:1;padding-left:32px}
.distributed-systems-page .system-figure{grid-column:1;grid-row:1;padding:0 24px 0 0}
.distributed-systems-page .hero h1{font-size:clamp(68px,7.2vw,104px);line-height:1.02}
.distributed-systems-page .hero-description{max-width:380px}
.system-boundary{opacity:.3;stroke-width:1}
.system-connections{opacity:.65}
.system-nodes{color:var(--ink)}
.system-figure .diagram-labels{font-size:11px;fill:var(--ink)}
.boundary-cross{opacity:.7}
.distributed-systems-page .scope-list{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));row-gap:28px}
.distributed-systems-page .scope-row{grid-column:1/-1;grid-template-columns:32px 1fr 1.2fr;gap:28px;padding-block:28px;border-bottom:1px solid var(--line)}
.distributed-systems-page .approach-grid{grid-template-columns:1fr;gap:48px}
.distributed-systems-page .approach-intro{display:grid;grid-template-columns:1fr 1fr;gap:24px 80px;align-items:start}
.distributed-systems-page .approach-intro .eyebrow{grid-column:1/-1;margin:0}
.distributed-systems-page .approach-intro h2{grid-column:1;grid-row:2}
.distributed-systems-page .approach-intro>p:not(.eyebrow){grid-column:2;grid-row:2;margin-top:0}
.distributed-systems-page .approach-intro .text-link{grid-column:2;margin-top:0;justify-self:start}
.distributed-systems-page .steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}
.distributed-systems-page .steps li{grid-template-columns:24px 1fr;gap:16px;padding-top:24px}
.distributed-systems-page .steps h3{font-size:23px}

@media(max-width:1050px){
  .rabbitmq-page .hero{gap:0 28px}
  .rabbitmq-page .hero h1{font-size:clamp(52px,6.8vw,72px)}
  .rabbitmq-page .routing-figure{padding:18px}
  .rabbitmq-page .scope-list{gap:24px}
  .rabbitmq-page .scope-row h3{font-size:26px}
  .payments-page .hero{gap:28px 32px}
  .payments-page .hero h1{font-size:clamp(54px,7.2vw,76px)}
  .payments-page .hero-aside{padding:0}
  .payments-page .hero-aside .hero-description{font-size:19px}
  .payments-page #payments-scope{gap:40px}
  .distributed-systems-page .hero{gap:0 24px}
  .distributed-systems-page .hero-copy{padding-left:0}
  .distributed-systems-page .hero h1{font-size:clamp(50px,6.7vw,72px)}
  .distributed-systems-page .scope-row{grid-column:1/-1;gap:20px;grid-template-columns:24px .95fr 1.2fr}
  .distributed-systems-page .scope-row h3{font-size:25px}
  .distributed-systems-page .approach-intro{gap:24px 40px}
  .distributed-systems-page .steps{grid-template-columns:1fr}
}
@media(max-width:720px){
  .site-header{min-height:0}
  .hero{padding-top:36px}
  .home-page .hero-figure{padding:28px 0 0}
  .home-page .hero-figure svg{max-height:330px}
  .rabbitmq-page .hero,.payments-page .hero,.distributed-systems-page .hero{grid-template-columns:minmax(0,1fr);gap:28px}
  .rabbitmq-page .hero h1{font-size:clamp(50px,12vw,76px)}
  .rabbitmq-page .routing-figure{padding:16px;margin-top:4px;width:100%;max-width:none}
  .rabbitmq-page .hero-foot{margin-top:0;padding-top:0}
  .rabbitmq-page .scope-list{grid-template-columns:1fr;gap:28px}
  .rabbitmq-page .scope-row{display:grid;grid-template-columns:20px 1fr;gap:12px}
  .rabbitmq-page .scope-row>p{grid-column:2}
  .rabbitmq-page .scope-row .service-number{margin:4px 0 0}
  .rabbitmq-page .scope-row h3{font-size:27px}
  .payments-page .hero h1{font-size:clamp(43px,10.5vw,68px)}
  .payments-page .hero-copy,.payments-page .hero-aside,.payments-page .payment-figure{grid-column:1;grid-row:auto}
  .payments-page .hero-aside{grid-row:2}
  .payments-page .payment-figure{grid-row:3;padding:0;width:100%;max-width:none}
  .payments-page .hero-aside .hero-description{max-width:400px}
  .payments-page .hero-foot{padding-top:0}
  .payments-page #payments-scope{grid-template-columns:1fr;gap:32px}
  .payments-page #payments-scope .section-heading>div>p{max-width:none}
  .payments-page .scope-row{grid-template-columns:20px 1fr;gap:12px}
  .payments-page .scope-row h3{font-size:27px}
  .distributed-systems-page .hero-copy,.distributed-systems-page .system-figure{grid-column:1;grid-row:auto;padding:0}
  .distributed-systems-page .hero h1{font-size:clamp(48px,11vw,76px)}
  .distributed-systems-page .system-figure svg{max-height:330px}
  .distributed-systems-page .hero-foot{padding-top:0;margin-top:0}
  .distributed-systems-page .scope-list{grid-template-columns:1fr;gap:0}
  .distributed-systems-page .scope-row{grid-column:1;grid-template-columns:20px 1fr;gap:12px;border-bottom:0}
  .distributed-systems-page .scope-row:last-child{border-bottom:1px solid var(--line)}
  .distributed-systems-page .scope-row>p{grid-column:2}
  .distributed-systems-page .scope-row h3{font-size:27px}
  .distributed-systems-page .approach-intro{display:flex;flex-direction:column;gap:24px}
  .distributed-systems-page .approach-intro h2{font-size:38px}
  .distributed-systems-page .steps{gap:0}
  .distributed-systems-page .steps li{padding-block:24px}
}
@media(max-width:360px){
  .rabbitmq-page .hero h1{font-size:46px}
  .payments-page .hero h1{font-size:38px}
  .distributed-systems-page .hero h1{font-size:44px}
}
