/* =========================================================
   Tourza Holidays / namatracloud
   Tour Brochure — A4 print + PDF stylesheet
   ========================================================= */

:root{
  --tz-ink:#111111;
  --tz-muted:#5d6470;
  --tz-line:#e3e6ea;
  --tz-brand:#0f5f8a;      /* set to your brand colour */
  --tz-accent:#f0a500;
  --tz-pad:14mm;
}

/* Hidden during normal browsing --------------------------------- */
.tz-brochure{ display:none; }

/* Download button ------------------------------------------------ */
.tz-download-wrap{ margin-top:16px; }

.tz-download-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  width:100%;
  padding:15px 22px;
  font-family:inherit; font-size:15px; font-weight:600; letter-spacing:.2px;
  color:#fff; background:var(--tz-brand);
  border:0; border-radius:12px; cursor:pointer;
  transition:transform .15s ease, opacity .15s ease;
}
.tz-download-btn:hover{ opacity:.92; transform:translateY(-1px); }
.tz-download-btn:disabled{ opacity:.55; cursor:progress; transform:none; }
.tz-download-btn svg{ width:18px; height:18px; flex:0 0 auto; }

/* =========================================================
   EXPORT MODE
   JS relocates .tz-brochure to <body> root first, so hiding
   direct children of <body> is sufficient for a block theme.
   ========================================================= */
html.tz-exporting,
html.tz-exporting body{
  margin:0 !important;
  padding:0 !important;
  background:#fff !important;
  height:auto !important;
  overflow:visible !important;
}

html.tz-exporting body > *{ display:none !important; }
html.tz-exporting body > .tz-brochure{ display:block !important; }

html.tz-exporting #wpadminbar,
html.tz-exporting .whatsapp-float,
html.tz-exporting #backtotop,
html.tz-exporting .skip-link{ display:none !important; }

html.tz-exporting{ margin-top:0 !important; }   /* kills admin-bar offset */

/* WOW.js leaves elements invisible until scrolled into view.
   Force everything visible during export. */
html.tz-exporting .tz-brochure .animate__animated,
html.tz-exporting .tz-brochure [style*="visibility"]{
  visibility:visible !important;
  opacity:1 !important;
  animation:none !important;
}

@page{ size:A4 portrait; margin:0; }

@media print{
  html, body{
    margin:0 !important; padding:0 !important;
    background:#fff !important; overflow:visible !important;
  }
  body > *{ display:none !important; }
  body > .tz-brochure{ display:block !important; }

  #wpadminbar, .whatsapp-float, #backtotop,
  .tz-download-btn, .tz-download-wrap{ display:none !important; }

  html{ margin-top:0 !important; }
}

/* =========================================================
   BROCHURE SHELL
   ========================================================= */
.tz-brochure{
  color:var(--tz-ink);
  font-family:"Manrope", Arial, sans-serif;
  font-size:10.5pt; line-height:1.55;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.tz-brochure *{ box-sizing:border-box; }

.tz-page{
  position:relative;
  width:210mm; min-height:297mm;
  padding:22mm var(--tz-pad) 20mm;
  margin:0 auto;
  background:#fff;
  page-break-after:always; break-after:page;
  overflow:hidden;
}
.tz-page:last-child{ page-break-after:auto; break-after:auto; }

.tz-avoid-break{ page-break-inside:avoid; break-inside:avoid; }

/* Running header / footer ---------------------------------------- */
.tz-runhead{
  position:absolute; top:10mm; left:var(--tz-pad); right:var(--tz-pad);
  display:flex; align-items:center; justify-content:space-between;
  padding-bottom:4mm; border-bottom:1px solid var(--tz-line);
}
.tz-runhead img{ height:9mm; width:auto; object-fit:contain; }
.tz-runhead__title{
  font-size:8.5pt; color:var(--tz-muted);
  letter-spacing:.4px; text-transform:uppercase;
}

.tz-runfoot{
  position:absolute; bottom:10mm; left:var(--tz-pad); right:var(--tz-pad);
  display:flex; align-items:center; justify-content:space-between;
  padding-top:3mm; border-top:1px solid var(--tz-line);
  font-size:8pt; color:var(--tz-muted);
}

/* =========================================================
   COVER
   ========================================================= */
.tz-cover{ padding:0; color:#fff; display:flex; flex-direction:column; }
.tz-cover__media{ position:absolute; inset:0; }
.tz-cover__media img{ width:100%; height:100%; object-fit:cover; display:block; }
.tz-cover__scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg,
    rgba(0,0,0,.35) 0%, rgba(0,0,0,.30) 45%, rgba(0,0,0,.86) 100%);
}
.tz-cover__body{ position:relative; margin-top:auto; padding:0 var(--tz-pad) 16mm; }
.tz-cover__logo{
  height:16mm; width:auto; object-fit:contain;
  margin-bottom:10mm; filter:brightness(0) invert(1);
}
.tz-cover__eyebrow{
  margin:0 0 3mm; font-size:10pt; letter-spacing:3px;
  text-transform:uppercase; color:var(--tz-accent);
}
.tz-cover__title{
  margin:0 0 9mm; font-size:34pt; line-height:1.05;
  font-weight:700; letter-spacing:-.5px; color:#fff;
}
.tz-cover__facts{
  list-style:none; margin:0; padding:6mm 0 0;
  border-top:1px solid rgba(255,255,255,.35);
  display:flex; gap:10mm; flex-wrap:wrap;
}
.tz-cover__facts li{ display:flex; flex-direction:column; gap:1.5mm; }
.tz-cover__facts span{
  font-size:8pt; letter-spacing:1.4px; text-transform:uppercase; opacity:.75;
}
.tz-cover__facts strong{ font-size:12pt; font-weight:600; }
.tz-cover__foot{
  position:absolute; bottom:8mm; left:var(--tz-pad); right:var(--tz-pad);
  display:flex; justify-content:space-between; font-size:8pt; opacity:.8;
}

