/* =========================================================================
   Riley 2026 — moderný stylesheet (pixel-perfect prevod legacy šablóny)
   Konvencie: Grid pre 2D layout, Flex pre 1D, premenné v :root pre tokeny.
   ========================================================================= */

/* ------------ Tokens / Premenné ------------------------------------------ */

:root {
  /* Akcenty */
  --color-red: #ff4b64;
  --color-red-hover: #c2394c;
  --color-red-soft: #ff4862;
  --color-cyan: #0fa2d5;
  --color-cyan-2: #0fa1d5;
  --color-cyan-deep: #0b7297;

  /* Tmavé pozadia */
  --color-navy: #2e343e;
  --color-navy-2: #2d333d;
  --color-navy-deep: #232933;
  --color-navy-line: #3f4755;

  /* Typografia */
  --color-text: #91979f;
  --color-text-strong: #3c4451;
  --color-text-mid: #566174;
  --color-text-soft: #7786a1;
  --color-text-nav: #7a828f;

  /* Plochy */
  --color-bg: #ffffff;
  --color-bg-soft: #f7fcff;
  --color-bg-soft-2: #e6edf2;

  /* Typografia na tmavom */
  --color-on-dark: #ffffff;
  --color-on-dark-muted: #eaf0f4;
  --color-on-dark-soft: #b6bcc8;
  --color-on-dark-line: rgba(255, 255, 255, 0.28);

  /* Stavove farby */
  --color-success: #4f9d69;
  --color-warning: #d99b24;

  /* Znacky socialnych sieti */
  --color-linkedin: #1d84b1;
  --color-flickr: #ef5999;
  --color-facebook: #3b5a9b;
  --color-dropbox: #79bbee;
  --color-dribbble: #cb2027;

  /* Rámčeky */
  --color-border: #e7e7e7;
  --color-border-2: #d7dfe4;

  /* Layout */
  --container: 1170px;

  /* Tvar */
  --radius: 0;
  --radius-sm: 2px;

  /* Animácia */
  --transition: 0.3s ease-in-out;

  /* Tieň */
  --shadow-nav: 0 1px 1px rgba(0, 0, 0, 0.1);
  --shadow-md: 0 8px 24px rgba(46, 52, 62, 0.1);
}

/* ------------ Reset ------------------------------------------------------ */

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: 'Open Sans', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  font-size: 13px;
  line-height: 23px;
  color: var(--color-text);
  background: var(--color-bg-soft);
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--color-cyan-2); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--color-text-strong); }

button { font: inherit; cursor: pointer; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: absolute;
  top: -100%;
  left: 0;
  z-index: 9999;
  padding: 10px 20px;
  background: var(--color-cyan);
  color: var(--color-on-dark);
  font-weight: 600;
  text-decoration: none;
}
.skip-link:focus { top: 0; }

ul { list-style: none; padding: 0; margin: 0; }

h1, h2, h3, h4, h5, h6 {
  font-family: 'Open Sans', sans-serif;
  font-weight: 500;
  line-height: 1.4em;
  margin: 0 0 15px;
}

h1 { font-size: 36px; font-weight: 300; color: var(--color-text-strong); }
h2 { font-size: 31px; color: var(--color-cyan); }
h3 { font-size: 24px; font-weight: 300; text-transform: uppercase; color: var(--color-cyan); }
h4 { font-size: 24px; }
h5 { font-size: 20px; font-weight: 400; }
h6 { font-size: 16px; }

p { margin: 0 0 15px; }

:focus-visible {
  outline: 2px solid var(--color-cyan);
  outline-offset: 2px;
}

/* ------------ Layout helpers --------------------------------------------- */

.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: 15px;
}

.section { padding-block: 20px 40px; }

/* ------------ Header / Top container ------------------------------------- */

header { background: var(--color-bg); }

.top-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  padding-block: 30px 20px;
}

.logo img { height: auto; max-height: 60px; width: auto; }

.top-items {
  display: flex;
  gap: 0;
  flex-wrap: wrap;
  font-size: 13px;
}

.top-items li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 20px;
  line-height: 1.4;
}

.top-items i { color: var(--color-cyan-2); font-size: 14px; }

.top-items .is-red i,
.top-items .is-red a { color: var(--color-red-soft); transition: color var(--transition); }

.top-items .is-red:hover i,
.top-items .is-red:hover a { color: var(--color-cyan-2); }

/* ------------ Navigation ------------------------------------------------- */

.navbar {
  width: 100%;
  background: var(--color-bg-soft);
  box-shadow: var(--shadow-nav);
  position: sticky;
  top: 0;
  z-index: 100;
}

.nav-inner {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 0;
}

.nav-menu {
  display: flex;
  align-items: stretch;
}

.nav-menu li { display: block; }

.nav-menu a {
  display: inline-block;
  font-size: 14px;
  line-height: 40px;
  color: var(--color-text-nav);
  background: var(--color-bg-soft-2);
  padding: 0 20px;
  margin-right: 1px;
  border-radius: var(--radius);
  transition: background var(--transition), color var(--transition);
}

.nav-menu a:hover {
  color: var(--color-on-dark);
  background: var(--color-red);
}

.nav-menu .is-active a,
.nav-menu .active a {
  color: var(--color-on-dark);
  background: var(--color-cyan);
}

.nav-menu .is-active a:hover,
.nav-menu .active a:hover {
  background: var(--color-red);
}

.nav-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 40px;
  background: var(--color-bg-soft-2);
  border: none;
  color: var(--color-text-nav);
  font-size: 1.1rem;
  border-radius: var(--radius);
}

/* Social v navi (right side) */
.social-top {
  display: flex;
  margin-left: auto;
  align-items: stretch;
}

.social-6 a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin-left: 1px;
  font-size: 16px;
  color: var(--color-text-nav);
  background: var(--color-bg-soft-2);
  border-radius: var(--radius);
  transition: background var(--transition), color var(--transition);
}

.social-6 a:hover { color: var(--color-on-dark); }
.social-6 a:hover .fa-linkedin-in,
.social-6 a:has(.fa-linkedin-in):hover { background: var(--color-linkedin); color: var(--color-on-dark); }
.social-6 a:has(.fa-flickr):hover { background: var(--color-flickr); color: var(--color-on-dark); }
.social-6 a:has(.fa-facebook-f):hover { background: var(--color-facebook); color: var(--color-on-dark); }
.social-6 a:has(.fa-dropbox):hover { background: var(--color-dropbox); color: var(--color-on-dark); }
.social-6 a:has(.fa-dribbble):hover { background: var(--color-dribbble); color: var(--color-on-dark); }

/* ------------ Hero slider ------------------------------------------------ */

.hero {
  position: relative;
  overflow: hidden;
  background: var(--color-navy-deep);
  height: 500px;
  margin-bottom: 50px;
  display: grid;
}

.hero-slide {
  grid-area: 1 / 1;
  position: relative;
  display: grid;
  place-items: center;
  background-size: cover;
  background-position: center;
  color: var(--color-on-dark);
  opacity: 0;
  transition: opacity 0.7s ease;
  pointer-events: none;
}

.hero-slide.is-active { opacity: 1; pointer-events: auto; }

.hero-slide-1 { background-image: url('img/hero/01.jpg'); }
.hero-slide-2 { background-image: url('img/hero/02.jpg'); }
.hero-slide-3 { background-image: url('img/hero/03.jpg'); }

.hero-content {
  position: relative;
  text-align: center;
  padding: 0 24px;
  max-width: 1100px;
  z-index: 2;
  color: var(--color-on-dark);
}

