/* Полный Порядок 73 — химчистка диванов. Стиль взят с плаката заказчика: комикс, жёлтый с чёрным, точечный растр. */

@font-face{font-family:"Unbounded";font-weight:700 800;font-display:swap;src:url("../fonts/unbounded-700-cyr.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Unbounded";font-weight:700 800;font-display:swap;src:url("../fonts/unbounded-700-lat.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20BD,U+2122,U+2212}
@font-face{font-family:"Onest";font-weight:400 600;font-display:swap;src:url("../fonts/onest-400-cyr.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Onest";font-weight:400 600;font-display:swap;src:url("../fonts/onest-400-lat.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20BD,U+2122,U+2212}
@font-face{font-family:"Bad Script";font-weight:400;font-display:swap;src:url("../fonts/badscript-cyr.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Bad Script";font-weight:400;font-display:swap;src:url("../fonts/badscript-lat.woff2") format("woff2");unicode-range:U+0000-00FF,U+2000-206F}

:root{
  --ink:#1a1813;
  --ink-soft:#3b372d;
  --sun:#ffcc1f;
  --sun-deep:#f2b300;
  --sun-pale:#ffe680;
  --paper:#fffbea;
  --white:#fffef8;
  --sofa:#8d877b;
  --line:3px;
  --pop:6px 6px 0 var(--ink);
  --pop-sm:4px 4px 0 var(--ink);
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-pop:cubic-bezier(.34,1.56,.64,1);
  --wrap:1240px;
  --display:"Unbounded","Arial Black",system-ui,sans-serif;
  --body:"Onest","Segoe UI",system-ui,sans-serif;
  --hand:"Bad Script","Segoe Script",cursive;
  --star:polygon(100% 50%,88% 58.7%,95% 71.7%,80.5% 74.3%,81.2% 89.1%,66.9% 85.1%,61.1% 98.7%,50% 89%,38.9% 98.7%,33.1% 85.1%,18.8% 89.1%,19.5% 74.3%,5% 71.7%,12% 58.7%,0% 50%,12% 41.3%,5% 28.3%,19.5% 25.7%,18.8% 10.9%,33.1% 14.9%,38.9% 1.3%,50% 11%,61.1% 1.3%,66.9% 14.9%,81.2% 10.9%,80.5% 25.7%,95% 28.3%,88% 41.3%);
  --spark:polygon(50% 0%,59.9% 40.1%,100% 50%,59.9% 59.9%,50% 100%,40.1% 59.9%,0% 50%,40.1% 40.1%);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--body);overflow-x:hidden}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:clamp(16px,4vw,40px)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* растр и лучи — общая фактура комикса */
.halftone{position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle,var(--ink) 1.3px,transparent 1.8px);background-size:11px 11px;opacity:.16}
.rays{position:absolute;left:50%;top:50%;width:260vmax;height:260vmax;translate:-50% -50%;pointer-events:none;
  background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.34) 0deg 7deg,transparent 7deg 18deg)}

/* кнопка — плашка комикса с жёсткой тенью */
.btn{display:inline-flex;align-items:center;gap:.6em;white-space:nowrap;cursor:pointer;text-decoration:none;
  font:800 15px/1 var(--display);letter-spacing:.01em;text-transform:uppercase;
  padding:18px 26px;background:var(--ink);color:var(--sun);border:var(--line) solid var(--ink);box-shadow:var(--pop-sm);
  transition:transform .16s var(--ease-out),box-shadow .16s var(--ease-out),background-color .16s}
.btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--sun-deep)}
.btn:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--ink)}
.btn--sun{background:var(--sun);color:var(--ink)}
.btn--sun:hover{box-shadow:6px 6px 0 var(--ink)}
.btn__arrow{width:1.1em;height:1.1em;flex:none}

/* шапка */
.top{position:sticky;top:0;z-index:30;background:var(--sun);border-bottom:var(--line) solid var(--ink)}
.top__in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:70px}
.logo{display:flex;align-items:baseline;gap:6px;text-decoration:none;line-height:1}
.logo__name{font:400 26px/1 var(--hand);white-space:nowrap}
.logo__num{font:800 15px/1 var(--display);background:var(--ink);color:var(--sun);padding:5px 7px 4px;transform:rotate(-6deg);display:inline-block}
.nav{display:flex;gap:28px;font-weight:600;font-size:15px}
.nav a{text-decoration:none;position:relative;padding:4px 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:3px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .2s var(--ease-out)}
.nav a:hover::after{transform:scaleX(1)}
.top .btn{padding:13px 18px;font-size:13px}

