/* 7Code — homepage blocks: ready-made products, media teaser, founder, free website check.
   Builds on the tokens and shared classes in styles.css (.shead, .reveal, .btn …). Logical properties throughout, so RTL just works. */

/* =========================== shared =========================== */
.hp-prod .shead,.hp-media .shead,.hp-founder .shead{flex-wrap:wrap;row-gap:10px}
.hp-prod .shead .k,.hp-media .shead .k,.hp-founder .shead .k{white-space:nowrap}
.hp-lead{color:var(--ink70);font-size:clamp(16px,1.4vw,19px);line-height:1.55;max-width:60ch;margin-top:14px}
.hp-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.hp-n{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--red)}
.hp-kick{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--red);line-height:1.3}
.hp-kick::before{content:"";width:10px;height:10px;background:var(--red);flex:0 0 auto}
@keyframes hpPulse{50%{opacity:.25}}
/* about: the logo kept its 500 px height attribute while CSS shrank its width, so it was drawn stretched (and on phones ran into the next section) */
.about .r img{height:auto}
/* about: the wide share image instead of the logo — full width, on its own dark background, never cropped or boxed square on phones */
.about .r-og{background:#0d0d0f}
.about .r-og img{width:100%}
@media (max-width:900px){.about .r-og{aspect-ratio:auto;max-height:none}}

/* =========================== ready-made products =========================== */
.hp-prod{padding-bottom:clamp(64px,8vw,110px)}   /* room before the pinned work gallery */
.hp-pgrid{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:28px}
.hp-pc{position:relative;display:flex;flex-direction:column;min-width:0;border:1.5px solid var(--ink);background:var(--panel);padding:18px 18px 8px;transition:border-color .25s}
.hp-pc:hover,.hp-pc:focus-within{border-color:var(--red)}
.hp-pc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.hp-pc-art{display:grid;place-items:center;width:58px;height:58px;flex:0 0 auto;border:1.5px solid var(--line);color:var(--ink);
  background:linear-gradient(var(--line) 1px,transparent 1px) 0 0/12px 12px,linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/12px 12px,#101013}
.hp-pc-art .st-glyph{width:72%;height:auto;transition:transform .5s cubic-bezier(.2,.7,0,1)}
.hp-pc-art .st-acc{stroke:var(--red)}
.hp-pc:hover .st-glyph{transform:translateY(-3px) scale(1.06)}
.hp-badge{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:5px 9px;border:1.5px solid var(--ink70);color:var(--ink);white-space:nowrap;line-height:1.2}
.hp-badge.is-coming_soon{border-style:dashed}
.hp-badge.is-coming_soon::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--red);flex:0 0 auto;animation:hpPulse 1.6s ease-in-out infinite}
.hp-badge.is-available{background:var(--red);border-color:var(--red);color:#0C0C0E}
.hp-pc-t{margin-top:22px;font-weight:900;font-size:clamp(19px,1.55vw,23px);line-height:1.04;letter-spacing:-.02em;text-transform:uppercase;overflow-wrap:break-word;hyphens:auto}
.hp-pc-t--long{font-size:clamp(16px,1.3vw,19px)}
html[lang=ru] .hp-pc-t--long{font-size:clamp(15px,1.2vw,18px)}
.hp-pc-t a::after{content:"";position:absolute;inset:0}      /* the whole card opens the product page… */
.hp-pc-t a:hover{color:var(--red)}
.hp-pc-d{color:var(--ink70);font-size:15px;line-height:1.5;margin-top:10px}
.hp-pc-f{margin-top:auto;padding-top:14px}
.hp-pc-cta{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px;min-height:44px;font-family:var(--mono);font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink);transition:color .2s}   /* …except this link, which sits above it */
.hp-pc-cta::after{content:"";position:absolute;inset-inline:0;bottom:9px;height:1.5px;background:var(--red)}
.hp-pc-cta:hover{color:var(--red)}
/* ready-made websites: one line under the systems */
.design-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:26px}
.hp-sites{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin-top:18px;padding:14px 18px;border:1.5px dashed var(--ink70)}
.hp-sites-k{font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--red)}
.hp-sites-t{flex:1 1 280px;min-width:0;color:var(--ink70);font-size:15px;line-height:1.5}
html[dir=rtl] .hp-sites-t{line-height:1.8}