.hero-eyebrow {
  display: inline-block;
  font-weight: 300;
  font-size: 36px;
  text-decoration: underline;
  text-shadow: 0 0 20px rgba(255, 255, 255, 0.6);
  margin-bottom: 18px;
  color: var(--color-on-dark);
}

.hero-title {
  font-weight: 300;
  font-size: clamp(48px, 7vw, 84px);
  line-height: 1;
  text-shadow: 0 0 20px rgba(255, 255, 255, 0.4);
  color: var(--color-on-dark);
  margin: 0 0 22px;
}

.hero-sub {
  font-weight: 300;
  font-size: 36px;
  text-shadow: 0 0 20px rgba(255, 255, 255, 0.6);
  color: var(--color-on-dark);
  margin: 0;
}

/* Slide 2 a 3 majú podsvietený sub (zachovávame od originálu) */
.hero-slide:nth-child(2) .hero-sub,
.hero-slide:nth-child(3) .hero-sub,
.hero-slide:nth-child(3) .hero-eyebrow {
  background: rgba(0, 0, 0, 0.4);
  padding: 8px 30px;
  display: inline-block;
}

/* Hero ovládače (prev / dots / next / pause) */
.hero-controls {
  position: absolute;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 12px;
  z-index: 3;
}

.hero-arrow,
.hero-play {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  border: none;
  color: var(--color-on-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  transition: background var(--transition);
}

.hero-arrow:hover,
.hero-play:hover { background: rgba(255, 255, 255, 0.4); }

.hero-dots { display: flex; gap: 8px; }

.hero-dots button {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.7);
  padding: 0;
  transition: background var(--transition);
}

.hero-dots button.is-active { background: var(--color-on-dark); }

/* ------------ Page title (jednoduchý h1 v sekcii) ----------------------- */

.page-title {
  font-size: 36px;
  font-weight: 300;
  color: var(--color-text-strong);
  margin-bottom: 35px;
}

/* ------------ Services (horizontálny layout, bottom divider) ------------ */

.services-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
}

.service {
  position: relative;
  padding-left: 80px;
  padding-bottom: 20px;
  background: url('img/divider.png') bottom left repeat-x;
}

.service-icon {
  position: absolute;
  top: 0;
  left: 0;
  width: 64px;
  height: 64px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-cyan-2);
  font-size: 28px;
  border: 2px solid var(--color-border-2);
  border-radius: 50%;
  transition: transform 0.7s ease-in-out, color var(--transition);
}

.service:hover .service-icon {
  transform: rotateY(360deg);
}

.service h4 {
  font-size: 24px;
  font-weight: 500;
  color: var(--color-text-soft);
  padding-top: 14px;
  margin-bottom: 10px;
  transition: color var(--transition);
}

.service:hover h4 { color: var(--color-cyan-2); }

.service p { margin: 0 0 20px; }

.service-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.service-card {
  background: var(--color-bg);
  padding: 28px;
  border-top: 4px solid var(--color-cyan);
}

.service-card h3 {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--color-text-strong);
  font-size: 20px;
  text-transform: none;
}

.service-card i {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-bg-soft-2);
  color: var(--color-cyan);
}

.service-card p { margin-bottom: 0; }

.services-overview {
  padding-top: 34px;
  padding-bottom: 58px;
}

.services-modern-section {
  padding-top: 44px;
  padding-bottom: 54px;
}

.modern-box {
  display: grid;
  grid-template-columns: minmax(260px, 0.9fr) minmax(360px, 1.1fr);
  gap: 54px;
  align-items: center;
}

.modern-box-copy {
  padding-top: 22px;
}

.modern-box h2 {
  color: var(--color-cyan);
  font-size: 31px;
  font-weight: 300;
  line-height: 45px;
  margin: 0 0 34px;
}

.modern-box h2 strong {
  color: var(--color-cyan);
  font-weight: 700;
}

.modern-box img {
  justify-self: end;
  width: min(100%, 470px);
}

/* ------------ Portfolio / Projects -------------------------------------- */

.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}

.portfolio-grid-2 { grid-template-columns: repeat(2, 1fr); }
.portfolio-grid-3 { grid-template-columns: repeat(3, 1fr); }
.portfolio-grid-4 { grid-template-columns: repeat(4, 1fr); }

.portfolio-card {
  min-width: 0;
  background: var(--color-bg);
}

.portfolio-card-wide { grid-column: span 2; }

.portfolio-media {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 1;
  background: var(--color-cyan);
}

.portfolio-card-wide .portfolio-media { aspect-ratio: 2 / 1; }

.portfolio-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease-in-out, opacity 0.7s ease-in-out;
}

.portfolio-media span {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: var(--color-on-dark);
  font-size: 40px;
  opacity: 0;
  transform: scale(4);
  transition: opacity 0.7s ease-in-out, transform 0.7s ease-in-out;
}

.portfolio-media:hover img,
.portfolio-media:focus-visible img {
  opacity: 0.4;
  transform: scale(1.18);
}

.portfolio-media:hover span,
.portfolio-media:focus-visible span {
  opacity: 1;
  transform: scale(1);
}

.portfolio-card-body {
  padding: 16px 18px 22px;
}

.portfolio-card-body h3 {
  color: var(--color-text-strong);
  font-size: 15px;
  margin-bottom: 4px;
}

.portfolio-card-body span {
  color: var(--color-cyan);
  font-size: 12px;
}

/* ------------ Feature pages --------------------------------------------- */

.utility-link-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
}

.utility-link-grid a {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 72px;
  padding: 18px 20px;
  background: var(--color-bg);
  color: var(--color-text-strong);
}

.utility-link-grid i {
  color: var(--color-cyan);
  font-size: 24px;
}

.utility-link-grid a:hover {
  background: var(--color-cyan);
  color: var(--color-on-dark);
}

.utility-link-grid a:hover i {
  color: var(--color-on-dark);
}

.variant-group + .variant-group {
  margin-top: 34px;
}

.variant-group-title {
  color: var(--color-text-mid);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 16px;
}

.button-demo-stack {
  display: grid;
  gap: 16px;
}

.button-demo-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}

.demo-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 18px;
  border: 1px solid var(--color-border-2);
  background: var(--color-bg);
  color: var(--color-text-nav);
  line-height: 1;
  transition: background var(--transition), border-color var(--transition), color var(--transition);
}

.demo-button:hover,
.demo-button:focus-visible {
  border-color: var(--color-cyan);
  background: var(--color-cyan);
  color: var(--color-on-dark);
}

.demo-button-lg {
  min-height: 46px;
  padding-inline: 22px;
  font-size: 15px;
}

.demo-button-sm {
  min-height: 34px;
  padding-inline: 14px;
  font-size: 12px;
}

.demo-button-xs {
  min-height: 28px;
  padding-inline: 10px;
  font-size: 11px;
}

.demo-button-primary,
.demo-button-red-filled,
.demo-button-dark-filled {
  border-color: transparent;
  color: var(--color-on-dark);
}

.demo-button-primary { background: var(--color-cyan); }
.demo-button-info { color: var(--color-cyan); }
.demo-button-red { color: var(--color-red); }
.demo-button-red-filled { background: var(--color-red); }
.demo-button-dark { color: var(--color-text-strong); }
.demo-button-dark-filled { background: var(--color-navy-2); }

.form-page {
  background: var(--color-bg);
  padding: 30px;
}

.form-page-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
}

.form-actions {
  margin-top: 24px;
}