/* первый экран */
.hero{position:relative;overflow:hidden;background:var(--sun);border-bottom:var(--line) solid var(--ink);isolation:isolate}
.hero .rays{animation:spin 120s linear infinite;z-index:-2}
.hero .halftone{z-index:-1;-webkit-mask-image:linear-gradient(115deg,#000 0%,transparent 55%,#000 100%);mask-image:linear-gradient(115deg,#000 0%,transparent 55%,#000 100%);opacity:.22}
.hero__grid{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(24px,4vw,64px);align-items:center;min-height:calc(100dvh - 73px);padding-block:clamp(32px,6vh,72px)}
.bubble{position:relative;background:var(--white);border:var(--line) solid var(--ink);box-shadow:var(--pop);padding:clamp(24px,3.4vw,44px) clamp(22px,3.4vw,48px) clamp(26px,3.4vw,46px);border-radius:46% 54% 50% 50% / 14% 16% 14% 16%}
.bubble::after,.bubble::before{content:"";position:absolute;right:16%;bottom:-38px;width:56px;height:44px;background:var(--ink);clip-path:polygon(0 0,100% 0,82% 100%)}
.bubble::before{z-index:1;background:var(--white);right:calc(16% + 7px);bottom:-28px;width:40px;height:34px}
.hero__hand{font:400 clamp(22px,2.4vw,32px)/1 var(--hand);margin:0 0 6px}
.hero h1{font:800 clamp(34px,4.6vw,64px)/1.06 var(--display);letter-spacing:-.02em;text-transform:uppercase;margin:0}
.hero h1 .mark{display:inline-block;background:var(--sun);border:var(--line) solid var(--ink);padding:2px 12px 4px;margin:4px 0;transform:rotate(-2deg);box-shadow:var(--pop-sm)}
.hero h1 .hand{display:block;font:400 clamp(30px,3.6vw,50px)/1.1 var(--hand);text-transform:none;letter-spacing:0;margin-top:4px}
.hero__sub{font-size:clamp(16px,1.3vw,19px);max-width:36ch;margin:22px 0 0;color:var(--ink-soft)}
.hero__cta{display:flex;flex-wrap:wrap;align-items:center;gap:18px 26px;margin-top:30px}
.hero__phone{font:700 18px/1.2 var(--display);text-decoration:none;border-bottom:3px solid var(--ink)}
.hero h1 .h1__plus{display:block;font:800 clamp(17px,1.9vw,26px)/1.15 var(--display);letter-spacing:-.01em;margin-top:12px}
.hero__promo{display:inline-flex;align-items:center;gap:14px;margin-top:26px;text-decoration:none;background:var(--white);border:var(--line) dashed var(--ink);padding:10px 16px 10px 10px;max-width:100%;transition:transform .16s var(--ease-out)}
.hero__promo:hover{transform:rotate(-1.5deg)}
.hero__promo b{font:800 18px/1 var(--display);background:var(--ink);color:var(--sun);padding:9px 12px 8px;letter-spacing:.04em;flex:none}
.hero__promo span{font-weight:600;font-size:15px;line-height:1.35}

.hero__art{position:relative;justify-self:center;width:min(100%,460px);isolation:isolate}
.panel{position:relative;border:var(--line) solid var(--ink);box-shadow:var(--pop);background:var(--white);overflow:hidden}
.hero__art .panel{transform:rotate(2.5deg)}
.hero__art .panel--back{position:absolute;inset:0;transform:rotate(-7deg) translate(-16%,-4%) scale(.92);z-index:-1}
.hero__art img{width:100%;aspect-ratio:445/667;object-fit:cover}

.price-star{position:absolute;z-index:2;display:grid;place-items:center;text-align:center;aspect-ratio:1;container-type:inline-size;
  background:var(--ink);clip-path:var(--star);color:var(--ink)}
.price-star__in{display:grid;place-items:center;width:89%;aspect-ratio:1;clip-path:var(--star);background:var(--sun)}
.price-star__in > span{display:grid;justify-items:center;line-height:1;transform:rotate(-8deg)}
.price-star small{font:400 13cqi/1 var(--hand)}
.price-star b{font:800 16cqi/1.05 var(--display);letter-spacing:-.04em;white-space:nowrap}
.price-star em{font:400 7.5cqi/1.1 var(--hand);font-style:normal;margin-top:2cqi}
.hero__art .price-star{left:-18%;bottom:5%;width:46%}

.spark{position:absolute;width:var(--s,26px);aspect-ratio:1;background:var(--white);clip-path:var(--spark);pointer-events:none;filter:drop-shadow(0 0 0 var(--ink))}
.spark--ink{background:var(--ink)}

/* бегущая строка */
.ticker{background:var(--ink);color:var(--sun);border-bottom:var(--line) solid var(--ink);overflow:hidden;padding:16px 0}
.ticker__track{display:flex;width:max-content;animation:ticker 32s linear infinite}
.ticker__item{display:flex;align-items:center;gap:28px;padding-right:28px;font:800 clamp(18px,2vw,26px)/1 var(--display);text-transform:uppercase;white-space:nowrap}
.ticker__item i{width:20px;height:20px;background:var(--sun);clip-path:var(--spark);flex:none}

/* общие заголовки разделов */
.sec{position:relative;padding-block:clamp(72px,10vw,128px)}
.h2{font:800 clamp(28px,3.6vw,48px)/1.08 var(--display);letter-spacing:-.02em;text-transform:uppercase;margin:0 0 18px}
.h2 .hand{font:400 1.05em/1 var(--hand);text-transform:none;letter-spacing:0}
.lead{max-width:58ch;margin:0;color:var(--ink-soft);font-size:18px}

/* как проходит чистка — раскадровка */
.strip{display:grid;grid-template-columns:1.25fr 1fr 1fr;grid-template-rows:auto auto;gap:22px;margin-top:48px}
.frame{position:relative;border:var(--line) solid var(--ink);box-shadow:var(--pop);background:var(--white);overflow:hidden;min-height:260px;display:flex;flex-direction:column}
.frame--big{grid-row:span 2}
.frame--wide{grid-column:span 2}
.frame__pic{position:relative;flex:1;min-height:180px;background:var(--sun-pale);overflow:hidden}
.frame__pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.frame__pic .halftone{opacity:.14}
.frame__cap{position:relative;background:var(--sun);border-top:var(--line) solid var(--ink);padding:16px 20px 18px}
.frame__cap h3{font:800 18px/1.2 var(--display);text-transform:uppercase;margin:0 0 6px;letter-spacing:-.01em}
.frame__cap p{margin:0;font-size:15.5px;line-height:1.5;color:var(--ink-soft)}
.frame__pic--type{display:grid;place-items:center;background:var(--sun);isolation:isolate}
.frame__pic--type::before{content:"";position:absolute;inset:-40%;z-index:-1;background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.5) 0deg 8deg,transparent 8deg 20deg)}
.onomato{position:relative;font:800 clamp(48px,6vw,84px)/1 var(--display);text-transform:uppercase;color:var(--white);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:6px 6px 0 var(--ink);transform:rotate(-8deg);transition:transform .25s var(--ease-pop)}
.frame:hover .onomato{transform:rotate(4deg) scale(1.1)}
.boom{position:absolute;z-index:2;font:800 clamp(18px,2vw,26px)/1 var(--display);color:var(--ink);background:var(--white);border:var(--line) solid var(--ink);padding:10px 14px 8px;box-shadow:var(--pop-sm);transform:rotate(var(--r,-8deg));text-transform:uppercase;transition:transform .2s var(--ease-pop)}
.frame:hover .boom{transform:rotate(calc(var(--r,-8deg) * -1)) scale(1.08)}

