/* Глина и Руки: винные стены, горчичные полки, круглое зеркало на верёвке */
:root{
  --wine:#4E1620; --wine-2:#6A2230; --wine-ink:#2E0B12;
  --plaster:#EFE9E4; --paper:#F8F5F2; --blush:#EBD3CB;
  --ink:#231A18; --mute:#6F625D; --line:rgba(35,26,24,.14);
  --mustard:#D8A13C; --mustard-2:#E7B95E; --brass:#B88A3E;
  --serif:'Prata', Georgia, 'Times New Roman', serif;
  --sans:'Golos Text', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --gut:clamp(16px, 4vw, 56px); --max:1320px;
  --r-lg:28px; --r-md:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%}
body{margin:0; background:var(--plaster); color:var(--ink); font:400 17px/1.55 var(--sans); overflow-x:hidden}
img,video{display:block; max-width:100%}
a{color:inherit}
h1,h2,h3,h4,p{margin:0}
button{font:inherit; color:inherit; cursor:pointer}
:focus-visible{outline:2px solid var(--mustard); outline-offset:3px; border-radius:6px}
.skip{position:absolute; left:-9999px}
.skip:focus{left:16px; top:16px; z-index:100; background:var(--paper); padding:10px 14px; border-radius:10px}

/* логотип красится через маску, чтобы жить и на вине, и на штукатурке */
.logo{display:inline-block; background:currentColor; -webkit-mask:url(../img/logo.png) center/contain no-repeat; mask:url(../img/logo.png) center/contain no-repeat; aspect-ratio:798/427}

/* кнопки */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:52px; padding:0 26px; border-radius:999px; font:500 16px/1 var(--sans); text-decoration:none; border:1.5px solid transparent; transition:background .2s, color .2s, border-color .2s, transform .2s; white-space:nowrap}
.btn:active{transform:scale(.98)}
.btn-mustard{background:var(--mustard); color:var(--wine-ink)}
.btn-mustard:hover{background:var(--mustard-2)}
.btn-ghost{border-color:rgba(239,233,228,.45); color:var(--plaster)}
.btn-ghost:hover{border-color:var(--plaster)}
.btn-ink{background:var(--ink); color:var(--paper)}
.btn-ink:hover{background:var(--wine)}
.btn-line{border-color:var(--ink); color:var(--ink)}
.btn-line:hover{background:var(--ink); color:var(--paper)}
.btn-line-light{border-color:rgba(239,233,228,.6); color:var(--plaster)}
.btn-line-light:hover{background:var(--plaster); color:var(--wine-ink)}

/* промо и навигация */
.promo{background:var(--wine-ink); color:var(--mustard-2); text-align:center; font-size:14px; padding:9px var(--gut)}
.nav{position:sticky; top:0; z-index:40; display:flex; align-items:center; gap:28px; padding:14px var(--gut); background:var(--wine); color:var(--plaster); transition:background .3s, color .3s, box-shadow .3s}
.nav.is-light{background:rgba(239,233,228,.92); color:var(--ink); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); box-shadow:0 1px 0 var(--line)}
.nav-logo{display:flex; color:inherit}
.nav-logo .logo{width:118px}
.nav-links{display:flex; gap:24px; margin-left:auto; font-size:15px}
.nav-links a{text-decoration:none; opacity:.85}
.nav-links a:hover{opacity:1; text-decoration:underline; text-underline-offset:5px}
.nav-menu-phone{display:none}
.nav-phone{text-decoration:none; font-size:15px; font-weight:500}
.nav-cta{min-height:44px; padding:0 20px; font-size:15px}
.nav.is-light .nav-cta{background:var(--ink); color:var(--paper)}
.nav-burger{display:none; width:44px; height:44px; border:0; background:none; position:relative; margin-left:auto}
.nav-burger span{position:absolute; left:10px; right:10px; height:1.5px; background:currentColor; transition:transform .25s}
.nav-burger span:first-child{top:17px}.nav-burger span:last-child{top:26px}
.nav-burger[aria-expanded="true"] span:first-child{transform:translateY(4.5px) rotate(45deg)}
.nav-burger[aria-expanded="true"] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}