.auth-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
}

.auth-panel {
  background: var(--color-bg);
  padding: 30px;
}

.auth-panel h2 {
  color: var(--color-text-strong);
  font-size: 28px;
  font-weight: 300;
  margin-bottom: 22px;
}

.auth-link {
  margin-top: 18px;
}

.career-layout,
.support-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
  gap: 30px;
  align-items: start;
}

.career-layout .client-says + .client-says {
  margin-top: 26px;
}

.error-page {
  display: grid;
  justify-items: center;
  gap: 18px;
  text-align: center;
  min-height: 340px;
}

.error-icon {
  color: var(--color-cyan);
  font-size: 96px;
  line-height: 1;
}

.error-page h2 {
  color: var(--color-text-strong);
  font-size: 28px;
  font-weight: 400;
  text-transform: uppercase;
}

.error-page .button-row {
  justify-content: center;
  margin-top: 10px;
}

.grid-system {
  display: grid;
  gap: 30px;
}

.grid-demo-row {
  display: grid;
  gap: 30px;
}

.grid-demo-1 { grid-template-columns: 1fr; }
.grid-demo-2 { grid-template-columns: repeat(2, 1fr); }
.grid-demo-3 { grid-template-columns: repeat(3, 1fr); }
.grid-demo-4 { grid-template-columns: repeat(4, 1fr); }
.grid-demo-8-4 { grid-template-columns: 2fr 1fr; }

.grid-demo-card {
  min-width: 0;
  background: var(--color-bg);
  padding: 26px;
}

.grid-demo-card h3 {
  color: var(--color-text-strong);
  font-size: 20px;
  margin-bottom: 12px;
}

.testimonial-profile-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
}

.testimonial-profile {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  background: var(--color-bg);
  padding: 24px;
}

.testimonial-person img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  margin-bottom: 14px;
}

.testimonial-person h3 {
  color: var(--color-text-strong);
  font-size: 16px;
  margin-bottom: 4px;
}

.testimonial-person span,
.testimonial-quote footer span {
  color: var(--color-cyan);
  font-size: 12px;
  text-transform: uppercase;
}

.testimonial-quote-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.testimonial-quote {
  margin: 0;
  padding: 26px;
  background: var(--color-navy-2);
  color: var(--color-on-dark-muted);
}

.testimonial-quote footer {
  display: grid;
  gap: 3px;
  margin-top: 20px;
}

.testimonial-quote strong {
  color: var(--color-on-dark);
}

/* ------------ Three column layout ---------------------------------------- */

.three-col {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  gap: 30px;
  align-items: start;
}

.three-col > * { min-width: 0; }

.block-title {
  font-size: 20px;
  font-weight: 400;
  color: var(--color-text-strong);
  margin: 0 0 20px;
}

/* ------------ Client Says (testimonial) --------------------------------- */

.client-says { margin: 0; padding: 0; }

.client-text {
  position: relative;
  font-style: italic;
  font-size: 13px;
  line-height: 23px;
  color: var(--color-on-dark);
  background: var(--color-navy-2);
  padding: 30px 25px;
  margin: 0;
}

.client-text::after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  left: 25px;
  bottom: -26px;
  border: 13px solid;
  border-color: var(--color-navy-2) transparent transparent transparent;
}

.client-name {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  padding: 36px 10px 0 0;
  font-size: 13px;
  color: var(--color-text);
}

.client-name i { font-size: 16px; color: var(--color-text); }

.client-name strong { color: var(--color-text-strong); font-weight: 700; }

/* ------------ Accordion -------------------------------------------------- */

.accordion { display: grid; gap: 1px; }

.accordion-item {
  border-left: 5px solid var(--color-cyan-2);
  background: var(--color-bg-soft-2);
}

.accordion-heading { margin: 0; font-size: inherit; font-weight: inherit; }

.accordion-trigger {
  display: flex;
  align-items: center;
  width: 100%;
  font-family: 'Open Sans', sans-serif;
  font-size: 14px;
  line-height: 22px;
  color: var(--color-text-strong);
  background: transparent;
  border: none;
  text-align: left;
  padding: 12px 20px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  transition: background var(--transition), color var(--transition);
}

.accordion-trigger:hover { color: var(--color-cyan-2); }

.accordion-trigger[aria-expanded="true"] {
  color: var(--color-on-dark);
  background: var(--color-cyan-2);
}

.accordion-panel {
  padding: 15px 20px 20px 25px;
  background: var(--color-bg);
  border-left: 0;
  font-size: 13px;
  line-height: 23px;
  color: var(--color-text);
}

.accordion-panel[hidden] { display: none; }

/* ------------ Progress bars (Skills) ------------------------------------ */

.skills { display: grid; gap: 10px; }

.progress {
  height: 38px;
  background: var(--color-bg-soft-2);
  border-radius: var(--radius);
  overflow: hidden;
}

.progress-bar {
  height: 100%;
  width: 0;
  background: var(--color-navy-2);
  color: var(--color-on-dark);
  font-size: 14px;
  line-height: 35px;
  padding: 0 20px;
  display: flex;
  align-items: center;
  border-radius: var(--radius);
  transition: width 1.2s cubic-bezier(0.22, 1, 0.36, 1);
  white-space: nowrap;
  overflow: hidden;
}

/* ------------ Recent News (item-box) ------------------------------------ */

.news-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  margin-top: 10px;
}

.item-box {
  background: var(--color-bg);
  display: flex;
  flex-direction: column;
}

.media-container {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
}

.media-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}

.media-container::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(15, 162, 213, 0);
  transition: background var(--transition);
  z-index: 1;
}

.item-box:hover .media-container::before,
.item-box:focus-within .media-container::before { background: rgba(15, 162, 213, 0.85); }

.item-box:hover .media-container img,
.item-box:focus-within .media-container img { transform: scale(1.05); }

.icon-left,
.icon-right {
  position: absolute;
  top: 50%;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-on-dark);
  color: var(--color-text-strong);
  font-size: 14px;
  z-index: 2;
  opacity: 0;
  transition: opacity var(--transition), transform var(--transition), background var(--transition), color var(--transition);
}

.icon-left {
  left: 50%;
  transform: translate(calc(-100% - 4px), -50%);
}

.icon-right {
  left: 50%;
  transform: translate(4px, -50%);
}

.item-box:hover .icon-left,
.item-box:hover .icon-right,
.item-box:focus-within .icon-left,
.item-box:focus-within .icon-right { opacity: 1; }

.icon-left:hover,
.icon-right:hover {
  background: var(--color-red);
  color: var(--color-on-dark);
}

.info-container {
  padding: 18px 0 0;
}

.info-container h3 {
  font-size: 18px;
  font-weight: 300;
  color: var(--color-cyan);
  margin-bottom: 4px;
  text-transform: none;
}

.info-container h4 {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 10px;
}

.info-container p { margin: 0; font-size: 13px; }

/* ------------ Block title (h5 nad sekciou — Recent News) ---------------- */

#news .block-title {
  font-size: 20px;
  margin-bottom: 0;
}

/* ------------ Partners --------------------------------------------------- */

.partners {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 24px;
  align-items: center;
  padding: 30px 0;
}

.partners img {
  width: 100%;
  max-width: 130px;
  margin-inline: auto;
  filter: grayscale(1) opacity(0.6);
  transition: filter var(--transition);
}

.partners img:hover { filter: grayscale(0) opacity(1); }

/* ------------ Parallax / Promo ------------------------------------------- */

