:root{
  --bg: #0a0d16;
  --bg-soft: #10152238;
  --panel: #131a2b;
  --panel-border: #26304a;
  --text: #eef1fb;
  --text-dim: #97a1bf;
  --accent: #ff5a36;
  --accent-soft: #ff5a3626;
  --glow: #5ad1ff;
  --glow-soft: #5ad1ff22;
  --radius-sm: 12px;
  --radius-md: 16px;
  --radius-lg: 22px;
  --maxw: 1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:'Inter',system-ui,sans-serif;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  position:relative;
}
h1,h2,h3,.display{
  font-family:'Space Grotesk',system-ui,sans-serif;
  font-weight:600;
  letter-spacing:-0.01em;
  margin:0;
}
a{color:inherit;text-decoration:none;}
img,svg{display:block;max-width:100%;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
.eyebrow{
  font-size:13px; text-transform:uppercase; letter-spacing:0.12em;
  color:var(--glow); font-weight:600; margin-bottom:12px; display:block;
}

/* ===== global starfield + moving space objects ===== */
.starfield{
  position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden;
}
.starfield::before, .starfield::after{
  content:""; position:absolute; inset:-10%; opacity:0.55;
  background-repeat:repeat; background-size:520px 340px;
}
.starfield::before{
  background-image:
    radial-gradient(1.4px 1.4px at 8% 22%, #ffffffaa, transparent),
    radial-gradient(1px 1px at 32% 68%, #ffffff77, transparent),
    radial-gradient(1.8px 1.8px at 58% 14%, #ffffffcc, transparent),
    radial-gradient(1px 1px at 74% 52%, #ffffff66, transparent),
    radial-gradient(1.3px 1.3px at 91% 80%, #ffffff88, transparent),
    radial-gradient(1px 1px at 15% 90%, #ffffff55, transparent);
  animation: drift-slow 220s linear infinite, twinkle-a 5s ease-in-out infinite alternate;
}
.starfield::after{
  background-size:640px 420px;
  opacity:0.35;
  background-image:
    radial-gradient(1px 1px at 20% 30%, #5ad1ffaa, transparent),
    radial-gradient(1.4px 1.4px at 46% 76%, #ffffff88, transparent),
    radial-gradient(1px 1px at 66% 24%, #ff5a3688, transparent),
    radial-gradient(1.2px 1.2px at 84% 60%, #ffffff77, transparent);
  animation: drift-slow 320s linear infinite reverse, twinkle-b 7s ease-in-out infinite alternate;
}
@keyframes drift-slow{ from{ transform:translate3d(0,0,0); } to{ transform:translate3d(-480px,320px,0); } }
@keyframes twinkle-a{ from{opacity:0.35;} to{opacity:0.75;} }
@keyframes twinkle-b{ from{opacity:0.2;} to{opacity:0.5;} }

.shooting-star{
  position:absolute; width:120px; height:2px; border-radius:2px;
  background:linear-gradient(90deg, #fff, transparent);
  opacity:0; transform:rotate(-18deg);
  filter:drop-shadow(0 0 6px #ffffffaa);
}
.shooting-star.s1{ top:12%; left:-10%; animation:shoot 9s ease-in 1.2s infinite; }
.shooting-star.s2{ top:28%; left:-10%; width:90px; animation:shoot 13s ease-in 5s infinite; }
.shooting-star.s3{ top:6%; left:-10%; width:70px; animation:shoot 16s ease-in 9.5s infinite; }
@keyframes shoot{
  0%{ opacity:0; transform:translate(0,0) rotate(-18deg); }
  2%{ opacity:1; }
  10%{ opacity:0; transform:translate(60vw,28vh) rotate(-18deg); }
  100%{ opacity:0; transform:translate(60vw,28vh) rotate(-18deg); }
}

/* orbiting planet badge — decorative "moving space object" */
.orbit-badge{ position:relative; width:132px; height:132px; flex-shrink:0; }
.orbit-badge .planet{
  position:absolute; inset:26px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #8fe3ff, #2b6fae 55%, #0f2b47 100%);
  box-shadow:0 0 40px 8px rgba(90,209,255,0.28), inset -6px -8px 16px rgba(0,0,0,0.4);
}
.orbit-badge .ring{
  position:absolute; inset:0; border:1px dashed rgba(255,255,255,0.28); border-radius:50%;
  animation: spin 16s linear infinite;
}
.orbit-badge .ring.ring-2{ inset:14px; border-color:rgba(255,90,54,0.35); animation-duration:10s; animation-direction:reverse; }
.orbit-badge .satellite{
  position:absolute; top:-4px; left:50%; width:9px; height:9px; margin-left:-4.5px;
  border-radius:50%; background:var(--glow); box-shadow:0 0 12px 4px rgba(90,209,255,0.65);
}
.orbit-badge .ring-2 .satellite{ background:var(--accent); box-shadow:0 0 10px 3px rgba(255,90,54,0.6); width:6px; height:6px; margin-left:-3px; }
@keyframes spin{ to{ transform:rotate(360deg); } }

@media (prefers-reduced-motion: reduce){
  .starfield::before, .starfield::after, .shooting-star, .orbit-badge .ring{
    animation:none !important;
  }
}

/* header */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(10,13,22,0.72);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--panel-border);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 24px; max-width:var(--maxw); margin:0 auto;
}
.logo{display:flex; align-items:center; gap:10px;}
.logo img{height:32px; width:auto; display:block;}
.nav-links{display:flex; gap:28px; font-size:14.5px; color:var(--text-dim);}
.nav-links a{transition:color .2s;}
.nav-links a:hover{color:var(--text);}
.nav-cta{
  background:linear-gradient(135deg, var(--accent), #ff7a54);
  color:#fff; padding:10px 22px; border-radius:999px; font-weight:600; font-size:14px;
  box-shadow:0 4px 20px var(--accent-soft);
  white-space:nowrap;
}
.menu-toggle{
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  width:40px; height:40px; border-radius:10px;
  background:none; border:1px solid var(--panel-border); color:var(--text); cursor:pointer;
  transition:border-color .2s, color .2s;
}
.menu-toggle:hover{border-color:var(--glow); color:var(--glow);}

@media (max-width: 980px){
  .nav-links{display:none;}
}

/* ===== full-site burger menu (all breakpoints) ===== */
.site-menu{position:fixed; inset:0; z-index:200; visibility:hidden;}
.site-menu.open{visibility:visible;}
.site-menu-backdrop{
  position:absolute; inset:0; background:rgba(6,8,14,0.65); backdrop-filter:blur(2px);
  opacity:0; transition:opacity .25s;
}
.site-menu.open .site-menu-backdrop{opacity:1;}
.site-menu-panel{
  position:absolute; top:0; right:0; bottom:0; width:min(430px, 92vw);
  background:#0c1120; border-left:1px solid var(--panel-border);
  padding:22px 26px 28px; overflow-y:auto;
  display:flex; flex-direction:column; gap:26px;
  transform:translateX(100%); transition:transform .3s ease;
}
.site-menu.open .site-menu-panel{transform:translateX(0);}
.site-menu-head{display:flex; align-items:center; justify-content:space-between;}
.site-menu-head img{height:28px; width:auto;}
.site-menu-close{
  width:36px; height:36px; border-radius:10px; flex-shrink:0;
  background:none; border:1px solid var(--panel-border); color:var(--text);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:border-color .2s, color .2s;
}
.site-menu-close:hover{border-color:var(--accent); color:var(--accent);}
.site-menu-primary{display:flex; flex-direction:column; gap:2px; padding-bottom:10px; border-bottom:1px solid var(--panel-border);}
.site-menu-primary a{padding:11px 6px; font-size:16.5px; font-weight:600; font-family:'Space Grotesk'; color:var(--text); border-radius:8px;}
.site-menu-primary a:hover{color:var(--glow); background:var(--panel);}
.site-menu-groups{display:grid; grid-template-columns:1fr 1fr; gap:22px 18px;}
.site-menu-group h4{font-size:11px; text-transform:uppercase; letter-spacing:0.07em; color:var(--text-dim); margin-bottom:8px; font-weight:600;}
.site-menu-group{display:flex; flex-direction:column;}
.site-menu-group a{padding:5px 0; font-size:13.5px; color:var(--text-dim);}
.site-menu-group a:hover{color:var(--text);}
.site-menu-cta{margin-top:auto; text-align:center;}
body.menu-open{overflow:hidden;}

@media (prefers-reduced-motion: reduce){
  .site-menu-backdrop, .site-menu-panel{transition:none;}
}

/* hero */
.hero{
  position:relative; overflow:hidden;
  padding:110px 24px 70px;
  isolation:isolate;
}
.hero-photo{
  position:absolute; inset:0; z-index:-2;
  background-image:url('../img/processed/hero-gagarin-earth.jpg');
  background-size:cover; background-position:center 30%;
}
.hero-scrim{
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(6,8,14,0.55) 0%, rgba(8,10,18,0.55) 35%, var(--bg) 92%),
    radial-gradient(ellipse 60% 50% at 85% 8%, rgba(90,209,255,0.16), transparent 60%);
}
.hero-inner{position:relative; z-index:1; max-width:var(--maxw); margin:0 auto; text-align:center;}
.hero h1{
  font-size:clamp(34px, 5.6vw, 62px); line-height:1.06; margin-bottom:22px;
  max-width:820px; margin-left:auto; margin-right:auto;
  text-shadow:0 2px 24px rgba(0,0,0,0.45);
}
.hero h1 span{
  background:linear-gradient(90deg, var(--glow), var(--accent));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero p{
  color:#dfe4f2; font-size:17px; max-width:600px; margin:0 auto 34px;
}
.hero-ctas{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}
.btn-primary{
  background:linear-gradient(135deg, var(--accent), #ff7a54); color:#fff;
  padding:14px 28px; border-radius:999px; font-weight:600; font-size:15px;
  box-shadow:0 8px 30px var(--accent-soft);
}
.btn-ghost{
  border:1px solid rgba(255,255,255,0.35); color:var(--text);
  padding:14px 28px; border-radius:999px; font-weight:600; font-size:15px;
  background:rgba(255,255,255,0.06); backdrop-filter:blur(6px);
}

.hero-bottom{
  position:relative; z-index:1; max-width:var(--maxw); margin:56px auto 0;
  display:flex; align-items:center; justify-content:center; gap:36px; flex-wrap:wrap;
}
.stats{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--panel-border); border:1px solid var(--panel-border);
  border-radius:var(--radius-lg); overflow:hidden;
  max-width:560px;
}
.stat{background:rgba(19,26,43,0.88); backdrop-filter:blur(6px); padding:22px 18px; text-align:center;}
.stat b{font-family:'Space Grotesk'; font-size:28px; display:block; background:linear-gradient(90deg,var(--glow),var(--accent)); -webkit-background-clip:text; background-clip:text; color:transparent;}
.stat span{color:var(--text-dim); font-size:13px;}

section{padding:68px 0; position:relative; z-index:1;}
.section-tight{padding:32px 0;}
.section-head{max-width:640px; margin:0 auto 44px; text-align:center;}
.section-head h2{font-size:clamp(26px,3.4vw,38px);}
.section-head p{color:var(--text-dim); margin-top:12px; font-size:15.5px;}

/* quick services */
.services-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:16px;}
.service-card{
  background:var(--panel); border:1px solid var(--panel-border); border-radius:var(--radius-md);
  padding:22px 16px; text-align:center; transition:border-color .2s, transform .2s;
}
.service-card:hover{border-color:var(--glow); transform:translateY(-3px);}
.service-icon{
  width:44px; height:44px; margin:0 auto 14px; border-radius:12px;
  background:var(--glow-soft); display:flex; align-items:center; justify-content:center;
}
.service-icon svg{width:22px; height:22px; stroke:var(--glow);}
.service-card p{font-size:13.5px; font-weight:500; color:var(--text);}

/* space map */
.space-map-wrap{
  position:relative; border-radius:var(--radius-lg); overflow:hidden;
  border:1px solid var(--panel-border); height:460px;
  background:var(--panel);
}
/* dark map skin: invert only the tile/ground layer (WebGL canvas) — markers
   live outside this pane as separate siblings, so they keep their true colours
   automatically, with no counter-filter needed. */
.space-map{width:100%; height:100%;}
.space-map [class*="ground-pane"]{
  filter:invert(92%) hue-rotate(180deg) brightness(0.94) contrast(1.08);
}
.space-map-loading{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  color:var(--text-dim); font-size:13px; pointer-events:none;
}
.space-marker-balloon{font-family:'Inter',sans-serif;}
.space-marker-balloon b{display:block; font-size:13px; margin-bottom:2px; color:#0a0d16;}
.space-marker-balloon a{color:#0a5fa8; font-size:12.5px;}

/* objects grid — vertical cards, big photo on top, 3 per row */
.objects-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.object-card{
  display:flex; flex-direction:column;
  background:var(--panel); border:1px solid var(--panel-border); border-radius:var(--radius-md);
  overflow:hidden; transition:border-color .2s, transform .2s;
}
.object-card:hover{border-color:var(--accent); transform:translateY(-4px);}
.object-body{flex:1; min-width:0; padding:16px 18px 18px; display:flex; flex-direction:column; gap:6px;}
.object-num{font-family:'Space Grotesk'; font-size:11px; color:var(--text-dim); letter-spacing:0.04em;}
.object-body h3{font-size:15.5px; font-weight:600; line-height:1.32;}
.object-body h3 a{color:var(--text);}
.object-body h3 a:hover{color:var(--accent);}
.object-status{color:var(--accent); font-size:11.5px; font-weight:600;}
.object-meta{display:flex; flex-direction:column; gap:4px; margin-top:4px;}
.object-meta-row{display:flex; align-items:center; gap:6px; font-size:12.5px; color:var(--text-dim); line-height:1.4;}
.object-meta-row svg{width:14px; height:14px; stroke:var(--glow); flex-shrink:0;}
.object-meta-row a{color:var(--text-dim); text-decoration:underline; text-decoration-color:var(--panel-border); text-underline-offset:2px;}
.object-meta-row a:hover{color:var(--glow); text-decoration-color:var(--glow);}
.object-meta-row .price{color:var(--glow); font-weight:600;}
.object-photo-link{
  display:block; position:relative; overflow:hidden; aspect-ratio:4/3;
  background:linear-gradient(135deg, #1a2338, #0e1424); background-size:cover; background-position:center;
}
.object-photo-link img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s;}
.object-card:hover .object-photo-link img{transform:scale(1.06);}

/* exhibitions — real photo cards */
.exh-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.exh-card{
  position:relative; border-radius:var(--radius-md); overflow:hidden; aspect-ratio:4/3;
  border:1px solid var(--panel-border); transition:transform .2s;
}
.exh-card:hover{transform:translateY(-4px);}
.exh-card img{width:100%; height:100%; object-fit:cover; display:block;}
.exh-card .exh-scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 40%, rgba(6,8,14,0.92) 100%);
}
.exh-card .exh-title{
  position:absolute; left:14px; right:14px; bottom:12px; font-size:13.5px; font-weight:600;
  line-height:1.3;
}
.exh-tag{
  position:absolute; top:10px; left:10px; z-index:1;
  font-size:10px; text-transform:uppercase; letter-spacing:0.04em; font-weight:700;
  padding:4px 9px; border-radius:999px; color:#fff;
  background:rgba(10,13,22,0.6); border:1px solid rgba(255,255,255,0.18);
  backdrop-filter:blur(3px);
}
.exh-card[hidden]{display:none;}

.exh-filter{display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-bottom:36px;}
.exh-filter button{
  background:var(--panel); border:1px solid var(--panel-border); color:var(--text-dim);
  padding:9px 18px; border-radius:999px; font-size:13px; font-weight:600; cursor:pointer;
  transition:border-color .2s, color .2s, background .2s;
}
.exh-filter button:hover{color:var(--text); border-color:var(--glow);}
.exh-filter button.active{background:var(--accent); border-color:var(--accent); color:#fff;}

.vystavki-list{display:flex; flex-direction:column; gap:14px;}
.vystavka-row{
  background:var(--panel); border:1px solid var(--panel-border); border-radius:var(--radius-md);
  padding:20px 22px; display:flex; flex-direction:column; gap:6px;
}
.vystavka-row h3{font-size:16px; font-weight:600;}
.vystavka-row p{font-size:14px; color:var(--text-dim); line-height:1.55;}
.vystavka-row .meta{font-size:12px; color:var(--glow); text-transform:uppercase; letter-spacing:0.04em; font-weight:600;}

/* gagarin */
.gagarin{
  display:grid; grid-template-columns:0.62fr 1.38fr; gap:44px; align-items:center;
}
.gagarin-visual{
  aspect-ratio:4/5; max-width:320px; border-radius:var(--radius-lg);
  background:
    linear-gradient(160deg, #131a2b, #0a0d16);
  background-size:cover; background-position:center top;
  border:1px solid var(--panel-border);
  display:flex; align-items:flex-end; padding:20px;
  box-shadow:0 20px 50px rgba(0,0,0,0.4);
}
.gagarin-visual span{color:var(--text-dim); font-size:13px;}
@media (max-width:860px){
  .gagarin-visual{max-width:260px; margin:0 auto;}
}
.gagarin-links{display:flex; flex-wrap:wrap; gap:10px; margin-top:26px;}
.pill-link{
  border:1px solid var(--panel-border); padding:10px 18px; border-radius:999px;
  font-size:13.5px; color:var(--text-dim);
}
.gagarin h2{font-size:clamp(26px,3.4vw,36px); margin-bottom:16px;}
.gagarin p{color:var(--text-dim); font-size:15.5px;}

/* news */
.news-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.news-card{
  background:var(--panel); border:1px solid var(--panel-border); border-radius:var(--radius-md);
  padding:22px; min-height:170px; display:flex; flex-direction:column; gap:10px;
  transition:border-color .2s, transform .2s;
}
.news-card:hover{border-color:var(--accent); transform:translateY(-3px);}
.news-tag{font-size:11.5px; text-transform:uppercase; letter-spacing:0.08em; color:var(--glow); font-weight:600;}
.news-card h3{font-size:15.5px; font-weight:600; color:var(--text); line-height:1.35;}
.news-card p{font-size:13px; color:var(--text-dim); line-height:1.55;}

/* planeta banner */
.banner{
  background:linear-gradient(120deg, #1a2338, #0e1424 60%);
  border:1px solid var(--panel-border); border-radius:var(--radius-lg);
  padding:44px 40px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.banner h2{font-size:26px; margin-bottom:8px;}
.banner p{color:var(--text-dim); font-size:14.5px; max-width:480px;}

/* recognition */
.recog-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
.recog-card{
  background:var(--panel); border:1px solid var(--panel-border); border-radius:var(--radius-md);
  padding:24px; display:flex; flex-direction:column; gap:14px;
}
.recog-head{display:flex; gap:14px; align-items:center;}
.avatar{width:52px; height:52px; border-radius:50%; flex-shrink:0; object-fit:cover; border:1px solid var(--panel-border);}
.recog-head b{font-size:14.5px; display:block;}
.recog-head span{font-size:12.5px; color:var(--text-dim);}
.recog-quote{font-size:14px; color:#d7dcee; line-height:1.55; font-style:italic;}
.recog-quote::before{content:"\201C"; color:var(--accent); font-style:normal; font-weight:700;}
.recog-context{font-size:12px; color:var(--text-dim);}

/* guest info */
.guest-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.guest-card{display:block; background:var(--panel); border:1px solid var(--panel-border); border-radius:var(--radius-md); padding:22px; transition:border-color .2s, transform .2s;}
.guest-card[href]:hover{border-color:var(--glow); transform:translateY(-3px);}
.guest-card svg{width:24px;height:24px; stroke:var(--accent); margin-bottom:14px;}
.guest-card h3{font-size:15px; margin-bottom:8px;}
.guest-card p{font-size:13px; color:var(--text-dim);}

/* contacts */
.contacts{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start;}
.contact-line{display:flex; gap:12px; margin-bottom:18px; font-size:14.5px;}
.contact-line svg{width:18px;height:18px; stroke:var(--glow); flex-shrink:0; margin-top:2px;}
.contact-line b{display:block; font-size:12px; color:var(--text-dim); font-weight:500; margin-bottom:2px;}
.social-row{display:flex; gap:10px; margin-top:22px;}
.social-row a{
  width:38px; height:38px; border-radius:10px; border:1px solid var(--panel-border);
  display:flex; align-items:center; justify-content:center; font-size:12px; color:var(--text-dim);
}
.map-placeholder{
  aspect-ratio:4/3; border-radius:var(--radius-lg); border:1px solid var(--panel-border);
  background:
    radial-gradient(circle at 60% 40%, var(--glow-soft), transparent 60%),
    linear-gradient(160deg, #131a2b, #0a0d16);
  display:flex; align-items:center; justify-content:center; color:var(--text-dim); font-size:13px;
}

/* footer */
footer{background:#070a12; border-top:1px solid var(--panel-border); padding:64px 0 32px; position:relative; z-index:1;}
.footer-grid{display:grid; grid-template-columns:1.4fr repeat(5,1fr); gap:32px; margin-bottom:48px;}
.footer-grid h4{font-size:13px; color:var(--text-dim); margin-bottom:14px; font-weight:500;}
.footer-grid ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px;}
.footer-grid a{font-size:13.5px; color:var(--text-dim);}
.footer-grid a:hover{color:var(--text);}
.footer-bottom{
  border-top:1px solid var(--panel-border); padding-top:24px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
  font-size:12.5px; color:var(--text-dim);
}
.footer-bottom a{margin-right:16px;}

@media (max-width: 980px){
  .hero-bottom{flex-direction:column;}
  .stats{grid-template-columns:1fr; max-width:320px;}
  .services-grid{grid-template-columns:repeat(2,1fr);}
  .objects-grid{grid-template-columns:repeat(2,1fr);}
  .exh-grid{grid-template-columns:repeat(2,1fr);}
  .gagarin{grid-template-columns:1fr;}
  .news-grid{grid-template-columns:1fr;}
  .recog-grid{grid-template-columns:1fr;}
  .guest-grid{grid-template-columns:repeat(2,1fr);}
  .contacts{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:repeat(2,1fr);}
}

@media (max-width: 640px){
  .objects-grid{grid-template-columns:1fr;}
}

/* ===================================================================
   Shared components for inner pages (billing, rules, object pages...)
   =================================================================== */

.breadcrumbs{
  display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text-dim);
  padding:20px 0 0;
}
.breadcrumbs a{color:var(--text-dim);}
.breadcrumbs a:hover{color:var(--text);}
.breadcrumbs .sep{color:var(--panel-border);}
.breadcrumbs .current{color:var(--text);}

.page-hero{
  position:relative; padding:56px 0 48px; overflow:hidden; isolation:isolate;
}
.page-hero::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(ellipse 65% 120% at 92% -40%, var(--glow-soft), transparent 65%),
    radial-gradient(ellipse 60% 120% at 3% 140%, var(--accent-soft), transparent 65%);
  -webkit-mask-image:linear-gradient(to bottom, #000 0%, #000 55%, transparent 100%);
  mask-image:linear-gradient(to bottom, #000 0%, #000 55%, transparent 100%);
}
.page-hero h1{font-size:clamp(30px,4.4vw,46px); max-width:760px;}
.page-hero .lede{color:var(--text-dim); font-size:16px; max-width:620px; margin-top:16px;}

.obj-hero-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:36px; align-items:center;}
.obj-photo-side{
  aspect-ratio:4/5; border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--panel-border);
  background-size:cover; background-position:center; background-color:#131a2b;
}
.obj-photo-side.placeholder{
  background-image:
    radial-gradient(circle at 30% 20%, var(--accent-soft), transparent 55%),
    radial-gradient(circle at 70% 80%, var(--glow-soft), transparent 55%),
    linear-gradient(160deg, #131a2b, #0a0d16);
  display:flex; align-items:flex-end; padding:18px;
}
.obj-photo-side.placeholder span{color:var(--text-dim); font-size:13px;}
@media (max-width:860px){
  .obj-hero-grid{grid-template-columns:1fr;}
  .obj-photo-side{aspect-ratio:16/9;}
}

/* price table */
.price-table{width:100%; border-collapse:separate; border-spacing:0; font-size:14.5px;}
.price-table thead th{
  text-align:left; font-family:'Space Grotesk'; font-weight:600; font-size:12.5px;
  text-transform:uppercase; letter-spacing:0.06em; color:var(--text-dim);
  padding:0 16px 12px; border-bottom:1px solid var(--panel-border);
}
.price-table td{padding:14px 16px; border-bottom:1px solid var(--panel-border); vertical-align:top;}
.price-table tbody tr:last-child td{border-bottom:none;}
.price-table tbody tr:hover td{background:var(--panel);}
.price-table .obj-name{font-weight:500; color:var(--text);}
.price-table .obj-name a:hover{color:var(--glow);}
.price-table .obj-sub{display:block; font-size:12px; color:var(--text-dim); margin-top:2px;}
.price-table td.num{font-variant-numeric:tabular-nums; white-space:nowrap;}
.price-table .free{color:var(--glow); font-weight:600;}
.price-table .dash{color:var(--text-dim);}
.table-scroll{overflow-x:auto; background:var(--panel); border:1px solid var(--panel-border); border-radius:var(--radius-md); padding:6px;}

.stat-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:20px;}
.stat-chip{background:var(--panel); border:1px solid var(--panel-border); border-radius:var(--radius-md); padding:20px;}
.stat-chip b{font-family:'Space Grotesk'; font-size:22px; display:block; color:var(--glow); font-variant-numeric:tabular-nums;}
.stat-chip span{font-size:13px; color:var(--text-dim);}

/* accordion */
.acc-item{background:var(--panel); border:1px solid var(--panel-border); border-radius:var(--radius-md); margin-bottom:10px; overflow:hidden;}
.acc-item > summary{
  list-style:none; cursor:pointer; padding:18px 20px; display:flex; align-items:center; justify-content:space-between;
  font-weight:500; font-size:15px;
}
.acc-item > summary::-webkit-details-marker{display:none;}
.acc-item > summary .plus{color:var(--text-dim); font-size:18px; flex-shrink:0; margin-left:16px;}
.acc-item[open] > summary .plus{color:var(--accent);}
.acc-body{padding:0 20px 20px; color:var(--text-dim); font-size:14px; line-height:1.65;}
.acc-body ul{margin:0; padding-left:20px; display:flex; flex-direction:column; gap:8px;}
.acc-body p + p{margin-top:10px;}

.callout{
  display:flex; gap:14px; background:var(--panel); border:1px solid var(--panel-border);
  border-left:3px solid var(--glow); border-radius:var(--radius-md); padding:18px 20px; font-size:14px; color:var(--text-dim);
}
.callout.warn{border-left-color:var(--accent);}
.callout b{color:var(--text);}

.two-col{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.card-lite{background:var(--panel); border:1px solid var(--panel-border); border-radius:var(--radius-md); padding:22px;}
.card-lite h3{font-size:16px; margin-bottom:10px;}
.card-lite p{color:var(--text-dim); font-size:14px; line-height:1.6;}
.card-lite ul{margin:10px 0 0; padding-left:18px; color:var(--text-dim); font-size:14px; display:flex; flex-direction:column; gap:6px;}

@media (max-width: 700px){
  .stat-strip{grid-template-columns:1fr;}
  .two-col{grid-template-columns:1fr;}
}

/* ===================================================================
   Museum object pages
   =================================================================== */

.status-badge{
  display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:600;
  padding:5px 12px; border-radius:999px; margin-left:10px; vertical-align:middle;
}
.status-badge.repair{ background:var(--accent-soft); color:var(--accent); }
.status-badge::before{ content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }

.fact-row{display:flex; flex-wrap:wrap; gap:28px; margin-top:24px;}
.fact-item{display:flex; gap:10px; align-items:flex-start; font-size:14px;}
.fact-item svg{width:18px; height:18px; stroke:var(--glow); flex-shrink:0; margin-top:2px;}
.fact-item b{display:block; font-size:11.5px; text-transform:uppercase; letter-spacing:0.05em; color:var(--text-dim); font-weight:600; margin-bottom:2px;}
.fact-item span{color:var(--text);}

.obj-photo{
  aspect-ratio:21/9; border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--panel-border);
  background-size:cover; background-position:center;
  background-color:#131a2b;
}
.obj-photo.placeholder{
  background-image:
    radial-gradient(circle at 30% 20%, var(--accent-soft), transparent 55%),
    radial-gradient(circle at 70% 80%, var(--glow-soft), transparent 55%),
    linear-gradient(160deg, #131a2b, #0a0d16);
  display:flex; align-items:flex-end; padding:20px;
}
.obj-photo.placeholder span{color:var(--text-dim); font-size:13px;}

.prose{max-width:760px; color:var(--text-dim); font-size:15.5px; line-height:1.75; display:flex; flex-direction:column; gap:16px;}
.prose b{color:var(--text); font-weight:600;}

.excursion-list{display:flex; flex-direction:column; border:1px solid var(--panel-border); border-radius:var(--radius-md); overflow:hidden; background:var(--panel);}
.excursion-row{display:grid; grid-template-columns:1fr auto auto; gap:16px; padding:14px 18px; border-bottom:1px solid var(--panel-border); align-items:center; font-size:14px;}
.excursion-row:last-child{border-bottom:none;}
.excursion-row .name{color:var(--text); font-weight:500;}
.excursion-row .price{color:var(--glow); font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap;}
.excursion-row .dur{color:var(--text-dim); font-size:12.5px; white-space:nowrap;}

.other-objects{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.other-obj-card{
  background:var(--panel); border:1px solid var(--panel-border); border-radius:var(--radius-md);
  padding:16px; font-size:13px; font-weight:500; transition:border-color .2s, transform .2s; display:block;
}
.other-obj-card:hover{border-color:var(--accent); transform:translateY(-3px);}

@media (max-width: 900px){
  .excursion-row{grid-template-columns:1fr auto; row-gap:4px;}
  .excursion-row .dur{grid-column:1/2;}
  .other-objects{grid-template-columns:repeat(2,1fr);}
}
