/* ================================================================
   Sydney printer and photocopier lease, page 50772.
   Loads ON TOP of gds-page-46177.css, which is why the page wrapper
   carries both gds-phs and gds-syl. The shared file supplies the tokens,
   typography, buttons, hero, trust row, problems, feats, compare table,
   map, quotes, faq, final form and sticky bar. This file adds only the
   six components that file does not carry.
   Written 29 Aug 2026. Rollback: delete this file and the enqueue.
   ================================================================ */

/* --- section head, single column variant --- */
.gds-syl .s-head.solo{display:block;}
.gds-syl .s-head.solo .display{margin-top:14px;}

/* --- small hero and plan stack details --- */
.gds-syl .hi-stars{color:#E8A33D;letter-spacing:.06em;}
.gds-syl .pr-id{display:flex;flex-direction:column;gap:2px;min-width:0;}
.gds-syl .pr-price .pm{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;color:var(--ink-3);margin-left:2px;}
.gds-syl .pop-inline{display:inline-block;margin-left:8px;padding:2px 7px;border-radius:20px;
  background:var(--accent);color:#fff;font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:9px;letter-spacing:.1em;text-transform:uppercase;vertical-align:middle;}

/* Hero headline.
   MEASURED 29 Aug 2026: the shared file scopes this to h2.hi-headline.
   This page keeps a single h1 in the hero for a clean document outline,
   so the headline element is a p and the h2 rule never matched. Rendered
   at 20px in Chromium before this rule, 64px after. Values copied from
   the h2 rule rather than reinvented. */
.gds-syl .hero-image .hero-image-overlay p.hi-headline{font-family:'Manrope',sans-serif;
  font-weight:800;font-size:clamp(34px,5.2vw,64px);line-height:1.02;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:520px;}
.gds-syl .hero-image .hero-image-overlay p.hi-headline em{font-style:italic;font-weight:500;color:#ffe6c4;}
@media (max-width:720px){
  .gds-syl .hero-image .hero-image-overlay p.hi-headline{font-size:clamp(28px,8vw,40px);}
}

/* --- renewal trap graphic --- */
.gds-syl .renew{display:grid;gap:34px;margin-top:38px;}
.gds-syl .rt-track{display:grid;gap:12px;}
.gds-syl .rt-label{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;}
.gds-syl .rt-name{font-weight:700;font-size:17px;color:var(--ink);}
.gds-syl .rt-note{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);}
.gds-syl .rt-bar{display:flex;align-items:stretch;border:1px solid var(--rule-strong);
  border-radius:var(--radius);overflow:hidden;min-height:58px;background:#fff;}
.gds-syl .rt-seg{display:flex;align-items:center;justify-content:center;text-align:center;
  padding:10px 14px;font-size:13px;font-weight:600;line-height:1.35;min-width:0;
  transform-origin:left center;}
.gds-syl .rt-term{flex:0 0 46%;background:var(--accent);color:#fff;}
.gds-syl .rt-window{flex:0 0 5%;min-width:14px;
  background:repeating-linear-gradient(45deg,var(--warn),var(--warn) 4px,#fff 4px,#fff 8px);}
.gds-syl .rt-roll{flex:1;background:#F3DED3;color:#7A2E10;}
.gds-syl .rt-month{flex:1;background:#DDEDE7;color:#14503F;}
.gds-syl .rt-axis{display:flex;justify-content:space-between;
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10.5px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);}
.gds-syl .rt-flag{display:flex;align-items:flex-start;gap:9px;margin:0;font-size:14px;
  line-height:1.6;color:var(--ink-2);max-width:70ch;}
.gds-syl .rt-flag .dot{flex:0 0 auto;width:9px;height:9px;border-radius:50%;margin-top:7px;}
.gds-syl .rt-flag.bad .dot{background:var(--warn);}
.gds-syl .rt-flag.good .dot{background:var(--pos);}
.gds-syl .renew-foot{display:flex;align-items:flex-end;justify-content:space-between;
  gap:28px;flex-wrap:wrap;padding-top:26px;border-top:1px solid var(--rule);}
.gds-syl .rt-anim .rt-seg{transform:scaleX(.02);opacity:0;}
.gds-syl .rt-anim.rt-go .rt-seg{transform:scaleX(1);opacity:1;
  transition:transform .8s cubic-bezier(.16,.84,.44,1),opacity .5s ease;}
.gds-syl .rt-anim.rt-go .rt-track:nth-child(2) .rt-seg{transition-delay:.18s;}
@media (max-width:720px){
  .gds-syl .rt-bar{min-height:52px;}
  .gds-syl .rt-seg{font-size:11.5px;padding:8px 8px;}
  .gds-syl .renew-foot{flex-direction:column;align-items:stretch;}
  .gds-syl .renew-foot .btn{width:100%;justify-content:center;}
}

/* --- plan ladder --- */
.gds-syl .ladder-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:34px;}
.gds-syl .rung{position:relative;display:flex;flex-direction:column;background:#fff;
  border:1px solid var(--rule-strong);border-radius:var(--radius);padding:26px 24px 24px;min-width:0;}
.gds-syl .rung.featured{border-color:var(--accent);box-shadow:0 10px 34px #1B3A6B1F;}
.gds-syl .rung .pop{position:absolute;top:-11px;left:24px;padding:3px 10px;border-radius:20px;
  background:var(--accent);color:#fff;font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;}
.gds-syl .rung-dev{height:132px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.gds-syl .rung-dev img{max-height:132px;width:auto;height:auto;object-fit:contain;}
.gds-syl .rung-name{font-size:23px;font-weight:700;letter-spacing:-.02em;line-height:1.1;}
.gds-syl .rung-tier{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-top:3px;}
.gds-syl .rung-price{margin-top:16px;font-size:44px;font-weight:800;letter-spacing:-.04em;line-height:1;}
.gds-syl .rung-price sup{font-size:20px;top:-.6em;font-weight:700;}
.gds-syl .rung-price span{font-size:15px;font-weight:500;color:var(--ink-3);letter-spacing:0;}
.gds-syl .rung-gst{font-size:12.5px;color:var(--ink-3);margin-top:2px;}
.gds-syl .rung-spec{margin-top:16px;padding-top:16px;border-top:1px solid var(--rule);
  font-size:14.5px;color:var(--ink-2);line-height:1.5;}
.gds-syl .rung-model{margin:12px 0 0;font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:10px;letter-spacing:.1em;color:var(--ink-3);line-height:1.7;}
.gds-syl .rung-cta{margin-top:auto;padding-top:20px;}
.gds-syl .rung .rung-cta{width:100%;justify-content:center;margin-top:20px;}
.gds-syl .ladder-fine{margin:0 0 6px;font-size:13.5px;color:var(--ink-3);line-height:1.7;max-width:78ch;}
@media (max-width:960px){.gds-syl .ladder-row{grid-template-columns:1fr;gap:26px;}
  .gds-syl .rung-dev{height:110px;}.gds-syl .rung-dev img{max-height:110px;}}

/* --- mid page call to action band --- */
.gds-syl .midcta{background:var(--accent);color:#fff;padding:34px 0;}
.gds-syl .midcta .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.gds-syl .midcta .m{font-size:20px;font-weight:600;line-height:1.4;max-width:52ch;letter-spacing:-.01em;}
.gds-syl .midcta .btn-primary{background:#fff;color:var(--accent);border-color:#fff;}
.gds-syl .midcta .btn-primary:hover{background:var(--bg);border-color:var(--bg);color:var(--accent);}
.gds-syl .midcta .btn-ghost{border-color:#FFFFFF66;color:#fff;}
.gds-syl .midcta .btn-ghost:hover{border-color:#fff;background:#FFFFFF1A;color:#fff;}
@media (max-width:820px){.gds-syl .midcta .wrap{flex-direction:column;align-items:stretch;}
  .gds-syl .midcta .m{font-size:18px;}
  .gds-syl .midcta .btn{width:100%;justify-content:center;}}

/* --- prose block --- */
.gds-syl .prose{max-width:64ch;margin-top:30px;}
.gds-syl .prose-grid{display:grid;grid-template-columns:1fr;gap:0;margin-top:4px;}
.gds-syl .prose-grid .prose{margin-top:26px;max-width:64ch;}
.gds-syl .pg-h{font-size:21px;line-height:1.25;font-weight:800;letter-spacing:-.01em;
  color:var(--ink);margin:0 0 16px;padding-bottom:14px;border-bottom:1px solid var(--rule);}
@media (min-width:1000px){
  .gds-syl .prose-grid{grid-template-columns:1fr 1fr;gap:0 64px;}
  .gds-syl .prose-grid .prose{max-width:none;margin-top:30px;}}
.gds-syl .prose p{font-size:17px;line-height:1.85;color:var(--ink-2);margin:0 0 18px;}
.gds-syl .prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1px;font-weight:600;}
.gds-syl .prose a:hover{color:var(--ink);}

/* --- consumer law note under the form --- */
.gds-syl .acl-note{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--rule);
  font-size:12px;line-height:1.7;color:var(--ink-3);}

/* --- founder block beside the form --- */
.gds-syl .founder{display:flex;gap:18px;align-items:flex-start;margin-top:26px;
  padding-top:24px;border-top:1px solid var(--rule);}
.gds-syl .founder img{flex:0 0 auto;width:104px;height:104px;border-radius:50%;object-fit:cover;}
@media (max-width:600px){.gds-syl .founder{flex-direction:column;}
  .gds-syl .founder img{width:84px;height:84px;}}

/* --- map pin pulse --- */
.gds-syl .map .pulse{animation:sylPulse 3.2s ease-out infinite;}
.gds-syl .map .pulse2{animation-delay:1.05s;}
.gds-syl .map .pulse3{animation-delay:2.1s;}
@keyframes sylPulse{0%{r:6;opacity:.55}70%{opacity:0}100%{r:26;opacity:0}}

@media (prefers-reduced-motion:reduce){
  .gds-syl .rt-anim .rt-seg,.gds-syl .rt-anim.rt-go .rt-seg{transform:none;opacity:1;transition:none;}
  .gds-syl .map .pulse{animation:none;opacity:0;}
}

/* --- review attribution, this page nests .who directly in the quote --- */
.gds-syl .quotes .who{margin-top:16px;padding-top:14px;border-top:1px solid var(--rule);font-size:14px;}
.gds-syl .quotes .who b{display:block;color:var(--ink);font-weight:700;font-size:15px;}
.gds-syl .quotes .who span{display:block;margin-top:3px;color:var(--ink-3);font-size:12.5px;line-height:1.6;}

/* ================================================================
   Custom graphics and animations, added 29 Aug 2026.
   Four scroll triggered blocks: cost stack, inclusion ring,
   plan matcher and install timeline. Plus three fixes:
   sticky footer call button, included photo, plan device size.
   All motion is disabled under prefers-reduced-motion.
   ================================================================ */

/* --- FIX 1: sticky footer, keep the call button and make it legible.
   MEASURED 29 Aug 2026: the shared file hides .btn-ghost below 1024px,
   so the Call button was not rendering in the bar at all. */
@media (max-width:1024px){
  .gds-syl .sticky-cta{background:var(--accent) !important;color:#fff !important;
    border-top:1px solid #ffffff26 !important;box-shadow:0 -10px 30px rgba(27,58,107,.28) !important;}
  .gds-syl .sticky-cta .msg{color:#fff !important;}
  .gds-syl .sticky-cta .msg .sub{color:#ffffffA8 !important;}
  .gds-syl .sticky-cta .close{color:#ffffffA8 !important;}
  .gds-syl .sticky-cta .close:hover{color:#fff !important;}
  .gds-syl .sticky-cta .btn-primary{background:#C2410C !important;border-color:#C2410C !important;color:#fff !important;}
  .gds-syl .sticky-cta .btn-ghost{display:inline-flex !important;color:#fff !important;
    border-color:rgba(255,255,255,.55) !important;background:transparent !important;
    padding:10px 16px;font-size:14px;font-weight:600;white-space:nowrap;}
  .gds-syl .sticky-cta .btn-ghost:hover{background:rgba(255,255,255,.12) !important;border-color:#fff !important;}
  .gds-syl .sticky-cta .actions{gap:8px;}
  .gds-syl .sticky-cta .btn-primary{white-space:nowrap;}
}
/* --- sticky bar layout.
   MEASURED 29 Aug 2026 on a 390px viewport: the bar stood about 110px tall,
   the label wrapped to two lines, the buttons were narrow and the theme's
   back to top control and the chat bubble both sat on top of it. It is now
   one compact row with the primary action taking the width it deserves. --- */
@media (max-width:1024px){
  .gds-syl .sticky-cta{padding:9px 12px !important;
    padding-bottom:calc(9px + env(safe-area-inset-bottom,0px)) !important;}
  .gds-syl .sticky-cta .inner{display:flex;align-items:center;gap:10px;justify-content:flex-start;}
  .gds-syl .sticky-cta .msg{flex:0 0 auto;min-width:0;font-size:15px !important;font-weight:800;
    line-height:1.1;white-space:nowrap;letter-spacing:-.01em;}
  .gds-syl .sticky-cta .msg .mo{font-size:12px;font-weight:500;color:#ffffffB0;margin-left:1px;}
  /* Grid rather than flex. A stray width rule elsewhere was stretching the
     Call button to the full bar and pushing the primary action off screen. */
  .gds-syl .sticky-cta .actions{flex:1 1 auto;min-width:0;display:grid !important;
    grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;width:auto;}
  .gds-syl .sticky-cta .btn-primary{width:auto !important;min-width:0;min-height:46px;
    padding:11px 10px;font-size:15px;font-weight:700;justify-content:center;white-space:nowrap;}
  .gds-syl .sticky-cta .btn-ghost{width:auto !important;min-width:0;min-height:46px;
    padding:11px 16px;font-size:14px;white-space:nowrap;justify-content:center;}
  .gds-syl .sticky-cta .close{flex:0 0 auto;width:30px;height:30px;padding:0;font-size:17px;
    display:flex;align-items:center;justify-content:center;opacity:.7;}
  /* keep the theme controls clear of the bar */
  #toTop,.to-top-container{bottom:82px !important;}
  #pec-chatbot-wrapper,.pec-chatbot-fixed,#pec-chat-button{bottom:82px !important;}
}
@media (max-width:400px){
  .gds-syl .sticky-cta .msg{font-size:14px !important;}
  .gds-syl .sticky-cta .btn-primary{font-size:14px;padding:11px 8px;}
  .gds-syl .sticky-cta .btn-ghost{padding:11px 13px;font-size:13px;}
}
@media (max-width:340px){
  .gds-syl .sticky-cta .msg{display:none;}
}

/* ================================================================
   Sticky bar, final layout. Written last on purpose so it wins.
   Two large actions and nothing else. No price label and no micro
   copy, because at 12px on a phone none of it was readable and it
   was squeezing the buttons that actually earn the lead.
   ================================================================ */
@media (max-width:1024px){
  .gds-syl .sticky-cta{padding:10px 12px !important;
    padding-bottom:calc(10px + env(safe-area-inset-bottom,0px)) !important;}
  .gds-syl .sticky-cta .inner{display:grid !important;
    grid-template-columns:minmax(0,1fr) auto 34px !important;gap:10px !important;
    align-items:center !important;max-width:none !important;}
  .gds-syl .sticky-cta .msg{display:none !important;}
  .gds-syl .sticky-cta .actions{display:contents !important;}
  .gds-syl .sticky-cta .btn-primary{width:100% !important;min-width:0 !important;
    min-height:54px !important;font-size:17px !important;font-weight:800 !important;
    letter-spacing:-.01em !important;padding:14px 12px !important;
    justify-content:center !important;white-space:nowrap !important;border-radius:10px !important;}
  .gds-syl .sticky-cta .btn-ghost{width:auto !important;min-width:106px !important;
    min-height:54px !important;font-size:17px !important;font-weight:700 !important;
    padding:14px 18px !important;justify-content:center !important;
    white-space:nowrap !important;border-radius:10px !important;
    border-width:1.5px !important;}
  .gds-syl .sticky-cta .close{width:34px !important;height:34px !important;
    font-size:20px !important;opacity:.75 !important;padding:0 !important;}
}
@media (max-width:360px){
  .gds-syl .sticky-cta .btn-primary{font-size:16px !important;}
  .gds-syl .sticky-cta .btn-ghost{font-size:16px !important;min-width:92px !important;padding:14px 12px !important;}
}

/* --- hero crop on a phone. Written at the end so it wins outright.
   The photograph is 16:9 and the phone frame is portrait, so a centred
   crop showed window and sky and left the machine out of the picture. --- */
/* An inline stylesheet on this site sets
   body .gds-phs .hero-image > img { object-position: center center !important }
   under 900px, which ties with anything using two classes and wins on order.
   Three classes plus two elements clears it. */
/* --- mobile hero, stacked.
   On a phone the overlay card covered almost the whole frame, so the machine
   in the photograph was never visible. The photo now gets its own 16:9 band
   at full width, with the card sitting under it and lapping over the edge. --- */
@media (max-width:768px){
  body .gds-syl.gds-phs section.hero-image,
  body .gds-phs.gds-syl section.hero-image{
    display:block !important;height:auto !important;min-height:0 !important;
    aspect-ratio:auto !important;padding:38px 0 34px !important;
    background-image:linear-gradient(160deg,#16233D 0%,#1B3A6B 58%,#264E86 100%) !important;
    background-color:#1B3A6B !important;}
  body .gds-syl.gds-phs section.hero-image>img,
  body .gds-phs.gds-syl section.hero-image>img{
    position:relative !important;inset:auto !important;display:block !important;
    width:100% !important;height:auto !important;aspect-ratio:16/9 !important;
    object-fit:cover !important;object-position:60% 55% !important;}
  body .gds-syl.gds-phs .hero-image-overlay,
  body .gds-phs.gds-syl .hero-image-overlay{
    position:relative !important;inset:auto !important;height:auto !important;
    padding:0 14px !important;display:block !important;}
  body .gds-syl.gds-phs .hero-image .hi-card,
  body .gds-phs.gds-syl .hero-image .hi-card{
    width:100% !important;max-width:none !important;margin:0 !important;
    padding:0 !important;background:transparent !important;backdrop-filter:none !important;
    box-shadow:none !important;border:0 !important;}
}
@media (min-width:769px) and (max-width:900px){
  body .gds-syl.gds-phs section.hero-image>img,
  body .gds-phs.gds-syl .hero-image>img{
    object-fit:cover !important;object-position:68% 58% !important;}
}

/* --- desktop hero, owned here rather than inherited.
   MEASURED 29 Aug 2026 in a real browser at 1895px: the image was rendering
   object-fit fill, position static, 1895 by 1058 inside a 600 tall section
   with overflow hidden, so the bottom 458px of the photograph was cut off
   and the machine went with it. Whatever used to style this hero is no
   longer on the page, so the rules live in this file now and cannot vanish.
   The crop is anchored right of centre because the card sits on the left. --- */
/* The card grows with the hero, so between roughly 769px and 1300px it filled
   almost the whole band and sat straight over the machine. Capped and pinned
   left at every desktop width so the photograph is never covered. */
@media (min-width:769px){
  body .gds-syl.gds-phs .hero-image-overlay,
  body .gds-phs.gds-syl .hero-image-overlay{
    display:flex !important;align-items:center !important;justify-content:flex-start !important;}
  body .gds-syl.gds-phs .hero-image .hi-card,
  body .gds-phs.gds-syl .hero-image .hi-card{
    width:100% !important;max-width:760px !important;
    margin-right:auto !important;flex:0 1 auto !important;
    background:transparent !important;backdrop-filter:none !important;
    box-shadow:none !important;border:0 !important;padding:0 !important;}
}

@media (min-width:769px){
  /* The photograph is painted as a background on the section as well as being
     present as an img. The img reports complete, opaque and topmost yet still
     renders as a blank band on some loads, so the hero never depends on it. */
  body .gds-syl.gds-phs section.hero-image,
  body .gds-phs.gds-syl section.hero-image{position:relative !important;overflow:hidden !important;
    background-image:linear-gradient(135deg,#16233D 0%,#1B3A6B 52%,#264E86 100%) !important;
    background-color:#1B3A6B !important;
    background-size:auto !important;background-position:0 0 !important;
    height:auto !important;min-height:0 !important;padding:64px 0 !important;}
  body .gds-syl.gds-phs section.hero-image>img,
  body .gds-phs.gds-syl section.hero-image>img{
    position:absolute !important;top:0 !important;left:0 !important;
    width:100% !important;height:100% !important;
    object-fit:cover !important;object-position:62% 46% !important;}
  body .gds-syl.gds-phs .hero-image-overlay,
  body .gds-phs.gds-syl .hero-image-overlay{position:relative !important;z-index:2 !important;}
}

/* --- minimum readable type on a phone. Nothing under 11px. --- */
@media (max-width:768px){
  .gds-syl .eyebrow,.gds-syl .rung-tier,.gds-syl .cv-k,.gds-syl .match-k,
  .gds-syl .match-tier,.gds-syl .rt-note,.gds-syl .rt-axis,.gds-syl .map-cap,
  .gds-syl .pop,.gds-syl .pop-inline,.gds-syl .plan-stack-tag{font-size:11px !important;}
  .gds-syl .syl-trust span,.gds-syl .step-when,.gds-syl .rung-model{font-size:11px !important;}
  .gds-syl .ladder-fine,.gds-syl .match-fine .mf-p,.gds-syl .cv-lab,
  .gds-syl .acl-note,.gds-syl .cmp-fine,.gds-syl .quotes .who span{font-size:13.5px !important;line-height:1.6;}
  .gds-syl .h-fine,.gds-syl .match-gst,.gds-syl .rung-gst{font-size:13px !important;}
}

/* --- FIX 2: the included photo. No sticky, and the image fills the frame,
   so nothing slides over the copy on the way back up the page. */
.gds-syl .included .photo{position:static;align-self:start;aspect-ratio:4/5;max-height:720px;
  border-radius:8px;overflow:hidden;background:#EFEBE3;}
.gds-syl .included .photo img{display:block;width:100%;height:100%;object-fit:cover;}

/* --- FIX 3: plan device images, larger --- */
.gds-syl .rung-dev{height:196px;margin-bottom:16px;}
.gds-syl .rung-dev img{max-height:196px;max-width:100%;width:auto;height:auto;object-fit:contain;}
@media (max-width:960px){
  .gds-syl .rung-dev{height:170px;}
  .gds-syl .rung-dev img{max-height:170px;}
}

/* --- shared reveal for the graphics --- */
.gds-syl .gfx{opacity:0;transform:translateY(20px);
  transition:opacity .65s ease,transform .65s cubic-bezier(.16,.84,.44,1);}
.gds-syl .gfx.in{opacity:1;transform:none;}

/* ================= G1 cost stack ================= */
.gds-syl .costviz{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:38px;align-items:stretch;}
.gds-syl .cv{background:#fff;border:1px solid var(--rule-strong);border-radius:var(--radius);
  padding:26px 24px 22px;display:flex;flex-direction:column;min-width:0;}
.gds-syl .cv.win{border-color:var(--accent);box-shadow:0 12px 36px #1B3A6B1A;}
.gds-syl .cv-k{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);}
.gds-syl .cv.win .cv-k{color:var(--accent);}
.gds-syl .cv-t{font-size:20px;font-weight:800;letter-spacing:-.015em;line-height:1.25;margin:8px 0 20px;}
.gds-syl .cv-rows{display:grid;gap:10px;margin-bottom:18px;}
.gds-syl .cv-row{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:center;}
.gds-syl .cv-lab{font-size:12.5px;color:var(--ink-2);line-height:1.35;}
.gds-syl .cv-track{height:16px;border-radius:8px;background:#EFEBE3;overflow:hidden;}
.gds-syl .cv-fill{height:100%;width:0;border-radius:8px;background:#C2410C;
  transition:width .85s cubic-bezier(.16,.84,.44,1);}
.gds-syl .cv-row.base .cv-fill{background:#8A8792;}
.gds-syl .cv.win .cv-fill{background:var(--accent);}
.gds-syl .costviz.go .cv-fill{width:var(--w,50%);}
.gds-syl .costviz.go .cv-row:nth-child(2) .cv-fill{transition-delay:.10s;}
.gds-syl .costviz.go .cv-row:nth-child(3) .cv-fill{transition-delay:.20s;}
.gds-syl .costviz.go .cv-row:nth-child(4) .cv-fill{transition-delay:.30s;}
.gds-syl .costviz.go .cv-row:nth-child(5) .cv-fill{transition-delay:.40s;}
.gds-syl .cv-foot{margin-top:auto;padding-top:16px;border-top:1px solid var(--rule);
  font-size:14px;line-height:1.6;color:var(--ink-2);}
.gds-syl .cv-foot b{display:block;color:var(--ink);font-size:16px;font-weight:800;margin-bottom:4px;}
.gds-syl .cv-foot .cv-p,.gds-syl .cv-foot p{margin:0;font-size:14px;line-height:1.6;color:var(--ink-2);}
.gds-syl .cv-ticks{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:9px;}
.gds-syl .cv-ticks li{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:start;
  font-size:14px;line-height:1.5;color:var(--ink-2);}
.gds-syl .cv-ticks .tk{color:var(--accent);font-weight:800;line-height:1.5;}
.gds-syl .ring-fig{line-height:0;}
.gds-syl .match-slider{margin:0;}
.gds-syl .match-cta{margin:0;}
.gds-syl .match-scale>div{white-space:nowrap;}
.gds-syl .match-fine{grid-column:1/-1;padding-top:20px;border-top:1px solid #ffffff29;}
.gds-syl .match-fine .mf-p,.gds-syl .match-fine p{margin:0;font-size:12.5px;line-height:1.7;color:#ffffff9C;}
.gds-syl .step-body{min-width:0;display:flex;flex-direction:column;height:100%;}

/* --- section level call to action.
   MEASURED 29 Aug 2026: the longest run of page with no call to action was
   4,468px, from the mid page band through the guide and the eleven questions
   to the form. Two blocks close that to roughly 2,000px. --- */
.gds-syl .sec-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;
  flex-wrap:wrap;margin-top:38px;padding-top:26px;border-top:1px solid var(--rule);}
.gds-syl .sec-cta .sc-t{font-size:17px;font-weight:600;line-height:1.5;color:var(--ink);
  max-width:52ch;letter-spacing:-.005em;}
.gds-syl .sec-cta .sc-b{display:flex;gap:12px;flex-wrap:wrap;}
@media (max-width:820px){
  .gds-syl .sec-cta{flex-direction:column;align-items:stretch;gap:16px;}
  .gds-syl .sec-cta .sc-t{font-size:16px;}
  .gds-syl .sec-cta .sc-b{flex-direction:column;}
  .gds-syl .sec-cta .btn{width:100%;justify-content:center;}
}
.gds-syl .steps{align-items:stretch;}
.gds-syl .step-when{margin-top:auto;align-self:flex-start;}
.gds-syl .step-body p{margin-bottom:12px;}

/* left cost card total block */
.gds-syl .cv-tot{margin-top:auto;padding-top:4px;}
.gds-syl .cv-tot-k{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);}
.gds-syl .cv-big.muted{color:var(--ink-3);margin:6px 0 6px;}
.gds-syl .cv-big .cb-q{font-size:44px;letter-spacing:-.04em;}
.gds-syl .cv-big .cb-u{font-size:14px;font-weight:500;color:var(--ink-3);letter-spacing:0;margin-left:8px;}
.gds-syl .cv-tot-s{font-size:13.5px;line-height:1.6;color:var(--ink-2);margin-bottom:16px;}
.gds-syl .cv.win .cv-big{margin-top:auto;}

/* matcher colour, forced above the theme heading rules */
#matcher h3{color:#fff !important;}
#matcher .match-plan,#matcher .match-price,#matcher .match-vol{color:#fff !important;}
#matcher .match-s{color:#ffffffC4 !important;}
#matcher .btn-primary{background:#C2410C !important;border-color:#C2410C !important;color:#fff !important;}
#matcher .btn-primary:hover{background:#A8380B !important;border-color:#A8380B !important;}

/* --- trust row above the quote form.
   RENAMED 29 Aug 2026: the first version used .form-trust, which this site
   already owns elsewhere, and one of those rules is display:block !important,
   so the grid never applied and the four figures stacked in one column. --- */
.gds-syl .syl-trust{display:grid !important;grid-template-columns:repeat(4,1fr);gap:10px;
  margin:0 0 20px;padding:16px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  text-align:center !important;}
.gds-syl .syl-trust .st-i{text-align:center;min-width:0;}
.gds-syl .syl-trust b{display:block;font-size:20px;font-weight:800;letter-spacing:-.02em;color:var(--ink);line-height:1.1;}
.gds-syl .syl-trust span{display:block !important;margin-top:5px;font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);line-height:1.35;text-align:center !important;}
.gds-syl .syl-trust p{margin:0;}
@media (max-width:420px){
  .gds-syl .syl-trust{grid-template-columns:repeat(2,1fr);gap:14px 10px;}
}

/* --- the theme decorates every blockquote with its own quote glyphs, a left
   rule and a tinted panel, which showed up as two stray straight quote marks
   above and below the featured review on a phone. Neutralised here, then the
   page's own curly quotes are put back on the first and last paragraph. --- */
.gds-syl blockquote{border:0 !important;border-left:0 !important;background:transparent !important;
  padding:0 !important;margin-left:0 !important;quotes:none !important;box-shadow:none !important;}
.gds-syl blockquote::before,.gds-syl blockquote::after{content:none !important;display:none !important;}
.gds-syl blockquote p:empty,.gds-syl blockquote p:blank{display:none !important;}

/* --- review stars in gold, and no stray closing quote on an empty line --- */
.gds-syl .quotes .who .st{color:#E8A33D;letter-spacing:.08em;font-size:13px;}
.gds-syl .quote-big blockquote>p:empty{display:none;}
.gds-syl .quote-big blockquote>p:empty::after{content:none;}
.gds-syl .quote-big blockquote>p:last-of-type::after{content:'\201D';color:var(--ink-3);}
.gds-syl .quote-big blockquote>:last-child::after{content:none;}

/* --- plan device images.
   MEASURED 29 Aug 2026: the frame was 313 wide by 196 tall while the cropped
   assets are square, so object-fit contain rendered the machine at 196px and
   left 117px of dead width either side. The frame is now square and fills the
   card, which takes the machine from 196px to roughly 300px. --- */
.gds-syl .rung-dev{height:auto !important;aspect-ratio:1/1;max-height:340px;
  width:100%;margin-bottom:18px;padding:0;}
.gds-syl .rung-dev img{width:100%;height:100%;max-height:none;object-fit:contain;object-position:center;}
@media (max-width:960px){
  .gds-syl .rung-dev{aspect-ratio:1/1;max-height:300px;}
  .gds-syl .rung-dev img{max-height:none;}
}

/* ================= mobile hero and touch targets =================
   MEASURED 29 Aug 2026: on a 390px viewport the hero ran H1, three lede
   paragraphs, a two item list and only then the CTA. The CTA now sits
   directly under the ledes and the four hero stats are hidden, because
   the trust band and the plan stack already carry the same four proofs. */
@media (max-width:768px){
  .gds-syl .hero-grid>div:first-child{display:flex;flex-direction:column;}
  .gds-syl .hero-grid>div:first-child .cta-row{order:1;}
  .gds-syl .hero-grid>div:first-child .lede-list{order:2;}
  .gds-syl .hero-grid>div:first-child .h-fine{order:3;}
  .gds-syl .hero-meta{display:none;}
  .gds-syl .btn{min-height:52px;padding:14px 20px;justify-content:center;}
  .gds-syl .cta-row .btn{width:100%;}
  .gds-syl .sticky-cta .btn{min-height:48px;}
  .gds-syl .faq summary{min-height:52px;}
  .gds-syl input.match-range{height:8px;}
  .gds-syl input.match-range::-webkit-slider-thumb{width:32px;height:32px;}
  .gds-syl input.match-range::-moz-range-thumb{width:32px;height:32px;}
  .gds-syl .match-slider{padding:8px 0;}
  /* MEASURED 29 Aug 2026: section headings ran to four lines at 390px,
     which pushed the disclosure toggles below the fold. */
  /* MEASURED 29 Aug 2026 on a 390px viewport at 2x: the hero image was
     being served at 390x217 into a 390x498 box, a 2.3x vertical upscale
     before the device pixel ratio, which is why the header photo read as
     missing on an iPhone. The sizes attributes now request a candidate
     large enough for the crop, and the hero carries a solid colour so a
     slow image never shows as a white band. */
  .gds-syl .hero-image{background:#2A2A30;}
  /* The source is 16:9 and the phone crop is portrait, so a centred crop
     showed window and sky and cut the machine out of frame. The machine
     sits centre right in the photograph, so the crop is anchored there. */
  .gds-syl .hero-image img{object-position:66% 55% !important;}
  /* The Sydney metro caption collided with the card on a phone and added
     nothing the trust band below does not already say. */
  .gds-syl .hero-image .cap{display:none;}
  .gds-syl h2.display{font-size:clamp(26px,7.2vw,32px);line-height:1.14;}
  .gds-syl .s-head{gap:10px;}
  .gds-syl .h-aside{font-size:15px;}
}
.gds-syl .cv.win .cv-foot b{color:var(--accent);}
.gds-syl .cv-big{font-size:38px;font-weight:800;letter-spacing:-.04em;line-height:1;margin:2px 0 14px;}
.gds-syl .cv-big sup{font-size:19px;top:-.6em;font-weight:700;}
.gds-syl .cv-big span{font-size:14px;font-weight:500;color:var(--ink-3);letter-spacing:0;}
@media (max-width:900px){
  .gds-syl .costviz{grid-template-columns:1fr;gap:20px;}
  .gds-syl .cv-row{grid-template-columns:104px 1fr;}
}

/* ================= G2 inclusion ring ================= */
.gds-syl .ringwrap{display:grid;grid-template-columns:auto 1fr;gap:44px;align-items:center;
  margin-top:36px;background:#fff;border:1px solid var(--rule-strong);
  border-radius:var(--radius);padding:32px 30px;}
.gds-syl .ring{width:260px;height:260px;flex:0 0 auto;}
.gds-syl .ring circle{fill:none;stroke-linecap:butt;}
.gds-syl .ring .seg{stroke-width:26;stroke-dasharray:0 999;
  transition:stroke-dasharray 1s cubic-bezier(.16,.84,.44,1);}
.gds-syl .ringwrap.go .ring .seg{stroke-dasharray:var(--d);}
.gds-syl .ring .seg:nth-of-type(3){transition-delay:.12s;}
.gds-syl .ring .seg:nth-of-type(4){transition-delay:.24s;}
.gds-syl .ring .seg:nth-of-type(5){transition-delay:.36s;}
.gds-syl .ring .seg:nth-of-type(6){transition-delay:.48s;}
.gds-syl .ring text{font-family:'Manrope',sans-serif;text-anchor:middle;fill:var(--ink);}
.gds-syl .ring .rc-n{font-size:34px;font-weight:800;letter-spacing:-.03em;}
.gds-syl .ring .rc-s{font-size:10.5px;font-weight:600;fill:var(--ink-3);letter-spacing:.1em;}
.gds-syl .ringkey{display:grid;gap:12px;min-width:0;margin:0;padding:0;}
.gds-syl .ringkey li{list-style:none;display:grid;grid-template-columns:14px 1fr;gap:12px;
  align-items:start;font-size:15px;color:var(--ink-2);line-height:1.55;}
.gds-syl .ringkey li i{width:12px;height:12px;border-radius:3px;margin-top:5px;display:block;}
.gds-syl .ringkey li b{color:var(--ink);font-weight:700;}
.gds-syl .ringkey li.out{padding-top:14px;border-top:1px dashed var(--rule-strong);margin-top:4px;}
.gds-syl .ringkey li.out i{background:transparent;border:1px dashed var(--ink-3);}
@media (max-width:820px){
  .gds-syl .ringwrap{grid-template-columns:1fr;gap:26px;justify-items:center;padding:26px 20px;}
  .gds-syl .ring{width:220px;height:220px;}
  .gds-syl .ringkey{width:100%;}
}

/* ================= G3 plan matcher ================= */
.gds-syl .match{margin-top:36px;background:var(--accent);color:#fff;
  border-radius:var(--radius);padding:34px 32px;display:grid;
  grid-template-columns:1.25fr 1fr;gap:38px;align-items:center;}
.gds-syl .match-k{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10.5px;
  letter-spacing:.14em;text-transform:uppercase;color:#ffffffA6;}
.gds-syl .match h3{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.2;margin:8px 0 6px;color:#fff;}
.gds-syl .match p.match-s{font-size:14.5px;line-height:1.6;color:#ffffffC4;margin:0 0 22px;max-width:46ch;}
.gds-syl .match-vol{font-size:40px;font-weight:800;letter-spacing:-.035em;line-height:1;}
.gds-syl .match-vol span:last-child{font-size:15px;font-weight:500;color:#ffffffB0;letter-spacing:0;margin-left:8px;}
.gds-syl input.match-range{-webkit-appearance:none;appearance:none;width:100%;height:6px;
  border-radius:3px;background:#ffffff3D;margin:18px 0 10px;outline:none;}
.gds-syl input.match-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;
  width:26px;height:26px;border-radius:50%;background:#fff;cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,.28);border:0;}
.gds-syl input.match-range::-moz-range-thumb{width:26px;height:26px;border-radius:50%;
  background:#fff;cursor:pointer;border:0;box-shadow:0 2px 8px rgba(0,0,0,.28);}
.gds-syl input.match-range:focus-visible{box-shadow:0 0 0 3px #ffffff66;}
.gds-syl .match-scale{display:flex;justify-content:space-between;
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10.5px;
  letter-spacing:.1em;color:#ffffff8F;}
.gds-syl .match-out{background:#ffffff14;border:1px solid #ffffff2E;border-radius:var(--radius);padding:24px 22px;}
.gds-syl .match-plan{font-size:27px;font-weight:800;letter-spacing:-.02em;line-height:1.1;}
.gds-syl .match-tier{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;color:#ffffffA6;margin-top:4px;}
.gds-syl .match-price{font-size:46px;font-weight:800;letter-spacing:-.045em;line-height:1;margin:16px 0 2px;}
.gds-syl .match-price .match-from{font-style:normal;font-size:15px;font-weight:600;
  color:#ffffffB0;letter-spacing:0;margin-right:8px;vertical-align:middle;}
.gds-syl .match-price sup{font-size:21px;top:-.62em;font-weight:700;}
.gds-syl .match-price span:last-child{font-size:15px;font-weight:500;color:#ffffffB0;letter-spacing:0;}
.gds-syl .match-gst{font-size:12.5px;color:#ffffff9C;}
.gds-syl .match-note{font-size:13px;line-height:1.6;color:#ffffffC4;margin:14px 0 18px;min-height:63px;}
.gds-syl .match .btn-primary{background:#fff;color:var(--accent);border-color:#fff;width:100%;justify-content:center;}
.gds-syl .match .btn-primary:hover{background:#F4F1EA;border-color:#F4F1EA;color:var(--accent);}
.gds-syl .match-fine{grid-column:1/-1;margin:0;padding-top:20px;border-top:1px solid #ffffff29;
  font-size:12.5px;line-height:1.7;color:#ffffff9C;}
@media (max-width:900px){
  .gds-syl .match{grid-template-columns:1fr;gap:26px;padding:26px 20px;}
  .gds-syl .match h3{font-size:22px;}
  .gds-syl .match-note{min-height:0;}
}

/* ================= G4 install timeline ================= */
.gds-syl .steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);
  gap:26px;margin-top:44px;}
.gds-syl .steps::before{content:'';position:absolute;left:22px;right:22px;top:21px;height:2px;
  background:var(--rule-strong);}
.gds-syl .steps::after{content:'';position:absolute;left:22px;top:21px;height:2px;width:0;
  background:var(--accent);transition:width 1.25s cubic-bezier(.16,.84,.44,1);}
.gds-syl .steps.go::after{width:calc(100% - 44px);}
.gds-syl .step{position:relative;min-width:0;}
.gds-syl .step-dot{position:relative;z-index:2;width:44px;height:44px;border-radius:50%;
  background:var(--bg);border:2px solid var(--rule-strong);display:flex;align-items:center;
  justify-content:center;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:13px;
  font-weight:500;color:var(--ink-3);transition:background .4s ease,border-color .4s ease,color .4s ease;}
.gds-syl .steps.go .step-dot{background:var(--accent);border-color:var(--accent);color:#fff;}
.gds-syl .steps.go .step:nth-child(2) .step-dot{transition-delay:.3s;}
.gds-syl .steps.go .step:nth-child(3) .step-dot{transition-delay:.6s;}
.gds-syl .steps.go .step:nth-child(4) .step-dot{transition-delay:.9s;}
.gds-syl .step h3{font-size:17px;font-weight:800;letter-spacing:-.01em;margin:18px 0 6px;line-height:1.3;}
.gds-syl .step p{font-size:14px;line-height:1.65;color:var(--ink-2);margin:0;}
.gds-syl .step-when{display:inline-block;margin-top:10px;padding:3px 9px;border-radius:20px;
  background:#1B3A6B14;color:var(--accent);font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:10px;letter-spacing:.1em;text-transform:uppercase;}
@media (max-width:900px){
  .gds-syl .steps{grid-template-columns:1fr;gap:24px;}
  .gds-syl .steps::before{left:21px;right:auto;top:22px;bottom:22px;height:auto;width:2px;}
  .gds-syl .steps::after{left:21px;top:22px;height:0;width:2px;
    transition:height 1.25s cubic-bezier(.16,.84,.44,1);}
  .gds-syl .steps.go::after{width:2px;height:calc(100% - 44px);}
  .gds-syl .step{display:grid;grid-template-columns:44px 1fr;gap:16px;align-items:start;}
  .gds-syl .step h3{margin:2px 0 6px;}
  .gds-syl .step-body{grid-column:2;}
}

/* --- reduced motion --- */
@media (prefers-reduced-motion:reduce){
  .gds-syl .gfx{opacity:1;transform:none;transition:none;}
  .gds-syl .cv-fill{transition:none;width:var(--w,50%);}
  .gds-syl .ring .seg{transition:none;stroke-dasharray:var(--d);}
  .gds-syl .steps::after{transition:none;}
  .gds-syl .step-dot{transition:none;background:var(--accent);border-color:var(--accent);color:#fff;}
}

/* ================================================================
   HERO, rebuilt 29 Aug 2026 after the fake harbour photograph came off.
   Photograph: attachment 50670, a real Kyocera multifunction printer with
   a technician beside it. Two columns on desktop so the machine is never
   cropped by guesswork, copy on a navy panel at the left and the
   photograph in its own column at the right. Written last in the file so
   it wins on document order over every earlier hero rule.
   ================================================================ */
@media (min-width:769px){
  body .gds-syl.gds-phs section.hero-image,
  body .gds-phs.gds-syl section.hero-image{
    display:grid !important;
    grid-template-columns:minmax(0,46fr) minmax(0,54fr) !important;
    align-items:stretch !important;gap:0 !important;
    position:relative !important;overflow:hidden !important;
    height:auto !important;min-height:0 !important;aspect-ratio:auto !important;
    padding:0 !important;
    background-image:linear-gradient(135deg,#16233D 0%,#1B3A6B 58%,#264E86 100%) !important;
    background-color:#16233D !important;background-size:cover !important;
    background-position:center !important;background-repeat:no-repeat !important;}
  body .gds-syl.gds-phs section.hero-image>img,
  body .gds-phs.gds-syl section.hero-image>img{
    position:relative !important;inset:auto !important;
    grid-column:2 !important;grid-row:1 !important;
    display:block !important;width:100% !important;height:100% !important;
    min-height:530px !important;max-height:none !important;
    object-fit:cover !important;object-position:76% 50% !important;
    z-index:1 !important;margin:0 !important;}
  body .gds-syl.gds-phs .hero-image-overlay,
  body .gds-phs.gds-syl .hero-image-overlay{
    grid-column:1 !important;grid-row:1 !important;
    position:relative !important;z-index:2 !important;inset:auto !important;
    height:auto !important;max-width:none !important;width:auto !important;
    display:flex !important;align-items:center !important;justify-content:flex-start !important;
    background:none !important;
    padding:60px clamp(30px,3.2vw,52px) 60px max(28px,calc((100vw - 1240px)/2)) !important;}
  body .gds-syl.gds-phs .hero-image .hi-card,
  body .gds-phs.gds-syl .hero-image .hi-card{
    max-width:560px !important;width:100% !important;
    background:transparent !important;backdrop-filter:none !important;
    box-shadow:none !important;border:0 !important;padding:0 !important;margin:0 !important;
    display:flex !important;flex-direction:column !important;align-items:flex-start !important;}
  /* a soft seam so the navy panel meets the photograph without a hard edge */
  body .gds-syl.gds-phs section.hero-image::after,
  body .gds-phs.gds-syl section.hero-image::after{
    content:'';position:absolute;top:0;bottom:0;left:46%;width:110px;
    background:linear-gradient(90deg,#1B3A6BE6 0%,#1B3A6B00 100%);
    pointer-events:none;z-index:1;}
  body .gds-syl.gds-phs .hero-image .hero-image-overlay p.hi-headline,
  body .gds-phs.gds-syl .hero-image .hero-image-overlay p.hi-headline{
    max-width:none !important;font-size:clamp(32px,3.5vw,52px) !important;}
}
@media (min-width:769px) and (max-width:1023px){
  body .gds-syl.gds-phs section.hero-image,
  body .gds-phs.gds-syl section.hero-image{
    grid-template-columns:minmax(0,52fr) minmax(0,48fr) !important;}
  body .gds-syl.gds-phs section.hero-image>img,
  body .gds-phs.gds-syl section.hero-image>img{min-height:440px !important;object-position:78% 50% !important;}
  body .gds-syl.gds-phs section.hero-image::after,
  body .gds-phs.gds-syl section.hero-image::after{left:52%;width:70px;}
}

/* mobile, the photograph gets its own band above the copy so the machine
   is large and clearly visible, then the copy sits on the navy below */
@media (max-width:768px){
  body .gds-syl.gds-phs section.hero-image,
  body .gds-phs.gds-syl section.hero-image{
    display:block !important;height:auto !important;min-height:0 !important;
    aspect-ratio:auto !important;padding:0 0 30px !important;
    background-image:linear-gradient(160deg,#16233D 0%,#1B3A6B 70%,#264E86 100%) !important;
    background-color:#16233D !important;}
  body .gds-syl.gds-phs section.hero-image>img,
  body .gds-phs.gds-syl section.hero-image>img,
  body .gds-syl.gds-phs .hero-image img,
  body .gds-phs.gds-syl .hero-image img{
    position:relative !important;inset:auto !important;display:block !important;
    width:100% !important;height:auto !important;aspect-ratio:4/3 !important;
    max-height:none !important;min-height:0 !important;
    object-fit:cover !important;object-position:72% 52% !important;z-index:1 !important;}
  body .gds-syl.gds-phs section.hero-image::after,
  body .gds-phs.gds-syl section.hero-image::after{display:none !important;}
  body .gds-syl.gds-phs .hero-image-overlay,
  body .gds-phs.gds-syl .hero-image-overlay{
    position:relative !important;inset:auto !important;height:auto !important;
    display:block !important;background:none !important;padding:24px 18px 0 !important;}
  body .gds-syl.gds-phs .hero-image .hi-card,
  body .gds-phs.gds-syl .hero-image .hi-card{
    width:100% !important;max-width:none !important;margin:0 !important;padding:0 !important;
    background:transparent !important;border:0 !important;box-shadow:none !important;
    backdrop-filter:none !important;}
}

/* shared hero type */
.gds-syl .hero-image .hi-eyebrow{font-size:13px;line-height:1.6;letter-spacing:.01em;
  color:#FFFFFFCC;margin:0 0 16px;font-weight:500;}
.gds-syl .hero-image .hi-eyebrow strong{color:#fff;font-weight:700;}
.gds-syl .hero-image .hi-sub{font-size:clamp(16px,1.25vw,18.5px);line-height:1.62;
  color:#FFFFFFDE;margin:0;max-width:46ch;}
.gds-syl .hero-image .hi-fine{font-size:13px;line-height:1.6;color:#FFFFFF9E;margin:16px 0 0;max-width:44ch;}
.gds-syl .hero-image .hi-card .btn-primary{min-height:54px;font-size:17px;}
@media (max-width:768px){
  .gds-syl .hero-image .hi-eyebrow{font-size:12.5px;margin:0 0 12px;}
  .gds-syl .hero-image .hi-sub{font-size:16px;}
  .gds-syl .hero-image .hi-fine{font-size:12.5px;}
  .gds-syl .hero-image .hi-card .btn-primary{width:100%;justify-content:center;}
}

/* hero corrections after a real browser check at 1895px, 29 Aug 2026:
   wpautop leaves an empty paragraph beside the photograph which became a
   grid item and added a 21px navy strip under the image, and the crop at
   76 per cent clipped the technician's arm at the right edge. */
@media (min-width:769px){
  body .gds-syl.gds-phs section.hero-image>p:empty,
  body .gds-phs.gds-syl section.hero-image>p:empty{display:none !important;}
  body .gds-syl.gds-phs section.hero-image>img,
  body .gds-phs.gds-syl section.hero-image>img{object-position:100% 50% !important;}
  body .gds-syl.gds-phs section.hero-image::after,
  body .gds-phs.gds-syl section.hero-image::after{
    width:170px !important;
    background:linear-gradient(90deg,#1B3A6B 0%,#1B3A6BD9 34%,#1B3A6B00 100%) !important;}
}
@media (min-width:769px) and (max-width:1023px){
  body .gds-syl.gds-phs section.hero-image>img,
  body .gds-phs.gds-syl section.hero-image>img{object-position:100% 50% !important;}
  body .gds-syl.gds-phs section.hero-image::after,
  body .gds-phs.gds-syl section.hero-image::after{width:100px !important;}
}
@media (max-width:768px){
  body .gds-syl.gds-phs section.hero-image>p:empty,
  body .gds-phs.gds-syl section.hero-image>p:empty{display:none !important;}
}

/* phone crop nudge, measured at 390px in Chromium: at 72 per cent the
   technician's shoulder fell outside the frame. */
@media (max-width:768px){
  body .gds-syl.gds-phs section.hero-image>img,
  body .gds-phs.gds-syl section.hero-image>img,
  body .gds-syl.gds-phs .hero-image img,
  body .gds-phs.gds-syl .hero-image img{object-position:88% 52% !important;}
}

/* ================= exit rescue bar, content intent modules 28 and 33 =====
   One bar, once per session, above the sticky call to action, never covering
   the page content. Written 29 Aug 2026. ================================ */
.gds-syl #sylRescue{position:fixed;left:0;right:0;bottom:0;z-index:9998;
  transform:translateY(110%);transition:transform .28s cubic-bezier(.16,.84,.44,1);
  background:#16233D;border-top:3px solid #E8A33D;
  box-shadow:0 -10px 34px rgba(11,20,38,.34);}
.gds-syl #sylRescue.on{transform:translateY(0);}
.gds-syl #sylRescue .sr-in{position:relative;max-width:1240px;margin:0 auto;
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:22px;
  padding:16px 56px 16px 24px;}
.gds-syl #sylRescue .sr-msg{margin:0;font-size:15.5px;line-height:1.55;color:#FFFFFFDE;}
.gds-syl #sylRescue .sr-msg strong{color:#fff;}
.gds-syl #sylRescue .sr-act{display:flex;gap:10px;align-items:center;}
.gds-syl #sylRescue .btn{min-height:48px;font-size:15.5px;white-space:nowrap;}
.gds-syl #sylRescue .sr-call{color:#fff;border-color:#FFFFFF5C;background:transparent;}
.gds-syl #sylRescue .sr-call:hover{background:#FFFFFF1A;border-color:#FFFFFF8A;color:#fff;}
.gds-syl #sylRescue .sr-x{position:absolute;top:8px;right:10px;width:36px;height:36px;
  border:0;background:transparent;color:#FFFFFFA6;font-size:24px;line-height:1;
  cursor:pointer;border-radius:8px;}
.gds-syl #sylRescue .sr-x:hover{background:#FFFFFF1A;color:#fff;}
@media (max-width:900px){
  .gds-syl #sylRescue .sr-in{grid-template-columns:1fr;gap:12px;padding:16px 50px 16px 16px;}
  .gds-syl #sylRescue .sr-msg{font-size:14.5px;}
  .gds-syl #sylRescue .sr-act{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  .gds-syl #sylRescue .btn{width:100%;justify-content:center;font-size:15px;}
}
/* the sticky quote bar sits above it, never behind it */
.gds-syl #sylRescue.on ~ #sticky-cta,
.gds-syl #sticky-cta{z-index:9997;}
@media (prefers-reduced-motion:reduce){
  .gds-syl #sylRescue{transition:none;}
}

/* exit rescue, phone overflow fix. MEASURED at 390px in Chromium: the two
   action buttons carry white-space nowrap, and an auto sized grid column
   cannot shrink below its content, so the whole bar grew past the viewport
   and the close control landed on top of the sentence. */
.gds-syl #sylRescue,
.gds-syl #sylRescue *{box-sizing:border-box;}
.gds-syl #sylRescue{max-width:100vw;overflow:hidden;}
.gds-syl #sylRescue .sr-msg{overflow-wrap:anywhere;}
@media (max-width:900px){
  .gds-syl #sylRescue .sr-in{grid-template-columns:minmax(0,1fr) !important;
    padding:16px 48px 16px 16px !important;}
  .gds-syl #sylRescue .sr-act{grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;}
  .gds-syl #sylRescue .btn{white-space:normal !important;font-size:14.5px !important;
    padding-left:10px !important;padding-right:10px !important;line-height:1.25 !important;
    min-width:0 !important;}
}
@media (max-width:400px){
  .gds-syl #sylRescue .sr-act{grid-template-columns:minmax(0,1fr) !important;}
}
/* one bar at a time on a phone: the sticky quote bar steps back while the
   rescue is showing, rather than stacking two dark bars on top of each other */
.gds-syl:has(#sylRescue.on) #sticky-cta{opacity:0 !important;pointer-events:none !important;}


/* ================================================================
   Mobile legibility and tap target floor, added 29 August 2026.
   MEASURED in Chromium at 390px on the live page:
     p.plan-stack-fine rendered at 10px, under the 11px floor this design
     system sets for phone type everywhere else.
     The sticky bar close control rendered 34px tall, under the 48px
     touch target the site uses on every other control.
   ================================================================ */
@media (max-width:720px){
  .gds-syl p.plan-stack-fine{font-size:11.5px !important;line-height:1.6 !important;}
}
.gds-syl .sticky-cta .close{min-width:48px !important;min-height:48px !important;
  display:inline-flex !important;align-items:center !important;justify-content:center !important;}

/* pr-tier legibility, 29 August 2026. MEASURED at 390px: the plan tier
   labels in the hero plan stack rendered at 10px, under the 11px floor. */
@media (max-width:720px){
  .gds-syl .plan-row .pr-tier{font-size:11px !important;}
}
.gds-syl .plan-row .pr-tier{font-size:11px !important;}


/* --- Sydney page, 30 August 2026 ---
   Two fixes carried across from the photocopier lease page. The comparison
   marks are interface, so the same treatment is correct on both. The rating
   panel is deliberately a different shape from the one on 50842, a light
   horizontal bar rather than a navy block, so the two pages do not read as
   clones of each other. */
.gds-syl .compare .cmp-good,.gds-syl .compare .cmp-bad,
.gds-phs .compare .cmp-good,.gds-phs .compare .cmp-bad{
  padding-left:44px !important;background-repeat:no-repeat;
  background-position:14px 1.05em;background-size:20px 20px;}
.gds-syl .compare .cmp-good,.gds-phs .compare .cmp-good{
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='10' fill='%231B3A6B'/%3E%3Cpath d='M5.6 10.3l2.9 2.9 5.9-6' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-color:#FFFFFF !important;box-shadow:inset 3px 0 0 #1B3A6B;}
.gds-syl .compare .cmp-bad,.gds-phs .compare .cmp-bad{
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='10' fill='%23A8A6B0'/%3E%3Cpath d='M6.6 6.6l6.8 6.8M13.4 6.6l-6.8 6.8' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");background-color:#16151A08 !important;color:var(--ink-2);}
.gds-syl .compare .ch-best,.gds-phs .compare .ch-best{background:#1B3A6B !important;}
.gds-syl .compare .ch-best .ch-lbl,.gds-phs .compare .ch-best .ch-lbl{color:#FFFFFF !important;}
.gds-syl .compare .ch-best .ch-sub,.gds-phs .compare .ch-best .ch-sub{color:#FFFFFFC4 !important;}
@media (max-width:768px){
  .gds-syl .compare .cmp-good,.gds-syl .compare .cmp-bad,
  .gds-phs .compare .cmp-good,.gds-phs .compare .cmp-bad{
    padding-left:40px !important;background-position:12px 1.0em;background-size:18px 18px;}
}

/* verified rating bar, reviews section */
.syl-proof{margin:20px 0 26px;}
.sp-bar{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;background:#FFFFFF;
  border:1px solid var(--rule,#16151A1F);border-left:5px solid #1B3A6B;border-radius:12px;padding:16px 18px;}
.sp-stars{width:132px;height:auto;flex:0 0 auto;}
.sp-stars use{fill:#E8A33D;}
.sp-txt{display:flex;flex-direction:column;gap:2px;flex:1 1 160px;}
.sp-hi{font-family:'Manrope',sans-serif;font-weight:800;font-size:20px;color:var(--ink);letter-spacing:-0.01em;}
.sp-hi b{font-size:26px;}
.sp-lo{font-size:13.5px;color:var(--ink-3);}
.sp-tag{flex:0 0 auto;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.13em;
  text-transform:uppercase;color:#1B3A6B;background:#1B3A6B14;border-radius:999px;padding:6px 11px;}
.gds-syl .pcl-figcap,.gds-phs .pcl-figcap{margin:12px 0 0;font-size:13.5px;line-height:1.6;color:var(--ink-3);}