.parallax {
  position: relative;
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  text-align: center;
  padding: 90px 20px;
  color: var(--color-on-dark);
}

.parallax-promo { background-image: url('img/parallax/promo.jpg'); }

.parallax::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(46, 52, 62, 0.55);
}

.footer-promo {
  position: relative;
  z-index: 1;
}

.footer-promo h2 {
  color: var(--color-on-dark);
  font-size: 36px;
  font-weight: 300;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 6px;
}

.footer-promo h4 {
  color: var(--color-on-dark);
  font-weight: 300;
  font-size: 18px;
  margin: 0;
}

/* ------------ Footer ----------------------------------------------------- */

.footer {
  background: var(--color-navy);
  color: var(--color-on-dark-soft);
  font-size: 13px;
  line-height: 22px;
}

.footer a { color: var(--color-on-dark-muted); }
.footer a:hover { color: var(--color-cyan); }

.footer h6 {
  font-size: 14px;
  color: var(--color-on-dark);
  letter-spacing: 0.06em;
  margin-bottom: 20px;
  font-weight: 700;
}

.footer-info { padding: 60px 0; }

.footer-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
}

.list-5 {
  display: grid;
  gap: 6px;
}

.list-5 a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.list-5 i { color: var(--color-cyan); font-size: 11px; }

.item-icon {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 4px;
}

.item-icon i { color: var(--color-cyan); width: 18px; text-align: center; }

.flickr {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5px;
}

.flickr a {
  display: block;
  overflow: hidden;
  aspect-ratio: 1;
}

.flickr img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition), opacity var(--transition);
}

.flickr a:hover img { transform: scale(1.1); opacity: 0.85; }

/* ------------ Copyright -------------------------------------------------- */

.copyright {
  background: var(--color-navy-deep);
  border-top: 1px solid var(--color-navy-line);
  padding: 22px 0;
  font-size: 13px;
}

.copyright-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.logo-footer img { height: auto; max-height: 32px; }

.copyright-info {
  color: var(--color-on-dark-soft);
  text-align: right;
}

/* ------------ Back to top ------------------------------------------------ */

.back-to-top {
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-cyan);
  color: var(--color-on-dark);
  border-radius: var(--radius);
  font-size: 14px;
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity var(--transition), transform var(--transition), background var(--transition);
  z-index: 90;
}

.back-to-top.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.back-to-top span {
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 8px solid var(--color-on-dark);
}

.back-to-top:hover { background: var(--color-red); }

/* ------------ Lightbox (vytváraný z JS) --------------------------------- */

.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(20, 24, 32, 0.92);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  z-index: 200;
}

.lightbox.is-open { display: flex; }

.lightbox-img {
  max-width: 92vw;
  max-height: 86vh;
  box-shadow: var(--shadow-md);
}

.lightbox-close,
.lightbox-prev,
.lightbox-next {
  position: absolute;
  background: rgba(255, 255, 255, 0.1);
  color: var(--color-on-dark);
  border: none;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  font-size: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background var(--transition);
}

.lightbox-close:hover,
.lightbox-prev:hover,
.lightbox-next:hover { background: var(--color-cyan); }

.lightbox-close { top: 24px; right: 24px; }
.lightbox-prev { left: 24px; top: 50%; transform: translateY(-50%); }
.lightbox-next { right: 24px; top: 50%; transform: translateY(-50%); }

/* ------------ Scroll offset pre sticky nav ------------------------------ */

[id] { scroll-margin-top: 80px; }

/* ------------ Shared page components -------------------------------------- */

.page-header {
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-border);
  padding: 34px 0 28px;
}

.page-header-inner {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.page-header h1 {
  margin: 0;
  font-size: 36px;
  font-weight: 300;
  color: var(--color-text-strong);
}

.breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
  color: var(--color-text);
  font-size: 13px;
}

.breadcrumb li:not(:last-child)::after {
  content: "/";
  margin-left: 8px;
  color: var(--color-border-2);
}

.breadcrumb a { color: var(--color-cyan); }

.breadcrumb a:hover { color: var(--color-text-strong); }

.breadcrumb [aria-current="page"] { color: var(--color-red); }

.content-section { padding-block: 42px; }

.content-section + .content-section { padding-top: 28px; }

.section-title {
  font-size: 24px;
  font-weight: 400;
  color: var(--color-text-strong);
  margin-bottom: 24px;
}

.lead {
  font-size: 16px;
  line-height: 1.7;
  color: var(--color-text-mid);
}

.two-col,
.content-sidebar {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
  gap: 40px;
  align-items: start;
}

.split-feature {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 1fr);
  gap: 42px;
  align-items: center;
  background: var(--color-bg);
  padding: 36px;
}

.split-feature h2 {
  color: var(--color-text-strong);
  font-weight: 300;
  margin-bottom: 18px;
}

.split-feature strong { color: var(--color-cyan); font-weight: 600; }

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 18px;
  border: 0;
  background: var(--color-cyan);
  color: var(--color-on-dark);
  font-weight: 600;
  line-height: 1;
  transition: background var(--transition), color var(--transition);
}

.button:hover,
.button:focus-visible {
  background: var(--color-red);
  color: var(--color-on-dark);
}

.button-outline {
  min-height: 46px;
  padding-inline: 22px;
  border: 1px solid var(--color-cyan);
  background: transparent;
  color: var(--color-cyan);
  font-weight: 400;
}

.button-outline:hover,
.button-outline:focus-visible {
  background: var(--color-cyan);
  color: var(--color-on-dark);
}

.button-secondary {
  background: var(--color-navy-2);
}

.button-white {
  border: 1px solid rgba(255, 255, 255, 0.65);
  background: var(--color-on-dark);
  color: var(--color-cyan);
}

.button-white:hover,
.button-white:focus-visible {
  border-color: var(--color-on-dark);
  background: transparent;
  color: var(--color-on-dark);
}

.button-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.feature-grid,
.card-grid,
.work-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.feature-grid.four-up,
.work-grid.four-up { grid-template-columns: repeat(4, 1fr); }

.feature-card {
  position: relative;
  background: var(--color-bg);
  padding: 28px;
  border-left: 5px solid var(--color-cyan);
}

.feature-card i {
  color: var(--color-cyan);
  font-size: 28px;
  margin-bottom: 18px;
}

.feature-card h3,
.team-card h3,
.work-card h3 {
  font-size: 18px;
  font-weight: 400;
  text-transform: none;
  margin-bottom: 8px;
}

.team-card,
.work-card,
.sample-card {
  background: var(--color-bg);
}

.team-card img,
.work-card img,
.article-card img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}

.team-card-body,
.work-card-body,
.sample-card {
  padding: 20px;
}

.component-panel {
  background: var(--color-bg);
  padding: 28px;
}

.component-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
  align-items: start;
}

.tabs {
  background: var(--color-bg);
}

.tab-list {
  display: flex;
  gap: 1px;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--color-border);
}

.tab-trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 0;
  background: var(--color-bg-soft-2);
  color: var(--color-text-nav);
  padding: 12px 18px;
  font-weight: 600;
  text-transform: uppercase;
  transition: background var(--transition), color var(--transition);
}

.tab-trigger:hover,
.tab-trigger.is-active {
  background: var(--color-cyan);
  color: var(--color-on-dark);
}

.tab-panel {
  padding: 24px;
}

.tab-panel[hidden] { display: none; }

.video-frame {
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  background: var(--color-navy-deep);
  display: block;
  object-fit: cover;
}

.content-block {
  background: var(--color-bg);
  padding: 26px;
  border-top: 4px solid var(--color-cyan);
}

