/* Finální sjednocení klikacích dlaždic a servisních navigací. */
:root {
  --soft-hex-flat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='%23000' d='M27 2h46a5 5 0 0 1 4.4 2.6l21.4 41.9a7.5 7.5 0 0 1 0 7L77.4 95.4A5 5 0 0 1 73 98H27a5 5 0 0 1-4.4-2.6L1.2 53.5a7.5 7.5 0 0 1 0-7L22.6 4.6A5 5 0 0 1 27 2Z'/%3E%3C/svg%3E");
  --soft-hex-point: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='%23000' d='M46.5 1.8a7.5 7.5 0 0 1 7 0l42 23.4a5.5 5.5 0 0 1 2.8 4.8v40a5.5 5.5 0 0 1-2.8 4.8l-42 23.4a7.5 7.5 0 0 1-7 0l-42-23.4A5.5 5.5 0 0 1 1.7 70V30a5.5 5.5 0 0 1 2.8-4.8Z'/%3E%3C/svg%3E");
  --soft-hex-outline: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 86.603'%3E%3Cpath d='M25 1.5h50c1.8 0 3.4 1 4.3 2.5l19 35.3c1.4 2.5 1.4 5.5 0 8l-19 35.3a5 5 0 0 1-4.3 2.5H25a5 5 0 0 1-4.3-2.5l-19-35.3a8.3 8.3 0 0 1 0-8L20.7 4A5 5 0 0 1 25 1.5Z' fill='none' stroke='%23fff' stroke-width='1.1'/%3E%3C/svg%3E");
  --soft-hex-outline-dashed: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 86.603'%3E%3Cpath d='M25 1.5h50c1.8 0 3.4 1 4.3 2.5l19 35.3c1.4 2.5 1.4 5.5 0 8l-19 35.3a5 5 0 0 1-4.3 2.5H25a5 5 0 0 1-4.3-2.5l-19-35.3a8.3 8.3 0 0 1 0-8L20.7 4A5 5 0 0 1 25 1.5Z' fill='none' stroke='%23fff' stroke-width='1.1' stroke-dasharray='4 4'/%3E%3C/svg%3E");
}

/* Přístupnost a sjednocení globálních prvků */
.skip-link {
  position: fixed;
  left: 18px;
  top: 14px;
  z-index: 10000;
  padding: 12px 18px;
  border-radius: 999px;
  background: #ffd51f;
  color: #11120f;
  font-weight: 800;
  transform: translateY(-160%);
  transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }
