/* Contact · the brief — the form (modes, stepper, five steps, fields, services picker, packages, files, consent)
   and the live brief beside it (the brief check, the summary). Without JS every step shows stacked and the
   stepper is a list of in-page links; contact/brief.js adds .is-js and, for a brief or an RFQ, .is-stepped.
   Errors have their own shape, not a colour (the palette has no red, by design): an ink disc with "!" before every
   inline error, on the stepper step that holds one and on the summary's heading; ink, never the accent blue. */

.ct-brief__head .tl{margin-top:-4px}
.ct-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,380px);gap:clamp(28px,3.6vw,64px);align-items:start}
.ct-formcol{min-width:0}

/* ---------- alerts: failed send · the "before this can be sent" summary · notes ---------- */
.ct-alert{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;margin-bottom:var(--ct-gap);padding:22px 24px;border:1px solid var(--line-3);border-left:3px solid var(--blue);border-radius:var(--r-lg);background:var(--paper)}
.ct-alert__ico{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-sm);background:var(--blue-wash);color:var(--blue-d)}
.ct-alert__t{font-family:var(--f-h);font-size:1.1875rem;font-weight:500;letter-spacing:-.01em;line-height:1.3;color:var(--ink)}
.ct-alert__p{margin-top:6px;font-size:var(--t-sm);line-height:1.6;color:var(--txt);max-width:62ch}
.ct-alert__go{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:16px}
.ct-alert__ref{font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.ct-errs{margin-bottom:var(--ct-gap);padding:24px 26px;border:1px solid var(--ink);border-left-width:4px;border-radius:var(--r-lg);background:var(--paper)}
.ct-errs:focus-visible{outline-offset:4px}
.ct-errs__k{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.ct-bang,.ct-err::before,.ct-stepper__i.is-bad .ct-stepper__st{display:inline-grid;place-items:center;flex:none;width:18px;height:18px;border-radius:50%;background:var(--ink);
  font-family:var(--f);font-size:var(--t-lbl);font-weight:600;line-height:1;letter-spacing:0;color:var(--on-ink);text-transform:none}
.ct-errs__t{font-family:var(--f-h);font-size:1.1875rem;font-weight:500;letter-spacing:-.012em;line-height:1.3;color:var(--ink)}
.ct-errs__p{margin-top:8px;font-size:var(--t-sm);line-height:1.6;color:var(--txt);max-width:64ch}
.ct-errs__list{margin-top:12px;display:flex;flex-direction:column;gap:2px}
.ct-errs__list a{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline;min-height:36px;padding:7px 0 7px 18px;position:relative;font-size:var(--t-sm);line-height:1.5;color:var(--txt)}
.ct-errs__list a::before{content:"";position:absolute;left:0;top:16px;width:6px;height:6px;border-radius:1px;background:var(--ink)}
.ct-errs__list b{font-weight:600;color:var(--ink);text-decoration:underline;text-decoration-color:var(--line-3);text-underline-offset:3px}
.ct-errs__list a:hover b{text-decoration-color:var(--blue)}
.ct-errs__files{display:flex;gap:10px;align-items:flex-start;padding-top:12px;border-top:1px solid var(--line)}
.ct-errs__files .xt-ico{width:18px;height:18px;margin-top:2px;color:var(--blue)}
.ct-note{margin-bottom:var(--ct-gap);padding:14px 18px;border-radius:var(--r);background:var(--paper-3);font-size:var(--t-sm);line-height:1.55;color:var(--txt)}

/* ---------- the form sheet ---------- */
.ct-form{position:relative;container:ctform / inline-size;padding:clamp(22px,3vw,44px);border:1px solid var(--line);border-radius:var(--r-xl);background:var(--paper);box-shadow:var(--sh-1)}
.ct-hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}

/* what are you sending */
.ct-modes{margin:0;padding:0;border:0;min-width:0}
.ct-modes__lg{float:left;width:100%;margin-bottom:14px;padding:0;font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.ct-modes__lg+*{clear:both}
.ct-modes__row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ct-mode{position:relative;display:grid;grid-template-columns:20px minmax(0,1fr);grid-template-areas:"dot t" ". s";align-items:center;column-gap:12px;row-gap:2px;min-height:64px;padding:12px 16px;
  border:1px solid var(--line-3);border-radius:var(--r);background:var(--paper);cursor:pointer;transition:border-color var(--d1) var(--e-io),background var(--d1) var(--e-io)}
.ct-mode:hover{border-color:var(--blue)}
.ct-mode input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;border-radius:inherit}
.ct-mode:has(input:focus-visible){outline:2px solid var(--blue);outline-offset:3px}
.ct-mode__dot{grid-area:dot;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line-3);position:relative;transition:border-color var(--d1) var(--e-io)}
.ct-mode__dot::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--blue);transform:scale(0);transition:transform .28s var(--e)}
.ct-mode__t{grid-area:t;font-family:var(--f-h);font-size:1rem;font-weight:500;letter-spacing:-.008em;line-height:1.25;color:var(--ink)}
.ct-mode__s{grid-area:s;font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.ct-mode:has(input:checked){border-color:var(--ink);background:var(--paper-2);box-shadow:inset 0 0 0 1px var(--ink)}
.ct-mode:has(input:checked) .ct-mode__dot{border-color:var(--blue)}
.ct-mode:has(input:checked) .ct-mode__dot::after{transform:scale(1)}
.ct-modes__nojs{margin-top:12px;font-size:var(--t-xs);line-height:1.55;color:var(--muted)}

/* the stepper: in-page links without JS, a progress stepper with it */
.ct-stepper{position:relative;margin:28px 0 8px;padding-bottom:14px}
.ct-stepper__list{display:flex;gap:4px}
.ct-stepper__i{flex:1 1 0;min-width:0}
.ct-stepper__a{display:flex;align-items:center;gap:10px;min-height:48px;min-width:44px;padding:6px 8px 6px 0;color:var(--muted);border-radius:var(--r-sm)}
.ct-stepper__n{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--line-3);background:var(--paper);
  font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.04em;color:var(--muted);transition:background var(--d2) var(--e),border-color var(--d2) var(--e),color var(--d2) var(--e)}
