/* FSL Design Tokens v1.0 - единые токены и базовые компоненты
   Источник: metal-lestnica-msk.ru (захвачено 15.05.2026)
   Дублирует hsl-переменные из fsl-app.css + добавляет утилитарные классы для статичных страниц */

/* Базовый сброс и шрифты */
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:hsl(var(--background));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;font-feature-settings:"cv02","cv03","cv04","cv11"}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:17px;line-height:1.7;font-weight:400}

a{color:hsl(var(--primary));text-decoration:none;transition:color .15s}
a:hover{color:hsl(var(--gold-light))}

h1,h2,h3,h4,h5,h6{font-family:'Montserrat',sans-serif;color:hsl(var(--foreground));margin:0;font-weight:700;letter-spacing:-.02em}

/* Spacer под fixed-шапкой */
.fsl-spacer{height:80px}
@media (min-width:768px){.fsl-spacer{height:96px}}

/* Контейнер сайта */
.fsl-container{max-width:1280px;margin:0 auto;padding-left:16px;padding-right:16px}
@media (min-width:768px){.fsl-container{padding-left:32px;padding-right:32px}}

/* Типографическая шкала */
.fsl-h1,h1.fsl-h1{font-family:'Montserrat',sans-serif;font-weight:700;font-size:36px;line-height:1.05;letter-spacing:-.02em;margin:0 0 16px;color:#fff}
@media (min-width:768px){.fsl-h1,h1.fsl-h1{font-size:48px}}
@media (min-width:1024px){.fsl-h1,h1.fsl-h1{font-size:60px;line-height:1.0}}

.fsl-h2,h2.fsl-h2{font-family:'Montserrat',sans-serif;font-weight:700;font-size:28px;line-height:1.1;letter-spacing:-.025em;margin:0 0 14px}
@media (min-width:768px){.fsl-h2,h2.fsl-h2{font-size:36px}}
@media (min-width:1024px){.fsl-h2,h2.fsl-h2{font-size:48px;letter-spacing:-1.2px}}

.fsl-h3,h3.fsl-h3{font-family:'Montserrat',sans-serif;font-weight:700;font-size:18px;line-height:1.25;letter-spacing:-.01em;margin:0}

.fsl-lead{font-family:'Inter',sans-serif;font-size:17px;line-height:1.55;color:rgba(255,255,255,.9);font-weight:500;margin:0 0 32px;max-width:780px}
@media (min-width:768px){.fsl-lead{font-size:20px;line-height:1.4}}

.fsl-meta{font-size:13px;letter-spacing:.5px;color:hsl(var(--primary));font-weight:500;margin:0 0 28px;text-transform:none}

.fsl-small{font-size:14px;color:hsl(var(--muted-foreground));line-height:1.5}

/* Breadcrumbs */
.fsl-bc{font-size:13px;color:hsl(var(--muted-foreground));margin-bottom:24px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.fsl-bc a{color:hsl(var(--muted-foreground))}
.fsl-bc a:hover{color:hsl(var(--primary))}
.fsl-bc-sep{color:hsl(var(--muted-foreground)/.5);user-select:none}
.fsl-bc>span:last-child{color:hsl(var(--foreground));font-weight:500}

/* Section */
.fsl-section{padding-top:48px;padding-bottom:48px}
@media (min-width:768px){.fsl-section{padding-top:64px;padding-bottom:64px}}
@media (min-width:1024px){.fsl-section{padding-top:80px;padding-bottom:80px}}

.fsl-section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px;padding-bottom:14px;border-bottom:1px solid hsl(var(--border));flex-wrap:wrap;gap:12px}
.fsl-section-head h2{margin:0}
.fsl-section-all{font-size:14px;font-weight:600;color:hsl(var(--primary));white-space:nowrap}
.fsl-section-all:hover{color:hsl(var(--gold-light))}

/* Card grid */
.fsl-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
@media (max-width:640px){.fsl-cards{grid-template-columns:1fr;gap:14px}}

.fsl-card{display:block;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) + 2px);overflow:hidden;box-shadow:var(--shadow-card);transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s,border-color .3s;color:inherit;position:relative;text-decoration:none}
.fsl-card::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,hsl(var(--background)/.95) 100%);pointer-events:none;z-index:2;opacity:.95;transition:opacity .3s}
.fsl-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-elevated);border-color:hsl(var(--primary)/.4);text-decoration:none}
.fsl-card:hover::before{opacity:1}
.fsl-card img{display:block;width:100%;height:220px;object-fit:cover;background:hsl(var(--muted));transition:transform .5s cubic-bezier(.2,.8,.2,1);position:relative;z-index:1}
@media (min-width:768px){.fsl-card img{height:260px}}
@media (min-width:1024px){.fsl-card img{height:320px}}
.fsl-card:hover img{transform:scale(1.05)}
.fsl-card-body{position:absolute;bottom:0;left:0;right:0;padding:20px 22px 22px;z-index:3}
.fsl-card-body h3{font-family:'Montserrat',sans-serif;font-size:20px;font-weight:700;color:#fff;margin-bottom:4px;letter-spacing:-.01em}
.fsl-card-body span{font-family:'Inter',sans-serif;font-size:13px;color:hsl(var(--gold-light));font-weight:500;letter-spacing:.3px}

/* Photo gallery (тесная плитка для портфолио) */
.fsl-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin-top:12px}
@media (max-width:640px){.fsl-gallery{grid-template-columns:repeat(2,1fr);gap:6px}}