/* первый экран */
.hero{position:relative; background:var(--wine); color:var(--plaster); display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:var(--gut); padding:clamp(28px,3vw,56px) var(--gut) clamp(40px,4vw,72px); min-height:calc(100svh - 110px); overflow:hidden}
.hero::after{content:""; position:absolute; inset:0; pointer-events:none; opacity:.07; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero-text{position:relative; z-index:2; display:flex; flex-direction:column; justify-content:flex-end}
.hero-h1{font:500 15px/1.4 var(--sans); color:var(--mustard-2); max-width:44ch; margin-bottom:20px}
.hero-title{font:400 clamp(58px, 7.6vw, 150px)/.92 var(--serif); letter-spacing:-.02em; margin-bottom:26px; max-width:9.5ch}
.hero-lead{font-size:clamp(17px,1.35vw,20px); line-height:1.55; max-width:54ch; color:rgba(239,233,228,.86); margin-bottom:28px}
.hero-actions{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:32px}
.hero-facts{display:flex; gap:clamp(24px,4vw,56px); margin:0; padding-top:24px; border-top:1px solid rgba(239,233,228,.2)}
.hero-facts dt{font:400 clamp(24px,2.4vw,34px)/1 var(--serif)}
.hero-facts dd{margin:8px 0 0; font-size:14px; color:rgba(239,233,228,.7)}

/* зеркало на верёвке */
.mirror-wrap{position:relative; z-index:1; display:flex; justify-content:center; align-items:flex-start}
.mirror{position:relative; width:min(32vw, 470px); margin-top:clamp(70px,9vw,140px); transform-origin:50% calc(-1 * clamp(110px, 14vw, 230px)); animation:swing 7s ease-in-out infinite}
.mirror-rope{position:absolute; left:50%; bottom:calc(100% - 6px); width:clamp(110px,14vw,230px); height:clamp(130px,17vw,270px); transform:translateX(-50%); background:
  linear-gradient(to top right, transparent calc(50% - 1.2px), #C9A97A calc(50% - 1.2px), #C9A97A calc(50% + 1.2px), transparent calc(50% + 1.2px)) left/50% 100% no-repeat,
  linear-gradient(to top left, transparent calc(50% - 1.2px), #C9A97A calc(50% - 1.2px), #C9A97A calc(50% + 1.2px), transparent calc(50% + 1.2px)) right/50% 100% no-repeat}
.mirror-knot{position:absolute; left:50%; top:calc(-1 * clamp(130px,17vw,270px) + 6px); width:12px; height:12px; margin-left:-6px; border-radius:50%; background:#2A0910; box-shadow:0 0 0 3px #C9A97A}
.mirror-glass{position:relative; aspect-ratio:1; border-radius:50%; overflow:hidden; padding:0; box-shadow:0 0 0 clamp(8px,1vw,14px) var(--brass), 0 0 0 clamp(10px,1.2vw,17px) #8A6127, 0 40px 80px -20px rgba(0,0,0,.6); background:#2A0910}
.mirror-video{width:100%; height:100%; object-fit:cover}
.mirror-shine{position:absolute; inset:0; border-radius:50%; background:linear-gradient(135deg, rgba(255,255,255,.22), transparent 38%, transparent 70%, rgba(255,255,255,.08)); pointer-events:none}
@keyframes swing{0%,100%{transform:rotate(1.6deg)}50%{transform:rotate(-1.6deg)}}

/* секции */
.sec{max-width:calc(var(--max) + 2 * var(--gut)); margin:0 auto; padding:clamp(64px,8vw,120px) var(--gut)}
.sec-head{max-width:780px; margin-bottom:clamp(36px,4vw,56px)}
.sec-head h2{font:400 clamp(38px,5vw,72px)/1.03 var(--serif); letter-spacing:-.015em; margin-bottom:18px}
.sec-head p{color:var(--mute); font-size:18px; max-width:52ch}
.sec-head-row{max-width:none; display:flex; justify-content:space-between; align-items:flex-end; gap:32px}
.sec-head-row > div:first-child{max-width:780px}

/* поводы */
.occ-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2.4vw,36px); align-items:start}
.occ{text-decoration:none; display:flex; flex-direction:column}
.occ-mid{margin-top:clamp(0px,6vw,90px)}
.arch{border-radius:999px 999px var(--r-md) var(--r-md); overflow:hidden; aspect-ratio:4/5.2; margin-bottom:22px; background:var(--blush)}
.arch img{width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.occ:hover .arch img{transform:scale(1.04)}
.occ h3{font:400 clamp(26px,2.4vw,34px)/1.1 var(--serif); margin-bottom:10px}
.occ p{color:var(--mute); margin-bottom:14px; max-width:36ch}
.occ-price{font-weight:600; color:var(--wine-2)}

/* каталог */
.classes{background:transparent}
.chips{display:flex; flex-wrap:wrap; gap:8px}
.chip{border:1.5px solid var(--line); background:transparent; border-radius:999px; padding:10px 18px; font-size:15px; transition:background .2s, border-color .2s, color .2s}
.chip:hover{border-color:var(--ink)}
.chip.is-on{background:var(--ink); border-color:var(--ink); color:var(--paper)}
.mk-list{border-top:1px solid var(--line)}
.mk{display:grid; grid-template-columns:72px minmax(0,1fr) 260px 150px 128px; align-items:center; gap:24px; padding:20px 0; border-bottom:1px solid var(--line); position:relative; cursor:pointer}
.mk[hidden]{display:none}
.mk-thumb{width:72px; height:72px; border-radius:50%; object-fit:cover}
.mk-main h3{font:400 clamp(22px,2vw,28px)/1.15 var(--serif); margin-bottom:6px; transition:color .2s}
.mk:hover .mk-main h3{color:var(--wine-2)}
.mk-main p{color:var(--mute); font-size:15.5px; max-width:52ch}
.mk-meta{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:0; font-size:14.5px}
.mk-meta dt{color:var(--mute); font-size:12.5px; margin-bottom:2px}
.mk-meta dd{margin:0}
.mk-price{font:400 24px/1.1 var(--serif); text-align:right; white-space:nowrap}
.mk-price small{display:block; font:400 13px/1.4 var(--sans); color:var(--mute)}
.mk-more-btn{justify-self:end; border:1.5px solid var(--line); background:transparent; border-radius:999px; padding:10px 16px; font-size:14.5px; transition:background .2s, color .2s, border-color .2s}
.mk:hover .mk-more-btn{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.mk-note{color:var(--mute); margin:28px 0 22px; max-width:70ch}
.mk-cta{display:flex; flex-wrap:wrap; gap:12px}

/* превью мастер-класса за курсором */
.peek{position:fixed; left:0; top:0; width:220px; aspect-ratio:4/5; border-radius:999px 999px 16px 16px; overflow:hidden; pointer-events:none; z-index:30; opacity:0; transform:translate3d(-50%,-50%,0) scale(.85); transition:opacity .25s, transform .25s; box-shadow:0 30px 60px -20px rgba(46,11,18,.5)}
.peek img{width:100%; height:100%; object-fit:cover}
.peek.is-on{opacity:1}

/* карточка мастер-класса */
.sheet{border:0; padding:0; border-radius:var(--r-lg); max-width:min(920px, calc(100vw - 32px)); width:100%; background:var(--paper); color:var(--ink); overflow:hidden}
.sheet::backdrop{background:rgba(46,11,18,.6); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px)}
.sheet[open]{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); animation:rise .35s cubic-bezier(.2,.7,.2,1)}
@keyframes rise{from{opacity:0; transform:translateY(16px)}to{opacity:1; transform:none}}
.sheet-img{width:100%; height:100%; min-height:420px; object-fit:cover; object-position:center 25%}
.sheet-body{padding:clamp(24px,3.4vw,44px); display:flex; flex-direction:column; max-height:88vh; overflow:auto}
.sheet-body h3{font:400 clamp(30px,3vw,40px)/1.08 var(--serif); margin:0 40px 18px 0}
.sheet-meta{display:flex; flex-wrap:wrap; gap:10px 28px; margin:0 0 20px; font-size:15px}
.sheet-meta dt{color:var(--mute); font-size:12.5px}
.sheet-meta dd{margin:0}
.sheet-text p{color:#4A3D39; margin-bottom:12px}
.sheet-foot{margin-top:auto; padding-top:20px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap}
.sheet-price{font:400 28px/1 var(--serif)}
.sheet-x{position:absolute; top:14px; right:14px; width:42px; height:42px; border-radius:50%; border:0; background:rgba(248,245,242,.92); display:grid; place-items:center; z-index:2}
.sheet-x svg{width:20px; height:20px; fill:none; stroke:var(--ink); stroke-width:1.8}

/* путь глины */
.path{padding-top:0}
.steps{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(16px,2.4vw,32px); position:relative}
.steps::before{content:""; position:absolute; left:28px; right:28px; top:28px; height:1.5px; background:repeating-linear-gradient(90deg, var(--wine-2) 0 6px, transparent 6px 12px); opacity:.5}
.steps li{position:relative}
.step-n{display:grid; place-items:center; width:56px; height:56px; border-radius:50%; background:var(--plaster); border:1.5px solid var(--wine-2); color:var(--wine-2); font:400 22px/1 var(--serif); margin-bottom:22px; position:relative}
.steps li:last-child .step-n{background:var(--wine-2); color:var(--plaster)}
.steps h3{font:600 18px/1.3 var(--sans); margin-bottom:8px}
.steps p{color:var(--mute); font-size:16px; max-width:30ch}

/* свидание */
.date{position:relative; color:var(--plaster); background:var(--wine-ink); overflow:hidden}
.date-bg{position:absolute; inset:0; background-size:cover; background-position:center 30%; opacity:.42; filter:saturate(.9)}
.date::before{content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(46,11,18,.95) 0%, rgba(46,11,18,.7) 45%, rgba(46,11,18,.35) 100%); z-index:1}
.date-inner{position:relative; z-index:2; max-width:calc(var(--max) + 2 * var(--gut)); margin:0 auto; padding:clamp(80px,10vw,150px) var(--gut); display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,5vw,80px); align-items:end}
.date-copy h2{font:400 clamp(44px,6vw,96px)/.98 var(--serif); letter-spacing:-.02em; margin-bottom:24px; max-width:9ch}
.date-copy p{font-size:18px; color:rgba(239,233,228,.85); max-width:44ch}
.date-offers{display:grid; gap:16px}
.offer{display:grid; grid-template-columns:1fr auto; align-items:center; gap:6px 20px; padding:24px 26px; border-radius:var(--r-md); background:rgba(239,233,228,.08); border:1px solid rgba(239,233,228,.18); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px)}
.offer h3{font:400 28px/1.1 var(--serif)}
.offer p{grid-column:1; color:rgba(239,233,228,.75); font-size:15px}
.offer-price{grid-column:2; grid-row:1; font:400 26px/1 var(--serif); text-align:right; color:var(--mustard-2)}
.offer-price small{display:block; font:400 13px/1.5 var(--sans); color:rgba(239,233,228,.6)}
.offer .btn{grid-column:2; grid-row:2; min-height:46px}
.date-strip{grid-column:1/-1; display:grid; grid-template-columns:1fr 1.4fr 1fr; gap:16px; margin-top:24px; height:clamp(260px,32vw,460px)}
.date-strip img{width:100%; height:100%; object-fit:cover; border-radius:var(--r-md)}

/* праздники */
.party-top{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,5vw,72px); align-items:center; margin-bottom:clamp(48px,6vw,80px)}
.party-top .sec-head{margin-bottom:0}
.party-actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:28px}
.party-photos{position:relative; aspect-ratio:1/0.9}
.party-photos img{position:absolute; object-fit:cover; border-radius:var(--r-md); box-shadow:0 30px 60px -30px rgba(46,11,18,.45)}
.pp-1{left:0; top:8%; width:68%; aspect-ratio:3/2}
.pp-2{right:0; top:0; width:34%; aspect-ratio:3/4.6; border-radius:999px 999px var(--r-md) var(--r-md) !important}
.pp-3{left:22%; bottom:0; width:46%; aspect-ratio:3/2}
.formats{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
.format{background:var(--paper); border-radius:var(--r-lg); padding:clamp(24px,2.6vw,36px)}
.format h3{font:400 28px/1.1 var(--serif); margin-bottom:10px}
.format > p{color:var(--mute); margin-bottom:14px; font-size:16px}
.format .format-time{color:var(--wine-2); font-weight:500}
.tiers{width:100%; border-collapse:collapse; margin-top:20px; font-size:16px}
.tiers caption{text-align:left; color:var(--mute); font-size:13px; padding-bottom:6px}
.tiers th,.tiers td{padding:12px 0; border-top:1px solid var(--line); text-align:left; font-weight:400}
.tiers td{text-align:right; font:400 20px/1 var(--serif)}
.format-plain{background:var(--wine); color:var(--plaster)}
.format-plain h3{font-size:24px}
.ticks{list-style:none; margin:0 0 26px; padding:0; display:grid; gap:10px; font-size:15.5px}
.ticks li{padding-left:22px; position:relative; color:rgba(239,233,228,.88)}
.ticks li::before{content:""; position:absolute; left:0; top:.6em; width:8px; height:8px; border-radius:50%; background:var(--mustard)}
.extra-h{margin-top:4px}
.extras{list-style:none; margin:0; padding:0; font-size:15px}
.extras li{display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-top:1px solid rgba(239,233,228,.16); color:rgba(239,233,228,.85)}
.extras b{font-weight:500; color:var(--mustard-2); white-space:nowrap}

/* курсы */
.courses{position:relative; background:var(--wine-ink); color:var(--plaster); overflow:hidden}
.courses-bg{position:absolute; inset:-40px; background-size:cover; background-position:center; filter:blur(18px) saturate(.8); opacity:.35}
.courses-inner{position:relative; max-width:calc(var(--max) + 2 * var(--gut)); margin:0 auto; padding:clamp(80px,10vw,140px) var(--gut)}
.courses .sec-head p{color:rgba(239,233,228,.75)}
.course-table{border-radius:var(--r-lg); background:rgba(239,233,228,.07); border:1px solid rgba(239,233,228,.16); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); margin-bottom:32px; overflow:hidden}
.course{display:grid; grid-template-columns:96px minmax(0,1.4fr) minmax(0,1fr) 200px; gap:28px; align-items:center; padding:22px 28px; border-top:1px solid rgba(239,233,228,.14)}
.course:first-child{border-top:0}
.course img{width:96px; height:96px; object-fit:cover; border-radius:14px}
.course h3{font:400 28px/1.1 var(--serif); margin-bottom:6px}
.course-main p{color:rgba(239,233,228,.75); font-size:15.5px}
.course-meta{font-size:15px; color:rgba(239,233,228,.85)}
.course-price{font:400 26px/1.15 var(--serif); text-align:right; color:var(--mustard-2)}
.course-price span{display:block; font-size:20px}

