/* goMalediwy.pl - spójne panele treści / UX 2026-10-10
 * Ładowany bezpośrednio w blog.tpl i obiekty.tpl, aby nie nadpisywać
 * aktualnych zmian homepage ani wymagać zmiany globalnego index.tpl.
 */
:root {
  --gm-page-bg: #f4f6f8;
  --gm-panel-bg: #fff;
  --gm-panel-border: #dfe6eb;
  --gm-panel-radius: 13px;
  --gm-panel-shadow: 0 6px 20px rgba(26, 55, 76, .045);
  --gm-panel-pad: 22px;
  --gm-panel-gap: 16px;
  --gm-title: #15344b;
  --gm-copy: #526575;
}

/* ===================== PORADNIKI + KATEGORIE ===================== */
.category-page {
  padding: 18px 0 30px !important;
  background: var(--gm-page-bg);
}
.category-page > .container {
  max-width: 1200px;
}
.category-header,
.category-directory,
.category-results,
.category-seo-content,
.category-empty {
  width: 100%;
  max-width: none !important;
  box-sizing: border-box;
  margin: 0 0 var(--gm-panel-gap) !important;
  padding: var(--gm-panel-pad) !important;
  border: 1px solid var(--gm-panel-border) !important;
  border-radius: var(--gm-panel-radius) !important;
  background: var(--gm-panel-bg) !important;
  box-shadow: var(--gm-panel-shadow) !important;
}
.category-header h1 {
  font-size: 31px !important;
  line-height: 1.18 !important;
  letter-spacing: -.02em !important;
}
.category-header__description {
  max-width: 920px;
  margin-top: 8px !important;
  font-size: 15.5px !important;
  line-height: 1.58 !important;
}
.category-directory > h2,
.category-results__heading h2,
.category-seo-content h2 {
  color: var(--gm-title);
  font-size: 23px !important;
  line-height: 1.28 !important;
  font-weight: 500;
  letter-spacing: -.012em;
}
.category-directory > h2 {
  margin: 0 0 12px !important;
}
.category-directory__grid {
  gap: 14px !important;
}
.category-directory__group {
  padding: 15px;
  border: 1px solid #e8edf1;
  border-radius: 10px;
  background: #f8fafb;
}
.category-directory__group h3 {
  margin: 0 0 9px !important;
  font-size: 15px !important;
}
.category-results__heading {
  margin: 0 0 14px !important;
  padding-bottom: 10px !important;
}
.category-card-grid {
  gap: 18px !important;
}
.category-pagination {
  margin-top: 18px !important;
}
.category-seo-content {
  margin-bottom: 0 !important;
}
.category-seo-content > h2 {
  margin: 0 0 10px !important;
}
.category-seo-content__body {
  max-width: 980px;
  color: var(--gm-copy);
  font-size: 15.5px;
  line-height: 1.68;
  font-weight: 300;
}
.category-seo-content__body p {
  margin: 0 0 11px;
}
.category-seo-content__body h2 {
  margin: 17px 0 8px !important;
}
.category-seo-content__body h3 {
  margin: 14px 0 7px !important;
  font-size: 19px !important;
}