/* =========================== media production =========================== */
.hp-mgrid{display:grid;grid-template-columns:minmax(0,1fr);margin-top:14px}
.hp-mgrid.has-reel{grid-template-columns:minmax(0,1fr) clamp(220px,21vw,290px);grid-template-areas:"lead reel" "tiles reel" "acts reel";column-gap:clamp(28px,4.5vw,72px);align-items:start}
.hp-mgrid.has-reel .hp-mlead{grid-area:lead}
.hp-mgrid.has-reel .hp-reel{grid-area:reel}
.hp-mgrid.has-reel .hp-mtiles{grid-area:tiles}
.hp-mgrid.has-reel .hp-macts{grid-area:acts}
.hp-mlead{margin-top:0}
.hp-mtiles{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1.5px solid var(--ink);border-inline-start:1.5px solid var(--ink);margin-top:28px}
.hp-mtiles li{min-width:0;border-inline-end:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink)}
.hp-mtiles li:last-child:nth-child(odd){grid-column:1/-1}
.hp-mt{position:relative;display:flex;flex-direction:column;height:100%;padding:22px 22px 24px;transition:background .25s,color .25s}
.hp-mt h3{font-weight:900;font-size:clamp(18px,1.55vw,23px);line-height:1.06;letter-spacing:-.02em;text-transform:uppercase;margin:14px 0 10px;padding-inline-end:30px;overflow-wrap:break-word;hyphens:auto}
.hp-mt h3.hp-mt-long{font-size:clamp(16px,1.35vw,21px)}
.hp-mt p{color:var(--ink70);font-size:15px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.hp-mt .hp-n{align-self:flex-start}   /* dir=ltr digits: stay at the start side in RTL too */
.hp-mt .hp-go{position:absolute;top:18px;inset-inline-end:20px;font-family:var(--mono);font-size:19px;line-height:1;transition:transform .25s}
.hp-mt:hover{background:var(--red);color:#fff}
.hp-mt:hover p,.hp-mt:hover .hp-n{color:#fff}
.hp-mt:hover .hp-go{transform:translateX(4px)}
html[dir=rtl] .hp-mt:hover .hp-go{transform:translateX(-4px)}
.hp-mt:focus-visible{outline-offset:-4px}
.hp-macts{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.hp-macts .btn{min-height:46px}

/* the reel: a lazy poster <img> under a muted clip that main.js plays only while it is on screen */
.hp-reel{margin:0;min-width:0}
.hp-reel-fr{position:relative;aspect-ratio:9/16;border:1.5px solid var(--ink);background:var(--panel);overflow:hidden;box-shadow:12px 12px 0 var(--red)}
html[dir=rtl] .hp-reel-fr{box-shadow:-12px 12px 0 var(--red)}
.hp-reel-fr img,.hp-reel-fr video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hp-reel-tag{position:absolute;top:10px;inset-inline-start:10px;z-index:1;display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;line-height:1.2;background:rgba(12,12,14,.82);color:var(--ink);padding:5px 8px}
.hp-reel-tag::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--red);animation:hpPulse 1.6s ease-in-out infinite}
.hp-reel figcaption{margin-top:22px;font-family:var(--mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;line-height:1.4;color:var(--ink45)}

/* =========================== founder =========================== */
.hp-fd{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto;border:1.5px solid var(--ink);margin-top:28px;padding-block:clamp(22px,3vw,40px)}
.hp-fd.has-ph{grid-template-columns:clamp(220px,25vw,320px) minmax(0,1fr);grid-template-rows:minmax(clamp(22px,3vw,40px),1fr) auto auto auto minmax(clamp(22px,3vw,40px),1fr);
  grid-template-areas:"ph ." "ph id" "ph q" "ph go" "ph .";padding-block:0}
/* square by default, and it fills the whole side when the text runs taller (the 374 px file still covers it without upscaling in practice) */
.hp-fd-ph{grid-area:ph;position:relative;align-self:stretch;width:100%;aspect-ratio:1;overflow:hidden;background:var(--panel);border-inline-end:1.5px solid var(--ink);min-width:0}
.hp-fd-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%}
.hp-fd-id,.hp-fd-q,.hp-fd-go{margin-inline:clamp(20px,3.4vw,48px)}
.hp-fd.has-ph .hp-fd-id{grid-area:id}
.hp-fd.has-ph .hp-fd-q{grid-area:q}
.hp-fd.has-ph .hp-fd-go{grid-area:go}
.hp-fd-n{margin-top:14px;font-weight:900;font-size:clamp(30px,3.7vw,56px);line-height:.94;letter-spacing:-.035em;text-transform:uppercase;text-wrap:balance}
.hp-fd-n a{transition:color .2s}
.hp-fd-n a:hover{color:var(--red)}
.hp-fd-n .tm-nick{color:var(--red)}
.hp-fd-q{margin-top:22px;padding-inline-start:18px;border-inline-start:3px solid var(--red)}
.hp-fd-q p{font-weight:800;font-size:clamp(18px,1.75vw,24px);line-height:1.28;letter-spacing:-.01em;max-width:40ch}
.hp-fd-go{justify-self:start;margin-top:26px;min-height:46px}

/* =========================== free website check =========================== */
.hp-check{position:relative;overflow:hidden;background:var(--red);color:#0C0C0E;margin-top:clamp(64px,8vw,110px);padding-block:clamp(48px,6.5vw,92px)}
.hp-check-in{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:28px clamp(32px,5vw,80px);align-items:end}
.hp-check-k{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;line-height:1.3}
.hp-check-k::before{content:"";width:10px;height:10px;background:#0C0C0E;flex:0 0 auto}
.hp-check h2{margin-top:16px;color:#fff;font-weight:900;font-size:clamp(32px,4.6vw,68px);line-height:.92;letter-spacing:-.03em;text-transform:uppercase;max-width:15ch;text-wrap:balance}
.hp-check-p{margin-top:18px;font-size:clamp(16px,1.35vw,18px);line-height:1.5;max-width:50ch}
.hp-check-f label{display:block;font-family:var(--mono);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.hp-check-row{display:flex;border:1.5px solid #0C0C0E;background:#F2F1EC;transition:box-shadow .2s}
.hp-check-row:focus-within{box-shadow:6px 6px 0 #0C0C0E}
html[dir=rtl] .hp-check-row:focus-within{box-shadow:-6px 6px 0 #0C0C0E}
.hp-check-row input{flex:1 1 auto;min-width:0;min-height:58px;border:0;border-radius:0;background:transparent;padding:14px 16px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:16px;color:#0C0C0E;text-align:left}
.hp-check-row input::placeholder{color:rgba(12,12,14,.5)}
.hp-check-row input:focus,.hp-check-row input:focus-visible{outline:none}
.hp-check-b{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:58px;padding:12px 22px;border:0;border-radius:0;border-inline-start:1.5px solid #0C0C0E;background:#0C0C0E;color:#fff;
  font-family:inherit;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.02em;cursor:pointer;transition:background .2s,color .2s}
.hp-check-b:hover{background:#fff;color:#0C0C0E}
.hp-check-b:focus-visible{outline:3px solid #fff;outline-offset:-7px}
.hp-check-n{margin-top:14px;font-family:var(--mono);font-size:12.5px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;line-height:1.5}
.hp-check-n span{white-space:nowrap}
.hp-check-big{position:absolute;z-index:0;right:-.04em;bottom:-.2em;font-weight:900;font-size:clamp(130px,24vw,360px);line-height:1;letter-spacing:-.05em;color:rgba(12,12,14,.1);pointer-events:none;user-select:none;direction:ltr;white-space:nowrap}

/* =========================== Arabic =========================== */
html[dir=rtl] .hp-kick,html[dir=rtl] .hp-badge,html[dir=rtl] .hp-pc-cta,html[dir=rtl] .hp-reel-tag,html[dir=rtl] .hp-check-k,
html[dir=rtl] .hp-check-f label,html[dir=rtl] .hp-check-n{font-size:14px}
html[dir=rtl] .hp-reel figcaption{font-size:13.5px}
html[dir=rtl] .hp-badge{padding-block:3px 4px}
html[dir=rtl] .hp-pc-t,html[dir=rtl] .hp-mt h3{line-height:1.4}
html[dir=rtl] .hp-fd-n{line-height:1.3}
html[dir=rtl] .hp-fd-q p{line-height:1.7}
html[dir=rtl] .hp-check h2{line-height:1.3}
html[dir=rtl] .hp-lead,html[dir=rtl] .hp-check-p,html[dir=rtl] .hp-pc-d,html[dir=rtl] .hp-mt p{line-height:1.8}
html[dir=rtl] .hp-check-b{font-size:15px}
html[dir=rtl] .hp-check-big{right:auto;left:-.04em}   /* behind the form, as in LTR */
/* Russian (Montserrat) runs wider than Archivo */
html[lang=ru] .hp-pc-t,html[lang=ru] .hp-mt h3,html[lang=ru] .hp-fd-n,html[lang=ru] .hp-check h2{letter-spacing:-.015em}
html[lang=ru] .hp-check h2{font-size:clamp(28px,3.9vw,58px);line-height:1}

/* =========================== responsive =========================== */
@media(max-width:1200px){
  .hp-pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:960px){
  .hp-mtiles{grid-template-columns:minmax(0,1fr)}
  .hp-mtiles li:last-child:nth-child(odd){grid-column:auto}
}
@media(max-width:900px){
  .hp-check-in{grid-template-columns:minmax(0,1fr);align-items:start}
  .hp-check h2{max-width:18ch}
  .hp-fd.has-ph{grid-template-columns:200px minmax(0,1fr)}
}
@media(max-width:700px){
  .hp-mgrid.has-reel{grid-template-columns:minmax(0,1fr) clamp(112px,34vw,150px);grid-template-areas:"lead reel" "tiles tiles" "acts acts";column-gap:18px;align-items:center}
  .hp-mt{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:baseline;padding-block:18px;padding-inline:16px 46px}
  .hp-mt .hp-n{grid-row:1}
  .hp-mt h3{grid-column:2;margin:0;padding:0;font-size:19px}
  .hp-mt h3.hp-mt-long{font-size:16.5px}
  .hp-mt p{grid-column:2;margin-top:6px;-webkit-line-clamp:4;font-size:14.5px}
  .hp-mt .hp-go{top:50%;transform:translateY(-50%);inset-inline-end:16px}
  .hp-mt:hover .hp-go,html[dir=rtl] .hp-mt:hover .hp-go{transform:translateY(-50%)}
  .hp-reel-fr{box-shadow:7px 7px 0 var(--red)}
  html[dir=rtl] .hp-reel-fr{box-shadow:-7px 7px 0 var(--red)}
  .hp-reel figcaption{margin-top:14px;font-size:10.5px}
  html[dir=rtl] .hp-reel figcaption{font-size:12.5px}
  .hp-reel-tag{display:none}
}
@media(max-width:640px){
  .hp-fd.has-ph{grid-template-columns:clamp(104px,30vw,132px) minmax(0,1fr);grid-template-rows:auto;grid-template-areas:"ph id" "q q" "go go";padding-bottom:22px}
  .hp-fd-ph{border-bottom:1.5px solid var(--ink)}
  .hp-fd.has-ph .hp-fd-id{align-self:stretch;display:flex;flex-direction:column;justify-content:center;margin:0;padding:12px 16px;border-bottom:1.5px solid var(--ink)}
  .hp-fd-id,.hp-fd-q,.hp-fd-go{margin-inline:16px}
  .hp-fd-n{margin-top:8px;font-size:clamp(22px,6.6vw,30px);line-height:1}
  html[dir=rtl] .hp-fd-n{line-height:1.35}
  .hp-kick{font-size:11.5px;gap:8px}
  .hp-kick::before{width:8px;height:8px}
  .hp-fd-q{margin-top:20px}
  .hp-fd-q p{font-size:18px}
  .hp-fd-go{justify-self:stretch;justify-content:center;margin-top:22px}
}
@media(max-width:600px){
  .hp-pgrid{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:22px}
  /* phones: glyph on the side, text beside it — four products stay short */
  .hp-pc{display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:14px;padding:16px 16px 4px}
  .hp-pc-top{display:contents}
  .hp-pc-art{grid-column:1;grid-row:1/span 4;width:48px;height:48px}
  .hp-badge{grid-column:2;grid-row:1;justify-self:start}
  .hp-pc-t{grid-column:2;margin-top:12px;font-size:19px}
  .hp-pc-t.hp-pc-t--long{font-size:17px}
  .hp-pc-d{grid-column:2;font-size:14.5px;margin-top:8px}
  .hp-pc-f{grid-column:2;padding-top:6px}
  .hp-check-row{flex-direction:column}
  .hp-check-b{border-inline-start:0;border-top:1.5px solid #0C0C0E;width:100%}
  .hp-check-row:focus-within,html[dir=rtl] .hp-check-row:focus-within{box-shadow:0 0 0 3px #0C0C0E}
}
@media(prefers-reduced-motion:reduce){.hp-badge.is-coming_soon::before,.hp-reel-tag::before{animation:none}}