/* мастерская */
.strip-nav{display:flex; gap:10px}
.round-btn{width:52px; height:52px; border-radius:50%; border:1.5px solid var(--ink); background:transparent; display:grid; place-items:center; transition:background .2s}
.round-btn:hover{background:var(--ink)}
.round-btn svg{width:22px; height:22px; fill:none; stroke:var(--ink); stroke-width:1.6}
.round-btn:hover svg{stroke:var(--paper)}
.strip{display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:var(--gut); scrollbar-width:none; margin:0 calc(-1 * var(--gut)); padding:0 var(--gut); cursor:grab}
.strip::-webkit-scrollbar{display:none}
.strip.is-drag{cursor:grabbing; scroll-snap-type:none}
.strip figure{margin:0; flex:0 0 auto; scroll-snap-align:start; height:clamp(380px,42vw,560px)}
.strip figure:nth-child(3n+2) img{border-radius:999px 999px var(--r-md) var(--r-md)}
.strip img{height:100%; width:auto; aspect-ratio:3/4; object-fit:cover; border-radius:var(--r-md); pointer-events:none; user-select:none}

/* работы */
.works{padding-top:0}
.mosaic{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:clamp(150px,17vw,250px); gap:14px}
.mosaic img{width:100%; height:100%; object-fit:cover; border-radius:var(--r-md)}
.m-tall{grid-row:span 2}
.m-wide{grid-column:span 2}

