/* Choc Oh! Toronto — основные стили */
:root{
  --cream:#f0e6da;
  --ink:#1B1411;
  --dark:#170700;
  --cocoa:#1c0e05;
  --milk:#A87A5A;
  --pistachio:#A9B388;
  --raspberry:#B8445C;
  --line:rgba(27,20,17,.12);
  --sans:"Jost","Avenir Next","Avenir",Helvetica,Arial,sans-serif;
  --display:"Cormorant Garamond",Georgia,serif;
  --header-h:90px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--cream);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;background:none;border:0;cursor:pointer}
 
/* ── Media slots (photo or chocolate-gradient fallback) ── */
.ph{position:relative;overflow:hidden;background-color:var(--cocoa);background-size:cover;background-position:center}
.ph[data-tone="1"]{background-image:radial-gradient(120% 90% at 20% 10%,#8a5a3c 0%,#4a2a1c 55%,#241510 100%)}
.ph[data-tone="2"]{background-image:radial-gradient(110% 90% at 80% 20%,#c9a27f 0%,#8b5e41 45%,#3c2419 100%)}
.ph[data-tone="3"]{background-image:radial-gradient(100% 100% at 30% 80%,#b8c092 0%,#6f7a52 45%,#2e2a1d 100%)}
.ph[data-tone="4"]{background-image:radial-gradient(110% 100% at 70% 30%,#d07a8b 0%,#8f3a4d 45%,#2e1418 100%)}
.ph[data-tone="5"]{background-image:linear-gradient(160deg,#efe3d4 0%,#c9ab8d 50%,#7a5238 100%)}
.ph .ph-label{position:absolute;left:10px;bottom:8px;font-size:9px;letter-spacing:1.6px;text-transform:uppercase;color:rgba(255,255,255,.55);pointer-events:none;z-index:1}
.ph.loaded .ph-label{display:none}
.tile .ph.loaded,.card .ph.loaded,.track .ph.loaded,.services .img.loaded{animation:phIn .8s ease}
@keyframes phIn{from{filter:blur(8px) brightness(.7)}to{filter:none}}
.card .ph-label{top:10px;bottom:auto}
.tile .ph-label{display:none}
.shade::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.3);pointer-events:none}
 
/* ── Header ── */
.header{position:fixed;inset:0 0 auto 0;z-index:100;height:var(--header-h);display:flex;align-items:center;justify-content:space-between;padding:0 60px;background:rgba(255,255,255,.18);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border-bottom:1px solid rgba(0,0,0,.08)}
.wordmark{font-size:38px;line-height:32px;letter-spacing:0;color:#fff;text-transform:lowercase;white-space:nowrap}
.wordmark .l{font-weight:300}.wordmark .m{font-weight:500}
.tagline{padding-top:4px;font-size:14px;line-height:22px;color:#fff}
.nav{display:flex;gap:34px;padding-bottom:6px}
.nav a,.nav button{font-family:var(--display);font-style:italic;font-size:17px;line-height:32px;color:var(--ink);transition:transform .3s ease,color .4s ease}
.header.on-dark .nav a,.header.on-dark .nav button{color:#fff}
.wordmark,.tagline{text-shadow:0 1px 12px rgba(0,0,0,.25)}
.nav a:hover,.nav button:hover{transform:scale(1.04)}
.burger{display:none;width:32px;height:32px;align-items:center;justify-content:flex-end}
.burger span{display:flex;flex-direction:column;justify-content:space-between;width:25px;height:8px}
.burger i{display:block;height:1px;background:#fff}
.mobile-menu{position:fixed;left:0;right:0;top:var(--header-h);z-index:99;padding:32px 24px;background:rgba(255,255,255,.55);backdrop-filter:blur(60px);-webkit-backdrop-filter:blur(60px);display:flex;flex-direction:column;gap:24px;font-size:14px;letter-spacing:2.8px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s}
.mobile-menu.open{opacity:1;visibility:visible;pointer-events:auto}
.mobile-menu a,.mobile-menu button{text-align:left}
 
/* ── Section scaffolding ── */
section{position:relative;width:100%;overflow:hidden}
.split{display:flex;height:100%}
.half{position:relative;width:50%;height:100%}
.caption{display:flex;flex-direction:column;gap:15px}
.badge{font-family:var(--display);font-style:italic;font-size:17px;line-height:32px}
.kicker{font-size:10px;letter-spacing:2px;text-transform:uppercase}
.kicker b{font-weight:600}
.lead{font-size:16px;line-height:24px}
.view{display:inline-flex;width:fit-content;padding:0 10px 6px 0;border-bottom:.5px solid currentColor;font-family:var(--display);font-style:italic;font-size:17px;line-height:32px;transition:transform .3s}
.view:hover{transform:scale(1.04)}
.overlay-text{position:absolute;top:0;height:100%;display:flex;flex-direction:column;justify-content:center;left:119px;width:327px;padding-top:var(--header-h);color:#fff;z-index:2}
 
/* ── 3D bonbon layers: back sits under frosted glass + content, front floats over cards ── */
.bb-layer{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity 1.4s ease}
.bb-back{z-index:1}.bb-front{z-index:4}
.bb-on .bb-layer{opacity:1}
/* лёгкие бонбоны (телефон / без WebGL): лента кадров + CSS-парение */
main{position:relative}
.bb-sprites{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.bb-s{position:absolute;width:var(--d);height:var(--d);animation:bbX var(--fx) ease-in-out var(--dl) infinite alternate}
.bb-s i{display:block;width:100%;height:100%;animation:bbY var(--fy) ease-in-out var(--dl) infinite alternate}
.bb-s b{display:block;width:100%;height:100%;background-repeat:no-repeat;background-size:calc(var(--d) * 10) var(--d);opacity:0;transition:opacity .8s;animation:bbSpin var(--sp) steps(10) infinite}
.bb-s b.ready{opacity:1}
@keyframes bbSpin{to{background-position:calc(var(--d) * -10) 0}}
@keyframes bbX{from{transform:translateX(-9px)}to{transform:translateX(9px)}}
@keyframes bbY{from{transform:translateY(-8px)}to{transform:translateY(8px)}}
@media (prefers-reduced-motion:reduce){.bb-s,.bb-s i,.bb-s b{animation:none}}
.caption:not(.overlay-text){position:relative;z-index:2}
.gallery .rows-col{position:relative;z-index:2}

/* Reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.track{animation:none!important}}
 
/* ── 1. Hero ── */
.right{background:var(--cream);display:flex;align-items:center;padding-top:var(--header-h)}
.tiles{--tw:clamp(150px,15.5vw,280px);position:relative;left:-65px;display:flex;gap:12.5px;z-index:3}
/* phone mockup */
@supports (height:100svh){.tiles{--tw:clamp(150px,min(15.5vw,calc((100svh - 230px)/2.05)),280px)}.card{--cw:clamp(240px,min(26vw,calc((100svh - var(--header-h) - 120px)/1.25)),460px)}}
/* glass card: frosted frame + photo; motion = springs in JS (no CSS transitions on transform) */
.tile{--u:calc(var(--tw,220px) / 100);position:relative;width:var(--tw,220px);height:calc(var(--tw,220px)*2.05);flex-shrink:0;
  border-radius:calc(var(--u)*12);background:linear-gradient(150deg,rgba(255,255,255,.5) 0%,rgba(255,250,244,.16) 45%,rgba(255,255,255,.32) 100%);
  backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);
  border:1px solid rgba(255,255,255,.6);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85),inset 0 -1px 0 rgba(255,255,255,.2),0 2px 4px rgba(40,20,10,.08),0 24px 50px -12px rgba(40,20,10,.38);
  cursor:pointer;will-change:transform;transition:box-shadow .5s}
.tile .ph{position:absolute;inset:calc(var(--u)*4);border-radius:calc(var(--u)*8.5);background-size:cover;clip-path:inset(0 round calc(var(--u)*8.5));transition:transform .9s cubic-bezier(.2,.8,.2,1),clip-path .9s cubic-bezier(.2,.8,.2,1)}
.tile .screen{position:absolute;inset:calc(var(--u)*4);border-radius:calc(var(--u)*8.5);overflow:hidden;pointer-events:none;z-index:2;
  background:linear-gradient(180deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,0) 22%,rgba(0,0,0,0) 50%,rgba(10,5,3,.72) 100%)}
.glare{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:4;opacity:0;transition:opacity .4s;
  background:radial-gradient(circle at var(--gx,50%) var(--gy,30%),rgba(255,255,255,.42),rgba(255,255,255,.08) 32%,transparent 55%)}
.is-hover .glare,.is-grab .glare{opacity:1}
.tile.is-hover,.card.is-hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 4px 8px rgba(40,20,10,.1),0 34px 64px -14px rgba(40,20,10,.42)}
.tile.is-grab,.card.is-grab{z-index:7;cursor:grabbing;box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 6px 10px rgba(40,20,10,.12),0 44px 80px -16px rgba(40,20,10,.5)}
.tile .order{display:inline-block;margin-top:calc(var(--u)*4);padding:calc(var(--u)*2.4) calc(var(--u)*6);border-radius:99px;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;font:500 calc(var(--u)*4.6)/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;font-style:normal}
/* zoom stays inside the frame: clip-path compensates for scale (1 - 1/1.06)/2 ≈ 2.83% */
@media (hover:hover) and (pointer:fine){.tile:hover .ph{transform:scale(1.06);clip-path:inset(2.83% round calc(var(--u)*8))}}
.tiles .tile:nth-child(2){transform:translateY(24px)}
.tile-name{position:absolute;left:calc(var(--u)*10);right:calc(var(--u)*10);bottom:calc(var(--u)*11);z-index:3;color:#fff;font-family:var(--display);font-style:italic;font-size:calc(var(--u)*9.5);line-height:1.05}
.tile-name small{display:block;font-family:var(--sans);font-style:normal;font-size:calc(var(--u)*4.2);letter-spacing:2px;text-transform:uppercase;opacity:.8;margin-bottom:4px}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:0 60%}
 
/* ── 2. Dark gallery ── */
.gallery{background:var(--dark);color:#fff}
.gallery .text-col{width:40%;display:flex;align-items:center}
.gallery .text-col .caption{width:327px;margin-left:119px;padding-top:var(--header-h)}
.gallery .rows-col{width:60%;padding-top:var(--header-h);display:flex;flex-direction:column;justify-content:center;gap:1px;--card:min(calc((60vw - 4px)/5),calc((100svh - var(--header-h) - 2px)/3))}
.row{overflow:hidden}
.row.short{width:calc(var(--card)*3 + 2px);max-width:100%}
.track{display:flex;gap:1px;width:max-content;animation:marquee 60s linear infinite}
.row.rev .track{animation-direction:reverse}
.track .ph{width:var(--card);height:var(--card);flex-shrink:0;transition:filter .5s,transform .5s}
@media (hover:hover){.rows-col:hover .track{animation-play-state:paused}.rows-col:hover .track .ph{filter:brightness(.55) saturate(.8)}.rows-col .track .ph:hover{filter:none;transform:scale(1.06);z-index:2}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
 
/* ── 3 & 5. Floating cards ── */
.float-wrap{position:relative;height:100%}
.float-wrap .bg{position:absolute;top:0;left:0;width:50%;height:100%}
.card{--cw:clamp(240px,26vw,460px);position:absolute;z-index:3;width:var(--cw);height:calc(var(--cw)*.59);overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,.14);cursor:pointer;border-radius:6px;will-change:transform;transition:box-shadow .5s}
.card .ph{position:absolute;inset:0;transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.card .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(20,10,6,.65));opacity:0;transition:opacity .5s}
.card .flav{position:absolute;left:18px;right:18px;bottom:14px;z-index:2;color:#fff;font-family:var(--display);font-style:italic;font-size:22px;line-height:1.1;opacity:0;transform:translateY(10px);transition:opacity .5s,transform .5s}
.card .flav small{display:block;font-family:var(--sans);font-style:normal;font-size:9px;letter-spacing:2px;text-transform:uppercase;opacity:.85;margin-bottom:4px}
@media (hover:hover) and (pointer:fine){
  .card:hover{z-index:6}
  .card:hover .ph{transform:scale(1.1)}
  .card:hover .ph::after,.card:hover .flav{opacity:1;transform:none}
}
.m-float .card .flav,.m-float .card .ph::after{opacity:1;transform:none}
.card:focus-visible,.tile:focus-visible{outline:2px solid var(--raspberry);outline-offset:4px}
.c1{left:36%;top:21%}
.c2{left:68%;top:15%}
.c3{left:73%;top:56%}
.c4{left:42%;top:62%}
.frost{position:absolute;inset:0;z-index:1;pointer-events:none;background:rgba(38, 37, 37, 0.716);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.float-wrap .right-fill{position:absolute;right:0;top:0;width:50%;height:100%;background:var(--cream)}
 
/* ── 4. Services ── */
.services .img{width:50%;height:100%}
.services .panel{position:relative;width:50%;height:100%;display:flex;align-items:center}
.services .fade{position:absolute;left:-220px;top:0;height:100%;width:222px;background:linear-gradient(90deg,rgba(240,230,218,0) 0%,rgba(240,230,218,.85) 70%,var(--cream) 100%);z-index:1}
.services .content{position:relative;z-index:2;left:-120px;width:360px;display:flex;flex-direction:column;gap:45px;padding-top:var(--header-h)}
.svc{position:relative;display:flex;flex-direction:column;gap:15px;width:310px;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.svc::before{content:"";position:absolute;left:-14px;top:0;bottom:0;width:1px;background:var(--raspberry);transform:scaleY(0);transform-origin:top;transition:transform .4s}
@media (hover:hover){.svc:hover{transform:translateX(14px)}.svc:hover::before{transform:scaleY(1)}}
.svc h3{font-weight:400;font-size:12px;letter-spacing:2.4px}
.svc p{font-size:14px;line-height:24px}
.cta{display:inline-flex;align-items:center;justify-content:space-between;gap:55px;max-width:180px;padding:12px 0;border-bottom:.4px solid var(--ink);font-style:italic;font-size:14px;letter-spacing:.28px;transition:gap .35s}
.cta:hover{gap:75px}
.arrow{position:relative;width:15px;height:1px;background:var(--ink)}
.arrow::after{content:"";position:absolute;right:-1px;top:50%;width:6px;height:6px;border-top:1px solid var(--ink);border-right:1px solid var(--ink);transform:translateY(-50%) rotate(45deg)}
 
/* ── 6. Why ── */
.why .veil{position:absolute;top:0;left:0;width:50%;height:100%;display:flex;align-items:center;background:rgba(0,0,0,.25);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);z-index:2}
.why .inner{padding-left:112px;color:#fff;padding-top:var(--header-h)}
.why .wm{font-size:34px;text-transform:lowercase}
.why .wm .l{font-weight:300}.why .wm .m{font-weight:500}
.why .body{margin-top:32px;width:430px;display:flex;flex-direction:column;gap:16px;font-size:14px;line-height:24px}
 
/* ── Footer ── */
.footer{position:relative;z-index:5;background:var(--ink);color:#fff;padding:0 112px 70px}
.footer::before{content:"";position:absolute;left:0;right:0;top:-160px;height:160px;background:linear-gradient(0deg,#1B1411,rgba(27,20,17,0));pointer-events:none}
.footer nav{position:relative;top:-55px;display:flex;flex-direction:column;gap:35px;font-size:12px;letter-spacing:2.8px}
.footer nav a,.footer nav button{width:fit-content;text-align:left;transition:transform .3s}
.footer nav a:hover,.footer nav button:hover{transform:scale(1.04)}
.footer .meta{display:flex;flex-wrap:wrap;gap:12px 40px;font-size:12px;letter-spacing:1px;color:rgba(255,255,255,.55)}
 
/* ── Contact modal ── */
.modal{position:fixed;inset:0;z-index:200;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .4s}
.modal.open{visibility:visible;opacity:1;pointer-events:auto}
.modal .ph{position:absolute;inset:0}
.modal .ph::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.42);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.modal .close{position:absolute;top:28px;right:60px;z-index:3;width:40px;height:40px;display:flex;align-items:center;justify-content:center}
.modal .close span{position:relative;width:18px;height:18px}
.modal .close i{position:absolute;top:50%;left:0;width:100%;height:1px;background:#fff}
.modal .close i:first-child{transform:rotate(45deg)}.modal .close i:last-child{transform:rotate(-45deg)}
.modal .wrap{position:relative;z-index:2;height:100%;overflow-y:auto;display:flex;align-items:center;padding:79px 150px 64px;color:#fff}
.form{width:420px;display:flex;flex-direction:column;gap:26px}
.form .badge{color:#fff}
.form h2{font-weight:300;font-size:34px;line-height:1.1}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:10px;letter-spacing:2px;text-transform:uppercase;opacity:.75}
.field input,.field select,.field textarea{background:transparent;border:0;border-bottom:.5px solid rgba(255,255,255,.7);color:#fff;font:inherit;font-size:15px;padding:8px 0;outline:none;resize:none}
.field select option{color:var(--ink)}
.field input::placeholder,.field textarea::placeholder{color:rgba(255,255,255,.45)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.form .cta{border-color:#fff;color:#fff}.form .cta .arrow,.form .cta .arrow::after{background:#fff;border-color:#fff}
.form .cta .arrow::after{background:none}
.direct{font-size:12px;letter-spacing:1px;line-height:20px;opacity:.75}
.thanks{display:none;font-family:var(--display);font-style:italic;font-size:22px}
 
/* ── Desktop: full-screen snapping sections ── */
@media (min-width:1024px){
  main section{height:100vh;height:100svh;min-height:640px}
  .overlay-text{left:clamp(40px,8vw,160px);width:clamp(280px,24vw,400px)}
  .gallery .text-col .caption{margin-left:clamp(40px,8vw,160px);width:clamp(280px,26vw,400px)}
  .why .inner{padding-left:clamp(40px,8vw,160px)}
  .m-only{display:none!important}
}
@media (min-width:1024px) and (max-width:1279px){
  .tiles{left:-40px;gap:10px}
  .services .content{left:-80px}
  .why .body{width:380px}
}
@media (min-width:1800px){
  .lead{font-size:18px;line-height:28px}
  .kicker{font-size:11px}
  .svc p,.why .body{font-size:16px;line-height:27px}
  .svc{width:360px}.services .content{width:400px}
  .why .body{width:520px}
}
 
/* ── Mobile / tablet ── */
@media (max-width:1023px){
  :root{--header-h:80px}
  .d-only{display:none!important}
  .header{padding:0 16px;background:rgba(0,0,0,.3);backdrop-filter:blur(7.5px);-webkit-backdrop-filter:blur(7.5px);border-bottom:1px solid rgba(255,255,255,.4)}
  .wordmark{font-size:30px;letter-spacing:.5px}
  .tagline{font-size:13px;letter-spacing:.3px}
  .nav{display:none}.burger{display:flex}
 
  .m-hero{position:relative;height:calc(var(--header-h) + 36px + 390px + 32px)}
  .m-hero .bgimg{position:absolute;inset:0 0 auto 0;height:calc(var(--header-h) + 36px + 290px)}
  /* 24px top / 32px bottom breathing room: overflow-x:auto also clips vertically, so the hover lift + shadow need space */
  .m-strip{position:absolute;z-index:3;top:calc(var(--header-h) + 12px);left:0;right:0;display:flex;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;padding:24px 16px 32px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
  .m-strip .inner{margin:0 auto}
  .m-strip .tile{scroll-snap-align:center}
  .m-strip .tile:active{transform:scale(.97)}
  .m-strip::-webkit-scrollbar{display:none}
  .m-strip .inner{display:flex;gap:20px;width:max-content}
  .m-strip .tile{--tw:190px}
  .m-caption{align-items:center;text-align:center;padding:40px 24px 48px;gap:10px}
  .m-caption .lead{max-width:327px}
 
  .gallery .split{flex-direction:column}
  .gallery .rows-col{order:0;width:100%;--card:calc((100vw - 2px)/3);padding-top:var(--header-h)}
  .gallery .rows-col .track .ph{height:calc(var(--card)*1.05)}
  .gallery .rows-col .row.short{max-width:none;width:100%}
  .gallery .text-col{order:1;width:100%;justify-content:center}
  .gallery .text-col .caption{margin:0;padding:36px 24px 56px;align-items:center;text-align:center}
 
  .m-float{position:relative;height:420px}
  .m-float .bgimg{position:absolute;inset:0}
  .m-float .strips{position:absolute;left:0;right:0;top:75%;transform:translateY(-50%);display:flex;flex-direction:column;gap:20px;z-index:3}
  .m-float .strips .line{display:flex;overflow-x:auto;scrollbar-width:none;padding-left:16px;scroll-snap-type:x mandatory}
  .m-float .strips .line .inner{margin:0 auto}
  .m-float .card{scroll-snap-align:center;transform:none}
  .m-float .card:active{transform:scale(.97)}
  .m-float .strips .line::-webkit-scrollbar{display:none}
  .m-float .strips .line .inner{display:flex;gap:20px;width:max-content;padding-right:16px}
  .m-float .card{position:relative;left:auto;top:auto;width:min(280px,76vw);height:calc(min(280px,76vw)*.59)}
  .m-float + .m-caption{padding-top:120px}
 
  .services{min-height:720px}
  .services .split{position:relative;min-height:720px}
  .services .img{position:absolute;inset:0;width:100%}
  .services .panel{position:absolute;right:0;top:0;height:100%;width:70%;padding:0 40px;justify-content:center;background:linear-gradient(90deg,rgba(240,230,218,0) 0%,rgba(240,230,218,.92) 30%,var(--cream) 55%)}
  .services .content{padding-top:40px}
  .services .fade{display:none}
  .services .content{left:0;gap:36px}
 
  .why{min-height:680px}
  .why .veil{width:100%;background:rgba(0,0,0,.35);backdrop-filter:none;-webkit-backdrop-filter:none}
  .why .inner{padding:var(--header-h) 40px 40px}
  .why .body{width:auto;max-width:520px}
 
  .footer{padding:0 24px 96px}
  .footer::before{height:80px;top:-80px}
  .modal .close{right:23px;top:22px}
  .modal .wrap{align-items:flex-start;padding:110px 32px 32px}
  .form{width:100%}
}
.order-fab{display:none}
@media (max-width:1023px){
  /* стеклянная кнопка: дымчатое матовое стекло, белый текст читается и на креме, и на тёмном (≥4.5:1) */
  .order-fab{display:flex;align-items:center;position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:90;transform:translate(-50%,140px);padding:14px 30px;border-radius:40px;
    background:linear-gradient(160deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,0) 45%),rgba(27,20,17,.6);
    backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);
    border:1px solid rgba(255,255,255,.35);color:#fff;font-family:var(--display);font-style:italic;font-size:19px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -1px 0 rgba(255,255,255,.08),0 10px 30px rgba(20,10,5,.3);transition:transform .5s cubic-bezier(.2,.8,.2,1)}
  .order-fab:active{transform:translate(-50%,0) scale(.97)}
  .order-fab.show{transform:translate(-50%,0)}
}
@media (max-width:640px){
  .services .panel{width:100%;padding:0 24px;background:linear-gradient(180deg,rgba(240,230,218,.75),rgba(240,230,218,.95))}
  .gallery .rows-col{--card:calc((100vw - 2px)/3)}
  .two{grid-template-columns:1fr}
  .form h2{font-size:28px}
  .why .inner{padding:var(--header-h) 24px 40px}
}
@media (min-width:641px) and (max-width:1023px){
  .gallery .rows-col{--card:calc((100vw - 3px)/4)}
}
@media (max-width:359px){.wordmark{font-size:26px}.tagline{font-size:11px}}
@media (prefers-reduced-motion:reduce){.card,.tile,.card .ph{transition:none!important}}
/* ex-inline styles (moved out for a strict Content-Security-Policy) */
.kicker-new{font-size:12px;letter-spacing:2.4px;font-style:italic;font-weight:500}
.kicker-strong{font-weight:500}
.story-bg{position:absolute;inset:0}

