/* Culto — enhancement sloj (dodatno, lako uklonjivo).
   Originalni dizajn već ima scrim/animacije/galeriju/dvostupčani menu;
   ovdje samo: hero CTA hijerarhija (Menu + Reserve), gold gumb, mapa. */
@import url('culto-fonts.css');   /* Fraunces + Inter, self-hosted */

/* Hero — dva gumba u redu */
.culto-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  align-items: center;
  opacity: 0;
  transform: translateY(30px);
  animation: cultoHeroFadeUp 1s ease 1.2s forwards;
}
/* drži postojeću CTA animaciju mirnom unutar wrappera */
.culto-hero-actions .culto-hero-cta { animation: none; opacity: 1; transform: none; }

/* Primarni gumb — puni zlatni (Reserve) */
.culto-hero-cta.cta-gold {
  background: #c9a227;
  border-color: #c9a227;
  color: #1a1a1a;
}
.culto-hero-cta.cta-gold:hover {
  background: #b8911f;
  border-color: #b8911f;
  color: #1a1a1a;
}

/* Google mapa na kontaktu */
.culto-map {
  margin-top: 2.5rem;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 14px 40px -20px rgba(0,0,0,.4);
  border: 1px solid rgba(201,162,39,.35);
}
.culto-map iframe {
  display: block;
  width: 100%;
  height: 380px;
  border: 0;
  filter: grayscale(0.15);
}
@media (max-width: 576px) {
  .culto-map iframe { height: 300px; }
}

/* Jezični switcher: tekst se generira iz zastavice (en_gb→EN, hr_hr→HR),
   neovisno o href-u (wget je pokvario /en/ putanje pa je EN pokazivao "HR"). */
.mod-languages__list li a:has(img[src*="en_gb"])::after { content: "EN" !important; }
.mod-languages__list li a:has(img[src*="hr_hr"])::after { content: "HR" !important; }

/* Hero točkice: centriranje preko flexa (full-width), a ne transforma —
   jer fade-up animacija (transform: translateY) pregazi translateX(-50%) i pomakne ih udesno. */
.culto-slider-dots {
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  justify-content: center !important;
  transform: none !important;
}

/* Unutarnje stranice (bez hero slidera): poništi -127px pull-up
   da sadržaj (galerija, menu, …) sjedne ISPOD headera, ne pod njega.
   Homepage (ima .culto-hero-slider) zadržava overlay. */
body.com-sppagebuilder:not(:has(.culto-hero-slider)) #sp-main-body {
  margin-top: 0 !important;
}

/* Header CIJELO VRIJEME ima tamnu pozadinu (ne samo na scroll). Vrijedi i na homepage preko hera. */
#sp-header,
#sp-header.header-sticky {
  background: rgba(20, 20, 20, 0.85) !important;
  backdrop-filter: blur(6px);
}

/* ===== HAMBURGER / OFFCANVAS MENU — Culto brend (dark + gold, Playfair) ===== */
.offcanvas-menu {
  background: #161616 !important;
  width: 320px !important;
  max-width: 85vw !important;
  box-shadow: -10px 0 40px rgba(0,0,0,.5);
}
/* Zatvoreni offcanvas (right:-300px) je djelomično virio na desnom rubu (~20px na
   mobitelu) jer overflow-x:hidden ne kliprouč fixed elemente vizualno. Gurni ga
   POTPUNO izvan ekrana transformom, vrati ga kad je .offcanvas-active. Slide ostaje. */