.ct-stepper__t{min-width:0;font-size:var(--t-sm);font-weight:500;line-height:1.2;color:var(--txt);overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.ct-stepper__st{display:none}
.ct-stepper__a:hover .ct-stepper__t{color:var(--blue-d)}
.ct-stepper__rail{position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:var(--r-pill);background:var(--line);overflow:hidden;display:none}
.ct-stepper__rail i{position:absolute;inset:0;background:var(--ink);transform-origin:0 50%;transform:scaleX(var(--ct-p,0));transition:transform .5s var(--e)}
.ct-form.is-stepped .ct-stepper__rail{display:block}
.ct-stepper__i.is-done .ct-stepper__n{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}
.ct-stepper__i.is-cur .ct-stepper__n{background:var(--blue);border-color:var(--blue);color:var(--on-ink)}
.ct-stepper__i.is-cur .ct-stepper__t{color:var(--ink)}
.ct-stepper__i.is-bad .ct-stepper__n{border-color:var(--ink);border-width:2px;color:var(--ink)}
.ct-stepper__i.is-bad .ct-stepper__st{margin-left:-4px}
.ct-stepper__i.is-bad .ct-stepper__st::before{content:"!";content:"!" / ""}

/* ---------- steps ---------- */
.ct-step{min-width:0;margin:0;padding:clamp(28px,3vw,40px) 0 0;border:0;border-top:1px solid var(--line);margin-top:clamp(28px,3vw,40px)}
.ct-form.is-stepped .ct-step{border-top:0;margin-top:8px;padding-top:20px}
.ct-form.is-stepped .ct-step:not(.is-on){display:none}
.ct-step__lg{display:flex;align-items:baseline;gap:14px;float:left;width:100%;padding:0;margin-bottom:8px;
  font-family:var(--f-h);font-size:clamp(1.35rem,1.8vw,1.65rem);font-weight:500;letter-spacing:-.02em;line-height:1.2;color:var(--ink)}
.ct-step__lg+*{clear:both}
.ct-step__n{font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.1em;color:var(--muted)}
.ct-step__d{margin-bottom:24px;font-size:var(--t-sm);line-height:1.6;color:var(--muted);max-width:64ch}
.ct-step:focus{outline:none}

/* ---------- fields ---------- */
.ct-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px var(--ct-gap)}
.ct-fields+.ct-fields,.ct-svc+.ct-pkset,.ct-pkset+.ct-fields,.ct-svc+.ct-fields{margin-top:28px}
.ct-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.ct-field--wide,.ct-fields>.ct-rfqnote{grid-column:1 / -1}
.ct-label{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:0;font-size:var(--t-sm);font-weight:600;line-height:1.35;color:var(--ink)}
.ct-req{color:var(--blue);font-weight:600}
.ct-opt{font-size:var(--t-xs);font-weight:400;color:var(--faint)}
.ct-field--rfqreq .ct-label .ct-req{display:none}
.ct-form[data-mode="rfq"] .ct-field--rfqreq .ct-label .ct-req{display:inline}
.ct-form[data-mode="rfq"] .ct-field--rfqreq .ct-label .ct-opt{display:none}
.ct-input{width:100%;min-height:50px;padding:12px 16px;border:1px solid var(--line-3);border-radius:var(--r-sm);background:var(--paper);
  font-family:var(--f-b);font-size:var(--t-body);line-height:1.4;color:var(--ink);
  transition:border-color var(--d1) var(--e-io),box-shadow var(--d2) var(--e)}
