/* =========================================================
   Royal Novum — hlavný štýl (zdroj pravdy pre dizajn)
   Farby a písma zodpovedajú pôvodnému návrhu; accent farba
   sa dá meniť v Prispôsobiť (Customizer) -> premenná --rn-accent.
   ========================================================= */

:root{
  --rn-accent: #FE7F2D;
  --rn-bg: #000000;
  --rn-bg-alt: #132531;
  --rn-border: #233D4D;
  --rn-border-light: #3a5063;
  --rn-text: #EAECF0;
  --rn-text-muted: #c3c9d1;
  --rn-text-dim: #8d97a3;
  --rn-text-dim2: #7c8794;
  --rn-sans: 'Archivo', Helvetica, Arial, sans-serif;
  --rn-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, monospace;
  --rn-section-x: 48px;
}

@media (max-width: 780px){
  :root{ --rn-section-x: 24px; }
}

/* ---------- Reset & základ ---------- */
*, *::before, *::after{ box-sizing: border-box; }
html{ -webkit-text-size-adjust: 100%; }
body.royal-novum{
  margin: 0;
  background: var(--rn-bg);
  color: var(--rn-text);
  font-family: var(--rn-sans);
  -webkit-font-smoothing: antialiased;
  text-wrap: pretty;
  overflow-x: hidden;
}
img{ max-width: 100%; display: block; }
a{ color: var(--rn-accent); text-decoration: none; }
a:hover{ color: #ff9a54; }
::selection{ background: var(--rn-accent); color: #000000; }
button{ font-family: inherit; }

.rn-skip-link{
  position: absolute; left: -9999px; top: 0; z-index: 1000;
  background: var(--rn-accent); color: #000; padding: 12px 18px; font-weight: 700;
}
.rn-skip-link:focus{ left: 12px; top: 12px; }

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}

.rn-wrap{ position: relative; overflow-x: hidden; background: var(--rn-bg); }

/* ---------- Navigácia ---------- */
.rn-nav{
  position: fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding: 22px var(--rn-section-x);
  backdrop-filter: blur(6px);
  background: linear-gradient(to bottom, rgba(0,0,0,0.75), transparent);
}
.rn-nav__logo{ display:flex; align-items:center; }
.rn-nav__logo img{ height: 56px; width:auto; }
.rn-nav__logo .custom-logo-link{ display:block; }
.rn-nav__logo-text{ font-family: var(--rn-mono); font-weight:700; letter-spacing:.04em; color: var(--rn-text); font-size:18px; text-transform:uppercase; }

.rn-nav__links{
  display:flex; gap:36px;
  font-size:14px; font-weight:600; letter-spacing:.03em; text-transform:uppercase;
}
.rn-nav__links a{ color: var(--rn-text); }
.rn-nav__links a:hover{ color: var(--rn-accent); }

.rn-nav__toggle{
  display:none; background:none; border: 1px solid var(--rn-border-light); border-radius: 8px;
  width:44px; height:44px; align-items:center; justify-content:center; cursor:pointer; color: var(--rn-text);
}
.rn-nav__toggle span, .rn-nav__toggle span::before, .rn-nav__toggle span::after{
  content:""; display:block; width:20px; height:2px; background: currentColor; position:relative; transition: transform .2s ease, opacity .2s ease;
}
.rn-nav__toggle span::before{ position:absolute; top:-6px; }
.rn-nav__toggle span::after{ position:absolute; top:6px; }
.rn-nav.is-open .rn-nav__toggle span{ background: transparent; }
.rn-nav.is-open .rn-nav__toggle span::before{ top:0; transform: rotate(45deg); }
.rn-nav.is-open .rn-nav__toggle span::after{ top:0; transform: rotate(-45deg); }

@media (max-width: 820px){
  .rn-nav__toggle{ display:flex; }
  .rn-nav__links{
    position: fixed; top:0; right:0; height:100vh; width: min(78vw, 320px);
    background: #0a1620; border-left: 1px solid var(--rn-border);
    flex-direction: column; align-items: flex-start; justify-content:center;
    gap: 28px; padding: 32px;
    transform: translateX(100%); transition: transform .3s ease;
    font-size: 18px;
  }
  .rn-nav.is-open .rn-nav__links{ transform: translateX(0); }
}

/* ---------- Hero ---------- */
.rn-hero{
  position:relative; min-height:100vh; display:flex; flex-direction:column; justify-content:center;
  padding: 140px var(--rn-section-x) 120px; overflow:hidden;
}
.rn-hero__spotlight{
  position:absolute; inset:0; pointer-events:none; z-index:1;
  background: radial-gradient(600px circle at var(--rn-spot-x,50%) var(--rn-spot-y,50%), rgba(254,127,45,0.35), transparent 60%);
}
.rn-hero__inner{ position:relative; z-index:2; max-width:1000px; }
.rn-hero__kicker{
  font-family: var(--rn-mono); font-size:13px; letter-spacing:.12em; color: var(--rn-text-dim);
  margin-bottom:22px; text-transform:uppercase;
}
.rn-hero__title{
  font-size: clamp(38px, 8vw, 104px); line-height:.98; font-weight:800; margin:0; letter-spacing:-0.01em;
}
.rn-hero__title-accent{ color: var(--rn-accent); }
.rn-hero__text{
  max-width:520px; font-size: clamp(16px, 2.4vw, 19px); line-height:1.55; color: var(--rn-text-muted); margin: 26px 0 0;
}
.rn-hero__actions{ display:flex; gap:16px; margin-top:38px; flex-wrap:wrap; }

.rn-btn{
  display:inline-flex; align-items:center; gap:8px; padding:16px 30px; border-radius:999px;
  font-weight:700; font-size:16px; transition: transform .15s ease; border: none; cursor:pointer;
}
.rn-btn--primary{ background: var(--rn-accent); color:#000000; }
.rn-btn--secondary{ border:1px solid var(--rn-border-light); color: var(--rn-text); }

.rn-scroll-hint{
  position:absolute; bottom:32px; left: var(--rn-section-x); display:flex; flex-direction:column;
  align-items:center; gap:10px; color: var(--rn-text-dim2);
}
.rn-scroll-hint span{ font-family: var(--rn-mono); font-size:11px; letter-spacing:.2em; writing-mode: vertical-rl; }
.rn-scroll-hint i{ width:1px; height:34px; background: var(--rn-border-light); display:block; animation: rn-bounce 2s ease-in-out infinite; }
@media (max-width: 560px){ .rn-scroll-hint{ display:none; } }

@keyframes rn-bounce{ 0%,100%{ transform: translateY(0);} 50%{ transform: translateY(10px);} }

/* ---------- Marquee (pás služieb) ---------- */
.rn-marquee{
  overflow:hidden; border-top:1px solid var(--rn-border); border-bottom:1px solid var(--rn-border);
  padding:20px 0; background: var(--rn-bg-alt);
}
.rn-marquee__track{
  display:flex; width:max-content; gap:56px; animation: rn-marquee 28s linear infinite;
  font-family: var(--rn-mono); font-size:14px; letter-spacing:.08em; color: var(--rn-text-dim2); text-transform:uppercase;
}
.rn-marquee__item{ white-space:nowrap; }
.rn-marquee__item .rn-check{ color: var(--rn-accent); margin-left:56px; }
@keyframes rn-marquee{ from{ transform: translateX(0);} to{ transform: translateX(-50%);} }

/* ---------- Sekcie spoločné ---------- */
.rn-section{ padding: 120px var(--rn-section-x); max-width:1280px; margin:0 auto; }
.rn-section--alt{ padding: 100px 0 130px; background: var(--rn-bg-alt); }
.rn-kicker{
  font-family: var(--rn-mono); font-size:13px; letter-spacing:.12em; color: var(--rn-accent);
  margin-bottom:18px; text-transform:uppercase;
}
@media (max-width: 560px){
  .rn-section{ padding: 80px var(--rn-section-x); }
  .rn-section--alt{ padding: 70px 0 90px; }
}

.rn-reveal{ opacity:0; transform: translateY(40px); transition: opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1); }
.rn-reveal.is-visible{ opacity:1; transform: translateY(0); }

/* ---------- O nás ---------- */
.rn-about__grid{ display:grid; grid-template-columns: 1.1fr 1fr; gap:64px; align-items:start; }
.rn-about__heading{ font-size: clamp(30px,5vw,56px); line-height:1.05; font-weight:800; margin:0; }
.rn-about__text p{ font-size:18px; line-height:1.6; color: var(--rn-text-muted); margin:0 0 22px; }
.rn-about__text p:last-child{ margin-bottom:0; }
@media (max-width: 900px){
  .rn-about__grid{ grid-template-columns: 1fr; gap:28px; }
}

.rn-services{ margin-top:70px; display:grid; grid-template-columns: repeat(2,1fr); border-top:1px solid var(--rn-border); }
.rn-services__item{ display:flex; align-items:baseline; gap:20px; padding:24px 12px; border-bottom:1px solid var(--rn-border); }
.rn-services__num{ font-family: var(--rn-mono); font-size:14px; color: var(--rn-accent); flex-shrink:0; }
.rn-services__name{ font-size: clamp(17px, 2.4vw, 22px); font-weight:600; }
@media (max-width: 640px){
  .rn-services{ grid-template-columns: 1fr; }
}
.rn-services--empty{ color: var(--rn-text-dim); font-size:15px; padding:24px 12px; border-bottom:1px solid var(--rn-border); }

/* ---------- Galéria ---------- */
.rn-gallery__head{
  padding: 0 var(--rn-section-x); max-width:1280px; margin:0 auto 44px;
  display:flex; justify-content:space-between; align-items:flex-end; gap:20px;
}
.rn-gallery__title{ font-size: clamp(28px,5vw,52px); font-weight:800; margin:0; }
.rn-gallery__nav{ display:flex; gap:12px; flex-shrink:0; }
.rn-gallery__arrow{
  width:46px; height:46px; border-radius:50%; border:1px solid var(--rn-border-light);
  background:transparent; color: var(--rn-text); font-size:18px; cursor:pointer;
}
.rn-gallery__arrow:hover{ border-color: var(--rn-accent); color: var(--rn-accent); }
@media (max-width: 560px){
  .rn-gallery__head{ flex-direction:column; align-items:flex-start; }
}

.rn-gallery__track{
  display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding: 0 var(--rn-section-x) 14px; scrollbar-width:none;
}
.rn-gallery__track::-webkit-scrollbar{ display:none; }
.rn-gallery__card{ flex: 0 0 340px; scroll-snap-align:start; }
@media (max-width: 560px){
  .rn-gallery__card{ flex-basis: 78vw; }
}
.rn-gallery__figure{
  position:relative; height:420px; border-radius:4px; overflow:hidden; background: var(--rn-border);
  cursor: zoom-in;
}
.rn-gallery__figure img{ width:100%; height:100%; object-fit:cover; }
.rn-gallery__placeholder{
  width:100%; height:100%;
  background: repeating-linear-gradient(135deg, var(--rn-border) 0px, var(--rn-border) 18px, #1a2f3c 18px, #1a2f3c 36px);
}
.rn-gallery__badge{
  position:absolute; top:16px; left:16px; font-family: var(--rn-mono); font-size:11px; letter-spacing:.08em;
  color: var(--rn-text); background: rgba(0,0,0,.55); padding:4px 8px;
}
.rn-gallery__label{ margin-top:14px; font-family: var(--rn-mono); font-size:13px; color: var(--rn-text-dim); }
.rn-gallery--empty{ padding: 0 var(--rn-section-x); color: var(--rn-text-dim); font-family: var(--rn-mono); font-size:14px; }

/* Lightbox */
.rn-lightbox{
  position:fixed; inset:0; z-index:200; background: rgba(0,0,0,.92);
  display:flex; align-items:center; justify-content:center; padding: 40px;
  opacity:0; pointer-events:none; transition: opacity .25s ease;
}
.rn-lightbox.is-open{ opacity:1; pointer-events:auto; }
.rn-lightbox__img{ max-width:100%; max-height:100%; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.rn-lightbox__close{
  position:absolute; top:24px; right:28px; width:44px; height:44px; border-radius:50%;
  border:1px solid var(--rn-border-light); background:rgba(0,0,0,.4); color:#fff; font-size:20px; cursor:pointer;
}

/* ---------- Kontakt ---------- */
.rn-contact__title{ font-size: clamp(30px,5vw,64px); font-weight:800; margin:0 0 56px; max-width:760px; line-height:1.05; }
.rn-contact__grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:44px; }
.rn-contact__label{ font-size:13px; color: var(--rn-text-dim); text-transform:uppercase; letter-spacing:.08em; margin-bottom:8px; }
.rn-contact__value{ font-size:24px; font-weight:700; color: var(--rn-text); }
a.rn-contact__value:hover{ color: var(--rn-accent); }
.rn-contact__text{ font-size:18px; color: var(--rn-text-muted); }
@media (max-width: 780px){
  .rn-contact__grid{ grid-template-columns: 1fr; gap:32px; }
}

/* ---------- Päta ---------- */
.rn-footer{
  padding: 30px var(--rn-section-x); border-top:1px solid var(--rn-border);
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  font-size:13px; color: var(--rn-text-dim2); font-family: var(--rn-mono);
}
.rn-footer__brand{ display:flex; align-items:center; gap:16px; }
.rn-footer__brand img{ height:38px; width:auto; opacity:.8; }
