/* Tools: free website check (/audit, /audit/{token}) and cost estimator (/estimate). Tokens from styles.css.
   The estimator also loads mod-planner.css for the shared option cards (.pl-opt / .pl-card / .pl-fields). */
.au-main,.es{padding-top:clamp(34px,5vw,64px)}
.au-main [hidden],.es [hidden],.au-report [hidden]{display:none!important}
:root{--ok:#3ad07a;--amber:#F5B83D}

/* ---------- shared form bits ---------- */
.au-form .field select{width:100%;appearance:none;-webkit-appearance:none;border-radius:0;min-height:50px;cursor:pointer;
  background:rgba(255,255,255,.03) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23F2F1EC' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 15px center;
  border:1.5px solid var(--ink);padding:12px 14px;padding-inline-end:42px;font-family:inherit;font-size:16px;color:var(--ink)}
html[dir=rtl] .au-form .field select{background-position:left 15px center}
.au-form .field select:focus{outline:none;border-color:var(--red)}
.au-form .field select option{background:var(--panel);color:var(--ink)}
.au-form .field input[aria-invalid=true]{border-color:var(--red)}
.au-req{color:var(--red)}
.au-ferr{color:var(--red);font-size:13.5px;margin-top:6px}
.btn-red{background:var(--red);border-color:var(--red);color:#fff}
.btn-red:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.btn.is-busy{opacity:.7;pointer-events:none}

/* ---------- /audit form ---------- */
.au-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);gap:clamp(28px,4vw,64px);align-items:start}
.au-form>.formmsg{margin-bottom:22px}
.au-site input{font-size:clamp(18px,1.9vw,22px);padding:16px 18px;font-family:var(--mono)}
.au-opt{border:1.5px solid var(--line);padding:16px 20px 4px;margin:6px 0 0;min-width:0}
.au-opt legend{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink45);padding:0 8px}
.au-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.au-opt .field input{min-height:50px}   /* tap target; same height as the business-type select beside it */
.au-check{display:flex;gap:12px;align-items:flex-start;cursor:pointer;margin:0 0 16px;font-size:15px;color:var(--ink70);line-height:1.45}
.au-check input{width:20px;height:20px;flex:0 0 auto;margin-top:2px;accent-color:var(--red)}
.au-opt .au-ferr{margin:-8px 0 14px}
.au-go{margin-top:24px;display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.au-submit{min-height:54px;padding-inline:28px;font-size:14px}
.au-wait{font-family:var(--mono);font-size:13px;color:var(--ink70);display:flex;align-items:center;gap:12px}
.au-bar{width:110px;height:4px;background:var(--line);position:relative;overflow:hidden;flex:0 0 auto}
.au-bar i{position:absolute;inset-block:0;inset-inline-start:0;width:40%;background:var(--red);animation:au-slide 1.1s linear infinite}
@keyframes au-slide{from{transform:translateX(-100%)}to{transform:translateX(260%)}}
html[dir=rtl] .au-bar i{animation-name:au-slide-rtl}
@keyframes au-slide-rtl{from{transform:translateX(100%)}to{transform:translateX(-260%)}}
.au-note{margin-top:18px;font-size:14px;color:var(--ink45);max-width:68ch}
.au-note a{text-decoration:underline;text-underline-offset:3px}
.au-what{border:1.5px solid var(--ink);background:var(--panel);padding:22px 22px 12px}
.au-what h2{font-weight:900;text-transform:uppercase;font-size:22px;letter-spacing:-.01em;line-height:1.1}
.au-wg h3{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--red);margin:18px 0 6px;font-weight:700}
.au-wg ul{list-style:none}
.au-wg li{padding:7px 0;padding-inline-start:18px;border-bottom:1px solid var(--line);font-size:15px;position:relative}
.au-wg li:last-child{border-bottom:0}
.au-wg li::before{content:"";position:absolute;inset-inline-start:0;top:17px;width:8px;height:2px;background:var(--ink45)}