.fsl-tile{display:block;border-radius:var(--radius);overflow:hidden;background:hsl(var(--muted));aspect-ratio:4/3;position:relative;box-shadow:var(--shadow-card);transition:transform .25s,box-shadow .25s}
@media (max-width:640px){.fsl-tile{aspect-ratio:1}}
.fsl-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-elevated)}
.fsl-tile img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.fsl-tile:hover img{transform:scale(1.05)}

/* Buttons */
.fsl-btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 28px;border-radius:var(--radius);font-family:'Inter',sans-serif;font-weight:600;font-size:15px;letter-spacing:-.01em;border:1px solid hsl(var(--primary));color:hsl(var(--primary));background:transparent;transition:all .2s;cursor:pointer;text-decoration:none;line-height:1}
.fsl-btn:hover{background:hsl(var(--primary)/.1);color:hsl(var(--gold-light));text-decoration:none;border-color:hsl(var(--gold-light))}
.fsl-btn-primary{background:var(--gradient-gold);color:hsl(var(--primary-foreground));border-color:transparent;box-shadow:var(--shadow-cta)}
.fsl-btn-primary:hover{background:var(--gradient-gold);color:hsl(var(--primary-foreground));filter:brightness(1.1);box-shadow:var(--shadow-gold)}
.fsl-btn-lg{padding:18px 36px;font-size:16px}

/* CTA block */
.fsl-cta{background:var(--gradient-card);border:1px solid hsl(var(--border));border-radius:calc(var(--radius) + 4px);padding:40px 24px;margin-top:64px;text-align:center;position:relative;overflow:hidden}
@media (min-width:768px){.fsl-cta{padding:56px 32px}}
.fsl-cta::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:80px;height:3px;background:var(--gradient-gold);border-radius:0 0 3px 3px}
.fsl-cta h2{font-family:'Montserrat',sans-serif;font-size:28px;font-weight:700;margin:0 0 12px;color:hsl(var(--foreground))}
@media (min-width:768px){.fsl-cta h2{font-size:36px}}
.fsl-cta p{color:hsl(var(--muted-foreground));margin:0 0 28px;font-size:16px;max-width:540px;margin-left:auto;margin-right:auto;line-height:1.55}
.fsl-cta-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
@media (max-width:640px){.fsl-cta-row{flex-direction:column;align-items:stretch}.fsl-cta-row .fsl-btn{width:100%}}

/* Form input */
.fsl-input{background:hsl(var(--graphite));border:1px solid hsl(var(--border));color:#fff;padding:12px 16px;border-radius:8px;font-family:'Inter',sans-serif;font-size:16px;letter-spacing:.3px;outline:none;transition:border-color .2s}
.fsl-input:focus{border-color:hsl(var(--primary))}

/* ── Hero (для портфолио и моностраниц) ─────────────────────── */
.fsl-hero{position:relative;width:100%;min-height:480px;display:flex;align-items:flex-end;overflow:hidden;background:hsl(var(--card))}
@media (max-width:768px){.fsl-hero{min-height:360px}}
.fsl-hero-bg{position:absolute;inset:0;z-index:0}
.fsl-hero-bg img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(.55) saturate(1.05)}
.fsl-hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,hsl(var(--background)/.4) 0%,hsl(var(--background)/.85) 100%)}
.fsl-hero-inner{position:relative;z-index:1;max-width:1280px;margin:0 auto;padding:48px 16px 40px;width:100%}
@media (min-width:768px){.fsl-hero-inner{padding:80px 32px 56px}}
.fsl-hero h1{color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.4);max-width:880px}
.fsl-hero-lead{color:rgba(255,255,255,.92);max-width:680px;margin:14px 0 0;font-size:17px}
@media (min-width:768px){.fsl-hero-lead{font-size:20px}}