body.offcanvs-position-right .offcanvas-menu {
  transform: translateX(110%);
  transition: transform .4s ease, background .4s !important;
}
body.offcanvs-position-right.offcanvas-active .offcanvas-menu {
  transform: translateX(0);
}
.offcanvas-overlay { background: rgba(0,0,0,.55) !important; }
.offcanvas-menu .close-offcanvas .burger-icon span { background-color: #fff !important; }
.offcanvas-menu .offcanvas-inner { padding: 0 0 2rem !important; }
.offcanvas-menu .offcanvas-inner ul.menu { margin: 0 !important; }
.offcanvas-menu .offcanvas-inner ul.menu > li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}
.offcanvas-menu .offcanvas-inner ul.menu > li > a {
  display: block;
  padding: 1.05rem 1.7rem !important;
  font-family: 'Inter', system-ui, sans-serif !important;
  font-size: 1.25rem !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  color: #fff !important;
  opacity: 1 !important;
  letter-spacing: 0.02em;
  background: transparent !important;
  transition: color .3s ease, background .3s ease, padding-left .3s ease !important;
}
.offcanvas-menu .offcanvas-inner ul.menu > li > a:hover,
.offcanvas-menu .offcanvas-inner ul.menu > li.active > a,
.offcanvas-menu .offcanvas-inner ul.menu > li.current > a {
  color: #c9a227 !important;
  background: rgba(201, 162, 39, 0.06) !important;
  padding-left: 2.1rem !important;
}

/* ===== MOBILE: spriječi prelijevanje hero sadržaja (2 gumba) preko viewporta ===== */
@media (max-width: 768px) {
  .culto-hero-content {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 1.2rem !important;
    padding-right: 1.2rem !important;
  }
  .culto-hero-actions { width: 100%; }
  .culto-hero-cta {
    padding: 13px 26px !important;
    letter-spacing: 0.12em !important;
    font-size: 0.82rem !important;
  }
}
/* ===== PRAVNE STRANICE (Joomla article view) — sakrij CMS artefakte ===== */
/* author/kategorija/datum/hits meta linija i prazan share blok nemaju smisla na
   pravnim stranicama; scoped na .view-article da ne dira SPPageBuilder stranice. */
.view-article .article-info,
.view-article .article-ratings-social-share { display: none !important; }
.view-article .article-header .page-header { margin-top: 1rem; }

/* ===== REZERVACIJSKA FORMA (shared — home + kontakt stranica) ===== */
.culto-booking-form { max-width: 1200px; margin: 0 auto; }
.culto-form-row { display: flex; gap: 25px; margin-bottom: 25px;
  opacity: 0; transform: translateY(20px);
  animation: cultoBookingFadeUp 0.8s ease forwards; }
.culto-form-row:nth-child(1) { animation-delay: 0.5s; }
.culto-form-row:nth-child(2) { animation-delay: 0.7s; }
.culto-form-row:nth-child(3) { animation-delay: 0.9s; }
.culto-form-group { flex: 1; }
.culto-form-group label { display: block; font-size: 13px; font-weight: 500;
  color: #333; margin-bottom: 8px; }
.culto-form-group input,
.culto-form-group select,
.culto-form-group textarea { width: 100%; padding: 14px 16px; font-size: 15px;
  border: 1px solid #ddd; background: #fff;
  transition: border-color 0.3s, box-shadow 0.3s; }
.culto-form-group input:focus,
.culto-form-group select:focus,
.culto-form-group textarea:focus { outline: none; border-color: #c9a227;
  box-shadow: 0 0 0 3px rgba(201, 162, 39, 0.1); }
.culto-form-group textarea { resize: vertical; min-height: 100px; }
.culto-btn-submit { display: inline-block; background: #c9a227; color: #fff;
  border: 2px solid #c9a227; padding: 16px 50px; font-size: 14px; font-weight: 600;
  letter-spacing: 2px; text-transform: uppercase; cursor: pointer;
  transition: all 0.3s ease; }
.culto-btn-submit:hover { background: transparent; color: #c9a227; }
.culto-form-footer { text-align: center; margin-top: 30px;
  opacity: 0; transform: translateY(20px);
  animation: cultoBookingFadeUp 0.8s ease forwards 1.1s; }
@keyframes cultoBookingFadeUp { to { opacity: 1; transform: translateY(0); } }
@media (max-width: 768px) {
  .culto-form-row { flex-direction: column; gap: 0; }
  .culto-form-group { margin-bottom: 20px; }
}

/* SEO: vizualno skriven H1 (čitljiv tražilicama/screen-readerima) */
.culto-sr-only {
  position: absolute !important; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}
/* promovirani H1 zadržava izgled originalnog H2 (class-based styling) */
h1.sppb-addon-title, h1.culto-mediteran-hero-title { margin: 0; }

/* sigurnosno: nema horizontalnog scrolla */
html, body { overflow-x: hidden; max-width: 100%; }
