:root { --bg:#fff; --text:#1f2024; --muted:#555861; --soft:#e9e9ed; --maxw:1120px; --slide-h:280px; --main-min-h:678px; }
* { box-sizing:border-box; }
body { margin:0; font-family:"Segoe UI","Helvetica Neue",sans-serif; color:var(--text); background:var(--bg); line-height:1.5; }
.wrap { width:min(calc(100% - 24px), var(--maxw)); margin:0 auto; }
.top-line { height:1px; background:var(--soft); width:100%; }
.site-header { border-bottom:1px solid var(--soft); background:#fff; }
.header-inner { min-height:72px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; padding:18px 0 14px; }
.logo-link { display:block; width:min(100%, 250px); }
.logo-mark { width:100%; height:auto; display:block; }
.menu { display:flex; gap:clamp(18px, 2.3vw, 34px); flex-wrap:wrap; justify-content:center; align-items:center; }
.menu a { color:var(--text); text-decoration:none; font-size:15px; letter-spacing:0.01em; border-bottom:1px solid transparent; padding:4px 0; }
.menu a.active { border-bottom-color:var(--text); }
.hero { min-height:var(--main-min-h); padding:clamp(33px, 5.35vw, 64px) 0; display:grid; place-content:center; justify-items:center; text-align:center; }
.hero p { margin:0; max-width:700px; font-size:clamp(20px, 2vw, 28px); color:var(--text); font-style:italic; line-height:1.55; font-family:Georgia,"Times New Roman",serif; text-wrap:pretty; }
.home-hero { width:100%; padding-inline:12px; }
.home-stage { position:relative; isolation:isolate; width:calc(100vw - 32px); overflow:hidden; }
.home-carousel { position:relative; z-index:2; width:min(60%, 1120px); min-width:0; margin:0 auto; }
.home-photo-stream { position:absolute; z-index:1; inset:0; overflow:hidden; }
.home-photo-track { display:flex; width:max-content; height:100%; animation:home-photo-scroll 180s linear infinite; will-change:transform; }
.home-photo-loop { display:flex; flex:none; gap:28px; height:100%; padding-right:28px; }
.home-photo-card { flex:0 0 auto; width:auto; height:100%; aspect-ratio:3/4; min-width:0; overflow:hidden; border-radius:18px; }
.home-photo-card img { display:block; width:100%; height:100%; object-fit:contain; border-radius:18px; background:transparent; }
@keyframes home-photo-scroll { to { transform:translateX(-50%); } }

.carousel-shell { width:100%; max-width:var(--maxw); background:rgba(255,255,255,.95); border:1px solid #dcdde2; border-radius:18px; padding:clamp(14px, 2vw, 18px); overflow:hidden; position:relative; margin:0 auto; }
.carousel-viewport { width:100%; overflow:hidden; border-radius:14px; }
.carousel-track { display:flex; transition:transform 0.5s cubic-bezier(0.22, 0.8, 0.18, 1); will-change:transform; }
.slide { flex:0 0 100%; min-height:var(--slide-h); padding:15px; display:flex; flex-direction:column; justify-content:center; align-items:center; }
.slide-inner { width:100%; max-width:650px; }
.slide h3 { margin:0 0 12px; font-size:clamp(22px, 2.2vw, 32px); line-height:1.15; font-weight:700; font-family:Georgia,"Times New Roman",serif; letter-spacing:-0.01em; color:#111216; text-align:center; }
.slide p { margin:0 0 10px; font-size:clamp(13px, 1.1vw, 15px); line-height:1.6; font-family:Georgia,"Times New Roman",serif; color:#2a2c33; text-align:center; }
.carousel-actions { margin-top:0; display:grid; place-items:center; gap:12px; min-height:88px; }
.next-btn { border:0; background:#3f424b; color:#fff; font-size:15px; font-weight:600; padding:12px 24px; border-radius:999px; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; transition:filter 0.2s; white-space:nowrap; height:44px; max-width:200px; overflow:hidden; text-overflow:ellipsis; }
.next-btn:hover { filter:brightness(0.96); }
.dots { display:flex; gap:8px; align-items:center; justify-content:center; }
.dot { width:8px; height:8px; border-radius:50%; background:#cbced6; transition:background 0.2s ease; cursor:pointer; }
.dot.active { background:#252831; }
.slide-counter { color:var(--muted); font-size:14px; }

.buy-grid { width:100%; max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:20px; }
.market-tile { height:var(--slide-h); min-width:0; border:1px solid var(--soft); border-radius:12px; background:#fff; display:flex; align-items:center; justify-content:center; padding:24px; font-size:clamp(26px, 3.2vw, 42px); font-weight:700; color:var(--text); text-decoration:none; transition:border-color 0.2s, transform 0.2s; cursor:pointer; touch-action:manipulation; overflow:hidden; text-overflow:ellipsis; }
.market-tile:hover { border-color:#cfd0d8; transform:translateY(-2px); }

.contact-link { font-size:clamp(20px, 2.2vw, 30px); font-weight:500; color:var(--text); text-decoration:none; border-bottom:1px solid var(--text); padding-bottom:3px; }
.dev-note { text-align:center; width:min(100%, 700px); }
.dev-note p { margin:0; color:var(--muted); font-size:14px; line-height:1.4; font-family:"Segoe UI","Helvetica Neue",sans-serif; }

.site-footer { padding:10px 0 12px; }
.footer-row { display:flex; flex-direction:column; align-items:center; justify-content:center; }
.footer-left { font-size:14px; color:var(--muted); line-height:1.4; }
.footer-links { display:flex; gap:14px; margin-top:4px; }
.footer-links a { color:var(--muted); font-size:13px; text-decoration:none; border-bottom:1px solid transparent; }
.footer-links a:hover { border-bottom-color:var(--muted); }
.legal-text { width:min(100%, 720px); color:var(--muted); font-size:14px; line-height:1.6; text-align:left; }
.legal-text p { margin:0 0 14px; font-family:"Segoe UI","Helvetica Neue",sans-serif; font-size:14px; font-style:normal; }

/* Доступность: видимый фокус у интерактивных элементов */
a:focus-visible, button:focus-visible, .dot:focus-visible {
  outline:3px solid #787982; outline-offset:3px; border-radius:4px;
}
.dot:focus-visible { outline-offset:4px; }

@media (max-width:760px) {
  .header-inner { min-height:auto; gap:10px; padding:10px 0; }
  .logo-link { width:min(100%, 220px); }
  .menu { width:100%; gap:8px 14px; font-size:14px; }
  .hero { min-height:553px; }
  .hero p { font-size:clamp(18px, 5.5vw, 24px); }
  .slide h3 { font-size:clamp(20px, 6.1vw, 28px); }
  .slide p { font-size:clamp(12px, 3.4vw, 14px); line-height:1.33; }
  .carousel-shell { border-radius:14px; padding:14px 12px; }
  .market-tile { height:190px; font-size:clamp(18px, 6.6vw, 28px); padding:14px; }
  .contact-link { font-size:clamp(19px, 6vw, 26px); }
  .buy-grid { gap:10px; grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .legal-text { font-size:14px; }
  .wrap { width:min(100% - 24px, var(--maxw)); }
}
@media (max-width:980px) {
  .home-stage { width:min(100%, var(--maxw)); }
  .home-carousel { width:100%; }
  .home-photo-stream { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  .home-photo-track { animation:none; }
}