:where(a,button,input,select,textarea,[tabindex]):focus-visible {
  outline: 3px solid #ffd51f;
  outline-offset: 3px;
}
.global-footer .footer-top h2 {
  display: block;
  margin: 0 0 14px !important;
  color: #ffd51f !important;
  font-size: 10px !important;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

/* Drobně zaoblené rohy opakovaných šestiúhelníků. */
.hex,
.brand-mark,
.rings b,
.orbit-dot,
.cta-mark,
.process-hive article > span,
.honey-stats > div,
.page-hero::after,
.section.dark::after,
.rich-footer::before,
.process-hive article::before,
.project-feature::before,
.project-small::before,
.blog-post-image::before {
  clip-path: none !important;
  -webkit-mask: var(--soft-hex-flat) center / 100% 100% no-repeat;
  mask: var(--soft-hex-flat) center / 100% 100% no-repeat;
}

.whole-tile-link { cursor: pointer; }
.whole-tile-link:focus-visible { outline: 3px solid #ffd51f; outline-offset: 4px; }
.case-hero .eyebrow,
.case-hero #dynamic-category { color: #ffd51f !important; }
.page-portfolio .portfolio-grid > a.card { display: flex; flex-direction: column; cursor: pointer; }
.page-portfolio .portfolio-grid > a.card .card-link { margin-top: auto; align-self: flex-start; }
.portfolio-gallery-preview figure { position: relative; margin: 0; }
.portfolio-gallery-preview figure img { width: 100%; height: 100%; object-fit: cover; }
.portfolio-gallery-preview figure button {
  position: absolute; right: 8px; top: 8px; width: 34px; height: 34px; border: 0; border-radius: 50%;
  background: rgba(17,18,15,.88); color: #fff; font-size: 22px; line-height: 1; cursor: pointer;
}
.admin-remove-photo { margin-top: 10px; border: 1px solid #d5d5cf; border-radius: 999px; padding: 9px 14px; background: #fff; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.admin-remove-photo:hover { background: #111; color: #fff; }

/* Stav a souhlas funkčního kontaktního formuláře. */
.contact-form { position: relative; }
.contact-form .form-trap { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.contact-form .consent-check { display: grid; grid-template-columns: 22px 1fr; align-items: start; gap: 11px; font-weight: 450; line-height: 1.5; }
.contact-form .consent-check input { width: 18px; height: 18px; margin: 3px 0 0; accent-color: #ffd51f; }
.contact-form .consent-check a { font-weight: 750; border-bottom: 1px solid #c19d00; }
.contact-form .notice { display: none; border: 1px solid transparent; border-left-width: 4px; border-radius: 14px; padding: 15px 17px; }
.contact-form .notice[data-state="loading"] { display: block; background: #f5f5f0; border-color: #d9d9d1; }
.contact-form .notice[data-state="success"] { display: block; background: #eff8ef; border-color: #4d9552; color: #16491a; }
.contact-form .notice[data-state="error"] { display: block; background: #fff0ed; border-color: #c64a3c; color: #7f2017; }
.contact-form button[disabled] { opacity: .62; cursor: wait; transform: none !important; }
.contact-form input[aria-invalid="true"],
.contact-form textarea[aria-invalid="true"],
.contact-form select[aria-invalid="true"] { border-color: #c64a3c !important; box-shadow: 0 0 0 3px rgba(198,74,60,.12); }
.contact-form .consent-check input[aria-invalid="true"] { outline: 3px solid rgba(198,74,60,.18); outline-offset: 3px; }
.contact-form .field-alert-bubble {
  position: relative;
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 12px;
  width: fit-content;
  max-width: min(100%, 520px);
  margin-top: 7px;
  padding: 14px 18px 14px 14px;
  border-radius: 18px;
  background: #ffd51f;
  color: #11120f;
  box-shadow: 0 14px 32px rgba(110,86,0,.22);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.4;
  animation: formBubbleIn .28s cubic-bezier(.2,.8,.2,1) both;
}
.contact-form .field-alert-bubble::before {
  content: "";
  position: absolute;
  left: 24px;
  top: -9px;
  width: 18px;
  height: 12px;
  background: #ffd51f;
  clip-path: polygon(50% 0,100% 100%,0 100%);
}
.contact-form .field-alert-bubble > b {
  flex: 0 0 auto;
  width: 28px;
  height: 24.249px;
  display: grid;
  place-items: center;
  background: #11120f;
  color: #ffd51f;
  font-size: 16px;
  line-height: 1;
  -webkit-mask: var(--soft-hex-flat) center / 100% 100% no-repeat;
  mask: var(--soft-hex-flat) center / 100% 100% no-repeat;
}
@keyframes formBubbleIn { from { opacity: 0; transform: translateY(-7px) scale(.97); } to { opacity: 1; transform: none; } }

/* Plné logo v části 03 není maskované ani oříznuté šestiúhelníkem. */
.home-page .rings .system-bee-mark {
  width: 235px !important;
  height: 84px !important;
  aspect-ratio: auto !important;
  -webkit-mask: none !important;
  mask: none !important;
  clip-path: none !important;
  overflow: visible !important;
}

/* Kruhové dekorace nahrazuje jednotný systém jemně zaoblených hexagonů. */
.home-page .hive-orbit,
.home-page .rings,
.home-page .rings::before,
.home-page .rings::after,
.home-page .rings > span {
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--soft-hex-outline) center / 100% 100% no-repeat !important;
}
.home-page .hive-orbit { width: 440px !important; height: 381.051px !important; }
.home-page .rings { width: 430px !important; height: 372.391px !important; }
.home-page .rings::before,
.home-page .rings::after,
.home-page .rings > span {
  inset: auto !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%,-50%);
}
.home-page .rings::before { width: 330px !important; height: 285.788px !important; }
.home-page .rings::after { width: 210px !important; height: 181.865px !important; }
.home-page .rings > span:nth-child(1) { width: 170px !important; height: 147.224px !important; }
.home-page .rings > span:nth-child(2) { width: 260px !important; height: 225.167px !important; background-image: var(--soft-hex-outline-dashed) !important; }
.home-page .rings > span:nth-child(3) { width: 340px !important; height: 294.449px !important; }
.home-page .service-panel::before {
  width: 240px !important;
  height: 207.846px !important;
  border-radius: 0 !important;
  -webkit-mask: var(--soft-hex-flat) center / 100% 100% no-repeat;
  mask: var(--soft-hex-flat) center / 100% 100% no-repeat;
}
.round-arrow,
.socials a,
.global-footer .socials a,
.menu-toggle,
.story-step::after,
.home-page .cta-orb .cta-mark {
  border-radius: 0 !important;
  -webkit-mask: var(--soft-hex-flat) center / 100% 100% no-repeat;
  mask: var(--soft-hex-flat) center / 100% 100% no-repeat;
}
.round-arrow { width: 52px !important; height: 45.033px !important; }
.socials a,
.global-footer .socials a { width: 42px !important; height: 36.373px !important; }
.menu-toggle { width: 48px !important; height: 41.569px !important; }
.story-step::after { width: 40px !important; height: 34.641px !important; }
.home-page .cta-orb .cta-mark { width: 52px !important; height: 45.033px !important; }
.pulse {
  width: 11px !important;
  height: 9.526px !important;
  border-radius: 0 !important;
  -webkit-mask: var(--soft-hex-flat) center / 100% 100% no-repeat;
  mask: var(--soft-hex-flat) center / 100% 100% no-repeat;
}

/* Pravidelný flat-top šestiúhelník má poměr šířka:výška 2:√3. */
.orbit-dot { width: 42px !important; height: 36.373px !important; }
.orbit-dot.three { width: 20px !important; height: 17.321px !important; }
.process-hive article > span { width: 54px !important; height: 46.765px !important; }
.brand-mark { aspect-ratio: 2 / 1.73205 !important; }
.honey-stats > div { aspect-ratio: 2 / 1.73205 !important; min-height: 0 !important; }
.process-hive article::before { aspect-ratio: 2 / 1.73205 !important; height: auto !important; }
.bee-tile-hex { aspect-ratio: 2 / 1.73205 !important; height: auto !important; }
.bee-surface-hex,
.mega-hex,
.page-hero::after,
.section.dark::after,
.rich-footer::before,
.project-feature::before,
.project-small::before,
.blog-post-image::before {
  aspect-ratio: 2 / 1.73205 !important;
  height: auto !important;
}

@media (min-width: 901px) {
  /* Šest služeb přesně obepíná střed: pravidelné tvary bez deformace. */
  .home-page .interactive-hive .hex:not(.core) { width: 174px !important; height: 150.689px !important; }
  .home-page .interactive-hive .hex.core { width: 194px !important; height: 168.009px !important; }
  .home-page .interactive-hive .hex:nth-child(2) { --hx: 0px; --hy: -160px; }
  .home-page .interactive-hive .hex:nth-child(3) { --hx: 138.564px; --hy: -80px; }
  .home-page .interactive-hive .hex:nth-child(4) { --hx: 138.564px; --hy: 80px; }
  .home-page .interactive-hive .hex:nth-child(5) { --hx: 0px; --hy: 160px; }
  .home-page .interactive-hive .hex:nth-child(6) { --hx: -138.564px; --hy: 80px; }
  .home-page .interactive-hive .hex:nth-child(7) { --hx: -138.564px; --hy: -80px; }
}

/* Úvodní plástev: fotografie a střídání tří barevných tónů i na desktopu.
   Pořadí A–B–C–A–B–C zaručuje, že se stejný tón na obvodu nedotýká. */
.home-page .interactive-hive .hex:not(.core) {
  background-position: center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  color: #111 !important;
  text-shadow: 0 1px 10px rgba(255,255,255,.48);
  transition: transform .42s cubic-bezier(.2,.8,.2,1), box-shadow .42s, filter .42s, background-image .42s !important;
}
.home-page .interactive-hive .hex:nth-child(2) {
  background-image: linear-gradient(135deg,rgba(255,213,31,.92),rgba(255,213,31,.64)),url("photo-strategy-workshop-optimized.jpg") !important;
}
.home-page .interactive-hive .hex:nth-child(3) {
  background-image: linear-gradient(135deg,rgba(191,195,181,.94),rgba(230,232,222,.68)),url("photo-process-map.jpg") !important;
}
.home-page .interactive-hive .hex:nth-child(4) {
  background-image: linear-gradient(135deg,rgba(247,246,239,.94),rgba(225,221,205,.7)),url("photo-web-creation.jpg") !important;
}
.home-page .interactive-hive .hex:nth-child(5) {
  background-image: linear-gradient(135deg,rgba(255,213,31,.92),rgba(255,213,31,.62)),url("photo-design-process-optimized.jpg") !important;
}
.home-page .interactive-hive .hex:nth-child(6) {
  background-image: linear-gradient(135deg,rgba(191,195,181,.94),rgba(230,232,222,.66)),url("photo-marketing-content-optimized.jpg") !important;
}
.home-page .interactive-hive .hex:nth-child(7) {
  background-image: linear-gradient(135deg,rgba(247,246,239,.94),rgba(225,221,205,.7)),url("photo-consultation.jpg") !important;
}
.home-page .interactive-hive .hex:not(.core):hover,
.home-page .interactive-hive .hex:not(.core).is-active {
  background-color: #111 !important;
  background-image: none !important;
  color: #fff !important;
  text-shadow: none;
}

/* Fotografie principů se objeví plynule a zůstávají oříznuté uvnitř karty. */
.principle-card { overflow: hidden !important; contain: paint; }
.principle-card::before {
  opacity: .12 !important;
  filter: grayscale(1) brightness(.9) !important;
  transform: scale(1.025) !important;
  transition: opacity .72s cubic-bezier(.2,.7,.2,1), filter .72s ease, transform 1.05s cubic-bezier(.2,.7,.2,1) !important;
}
.principle-card::after { transition: background .72s ease !important; }
.principle-card:hover::before,
.principle-card:focus-visible::before {
  opacity: .72 !important;
  filter: grayscale(.25) brightness(.56) !important;
  transform: scale(1.075) !important;
}
.page-co-delame .grid.three .card {
  display: flex;
  flex-direction: column;
  border-radius: 24px;
  min-height: 285px;
  transition: transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s, background .4s, color .4s;
}
.page-co-delame .grid.three .card:hover,
.page-co-delame .grid.three .card:focus-visible {
  transform: translateY(-8px);
  background: #111;
  color: #fff;
  box-shadow: 0 24px 50px rgba(0,0,0,.16);
}
.page-co-delame .grid.three .card:hover p,
.page-co-delame .grid.three .card:focus-visible p { color: #c9cac4; }

.related-links { gap: 16px !important; }
.related-links a {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 250px;
  padding: 28px !important;
  border-radius: 26px !important;
  display: flex;
  align-items: flex-end;
  color: #fff !important;
  font-size: 24px !important;
  transition: transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s !important;
}
.related-links a::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background: center / cover no-repeat;
  transition: transform .85s cubic-bezier(.2,.8,.2,1), filter .5s;
}
.related-links a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(8,9,8,.06), rgba(8,9,8,.9));
}
.related-links a:nth-child(1)::before { background-image: url("photo-web-creation.jpg"); }
.related-links a:nth-child(2)::before { background-image: url("photo-marketing-content-optimized.jpg"); }
.related-links a:nth-child(3)::before { background-image: url("photo-process-map.jpg"); }
.related-links a:hover,
.related-links a:focus-visible {
  transform: translateY(-8px);
  box-shadow: 0 24px 50px rgba(0,0,0,.2);
  background: #111 !important;
}
.related-links a:hover::before,
.related-links a:focus-visible::before { transform: scale(1.06); filter: saturate(1.08); }

@media (max-width: 620px) {
  .page-co-delame .grid.three .card { min-height: 240px; }
  .related-links a { min-height: 210px; }
}

@media (max-width: 680px) {
  /* Pravidelná pointy-top mobilní plástev: šířka:výška = √3:2. */
  .home-page .hive-stage {
    height: calc(103.923vw + 12px) !important;
    max-height: 531.615px !important;
  }
  .home-page .interactive-hive,
  .home-page .interactive-hive[data-active] {
    height: 103.923vw !important;
    max-height: 519.615px !important;
  }
  .home-page .interactive-hive .hex:not(.core) { aspect-ratio: .866025 / 1 !important; }

  /* Menší pravidelné hexagonální obrysy v části Náš systém. */
  .home-page .hive-orbit { width: 310px !important; height: 268.468px !important; }
  .home-page .rings { width: 280px !important; height: 242.487px !important; }
  .home-page .rings::before { width: 212px !important; height: 183.597px !important; }
  .home-page .rings::after { width: 136px !important; height: 117.779px !important; }
  .home-page .rings > span:nth-child(1) { width: 120px !important; height: 103.923px !important; }
  .home-page .rings > span:nth-child(2) { width: 180px !important; height: 155.885px !important; }
  .home-page .rings > span:nth-child(3) { width: 230px !important; height: 199.186px !important; }
  .home-page .rings .system-bee-mark { width: 176px !important; height: 63px !important; }
  .home-page .cta-orb .cta-mark { width: 46px !important; height: 39.837px !important; }

  /* Výška odpovídá skutečné mozaice, takže pod ní nezůstává prázdný blok. */
  .home-page .hive-stage { margin-bottom: 0 !important; }
  .home-page .interactive-hive .hex:not(.core) {
    -webkit-mask: var(--soft-hex-point) center / 100% 100% no-repeat !important;
    mask: var(--soft-hex-point) center / 100% 100% no-repeat !important;
    background-position: center !important;
    background-size: cover !important;
    filter: drop-shadow(0 0 1px rgba(17,18,15,.85)) drop-shadow(0 8px 14px rgba(17,18,15,.14)) !important;
    text-shadow: 0 1px 8px rgba(255,255,255,.42);
  }
  /* Mobilní mozaika má jiné sousednosti než desktopový kruh:
     A–B / B–C / A–B, takže stejné barvy neleží na společné hraně. */
  .home-page .interactive-hive .hex:nth-child(2) { background-image: linear-gradient(135deg,rgba(255,213,31,.92),rgba(255,213,31,.64)),url("photo-strategy-workshop-optimized.jpg") !important; color:#111!important; }
  .home-page .interactive-hive .hex:nth-child(3) { background-image: linear-gradient(135deg,rgba(17,18,15,.94),rgba(35,38,32,.7)),url("photo-process-map.jpg") !important; color:#fff!important; text-shadow:0 1px 8px rgba(0,0,0,.5); }
  .home-page .interactive-hive .hex:nth-child(4) { background-image: linear-gradient(135deg,rgba(17,18,15,.94),rgba(35,38,32,.7)),url("photo-web-creation.jpg") !important; color:#fff!important; text-shadow:0 1px 8px rgba(0,0,0,.5); }
  .home-page .interactive-hive .hex:nth-child(5) { background-image: linear-gradient(135deg,rgba(247,246,239,.94),rgba(225,221,205,.7)),url("photo-design-process-optimized.jpg") !important; color:#111!important; }
  .home-page .interactive-hive .hex:nth-child(6) { background-image: linear-gradient(135deg,rgba(255,213,31,.92),rgba(255,213,31,.62)),url("photo-marketing-content-optimized.jpg") !important; color:#111!important; }
  .home-page .interactive-hive .hex:nth-child(7) { background-image: linear-gradient(135deg,rgba(17,18,15,.94),rgba(35,38,32,.7)),url("photo-consultation.jpg") !important; color:#fff!important; text-shadow:0 1px 8px rgba(0,0,0,.5); }
  .home-page .interactive-hive .hex:nth-child(3) strong,
  .home-page .interactive-hive .hex:nth-child(4) strong,
  .home-page .interactive-hive .hex:nth-child(7) strong { color:#fff!important; }
  .home-page .interactive-hive .hex:nth-child(3) .hex-icon svg,
  .home-page .interactive-hive .hex:nth-child(4) .hex-icon svg,
  .home-page .interactive-hive .hex:nth-child(7) .hex-icon svg { stroke:#ffd51f!important; }
  .home-page .interactive-hive .hex:nth-child(2) .hex-icon svg,
  .home-page .interactive-hive .hex:nth-child(5) .hex-icon svg,
  .home-page .interactive-hive .hex:nth-child(6) .hex-icon svg { stroke:#111!important; }

  /* Mobilní CTA používají stejnou jednoduchou šipku jako desktop. */
  .button .mobile-arrow-icon,
  .button svg.arrow-icon { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .related-links a,
  .related-links a::before,
  .page-co-delame .grid.three .card { transition-duration: .01ms !important; }
}
