/*
 * CTS Quick Quote component (.cqq- namespace). Loaded only where the
 * [cts_quickquote] shortcode renders. Consumes the root design tokens from
 * tokens.css with hard fallbacks. Matches the v7 conversion-lander quote
 * card: white card, 12px radius, deep soft shadow, electric blue actions.
 */

.cqq{max-width:560px;margin-inline:auto;font-family:inherit;color:var(--cts-text,#0B1F33)}
.cqq *{box-sizing:border-box}

.cqq-card{position:relative;background:#fff;border-radius:12px;box-shadow:0 34px 70px -30px rgba(2,11,23,.8);padding:1.7rem 1.9rem 1.9rem;border:0;margin:0}

/* Honeypot: visually removed, still in the DOM for bots */
.cqq-hp{position:absolute !important;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

/* Head */
.cqq .cqq-title{font-size:1.55rem;font-weight:800;color:var(--cts-ink,#07182C);line-height:1.2;letter-spacing:-.015em;margin:0}
.cqq-sub{color:var(--cts-muted,#64748B);font-size:.9rem;margin:.4rem 0 0}
.cqq-progress{display:flex;align-items:center;gap:.7rem;margin-top:1rem}
.cqq-progress[hidden]{display:none}
.cqq-progress__txt{font-size:.75rem;font-weight:700;color:var(--cts-muted,#64748B);white-space:nowrap;letter-spacing:.02em}
.cqq-progress__bar{flex:1;height:4px;border-radius:999px;background:var(--cts-stone-2,#ECF0F6);overflow:hidden}
.cqq-progress__bar i{display:block;height:100%;border-radius:999px;background:var(--cts-brand,#1065FF);transition:width .35s ease}

/* Steps: no-JS shows everything stacked; JS collapses to the active step */
.cqq-step{border:0;padding:0;margin:1.2rem 0 0}
.cqq-step .cqq-q{display:block;width:100%;font-size:1.02rem;font-weight:800;color:var(--cts-ink,#07182C);padding:0;margin:0 0 .8rem}
.cqq.js-on .cqq-step{display:none}
.cqq.js-on .cqq-step.is-active{display:block;animation:cqq-in .28s ease}
@keyframes cqq-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Option tiles */
.cqq-grid{display:grid;gap:.6rem}
.cqq-grid--c2{grid-template-columns:repeat(2,1fr)}
.cqq-grid--c3{grid-template-columns:repeat(3,1fr)}
.cqq-opt{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.15rem;padding:.85rem .5rem .75rem;border:1.5px solid var(--cts-line-2,#CBD5E1);border-radius:10px;cursor:pointer;background:#fff;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;-webkit-tap-highlight-color:transparent}
.cqq-opt:hover{border-color:var(--cts-brand,#1065FF)}
.cqq-opt input{position:absolute;opacity:0;pointer-events:none}
.cqq-opt__icon{display:block;line-height:0}
.cqq-opt__icon svg{width:76px;height:57px}
.cqq-opt__t{font-weight:700;font-size:.88rem;color:var(--cts-ink,#07182C);line-height:1.25;margin-top:.2rem}
.cqq-opt__s{font-size:.74rem;color:var(--cts-muted,#64748B);line-height:1.3}
.cqq-opt__check{position:absolute;top:7px;right:7px;width:20px;height:20px;border-radius:50%;background:var(--cts-brand,#1065FF);display:none;align-items:center;justify-content:center}
.cqq-opt.is-sel,.cqq-opt:has(input:checked){border-color:var(--cts-brand,#1065FF);background:var(--cts-brand-tint,#E7F0FF);box-shadow:0 0 0 1px var(--cts-brand,#1065FF) inset}
.cqq-opt.is-sel .cqq-opt__check,.cqq-opt:has(input:checked) .cqq-opt__check{display:flex}
.cqq-opt input:focus-visible~.cqq-opt__t{outline:2px solid var(--cts-brand,#1065FF);outline-offset:2px;border-radius:4px}

/* Quantity stepper */
.cqq-qty{margin-top:1rem}
.cqq-qty>label{display:block;font-weight:700;font-size:.85rem;color:var(--cts-ink,#07182C);margin-bottom:.35rem}
.cqq-stepper{display:inline-flex;align-items:stretch;border:2px solid #A9BACE;border-radius:8px;overflow:hidden}
.cqq-stepper__btn{width:46px;min-height:46px;border:0;background:var(--cts-stone,#F4F6FA);color:var(--cts-ink,#07182C);font-size:1.25rem;font-weight:700;cursor:pointer;line-height:1}
.cqq-stepper__btn:hover{background:var(--cts-stone-2,#ECF0F6)}
.cqq-stepper input{width:74px;border:0;text-align:center;font-family:inherit;font-size:1.05rem;font-weight:800;color:var(--cts-ink,#07182C);-moz-appearance:textfield;appearance:textfield}
.cqq-stepper input::-webkit-outer-spin-button,.cqq-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.cqq-stepper input:focus,.cqq-stepper__btn:focus-visible{outline:2px solid var(--cts-brand,#1065FF);outline-offset:-2px}

/* Fields */
.cqq-field{margin-top:.75rem}
.cqq-field label{display:block;font-weight:700;font-size:.85rem;color:var(--cts-ink,#07182C);margin-bottom:.3rem}
.cqq-field label small{font-weight:500;color:var(--cts-muted,#64748B)}
.cqq-field input,.cqq-field textarea{width:100%;font-family:inherit;font-size:16px;color:var(--cts-text,#0B1F33);padding:.8rem .9rem;border:2px solid #A9BACE;border-radius:8px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}
.cqq-field input:hover,.cqq-field textarea:hover{border-color:#7E93AC}
.cqq-field input::placeholder,.cqq-field textarea::placeholder{color:#8494A8;opacity:1}
.cqq-field input:focus,.cqq-field textarea:focus{outline:0;border-color:var(--cts-brand,#1065FF);box-shadow:0 0 0 3px var(--cts-brand-tint,#E7F0FF)}
.cqq-field textarea{resize:vertical;min-height:86px}
.cqq-field input.is-err,.cqq-field textarea.is-err,.cqq-pc__input.is-err{border-color:var(--cts-danger,#DC4438)}

/* Dimensions grid */
.cqq-dims{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}
.cqq-dims .cqq-field{margin-top:.75rem}

/* Route / postcodes */
.cqq-route{display:grid;grid-template-columns:1fr auto 1fr;gap:.6rem;align-items:start}
.cqq-route__arrow{color:var(--cts-muted,#64748B);align-self:center;margin-top:1.1rem;line-height:0}
.cqq-pc label{display:block;font-weight:700;font-size:.85rem;color:var(--cts-ink,#07182C);margin-bottom:.3rem}
.cqq-pc__input{width:100%;font-family:inherit;font-size:16px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--cts-ink,#07182C);padding:.8rem .8rem;border:2px solid #A9BACE;border-radius:8px;transition:border-color .15s ease,box-shadow .15s ease}
.cqq-pc__input:hover{border-color:#7E93AC}
.cqq-pc__input::placeholder{color:#8494A8;opacity:1;font-weight:600}
.cqq-pc__input:focus{outline:0;border-color:var(--cts-brand,#1065FF);box-shadow:0 0 0 3px var(--cts-brand-tint,#E7F0FF)}
.cqq-pc__input.is-ok{border-color:var(--cts-verified,#15A66B)}
.cqq-pc__status{display:block;min-height:1.1rem;font-size:.78rem;margin-top:.3rem;color:var(--cts-muted,#64748B)}
.cqq-pc__status.is-ok{color:var(--cts-verified,#15A66B);font-weight:700}
.cqq-pc__status.is-ok::before{content:"\2713\00a0"}
.cqq-pc__status.is-warn{color:var(--cts-warn,#B7791F)}
.cqq-hint{font-size:.8rem;color:var(--cts-muted,#64748B);margin:.7rem 0 0}

/* Chips (frequency / timeframe) */
.cqq-group{margin-top:.9rem}
.cqq-group__label{display:block;font-weight:700;font-size:.85rem;color:var(--cts-ink,#07182C);margin-bottom:.4rem}
.cqq-chips{display:flex;flex-wrap:wrap;gap:.45rem}
.cqq-chip{position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cqq-chip input{position:absolute;opacity:0;pointer-events:none}
.cqq-chip span{display:inline-block;padding:.5rem .95rem;border:1.5px solid var(--cts-line-2,#CBD5E1);border-radius:999px;font-size:.86rem;font-weight:600;color:var(--cts-text-2,#33455A);transition:all .15s ease;line-height:1.2}
.cqq-chip:hover span{border-color:var(--cts-brand,#1065FF)}
.cqq-chip.is-sel span,.cqq-chip:has(input:checked) span{background:var(--cts-ink-700,#0B2447);border-color:var(--cts-ink-700,#0B2447);color:#fff}
.cqq-chip input:focus-visible+span{outline:2px solid var(--cts-brand,#1065FF);outline-offset:2px}

/* Contact grid */
.cqq-contact{display:grid;grid-template-columns:1fr 1fr;gap:0 .7rem}
.cqq-consent{display:flex;gap:.55rem;align-items:flex-start;margin-top:1rem;cursor:pointer}
.cqq-consent input{margin-top:.22rem;width:16px;height:16px;flex:none;accent-color:var(--cts-brand,#1065FF)}
.cqq-consent span{font-size:.8rem;color:var(--cts-text-2,#33455A);line-height:1.5}
.cqq-consent.is-err span{color:var(--cts-danger,#DC4438)}

/* Buttons */
.cqq-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:inherit;font-size:1rem;font-weight:700;border-radius:8px;border:1.5px solid transparent;padding:.85rem 1.4rem;cursor:pointer;transition:background .15s ease,transform .1s ease;line-height:1.2;text-decoration:none}
.cqq-btn--primary{background:var(--cts-brand,#1065FF);color:#fff;box-shadow:0 10px 22px -10px rgba(16,101,255,.55)}
.cqq-btn--primary:hover{background:var(--cts-brand-700,#0B4ED1);color:#fff}
.cqq-btn--primary:active{transform:translateY(1px)}
.cqq-btn--primary[disabled]{opacity:.65;cursor:default}
.cqq-btn--block{display:flex;width:100%}
.cqq-submit{margin-top:1.1rem}

/* Step navigation (JS mode only) */
.cqq-nav{display:flex;align-items:center;gap:.8rem;margin-top:1.3rem}
.cqq-nav[hidden]{display:none}
.cqq-back{display:inline-flex;align-items:center;gap:.35rem;border:0;background:none;font-family:inherit;font-size:.9rem;font-weight:700;color:var(--cts-muted,#64748B);cursor:pointer;padding:.5rem .2rem}
.cqq-back:hover{color:var(--cts-ink,#07182C)}
.cqq-back[hidden]{display:none}
.cqq-next{flex:1}
.cqq-next[hidden]{display:none}

/* Inline errors */
.cqq-steperr{font-size:.82rem;font-weight:600;color:var(--cts-danger,#DC4438);margin:.6rem 0 0}
.cqq-error{font-size:.85rem;font-weight:600;color:var(--cts-danger,#DC4438);background:var(--cts-danger-bg,#FCEBEA);border-radius:8px;padding:.6rem .8rem;margin:.8rem 0 0}
.cqq-error[hidden]{display:none}
.cqq-notice{font-size:.85rem;font-weight:600;color:var(--cts-danger,#DC4438);background:var(--cts-danger-bg,#FCEBEA);border-radius:8px;padding:.6rem .8rem;margin:0 0 1rem}

/* Trust note */
.cqq-note{display:flex;gap:.5rem;align-items:flex-start;font-size:.78rem;color:var(--cts-muted,#64748B);margin:.9rem 0 0;line-height:1.5}
.cqq-note svg{flex:none;margin-top:.1rem}

/* -------------------------------------------------------------------------
 * Post-submit matching theatre
 * ---------------------------------------------------------------------- */
.cqq-done{text-align:left}
.cqq-done__badge{width:54px;height:54px;border-radius:50%;background:var(--cts-verified-bg,#E7F6EF);color:var(--cts-verified,#15A66B);display:flex;align-items:center;justify-content:center;margin-bottom:.9rem}
.cqq-done__ref{font-size:.85rem;color:var(--cts-muted,#64748B);margin:.5rem 0 0}
.cqq-done__ref b{color:var(--cts-ink,#07182C);letter-spacing:.04em}
.cqq-stages{list-style:none;margin:1.2rem 0 0;padding:0}
.cqq-stages li{position:relative;display:flex;align-items:flex-start;gap:.7rem;padding:.5rem 0;font-size:.92rem;color:var(--cts-muted,#64748B);transition:color .3s ease}
.cqq-stages li::before{content:"";flex:none;width:20px;height:20px;margin-top:.05rem;border-radius:50%;border:2px solid var(--cts-line-2,#CBD5E1);background:#fff;transition:all .3s ease}
.cqq-stages li.is-active{color:var(--cts-ink,#07182C);font-weight:600}
.cqq-stages li.is-active::before{border-color:var(--cts-brand,#1065FF);border-top-color:transparent;animation:cqq-spin .7s linear infinite}
.cqq-stages li.is-done{color:var(--cts-ink,#07182C)}
.cqq-stages li.is-done::before{border-color:var(--cts-verified,#15A66B);background:var(--cts-verified,#15A66B) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E") center/12px no-repeat;animation:none}
.cqq-stages li:last-child.is-done{font-weight:800}
@keyframes cqq-spin{to{transform:rotate(360deg)}}
.cqq-next-panel-spacer{height:0}
.cqq-next{margin-top:1.1rem}
.cqq-done .cqq-next{flex:none}
.cqq-next[hidden]{display:none}
.cqq-done .cqq-next{background:var(--cts-stone,#F4F6FA);border-radius:10px;padding:1rem 1.1rem;animation:cqq-in .4s ease}
.cqq-done .cqq-next b{display:block;font-size:.88rem;color:var(--cts-ink,#07182C);margin-bottom:.5rem}
.cqq-done .cqq-next ul{list-style:none;margin:0;padding:0}
.cqq-done .cqq-next li{position:relative;font-size:.85rem;color:var(--cts-text-2,#33455A);padding:.22rem 0 .22rem 1.4rem;line-height:1.5}
.cqq-done .cqq-next li::before{content:"\2713";position:absolute;left:0;top:.22rem;color:var(--cts-verified,#15A66B);font-weight:800}

/* -------------------------------------------------------------------------
 * Placement variants
 * ---------------------------------------------------------------------- */
/* v7 service lander hero (replaces the static .c7-qcard) */
.c7-chero__grid .cqq{max-width:480px;justify-self:end;width:100%;margin:0}
.c7-chero__grid .cqq .cqq-card{padding:1.5rem 1.6rem 1.6rem}
.c7-chero__grid .cqq .cqq-opt__icon svg{width:62px;height:46px}
/* v7 sub-silo sticky rail (replaces the navy rail card) */
.c7-rail .cqq{max-width:none;margin:0}
.c7-rail .cqq .cqq-card{box-shadow:0 12px 32px -14px rgba(11,31,51,.22);border-top:5px solid var(--cts-brand,#1065FF);border-radius:0 0 12px 12px;padding:1.2rem 1.25rem 1.3rem}
.c7-rail .cqq .cqq-title{font-size:1.22rem}
.c7-rail .cqq .cqq-grid--c3{grid-template-columns:repeat(2,1fr)}
.c7-rail .cqq .cqq-opt__icon svg{width:56px;height:42px}
.c7-rail .cqq .cqq-route{grid-template-columns:1fr;gap:.3rem}
.c7-rail .cqq .cqq-route__arrow{display:none}

/* -------------------------------------------------------------------------
 * Mobile
 * ---------------------------------------------------------------------- */
@media (max-width:640px){
	.cqq{max-width:none}
	.cqq-card{padding:1.25rem 1.1rem 1.35rem;border-radius:10px}
	.cqq-grid--c3,.cqq-grid--c2{grid-template-columns:repeat(2,1fr)}
	.cqq-opt__icon svg{width:64px;height:48px}
	.cqq-dims{grid-template-columns:repeat(2,1fr)}
	.cqq-contact{grid-template-columns:1fr}
	.cqq-route{grid-template-columns:1fr;gap:.3rem}
	.cqq-route__arrow{display:none}
	.cqq .cqq-title{font-size:1.34rem}
}

/* Centre the standalone card on the get-matched page (wide desktop balance) */
.page-id-25 .cts-content { margin-left: auto; margin-right: auto; }
.page-id-25 .cqq { margin-left: auto; margin-right: auto; }