/* ---------- report ---------- */
.au-printhead{display:none}
.au-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px 48px;align-items:end}
.au-kicker{font-family:var(--mono);color:var(--red);font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}
.au-host{font-weight:900;font-size:clamp(34px,6.4vw,92px);line-height:.95;letter-spacing:-.035em;overflow-wrap:anywhere;text-align:start}
.au-url{font-family:var(--mono);font-size:13px;color:var(--ink45);margin-top:14px;overflow-wrap:anywhere;text-align:start}
.au-url a:hover{color:var(--red)}
.au-meta{margin-top:24px}
.au-meta>div{display:flex;flex-direction:column;gap:4px}
.au-counts b{font-weight:800}
.is-pass{--tone:var(--ok)}.is-warn{--tone:var(--amber)}.is-fail{--tone:var(--red)}.is-info{--tone:var(--ink45)}
.is-good{--tone:var(--ok)}.is-mid{--tone:var(--amber)}.is-bad{--tone:var(--red)}
.au-counts b{color:var(--tone)}
.au-score{position:relative;width:clamp(160px,17vw,210px);text-align:center}
.au-score svg{display:block;width:100%;height:auto}
.au-ring{fill:none;stroke:var(--line);stroke-width:9}
.au-arc{fill:none;stroke:var(--tone);stroke-width:9}
.au-num{position:absolute;inset-inline:0;top:0;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center}
.au-num b{font-weight:900;font-size:clamp(46px,5vw,66px);line-height:1;letter-spacing:-.03em}
.au-num span{font-family:var(--mono);font-size:13px;color:var(--ink45);margin-top:2px}
.au-lbl{font-family:var(--mono);font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-top:10px;color:var(--tone)}
.au-acts .btn{min-height:48px;justify-content:center}   /* the <button> keeps line-height:normal and came out ~38px */
.au-acts .btn svg{flex:0 0 auto}
.au-st{display:inline-block;font-family:var(--mono);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:4px 9px;border:1.5px solid var(--tone);color:var(--tone);white-space:nowrap;line-height:1.3;width:max-content}
.au-top5{list-style:none;border-top:1.5px solid var(--ink);margin-top:14px}
.au-top5 li{display:grid;grid-template-columns:56px minmax(0,1fr);gap:18px;padding:22px 0;border-bottom:1.5px solid var(--line)}
.au-top5 .n{font-family:var(--mono);font-weight:700;color:var(--red);font-size:14px;padding-top:5px}
.au-top5 h3{font-weight:800;font-size:clamp(18px,1.8vw,23px);text-transform:uppercase;line-height:1.15;display:flex;flex-wrap:wrap;gap:10px;align-items:center;letter-spacing:-.01em}
.au-top5 p{color:var(--ink70);margin-top:8px;font-size:16px;max-width:80ch;overflow-wrap:anywhere}
.au-top5 .au-fix b{color:var(--ink)}
.au-allgood{font-size:18px;padding:22px 0;margin-top:14px;border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink)}
.au-gh{font-family:var(--mono);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink45);margin:36px 0 10px}
.au-list{border-top:1.5px solid var(--ink)}
.au-row{border-bottom:1.5px solid var(--line)}
.au-row summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:150px minmax(150px,.42fr) minmax(0,1fr) 22px;gap:16px;padding:16px 0;align-items:baseline}
.au-row summary::-webkit-details-marker{display:none}
.au-row summary::after{content:"+";font-family:var(--mono);color:var(--red);font-size:20px;line-height:1;justify-self:end}
.au-row[open] summary::after{content:"−"}
.au-row summary:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.au-t{font-weight:800;font-size:16px;line-height:1.3}
.au-m{color:var(--ink70);font-size:15px;overflow-wrap:anywhere;line-height:1.5}
.au-x{display:block;font-family:var(--mono);font-size:12.5px;color:var(--ink45);margin-top:4px}
.au-more{display:grid;grid-template-columns:1fr 1fr;gap:22px;padding:0 0 20px;padding-inline-start:166px;padding-inline-end:38px}
.au-more .k{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink45)}
.au-more p{font-size:15px;color:var(--ink70);margin-top:6px;overflow-wrap:anywhere}
.au-disc{margin-top:26px;font-size:13.5px;color:var(--ink45);max-width:90ch;overflow-wrap:anywhere}
.au-cta-p{max-width:60ch;font-size:clamp(16px,1.5vw,19px);margin-top:16px;color:#fff;opacity:.92}

/* ---------- /estimate ---------- */
.es-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,370px);gap:clamp(28px,4vw,60px);align-items:start}
.es-qs{counter-reset:esq}
.es-step{border:0;margin:0 0 clamp(36px,4vw,52px);padding:0;min-width:0}
.es-step:not([hidden]){counter-increment:esq}
/* floated legend (behaves like a block); its padding gives the gap — margins on the cleared sibling would collapse into the clearance */
.es-lg{display:flex;align-items:baseline;gap:14px;float:left;width:100%;padding:0 0 4px}
.es-lg+*{clear:both}
.es-step>.pl-hint{margin-top:0;padding-top:8px}
.es-step>.pl-opts,.es-step>.es-pills{padding-top:18px;margin-top:0}
.es-n{font-family:var(--mono);font-weight:700;color:var(--red);font-size:13px;flex:0 0 auto}
.es-n::before{content:counter(esq,decimal-leading-zero)}
.es-q{font-weight:900;font-size:clamp(24px,3vw,40px);line-height:1;text-transform:uppercase;letter-spacing:-.02em}
.es-step>.pl-ferr{margin-top:12px}
.es-ft{font-family:var(--mono);font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink45);margin-top:24px}
.es-ft b{color:var(--ink70)}
.es-fgroup .pl-opts{margin-top:12px}
/* feature chips: a long German/Russian word must wrap inside its card, not spill out (the flex label had min-width:auto) */
.es .pl-opt--chip .pl-ot{min-width:0;overflow-wrap:anywhere}
.es-none{color:var(--ink45);margin-top:16px;font-size:15px}
.es-js .es-ft{display:none}
.es-js .es-fgroup:not(.on){display:none}
.es-js .es-fgroup .pl-opts{margin-top:26px}
.es-js .es-fgroup .es-none{margin-top:20px}
.es-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.es-pill{position:relative}
.es-pill input{position:absolute;opacity:0;width:1px;height:1px;margin:0;inset-inline-start:8px;top:8px}
.es-pill span{display:inline-flex;align-items:center;min-height:48px;padding:10px 18px;border:1.5px solid var(--line);background:var(--panel);font-weight:700;font-size:15px;cursor:pointer;transition:border-color .15s,background-color .15s}
.es-pill:hover span{border-color:var(--ink)}
.es-pill input:checked+span{border-color:var(--red);background:rgba(255,65,50,.09)}
.es-pill input:focus-visible+span{outline:2px solid var(--red);outline-offset:3px}
.es-pill input:disabled+span{opacity:.35;cursor:not-allowed}
.es-curnote{margin-top:10px;font-size:13.5px;color:var(--ink45)}
.es-calc .btn{min-height:50px}
.es-js .es-calc{display:none}
.es-res{position:sticky;top:96px}
.es-card{border:1.5px solid var(--ink);background:var(--panel);padding:24px}
.es-k{font-family:var(--mono);font-size:12.5px;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:.08em}
.es-empty{margin-top:14px;color:var(--ink70);font-size:16px}
.es-type{margin-top:14px;font-weight:800;text-transform:uppercase;font-size:14px;letter-spacing:.01em;color:var(--ink70)}
.es-range{font-weight:900;font-size:clamp(28px,2.8vw,40px);line-height:1.08;margin-top:8px;letter-spacing:-.02em;overflow-wrap:anywhere}
.es-dur{margin-top:16px;padding-top:14px;border-top:1.5px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:baseline;flex-wrap:wrap}
.es-dur .k{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink45)}
.es-dur b{font-weight:800}
.es-note{margin-top:16px;font-size:13.5px;color:var(--ink45);line-height:1.5}
.es-tosend{margin-top:18px;width:100%;justify-content:center;min-height:48px}
.es-send{margin-top:clamp(20px,3vw,40px);padding-top:clamp(28px,4vw,44px);border-top:1.5px solid var(--ink);max-width:920px;scroll-margin-top:90px}
.es-sendbtn{margin-top:6px;min-height:54px;padding-inline:28px}