.ct-input::placeholder{color:var(--faint);opacity:1}
.ct-input:hover{border-color:var(--faint)}
.ct-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-wash-2)}
.ct-input:focus-visible{outline:none}
.ct-input[aria-invalid="true"]{border-color:var(--ink);box-shadow:inset 3px 0 0 var(--ink)}
.ct-input[aria-invalid="true"]:focus{box-shadow:inset 3px 0 0 var(--ink),0 0 0 4px var(--blue-wash-2)}
.ct-input[type="date"]{min-height:50px;appearance:none;-webkit-appearance:none}
.ct-area{min-height:120px;resize:vertical;line-height:1.6}
.ct-selw{position:relative;display:block;min-width:0}
.ct-selw::after{content:"\203A";position:absolute;right:16px;top:50%;margin-top:-.55em;font-family:var(--f);font-size:1.05rem;line-height:1;color:var(--blue);transform:rotate(90deg);pointer-events:none}
.ct-select{appearance:none;-webkit-appearance:none;padding-right:40px;cursor:pointer;text-overflow:ellipsis}
.ct-under{display:flex;justify-content:space-between;align-items:flex-start;gap:6px 16px}
.ct-help{font-size:var(--t-xs);line-height:1.55;color:var(--muted);max-width:62ch}
.ct-help a{font-size:inherit}
.ct-count{flex:none;margin-left:auto;font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.06em;color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap}
.ct-count.is-near{color:var(--ink)}
.ct-err{display:flex;align-items:flex-start;gap:8px;font-size:var(--t-xs);font-weight:600;line-height:1.5;color:var(--ink)}
.ct-err::before{content:"!";content:"!" / "";margin-top:0}
.ct-err[hidden]{display:none}
.ct-field.is-bad>.ct-label{color:var(--ink)}
.ct-rfqnote{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:var(--r);background:var(--blue-wash);font-size:var(--t-sm);line-height:1.55;color:var(--ink)}
.ct-rfqnote .xt-ico{flex:none;width:20px;height:20px;margin-top:1px;color:var(--blue-d)}
/* without JavaScript every question shows; the RFQ note shows only while "Formal RFQ / RFP" is the chosen kind */
@supports selector(:has(*)){
  .ct-form:not(.is-js):not(:has(#ct-mode-rfq:checked)) .ct-rfqnote{display:none}
}

/* two controls under one label: the phone's code + number, the country + city. In a brief or an RFQ each pair takes a
   full row (name|email, company|role, phone, where you are, size|website), so neither select is squeezed into half a row;
   the quick form keeps company|phone side by side */
.ct-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.ct-pair--phone{grid-template-columns:minmax(0,132px) minmax(0,1fr)}
.ct-form:not([data-mode="quick"]) .ct-field--phone,.ct-field--loc{grid-column:1 / -1}
.ct-form:not([data-mode="quick"]) .ct-pair--phone{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.ct-field--loc .ct-pair{column-gap:var(--ct-gap)}   /* country and city sit on the columns above and below */
.ct-budget{display:grid;grid-template-columns:minmax(0,190px) minmax(0,1fr);gap:8px}

/* option chips (radio / checkbox) */
.ct-opts{display:flex;flex-wrap:wrap;gap:8px}
.ct-opt-chip{position:relative;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 16px 8px 12px;border:1px solid var(--line-3);border-radius:var(--r-pill);
  background:var(--paper);font-size:var(--t-sm);font-weight:500;line-height:1.3;color:var(--ink);cursor:pointer;transition:border-color var(--d1) var(--e-io),background var(--d1) var(--e-io)}
.ct-opt-chip:hover{border-color:var(--blue)}
.ct-opt-chip input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;border-radius:inherit}
.ct-opt-chip:has(input:focus-visible){outline:2px solid var(--blue);outline-offset:2px}
.ct-opt-chip__b{position:relative;flex:none;width:16px;height:16px;border:1.5px solid var(--line-3);border-radius:4px;transition:background var(--d1) var(--e-io),border-color var(--d1) var(--e-io)}
.ct-opt-chip input[type="radio"]+.ct-opt-chip__b{border-radius:50%}
.ct-opt-chip input:checked+.ct-opt-chip__b{background:var(--blue);border-color:var(--blue)}
.ct-opt-chip input[type="checkbox"]:checked+.ct-opt-chip__b::after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid var(--on-ink);border-width:0 2px 2px 0;transform:rotate(45deg)}
.ct-opt-chip input[type="radio"]:checked+.ct-opt-chip__b::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--on-ink)}
.ct-opt-chip:has(input:checked){border-color:var(--blue-line);background:var(--blue-wash);color:var(--blue-d)}
.ct-field .ct-opts+.ct-input,.ct-field .ct-opts+label+.ct-input{margin-top:6px}

/* ---------- services picker ---------- */
.ct-svc{min-width:0;margin:28px 0 0;padding:0;border:0}
.ct-svc__lg{float:left;width:100%;margin-bottom:6px}
.ct-svc__lg+*{clear:both}
.ct-svc>.ct-help{margin-bottom:16px}
.ct-svc.is-bad .ct-discs{border-top-color:var(--ink)}
.ct-find{position:relative;margin-bottom:12px}
.ct-find__ico{position:absolute;left:16px;top:25px;transform:translateY(-50%);color:var(--muted)}
.ct-find__ico .svc-ico{width:18px;height:18px}
.ct-find__in{width:100%;height:50px;padding:0 16px 0 46px;border:1px solid var(--line-3);border-radius:var(--r-pill);background:var(--paper-2);font-family:var(--f-b);font-size:var(--t-sm);color:var(--ink);
  transition:border-color var(--d1) var(--e-io),box-shadow var(--d2) var(--e),background var(--d1) var(--e-io)}
