/* ============================================================
   Property Page – Design System
   Premium real-estate listing styles
   Unified with editor design tokens
   ============================================================ */

/* --- Base --- */
html{
  scroll-behavior: smooth;
}
body{
  margin: 0;
  font-family: var(--pp-font, Georgia, 'Times New Roman', serif);
  background: #faf9f7;
  color: #18181b;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
*,*::before,*::after{ box-sizing: border-box; }

/* --- Section (common wrapper for all blocks) --- */
.b-section{
  padding-top: var(--pt, 56px);
  padding-bottom: var(--pb, 56px);
  background-color: var(--bg, #fff);
}
.b-section__body{
  max-width: 1040px;
  margin: 0 auto;
  padding: 0 24px;
}

/* --- Typography --- */
.b-h2{
  font-size: var(--pp-heading, 24px);
  font-weight: 800;
  margin: 0 0 24px 0;
  letter-spacing: -0.01em;
  line-height: 1.2;
}
.b-p{
  margin: 0;
  line-height: 1.8;
  white-space: pre-wrap;
  font-size: 16px;
  display: flow-root;
}
.b-p img{
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: var(--pp-radius, 8px);
}
.b-img--floatLeft{
  float: left;
  max-width: 50%;
  margin: 0 16px 8px 0;
}
.b-img--floatRight{
  float: right;
  max-width: 50%;
  margin: 0 0 8px 16px;
}
@media(max-width:767px)
{
  .b-img--floatLeft img,.b-img--floatRight img{
    margin: auto;
  }
}

/* ============================================================
   HERO
   ============================================================ */
.b-hero{
  min-height: 520px;
  display: flex;
  align-items: flex-end;
  position: relative;
  background-color: var(--bg, #18181b);
  background-image: var(--img);
  background-size: cover;
  background-position: center;
}
.b-hero__overlay,
.b-hero__blur{
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
}
.b-hero--hasImg .b-hero__inner{ z-index: 2; }
.b-hero__inner{
  position: relative;
  width: 100%;
  max-width: 1040px;
  margin: 0 auto;
  padding: 0 24px 56px;
  color: #fff;
}
.b-hero__title{
  font-weight: 800;
  line-height: 1.08;
  margin: 0;
  letter-spacing: -0.02em;
}
.b-hero__desc{
  margin: 14px 0 0;
  line-height: 1.65;
  opacity: 0.92;
}
.b-hero__desc > p{ margin: 0 0 6px; }
.b-hero__desc > p:last-child{ margin-bottom: 0; }
/* Hero title sizes (mobile defaults) */
.b-hero__title.b-fs-xs{ font-size: 22px; }
.b-hero__title.b-fs-sm{ font-size: 26px; }
.b-hero__title.b-fs-md{ font-size: 32px; }
.b-hero__title.b-fs-lg{ font-size: 38px; }
.b-hero__title.b-fs-xl{ font-size: 44px; }
/* Hero description sizes (mobile defaults) */
.b-hero__desc.b-fs-xs{ font-size: 14px; }
.b-hero__desc.b-fs-sm{ font-size: 16px; }
.b-hero__desc.b-fs-md{ font-size: 20px; }
.b-hero__desc.b-fs-lg{ font-size: 24px; }
.b-hero__desc.b-fs-xl{ font-size: 30px; }
@media (min-width: 768px){
  .b-hero__title.b-fs-xs{ font-size: 28px; }
  .b-hero__title.b-fs-sm{ font-size: 36px; }
  .b-hero__title.b-fs-md{ font-size: 46px; }
  .b-hero__title.b-fs-lg{ font-size: 56px; }
  .b-hero__title.b-fs-xl{ font-size: 68px; }
  .b-hero__desc.b-fs-xs{ font-size: 16px; }
  .b-hero__desc.b-fs-sm{ font-size: 20px; }
  .b-hero__desc.b-fs-md{ font-size: 26px; }
  .b-hero__desc.b-fs-lg{ font-size: 32px; }
  .b-hero__desc.b-fs-xl{ font-size: 42px; }
}
.b-hero__cta{
  display: inline-flex;
  gap: 8px;
  align-items: center;
  margin-top: 22px;
  background: #fff;
  color: #18181b;
  border-radius: var(--pp-radius-pill, 12px);
  padding: 13px 24px;
  font-weight: 700;
  font-size: 15px;
  text-decoration: none;
  letter-spacing: 0.01em;
  border: 1px solid rgba(255,255,255,0.55);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.b-hero__cta:hover{
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.18);
}
.b-hero__ctaArrow{
  display: inline-flex;
  transition: transform 0.2s ease;
}
.b-hero__cta:hover .b-hero__ctaArrow{
  transform: translateX(3px);
}

/* Hero – badge */
.b-hero__badge{
  display: inline-flex;
  border-radius: var(--pp-radius-pill, 12px);
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.22);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1;
  margin-bottom: 18px;
}
.b-hero__badge-type{
  padding: 8px 14px;
  background: rgba(0,0,0,0.65);
  color: #fff;
  backdrop-filter: blur(4px);
}
.b-hero__badge-avail{
  padding: 8px 14px;
  color: #fff;
}

/* Hero – section height follows the image when present */
.b-hero--hasImg{
  min-height: 0;
  background-image: none;
  display: block;
}
.b-hero__img{
  display: block;
  width: 100%;
  height: auto;
}
@media (min-width: 768px){
  .b-hero__img{
    aspect-ratio: var(--hero-aspect-ratio, 2 / 1);
    height: auto;
    object-fit: cover;
    object-position: var(--focus-x, 50%) var(--focus-y, 50%);
  }
}
.b-hero--hasImg .b-hero__inner{
  position: absolute;
  left: 0;
  right: 0;
  top: 66.67%;
  transform: translateY(-50%);
  margin: 0 auto;
  padding: 0 24px;
}
.b-hero__ctaRow{
  display: flex;
  margin-top: 22px;
}
.b-hero__ctaRow .b-hero__cta{
  margin-top: 0;
}

/* Hero – below variant */
.b-hero--below{
  display: block;
  min-height: auto;
  background-image: none;
}
.b-hero__media{
  position: relative;
  min-height: 480px;
}
.b-hero__mediaImg{
  display: block;
  width: 100%;
  height: auto;
}
@media (min-width: 768px){
  .b-hero__mediaImg{
    aspect-ratio: var(--hero-aspect-ratio, 3 / 1);
    height: auto;
    object-fit: cover;
    object-position: var(--focus-x, 50%) var(--focus-y, 50%);
  }
}
.b-hero__content{
  max-width: 1040px;
  margin: 0 auto;
  padding: 40px 0 48px;
}
.b-hero--below .b-hero__cta{
  border-color: transparent;
}

/* ============================================================
   GALLERY
   ============================================================ */
.b-gallery{
  display: grid;
  grid-template-columns: repeat(var(--cols, 3), 1fr);
  gap: 10px;
}
.b-gallery__item{
  display: block;
  text-decoration: none;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: var(--pp-radius, 8px);
  background: #f4f4f5;
}
.b-gallery__item picture,
.b-hero picture{
  display: contents;
}
.b-gallery__img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.45s ease;
}
.b-gallery__item:hover .b-gallery__img{
  transform: scale(1.04);
}
/* Wider aspect ratio for fewer columns */
.b-gallery[style*="--cols: 1"]{ max-width: 760px; margin-inline: auto; gap: 24px; }
.b-gallery[style*="--cols: 1"] .b-gallery__item{ aspect-ratio: 3 / 2; }
.b-gallery[style*="--cols: 2"] .b-gallery__item{ aspect-ratio: 2 / 1; }
.b-gallery[style*="--cols: 4"] .b-gallery__item{ aspect-ratio: 4 / 3; }

/* Show more (hidden gallery items) */
@media (min-width: 768px) {
  .b-gallery:not(.b-gallery--expanded) .b-gallery__item--hiddenDesktop { display: none; }
}
@media (max-width: 767.98px) {
  .b-gallery:not(.b-gallery--expanded) .b-gallery__item--hiddenMobile { display: none; }
}
.b-gallery__showMore {
  display: none;
  margin: 16px auto 0;
  padding: 10px 22px;
  border: 1px solid rgba(0,0,0,0.15);
  border-radius: 999px;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: background .15s, border-color .15s;
}
.b-gallery__showMore:hover {
  background: rgba(0,0,0,0.04);
  border-color: rgba(0,0,0,0.3);
}
@media (min-width: 768px) {
  .b-gallery__showMore--hasDesktop { display: block; }
}
@media (max-width: 767.98px) {
  .b-gallery__showMore--hasMobile { display: block; }
}

/* ============================================================
   BEFORE / AFTER
   ============================================================ */
.b-beforeAfter{
  display: grid;
  gap: 10px;
}
.b-beforeAfter--1{ grid-template-columns: 1fr; }
.b-beforeAfter--2{ grid-template-columns: repeat(2, 1fr); }
.b-beforeAfter--3{ grid-template-columns: repeat(3, 1fr); }
.b-beforeAfter__item{
  max-width: 100%;
  overflow: hidden;
}
.b-beforeAfter__item .twentytwenty-container{
  border-radius: var(--pp-radius, 8px);
  overflow: hidden;
  background: #f4f4f5;
  aspect-ratio: 16 / 10;
  max-width: 100% !important;
  width: 100% !important;
}
.b-beforeAfter__item .twentytwenty-container img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  max-width: 100%;
}
.b-beforeAfter__item .twentytwenty-before-label,
.b-beforeAfter__item .twentytwenty-after-label{
  display: none !important;
}