.content-block h3 {
  display: flex;
  align-items: center;
  gap: 10px;
  text-transform: none;
}

.content-block i { color: var(--color-cyan); }

.content-box {
  background: var(--color-bg);
  border-left: 5px solid var(--color-cyan);
  padding: 28px;
}

.badge-list {
  display: grid;
  border: 1px solid var(--color-border);
}

.badge-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px;
  background: var(--color-bg);
}

.badge-list li + li { border-top: 1px solid var(--color-border); }

.badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 24px;
  padding: 0 8px;
  background: var(--color-cyan);
  color: var(--color-on-dark);
  font-size: 12px;
  font-weight: 700;
}

.divider-line {
  height: 1px;
  background: url('img/divider.png') repeat-x left center;
}

.form-stack {
  display: grid;
  gap: 14px;
}

.form-control {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--color-border-2);
  background: var(--color-bg);
  color: var(--color-text-strong);
  padding: 0 14px;
  font: inherit;
}

.form-control:focus {
  border-color: var(--color-cyan);
  outline: 2px solid rgba(15, 162, 213, 0.18);
  outline-offset: 0;
}

.form-status {
  display: none;
  margin: 4px 0 0;
  padding: 10px 12px;
  border-left: 4px solid var(--color-cyan);
  background: var(--color-bg-soft);
  color: var(--color-text-mid);
}

.form-status.is-visible {
  display: block;
}

.pagination {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
}

.pagination a,
.pagination span {
  min-width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-bg);
  color: var(--color-text-nav);
  border: 1px solid var(--color-border);
}

.pagination a:hover,
.pagination .is-active {
  background: var(--color-cyan);
  border-color: var(--color-cyan);
  color: var(--color-on-dark);
}

.data-table-wrap {
  overflow-x: auto;
  margin-top: 30px;
}

.data-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--color-bg);
}

.data-table th,
.data-table td {
  border: 1px solid var(--color-border);
  padding: 12px 14px;
  text-align: left;
}

.data-table th {
  background: var(--color-bg-soft-2);
  color: var(--color-text-strong);
}

.component-grid + .skills {
  margin-top: 30px;
}

.hero-box {
  background: var(--color-bg);
  padding: 40px;
  text-align: center;
}

.hero-box h2 {
  color: var(--color-text-strong);
  font-size: 36px;
  font-weight: 300;
}

.alert-list {
  display: grid;
  gap: 12px;
}

.alert {
  padding: 14px 18px;
  border-left: 5px solid var(--color-cyan);
  background: var(--color-bg);
}

.alert strong { color: var(--color-text-strong); }
.alert-error { border-color: var(--color-red); }
.alert-success { border-color: var(--color-success); }
.alert-info { border-color: var(--color-cyan); }
.alert-warning { border-color: var(--color-warning); }

.social-showcase {
  display: grid;
  grid-template-columns: repeat(auto-fit, 32px);
  gap: 8px;
  align-items: center;
  justify-content: start;
}

.social-showcase a {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-bg-soft-2);
  color: var(--color-text-nav);
  line-height: 1;
}

.social-showcase i {
  display: block;
  font-size: 13px;
  line-height: 1;
}

.social-showcase a:hover {
  background: var(--color-cyan);
  color: var(--color-on-dark);
}

.team-role,
.work-category {
  display: block;
  color: var(--color-text);
  font-weight: 600;
  margin-bottom: 12px;
}

.social-row {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.social-row a {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-bg-soft-2);
  color: var(--color-text-nav);
}

.social-row a:hover {
  background: var(--color-cyan);
  color: var(--color-on-dark);
}

.quote-panel {
  margin: 0;
  padding: 26px 28px;
  background: var(--color-navy-2);
  color: var(--color-on-dark-muted);
  border-left: 5px solid var(--color-cyan);
}

.quote-panel h4 {
  color: var(--color-on-dark);
  font-size: 18px;
  margin-bottom: 10px;
}

.check-list {
  display: grid;
  gap: 10px;
}

.check-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.check-list i {
  color: var(--color-cyan);
  margin-top: 4px;
}

.article-card {
  background: var(--color-bg);
  display: grid;
  gap: 20px;
}

.article-card + .article-card { margin-top: 34px; }

.article-card-body { padding: 0 0 8px; }

.blog-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
  gap: 30px;
}

.blog-posts {
  padding-right: 30px;
  border-right: 1px solid var(--color-border-2);
}

.blog-full-list .blog-posts {
  padding-right: 0;
  border-right: 0;
}

.blog-sidebar {
  padding-left: 30px;
  border-left: 1px solid var(--color-border-2);
  margin-left: -31px;
}

.blog-card + .blog-card { margin-top: 58px; }

.blog-card img,
.project-detail-image {
  width: 100%;
  aspect-ratio: 2 / 1;
  object-fit: cover;
  margin-bottom: 24px;
}

.blog-card h2,
.project-detail h2 {
  color: var(--color-text-strong);
  font-size: 30px;
  font-weight: 300;
  margin-bottom: 12px;
}

.post-info-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
  padding: 12px 0;
  margin: 0 0 26px;
  border-top: 1px solid var(--color-border-2);
  border-bottom: 1px solid var(--color-border-2);
}

.post-info {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

.post-info i {
  color: var(--color-text);
  margin-right: 6px;
}

.social-row.compact {
  gap: 4px;
}

.social-row.compact a {
  width: 28px;
  height: 28px;
}

.blog-card p,
.project-detail p {
  margin-bottom: 14px;
}

.blog-card .button,
.project-detail .button {
  margin-top: 10px;
}

.search-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px;
}

.search-form .button {
  min-height: 40px;
  padding: 0;
}

.article-meta {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  margin-bottom: 16px;
  color: var(--color-text);
  font-size: 13px;
}

.article-meta i { color: var(--color-cyan); margin-right: 6px; }

.sidebar-box + .sidebar-box { margin-top: 34px; }

.sidebar-box h4 {
  font-size: 18px;
  color: var(--color-text-strong);
  margin-bottom: 16px;
}

.tag-list {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.tag-list a {
  display: inline-flex;
  padding: 5px 10px;
  background: var(--color-bg-soft-2);
  color: var(--color-text-nav);
}

.tag-list a:hover {
  background: var(--color-cyan);
  color: var(--color-on-dark);
}

.icon-catalog {
  display: grid;
  gap: 34px;
}

.icon-group {
  background: var(--color-bg);
  padding: 28px;
}

.icon-group h2 {
  color: var(--color-text-strong);
  font-size: 22px;
  font-weight: 300;
  margin-bottom: 20px;
}

.icon-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--color-border);
  border: 1px solid var(--color-border);
}

.icon-grid span {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 10px 12px;
  background: var(--color-bg-soft);
  color: var(--color-text-nav);
  overflow-wrap: anywhere;
}

.icon-grid i {
  width: 20px;
  flex: 0 0 20px;
  color: var(--color-cyan);
  text-align: center;
  font-size: 16px;
}

.promo-stack {
  display: grid;
  gap: 80px;
  padding-top: 20px;
}

.promo-box {
  padding: 34px 0;
}

.promo-box-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: center;
}

.promo-box h2 {
  color: var(--color-text-strong);
  font-size: 22px;
  font-weight: 300;
  line-height: 1.55;
  margin: 0;
}

.promo-box h2 span {
  color: var(--color-cyan);
  font-weight: 600;
}

.promo-box-light {
  background: var(--color-bg);
}