/* сертификат */
.gift{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,5vw,80px); align-items:center; background:var(--blush); border-radius:var(--r-lg); max-width:var(--max); padding:clamp(40px,6vw,88px); margin-bottom:clamp(72px,9vw,140px)}
.gift-copy h2{font:400 clamp(36px,4.4vw,64px)/1.04 var(--serif); margin-bottom:18px}
.gift-copy p{color:#5B4A45; margin-bottom:28px; max-width:44ch}
.cert{aspect-ratio:1.6; border-radius:22px; background:var(--wine); color:var(--plaster); padding:clamp(22px,3vw,40px); display:flex; flex-direction:column; justify-content:space-between; transform:rotate(-3deg); box-shadow:0 40px 70px -30px rgba(46,11,18,.6); position:relative; overflow:hidden}
.cert::after{content:""; position:absolute; right:-18%; top:-30%; width:62%; aspect-ratio:1; border-radius:50%; border:clamp(8px,1vw,12px) solid var(--brass); opacity:.55}
.cert-logo{width:clamp(110px,12vw,160px)}
.cert-k{font-size:14px; color:var(--mustard-2)}
.cert-t{font:400 clamp(22px,2.4vw,34px)/1.1 var(--serif); max-width:12ch}
.cert-s{font-size:13px; color:rgba(239,233,228,.7)}

/* отзывы */
.reviews{padding-top:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,760px); gap:clamp(32px,5vw,80px); align-items:start}
.rev-side h2{font:400 clamp(34px,3.6vw,56px)/1.05 var(--serif); letter-spacing:-.015em; margin-bottom:28px}
.rev-score{font:400 clamp(96px,11vw,170px)/.85 var(--serif); color:var(--wine-2); letter-spacing:-.03em}
.rev-count{color:var(--mute); margin:14px 0 28px; font-size:18px}
.reviews-frame{border-radius:var(--r-lg); overflow:hidden; background:#fff; height:680px; border:1px solid var(--line)}
.reviews-frame iframe{width:100%; height:100%; border:0}

/* вопросы */
.faq{padding-top:0; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(32px,5vw,80px)}
.faq .sec-head h2{position:sticky; top:110px}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list details:first-child{border-top:1px solid var(--line)}
.faq-list summary{list-style:none; cursor:pointer; padding:22px 48px 22px 0; font:500 19px/1.4 var(--sans); position:relative}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:""; position:absolute; right:6px; top:50%; width:14px; height:14px; margin-top:-7px; background:linear-gradient(var(--wine-2),var(--wine-2)) center/100% 1.6px no-repeat, linear-gradient(var(--wine-2),var(--wine-2)) center/1.6px 100% no-repeat; transition:transform .25s}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list details p{padding:0 0 24px; color:var(--mute); max-width:62ch}