/* ---------- RTL ---------- */
html[dir=rtl] .es-q,html[dir=rtl] .au-top5 h3,html[dir=rtl] .au-what h2{line-height:1.35}
html[dir=rtl] .au-kicker,html[dir=rtl] .au-gh,html[dir=rtl] .au-wg h3,html[dir=rtl] .es-k,html[dir=rtl] .es-ft,html[dir=rtl] .au-more .k,html[dir=rtl] .es-dur .k,html[dir=rtl] .au-lbl,html[dir=rtl] .au-opt legend{font-size:14px;letter-spacing:0}
html[dir=rtl] .au-st{font-size:13px;letter-spacing:0}
html[dir=rtl] .es-range{line-height:1.3}
/* the domain + URL stay dir=ltr for correct bidi, so "start" would mean left — line them up with the rest of the RTL hero */
html[dir=rtl] .au-host,html[dir=rtl] .au-url{text-align:right}

/* ---------- small screens ---------- */
@media (max-width:900px){
  .au-grid,.es-grid{grid-template-columns:1fr}
  .es-res{position:static}
  .au-top{grid-template-columns:1fr;align-items:start}
  .au-score{width:170px}
  .au-row summary{grid-template-columns:auto minmax(0,1fr) 22px;gap:8px 12px}
  .au-row .au-m{grid-column:1/-1;grid-row:2}
  .au-more{grid-template-columns:1fr;gap:14px;padding-inline:0}
  .au-top5 li{grid-template-columns:36px minmax(0,1fr);gap:12px}
}
@media (max-width:600px){
  .au-fields{grid-template-columns:1fr}
  .au-submit,.es-sendbtn{width:100%;justify-content:center}
  .au-opt{padding:14px 14px 2px}
  .es-pill{flex:1 1 calc(50% - 10px)}
  .es-pill span{width:100%;justify-content:center}
  /* two narrow chip columns: hyphenate the long German/Russian words that cannot fit (where the browser has a dictionary);
     the 12-letter minimum leaves the shorter words that already fit alone */
  html[lang=de] .es .pl-opt--chip .pl-ot,html[lang=ru] .es .pl-opt--chip .pl-ot{-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:12 5 4}
}
@media (max-width:350px){
  html[lang=de] .es .pl-opt--chip .pl-ot,html[lang=ru] .es .pl-opt--chip .pl-ot{hyphenate-limit-chars:auto}
}