.promo-box-cyan {
  background: var(--color-cyan);
}

.promo-box-dark {
  background: var(--color-navy-2);
}

.promo-box-cyan h2,
.promo-box-dark h2,
.promo-box-cyan h2 span,
.promo-box-dark h2 span {
  color: var(--color-on-dark);
}

.blog-detail-article .quote-panel {
  margin: 26px 0;
}

.blog-detail-full {
  max-width: 980px;
  margin-inline: auto;
}

.project-detail-sidebar-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
  gap: 30px;
}

.project-sidebar {
  padding-left: 30px;
  border-left: 1px solid var(--color-border-2);
}

.project-meta-list {
  display: grid;
  gap: 1px;
  border: 1px solid var(--color-border);
}

.project-meta-list li {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr);
  gap: 12px;
  padding: 12px 14px;
  background: var(--color-bg);
}

.project-meta-list strong {
  color: var(--color-text-strong);
}

.blog-comments {
  padding-top: 0;
}

.blog-comment {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 18px;
  padding: 24px 0;
  border-top: 1px solid var(--color-border-2);
}

.blog-comment:last-child {
  border-bottom: 1px solid var(--color-border-2);
}

.blog-comment.reply {
  margin-top: 22px;
  padding-left: 28px;
}

.user-image {
  width: 54px;
  height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-bg);
  color: var(--color-cyan);
  font-size: 20px;
}

.comment-data h3 {
  color: var(--color-text-strong);
  font-size: 18px;
  font-weight: 400;
  text-transform: none;
  margin-bottom: 4px;
}

.comment-meta {
  color: var(--color-text-soft);
  font-size: 12px;
  font-weight: 600;
}

.reply-link {
  margin-left: 10px;
  font-weight: 700;
  text-transform: uppercase;
}

.contact-hero img {
  width: 100%;
  height: min(360px, 38vw);
  min-height: 220px;
  object-fit: cover;
}

.contact-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.contact-aside {
  display: grid;
  gap: 30px;
  align-content: start;
}

.contact-box {
  background: var(--color-bg);
  padding: 26px;
}

.contact-box h4 {
  color: var(--color-text-strong);
  font-size: 20px;
}

.contact-box i {
  color: var(--color-cyan);
  width: 20px;
  text-align: center;
  margin-right: 8px;
}

.map-frame {
  width: 100%;
  height: 360px;
  border: 0;
  background: var(--color-bg-soft-2);
}

.map-link {
  margin-top: 10px;
  text-align: right;
}

.pricing-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
}

.pricing-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  border: 1px solid var(--color-border);
  background: var(--color-bg);
  text-align: center;
}

.pricing-card header {
  padding: 30px 24px;
  background: var(--color-text-strong);
  color: var(--color-on-dark);
}

.pricing-card h2 {
  color: var(--color-on-dark);
  font-size: 24px;
  font-weight: 700;
  margin: 0;
}

.pricing-price {
  padding-top: 30px;
  font-size: 36px;
  font-weight: 700;
  line-height: 30px;
}

.pricing-price span {
  position: relative;
  top: -7px;
  display: inline-block;
  color: var(--color-on-dark);
  font-size: 14px;
  font-weight: 400;
}

.pricing-card ul {
  flex: 1;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pricing-card li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 40px;
  padding: 8px 16px;
  border-top: 1px solid var(--color-border);
  color: var(--color-text-nav);
  text-align: left;
}

.pricing-label {
  font-size: 13px;
}

.pricing-value {
  color: var(--color-text-strong);
  font-weight: 600;
  text-align: right;
  white-space: nowrap;
}

.pricing-card li i {
  color: var(--color-cyan);
}

.pricing-value.is-muted i {
  color: var(--color-text-nav);
}

.pricing-action {
  display: block;
  padding: 34px 12px;
  background: var(--color-text-strong);
  color: var(--color-on-dark);
  font-size: 16px;
  font-weight: 700;
}

.pricing-card.is-featured header,
.pricing-card.is-featured .pricing-action {
  background: var(--color-cyan);
}

.pricing-card.is-featured .pricing-value {
  color: var(--color-cyan);
}

.pricing-action:hover {
  background: var(--color-red);
  color: var(--color-on-dark);
}

.component-swatch-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.swatch {
  background: var(--color-bg);
  padding: 16px;
}

.swatch-color {
  height: 58px;
  margin-bottom: 12px;
}

.swatch-red { background: var(--color-red); }
.swatch-cyan { background: var(--color-cyan); }
.swatch-navy { background: var(--color-navy); }
.swatch-soft { background: var(--color-bg-soft-2); }

.type-sample {
  background: var(--color-bg);
  padding: 28px;
}

.type-sample.compact { padding: 22px; }

.type-scale {
  display: grid;
  gap: 18px;
}

.type-meta {
  color: var(--color-text-soft);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
  margin-top: -8px;
  text-transform: uppercase;
}

.list-demo-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  align-items: stretch;
}

.list-demo-grid .type-sample {
  margin: 0;
}

.list-demo-grid h4 {
  color: var(--color-text-strong);
  margin-bottom: 14px;
}

.plain-list {
  list-style: disc;
  padding-left: 18px;
}

.plain-list li + li { margin-top: 8px; }

/* ------------ Home expansion blocks -------------------------------------- */

.section-heading-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 26px;
}

.section-heading-row .lead {
  max-width: 650px;
  margin-bottom: 0;
}

.filter-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.filter-controls button {
  min-height: 38px;
  padding: 0 15px;
  border: 1px solid var(--color-border-2);
  background: var(--color-bg);
  color: var(--color-text-nav);
  font-weight: 700;
  text-transform: uppercase;
  transition: background var(--transition), border-color var(--transition), color var(--transition);
}

.filter-controls button:hover,
.filter-controls button:focus-visible,
.filter-controls button.is-active {
  border-color: var(--color-cyan);
  background: var(--color-cyan);
  color: var(--color-on-dark);
}

.portfolio-filter-grid [data-tags].is-hidden {
  display: none;
}

.home-shop-intro {
  margin-bottom: 30px;
}

.home-product-card {
  border: 1px solid var(--color-border);
}

.product-media-link {
  display: block;
  overflow: hidden;
  background: var(--color-bg-soft-2);
}

.product-media-link img {
  transition: transform 0.55s ease-in-out, opacity 0.55s ease-in-out;
}

.product-media-link:hover img,
.product-media-link:focus-visible img {
  opacity: 0.82;
  transform: scale(1.08);
}

.home-product-card .button {
  width: 100%;
}

.home-proof-band {
  margin-block: 20px 36px;
}

.testimonial-stack {
  display: grid;
  gap: 20px;
}

.home-testimonial {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 0 18px;
  margin: 0;
  padding: 24px;
  background: var(--color-bg);
}

.home-testimonial img {
  width: 72px;
  height: 72px;
  object-fit: cover;
}

.home-testimonial blockquote {
  margin: 0 0 8px;
  color: var(--color-text-mid);
  font-size: 15px;
  line-height: 1.65;
}

.home-testimonial figcaption {
  grid-column: 2;
  color: var(--color-cyan);
  font-weight: 700;
}

.home-process-list {
  display: grid;
  gap: 1px;
  border: 1px solid var(--color-border);
}

.home-process-list a {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  min-height: 68px;
  padding: 14px 18px;
  background: var(--color-bg);
  color: var(--color-text-mid);
}

.home-process-list a:hover,
.home-process-list a:focus-visible {
  background: var(--color-cyan);
  color: var(--color-on-dark);
}