.ct-find__in::placeholder{color:var(--faint)}
.ct-find__in:focus{outline:none;border-color:var(--blue);background:var(--paper);box-shadow:0 0 0 4px var(--blue-wash-2)}
.ct-find__n{margin-top:8px;min-height:1em;font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.ct-find__n:empty{display:none}
.ct-find__none{margin-top:14px;font-size:var(--t-sm);color:var(--muted)}
.ct-discs{border-top:1px solid var(--line)}
.ct-disc{border-bottom:1px solid var(--line)}
.ct-disc__s{display:grid;grid-template-columns:30px minmax(0,1fr) auto auto 28px;align-items:center;gap:12px;min-height:58px;padding:10px 0;cursor:pointer;list-style:none}
.ct-disc__s::-webkit-details-marker{display:none}
.ct-disc__n{font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.1em;color:var(--faint)}
.ct-disc__t{font-family:var(--f-h);font-size:1.0625rem;font-weight:500;letter-spacing:-.008em;line-height:1.3;color:var(--ink)}
.ct-disc__c{font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--blue-d)}
.ct-disc__c:not(:empty){padding:4px 8px;border-radius:var(--r-pill);background:var(--blue-wash)}
.ct-disc__all{font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);white-space:nowrap}
.ct-disc__more{color:var(--faint)}
.ct-disc__pm{position:relative;width:26px;height:26px;border-radius:50%;border:1px solid var(--line-3);transition:background var(--d1) var(--e-io),border-color var(--d1) var(--e-io)}
.ct-disc__pm::before,.ct-disc__pm::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:1.5px;margin:-.75px 0 0 -5px;background:var(--ink);transition:transform .3s var(--e)}
.ct-disc__pm::after{transform:rotate(90deg)}
.ct-disc[open]>.ct-disc__s .ct-disc__pm{background:var(--ink);border-color:var(--ink)}
.ct-disc[open]>.ct-disc__s .ct-disc__pm::before,.ct-disc[open]>.ct-disc__s .ct-disc__pm::after{background:var(--on-ink)}
.ct-disc[open]>.ct-disc__s .ct-disc__pm::after{transform:rotate(0deg)}
.ct-disc__s:hover .ct-disc__t{color:var(--blue-d)}
.ct-disc__b{padding:4px 0 22px 42px;display:flex;flex-direction:column;gap:18px}
.ct-block__h{margin-bottom:10px;font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ct-block__h span{margin-left:6px;color:var(--faint);letter-spacing:.1em}
.ct-chips{display:flex;flex-wrap:wrap;gap:8px}
.ct-chips:empty{display:none}
.ct-chip{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:6px 14px 6px 8px;border:1px solid var(--line-3);border-radius:var(--r-pill);
  background:var(--paper);font-size:var(--t-sm);font-weight:500;line-height:1.3;color:var(--ink);cursor:pointer;transition:border-color var(--d1) var(--e-io),background var(--d1) var(--e-io),color var(--d1) var(--e-io)}
.ct-chip:hover{border-color:var(--blue)}
.ct-chip input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;border-radius:inherit}
.ct-chip:has(input:focus-visible){outline:2px solid var(--blue);outline-offset:2px}
.ct-chip__box{display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:50%;background:var(--paper-3);color:transparent;transition:background var(--d2) var(--e),color var(--d2) var(--e)}
.ct-chip__box::after{content:"";width:5px;height:10px;margin-top:-3px;border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg)}
.ct-chip:has(input:checked){border-color:var(--blue-line);background:var(--blue-wash);color:var(--blue-d)}
.ct-chip input:checked+.ct-chip__box{background:var(--blue);color:var(--on-ink)}
.ct-chip.is-flash{box-shadow:0 0 0 4px var(--blue-wash-2)}
/* the page an offer lives on: shown only while a search runs, so two offers with one name can be told apart */
.ct-chip__p{display:none}
.ct-form.is-q .ct-chip__p{display:inline;padding-left:8px;border-left:1px solid var(--line-3);font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.06em;color:var(--muted)}
.ct-form.is-q .ct-chip:has(input:checked) .ct-chip__p{border-left-color:var(--blue-line);color:var(--blue-d)}
.ct-caps{padding-top:16px;border-top:1px dashed var(--line-3)}
.ct-more{border-bottom:1px solid var(--line-2)}
.ct-more:first-of-type{border-top:1px solid var(--line-2)}
.ct-more__s{display:grid;grid-template-columns:18px minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:48px;cursor:pointer;list-style:none}
.ct-more__s::-webkit-details-marker{display:none}
.ct-more__s::before{content:"\203A";font-family:var(--f);font-size:1rem;line-height:1;color:var(--blue);transition:transform var(--d2) var(--e)}
.ct-more[open]>.ct-more__s::before{transform:rotate(90deg)}
.ct-more__t{font-size:var(--t-sm);font-weight:500;color:var(--ink)}
.ct-more__s:hover .ct-more__t{color:var(--blue-d)}
.ct-more__on{font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--blue-d)}
.ct-more__c{font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.ct-more__b{padding:4px 0 18px 28px}
.ct-more__nojs{margin:0;font-size:var(--t-sm);line-height:1.6;color:var(--muted)}

/* ---------- packages ---------- */
.ct-pkset{min-width:0;margin:0;padding:0;border:0}
/* quick mode: the package chosen before, carried with the enquiry (shown only in quick mode, by brief.js) */
.ct-pkquick{margin-top:22px}
.ct-pkquick[data-empty]{display:none}
.ct-pkquick__p{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper-2);font-size:var(--t-sm);line-height:1.5;color:var(--txt)}
.ct-pkquick__k{font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.ct-pkquick__v{font-weight:600;color:var(--ink)}
.ct-pkquick__n{flex-basis:100%;color:var(--muted)}
.ct-pkset>.ct-label{float:left;width:100%;margin-bottom:6px}
.ct-pkset>.ct-label+*{clear:both}
.ct-pkset>.ct-help{margin-bottom:14px}
.ct-pks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.ct-pk{position:relative;display:flex;flex-direction:column;gap:5px;min-width:0;padding:16px 16px 18px;border:1px solid var(--line-3);border-radius:var(--r);background:var(--paper);cursor:pointer;
  transition:border-color var(--d1) var(--e-io),background var(--d1) var(--e-io),box-shadow var(--d2) var(--e)}
.ct-pk:hover{border-color:var(--blue);box-shadow:var(--sh-1)}
.ct-pk input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;border-radius:inherit}
.ct-pk:has(input:focus-visible){outline:2px solid var(--blue);outline-offset:3px}
.ct-pk__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.ct-pk__ico{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--r-xs);background:var(--paper-3);color:var(--ink);transition:background var(--d2) var(--e),color var(--d2) var(--e)}
.ct-pk__dot{position:relative;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line-3)}
.ct-pk__dot::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--blue);transform:scale(0);transition:transform .28s var(--e)}
.ct-pk__n{font-family:var(--f-h);font-size:1rem;font-weight:500;letter-spacing:-.008em;line-height:1.25;color:var(--ink)}
.ct-pk__d{font-size:var(--t-xs);line-height:1.5;color:var(--muted)}
.ct-pk__m{display:flex;flex-direction:column;gap:2px;margin-top:auto;padding-top:10px;font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.ct-pk:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.ct-pk:has(input:checked) .ct-pk__ico{background:var(--ink);color:var(--on-ink);--xt-accent:currentColor}
.ct-pk:has(input:checked) .ct-pk__ico .svc-ico .a{stroke:currentColor}
.ct-pk:has(input:checked) .ct-pk__dot{border-color:var(--blue)}
.ct-pk:has(input:checked) .ct-pk__dot::after{transform:scale(1)}
.ct-pk--none{grid-column:span 2}

/* ---------- files ---------- */
.ct-drop{position:relative;display:flex;flex-direction:column;gap:10px}
.ct-drop__in{width:100%;padding:12px;border:1px dashed var(--line-3);border-radius:var(--r-sm);background:var(--paper-2);font-family:var(--f-b);font-size:var(--t-sm);color:var(--ink)}
.ct-drop__zone{display:none}
.ct-drop.is-js .ct-drop__in{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0;opacity:0}
.ct-drop.is-js .ct-drop__zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:150px;padding:24px;text-align:center;
  border:1.5px dashed var(--line-3);border-radius:var(--r-lg);background:var(--paper-2);cursor:pointer;transition:border-color var(--d1) var(--e-io),background var(--d1) var(--e-io)}
