/*
 * goFuerteventura.pl / UX refresh 2026-10-10
 * Nakladka na istniejace style. Nie zmienia routingu, Smarty ani skladow SQL.
 * Jeden rytm szerokosci, mniejsza typografia, sekcje w obramowanych panelach.
 */
.page {
  --ux-ink: #19364a;
  --ux-muted: #596e7c;
  --ux-border: #e1e8ee;
  --ux-paper: #fff;
  --ux-backdrop: #f5f7f9;
  --ux-radius: 15px;
  --ux-shadow: 0 5px 17px rgba(23, 53, 76, .04);
}

/* Wspolna typografia - zachowuje lekki, redakcyjny charakter leadow. */
.home-page h1,
.category-page h1,
.hotel-listing-section h1,
.last-minute-page h1,
.hotel-detail-section h1,
.article-page-section h1 { font-weight: 500; letter-spacing: -.025em; }

.home-page h2,
.category-page h2,
.hotel-listing-section h2,
.last-minute-page h2,
.hotel-detail-section h2,
.article-page-section h2 { font-weight: 500; letter-spacing: -.015em; }

/* FRONT PAGE: karty sekcji sa zawsze wzgledem tej samej siatki .container. */
.home-page { background: var(--ux-backdrop); }
.home-page .home-hero {
  padding: 13px 0 6px;
  background: transparent;
  border: 0;
}
.home-page .home-hero > .container {
  padding: 26px 28px;
  background: linear-gradient(115deg, #fff, #f9fbfc);
  border: 1px solid var(--ux-border);
  border-radius: var(--ux-radius);
  box-shadow: var(--ux-shadow);
}
.home-page .home-hero__copy { max-width: 1060px; }
.home-page .home-hero h1 {
  font-size: clamp(27px, 2.6vw, 34px);
  line-height: 1.19;
}
.home-page .home-hero__lead {
  max-width: 870px;
  margin: 8px auto 0;
  font-size: 15px;
  line-height: 1.55;
  font-weight: 300;
}
.home-page .home-section,
.home-page .home-section.home-section--soft {
  padding: 6px 0;
  background: transparent;
  border: 0;
}
.home-page .home-section > .container {
  padding: 21px 25px 23px;
  background: var(--ux-paper);
  border: 1px solid var(--ux-border);
  border-radius: var(--ux-radius);
  box-shadow: var(--ux-shadow);
}
.home-page .home-section__header {
  max-width: 970px;
  margin: 0 auto 14px;
  text-align: left;
}
.home-page .home-section__header h2 {
  margin: 0;
  font-size: clamp(22px, 2.25vw, 27px);
  line-height: 1.25;
  font-weight: 500;
}
.home-page .home-section__header p {
  margin: 5px 0 0;
  font-size: 14.5px;
  line-height: 1.52;
}
.home-page .home-section__actions { margin-top: 15px; }
.home-page .home-section .row.row-20 { align-items: stretch; }
.home-page .home-region-grid > [class*="col-"],
.home-page .home-last-minute-grid > [class*="col-"] { display: flex; min-width: 0; }
.home-page .home-region-tile,
.home-page .home-last-minute-card { width: 100%; min-width: 0; }

/* Na gorze, od razu pod hero, rzeczywiste oferty Last Minute. */
.home-page .home-last-minute-section > .container {
  border-color: #efdcc7;
  background: linear-gradient(145deg, #fffaf4, #fff);
}
.home-last-minute-kicker {
  display: inline-block;
  margin-bottom: 5px;
  color: #af5f13;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.home-page .home-last-minute-card { display: flex; flex-direction: column; }
.home-page .home-last-minute-card__media { margin: 0; }
.home-page .home-last-minute-card__media img { margin: 0 !important; object-fit: cover; }
.home-page .home-last-minute-card__body { flex: 1; min-height: 0; padding: 14px 15px 15px; }
.home-page .home-last-minute-card__meta { font-size: 11px; font-weight: 500; }
.home-page .home-last-minute-card h3 { font-size: 18px; font-weight: 500; }
.home-page .home-last-minute-card__details { margin-top: 8px; }
.home-page .home-last-minute-card__price { font-size: 19px; font-weight: 600; }
.home-page .home-last-minute-card__cta { font-weight: 500; }
.home-page .home-last-minute-actions { margin-top: 14px; text-align: right; }
.home-last-minute-empty {
  padding: 16px 18px;
  border: 1px solid #f0d4b5;
  background: #fffaf5;
  border-radius: 10px;
  color: #5e4a37;
  font-size: 14px;
  line-height: 1.6;
}

.home-last-minute-all {
  display: inline-flex;
  align-items: center;
  padding: 3px 1px;
  color: #b65b08;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.45;
  text-decoration: none;
}
.home-last-minute-all:hover,
.home-last-minute-all:focus { color: #793b00; text-decoration: underline; }
.home-page .home-card-media,
.home-page .home-region-tile__media { margin: 0; }
.home-page .home-card-media img,
.home-page .home-region-tile__media img { margin-top: 0 !important; display: block; object-fit: cover; }

/* Navigation sales entry - uses existing RD navbar layout, no additional JS. */
.rd-navbar-static .gokenia-nav-lastminute > a.gokenia-nav-lastminute__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 14px;
  margin-bottom: 14px;
  padding: 9px 14px;
  border: 1px solid #f2bd83;
  border-radius: 9px;
  background: #fff3e6;
  color: #a65207;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.25;
}
.rd-navbar-static .gokenia-nav-lastminute > a.gokenia-nav-lastminute__link::before { content: "✈"; font-size: 16px; }
.rd-navbar-static .gokenia-nav-lastminute > a.gokenia-nav-lastminute__link::after { display: none; }
.rd-navbar-static .gokenia-nav-lastminute > a.gokenia-nav-lastminute__link:hover,
.rd-navbar-static .gokenia-nav-lastminute > a.gokenia-nav-lastminute__link:focus {
  background: #f9e6d0;
  border-color: #df9851;
  color: #783e0b;
}
.rd-navbar-fixed .gokenia-nav-lastminute > a.gokenia-nav-lastminute__link {
  background: #fff3e6;
  color: #ad580b;
  font-weight: 600;
}
.rd-navbar-fixed .gokenia-nav-lastminute > a.gokenia-nav-lastminute__link::before { content: "✈  "; }
.footer-lastminute-group h5 > a { color: #fff; font-size: inherit; font-weight: inherit; }
.footer-lastminute-group h5 > a:hover { color: #ffddae; }

/* Poradniki, kategorie i katalog hoteli - jedna szerokosc i jedna struktura. */
.category-page,
.hotel-listing-section,
.last-minute-page,
.hotel-detail-section,
.article-page-section { background: var(--ux-backdrop); }
.category-page,
.hotel-listing-section,
.last-minute-page { padding: 16px 0 34px; }
.category-page > .container,
.hotel-listing-section > .container,
.last-minute-page > .container,
.hotel-detail-section > .container { max-width: 1200px; }

.category-page .category-header,
.category-page .category-directory,
.category-page .category-results,
.category-page .category-empty,
.category-page .ux-seo-bottom,
.hotel-listing-section .hotel-listing-intro,
.hotel-listing-section .hotel-search-box,
.hotel-listing-section .hotel-region-nav,
.hotel-listing-section .hotel-subregion-filter,
.hotel-listing-section .hotel-type-filter,
.hotel-listing-section .hotel-results-panel,
.hotel-listing-section .ux-seo-bottom,
.last-minute-page .last-minute-hero,
.last-minute-page .last-minute-filters,
.last-minute-page .last-minute-results-panel,
.last-minute-page .last-minute-seo-content {
  max-width: none;
  width: 100%;
  margin: 0 0 12px;
  padding: 20px 23px;
  border: 1px solid var(--ux-border);
  border-radius: var(--ux-radius);
  background: var(--ux-paper);
  box-shadow: var(--ux-shadow);
}

.category-page .category-header h1,
.hotel-listing-section .hotel-listing-intro h1,
.hotel-listing-section .hotel-destination-heading h1,
.last-minute-page .last-minute-hero h1 {
  max-width: none;
  margin: 0;
  font-size: clamp(25px, 2.6vw, 32px);
  line-height: 1.22;
  font-weight: 500;
}
.category-page .category-header__description,
.hotel-listing-section .hotel-listing-intro__text,
.hotel-listing-section .hotel-destination-heading > p,
.last-minute-page .last-minute-intro {
  max-width: none;
  margin-top: 8px;
  color: var(--ux-muted);
  font-size: 15px;
  line-height: 1.6;
  font-weight: 300;
}
.category-page .category-header__description p,
.hotel-listing-section .hotel-listing-intro__text p,
.hotel-listing-section .hotel-destination-heading > p { margin-bottom: 0; }
.category-page .category-header__back { margin-bottom: 8px; }
.category-page .category-directory { background: #fff; }
.category-page .category-directory > h2,
.category-page .category-results__heading h2,
.hotel-listing-section .hotel-listing-heading h2,
.last-minute-page .last-minute-results-head h2 {
  margin: 0;
  font-size: clamp(20px, 2vw, 24px);
  line-height: 1.28;
  font-weight: 500;
}
.category-page .category-directory__grid { gap: 15px; }
.category-page .category-directory__group h3 { font-size: 14px; }
.category-page .category-results { margin-top: 0; }
.category-page .category-results__heading { margin-bottom: 15px; }
.category-page .category-card-grid { gap: 15px; }
.category-page .category-card__media,
.hotel-listing-section .hotel-list-card__media { display: block; margin: 0; padding: 0; aspect-ratio: 16 / 10; overflow: hidden; }
.category-page .category-card__media img,
.hotel-listing-section .hotel-list-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0 !important;
  padding: 0;
  object-fit: cover;
  object-position: center;
}

/* Regiony, podregiony i typy hoteli: panele w tej samej siatce co wyniki. */
.hotel-listing-section .hotel-destination-heading {
  max-width: none;
  margin: 0;
  text-align: left;
}
.hotel-listing-section .hotel-destination-heading__kicker { margin-bottom: 7px; }
.hotel-listing-section .hotel-listing-note { margin-top: 12px; }
.hotel-listing-section .hotel-guide-links { margin-top: 12px; }
.hotel-listing-section .hotel-search-box { max-width: none; }
.hotel-listing-section .hotel-search-box__field { max-width: 780px; }
.hotel-listing-section .hotel-region-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: 8px;
}
.hotel-listing-section .hotel-subregion-filter,
.hotel-listing-section .hotel-type-filter { max-width: none; }
.hotel-listing-section .hotel-subregion-filter__items,
.hotel-listing-section .hotel-type-filter__items { gap: 7px; }
.hotel-listing-section .hotel-results-panel { display: block; }
.hotel-listing-section .hotel-listing-heading { margin: 0 0 15px; }
.hotel-listing-section .hotel-card-grid { gap: 15px; }
.hotel-listing-section .hotel-list-card { min-width: 0; }
.hotel-listing-section .hotel-list-card__body { padding: 13px 15px 14px; }
.hotel-listing-section .hotel-pagination { margin-top: 20px; }

/* SEO ponizej list, a nie kilkaset slow ponad listingiem. */
.category-page .ux-seo-bottom,
.hotel-listing-section .ux-seo-bottom {
  margin-top: 12px;
  margin-bottom: 0;
}
.ux-seo-bottom > h2,
.hotel-listing-section .hotel-destination-content > h2 {
  margin: 0 0 12px;
  padding: 0;
  color: var(--ux-ink);
  font-size: clamp(21px, 2.1vw, 25px);
  font-weight: 500;
  line-height: 1.3;
}
.ux-seo-bottom__body,
.hotel-listing-section .hotel-destination-content__body {
  max-width: 100%;
  color: #435a69;
  font-size: 15.5px;
  font-weight: 300;
  line-height: 1.74;
}
.ux-seo-bottom__body > :first-child,
.hotel-destination-content__body > :first-child { margin-top: 0; }
.ux-seo-bottom__body > :last-child,
.hotel-destination-content__body > :last-child { margin-bottom: 0; }
.ux-seo-bottom__body h2,
.hotel-destination-content__body h2 { margin: 17px 0 8px; font-size: 22px; font-weight: 500; }
.ux-seo-bottom__body h3,
.hotel-destination-content__body h3 { margin: 14px 0 7px; font-size: 18px; font-weight: 500; }

/* Last Minute to osobna strona, ale ten sam jezyk kart i szerokosci. */
.last-minute-page .last-minute-hero { text-align: left; }
.last-minute-page .last-minute-intro { margin: 9px 0 0; }
.last-minute-page .last-minute-updated { margin: 9px 0 0; }
.last-minute-page .last-minute-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
  gap: 12px;
  align-items: end;
}
.last-minute-page .last-minute-results-head { margin: 0 0 14px; }
.last-minute-page .last-minute-list { gap: 12px; }
.last-minute-page .last-minute-card__media,
.last-minute-page .last-minute-card__media img { margin: 0 !important; padding: 0; }
.last-minute-page .last-minute-card__media img { display: block; object-fit: cover; }
.last-minute-page .last-minute-pagination { margin-top: 17px; }
.last-minute-page .last-minute-seo-content { margin-top: 12px; }
.last-minute-page .last-minute-seo-content__body h2 { margin: 17px 0 8px; font-size: 22px; }
.last-minute-page .last-minute-seo-content__body h2:first-child { margin-top: 0; }

/* Karta hotelu: kazdy blok merytoryczny ma ramke, te same krawedzie. */
.hotel-detail-section { padding: 14px 0 34px; }
.hotel-detail-section .hotel-detail-container { max-width: 1200px; }
.hotel-detail-section .hotel-detail-head,
.hotel-detail-section .hotel-gallery,
.hotel-detail-section .hotel-description,
.hotel-detail-section .hotel-offers-section,
.hotel-detail-section .hotel-lastminute-links,
.hotel-detail-section .hotel-comparisons-section,
.hotel-detail-section .hotel-related-section {
  max-width: none;
  width: 100%;
  margin: 0 0 12px;
  padding: 20px 23px;
  border: 1px solid var(--ux-border);
  border-radius: var(--ux-radius);
  background: var(--ux-paper);
  box-shadow: var(--ux-shadow);
}
.hotel-detail-section .hotel-detail-title {
  max-width: none;
  font-size: clamp(26px, 2.65vw, 34px);
  line-height: 1.2;
  font-weight: 500;
}
.hotel-detail-section .hotel-detail-head { text-align: left; }
.hotel-detail-section .hotel-detail-head > :last-child { margin-bottom: 0; }
.hotel-detail-section .hotel-gallery { gap: 9px; }
.hotel-detail-section .hotel-gallery__item img { margin: 0 !important; object-fit: cover; }
.hotel-detail-section .hotel-description { font-size: 16px; line-height: 1.73; }
.hotel-detail-section .hotel-description h2 { margin: 17px 0 9px; font-size: 24px; }
.hotel-detail-section .hotel-description h3 { margin: 13px 0 7px; font-size: 19px; }
.hotel-detail-section .hotel-description h4 { margin: 12px 0 7px; font-size: 17px; }
.hotel-detail-section .hotel-description > :first-child { margin-top: 0; }
.hotel-detail-section .hotel-description > :last-child { margin-bottom: 0; }
.hotel-detail-section .hotel-offers-section h2,
.hotel-detail-section .hotel-comparisons-section h2,
.hotel-detail-section .hotel-related-section h2 { margin-top: 0; font-size: 24px; font-weight: 500; }
.hotel-detail-section .hotel-related-section { border-top: 1px solid var(--ux-border); }
.hotel-detail-section .hotel-related-grid { gap: 14px; }
.hotel-detail-section .hotel-related-card__image img { margin: 0 !important; object-fit: cover; }

/* Karta poradnika: osobny bialy panel z tekstem, powiazania i sidebar. */
.article-page-section { padding: 14px 0 34px; }
.article-page-section .post-creative,
.article-page-section .article-related,
.article-page-section .article-trip-box {
  max-width: none;
  width: 100%;
  margin: 0 0 12px;
  padding: 20px 23px;
  border: 1px solid var(--ux-border);
  border-radius: var(--ux-radius);
  background: var(--ux-paper);
  box-shadow: var(--ux-shadow);
}
.article-page-section .post-creative-title {
  font-size: clamp(26px, 2.7vw, 33px);
  font-weight: 500;
  line-height: 1.22;
}
.article-page-section #streszczenie { margin-bottom: 16px; }
.article-page-section .article-hero-image { margin-bottom: 15px; }
.article-page-section #tresc { font-size: 16px; line-height: 1.72; }
.article-page-section #tresc h2 { margin: 15px 0 9px; padding-top: 0; font-size: 24px; }
.article-page-section #tresc h3 { margin: 12px 0 7px; font-size: 19px; }
.article-page-section #tresc h4 { margin: 10px 0 6px; font-size: 17px; }
.article-page-section #tresc > :first-child { margin-top: 0; }
.article-page-section .article-related h2,
.article-page-section .article-trip-box h2 { margin: 0 0 13px; font-size: 23px; }
.article-page-section .article-related .row { margin-top: 0; }
.article-page-section .article-related .post-modern-media img { margin: 0 !important; object-fit: cover; }
.article-page-section .article-author-box { margin-top: 17px; }
.article-page-section .post-creative-footer { margin-top: 17px; }
.article-page-section .article-toc-nav { border: 1px solid var(--ux-border); background: #fff; box-shadow: var(--ux-shadow); }

@media (max-width: 1199.98px) {
  .rd-navbar-static .gokenia-nav-lastminute > a.gokenia-nav-lastminute__link { padding-right: 10px; padding-left: 10px; }
}
@media (max-width: 991.98px) {
  .home-page .home-hero > .container { padding: 22px; }
  .home-page .home-section > .container { padding: 19px 20px; }
  .last-minute-page .last-minute-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
  .home-page .home-hero { padding: 9px 0 5px; }
  .home-page .home-hero > .container { padding: 18px 17px; }
  .home-page .home-hero__copy { text-align: left; }
  .home-page .home-hero h1 { font-size: clamp(25px, 6.4vw, 30px); }
  .home-page .home-hero__lead { margin: 8px 0 0; font-size: 14.5px; }
  .home-page .home-section { padding: 5px 0; }
  .home-page .home-section > .container { padding: 16px; }
  .home-page .home-section__header h2 { font-size: 23px; }
  .home-page .home-last-minute-actions { text-align: left; }
  .category-page,
  .hotel-listing-section,
  .last-minute-page { padding: 11px 0 24px; }
  .category-page .category-header,
  .category-page .category-directory,
  .category-page .category-results,
  .category-page .ux-seo-bottom,
  .hotel-listing-section .hotel-listing-intro,
  .hotel-listing-section .hotel-search-box,
  .hotel-listing-section .hotel-region-nav,
  .hotel-listing-section .hotel-subregion-filter,
  .hotel-listing-section .hotel-type-filter,
  .hotel-listing-section .hotel-results-panel,
  .hotel-listing-section .ux-seo-bottom,
  .last-minute-page .last-minute-hero,
  .last-minute-page .last-minute-filters,
  .last-minute-page .last-minute-results-panel,
  .last-minute-page .last-minute-seo-content,
  .hotel-detail-section .hotel-detail-head,
  .hotel-detail-section .hotel-gallery,
  .hotel-detail-section .hotel-description,
  .hotel-detail-section .hotel-offers-section,
  .hotel-detail-section .hotel-lastminute-links,
  .hotel-detail-section .hotel-comparisons-section,
  .hotel-detail-section .hotel-related-section,
  .article-page-section .post-creative,
  .article-page-section .article-related,
  .article-page-section .article-trip-box { padding: 16px; border-radius: 12px; }
  .category-page .category-header h1,
  .hotel-listing-section .hotel-listing-intro h1,
  .hotel-listing-section .hotel-destination-heading h1,
  .last-minute-page .last-minute-hero h1 { font-size: 26px; }
  .category-page .category-card-grid,
  .hotel-listing-section .hotel-card-grid { gap: 13px; }
  .category-page .category-results__heading { gap: 6px; flex-wrap: wrap; }
  .hotel-listing-section .hotel-region-nav { justify-content: flex-start; }
  .last-minute-page .last-minute-filters { grid-template-columns: 1fr; }
  .last-minute-page .last-minute-results-head { flex-wrap: wrap; align-items: flex-start; }
  .article-page-section .post-creative-title,
  .hotel-detail-section .hotel-detail-title { font-size: 27px; }
  .hotel-detail-section .hotel-description h2,
  .article-page-section #tresc h2 { font-size: 22px; }
  .article-page-section .article-related h2,
  .hotel-detail-section .hotel-related-section h2 { font-size: 22px; }
}