.home-process-list strong {
  color: var(--color-cyan);
  font-size: 22px;
  font-weight: 300;
}

.home-process-list a:hover strong,
.home-process-list a:focus-visible strong {
  color: var(--color-on-dark);
}

.testimonial-avatar-row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 24px;
}

.testimonial-avatar-row img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border: 4px solid var(--color-bg);
}

.home-contact-preview .form-stack {
  align-content: start;
}

.home-contact-preview .button {
  width: fit-content;
}

.home-cta-strip {
  margin-top: 18px;
  padding: 42px 0;
  background: var(--color-cyan);
  color: var(--color-on-dark);
}

.home-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.home-cta-strip h2,
.home-cta-strip p {
  color: var(--color-on-dark);
  margin-bottom: 0;
}

.home-cta-strip h2 {
  font-weight: 300;
  margin-bottom: 8px;
}

.home-cta-strip .button-outline {
  border-color: rgba(255, 255, 255, 0.72);
  color: var(--color-on-dark);
}

.home-cta-strip .button-outline:hover,
.home-cta-strip .button-outline:focus-visible {
  border-color: var(--color-on-dark);
  background: var(--color-on-dark);
  color: var(--color-cyan);
}

/* ------------ Checkout --------------------------------------------------- */

.checkout-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.85fr);
  gap: 30px;
  align-items: start;
}

.checkout-card,
.checkout-summary {
  background: var(--color-bg);
  padding: 28px;
  border: 1px solid var(--color-border);
}

.checkout-card h2,
.checkout-summary h2 {
  color: var(--color-text-strong);
  font-size: 24px;
  font-weight: 400;
  margin-bottom: 20px;
}

.checkout-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

.checkout-grid .is-wide {
  grid-column: 1 / -1;
}

.checkout-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 24px;
}

.checkout-table th,
.checkout-table td {
  padding: 13px 0;
  border-bottom: 1px solid var(--color-border);
  text-align: left;
}

.checkout-table th:last-child,
.checkout-table td:last-child {
  text-align: right;
}

.checkout-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 18px 0 24px;
  padding-top: 18px;
  border-top: 2px solid var(--color-cyan);
  color: var(--color-text-strong);
  font-size: 22px;
}

.checkout-summary .button {
  width: 100%;
}

.secure-list {
  display: grid;
  gap: 10px;
  margin-top: 20px;
}

.secure-list li {
  display: flex;
  align-items: center;
  gap: 9px;
}

.secure-list i {
  color: var(--color-cyan);
}

/* ------------ Responsive ------------------------------------------------- */

@media (max-width: 1024px) {
  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .service-card-grid { grid-template-columns: repeat(2, 1fr); }
  .news-grid { grid-template-columns: repeat(2, 1fr); }
  .partners { grid-template-columns: repeat(3, 1fr); }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .portfolio-grid { grid-template-columns: repeat(3, 1fr); }
  .portfolio-grid-2 { grid-template-columns: repeat(2, 1fr); }
  .portfolio-grid-3,
  .portfolio-grid-4 { grid-template-columns: repeat(3, 1fr); }
  .pricing-grid { grid-template-columns: repeat(2, 1fr); }
  .utility-link-grid,
  .grid-demo-3,
  .grid-demo-4,
  .testimonial-quote-grid,
  .icon-grid { grid-template-columns: repeat(2, 1fr); }
  .feature-grid,
  .feature-grid.four-up,
  .card-grid,
  .work-grid,
  .work-grid.four-up,
  .contact-grid,
  .component-grid,
  .list-demo-grid,
  .component-swatch-grid,
  .checkout-layout { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1180px) and (min-width: 992px) {
  .nav-menu a {
    font-size: 13px;
    padding-inline: 14px;
  }

  .social-6 a {
    width: 36px;
  }
}

@media (max-width: 991px) {
  .parallax { background-attachment: scroll; }

  .nav-toggle { display: inline-flex; }

  .nav-menu {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--color-bg-soft);
    flex-direction: column;
    padding: 8px 0;
    border-top: 1px solid var(--color-border);
    box-shadow: var(--shadow-md);
    display: none !important;
  }

  .nav-menu.is-open { display: flex !important; }

  .nav-menu a {
    display: block;
    margin: 0;
    padding: 12px 24px;
    background: transparent;
    border-bottom: 1px solid var(--color-border);
  }

  .nav-menu .is-active a,
  .nav-menu .active a {
    background: var(--color-cyan);
  }

  .nav-menu li:last-child a { border-bottom: none; }

  .social-top { display: none; }

  .three-col { grid-template-columns: 1fr; gap: 30px; }
  .two-col,
  .content-sidebar,
  .split-feature,
  .modern-box { grid-template-columns: 1fr; }

  .blog-layout { grid-template-columns: 1fr; }
  .project-detail-sidebar-layout { grid-template-columns: 1fr; }
  .form-page-grid,
  .auth-grid,
  .career-layout,
  .support-layout,
  .promo-box-inner,
  .grid-demo-2,
  .grid-demo-8-4,
  .testimonial-profile-grid,
  .checkout-layout { grid-template-columns: 1fr; }

  .section-heading-row,
  .home-cta-inner {
    align-items: flex-start;
    flex-direction: column;
  }

  .filter-controls {
    justify-content: flex-start;
  }

  .blog-posts,
  .blog-sidebar,
  .project-sidebar {
    padding-inline: 0;
    border: 0;
    margin-left: 0;
  }

  .modern-box img {
    justify-self: start;
  }

  .top-container { padding-block: 18px 12px; }
}

@media (max-width: 768px) {
  .services-grid { grid-template-columns: 1fr; }
  .service-card-grid { grid-template-columns: 1fr; }
  .news-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .top-container { flex-direction: column; align-items: flex-start; gap: 12px; }
  .copyright-inner { justify-content: center; text-align: center; }
  .copyright-info { text-align: center; }
  .hero { height: 380px; }
  .hero-eyebrow, .hero-sub { font-size: 22px; }
  .hero-title { font-size: clamp(32px, 8vw, 48px); }
  .page-title { font-size: 28px; }
  .footer-promo h2 { font-size: 26px; }
  .page-header-inner { align-items: flex-start; }
  .split-feature { padding: 24px; }
  .services-overview { padding-bottom: 38px; }
  .services-modern-section { padding-top: 26px; }
  .modern-box { gap: 28px; }
  .modern-box h2 { font-size: 28px; line-height: 38px; }
  .contact-hero img { height: 240px; }
  .home-testimonial { grid-template-columns: 1fr; }
  .home-testimonial figcaption { grid-column: 1; }
  .home-testimonial img { margin-bottom: 14px; }
  .checkout-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .partners { grid-template-columns: repeat(2, 1fr); }
  .feature-grid,
  .feature-grid.four-up,
  .card-grid,
  .work-grid,
  .work-grid.four-up,
  .portfolio-grid,
  .portfolio-grid-2,
  .portfolio-grid-3,
  .portfolio-grid-4,
  .pricing-grid,
  .utility-link-grid,
  .grid-demo-3,
  .grid-demo-4,
  .testimonial-quote-grid,
  .contact-grid,
  .component-grid,
  .list-demo-grid,
  .component-swatch-grid { grid-template-columns: 1fr; }
  .portfolio-card-wide { grid-column: auto; }
  .portfolio-card-wide .portfolio-media { aspect-ratio: 1; }
  .icon-grid { grid-template-columns: 1fr; }
  .icon-group { padding: 22px; }
  .promo-stack { gap: 42px; }
  .promo-box { padding: 28px 0; }
  .blog-comment,
  .blog-comment.reply {
    grid-template-columns: 1fr;
    padding-left: 0;
  }
  .form-page { padding: 22px; }
  .testimonial-profile { grid-template-columns: 1fr; }
  .testimonial-person img { max-width: 170px; }
  .lightbox-prev { left: 12px; }
  .lightbox-next { right: 12px; }
  .lightbox-close { top: 12px; right: 12px; }
  .top-items { flex-direction: column; gap: 4px; }
  .top-items li { padding: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
  }
}

