/* ArmStone — Paul Fredrick inspired design (v2)
   Clean, premium, white background, navy accents, generous whitespace. */

:root{
  --bg: #ffffff;
  --bg-soft: #f8f8f8;
  --paper: #fafaf8;
  --ink: #000000;
  --ink-heading: #0e1a2b;
  --ink-soft: #3a4658;
  --ink-mute: #7d8a99;
  --line: #e5e7eb;
  --line-soft: #f0f0ee;
  --accent: #1e2a44;
  --accent-deep: #0a1428;
  --gold: #b08d57;
  --basalt: #0e1a2b;
  --basalt-soft: #1a2538;
  --hot: #c8102e;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Manrope',-apple-system,'Helvetica Neue',sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;}
h1,h2{font-family:'Manrope',sans-serif;font-weight:800;letter-spacing:-.025em;line-height:1.05;color:var(--ink-heading);}
h3,h4{font-family:'Manrope',sans-serif;font-weight:800;letter-spacing:-.025em;line-height:1.05;color:var(--ink);}
em{font-style:normal;color:var(--accent);}
strong{font-weight:800;}
a{color:inherit;}
img{max-width:100%;display:block;}

.container{max-width:none;margin:0 auto;padding:0 60px;position:relative;z-index:2;}

/* === Promo top bar === */
.topbar{background:var(--accent);color:#fff;font-size:12px;letter-spacing:.04em;}
.topbar-inner{display:flex;justify-content:space-between;align-items:center;height:36px;}
.topbar a{text-decoration:none;transition:opacity .2s;}
.topbar a:hover{opacity:.7;}
.topbar-left,.topbar-right{display:flex;gap:28px;align-items:center;}
.topbar-left strong{font-weight:600;letter-spacing:0;}
.pulse{width:6px;height:6px;border-radius:50%;background:#7dd87d;display:inline-block;margin-right:9px;animation:pulse 2s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(125,216,125,.5);}70%{box-shadow:0 0 0 8px rgba(125,216,125,0);}100%{box-shadow:0 0 0 0 rgba(125,216,125,0);}}
.lang{display:flex;gap:4px;align-items:center;}
.lang a{padding:3px 6px;font-weight:600;font-size:11px;letter-spacing:.1em;}
.lang a.active{font-weight:700;border-bottom:1px solid #fff;}

/* === Header === */
header{background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:13px 0;}

.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);}
.logo-img{height:54px;width:auto;display:block;}
.foot-logo .logo-img{height:60px;filter:brightness(0) invert(1);opacity:.95;}

.header-actions{display:flex;align-items:center;gap:24px;}
.phone-block{text-align:right;}
.phone-num{font-family:'Manrope',sans-serif;font-size:14px;font-weight:700;color:var(--ink);text-decoration:none;display:block;letter-spacing:.02em;}
.phone-label{font-size:11.5px;color:var(--ink-mute);font-weight:600;margin-top:2px;letter-spacing:0;}
.btn-cta{display:inline-flex;align-items:center;gap:8px;background:var(--ink-heading);color:#fff;padding:11px 20px;font-size:13.5px;font-weight:600;text-decoration:none;transition:all .2s;border:none;cursor:pointer;font-family:inherit;letter-spacing:0;}
.btn-cta:hover{background:var(--accent);}
.btn-cta .arr{transition:transform .25s;}
.btn-cta:hover .arr{transform:translateX(3px);}

/* === Hamburger + mobile drawer (shown on narrow screens) === */
.nav-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:auto;height:44px;padding:0;background:transparent;border:none;cursor:pointer;flex:0 0 auto;}
.nav-burger span{display:block;width:24px;height:2px;background:var(--ink-heading);border-radius:2px;}
.mnav-overlay{position:fixed;inset:0;background:rgba(14,26,43,.5);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s;z-index:90;}
body.mnav-open .mnav-overlay{opacity:1;visibility:visible;}
/* White side-drawer with a logo header at the top */
.mnav{position:fixed;top:0;right:0;height:100%;width:100%;max-width:100%;background:#fff;box-shadow:-8px 0 30px rgba(14,26,43,.15);transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:100;overflow-y:auto;padding:0 28px 32px;}
body.mnav-open .mnav{transform:translateX(0);}
body.mnav-open{overflow:hidden;}
.mnav-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0 14px;margin-bottom:14px;position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line);z-index:1;}
.mnav-logo{display:flex;align-items:center;}
.mnav-logo .logo-img{height:46px;width:auto;display:block;}
.mnav-close{width:40px;height:40px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--ink-heading);font-size:26px;line-height:1;cursor:pointer;transition:color .2s;}
.mnav-close:hover{color:var(--accent);}
.mnav-list{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;flex:none;gap:2px;text-align:left;}
.mnav-link{text-decoration:none;color:var(--ink-heading);font-size:17px;font-weight:700;padding:13px 0;border-bottom:1px solid var(--line);transition:color .2s;display:block;}
.mnav-link:hover{color:var(--accent);}
.mnav-sub{display:flex;flex-direction:column;padding:2px 0 8px 2px;}
.mnav-sub a{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink-soft);font-size:13.5px;font-weight:500;padding:7px 0;transition:color .2s;}
.mnav-sub a:hover{color:var(--accent);}
.mnav-sub-ic{flex:0 0 auto;width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--accent);}
.mnav-sub-ic svg{width:24px;height:24px;display:block;}
.mnav-phone{margin-top:22px;font-size:19px;font-weight:700;color:var(--ink-heading);text-decoration:none;display:inline-block;}
.mnav-cta{margin-top:14px;justify-content:center;padding:15px;}
/* Language dropdown in the drawer head — the topbar .lang is hidden on phones.
   Logo keeps the left edge; the dropdown and the ✕ sit together on the right. */
.mnav-head .mnav-logo{margin-right:auto;}
.mnav-lang{position:relative;flex:0 0 auto;}
.mnav-lang-btn{display:flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--line);border-radius:6px;color:var(--ink-heading);font-family:inherit;font-size:13px;font-weight:700;letter-spacing:.08em;line-height:1;padding:9px 11px;cursor:pointer;transition:color .2s,border-color .2s;}
.mnav-lang-btn:hover{color:var(--accent);border-color:var(--accent);}
.mnav-lang.open .mnav-lang-btn{color:var(--accent);border-color:var(--accent);}
.mnav-lang-caret{width:12px;height:12px;flex:0 0 auto;transition:transform .25s;}
.mnav-lang.open .mnav-lang-caret{transform:rotate(180deg);}
.mnav-lang-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:100%;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 10px 28px rgba(14,26,43,.14);overflow:hidden;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s,transform .2s,visibility .2s;z-index:5;}
.mnav-lang.open .mnav-lang-menu{opacity:1;visibility:visible;transform:translateY(0);}
.mnav-lang-menu a{display:block;text-align:center;text-decoration:none;color:var(--ink-heading);font-size:13px;font-weight:700;letter-spacing:.08em;padding:10px 14px;transition:color .2s,background .2s;}
.mnav-lang-menu a + a{border-top:1px solid var(--line-soft);}
.mnav-lang-menu a:hover{color:var(--accent);background:var(--paper);}

/* === Main nav (inline with logo) === */
nav{display:flex;gap:26px;align-items:center;flex:1;justify-content:center;}
.nav-item{position:relative;}
.nav-item > a{text-decoration:none;color:var(--ink);font-size:13.5px;font-weight:600;padding:6px 0;display:inline-flex;align-items:center;gap:5px;transition:color .2s;letter-spacing:0;white-space:nowrap;}
.nav-item > a:hover{color:var(--accent);}
.nav-item.active > a{color:var(--ink);border-bottom:1.5px solid var(--ink);}
.nav-item.has-dropdown > a::after{content:'';width:4px;height:4px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .25s;}
.nav-item:hover.has-dropdown > a::after{transform:rotate(225deg) translateY(2px);}
.dropdown{position:absolute;top:100%;left:50%;transform:translate(-50%,4px);background:#fff;border:1px solid var(--line);padding:18px 0;min-width:260px;opacity:0;visibility:hidden;transition:all .25s;box-shadow:0 16px 40px -10px rgba(14,26,43,.12);z-index:60;}
.nav-item:hover .dropdown{opacity:1;visibility:visible;transform:translate(-50%,0);}
.dropdown a{display:block;padding:11px 28px;font-size:13.5px;color:var(--ink);text-decoration:none;transition:all .2s;letter-spacing:0;}
.dropdown a:hover{background:var(--bg-soft);color:var(--accent);padding-left:36px;}
.dropdown-services{min-width:240px;padding:14px 0;}
.dropdown-services a{display:flex;align-items:center;gap:14px;padding:11px 22px;font-size:14px;font-weight:500;}
.dropdown-services a:hover{padding-left:28px;}
.dropdown-services .mega-ic{width:28px;height:28px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent);}
.dropdown-services .mega-ic svg{width:16px;height:16px;}