/* контакты */
.contacts{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(24px,4vw,56px); padding-top:0}
.ct-info h2{font:400 clamp(38px,5vw,72px)/1.03 var(--serif); margin-bottom:24px}
address{font-style:normal; display:grid; gap:8px; margin-bottom:36px; color:var(--mute)}
.ct-addr{font:400 24px/1.3 var(--serif); color:var(--ink)}
.ct-links,.ct-social{display:flex; flex-wrap:wrap; gap:8px 22px; margin-top:6px}
.ct-links a{font-weight:600; color:var(--ink); text-decoration:none}
.ct-social a{color:var(--wine-2)}
.lead{background:var(--paper); border-radius:var(--r-lg); padding:clamp(24px,3vw,36px); display:grid; gap:14px}
.lead h3{font:400 30px/1.1 var(--serif)}
.lead > p{color:var(--mute); font-size:15.5px; margin-bottom:6px}
.lead label{display:grid; gap:6px; font-size:13.5px; color:var(--mute)}
.lead input,.lead select{width:100%; min-height:52px; border:1.5px solid var(--line); border-radius:14px; background:var(--plaster); padding:0 16px; font:400 16px var(--sans); color:var(--ink)}
.lead input:focus,.lead select:focus{outline:none; border-color:var(--wine-2)}
.select{position:relative; display:block}
.select select{appearance:none; -webkit-appearance:none; padding-right:38px}
.select::after{content:""; position:absolute; right:16px; top:50%; width:8px; height:8px; margin-top:-6px; border-right:1.6px solid var(--ink); border-bottom:1.6px solid var(--ink); transform:rotate(45deg); pointer-events:none}
.lead .btn{margin-top:6px}
.lead small{color:var(--mute); font-size:12.5px}
.ct-map{border-radius:var(--r-lg); overflow:hidden; min-height:520px; background:var(--paper)}
.ct-map iframe{width:100%; height:100%; min-height:520px; border:0; display:block}