/* ===================== HOTELE / REGIONY ===================== */
.hotel-listing-section {
  padding: 18px 0 30px !important;
  background: var(--gm-page-bg) !important;
}
.hotel-listing-section > .container {
  max-width: 1200px;
}
.hotel-listing-intro,
.hotel-controls-panel,
.hotel-results-panel,
.hotel-destination-content {
  width: 100%;
  max-width: none !important;
  box-sizing: border-box;
  margin: 0 0 var(--gm-panel-gap) !important;
  padding: var(--gm-panel-pad) !important;
  border: 1px solid var(--gm-panel-border) !important;
  border-radius: var(--gm-panel-radius) !important;
  background: var(--gm-panel-bg) !important;
  box-shadow: var(--gm-panel-shadow) !important;
  text-align: left;
}
.hotel-listing-intro h1,
.hotel-destination-heading h1 {
  margin: 0 0 8px !important;
  font-size: 31px !important;
  line-height: 1.18 !important;
  letter-spacing: -.02em !important;
}
.hotel-listing-intro__text,
.hotel-destination-heading__text {
  max-width: 940px;
  font-size: 15.5px !important;
  line-height: 1.6 !important;
}
.hotel-listing-intro__text p,
.hotel-destination-heading__text p {
  margin: 0 0 7px !important;
}
.hotel-listing-note {
  margin-top: 10px !important;
}
.hotel-guide-links {
  margin-top: 10px !important;
}
.hotel-controls-panel {
  padding-bottom: 18px !important;
}
.hotel-search-box {
  max-width: 760px !important;
  margin: 0 0 15px !important;
}
.hotel-region-nav {
  justify-content: flex-start !important;
  margin: 0 0 13px !important;
}
.hotel-subregion-filter,
.hotel-type-filter {
  width: 100%;
  max-width: none !important;
  box-sizing: border-box;
  margin: 10px 0 0 !important;
  box-shadow: none !important;
}
.hotel-type-filter {
  padding: 13px 14px !important;
}
.hotel-results-panel {
  margin-bottom: var(--gm-panel-gap) !important;
}
.hotel-listing-heading {
  margin: 0 0 14px !important;
  padding-bottom: 10px !important;
}
.hotel-listing-heading h2,
.hotel-destination-content h2 {
  margin: 0 !important;
  color: var(--gm-title);
  font-size: 23px !important;
  line-height: 1.28 !important;
  font-weight: 500;
}
.hotel-card-grid {
  gap: 18px !important;
}
.hotel-list-card,
.hotel-list-card__media,
.hotel-list-card__media img {
  margin-top: 0 !important;
}
.hotel-list-card__media img {
  display: block !important;
}
.hotel-pagination {
  margin-top: 18px !important;
}
.hotel-destination-content {
  margin-bottom: 0 !important;
}
.hotel-destination-content + .hotel-destination-content {
  margin-top: var(--gm-panel-gap) !important;
}
.hotel-destination-content > h2 {
  margin-bottom: 10px !important;
}
.hotel-destination-content__body {
  max-width: 980px;
  color: var(--gm-copy);
  font-size: 15.5px;
  line-height: 1.68;
  font-weight: 300;
}
.hotel-destination-content__body p {
  margin: 0 0 11px;
}
.hotel-destination-content__body h2 {
  margin: 17px 0 8px !important;
  font-size: 23px !important;
  line-height: 1.28 !important;
}
.hotel-destination-content__body h3 {
  margin: 14px 0 7px !important;
  font-size: 19px !important;
}

/* ===================== POJEDYNCZY ARTYKUŁ ===================== */
.article-page-section {
  padding: 18px 0 30px !important;
  background: var(--gm-page-bg);
}
.article-page-section .post-creative,
.article-page-section .article-trip-box,
.article-page-section .article-related {
  box-sizing: border-box;
  margin-bottom: var(--gm-panel-gap) !important;
  padding: var(--gm-panel-pad) !important;
  border: 1px solid var(--gm-panel-border) !important;
  border-radius: var(--gm-panel-radius) !important;
  background: var(--gm-panel-bg) !important;
  box-shadow: var(--gm-panel-shadow) !important;
}
.article-page-section .post-creative-title {
  font-size: 31px !important;
  line-height: 1.18 !important;
}
.article-page-section #tresc h2 {
  margin: 17px 0 9px !important;
  padding-top: 0 !important;
  font-size: 24px !important;
  line-height: 1.28 !important;
}
.article-page-section #tresc h3 {
  margin: 14px 0 7px !important;
  font-size: 19px !important;
}
.article-page-section #tresc h4,
.article-page-section #tresc .heading-4 {
  margin: 13px 0 6px !important;
}
.article-page-section .article-related {
  margin-top: 0 !important;
  padding-top: var(--gm-panel-pad) !important;
  border-top: 1px solid var(--gm-panel-border) !important;
}
.article-related__title,
.article-trip-box h2 {
  margin: 0 0 14px !important;
  font-size: 23px !important;
  line-height: 1.28 !important;
}
.article-page-section .article-toc-host .article-toc-nav {
  border: 1px solid var(--gm-panel-border);
  border-radius: var(--gm-panel-radius);
  background: #fff;
  box-shadow: var(--gm-panel-shadow);
}