/* ------------ Generated demo variants ------------------------------------- */
.form-control:is(textarea) { padding-top: 12px; resize: vertical; }

.legacy-icon-catalog .icon-group { overflow: hidden; }
.legacy-icon-grid i { font-size: 18px; line-height: 1; }
.legacy-icon-grid .entypo,
.legacy-icon-grid .entypo-social { font-size: 28px; line-height: 1; }

.portfolio-bordered { gap: 30px; }
.portfolio-bordered .portfolio-card { border: 1px solid var(--color-border); }
.portfolio-boxed { gap: 30px; }
.portfolio-full-section { padding-inline: 0; }
.portfolio-full-section .portfolio-grid { width: 100%; }
.portfolio-grid-6 { grid-template-columns: repeat(6, 1fr); }

.home-demo-hero { position: relative; min-height: 460px; display: grid; place-items: center; text-align: center; color: var(--color-on-dark); background: linear-gradient(rgba(46,52,62,.5), rgba(46,52,62,.5)), url('img/hero/01.jpg') center/cover; }
.home-demo-hero i { font-size: 42px; margin-bottom: 18px; color: var(--color-on-dark); }
.home-demo-hero h1 { color: var(--color-on-dark); font-size: 48px; font-weight: 300; margin-bottom: 10px; }
.home-demo-hero p { color: var(--color-on-dark-muted); font-size: 18px; margin-bottom: 26px; }

.shop-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.product-card { background: var(--color-bg); }
.product-card img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.product-card-body { padding: 20px; }
.product-card h3 { color: var(--color-text-strong); font-size: 18px; text-transform: none; margin-bottom: 8px; }
.product-price { display: block; color: var(--color-cyan); font-size: 20px; font-weight: 700; margin-bottom: 16px; }

.counter-band { background: var(--color-navy-2); padding: 54px 0; }
.counter-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; text-align: center; }
.counter-grid strong { display: block; color: var(--color-on-dark); font-size: 44px; font-weight: 300; line-height: 1; }
.counter-grid span { color: var(--color-on-dark-soft); text-transform: uppercase; font-weight: 700; letter-spacing: .04em; }

@media (max-width: 1024px) {
  .portfolio-grid-6 { grid-template-columns: repeat(3, 1fr); }
  .shop-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .home-demo-hero { min-height: 360px; }
  .home-demo-hero h1 { font-size: 34px; }
  .counter-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .portfolio-grid-6, .shop-grid { grid-template-columns: 1fr; }
  .counter-grid { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------------------
   Ukazky variantov hlavicky a paticky (Header-2..4, footer, footer-2..4)
   ------------------------------------------------------------------------- */
.demo-note {
  max-width: 760px;
  margin-bottom: 26px;
  color: var(--color-text-mid);
  font-size: 16px;
  line-height: 1.7;
}

.demo-stage {
  border: 1px solid var(--color-border);
  background: var(--color-bg);
}

.demo-stage + .check-list {
  margin-top: 28px;
}

.demo-stage-label {
  padding: 10px 18px;
  border-bottom: 1px solid var(--color-border);
  background: var(--color-bg-soft);
  color: var(--color-text-nav);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* --- Hlavicka --- */
.hd-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 26px;
}

.hd-brand {
  color: var(--color-text-strong);
  font-size: 22px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.hd-brand span {
  margin-left: 4px;
  color: var(--color-text-nav);
  font-size: 11px;
  font-weight: 400;
  vertical-align: super;
}

.hd-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
  color: var(--color-text-nav);
  font-size: 13px;
}

.hd-meta i {
  margin-right: 7px;
  color: var(--color-cyan);
}

.hd-nav {
  display: flex;
  flex-wrap: wrap;
  padding-inline: 12px;
  border-top: 1px solid var(--color-border);
  background: var(--color-bg-soft);
}

.hd-nav a {
  padding: 15px 18px;
  color: var(--color-text-nav);
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  transition: background var(--transition), color var(--transition);
}

.hd-nav a.is-active,
.hd-nav a:hover {
  background: var(--color-cyan);
  color: var(--color-on-dark);
}

.hd-social {
  display: flex;
  gap: 8px;
}

.hd-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background: var(--color-bg-soft-2);
  color: var(--color-text-nav);
  transition: background var(--transition), color var(--transition);
}

.hd-social a:hover {
  background: var(--color-cyan);
  color: var(--color-on-dark);
}

.hd-preview.is-dark { background: var(--color-navy); }
.hd-preview.is-dark .hd-brand { color: var(--color-on-dark); }
.hd-preview.is-dark .hd-brand span,
.hd-preview.is-dark .hd-meta { color: var(--color-on-dark-soft); }
.hd-preview.is-dark .hd-nav {
  border-top-color: var(--color-navy-line);
  background: var(--color-navy-deep);
}
.hd-preview.is-dark .hd-nav a { color: var(--color-on-dark-soft); }
.hd-preview.is-dark .hd-social a {
  background: var(--color-navy-line);
  color: var(--color-on-dark-soft);
}

.hd-preview.is-centered .hd-top {
  flex-direction: column;
  gap: 14px;
  text-align: center;
}
.hd-preview.is-centered .hd-nav { justify-content: center; }

/* --- Paticka --- */
.ft-preview {
  padding: 40px 30px;
  background: var(--color-navy);
  color: var(--color-on-dark-soft);
}

.ft-cols {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
}

.ft-preview h3 {
  margin-bottom: 14px;
  color: var(--color-on-dark);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ft-preview p,
.ft-preview li {
  font-size: 13px;
  line-height: 1.8;
}

.ft-preview ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.ft-preview a { color: var(--color-on-dark-soft); }
.ft-preview a:hover { color: var(--color-cyan); }

.ft-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 34px;
  padding-top: 20px;
  border-top: 1px solid var(--color-navy-line);
  font-size: 13px;
}

.ft-preview.is-light {
  background: var(--color-bg-soft);
  color: var(--color-text);
}
.ft-preview.is-light h3 { color: var(--color-text-strong); }
.ft-preview.is-light a { color: var(--color-text-nav); }
.ft-preview.is-light a:hover { color: var(--color-cyan); }
.ft-preview.is-light .ft-bar { border-top-color: var(--color-border); }

.ft-preview.is-accent {
  background: var(--color-cyan);
  color: var(--color-on-dark-muted);
}
.ft-preview.is-accent h3,
.ft-preview.is-accent a { color: var(--color-on-dark); }
.ft-preview.is-accent a:hover { color: var(--color-navy); }
.ft-preview.is-accent .ft-bar { border-top-color: var(--color-on-dark-line); }

.ft-preview.is-minimal .ft-cols { grid-template-columns: 1fr; text-align: center; }
.ft-preview.is-minimal .ft-bar { justify-content: center; text-align: center; }

@media (max-width: 991px) {
  .ft-cols { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
  .ft-cols { grid-template-columns: 1fr; }
  .hd-top { padding: 18px; }
}
