/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V4
 * ================================================================
 * GDS printer rental, page 50928, wrapper .gds-phs .gds-prn
 *
 * Loads ON TOP of gds-page-46177.css, which supplies the tokens,
 * typography, buttons, hero, section shell, included grid, quotes,
 * faq, final form and sticky bar. This file adds only what the base
 * does not carry: the trust band, the driver grid, the plan cards,
 * the four custom figures, the comparison table, the coverage row,
 * the step list and the mid page CTA.
 *
 * Every colour and font here references a base token. Nothing new is
 * introduced to the palette.
 * Written 4 September 2026. Rollback: delete this file and its enqueue.
 * ================================================================ */

/* --- hero headline. The base scopes .hi-headline to h2. This page keeps a
   single h1 below the fold image for a clean outline, so the overlay headline
   is a p and the h2 rule never matches. Values copied from the h2 rule. --- */
/* --- hero headline fit, second pass.
   MEASURED 4 September 2026 at 1512 and at 1728, which is what Andrew is on.
   The card content box is 518px. At 50px the three written lines rendered as
   FOUR: line two reached 566 of 575 available, so it sat 9px off the card
   edge, and the third line broke leaving "the End" alone. Two words on their
   own line breaks the no orphaned words rule.
   Fix is to give the card more room rather than shrink the type to nothing:
   the card widens to 640px from 1280 up and the headline drops to 46px, so
   each written line renders as one line with room to spare. --- */
/* Card width, padding and headline size, all in one place, largest first.
   MEASURED at each width: the longest written line must render on one line
   inside the padding, so no line is left with two words or fewer. */
@media (min-width:1280px){
  .gds-prn .hero-image .hero-image-overlay .hi-card{width:720px;max-width:720px;padding:34px 40px 36px;}
}
@media (min-width:1024px) and (max-width:1279px){
  .gds-prn .hero-image .hero-image-overlay .hi-card{width:620px;max-width:620px;padding:30px 34px 32px;}
  .gds-prn .hero-image .hero-image-overlay p.hi-headline{font-size:40px;}
}
@media (min-width:721px) and (max-width:1023px){
  .gds-prn .hero-image .hero-image-overlay .hi-card{padding:28px 30px 30px;}
  .gds-prn .hero-image .hero-image-overlay p.hi-headline{font-size:38px;}
}
/* Phone sizes carry !important because a sitewide rule was holding the hero
   headline at 28px whatever this file asked for. MEASURED at 393 and 320 before
   the change: 28px wrapped the three written lines into four and six rendered
   lines, leaving one and four orphan lines. The sizes below are worked back
   from the card's inner width so the longest written line fits on one line. */
@media (max-width:720px){
  .gds-prn .hero-image .hero-image-overlay .hi-card{padding:24px 22px 26px;}
  body .gds-prn.gds-phs .hero-image .hero-image-overlay p.hi-headline,
  body .gds-phs.gds-prn .hero-image .hero-image-overlay p.hi-headline{
    font-size:26px !important;line-height:1.14 !important;}
}
@media (max-width:400px){
  .gds-prn .hero-image .hero-image-overlay .hi-card{padding:22px 18px 24px;}
  body .gds-prn.gds-phs .hero-image .hero-image-overlay p.hi-headline,
  body .gds-phs.gds-prn .hero-image .hero-image-overlay p.hi-headline{
    font-size:23px !important;}
}
@media (max-width:340px){
  body .gds-prn.gds-phs .hero-image .hero-image-overlay p.hi-headline,
  body .gds-phs.gds-prn .hero-image .hero-image-overlay p.hi-headline{
    font-size:19px !important;}
}

/* MEASURED 4 September 2026 at 1440 against /photocopier-lease/, which is the
   benchmark. That page renders its hero headline at 50.4px inside a 516px text
   column and the card comes out 521px tall inside a 642px hero. This page was
   rendering the SAME element at the raw 64px inside a 448px column, because the
   card carried 36px of side padding, so the headline wrapped to SEVEN lines,
   the card grew to 815px and the top of it was clipped by the hero's
   overflow:hidden. Andrew photographed exactly that.
   Three changes below, matched to the benchmark: the headline size, the card
   padding moved off the card so the text column is full width, and a hero
   floor so the card always has room. */
.gds-prn .hero-image .hero-image-overlay p.hi-headline{font-family:'Manrope',sans-serif;
  font-weight:800;font-size:clamp(28px,3.5vw,50px);line-height:1.04;letter-spacing:-0.025em;
  color:#FFFFFF;margin:0 0 14px;text-shadow:0 1px 2px rgba(0,0,0,.4);text-wrap:balance;
  max-width:none;overflow-wrap:anywhere;}