/* до и после */
.ba{background:var(--ink);color:var(--paper);overflow:hidden;isolation:isolate}
.ba .halftone{background-image:radial-gradient(circle,var(--sun) 1.3px,transparent 1.8px);opacity:.12;z-index:-1}
.ba .h2{color:var(--sun)}
.ba .lead{color:#d9d3bf}
.ba__tag{position:absolute;top:14px;font:800 14px/1 var(--display);text-transform:uppercase;padding:9px 12px 7px;border:var(--line) solid var(--ink);box-shadow:var(--pop-sm);pointer-events:none}
.ba__tag--before{left:14px;background:var(--white);color:var(--ink);transform:rotate(-4deg)}
.ba__tag--after{right:14px;background:var(--sun);color:var(--ink);transform:rotate(4deg)}

/* работы до и после: снимки заказчицы как есть */
.works{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto auto;gap:24px;margin-top:44px}
.work{margin:0;display:flex;flex-direction:column}
.work--tall{grid-row:span 2}
.work__pic{position:relative;display:block;flex:1;padding:0;margin:0;border:var(--line) solid var(--sun);box-shadow:8px 8px 0 var(--sun);background:#2b2820;overflow:hidden;cursor:zoom-in;transition:transform .2s var(--ease-out)}
.work__pic:hover{transform:translate(-2px,-2px) rotate(-.6deg)}
.work__pic img{width:100%;height:100%;object-fit:cover}
.work--tall .work__pic img{aspect-ratio:853/1280}
.work:not(.work--tall) .work__pic img{aspect-ratio:1}
.work figcaption{margin-top:14px;font:800 16px/1.2 var(--display);text-transform:uppercase;color:var(--sun)}
.work--next{justify-content:center;align-items:flex-start;gap:16px;background:var(--sun);color:var(--ink);border:var(--line) solid var(--sun);box-shadow:8px 8px 0 var(--white);padding:clamp(22px,2.4vw,32px)}
.work--next p{margin:0;font:400 clamp(26px,2.4vw,34px)/1.1 var(--hand)}
.work--next b{font:800 clamp(20px,1.8vw,26px)/1.15 var(--display);text-transform:uppercase}
.work--next small{font-size:15px;color:var(--ink-soft)}

/* окно для крупного фото */
.zoom{padding:0;border:var(--line) solid var(--sun);background:var(--ink);max-width:min(94vw,1000px);max-height:92dvh;overflow:visible}
.zoom::backdrop{background:rgba(26,24,19,.86)}
.zoom img{display:block;max-width:min(94vw,1000px);max-height:calc(92dvh - 6px);width:auto;height:auto}
.zoom__x{position:absolute;top:-18px;right:-18px;width:48px;height:48px;border:var(--line) solid var(--ink);background:var(--sun);font:800 28px/1 var(--display);cursor:pointer;box-shadow:var(--pop-sm)}

/* прокат */
.rent{display:grid;grid-template-columns:repeat(5,1fr);gap:22px;margin-top:48px}
.item{border:var(--line) solid var(--ink);box-shadow:var(--pop);background:var(--white);display:flex;flex-direction:column;overflow:hidden}
/* низ карточек обрезан: там цены «за сутки» со старых картинок, цены на сайте — по прайс-листу */
.item img{width:100%;aspect-ratio:445/500;object-fit:cover;object-position:top}
.item__cap{display:flex;flex-direction:column;gap:10px;flex:1;border-top:var(--line) solid var(--ink);padding:16px 16px 18px;background:var(--paper)}
.item__cap h3{font:800 clamp(12px,1.05vw,14px)/1.25 var(--display);text-transform:uppercase;margin:0;letter-spacing:-.01em;hyphens:auto;overflow-wrap:anywhere}
.item__price{margin:auto 0 0;font:800 24px/1 var(--display);letter-spacing:-.03em}
.item__price small{font:400 18px/1 var(--hand);letter-spacing:0}
.item__price span{font:600 14px/1 var(--body);letter-spacing:0;margin-left:2px}
.item .btn{justify-content:center;padding:13px 12px;font-size:12px}

/* промокод */
.promo{background:var(--sun);border-block:var(--line) solid var(--ink);overflow:hidden;isolation:isolate}
.promo .rays{animation:spin 160s linear infinite reverse;z-index:-2}
.promo .halftone{z-index:-1;opacity:.18}
.promo__in{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(28px,5vw,72px);align-items:center}
.coupon{position:relative;background:var(--white);border:var(--line) dashed var(--ink);outline:var(--line) solid var(--ink);outline-offset:8px;padding:clamp(26px,4vw,48px)}
.coupon__hand{font:400 clamp(24px,2.6vw,34px)/1 var(--hand);margin:0}
.coupon__code{font:800 clamp(56px,9vw,120px)/1 var(--display);letter-spacing:.02em;margin:6px 0 10px;color:var(--white);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:7px 7px 0 var(--ink)}
.coupon__deal{margin:0;font:800 clamp(18px,2vw,26px)/1.25 var(--display);text-transform:uppercase}
.coupon__deal b{background:var(--ink);color:var(--sun);padding:2px 10px;margin-right:4px}
.coupon__how{margin:16px 0 24px;color:var(--ink-soft);max-width:44ch}
.promo__art{justify-self:center;width:min(100%,360px)}
/* при любом шрифте телефона блоки не шире колонки: длинное переносится, а не растягивает */
.hero__grid > *,.promo__in > *,.order > *,.works > *,.rent > *,.prices > *{min-width:0}
.work--next .btn,.coupon .btn{white-space:normal;text-align:center}
.form,.form > *,.chips{min-width:0;max-width:100%}
.chip{max-width:100%}
.chip span{white-space:normal;overflow-wrap:anywhere}
.coupon,.hero__promo,.bubble{max-width:100%}
.coupon__code,.coupon__deal,.hero__promo span{overflow-wrap:anywhere}
/* «ХИМЧИСТКУ» всегда одной строкой: не влезает — скрипт уменьшает шрифт заголовка */
.hero h1 .mark{white-space:nowrap;overflow-wrap:normal}
.promo__art img{width:100%;aspect-ratio:445/667;object-fit:cover}

/* цены */
.prices{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:40px;align-items:start}
.prices__note{margin:24px 0 0;color:var(--ink-soft);max-width:70ch}
.prices__box{border:var(--line) solid var(--ink);box-shadow:var(--pop);background:var(--white);padding:clamp(20px,3vw,34px)}
.prices__box h3{font:800 20px/1.2 var(--display);text-transform:uppercase;margin:0 0 14px}
.prices__box h3 small{font:400 22px/1 var(--hand);text-transform:none}
.prices__box ul{list-style:none;margin:0;padding:0}
.prices__box li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 0;border-bottom:2px dotted var(--ink)}
.prices__box li:last-child{border-bottom:0}
.prices__box li b{font:800 18px/1.2 var(--display);white-space:nowrap}
.prices__box > p{margin:14px 0 0;color:var(--ink-soft);font-size:15.5px}
.prices__promo{margin:28px 0 0;font-size:18px}
.prices__promo b{font-family:var(--display);background:var(--sun);border:2px solid var(--ink);padding:2px 8px}
.sec--paper{background:var(--white);border-top:var(--line) solid var(--ink)}
.field[hidden]{display:none}

/* цена */
.price{background:var(--sun);border-block:var(--line) solid var(--ink);overflow:hidden;isolation:isolate;text-align:center}
.price .rays{animation:spin 160s linear infinite reverse;z-index:-2}
.price .halftone{z-index:-1;opacity:.18}
.price__star{position:relative;display:inline-grid;width:min(78vw,400px);margin:10px auto 26px}
.price__star .price-star{position:relative;width:100%}
.price .lead{margin:0 auto 30px;max-width:46ch}

/* заявка */
.order{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,72px);align-items:start}
.order__aside{position:sticky;top:100px}
.order__aside .bubble{border-radius:18px;margin-top:28px}
.order__aside .bubble::after{right:auto;left:18%}
.order__aside .bubble::before{right:auto;left:calc(18% + 8px)}
.order__aside .bubble p{margin:0;font:400 24px/1.3 var(--hand)}
.contacts{margin:42px 0 0;padding:0;list-style:none;display:grid;gap:14px}
.contacts li{display:flex;flex-direction:column;gap:2px}
.contacts span{font-size:14px;color:var(--ink-soft)}
.contacts a,.contacts b{font:700 20px/1.3 var(--display);text-decoration:none}
.contacts b{font:600 17px/1.45 var(--body)}
.contacts > li > a{border-bottom:3px solid var(--ink);align-self:flex-start}
.socials{display:flex;flex-wrap:wrap;gap:10px 14px}
.contacts .socials a{font:700 15px/1 var(--display);text-transform:uppercase;background:var(--sun);border:var(--line) solid var(--ink);box-shadow:var(--pop-sm);padding:9px 12px 8px;color:var(--ink)}
.meta-note{margin:14px 0 0;font-size:12.5px;line-height:1.4;color:var(--ink-soft);max-width:46ch}
.todo{background:repeating-linear-gradient(-45deg,var(--sun-pale) 0 8px,transparent 8px 16px);outline:2px dashed var(--ink);outline-offset:2px;padding:0 4px}