/* ── KPI strip ──────────────────────────────────────────────── */
.fsl-kpi-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;margin-top:32px;max-width:760px}
.fsl-kpi{background:hsl(var(--card)/.7);backdrop-filter:blur(8px);border:1px solid hsl(var(--border));border-radius:var(--radius);padding:14px 16px;text-align:left}
.fsl-kpi-value{font-family:'Montserrat',sans-serif;font-weight:700;font-size:26px;color:hsl(var(--primary));line-height:1;margin-bottom:4px}
.fsl-kpi-label{font-family:'Inter',sans-serif;font-size:12px;color:rgba(255,255,255,.75);letter-spacing:.3px;line-height:1.3}

/* ── Trust strip ────────────────────────────────────────────── */
.fsl-trust{display:flex;flex-wrap:wrap;justify-content:center;gap:24px 36px;padding:20px 16px;background:hsl(var(--card));border-bottom:1px solid hsl(var(--border));margin-bottom:0}
.fsl-trust-item{display:flex;align-items:center;gap:8px;color:hsl(var(--foreground));font-size:14px;font-weight:500;font-family:'Inter',sans-serif}
.fsl-trust-item svg{flex-shrink:0;color:hsl(var(--primary))}
@media (max-width:640px){.fsl-trust{gap:12px 20px;font-size:13px}.fsl-trust-item{font-size:13px}}

/* ── Entry cards (2 больших двери: Внутренние / Уличные) ────── */
.fsl-entry{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:40px 0 56px}
@media (max-width:768px){.fsl-entry{grid-template-columns:1fr;gap:14px;margin:28px 0 40px}}
.fsl-entry-card{position:relative;display:block;height:280px;border-radius:calc(var(--radius) + 4px);overflow:hidden;text-decoration:none;color:#fff;box-shadow:var(--shadow-card);transition:transform .3s,box-shadow .3s}
@media (max-width:768px){.fsl-entry-card{height:200px}}
.fsl-entry-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-elevated);text-decoration:none;color:#fff}
.fsl-entry-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}
.fsl-entry-card:hover img{transform:scale(1.06)}
.fsl-entry-card::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,hsl(var(--background)/.2) 0%,hsl(var(--background)/.85) 100%);transition:opacity .3s}
.fsl-entry-card:hover::after{background:linear-gradient(135deg,hsl(var(--background)/.3) 0%,hsl(var(--background)/.9) 100%)}
.fsl-entry-body{position:absolute;left:24px;right:24px;bottom:24px;z-index:1}
@media (min-width:768px){.fsl-entry-body{left:32px;right:32px;bottom:32px}}
.fsl-entry-body h2{font-family:'Montserrat',sans-serif;font-weight:700;font-size:32px;color:#fff;margin:0 0 6px;letter-spacing:-.02em}
@media (min-width:768px){.fsl-entry-body h2{font-size:40px}}
.fsl-entry-body p{font-family:'Inter',sans-serif;color:rgba(255,255,255,.85);font-size:15px;margin:0;display:flex;align-items:center;gap:8px}
.fsl-entry-body p::after{content:"→";color:hsl(var(--primary));font-weight:600;transition:transform .3s}
.fsl-entry-card:hover .fsl-entry-body p::after{transform:translateX(4px)}

/* ── Sticky CTA ─────────────────────────────────────────────── */
.fsl-sticky-cta{position:fixed;bottom:24px;right:24px;z-index:40;display:none}
@media (min-width:768px){.fsl-sticky-cta{display:block}}
.fsl-sticky-cta a{background:var(--gradient-gold);color:hsl(var(--primary-foreground));padding:16px 24px;border-radius:50px;font-family:'Inter',sans-serif;font-weight:700;font-size:15px;text-decoration:none;box-shadow:var(--shadow-cta),0 12px 32px rgba(0,0,0,.35);display:inline-flex;align-items:center;gap:10px;transition:transform .2s,filter .2s}
.fsl-sticky-cta a:hover{transform:translateY(-2px);filter:brightness(1.08);color:hsl(var(--primary-foreground));text-decoration:none}
.fsl-sticky-cta-mobile{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:40;background:hsl(var(--background)/.95);backdrop-filter:blur(10px);border-top:1px solid hsl(var(--border));padding:10px 14px;gap:10px;align-items:center}
@media (min-width:768px){.fsl-sticky-cta-mobile{display:none}}
.fsl-sticky-cta-mobile .fsl-btn{flex:1;padding:12px 14px;font-size:14px;white-space:nowrap}
body.has-fsl-sticky-mobile{padding-bottom:72px}
@media (min-width:768px){body.has-fsl-sticky-mobile{padding-bottom:0}}

/* ── GLightbox tweak ────────────────────────────────────────── */
.glightbox-container .ginner-container{filter:drop-shadow(0 24px 64px rgba(0,0,0,.6))}

/* ── Back-to-section link ───────────────────────────────────── */
.fsl-back-link{display:inline-flex;align-items:center;gap:8px;font-family:'Inter',sans-serif;font-size:15px;font-weight:500;color:hsl(var(--primary));margin:4px 0 28px;padding:10px 18px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card)/.6);transition:background .2s,border-color .2s,color .2s;text-decoration:none}
.fsl-back-link:hover{background:hsl(var(--card));border-color:hsl(var(--primary)/.4);color:hsl(var(--gold-light));text-decoration:none}