/* подвал */
.foot{background:var(--wine-ink); color:var(--plaster); padding:clamp(56px,7vw,96px) var(--gut) 120px}
.foot-logo{width:min(80vw, 760px); color:var(--plaster); opacity:.95; margin-bottom:56px}
.foot-cols{display:grid; grid-template-columns:repeat(4,1fr); gap:32px; padding-bottom:40px; border-bottom:1px solid rgba(239,233,228,.16)}
.foot-cols h4{font:500 14px/1.4 var(--sans); color:var(--mustard-2); margin-bottom:12px}
.foot-cols a,.foot-cols span{display:block; font-size:15px; color:rgba(239,233,228,.8); text-decoration:none; margin-bottom:8px}
.foot-cols a:hover{color:var(--plaster)}
.foot-legal{display:flex; flex-wrap:wrap; gap:8px 24px; padding-top:24px; font-size:13px; color:rgba(239,233,228,.55)}
.foot-legal a{color:rgba(239,233,228,.7)}
.foot-note{flex-basis:100%}

/* нижняя панель записи на телефоне */
.dock{display:none}

@media (max-width:1180px){
  .nav-links{gap:18px}
  .nav-phone{display:none}
  .mk{grid-template-columns:64px minmax(0,1fr) 200px 130px; }
  .mk-thumb{width:64px; height:64px}
  .mk-more-btn{display:none}
  .course{grid-template-columns:80px minmax(0,1fr) 180px; }
  .course img{width:80px; height:80px}
  .course-meta{grid-column:2; grid-row:2; margin-top:-14px}
  .course-price{grid-column:3; grid-row:1/3}
}
@media (max-width:980px){
  .nav-burger{display:block}
  .nav-cta{display:none}
  .nav-links{position:fixed; inset:0 0 auto 0; top:0; flex-direction:column; gap:0; padding:96px var(--gut) 32px; background:var(--wine); color:var(--plaster); transform:translateY(-105%); transition:transform .35s cubic-bezier(.2,.7,.2,1); z-index:-1; font:400 30px/1.2 var(--serif); box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
  .nav-links a{padding:12px 0; border-bottom:1px solid rgba(239,233,228,.14); opacity:1}
  .nav-menu-phone{display:block; font:500 18px/1 var(--sans) !important; color:var(--mustard-2); border:0 !important; padding-top:22px !important}
  .nav.is-open .nav-links{transform:none}
  .nav.is-open{background:var(--wine); color:var(--plaster)}
  .hero{grid-template-columns:1fr; min-height:0; padding-top:28px}
  .mirror-wrap{order:-1; height:min(92vw, 470px); align-items:flex-start}
  .mirror{width:min(62vw, 360px); margin-top:clamp(70px,22vw,120px); transform-origin:50% -110px}
  .mirror-rope{width:120px; height:120px}
  .mirror-knot{top:-114px}
  .hero-title{font-size:clamp(54px,15vw,110px)}
  .occ-grid{grid-template-columns:1fr; gap:48px}
  .occ-mid{margin-top:0}
  .arch{aspect-ratio:4/4.4}
  .sec-head-row{flex-direction:column; align-items:flex-start}
  .mk{grid-template-columns:56px minmax(0,1fr) auto; gap:14px 16px; padding:18px 0}
  .mk-thumb{width:56px; height:56px}
  .mk-meta{grid-column:2/4; grid-row:2; display:flex; gap:20px}
  .mk-meta div{display:flex; gap:6px; align-items:baseline}
  .mk-price{grid-column:3; grid-row:1; font-size:20px}
  .steps{grid-template-columns:1fr 1fr; row-gap:40px}
  .steps::before{display:none}
  .date-inner{grid-template-columns:1fr}
  .date-copy h2{font-size:clamp(40px,11vw,64px)}
  .reviews{grid-template-columns:1fr}
  .date::before{background:linear-gradient(180deg, rgba(46,11,18,.9), rgba(46,11,18,.75))}
  .party-top{grid-template-columns:1fr}
  .formats{grid-template-columns:1fr}
  .course{grid-template-columns:64px minmax(0,1fr); gap:12px 16px; padding:20px}
  .course img{width:64px; height:64px; grid-row:1/3}
  .course-meta{grid-column:2; grid-row:2; margin-top:0}
  .course-price{grid-column:2; grid-row:3; text-align:left}
  .course-price span{display:block}
  .mosaic{grid-template-columns:repeat(2,1fr); grid-auto-rows:44vw}
  .gift{grid-template-columns:1fr; margin-left:var(--gut); margin-right:var(--gut)}
  .cert{max-width:440px}
  .faq{grid-template-columns:1fr}
  .faq .sec-head h2{position:static}
  .contacts{grid-template-columns:1fr}
  .foot-cols{grid-template-columns:1fr 1fr}
  .sheet[open]{grid-template-columns:1fr; max-height:92vh; overflow:auto}
  .sheet-img{min-height:0; height:240px}
  .sheet-body{max-height:none; overflow:visible}
  .dock{display:flex; gap:10px; position:fixed; left:12px; right:12px; bottom:calc(12px + env(safe-area-inset-bottom)); z-index:35; padding:8px; border-radius:999px; background:rgba(46,11,18,.92); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); box-shadow:0 20px 40px -16px rgba(0,0,0,.5); transform:translateY(140%); transition:transform .35s}
  .dock.is-on{transform:none}
  .dock .btn{flex:1; min-height:48px}
  .dock-ic{width:48px; height:48px; border-radius:50%; display:grid; place-items:center; background:rgba(239,233,228,.1)}
  .dock-ic svg{width:22px; height:22px; fill:none; stroke:var(--plaster); stroke-width:1.6; stroke-linejoin:round}
}
@media (max-width:560px){
  body{font-size:16px}
  .promo{font-size:13px}
  .nav-logo .logo{width:96px}
  .hero-facts{gap:20px}
  .hero-facts dt{font-size:22px}
  .hero-actions .btn{flex:1 1 100%}
  .mk-main p{font-size:14.5px}
  .date-strip{grid-template-columns:1fr 1fr}
  .date-strip img:nth-child(2){display:none}
  .offer{grid-template-columns:1fr; padding:22px}
  .offer-price,.offer .btn{grid-column:1; grid-row:auto; text-align:left}
  .party-photos{aspect-ratio:1/1.05}
  .strip figure{height:420px}
  .reviews-frame{height:560px}
  .foot-cols{grid-template-columns:1fr}
  .ct-map,.ct-map iframe{min-height:380px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important; transition:none !important; scroll-behavior:auto !important}
}

/* одно движение при загрузке: текст поднимается, зеркало опускается на верёвке */
@keyframes up{from{opacity:0; transform:translateY(22px)}to{opacity:1; transform:none}}
@keyframes drop{from{opacity:0; transform:translateY(-60px)}to{opacity:1; transform:none}}
.hero-text > *{animation:up .9s cubic-bezier(.2,.7,.2,1) both}
.hero-text > :nth-child(2){animation-delay:.08s}
.hero-text > :nth-child(3){animation-delay:.2s}
.hero-text > :nth-child(4){animation-delay:.3s}
.hero-text > :nth-child(5){animation-delay:.4s}
.mirror-wrap{animation:drop 1.4s cubic-bezier(.2,.8,.2,1) .15s both}
.sheet-price small{font:400 14px/1 var(--sans); color:var(--mute); margin-left:4px}
