/* Eqvanto: styles for pages generated by the admin panel. Loads after styles.css and reuses its tokens. */
.cms-body{display:block}
.cms-preview{background:#fff8e1;border-bottom:1px solid #f1dca8;color:#5b4300;padding:10px 20px;font-size:.92rem;text-align:center}
.cms-preview a{color:inherit;font-weight:700;text-decoration:underline}

/* Breadcrumb + byline */
.cms-crumbs ol{display:flex;flex-wrap:wrap;gap:6px 0;list-style:none;margin:0 0 14px;padding:0;font-size:.86rem;color:var(--color-ink-500,#5c6a82)}
.cms-crumbs li+li::before{content:"/";margin:0 8px;color:var(--color-ink-300,#d6dde8)}
.cms-crumbs a{color:inherit;text-decoration:none}.cms-crumbs a:hover{color:var(--color-primary-600,#0041ce);text-decoration:underline}
.cms-crumbs [aria-current]{color:var(--color-ink-700,#3b4a60)}
.cms-byline{margin:10px 0 18px;color:var(--color-ink-500,#5c6a82);font-size:.92rem}.cms-byline a{color:inherit;font-weight:600}

/* Intro + prose */
.cms-intro{margin:0 0 36px;max-width:var(--measure,68ch)}
.cms-intro .section-lede>*:first-child{margin-top:0}
.cms-prose>*:first-child{margin-top:0}.cms-prose>*:last-child{margin-bottom:0}
.cms-prose h3{margin:1.4em 0 .4em}
.cms-prose table{width:100%;border-collapse:collapse;margin:1em 0}.cms-prose th,.cms-prose td{border:1px solid var(--color-ink-300,#d6dde8);padding:8px 10px;text-align:left}
.cms-list{padding-left:1.2em;margin:0}.cms-list li{margin:.35em 0}
.cms-big{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;margin:.2em 0;color:var(--color-ink-900,#000e22)}
.cms-note{font-size:.88rem;color:var(--color-ink-500,#5c6a82);margin-top:12px}
.cms-callout{border-left:4px solid var(--color-primary-500,#0051fc);background:var(--color-bg-sky,#eff4ff);padding:16px 20px;border-radius:0 10px 10px 0}
.cms-callout>*:first-child{margin-top:0}.cms-callout>*:last-child{margin-bottom:0}

/* Images and placeholders */
.cms-fig{margin:28px 0;border-radius:12px;overflow:hidden;border:1px solid var(--color-ink-300,#d6dde8);background:var(--color-bg-alt,#f4f7fc)}
.cms-fig img{display:block;width:100%;height:auto}
.hero__media .cms-fig{margin:0}
.cms-ph{aspect-ratio:var(--ar,16/9);display:grid;place-items:center;background:repeating-linear-gradient(45deg,#eef3fc,#eef3fc 14px,#e6edfa 14px,#e6edfa 28px);border-style:dashed;border-color:var(--color-primary-300,#99b8fe)}
.cms-ph__in{display:grid;gap:4px;text-align:center;padding:14px;max-width:90%;font-size:.86rem;color:var(--color-primary-700,#0033a0)}
.cms-ph__in strong{font-size:.95rem}.cms-ph__in code{background:#fff;border:1px solid var(--color-ink-300,#d6dde8);padding:2px 8px;border-radius:6px;font-size:.78rem;word-break:break-all}

/* Steps */
.cms-steps{list-style:none;counter-reset:s;margin:0;padding:0;display:grid;gap:12px}
.cms-steps li{counter-increment:s;position:relative;padding:14px 16px 14px 56px;border:1px solid var(--color-ink-300,#d6dde8);border-radius:12px;background:#fff}
.cms-steps li::before{content:counter(s);position:absolute;left:14px;top:14px;width:30px;height:30px;border-radius:50%;background:var(--color-primary-500,#0051fc);color:#fff;font-weight:800;font-size:.9rem;display:grid;place-items:center}
.cms-steps p{margin:.3em 0 0;color:var(--color-ink-700,#3b4a60)}.cms-you{font-size:.92rem}
.cms-steps .tag{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-primary-700,#0033a0);margin-right:6px}

/* Tables */
.cms-table-wrap{overflow-x:auto;border:1px solid var(--color-ink-300,#d6dde8);border-radius:12px}
.cms-table{width:100%;border-collapse:collapse;font-size:.96rem;min-width:520px}
.cms-table th,.cms-table td{padding:11px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--color-ink-300,#d6dde8)}
.cms-table thead th{background:var(--color-bg-alt,#f4f7fc);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-500,#5c6a82)}
.cms-table tbody tr:last-child>*{border-bottom:0}
.cms-compare td.win{background:var(--color-bg-sky,#eff4ff);font-weight:600}.cms-edge{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--color-primary-700,#0033a0);margin-left:6px}

/* Price cards, stats, link cards */
.cms-price .cms-big{margin:.1em 0 .2em}.cms-price p.muted{color:var(--color-ink-500,#5c6a82);font-size:.9rem;margin:0 0 .6em}
.cms-link-card{display:block;text-decoration:none;color:inherit;transition:border-color .15s}.cms-link-card:hover{border-color:var(--color-primary-500,#0051fc)}
.cms-link-card .btn{margin-top:10px}
.cms-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:0}
.cms-stats>div{border:1px solid var(--color-ink-300,#d6dde8);border-radius:12px;padding:14px 16px;background:#fff}
.cms-stats dt{font-size:.8rem;color:var(--color-ink-500,#5c6a82)}.cms-stats dd{margin:2px 0 0;font-size:1.5rem;font-weight:800;color:var(--color-ink-900,#000e22);letter-spacing:-.02em}
.cms-quote{margin:0;border-left:4px solid var(--color-primary-500,#0051fc);padding:6px 0 6px 20px;font-size:1.15rem}.cms-quote footer{margin-top:8px;font-size:.9rem;color:var(--color-ink-500,#5c6a82)}

/* Launch checklist */
.cms-checks details{border:1px solid var(--color-ink-300,#d6dde8);border-radius:12px;margin-bottom:10px;background:#fff}
.cms-checks summary{padding:12px 16px;font-weight:700;cursor:pointer}
.cms-checks ul{list-style:none;margin:0;padding:0 16px 8px}
.cms-checks li{display:grid;grid-template-columns:22px 1fr;gap:10px;padding:9px 0;border-top:1px solid var(--color-ink-300,#d6dde8)}
.cms-checks .tick{color:var(--color-primary-500,#0051fc);font-weight:800}.cms-checks small{display:block;color:var(--color-ink-500,#5c6a82);font-size:.84rem;margin-top:2px}

/* FAQ */
.cms-faq details{border:1px solid var(--color-ink-300,#d6dde8);border-radius:12px;margin-bottom:10px;background:#fff}
.cms-faq summary{padding:14px 18px;font-weight:700;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:12px}
.cms-faq summary::-webkit-details-marker{display:none}.cms-faq summary::after{content:"+";font-size:1.3rem;line-height:1;color:var(--color-primary-500,#0051fc)}
.cms-faq details[open] summary::after{content:"–"}
.cms-faq__a{padding:0 18px 16px;color:var(--color-ink-700,#3b4a60)}.cms-faq__a>*:first-child{margin-top:0}

/* Author */
.cms-author{margin:40px 0 0;border:1px solid var(--color-ink-300,#d6dde8);border-radius:12px;padding:18px 20px;background:var(--color-bg-alt,#f4f7fc)}
.cms-author p{margin:.4em 0 0}
.cms-profile{display:flex;gap:20px;align-items:center;margin:8px 0 18px}.cms-avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;border:1px solid var(--color-ink-300,#d6dde8)}

/* Live demo */
.cms-demo{border:1px solid var(--color-ink-300,#d6dde8);border-radius:12px;padding:20px;background:var(--color-bg-sky,#eff4ff)}.cms-demo__status{min-height:1.4em;color:var(--color-ink-700,#3b4a60)}

/* Lead blocks */
.cms-lead-section{background:var(--color-bg-alt,#f4f7fc);border-top:1px solid var(--color-ink-300,#d6dde8)}
.cms-lead{max-width:880px;margin:0 auto}
.cms-lead__head h2{margin:0 0 6px}.cms-lead__head p{margin:0 0 20px;color:var(--color-ink-700,#3b4a60)}
.cms-panel{background:#fff;border:1px solid var(--color-ink-300,#d6dde8);border-radius:14px;padding:22px}
.cms-panel+.cms-panel{margin-top:14px}
.cms-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:14px}
.cms-field{display:grid;gap:5px}.cms-field label{font-weight:700;font-size:.9rem;color:var(--color-ink-900,#000e22)}
.cms-field input[type=text],.cms-field input[type=email],.cms-field input[type=tel],.cms-field input[type=number],.cms-field input[type=url],.cms-field select,.cms-field textarea{width:100%;font:inherit;padding:11px 12px;border:1.5px solid var(--color-ink-300,#d6dde8);border-radius:9px;background:#fff;color:var(--color-ink-900,#000e22)}
.cms-field input:focus,.cms-field select:focus,.cms-field textarea:focus{outline:3px solid var(--color-primary-300,#99b8fe);border-color:var(--color-primary-500,#0051fc)}
.cms-field small{color:var(--color-ink-500,#5c6a82)}
.cms-check{display:flex;gap:10px;align-items:flex-start;font-size:.92rem;margin:10px 0}.cms-check input{margin-top:4px;width:18px;height:18px;accent-color:var(--color-primary-500,#0051fc)}
.cms-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.cms-result{margin-top:16px;border-radius:12px;padding:18px 20px;background:var(--color-bg-sky,#eff4ff);border:1px solid var(--color-primary-100,#d9e5ff)}
.cms-result .cms-big{font-size:2rem}.cms-result p{margin:.3em 0}
.cms-err{color:#b3261e;font-weight:600;margin:8px 0}.cms-ok{color:#0b6b45;font-weight:600}
.cms-quiz-q{border:0;padding:0;margin:0 0 16px}.cms-quiz-q legend{font-weight:700;margin-bottom:8px}
.cms-opt{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1.5px solid var(--color-ink-300,#d6dde8);border-radius:10px;margin-bottom:8px;cursor:pointer;background:#fff}
.cms-opt:has(input:checked){border-color:var(--color-primary-500,#0051fc);background:var(--color-bg-sky,#eff4ff)}
.cms-steps-nav{display:flex;gap:8px;align-items:center;margin-bottom:14px;color:var(--color-ink-500,#5c6a82);font-size:.88rem}
.cms-chips{display:flex;flex-wrap:wrap;gap:8px}.cms-chip{border:1.5px solid var(--color-ink-300,#d6dde8);border-radius:10px;padding:8px 14px;background:#fff;cursor:pointer;font:inherit}
.cms-chip[aria-pressed=true]{border-color:var(--color-primary-500,#0051fc);background:var(--color-bg-sky,#eff4ff);font-weight:700}
.cms-dates{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.cms-dates>div{border:1px solid var(--color-ink-300,#d6dde8);border-radius:12px;padding:12px 14px;background:#fff}
.cms-dates dt{font-size:.8rem;color:var(--color-ink-500,#5c6a82)}.cms-dates dd{margin:2px 0 0;font-weight:800;font-size:1.1rem}

@media (max-width:640px){.cms-steps li{padding-left:50px}.cms-panel{padding:16px}.cms-profile{flex-direction:column;align-items:flex-start}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ===== Responsive and reading polish (public pages written in the panel) ===== */
/* A block's two columns may shrink below their widest content, so a wide table can never stretch the page sideways */
.block__lead,.block__body,.cms-prose,.cms-table-wrap{min-width:0;max-width:100%}
.cms-prose img,.cms-fig img{max-width:100%;height:auto}
/* Air between a list of cards and the paragraph that follows it, and before a list that follows a paragraph */
.cms-prose ul+p,.cms-prose ol+p,.cms-prose ul+h3,.cms-prose ol+h3{margin-top:1.4em}
.cms-prose p+ul,.cms-prose p+ol{margin-top:1.1em}
/* The last crumb shortens with an ellipsis instead of wrapping a stray slash onto its own line */
.cms-crumbs ol{flex-wrap:nowrap;overflow:hidden}
.cms-crumbs li{white-space:nowrap;flex:none}
.cms-crumbs li:last-child{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
/* Sources and Related reading are link lists: keep them compact */
.cms-sources li,.cms-related li{margin:.35em 0}
.cms-sources .small{color:var(--color-ink-500,#5c6a82)}
/* Phones: a table becomes a stack of labelled cards, with no sideways scrolling and nothing cut off */
@media (max-width:640px){
  .cms-table-wrap{border:0;border-radius:0;overflow:visible}
  .cms-table{min-width:0;display:block;font-size:.95rem}
  .cms-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .cms-table tbody{display:block}
  .cms-table tr{display:block;margin:0 0 12px;padding:12px 14px;border:1px solid var(--color-ink-300,#d6dde8);border-radius:12px;background:var(--color-surface,#fff)}
  .cms-table tbody tr:last-child>*{border-bottom:0}
  .cms-table td,.cms-table th[scope=row]{display:grid;grid-template-columns:minmax(84px,34%) minmax(0,1fr);gap:4px 12px;padding:6px 0;border:0;text-align:left}
  .cms-table td::before{content:attr(data-label);font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--color-ink-500,#5c6a82);padding-top:2px}
  .cms-table td:first-child,.cms-table th[scope=row]{display:block;font-weight:700;color:var(--color-ink-900,#000e22);padding-bottom:8px;margin-bottom:4px;border-bottom:1px solid var(--color-ink-300,#d6dde8)}
  .cms-table td:first-child::before{display:none}
  .cms-compare td::before{content:attr(data-label)}
  .cms-crumbs ol{font-size:.82rem}
}
/* Buttons inside page content may wrap their label instead of running off a small screen */
.cms-prose .btn,.block__body .btn,.cms-link-card .btn{white-space:normal;text-align:center;max-width:100%;height:auto;min-height:48px;line-height:1.3;padding-top:.7em;padding-bottom:.7em}

/* ===== Section index pages and the enquiry form: layout polish ===== */
/* The pages in a section: one clear row each, full width, instead of a card squeezed into a third of the column */
.cms-hub{list-style:none;margin:0;padding:0;border-top:1px solid var(--color-ink-300,#d6dde8)}
.block__body>.cms-hub{max-width:none}
.cms-hub li{margin:0;padding:0;border-bottom:1px solid var(--color-ink-300,#d6dde8)}
.cms-hub__item{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:clamp(16px,3vw,40px);row-gap:8px;align-items:center;padding:clamp(18px,2.2vw,28px) 0;color:inherit;text-decoration:none}
.cms-hub__item h3{grid-column:1;margin:0;font-size:clamp(1.15rem,1.02rem + .5vw,1.45rem);line-height:1.25;letter-spacing:-.01em;color:var(--color-ink-900,#000e22);transition:color .15s}
.cms-hub__item p{grid-column:1;margin:0;max-width:60ch;color:var(--color-ink-700,#3b4a60);font-size:1rem;line-height:1.6}
.cms-hub__go{grid-column:2;grid-row:1/span 2;font-weight:600;font-size:.95rem;color:var(--color-primary-600,#0041ce);white-space:nowrap}
.cms-hub__go i{display:inline-block;font-style:normal;transition:transform .18s}
.cms-hub__item:hover h3,.cms-hub__item:focus-visible h3{color:var(--color-primary-600,#0041ce)}
.cms-hub__item:hover .cms-hub__go i{transform:translateX(4px)}
.cms-hub__item:focus-visible{outline:3px solid var(--color-primary-300,#99b8fe);outline-offset:2px;border-radius:6px}
@media (max-width:560px){.cms-hub__item{grid-template-columns:minmax(0,1fr)}.cms-hub__go{grid-column:1;grid-row:auto;margin-top:2px}}

/* The enquiry form: fields start at the top of their row (a tall message box no longer stretches its neighbours), equal heights,
   pairs of short fields, and the website and message on rows of their own */
.cms-row{align-items:start}
.cms-field{align-content:start}
.cms-field input[type=text],.cms-field input[type=email],.cms-field input[type=tel],.cms-field input[type=url],.cms-field input[type=number],.cms-field select{min-height:46px}
.cms-field textarea{min-height:120px;resize:vertical}
.cms-row--form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}
.cms-row--form>.cms-field:has(input[type=url]),.cms-row--form>.cms-field:has(textarea){grid-column:1/-1}
@media (max-width:560px){.cms-row--form{grid-template-columns:minmax(0,1fr)}}
/* The section already has a heading above the form; the form's own title stays for screen readers only */
.cms-lead-section .cms-panel>h3:first-child{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.cms-lead-section .cms-panel{padding:clamp(18px,2.4vw,28px)}
.cms-check{margin:14px 0 18px}

/* The form section lines up with the sections above it: heading in the left column, form in the right, same left edge */
.cms-lead{margin:0 auto 0 0}
@media (min-width:1040px){
  .cms-lead{max-width:none;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:clamp(56px,7vw,112px);align-items:start}
  .cms-lead__head{grid-column:1}.cms-lead__head p{margin-bottom:0}
  .cms-lead__ui{grid-column:2;min-width:0}
}