/* =========================================================
   CONTENT
   ========================================================= */
.tz-block{ margin-bottom:9mm; }

.tz-h2{
  margin:0 0 4mm; padding-bottom:2.5mm;
  font-size:15pt; font-weight:700; letter-spacing:-.2px;
  color:var(--tz-ink);
  border-bottom:2px solid var(--tz-brand);
  display:inline-block;
}
.tz-h3{ margin:0 0 1.5mm; font-size:11.5pt; font-weight:700; color:var(--tz-brand); }

.tz-prose{ color:#2c3138; }
.tz-prose p{ margin:0 0 3mm; text-align:justify; hyphens:auto; }
.tz-prose p:last-child{ margin-bottom:0; }

.tz-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:10mm; }

.tz-list{ list-style:none; margin:0; padding:0; }
.tz-list li{
  position:relative; padding-left:7mm; margin-bottom:2.6mm;
  font-size:10pt; page-break-inside:avoid; break-inside:avoid;
}
.tz-list li::before{
  position:absolute; left:0; top:.4mm;
  width:4.5mm; height:4.5mm; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:7pt; font-weight:700; color:#fff;
}
.tz-list--yes li::before{ content:"\2713"; background:#1f9d55; }
.tz-list--no  li::before{ content:"\2715"; background:#c0392b; }

/* Itinerary ------------------------------------------------------- */
.tz-timeline{ list-style:none; margin:0; padding:0; position:relative; }
.tz-timeline::before{
  content:""; position:absolute; left:5.5mm; top:3mm; bottom:3mm;
  width:1px; background:var(--tz-line);
}
.tz-timeline__item{ position:relative; display:flex; gap:6mm; margin-bottom:7mm; }
.tz-timeline__marker{
  position:relative; z-index:1; flex:0 0 11mm;
  width:11mm; height:11mm; border-radius:50%;
  background:var(--tz-brand); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:10pt; font-weight:700;
}
.tz-timeline__body{ flex:1; padding-top:1mm; }

/* Per-day thumbnails — capped at 3 and kept short so a day
   block still fits without splitting across pages. */
.tz-day-gallery{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:3mm; margin-top:3mm;
}
.tz-day-gallery img{
  width:100%; height:26mm; object-fit:cover;
  border-radius:2mm; display:block;
}

/* Contact --------------------------------------------------------- */
.tz-contact__grid{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:6mm; margin:8mm 0;
}
.tz-contact__card{
  padding:6mm; border:1px solid var(--tz-line); border-radius:3mm;
  background:#fafbfc; display:flex; flex-direction:column; gap:1.5mm;
}
.tz-contact__label{
  font-size:7.5pt; letter-spacing:1.4px; text-transform:uppercase;
  color:var(--tz-muted); margin-top:2mm;
}
.tz-contact__card strong{ font-size:10pt; font-weight:600; }

.tz-fineprint{
  margin-top:10mm; padding-top:4mm; border-top:1px solid var(--tz-line);
  font-size:8pt; line-height:1.5; color:var(--tz-muted); text-align:justify;
}
