header.hero .wrap{
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:64px;
    align-items:center;
  }
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:13px;
    color:var(--amber);
    text-transform:uppercase;
    letter-spacing:0.14em;
    margin-bottom:18px;
    display:block;
  }
  h1.headline{
    font-size:52px;
    font-weight:700;
    line-height:1.05;
    color:var(--text);
  }
  h1.headline em{
    font-style:normal;
    color:var(--amber);
  }
  .sub{
    margin-top:22px;
    font-size:18px;
    color:var(--text-muted);
    max-width:46ch;
    line-height:1.6;
  }
  .cta-row{
    margin-top:34px;
    display:flex;
    gap:16px;
    align-items:center;
    flex-wrap:wrap;
  }
  .btn{
    display:inline-block;
    background:var(--amber);
    color:var(--ink);
    font-weight:600;
    font-family:'Barlow', sans-serif;
    font-size:15.5px;
    padding:14px 24px;
    border-radius:3px;
    text-decoration:none;
    border:none;
    cursor:pointer;
    transition:background 0.15s ease;
  }
  .btn:hover{background:#f0b45a;}
  .btn-ghost{
    color:var(--text-muted);
    font-size:14.5px;
    text-decoration:underline;
    text-underline-offset:3px;
  }

  /* TICKER PANEL - signature element */
  .board{
    background:var(--panel);
    border:1px solid var(--panel-border);
    border-radius:6px;
    padding:0;
    overflow:hidden;
    box-shadow:0 40px 80px -30px rgba(0,0,0,0.6);
    position:relative;
  }
  .board::before{
    content:"";
    position:absolute;
    top:-40%;left:50%;
    transform:translateX(-50%);
    width:140%;height:80%;
    background:radial-gradient(ellipse at center, rgba(245,166,35,0.10), transparent 70%);
    pointer-events:none;
  }
  .board-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:16px 20px;
    border-bottom:1px solid var(--panel-border);
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    color:var(--text-faint);
    text-transform:uppercase;
    letter-spacing:0.08em;
  }
  .board-head .live{
    color:var(--green);
    display:flex;
    align-items:center;
    gap:6px;
  }
  .board-head .live::before{
    content:"";
    width:6px;height:6px;
    border-radius:50%;
    background:var(--green);
    animation:pulse 2s infinite;
  }
  @keyframes pulse{
    0%,100%{opacity:1;}
    50%{opacity:0.35;}
  }
  .ticker{
    height:320px;
    padding:8px 0;
    position:relative;
    overflow:hidden;
  }
  .ticket{
    display:flex;
    align-items:baseline;
    gap:14px;
    padding:13px 20px;
    font-family:'IBM Plex Mono', monospace;
    font-size:13px;
    border-bottom:1px solid rgba(255,255,255,0.04);
    opacity:0;
    transform:translateY(6px);
    animation:rise 0.5s ease forwards;
  }
  @keyframes rise{
    to{opacity:1; transform:translateY(0);}
  }
  .ticket .time{color:var(--text-faint); flex-shrink:0;}
  .ticket .job{color:var(--text); flex:1;}
  .ticket .status{
    color:var(--green);
    flex-shrink:0;
    font-weight:500;
  }
  .board-foot{
    border-top:1px solid var(--panel-border);
    padding:13px 20px;
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    color:var(--text-faint);
    display:flex;
    justify-content:space-between;
  }
  .board-foot .n{color:var(--amber);}

  /* SECTIONS */
  section{
    padding:84px 0;
    border-bottom:1px solid var(--panel-border);
  }
  .section-head{
    max-width:56ch;
    margin:0 auto 48px;
    text-align:center;
  }
  .section-head .eyebrow{margin-bottom:14px;}
  h2.section-title{
    font-size:34px;
    font-weight:600;
  }
  .section-head p{
    color:var(--text-muted);
    margin-top:14px;
    font-size:16.5px;
  }

  /* MISSED CALL CALLOUT */
  .missed-example{
    display:flex;
    align-items:center;
    gap:16px;
    background:var(--panel);
    border:1px solid var(--panel-border);
    border-left:3px solid var(--red);
    padding:16px 20px;
    border-radius:4px;
    width:fit-content;
    margin:0 auto;
    font-family:'IBM Plex Mono', monospace;
    font-size:13.5px;
    max-width:560px;
    margin-bottom:36px;
  }
  .missed-example .status{color:var(--red); font-weight:500;}
  .missed-example .job{color:var(--text-muted); text-decoration:line-through; flex:1;}
  .plain{
    font-size:19px;
    max-width:42ch;
    color:var(--text);
    margin:24px auto 0;
    text-align:center;
  }
  .plain strong{color:var(--amber); font-weight:600;}

  /* STATUS BOARD */
  .status-list{
    display:flex;
    flex-direction:column;
    border-top:1px solid var(--panel-border);
  }
  .status-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:22px 4px;
    border-bottom:1px solid var(--panel-border);
  }
  .status-row .label{
    display:flex;
    align-items:center;
    gap:14px;
    font-size:19px;
    font-weight:500;
    font-family:'Barlow Semi Condensed', sans-serif;
  }
  .status-row .label .dot{
    width:8px;height:8px;border-radius:50%;
    background:var(--green);
    box-shadow:0 0 6px var(--green);
    flex-shrink:0;
  }
  .status-row .code{
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px;
    color:var(--green);
    letter-spacing:0.06em;
    text-transform:uppercase;
    border:1px solid rgba(95,174,122,0.35);
    padding:4px 10px;
    border-radius:20px;
  }

  /* HOW IT STARTS */
  .jobs{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
  }
  .job-card{
    background:var(--panel);
    border:1px solid var(--panel-border);
    border-radius:6px;
    padding:26px 22px;
  }
  .job-card .tag{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    color:var(--amber);
    letter-spacing:0.1em;
    display:block;
    margin-bottom:16px;
  }
  .job-card h3{
    font-size:19px;
    font-weight:600;
    margin-bottom:10px;
  }
  .job-card p{
    color:var(--text-muted);
    font-size:14.5px;
    margin:0;
    line-height:1.55;
  }

  /* PRICING */
  .call-note{
    display:flex;
    align-items:center;
    gap:18px;
    background:var(--panel);
    border:1px solid var(--panel-border);
    border-left:3px solid var(--amber);
    padding:20px 24px;
    border-radius:4px;
    width:fit-content;
    margin:0 auto;
    max-width:620px;
  }
  .call-note .tag{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    color:var(--amber);
    text-transform:uppercase;
    letter-spacing:0.08em;
    flex-shrink:0;
  }
  .call-note p{
    margin:0;
    color:var(--text-muted);
    font-size:15px;
  }
  .taxi-callout{
    max-width:560px;
    margin:0 auto;
    text-align:center;
    background:var(--panel);
    border:1px solid var(--panel-border);
    border-top:3px solid var(--amber);
    border-radius:6px;
    padding:40px 36px;
  }
  .taxi-callout .tag{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    color:var(--amber);
    text-transform:uppercase;
    letter-spacing:0.08em;
  }
  .taxi-callout h2{
    font-family:'Barlow Semi Condensed', sans-serif;
    font-size:28px;
    font-weight:600;
    margin:14px 0 12px;
  }
  .taxi-callout p{
    color:var(--text-muted);
    font-size:16px;
    max-width:44ch;
    margin:0 auto 24px;
  }

  /* CREDIBILITY */
  .cred{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:40px;
    align-items:center;
  }
  .cred .years{
    font-family:'IBM Plex Mono', monospace;
    font-size:64px;
    color:var(--amber);
    font-weight:500;
    line-height:1;
    white-space:nowrap;
  }
  .cred .years span{
    display:block;
    font-size:13px;
    color:var(--text-faint);
    text-transform:uppercase;
    letter-spacing:0.1em;
    margin-top:8px;
  }
  .cred blockquote{
    margin:0;
    font-family:'Barlow Semi Condensed', sans-serif;
    font-size:24px;
    font-weight:500;
    line-height:1.4;
    color:var(--text);
    border-left:2px solid var(--amber-dim);
    padding-left:24px;
  }
  .cred cite{
    display:block;
    font-style:normal;
    font-family:'Barlow', sans-serif;
    font-size:14px;
    color:var(--text-muted);
    margin-top:16px;
  }

  /* CTA FOOTER */
  footer{
    padding:80px 0 40px;
  }
  .cta-block{
    text-align:center;
    max-width:520px;
    margin:0 auto 64px;
  }
  .contact-form{
    text-align:left;
    max-width:440px;
    margin:0 auto;
    display:flex;
    flex-direction:column;
    gap:12px;
  }
  .contact-form input,
  .contact-form textarea{
    background:var(--panel);
    border:1px solid var(--panel-border);
    border-radius:4px;
    padding:13px 15px;
    color:var(--text);
    font-family:'Barlow', sans-serif;
    font-size:15px;
    width:100%;
  }
  .contact-form input::placeholder,
  .contact-form textarea::placeholder{
    color:var(--text-faint);
  }
  .contact-form input:focus,
  .contact-form textarea:focus{
    outline:none;
    border-color:var(--amber);
  }
  .contact-form textarea{
    resize:vertical;
    min-height:76px;
    font-family:inherit;
  }
  .contact-form button{
    margin-top:4px;
  }
  .hp-field{
    position:absolute;
    left:-9999px;
    top:-9999px;
  }
  .form-note{
    font-family:'IBM Plex Mono', monospace;
    font-size:11.5px;
    color:var(--text-faint);
    margin-top:14px;
  }
  .cta-block h2{
    font-size:36px;
    font-weight:600;
    margin-bottom:16px;
  }
  .cta-block p{
    color:var(--text-muted);
    margin-bottom:28px;
  }
  .foot-bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding-top:28px;
    border-top:1px solid var(--panel-border);
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    color:var(--text-faint);
    flex-wrap:wrap;
    gap:10px;
  }
  .foot-bottom a{
    color:var(--text-faint);
    text-decoration:underline;
  }
  .foot-bottom a:hover{
    color:var(--amber);
  }
  .foot-columns{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:32px;
    padding:56px 0 40px;
    border-top:1px solid var(--panel-border);
    margin-top:56px;
  }
  .foot-col h3{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    color:var(--amber);
    text-transform:uppercase;
    letter-spacing:0.08em;
    margin:0 0 16px;
    font-weight:600;
  }
  .foot-col a{
    display:block;
    color:var(--text-muted);
    text-decoration:none;
    font-size:15px;
    padding:7px 0;
  }
  .foot-col a:hover{color:var(--amber);}
  @media (max-width:640px){
    .foot-columns{grid-template-columns:1fr; gap:30px;}
  }

  @media (max-width:640px){
    nav.top .wrap{flex-wrap:nowrap; gap:8px;}
    .logo{
      font-size:16px;
      white-space:nowrap;
      gap:7px;
    }
    .logo-mark{height:24px; width:32px;}
    .logo-mark img{height:24px;}
    .nav-tag{
      text-align:center;
      font-size:10px;
      line-height:1.4;
      white-space:normal;
    }
    .nav-tag-break{display:block;}
    .nav-toggle-btn{margin-left:8px;}
  }

  @media (max-width:860px){
    .wrap{padding:0 22px;}
    header.hero .wrap{grid-template-columns:1fr; gap:44px;}
    h1.headline{font-size:38px;}
    .jobs{grid-template-columns:1fr;}
    .cred{grid-template-columns:1fr; gap:20px;}
    .cred .years{font-size:44px;}
    h2.section-title{font-size:27px;}
    section{padding:60px 0;}
  }

  @media (prefers-reduced-motion:reduce){
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important;}
    .ticket{opacity:1; transform:none;}
  }

  .page-hero{
    padding:64px 0 8px;
    max-width:760px;
    margin:0 auto;
  }
  .page-hero .eyebrow{margin-bottom:14px;}
  .page-hero h1{
    font-family:'Barlow Semi Condensed', sans-serif;
    font-size:42px;
    font-weight:700;
    line-height:1.1;
    margin:0 0 18px;
  }
  .page-hero .lead{
    font-size:19px;
    color:var(--text-muted);
    max-width:56ch;
  }
  .service-block{
    max-width:760px;
    margin:0 auto;
    padding:36px 0;
    border-top:1px solid var(--panel-border);
  }
  .service-block:last-of-type{border-bottom:1px solid var(--panel-border);}
  .service-block h2{
    font-family:'Barlow Semi Condensed', sans-serif;
    font-size:26px;
    font-weight:600;
    margin:0 0 12px;
    display:flex;
    align-items:center;
    gap:12px;
  }
  .service-block h2 .num{
    font-family:'IBM Plex Mono', monospace;
    font-size:14px;
    color:var(--amber);
    border:1px solid var(--panel-border);
    border-radius:4px;
    padding:4px 9px;
  }
  .service-block p{
    font-size:16.5px;
    line-height:1.65;
    color:var(--text-muted);
    max-width:60ch;
  }
  .systems-note{
    max-width:760px;
    margin:48px auto 0;
    padding:28px 28px;
    background:var(--panel);
    border:1px solid var(--panel-border);
    border-left:3px solid var(--amber);
    border-radius:4px;
  }
  .systems-note h3{
    font-family:'IBM Plex Mono', monospace;
    font-size:13px;
    color:var(--amber);
    text-transform:uppercase;
    letter-spacing:0.06em;
    margin:0 0 10px;
  }
  .systems-note p{
    font-size:15.5px;
    color:var(--text-muted);
    margin:0;
    line-height:1.6;
  }
  .page-cta{
    max-width:760px;
    margin:56px auto 80px;
    text-align:center;
  }
  .page-cta p{color:var(--text-muted); font-size:16px; margin-bottom:20px;}


  .trial-list{list-style:none; padding:0; margin:18px 0 0;}
  .trial-list li{
    position:relative; padding-left:24px; margin-bottom:11px;
    color:var(--text-muted); font-size:16px; line-height:1.6;
  }
  .trial-list li::before{
    content:""; position:absolute; left:0; top:9px;
    width:7px; height:7px; border-radius:50%; background:var(--green);
  }
  .rate-table-wrap{overflow-x:auto; margin-top:20px; -webkit-overflow-scrolling:touch;}
  .rate-table{
    width:100%; border-collapse:collapse; min-width:460px;
    font-family:'IBM Plex Mono', monospace; font-size:14px;
  }
  .rate-table th, .rate-table td{
    padding:13px 14px; text-align:left;
    border-bottom:1px solid var(--panel-border);
  }
  .rate-table th{
    color:var(--text-faint); font-weight:500; font-size:12px;
    text-transform:uppercase; letter-spacing:0.06em;
  }
  .rate-table td:first-child{color:var(--text); font-family:'Barlow', sans-serif; font-size:15px;}
  .rate-table td:not(:first-child){color:var(--amber); text-align:right;}
  .rate-table th:not(:first-child){text-align:right;}
  .faq-item{
    padding:20px 0; border-bottom:1px solid var(--panel-border);
  }
  .faq-item h3{
    font-family:'Barlow Semi Condensed', sans-serif; font-weight:700;
    font-size:19px; margin:0 0 8px; color:var(--text);
  }
  .faq-item p{margin:0; color:var(--text-muted); font-size:16px; line-height:1.65;}
  .trial-steps{margin-top:22px;}
  .trial-step{
    display:grid; grid-template-columns:44px 1fr; gap:16px;
    padding:18px 0; border-bottom:1px solid var(--panel-border);
  }
  .trial-step .n{
    font-family:'IBM Plex Mono', monospace; font-size:13px;
    color:var(--amber); padding-top:3px;
  }
  .trial-step h3{
    font-family:'Barlow Semi Condensed', sans-serif; font-weight:700;
    font-size:19px; margin:0 0 6px; color:var(--text);
  }
  .trial-step p{margin:0; color:var(--text-muted); font-size:16px; line-height:1.6;}
  .note-line{
    margin-top:16px; font-family:'IBM Plex Mono', monospace;
    font-size:13px; color:var(--text-faint); line-height:1.7;
  }
  @media (max-width:640px){
    .trial-step{grid-template-columns:32px 1fr; gap:10px;}
  }

  .trial-form-wrap{
    max-width:620px; margin:0 auto; text-align:left;
  }
  .trial-form-wrap .contact-form{max-width:100%;}
  .contact-form select{
    background:var(--panel); border:1px solid var(--panel-border); border-radius:4px;
    padding:13px 15px; color:var(--text); font-family:'Barlow', sans-serif;
    font-size:15px; width:100%; appearance:none; -webkit-appearance:none;
    background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%2398A2AC' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 15px center; cursor:pointer;
  }
  .contact-form select:focus{outline:none; border-color:var(--amber);}
  .contact-form select:required:invalid{color:var(--text-faint);}
  .contact-form select option{color:var(--text); background:var(--panel);}
  .field-pair{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
  .field-label{
    font-family:'IBM Plex Mono', monospace; font-size:11.5px;
    color:var(--text-faint); text-transform:uppercase; letter-spacing:0.06em;
    margin-bottom:-4px; margin-top:4px;
  }
  .form-consent{
    display:flex; align-items:flex-start; gap:10px;
    font-family:'Barlow', sans-serif; font-size:13.5px;
    color:var(--text-muted); line-height:1.5; cursor:pointer;
  }
  .form-consent input[type="checkbox"]{
    width:16px; height:16px; min-width:16px; margin-top:3px;
    accent-color:var(--amber); cursor:pointer;
  }
  .form-consent a{color:var(--amber);}
  @media (max-width:640px){ .field-pair{grid-template-columns:1fr;} }

  .card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:26px;}
  .card{
    background:var(--panel); border:1px solid var(--panel-border);
    border-radius:6px; padding:24px 22px;
  }
  .card h3{
    font-family:'Barlow Semi Condensed', sans-serif; font-weight:700;
    font-size:19px; margin:0 0 9px; color:var(--text);
  }
  .card p{margin:0; color:var(--text-muted); font-size:15.5px; line-height:1.65;}
  .loc-line{
    font-family:'IBM Plex Mono', monospace; font-size:13px;
    color:var(--green); margin-top:18px; letter-spacing:0.02em;
  }
  .acc{border-bottom:1px solid var(--panel-border);}
  .acc summary{
    cursor:pointer; padding:18px 30px 18px 0; position:relative; list-style:none;
    font-family:'Barlow Semi Condensed', sans-serif; font-weight:700;
    font-size:19px; color:var(--text);
  }
  .acc summary::-webkit-details-marker{display:none;}
  .acc summary::after{
    content:"+"; position:absolute; right:4px; top:16px;
    font-family:'IBM Plex Mono', monospace; font-size:20px; color:var(--amber);
  }
  .acc[open] summary::after{content:"\2212";}
  .acc summary:hover{color:var(--amber);}
  .acc summary:focus-visible{outline:2px solid var(--amber); outline-offset:3px;}
  .acc-body{padding:0 0 20px;}
  .acc-body p{margin:0 0 12px; color:var(--text-muted); font-size:15.5px; line-height:1.7;}
  .acc-body ul{margin:0 0 12px; padding-left:0; list-style:none;}
  .acc-body li{
    position:relative; padding-left:22px; margin-bottom:9px;
    color:var(--text-muted); font-size:15.5px; line-height:1.6;
  }
  .acc-body li::before{
    content:""; position:absolute; left:0; top:9px;
    width:6px; height:6px; border-radius:50%; background:var(--green);
  }
  .page-links{
    display:flex; gap:14px; flex-wrap:wrap; margin-top:30px;
    padding-top:24px; border-top:1px solid var(--panel-border);
  }
  @media (max-width:760px){ .card-grid{grid-template-columns:1fr;} }

  /* ============================================================
     SITE-WIDE CENTRE ALIGNMENT
     All marketing content is centre-aligned. Only functional form
     content and long legal body copy remain left-aligned.
     ============================================================ */

  /* hero copy column */
  header.hero .wrap > div:first-child{text-align:center;}
  header.hero .cta-row{justify-content:center;}
  header.hero .trust-line{text-align:center;}

  /* section presentation */
  .section-head, .page-hero, .cta-block, .page-cta, .call-note{text-align:center;}

  /* cards - number, heading and description share one centre line */
  .svc-card, .tri-card, .cred-points > div, .faq-item, .highlight-card{text-align:center;}
  .svc-card .num{display:block;}

  /* process steps - number above, centred stack */
  .trial-step{grid-template-columns:1fr; justify-items:center; text-align:center; gap:8px;}
  .trial-step .n{padding-top:0;}

  /* bullet lists become centred check rows */
  .trial-list{text-align:center;}
  .trial-list li{padding-left:0; width:100%;}
  .trial-list li::before{position:static; display:inline-block; margin-right:9px; vertical-align:middle; top:auto;}

  .pill-row{justify-content:center;}

  /* accordions */
  .acc summary{text-align:center; padding-right:0;}
  .acc summary::after{position:static; transform:none; margin-left:10px;}
  .acc .acc-body{text-align:center;}
  .acc .acc-body ul{list-style:none; padding-left:0;}
  .acc .acc-body li{margin-bottom:9px;}

  /* caption sits with its panel */
  .board-caption{margin-top:10px; text-align:center;}

  /* footer */
  .foot-columns{text-align:center;}
  .foot-bottom{justify-content:center; text-align:center; gap:6px 22px;}

  /* FORMS: container centred, functional content left-aligned */
  .trial-form-wrap{text-align:center;}
  .contact-form{text-align:left;}
  .contact-form input, .contact-form select, .contact-form textarea{text-align:left;}
  .fld > label, .field-label, .fld .hint{text-align:left;}
  .form-consent{text-align:left;}
  .contact-form button{width:100%;}
  fieldset.form-group{text-align:left;}
  .yn-row > span{text-align:left;}
  .form-note{text-align:center;}

  /* LEGAL: long documents stay conventionally left-aligned */
  .wrap.legal{text-align:left;}
  .wrap.legal h1{text-align:center;}
  .wrap.legal > p:first-of-type{text-align:center;}
  .wrap.legal ul{text-align:left;}
  .card{text-align:center;}
  .card .n{display:block;}
  .loc-line{text-align:center;}

  /* ============================================================
     UNIFIED FORM CONTROLS
     Every input, select and textarea shares identical styling so
     no field can fall back to the browser's native white chrome.
     Uses existing design tokens only.
     ============================================================ */
  .contact-form input[type="text"],
  .contact-form input[type="email"],
  .contact-form input[type="tel"],
  .contact-form input[type="url"],
  .contact-form input[type="number"],
  .contact-form input[type="date"],
  .contact-form input[type="time"],
  .contact-form input[type="file"],
  .contact-form select,
  .contact-form textarea{
    background-color:var(--panel);
    border:1px solid var(--panel-border);
    border-radius:4px;
    padding:13px 15px;
    color:var(--text);
    font-family:'Barlow', sans-serif;
    font-size:15px;
    line-height:1.4;
    width:100%;
    box-sizing:border-box;
    color-scheme:dark;
  }
  /* select: strip native chrome, add our own arrow */
  .contact-form select{
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;
    background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%2398A2AC' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 15px center;
    padding-right:42px;
    cursor:pointer;
  }
  /* options legible when the list is open */
  .contact-form select option{
    background-color:var(--panel);
    color:var(--text);
  }
  .contact-form select option[disabled]{color:var(--text-faint);}
  .contact-form select:required:invalid{color:var(--text-faint);}
  .contact-form input::placeholder,
  .contact-form textarea::placeholder{color:var(--text-faint); opacity:1;}
  .contact-form input:focus,
  .contact-form select:focus,
  .contact-form textarea:focus{outline:none; border-color:var(--amber);}
  .contact-form input:disabled,
  .contact-form select:disabled,
  .contact-form textarea:disabled{opacity:0.55; cursor:not-allowed;}
  .contact-form textarea{resize:vertical; min-height:88px;}
  .contact-form input[type="file"]{padding:11px 15px; cursor:pointer;}
  .contact-form input[type="file"]::file-selector-button{
    background:var(--panel-border); color:var(--text);
    border:0; border-radius:3px; padding:7px 13px; margin-right:12px;
    font-family:'Barlow', sans-serif; font-size:14px; cursor:pointer;
  }
  /* native date/time picker icon visible on dark */
  .contact-form input[type="date"]::-webkit-calendar-picker-indicator,
  .contact-form input[type="time"]::-webkit-calendar-picker-indicator{filter:invert(0.7);}
  /* checkboxes keep native control, tinted */
  .contact-form input[type="checkbox"],
  .contact-form input[type="radio"]{
    width:16px; height:16px; min-width:16px; accent-color:var(--amber);
    padding:0; background:none; border:0; color-scheme:dark;
  }
  .field-pair{grid-template-columns:1fr !important;}
  .whatsapp-float{
    position:fixed;
    bottom:24px;
    right:24px;
    width:56px;
    height:56px;
    border-radius:50%;
    box-shadow:0 8px 24px rgba(0,0,0,0.35);
    z-index:30;
    transition:transform 0.15s ease;
    display:block;
  }
  .whatsapp-float svg,
  .whatsapp-float img{
    width:100%;
    height:100%;
    display:block;
  }
  .whatsapp-float:hover{
    transform:scale(1.08);
  }
  @media (max-width:640px){
    .whatsapp-float{
      width:50px;
      height:50px;
      bottom:18px;
      right:18px;
    }
  }

  /* ============================================================
     MASTER MARKETING ALIGNMENT SYSTEM
     Every marketing element sits on the true page centre line.
     Only form internals and legal body copy remain left-aligned.
     Declared last so it wins over earlier component rules.
     ============================================================ */
  body :is(.page-hero, .section-head, .narrow-centre, .service-block,
           .svc-card, .tri-card, .card, .job-card, .cred-points > div,
           .faq-item, .highlight-card, .trial-step, .page-cta, .cta-block,
           .call-note, .foot-columns, .acc summary, .acc .acc-body)
  :is(h1, h2, h3, p, span.eyebrow, .num, .n, .tag, li){
    text-align:center;
  }
  body :is(.svc-card, .tri-card, .card, .job-card, .cred-points > div,
           .faq-item, .highlight-card, .trial-step){text-align:center;}
  .job-card .tag, .svc-card .num, .trial-step .n{display:block; text-align:center;}

  /* paragraphs: balanced reading width, centred on the axis */
  body :is(.page-hero, .narrow-centre, .service-block, .page-cta) p{
    max-width:760px; margin-left:auto; margin-right:auto;
  }

  /* CTA wrappers centre on the true axis */
  .cta-row, .page-cta, .cta-block, .btn-row{
    display:flex; flex-wrap:wrap; justify-content:center; align-items:center;
    width:100%; margin-left:auto; margin-right:auto; gap:12px;
  }
  .page-cta, .cta-block{flex-direction:column;}
  .page-cta > p, .cta-block > p{width:100%;}

  /* centred requirement rows - indicator ABOVE the text so nothing zigzags */
  .trial-list{list-style:none; padding:0; text-align:center;}
  .trial-list li{
    display:block; width:100%; padding:14px 12px 0; margin:0 auto 6px;
    text-align:center; max-width:640px; position:relative;
  }
  .trial-list li::before{
    content:""; position:absolute; left:50%; top:0; transform:translateX(-50%);
    width:7px; height:7px; border-radius:50%; background:var(--green); margin:0;
  }

  /* accordions: heading words on the centre line, marker after */
  .acc summary{text-align:center; padding-left:0; padding-right:0;}
  .acc summary::after{position:static; transform:none; margin-left:10px; display:inline;}

  /* focus: keyboard only, no lingering outline after mouse click */
  summary:focus, .btn:focus, .btn-ghost:focus, a:focus, button:focus{outline:none;}
  summary:focus-visible, .btn:focus-visible, .btn-ghost:focus-visible,
  a:focus-visible, button:focus-visible, input:focus-visible,
  select:focus-visible, textarea:focus-visible{
    outline:2px solid var(--amber); outline-offset:4px;
  }

  /* EXCEPTIONS - functional form content and legal body copy */
  .contact-form, .contact-form input, .contact-form select, .contact-form textarea,
  .fld > label, .field-label, .fld .hint, .form-consent, .form-consent span,
  fieldset.form-group, .yn-row > span{text-align:left;}
  .wrap.legal, .wrap.legal p, .wrap.legal li, .wrap.legal h2, .wrap.legal ul{text-align:left;}
  .wrap.legal h1{text-align:center;}

  /* burger control is now a real <button> - strip native button chrome */
  button.nav-toggle-btn{
    appearance:none;
    -webkit-appearance:none;
    background:none;
    background-color:transparent;
    border:0;
    padding:0;
    margin:0 0 0 20px;
    color:inherit;
    font:inherit;
    line-height:0;
    box-shadow:none;
  }
  button.nav-toggle-btn:hover{background:none;}
  button.nav-toggle-btn span{
    display:block;
    width:26px;
    height:2px;
    background:var(--text);
    border-radius:2px;
  }
  @media (max-width:640px){
    button.nav-toggle-btn{margin-left:8px;}
  }

  /* ============================================================
     HEADING CENTRING - structure-independent.
     Does not rely on any parent class, so it cannot be missed by
     a section whose wrapper differs. Legal pages excluded.
     ============================================================ */
  .wrap:not(.legal) h1,
  .wrap:not(.legal) h2,
  .wrap:not(.legal) h3,
  .wrap:not(.legal) .eyebrow{text-align:center;}
  /* functional exceptions */
  .wrap:not(.legal) form h1,
  .wrap:not(.legal) form h2,
  .wrap:not(.legal) form h3,
  .wrap:not(.legal) fieldset legend{text-align:left;}
  .wrap.legal h2, .wrap.legal h3{text-align:left;}
  .wrap.legal h1{text-align:center;}

  /* ---- ticked reassurance list: centred as a group, rows aligned ---- */
  .contact-expect{
    display:inline-flex;
    flex-direction:column;
    gap:9px;
    text-align:left;
    margin:0 auto;
  }
  .contact-expect .row{
    display:flex;
    align-items:baseline;
    gap:9px;
    text-align:left;
  }

  /* ---- restore the original tight, neat form look ----
     Labels stay for accessibility, but rendered as small mono
     uppercase captions so the form reads as compactly as the
     original placeholder-only version. */
  .contact-form .fld{
    gap:5px;
    margin-bottom:0;
  }
  .contact-form .fld > label{
    font-family:'IBM Plex Mono', monospace;
    font-size:10.5px;
    text-transform:uppercase;
    letter-spacing:0.08em;
    color:var(--text-faint);
    line-height:1.3;
  }
  .contact-form .fld > label .req{color:var(--amber);}
  .contact-form .fld .hint{
    font-family:'IBM Plex Mono', monospace;
    font-size:10.5px;
    text-transform:none;
    letter-spacing:0.02em;
  }
  .contact-form .fld > input,
  .contact-form .fld > select,
  .contact-form .fld > textarea{margin:0;}

  /* ============================================================
     DEFINITIVE HEADING CENTRING
     Recurring issue - forced so nothing can override it.
     ============================================================ */
  .wrap:not(.legal) h1,
  .wrap:not(.legal) h2,
  .wrap:not(.legal) h3{text-align:center !important;}
  .wrap:not(.legal) form h1,
  .wrap:not(.legal) form h2,
  .wrap:not(.legal) form h3,
  .wrap:not(.legal) fieldset legend{text-align:left !important;}
  .wrap.legal h2, .wrap.legal h3{text-align:left !important;}
  .wrap.legal h1{text-align:center !important;}

  /* ============================================================
     BULLET LISTS - conventional bullets again.
     The list sits as a centred block, rows read left-to-right so
     the dots line up in a column instead of zigzagging.
     ============================================================ */
  .trial-list{
    display:inline-block;
    text-align:left !important;
    list-style:none;
    padding:0;
    margin:18px auto 0;
    max-width:640px;
  }
  .trial-list li{
    position:relative;
    display:block;
    width:auto;
    padding:0 0 0 24px !important;
    margin:0 0 11px;
    text-align:left !important;
    color:var(--text-muted);
    font-size:16px;
    line-height:1.6;
    max-width:none;
  }
  .trial-list li::before{
    content:"";
    position:absolute;
    left:0;
    top:9px;
    transform:none;
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--green);
    margin:0;
    animation:dotPulse 2.4s ease-in-out infinite;
  }
  /* the list block itself stays centred on the page */
  .service-block > .trial-list,
  .page-hero > .trial-list{display:block; width:fit-content; margin-left:auto; margin-right:auto;}

  /* ============================================================
     SLOW PULSE for every green indicator, matching the
     "on shift" light on the dispatch panel.
     ============================================================ */
  @keyframes dotPulse{
    0%, 100%{opacity:1;}
    50%{opacity:0.3;}
  }
  .trial-list li::before,
  .contact-expect .row span.tick,
  .board-head .live::before{
    animation:dotPulse 2.4s ease-in-out infinite;
  }
  @media (prefers-reduced-motion: reduce){
    .trial-list li::before,
    .contact-expect .row span.tick,
    .board-head .live::before{animation:none;}
  }

  /* ============================================================
     ROOT CAUSE FIX
     .service-block h2 was display:flex, which makes text-align
     inert - flex positions content with justify-content, which
     defaults to flex-start. That is why headings computed as
     "center" but painted left. Force block so text-align applies,
     and set justify-content too in case any heading stays flex.
     ============================================================ */
  .wrap:not(.legal) h1,
  .wrap:not(.legal) h2,
  .wrap:not(.legal) h3{
    display:block !important;
    justify-content:center !important;
    text-align:center !important;
  }
  .wrap:not(.legal) form h1,
  .wrap:not(.legal) form h2,
  .wrap:not(.legal) form h3{text-align:left !important;}
  .wrap.legal h2, .wrap.legal h3{display:block !important; text-align:left !important;}
