/* Quote PDF. The base is one layout; each template changes fonts, color and shape. */
.quote-doc {
  --q-a: #5b5bd6; --q-b: #a915e8; --q-c: #2b2a66;
  --q-ink: #17163a; --q-text: #55526f; --q-muted: #8583a0; --q-line: #e3e2ee; --q-soft: color-mix(in srgb, var(--q-a) 6%, #fff);
  --q-head: 'Poppins', sans-serif; --q-body: 'Inter', sans-serif;
  --q-radius: 14px; --q-small-radius: 10px;
  --q-gradient: linear-gradient(115deg, var(--q-c) 0%, var(--q-c) 34%, var(--q-a) 60%, var(--q-b) 100%);
  color: var(--q-ink); font-family: var(--q-body); font-size: 12.5px; line-height: 1.5;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.quote-doc *, .quote-doc *::before, .quote-doc *::after { box-sizing: border-box; }
.quote-doc h1, .quote-doc h2, .quote-doc h3, .quote-doc h4, .quote-doc p, .quote-doc ul, .quote-doc dl, .quote-doc dd { margin: 0; padding: 0; }

/* ── Pages ── */
.q-page { position: relative; isolation: isolate; display: flex; flex-direction: column; width: 210mm; height: 297mm; overflow: hidden; background: #fff; break-after: page; }
.q-page:last-child { break-after: auto; }
.q-page-head { display: flex; align-items: center; justify-content: space-between; flex: none; height: 26mm; padding: 8mm 16mm 0; }
.q-page-head .q-logo { height: 8mm; }
.q-page-head::after { content: ''; position: absolute; left: 16mm; right: 16mm; top: 26mm; border-top: 1px solid var(--q-line); }
.q-page-label { color: var(--q-text); font-size: 9.5px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.q-page-body { display: flex; flex: 1; flex-direction: column; gap: 18px; min-height: 0; padding: 9mm 16mm 4mm; }
.q-page-foot { display: flex; flex: none; justify-content: space-between; height: 14mm; padding: 3mm 16mm 0; color: var(--q-muted); font-size: 9.5px; }
.q-group { display: flex; flex-direction: column; gap: 10px; }
.q-logo { display: block; width: auto; }
.q-logo-text { font-family: var(--q-head); font-size: 16px; font-weight: 700; }

/* ── Text ── */
.q-eyebrow { margin-bottom: 8px; color: var(--q-b); font-size: 10px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; }
.q-section-head h2 { display: flex; align-items: center; gap: 10px; color: var(--q-ink); font-family: var(--q-head); font-size: 26px; font-weight: 700; letter-spacing: -0.01em; line-height: 1.2; }
.q-number { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 8px; background: linear-gradient(135deg, var(--q-a), var(--q-b)); color: #fff; font-size: 12px; font-weight: 700; }
.q-intro { max-width: 165mm; margin-top: 10px !important; color: var(--q-text); font-size: 13.5px; line-height: 1.6; }
.q-subheading { color: var(--q-ink); font-family: var(--q-head); font-size: 15px; font-weight: 700; }
.q-text { color: var(--q-text); font-size: 13px; line-height: 1.6; }
.q-kicker { color: var(--q-text); font-size: 9.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.q-bullets { display: flex; flex-direction: column; gap: 6px; list-style: none; }
.q-bullets li { position: relative; padding-left: 18px; color: var(--q-ink); font-size: 12px; line-height: 1.45; }
.q-bullets li::before { content: ''; position: absolute; left: 1px; top: 5px; width: 7px; height: 7px; border-radius: 50%; background: linear-gradient(135deg, var(--q-a), var(--q-b)); }
.q-tone-0 { --q-tone: var(--q-a); }
.q-tone-1 { --q-tone: var(--q-b); }
.q-tone-2 { --q-tone: var(--q-c); }

/* ── Cover ── */
.q-cover-top { flex: 1; padding: 20mm 18mm 0; }
.q-cover-top .q-logo { height: 15mm; }
.q-cover-top .q-logo-text { font-size: 24px; }
.q-cover-title { margin-top: 28mm; }
.q-cover h1 { font-family: var(--q-head); font-size: 37px; font-weight: 700; letter-spacing: -0.015em; line-height: 1.16; }
.q-cover h1 em { color: var(--q-a); font-style: normal; }
.q-title-after { display: block; }
.q-lead { max-width: 150mm; margin-top: 14px !important; color: var(--q-text); font-size: 15px; line-height: 1.55; }
.q-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.q-tag { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border: 1px solid var(--q-line); border-radius: 999px; font-size: 11px; font-weight: 600; }
.q-tag::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--q-tone); }
.q-cover-bottom { position: relative; flex: none; padding: 34mm 18mm 16mm; overflow: hidden; background: var(--q-gradient); color: #fff; }
.q-cover-bottom::before { content: ''; position: absolute; left: 22%; top: -30%; width: 120%; aspect-ratio: 1; border: 18mm solid rgb(255 255 255 / 0.07); border-radius: 50%; }
.q-meta, .q-parties { position: relative; display: grid; gap: 8mm; }
.q-meta { grid-template-columns: auto auto 1fr; gap: 12mm; margin-bottom: 10mm; }
.q-parties { grid-template-columns: 1fr 1fr; font-size: 12px; line-height: 1.55; }
.q-meta-label { margin-bottom: 4px; font-size: 9.5px; font-weight: 700; letter-spacing: 0.16em; opacity: 0.72; text-transform: uppercase; }
.q-meta-value { font-size: 12px; font-weight: 600; }
.q-party-name { margin-bottom: 5px; font-family: var(--q-head); font-size: 17px; font-weight: 700; }

/* ── Cards ── */
.q-cards, .q-packages, .q-options, .q-phases, .q-tiles { display: grid; gap: 12px; }
.q-cols-2, .q-options, .q-phases, .q-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.q-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.q-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.q-card { display: flex; flex-direction: column; gap: 7px; padding: 16px; border: 1px solid var(--q-line); border-top: 4px solid var(--q-tone); border-radius: var(--q-radius); }
.q-card h4, .q-phase h4, .q-panel h4, .q-package h4, .q-addon h4, .q-tile h4 { color: var(--q-ink); font-family: var(--q-head); font-size: 14px; font-weight: 700; line-height: 1.3; }
.q-card p, .q-phase p, .q-option p, .q-tile p { color: var(--q-text); font-size: 11.5px; line-height: 1.5; }
.q-card-price { margin-top: auto; padding-top: 8px; font-family: var(--q-head); font-size: 20px; font-weight: 700; }
.q-card-price small { color: var(--q-text); font-family: var(--q-body); font-size: 10.5px; font-weight: 600; }
.q-tile { padding: 12px 14px; border: 1px solid var(--q-line); border-radius: var(--q-small-radius); }
.q-tile h4 { margin-bottom: 3px; font-size: 13px; }

.q-table { width: 100%; border-collapse: collapse; font-size: 11.5px; }
.q-table thead th { padding: 0 10px 8px; border-bottom: 2px solid var(--q-c); color: var(--q-text); font-size: 9.5px; font-weight: 700; letter-spacing: 0.12em; text-align: left; text-transform: uppercase; }
.q-table tbody th, .q-table td { padding: 9px 10px; border-bottom: 1px solid var(--q-line); text-align: left; vertical-align: top; }
.q-table tbody th { font-weight: 700; white-space: nowrap; }
.q-table td { color: var(--q-text); }
.q-callout { padding: 11px 16px; border-left: 3px solid var(--q-b); border-radius: var(--q-small-radius); background: var(--q-soft); color: var(--q-text); font-size: 11.5px; }
.q-callout strong { color: var(--q-ink); }

.q-phase, .q-panel { display: flex; flex-direction: column; gap: 8px; padding: 16px 18px; border-radius: var(--q-radius); background: var(--q-soft); }
.q-badge { align-self: flex-start; padding: 3px 11px; border-radius: 999px; background: var(--q-tone); color: #fff; font-size: 9px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.q-total { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; border-radius: var(--q-radius); background: var(--q-gradient); color: #fff; }
.q-total-title { font-family: var(--q-head); font-size: 15px; font-weight: 700; }
.q-total-sub, .q-total-note { font-size: 11px; font-weight: 500; }
.q-total-right { flex: none; text-align: right; }
.q-total-amount { font-family: var(--q-head); font-size: 27px; font-weight: 700; line-height: 1.1; }

.q-option { display: flex; flex-direction: column; gap: 8px; padding: 16px 18px; border: 1px solid var(--q-line); border-radius: var(--q-radius); }
.q-option.is-highlight { border: 2px solid var(--q-a); background: var(--q-soft); }
.q-option .q-kicker { color: var(--q-b); }
.q-option-price { font-family: var(--q-head); font-size: 23px; font-weight: 700; line-height: 1.1; }

.q-package { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 18px 13px 14px; border: 1px solid var(--q-line); border-radius: var(--q-radius); }
.q-package.is-recommended { border: 2px solid var(--q-a); }
.q-flag { position: absolute; left: 13px; top: -9px; padding: 2px 10px; border-radius: 999px; background: linear-gradient(90deg, var(--q-a), var(--q-b)); color: #fff; font-size: 8.5px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.q-package h4 { min-height: 54px; font-size: 13px; }
.q-package dl { display: flex; flex-direction: column; flex: 1; }
.q-package dl div { display: flex; justify-content: space-between; gap: 6px; padding: 5px 0; border-bottom: 1px dashed var(--q-line); font-size: 10px; }
.q-package dt { color: var(--q-text); }
.q-package dd { flex: none; font-weight: 700; }
.q-package-total { color: var(--q-a); font-family: var(--q-head); font-size: 20px; font-weight: 700; }
.is-recommended .q-package-total { color: var(--q-b); }
.q-package-note { color: var(--q-text); font-size: 9.5px; font-weight: 600; line-height: 1.35; }

.q-addon-kicker { margin-bottom: 7px; color: var(--q-b); }
.q-addon { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; border-radius: var(--q-radius); background: var(--q-soft); }
.q-addon-main { display: flex; flex-direction: column; gap: 10px; }
.q-addon .q-bullets { display: grid; grid-template-columns: repeat(2, auto); gap: 6px 24px; }
.q-addon-price { display: flex; flex: none; flex-direction: column; align-items: flex-end; }
.q-addon-price strong { color: var(--q-a); font-family: var(--q-head); font-size: 26px; font-weight: 700; line-height: 1.1; }
.q-addon-price span { color: var(--q-text); font-size: 10.5px; font-weight: 600; }

.q-closing { margin-top: 4px; padding-top: 14px; border-top: 1px solid var(--q-line); }
.q-closing .q-logo { height: 10mm; margin-bottom: 8px; }
.q-closing-row { display: flex; justify-content: space-between; gap: 16px; color: var(--q-text); font-size: 11px; line-height: 1.55; }
.q-closing-right { text-align: right; }

/* ── Moderna: full color cover, flat filled cards, one strong color ── */
.tpl-moderna { --q-head: 'Manrope', sans-serif; --q-body: 'Manrope', sans-serif; --q-radius: 18px; --q-soft: color-mix(in srgb, var(--q-a) 9%, #fff); --q-gradient: linear-gradient(135deg, var(--q-a), color-mix(in srgb, var(--q-a) 72%, #000)); }
.tpl-moderna .q-cover { flex-direction: column; }
.tpl-moderna .q-cover-top { flex: 1; padding: 18mm 18mm 18mm; background: linear-gradient(150deg, var(--q-a) 0%, color-mix(in srgb, var(--q-a) 78%, #000) 70%, color-mix(in srgb, var(--q-a) 60%, #000) 100%); color: #fff; }
.tpl-moderna .q-cover-top .q-logo { box-sizing: content-box; height: 12mm; padding: 3mm 5mm; border-radius: 12px; background: #fff; }
.tpl-moderna .q-cover-top .q-logo-text { color: #fff; }
.tpl-moderna .q-cover-title { margin-top: 38mm; }
.tpl-moderna .q-cover h1 { font-size: 43px; font-weight: 800; letter-spacing: -0.025em; }
.tpl-moderna .q-cover h1 em { color: color-mix(in srgb, var(--q-a) 28%, #fff); }
.tpl-moderna .q-cover .q-eyebrow { color: color-mix(in srgb, var(--q-a) 28%, #fff); }
.tpl-moderna .q-lead { color: rgb(255 255 255 / 0.85); }
.tpl-moderna .q-tag { border-color: rgb(255 255 255 / 0.35); color: #fff; }
.tpl-moderna .q-tag::before { background: #fff; }
.tpl-moderna .q-cover-bottom { padding: 13mm 18mm 15mm; background: #fff; color: var(--q-ink); }
.tpl-moderna .q-cover-bottom::before { display: none; }
.tpl-moderna .q-eyebrow, .tpl-moderna .q-addon-kicker, .tpl-moderna .q-option .q-kicker { color: var(--q-a); }
.tpl-moderna .q-section-head h2 { font-size: 28px; font-weight: 800; letter-spacing: -0.02em; }
.tpl-moderna .q-number { border-radius: 50%; background: var(--q-a); }
.tpl-moderna .q-card { border: 0; border-top: 0; background: var(--q-soft); }
.tpl-moderna .q-tile, .tpl-moderna .q-package, .tpl-moderna .q-option { border: 0; background: var(--q-soft); }
.tpl-moderna .q-package.is-recommended, .tpl-moderna .q-option.is-highlight { background: var(--q-a); color: #fff; }
.tpl-moderna .is-recommended h4, .tpl-moderna .is-recommended .q-package-total, .tpl-moderna .is-recommended dt, .tpl-moderna .is-recommended .q-package-note, .tpl-moderna .is-recommended .q-kicker,
.tpl-moderna .is-highlight p, .tpl-moderna .q-option.is-highlight .q-kicker { color: #fff; }
.tpl-moderna .is-recommended dl div { border-color: rgb(255 255 255 / 0.3); }
.tpl-moderna .q-flag { background: #fff; color: var(--q-a); }
.tpl-moderna .q-badge { background: var(--q-a); }
.tpl-moderna .q-bullets li::before, .tpl-moderna .q-tag::before { background: var(--q-a); }
.tpl-moderna .q-cover .q-tag::before { background: #fff; }
.tpl-moderna .q-callout { border-left-color: var(--q-a); }
.tpl-moderna .q-table thead th { border-bottom-color: var(--q-a); }
.tpl-moderna .q-package-total, .tpl-moderna .q-addon-price strong { color: var(--q-a); }

/* ── Minimalna: serif headings, lines instead of boxes, almost no color ── */
.tpl-minimalna { --q-head: 'Newsreader', Georgia, serif; --q-ink: #161616; --q-text: #555; --q-muted: #999; --q-line: #dcdcdc; --q-soft: #fff; --q-radius: 0; --q-small-radius: 0; font-size: 12.5px; }
.tpl-minimalna .q-cover-top { padding: 22mm 22mm 0; }
.tpl-minimalna .q-cover-title { margin-top: 52mm; }
.tpl-minimalna .q-cover h1 { font-size: 46px; font-weight: 400; letter-spacing: -0.02em; line-height: 1.1; }
.tpl-minimalna .q-cover h1 em { color: var(--q-a); font-style: italic; }
.tpl-minimalna .q-eyebrow, .tpl-minimalna .q-addon-kicker, .tpl-minimalna .q-option .q-kicker { color: var(--q-text); font-weight: 600; letter-spacing: 0.2em; }
.tpl-minimalna .q-tag { padding: 0; border: 0; color: var(--q-text); font-weight: 500; }
.tpl-minimalna .q-tag::before { display: none; }
.tpl-minimalna .q-tag + .q-tag::before { content: '·'; display: inline; width: auto; height: auto; margin-right: 8px; background: none; }
.tpl-minimalna .q-cover-bottom { margin: 0 22mm 18mm; padding: 9mm 0 0; border-top: 1px solid var(--q-a); background: none; color: var(--q-ink); }
.tpl-minimalna .q-cover-bottom::before { display: none; }
.tpl-minimalna .q-party-name { font-size: 19px; font-weight: 500; }
.tpl-minimalna .q-section-head h2 { font-size: 32px; font-weight: 400; letter-spacing: -0.015em; }
.tpl-minimalna .q-number { width: auto; height: auto; border-radius: 0; background: none; color: var(--q-muted); font-family: var(--q-head); font-size: 32px; font-weight: 400; font-style: italic; }
.tpl-minimalna .q-subheading, .tpl-minimalna .q-card h4, .tpl-minimalna .q-phase h4, .tpl-minimalna .q-panel h4, .tpl-minimalna .q-package h4, .tpl-minimalna .q-addon h4, .tpl-minimalna .q-tile h4 { font-size: 17px; font-weight: 500; }
.tpl-minimalna .q-card { padding: 12px 0 0; border: 0; border-top: 1px solid var(--q-a); }
.tpl-minimalna .q-tile { padding: 10px 0 0; border: 0; border-top: 1px solid var(--q-line); }
.tpl-minimalna .q-card-price, .tpl-minimalna .q-option-price, .tpl-minimalna .q-package-total, .tpl-minimalna .is-recommended .q-package-total, .tpl-minimalna .q-addon-price strong { color: var(--q-a); font-weight: 500; }
.tpl-minimalna .q-card-price { font-size: 24px; }
.tpl-minimalna .q-phase, .tpl-minimalna .q-panel { padding: 12px 0 0; border-top: 1px solid var(--q-a); }
.tpl-minimalna .q-badge { padding: 0; background: none; color: var(--q-text); letter-spacing: 0.16em; }
.tpl-minimalna .q-bullets li { padding-left: 16px; }
.tpl-minimalna .q-bullets li::before { top: 8px; width: 8px; height: 1px; border-radius: 0; background: var(--q-a); }
.tpl-minimalna .q-table thead th { border-bottom: 1px solid var(--q-a); }
.tpl-minimalna .q-callout { padding: 0 0 0 14px; border-left: 1px solid var(--q-a); }
.tpl-minimalna .q-total { padding: 14px 0; border-top: 1px solid var(--q-a); border-bottom: 1px solid var(--q-a); background: none; color: var(--q-ink); }
.tpl-minimalna .q-total-title { font-size: 18px; font-weight: 500; }
.tpl-minimalna .q-total-amount { font-size: 32px; font-weight: 400; }
.tpl-minimalna .q-option { padding: 12px 0 0; border: 0; border-top: 1px solid var(--q-line); }
.tpl-minimalna .q-option.is-highlight { border: 0; border-top: 2px solid var(--q-a); background: none; }
.tpl-minimalna .q-package { padding: 16px 0 0; border: 0; border-top: 1px solid var(--q-line); }
.tpl-minimalna .q-package.is-recommended { border: 0; border-top: 2px solid var(--q-a); }
.tpl-minimalna .q-flag { left: 0; top: 2px; padding: 0; background: none; color: var(--q-ink); }
.tpl-minimalna .q-package dl div { border-bottom-style: solid; }
.tpl-minimalna .q-addon { padding: 14px 0; border-top: 1px solid var(--q-line); border-bottom: 1px solid var(--q-line); }
.tpl-minimalna .q-page-head, .tpl-minimalna .q-page-body, .tpl-minimalna .q-page-foot { padding-left: 20mm; padding-right: 20mm; }
.tpl-minimalna .q-page-head::after { left: 20mm; right: 20mm; }

/* ── Klasična: navy, serif headings, tables and straight edges ── */
.tpl-klasicna { --q-head: 'Source Serif 4', Georgia, serif; --q-body: 'Source Sans 3', sans-serif; --q-ink: #1a2433; --q-text: #4e5a6b; --q-muted: #8592a3; --q-line: #d5dbe3; --q-radius: 3px; --q-small-radius: 2px; --q-soft: color-mix(in srgb, var(--q-a) 6%, #fff); --q-gradient: var(--q-a); font-size: 13px; }
.tpl-klasicna .q-cover { flex-direction: row; }
.tpl-klasicna .q-cover-top { display: flex; flex: 1; flex-direction: column; padding: 22mm 16mm 0 18mm; }
.tpl-klasicna .q-cover-top .q-logo { align-self: flex-start; height: 13mm; }
.tpl-klasicna .q-cover-title { margin-top: 42mm; }
.tpl-klasicna .q-cover h1 { font-size: 36px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.18; }
.tpl-klasicna .q-cover h1 em { color: var(--q-a); font-style: normal; }
.tpl-klasicna .q-cover-bottom { display: flex; flex: 0 0 68mm; flex-direction: column; justify-content: flex-end; padding: 22mm 10mm 18mm; }
.tpl-klasicna .q-cover-bottom::before { display: none; }
.tpl-klasicna .q-meta, .tpl-klasicna .q-parties { grid-template-columns: 1fr; gap: 6mm; }
.tpl-klasicna .q-parties { padding-top: 8mm; border-top: 1px solid rgb(255 255 255 / 0.3); font-size: 11.5px; }
.tpl-klasicna .q-party-name { font-size: 16px; font-weight: 600; }
.tpl-klasicna .q-tag { border-radius: 2px; }
.tpl-klasicna .q-section-head { padding-bottom: 10px; border-bottom: 2px solid var(--q-a); }
.tpl-klasicna .q-section-head h2 { font-size: 26px; font-weight: 600; }
.tpl-klasicna .q-eyebrow, .tpl-klasicna .q-addon-kicker, .tpl-klasicna .q-option .q-kicker { color: var(--q-a); letter-spacing: 0.12em; }
.tpl-klasicna .q-number { border-radius: 2px; background: var(--q-a); font-family: var(--q-body); }
.tpl-klasicna .q-card { border-top: 3px solid var(--q-a); }
.tpl-klasicna .q-card h4, .tpl-klasicna .q-phase h4, .tpl-klasicna .q-panel h4, .tpl-klasicna .q-package h4, .tpl-klasicna .q-addon h4, .tpl-klasicna .q-tile h4, .tpl-klasicna .q-subheading { font-weight: 600; }
.tpl-klasicna .q-card-price, .tpl-klasicna .q-option-price, .tpl-klasicna .q-package-total, .tpl-klasicna .is-recommended .q-package-total, .tpl-klasicna .q-addon-price strong { color: var(--q-a); font-weight: 600; }
.tpl-klasicna .q-phase, .tpl-klasicna .q-panel, .tpl-klasicna .q-addon { border: 1px solid var(--q-line); background: var(--q-soft); }
.tpl-klasicna .q-badge { border-radius: 2px; background: var(--q-a); }
.tpl-klasicna .q-bullets li::before { top: 4px; width: 6px; height: 6px; border-radius: 0; background: var(--q-a); }
.tpl-klasicna .q-table thead th { padding-top: 8px; border-bottom: 0; background: var(--q-a); color: #fff; }
.tpl-klasicna .q-table tbody tr:nth-child(even) th, .tpl-klasicna .q-table tbody tr:nth-child(even) td { background: var(--q-soft); }
.tpl-klasicna .q-callout { border-left-color: var(--q-a); }
.tpl-klasicna .q-option.is-highlight, .tpl-klasicna .q-package.is-recommended { border: 2px solid var(--q-a); }
.tpl-klasicna .q-flag { border-radius: 2px; background: var(--q-a); }