/* ===================== POJEDYNCZY HOTEL ===================== */
.hotel-detail-section {
  padding: 18px 0 30px !important;
  background: var(--gm-page-bg);
}
.hotel-detail-head,
.hotel-gallery,
.hotel-description,
.hotel-editorial-note,
.hotel-offers-section,
.hotel-lastminute-links,
.hotel-related-section,
.hotel-comparisons-section {
  width: 100%;
  max-width: none !important;
  box-sizing: border-box;
  margin: 0 0 var(--gm-panel-gap) !important;
  padding: var(--gm-panel-pad) !important;
  border: 1px solid var(--gm-panel-border) !important;
  border-radius: var(--gm-panel-radius) !important;
  background: var(--gm-panel-bg) !important;
  box-shadow: var(--gm-panel-shadow) !important;
}
.hotel-detail-head {
  margin-bottom: var(--gm-panel-gap) !important;
}
.hotel-detail-title {
  max-width: none !important;
  font-size: 32px !important;
  line-height: 1.16 !important;
}
.hotel-detail .hotel-rating-box,
.hotel-detail .hotel-top-bar,
.hotel-short-description {
  box-shadow: none !important;
}
.hotel-gallery {
  grid-template-rows: repeat(2, 168px) !important;
  gap: 9px !important;
}
.hotel-description {
  color: #354858 !important;
  font-size: 16.5px !important;
  line-height: 1.7 !important;
}
.hotel-description h2 {
  margin: 17px 0 9px !important;
  font-size: 24px !important;
  line-height: 1.28 !important;
}
.hotel-description h3 {
  margin: 14px 0 7px !important;
  font-size: 19px !important;
}
.hotel-description h4,
.hotel-description .heading-4 {
  margin: 13px 0 6px !important;
}
.hotel-editorial-note {
  color: #5f6e79;
  font-size: 13px;
  line-height: 1.55;
  border-left: 3px solid #c9d4dc !important;
  background: #fafbfc !important;
  box-shadow: none !important;
}
.hotel-offers-section {
  margin-top: 0 !important;
}
.hotel-offers-header h2,
.hotel-related-heading h2,
.hotel-comparisons-heading h2 {
  margin: 0 0 7px !important;
  font-size: 23px !important;
  line-height: 1.28 !important;
}
.hotel-related-section {
  margin-top: 0 !important;
  padding-top: var(--gm-panel-pad) !important;
  border-top: 1px solid var(--gm-panel-border) !important;
}
.hotel-related-card__image,
.hotel-related-card__image img {
  margin-top: 0 !important;
}

@media (max-width: 991.98px) {
  :root { --gm-panel-pad: 19px; --gm-panel-gap: 14px; }
  .category-header h1,
  .hotel-listing-intro h1,
  .hotel-destination-heading h1,
  .article-page-section .post-creative-title,
  .hotel-detail-title {
    font-size: 28px !important;
  }
  .hotel-gallery {
    grid-template-rows: repeat(2, 145px) !important;
  }
}

@media (max-width: 767.98px) {
  :root { --gm-panel-pad: 16px; --gm-panel-gap: 12px; --gm-panel-radius: 10px; }
  .category-page,
  .hotel-listing-section,
  .article-page-section,
  .hotel-detail-section {
    padding: 12px 0 22px !important;
  }
  .category-header h1,
  .hotel-listing-intro h1,
  .hotel-destination-heading h1,
  .article-page-section .post-creative-title,
  .hotel-detail-title {
    font-size: 26px !important;
    line-height: 1.18 !important;
  }
  .category-directory__grid {
    grid-template-columns: 1fr !important;
  }
  .category-directory > h2,
  .category-results__heading h2,
  .category-seo-content h2,
  .hotel-listing-heading h2,
  .hotel-destination-content h2,
  .article-page-section #tresc h2,
  .article-related__title,
  .article-trip-box h2,
  .hotel-description h2,
  .hotel-offers-header h2,
  .hotel-related-heading h2,
  .hotel-comparisons-heading h2 {
    font-size: 21px !important;
  }
  .category-results__heading,
  .hotel-listing-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px !important;
  }
  .hotel-region-nav {
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  .hotel-type-filter {
    margin-right: 0 !important;
    margin-left: 0 !important;
    border-right: 1px solid #e5eaee !important;
    border-left: 1px solid #e5eaee !important;
    border-radius: 10px !important;
  }
  .hotel-gallery {
    padding: 8px !important;
    grid-template-rows: auto !important;
  }
  .hotel-description,
  .article-page-section #tresc {
    font-size: 16px !important;
  }
}


