/* Jednotný vizuální systém veřejných podstránek. */
body.public-page {
  background: radial-gradient(circle at 9% 12%,rgba(255,212,0,.055),transparent 30rem),radial-gradient(circle at 92% 38%,rgba(255,255,255,.025),transparent 34rem),#050505;
  color:#fff;
}
.public-page .page-content,.public-page .akce-main {
  min-height:calc(100vh - 70px);
  padding:132px 0 88px!important;
  background:transparent;
}
.public-page .page-content>.container,.public-page .akce-main>.container {
  width:min(1240px,calc(100% - 3rem));
  max-width:none;
  margin-inline:auto;
  padding:0;
}
.public-page .rezervace-page {
  width:min(1240px,calc(100% - 3rem));
  max-width:none;
  margin:0 auto!important;
  padding:132px 0 88px!important;
}
.public-page .public-page-title {
  position:relative;
  margin:0 0 2rem!important;
  padding:1.6rem 0 0!important;
  color:#fff!important;
  font-family:var(--font-heading,"Cinzel",serif);
  font-size:clamp(2.35rem,5vw,4.8rem)!important;
  font-weight:700!important;
  line-height:.94!important;
  letter-spacing:-.035em!important;
  text-align:left!important;
  text-transform:uppercase!important;
  text-shadow:none!important;
}
.public-page .public-page-title::before {
  content:attr(data-kicker);
  position:absolute;
  inset:0 auto auto 0;
  color:var(--yellow,#ffd400);
  font-family:var(--font-body,"Inter",sans-serif);
  font-size:.75rem;
  font-weight:800;
  line-height:1;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.public-page .public-page-intro,.public-page .akce-subtitle,.public-page .cenik-hero>p {
  max-width:780px;
  margin:0;
  color:rgba(255,255,255,.64);
  font-size:1.02rem;
  line-height:1.75;
  text-align:left;
}
.public-page .public-page-intro {position:relative;padding-bottom:2.5rem}
.public-page .public-page-intro::after {
  content:"";display:block;width:3.25rem;height:3px;margin-top:1.5rem;background:var(--yellow,#ffd400)
}
.public-page .akce-header,.public-page .cenik-hero,.public-page .detail-page-header {
  margin:0 0 3rem;padding:0;text-align:left;border:0
}
.public-page .detail-page-header .detail-label {display:none}
.public-page .section-card,.public-page .akce-karta,.public-page .akce-empty,.public-page .detail-form-col,.public-page .detail-info-col,.public-page .cenik-section,.public-page .cenik-price-card,.public-page .cenik-package-card,.public-page .cenik-category,.public-page .cenik-subsection {
  background:linear-gradient(145deg,rgba(255,255,255,.038),rgba(255,255,255,.012));
  border:1px solid rgba(255,255,255,.09);
  border-radius:12px;
  box-shadow:none;
}
.public-page .section-card,.public-page .akce-karta,.public-page .cenik-section {border-top:2px solid var(--yellow,#ffd400)}
.public-page .section-card {margin-bottom:1.5rem;padding:clamp(1.35rem,2.8vw,2.25rem)}
.public-page .section-card:hover,.public-page .akce-karta:hover,.public-page .cenik-price-card:hover,.public-page .cenik-package-card:hover {transform:none;box-shadow:none}
.public-page .banner-upozorneni {
  display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1rem;
  margin:0 0 2.25rem;padding:1.2rem 1.35rem;color:rgba(255,255,255,.75);
  background:rgba(255,255,255,.025);border:0;border-left:3px solid var(--yellow,#ffd400);border-radius:0;animation:none
}
.public-page .banner-upozorneni .banner-icon {
  display:grid;width:2.25rem;height:2.25rem;margin:0;place-items:center;
  color:#050505;background:var(--yellow,#ffd400);border-radius:50%;font-weight:900
}
.public-page :is(.section-label,.form-title,.slots-header) {
  margin:0;color:#fff;font-family:var(--font-heading,"Cinzel",serif);
  font-size:clamp(1.2rem,2vw,1.55rem);font-weight:700;letter-spacing:-.01em;text-transform:none
}
.public-page .section-divider {width:3.25rem;height:3px;margin:1rem 0 1.5rem;background:var(--yellow,#ffd400);border:0}
.public-page :is(.form-input,.form-textarea,.date-input,.udalost-select,.det-input,.det-textarea) {
  color:#fff;background:#0b0b0b;border:1px solid rgba(255,255,255,.13);border-radius:7px;box-shadow:none
}
.public-page :is(.form-input,.form-textarea,.date-input,.udalost-select,.det-input,.det-textarea):focus {
  background:#0d0d0d;border-color:rgba(255,212,0,.65);box-shadow:0 0 0 3px rgba(255,212,0,.08)
}

.public-page :is(.btn-submit,.btn-registrace,.cenik-button) {border-radius:6px;box-shadow:none}
.public-page :is(.btn-submit,.btn-registrace,.cenik-button):hover {transform:translateY(-1px)}
.public-page .akce-filtry {gap:.65rem;margin-bottom:2rem}
.public-page .filtr-btn {padding:.55rem .85rem;background:rgba(255,255,255,.025);border-color:rgba(255,255,255,.12);border-radius:5px}
.public-page .filtr-btn--active,
.public-page .filtr-btn--active:hover,
.public-page .filtr-btn--active:focus,
.public-page .filtr-btn--active:active {
  color:var(--yellow,#ffd400)!important;
  background:rgba(255,212,0,.09);
  border-color:var(--yellow,#ffd400);
  box-shadow:0 0 18px rgba(255,212,0,.18),inset 0 0 12px rgba(255,212,0,.035);
}
.public-page .akce-karta {padding:clamp(1.35rem,2.8vw,2.25rem);background-color:#090909}
.public-page .akce-karta-header {padding-bottom:1.15rem;border-bottom:1px solid rgba(255,255,255,.08)}
.public-page .akce-karta-img,.public-page .detail-img-wrap {border-radius:8px}
.public-page .detail-form-col,.public-page .detail-info-col {padding:clamp(1.35rem,2.8vw,2.25rem)}
.public-page .detail-grid {gap:1.5rem}
.public-page .cenik-switch {justify-content:flex-start;margin:0 0 2rem}
.public-page .cenik-switch a {border-radius:5px}
.public-page .cenik-section {margin-bottom:2rem;padding:clamp(1.4rem,3vw,2.5rem)}
.public-page .cenik-section-heading {max-width:820px;margin:0 0 2rem;text-align:left}
.public-page .cenik-section-heading :is(h2,p),.public-page .cenik-main-section-title {text-align:left}
.public-page .cenik-price-card,.public-page .cenik-package-card,.public-page .cenik-category,.public-page .cenik-subsection {padding:1.4rem;background-color:#090909}
.public-page .cenik-price-card,.public-page .cenik-package-card {border-top:2px solid rgba(255,212,0,.75)}
.public-page .cenik-card-label,.public-page .akce-tag {border-radius:4px}
.public-page .page-content>.container:has(>.public-page-title) {min-height:calc(100vh - 290px)}

@media (max-width:1180px) {
  .public-page .page-content,.public-page .akce-main,.public-page .rezervace-page {padding-top:112px!important}
}
@media (max-width:700px) {
  .public-page .page-content>.container,.public-page .akce-main>.container,.public-page .rezervace-page {width:min(100% - 1.25rem,1240px)}
  .public-page .page-content,.public-page .akce-main,.public-page .rezervace-page {padding-bottom:64px!important}
  .public-page .public-page-title {padding-top:1.45rem!important;font-size:clamp(2.05rem,10vw,3.15rem)!important}
  .public-page .banner-upozorneni {grid-template-columns:1fr;padding:1.1rem}
  .public-page .section-card,.public-page .akce-karta,.public-page .detail-form-col,.public-page .detail-info-col,.public-page .cenik-section {padding:1.2rem}
}
@media (prefers-reduced-motion:reduce) {
  .public-page *,.public-page *::before,.public-page *::after {scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}
}

/* ambient-gladiator-background */
body.public-page {
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(circle at 14% 12%, rgba(255, 212, 0, .045), transparent 30rem),
    radial-gradient(circle at 88% 42%, rgba(255, 212, 0, .04), transparent 36rem),
    linear-gradient(135deg, #10100e 0%, #0a0a0a 46%, #11100c 100%);
}

body.public-page::before {
  content: "";
  position: fixed;
  inset: 70px 0 0;
  z-index: 0;
  pointer-events: none;
  background:
    url("/assets/icons/helma.svg") no-repeat calc(100% + 55px) 0 / clamp(430px, 38vw, 700px),
    url("/assets/icons/helma.svg") no-repeat -25px 74vh / clamp(230px, 21vw, 360px),
    repeating-linear-gradient(118deg, transparent 0 135px, rgba(255, 212, 0, .12) 136px, transparent 138px 270px);
  opacity: .036;
}

body.public-page > main,
body.public-page > .site-footer {
  position: relative;
  z-index: 1;
}

@media (max-width: 700px) {
  body.public-page::before {
    background:
      url("/assets/icons/helma.svg") no-repeat calc(100% + 55px) 7vh / 300px,
      linear-gradient(145deg, transparent 45%, rgba(255, 212, 0, .1), transparent 58%);
    opacity: .03;
  }
}

/* Cloudflare Turnstile – panel se otevře pouze při interaktivním ověření. */
.public-page .turnstile-container {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100%;
  max-height:0;
  margin:0 auto;
  padding:0 1rem;
  overflow:hidden;
  opacity:0;
  background:rgba(255,255,255,.025);
  border:1px solid transparent;
  border-left:3px solid transparent;
  border-radius:8px;
  transition:max-height .25s ease,margin .25s ease,padding .25s ease,opacity .2s ease,border-color .25s ease;
}

.public-page .turnstile-container::before {
  content:"BEZPEČNOSTNÍ OVĚŘENÍ";
  margin-bottom:.7rem;
  color:rgba(255,212,0,.78);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.16em;
}

.public-page .turnstile-container--active {
  max-height:150px;
  margin:1rem auto;
  padding:1rem;
  opacity:1;
  border-color:rgba(255,255,255,.09);
  border-left-color:var(--yellow,#ffd400);
}

.public-page .turnstile-container > div,
.public-page .turnstile-container iframe {
  max-width:100%;
  margin-inline:auto!important;
}

.public-page .turnstile-privacy {
  max-width:720px;
  margin:.8rem auto 1.4rem;
  color:rgba(255,255,255,.42);
  font-size:.7rem;
  line-height:1.55;
  text-align:center;
}

@media (max-width:420px) {
  .public-page .turnstile-container--active {
    padding:.75rem .35rem;
  }
}