/* ============================================================
   EMBEDS (Map, Video, 3D)
   ============================================================ */
.b-embedWrap{
  position: relative;
  border-radius: var(--pp-radius, 8px);
  overflow: hidden;
  border: 1px solid #e4e4e7;
  background: #000;
  box-shadow: 0 1px 2px rgba(0,0,0,0.05), 0 6px 24px rgba(0,0,0,0.06);
  aspect-ratio: 16 / 9;
}
.b-embedWrap--shorts{
  aspect-ratio: 9 / 16;
  max-width: 400px;
  margin-left: auto;
  margin-right: auto;
}
.b-embed{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
.b-section--map{
  padding: 0;
}
.b-section--map .b-section__body{
  padding-top: 56px;
}
.b-embedWrap--map{
  border-radius: 0;
  border-left: 0;
  border-right: 0;
  box-shadow: none;
  aspect-ratio: auto;
  height: 500px;
}

/* ============================================================
   PRICE
   ============================================================ */
.b-price__card{
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  border: 2px solid transparent;
  border-radius: var(--pp-radius, 8px);
  padding: 32px;
  overflow: hidden;
}
.b-price__accent{
  display: none;
}
.b-price__body{
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: center;
}
.b-price__label{
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 4px;
}
.b-price__value{
  font-size: 36px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
}
.b-price__note{
  font-size: 13px;
  margin-top: 8px;
}
.b-price__icon{
  display: none;
}
.b-price__extras{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
  width: 100%;
  border-top: 1px solid #e4e4e7;
  padding-top: 16px;
}
.b-price__extra{
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 0;
  flex: 1 1 100%;
  min-width: 0;
}
.b-price__extraLabel{
  font-size: 14px;
  font-weight: 400;
  opacity: .6;
}
.b-price__extraValue{
  font-size: 15px;
  font-weight: 700;
}

/* ============================================================
   ATTRIBUTES
   ============================================================ */
.b-attrs{
  display: grid;
  grid-template-columns: repeat(var(--cols, 3), 1fr);
  gap: 12px;
}
.b-attrs__item{
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
  border: 1px solid #e4e4e7;
  border-radius: var(--pp-radius, 8px);
  padding: 18px 14px;
}
.b-attrs__icon{
  width: 52px;
  height: 52px;
  margin-bottom: 2px;
  background-color: var(--icon-color, #2563eb);
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
.b-attrs__label{
  font-size: 14px;
  margin-bottom: 4px;
}
.b-attrs__value{
  font-size: 18px;
  font-weight: 700;
}

/* ============================================================
   CONTACT FORM
   ============================================================ */
.b-formFieldset{
  border: none;
  margin: 0;
  padding: 0;
}
.b-formGrid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.b-full{ grid-column: 1 / -1; }
.b-input, .b-textarea{
  border: 1px solid #e4e4e7;
  border-radius: var(--pp-radius, 8px);
  padding: 12px 14px;
  background: #fff;
  font: inherit;
  font-size: 15px;
  color: #18181b;
  width: 100%;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.b-input::placeholder, .b-textarea::placeholder{
  color: #a1a1aa;
}
.b-input:focus, .b-textarea:focus{
  outline: none;
  border-color: #18181b;
  box-shadow: 0 0 0 2px rgba(24,24,27,0.08);
}
.b-textarea{
  min-height: 100px;
  resize: vertical;
}
.b-submitRow{ margin-top: 14px; text-align: center; }
.b-submitRow .b-btnPrimary{ min-width: 200px; }
.b-note{
  font-size: 13px;
  color: inherit;
  margin: 0 0 10px 0;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.b-note a{
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.b-note .newsletter-checkbox{
  width: 16px;
  height: 16px;
  accent-color: var(--submit-bg, #18181b);
  cursor: pointer;
  margin: 0 6px 0 0;
  position: relative;
  top: -1px;
  vertical-align: middle;
}
.b-note .newsletter-label,
.b-note .newsletter-label label{
  cursor: pointer;
}
.b-note--success{
  color: #166534;
  font-weight: 600;
  font-size: 15px;
}
.b-contactForm--sent .b-formFieldset{
  opacity: 0.5;
  pointer-events: none;
}

.b-btn{
  border: 1px solid #e4e4e7;
  background: #fff;
  padding: 12px 24px;
  border-radius: var(--pp-radius-pill, 12px);
  cursor: pointer;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  color: #18181b;
  transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.b-btn:hover{
  background: #f4f4f5;
  border-color: #d4d4d8;
  box-shadow: 0 1px 2px rgba(0,0,0,0.05), 0 6px 24px rgba(0,0,0,0.06);
}
.b-btnPrimary{
  background: var(--submit-bg, #18181b);
  color: var(--submit-color, #fff);
  border: 1px solid transparent;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.b-btnPrimary:hover{
  background: var(--submit-bg, #18181b);
  border-color: transparent;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.18);
}

/* ============================================================
   PDF DOWNLOAD
   ============================================================ */
.b-pdfDownload{
  padding: 48px 24px;
  text-align: center;
}
.b-pdfDownload__inner{
  max-width: 1040px;
  margin: 0 auto;
}
.b-pdfDownload__title{
  font-size: var(--pp-h2, 28px);
  font-weight: 700;
  margin: 0 0 20px;
}
.b-pdfDownload__btn{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  font-weight: 700;
  font-size: 15px;
  text-decoration: none;
  border-radius: var(--pp-radius-pill, 12px);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  letter-spacing: 0.01em;
}
.b-pdfDownload__btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.18);
}

/* ============================================================
   BUTTON BLOCK
   ============================================================ */
.b-buttonBlock--pad-sm{ padding-top: 20px; padding-bottom: 20px; }
.b-buttonBlock--pad-md{ padding-top: 48px; padding-bottom: 48px; }
.b-buttonBlock--pad-lg{ padding-top: 80px; padding-bottom: 80px; }
.b-buttonBlock__inner{
  max-width: 1040px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
}
.b-buttonBlock--align-left .b-buttonBlock__inner{ justify-content: flex-start; }
.b-buttonBlock--align-center .b-buttonBlock__inner{ justify-content: center; }
.b-buttonBlock--align-right .b-buttonBlock__inner{ justify-content: flex-end; }
.b-buttonBlock__btn{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  text-decoration: none;
  border-radius: var(--pp-radius-pill, 12px);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  letter-spacing: 0.01em;
}
.b-buttonBlock__btn--size-sm{ padding: 8px 18px; font-size: 13px; }
.b-buttonBlock__btn--size-md{ padding: 14px 28px; font-size: 15px; }
.b-buttonBlock__btn--size-lg{ padding: 18px 38px; font-size: 18px; }
.b-buttonBlock__btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.18);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 768px){
  .b-p{
    display: flex;
    flex-direction: column;
  }
  .b-p .b-img--floatLeft,
  .b-p .b-img--floatRight{
    float: none;
    max-width: 100%;
    margin: 8px 0;
  }
  .b-p .b-img--floatRight{
    order: 1;
  }
  .b-hero{
    min-height: 400px;
  }
  .b-hero--hasImg{
    min-height: 480px;
    position: relative;
  }
  .b-hero--hasImg .b-hero__img{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--focus-x, 50%) var(--focus-y, 50%);
    aspect-ratio: auto;
  }
  .b-hero--hasImg .b-hero__inner{
    position: absolute;
    top: auto;
    bottom: 0;
    left: 0;
    right: 0;
    transform: none;
    padding: 24px 20px 32px;
  }
  .b-hero__inner{
    padding-bottom: 40px;
  }
  .b-hero__media{
    min-height: 320px;
  }
  .b-hero__content{
    padding: 28px 20px 36px;
  }
  .b-h2{
    font-size: 22px;
    margin-bottom: 20px;
  }
  .b-gallery{
    grid-template-columns: 1fr;
  }
  .b-beforeAfter{
    grid-template-columns: 1fr !important;
  }
  .b-formGrid{
    grid-template-columns: 1fr;
  }
  .b-attrs{
    grid-template-columns: repeat(3, 1fr);
  }
  .b-price__card{
    padding: 24px;
  }
  .b-price__value{
    font-size: 28px;
  }
  .b-price__extras{
    flex-direction: column;
  }
}

@media (max-width: 480px){
  .b-attrs{
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ============================================================
   ABOUT ME
   ============================================================ */
.b-aboutMe__top{
  padding: 48px 24px 0;
}
.b-aboutMe__topInner{
  display: flex;
  gap: 32px;
  align-items: flex-start;
  max-width: 1040px;
  margin: 0 auto;
}
.b-aboutMe__left{
  flex: 1;
  min-width: 0;
  padding-bottom: 32px;
}
.b-aboutMe__right{
  flex-shrink: 0;
  width: 280px;
}
.b-aboutMe__name{
  font-size: 32px;
  font-weight: 300;
  margin: 0 0 20px 0;
  line-height: 1.2;
}
.b-aboutMe__bio{
  font-style: italic;
  line-height: 1.7;
  margin-bottom: 20px;
}
.b-aboutMe__bio p{ margin: 0 0 8px; }
.b-aboutMe__socials{
  display: flex;
  gap: 8px;
  margin-top: 16px;
}
.b-aboutMe__socialIcon{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid;
  text-decoration: none;
  transition: opacity .15s;
}
.b-aboutMe__socialIcon:hover{ opacity: .7; }
.b-aboutMe__photo{
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}
.b-aboutMe__bar{
  padding: 32px 24px;
}
.b-aboutMe__barInner{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  max-width: 1040px;
  margin: 0 auto;
  text-align: center;
}
.b-aboutMe__contact{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.b-aboutMe__contactIcon{ opacity: .9; }
.b-aboutMe__contactText{
  font-size: 14px;
  font-weight: 500;
  color: inherit;
  text-decoration: none;
}
a.b-aboutMe__contactText:hover{
  text-decoration: underline;
}
@media (max-width: 768px){
  .b-aboutMe__topInner{
    flex-direction: column;
  }
  .b-aboutMe__right{
    width: 100%;
    max-width: 280px;
    align-self: center;
  }
  .b-aboutMe__barInner{
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 480px){
  .b-aboutMe__barInner{
    grid-template-columns: 1fr;
  }
}

/* Fancybox close button */
.fancybox-close{
  background-size: 33px 114px !important;
  top: 10px !important;
  right: 10px !important;
  width: 33px !important;
  height: 27px !important;
}

/* ============================================================
   COOKIES – property page overrides
   ============================================================ */
/* Overlay pro velké cookies okno */
.cookies-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: 999998;
}
.ui-dialog.ebook-dialog{
  z-index: 999999 !important;
}
.ui-dialog.ebook-dialog .ui-dialog-titlebar{
  display: none;
}
/* Tlačítka – obě varianty */
#cookies-popup #all-cookies-btn{
  background: #18181b;
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 8px 24px;
  font-weight: 600;
}
#cookies-popup #all-cookies-btn:hover{
  background: #333;
}
#cookies-popup #none-cookies-btn{
  background: #fff;
  color: #18181b;
  border: 1px solid #d4d4d8;
  border-radius: 6px;
  padding: 8px 24px;
  font-weight: 600;
}
#cookies-popup #none-cookies-btn:hover{
  background: #f4f4f5;
  border-color: #a1a1aa;
}
#cookies-popup #some-cookies-btn{
  background: #18181b;
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 8px 24px;
  font-weight: 600;
}
#cookies-popup #some-cookies-btn:hover{
  background: #333;
}
#cookies-popup #show-cookies-details{
  color: #18181b;
  font-weight: 600;
}
#cookies-popup .cookies-checkbox{
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
#cookies-popup .cookies-checkbox input[type="checkbox"]{
  float: none !important;
  margin: 0 !important;
}

/* ============================================================
   FAQ (accordion)
   ============================================================ */
.b-faq{
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.b-faq__item{
  border: 1px solid #e8e8e8;
  border-radius: var(--pp-radius, 6px);
  background: #ffffff;
  color: #18181b;
  overflow: hidden;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.b-faq__item:hover{
  border-color: #d4d4d8;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.b-faq__heading{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 16px 20px;
  font-size: 15px;
  font-weight: 600;
  color: #37404d;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.b-faq__heading:hover,
.b-faq__heading:focus{
  background-color: #f8f9fa;
  text-decoration: none;
  color: #37404d;
}
.b-faq__question{
  flex: 1;
}
.b-faq__chevron{
  display: inline-flex;
  transition: transform 0.3s ease;
  color: #71717a;
  flex-shrink: 0;
}
.b-faq__item--open .b-faq__chevron{
  transform: rotate(180deg);
}
.b-faq__collapse{
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}
.b-faq__item--open .b-faq__collapse{
  border-top: 1px solid #eee;
}
.b-faq__body{
  padding: 20px;
  color: #6d6d6d;
  line-height: 1.7;
  font-size: 15px;
}

/* ============================================================
   COLUMNS (karty)
   ============================================================ */
.b-columns__title{
  text-align: center;
}
.b-columns__intro{
  text-align: center;
  margin: -12px 0 32px;
  line-height: 1.6;
  font-size: 15px;
  opacity: 0.85;
  white-space: pre-wrap;
}
.b-columns__grid{
  display: grid;
  gap: 16px;
}
.b-columns__grid[data-count="2"]{ grid-template-columns: repeat(2, 1fr); }
.b-columns__grid[data-count="3"]{ grid-template-columns: repeat(3, 1fr); }
.b-columns__grid[data-count="4"]{ grid-template-columns: repeat(4, 1fr); }
.b-columns__card{
  padding: 40px 28px 28px;
  border-radius: var(--pp-radius, 8px);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  min-height: 280px;
}
.b-columns__badge{
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: 2px solid currentColor;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  font-weight: 700;
}
.b-columns__badgeNumber{
  font-size: 16px;
  letter-spacing: 0.02em;
}
.b-columns__text{
  width: 100%;
  text-align: left;
  font-size: 15px;
  line-height: 1.7;
  flex: 1;
}
.b-columns__text p{
  margin: 0 0 10px;
}
.b-columns__text ul,
.b-columns__text ol{
  padding-left: 20px;
  margin: 0 0 10px;
}
.b-columns__cta{
  display: inline-block;
  padding: 12px 28px;
  font-weight: 600;
  font-size: 14px;
  border: 2px solid currentColor;
  border-radius: var(--pp-radius-pill, 12px);
  text-decoration: none;
  margin-top: 20px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  transition: opacity 0.2s ease;
}
.b-columns__cta:hover{
  opacity: 0.85;
  text-decoration: none;
}
@media (max-width: 768px){
  .b-columns__grid[data-count="3"],
  .b-columns__grid[data-count="4"]{
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 540px){
  .b-columns__grid{
    grid-template-columns: 1fr !important;
  }
}

/* ============================================================
   AUCTION (aukce nad novou stránkou nemovitosti)
   ============================================================ */
/* --- Flash zprávy (toast) --- */
#snippet--flashMessages{
  position: fixed;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
  width: auto;
  max-width: calc(100vw - 32px);
}
.alert.flash{
  position: relative;
  margin: 0 auto 10px;
  padding: 14px 44px 14px 20px;
  border-radius: var(--pp-radius, 8px);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  box-shadow: 0 10px 30px rgba(0,0,0,0.18);
}
.alert.alert-success{ background: #16a34a; color: #fff; }
.alert.alert-danger{ background: #dc2626; color: #fff; }
.alert.alert-info{ background: #2563eb; color: #fff; }
.alert .flash-close{
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
  cursor: pointer;
  opacity: 0.85;
  width: 20px;
  height: 20px;
  line-height: 20px;
  text-align: center;
}
.alert .flash-close::before{ content: "\00d7"; font-size: 20px; font-weight: 700; }
.alert .flash-close:hover{ opacity: 1; }

#expiration-ribbon{
  background: #b91c1c;
  color: #fff;
  text-align: center;
  padding: 12px 16px;
  font-size: 14px;
  line-height: 1.5;
}
#expiration-ribbon a{ color: #fff; text-decoration: underline; }

.pp-auction{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 88vh;
  padding: 80px 24px;
  overflow: hidden;
  background: #18181b;
  color: #fff;
  text-align: center;
}
.pp-auction__media{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.pp-auction__media.blur{ filter: blur(8px); transform: scale(1.06); }
.pp-auction__overlay{
  position: absolute;
  inset: 0;
  z-index: 1;
}
.pp-auction__overlay.dark{ background: rgba(0,0,0,0.55); }
.pp-auction__overlay.light{ background: rgba(255,255,255,0.35); }
.pp-auction__overlay.primary{ background: rgba(24,24,27,0.6); }
/* Bez overlaye přidáme jemný gradient pro čitelnost textu */
.pp-auction::after{
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.15) 40%, rgba(0,0,0,0.45) 100%);
  pointer-events: none;
}
.pp-auction__inner{
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
}
.pp-auction__title{
  font-size: clamp(28px, 5vw, 48px);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.15;
  margin: 0 0 28px 0;
  text-shadow: 0 2px 24px rgba(0,0,0,0.35);
}
.pp-auction__lead{
  font-size: 18px;
  font-weight: 600;
  opacity: 0.92;
  margin: 28px 0 10px 0;
}
.pp-auction__clock-wrap,
.pp-auction__price-wrap{
  margin-bottom: 8px;
}
#auction-clock,
#auction-price{
  display: inline-block;
  font-size: clamp(36px, 7vw, 56px);
  font-weight: 800;
  letter-spacing: 0.01em;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
#auction-clock.red{ color: #ef4444; }
.pp-auction__status{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  max-width: 600px;
  margin: 24px auto 18px;
  padding: 14px 24px;
  border-radius: var(--pp-radius-pill, 12px);
  font-size: 18px;
  font-weight: 700;
  box-shadow: 0 8px 24px rgba(0,0,0,0.18);
}
.pp-auction__status::before{
  font-size: 20px;
  line-height: 1;
}
.pp-auction__status.green{
  background: #16a34a;
  color: #fff;
}
.pp-auction__status.green::before{ content: "\2714"; } /* ✔ */
.pp-auction__status.red{
  background: #dc2626;
  color: #fff;
}
.pp-auction__status.red::before{ content: "\26A0"; } /* ⚠ */
.pp-auction__status.blue{
  background: #2563eb;
  color: #fff;
  font-weight: 600;
  font-size: 16px;
}
.pp-auction__status.blue::before{ content: "\270E"; } /* ✎ */

/* Wrapper pro status box + překryvnou hlášku (hláška se zobrazí přes box,
   aby formulář neodskakoval a sekce se neroztahovala) */
.pp-auction__statusWrap{
  position: relative;
}
.pp-auction__statusWrap #snippet--auctionMessage{
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  z-index: 2;
  pointer-events: none;
}
/* Překryvná hláška vyplní celou výšku status boxu, aby po stranách neprosvítal */
.pp-auction__statusWrap #snippet--auctionMessage .pp-auction__msg{
  height: 100%;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Hlášky o příhozu u formuláře */
.pp-auction__msg{
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  padding: 14px 24px;
  border-radius: var(--pp-radius-pill, 12px);
  font-size: 16px;
  font-weight: 700;
  text-align: center;
  box-shadow: 0 8px 24px rgba(0,0,0,0.28);
}
.pp-auction__msg--success{ background: #16a34a; color: #fff; }
.pp-auction__msg--danger{ background: #dc2626; color: #fff; }
.pp-auction__msg--info{ background: #2563eb; color: #fff; }

.pp-auction__form{
  max-width: 600px;
  margin: 0 auto;
}
.pp-auction__form form{
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.pp-auction__form input[type="text"],
.pp-auction__form input[type="email"]{
  width: 100%;
  padding: 14px 18px;
  border: 1px solid rgba(255,255,255,0.6);
  border-radius: var(--pp-radius-pill, 12px);
  background: rgba(255,255,255,0.96);
  color: #18181b;
  font: inherit;
  font-size: 16px;
  text-align: left;
}
.pp-auction__form input[type="text"]:focus,
.pp-auction__form input[type="email"]:focus{
  outline: none;
  border-color: #fff;
  box-shadow: 0 0 0 3px rgba(255,255,255,0.25);
}
.pp-auction__form input[type="submit"]{
  width: 100%;
  padding: 14px 32px;
  border: 1px solid transparent;
  border-radius: var(--pp-radius-pill, 12px);
  background: #fff;
  color: #18181b;
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.pp-auction__form input[type="submit"]:hover{
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.25);
}

/* --- Rules + Contract sections --- */
.pp-auction-rules,
.pp-auction-contract{
  padding: 56px 24px;
  background: #fff;
}
.pp-auction-contract{
  background: #f4f4f5;
  text-align: center;
}
.pp-auction-rules .container,
.pp-auction-contract .container,
.pp-auction-footer .container{
  max-width: 1040px;
  margin: 0 auto;
}
.pp-auction-rules h2,
.pp-auction-contract h2{
  font-size: var(--pp-heading, 24px);
  font-weight: 800;
  letter-spacing: -0.01em;
  margin: 0 0 20px 0;
}
.pp-auction-rules__list{
  margin: 0 0 16px 0;
  padding-left: 20px;
  line-height: 1.8;
}
.pp-auction-rules__text{ line-height: 1.8; }
.pp-auction__btn{
  display: inline-block;
  padding: 14px 32px;
  border-radius: var(--pp-radius-pill, 12px);
  background: #18181b;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.pp-auction__btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.18);
  text-decoration: none;
}

/* --- Footer disclaimer --- */
.pp-auction-footer{
  padding: 40px 24px 28px;
  background: #18181b;
  color: #a1a1aa;
  font-size: 13px;
  line-height: 1.6;
  text-align: center;
}
.pp-auction-footer .warn{ color: #f87171; }
.pp-auction-footer .tooltip-container{ position: relative; cursor: help; }
.pp-auction-footer .tooltip-text{
  display: none;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 120%;
  width: min(90vw, 640px);
  background: #fff;
  color: #18181b;
  text-align: left;
  padding: 16px 18px;
  border-radius: var(--pp-radius, 8px);
  box-shadow: 0 12px 40px rgba(0,0,0,0.25);
  z-index: 5;
}
.pp-auction-footer .tooltip-container:hover .tooltip-text{ display: block; }

@media (max-width: 540px){
  .pp-auction{ min-height: 80vh; }
  .pp-auction__form input[type="submit"]{ flex: 1 1 100%; }
}
