/* ===========================================================
   Translation Services UK — quote/checkout form
   On-brand, self-contained (re-declares design tokens so it
   renders correctly even where the theme stylesheet isn't present)
   =========================================================== */
.ltt{
  --paper:#F4F1E9; --paper-2:#EDE8DC; --paper-3:#E5DFD0;
  --ink:#15160F; --ink-soft:#3B3C32; --muted:#6E6F62;
  --line:rgba(21,22,15,.12); --line-soft:rgba(21,22,15,.07);
  --brand:#0E5C45; --brand-2:#0A4533; --brand-3:#063327;
  --accent:#CBF24E; --accent-2:#AEDB2C; --white:#fff;
  --r-lg:22px; --r-md:14px; --r-sm:10px;
  --ease:cubic-bezier(.22,.61,.36,1);
  font-family:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--ink); max-width:1080px; margin:0 auto; line-height:1.55;
  /* Clear the fixed site header (≈124px unscrolled: 88px logo + 18px×2 padding). */
  padding-top:130px;
  padding-bottom:72px; /* breathing room so the last step isn't flush against the footer/page edge */
  scroll-margin-top:130px; /* keep clear of the sticky header when auto-scrolling between steps */
}
.ltt *{box-sizing:border-box}
.ltt h2,.ltt h3,.ltt h4{margin:0;letter-spacing:-.02em;color:var(--ink)}
.ltt p{color:var(--ink-soft)}
.ltt a{color:var(--brand);text-decoration:none}
.ltt ol,.ltt ul{list-style:none;margin:0;padding:0}
/* --- theme-bleed armor: themes style generic button/input/li; force ours back --- */
.ltt button{appearance:none;-webkit-appearance:none;text-transform:none;letter-spacing:normal;box-shadow:none}
.ltt button.ltt-svc{color:var(--ink)!important;background:#fff!important;border:1px solid var(--line)!important;width:100%}
.ltt .ltt-svc .tag{color:var(--brand)!important}
.ltt .ltt-svc .nm{color:var(--ink)!important}
.ltt .ltt-svc .bl{color:var(--ink-soft)!important}
.ltt .ltt-svc .pr{color:var(--brand)!important}
.ltt .ltt-svc .pr small{color:var(--muted)!important}
.ltt .ltt-steps li{color:var(--muted)!important;background:#fff!important;border:1px solid var(--line)!important}
.ltt .ltt-steps li.on{color:var(--ink)!important;border-color:var(--brand)!important}
.ltt .ltt-btn-primary{background:var(--accent)!important;color:var(--brand-3)!important;border:none!important}
.ltt .ltt-back{background:none!important;border:none!important;color:var(--muted)!important}
.ltt input,.ltt textarea,.ltt select{color:var(--ink)!important;background:#fff!important}
.ltt button.ltt-svc:hover{border-color:var(--brand)!important}
.ltt button.ltt-variant{color:var(--ink)!important;background:#fff!important;border:1px solid var(--line)!important;width:100%}
.ltt button.ltt-variant.on{background:var(--paper-2)!important;border-color:var(--brand)!important}
.ltt .ltt-variant .vnm{color:var(--ink)!important}
.ltt .ltt-variant .vhint{color:var(--muted)!important}
.ltt .ltt-variant .vpr{color:var(--brand)!important}
.ltt .ltt-variant .vpr small{color:var(--muted)!important}
.ltt .ltt-turn label{background:#fff!important;color:var(--ink)!important}
.ltt .ltt-turn label.on{background:var(--paper-2)!important;border-color:var(--brand)!important}
/* --- layout armor: themes also force display/flex/white-space/text-align on
   generic <button>/<label> elements (e.g. Elementor's .elementor button{…}).
   That collapses our option tiles into a single no-wrap row whose right side
   (the price) is clipped off-screen on mobile. Re-assert each tile's intended
   layout so service/variant cards always stack and nothing overflows. --- */
.ltt button.ltt-svc{display:block!important;text-align:left!important;white-space:normal!important;
  width:100%!important;min-width:0!important}
.ltt button.ltt-variant{display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;
  align-items:stretch!important;justify-content:flex-start!important;gap:3px!important;
  text-align:left!important;white-space:normal!important;width:100%!important;min-width:0!important}
.ltt .ltt-turn label{display:flex!important;flex-direction:row!important;align-items:center!important;
  text-align:left!important;white-space:normal!important;width:100%!important;min-width:0!important}
.ltt .ltt-svc>*,.ltt .ltt-variant>*,.ltt .ltt-turn label>*{white-space:normal!important;
  overflow-wrap:anywhere;min-width:0}

/* stepper */
.ltt-steps{display:flex;gap:8px;list-style:none;margin:0 0 26px;padding:0;flex-wrap:wrap}
.ltt-steps li{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:600;color:var(--muted);
  background:#fff;border:1px solid var(--line);border-radius:40px;padding:8px 16px;transition:.25s var(--ease)}
.ltt-steps li span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;
  background:var(--paper-2);color:var(--muted);font-weight:700;transition:.25s}
.ltt-steps li.on{color:var(--ink);border-color:var(--brand)}
.ltt-steps li.on span{background:var(--brand);color:var(--accent)}
.ltt-steps li.done span{background:var(--accent);color:var(--brand-3)}
.ltt-steps li i{font-style:normal}

/* sub-type (variant) chooser — localization */
.ltt-variants{margin:2px 0 20px}
.ltt-variant-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.ltt-variant{position:relative;text-align:left;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);
  padding:14px 16px;cursor:pointer;transition:.2s var(--ease);display:flex;flex-direction:column;gap:3px}
.ltt-variant:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:0 18px 38px -28px rgba(14,92,69,.5)}
.ltt-variant.on{border-color:var(--brand);background:var(--paper-2)}
.ltt-variant.on::after{content:"✓";position:absolute;top:12px;right:14px;width:20px;height:20px;border-radius:50%;
  background:var(--brand);color:var(--accent);font-size:11px;display:grid;place-items:center;font-weight:700}
.ltt-variant .vnm{font-weight:700;font-size:14.5px;color:var(--ink);padding-right:22px}
.ltt-variant .vhint{font-size:12.5px;color:var(--muted)}
.ltt-variant .vpr{margin-top:6px;font-weight:700;font-size:13.5px;color:var(--brand)}
.ltt-variant .vpr small{color:var(--muted);font-weight:600}
.ltt-indic{margin-top:14px;background:rgba(14,92,69,.07);border:1px solid rgba(14,92,69,.18);border-radius:var(--r-md);
  padding:12px 16px;font-size:14px;color:var(--ink-soft)}
.ltt-indic strong{color:var(--brand);font-size:16px}
.ltt-indic em{font-style:normal;color:var(--muted);font-size:12px}

/* steps */
.ltt-step{display:none;animation:lttIn .4s var(--ease)}
.ltt-step.is-active{display:block}
@keyframes lttIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.ltt-h{font-size:clamp(24px,3.4vw,34px);font-weight:700}
.ltt-sub{color:var(--ink-soft);margin:8px 0 24px;font-size:15.5px}
.ltt-back{background:none;border:none;color:var(--muted);font-weight:600;cursor:pointer;font-size:14px;
  margin-bottom:14px;padding:0;font-family:inherit}
.ltt-back:hover{color:var(--brand)}

/* service grid */
.ltt-svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.ltt-svc{position:relative;text-align:left;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:22px 22px 20px;cursor:pointer;transition:.25s var(--ease);font-family:inherit}
.ltt-svc:hover{transform:translateY(-3px);box-shadow:0 24px 50px -36px rgba(21,22,15,.5);border-color:var(--brand)}
.ltt-svc .tag{font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--brand)}
.ltt-svc .nm{font-size:19px;font-weight:700;margin-top:6px}
.ltt-svc .bl{font-size:13.5px;color:var(--ink-soft);margin-top:7px;min-height:38px}
.ltt-svc .pr{margin-top:14px;font-size:14px;font-weight:700;color:var(--brand)}
.ltt-svc .pr small{color:var(--muted);font-weight:600}
.ltt-svc .badge{position:absolute;top:14px;right:14px;font-family:"JetBrains Mono",monospace;font-size:9.5px;
  letter-spacing:.1em;text-transform:uppercase;background:var(--accent);color:var(--brand-3);font-weight:700;
  padding:4px 9px;border-radius:30px}
.ltt-svc .req{position:absolute;top:14px;right:14px;font-size:10.5px;font-weight:700;color:var(--muted);
  background:var(--paper-2);border:1px solid var(--line);padding:4px 9px;border-radius:30px}

/* fields */
.ltt-field{display:block;margin-bottom:14px}
.ltt-field>span{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:6px}
.ltt-field input,.ltt-field textarea,.ltt-field select{width:100%;font-family:inherit;font-size:15px;color:var(--ink);
  background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;transition:.2s}
.ltt-field input:focus,.ltt-field textarea:focus,.ltt-field select:focus{outline:none;border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(14,92,69,.12)}
.ltt-grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}

/* drop zone */
.ltt-drop{position:relative;border:2px dashed var(--line);border-radius:var(--r-lg);background:#fff;
  padding:40px 24px;text-align:center;cursor:pointer;transition:.25s var(--ease)}
.ltt-drop:hover,.ltt-drop.drag{border-color:var(--brand);background:var(--paper-2)}
.ltt-drop .ico{width:46px;height:46px;color:var(--brand);margin:0 auto 12px}
.ltt-drop .t{font-size:17px;font-weight:700}
.ltt-drop .s{font-size:13.5px;color:var(--muted);margin-top:5px}
.ltt-files{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.ltt-file{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:11px 14px;font-size:14px}
.ltt-file .fi{width:30px;height:30px;border-radius:7px;background:var(--paper-2);color:var(--brand);display:grid;place-items:center;flex-shrink:0;font-size:12px;font-weight:700}
.ltt-file .meta{margin-left:auto;color:var(--muted);font-size:12.5px}
.ltt-loading{display:flex;align-items:center;gap:10px;color:var(--brand);font-weight:600;font-size:14px;margin-top:14px}
.ltt-spin{width:18px;height:18px;border:2.5px solid rgba(14,92,69,.25);border-top-color:var(--brand);border-radius:50%;animation:lttSpin .7s linear infinite}
@keyframes lttSpin{to{transform:rotate(360deg)}}
/* upload progress */
.ltt-uploading{margin-top:14px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px}
.ltt-up-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.ltt-up-name{font-weight:700;font-size:14px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.ltt-up-pct{font-weight:700;font-size:13px;color:var(--brand);flex-shrink:0;font-variant-numeric:tabular-nums}
.ltt-up-track{position:relative;height:8px;border-radius:99px;background:var(--paper-2);overflow:hidden}
.ltt-up-bar{height:100%;width:0;border-radius:99px;background:var(--brand);transition:width .2s var(--ease)}
.ltt-up-bar.ltt-up-indet{width:40%!important;animation:lttIndet 1.1s ease-in-out infinite}
@keyframes lttIndet{0%{margin-left:-42%}100%{margin-left:100%}}
.ltt-up-status{margin-top:9px;font-size:12.5px;color:var(--muted);font-weight:600}

/* quote */
.ltt-quote-wrap{display:grid;grid-template-columns:1.4fr 1fr;gap:22px;align-items:start}
.ltt-quote-main{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:26px}
.ltt-q-line{display:flex;flex-direction:column;gap:4px;padding-bottom:18px;border-bottom:1px solid var(--line-soft);margin-bottom:20px}
.ltt-q-line span{font-size:13px;color:var(--muted);font-weight:600}
.ltt-q-line strong{font-size:18px}
.ltt-opt-block{margin-bottom:22px}
.ltt-opt-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:11px}
.ltt-turn{display:flex;flex-direction:column;gap:9px}
.ltt-turn label{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:var(--r-md);
  padding:14px 16px;cursor:pointer;transition:.2s;background:#fff}
.ltt-turn label:hover{border-color:var(--brand)}
.ltt-turn label.on{border-color:var(--brand);background:var(--paper-2)}
.ltt-turn input{accent-color:var(--brand);width:18px;height:18px}
.ltt-turn .tl{font-weight:700;font-size:14.5px}
.ltt-turn .te{font-size:12.5px;color:var(--muted)}
.ltt-turn .tp{margin-left:auto;font-weight:700;color:var(--brand);font-size:14px}
.ltt-addons{display:flex;flex-direction:column;gap:9px}
.ltt-addon{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:var(--r-md);padding:13px 16px}
.ltt-addon input[type=checkbox]{accent-color:var(--brand);width:18px;height:18px}
.ltt-addon .al{font-weight:600;font-size:14px}
.ltt-addon .ap{margin-left:auto;font-weight:700;color:var(--brand);font-size:14px}
.ltt-addon .qty{width:54px!important;padding:6px 8px!important;text-align:center}

/* summary */
.ltt-summary{position:sticky;top:24px;background:radial-gradient(120% 90% at 80% 0%,#19735a,#0a4734 52%,#04221a);
  border-radius:var(--r-lg);padding:26px;color:#fff;box-shadow:0 30px 60px -40px rgba(6,51,39,.7)}
.ltt-summary-static{position:static}
.ltt-sum-rows{display:flex;flex-direction:column;gap:11px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.16);margin-bottom:16px}
.ltt-sum-row{display:flex;justify-content:space-between;font-size:14px;color:rgba(255,255,255,.85)}
.ltt-sum-row.dim{color:rgba(255,255,255,.6);font-size:13px}
.ltt-sum-total{display:flex;justify-content:space-between;align-items:baseline}
.ltt-sum-total span{font-size:14px;color:rgba(255,255,255,.8)}
.ltt-sum-total strong{font-size:30px;font-weight:700}
.ltt-vat{font-family:"JetBrains Mono",monospace;font-size:11px;color:rgba(255,255,255,.6);margin-top:8px}
.ltt-trust{font-size:12.5px;color:var(--muted);margin-top:13px;text-align:center}
.ltt-summary .ltt-trust{color:rgba(255,255,255,.65)}

/* buttons */
.ltt-btn{font-family:inherit;font-weight:700;cursor:pointer;border:none;font-size:15px;border-radius:40px;
  padding:14px 26px;transition:.25s var(--ease);display:inline-flex;align-items:center;justify-content:center;gap:8px}
.ltt-btn-primary{background:var(--accent);color:var(--brand-3)}
.ltt-btn-primary:hover{background:#fff;transform:translateY(-1px)}
.ltt-summary .ltt-btn-primary{box-shadow:0 14px 30px -14px rgba(203,242,78,.6)}
.ltt-full{width:100%;margin-top:18px}
.ltt-btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}

/* checkout */
.ltt-co-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:22px;align-items:start}
.ltt-payform{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:26px}
.ltt-card-el{border:1px solid var(--line);border-radius:var(--r-sm);padding:13px 14px;background:#fff}
.ltt-wallets{margin-bottom:14px}

/* messages */
.ltt-err{color:#b3261e;font-size:13.5px;margin-top:12px;min-height:1em}
.ltt-ok{background:rgba(14,92,69,.08);border:1px solid rgba(14,92,69,.25);color:var(--brand);
  border-radius:var(--r-md);padding:18px 20px;margin-top:16px;font-weight:600}

@media(max-width:820px){
  .ltt{padding-top:120px}
  .ltt-svc-grid,.ltt-quote-wrap,.ltt-co-grid,.ltt-grid2,.ltt-variant-grid{grid-template-columns:1fr}
  .ltt-summary{position:static}
  .ltt-steps li{padding:7px 12px;font-size:12.5px}
}

/* Target language picker (quote step) */
.ltt-target-select{width:100%;font-family:inherit;font-size:15px;color:var(--ink);
  background:#fff;border:1.5px solid var(--line,#e2e0d6);border-radius:10px;padding:11px 13px;appearance:auto}
.ltt-target-select:focus{outline:none;border-color:var(--brand)}
.ltt-target-note{font-size:12.5px;color:var(--muted,#6E6F62);margin-top:7px}
