/* ============================================================
   BookMazury — Bootstrap 5 theme
   Tokeny zsynchronizowane z bookmazury-skin.css (DNN skin)
   ============================================================ */

:root {
  /* ── Design system tokens (brand.css → .NET) ── */
  --bm-ink:       #0B1E33;
  --bm-ink-2:     #173655;
  --bm-ink-3:     #2A4F73;
  --bm-paper:     #FAF6EE;
  --bm-paper-2:   #F2EBDD;
  --bm-paper-3:   #E6DCC6;
  --bm-copper:    #1C5C7A;
  --bm-copper-2:  #2E80A6;
  --bm-brass:     #C9A24A;
  --bm-pine:      #2F4A3A;
  --bm-water:     #6FA9B5;
  --bm-rope:      #C9B891;
  --bm-line:      rgba(11,30,51,.14);
  --bm-line-2:    rgba(11,30,51,.08);

  /* Legacy aliases (for panel pages) */
  --bm-navy:    #0B1E33;
  --bm-navy-2:  #173655;
  --bm-gold:    #C9A24A;
  --bm-cream:   #FAF6EE;
  --bm-mist:    #F2EBDD;
  --bm-text:    #173655;
  --bm-muted:   #5A6E82;

  /* Bootstrap overrides */
  --bs-primary: var(--bm-copper);
  --bs-primary-rgb: 181, 100, 44;
  --bs-link-color: var(--bm-copper);
  --bs-link-hover-color: var(--bm-ink);
  --bs-body-color: var(--bm-ink);
  --bs-body-bg: #fff;
  --bs-border-color: var(--bm-line);
  --bs-border-radius: 10px;
  --bs-font-sans-serif: 'Inter', system-ui, -apple-system, sans-serif;
  --bs-font-serif: 'Instrument Serif', 'Source Serif 4', Georgia, serif;
}

body { font-family: var(--bs-font-sans-serif); color: var(--bm-ink); background: #fff; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { font-family: var(--bs-font-serif); color: var(--bm-ink); letter-spacing: -0.015em; font-weight: 400; margin: 0; }

/* ============== Design system: type scale ============== */
.bm-h1 { font-family: var(--bs-font-serif); font-weight: 400; font-size: clamp(36px, 4.2vw, 64px); line-height: 1.02; letter-spacing: -.015em; }
.bm-eyebrow { font-family: var(--bs-font-sans-serif); font-weight: 500; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--bm-copper); }
.bm-label { display: block; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--bm-ink-2); margin-bottom: 6px; }
.bm-container { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 28px; }
.bm-container-narrow { width: 100%; max-width: 980px; margin: 0 auto; padding: 0 28px; }
.bm-section { padding: 80px 0; }
.bm-section-row { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 32px; gap: 16px; }
.bm-link-copper { color: var(--bm-copper); text-decoration: none; font-weight: 500; font-size: 14px; white-space: nowrap; }
.bm-link-copper:hover { color: var(--bm-copper-2); }

/* ============== Buttons ============== */
.bm-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px; padding: 0 20px; border-radius: 999px; border: 1px solid transparent; font-family: var(--bs-font-sans-serif); font-weight: 500; font-size: 14px; text-decoration: none; transition: transform .15s, background .2s, color .2s, border-color .2s; white-space: nowrap; cursor: pointer; }
.bm-btn--primary { background: var(--bm-copper); color: var(--bm-paper); border-color: var(--bm-copper); }
.bm-btn--primary:hover { background: var(--bm-copper-2); border-color: var(--bm-copper-2); color: var(--bm-paper); }
.bm-btn--ghost { background: transparent; color: var(--bm-ink); border-color: var(--bm-line); }
.bm-btn--ghost:hover { border-color: var(--bm-ink); color: var(--bm-ink); }
.bm-btn--sm { height: 36px; padding: 0 16px; font-size: 13px; }

/* ============== Top bar ============== */
.bm-topbar { background: var(--bm-ink); color: var(--bm-paper); font-size: 12px; }
.bm-topbar__inner { display: flex; justify-content: space-between; align-items: center; padding: 8px 28px; }
.bm-topbar__left { display: flex; gap: 16px; opacity: .9; }
.bm-topbar__dot { opacity: .5; }
.bm-topbar__langs { display: flex; gap: 4px; }
.bm-topbar__lang { padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; letter-spacing: .08em; cursor: pointer; opacity: .7; }
.bm-topbar__lang--active { background: var(--bm-copper); opacity: 1; }

/* Odstęp między ikoną Bootstrap Icons a tekstem w przyciskach.
   Używamy gap zamiast margin — działa też gdy tekst jest text-node, nie elementem.
   justify-content: center utrzymuje wycentrowanie dla przycisków .w-100. */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; }
/* Przyciski z samą ikoną (np. hamburger) nie potrzebują gap. */
.btn.btn-icon-only { gap: 0; }