/* === Mega dropdown (Каталог) === */
.has-mega{position:static;}
.dropdown-mega{left:0;right:0;width:auto;min-width:0;transform:translateY(4px);padding:0;border-left:none;border-right:none;}
.nav-item:hover .dropdown-mega{transform:translateY(0);}
.mega-grid{display:grid;grid-template-columns:1.6fr 1.6fr 1fr;gap:0;max-width:1320px;margin:0 auto;padding:32px 60px;}
.mega-col{padding:0 28px;}
.mega-stones-2col{display:grid;grid-template-columns:1fr 1fr;column-gap:18px;}
/* "Տեսակը" (by type) links in two columns, mirroring the stone-kind list. */
.mega-types-2col{display:grid;grid-template-columns:1fr 1fr;column-gap:18px;}
.mega-stones-2col a{white-space:nowrap;line-height:1.3;}
.mega-col + .mega-col{border-left:1px solid var(--line);}
.mega-h{display:block;font-family:'Manrope',sans-serif;font-size:12px;font-weight:600;color:var(--ink);margin-bottom:14px;letter-spacing:.04em;text-transform:uppercase;}
.mega-col a{display:flex;align-items:center;gap:12px;padding:9px 0;font-size:14px;font-weight:500;color:var(--ink);text-decoration:none;transition:color .2s;border:none;}
.mega-col a:hover{color:var(--accent);background:transparent;padding-left:0;}
.mega-ic{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;color:var(--ink-mute);background:var(--bg-soft);border-radius:4px;transition:all .2s;}
.mega-ic svg{width:27px;height:27px;}
.mega-col-icons a:hover .mega-ic{color:#fff;background:var(--accent);}
.mega-mat-dot{display:inline-flex;width:22px;height:22px;border-radius:50%;flex-shrink:0;margin-right:10px;outline:1px solid rgba(0,0,0,.08);position:relative;overflow:hidden;}
.mega-mat-dot.mat-granite{background:radial-gradient(circle at 30% 30%,#aa6450 0%,#3a221a 60%,#1f120c 100%);}
.mega-mat-dot.mat-basalt{background:radial-gradient(circle at 30% 30%,#2a2a30 0%,#0a0a0e 70%,#000 100%);}
.mega-mat-dot.mat-marble{background:radial-gradient(circle at 30% 30%,#fafaf6 0%,#e8e0d0 60%,#c8b8a0 100%);}
.mat-swatch{display:inline-flex;width:14px;height:14px;border-radius:50%;flex-shrink:0;outline:1px solid rgba(0,0,0,.08);}
.mat-swatch.mat-granite{background:radial-gradient(circle at 30% 30%,#aa6450 0%,#3a221a 60%,#1f120c 100%);}
.mat-swatch.mat-basalt{background:radial-gradient(circle at 30% 30%,#2a2a30 0%,#0a0a0e 70%,#000 100%);}
.mat-swatch.mat-marble{background:radial-gradient(circle at 30% 30%,#fafaf6 0%,#e8e0d0 60%,#c8b8a0 100%);}
.stone-swatch{display:inline-flex;width:14px;height:14px;border-radius:50%;flex-shrink:0;outline:1px solid rgba(0,0,0,.12);box-shadow:inset 1px 1px 0 rgba(255,255,255,.15);}
.form-ic{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0;color:var(--ink-mute);}
.form-ic svg{width:18px;height:18px;}
.filter-list label:hover .form-ic{color:var(--ink-heading);}
.filter-list input[type=checkbox]:checked ~ .form-ic{color:var(--ink-heading);}
.stone-dot{cursor:pointer;transition:transform .15s;}
.stone-dot:hover{transform:scale(1.25);}
.stone-dot.active{outline:2px solid var(--ink-heading);outline-offset:1px;}
.mega-visual{display:flex;flex-direction:column;justify-content:flex-end;background:var(--bg-soft);text-decoration:none;color:var(--ink);padding:0;overflow:hidden;position:relative;min-height:260px;margin-left:28px;transition:background .25s;}
.mega-visual:hover{background:#eeeeee;}
.mega-vis-img{flex:1;display:flex;align-items:center;justify-content:center;padding:24px 24px 8px;}
.mega-vis-img img{max-width:100%;max-height:160px;object-fit:contain;}    
.mega-vis-info{padding:18px 22px 22px;}
.mega-vis-h{font-family:'Manrope',sans-serif;font-size:15px;font-weight:700;margin-bottom:2px;}
.mega-vis-sub{font-size:12.5px;color:var(--ink-mute);font-weight:500;}
.mega-visual:hover .mega-vis-h{color:var(--accent);}

/* === Section base === */
section{padding:90px 0;position:relative;}
.section-head{margin-bottom:56px;}
.section-head.center{text-align:center;}
.section-head .ornament{margin-bottom:18px;}
.section-title{font-size:clamp(34px,4vw,52px);font-weight:700;max-width:840px;margin:0 auto;letter-spacing:-.01em;}
.section-title em{font-style:normal;color:var(--accent);font-weight:400;}
.section-sub{font-size:15px;color:var(--ink-mute);max-width:600px;margin:18px auto 0;line-height:1.2;}

.eyebrow{font-size:13px;color:var(--ink-mute);font-weight:600;display:inline-block;margin-bottom:18px;letter-spacing:0;}

.ornament{display:none;}

/* === Buttons === */
.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--ink-heading);color:#fff;padding:15px 30px;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s;border:none;cursor:pointer;font-family:inherit;letter-spacing:0;}
.btn-primary:hover{background:var(--accent);}
.btn-ghost{display:inline-flex;align-items:center;gap:10px;background:transparent;color:var(--ink);padding:14px 28px;border:1.5px solid var(--ink-heading);font-size:14px;font-weight:600;text-decoration:none;transition:all .2s;font-family:inherit;cursor:pointer;letter-spacing:0;}
.btn-ghost:hover{background:var(--ink-heading);color:#fff;}
.btn-primary .arr,.btn-ghost .arr{transition:transform .25s;}
.btn-primary:hover .arr,.btn-ghost:hover .arr{transform:translateX(4px);}

/* === Hero === */
.hero{padding:0;position:relative;overflow:hidden;border-bottom:1px solid var(--line);}
.hero-grid{display:grid;grid-template-columns:1fr 1.1fr;align-items:stretch;min-height:calc(100vh - 110px);}

/* === Hero с видео-обложкой на весь экран === */
.hero-video{display:flex;align-items:flex-end;justify-content:flex-start;height:calc(100vh - 70px);min-height:calc(100vh - 70px);position:relative;overflow:hidden;background:#0a0e18;}
.hero-bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;}
.hero-video::after{content:'';position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,rgba(10,14,24,.78) 0%,rgba(10,14,24,.55) 45%,rgba(10,14,24,.2) 75%,rgba(10,14,24,.1) 100%);}
.hero-video .container{position:relative;z-index:3;width:100%;}
.hero-video .hero-content{padding:80px 0;max-width:640px;display:flex;flex-direction:column;justify-content:center;}
.hero-video .eyebrow{color:rgba(255,255,255,.65);}
.hero-video .eyebrow::before{background:rgba(255,255,255,.4);}
.hero-video h1,.hero-video h1 em,.hero-video h1 span{color:#ffffff!important;font-style:normal;font-size:clamp(40px,5vw,68px);letter-spacing:-.015em;line-height:1.05;font-weight:700;}
.hero-video h1{margin-bottom:22px;}
.hero-video h1 em{font-weight:800;}
.hero-video .hero-sub{color:rgba(255,255,255,.85);font-weight:500;max-width:520px;margin-bottom:32px;line-height:1.5;font-size:16px;}
.hero-video .hero-cta{display:flex;gap:14px;flex-wrap:wrap;}
.hero-video .btn-primary{background:#fff;color:var(--ink-heading);}
.hero-video .btn-primary:hover{background:var(--gold);color:#fff;}
.hero-video .btn-ghost{color:#fff;border-color:rgba(255,255,255,.6);}
.hero-video .btn-ghost:hover{background:#fff;color:var(--ink-heading);}
@media (max-width:900px){
  .hero-video::after{background:linear-gradient(180deg,rgba(10,14,24,.4) 0%,rgba(10,14,24,.85) 100%);}
  .hero-video{align-items:flex-end;}
  .hero-video .hero-content{padding:60px 0 72px;}
}
.hero-content{padding:90px 60px 90px 0;display:flex;flex-direction:column;justify-content:center;}
.hero h1{font-size:clamp(44px,5.4vw,72px);font-weight:700;margin-bottom:26px;color:var(--ink-heading);letter-spacing:-.015em;line-height:1.05;}
.hero h1 em{font-style:normal;color:var(--accent);font-weight:800;}
.hero-sub{font-size:16px;color:var(--ink);font-weight:500;max-width:520px;margin-bottom:36px;line-height:1.4;}
.hero-cta{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:0;}
.hero-meta{display:flex;gap:48px;padding-top:30px;border-top:1px solid var(--line);}
.hero-meta .num{font-family:'Manrope',sans-serif;font-size:34px;font-weight:600;color:var(--ink);line-height:1;display:flex;align-items:flex-start;gap:4px;}
.hero-meta .num sup{font-size:16px;margin-top:6px;color:var(--accent);}
.hero-meta .lbl{font-size:13px;color:var(--ink-mute);margin-top:8px;font-weight:600;letter-spacing:0;}

.hero-visual{position:relative;background:var(--bg-soft);overflow:hidden;display:flex;align-items:center;justify-content:center;}
.hero-visual::before{display:none;}
.hero-slides{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
.hero-photo{position:absolute;max-width:78%;max-height:84%;object-fit:contain;mix-blend-mode:multiply;filter:drop-shadow(0 40px 60px rgba(14,26,43,.22));opacity:0;transform:translateX(110%);transition:transform .9s cubic-bezier(.65,.05,.36,1),opacity .6s ease;will-change:transform;pointer-events:none;}
.hero-photo.active{opacity:1;transform:translateX(0);pointer-events:auto;}
.hero-photo.exiting{opacity:1;transform:translateX(-110%);}
.hero-dots{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);display:flex;gap:10px;z-index:5;}
.hero-dots button{width:8px;height:8px;border-radius:50%;background:rgba(14,26,43,.25);border:none;cursor:pointer;padding:0;transition:background .25s,transform .25s;}
.hero-dots button:hover{background:rgba(14,26,43,.5);}
.hero-dots button.active{background:var(--ink-heading);transform:scale(1.3);}
.stone{position:absolute;box-shadow:0 30px 60px -20px rgba(14,26,43,.25);overflow:hidden;}
.stone::after{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 600' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='gr'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' seed='8'/%3E%3CfeColorMatrix values='0 0 0 0 .15 0 0 0 0 .12 0 0 0 0 .1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23gr)'/%3E%3C/svg%3E");mix-blend-mode:overlay;opacity:.7;}
.stone-khachkar{width:200px;height:380px;top:80px;left:80px;background:linear-gradient(160deg,#3a4658 0%,#1a2538 60%,#0a1428 100%);clip-path:polygon(0 8%,50% 0,100% 8%,100% 100%,0 100%);}
.khachkar-pattern{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:2;}
.khachkar-pattern svg{width:65%;height:65%;color:var(--gold);opacity:.5;}
.stone-vertical{width:170px;height:320px;top:160px;right:90px;background:linear-gradient(160deg,#5a6478 0%,#2a3548 60%,#0e1a2b 100%);clip-path:polygon(0 0,100% 0,100% 100%,0 100%);}
.stone-vertical .engraving{position:absolute;left:50%;top:30%;transform:translateX(-50%);z-index:2;text-align:center;color:#c8b88f;font-family:'Manrope',sans-serif;font-style:normal;font-size:13px;letter-spacing:.1em;opacity:.75;}
.stone-vertical .engraving::before{content:'✝';display:block;font-size:22px;margin-bottom:12px;font-style:normal;}
.hero-badge{position:absolute;background:#fff;border:1px solid var(--line);padding:18px 22px;bottom:32px;left:32px;z-index:5;box-shadow:0 16px 40px -12px rgba(14,26,43,.18);display:flex;align-items:center;gap:14px;}
.hero-badge .ico{width:38px;height:38px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;}
.hero-badge .txt{font-size:12px;color:var(--ink-soft);line-height:1.4;}
.hero-badge .txt strong{display:block;font-size:14px;font-weight:600;color:var(--ink);margin-bottom:2px;letter-spacing:0;}

/* === Advantages bar === */
.advantages{background:var(--bg-soft);padding:48px 0;border-bottom:1px solid var(--line);}
.adv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
.adv{padding:0 32px;border-right:1px solid var(--line);display:flex;gap:18px;align-items:center;}
.adv:last-child{border-right:none;}
.adv-num{font-family:'Manrope',sans-serif;font-style:normal;font-size:30px;color:var(--gold);line-height:1;flex-shrink:0;font-weight:400;}
.adv h3{font-size:16px;color:var(--ink);margin-bottom:4px;font-weight:600;font-family:inherit;letter-spacing:0;}
.adv p{font-size:13px;color:var(--ink-mute);line-height:1.55;}

/* === Categories grid (Paul Fredrick style cards) === */
.categories{background:#fff;padding-top:160px;}
.cat-grid{display:flex;flex-wrap:wrap;gap:24px;}
.cat-grid > .cat{flex:1 1 calc(50% - 12px);min-width:0;}
.cat.cat-1,.cat.cat-2{flex:1 1 calc(50% - 12px);aspect-ratio:9/5;}
.cat{position:relative;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;background:#fafaf8;border:1px solid var(--line);aspect-ratio:5/4;padding:28px 32px;transition:all .35s;}
.cat:hover{transform:translateY(-3px);border-color:var(--ink-heading);box-shadow:0 20px 40px -16px rgba(14,26,43,.18);background:#fff;}
.cat-top{display:flex;justify-content:space-between;align-items:flex-start;}
.cat-meta{font-family:'Manrope',sans-serif;font-size:13px;color:var(--ink-mute);font-weight:600;letter-spacing:0;}
.cat-arrow{width:40px;height:40px;border:1.5px solid var(--ink-heading);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--ink-heading);font-size:14px;transition:all .35s;background:transparent;}
.cat:hover .cat-arrow{background:var(--ink-heading);color:#fff;transform:rotate(-45deg);}
.cat-bottom{display:flex;align-items:flex-end;justify-content:space-between;margin-top:auto;gap:20px;}
.cat-info{flex:1;color:var(--ink);min-width:0;}
.cat-name{font-family:'Manrope',sans-serif;font-size:clamp(21px,1.35vw,27px);font-weight:700;line-height:1.05;margin-bottom:8px;color:var(--ink-heading);letter-spacing:-.005em;overflow-wrap:break-word;}
.cat-desc{font-size:13px;color:var(--ink);font-weight:500;line-height:1.4;}
.cat-stone{width:90px;height:130px;flex-shrink:0;background:linear-gradient(165deg,#1e2a44 0%,#0e1a2b 100%);clip-path:polygon(0 12%,50% 0,100% 12%,100% 100%,0 100%);position:relative;box-shadow:0 16px 30px -10px rgba(14,26,43,.25);transition:transform .5s;}
.cat:hover .cat-stone{transform:scale(1.08) translateY(-4px);}
.cat-stone.dbl{width:140px;clip-path:polygon(0 14%,25% 0,50% 14%,75% 0,100% 14%,100% 100%,0 100%);}
.cat-stone.fam{width:170px;clip-path:polygon(0 18%,16% 0,33% 18%,50% 0,67% 18%,84% 0,100% 18%,100% 100%,0 100%);height:90px;}
.cat-stone.kh{width:60px;height:150px;clip-path:polygon(0 4%,50% 0,100% 4%,100% 100%,0 100%);}
.cat-stone.kh::before{content:'✠';position:absolute;top:14px;left:50%;transform:translateX(-50%);color:var(--gold);font-size:18px;opacity:.6;}
.cat-stone.fc{width:130px;height:80px;background:repeating-linear-gradient(90deg,#1e2a44 0,#1e2a44 4px,transparent 4px,transparent 14px),linear-gradient(180deg,#0e1a2b 0,#0e1a2b 100%);clip-path:none;border-top:3px solid #3a4658;}

/* === Works (latest portfolio block) === */
.works-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:48px;}
.works-head .section-title{margin:0;text-align:left;}
.works-link{text-decoration:none;color:var(--ink);font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:8px;border-bottom:1px solid var(--ink);padding-bottom:3px;transition:all .25s;letter-spacing:0;}
.works-link:hover{color:var(--accent);border-color:var(--accent);}
.works-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.work{aspect-ratio:3/4;position:relative;overflow:hidden;cursor:pointer;background:var(--bg-soft);text-decoration:none;color:var(--ink);}
.work::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,#e8e4dd 0%,#c5beb1 100%);}
.work.has-photo::before{display:none;}
.work-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s ease;}
.work.has-photo:hover .work-photo{transform:scale(1.05);}
.work-stone{position:absolute;left:50%;bottom:8%;transform:translateX(-50%);width:55%;height:78%;background:linear-gradient(165deg,#3a4658 0%,#0e1a2b 100%);clip-path:polygon(0 10%,50% 0,100% 10%,100% 100%,0 100%);transition:transform .6s cubic-bezier(.6,0,.2,1);box-shadow:0 16px 30px -10px rgba(14,26,43,.5);}
.work:hover .work-stone{transform:translateX(-50%) scale(1.05) translateY(-4px);}
.work-meta{position:absolute;left:0;right:0;bottom:0;z-index:3;background:#fff;padding:14px 18px;font-size:13.5px;font-weight:600;border-top:1px solid var(--line);letter-spacing:0;}
.work-meta small{display:block;font-family:'Manrope',sans-serif;font-style:normal;font-size:13px;color:var(--ink-mute);margin-top:4px;font-weight:400;letter-spacing:0;}
.work.gray .work-stone{background:linear-gradient(165deg,#7d8a99 0%,#3a4658 100%);}
.work.red .work-stone{background:linear-gradient(165deg,#5e3530 0%,#2a1815 100%);}
.work.dbl .work-stone{width:75%;clip-path:polygon(0 12%,25% 0,50% 12%,75% 0,100% 12%,100% 100%,0 100%);}

/* === About === */
.about{background:var(--bg-soft);}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;}
.about-img{aspect-ratio:5/6;position:relative;overflow:hidden;background:#1a2538;}
.about-img::before{display:none;}
.about-img > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.about-img::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 50%,rgba(0,0,0,.35) 100%);z-index:2;pointer-events:none;}
.about-img-label{position:absolute;bottom:24px;left:24px;background:#fff;padding:10px 16px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:none;z-index:3;}
.ws-stone{position:absolute;}
.ws-1{width:35%;height:50%;left:15%;bottom:20%;clip-path:polygon(0 6%,50% 0,100% 6%,100% 100%,0 100%);background:linear-gradient(165deg,#5a6478 0%,#1a2538 100%);}
.ws-2{width:25%;height:35%;left:55%;bottom:20%;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);background:linear-gradient(165deg,#7d8a99 0%,#3a4658 100%);}
.ws-base{position:absolute;bottom:0;left:0;right:0;height:20%;background:linear-gradient(180deg,#0a1428 0%,#040810 100%);}
.ws-spark{position:absolute;width:3px;height:3px;background:#f4a850;border-radius:50%;box-shadow:0 0 8px #f4a850;animation:spark 3s ease-in-out infinite;z-index:2;}
.ws-spark:nth-child(4){top:30%;left:30%;animation-delay:0s;}
.ws-spark:nth-child(5){top:42%;left:65%;animation-delay:1.2s;}
.ws-spark:nth-child(6){top:55%;left:48%;animation-delay:2.1s;}
@keyframes spark{0%,100%{opacity:0;transform:scale(.5);}50%{opacity:1;transform:scale(1.2);}}
.about-content h2{font-size:clamp(32px,3.6vw,48px);margin-bottom:24px;font-weight:700;letter-spacing:-.01em;}
.about-content h2 em{font-style:normal;color:var(--accent);}
.about-content p{font-size:15.5px;color:var(--ink);font-weight:500;line-height:1.4;margin-bottom:18px;}
.about-stats{display:flex;justify-content:space-between;gap:24px;margin:40px 0 32px;padding:36px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.about-stat .num{font-family:'Manrope',sans-serif;font-size:64px;font-weight:800;color:var(--ink-heading);line-height:1;letter-spacing:-.02em;display:inline-flex;align-items:flex-start;}
.about-stat .num sup{font-size:24px;color:var(--gold);margin-left:4px;margin-top:6px;font-weight:700;}
.about-stat .lbl{font-size:12px;color:var(--ink-mute);margin-top:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;}

/* === Materials grid === */
.materials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.material{background:#fff;border:1px solid var(--line);padding:0;transition:all .3s;cursor:pointer;text-decoration:none;color:inherit;display:flex;flex-direction:column;}
.material:hover{transform:translateY(-4px);box-shadow:0 16px 32px -16px rgba(14,26,43,.15);border-color:var(--accent);}
.material-swatch{width:100%;aspect-ratio:5/3;position:relative;overflow:hidden;}
.material-swatch::before{display:none;}
.material-swatch img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.swatch-granite{background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='480'%3E%3Cdefs%3E%3Cfilter id='g1' x='0' y='0'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='3.5' numOctaves='5' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .85  0 0 0 0 .55  0 0 0 0 .35  0 0 0 1 0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='2.2' intercept='-1.2'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Cfilter id='g2'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='5' numOctaves='3' seed='13'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1.5 -.5'/%3E%3C/filter%3E%3Cfilter id='g3'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='8' numOctaves='2' seed='3'/%3E%3CfeColorMatrix values='0 0 0 0 .95  0 0 0 0 .92  0 0 0 0 .85  0 0 0 1.4 -.7'/%3E%3C/filter%3E%3C/defs%3E%3Crect width='100%25' height='100%25' fill='%23362118'/%3E%3Crect width='100%25' height='100%25' filter='url(%23g1)' opacity='.6'/%3E%3Crect width='100%25' height='100%25' filter='url(%23g2)' opacity='.55'/%3E%3Crect width='100%25' height='100%25' filter='url(%23g3)' opacity='.35'/%3E%3C/svg%3E"),
  radial-gradient(ellipse at 30% 30%,rgba(150,80,55,.35) 0%,transparent 60%),
  linear-gradient(135deg,#5a3528 0%,#2e1c14 100%);
  background-size:cover,auto,auto;}
.swatch-basalt{background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='480'%3E%3Cdefs%3E%3Cfilter id='b1'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='4.5' numOctaves='4' seed='22'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1.4 -.4'/%3E%3C/filter%3E%3Cfilter id='b2'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='3' seed='5'/%3E%3CfeColorMatrix values='0 0 0 0 .25  0 0 0 0 .27  0 0 0 0 .32  0 0 0 1 -.3'/%3E%3C/filter%3E%3Cfilter id='b3'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='12' numOctaves='2' seed='44'/%3E%3CfeColorMatrix values='0 0 0 0 .35  0 0 0 0 .37  0 0 0 0 .42  0 0 0 1.6 -1'/%3E%3C/filter%3E%3C/defs%3E%3Crect width='100%25' height='100%25' fill='%23151519'/%3E%3Crect width='100%25' height='100%25' filter='url(%23b2)' opacity='.45'/%3E%3Crect width='100%25' height='100%25' filter='url(%23b1)' opacity='.7'/%3E%3Crect width='100%25' height='100%25' filter='url(%23b3)' opacity='.4'/%3E%3C/svg%3E"),
  linear-gradient(155deg,#1c1c22 0%,#0a0a0e 100%);
  background-size:cover,auto;}
.swatch-marble{background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='640'%3E%3Cdefs%3E%3Cfilter id='m1'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012 .03' numOctaves='2' seed='9'/%3E%3CfeDisplacementMap in='SourceGraphic' scale='80'/%3E%3C/filter%3E%3Cfilter id='m2'%3E%3CfeTurbulence type='turbulence' baseFrequency='.02 .04' numOctaves='3' seed='15'/%3E%3CfeColorMatrix values='0 0 0 0 .42  0 0 0 0 .42  0 0 0 0 .48  0 0 0 .5 -.05'/%3E%3C/filter%3E%3Cfilter id='m3'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.4' numOctaves='2' seed='3'/%3E%3CfeColorMatrix values='0 0 0 0 .55  0 0 0 0 .55  0 0 0 0 .6  0 0 0 .35 -.1'/%3E%3C/filter%3E%3C/defs%3E%3Crect width='100%25' height='100%25' fill='%23faf7ef'/%3E%3Crect width='100%25' height='100%25' filter='url(%23m2)' opacity='.45'/%3E%3Cg fill='none' stroke='%23656571' stroke-linecap='round' filter='url(%23m1)'%3E%3Cpath d='M-30 120 Q150 110 320 145 Q500 180 680 155 Q780 142 830 165' stroke-width='3.5' opacity='.45'/%3E%3Cpath d='M-30 220 Q120 245 280 220 Q450 192 620 240 Q780 285 830 260' stroke-width='2.5' opacity='.35'/%3E%3Cpath d='M-30 350 Q160 335 320 380 Q480 425 660 395 Q800 370 840 405' stroke-width='3' opacity='.4'/%3E%3Cpath d='M-30 480 Q150 455 320 500 Q500 545 680 515 Q820 495 870 525' stroke-width='2' opacity='.3'/%3E%3Cpath d='M-30 50 Q140 70 300 45 Q460 22 620 60 Q770 95 830 75' stroke-width='1.5' opacity='.22'/%3E%3Cpath d='M120 -30 Q140 150 105 320 Q75 480 145 670' stroke-width='2' opacity='.3'/%3E%3Cpath d='M380 -30 Q400 180 365 350 Q330 510 395 670' stroke-width='1.6' opacity='.25'/%3E%3Cpath d='M620 -30 Q605 200 645 380 Q680 530 615 670' stroke-width='1.8' opacity='.28'/%3E%3C/g%3E%3Crect width='100%25' height='100%25' filter='url(%23m3)' opacity='.18'/%3E%3C/svg%3E"),
  linear-gradient(155deg,#fafaf6 0%,#ede5d6 100%);
  background-size:cover,auto;}
.material-content{padding:28px 28px 32px;flex:1;display:flex;flex-direction:column;}
.material-num{font-family:'Manrope',sans-serif;font-size:13px;color:var(--ink-mute);margin:24px 28px 8px;font-weight:600;letter-spacing:0;}
.material h3{font-family:'Manrope',sans-serif;font-size:28px;font-weight:700;margin:0 28px 12px;}
.material p{font-size:14px;color:var(--ink);font-weight:500;line-height:1.3;margin:0 28px 20px;flex:1;}
.material-link{align-self:flex-start;font-size:14px;font-weight:600;color:var(--ink);display:inline-flex;align-items:center;gap:6px;border-bottom:1px solid var(--ink);padding-bottom:3px;transition:gap .25s;margin:0 28px 28px;letter-spacing:0;}
.material:hover .material-link{gap:14px;}

/* === Process steps === */
.process{background:var(--ink-heading);color:#c5cad3;}
.process .section-title{color:#fff;}
.process .section-title em{color:var(--gold);}
.process .section-sub{color:rgba(255,255,255,.6);}
.process .ornament{color:var(--gold);}
.process .ornament .line{background:rgba(255,255,255,.15);}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;max-width:1100px;margin:0 auto;}
.step{padding:40px 24px;border-right:1px solid rgba(255,255,255,.1);position:relative;opacity:0;transform:translateY(36px);transition:opacity 1.4s ease,transform 1.4s cubic-bezier(.2,.6,.2,1);}
.step:last-child{border-right:none;}
.process.visible .step{opacity:1;transform:translateY(0);}
.process.visible .step:nth-child(1){transition-delay:0s;}
.process.visible .step:nth-child(2){transition-delay:.25s;}
.process.visible .step:nth-child(3){transition-delay:.5s;}
.process.visible .step:nth-child(4){transition-delay:.75s;}
.process.visible .step:nth-child(5){transition-delay:1s;}
.step-num{font-family:'Manrope',sans-serif;font-size:13.5px;color:var(--gold);margin-bottom:20px;display:flex;align-items:center;gap:10px;font-weight:600;letter-spacing:0;}
.step-num::after{content:'';flex:1;height:1px;background:rgba(255,255,255,.15);}
.step h3{font-size:22px;color:#fff;margin-bottom:12px;font-weight:700;}
.step p{font-size:13.5px;color:rgba(255,255,255,.65);line-height:1.2;}

/* === CTA section === */
.cta{background:var(--bg-soft);padding:100px 0;}
.cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;}
.cta-info h2{font-size:clamp(36px,4vw,52px);margin-bottom:26px;font-weight:700;letter-spacing:-.01em;}
.cta-info h2 em{font-style:normal;color:var(--accent);}
.cta-info > p{color:var(--ink);font-weight:500;font-size:15.5px;line-height:1.4;margin-bottom:36px;max-width:480px;}
.cta-list{border-top:1px solid var(--line);}
.cta-list-item{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);gap:24px;}
.cta-list-item .lbl{font-size:13px;color:var(--ink-mute);font-weight:600;letter-spacing:0;}
.cta-list-item .val{font-family:'Manrope',sans-serif;font-size:15px;text-align:right;text-decoration:none;color:var(--ink);font-weight:600;}
.cta-list-item a.val:hover{color:var(--accent);}

/* === Form === */
.form{background:#fff;padding:48px;border:1px solid var(--line);}
.form h3{font-size:28px;margin-bottom:6px;font-weight:700;}
.form-sub{font-size:13px;color:var(--ink-mute);margin-bottom:30px;}
.field{margin-bottom:10px;}
.field label{display:block;font-size:13px;color:var(--ink-mute);margin-bottom:8px;font-weight:600;letter-spacing:0;}
.field input:not([type=checkbox]):not([type=radio]),.field textarea,.field select{width:100%;padding:13px 14px;background:#fff;border:1px solid var(--line);font-family:inherit;font-size:14px;color:var(--ink);outline:none;transition:border-color .2s;border-radius:0;}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-mute);opacity:.7;}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.check-group{display:grid;grid-template-columns:1fr;gap:12px;}
.check-group .check-full{grid-column:1 / -1;}
.field label.check{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink);font-weight:500;margin:0;cursor:pointer;width:fit-content;}
.check input[type=checkbox]{appearance:none;-webkit-appearance:none;width:18px;height:18px;flex:0 0 18px;border:1.5px solid #c8c8c8;background:#fff;border-radius:0;margin:0;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;position:relative;transition:background .15s,border-color .15s;}
.check input[type=checkbox]:checked{background:var(--ink-heading) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M5 13l4 4L19 7'/%3E%3C/svg%3E") center/12px 12px no-repeat;border-color:var(--ink-heading);}
.check span{user-select:none;}
/* Mobile: modal checkboxes match the stone-filter look (smaller 15px box,
   13px label, compact full-width rows). */
@media (max-width:640px){
  #modalLead .check-group{gap:0;}
  #modalLead .field label.check{width:auto;font-size:13px;font-weight:500;padding:6px 0;}
  #modalLead .check input[type=checkbox]{width:15px;height:15px;flex:0 0 15px;}
  #modalLead .check input[type=checkbox]:checked{background-size:10px 10px;}
}
.form .btn-primary{width:100%;justify-content:center;margin-top:8px;padding:18px;}
.form-note{font-size:11px;color:var(--ink-mute);margin-top:18px;line-height:1.6;}
.form-note a{color:var(--accent);}

/* === Footer === */
footer{background:var(--ink-heading);color:rgba(255,255,255,.7);padding:105px 0 57px;}
.foot-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:48px;padding-bottom:60px;border-bottom:1px solid rgba(255,255,255,.1);}
.foot-logo{margin-bottom:20px;}
.foot-about{font-size:13px;line-height:1.4;color:rgba(255,255,255,.6);max-width:300px;margin-bottom:28px;}
.messengers{display:flex;gap:10px;}
.msg{width:38px;height:38px;border:1px solid rgba(255,255,255,.2);border-radius:50%;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7);text-decoration:none;transition:all .25s;}
.msg:hover{background:var(--gold);color:var(--ink);border-color:var(--gold);}
.foot-h{font-family:'Manrope',sans-serif;font-size:14px;color:#fff;margin-bottom:18px;font-weight:600;letter-spacing:0;}
.foot-list{list-style:none;}
.foot-list li{margin-bottom:10px;}
.foot-list a{color:rgba(255,255,255,.65);text-decoration:none;font-size:13.5px;transition:color .2s;}
.foot-list a:hover{color:var(--gold);}
.foot-list .addr{font-size:13.5px;color:rgba(255,255,255,.65);line-height:1.2;}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:32px;font-size:12px;color:rgba(255,255,255,.4);flex-wrap:wrap;gap:16px;}
.foot-bottom a{color:rgba(255,255,255,.4);text-decoration:none;}
.foot-bottom a:hover{color:var(--gold);}

/* === Floating buttons === */
.float-msg{position:fixed;right:24px;bottom:24px;z-index:40;display:flex;flex-direction:column;gap:12px;}
.float-msg .msg{width:50px;height:50px;border:none;color:#fff;box-shadow:0 8px 24px -6px rgba(14,26,43,.3);}
.float-msg .msg:hover{transform:scale(1.08);}
.float-msg .msg.wa{background:#25d366;}
.float-msg .msg.tg{background:#0088cc;}
.float-msg .msg.up{background:var(--ink-heading);opacity:0;visibility:hidden;transition:all .3s;}
.float-msg .msg.up.show{opacity:1;visibility:visible;}

/* === Page hero (inner pages) === */
.page-hero{display:none;}
.page-hero-show{padding:105px 0 85px;border-bottom:1px solid var(--line);background:var(--bg-soft);}
.crumbs{display:none;}
.crumbs a{text-decoration:none;color:var(--ink-mute);transition:color .2s;}
.crumbs a:hover{color:var(--accent);}
.crumbs .sep{color:var(--line);}
.crumbs .cur{color:var(--ink);}
.page-hero h1{font-size:clamp(38px,4.6vw,60px);font-weight:700;margin-bottom:18px;letter-spacing:-.01em;}
.page-hero h1 em{font-style:normal;color:var(--accent);font-weight:800;}
.page-hero .lead{font-size:15.5px;color:var(--ink);font-weight:500;max-width:680px;line-height:1.4;}

/* === Catalog page === */
.catalog-layout{display:grid;grid-template-columns:240px 1fr;gap:40px;padding:32px 0 80px;}
.catalog-layout > *{min-width:0;}

/* === Фильтры — designer === */
.filters{position:sticky;top:130px;align-self:start;font-size:13px;min-width:0;}
.filters input,.filters button{box-sizing:border-box;font-family:inherit;}
.filter-group{padding:18px 0;border-bottom:1px solid var(--line);}
.filter-group:first-child{padding-top:4px;}
.filter-group.collapsed .filter-list,
.filter-group.collapsed .range,
.filter-group.collapsed .color-swatches{display:none;}
.filter-h{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-heading);padding:0 0 14px;margin:0;display:flex;justify-content:space-between;align-items:center;cursor:pointer;user-select:none;transition:color .15s;}
.filter-group.collapsed .filter-h{padding-bottom:0;}
.filter-h:hover{color:var(--gold);}
.filter-h::after{content:'';width:10px;height:10px;background:linear-gradient(currentColor,currentColor) center/100% 1.5px no-repeat,linear-gradient(currentColor,currentColor) center/1.5px 100% no-repeat;transition:background-size .25s;color:var(--ink-mute);}
.filter-group:not(.collapsed) .filter-h::after{background-size:100% 1.5px,0 0;}

.filter-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px;}
.filter-list li{margin:0;}
.filter-list label{font-size:13px;color:var(--ink);font-weight:500;display:flex;align-items:center;gap:10px;padding:6px 0;cursor:pointer;transition:color .15s;}
.filter-list label:hover{color:var(--ink-heading);}
.filter-list label:hover input[type=checkbox]{border-color:var(--ink-heading);}
.filter-list input[type=checkbox]{appearance:none;-webkit-appearance:none;width:15px;height:15px;border:1.5px solid #c8c8c8;background:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:0 0 15px;transition:background .15s,border-color .15s;position:relative;margin:0;padding:0;}
.filter-list input[type=checkbox]:checked{background:var(--ink-heading);border-color:var(--ink-heading);}
.filter-list input[type=checkbox]:checked::after{content:'';width:7px;height:4px;border-left:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:translateY(-1px) rotate(-45deg);}
.filter-list .count{margin-left:auto;font-size:11.5px;color:var(--ink-mute);}

.range{display:grid;grid-template-columns:1fr 12px 1fr;align-items:center;gap:6px;margin:0;}
.range input{width:100%;min-width:0;padding:9px 10px;border:1px solid var(--line);background:#fff;font-size:12.5px;color:var(--ink);outline:none;transition:border-color .15s;}
.range input::placeholder{color:var(--ink-mute);font-size:12px;}
.range input:focus{border-color:var(--ink-heading);}
.range span{color:var(--ink-mute);font-size:14px;text-align:center;line-height:1;}

.color-swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin-top:2px;}
.color-swatch{width:100%;aspect-ratio:1/1;height:auto;border-radius:50%;border:2px solid transparent;outline:1px solid rgba(0,0,0,.08);cursor:pointer;transition:transform .15s,border-color .15s,outline-color .15s;position:relative;}
.color-swatch:hover{transform:scale(1.1);}
.color-swatch.active{border-color:var(--ink-heading);outline-color:var(--ink-heading);}
.color-swatch::after{content:attr(data-name);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--ink-heading);color:#fff;padding:3px 7px;font-size:10px;letter-spacing:.04em;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;border-radius:2px;z-index:5;}
.color-swatch:hover::after{opacity:1;}

.filter-reset{margin-top:22px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--ink-heading);background:none;border:1px solid var(--ink-heading);padding:11px 14px;cursor:pointer;width:100%;transition:background .2s,color .2s;font-family:inherit;}
.filter-reset:hover{background:var(--ink-heading);color:#fff;}

/* === Toolbar над сеткой — v-bar style === */
.cat-toolbar{display:flex;justify-content:space-between;align-items:center;padding:22px 0;border-bottom:1px solid var(--line);font-size:13px;color:var(--ink);background:#fff;margin-bottom:0;gap:12px;flex-wrap:wrap;}
.cat-toolbar .total{font-size:13px;color:var(--ink);letter-spacing:0;}
.cat-toolbar .total strong{color:var(--ink-heading);font-weight:700;}
.sort{display:flex;align-items:center;gap:10px;}
.sort label{display:none;}
.sort select{border:1px solid var(--line);padding:9px 32px 9px 14px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%237d8a99'/%3E%3C/svg%3E") no-repeat right 12px center;font-family:inherit;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);appearance:none;outline:none;cursor:pointer;font-weight:600;}
.sort select:focus{border-color:var(--ink-heading);}

/* === Карточки товара — Editorial v5-mix-A === */
.products-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;background:transparent;border:none;margin-top:24px;}
.product{background:transparent;border:none;text-decoration:none;color:var(--ink);transition:transform .25s;display:flex;flex-direction:column;position:relative;}
.product:hover{background:transparent;transform:translateY(-4px);box-shadow:none;}
.product-img{aspect-ratio:1/1;position:relative;overflow:hidden;background:var(--bg-soft);}
.product-img::before,.product-img::after{display:none;}
.product-stone{position:absolute;left:50%;bottom:8%;transform:translateX(-50%);width:48%;height:74%;background:linear-gradient(160deg,#2a3650 0%,#0e1a2b 60%,#08111e 100%);clip-path:polygon(0 10%,50% 0,100% 10%,100% 100%,0 100%);transition:transform .6s cubic-bezier(.6,0,.2,1);box-shadow:0 28px 44px -18px rgba(14,26,43,.5),0 6px 14px -4px rgba(14,26,43,.2);z-index:2;}
.product:hover .product-stone{transform:translateX(-50%) scale(1.04) translateY(-3px);}
.product-stone.gray{background:linear-gradient(165deg,#7d8a99 0%,#3a4658 100%);}
.product-stone.red{background:linear-gradient(165deg,#5e3530 0%,#2a1815 100%);}
.product-stone.white{background:linear-gradient(165deg,#f0eadc 0%,#b0a288 100%);}
.product-stone.dbl{width:74%;clip-path:polygon(0 12%,25% 0,50% 12%,75% 0,100% 12%,100% 100%,0 100%);}
.product-stone.fam{width:84%;clip-path:polygon(0 18%,16% 0,33% 18%,50% 0,67% 18%,84% 0,100% 18%,100% 100%,0 100%);height:60%;bottom:14%;}
.product-stone.kh{width:30%;height:88%;clip-path:polygon(0 4%,50% 0,100% 4%,100% 100%,0 100%);}
.product-stone.kh::before{content:'✠';position:absolute;top:18px;left:50%;transform:translateX(-50%);color:var(--gold);font-size:22px;opacity:.6;}
.product-stone.fc{width:80%;height:55%;background:repeating-linear-gradient(90deg,#3a4658 0,#3a4658 4px,transparent 4px,transparent 14px),linear-gradient(180deg,#0e1a2b 0,#0e1a2b 100%);clip-path:none;border-top:3px solid #5a6478;bottom:14%;}
.product.has-photo .product-img{background:var(--bg-soft);}
.product.has-photo .product-img::before,.product.has-photo .product-img::after{display:none;}

/* Тег категории и статус — поверх фото */
.v-cat-tag{position:absolute;top:14px;left:14px;background:#fff;color:var(--ink-heading);border:1px solid var(--ink-heading);font-size:11.5px;letter-spacing:0;text-transform:none;padding:5px 10px;font-weight:700;z-index:3;}
.v-cat-tag.gold{background:var(--gold);}
.v-cat-tag.light{background:#fff;color:var(--ink-heading);border:1px solid var(--ink-heading);}
/* v-cat-tag mobile gap — tuck the stone tag into the corner so it clears the inset photo */
@media (max-width:640px){.v-cat-tag{top:6px;left:6px;padding:4px 8px;font-size:11px;letter-spacing:0;}}
.v-status{position:absolute;top:14px;right:14px;background:#fff;color:var(--ink-heading);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;padding:5px 10px;font-weight:700;z-index:3;border:1px solid var(--ink-heading);}
.v-status.hit{background:var(--gold);color:#fff;border-color:var(--gold);}
.gallery-main.has-photo{background:var(--bg-soft);border:none;}
.gallery-main.has-photo::before{display:none;}
.gallery-main-img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;display:block;transition:transform .35s;z-index:2;padding:2%;mix-blend-mode:multiply;}
.gallery-main.zoomed .gallery-main-img{transform:scale(1.4);}
.gallery-thumb{background:var(--bg-soft);}
.gallery-thumb img{width:100%;height:100%;object-fit:contain;padding:8%;display:block;mix-blend-mode:multiply;}
.product-photo{position:absolute;top:8%;left:6%;width:88%;height:84%;object-fit:contain;mix-blend-mode:multiply;transition:transform .4s ease;z-index:2;}
.product-photo.alt{display:none;}
.product:hover .product-photo.main{transform:scale(1.04);}
.product-tag{display:none;}
.product-add{display:none;}
.product-info{padding:18px 4px 8px;background:#fff;display:grid;grid-template-columns:1fr auto;grid-template-areas:"art art" "name price" "meta meta";align-items:baseline;column-gap:14px;row-gap:0;text-align:left;}
.product-art{grid-area:art;font-family:'Manrope',sans-serif;font-size:13.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);font-weight:600;margin:0 0 6px;}
.product-name{grid-area:name;font-family:'Manrope',sans-serif;font-size:15px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--ink-heading);margin:0;line-height:1.25;}
.product-sub{font-size:11.5px;color:var(--ink);font-weight:600;letter-spacing:.04em;margin-bottom:14px;}
.product-stones{display:inline-flex;align-items:center;gap:5px;}
.stone-dot{width:12px;height:12px;border-radius:50%;border:1px solid var(--line);display:inline-block;cursor:pointer;}
.stone-count{font-size:10.5px;color:var(--ink-mute);letter-spacing:.04em;font-weight:600;}
/* stone-type picker on product page */
.stone-pick{margin-bottom:20px;}
.size-picker{margin:16px 0 24px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.size-picker-label{font-family:'Manrope',sans-serif;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);font-weight:700;margin-bottom:12px;}
.size-picker-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.size-opt{padding:9px 14px;border:1px solid var(--line);background:#fff;cursor:pointer;font-family:'Manrope',sans-serif;font-size:13px;font-weight:600;color:var(--ink);transition:all .2s;letter-spacing:.02em;}
.size-opt:hover{border-color:var(--ink-heading);}
.size-opt.active{border-color:var(--ink-heading);background:var(--ink-heading);color:#fff;}
.size-picker-info{font-size:13.5px;color:var(--ink-soft);}
.size-picker-info strong{color:var(--ink-heading);font-weight:700;}
.opt-stone{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--line);background:#fff;cursor:pointer;font-family:inherit;color:var(--ink);transition:all .2s;text-align:left;}
.opt-stone:hover{border-color:var(--ink-heading);}
.opt-stone.active{border-color:var(--ink-heading);background:var(--bg-soft);}
.opt-swatch{width:18px;height:18px;border-radius:50%;border:1px solid var(--line);flex-shrink:0;}
.opt-text{display:flex;flex-direction:column;line-height:1.2;font-size:13px;font-weight:600;}
.opt-text small{font-size:11px;color:var(--ink-mute);font-weight:600;letter-spacing:.04em;margin-top:2px;}
.product-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid var(--line);}
.product-price{grid-area:price;font-family:'Manrope',sans-serif;font-size:14px;color:var(--ink-heading);font-weight:700;margin:0;white-space:nowrap;}
.product-price small{font-size:11px;color:var(--ink-mute);font-weight:600;display:inline;letter-spacing:0;margin-left:3px;}
.product-mat{display:none;}
.product-meta{grid-area:meta;display:flex;align-items:center;justify-content:flex-start;gap:5px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft);}

.pagination{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:48px;flex-wrap:wrap;}
.pagination a,.pagination span{min-width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--ink);font-size:13px;font-weight:700;border:1px solid var(--line);background:#fff;transition:all .2s;padding:0 10px;}
.pagination a:hover{border-color:var(--ink-heading);}
.pagination .current{background:var(--ink-heading);color:#fff;border-color:var(--ink-heading);}
.pagination .ellip{border:none;background:transparent;min-width:auto;padding:0 2px;color:var(--ink-soft);font-weight:700;pointer-events:none;}
.pagination .arr{font-family:inherit;}

.cat-tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-bottom:60px;}
.cat-tiles .cat{aspect-ratio:1/1;position:relative;display:flex;flex-direction:column;justify-content:space-between;}
.cat-tiles .cat-bottom{display:flex;flex-direction:row;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:auto;}
.tiles-head{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-bottom:18px;}
.tiles-nav{display:flex;gap:10px;}
.tiles-arrow{width:34px;height:34px;flex:0 0 auto;border:1.5px solid var(--ink-heading);border-radius:50%;background:transparent;color:var(--ink-heading);line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .25s,color .25s,opacity .25s,border-color .25s;}
.tiles-arrow svg{width:16px;height:16px;}
.tiles-arrow:hover{background:var(--ink-heading);color:#fff;}
.tiles-arrow:disabled{opacity:.28;cursor:default;}
.tiles-arrow:disabled:hover{background:transparent;color:var(--ink-heading);}
.cat-tiles-scroll{display:flex;grid-template-columns:none;gap:20px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:18px;margin-bottom:50px;scrollbar-width:thin;scrollbar-color:var(--ink-mute) transparent;}
.cat-tiles-scroll::-webkit-scrollbar{height:6px;}
.cat-tiles-scroll::-webkit-scrollbar-track{background:var(--bg-soft);}
.cat-tiles-scroll::-webkit-scrollbar-thumb{background:var(--ink-mute);border-radius:3px;}
.cat-tiles-scroll::-webkit-scrollbar-thumb:hover{background:var(--accent);}
.cat-tiles-scroll .cat{flex:0 0 427px;aspect-ratio:auto;height:260px;scroll-snap-align:start;}
.cat-tiles.cat-tiles-scroll .cat-photo{height:auto;max-width:155px;}
/* Per-IMAGE scroll-tile photo sizing — keyed off the stone image (.catimg-NAME),
   not the tile position, so reordering category_cards.sort_order keeps each tile's
   image the right size. Scoped under .cat-tiles-scroll so it never touches the home grid. */
.cat-tiles.cat-tiles-scroll .catimg-statue .cat-photo,
.cat-tiles.cat-tiles-scroll .catimg-vase .cat-photo{height:180px;}
/* horizontal / tapanaqarer / complex: wide stones sized by WIDTH (height stays auto) */
.cat-tiles.cat-tiles-scroll .catimg-horizontal .cat-photo,
.cat-tiles.cat-tiles-scroll .catimg-tapanaqarer .cat-photo,
.cat-tiles.cat-tiles-scroll .catimg-complex .cat-photo{max-width:175px;}
.cat-tiles.cat-tiles-scroll .catimg-pillars .cat-photo{max-width:114px;}
.cat-tiles.cat-tiles-scroll .catimg-double .cat-photo{max-width:158px;}
/* Mobile: card fits the phone width with the next tile peeking (desktop 417px is
   wider than a phone, so it overflowed); photos scaled down to suit the smaller card. */
@media (max-width:640px){
  .cat-tiles-scroll{gap:14px;}
  /* Hide the whole category scroll section on mobile. */
  .cat-scroll-section{display:none;}
  .cat-tiles-scroll .cat{flex:0 0 86vw;height:230px;}
  .cat-tiles.cat-tiles-scroll .cat-photo{height:auto;max-width:118px;}
  /* wide stones a touch larger but capped to the narrower card */
  .cat-tiles.cat-tiles-scroll .catimg-horizontal .cat-photo,
  .cat-tiles.cat-tiles-scroll .catimg-tapanaqarer .cat-photo,
  .cat-tiles.cat-tiles-scroll .catimg-complex .cat-photo{max-width:140px;}
  .cat-tiles.cat-tiles-scroll .catimg-double .cat-photo{max-width:128px;}
  .cat-tiles.cat-tiles-scroll .catimg-pillars .cat-photo{max-width:90px;}
  /* tall stones keep a fixed height so they don't shrink too small */
  .cat-tiles.cat-tiles-scroll .catimg-statue .cat-photo,
  .cat-tiles.cat-tiles-scroll .catimg-vertical .cat-photo,
  .cat-tiles.cat-tiles-scroll .catimg-vase .cat-photo{height:175px;max-width:118px;}
}
.cat-tiles.cat-tiles-scroll .cat-name{font-size:18px;}
@media (max-width:640px){.cat-tiles.cat-tiles-scroll .cat-name{font-size:16px;}}
.cat-tiles.cat-tiles-scroll .cat-info{min-width:0;flex:1;overflow-wrap:break-word;}
.cat-tiles .cat-info{flex:1;min-width:0;display:flex;flex-direction:column;}
.cat-tiles .cat-name{font-size:22px;line-height:1.15;margin:0 0 6px;}
.cat-tiles .cat-desc{font-size:13px;line-height:1.4;margin:0;}
.cat-tiles .cat-stone{position:static;flex-shrink:0;width:53px;height:70px;}
.cat-tiles .cat:hover .cat-stone{transform:scale(1.08);}
.cat-tiles .cat-stone.dbl{width:79px;height:70px;}
.cat-tiles .cat-stone.fam{width:92px;height:53px;}
.cat-tiles .cat-stone.kh{width:40px;height:81px;}
.cat-tiles .cat-stone.kh::before{font-size:14px;top:8px;}
.cat-tiles .cat-stone.fc{width:79px;height:44px;}
.cat-tiles .cat-stone.vase{width:36px;height:74px;background:linear-gradient(180deg,#1a2538 0%,#0a1018 100%);clip-path:polygon(20% 0,80% 0,80% 18%,90% 25%,90% 80%,75% 95%,25% 95%,10% 80%,10% 25%,20% 18%);}

/* === Product page === */
.product-page{padding:40px 0 100px;}
.product-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
.photo-stack{display:flex;flex-direction:column;background:var(--bg-soft);border:none;gap:12px;}
.photo-item{aspect-ratio:5/6;position:relative;overflow:hidden;background:var(--bg-soft);cursor:zoom-in;}
.photo-item:not(:last-child){border-bottom:none;}
.photo-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:2%;display:block;mix-blend-mode:multiply;transition:transform .12s ease-out;will-change:transform;}
/* Magnifier lens: round glass that floats near the cursor and shows a scaled copy of the image */
.zoom-lens{position:absolute;width:150px;height:150px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px var(--accent),0 12px 28px -6px rgba(14,26,43,.45);overflow:hidden;pointer-events:none;background:var(--bg-soft);z-index:5;}
.zoom-lens img{position:absolute;inset:auto;width:auto;height:auto;max-width:none;box-sizing:border-box;object-fit:contain;mix-blend-mode:multiply;transition:none;will-change:auto;}
.gallery-main{aspect-ratio:5/6;position:relative;overflow:hidden;background:linear-gradient(135deg,#f0eadc 0%,#b0a288 100%);margin-bottom:14px;cursor:zoom-in;}
.gallery-main::before{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 600' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='gimg'%3E%3CfeTurbulence baseFrequency='.35' numOctaves='3' seed='6'/%3E%3CfeColorMatrix values='0 0 0 0 .3 0 0 0 0 .25 0 0 0 0 .2 0 0 0 .15 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23gimg)'/%3E%3C/svg%3E");mix-blend-mode:overlay;}
.gallery-main .product-stone{width:50%;height:80%;}
.gallery-main .zoom{position:absolute;right:16px;bottom:16px;width:40px;height:40px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--ink);z-index:3;box-shadow:0 6px 16px -4px rgba(14,26,43,.2);}
.gallery-thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;}
.gallery-thumb{aspect-ratio:1;background:var(--bg-soft);position:relative;overflow:hidden;cursor:pointer;border:2px solid transparent;transition:border-color .2s;}
.gallery-thumb.active,.gallery-thumb:hover{border-color:var(--accent);}
.gallery-thumb .product-stone{width:60%;height:70%;}

.product-info-block{position:sticky;top:100px;align-self:start;padding-top:0;}
.product-info-block .article{font-family:'Manrope',sans-serif;font-size:10.5px;color:var(--ink-mute);margin-bottom:8px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;}
.product-info-block h1{font-family:'Manrope',sans-serif;font-size:34px;font-weight:700;margin-bottom:14px;line-height:1.15;letter-spacing:-.01em;color:var(--ink-heading);}
.price-block{padding:10px 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;gap:14px;}
.price-block .lbl{font-size:10.5px;color:var(--ink-mute);font-weight:700;letter-spacing:.18em;text-transform:uppercase;}
.price-block .val{font-family:'Manrope',sans-serif;font-size:28px;font-weight:700;color:var(--ink-heading);letter-spacing:-.01em;}
.price-block .val small{font-size:12px;color:var(--ink-mute);font-weight:600;letter-spacing:0;margin-left:4px;}

.specs{margin-bottom:20px;}
.specs h3{font-family:'Manrope',sans-serif;font-size:10.5px;font-weight:700;margin-bottom:8px;color:var(--ink-mute);letter-spacing:.18em;text-transform:uppercase;}
.spec-table{width:100%;border-collapse:collapse;}
.spec-table tr{border-bottom:1px solid var(--line-soft);}
.spec-table tr:last-child{border-bottom:none;}
.spec-table td{padding:9px 0;font-size:13px;vertical-align:middle;}
.spec-table td:first-child{color:var(--ink);width:50%;font-weight:700;}
.spec-table td:last-child{color:var(--ink-heading);font-weight:600;text-align:right;}

.material-pick,.color-pick{margin-bottom:28px;}
.pick-h{font-size:10.5px;color:var(--ink-mute);font-weight:700;margin-bottom:10px;display:flex;justify-content:space-between;align-items:baseline;letter-spacing:.18em;text-transform:uppercase;gap:10px;}
.pick-h span{color:var(--ink-heading);font-weight:600;font-size:13px;font-family:'Manrope',sans-serif;letter-spacing:0;text-transform:none;}
.pick-row{display:flex;flex-wrap:wrap;gap:8px;}
.pick-row .opt{padding:10px 16px;border:1px solid var(--line);background:#fff;font-size:12.5px;cursor:pointer;transition:all .2s;font-family:inherit;color:var(--ink);font-weight:600;}
.pick-row .opt:hover{border-color:var(--ink-heading);}
.pick-row .opt.active{border-color:var(--ink-heading);background:var(--ink-heading);color:#fff;}

.product-cta{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap;}
.product-cta .btn-primary{flex:1;min-width:200px;}

.product-desc{padding:24px 0;border-top:1px solid var(--line);font-size:14px;color:var(--ink);font-weight:500;line-height:1.4;}

.crosssell{padding:80px 0;background:var(--bg-soft);}
.crosssell-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:36px;flex-wrap:wrap;gap:20px;}
.crosssell-head h2{font-size:clamp(28px,3vw,40px);font-weight:700;}
.crosssell-head h2 em{font-style:normal;color:var(--accent);}
.crosssell-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.cs-item{background:#fff;text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:all .25s;border:1px solid var(--line);}
.cs-item:hover{transform:translateY(-3px);box-shadow:0 16px 32px -16px rgba(14,26,43,.15);}
.cs-img{aspect-ratio:1;background:var(--bg-soft);position:relative;overflow:hidden;}
.cs-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:50%;height:50%;color:var(--ink);opacity:.6;}
.cs-info{padding:18px;border-top:1px solid var(--line);}
.cs-info .nm{font-family:'Manrope',sans-serif;font-size:16px;font-weight:700;margin-bottom:4px;}
.cs-info .pr{font-size:12.5px;color:var(--ink-mute);font-weight:600;}

/* === Portfolio === */
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:48px;}
.tab{padding:10px 20px;background:#fff;border:1px solid var(--line);font-size:12px;letter-spacing:.04em;color:var(--ink);cursor:pointer;transition:all .2s;text-decoration:none;font-family:inherit;font-weight:600;}
.tab:hover{border-color:var(--ink-heading);}
.tab.active{background:var(--ink-heading);color:#fff;border-color:var(--ink-heading);}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.portfolio-grid .work{aspect-ratio:4/5;}

.lightbox{position:fixed;inset:0;background:rgba(14,26,43,.96);z-index:200;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all .25s;}
.lightbox.show{opacity:1;visibility:visible;}
.lightbox-img{max-width:80vw;max-height:85vh;background:linear-gradient(135deg,#f0eadc 0%,#b0a288 100%);width:560px;aspect-ratio:3/4;position:relative;overflow:hidden;}
.lightbox-img .product-stone{width:55%;height:80%;}
.lb-close{position:absolute;top:24px;right:24px;width:48px;height:48px;background:rgba(14,26,43,.45);border:1px solid rgba(255,255,255,.3);color:#fff;cursor:pointer;font-size:22px;z-index:3;}
.lb-prev,.lb-next{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;background:rgba(14,26,43,.45);border:1px solid rgba(255,255,255,.3);color:#fff;cursor:pointer;font-size:22px;z-index:3;}
.lb-prev{left:32px;}
.lb-next{right:32px;}
.lb-meta{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);color:#fff;text-align:center;}
.lb-meta strong{font-family:'Manrope',sans-serif;font-style:normal;font-size:18px;font-weight:400;display:block;margin-bottom:4px;}
.lb-meta small{font-size:13px;color:rgba(255,255,255,.6);letter-spacing:0;}

/* === Materials page === */
.material-detail{padding:90px 0;border-bottom:1px solid var(--line);}
.material-detail:nth-child(even){background:var(--bg-soft);}
.mat-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.mat-img{aspect-ratio:5/4;position:relative;overflow:hidden;}
/* === ВИДЫ КАМНЯ — реалистичные текстуры через SVG-фильтры (turbulence) === */

/* ГРАНИТ — крупнозернистая структура с минералами разных цветов */
.mat-img.granite{
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='480'%3E%3Cdefs%3E%3Cfilter id='g1' x='0' y='0'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='3.5' numOctaves='5' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .85  0 0 0 0 .55  0 0 0 0 .35  0 0 0 1 0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='2.2' intercept='-1.2'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Cfilter id='g2'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='5' numOctaves='3' seed='13'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1.5 -.5'/%3E%3C/filter%3E%3Cfilter id='g3'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='8' numOctaves='2' seed='3'/%3E%3CfeColorMatrix values='0 0 0 0 .95  0 0 0 0 .92  0 0 0 0 .85  0 0 0 1.4 -.7'/%3E%3C/filter%3E%3C/defs%3E%3Crect width='100%25' height='100%25' fill='%23362118'/%3E%3Crect width='100%25' height='100%25' filter='url(%23g1)' opacity='.6'/%3E%3Crect width='100%25' height='100%25' filter='url(%23g2)' opacity='.55'/%3E%3Crect width='100%25' height='100%25' filter='url(%23g3)' opacity='.35'/%3E%3C/svg%3E"),
    radial-gradient(ellipse at 30% 30%,rgba(150,80,55,.35) 0%,transparent 60%),
    radial-gradient(ellipse at 75% 75%,rgba(20,10,5,.6) 0%,transparent 65%),
    linear-gradient(135deg,#5a3528 0%,#2e1c14 100%);
  background-size:cover,auto,auto,auto;
}

/* БАЗАЛЬТ — мелкозернистый чёрный с лёгкой шероховатостью */
.mat-img.basalt{
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='480'%3E%3Cdefs%3E%3Cfilter id='b1'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='4.5' numOctaves='4' seed='22'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1.4 -.4'/%3E%3C/filter%3E%3Cfilter id='b2'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='3' seed='5'/%3E%3CfeColorMatrix values='0 0 0 0 .25  0 0 0 0 .27  0 0 0 0 .32  0 0 0 1 -.3'/%3E%3C/filter%3E%3Cfilter id='b3'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='12' numOctaves='2' seed='44'/%3E%3CfeColorMatrix values='0 0 0 0 .35  0 0 0 0 .37  0 0 0 0 .42  0 0 0 1.6 -1'/%3E%3C/filter%3E%3C/defs%3E%3Crect width='100%25' height='100%25' fill='%23151519'/%3E%3Crect width='100%25' height='100%25' filter='url(%23b2)' opacity='.45'/%3E%3Crect width='100%25' height='100%25' filter='url(%23b1)' opacity='.7'/%3E%3Crect width='100%25' height='100%25' filter='url(%23b3)' opacity='.4'/%3E%3C/svg%3E"),
    radial-gradient(ellipse at 30% 22%,rgba(80,80,90,.3) 0%,transparent 50%),
    linear-gradient(155deg,#1c1c22 0%,#0a0a0e 100%);
  background-size:cover,auto,auto;
}

/* МРАМОР — Каррара white с органическими жилками + облачная структура */
.mat-img.marble{
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='640'%3E%3Cdefs%3E%3Cfilter id='m1'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012 .03' numOctaves='2' seed='9'/%3E%3CfeDisplacementMap in='SourceGraphic' scale='80'/%3E%3C/filter%3E%3Cfilter id='m2'%3E%3CfeTurbulence type='turbulence' baseFrequency='.02 .04' numOctaves='3' seed='15'/%3E%3CfeColorMatrix values='0 0 0 0 .42  0 0 0 0 .42  0 0 0 0 .48  0 0 0 .5 -.05'/%3E%3C/filter%3E%3Cfilter id='m3'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.4' numOctaves='2' seed='3'/%3E%3CfeColorMatrix values='0 0 0 0 .55  0 0 0 0 .55  0 0 0 0 .6  0 0 0 .35 -.1'/%3E%3C/filter%3E%3C/defs%3E%3Crect width='100%25' height='100%25' fill='%23faf7ef'/%3E%3Crect width='100%25' height='100%25' filter='url(%23m2)' opacity='.45'/%3E%3Cg fill='none' stroke='%23656571' stroke-linecap='round' filter='url(%23m1)'%3E%3Cpath d='M-30 120 Q150 110 320 145 Q500 180 680 155 Q780 142 830 165' stroke-width='3.5' opacity='.45'/%3E%3Cpath d='M-30 220 Q120 245 280 220 Q450 192 620 240 Q780 285 830 260' stroke-width='2.5' opacity='.35'/%3E%3Cpath d='M-30 350 Q160 335 320 380 Q480 425 660 395 Q800 370 840 405' stroke-width='3' opacity='.4'/%3E%3Cpath d='M-30 480 Q150 455 320 500 Q500 545 680 515 Q820 495 870 525' stroke-width='2' opacity='.3'/%3E%3Cpath d='M-30 50 Q140 70 300 45 Q460 22 620 60 Q770 95 830 75' stroke-width='1.5' opacity='.22'/%3E%3Cpath d='M120 -30 Q140 150 105 320 Q75 480 145 670' stroke-width='2' opacity='.3'/%3E%3Cpath d='M380 -30 Q400 180 365 350 Q330 510 395 670' stroke-width='1.6' opacity='.25'/%3E%3Cpath d='M620 -30 Q605 200 645 380 Q680 530 615 670' stroke-width='1.8' opacity='.28'/%3E%3C/g%3E%3Crect width='100%25' height='100%25' filter='url(%23m3)' opacity='.18'/%3E%3C/svg%3E"),
    radial-gradient(ellipse at 30% 30%,rgba(255,255,255,.55) 0%,transparent 65%),
    radial-gradient(ellipse at 75% 80%,rgba(180,170,155,.25) 0%,transparent 60%),
    linear-gradient(155deg,#fafaf6 0%,#ede5d6 100%);
  background-size:cover,auto,auto,auto;
}

.mat-img > img{display:none;}
.mat-img::before,.mat-img::after{display:none;}
.mat-content h2{font-size:clamp(30px,3.4vw,46px);margin-bottom:20px;font-weight:700;letter-spacing:-.01em;}
.mat-content h2 em{font-style:normal;color:var(--accent);}
.mat-content > p{font-size:15px;color:var(--ink);font-weight:500;line-height:1.4;margin-bottom:20px;}
.mat-props{margin:32px 0;border-top:1px solid var(--line);}
.mat-prop{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);font-size:13.5px;}
.mat-prop .lbl{color:var(--ink);font-weight:700;}
.mat-prop .val{color:var(--ink-heading);font-weight:600;}
.mat-care{padding:20px 22px;background:#fff;border-left:3px solid var(--accent);font-size:13.5px;color:var(--ink);font-weight:500;line-height:1.4;}
.material-detail:nth-child(even) .mat-care{background:#fff;}
.mat-care strong{display:block;font-family:'Manrope',sans-serif;font-size:14px;color:var(--ink);margin-bottom:8px;font-weight:600;letter-spacing:0;}

.compare-table{width:100%;border-collapse:collapse;background:#fff;}
.compare-table th{font-family:'Manrope',sans-serif;font-weight:800;font-size:14px;padding:18px 20px;text-align:left;border-bottom:1.5px solid var(--ink-heading);color:var(--ink-heading);letter-spacing:.04em;text-transform:uppercase;}
.compare-table td{padding:14px 20px;font-size:14px;border-bottom:1px solid var(--line);color:var(--ink-heading);font-weight:600;}
.compare-table tr:last-child td{border-bottom:none;}
.compare-table td:first-child{color:var(--ink);font-weight:700;font-size:14px;letter-spacing:0;}
.compare-table tr:hover td{background:var(--bg-soft);}

/* === Services === */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.service{background:#fff;text-decoration:none;color:inherit;border:1px solid var(--line);transition:all .3s;display:flex;flex-direction:column;}
.service:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 16px 32px -16px rgba(14,26,43,.15);}
.service-img{aspect-ratio:5/4;position:relative;overflow:hidden;background:linear-gradient(135deg,#1a2538 0%,#0a1428 100%);}
.service-img::before{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 500 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='svc'%3E%3CfeTurbulence baseFrequency='.45' numOctaves='3' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .3 0 0 0 0 .25 0 0 0 0 .2 0 0 0 .35 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23svc)'/%3E%3C/svg%3E");mix-blend-mode:overlay;}
.service-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:60px;height:60px;color:var(--gold);}
.service-num{position:absolute;top:18px;left:18px;font-family:'Manrope',sans-serif;font-size:12.5px;color:var(--gold);font-weight:600;letter-spacing:0;}
.service-content{padding:28px;flex:1;display:flex;flex-direction:column;}
.service-content h3{font-family:'Manrope',sans-serif;font-size:22px;font-weight:700;margin-bottom:12px;}
.service-content p{font-size:13.5px;color:var(--ink);font-weight:500;line-height:1.4;margin-bottom:20px;flex:1;}
.service-link{font-size:14px;color:var(--ink);font-weight:600;display:inline-flex;align-items:center;gap:6px;border-bottom:1px solid var(--ink);padding-bottom:3px;align-self:flex-start;transition:gap .25s;letter-spacing:0;}
.service:hover .service-link{gap:14px;}

.service-detail{padding:60px 0 0;}
.svc-grid{display:grid;grid-template-columns:1fr;gap:64px;align-items:start;max-width:880px;margin:0 auto;}
.svc-grid .svc-content > h2,
.svc-grid .svc-content > h3{text-align:center;}
.svc-grid .svc-content > p{text-align:center;}
.svc-meta{display:none!important;}
.svc-content h2{font-size:clamp(30px,3.4vw,42px);margin-bottom:20px;font-weight:700;letter-spacing:-.01em;}
.svc-content h2 em{font-style:normal;color:var(--accent);}
.svc-content > p{font-size:15px;color:var(--ink);font-weight:500;line-height:1.4;margin-bottom:20px;}
.svc-content h3{font-family:'Manrope',sans-serif;font-size:18px;font-weight:600;margin:36px 0 16px;color:var(--ink);letter-spacing:0;}
.svc-content ul{list-style:none;padding:0;margin-bottom:24px;}
.svc-content ul li{padding:12px 0 12px 26px;font-size:14px;color:var(--ink);font-weight:500;line-height:1.4;border-bottom:1px solid var(--line);position:relative;}
.svc-content ul li::before{content:'';position:absolute;left:0;top:20px;width:14px;height:1px;background:var(--accent);}
.svc-meta{background:var(--bg-soft);padding:32px;border:1px solid var(--line);position:sticky;top:140px;}
.svc-meta-h{font-family:'Manrope',sans-serif;font-size:14px;margin-bottom:20px;font-weight:600;color:var(--ink);letter-spacing:0;}
.svc-meta dl{margin-bottom:24px;}
.svc-meta dt{font-size:13px;color:var(--ink-mute);font-weight:600;margin-bottom:4px;letter-spacing:0;}
.svc-meta dd{font-family:'Manrope',sans-serif;font-size:18px;color:var(--ink);margin-bottom:16px;font-weight:700;}
.svc-meta dd:last-child{margin-bottom:0;}
.svc-meta .btn-primary{width:100%;justify-content:center;}

.svc-gallery{padding:80px 0;background:var(--bg-soft);}

/* === About === */
.about-page{padding:80px 0;}
.about-intro{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;margin-bottom:80px;}
.about-block{padding:60px 0;border-top:1px solid var(--line);}
.about-block-grid{display:grid;grid-template-columns:1fr 2fr;gap:48px;align-items:start;}
.about-block-h{font-family:'Manrope',sans-serif;font-size:14px;color:var(--ink);font-weight:600;letter-spacing:0;}
.about-block h2{font-size:clamp(28px,3vw,38px);margin-bottom:18px;font-weight:700;letter-spacing:-.01em;}
.about-block h2 em{font-style:normal;color:var(--accent);}
.about-block p{font-size:14.5px;color:var(--ink);font-weight:500;line-height:1.4;margin-bottom:14px;}
.about-block ul{list-style:none;}
.about-block ul li{padding:10px 0 10px 24px;position:relative;font-size:14px;color:var(--ink);font-weight:500;}
.about-block ul li::before{content:'';position:absolute;left:0;top:20px;width:12px;height:1px;background:var(--accent);}
.about-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:30px;}
.about-photo{aspect-ratio:4/5;position:relative;overflow:hidden;background:#1a2538;}
.about-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.about-photo:hover img{transform:scale(1.04);}

/* === Delivery === */
.delivery-list{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:36px;}
@media (max-width:900px){.delivery-list{grid-template-columns:1fr;}}
.delivery-block{padding:32px;background:#fff;border:1px solid var(--line);position:relative;}
.step-ic{width:44px;height:44px;border-radius:50%;background:var(--bg-soft);display:flex;align-items:center;justify-content:center;color:var(--ink-heading);margin-bottom:18px;transition:background .25s,color .25s;}
.step-ic svg{width:22px;height:22px;}
.delivery-block:hover .step-ic{background:var(--ink-heading);color:#fff;}
.delivery-block .step-num{font-family:'Manrope',sans-serif;font-size:11px;color:var(--ink-mute);margin-bottom:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;}
.delivery-block h3{font-family:'Manrope',sans-serif;font-size:22px;font-weight:700;margin-bottom:14px;}
.delivery-block p{font-size:14px;color:var(--ink);font-weight:500;line-height:1.4;margin-bottom:10px;}
.term-num{font-family:'Manrope',sans-serif!important;font-size:36px!important;color:var(--ink-heading)!important;font-weight:800!important;letter-spacing:-.02em;margin:14px 0 8px!important;line-height:1;}
.term-stagger > .delivery-block{opacity:0;transform:translateY(28px);transition:opacity 1s cubic-bezier(.2,.6,.2,1),transform 1s cubic-bezier(.2,.6,.2,1);}
.term-stagger.in > .delivery-block{opacity:1;transform:translateY(0);}
.term-stagger.in > .delivery-block:nth-child(1){transition-delay:0s;}
.term-stagger.in > .delivery-block:nth-child(2){transition-delay:.15s;}
.term-stagger.in > .delivery-block:nth-child(3){transition-delay:.3s;}
.term-stagger.in > .delivery-block:nth-child(4){transition-delay:.45s;}
.delivery-block ul{list-style:none;margin-top:12px;}
.delivery-block ul li{padding:6px 0 6px 22px;position:relative;font-size:13px;color:var(--ink);font-weight:500;}
.delivery-block ul li::before{content:'';position:absolute;left:0;top:14px;width:10px;height:1px;background:var(--accent);}
.price-list{margin-top:36px;}
.price-list-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);}
.price-list-table th{font-family:'Manrope',sans-serif;font-weight:700;font-size:13px;padding:18px 20px;text-align:left;border-bottom:1.5px solid var(--ink);color:var(--ink-heading);letter-spacing:.04em;text-transform:uppercase;}
.price-list-table th:last-child{text-align:right;}
.price-list-table td{padding:14px 20px;font-size:14px;border-bottom:1px solid var(--line);color:var(--ink);font-weight:600;}
.price-list-table td:last-child{text-align:right;font-weight:800;color:var(--ink-heading);}
.price-list-table tr:last-child td{border-bottom:none;}
.price-list-table tr:hover td{background:var(--bg-soft);}
.price-list-note{font-size:12px;color:var(--ink-mute);margin-top:16px;font-style:normal;}

.zones{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:30px;}
.zone{padding:24px 22px;background:#fff;border-left:3px solid var(--accent);border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.zone-ic{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--accent);margin-bottom:12px;}
.zone-ic svg{width:28px;height:28px;}
.zone h4{font-family:'Manrope',sans-serif;font-size:16px;font-weight:700;margin-bottom:6px;}
.zone p{font-size:12.5px;color:var(--ink);font-weight:500;line-height:1.4;}

/* === Contacts === */
.contacts-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;padding:60px 0 100px;}
.contacts-info{display:flex;flex-direction:column;gap:28px;}
.contact-card{padding:32px;background:#fff;border:1px solid var(--line);}
.contact-card .h{font-family:'Manrope',sans-serif;font-size:22px;font-weight:700;margin-bottom:22px;}
.contact-card dl{display:grid;grid-template-columns:auto 1fr;gap:14px 28px;font-size:14px;}
.contact-card dt{color:var(--ink-mute);font-size:13px;font-weight:600;align-self:center;letter-spacing:0;}
.contact-card dd{color:var(--ink);font-family:'Manrope',sans-serif;font-size:15px;font-weight:600;}
.contact-card dd a{text-decoration:none;color:var(--ink);transition:color .2s;}
.contact-card dd a:hover{color:var(--accent);}
.msg-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;}
.msg-row a{flex:1 1 auto;min-width:0;justify-content:center;padding:12px 18px;background:var(--bg-soft);text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;border:1px solid var(--line);transition:all .2s;letter-spacing:0;}
.msg-row a:hover{border-color:var(--ink-heading);}
.map{aspect-ratio:5/4;background:#e8e4dd;position:relative;overflow:hidden;}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:none;}
.map-pin{position:absolute;left:48%;top:42%;transform:translate(-50%,-100%);width:36px;height:44px;color:var(--accent);filter:drop-shadow(0 6px 10px rgba(0,0,0,.3));}
.map-label{position:absolute;left:50%;top:42%;transform:translate(20px,-50%);background:#fff;padding:10px 16px;font-size:14px;font-weight:600;box-shadow:0 8px 20px -8px rgba(14,26,43,.25);letter-spacing:0;}
.map-label small{display:block;color:var(--ink-mute);font-weight:600;font-size:12px;margin-top:2px;letter-spacing:0;}

/* === Modal === */
.modal-overlay{position:fixed;inset:0;background:rgba(14,26,43,.7);z-index:200;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all .25s;backdrop-filter:blur(4px);}
.modal-overlay.show{opacity:1;visibility:visible;}
.modal{background:#fff;max-width:480px;width:90%;padding:44px;position:relative;}
.modal-close{position:absolute;top:16px;right:16px;width:36px;height:36px;background:transparent;border:none;font-size:22px;cursor:pointer;color:var(--ink-mute);transition:color .2s;}
.modal-close:hover{color:var(--accent);}
.modal h3{font-size:26px;margin-bottom:6px;font-weight:700;}
.modal-success{text-align:center;}
.modal-success .ok{width:60px;height:60px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 20px;}
.modal-success p{color:var(--ink);font-weight:500;font-size:14.5px;line-height:1.4;}

/* === Cookies === */
.cookies{position:fixed;left:24px;bottom:24px;max-width:380px;background:#fff;color:var(--ink-soft);padding:22px 26px;z-index:30;font-size:13px;line-height:1.6;display:flex;flex-direction:column;gap:14px;box-shadow:0 16px 40px -10px rgba(14,26,43,.2);transform:translateY(120%);transition:transform .35s;border:1px solid var(--line);}
.cookies.show{transform:translateY(0);}
.cookies a{color:var(--accent);}
.cookies-actions{display:flex;gap:10px;}
.cookies button{flex:1;padding:11px 16px;font-size:13px;font-weight:600;cursor:pointer;border:none;font-family:inherit;letter-spacing:0;}
.cookies .accept{background:var(--ink-heading);color:#fff;}
.cookies .decline{background:transparent;color:var(--ink);border:1px solid var(--line);}

/* === Responsive === */
/* Long Armenian labels need room: tighten the inline nav on mid screens, then
   switch to the hamburger menu before it would overflow (≤1280px). */
@media (max-width:1500px){
  nav{gap:16px;}
  .nav-item > a{font-size:13px;}
  .header-actions{gap:16px;}
  .header-inner{gap:18px;}
}
@media (max-width:1300px){
  nav{display:none;}
  .nav-burger{display:flex;}
}
@media (max-width:1100px){
  .container{padding:0 36px;}
  .hero-grid,.about-grid,.cta-grid,.about-intro,.contacts-grid,.svc-grid,.product-grid,.mat-grid{grid-template-columns:1fr;gap:48px;}
  .hero-content{padding:60px 0;}
  .hero-visual{min-height:400px;}
  .works-grid,.materials-grid,.services-grid,.products-grid,.crosssell-grid,.portfolio-grid{grid-template-columns:repeat(2,1fr);}
  .cat-tiles{grid-template-columns:repeat(3,1fr);}
  .steps{grid-template-columns:repeat(2,1fr);}
  .step{border-bottom:1px solid rgba(255,255,255,.1);}
  .adv-grid{grid-template-columns:1fr;}
  .adv{border-right:none;border-bottom:1px solid var(--line);padding:20px 0;}
  .adv:last-child{border-bottom:none;}
  .foot-top{grid-template-columns:1fr 1fr;}
  .catalog-layout{grid-template-columns:1fr;gap:32px;}
  .filters{position:static;}
  .about-block-grid{grid-template-columns:1fr;}
  .product-info-block,.svc-meta{position:static;}
  .delivery-list,.about-photos{grid-template-columns:1fr;}
  .zones{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .container{padding:0 20px;}
  /* About page: drop the 60px section padding + top divider line on phones */
  .about-block{padding:0;border-top:none;}
  /* Drop the about-intro bottom gap on phones */
  .about-intro{margin-bottom:0;}
  /* Smaller hero title + description on phones; balance onto ~2 lines */
  .hero-video h1,.hero-video h1 em,.hero-video h1 span,.hero h1{font-size:clamp(24px,6.6vw,32px);overflow-wrap:break-word;word-break:break-word;text-wrap:balance;}
  .hero-video .hero-sub{font-size:13px;margin-bottom:22px;line-height:1.45;}
  /* Shorter hero CTA buttons on phones; stacked column */
  .hero-video .hero-cta{flex-direction:column;align-items:flex-start;gap:10px;}
  .hero-video .btn-primary{padding:10px 18px;font-size:13px;}
  /* Hide the "Ստանալ խորհրդատվություն" consult button on phones */
  .hero-video .btn-ghost{display:none;}
  /* Compact pagination on phones so it stays on one row */
  .pagination{gap:5px;margin-top:36px;}
  .pagination a,.pagination span{min-width:36px;height:36px;font-size:12.5px;padding:0 7px;}
  .topbar-inner{height:auto;padding:8px 0;flex-wrap:wrap;gap:6px;}
  .topbar-left,.topbar-right{gap:14px;font-size:11px;}
  .topbar-left span:nth-child(2),.lang{display:none;}
  .cat-grid,.works-grid,.materials-grid,.steps,.foot-top,.products-grid,.crosssell-grid,.services-grid,.portfolio-grid,.cat-tiles,.about-photos{grid-template-columns:1fr;}
  /* Process ("Ինչպես ենք աշխատում"): remove all divider/accent lines on phones */
  .step{border:none;}
  .step-num::after{display:none;}
  .cat-5{grid-column:span 1;}
  .form-row,.about-stats,.hero-meta{grid-template-columns:1fr 1fr;}
  /* Stats: wrap onto multiple rows on phones (no space-between, tighter gap) */
  .about-stats{justify-content:normal;gap:20px;flex-wrap:wrap;}
  /* Stats stay 2-up. Keep each number on ONE row (no "12" / "800" break) by
     auto-scaling the font to the largest size that fits the cell, up to 48px. */
  .about-stat .num{font-size:clamp(28px,9.5vw,48px);white-space:nowrap;}
  .about-stat .num sup{font-size:.4em;margin-top:.12em;}
  .hero-meta{display:grid;}
  section{padding:60px 0;}
  .form{padding:32px 24px;}
  .modal{padding:32px 24px;}
  .phone-block{display:none;}
  .btn-cta{padding:11px 16px;font-size:10px;}
  /* Hide the header CTA on phones — it already lives in the mobile drawer menu */
  .header-actions .btn-cta{display:none;}
  /* ~30% shorter header bar + smaller logo on phones */
  .header-inner{gap:12px;padding:9px 0;}
  .logo-img{height:38px;}
  /* Match the smaller logo inside the mobile drawer menu */
  .mnav-logo .logo-img{height:34px;}
  .works-head,.crosssell-head{flex-direction:column;align-items:flex-start;}
  .page-hero{padding:36px 0 32px;}
  .gallery-thumbs{grid-template-columns:repeat(4,1fr);}
  .price-list-table{font-size:12px;}
  .price-list-table th,.price-list-table td{padding:10px 12px;}
  .cookies{left:12px;right:12px;bottom:12px;max-width:none;}
  .lightbox-img{max-width:calc(100vw - 118px);}
  .lb-close,.lb-prev,.lb-next{width:38px;height:38px;font-size:17px;}
  .lb-close{top:14px;right:14px;}
  .lb-prev{left:6px;}
  .lb-next{right:6px;}
  .gallery-main{aspect-ratio:1;}
}

/* === SERVICE PAGES — visuals & animations === */
/* Hero banner with 3D cube */
.svc-hero{padding:80px 0;background:var(--bg-soft);border-bottom:1px solid var(--line);}
.svc-hero-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center;}
.svc-hero-text .eyebrow{color:var(--gold);}
.svc-hero-text h2{font-size:clamp(28px,3.5vw,44px);font-weight:700;letter-spacing:-.01em;margin:14px 0 18px;line-height:1.1;color:var(--ink-heading);}
.svc-hero-text h2 em{font-style:normal;color:var(--accent);font-weight:800;}
.svc-hero-text p{font-size:15px;color:var(--ink);font-weight:500;line-height:1.5;margin-bottom:28px;max-width:520px;}
.svc-hero-visual{position:relative;height:420px;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.svc-hero-visual::before{content:'';position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:78%;height:78%;background:radial-gradient(ellipse at center,rgba(176,141,87,.18) 0%,rgba(176,141,87,.08) 35%,transparent 70%);z-index:0;border-radius:50%;}
.svc-hero-visual::after{content:'';position:absolute;left:50%;bottom:8%;transform:translateX(-50%);width:60%;height:14px;background:radial-gradient(ellipse at center,rgba(0,0,0,.18) 0%,rgba(0,0,0,.06) 50%,transparent 80%);filter:blur(6px);z-index:0;border-radius:50%;}
.svc-3d-anim{max-width:90%;max-height:90%;width:auto;height:auto;object-fit:contain;display:block;mix-blend-mode:multiply;position:relative;z-index:1;filter:contrast(1.05) brightness(1.02);}
.svc-grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(14,26,43,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(14,26,43,.06) 1px,transparent 1px);background-size:32px 32px;mask-image:radial-gradient(circle,black 30%,transparent 80%);-webkit-mask-image:radial-gradient(circle,black 30%,transparent 80%);}
.svc-3d-cube{position:relative;width:180px;height:180px;transform-style:preserve-3d;animation:cubeRot 18s linear infinite;}
@keyframes cubeRot{0%{transform:rotateX(-20deg) rotateY(0deg);}100%{transform:rotateX(-20deg) rotateY(360deg);}}
.cube-face{position:absolute;inset:0;background:linear-gradient(135deg,#1e2a44 0%,#0e1a2b 100%);border:1px solid rgba(176,141,87,.25);box-shadow:inset 0 0 30px rgba(176,141,87,.12);}
.cube-front{transform:translateZ(90px);}
.cube-back{transform:rotateY(180deg) translateZ(90px);}
.cube-right{transform:rotateY(90deg) translateZ(90px);}
.cube-left{transform:rotateY(-90deg) translateZ(90px);}
.cube-top{transform:rotateX(90deg) translateZ(90px);background:linear-gradient(135deg,#3a4658 0%,#1e2a44 100%);}
.cube-bottom{transform:rotateX(-90deg) translateZ(90px);background:linear-gradient(135deg,#0a1018 0%,#000 100%);}

/* Engrave hero — большая буква "А" с золотым градиентом */
.svc-engrave{position:relative;width:280px;height:280px;display:flex;align-items:center;justify-content:center;}
.svc-engrave svg{width:100%;height:100%;animation:engPulse 4s ease-in-out infinite;}
@keyframes engPulse{0%,100%{filter:drop-shadow(0 0 0 rgba(176,141,87,0));transform:scale(1);}50%{filter:drop-shadow(0 0 12px rgba(176,141,87,.3));transform:scale(1.02);}}

/* Foundation hero — слоёный пирог фундамента */
.svc-found{position:relative;width:280px;height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;}
.svc-found > div{width:200px;transition:transform .35s;}
.svc-found:hover .found-stone{transform:translateY(-6px);}
.found-stone{height:60px;background:linear-gradient(180deg,#1e2a44 0%,#0e1a2b 100%);clip-path:polygon(20% 0,80% 0,80% 12%,90% 18%,90% 100%,10% 100%,10% 18%,20% 12%);position:relative;z-index:5;margin-bottom:-2px;}
.found-soil{height:14px;width:240px!important;background:linear-gradient(180deg,#5a4a35 0%,#3a2820 100%);position:relative;}
.found-base{height:30px;background:repeating-linear-gradient(45deg,#7d8079 0,#7d8079 4px,#a0a39c 4px,#a0a39c 8px);border-top:1px solid rgba(0,0,0,.2);border-bottom:1px solid rgba(0,0,0,.2);}
.found-rebar{height:24px;background:linear-gradient(180deg,#4a4a52 0%,#2a2a32 100%);position:relative;}
.found-rebar::before,.found-rebar::after{content:'';position:absolute;left:8px;right:8px;top:50%;height:2px;background:#b08d57;}
.found-rebar::before{top:6px;}
.found-rebar::after{top:14px;}
.found-gravel{height:18px;background:radial-gradient(circle at 20% 50%,#a0a39c 2px,transparent 3px),radial-gradient(circle at 50% 50%,#a0a39c 2px,transparent 3px),radial-gradient(circle at 80% 50%,#a0a39c 2px,transparent 3px),#5a5e58;background-size:30px 18px;}

/* Tiles hero — 4×4 сетка анимированных плиток */
.svc-tiles{position:relative;width:240px;height:240px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;transform:rotateX(45deg) rotateZ(-30deg);}
.svc-tiles span{background:linear-gradient(135deg,#3a4658 0%,#1e2a44 100%);border-radius:2px;animation:tileWave 3s ease-in-out infinite;}
.svc-tiles span:nth-child(1){animation-delay:0s;}
.svc-tiles span:nth-child(2){animation-delay:.1s;}
.svc-tiles span:nth-child(3){animation-delay:.2s;}
.svc-tiles span:nth-child(4){animation-delay:.3s;}
.svc-tiles span:nth-child(5){animation-delay:.1s;}
.svc-tiles span:nth-child(6){animation-delay:.2s;}
.svc-tiles span:nth-child(7){animation-delay:.3s;}
.svc-tiles span:nth-child(8){animation-delay:.4s;}
.svc-tiles span:nth-child(9){animation-delay:.2s;}
.svc-tiles span:nth-child(10){animation-delay:.3s;}
.svc-tiles span:nth-child(11){animation-delay:.4s;}
.svc-tiles span:nth-child(12){animation-delay:.5s;}
.svc-tiles span:nth-child(13){animation-delay:.3s;}
.svc-tiles span:nth-child(14){animation-delay:.4s;}
.svc-tiles span:nth-child(15){animation-delay:.5s;}
.svc-tiles span:nth-child(16){animation-delay:.6s;}
@keyframes tileWave{0%,100%{transform:translateZ(0);box-shadow:0 0 0 rgba(0,0,0,0);}50%{transform:translateZ(20px);box-shadow:0 8px 16px rgba(14,26,43,.3);}}

/* Fence hero — кованая ограда */
.svc-fence{position:relative;width:280px;height:240px;}
.fence-base{position:absolute;left:10px;right:10px;bottom:30px;height:14px;background:linear-gradient(180deg,#7d8079 0%,#3a4658 100%);}
.fence-rail-top{position:absolute;left:10px;right:10px;top:55px;height:3px;background:var(--ink-heading);}
.fence-rail-mid{position:absolute;left:10px;right:10px;top:140px;height:3px;background:var(--ink-heading);}
.fence-bar{position:absolute;bottom:44px;width:6px;height:170px;background:linear-gradient(180deg,#1e2a44 0%,#0e1a2b 100%);border-radius:3px 3px 0 0;}
.fence-bar::before{content:'';position:absolute;top:-12px;left:-3px;right:-3px;height:14px;background:var(--gold);clip-path:polygon(50% 0,80% 30%,100% 100%,0 100%,20% 30%);}
.svc-fence .fence-bar:nth-child(1){left:30px;}
.svc-fence .fence-bar:nth-child(2){left:65px;}
.svc-fence .fence-bar:nth-child(3){left:100px;}
.svc-fence .fence-bar:nth-child(4){left:135px;}
.svc-fence .fence-bar:nth-child(5){left:170px;}
.svc-fence .fence-bar:nth-child(6){left:205px;}
.svc-fence .fence-bar:nth-child(7){left:240px;}

/* === Фото в категориях вместо CSS-камня === */
.cat-photo{flex-shrink:0;height:200px;width:auto;max-width:210px;object-fit:contain;transition:transform .5s,height .35s ease,width .35s ease,max-width .35s ease;}
.cat:hover .cat-photo{transform:scale(1.06) translateY(-4px);}
/* Auto width: each image keeps its natural proportions at a fixed height
   (object-fit:contain), capped to the card so wide slabs don't overflow.
   object-position:bottom grounds them on a shared baseline. */
.cat-3 .cat-photo,.cat-4 .cat-photo,.cat-5 .cat-photo,.cat-6 .cat-photo{width:auto;height:240px;max-width:100%;object-position:center bottom;}
.cat-1 .cat-photo,.cat-2 .cat-photo{width:auto;height:300px;max-width:80%;object-position:center bottom;}
/* All main category cards share the wide top-card frame so the 2-per-row grid is uniform. */
@media (min-width:1201px){.cat-grid > .cat{aspect-ratio:9/5;}}
/* Title on one line over the image only on wide screens (1800px+). In the
   1200–1800px band the column is tighter, so let the title wrap normally instead. */
.cat-3 .cat-info,.cat-4 .cat-info,.cat-5 .cat-info{position:relative;z-index:1;}
@media (min-width:1860px){
  .cat-3 .cat-name,.cat-4 .cat-name,.cat-5 .cat-name{white-space:nowrap;}
}
/* Narrow 3-up: shrink the frame a touch so the title/description still fit */
@media (min-width:1201px) and (max-width:1800px){
  .cat-3 .cat-photo,.cat-4 .cat-photo,.cat-5 .cat-photo,.cat-6 .cat-photo{width:auto;height:220px;}
}
/* The two wide top cards are short in the 1200–1500px band, so the tall frame
   overflows and hides their text — shrink it here so the title/description show. */
@media (min-width:1201px) and (max-width:1500px){
  .cat-1 .cat-photo,.cat-2 .cat-photo{width:auto;height:230px;}
}
/* 1800px+: let every frame grow a little on very wide screens, keeping them uniform */
@media (min-width:1800px){
  .cat-3 .cat-photo,.cat-4 .cat-photo,.cat-5 .cat-photo,.cat-grid-extra .cat-photo{width:60%;height:290px;}
  .cat-1 .cat-photo,.cat-2 .cat-photo{height:360px;}
}
@media (min-width:1201px){.catimg-statue .cat-photo,.catimg-vase .cat-photo{height:clamp(220px,18vw,320px);width:auto;max-width:clamp(48%,calc(27vw - 160px),60%);}}
.cat-tiles .cat-photo{height:140px;max-width:140px;}
.cat-tile-hidden{display:none;}
.cat-tiles.expanded .cat-tile-hidden{display:flex;animation:catExFade .5s cubic-bezier(.2,.6,.2,1);}
/* Category cards: when the grid collapses to 2-up / 1-up, let cards grow to fit
   their content so the photo isn't clipped ("behind the card") or shrunk by the
   fixed aspect-ratio; size the photo relative to the card width. */
/* Below 1200px go 2-up and stack the content (3-up side-by-side applies at 1200px+). */
@media (max-width:1200px){
  .cat-grid > .cat{flex:1 1 calc(50% - 12px);}
  .cat-grid > .cat-5{flex-basis:calc(50% - 12px);}
  .cat,.cat.cat-1,.cat.cat-2{aspect-ratio:auto;min-height:230px;}
  .cat-bottom{flex-direction:column;align-items:flex-start;gap:16px;}
  .cat-photo,.cat-1 .cat-photo,.cat-2 .cat-photo,.cat-3 .cat-photo,.cat-4 .cat-photo,.cat-5 .cat-photo{align-self:center;width:auto;height:auto;max-height:220px;max-width:80%;}
  .cat-3 .cat-name,.cat-4 .cat-name,.cat-5 .cat-name{white-space:normal;}
}
/* Phones: stack the photo under the text and center it, so wide/tall images stay
   a sensible size and long titles (e.g. «Գերեզմանատներ») get the full card width. */
@media (max-width:640px){
  .cat{padding:22px 20px;}
  .cat-name{font-size:21px;}
}
@media (max-width:380px){
  .cat{padding:18px 16px;}
  .cat-name{font-size:18px;}
  .cat-desc{font-size:12px;}
}

/* Доп. сетка скрытых категорий (Show more) — 3 карточки, как cat-3/4/5 */
.cat-grid-extra{display:none;flex-wrap:wrap;gap:24px;margin-top:24px;justify-content:flex-start;}
.cat-grid-extra.show{display:flex;animation:catExFade .5s cubic-bezier(.2,.6,.2,1);}
/* flex-grow 0 so a lonely last card keeps the same 1/3 width as the others
   (with grow:1 it stretched to fill the row and looked oversized). */
.cat-grid-extra > .cat{flex:0 1 calc(33.333% - 16px);min-width:0;}
/* "Show more" grid: collapse like the main grid instead of staying 3-in-a-row */
@media (max-width:1200px){
  .cat-grid-extra > .cat{flex:0 1 calc(50% - 12px);}
}
.cat-grid-extra .cat-ex{aspect-ratio:5/4;}
/* Same uniform frame as the main cards so all show-more images render consistently. */
.cat-grid-extra .cat-photo{width:52%;height:240px;max-width:none;object-position:center bottom;}
/* Narrow 3-up: shrink the show-more frame so text fits (matches main) */
@media (min-width:1201px) and (max-width:1800px){
  .cat-grid-extra .cat-photo{width:48%;height:220px;}
}
/* Tablet/narrow desktop: let show-more cards grow to fit (match main cards) so photos don't clip */
@media (max-width:1200px){
  .cat-grid-extra .cat-ex{aspect-ratio:auto;min-height:230px;}
  .cat-grid-extra .cat-photo{align-self:center;width:auto;height:auto;max-height:220px;max-width:80%;}
}
/* Mobile / small tablet: stack ALL category cards (main grid + "show more") one per row */
@media (max-width:768px){
  .cat-grid > .cat,.cat-grid-extra > .cat{flex-basis:100%;}
}
@media (max-width:640px){
  .cat-grid-extra .cat-photo{align-self:center;max-width:72%;max-height:200px;}
}
@keyframes catExFade{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}

.cat-more-wrap{display:flex;justify-content:center;margin-top:32px;margin-bottom:32px;}
.cat-more-btn{font-family:'Manrope',sans-serif;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--ink-heading);background:transparent;border:1.5px solid var(--ink-heading);padding:14px 32px;cursor:pointer;transition:background .25s,color .25s;}
.cat-more-btn:hover{background:var(--ink-heading);color:#fff;}
.cat-more-btn span{color:var(--gold);}
.cat-more-wrap.hidden{display:none;}
@media (max-width:900px){.cat-grid-extra{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.cat-grid-extra{grid-template-columns:1fr;}}

/* === STONE SHOWCASE — used on home pages === */
.stone-showcase{padding:100px 0;}
.ss-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:48px;flex-wrap:wrap;}
.ss-head h2{font-size:clamp(34px,4vw,52px);font-weight:700;letter-spacing:-.02em;line-height:1.05;max-width:680px;}
.ss-head h2 em{color:var(--accent);font-weight:800;}
.ss-head p{font-size:14px;color:var(--ink-mute);max-width:380px;line-height:1.2;}
.ss-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.ss-card{background:transparent;border:none;text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:transform .25s;}
.ss-card:hover{transform:translateY(-4px);box-shadow:none;border:none;}
.ss-photo{aspect-ratio:1/1;background:var(--bg-soft);border:none;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:8%;}
.ss-photo img{max-width:100%;max-height:100%;object-fit:contain;mix-blend-mode:multiply;transition:transform .4s ease;}
.ss-photo img.alt{display:none;}
.ss-card:hover .ss-photo img.main{transform:scale(1.04);}
.ss-info{padding:18px 4px 8px;background:#fff;display:grid;grid-template-columns:1fr auto;grid-template-areas:"art art" "name price" "mat mat";align-items:baseline;column-gap:14px;row-gap:0;text-align:left;}
.ss-art{grid-area:art;font-size:13.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);font-weight:600;margin:0 0 6px;}
.ss-name{grid-area:name;font-family:'Manrope',sans-serif;font-size:15px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--ink-heading);margin:0;line-height:1.25;}
.ss-bottom{display:contents;}
.ss-price{grid-area:price;font-size:14px;color:var(--ink-heading);font-weight:700;margin:0;white-space:nowrap;display:flex;align-items:baseline;gap:3px;}
.ss-price small{font-size:11px;color:var(--ink-mute);font-weight:600;display:inline;}
.ss-mat{grid-area:mat;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft);font-size:12px;color:var(--ink-mute);font-weight:500;}
@media (max-width:1100px){.ss-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.ss-grid{grid-template-columns:1fr;}}

/* Stats bar */
.svc-stats{padding:50px 0;border-bottom:1px solid var(--line);}
.svc-stats-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:64px;}
.svc-stats-grid .svc-stat{flex:0 1 220px;text-align:center;}
.svc-stat{text-align:center;padding:0 14px;}
.svc-stat .num{font-family:'Manrope',sans-serif;font-size:54px;font-weight:800;color:var(--ink-heading);line-height:1;letter-spacing:-.02em;display:inline-flex;align-items:flex-start;justify-content:center;}
.svc-stat .num sup{font-size:20px;color:var(--gold);margin-left:2px;margin-top:6px;font-weight:700;}
.svc-stat .lbl{margin-top:14px;font-size:11px;color:var(--ink-mute);font-weight:700;letter-spacing:.16em;text-transform:uppercase;line-height:1.5;}

/* Feature grid (что входит) */
.feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0 28px;}
.feat{display:flex;align-items:flex-start;gap:14px;padding:16px;background:var(--bg-soft);border:1px solid var(--line);transition:transform .25s,border-color .25s;}
.feat:hover{transform:translateY(-3px);border-color:var(--ink-heading);}
.feat-ic{width:38px;height:38px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#fff;color:var(--ink-heading);border-radius:50%;}
.feat-ic svg{width:20px;height:20px;}
.feat strong{display:block;font-family:'Manrope',sans-serif;font-size:14px;font-weight:700;color:var(--ink-heading);margin-bottom:2px;}
.feat > div:last-child{font-size:13px;color:var(--ink);font-weight:500;line-height:1.4;}

/* Process timeline */
.svc-process{padding:80px 0;background:var(--bg-soft);}
.proc-timeline{display:flex;flex-wrap:wrap;gap:24px;position:relative;}
.proc-timeline::before{content:'';position:absolute;top:42px;left:8%;right:8%;height:1px;background:linear-gradient(90deg,transparent,var(--ink-mute) 10%,var(--ink-mute) 90%,transparent);z-index:0;opacity:.3;}
.proc-step{flex:1 1 calc(25% - 18px);min-width:0;position:relative;background:#fff;padding:28px 24px;border:1px solid var(--line);text-align:center;opacity:0;transform:translateY(28px);transition:opacity 1s cubic-bezier(.2,.6,.2,1),transform 1s cubic-bezier(.2,.6,.2,1);}
.proc-timeline.in .proc-step{opacity:1;transform:translateY(0);}
.proc-timeline.in .proc-step:nth-child(1){transition-delay:0s;}
.proc-timeline.in .proc-step:nth-child(2){transition-delay:.18s;}
.proc-timeline.in .proc-step:nth-child(3){transition-delay:.36s;}
.proc-timeline.in .proc-step:nth-child(4){transition-delay:.54s;}
.proc-num{font-family:'Manrope',sans-serif;font-size:13px;font-weight:700;color:var(--gold);letter-spacing:.18em;margin-bottom:10px;}
.proc-ic{width:54px;height:54px;border-radius:50%;background:var(--bg-soft);color:var(--ink-heading);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;transition:background .3s,color .3s;}
.proc-step:hover .proc-ic{background:var(--ink-heading);color:#fff;}
.proc-ic svg{width:24px;height:24px;}
.proc-step h4{font-family:'Manrope',sans-serif;font-size:16px;font-weight:700;margin-bottom:8px;color:var(--ink-heading);}
.proc-step p{font-size:13px;color:var(--ink);font-weight:500;line-height:1.4;}

/* Project gallery (real photos) */
.proj-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:28px;}
.proj{position:relative;display:flex;flex-direction:column;text-decoration:none;color:inherit;background:var(--bg-soft);overflow:hidden;transition:transform .3s;}
.proj:hover{transform:translateY(-4px);}
.proj img{width:100%;aspect-ratio:1/1;object-fit:contain;mix-blend-mode:multiply;padding:8%;display:block;transition:transform .4s;}
.proj:hover img{transform:scale(1.05);}
.proj-meta{padding:14px 18px 18px;background:#fff;border-top:1px solid var(--line-soft);}
.proj-meta strong{display:block;font-family:'Manrope',sans-serif;font-size:14px;font-weight:700;color:var(--ink-heading);margin-bottom:2px;}
.proj-meta{font-size:12px;color:var(--ink-mute);font-weight:500;}

@media (max-width:900px){
  .svc-hero-grid{grid-template-columns:1fr;}
  .svc-hero-visual{height:240px;}
  .svc-stats-grid,.proj-grid{grid-template-columns:1fr 1fr;}
  .proc-step{flex-basis:calc(50% - 12px);}
  .feat-grid{grid-template-columns:1fr;}
  .proc-timeline::before{display:none;}
}
@media (max-width:640px){
  /* 3D-service stats: 2 side by side + 1 below, left-aligned on phones */
  .svc-stats-grid{gap:30px 16px;justify-content:flex-start;}
  .svc-stats-grid .svc-stat{flex:0 1 calc(50% - 9px);padding:0 4px;text-align:left;}
  .svc-stat .num{font-size:42px;}
  .svc-stat .num sup{font-size:16px;}
}
@media (max-width:600px){
  .proc-timeline{flex-direction:column;}
  .proc-step{flex-basis:auto;}
}

/* === Per-IMAGE category photo sizing — keyed off the stone image (.catimg-NAME),
   NOT the card position (.cat-N). Each stone carries its own width/height, so cards
   can be reordered freely via category_cards.sort_order and the styling always
   follows the image instead of breaking on whatever lands at that slot.
   object-fit:contain (.cat-photo) + the max-width caps below keep every image inside
   its card in any slot. Placed last so it wins the cascade. */
@media (min-width:1201px){
  .catimg-vertical .cat-photo   {width:auto;max-width:62%;height:300px;}
  .catimg-double .cat-photo     {width:auto;max-width:78%;height:clamp(205px,calc(18vw - 40px),300px);}
  .catimg-horizontal .cat-photo {width:auto;max-width:72%;height:clamp(150px,calc(15vw - 60px),230px);}
  .catimg-complex .cat-photo    {width:auto;max-width:72%;height:clamp(176px,calc(21vw - 76px),260px);}
  .catimg-pillars .cat-photo    {width:auto;max-width:72%;height:clamp(234px,calc(21.5vw - 24px),320px);}
  .catimg-tapanaqarer .cat-photo{width:auto;max-width:62%;height:clamp(153px,calc(19.25vw - 78px),230px);}
  .catimg-khachkar .cat-photo   {width:auto;max-width:50%;height:clamp(200px,16vw,290px);}
  /* statue + vase are sized by the de-scoped rule just above this block. */
}

/* 1800px+: enlarge the larger stones ~20% on very wide screens (double + the
   tall-narrow stones khachkar/statue/vase keep their size). Cards are overflow:hidden
   and bottom-anchored, so this only crops a touch more off the top, never breaks layout. */
@media (min-width:1800px){
  .catimg-vertical .cat-photo   {height:432px;}
  .catimg-horizontal .cat-photo {width:72%;height:348px;}
  .catimg-complex .cat-photo    {height:312px;}
  .catimg-pillars .cat-photo    {height:384px;}
  .catimg-tapanaqarer .cat-photo{height:276px;}
}

/* Image lightbox (click a gallery image to view it full-size) */
.img-lightbox{position:fixed;inset:0;z-index:1000;background:rgba(14,26,43,.92);display:none;align-items:center;justify-content:center;padding:24px;cursor:zoom-out;}
.img-lightbox.open{display:flex;}
.img-lightbox img{max-width:95vw;max-height:92vh;object-fit:contain;border-radius:4px;box-shadow:0 24px 70px rgba(0,0,0,.55);cursor:default;}
.img-lightbox-close{position:absolute;top:18px;right:22px;width:44px;height:44px;border:none;background:rgba(255,255,255,.14);color:#fff;font-size:22px;line-height:1;border-radius:50%;cursor:pointer;transition:background .2s;}
.img-lightbox-close:hover{background:rgba(255,255,255,.28);}
.proj[data-lightbox]{cursor:zoom-in;}