/* ── Larger gallery tiles (для страниц галерей) ─────────────── */
.fsl-gallery-large{grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}
@media (max-width:980px){.fsl-gallery-large{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}
@media (max-width:640px){.fsl-gallery-large{grid-template-columns:repeat(2,1fr)}}

/* Tile caption - описание проекта, всегда видно снизу */
.fsl-tile{display:flex;flex-direction:column;aspect-ratio:auto}
.fsl-tile-img{position:relative;aspect-ratio:4/3;overflow:hidden}
.fsl-tile-img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.fsl-tile:hover .fsl-tile-img img{transform:scale(1.05)}
.fsl-tile-label{background:hsl(var(--card));padding:10px 14px;font-family:'Inter',sans-serif;font-size:13px;font-weight:500;line-height:1.4;color:hsl(var(--foreground));letter-spacing:.1px;border-top:1px solid hsl(var(--border));min-height:48px;display:flex;align-items:center}
.fsl-tile:hover .fsl-tile-label{color:hsl(var(--gold-light))}
@media (max-width:640px){.fsl-tile-label{font-size:12px;padding:8px 10px;min-height:40px}}

/* ── Pagination "показать ещё" ─────────────────────────────── */
.fsl-pagination{display:flex;justify-content:center;margin-top:32px}
.fsl-load-more{font-family:'Inter',sans-serif;background:hsl(var(--card));border:1px solid hsl(var(--border));color:hsl(var(--foreground));padding:14px 32px;border-radius:var(--radius);font-weight:600;font-size:15px;cursor:pointer;transition:all .2s}
.fsl-load-more:hover{background:hsl(var(--card)/.7);border-color:hsl(var(--primary)/.4);color:hsl(var(--gold-light))}
.fsl-load-more:disabled{opacity:.5;cursor:default}
.fsl-tile-hidden{display:none}

/* ── Filter chips ───────────────────────────────────────────── */
.fsl-filters{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 28px}
.fsl-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:50px;background:hsl(var(--card));border:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));font-family:'Inter',sans-serif;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;text-decoration:none;line-height:1}
.fsl-chip:hover{background:hsl(var(--card)/.7);color:hsl(var(--foreground));border-color:hsl(var(--primary)/.4);text-decoration:none}
.fsl-chip.is-active{background:var(--gradient-gold);color:hsl(var(--primary-foreground));border-color:transparent}
.fsl-chip.is-active:hover{color:hsl(var(--primary-foreground));filter:brightness(1.05)}
.fsl-chip-count{font-weight:400;opacity:.7;font-size:13px}
.fsl-card.is-hidden{display:none}