/* ============== Header ============== */
.bm-header { background: #E8EFF6; border-bottom: 1px solid #C8D8E8; position: sticky; top: 0; z-index: 100; }
.bm-header__inner { display: flex; justify-content: space-between; align-items: center; padding: 18px 28px; }
.bm-header__actions { display: flex; align-items: center; gap: 8px; }

/* Logo */
.bm-logo { display: flex; align-items: center; gap: 10px; color: var(--bm-ink); text-decoration: none; }
.bm-logo--light { color: var(--bm-paper); }
.bm-logo__mark { flex-shrink: 0; }
.bm-logo__text { line-height: 0.95; }
.bm-logo__name { font-family: var(--bs-font-serif); font-size: 26px; font-weight: 700; letter-spacing: -.01em; color: var(--bm-ink); }
.bm-logo__name em { font-style: italic; font-weight: 600; }
.bm-logo__sub { font-family: var(--bs-font-sans-serif); font-size: 10px; letter-spacing: .22em; margin-top: 4px; color: var(--bm-ink); font-weight: 700; text-transform: uppercase; }
.bm-logo:hover { opacity: .85; }
.bm-logo--light .bm-logo__sub { color: var(--bm-rope); }

/* Nav */
.bm-nav { display: flex; gap: 28px; align-items: center; }
.bm-nav__link { color: var(--bm-ink); text-decoration: none; font-size: 14px; font-weight: 500; padding-bottom: 4px; border-bottom: 2px solid transparent; transition: color .15s, border-color .15s; }
.bm-nav__link:hover { color: var(--bm-copper); }
.bm-nav__link.active { color: var(--bm-copper); border-bottom-color: var(--bm-copper); }

/* ============== Hero Full (homepage) ============== */
.bm-hero-full {
  position: relative;
  background: linear-gradient(180deg, #0B1E33 0%, #173655 60%, #2A4F73 100%);
  padding: 80px 0 100px;
  overflow: hidden;
  color: var(--bm-paper);
}
.bm-hero-full__compass {
  position: absolute;
  right: -60px;
  top: 60px;
  width: clamp(220px, 30vw, 420px);
  opacity: .12;
  color: var(--bm-paper);
  pointer-events: none;
}
.bm-hero-full__compass svg { width: 100%; height: auto; }
.bm-hero-full__inner { position: relative; z-index: 1; }
.bm-hero-full__title {
  font-family: var(--bs-font-serif);
  font-size: clamp(56px, 8vw, 132px);
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: -.02em;
  color: var(--bm-paper);
  margin: 16px 0 24px;
  max-width: 980px;
}
.bm-hero-full__title em { font-style: italic; color: var(--bm-brass); }
.bm-hero-full__lead { font-size: 18px; color: var(--bm-rope); max-width: 560px; line-height: 1.55; margin: 0; }

/* ============== Search widget (below hero) ============== */
.bm-search-wrap { background: var(--bm-paper); margin-top: -30px; position: relative; z-index: 10; }
.bm-search-widget {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr 1fr 0.9fr auto;
  align-items: stretch;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 2px 0 rgba(11,30,51,.04), 0 30px 60px -20px rgba(11,30,51,.30);
  border: 1px solid var(--bm-line-2);
  overflow: hidden;
}
.bm-search-widget__field { padding: 14px 20px; border-right: 1px solid var(--bm-line-2); display: flex; flex-direction: column; }
.bm-search-widget__input { border: none; outline: none; font: inherit; font-size: 15px; font-weight: 500; color: var(--bm-ink); background: transparent; padding: 0; -webkit-appearance: none; }
.bm-search-widget__sep { display: none; }
.bm-search-widget__btn { background: var(--bm-copper); color: var(--bm-paper); border: none; padding: 0 28px; font-family: var(--bs-font-sans-serif); font-size: 15px; font-weight: 500; cursor: pointer; transition: background .15s; white-space: nowrap; border-radius: 0 14px 14px 0; }
.bm-search-widget__btn:hover { background: var(--bm-copper-2); }
@media (max-width: 900px) {
  .bm-search-widget { grid-template-columns: 1fr 1fr; border-radius: 14px; }
  .bm-search-widget__btn { grid-column: 1 / -1; border-radius: 0 0 14px 14px; padding: 16px; }
}

/* ============== Categories ============== */
.bm-cats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (max-width: 768px) { .bm-cats { grid-template-columns: repeat(2, 1fr); } }
.bm-cat {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 32px 26px;
  border-radius: 14px;
  text-decoration: none;
  color: var(--bm-paper);
  aspect-ratio: 1 / 1.1;
  transition: transform .2s, box-shadow .2s;
}
.bm-cat:hover { transform: translateY(-3px); box-shadow: 0 20px 40px rgba(0,0,0,.22); color: var(--bm-paper); }
.bm-cat__mark { opacity: .7; margin-bottom: auto; }
.bm-cat__count { font-size: 11px; letter-spacing: .14em; opacity: .7; font-weight: 600; margin-bottom: 4px; }
.bm-cat__name { font-family: var(--bs-font-serif); font-size: 28px; line-height: 1.05; }
.bm-cat__desc { font-size: 13px; opacity: .85; margin-top: 8px; }

/* ============== Yacht cards (featured grid) ============== */
.bm-yachts-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
@media (max-width: 1024px) { .bm-yachts-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .bm-yachts-grid { grid-template-columns: 1fr; } }
.bm-yacht-card { display: block; text-decoration: none; color: inherit; background: #fff; border: 1px solid var(--bm-line-2); border-radius: 14px; overflow: hidden; transition: transform .2s, box-shadow .2s; }
.bm-yacht-card:hover { transform: translateY(-2px); box-shadow: 0 2px 0 rgba(11,30,51,.04), 0 30px 60px -20px rgba(11,30,51,.30); color: inherit; }
.bm-yacht-card--skeleton { pointer-events: none; }
.bm-yacht-card__photo { aspect-ratio: 4 / 3; background: var(--bm-ink-2); position: relative; display: grid; place-items: center; color: var(--bm-paper); overflow: hidden; }
.bm-yacht-card__placeholder { opacity: .4; }
.bm-chip-photo { position: absolute; top: 12px; left: 12px; background: var(--bm-copper); color: var(--bm-paper); padding: 4px 10px; border-radius: 999px; font-size: 11px; font-weight: 600; letter-spacing: .06em; }
.bm-chip-photo--r { left: auto; right: 12px; background: rgba(11,30,51,.6); backdrop-filter: blur(8px); }
.bm-yacht-card__body { padding: 18px 20px 20px; }
.bm-yacht-card__name { font-family: var(--bs-font-serif); font-size: 24px; font-weight: 400; margin-top: 4px; line-height: 1.1; }
.bm-yacht-card__price { font-family: var(--bs-font-serif); font-size: 24px; color: var(--bm-copper); line-height: 1; }
.bm-yacht-card__price-unit { font-size: 12px; color: var(--bm-ink-2); font-family: var(--bs-font-sans-serif); }
.bm-yacht-card__specs { display: flex; gap: 16px; margin-top: 14px; font-size: 13px; color: var(--bm-ink-2); }

/* ============== Promo block ============== */
.bm-promo {
  background: var(--bm-ink);
  color: var(--bm-paper);
  border-radius: 22px;
  padding: 60px;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 40px;
  align-items: center;
  position: relative;
  overflow: hidden;
}
.bm-promo__compass { position: absolute; right: -40px; top: -40px; width: 300px; color: var(--bm-copper); opacity: .18; pointer-events: none; }
.bm-promo__left { position: relative; }
.bm-promo__lead { margin-top: 16px; color: var(--bm-rope); max-width: 460px; font-size: 16px; line-height: 1.6; }
.bm-promo__code {
  position: relative;
  background: rgba(250,246,238,.06);
  border-radius: 14px;
  padding: 28px;
  border: 1px solid rgba(250,246,238,.12);
}
.bm-promo__code-val { font-family: monospace; font-size: 32px; color: var(--bm-brass); letter-spacing: .12em; margin-top: 8px; }
.bm-promo__code-info { margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(250,246,238,.15); font-size: 13px; color: var(--bm-rope); line-height: 1.7; }
@media (max-width: 768px) { .bm-promo { grid-template-columns: 1fr; padding: 36px 24px; } }

/* ============== How it works ============== */
.bm-how { background: var(--bm-ink); color: var(--bm-paper); }
.bm-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
@media (max-width: 768px) { .bm-steps { grid-template-columns: repeat(2, 1fr); gap: 24px; } }
.bm-step { padding: 0 28px; border-left: 1px solid rgba(250,246,238,.15); }
.bm-step:first-child { border-left: none; padding-left: 0; }
.bm-step__num { font-family: var(--bs-font-serif); font-size: 56px; color: var(--bm-brass); line-height: 1; font-style: italic; }
.bm-step__title { font-family: var(--bs-font-serif); font-size: 24px; color: var(--bm-paper); margin-top: 16px; font-weight: 400; }
.bm-step__text { margin-top: 10px; color: var(--bm-rope); font-size: 14px; line-height: 1.6; }

/* ============== Reviews ============== */
.bm-reviews { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 768px) { .bm-reviews { grid-template-columns: 1fr; } }
.bm-review { background: #fff; border: 1px solid var(--bm-line-2); border-radius: 14px; padding: 28px; }
.bm-review__stars { color: var(--bm-brass); font-size: 18px; }
.bm-review__text { margin-top: 14px; font-family: var(--bs-font-serif); font-size: 20px; line-height: 1.35; color: var(--bm-ink); }
.bm-review__author { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--bm-line-2); font-weight: 600; font-size: 14px; color: var(--bm-ink); }
.bm-review__trip { font-size: 12px; color: var(--bm-ink-2); margin-top: 2px; }

/* ============== SEO block ============== */
.bm-seo-cols { margin-top: 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 32px; font-size: 15px; line-height: 1.7; color: var(--bm-ink-2); }
@media (max-width: 768px) { .bm-seo-cols { grid-template-columns: 1fr; } }

/* ============== Footer ============== */
.bm-footer { background: var(--bm-ink); color: var(--bm-paper); padding: 60px 0 0; }
.bm-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; }
@media (max-width: 900px) { .bm-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .bm-footer__grid { grid-template-columns: 1fr; } }
.bm-footer__desc { margin-top: 16px; font-size: 14px; color: var(--bm-rope); max-width: 320px; line-height: 1.6; }
.bm-footer__col-head { color: var(--bm-brass); margin-bottom: 16px; display: block; }
.bm-footer__links { list-style: none; padding: 0; margin: 0; line-height: 2; }
.bm-footer__links a { color: var(--bm-paper); text-decoration: none; opacity: .85; font-size: 14px; }
.bm-footer__links a:hover { opacity: 1; }
.bm-footer__contact { font-size: 14px; color: var(--bm-paper); opacity: .85; line-height: 1.8; }
.bm-footer__hr { margin: 40px 0 20px; border: none; border-top: 1px solid rgba(250,246,238,.15); }
.bm-footer__bottom { display: flex; justify-content: space-between; font-size: 12px; opacity: .6; padding-bottom: 30px; }
.bm-footer__bottom-links { display: flex; gap: 20px; }
.bm-footer__bottom a { color: var(--bm-paper); text-decoration: none; }

/* lang switcher */
.bm-lang { color: var(--bm-ink); text-decoration: none; font-size: .9rem; font-weight: 500; display: flex; align-items: center; gap: .25rem; }

/* ============== Hero (legacy — used on inner pages) ============== */
.bm-hero { background: linear-gradient(135deg, var(--bm-ink) 0%, var(--bm-ink-2) 100%); color: #fff; padding: 4rem 0 5rem; position: relative; overflow: hidden; }
.bm-hero::before { content:""; position:absolute; inset:0; background: radial-gradient(circle at 80% 30%, rgba(181,100,44,.18), transparent 55%); }
.bm-hero > .container { position: relative; }
.bm-hero__eyebrow { color: var(--bm-brass); text-transform: uppercase; letter-spacing: .2em; font-size: .75rem; font-weight: 600; margin-bottom: .75rem; }
.bm-hero__title { color: #fff; font-size: clamp(2rem, 4.5vw, 3.25rem); margin-bottom: 1rem; }
.bm-hero__lead { font-size: 1.125rem; color: rgba(255,255,255,0.85); margin-bottom: 2rem; max-width: 36rem; }

/* ============== Search card ============== */
.bm-search-card {
  background: #fff;
  border-radius: 16px;
  padding: 1.5rem;
  box-shadow: 0 16px 40px rgba(14,42,71,.22);
  margin-top: 1rem;
}
.bm-search-card .form-label { font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--bm-muted); margin-bottom: .35rem; }
.bm-search-card .form-control,
.bm-search-card .form-select { border-color: var(--bm-line); padding: .55rem .75rem; }
.bm-search-card .form-control:focus,
.bm-search-card .form-select:focus { border-color: var(--bm-copper); box-shadow: 0 0 0 .2rem rgba(201,122,74,.15); }

/* ============== Yacht cards ============== */
.bm-card {
  display: flex; flex-direction: column;
  background: #fff;
  border: 1px solid var(--bm-line);
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform .15s, box-shadow .15s, border-color .15s;
  height: 100%;
}
.bm-card:hover { transform: translateY(-3px); box-shadow: 0 16px 32px rgba(14,42,71,.10); border-color: var(--bm-copper); color: inherit; }
.bm-card__media { position: relative; aspect-ratio: 4/3; background: var(--bm-mist); overflow: hidden; }
.bm-card__media img { width: 100%; height: 100%; object-fit: cover; }
.bm-card__media-placeholder { display:flex; align-items:center; justify-content:center; height:100%; color:var(--bm-muted); font-size:2rem; }
.bm-card__badges { position: absolute; top: .75rem; left: .75rem; display: flex; flex-wrap: wrap; gap: .35rem; }
.bm-card__body { padding: 1.1rem 1.25rem 1.25rem; flex: 1; display: flex; flex-direction: column; gap: .35rem; }
.bm-card__title { color: var(--bm-navy); font-family: var(--bs-font-serif); font-size: 1.15rem; font-weight: 600; margin: 0; line-height: 1.2; }
.bm-card__sub { color: var(--bm-muted); font-size: .85rem; }
.bm-card__specs { display: flex; flex-wrap: wrap; gap: .9rem; font-size: .825rem; color: var(--bm-text); margin-top: .25rem; }
.bm-card__specs span { display: inline-flex; align-items: center; gap: .35rem; }
.bm-card__specs i { color: var(--bm-copper); }
.bm-card__price { margin-top: auto; padding-top: .75rem; display: flex; justify-content: space-between; align-items: baseline; }
.bm-card__price-from { color: var(--bm-muted); font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; }
.bm-card__price-amt { color: var(--bm-copper); font-weight: 700; font-size: 1.25rem; }

/* Tag pill */
.bm-tag { display: inline-flex; align-items: center; gap: .25rem; padding: .2rem .6rem; border-radius: 999px; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; background: rgba(255,255,255,.92); color: var(--bm-navy); backdrop-filter: blur(4px); }
.bm-tag-accent { background: var(--bm-copper); color: #fff; }
.bm-tag-gold { background: var(--bm-gold); color: var(--bm-navy); }

/* ============== Filters ============== */
.bm-filters { background: #E8EFF6; border: 1px solid #C8D8E8; border-radius: 14px; padding: 1.25rem; }
.bm-filters h6 { color: var(--bm-navy); text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; font-family: var(--bs-font-sans-serif); font-weight: 700; margin-bottom: .5rem; }
.bm-filters .form-check { padding: .25rem 0 .25rem 1.6rem; }

/* ============== Section heads ============== */
.bm-section-head { display: flex; flex-direction: column; gap: .35rem; margin-bottom: 1.75rem; }
.bm-section-head__eyebrow { color: var(--bm-copper); font-size: .75rem; text-transform: uppercase; letter-spacing: .2em; font-weight: 700; }
.bm-section-head__title { color: var(--bm-navy); margin: 0; }
.bm-section-head__lead { color: var(--bm-muted); max-width: 36rem; }

/* ── Panel page header ───────────────────────────────────────────────────── */
/* Wiersz 1: tytuł wyśrodkowany */
.bm-panel-head { margin-bottom: .5rem; text-align: center; }
.bm-panel-head__title {
    color: var(--bm-navy); margin: 0;
    font-size: 2.5rem; font-weight: 800; letter-spacing: -.02em;
}

/* Wiersz 2: akcje po prawej (przyciski Dodaj itp.) */
.bm-panel-actions { display: flex; justify-content: flex-end; align-items: center; gap: .5rem; margin-bottom: 1.75rem; }

/* Wiersz 3: toolbar grida (search + ikony funkcyjne) — wbudowany w bm-grid-container jako header */
.bm-grid-header {
    display: flex; justify-content: flex-end; align-items: center; gap: .75rem;
    padding: .875rem 1.25rem;
    border-bottom: 2px solid var(--bm-line, #D8DFE8);
    background: #fff;
}
.bm-grid-header__search { position: relative; }
.bm-grid-header__search input {
    height: 36px; padding: 0 .75rem 0 2.25rem; border: none;
    border-bottom: 1.5px solid var(--bm-line, #D8DFE8); border-radius: 0;
    background: transparent; font-size: .85rem; color: var(--bm-text, #2A3F54);
    outline: none; transition: border-color .15s; width: 240px;
    font-family: "Inter", -apple-system, system-ui, sans-serif;
}
.bm-grid-header__search input:focus { border-color: var(--bm-copper, #C97A4A); }
.bm-grid-header__search input::placeholder { color: var(--bm-muted, #67758A); }
.bm-grid-header__search-icon {
    position: absolute; left: .5rem; top: 50%; transform: translateY(-50%);
    color: var(--bm-muted, #67758A); font-size: .9rem; pointer-events: none;
}

/* stary toolbar — zachowany dla kompatybilności, ale nowe widoki używają bm-grid-header */
.bm-grid-toolbar { display: flex; justify-content: flex-end; align-items: center; gap: .625rem; margin-bottom: .75rem; }
.bm-grid-toolbar__search { position: relative; }
.bm-grid-toolbar__search input {
    height: 36px; padding: 0 .75rem 0 2.25rem; border: none;
    border-bottom: 1.5px solid var(--bm-line, #D8DFE8); border-radius: 0;
    background: transparent; font-size: .85rem; color: var(--bm-text, #2A3F54);
    outline: none; transition: border-color .15s; width: 240px;
    font-family: "Inter", -apple-system, system-ui, sans-serif;
}
.bm-grid-toolbar__search input:focus { border-color: var(--bm-copper, #C97A4A); }
.bm-grid-toolbar__search input::placeholder { color: var(--bm-muted, #67758A); }
.bm-grid-toolbar__search-icon {
    position: absolute; left: .5rem; top: 50%; transform: translateY(-50%);
    color: var(--bm-muted, #67758A); font-size: .9rem; pointer-events: none;
}

/* ============== Yacht detail ============== */
.bm-yacht-hero { background: var(--bm-navy); color: #fff; padding: 1rem 0 3rem; }
.bm-breadcrumb { color: rgba(255,255,255,.7); font-size: .85rem; padding: 1rem 0; }
.bm-breadcrumb a { color: rgba(255,255,255,.85); text-decoration: none; }
.bm-breadcrumb a:hover { color: #fff; }
.bm-gallery { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; gap: .75rem; aspect-ratio: 16/9; }
.bm-gallery__main { grid-row: 1 / span 2; border-radius: 14px; overflow: hidden; background: var(--bm-mist); }
.bm-gallery__thumb { border-radius: 10px; overflow: hidden; background: var(--bm-mist); cursor: pointer; }
.bm-gallery img { width: 100%; height: 100%; object-fit: cover; }

.bm-yacht-title { color: #fff; margin: 0 0 .5rem; }
.bm-yacht-sub { color: rgba(255,255,255,.85); display: flex; flex-wrap: wrap; gap: 1rem; font-size: .95rem; }
.bm-yacht-sub i { color: var(--bm-gold); }

/* Specs grid (legacy — używane w innych miejscach np. operator) */
.bm-specs { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 1rem; }
.bm-spec { background: var(--bm-cream); border-radius: 10px; padding: .85rem 1rem; }
.bm-spec__label { color: var(--bm-muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 600; }
.bm-spec__value { color: var(--bm-navy); font-family: var(--bs-font-serif); font-size: 1.25rem; font-weight: 600; }

/* Specyfikacja jako zestaw ikon (jak na bielakczartery.pl) */
.bm-spec-icons { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.bm-spec-icons li { background: #E8EFF6; border-radius: 10px; padding: .75rem 1.1rem; display: inline-flex; align-items: center; }
.bm-spec-icons li > span { display: inline-flex; align-items: center; gap: .6rem; color: var(--bm-navy); font-weight: 500; cursor: help; }
.bm-spec-icons li i { color: var(--bm-copper); font-size: 1.75rem; line-height: 1; }

.bm-equipment { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .65rem; }
.bm-equipment__item { display: flex; align-items: center; gap: .5rem; background: #fff; border: 1px solid var(--bm-line); border-radius: 8px; padding: .55rem .75rem; font-size: .9rem; }
.bm-equipment__item i { color: var(--bm-copper); }

/* Globalny loader (overlay przed pełnym załadowaniem strony) — szkielet całej strony */
#bm-loader {
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: #fff;
    overflow: hidden;
    transition: opacity .3s ease, visibility .3s ease;
}
#bm-loader.bm-loader--hidden { opacity: 0; visibility: hidden; pointer-events: none; }

.bm-page-skeleton__header {
    height: 76px;
    background: rgba(11, 30, 51, 0.06);
    border-bottom: 1px solid rgba(11, 30, 51, 0.08);
    position: relative;
    overflow: hidden;
}
.bm-page-skeleton__hero {
    height: 220px;
    background: rgba(11, 30, 51, 0.06);
    border-radius: 14px;
    position: relative;
    overflow: hidden;
}
.bm-page-skeleton__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.5rem;
}
.bm-page-skeleton__card {
    height: 320px;
    background: rgba(11, 30, 51, 0.06);
    border-radius: 12px;
    position: relative;
    overflow: hidden;
}
.bm-page-skeleton__header::after,
.bm-page-skeleton__hero::after,
.bm-page-skeleton__card::after {
    content: "";
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    background: linear-gradient(90deg, transparent, rgba(11, 30, 51, 0.08), transparent);
    animation: bm-shimmer 1.4s infinite;
}

/* Skeleton loader (shimmer) — placeholder dla treści ładowanych po fetch() */
.bm-skeleton {
    position: relative;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.12);
    border-radius: 6px;
}
.bm-skeleton::after {
    content: "";
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.25), transparent);
    animation: bm-shimmer 1.4s infinite;
}
@keyframes bm-shimmer {
    100% { transform: translateX(100%); }
}

/* Skeleton — warianty pasujące do siatki yacht detail (na ciemnym tle hero). */
.bm-skeleton--title { height: 2.5rem; width: 70%; }
.bm-skeleton--sub   { height: 1rem;   width: 50%; }
.bm-skeleton--chip  { height: 3rem;   width: 8rem; border-radius: 8px; background: rgba(11, 30, 51, 0.06); }
.bm-skeleton--chip::after { background: linear-gradient(90deg, transparent, rgba(11, 30, 51, 0.08), transparent); }

/* Skeleton — warianty na jasnym tle (lista jachtów, strona główna, booking). */
.bm-skeleton--light { background: rgba(11, 30, 51, 0.06); }
.bm-skeleton--light::after { background: linear-gradient(90deg, transparent, rgba(11, 30, 51, 0.08), transparent); }

.bm-skeleton--text-lg { height: 1.5rem; }
.bm-skeleton--text-md { height: 1.1rem; }
.bm-skeleton--text-sm { height: 0.85rem; }
.bm-skeleton--w-30 { width: 30%; }
.bm-skeleton--w-50 { width: 50%; }
.bm-skeleton--w-70 { width: 70%; }
.bm-skeleton--w-90 { width: 90%; }

/* Skeleton card — placeholder kafelka jachta na liście / stronie głównej. */
.bm-skeleton-card {
    background: #fff;
    border: 1px solid var(--bm-line, #E0E0E0);
    border-radius: 12px;
    overflow: hidden;
}
.bm-skeleton-card__media {
    aspect-ratio: 16 / 10;
    background: var(--bm-mist, #E6EDF2);
    position: relative;
    overflow: hidden;
}
.bm-skeleton-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    background: linear-gradient(90deg, transparent, rgba(11, 30, 51, 0.08), transparent);
    animation: bm-shimmer 1.4s infinite;
}
.bm-skeleton-card__body { padding: 1rem; display: flex; flex-direction: column; gap: .55rem; }

/* Skeleton w galerii (jasny placeholder dopasowany do --bm-mist) */
.bm-gallery .bm-skeleton {
    background: var(--bm-mist, #E6EDF2);
}
.bm-gallery .bm-skeleton::after {
    background: linear-gradient(90deg, transparent, rgba(11, 30, 51, 0.08), transparent);
}

/* Mini-admin operatora */
.bm-operator-nav {
    background: #fff;
    border: 1px solid var(--bm-line, #E0E0E0);
    border-radius: 12px;
    padding: 1rem 0;
    position: sticky;
    top: 90px;
}
.bm-operator-nav__header { padding: 0 1rem 1rem; border-bottom: 1px solid var(--bm-line, #E0E0E0); margin-bottom: .5rem; }
.bm-operator-nav__item {
    display: flex; align-items: center; gap: .65rem;
    padding: .55rem 1rem;
    color: var(--bm-navy, #0E2A47);
    text-decoration: none;
    font-size: .92rem;
    border-left: 3px solid transparent;
}
.bm-operator-nav__item:hover { background: #E8EFF6; color: var(--bm-copper, #1C5C7A); }
.bm-operator-nav__item.active { background: #E8EFF6; color: var(--bm-copper, #1C5C7A); border-left-color: var(--bm-copper, #1C5C7A); font-weight: 600; }

.bm-stat-card { background: #fff; border: 1px solid var(--bm-line, #E0E0E0); border-radius: 12px; padding: 1.25rem; }
.bm-stat-card__label { color: var(--bm-muted, #6c757d); font-size: .85rem; margin-bottom: .5rem; }
.bm-stat-card__label i { color: var(--bm-copper, #C97A4A); margin-right: .35rem; }
.bm-stat-card__value { font-family: var(--bs-font-serif, Georgia, serif); font-size: 2rem; font-weight: 600; color: var(--bm-navy, #0E2A47); }
.bm-stat-card__link { font-size: .85rem; display: inline-block; margin-top: .25rem; }

.bm-admin-table thead th { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: var(--bm-muted, #6c757d); border-bottom: 2px solid var(--bm-line, #E0E0E0); }
.bm-admin-table td { vertical-align: middle; }
.bm-tag--pending, .bm-tag--created { background: #FFF3CD; color: #856404; }
.bm-tag--confirmed, .bm-tag--contractsent, .bm-tag--contractsigned { background: #D1ECF1; color: #0C5460; }
.bm-tag--paid, .bm-tag--active { background: #D4EDDA; color: #155724; }
.bm-tag--closed, .bm-tag--retired { background: #E2E3E5; color: #383D41; }
.bm-tag--cancelled, .bm-tag--draft { background: #F8D7DA; color: #721C24; }

/* Mobiscroll — zajęte dni (gradient połówek dnia w stylu BielakCzartery) */
.mbsc-datepicker .mbsc-ltr.bm-check-in:not(.mbsc-calendar-day-empty) {
    background: linear-gradient(to left top, #46c4f3 50%, transparent 50%) no-repeat !important;
}
.mbsc-datepicker .mbsc-ltr.bm-check-out:not(.mbsc-calendar-day-empty) {
    background: linear-gradient(to left top, transparent 50%, #46c4f3 50%) no-repeat !important;
}
.mbsc-datepicker .mbsc-ltr.bm-check-out:not(.mbsc-calendar-day-empty) {
    border-color: #46c4f3 !important;
}

/* Galeria — pozioma taśma pod głównym gridem (gdy zdjęć więcej niż 5) */
.bm-gallery__strip { display: flex; gap: .5rem; overflow-x: auto; padding: .5rem 0 .25rem; scrollbar-width: thin; }
.bm-gallery__strip img { height: 90px; width: auto; object-fit: cover; border-radius: 8px; cursor: pointer; flex-shrink: 0; transition: opacity .15s; }
.bm-gallery__strip img:hover { opacity: .85; }

/* Specyfikacja techniczna — definition list */
.bm-tech-specs dt { color: var(--bm-muted); font-size: .9rem; }
.bm-tech-specs dd { color: var(--bm-navy); font-weight: 500; }

/* ============== Booking sidebar ============== */
.bm-booking-card { position: sticky; top: 90px; background: #fff; border: 1px solid var(--bm-line); border-radius: 14px; padding: 1.5rem; box-shadow: 0 12px 32px rgba(14,42,71,.06); }
.bm-panel-box { background: #fff; border: 1px solid var(--bm-line); border-radius: 12px; padding: 1.25rem 1.5rem; }
.bm-booking-card__price { display: flex; align-items: baseline; gap: .5rem; margin-bottom: 1rem; }
.bm-booking-card__price-amt { color: var(--bm-copper); font-family: var(--bs-font-serif); font-weight: 700; font-size: 2rem; }
.bm-booking-card__price-unit { color: var(--bm-muted); font-size: .9rem; }

.bm-quote { background: var(--bm-cream); border-radius: 10px; padding: 1rem; }
.bm-quote-line { display: flex; justify-content: space-between; padding: .25rem 0; font-size: .9rem; }
.bm-quote-line.discount { color: #1f7a3a; }
.bm-quote-total { display: flex; justify-content: space-between; padding-top: .65rem; margin-top: .5rem; border-top: 1px solid var(--bm-line); font-weight: 700; color: var(--bm-navy); font-size: 1.1rem; }

/* ============== Calendar ============== */
.bm-calendar { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; background: var(--bm-line-2); border: 1px solid var(--bm-line); border-radius: 8px; overflow: hidden; }
.bm-calendar__head, .bm-calendar__day { background: #fff; padding: .5rem; text-align: center; font-size: .85rem; }
.bm-calendar__head { background: var(--bm-cream); font-weight: 600; color: var(--bm-muted); text-transform: uppercase; letter-spacing: .04em; font-size: .7rem; }
.bm-calendar__day.muted { color: var(--bm-line); background: #fafbfc; }
.bm-calendar__day.blocked { background: #f4d6d6; color: #884; cursor: not-allowed; text-decoration: line-through; }
.bm-calendar__day.selected { background: var(--bm-copper); color: #fff; font-weight: 600; }
.bm-calendar__day.range { background: rgba(201,122,74,.15); color: var(--bm-navy); }
.bm-calendar__day.today { box-shadow: inset 0 0 0 2px var(--bm-copper); }
.bm-calendar__day:not(.blocked):not(.muted) { cursor: pointer; }
.bm-calendar__day:not(.blocked):not(.muted):hover { background: var(--bm-mist); }
.bm-calendar__nav { display: flex; align-items: center; justify-content: space-between; margin-bottom: .75rem; }
.bm-calendar__nav strong { color: var(--bm-navy); font-family: var(--bs-font-serif); }

/* ============== Stepper (booking flow) ============== */
.bm-stepper { display: flex; gap: .75rem; margin-bottom: 2rem; }
.bm-stepper__item { flex: 1; padding: .9rem 1rem; background: var(--bm-cream); border-radius: 10px; border: 1px solid var(--bm-line); font-weight: 600; color: var(--bm-muted); display: flex; align-items: center; gap: .65rem; font-size: .9rem; }
.bm-stepper__item.active { background: var(--bm-navy); color: #fff; border-color: var(--bm-navy); }
.bm-stepper__item.done { background: #fff; border-color: var(--bm-copper); color: var(--bm-copper); }
.bm-stepper__num { width: 1.7rem; height: 1.7rem; border-radius: 999px; background: rgba(255,255,255,.18); color: inherit; display: flex; align-items: center; justify-content: center; font-size: .85rem; flex-shrink: 0; }
.bm-stepper__item:not(.active) .bm-stepper__num { background: #fff; color: var(--bm-muted); border: 1px solid var(--bm-line); }
.bm-stepper__item.done .bm-stepper__num { background: var(--bm-copper); color: #fff; border-color: var(--bm-copper); }

/* ============== Buttons ============== */
.btn-primary { --bs-btn-bg: var(--bm-copper); --bs-btn-border-color: var(--bm-copper); --bs-btn-hover-bg: #B96A3D; --bs-btn-hover-border-color: #B96A3D; --bs-btn-active-bg: var(--bm-copper-d); --bs-btn-active-border-color: var(--bm-copper-d); }
.btn-outline-primary { --bs-btn-color: var(--bm-copper); --bs-btn-border-color: var(--bm-copper); --bs-btn-hover-bg: var(--bm-copper); --bs-btn-hover-border-color: var(--bm-copper); }
.btn-navy { background: var(--bm-navy); color: #fff; border: 0; }
.btn-navy:hover { background: var(--bm-navy-2); color: #fff; }

/* ============== Footer ============== */
.bm-footer { background: var(--bm-navy); color: rgba(255,255,255,.78); }
.bm-footer h6 { color: #fff; font-family: var(--bs-font-sans-serif); text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; font-weight: 700; margin-bottom: .9rem; }
.bm-footer a { color: rgba(255,255,255,.78); text-decoration: none; }
.bm-footer a:hover { color: var(--bm-copper); }
.bm-footer__contact a { color: rgba(255,255,255,.85); }

/* ============== Misc ============== */
.bm-pill-toolbar { display: flex; flex-wrap: wrap; gap: .5rem; }
.bm-pill { display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .9rem; border-radius: 999px; border: 1px solid var(--bm-line); font-size: .85rem; color: var(--bm-text); background: #fff; text-decoration: none; cursor: pointer; }
.bm-pill:hover { border-color: var(--bm-copper); color: var(--bm-copper); }
.bm-pill.active { background: var(--bm-navy); border-color: var(--bm-navy); color: #fff; }

.bm-empty { background: var(--bm-cream); border: 1px dashed var(--bm-line); border-radius: 14px; padding: 3rem; text-align: center; color: var(--bm-muted); }