/* ===================== FINALNE DOSTROJENIE SZEROKOSCI + LAST MINUTE ===================== */
.category-page > .container,
.hotel-listing-section > .container,
.article-page-section > .container,
.hotel-detail-section > .container,
.hotel-detail-container,
.last-minute-page > .container {
  width: 100%;
  max-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Powiazane/podobne hotele: obraz ma wypelniac caly slot bez pustych pasow. */
.hotel-related-card__image {
  position: relative !important;
  display: block !important;
  overflow: hidden !important;
  aspect-ratio: 16 / 9 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #eef2f5;
  line-height: 0 !important;
}
.hotel-related-card__image img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center center !important;
}

/* Last Minute: jeden rytm, jedna szerokosc i osobne panele. */
.last-minute-page {
  padding: 18px 0 30px !important;
  background: var(--gm-page-bg) !important;
}
.last-minute-hero,
.last-minute-seo-links,
.last-minute-filter-context,
.last-minute-filters,
.last-minute-results-panel,
.last-minute-seo-content {
  width: 100%;
  max-width: 1080px !important;
  box-sizing: border-box;
  margin-left: auto !important;
  margin-right: auto !important;
}
.last-minute-hero,
.last-minute-results-panel,
.last-minute-seo-content {
  padding: var(--gm-panel-pad) !important;
  border: 1px solid var(--gm-panel-border) !important;
  border-radius: var(--gm-panel-radius) !important;
  background: var(--gm-panel-bg) !important;
  box-shadow: var(--gm-panel-shadow) !important;
}
.last-minute-hero {
  margin-bottom: var(--gm-panel-gap) !important;
  text-align: left !important;
}
.last-minute-hero h1 {
  margin: 0 0 8px !important;
  color: var(--gm-title);
  font-size: 31px !important;
  line-height: 1.18 !important;
  letter-spacing: -.02em !important;
}
.last-minute-intro {
  max-width: 900px !important;
  margin: 0 !important;
  font-size: 15.5px !important;
  line-height: 1.62 !important;
}
.last-minute-updated {
  margin-top: 9px !important;
}
.last-minute-seo-links {
  margin-bottom: var(--gm-panel-gap) !important;
  padding: var(--gm-panel-pad) !important;
  border-color: var(--gm-panel-border) !important;
  border-radius: var(--gm-panel-radius) !important;
  box-shadow: var(--gm-panel-shadow) !important;
}
.last-minute-seo-links__head h2,
.last-minute-results-head h2,
.last-minute-seo-content__body h2 {
  color: var(--gm-title) !important;
  font-size: 23px !important;
  line-height: 1.28 !important;
}
.last-minute-filter-context {
  margin-bottom: 10px !important;
}
.last-minute-filters,
.last-minute-filters--departure-landing {
  max-width: 1080px !important;
  margin-bottom: var(--gm-panel-gap) !important;
  border-color: var(--gm-panel-border) !important;
  border-radius: var(--gm-panel-radius) !important;
  box-shadow: var(--gm-panel-shadow) !important;
}
.last-minute-results-panel {
  margin-bottom: var(--gm-panel-gap) !important;
}
.last-minute-results-head {
  max-width: none !important;
  margin: 0 0 14px !important;
}
.last-minute-list {
  max-width: none !important;
  margin: 0 !important;
}
.last-minute-pagination {
  margin: 18px 0 0 !important;
}
.last-minute-results-panel .hotel-listing-empty {
  margin: 0 !important;
}
.last-minute-seo-content {
  margin-top: 0 !important;
  padding-top: var(--gm-panel-pad) !important;
  border-top: 1px solid var(--gm-panel-border) !important;
}
.last-minute-seo-content__body {
  max-width: 980px;
  font-size: 15.5px !important;
  line-height: 1.68 !important;
}
.last-minute-seo-content__body h2 {
  margin: 17px 0 8px !important;
}
.last-minute-seo-content__body h2:first-child {
  margin-top: 0 !important;
}

@media (max-width: 767.98px) {
  .last-minute-hero,
  .last-minute-seo-links,
  .last-minute-results-panel,
  .last-minute-seo-content {
    padding: 16px !important;
  }
  .last-minute-hero h1 {
    font-size: 26px !important;
  }
}