/* ---------- print (Download PDF = window.print()) ---------- */
@media print{
  @page{margin:14mm}
  :root{--paper:#fff;--panel:#fff;--ink:#111;--ink70:#333;--ink45:#666;--line:#d4d4d4;--ok:#16803c;--amber:#a86500;--red:#c8231a}
  html,body{background:#fff!important;color:#111!important}
  body{padding:0!important;font-size:12pt}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact;box-shadow:none!important;text-shadow:none!important}
  #hd,.site-foot,.wa-fab,.mbar,.consent,.skip,.c7ai,.au-acts,.au-cta,.crumbs,.grid-bg,.au-row summary::after{display:none!important}
  .ph{padding:0 0 16px!important;border-bottom:2px solid #111}
  .au-printhead{display:block;font-family:var(--mono);font-size:10pt;color:#444;margin-bottom:12px}
  .reveal,.motion .reveal{opacity:1!important;transform:none!important}
  .au-host{font-size:30pt}
  .au-score{width:130px}
  .au-row,.au-top5 li{break-inside:avoid;page-break-inside:avoid}
  .au-gh{break-after:avoid;page-break-after:avoid;margin-top:20px}
  .shead{padding-top:22px!important}
  .au-sec .shead h2{font-size:18pt}
  a{text-decoration:none!important}
}
