/* Rent & Stay — стили каталога квартир (flats.html, flat.html). Светлая тема в общем стиле сайта;
   шапка, подвал и кнопки — в assets/css/site.css (подключается после этого файла). */
  :root{
    /* имена переменных остались со старой тёмной темы, значения — светлые */
    --fc-bg:#F7F1E6;            /* фон страницы */
    --fc-card:#FFFCF6;              /* карточки */
    --fc-line:#E2D4BB;         /* линии и рамки */
    --ivory:#F0E6D3;
    --ivory-deep:#E7D9BE;
    --fc-accent:#D9722C;
    --fc-accent-deep:#B85E20;
    --text-on-black:#1D1712;    /* основной текст */
    --text-muted-black:#6E6252;
    --text-on-ivory:#1D1712;
    --text-muted-ivory:#6E6252;
    --serif:'Playfair Display', Georgia, serif;
    --sans:'Manrope', system-ui, sans-serif;
    --radius-lg:8px;
    --radius-md:6px;
    --radius-pill:999px;
    --ease:cubic-bezier(.2,.7,.2,1);
  }
  body{background:var(--fc-bg); color:var(--text-on-black);}
  main#page{padding-top:var(--nav-h);}
  .hero-flats{padding-top:calc(var(--nav-h) + 84px) !important;}

  /* ---------- появление ---------- */
  .reveal{opacity:0; transform:translateY(28px); transition:opacity .9s var(--ease), transform .9s var(--ease);}
  .reveal.in-view{opacity:1; transform:none;}
  .reveal-delay-1.in-view{transition-delay:.08s;} .reveal-delay-2.in-view{transition-delay:.16s;} .reveal-delay-3.in-view{transition-delay:.24s;}

  /* ---------- общие элементы каталога ---------- */
  section{padding:100px 0; position:relative;}
  @media(max-width:640px){ section{padding:72px 0;} }
  .section-ivory{background:var(--ivory); color:var(--text-on-ivory);}
  .muted{color:var(--text-muted-black);}
  .hero{position:relative; overflow:hidden;}
  .glow{position:absolute; border-radius:50%; pointer-events:none;}
  .glow-1{width:560px; height:560px; top:-240px; right:-140px; background:radial-gradient(closest-side, rgba(255,148,67,.22), rgba(255,148,67,0));}
  .hero-inner{position:relative; max-width:900px;}
  .badge{display:inline-flex; align-items:center; gap:14px; font-size:12px; font-weight:600; letter-spacing:.26em; text-transform:uppercase; color:var(--text-muted-black); margin-bottom:28px;}
  .badge::before{content:""; width:40px; height:1px; background:var(--fc-accent);}
  .badge-dot{display:none;}
  h1{font-family:var(--serif); font-weight:500; font-size:clamp(38px, 5vw, 78px); line-height:1.04; letter-spacing:-.02em; color:var(--text-on-black);}
  h2{font-family:var(--serif); font-weight:500; font-size:clamp(30px, 3.8vw, 54px); line-height:1.1; letter-spacing:-.01em;}
  .hero-sub{margin-top:26px; font-size:18px; line-height:1.6; color:var(--text-muted-black); max-width:58ch;}
  .hero-actions{margin-top:38px; display:flex; align-items:center; gap:24px; flex-wrap:wrap;}
  .kicker{display:flex; align-items:center; gap:14px; font-size:12px; font-weight:600; letter-spacing:.26em; text-transform:uppercase; color:var(--text-muted-black); margin-bottom:22px;}
  .kicker::before{content:""; width:40px; height:1px; background:var(--fc-accent);}
  .btn-primary{display:inline-flex; align-items:center; justify-content:center; gap:10px; background:var(--text-on-black); color:var(--fc-bg); font-weight:600; font-size:14px; letter-spacing:.02em; padding:15px 28px; border-radius:999px; transition:background .3s ease;}
  .btn-primary:hover{background:var(--fc-accent);}
  .btn-ghost{display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:15px; color:var(--text-on-black); border-bottom:1px solid var(--fc-line); padding-bottom:4px; transition:border-color .25s ease, color .25s ease;}
  .btn-ghost:hover{color:var(--fc-accent); border-color:var(--fc-accent);}
  .cta-band{padding:120px 0;}

  /* ---------- карточки квартир ---------- */
  .apt-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:32px 24px; margin-top:52px;}
  @media(max-width:900px){ .apt-grid{grid-template-columns:repeat(2, 1fr);} }
  @media(max-width:600px){ .apt-grid{grid-template-columns:1fr;} }
  .apt-card{background:var(--fc-card); border:1px solid var(--fc-line); border-radius:var(--radius-lg); overflow:hidden; transition:transform .5s var(--ease), border-color .4s ease, box-shadow .5s var(--ease);}
  .apt-card:hover{transform:translateY(-6px); border-color:rgba(217,114,44,.35); box-shadow:0 30px 60px -34px rgba(80,50,20,.4);}
  .apt-photos{display:grid; grid-template-columns:2fr 1fr; grid-template-rows:1fr 1fr; gap:3px; aspect-ratio:4/3;}
  .apt-photos img{width:100%; height:100%; object-fit:cover; display:block; background:var(--fc-line);}
  .apt-photos img:nth-child(1){grid-column:1; grid-row:1/3;}
  .apt-photos img:nth-child(2){grid-column:2; grid-row:1;}
  .apt-photos img:nth-child(3){grid-column:2; grid-row:2;}
  .apt-info{padding:20px 22px 24px;}
  .apt-tags{display:flex; flex-wrap:wrap; gap:8px;}
  .apt-tag{font-size:13px; font-weight:600; color:var(--text-on-black); background:var(--fc-bg); border:1px solid var(--fc-line); padding:6px 12px; border-radius:999px;}
  .apt-price, .m-price{font-weight:500 !important;}
  .desc h3, .book-title{font-weight:600 !important;}

  /* =====================================================================
     Каталог квартир (flats.html, flat.html)
     ===================================================================== */

  /* ---------- HERO ---------- */
  .hero-flats{padding:84px 0 56px;}
  .hero-flats h1{max-width:17ch; font-size:clamp(36px, 5.4vw, 60px);}

  /* ---------- FILTERS ---------- */
  .filters{position:sticky; top:var(--nav-h); z-index:50; background:rgba(247,241,230,.92); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-top:1px solid var(--fc-line); border-bottom:1px solid var(--fc-line);}
  .filters-inner{display:flex; flex-wrap:wrap; align-items:center; gap:12px 14px; padding-top:14px; padding-bottom:14px;}
  .seg{display:inline-flex; gap:2px; padding:3px; border:1px solid var(--fc-line); border-radius:999px;}
  .seg button{font:inherit; font-size:13.5px; font-weight:700; color:var(--text-muted-black); background:transparent; border:0; border-radius:999px; padding:9px 15px; cursor:pointer; white-space:nowrap;}
  .seg button[aria-pressed="true"]{background:var(--text-on-black); color:var(--fc-bg);}
  .seg button:hover:not([aria-pressed="true"]){color:var(--text-on-black);}
  .f-select, .f-input{font:inherit; font-size:13.5px; font-weight:600; color:var(--text-on-black); background:var(--fc-card); border:1px solid var(--fc-line); border-radius:999px; padding:10px 16px; outline:none;}
  .f-select:focus, .f-input:focus{border-color:var(--fc-accent);}
  .f-select option{background:var(--fc-card);}
  .f-input{width:130px;}
  .f-count{margin-left:auto; font-size:13.5px; color:var(--text-muted-black); white-space:nowrap;}
  .f-count b{color:var(--text-on-black);}
  @media(max-width:760px){ .filters{position:static;} .f-count{margin-left:0; width:100%;} .filters-inner{gap:8px;} .f-input{width:110px;} }

  /* ---------- LISTING GRID ---------- */
  #listing{padding-top:44px;}
  .apt-grid.flats{margin-top:0;}
  .apt-card{display:flex; flex-direction:column; position:relative;}
  .ph{width:100%; height:100%; background:linear-gradient(135deg,#EADBC2,#DCC9A8);}
  .apt-photos .ph:nth-child(1){grid-column:1; grid-row:1/3;}
  .apt-photos .ph:nth-child(2){grid-column:2; grid-row:1;}
  .apt-photos .ph:nth-child(3){grid-column:2; grid-row:2;}
  .apt-photos.one{grid-template-columns:1fr;}
  .apt-photos.one > *{grid-column:1 !important; grid-row:1/3 !important;}

  /* фото в карточке каталога: рамка всегда 4:3, вертикальные фото не растягивают карточку */
  .apt-media{position:relative; overflow:hidden;}
  .apt-grid.flats .apt-photos{grid-template-rows:repeat(2, minmax(0, 1fr)); overflow:hidden;}
  .apt-grid.flats .apt-photos > *{min-width:0; min-height:0; width:100%; height:100%; object-fit:cover;}
  .apt-grid.flats .apt-photos > :nth-child(n+4), .apt-grid.flats .apt-photos.one > :nth-child(n+2){display:none;}
  .apt-grid.flats .apt-photos img{transition:transform .8s var(--ease);}
  .apt-card:hover .apt-photos img:first-child{transform:scale(1.04);}
  .c-count{position:absolute; left:12px; bottom:12px; z-index:2; display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; color:var(--text-on-black); background:rgba(255,252,246,.9); padding:6px 10px; border-radius:999px; pointer-events:none;}
  .c-count svg{width:14px; height:14px;}
  .c-dots{display:none; position:absolute; left:0; right:0; bottom:12px; z-index:2; justify-content:center; gap:5px; pointer-events:none;}
  .c-dots i{width:6px; height:6px; border-radius:50%; background:rgba(234,226,211,.5); transition:width .3s var(--ease), background .3s ease;}
  .c-dots i.on{width:16px; border-radius:999px; background:var(--fc-accent);}
  /* на телефоне — одно большое фото, листается свайпом */
  @media(max-width:600px){
    .apt-grid.flats .apt-photos, .apt-grid.flats .apt-photos.one{display:flex; gap:0; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scrollbar-width:none;}
    .apt-grid.flats .apt-photos::-webkit-scrollbar{display:none;}
    .apt-grid.flats .apt-photos > *, .apt-grid.flats .apt-photos > :nth-child(n+2), .apt-grid.flats .apt-photos.one > :nth-child(n+2){display:block; flex:0 0 100%; scroll-snap-align:center;}
    .apt-card:hover .apt-photos img:first-child{transform:none;}
    .c-count{display:none;}
    .c-dots{display:flex;}
  }
  .ribbon{position:absolute; top:14px; right:14px; z-index:2; font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; padding:7px 12px; border-radius:999px; background:rgba(255,252,246,.94); color:var(--fc-accent); border:1px solid rgba(217,114,44,.35);}
  .apt-info{display:flex; flex-direction:column; gap:12px; flex:1;}
  .apt-price{font-family:var(--serif); font-weight:700; font-size:28px; color:var(--text-on-black); line-height:1;}
  .apt-price small{font-family:var(--sans); font-size:13px; font-weight:600; color:var(--text-muted-black); margin-left:4px;}
  .apt-title{font-size:15.5px; font-weight:600; line-height:1.4; color:var(--text-on-black);}
  .apt-meta{font-size:13.5px; color:var(--text-muted-black);}
  .apt-meta .dot{color:var(--fc-accent); margin:0 6px;}
  .apt-cta{margin-top:auto; padding-top:6px; display:flex; justify-content:space-between; align-items:center; font-size:14px; font-weight:700; color:var(--fc-accent);}
  .apt-cta span:last-child{transition:transform .3s var(--ease);}
  .apt-card:hover .apt-cta span:last-child{transform:translateX(4px);}
  .empty{display:none; text-align:center; padding:60px 20px; color:var(--text-muted-black); font-size:15px; line-height:1.6;}
  .empty.show{display:block;}

  /* ---------- DETAIL PAGE (flat.html) ---------- */
  .crumbs{display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:13.5px; color:var(--text-muted-black); padding:28px 0 18px;}
  .crumbs a{transition:color .2s ease;}
  .crumbs a:hover{color:var(--fc-accent);}
  .act{display:inline-flex; align-items:center; gap:8px; font:inherit; font-size:13.5px; font-weight:700; color:var(--text-on-black); background:transparent; border:1px solid var(--fc-line); border-radius:999px; padding:9px 14px; cursor:pointer; white-space:nowrap; transition:border-color .2s ease, color .2s ease, transform .25s var(--ease);}
  .act:hover{border-color:var(--fc-accent); color:var(--fc-accent); transform:translateY(-1px);}
  .act svg{width:16px; height:16px;}

  /* галерея */
  .gallery-wrap{position:relative;}
  .gallery{display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:1fr 1fr; gap:6px; height:min(520px, 62vw); border-radius:var(--radius-lg); overflow:hidden;}
  .g-cell{position:relative; margin:0; overflow:hidden; cursor:zoom-in; background:var(--fc-line);}
  .g-cell img, .g-cell .ph{width:100%; height:100%; object-fit:cover; display:block; transition:transform .9s var(--ease), filter .45s ease;}
  .g-cell:first-child{grid-column:1; grid-row:1/3;}
  .g-cell:nth-child(n+6){display:none;}
  .gallery.n1{grid-template-columns:1fr; grid-template-rows:1fr;}
  .gallery.n2, .gallery.n3{grid-template-columns:2fr 1fr;}
  .gallery.n2 .g-cell:nth-child(2){grid-row:1/3;}
  .gallery.n4{grid-template-columns:2fr 1fr; grid-template-rows:repeat(3, 1fr);}
  .gallery.n4 .g-cell:first-child{grid-row:1/4;}
  @media(hover:hover){
    .gallery:hover .g-cell img{filter:brightness(.82) saturate(.92);}
    .gallery .g-cell:hover img{filter:none; transform:scale(1.06);}
  }
  .gallery-all{position:absolute; right:16px; bottom:16px; display:inline-flex; align-items:center; gap:8px; font:inherit; font-size:13.5px; font-weight:700; background:rgba(255,252,246,.92); color:var(--text-on-black); border:1px solid var(--fc-line); padding:10px 16px; border-radius:999px; cursor:pointer; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); transition:border-color .2s ease, transform .25s var(--ease);}
  .gallery-all:hover{border-color:var(--fc-accent); transform:translateY(-2px);}
  .gallery-all svg{width:16px; height:16px;}
  .g-count{display:none; position:absolute; left:14px; bottom:14px; font-size:12.5px; font-weight:700; background:rgba(255,252,246,.9); color:var(--text-on-black); padding:6px 11px; border-radius:999px;}
  .g-dots{display:none; position:absolute; left:0; right:0; bottom:16px; justify-content:center; gap:6px; pointer-events:none;}
  .g-dots i{width:6px; height:6px; border-radius:50%; background:rgba(234,226,211,.45); transition:width .3s var(--ease), background .3s ease;}
  .g-dots i.on{width:18px; border-radius:999px; background:var(--fc-accent);}
  @media(max-width:700px){
    .gallery, .gallery.n1, .gallery.n2, .gallery.n3, .gallery.n4{display:flex; height:300px; gap:0; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scrollbar-width:none; border-radius:var(--radius-md);}
    .gallery::-webkit-scrollbar{display:none;}
    .g-cell, .g-cell:nth-child(n+6){display:block; flex:0 0 100%; scroll-snap-align:center;}
    .gallery-all{display:none;}
    .g-count{display:block;}
    .g-dots{display:flex;}
  }

  /* заголовок и характеристики */
  .detail{display:grid; grid-template-columns:1fr 360px; gap:48px; align-items:start; padding:40px 0 90px;}
  @media(max-width:900px){ .detail{grid-template-columns:1fr; gap:32px;} }
  .detail h1{font-size:clamp(30px, 4.2vw, 44px); max-width:22ch;}
  .detail-sub{display:flex; align-items:center; gap:8px; margin-top:14px; font-size:15.5px; color:var(--text-muted-black);}
  .detail-sub svg{width:18px; height:18px; color:var(--fc-accent); flex:none;}
  .specs{display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; background:var(--fc-line); border:1px solid var(--fc-line); border-radius:var(--radius-md); overflow:hidden; margin-top:32px;}
  .specs div{display:grid; grid-template-columns:auto 1fr; column-gap:12px; align-items:center; background:var(--fc-card); padding:18px 20px; transition:background .3s ease;}
  .specs div:hover{background:#F6EEE0;}
  .specs svg{grid-row:1/3; width:24px; height:24px; color:var(--fc-accent); transition:transform .4s var(--ease);}
  .specs div:hover svg{transform:scale(1.15) rotate(-6deg);}
  .specs dt{font-size:12.5px; color:var(--text-muted-black); margin-bottom:4px;}
  .specs dd{font-size:17px; font-weight:700; color:var(--text-on-black);}
  @media(max-width:560px){ .specs{grid-template-columns:repeat(2, 1fr);} .specs div{padding:16px;} }
  .detail h2{font-size:26px; margin:44px 0 14px; max-width:none;}
  /* блоки внутри страницы квартиры — без общих отступов секций сайта (section{padding:100px 0}) */
  .detail section{padding:0;}
  /* описание: абзацы, подзаголовки и списки, как в объявлениях Otodom */
  .detail .desc{font-size:16px; line-height:1.75; color:var(--text-on-black); max-width:68ch; overflow:hidden; overflow-wrap:anywhere; transition:max-height .6s var(--ease);}
  .detail .desc.clamped{max-height:16em; -webkit-mask-image:linear-gradient(#000 60%, transparent); mask-image:linear-gradient(#000 60%, transparent);}
  .desc p{margin:0 0 14px;}
  .desc p.lead{font-size:18px; line-height:1.6; color:var(--text-on-black);}
  .desc h3{font-family:var(--serif); font-size:19px; font-weight:700; line-height:1.3; color:var(--text-on-black); margin:24px 0 10px;}
  .desc h3:first-child{margin-top:0;}
  .desc ul{list-style:none; margin:0 0 16px; padding:0; display:grid; gap:8px;}
  .desc li{position:relative; padding-left:24px; color:var(--text-on-black);}
  .desc li::before{content:''; position:absolute; left:5px; top:.68em; width:7px; height:7px; border-radius:50%; background:var(--fc-accent); box-shadow:0 0 0 4px rgba(255,148,67,.12);}
  .desc > :last-child{margin-bottom:0;}
  .more{margin-top:12px; font:inherit; font-size:14.5px; font-weight:700; color:var(--fc-accent); background:none; border:0; padding:4px 0; cursor:pointer; display:inline-flex; align-items:center; gap:6px;}
  .more svg{width:14px; height:14px; transition:transform .35s var(--ease);}
  .more.open svg{transform:rotate(180deg);}
  .amen{display:flex; flex-wrap:wrap; gap:8px;}
  .amen .apt-tag{display:inline-flex; align-items:center; gap:7px; transition:transform .25s var(--ease), border-color .25s ease;}
  .amen .apt-tag::before{content:'✓'; color:var(--fc-accent); font-weight:800;}
  .amen .apt-tag:hover{transform:translateY(-2px); border-color:rgba(255,148,67,.5);}

  /* карта */
  .map{position:relative; height:340px; border-radius:var(--radius-md); overflow:hidden; border:1px solid var(--fc-line); background:var(--fc-card);}
  .map iframe{position:relative; width:100%; height:100%; border:0; display:block; filter:grayscale(.35) contrast(1.05); opacity:0; transition:opacity .8s ease;}
  .map.loaded iframe{opacity:1;}
  .map.loaded .shimmer{display:none;}
  .map-addr{display:flex; align-items:center; gap:8px; margin-top:12px; font-size:14.5px; color:var(--text-muted-black);}
  .map-addr svg{width:16px; height:16px; color:var(--fc-accent);}

  /* карточка записи */
  .book{position:sticky; top:96px; background:var(--fc-card); border:1px solid var(--fc-line); border-radius:var(--radius-lg); padding:28px; transition:border-color .4s ease, box-shadow .4s ease;}
  .book:hover{border-color:rgba(217,114,44,.35); box-shadow:0 30px 60px -30px rgba(80,50,20,.35);}
  .avail{display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:var(--fc-accent); background:rgba(255,148,67,.09); border:1px solid rgba(255,148,67,.25); padding:7px 13px; border-radius:999px; margin-bottom:16px;}
  .avail.res{color:var(--text-muted-black); background:var(--fc-bg); border-color:var(--fc-line);}
  .avail.res .badge-dot{background:var(--text-muted-black); animation:none;}
  .book .apt-price{font-size:38px; font-variant-numeric:tabular-nums;}
  .book-rows{margin:20px 0 22px; border-top:1px solid var(--fc-line);}
  .book-rows div{display:flex; justify-content:space-between; gap:12px; font-size:14.5px; padding:12px 0; border-bottom:1px solid var(--fc-line); color:var(--text-muted-black);}
  .book-rows b{color:var(--text-on-black); text-align:right;}
  .book-title{font-family:var(--serif); font-size:21px; font-weight:700; color:var(--text-on-black); margin-bottom:4px;}
  .book-btn{position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; gap:10px; width:100%; font-size:15px; font-weight:700; padding:15px; border-radius:999px; margin-top:10px; transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s ease;}
  .book-btn svg{width:20px; height:20px; transition:transform .35s var(--ease);}
  .book-btn:hover svg{transform:scale(1.15) rotate(-8deg);}
  .book-btn.tg{background:var(--fc-accent); color:var(--fc-bg);}
  .book-btn.tg:hover{background:var(--fc-accent-deep); transform:translateY(-2px); box-shadow:0 12px 26px rgba(255,148,67,.28);}
  .book-btn.tg::after{content:''; position:absolute; top:0; bottom:0; left:-60%; width:40%; background:linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent); transform:skewX(-20deg); animation:shine 4.5s ease-in-out 2s infinite;}
  .book-btn.wa{border:1px solid rgba(255,148,67,.45); color:var(--text-on-black);}
  .book-btn.wa:hover{background:rgba(255,148,67,.1); transform:translateY(-2px);}
  .book-note{font-size:12.5px; line-height:1.5; color:var(--text-muted-black); margin-top:14px; text-align:center;}
  .book-note b{color:var(--text-on-black); font-weight:600;}
  .not-found{padding:120px 0; text-align:center;}
  .not-found h1{margin:0 auto; max-width:none;}
  .not-found p{margin:18px auto 34px; color:var(--text-muted-black); font-size:17px;}

  /* нижняя панель на телефоне */
  .m-bar{display:none;}
  @media(max-width:900px){
    .m-bar{display:flex; align-items:center; gap:10px; position:fixed; left:12px; right:12px; bottom:12px; bottom:calc(12px + env(safe-area-inset-bottom)); z-index:90; background:rgba(255,252,246,.95); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border:1px solid var(--fc-line); border-radius:22px; padding:10px 10px 10px 18px; box-shadow:0 16px 40px -12px rgba(80,50,20,.35); transform:translateY(140%); transition:transform .5s var(--ease);}
    .m-bar.show{transform:none;}
    .m-price{flex:1; min-width:0; font-family:var(--serif); font-weight:700; font-size:22px; line-height:1.1; color:var(--text-on-black); white-space:nowrap;}
    .m-price small{display:block; font-family:var(--sans); font-size:11.5px; font-weight:600; color:var(--text-muted-black); overflow:hidden; text-overflow:ellipsis;}
    .m-btn{display:inline-flex; align-items:center; justify-content:center; gap:7px; height:46px; padding:0 16px; border-radius:999px; font-size:14px; font-weight:700; white-space:nowrap;}
    .m-btn svg{width:19px; height:19px;}
    .m-btn.tg{background:var(--fc-accent); color:var(--fc-bg);}
    .m-btn.wa{border:1px solid rgba(255,148,67,.45); color:var(--text-on-black);}
  }
  @media(max-width:400px){ .m-btn{padding:0 13px;} .m-btn span{display:none;} .m-btn{width:46px; padding:0;} }

  /* уведомление «ссылка скопирована» */
  .toast{position:fixed; left:50%; bottom:28px; z-index:210; transform:translate(-50%, 30px); opacity:0; pointer-events:none; background:var(--text-on-black); color:var(--fc-bg); font-size:14px; font-weight:700; padding:12px 20px; border-radius:999px; box-shadow:0 12px 30px -8px rgba(29,23,18,.4); transition:opacity .35s ease, transform .45s var(--ease);}
  .toast.show{opacity:1; transform:translate(-50%, 0);}
  @media(max-width:900px){ .toast{bottom:96px;} }

  /* ---------- LIGHTBOX ---------- */
  .lb{position:fixed; inset:0; z-index:200; background:rgba(29,23,18,.95); color:#F0E6D3; display:none; flex-direction:column; align-items:center; justify-content:center; gap:18px; padding:70px 0 20px;}
  .lb.open{display:flex; animation:lbFade .3s ease both;}
  .lb.closing{animation:lbFade .25s ease reverse both;}
  .lb-stage{position:relative; flex:1; width:100%; min-height:0; display:flex; align-items:center; justify-content:center; touch-action:pan-y;}
  .lb-stage img{max-width:min(92vw, 1400px); max-height:100%; object-fit:contain; border-radius:10px; user-select:none; -webkit-user-drag:none;}
  .lb.open .lb-stage img{animation:lbZoom .45s var(--ease) both;}
  .lb-stage img.go-next{animation:slideNext .45s var(--ease) both !important;}
  .lb-stage img.go-prev{animation:slidePrev .45s var(--ease) both !important;}
  .lb button{position:absolute; font:inherit; color:#F0E6D3; background:rgba(255,255,255,.08); border:1px solid rgba(240,230,211,.25); border-radius:999px; cursor:pointer; width:48px; height:48px; font-size:22px; line-height:1; transition:border-color .2s ease, color .2s ease, transform .25s var(--ease);}
  .lb button:hover{border-color:var(--fc-accent); color:var(--fc-accent);}
  .lb-close{top:16px; right:20px;}
  .lb-close:hover{transform:rotate(90deg);}
  .lb-prev{left:20px; top:50%; transform:translateY(-50%);}
  .lb-next{right:20px; top:50%; transform:translateY(-50%);}
  .lb-prev:hover{transform:translateY(-50%) translateX(-3px);}
  .lb-next:hover{transform:translateY(-50%) translateX(3px);}
  .lb-count{position:absolute; top:28px; left:24px; font-size:14px; font-weight:700; color:rgba(240,230,211,.7);}
  .lb-thumbs{display:flex; gap:8px; max-width:92vw; overflow-x:auto; padding:4px; scrollbar-width:none; flex:none;}
  .lb-thumbs::-webkit-scrollbar{display:none;}
  .lb-thumbs .lb-t{position:static; width:72px; height:54px; flex:none; padding:0; border-radius:8px; overflow:hidden; opacity:.45; border:2px solid transparent; background:var(--fc-line); transition:opacity .25s ease, border-color .25s ease, transform .3s var(--ease);}
  .lb-thumbs .lb-t img{width:100%; height:100%; object-fit:cover; display:block;}
  .lb-thumbs .lb-t:hover{opacity:.8; transform:translateY(-2px); color:inherit;}
  .lb-thumbs .lb-t.on{opacity:1; border-color:var(--fc-accent);}
  @media(max-width:600px){ .lb-prev{left:8px;} .lb-next{right:8px;} .lb-prev, .lb-next{width:42px; height:42px;} .lb-thumbs .lb-t{width:56px; height:42px;} }

  /* ---------- MOTION ---------- */
  .shimmer, .sk{position:relative; overflow:hidden; background:var(--fc-card);}
  .shimmer{position:absolute; inset:0;}
  .shimmer::after, .sk::after{content:''; position:absolute; inset:0; transform:translateX(-100%); background:linear-gradient(90deg, transparent, rgba(255,255,255,.6), transparent); animation:shimmer 1.4s ease-in-out infinite;}
  .sk{border-radius:12px; margin-top:14px;}
  .sk-gallery{height:min(520px, 62vw); border-radius:var(--radius-lg); margin-top:0;}
  .sk-grid{display:grid; grid-template-columns:1fr 360px; gap:48px; padding:40px 0 90px;}
  .sk-col .sk:first-child{margin-top:0;}
  @media(max-width:900px){ .sk-grid{grid-template-columns:1fr;} }
  @media(max-width:700px){ .sk-gallery{height:300px;} }

  .fx{animation:fxUp .8s var(--ease) backwards; animation-delay:var(--d, 0ms);}
  .g-cell{animation:gIn .9s var(--ease) backwards; animation-delay:calc(var(--i, 0) * 90ms);}
  .g-cell img{animation:gImg 1.5s var(--ease) backwards; animation-delay:calc(var(--i, 0) * 90ms);}
  .specs > div{animation:fxUp .7s var(--ease) backwards; animation-delay:calc(300ms + var(--i, 0) * 70ms);}
  .book{animation:bookIn .9s var(--ease) backwards .3s;}
  .reveal.in-view .apt-tag{animation:chipIn .5s var(--ease) backwards; animation-delay:calc(var(--i, 0) * 55ms);}

  @keyframes fxUp{from{opacity:0; transform:translateY(22px);}}
  @keyframes gIn{from{opacity:0; transform:scale(.96);}}
  @keyframes gImg{from{transform:scale(1.18);}}
  @keyframes bookIn{from{opacity:0; transform:translateX(28px);}}
  @keyframes chipIn{from{opacity:0; transform:translateY(10px) scale(.9);}}
  @keyframes shimmer{to{transform:translateX(100%);}}
  @keyframes shine{0%{left:-60%;} 30%, 100%{left:130%;}}
  @keyframes lbFade{from{opacity:0;}}
  @keyframes lbZoom{from{opacity:0; transform:scale(.94);}}
  @keyframes slideNext{from{opacity:0; transform:translateX(60px);}}
  @keyframes slidePrev{from{opacity:0; transform:translateX(-60px);}}

  @media(prefers-reduced-motion:reduce){
    *, *::before, *::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; animation-delay:0ms !important; transition-duration:.01ms !important;}
    .book-btn.tg::after{display:none;}
  }