.ct-drop.is-js .ct-drop__zone:hover,.ct-drop.is-over .ct-drop__zone{border-color:var(--blue);background:var(--blue-wash)}
.ct-drop.is-js .ct-drop__in:focus-visible+.ct-drop__zone{outline:2px solid var(--blue);outline-offset:3px}
.ct-drop__ico{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--paper);border:1px solid var(--line);color:var(--ink)}
.ct-drop__t{font-size:var(--t-body);font-weight:500;color:var(--ink)}
.ct-drop__t u{color:var(--blue-d);text-underline-offset:3px}
.ct-drop__s{font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.ct-field.is-bad .ct-drop__zone{border-color:var(--ink)}
.ct-files{display:flex;flex-direction:column;gap:8px}
.ct-files:empty{display:none}
.ct-file{display:grid;grid-template-columns:36px minmax(0,1fr) auto 44px;align-items:center;gap:12px;padding:8px 8px 8px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper)}
.ct-file__ext{display:grid;place-items:center;height:36px;border-radius:var(--r-xs);background:var(--paper-3);font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink)}
.ct-file__n{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--t-sm);font-weight:500;color:var(--ink)}
.ct-file__s{font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.06em;color:var(--faint);white-space:nowrap}
.ct-file__x{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--muted);transition:background var(--d1) var(--e-io),color var(--d1) var(--e-io)}
.ct-file__x:hover{background:var(--paper-3);color:var(--ink)}
.ct-file__x .svc-ico{width:18px;height:18px}
.ct-file.is-bad{border-color:var(--ink);box-shadow:inset 3px 0 0 var(--ink)}
.ct-file__e{grid-column:2 / -1;font-size:var(--t-xs);font-weight:600;color:var(--ink)}

/* NDA switch */
.ct-nda{padding:18px 20px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper-2)}
.ct-switch{position:relative;display:flex;align-items:center;gap:14px;min-height:44px;cursor:pointer}
.ct-switch input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.ct-switch__track{position:relative;flex:none;width:46px;height:26px;border-radius:var(--r-pill);background:var(--line-3);transition:background var(--d2) var(--e)}
.ct-switch__track i{position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:var(--paper);box-shadow:var(--sh-1);transition:transform var(--d2) var(--e)}
.ct-switch input:checked+.ct-switch__track{background:var(--blue)}
.ct-switch input:checked+.ct-switch__track i{transform:translateX(20px)}
.ct-switch:has(input:focus-visible) .ct-switch__track{outline:2px solid var(--blue);outline-offset:3px}
.ct-switch__t{font-size:var(--t-body);font-weight:600;line-height:1.35;color:var(--ink)}
.ct-nda__d{margin-top:6px;padding-left:60px}

/* consent + send */
.ct-consent{display:flex;flex-direction:column;gap:18px;margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
.ct-check{position:relative;display:flex;align-items:flex-start;gap:12px;min-height:44px;cursor:pointer}
.ct-check input{position:absolute;left:-12px;top:-11px;z-index:1;width:44px;height:44px;margin:0;opacity:0;cursor:pointer}
.ct-check__b{pointer-events:none}
.ct-check__b{position:relative;flex:none;width:20px;height:20px;margin-top:1px;border:1.5px solid var(--line-3);border-radius:5px;background:var(--paper);transition:background var(--d1) var(--e-io),border-color var(--d1) var(--e-io)}
.ct-check input:checked+.ct-check__b{background:var(--blue);border-color:var(--blue)}
.ct-check input:checked+.ct-check__b::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid var(--on-ink);border-width:0 2px 2px 0;transform:rotate(45deg)}
.ct-check input:focus-visible+.ct-check__b{outline:2px solid var(--blue);outline-offset:3px}
.ct-check input[aria-invalid="true"]+.ct-check__b{border-color:var(--ink);box-shadow:0 0 0 3px var(--blue-wash-2)}
.ct-check__t{font-size:var(--t-sm);font-weight:500;line-height:1.5;color:var(--ink)}
.ct-consent .ct-help{padding-left:32px}
.ct-consent .ct-field{gap:4px}
.ct-consent .ct-err{padding-left:32px}
.ct-send{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:28px;padding:22px 24px;border-radius:var(--r-lg);background:var(--ink);color:var(--on-ink-2)}
.ct-send__review{flex:1 1 100%;font-size:var(--t-sm);line-height:1.55;color:var(--on-ink)}
.ct-send__review b{font-weight:600}
.ct-send__btn[aria-busy="true"]{opacity:.7;pointer-events:none}
.ct-send__note{flex:1 1 220px;font-size:var(--t-xs);line-height:1.55;color:var(--on-ink-3)}