.form{position:relative;background:var(--white);border:var(--line) solid var(--ink);box-shadow:var(--pop);padding:clamp(22px,3vw,40px);display:grid;gap:18px}
.field{display:grid;gap:8px}
.field label,.field legend{font-weight:600;font-size:15px}
.field input,.field select,.field textarea{width:100%;border:var(--line) solid var(--ink);background:var(--paper);padding:14px 14px;font-size:17px;border-radius:0;transition:box-shadow .15s,background-color .15s}
.field textarea{min-height:110px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;background:var(--white);box-shadow:var(--pop-sm)}
.field input::placeholder,.field textarea::placeholder{color:#6f6a5c}
.field .err{display:none;color:#a3240c;font-size:14px;font-weight:600}
.field.bad .err{display:block}
.field.bad input{background:#fff1ec}
.chips{display:flex;flex-wrap:wrap;gap:10px;border:0;padding:0;margin:0}
.chips legend{margin-bottom:8px}
.chip{position:relative}
.chip input{position:absolute;opacity:0;inset:0;cursor:pointer}
.chip span{display:inline-block;border:var(--line) solid var(--ink);padding:9px 14px;font-weight:600;font-size:15px;background:var(--paper);transition:background-color .15s,transform .15s var(--ease-out)}
.chip input:checked + span{background:var(--sun);box-shadow:var(--pop-sm);transform:translate(-2px,-2px)}
.chip input:focus-visible + span{outline:3px solid var(--ink);outline-offset:3px}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;line-height:1.45}
.consent input{flex:none;width:24px;height:24px;margin:0;accent-color:var(--ink);cursor:pointer}
.form .btn{justify-content:center;width:100%}
.form .btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.form__done[hidden]{display:none!important}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form__err[hidden]{display:none!important}
.form__err{margin:14px 0 0;padding:12px 14px;border:var(--line) solid var(--ink);background:#fff1ec;font-weight:600}
.form__done{position:absolute;inset:0;background:var(--sun);display:grid;place-content:center;text-align:center;padding:30px;gap:8px}
.form__done b{font:800 clamp(24px,3vw,34px)/1.1 var(--display);text-transform:uppercase}
.form__done p{margin:0;font:400 24px/1.3 var(--hand)}

/* подвал */
.foot{background:var(--ink);color:#d9d3bf;padding-block:44px calc(44px + env(safe-area-inset-bottom,0px));font-size:14.5px}
.foot__in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px 40px;align-items:flex-start}
.foot .logo{color:var(--sun)}
.foot .logo__num{background:var(--sun);color:var(--ink)}
.foot p{margin:6px 0 0}
.foot a{color:var(--sun)}

/* липкая кнопка на телефоне */
.dock{display:none}
.foot p a[href^="tel:"]{font-weight:700}

/* появление при прокрутке — включает скрипт классом .js на <html> */
.js .rv{opacity:0;transform:translateY(28px) rotate(var(--rr,0deg)) scale(.96);transition:opacity .55s var(--ease-out),transform .6s var(--ease-pop);transition-delay:calc(var(--i,0) * 90ms)}
.js .rv.on{opacity:1;transform:none}
.js .frame.rv{transform:translateY(40px) rotate(var(--rr,-3deg)) scale(.9)}
.js .frame.rv.on{transform:none}

/* вход первого экрана */
.js .hero .bubble{animation:pop .7s var(--ease-pop) both .1s}
.js .hero h1 .w{display:inline-block;animation:slam .55s var(--ease-pop) both;animation-delay:calc(.35s + var(--i) * .12s)}
.js .hero__sub,.js .hero__cta{animation:rise .6s var(--ease-out) both .95s}
.js .hero__art .panel:not(.panel--back){animation:panel .8s var(--ease-pop) both .25s}
.js .hero__art .panel--back{animation:fade .7s var(--ease-out) both .55s}
@keyframes fade{from{opacity:0}to{opacity:1}}
.js .hero__art .price-star{animation:starIn .8s var(--ease-pop) both 1.05s,wobble 4s ease-in-out 2s infinite}
.spark{animation:twinkle 2.4s ease-in-out infinite;animation-delay:var(--d,0s)}

@keyframes spin{to{rotate:360deg}}
@keyframes ticker{to{transform:translateX(-50%)}}
@keyframes pop{from{opacity:0;transform:scale(.7) rotate(-4deg)}to{opacity:1;transform:none}}
@keyframes slam{from{opacity:0;transform:translateY(-30px) scale(1.4) rotate(-6deg)}to{opacity:1;transform:none}}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes panel{from{opacity:0;transform:translateX(60px) rotate(12deg)}to{opacity:1;transform:rotate(2.5deg)}}
@keyframes starIn{from{opacity:0;transform:scale(0) rotate(-180deg)}to{opacity:1;transform:none}}
@keyframes wobble{0%,100%{rotate:0deg}50%{rotate:-8deg}}
@keyframes twinkle{0%,100%{transform:scale(.4) rotate(0deg);opacity:.5}50%{transform:scale(1) rotate(45deg);opacity:1}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .rv{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

@media (max-width:1060px){
  .nav{display:none}
  .hero__grid{grid-template-columns:1fr;min-height:0;gap:56px}
  .hero__art{width:min(82%,400px)}
  .hero__art .price-star{left:-12%}
  .strip{grid-template-columns:1fr 1fr}
  .frame--big{grid-row:auto;grid-column:span 2}
  .frame--wide{grid-column:span 2}
  .order{grid-template-columns:1fr}
  .order__aside{position:static}
  .works{grid-template-columns:1fr 1fr}
  .work--tall{grid-row:span 2}
  .rent{grid-template-columns:repeat(3,1fr)}
  .promo__in,.prices{grid-template-columns:1fr}
  .promo__art{width:min(70%,320px)}
}
@media (max-width:640px){
  body{font-size:16px}
  .top__in{height:62px}
  .logo__name{font-size:22px}
  .top .btn{display:none}
  html{scroll-padding-top:72px}
  .bubble::after{bottom:-30px;width:44px;height:34px}
  .bubble::before{bottom:-21px;width:30px;height:25px}
  .hero__cta .btn{width:100%;justify-content:center}
  .hero__art{width:86%}
  .strip{grid-template-columns:1fr}
  .frame--big,.frame--wide{grid-column:auto}
  .ba__tag{font-size:12px}
  .works{grid-template-columns:1fr;gap:28px}
  .work--tall{grid-row:auto}
  .rent{grid-template-columns:1fr 1fr;gap:16px}
  .item__cap{padding:12px 12px 14px}
  .item__cap h3{font-size:13px}
  .item__price{font-size:20px}
  .item .btn{font-size:11px;padding:12px 8px;white-space:normal;text-align:center}
  .hero__promo span{font-size:14px}
  /* узкий телефон: колонки не растягиваются по самому длинному содержимому */
  .hero__grid,.promo__in{grid-template-columns:minmax(0,1fr)}
  .hero h1{font-size:clamp(26px,9.2vw,40px)}
  .hero__promo{gap:10px;padding:8px 10px 8px 8px}
  .hero__promo b{font-size:16px;padding:8px 9px 7px}
  .hero__promo span{font-size:13px;min-width:0}
  .coupon{padding:22px 18px}
  .coupon__code{font-size:clamp(44px,15vw,64px);-webkit-text-stroke-width:2px;text-shadow:5px 5px 0 var(--ink)}
  .coupon .btn{white-space:normal;text-align:center;justify-content:center;width:100%}
  .prices__box li{flex-direction:column;gap:2px}
  .coupon{outline-offset:5px}
  .dock{display:block;position:fixed;left:0;right:0;bottom:0;z-index:30;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:var(--sun);border-top:var(--line) solid var(--ink)}
  .dock{display:grid!important;grid-template-columns:1fr 1fr;gap:10px}
  .dock .btn{width:100%;justify-content:center;padding-inline:10px}
  .foot{padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))}
}
.foot .todo{background:none;color:var(--sun)!important;outline-color:var(--sun)}

/* строка автора сайта — тонко и приглушённо */
.foot .foot__dev{margin-top:14px;font-size:12px;letter-spacing:.02em;color:#8f8a7a}
.foot .foot__dev a{color:#a9a392;font-weight:400!important;text-decoration:none;border-bottom:1px solid rgba(169,163,146,.4)}
.foot .foot__dev a:hover{color:var(--sun)}
