/* Fluent Travel — print stylesheet (print.css)
   Wired via: <link rel="stylesheet" href="print.css" media="print">
   Intent: clean black-on-white printouts for quote confirmations, listing
   cards, guides and journals. Screen styles untouched. */

/* ---------- base ---------- */
html {
  background: #fff !important;
}

body {
  background: #fff !important;
  color: #000 !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 11pt;
  line-height: 1.5;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

/* reset dark-theme paint so everything prints black-on-white */
body * {
  color: #000 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  border-color: #999 !important;
}

/* readable type */
h1, h2, h3, h4, h5, h6 {
  font-family: Georgia, "Times New Roman", serif !important;
  color: #000 !important;
  page-break-after: avoid;
  page-break-inside: avoid;
}

p, li, td, th, blockquote {
  orphans: 3;
  widows: 3;
}

a { text-decoration: none; }
a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; color: #555; }

/* ---------- hide interactive / chrome ---------- */
nav,
header.site-header,
footer,
.floating-cta,
.floating-whatsapp,
.sticky-bar,
.modal,
.toast,
.cookie-banner,
.skip-link,
.mobile-nav,
.no-print,
button,
.btn,
input,
select,
textarea,
form,
.share-buttons,
.back-to-top,
.cookie-consent,
nav [class*="hamburger"],
iframe,
video {
  display: none !important;
}

/* ---------- quote confirmation ---------- */
.quote-confirmation,
.confirmation-card,
.quote-summary {
  display: block !important;
  border: 1px solid #000;
  padding: 16pt;
  margin: 0 0 14pt 0;
  page-break-inside: avoid;
}

.quote-confirmation .ref-code,
.confirmation-ref {
  font-size: 16pt;
  font-weight: bold;
  letter-spacing: 0.1em;
  border: 2px solid #000;
  padding: 6pt 12pt;
  display: inline-block;
  margin-bottom: 10pt;
}

.quote-detail-row {
  display: block;
  padding: 4pt 0;
  border-bottom: 1px dotted #aaa;
}
.quote-detail-row::after { content: ""; display: block; clear: both; }
.quote-detail-row .label { font-weight: bold; }

/* ---------- cards ---------- */
.card,
.listing-card,
.cruise-card,
.hotel-card,
.journey-card,
.guide-card,
.journal-card {
  display: block !important;
  border: 1px solid #999;
  border-radius: 0 !important;
  padding: 10pt;
  margin: 0 0 12pt 0;
  page-break-inside: avoid;
}

.card img,
.listing-card img,
.guide-card img,
.journal-card img {
  max-height: 180pt;
  width: auto;
  max-width: 100%;
  display: block;
  margin-bottom: 8pt;
  border: 1px solid #ccc;
}

/* keep card sections together; start each card type section on a fresh sheet */
.section-cruises,
.section-hotels,
.section-journeys {
  page-break-before: auto;
}

/* don't strand a lone card at the bottom of a page */
.card:last-child,
.listing-card:last-child { page-break-after: avoid; }

/* ---------- grids flatten to one column ---------- */
.grid,
.cards-grid,
.listings-grid,
.two-col,
.three-col {
  display: block !important;
}

/* ---------- misc print polish ---------- */
img { page-break-inside: avoid; }
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid #999; padding: 5pt; text-align: left; }

@page {
  margin: 18mm 14mm;
}

@page :first {
  margin-top: 14mm;
}