/* the brief check's strip at the top of the form (phones and tablets only) */
.ct-mini{display:none;grid-template-columns:auto auto minmax(0,1fr);grid-template-areas:"k n bar" "t t t";align-items:center;gap:8px 14px;margin-top:22px;padding:14px 16px;
  border-radius:var(--r);background:var(--blue-wash);color:var(--ink)}
.ct-mini__k{grid-area:k;font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-d)}
.ct-mini__n{grid-area:n;font-family:var(--f-h);font-size:1.1rem;font-weight:500;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.ct-mini__bar{grid-area:bar;position:relative;height:6px;border-radius:var(--r-pill);background:var(--paper);overflow:hidden}
.ct-mini__bar i{position:absolute;inset:0;background:var(--blue);transform-origin:0 50%;transform:scaleX(0);transition:transform .45s var(--e)}
.ct-mini__t{grid-area:t;font-size:var(--t-xs);font-weight:500;line-height:1.45;color:var(--ink);text-decoration:underline;text-decoration-color:var(--blue-line);text-underline-offset:3px}
.ct-sum__back{display:none;margin-top:10px}

/* back / continue */
.ct-nav{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.ct-nav__bi{transform:scaleX(-1)}
.ct-nav__at{font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:center}
.ct-nav__back[hidden]{display:inline-flex;visibility:hidden}
.ct-nav__next[hidden]{display:none}

/* ---------- the live brief (aside) ---------- */
.ct-side{position:sticky;top:calc(var(--nav-h) + 28px);display:flex;flex-direction:column;gap:16px;min-width:0}
.ct-sum{padding:24px;border:1px solid var(--line);border-radius:var(--r-xl);background:var(--paper);box-shadow:var(--sh-1)}
.ct-sum__head{padding-bottom:16px;border-bottom:1px solid var(--line)}
.ct-sum__k{display:flex;justify-content:space-between;align-items:center;font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ct-sum__draft{padding:4px 8px;border-radius:var(--r-pill);background:var(--paper-3);color:var(--ink)}
.ct-sum__t{margin-top:12px;font-family:var(--f-h);font-size:1.3rem;font-weight:500;letter-spacing:-.018em;line-height:1.2;color:var(--ink)}
.ct-sum__mode{margin-top:4px;font-size:var(--t-sm);color:var(--muted)}

.ct-check-box{padding:18px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:16px}
.ct-meter__top{display:flex;justify-content:space-between;align-items:baseline}
.ct-meter__k{font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ct-meter__v{font-family:var(--f-h);font-size:2.2rem;font-weight:500;letter-spacing:-.035em;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.ct-meter__v span{font-size:1.1rem;color:var(--faint);margin-left:2px}
.ct-meter__bar{margin-top:12px}
.ct-meter__segs{display:flex;gap:3px}
.ct-seg{position:relative;height:8px;border-radius:2px;background:var(--paper-4);overflow:hidden}
.ct-seg i{position:absolute;inset:0;background:var(--blue);transform-origin:0 50%;transform:scaleX(0);transition:transform .45s var(--e)}
.ct-seg.is-on i{transform:scaleX(1)}
.ct-seg.is-part i{transform:scaleX(.45);background:var(--blue-line)}
.ct-meter__grade{margin-top:10px;font-size:var(--t-sm);font-weight:500;color:var(--ink)}
.ct-coach{padding:14px 16px;border-radius:var(--r);background:var(--blue-wash)}
.ct-coach__k{font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-d)}
.ct-coach__t{margin-top:6px;font-family:var(--f-h);font-size:1.05rem;font-weight:500;letter-spacing:-.01em;line-height:1.25;color:var(--ink)}
.ct-coach__d{margin-top:4px;font-size:var(--t-xs);line-height:1.55;color:var(--txt)}
.ct-coach__go{margin-top:6px}
.ct-hints__list{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.ct-hint{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 12px;padding:10px 10px 10px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper)}
.ct-hint__t{font-size:var(--t-xs);line-height:1.5;color:var(--txt)}
.ct-hint__t b{font-weight:600;color:var(--ink)}
.ct-hint__go{min-height:36px;padding:0 12px;border:1px solid var(--line-3);border-radius:var(--r-pill);background:var(--paper);font-size:var(--t-xs);font-weight:600;color:var(--ink);white-space:nowrap;transition:border-color var(--d1) var(--e-io),color var(--d1) var(--e-io)}
.ct-hint__go:hover{border-color:var(--blue);color:var(--blue-d)}
.ct-list__s{display:flex;justify-content:space-between;align-items:center;min-height:44px;cursor:pointer;list-style:none;font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.ct-list__s::-webkit-details-marker{display:none}
.ct-list__s::after{content:"\203A";font-family:var(--f);font-size:1rem;color:var(--blue);transition:transform var(--d2) var(--e)}
.ct-list[open] .ct-list__s::after{transform:rotate(90deg)}
.ct-list__s span{margin-left:auto;margin-right:10px;color:var(--muted)}
.ct-list__ol{display:flex;flex-direction:column}
.ct-list__i{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:34px;border-bottom:1px solid var(--line-2);font-size:var(--t-xs);color:var(--txt)}
.ct-list__i button{display:contents;cursor:pointer;text-align:left;font:inherit;color:inherit}
.ct-list__i .ct-list__m{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--line-3)}
.ct-list__i.is-on .ct-list__m{background:var(--blue);border-color:var(--blue)}
.ct-list__i.is-on .ct-list__t{color:var(--ink)}
.ct-list__w{font-family:var(--f);font-size:var(--t-lbl);color:var(--faint)}
.ct-sum__note{display:flex;gap:8px;align-items:flex-start;font-size:var(--t-xs);line-height:1.5;color:var(--muted)}
.ct-sum__note .xt-ico{width:16px;height:16px;margin-top:1px;color:var(--muted)}

.ct-rows{padding-top:4px}
.ct-row{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--line-2);align-items:baseline}
.ct-row:last-child{border-bottom:0}
.ct-row dt{font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.ct-row dd{min-width:0;font-size:var(--t-sm);line-height:1.5;color:var(--ink);overflow-wrap:anywhere}
.ct-row__n{margin-left:4px;color:var(--blue-d)}
.ct-row__m{display:block;font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.06em;color:var(--muted)}
.ct-row--svc{grid-template-columns:minmax(0,1fr)}
.ct-row--svc dt{display:flex}
.ct-row[data-ct-bpk] dd{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
.ct-bl{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.ct-bi{display:grid;grid-template-columns:minmax(0,1fr) 36px;column-gap:6px;align-items:center;padding:8px 4px 8px 12px;border-radius:var(--r-sm);background:var(--paper-2)}
.ct-bi__n{font-size:var(--t-sm);font-weight:500;line-height:1.35;color:var(--ink)}
.ct-bi__m{grid-column:1;font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.04em;color:var(--muted);line-height:1.4}
.ct-bi__x{grid-column:2;grid-row:1 / span 2;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:var(--muted);transition:background var(--d1) var(--e-io),color var(--d1) var(--e-io)}
.ct-bi__x:hover{background:var(--paper);color:var(--ink)}
.ct-bi__x .svc-ico{width:16px;height:16px}
.ct-bl__empty{margin-top:6px;font-size:var(--t-sm);line-height:1.5;color:var(--muted)}

/* the rest of the brief, one group per step, each with an Edit button that opens its step */
.ct-grps{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.ct-grps[hidden]{display:none}
.ct-grp{padding:14px 0 4px;border-bottom:1px solid var(--line-2)}
.ct-grp:last-child{border-bottom:0}
.ct-grp__head{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:32px}
.ct-grp__t{font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.ct-grp__dl .ct-row{padding:8px 0}
.ct-grp__dl .ct-row:last-child{border-bottom:0}
.ct-grp__none{padding:4px 0 10px;font-size:var(--t-xs);line-height:1.5;color:var(--faint)}
.ct-grp.is-empty{padding:8px 0}
.ct-grp.is-empty .ct-grp__none{margin-right:auto;padding:0}
.ct-edit{display:inline-flex;align-items:center;flex:none;min-height:32px;padding:0 12px;border:1px solid var(--line-3);border-radius:var(--r-pill);background:var(--paper);
  font-size:var(--t-xs);font-weight:600;color:var(--ink);transition:border-color var(--d1) var(--e-io),color var(--d1) var(--e-io)}
.ct-edit:hover{border-color:var(--blue);color:var(--blue-d)}

/* the review in the last step: the whole brief as the lead will read it, on a sheet of paper */
.ct-review{margin-top:32px;border:1px solid var(--line-3);border-radius:var(--r-lg);background:var(--paper);box-shadow:var(--sh-1)}
.ct-review[hidden]{display:none}
.ct-review__head{padding:22px 24px 18px;border-bottom:1px solid var(--ink)}
.ct-review__k{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ct-review__k [data-ct-review-score]{color:var(--blue-d)}
.ct-review__t{margin-top:12px;font-family:var(--f-h);font-size:clamp(1.25rem,1.6vw,1.45rem);font-weight:500;letter-spacing:-.02em;line-height:1.2;color:var(--ink)}
.ct-review__t:focus{outline:none}
.ct-review__d{margin-top:6px;font-size:var(--t-sm);line-height:1.6;color:var(--muted);max-width:60ch}
.ct-review__body{padding:0 24px 8px}
.ct-rv{padding:18px 0 12px;border-bottom:1px solid var(--line)}
.ct-rv:last-child{border-bottom:0}
.ct-rv__head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px}
.ct-rv__t{font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.ct-rv__dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}
.ct-rv__r{min-width:0;padding:10px 0;border-top:1px solid var(--line-2)}
.ct-rv__r.is-wide{grid-column:1 / -1}
.ct-rv__r dt{font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.ct-rv__r dd{margin-top:4px;font-size:var(--t-sm);line-height:1.6;color:var(--ink);white-space:pre-line;overflow-wrap:anywhere}
.ct-rv .ct-grp__none{padding:8px 0 4px}

.ct-direct{display:flex;flex-direction:column;gap:4px;padding:20px 24px;border-radius:var(--r-lg);background:var(--paper-3)}
.ct-direct__k{font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ct-direct__mail{margin:8px 0 6px;font-family:var(--f-h);font-size:1.1rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);overflow-wrap:anywhere}
.ct-direct__mail:hover{color:var(--blue-d)}

/* ---------- responsive ---------- */
/* beside the form, the card never runs past the screen: it scrolls inside itself once the brief is long */
@media (min-width:1024px){
  .ct-side{max-height:calc(100vh - var(--nav-h) - 56px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-3) transparent;
    padding:2px;margin:-2px}
  .ct-side.is-more{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 64px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 64px),transparent)}
}
@media (max-width:1280px){
  .ct-pks{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ct-pk--none{grid-column:span 3}
}
@media (max-width:1023px){
  .ct-grid{grid-template-columns:minmax(0,1fr)}
  .ct-side{position:static;scroll-margin-top:calc(var(--nav-h) + 24px)}
  .ct-direct{display:none}
  .ct-sum{padding:20px}
  .ct-mini:not([hidden]){display:grid}
  .ct-sum__back{display:inline-flex}
}
@media (max-width:760px){
  .ct-modes__row{grid-template-columns:minmax(0,1fr)}
  .ct-mode{min-height:56px}
  .ct-fields{grid-template-columns:minmax(0,1fr)}
  .ct-pks{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ct-pk--none{grid-column:span 2}
  .ct-stepper__t{display:none}
  .ct-stepper__i.is-cur .ct-stepper__t{display:block}
  .ct-stepper__i.is-cur{flex:3 1 0}
  .ct-form:not(.is-stepped) .ct-stepper__t{display:block}
  .ct-form:not(.is-stepped) .ct-stepper__list{flex-wrap:wrap}
  .ct-form:not(.is-stepped) .ct-stepper__i{flex:1 1 40%}
  .ct-disc__b{padding-left:0}
  .ct-disc__s{grid-template-columns:26px minmax(0,1fr) auto 28px}
  .ct-disc__all{display:none}
  .ct-more__b{padding-left:0}
  .ct-more__s{grid-template-columns:18px minmax(0,1fr) auto}
  .ct-more__c{display:none}
}
@media (max-width:520px){
  .ct-form{padding:20px 16px;border-radius:var(--r-lg)}
  .ct-pair--phone{grid-template-columns:minmax(0,118px) minmax(0,1fr)}
  .ct-budget{grid-template-columns:minmax(0,1fr)}
  .ct-pks{grid-template-columns:minmax(0,1fr)}
  .ct-pk--none{grid-column:auto}
  .ct-nda__d{padding-left:0}
  .ct-under{flex-direction:column}
  .ct-count{margin-left:0}
  .ct-send{padding:20px}
  .ct-send__btn{width:100%}
  .ct-nav .btn{padding:0 18px}
  .ct-nav__at{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .ct-file{grid-template-columns:36px minmax(0,1fr) 44px}
  .ct-file__s{grid-column:2;grid-row:2}
  .ct-file__x{grid-column:3;grid-row:1 / span 2}
  .ct-errs{padding:20px 18px}
  .ct-row{grid-template-columns:84px minmax(0,1fr)}
}
/* the form's own width decides, not the window's: beside the brief at 1024 it is as narrow as a phone */
@container ctform (max-width:540px){
  .ct-fields{grid-template-columns:minmax(0,1fr)}
}
@container ctform (max-width:640px){
  /* the three kinds of brief as a compact list: dot · name · time on one line */
  .ct-modes__row{grid-template-columns:minmax(0,1fr);gap:8px}
  .ct-mode{grid-template-columns:20px minmax(0,1fr) auto;grid-template-areas:"dot t s";min-height:52px;padding:10px 16px}
  .ct-mode__s{white-space:nowrap}
  /* the stepper names only the step you are on; the others keep their numbers (every label shows without JS) */
  .ct-stepper__t{display:none}
  .ct-stepper__i.is-cur .ct-stepper__t{display:block}
  .ct-stepper__i.is-cur{flex:3 1 0}
  .ct-form:not(.is-stepped) .ct-stepper__t{display:block}
  .ct-form:not(.is-stepped) .ct-stepper__list{flex-wrap:wrap}
  .ct-form:not(.is-stepped) .ct-stepper__i{flex:1 1 40%}
  /* packages two by two; the discipline lists drop their totals so each name keeps one line */
  .ct-pks{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ct-pk--none{grid-column:span 2}
  .ct-disc__b{padding-left:0}
  .ct-disc__s{grid-template-columns:26px minmax(0,1fr) auto 28px}
  .ct-disc__all{display:none}
  .ct-more__b{padding-left:0}
  .ct-more__s{grid-template-columns:18px minmax(0,1fr) auto}
  .ct-more__c{display:none}
}
@container ctform (max-width:560px){
  .ct-rv__dl{grid-template-columns:minmax(0,1fr)}
  .ct-review__head{padding:18px 16px 16px}
  .ct-review__body{padding:0 16px 6px}
}
@container ctform (max-width:420px){
  /* a phone: each select gets the full width, so "+44 United Kingdom" and the country never truncate */
  .ct-pair,.ct-pair--phone{grid-template-columns:minmax(0,1fr)}
  .ct-pks{grid-template-columns:minmax(0,1fr)}
  .ct-pk--none{grid-column:auto}
}
@media (prefers-reduced-motion:reduce){
  .ct-seg i,.ct-stepper__rail i,.ct-switch__track i,.ct-mode__dot::after,.ct-pk__dot::after{transition:none}
}

/* suggestions from the brief check, and the flash when one is applied */
.ct-hint{grid-template-columns:minmax(0,1fr)}
.ct-hint__acts{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.ct-hint__no{min-height:36px;padding:0 6px;font-size:var(--t-xs);font-weight:500;color:var(--muted);text-decoration:underline;text-decoration-color:var(--line-3);text-underline-offset:3px}
.ct-hint__no:hover{color:var(--ink)}
.ct-field.is-flash .ct-input,.ct-field.is-flash .ct-switch__track,.ct-field.is-flash .ct-check__b{box-shadow:0 0 0 4px var(--blue-wash-2)}
.ct-field .ct-input,.ct-chip{transition:border-color var(--d1) var(--e-io),background var(--d1) var(--e-io),box-shadow .4s var(--e)}
@media (max-width:680px),(pointer:coarse){
  .ct-hint__go,.ct-hint__no,.ct-edit{min-height:44px}
  .ct-edit{padding:0 16px}
}

/* touch screens (phones and tablets): 44px tap targets (integrator, responsive pass) */
@media (pointer:coarse){
  .ct-direct__mail{display:flex;align-items:center;min-height:44px}
}