/* CORRECTION 4 September 2026, twice over.
   First I removed the card's side padding to buy width for the headline, which
   left every line flush against the panel edge. Then I restored the padding but
   wrote the rule AFTER the width scoped blocks, so it overrode all of them and
   the phone card kept a 40px inset it could not afford.
   All card padding now lives in the width scoped block below, in one place, so
   it cannot be overridden by accident again. */
.gds-prn .hero-image .hero-image-overlay .hi-eyebrow{margin-bottom:22px;
  white-space:normal;overflow-wrap:anywhere;line-height:1.6;}
@media (min-width:1024px){
  /* 640 left only 36px of clearance above and below the card at 1440 and up.
     680 gives 57px, which matches the 60px the benchmark page renders. */
  .gds-prn .hero-image{min-height:680px;}
}

.gds-prn .hero-image .hero-image-overlay p.hi-headline em{font-style:italic;font-weight:500;color:#ffe6c4;}

.gds-prn .hi-strip{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;
  padding:10px var(--pad);background:var(--accent);color:#fff;font-size:13px;}
.gds-prn .hs-cat{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;opacity:.9;}
.gds-prn .hs-rate{display:inline-flex;align-items:center;gap:8px;font-weight:600;}
.gds-prn .hi-fine{font-size:13px;color:#EDE6DA;margin:12px 0 0;line-height:1.7;}
.gds-prn .hi-fine-lead{font-weight:700;color:#fff;font-size:15px;margin-top:10px;}
.gds-prn .hi-stars,.gds-prn .prn-stars{display:inline-block;height:14px;width:auto;
  vertical-align:-2px;fill:#E8A33D;}
.gds-prn .hs-rate .prn-stars{fill:#F4C77B;}
.gds-prn .pr-id{display:flex;flex-direction:column;gap:2px;min-width:0;}
.gds-prn .pm{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;
  color:var(--ink-3);margin-left:2px;font-weight:500;}

/* --- trust band --- */
.gds-prn .trust-band{padding-top:34px;padding-bottom:34px;background:var(--bg-2);}
.gds-prn .trust-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;}
.gds-prn .tr-i{display:flex;flex-direction:column;gap:6px;padding-left:16px;
  border-left:2px solid var(--accent);}
.gds-prn .tr-i b{font-size:clamp(22px,2.6vw,30px);font-weight:800;line-height:1;color:var(--accent);
  letter-spacing:-.02em;}
.gds-prn .tr-i span{font-size:13.5px;color:var(--ink-2);line-height:1.5;}
@media (max-width:820px){.gds-prn .trust-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px;}}

/* --- driver grid --- */
.gds-prn .drivers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:38px;}
.gds-prn .drv{background:#fff;border:1px solid var(--rule);border-radius:var(--radius);padding:26px 24px 22px;}
.gds-prn .drv-n{display:inline-block;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;
  letter-spacing:.14em;color:var(--accent);margin-bottom:12px;}
.gds-prn .drv h3{font-size:19px;font-weight:700;line-height:1.25;margin:0 0 12px;color:var(--ink);
  overflow-wrap:anywhere;}
.gds-prn .drv p{font-size:15.5px;line-height:1.75;color:var(--ink-2);margin:0 0 10px;}
.gds-prn .drv p:last-child{margin-bottom:0;}
@media (max-width:900px){.gds-prn .drivers{grid-template-columns:1fr;gap:18px;}}

/* --- inclusions list beside a photo --- */
.gds-prn .inc-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 30px;}
.gds-prn .inc-i h3{font-size:17px;font-weight:700;margin:0 0 8px;color:var(--ink);overflow-wrap:anywhere;}
.gds-prn .inc-i p{font-size:15px;line-height:1.75;color:var(--ink-2);margin:0 0 8px;}
.gds-prn .inc-i p:last-child{margin-bottom:0;}
.gds-prn .included{display:grid;grid-template-columns:minmax(0,460px) minmax(0,1fr);gap:44px;
  align-items:start;margin-top:38px;}
.gds-prn .included .photo img{width:100%;height:auto;border-radius:var(--radius);display:block;}
@media (max-width:980px){.gds-prn .included{grid-template-columns:minmax(0,1fr);gap:28px;}
  .gds-prn .inc-list{grid-template-columns:minmax(0,1fr);gap:20px;}}

/* --- plan cards --- */
.gds-prn .plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:38px;
  align-items:stretch;}
.gds-prn .plan{position:relative;display:flex;flex-direction:column;background:#fff;
  border:1px solid var(--rule-strong);border-radius:var(--radius);padding:28px 26px 26px;}
.gds-prn .plan-pop{border-color:var(--accent);box-shadow:0 18px 40px rgba(27,58,107,.12);}
.gds-prn .plan-tag{position:absolute;top:-11px;left:26px;width:max-content;margin:0;background:var(--warn);color:#fff;
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10px;letter-spacing:.12em;
  padding:4px 10px;border-radius:20px;}
.gds-prn .plan-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.gds-prn .plan-name{font-size:21px;font-weight:800;letter-spacing:-.02em;}
.gds-prn .plan-tier{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;
  letter-spacing:.12em;color:var(--ink-3);}
.gds-prn .plan-p{font-size:38px;font-weight:800;letter-spacing:-.03em;color:var(--accent);margin:14px 0 2px;}
.gds-prn .plan-p .pm{font-size:12px;font-weight:500;letter-spacing:.02em;}
.gds-prn .plan-v{font-size:14px;color:var(--ink-3);}
.gds-prn .plan-d{font-size:15px;font-weight:600;color:var(--ink);margin:14px 0 16px;
  padding-top:14px;border-top:1px solid var(--rule);}
.gds-prn .plan-l{list-style:none;margin:0 0 22px;padding:0;flex:1 1 auto;}
.gds-prn .plan-l li{position:relative;padding-left:22px;margin-bottom:12px;font-size:14.5px;
  line-height:1.6;color:var(--ink-2);}
.gds-prn .plan-l li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;
  border-radius:50%;background:var(--accent);}
.gds-prn .plan-btn{align-self:stretch;justify-content:center;text-align:center;}
@media (max-width:980px){.gds-prn .plans{grid-template-columns:1fr;}}

/* --- fleet card.
   MEASURED 4 September 2026 with a contrast audit of the live page at 1512.
   TWO failures, both mine, both on this navy panel:
     1. the heading rendered rgb(22,21,26) on the navy, a ratio of 1.61 to 1
        against the 3.0 minimum for large text, because Avada's own
        h3.fusion-responsive-typography rule outranked my plain colour;
     2. the internal link rendered rgb(27,58,107), which IS the navy, a ratio
        of 1.00 to 1. The text was invisible.
   Every colour on this panel is now forced, and any link inside it is white
   and underlined so it still reads as a link. --- */
.gds-prn .fleetcard{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:26px;align-items:center;
  margin-top:34px;padding:30px 32px;background:var(--accent);border-radius:var(--radius);}
.gds-prn .fleetcard,
.gds-prn .fleetcard *{color:#FFFFFF;}
.gds-prn .fleetcard .eyebrow,
.gds-prn .fleetcard .eyebrow.label{color:#C3D3EC !important;}
.gds-prn .fleetcard h3,
.gds-prn .fleetcard h3.fusion-responsive-typography{font-size:24px;font-weight:800;
  letter-spacing:-.02em;margin:10px 0 14px;color:#FFFFFF !important;}
.gds-prn .fleetcard p{font-size:15.5px;line-height:1.8;margin:0 0 8px;color:#E6ECF6 !important;}
.gds-prn .fleetcard p:last-child{margin-bottom:0;}
.gds-prn .fleetcard a:not(.btn){color:#FFFFFF !important;text-decoration:underline;
  text-decoration-color:rgba(255,255,255,.55);text-underline-offset:3px;font-weight:600;}
.gds-prn .fleetcard a:not(.btn):hover{text-decoration-color:#FFFFFF;}
.gds-prn .fleetcard a:not(.btn):focus-visible{outline:3px solid #FFFFFF;outline-offset:2px;}
.gds-prn .fleetcard .btn-ghost{border-color:#ffffff66;color:#FFFFFF !important;white-space:nowrap;}
.gds-prn .fleetcard .btn-ghost:hover{background:#ffffff1a;border-color:#fff;}
@media (max-width:820px){.gds-prn .fleetcard{grid-template-columns:minmax(0,1fr);padding:26px 22px;}}

/* --- custom figures --- */
.gds-prn .prnfx{margin:38px 0 0;padding:26px 22px 20px;background:#fff;border:1px solid var(--rule);
  border-radius:var(--radius);}
.gds-prn .prnfx-cap{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;
  letter-spacing:.12em;color:var(--accent);margin:0 0 10px;}
.gds-prn .prnfx-foot{font-size:13.5px;color:var(--ink-3);line-height:1.7;margin:16px 0 0;
  padding-top:14px;border-top:1px solid var(--rule);}
.gds-prn .prnfx-svg{display:block;width:100%;height:auto;overflow:visible;}
.gds-prn .prnfx-h{font-family:'Manrope',sans-serif;font-size:17px;font-weight:800;}
.gds-prn .prnfx-s{font-family:'Manrope',sans-serif;font-size:13px;font-weight:500;}
.gds-prn .prnfx-i{font-family:'Manrope',sans-serif;font-size:14px;font-weight:600;}
.gds-prn .prnfx-t{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.04em;}
.gds-prn .prnfx-n{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12px;letter-spacing:.08em;font-weight:500;}

/* entrances. Every figure reads correctly frozen. */
.gds-prn .prnfx-col,.gds-prn .lad-row,.gds-prn .tl-stop,.gds-prn .orb-node,.gds-prn .orb-out{opacity:1;}
.gds-prn .prnfx.is-in .prnfx-col-1{animation:prnRise .55s var(--ease-out,cubic-bezier(.22,1,.36,1)) both;}
.gds-prn .prnfx.is-in .prnfx-col-2{animation:prnRise .55s cubic-bezier(.22,1,.36,1) .12s both;}
.gds-prn .prnfx.is-in .lad-row{animation:prnWipe .6s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--d,0s);
  transform-box:fill-box;transform-origin:left center;}
.gds-prn .prnfx.is-in .tl-stop{animation:prnPop .45s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--d,0s);
  transform-box:fill-box;transform-origin:center;}
.gds-prn .prnfx.is-in .tl-fill{stroke-dasharray:760;stroke-dashoffset:760;
  animation:prnDraw 1.1s cubic-bezier(.4,0,.2,1) .1s forwards;}
.gds-prn .prnfx.is-in .orb-node{animation:prnPop .5s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--d,0s);
  transform-box:fill-box;transform-origin:center;}
.gds-prn .prnfx.is-in .orb-ring{stroke-dasharray:6 6;animation:prnSpin 26s linear infinite;
  transform-box:fill-box;transform-origin:center;}
@keyframes prnRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes prnWipe{from{opacity:0;transform:scaleX(.2)}to{opacity:1;transform:none}}
@keyframes prnPop{from{opacity:0;transform:scale(.82)}to{opacity:1;transform:none}}
@keyframes prnDraw{to{stroke-dashoffset:0}}
@keyframes prnSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
  .gds-prn .prnfx.is-in *{animation:none!important;}
  .gds-prn .prnfx.is-in .tl-fill{stroke-dashoffset:0!important;}
}
@media (max-width:720px){
  .gds-prn .prnfx{padding:20px 14px 16px;}
  .gds-prn .prnfx-h{font-size:22px;}
  .gds-prn .prnfx-i{font-size:19px;}
  .gds-prn .prnfx-s,.gds-prn .prnfx-t,.gds-prn .prnfx-n{font-size:16px;}
  .gds-prn .prnfx-time .prnfx-svg{min-width:660px;}
  .gds-prn .prnfx-time{overflow-x:auto;-webkit-overflow-scrolling:touch;}
}

/* --- end of term grid --- */
.gds-prn .endgrid{display:grid;grid-template-columns:minmax(0,430px) minmax(0,1fr);gap:44px;
  align-items:start;margin-top:38px;}
.gds-prn .endgrid .photo img{width:100%;height:auto;border-radius:var(--radius);display:block;}
@media (max-width:980px){.gds-prn .endgrid{grid-template-columns:minmax(0,1fr);gap:28px;}}

/* --- comparison table --- */
.gds-prn .scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:34px;
  border:1px solid var(--rule-strong);border-radius:var(--radius);background:#fff;}
.gds-prn .cmp{width:100%;border-collapse:collapse;font-size:15px;min-width:640px;}
.gds-prn .cmp thead th{background:var(--accent);color:#fff;text-align:left;font-weight:700;
  padding:15px 18px;font-size:14.5px;}
.gds-prn .cmp tbody th{text-align:left;font-weight:600;color:var(--ink);padding:14px 18px;
  border-bottom:1px solid var(--rule);vertical-align:top;width:30%;}
.gds-prn .cmp td{padding:14px 18px;border-bottom:1px solid var(--rule);color:var(--ink-2);
  vertical-align:top;line-height:1.65;}
.gds-prn .cmp tbody tr:nth-child(even) th,.gds-prn .cmp tbody tr:nth-child(even) td{background:#FAF8F3;}
.gds-prn .cmp td:nth-of-type(1){color:var(--ink);font-weight:600;}
.gds-prn .fine{font-size:13.5px;color:var(--ink-3);line-height:1.8;margin:16px 0 0;}

/* --- coverage --- */
.gds-prn .cover-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px;}
.gds-prn .cov{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;
  background:#fff;border:1px solid var(--rule-strong);border-radius:40px;font-size:14.5px;
  font-weight:600;color:var(--ink);}

/* --- faq --- */
.gds-prn .faq{margin-top:34px;border-top:1px solid var(--rule-strong);}
.gds-prn .fq{border-bottom:1px solid var(--rule-strong);}
.gds-prn .fq summary{list-style:none;cursor:pointer;display:flex;align-items:center;
  justify-content:space-between;gap:18px;min-height:64px;padding:18px 4px;font-size:17.5px;
  font-weight:700;color:var(--ink);line-height:1.4;}
.gds-prn .fq summary::-webkit-details-marker{display:none;}
.gds-prn .fq summary::after{content:"";flex:0 0 auto;width:11px;height:11px;
  border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);
  transform:rotate(45deg) translateY(-3px);transition:transform .25s ease;}
.gds-prn .fq[open] summary::after{transform:rotate(-135deg) translateY(3px);}
.gds-prn .fq summary:focus-visible{outline:3px solid var(--warn);outline-offset:2px;}
.gds-prn .fq-a{padding:0 4px 22px;max-width:76ch;}
.gds-prn .fq-a p{font-size:15.5px;line-height:1.8;color:var(--ink-2);margin:0 0 12px;}
.gds-prn .fq-a p:last-child{margin-bottom:0;}
@media (prefers-reduced-motion:reduce){.gds-prn .fq summary::after{transition:none;}}

/* --- mid page CTA --- */
/* --- mid page call to action.
   It used to be a pale box on a pale ground with a short orange stub down one
   side, so it read as a stray rectangle rather than a designed band. It is now
   a full width navy band, which is unmistakably deliberate and matches the
   fleet card and the house palette. --- */
.gds-prn .midband{padding:0;background:var(--accent);}
.gds-prn .midband .wrap{padding-top:38px;padding-bottom:38px;}
.gds-prn .mid-cta{display:flex;flex-wrap:wrap;align-items:center;gap:18px 30px;
  padding:0;background:transparent;border:0;}
.gds-prn .mid-cta .btn-primary{background:var(--warn);border-color:var(--warn);color:#fff;}
.gds-prn .mid-cta .btn-primary:hover{background:#9A3412;border-color:#9A3412;}
.gds-prn .mid-cta-note{font-size:16px;color:#E6ECF6;line-height:1.7;max-width:56ch;}
@media (max-width:720px){
  .gds-prn .midband .wrap{padding-top:30px;padding-bottom:30px;}
  .gds-prn .mid-cta{gap:16px;}
  .gds-prn .mid-cta .btn{width:100%;justify-content:center;}
  .gds-prn .mid-cta-note{font-size:15px;}
}

/* --- final form extras --- */
.gds-prn .syl-trust{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;
  margin:0 0 22px;padding:16px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
.gds-prn .st-i{display:flex;flex-direction:column;gap:3px;}
.gds-prn .st-i b{font-size:19px;font-weight:800;color:var(--accent);line-height:1;}
.gds-prn .st-i span{font-size:11.5px;color:var(--ink-3);line-height:1.35;}
.gds-prn .quote-grid .founder{display:flex;gap:16px;align-items:flex-start;margin-top:24px;
  padding-top:22px;border-top:1px solid var(--rule);}
.gds-prn .gds-portrait{width:104px;height:auto;border-radius:var(--radius);flex:0 0 auto;display:block;}
.gds-prn .acl-note{font-size:13px;line-height:1.7;color:var(--ink-3);margin:20px 0 0;
  padding-top:16px;border-top:1px solid var(--rule);}

.gds-prn .prnstep{margin:0 0 26px;padding:24px 22px 20px;background:#fff;border:1px solid var(--rule);
  border-radius:var(--radius);}
.gds-prn .prnstep-eyebrow{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;
  letter-spacing:.12em;color:var(--accent);}
.gds-prn .prnstep-title{font-size:19px;font-weight:800;letter-spacing:-.02em;margin:8px 0 18px;}
.gds-prn .prnstep-steps{list-style:none;margin:0;padding:0;counter-reset:none;}
.gds-prn .prnstep-steps li{position:relative;padding-left:44px;margin-bottom:18px;}
.gds-prn .prnstep-steps li:last-child{margin-bottom:0;}
.gds-prn .prnstep-n{position:absolute;left:0;top:1px;font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:12px;color:var(--warn);letter-spacing:.06em;}
.gds-prn .prnstep-steps b{display:block;font-size:15.5px;font-weight:700;line-height:1.45;margin-bottom:5px;}
.gds-prn .prnstep-steps p{font-size:14.5px;line-height:1.7;color:var(--ink-2);margin:0;}
.gds-prn .prnstep figcaption{font-size:13.5px;color:var(--ink-3);margin-top:16px;padding-top:14px;
  border-top:1px solid var(--rule);}

/* --- sticky bar --- */
.gds-prn .sticky-cta .msg .mo{font-size:13px;font-weight:500;}
/* The base hides .sub below 640px on purpose. This rule used to be
   unconditional, so it loaded after the base and put the line back on a
   phone, which is why the message box measured 273px of a 320px screen at
   320px and pushed the buttons off the right edge. Scoped to desktop. */
@media (min-width:641px){
  .gds-prn .sticky-cta .msg .sub{display:block;font-size:11px;font-weight:500;
    color:var(--ink-3);letter-spacing:.02em;margin-top:2px;}
}

/* --- mobile safety --- */
.gds-prn{overflow-x:clip;}
@media (max-width:520px){
  .gds-prn .plan-p{font-size:32px;}
  .gds-prn .fq summary{font-size:16.5px;}
  .gds-prn .mid-cta{padding:20px 18px;}
}


/* --- reviews. MEASURED 4 September 2026: the old lead quote ran 96 words and
   filled a whole phone screen on its own, which is exactly the wall of text the
   formatting rule exists to stop. Every quote is now a pull quote under 30
   words, trimmed with ellipses so no word is changed and each stays a faithful
   verified Google review. Four equal cards, so nothing dominates. --- */
.gds-prn .qgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:38px;}
.gds-prn .qc{display:flex;flex-direction:column;gap:16px;background:#fff;
  border:1px solid var(--rule);border-left:3px solid var(--accent);
  border-radius:var(--radius);padding:26px 26px 22px;}
.gds-prn .qc-lead{border-left-color:var(--warn);}
.gds-prn .qc blockquote{margin:0;font-size:18px;line-height:1.65;color:var(--ink);
  font-weight:500;text-wrap:pretty;}
.gds-prn .qc-lead blockquote{font-size:20px;}
.gds-prn .qc .who{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;
  margin-top:auto;padding-top:16px;border-top:1px solid var(--rule);}
.gds-prn .qc .who b{font-size:15px;font-weight:700;color:var(--ink);}
.gds-prn .qc .who span{font-size:12.5px;color:var(--ink-3);line-height:1.5;}
.gds-prn .qc-stars{height:13px;fill:#E8A33D;flex:0 0 auto;}
@media (max-width:900px){
  .gds-prn .qgrid{grid-template-columns:minmax(0,1fr);gap:16px;}
  .gds-prn .qc{padding:22px 20px 18px;}
  .gds-prn .qc blockquote,.gds-prn .qc-lead blockquote{font-size:17px;}
}

/* --- sticky bar.
   MEASURED 4 September 2026 at 320px: the Call button rendered 272px wide and
   ran 73px past the right edge. TWO causes, both mine, both found by reading
   the base stylesheet rather than guessing:
     1. the markup put the two buttons straight into .inner, but the base
        expects them inside .actions, so space-between spread three items
        across the row instead of two;
     2. the base already hides .btn-ghost below 640px, because the header
        carries the phone number and Andrew's 2 September rule is one phone
        number per mobile screen. My own overrides were fighting that rule.
   The markup now matches the house pattern and the overrides are gone. Only
   the message sizing stays, because this bar carries a price the others do
   not. --- */
@media (max-width:640px){
  .gds-prn .sticky-cta .msg{font-size:16px;line-height:1.15;white-space:nowrap;}
  .gds-prn .sticky-cta .msg .mo{font-size:12px;}
  /* The base gap is 24px. At 320px that left the row ending on 317 of 320,
     three pixels of clearance. 12px gives 15px, which is a real margin. */
  .gds-prn .sticky-cta .inner{gap:12px;}
  .gds-prn .sticky-cta .actions{gap:8px;flex:0 0 auto;}
  .gds-prn .sticky-cta .msg{flex:0 1 auto;min-width:0;}
}
@media (max-width:359px){
  .gds-prn .sticky-cta .msg{font-size:15px;}
  .gds-prn .sticky-cta .btn{padding:10px 12px;font-size:13px;}
}

/* --- hero photograph fit.
   MEASURED 4 September 2026 at 1920: the img rendered at its natural 1600 by
   1069 with object-fit:fill and position:static, so the photograph stopped at
   1600px and left a 320px cream gap on the right. Andrew saw exactly that.
   The shared file already carries
   .gds-phs .hero-image>img{position:absolute;inset:0;object-fit:cover}
   but an inline sitewide stylesheet outranks it, which is why 50842 had to
   restate the same rule with a body prefix and !important. Same approach here.
   Below 1600px the fault was invisible, because the unfitted image simply ran
   wider than the viewport and was clipped, so it looked full width. --- */
body .gds-prn.gds-phs section.hero-image>img,
body .gds-phs.gds-prn section.hero-image>img,
body .gds-prn.gds-phs .hero-image img,
body .gds-phs.gds-prn .hero-image img{
  position:absolute !important;inset:0 !important;
  width:100% !important;height:100% !important;max-width:none !important;
  display:block !important;object-fit:cover !important;
  object-position:55% 52% !important;}

/* The machines sit centre right in the photograph, so a portrait crop is
   anchored there rather than centred, otherwise a phone shows ceiling. */
@media (max-width:768px){
  body .gds-prn.gds-phs section.hero-image>img,
  body .gds-phs.gds-prn section.hero-image>img,
  body .gds-prn.gds-phs .hero-image img,
  body .gds-phs.gds-prn .hero-image img{object-position:66% 55% !important;}
}

/* --- scale proof beside the founder.
   Andrew, 4 September 2026: the founder block read as a one man band, which
   works against the corporate target of offices of five to ten and up. The
   sentence is now the one approved in the 31 August repositioning sweep, and
   these three facts sit under it. Every one is a standard approved fact
   already published elsewhere on the site. Nothing new is asserted. --- */
.gds-prn .credstrip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;
  margin:22px 0 0;padding:18px 0 0;border-top:1px solid var(--rule);}
.gds-prn .cs-i{display:flex;flex-direction:column;gap:4px;}
.gds-prn .cs-i b{font-size:17px;font-weight:800;color:var(--accent);line-height:1.15;}
.gds-prn .cs-i span{font-size:12.5px;color:var(--ink-3);line-height:1.45;}
@media (max-width:520px){
  .gds-prn .credstrip{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 14px;}
}


/* HERO CARD TRANSPARENCY 2026-09-04 */
/* Andrew: the solid card hid the finisher. Card narrowed and made semi
   transparent with a left to right fade, so the whole machine reads. */
body .gds-prn.gds-phs .hero-image .hero-image-overlay .hi-card,
body .gds-phs.gds-prn .hero-image .hero-image-overlay .hi-card{
  background:linear-gradient(100deg, rgba(9,18,36,.93) 0%, rgba(9,18,36,.89) 55%, rgba(9,18,36,.78) 100%) !important;
  -webkit-backdrop-filter:blur(5px) saturate(1.05);backdrop-filter:blur(5px) saturate(1.05);
  border:1px solid rgba(255,255,255,.10) !important;}
@media (min-width:1280px){
  body .gds-prn.gds-phs .hero-image .hero-image-overlay .hi-card,
  body .gds-phs.gds-prn .hero-image .hero-image-overlay .hi-card{width:600px !important;max-width:600px !important;padding:30px 34px 32px !important;}
  body .gds-prn.gds-phs .hero-image .hero-image-overlay p.hi-headline,
  body .gds-phs.gds-prn .hero-image .hero-image-overlay p.hi-headline{font-size:42px !important;}
}
@media (min-width:1024px) and (max-width:1279px){
  body .gds-prn.gds-phs .hero-image .hero-image-overlay .hi-card,
  body .gds-phs.gds-prn .hero-image .hero-image-overlay .hi-card{width:540px !important;max-width:540px !important;padding:26px 30px 28px !important;}
  body .gds-prn.gds-phs .hero-image .hero-image-overlay p.hi-headline,
  body .gds-phs.gds-prn .hero-image .hero-image-overlay p.hi-headline{font-size:37px !important;}
}
@media (max-width:768px){
  body .gds-prn.gds-phs .hero-image .hero-image-overlay .hi-card,
  body .gds-phs.gds-prn .hero-image .hero-image-overlay .hi-card{
    background:linear-gradient(180deg, rgba(9,18,36,.90) 0%, rgba(9,18,36,.86) 100%) !important;}
}


/* MOBILE HERO STACK 2026-09-04 */
/* Match the sitewide mobile hero: photograph as its own block at the top,
   then a solid navy panel underneath carrying the headline and the CTA. */
@media (max-width:820px){
  html body .gds-prn.gds-phs section.hero-image,
  html body .gds-phs.gds-prn section.hero-image{height:auto !important;min-height:0 !important;overflow:visible !important;display:block !important;border-bottom:0 !important;}
  html body .gds-prn.gds-phs section.hero-image>img[class],
  html body .gds-phs.gds-prn section.hero-image>img[class],
  html body .gds-prn.gds-phs section.hero-image img[class],
  html body .gds-phs.gds-prn section.hero-image img[class]{position:static !important;inset:auto !important;width:100% !important;height:auto !important;aspect-ratio:3/2 !important;object-fit:cover !important;object-position:66% 55% !important;display:block !important;max-width:100% !important;}
  html body .gds-prn.gds-phs section.hero-image .hero-image-overlay,
  html body .gds-phs.gds-prn section.hero-image .hero-image-overlay{position:relative !important;inset:auto !important;width:100% !important;display:block !important;background:#1B3A6B !important;padding:26px var(--pad,20px) 30px !important;}
  body .gds-prn.gds-phs .hero-image .hero-image-overlay .hi-card,
  body .gds-phs.gds-prn .hero-image .hero-image-overlay .hi-card{background:none !important;border:0 !important;box-shadow:none !important;padding:0 !important;max-width:none !important;width:auto !important;border-radius:0 !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important;}
  body .gds-prn.gds-phs .hero-image .hi-strip,
  body .gds-phs.gds-prn .hero-image .hi-strip{display:none !important;}
}


/* STICKY BAR PRICE OFF ON MOBILE 2026-09-04 */
/* Andrew: the price block does not belong in the phone bar. Two buttons only. */
@media (max-width:820px){
  html body .gds-prn.gds-phs .sticky-cta .inner .msg,
  html body .gds-phs.gds-prn .sticky-cta .inner .msg{display:none !important;}
  html body .gds-prn.gds-phs .sticky-cta .inner,
  html body .gds-phs.gds-prn .sticky-cta .inner{justify-content:center !important;gap:10px !important;}
  html body .gds-prn.gds-phs .sticky-cta .inner .actions,
  html body .gds-phs.gds-prn .sticky-cta .inner .actions{width:100% !important;display:flex !important;gap:10px !important;}
  html body .gds-prn.gds-phs .sticky-cta .inner .actions .btn,
  html body .gds-phs.gds-prn .sticky-cta .inner .actions .btn{flex:1 1 0 !important;text-align:center !important;justify-content:center !important;}
}


/* FLEET CARD VISUAL REBUILD 2026-09-04 */
/* Andrew: five stacked paragraphs read as a wall. Rebuilt as four tiles. */
.gds-prn .fleetcard{display:block !important;padding:34px 34px 30px !important;}
.gds-prn .fleetcard .fleet-head{margin:0 0 22px;}
.gds-prn .fleetcard h3{margin:6px 0 8px !important;font-family:'Manrope',sans-serif;font-weight:800;font-size:clamp(22px,2.4vw,30px);line-height:1.12;letter-spacing:-0.02em;color:#FFFFFF !important;}
.gds-prn .fleetcard .fleet-lede{margin:0 !important;font-size:17px;line-height:1.55;color:#E6ECF6 !important;}
.gds-prn .fleetcard .eyebrow{color:#A9C0E0 !important;}
.gds-prn .fleetgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid rgba(255,255,255,.16);}
.gds-prn .fleetgrid .ftile{padding:22px 20px 20px;border-right:1px solid rgba(255,255,255,.16);}
.gds-prn .fleetgrid .ftile:last-child{border-right:0;}
.gds-prn .fleetgrid .fic{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:9px;background:rgba(255,255,255,.10);color:#FFD9A8;margin:0 0 14px;}
.gds-prn .fleetgrid .fic svg{width:21px;height:21px;display:block;}
.gds-prn .fleetgrid .ftile h4{margin:0 0 7px !important;font-family:'Manrope',sans-serif;font-weight:700;font-size:16px;line-height:1.25;letter-spacing:-0.01em;color:#FFFFFF !important;}
.gds-prn .fleetgrid .ftile p{margin:0 !important;font-size:14.5px;line-height:1.5;color:#D6E1F0 !important;}
.gds-prn .fleetgrid .ftile p a{color:#FFD9A8 !important;text-decoration:underline;text-underline-offset:2px;}
.gds-prn .fleetcard .fleet-note{margin:20px 0 20px !important;padding-top:18px;border-top:1px solid rgba(255,255,255,.16);font-size:15px;line-height:1.55;color:#D6E1F0 !important;}
.gds-prn .fleetcard .btn-ghost{display:inline-flex;align-items:center;gap:8px;}
@media (max-width:1024px){
  .gds-prn .fleetgrid{grid-template-columns:repeat(2,1fr);}
  .gds-prn .fleetgrid .ftile:nth-child(2n){border-right:0;}
  .gds-prn .fleetgrid .ftile:nth-child(n+3){border-top:1px solid rgba(255,255,255,.16);}
}
@media (max-width:640px){
  .gds-prn .fleetcard{padding:26px 22px 24px !important;}
  .gds-prn .fleetgrid{grid-template-columns:1fr;}
  .gds-prn .fleetgrid .ftile{border-right:0;padding:18px 0 16px;}
  .gds-prn .fleetgrid .ftile+.ftile{border-top:1px solid rgba(255,255,255,.16);}
  .gds-prn .fleetcard .btn-ghost{width:100%;justify-content:center;}
}


/* HERO CARD TEXT CONTRAST 2026-09-04 */
/* Small hero text lifted to white after the card was made semi transparent. */
html body .gds-prn.gds-phs .hero-image .hi-card .hi-eyebrow,
html body .gds-prn.gds-phs .hero-image .hi-card .hi-sub,
html body .gds-prn.gds-phs .hero-image .hi-card .hi-fine,
html body .gds-phs.gds-prn .hero-image .hi-card .hi-eyebrow,
html body .gds-phs.gds-prn .hero-image .hi-card .hi-sub,
html body .gds-phs.gds-prn .hero-image .hi-card .hi-fine{color:#FFFFFF !important;text-shadow:0 1px 3px rgba(0,0,0,.55) !important;}
