/**
 * Booking + klient account stránky — frontend štýly.
 * Re-use design tokenov z portal.css (DM Sans, Fraunces, --primary #071532, zlato #ac8510).
 */

 html, body {
  height: 100%;
  margin: 0;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

main {
  flex: 1;
}

.booking-shell { padding: 96px 0 80px; max-width: 1180px; margin: 0 auto; padding-left: 16px; padding-right: 16px; }
.booking-shell__header { margin-bottom: 24px; }
.booking-shell__crumb { font-size: 13px; color: #6b7290; margin: 0 0 8px; }
.booking-shell__crumb a { color: #6b7290; text-decoration: none; }
.booking-shell__crumb a:hover { color: #071532; text-decoration: underline; }
.booking-shell h1 { font-family: 'Fraunces', serif; font-weight: 600; color: #071532; margin: 0; font-size: clamp(28px, 4vw, 38px); }

.booking-grid { display: grid; grid-template-columns: 1fr; gap: 28px; }
@media (min-width: 880px) {
  .booking-grid { grid-template-columns: minmax(0, 1fr) 380px; align-items: start; }
}

.booking-form { background: #fff; border: 1px solid #e3e6ee; border-radius: 14px; padding: 24px; box-shadow: 0 2px 12px rgba(7, 21, 50, 0.04); }
.booking-fieldset { border: 0; padding: 0; margin: 0 0 24px; }
.booking-fieldset legend { font-size: 14px; font-weight: 600; color: #071532; margin-bottom: 12px; padding: 0; }
.booking-fieldset--collapsible { background: #fafbfc; border-radius: 8px; padding: 14px 16px; }
.booking-fieldset--collapsible summary { cursor: pointer; font-weight: 600; color: #071532; font-size: 14px; }
.booking-fieldset--collapsible[open] summary { margin-bottom: 12px; }

.booking-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.booking-field { display: flex; flex-direction: column; gap: 4px; }
.booking-field--full { grid-column: 1 / -1; }
.booking-field span { font-size: 12px; color: #5b6280; font-weight: 500; }
.booking-field input, .booking-field select, .booking-field textarea {
  font: inherit; padding: 10px 12px; border: 1px solid #e3e6ee; border-radius: 8px; background: #fff; color: #1f2540;
  font-size: 14px;
}
.booking-field input:focus, .booking-field select:focus, .booking-field textarea:focus {
  outline: 2px solid rgba(7, 21, 50, 0.35); outline-offset: 1px; border-color: #071532;
}
.booking-field__hint { font-size: 11px; color: #6b7290; margin-top: 2px; }

.booking-checkbox { display: flex; gap: 10px; align-items: flex-start; padding: 10px 0; font-size: 13px; color: #2b3556; }
.booking-checkbox input { width: 18px; height: 18px; margin-top: 2px; flex-shrink: 0; accent-color: #ac8510; }
.booking-checkbox a { color: #ac8510; }

.booking-submit-btn {
  width: 100%; padding: 14px 24px; background: #071532; color: #fff; border: 0; border-radius: 10px;
  font-size: 16px; font-weight: 600; cursor: pointer; transition: background .15s ease;
  margin-top: 8px;
}
.booking-submit-btn:hover:not(:disabled) { background: #0c2848; }
.booking-submit-btn:disabled { background: #ccc; cursor: not-allowed; }
.booking-submit-btn--ghost { background: transparent; color: #8a6d0d; border: 1px solid #ac8510; }
.booking-submit-btn--ghost:hover:not(:disabled) { background: rgba(172, 133, 16, 0.08); }

.booking-form-note { font-size: 12px; color: #6b7290; line-height: 1.5; margin-top: 8px; }

/* Turnstile — ako .booking-field input (border-radius 8px, plná šírka stĺpca formu). */
.booking-checkout__turnstile {
  width: 100%;
  max-width: 100%;
  margin: 20px 0 12px;
  box-sizing: border-box;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #e3e6ee;
  background: #fff;
}
.booking-checkout__turnstile .cf-turnstile {
  width: 100%;
  display: block;
  line-height: 0;
}
.booking-checkout__turnstile .cf-turnstile iframe {
  display: block;
  width: 100% !important;
  border: 0;
}

.booking-summary { background: #fff; border: 1px solid #e3e6ee; border-radius: 14px; padding: 20px; box-shadow: 0 2px 12px rgba(7, 21, 50, 0.04); position: sticky; top: 96px; }
.booking-summary header { margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px solid #f0f0f0; }
.booking-summary h2 { font-family: 'Fraunces', serif; font-size: 20px; font-weight: 600; color: #071532; margin: 0; }
.booking-summary__currency-note { font-size: 12px; line-height: 1.45; color: #6b7290; margin: -2px 0 14px; }
.host-preview-card__currency-note {
  font-size: 12px;
  line-height: 1.45;
  color: #6b7290;
  margin: 10px 0 12px;
}
.booking-summary h3 { font-size: 13px; color: #5b6280; margin: 14px 0 6px; text-transform: uppercase; letter-spacing: .04em; font-weight: 600; }
.booking-summary__property strong { display: block; font-size: 16px; color: #071532; }
.booking-summary__city { font-size: 13px; color: #6b7290; }
.booking-summary__list { display: grid; grid-template-columns: 110px 1fr; gap: 4px 8px; margin: 12px 0 0; font-size: 13px; }
.booking-summary__list dt { color: #6b7290; }
.booking-summary__list dd { color: #1f2540; margin: 0; }

.booking-rate-table { width: 100%; border-collapse: collapse; }
.booking-rate-table td { padding: 5px 0; font-size: 13px; border-bottom: 1px solid #f4f5f7; color: #5b6280; }
.booking-rate-table__amount { text-align: right; color: #1f2540; font-variant-numeric: tabular-nums; }
.booking-inclusions { list-style: none; padding: 0; margin: 0; }
.booking-inclusions li { padding: 4px 0; font-size: 13px; color: #15803d; }

.booking-summary__totals { margin-top: 14px; padding-top: 14px; border-top: 1px solid #f0f0f0; }
.booking-summary__row { display: flex; justify-content: space-between; padding: 4px 0; font-size: 13px; color: #5b6280; }
.booking-summary__total { display: flex; justify-content: space-between; padding: 10px 0 0; font-size: 16px; color: #071532; border-top: 2px solid #071532; margin-top: 6px; }
.booking-summary__total strong { color: #ac8510; font-size: 22px; font-weight: 700; }

.booking-cancel-policy { margin-top: 16px; padding: 12px; background: #fafbfc; border-left: 3px solid #071532; border-radius: 4px; }
.booking-cancel-policy h3 { margin: 0 0 4px; }
.booking-cancel-policy p { margin: 0; font-size: 13px; color: #2b3556; line-height: 1.4; }

.booking-alert { padding: 14px 16px; border-radius: 8px; margin: 16px 0; font-size: 14px; }
.booking-alert--err { background: #fee2e2; color: #991b1b; border-left: 3px solid #dc2626; }
.booking-alert--warn { background: #fef3c7; color: #92400e; border-left: 3px solid #d97706; }
.booking-alert--ok { background: #dcfce7; color: #15803d; border-left: 3px solid #16a34a; }
.booking-alert--info { background: #eff6ff; color: #1e3a5f; border-left: 3px solid #3b82f6; }
.booking-alert ul { margin: 8px 0 0; padding-left: 20px; }

/* Confirm page */
.booking-confirm__header { text-align: center; padding: 28px 16px; background: var(--portal-surface-gradient, linear-gradient(135deg, #f6f7fb, #fff)); border-radius: 14px; margin-bottom: 24px; }
.booking-confirm__icon { display: inline-block; width: 56px; height: 56px; line-height: 56px; border-radius: 50%; background: #15803d; color: #fff; font-size: 28px; font-weight: 700; margin-bottom: 12px; }
.booking-confirm__header h1 { font-family: 'Fraunces', serif; font-size: 32px; color: #071532; margin: 0 0 8px; }
.booking-confirm__number { font-size: 16px; color: #2b3556; margin: 0 0 12px; }
.booking-confirm__number strong { color: #ac8510; font-size: 18px; }
.booking-confirm__status { font-size: 13px; color: #6b7290; margin: 0; }

.booking-payment-placeholder { background: #fff; border: 2px dashed rgba(172, 133, 16, 0.55); border-radius: 14px; padding: 24px; margin-bottom: 24px; text-align: center; }
.booking-payment-placeholder h2 { font-size: 18px; color: #071532; margin: 0 0 8px; }
.booking-payment-placeholder__lead { font-size: 14px; color: #5b6280; line-height: 1.5; max-width: 580px; margin: 0 auto 18px; }
.booking-payment-placeholder__box { padding: 20px; background: rgba(172, 133, 16, 0.07); border-radius: 8px; }
.booking-payment-placeholder__pill { display: inline-block; padding: 8px 18px; background: #fff; border: 1px solid #ac8510; border-radius: 999px; color: #8a6d0d; font-size: 13px; font-weight: 600; }

.booking-summary--confirm { position: static; margin-bottom: 24px; }
.booking-summary__muted { color: #6b7290; }

/* Confirm — blok termínu */
.booking-confirm-stay-card {
  background: linear-gradient(135deg, #f8fafc, #fff);
  border: 1px solid #e3e6ee;
  border-radius: 14px;
  padding: 20px;
  margin-bottom: 22px;
  box-shadow: 0 2px 12px rgba(7, 21, 50, 0.04);
}
.booking-confirm-stay-card__grid {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 14px;
  align-items: stretch;
}
@media (max-width: 640px) {
  .booking-confirm-stay-card__grid { grid-template-columns: 1fr; }
}
.booking-confirm-stay-card__pill {
  background: #fff;
  border: 1px solid #e8ebf4;
  border-radius: 10px;
  padding: 12px 14px;
}
.booking-confirm-stay-card__pill--accent {
  border-color: rgba(172, 133, 16, 0.35);
  background: linear-gradient(to bottom right, rgba(172, 133, 16, 0.06), #fff);
}
.booking-confirm-stay-card__muted {
  display: block;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: #6b7290;
  font-weight: 600;
  margin-bottom: 4px;
}
.booking-confirm-stay-card__pill strong {
  font-size: 16px;
  color: #071532;
  font-family: 'Fraunces', serif;
}
.booking-confirm-stay-card__nights {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  background: #071532;
  color: #fff;
  border-radius: 10px;
  padding: 12px 18px;
  min-width: 110px;
}
.booking-confirm-stay-card__nights strong { font-size: 28px; line-height: 1; font-weight: 700; }
.booking-confirm-stay-card__nights-suffix { font-size: 12px; opacity: .9; }

/* Objekt hotela */
.booking-confirm-property {
  background: #fff;
  border: 1px solid #e3e6ee;
  border-radius: 14px;
  padding: 20px;
  margin-bottom: 22px;
}
.booking-confirm-property__title {
  margin: 0 0 6px;
  font-family: 'Fraunces', serif;
  font-size: 20px;
  color: #071532;
}
.booking-confirm-property__meta { margin: 0 0 10px; font-size: 14px; color: #5b6280; display: flex; align-items: center; gap: 4px; }
.booking-confirm-property__contact { display: flex; flex-wrap: wrap; gap: 12px 18px; font-size: 13px; margin-bottom: 12px; }
.booking-confirm-property__contact a { color: #ac8510; text-decoration: none; }
.booking-confirm-property__contact a:hover { text-decoration: underline; }
.booking-confirm-property__cta { margin: 0; }
.booking-confirm-property__link {
  display: inline-block;
  font-weight: 600;
  color: #fff;
  background: #071532;
  padding: 10px 18px;
  border-radius: 999px;
  text-decoration: none;
  font-size: 14px;
}
.booking-confirm-property__link:hover { background: #1a2954; }

/* Rizky booking_lines_json */
.booking-confirm-lines-heading { margin-bottom: 6px !important; }
.booking-confirm-lines {
  list-style: none;
  padding: 0;
  margin: 0 0 14px;
  border-top: 1px solid #f0f0f0;
}
.booking-confirm-lines li {
  padding: 10px 0;
  border-bottom: 1px dashed #e8eaf1;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px;
  font-size: 13px;
}
.booking-confirm-lines strong { color: #071532; font-size: 14px; }
.booking-confirm-lines__guests { color: #6b7290; }

/* Časová os storna */
.booking-cancel-timeline { margin-top: 20px; padding-top: 10px; border-top: 1px solid #f0f0f0; }
.booking-cancel-timeline > h3 { margin: 0 0 4px !important; }
.booking-cancel-timeline__meta { margin: 0 0 14px; font-size: 12px; color: #6b7290; }
.booking-cancel-timeline__track-wrap {
  position: relative;
  padding: 0 8px 92px;
  box-sizing: border-box;
  overflow-x: clip;
  max-width: 100%;
}
.booking-cancel-timeline__track {
  position: relative;
  height: 6px;
  background: #e8eaf1;
  border-radius: 999px;
  margin: 0;
  max-width: 100%;
}
.booking-cancel-timeline__mark {
  position: absolute;
  top: -4px;
  width: 14px;
  height: 14px;
  margin-left: -7px;
  border-radius: 50%;
  background: #ac8510;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px rgba(7,21,50,.12);
}
.booking-cancel-timeline__mark--today { background: #15803d; }
.booking-cancel-timeline__mark--checkin { background: #071532; }
.booking-cancel-timeline__mark--free_until { background: #0ea5e9; }
.booking-cancel-timeline__labels {
  position: relative;
  margin-top: 12px;
  min-height: 52px;
  padding: 0 2px;
  overflow-x: clip;
  max-width: 100%;
}
.booking-cancel-timeline__card {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(128px, 34vw);
  max-width: calc(100% - 4px);
  background: #fafbfc;
  border: 1px solid #e3e6ee;
  border-radius: 8px;
  padding: 5px 6px;
  box-sizing: border-box;
  font-size: clamp(10px, 2.7vw, 12px);
  line-height: 1.28;
  text-align: center;
  hyphens: auto;
  word-break: break-word;
}
.booking-cancel-timeline__card-title { display: block; font-weight: 600; color: #071532; }
.booking-cancel-timeline__card small { display: block; margin-top: 3px; color: #6b7290; font-size: 0.92em; line-height: 1.25; }
.booking-cancel-timeline-fallback { margin-top: 16px; font-size: 13px; }

.booking-cancel-policy__countdown {
  margin: 0 0 10px;
  font-size: 14px;
  font-weight: 600;
  color: #0f172a;
  line-height: 1.45;
}
.booking-cancel-policy__body { margin: 0; font-size: 14px; line-height: 1.5; color: #2b3556; }

/* AI tipy */
.booking-stay-tips {
  background: #fff;
  border: 1px solid #e3e6ee;
  border-radius: 14px;
  padding: 22px;
  margin-bottom: 28px;
  box-shadow: 0 2px 12px rgba(7, 21, 50, 0.04);
}
.booking-stay-tips > h2 { margin: 0 0 8px; font-family: 'Fraunces', serif; font-size: 21px; color: #071532; }
.booking-stay-tips__lead { font-size: 13px; color: #5b6280; margin: 0 0 14px; line-height: 1.45; }
.booking-stay-tips__legend { padding: 0; font-weight: 600; font-size: 12px; color: #5b6280; margin-bottom: 6px; }
.booking-stay-tips fieldset.booking-stay-tips__options {
  margin: 0 0 12px;
  padding: 0;
  border: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
}
.booking-stay-tips__radio {
  font-size: 13px;
  color: #1f2540;
  display: inline-flex;
  gap: 6px;
  align-items: center;
}
.booking-stay-tips__btn { max-width: 280px; margin-top: 4px; }
.booking-stay-tips__status { font-size: 12px; color: #6b7290; margin-top: 10px !important; }
.booking-stay-tips__out { margin-top: 14px; }
.booking-stay-tips__list { margin: 0; padding-left: 22px; color: #2b3556; font-size: 14px; line-height: 1.55; }
.booking-stay-tips__list li { margin-bottom: 8px; }
.booking-stay-tips--loading { opacity: 0.82; pointer-events: none; position: relative; }
.booking-stay-tips--loading .booking-submit-btn::after {
  content: '';
  display: inline-block;
  width: 12px;
  height: 12px;
  margin-left: 8px;
  border: 2px solid transparent;
  border-top-color: #fff;
  border-radius: 50%;
  animation: booking-spin 0.7s linear infinite;
  vertical-align: middle;
}
@keyframes booking-spin { to { transform: rotate(360deg); } }

.booking-stay-tips--highlight {
  outline: 3px solid rgba(14, 165, 233, 0.45);
  box-shadow: 0 0 0 5px rgba(14, 165, 233, 0.12);
  transition: box-shadow 0.25s ease, outline 0.25s ease;
}

body.booking-stay-tips-prompt--open { overflow: hidden; }

.booking-stay-tips-prompt {
  position: fixed;
  inset: 0;
  z-index: 4000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
  box-sizing: border-box;
}
.booking-stay-tips-prompt[hidden] { display: none !important; }
.booking-stay-tips-prompt__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 21, 50, 0.38);
  cursor: pointer;
}
.booking-stay-tips-prompt__dialog {
  position: relative;
  z-index: 1;
  width: min(400px, 100%);
  background: #fff;
  border-radius: 14px;
  padding: 22px 22px 20px;
  box-shadow: 0 18px 48px rgba(7, 21, 50, 0.18);
  border: 1px solid #e3e6ee;
}
.booking-stay-tips-prompt__title {
  margin: 0 0 10px;
  font-family: 'Fraunces', serif;
  font-size: 20px;
  color: #071532;
}
.booking-stay-tips-prompt__text {
  margin: 0 0 18px;
  font-size: 14px;
  line-height: 1.5;
  color: #5b6280;
}
.booking-stay-tips-prompt__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.booking-stay-tips-prompt__actions .booking-submit-btn { flex: 1 1 140px; }

/* Bankový QR (SK) — modal na confirm */
body.booking-bank-qr-modal--open { overflow: hidden; }

.booking-bank-qr-modal {
  position: fixed;
  inset: 0;
  z-index: 4100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
  box-sizing: border-box;
}
.booking-bank-qr-modal[hidden] { display: none !important; }
.booking-bank-qr-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 21, 50, 0.38);
  cursor: pointer;
}
.booking-bank-qr-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(520px, 100%);
  max-height: min(92vh, 920px);
  overflow: auto;
  background: #fff;
  border-radius: 14px;
  padding: 22px 22px 20px;
  box-shadow: 0 18px 48px rgba(7, 21, 50, 0.18);
  border: 1px solid #e3e6ee;
}
.booking-bank-qr-modal__close {
  position: absolute;
  top: 10px;
  right: 12px;
  width: 36px;
  height: 36px;
  border: 0;
  background: transparent;
  font-size: 26px;
  line-height: 1;
  color: #5b6280;
  cursor: pointer;
  border-radius: 8px;
}
.booking-bank-qr-modal__close:hover { color: #071532; background: #f1f4f9; }
.booking-bank-qr-modal__title {
  margin: 0 28px 8px 0;
  font-family: 'Fraunces', serif;
  font-size: 20px;
  color: #071532;
}
.booking-bank-qr-modal__lead {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.45;
  color: #5b6280;
}
.booking-bank-qr-modal__qr {
  text-align: center;
  margin: 12px 0 14px;
}
.booking-bank-qr-modal__qr img { display: inline-block; vertical-align: middle; }
.booking-bank-qr-modal__instant {
  margin: 0 0 14px;
  font-size: 13px;
  line-height: 1.5;
  color: #3d4660;
}
.booking-bank-qr-modal__details {
  max-width: none;
  margin: 0 0 8px;
}
.booking-bank-qr-modal__spayd { margin-top: 12px; }
.booking-bank-qr-modal__expiry { margin-top: 14px; margin-bottom: 0; text-align: left; }
.booking-bank-qr-modal__check-msg {
  margin: 14px 0 0;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.45;
  background: #f1f5f9;
  color: #334155;
}
.booking-bank-qr-modal__check-msg--info {
  background: #eff6ff;
  color: #1e3a5f;
}
.booking-bank-qr-modal__check-msg--warn {
  background: rgba(172, 133, 16, 0.08);
  color: #9a3412;
}
.booking-bank-qr-modal__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}
.booking-bank-qr-modal__actions .booking-submit-btn { flex: 1 1 160px; }

.booking-confirm__email-info { background: #fafbfc; padding: 16px 20px; border-radius: 10px; text-align: center; margin-bottom: 24px; font-size: 14px; color: #5b6280; }
.booking-confirm__email-info p { margin: 0 0 4px; }
.booking-confirm__email-info strong { color: #071532; }

.booking-cancel-action { background: #fff; border: 1px solid #e3e6ee; border-radius: 14px; padding: 16px 20px; margin-bottom: 24px; }
.booking-cancel-action summary { cursor: pointer; font-weight: 600; color: #8a6d0d; padding: 6px 0; }
.booking-cancel-action[open] summary { margin-bottom: 12px; }

.booking-link-back { color: #5b6280; text-decoration: none; font-size: 14px; }
.booking-link-back:hover { color: #071532; text-decoration: underline; }

/* admin-badge fallback (pre confirm page kde nemáme admin.css) */
.admin-badge { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.admin-badge--success { background: #dcfce7; color: #15803d; }
.admin-badge--accent { background: #fef3c7; color: #92400e; }
.admin-badge--neutral { background: #e5e7eb; color: #4b5563; }

/* Account UI */
.account-shell { padding: 96px 0 80px; max-width: 1100px; margin: 0 auto; padding-left: 16px; padding-right: 16px; }
.account-shell h1 { font-family: 'Fraunces', serif; font-size: 32px; color: #071532; margin: 0 0 16px; }
.account-card { background: #fff; border: 1px solid #e3e6ee; border-radius: 14px; padding: 24px; box-shadow: 0 2px 12px rgba(7, 21, 50, 0.04); margin-bottom: 16px; }
.account-card h2 { font-family: 'Fraunces', serif; font-size: 22px; color: #071532; margin: 0 0 12px; }
.account-tabs { display: flex; gap: 4px; margin-bottom: 18px; border-bottom: 1px solid #e3e6ee; }
.account-tabs a { padding: 12px 18px; color: #6b7290; text-decoration: none; font-size: 14px; font-weight: 500; border-bottom: 2px solid transparent; transition: all .15s ease; }
.account-tabs a:hover { color: #071532; }
.account-tabs a.is-active { color: #ac8510; border-bottom-color: #ac8510; font-weight: 600; }

.account-bookings-list { display: grid; gap: 12px; }
.account-booking-card { background: #fff; border: 1px solid #e3e6ee; border-radius: 12px; padding: 16px; display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
.account-booking-card__main { flex: 1; min-width: 240px; }
.account-booking-card__title { font-weight: 600; color: #071532; }
.account-booking-card__meta { font-size: 13px; color: #6b7290; margin-top: 4px; }
.account-booking-card__amount { font-size: 18px; color: #ac8510; font-weight: 700; min-width: 100px; text-align: right; }
.account-booking-card__cta a { color: #ac8510; text-decoration: none; font-size: 14px; }
.account-booking-card__cta a:hover { text-decoration: underline; }

.account-loyalty-stat { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 16px; background: linear-gradient(135deg, rgba(172, 133, 16, 0.07), #fff); border-radius: 10px; }
.account-loyalty-stat__label { font-size: 13px; color: #6b7290; text-transform: uppercase; letter-spacing: .05em; }
.account-loyalty-stat__value { font-size: 28px; color: #ac8510; font-weight: 700; }
.account-loyalty-tier { display: inline-block; padding: 4px 12px; border-radius: 999px; font-size: 12px; font-weight: 600; letter-spacing: .02em; }
.account-loyalty-tier--bronze   { background: #f3e8d8; color: #7c4a17; }
.account-loyalty-tier--silver   { background: #e5e7eb; color: #374151; }
.account-loyalty-tier--gold     { background: #fef3c7; color: #92400e; }
.account-loyalty-tier--platinum { background: #d1d5db; color: #1f2937; }
.account-loyalty-tier--travel_legend_1 { background: #f5ead4; color: #6b5210; }
.account-loyalty-tier--travel_legend_2 { background: #ebe2c8; color: #5c4510; }
.account-loyalty-tier--travel_legend_3 { background: #e2d4b2; color: #3d2e0a; }

.account-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.account-form .booking-field--full { grid-column: 1 / -1; }
.account-form button[type=submit] { grid-column: 1 / -1; padding: 12px 24px; background: #071532; color: #fff; border: 0; border-radius: 8px; font-weight: 600; cursor: pointer; }
.account-form button[type=submit]:hover { background: #1a2954; }

.account-login-shell { max-width: 420px; margin: 96px auto 80px; padding: 0 16px; }
.account-login-shell h1 { text-align: center; font-family: 'Fraunces', serif; }
.account-login-shell .booking-form { padding: 24px; }
.account-login-shell .booking-field { margin-bottom: 12px; }

/* Hotel page extra: booking-on-ellavia button */
.hotel-cal__guest-submit--ellavia {
  background: #071532; color: #fff; margin-top: 8px;
}
.hotel-cal__guest-submit--ellavia:hover { background: #1a2954; }

/* Hotel detail — orientačné porovnanie ceny (priamy host) */
.hotel-price-compare {
  margin: 20px 0 28px;
  padding: 18px 20px;
  border-radius: 14px;
}
.hotel-price-compare__title {
  font-family: 'Fraunces', serif;
  font-size: 1.25rem;
  font-weight: 600;
  color: #071532;
  margin: 0 0 14px;
}
.hotel-price-compare__lead {
  margin: 0 0 10px;
  font-size: 14px;
  line-height: 1.55;
  color: #2b3556;
}
.hotel-price-compare__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 14px;
}
@media (max-width: 520px) {
  .hotel-price-compare__grid { grid-template-columns: 1fr; }
}
.hotel-price-compare__cell {
  background: rgba(255, 255, 255, 0.65);
  border: 1px solid rgba(7, 21, 50, 0.08);
  border-radius: 10px;
  padding: 12px 14px;
}
.hotel-price-compare__label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: #5b6280;
  margin-bottom: 6px;
}
.hotel-price-compare__amount {
  font-size: 1.35rem;
  font-weight: 700;
  color: #071532;
}
.hotel-price-compare__amount--muted {
  color: #6b7290;
  font-weight: 600;
}
.hotel-price-compare__cheaper {
  margin: 0 0 12px;
  font-size: 15px;
  font-weight: 600;
  color: #15803d;
  line-height: 1.45;
}
.hotel-price-compare__disclaimer {
  margin: 0 0 14px;
  font-size: 12px;
  line-height: 1.5;
}
.hotel-price-compare__benefits {
  margin: 0;
  padding-left: 1.15rem;
  font-size: 13px;
  line-height: 1.55;
  color: #2b3556;
}
.hotel-price-compare__benefits li + li {
  margin-top: 6px;
}
.hotel-price-compare__muted {
  margin: 12px 0 0;
  font-size: 12px;
}

/* široký blog editor (účet) + média */
.account-blog-edit--wide {
  box-sizing: border-box;
  max-width: min(1320px, calc(100vw - 28px));
  margin-left: auto;
  margin-right: auto;
  padding-left: 16px;
  padding-right: 16px;
}
.account-blog-edit__card label > span:first-child {
  display: block;
  margin-bottom: 6px;
  font-size: 14px;
  font-weight: 600;
  color: #071532;
}
.account-blog-edit__muted {
  margin: 0 0 8px;
  font-size: 14px;
  line-height: 1.45;
  color: #5b6280;
}
.account-blog-edit__cover-title {
  display: block;
  font-size: 1rem;
  font-weight: 600;
  color: #071532;
  margin: 8px 0 4px;
}
.account-blog-edit__control {
  width: 100%;
  box-sizing: border-box;
  max-width: 100%;
  padding: 10px 12px;
  border: 1px solid #e3e6ee;
  border-radius: 8px;
  font-size: 15px;
  background: #fff;
}
textarea.account-blog-edit__control.account-blog-edit__control--tall {
  min-height: 80px;
  resize: vertical;
}
.account-blog-edit__dropzone {
  border: 2px dashed #cfd4e8;
  border-radius: 12px;
  padding: 28px 20px;
  text-align: center;
  color: #5b6280;
  cursor: pointer;
  background: #fafbfc;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.account-blog-edit__dropzone:focus {
  outline: 2px solid #ac8510;
  outline-offset: 2px;
}
.account-blog-edit__dropzone.is-drag {
  border-color: #ac8510;
  background: #fff9ed;
}
.account-blog-edit__cover-preview {
  margin-top: 12px;
}
.account-blog-edit__cover-preview img {
  width: 100%;
  max-height: 340px;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid #e3e6ee;
}
.account-blog-edit__gallery-list {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}
.account-blog-edit__gallery-item {
  position: relative;
  width: 140px;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid #e3e6ee;
  background: #f4f5f7;
}
.account-blog-edit__gallery-item img {
  display: block;
  width: 140px;
  height: 100px;
  object-fit: cover;
}
.account-blog-edit__gallery-nav {
  display: flex;
  gap: 4px;
  padding: 6px;
  justify-content: flex-end;
  background: rgba(255, 255, 255, 0.95);
}
.account-blog-edit__gallery-nav button {
  min-width: 32px;
  padding: 4px 6px;
  border: 1px solid #e3e6ee;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  font-size: 14px;
}
.account-blog-edit__gallery-nav button:hover {
  background: #fafbfc;
}
.account-blog-edit__gallery-rm {
  margin-left: 4px;
  color: #8b1e1e;
  border-color: #f5c2c2 !important;
}
.account-blog-edit__field--rte .trumbowyg-box {
  margin: 0 auto;
  width: 100% !important;
  max-width: 100% !important;
}
.account-blog-edit__field--rte .trumbowyg-editor {
  min-height: 320px !important;
}
